diff options
-rw-r--r-- | qbs/imports/QtcProduct.qbs | 8 | ||||
-rw-r--r-- | qbs/modules/libclang/functions.js | 6 | ||||
-rw-r--r-- | qbs/modules/libclang/libclang.qbs | 9 | ||||
-rw-r--r-- | share/qtcreator/translations/qtcreator_de.ts | 4 | ||||
-rw-r--r-- | src/libs/glsl/glsl.g | 2 | ||||
-rw-r--r-- | src/libs/glsl/glslparser.cpp | 636 | ||||
-rw-r--r-- | src/libs/glsl/glslparsertable.cpp | 2507 | ||||
-rw-r--r-- | src/libs/glsl/glslparsertable_p.h | 441 | ||||
m--------- | src/shared/qbs | 0 |
9 files changed, 1811 insertions, 1802 deletions
diff --git a/qbs/imports/QtcProduct.qbs b/qbs/imports/QtcProduct.qbs index cd3bee3297..fc6c2502e4 100644 --- a/qbs/imports/QtcProduct.qbs +++ b/qbs/imports/QtcProduct.qbs @@ -22,10 +22,10 @@ Product { Depends { name: product.name + " dev headers"; required: false } Depends { name: "Qt.core"; versionAtLeast: "5.6.2" } - Properties { - condition: Utilities.versionCompare(Qt.core.version, "5.7") < 0 - cpp.minimumMacosVersion: project.minimumMacosVersion - } + // TODO: Should fall back to what came from Qt.core for Qt < 5.7, but we cannot express that + // atm. Conditionally pulling in a module that sets the property is also not possible, + // because conflicting scalar values would be reported (QBS-1225 would fix that). + cpp.minimumMacosVersion: project.minimumMacosVersion Properties { condition: qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang") diff --git a/qbs/modules/libclang/functions.js b/qbs/modules/libclang/functions.js index 3b74066562..29d093dcad 100644 --- a/qbs/modules/libclang/functions.js +++ b/qbs/modules/libclang/functions.js @@ -29,7 +29,7 @@ function isSuitableLLVMConfig(llvmConfigCandidate, qtcFunctions) return false; } -function llvmConfig(qbs, qtcFunctions) +function llvmConfig(hostOS, qtcFunctions) { var llvmInstallDirFromEnv = Environment.getEnv("LLVM_INSTALL_DIR") var llvmConfigVariants = [ @@ -37,7 +37,7 @@ function llvmConfig(qbs, qtcFunctions) ]; // Prefer llvm-config* from LLVM_INSTALL_DIR - var suffix = qbs.hostOS.contains("windows") ? ".exe" : ""; + var suffix = hostOS.contains("windows") ? ".exe" : ""; if (llvmInstallDirFromEnv) { for (var i = 0; i < llvmConfigVariants.length; ++i) { var variant = llvmInstallDirFromEnv + "/bin/" + llvmConfigVariants[i] + suffix; @@ -48,7 +48,7 @@ function llvmConfig(qbs, qtcFunctions) // Find llvm-config* in PATH var pathListString = Environment.getEnv("PATH"); - var separator = qbs.hostOS.contains("windows") ? ";" : ":"; + var separator = hostOS.contains("windows") ? ";" : ":"; var pathList = pathListString.split(separator); for (var i = 0; i < llvmConfigVariants.length; ++i) { for (var j = 0; j < pathList.length; ++j) { diff --git a/qbs/modules/libclang/libclang.qbs b/qbs/modules/libclang/libclang.qbs index e4253cc105..3b68faa0bb 100644 --- a/qbs/modules/libclang/libclang.qbs +++ b/qbs/modules/libclang/libclang.qbs @@ -9,6 +9,9 @@ Module { Probe { id: clangProbe + property stringList hostOS: qbs.hostOS + property stringList targetOS: qbs.targetOS + property string llvmConfig property string llvmVersion property string llvmIncludeDir @@ -21,12 +24,12 @@ Module { property string llvmBuildMode configure: { - llvmConfig = ClangFunctions.llvmConfig(qbs, QtcFunctions); + llvmConfig = ClangFunctions.llvmConfig(hostOS, QtcFunctions); llvmVersion = ClangFunctions.version(llvmConfig); llvmIncludeDir = ClangFunctions.includeDir(llvmConfig); llvmLibDir = ClangFunctions.libDir(llvmConfig); - llvmLibs = ClangFunctions.libraries(qbs.targetOS); - llvmToolingLibs = ClangFunctions.toolingLibs(llvmConfig, qbs.targetOS); + llvmLibs = ClangFunctions.libraries(targetOS); + llvmToolingLibs = ClangFunctions.toolingLibs(llvmConfig, targetOS); llvmBuildMode = ClangFunctions.buildMode(llvmConfig); var toolingParams = ClangFunctions.toolingParameters(llvmConfig); llvmToolingDefines = toolingParams.defines; diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 56727a69ec..3ff19d57ae 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -10840,7 +10840,7 @@ Dies ist unabhängig vom Wert der Eigenschaft "visible" in QML.</trans <name>TextEditor</name> <message> <source>Text Editor</source> - <translation>Text Editor</translation> + <translation>Texteditor</translation> </message> </context> <context> @@ -43079,7 +43079,7 @@ Bitte aktualisieren Sie Ihr Kit oder wählen Sie eine mkspec für qmake, die bes </message> <message> <source>Text Editor</source> - <translation>Text Editor</translation> + <translation>Texteditor</translation> </message> </context> <context> diff --git a/src/libs/glsl/glsl.g b/src/libs/glsl/glsl.g index ccd80ae8f1..314cef0bb7 100644 --- a/src/libs/glsl/glsl.g +++ b/src/libs/glsl/glsl.g @@ -569,6 +569,8 @@ AST *Parser::parse(int startToken) action = nt_action(_stateStack[_tos], lhs[ruleno] - TERMINAL_COUNT); } else if (action == 0) { ++recoveryAttempts; + if (recoveryAttempts > 10) + break; const int line = _tokens[yyloc].line + 1; QString message = QLatin1String("Syntax error"); if (yytoken != -1) { diff --git a/src/libs/glsl/glslparser.cpp b/src/libs/glsl/glslparser.cpp index a746a6050b..f435032999 100644 --- a/src/libs/glsl/glslparser.cpp +++ b/src/libs/glsl/glslparser.cpp @@ -159,6 +159,8 @@ AST *Parser::parse(int startToken) action = nt_action(_stateStack[_tos], lhs[ruleno] - TERMINAL_COUNT); } else if (action == 0) { ++recoveryAttempts; + if (recoveryAttempts > 10) + break; const int line = _tokens[yyloc].line + 1; QString message = QLatin1String("Syntax error"); if (yytoken != -1) { @@ -225,137 +227,137 @@ AST *Parser::parse(int startToken) return 0; } -#line 641 "./glsl.g" +#line 643 "./glsl.g" void Parser::reduce(int ruleno) { switch(ruleno) { -#line 650 "./glsl.g" +#line 652 "./glsl.g" case 0: { ast(1) = makeAstNode<IdentifierExpressionAST>(string(1)); } break; -#line 657 "./glsl.g" +#line 659 "./glsl.g" case 1: { ast(1) = makeAstNode<LiteralExpressionAST>(string(1)); } break; -#line 664 "./glsl.g" +#line 666 "./glsl.g" case 2: { ast(1) = makeAstNode<LiteralExpressionAST>(_engine->identifier("true", 4)); } break; -#line 671 "./glsl.g" +#line 673 "./glsl.g" case 3: { ast(1) = makeAstNode<LiteralExpressionAST>(_engine->identifier("false", 5)); } break; -#line 678 "./glsl.g" +#line 680 "./glsl.g" case 4: { // nothing to do. } break; -#line 685 "./glsl.g" +#line 687 "./glsl.g" case 5: { ast(1) = ast(2); } break; -#line 692 "./glsl.g" +#line 694 "./glsl.g" case 6: { // nothing to do. } break; -#line 699 "./glsl.g" +#line 701 "./glsl.g" case 7: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_ArrayAccess, expression(1), expression(3)); } break; -#line 706 "./glsl.g" +#line 708 "./glsl.g" case 8: { // nothing to do. } break; -#line 713 "./glsl.g" +#line 715 "./glsl.g" case 9: { ast(1) = makeAstNode<MemberAccessExpressionAST>(expression(1), string(3)); } break; -#line 720 "./glsl.g" +#line 722 "./glsl.g" case 10: { ast(1) = makeAstNode<UnaryExpressionAST>(AST::Kind_PostIncrement, expression(1)); } break; -#line 727 "./glsl.g" +#line 729 "./glsl.g" case 11: { ast(1) = makeAstNode<UnaryExpressionAST>(AST::Kind_PostDecrement, expression(1)); } break; -#line 734 "./glsl.g" +#line 736 "./glsl.g" case 12: { // nothing to do. } break; -#line 741 "./glsl.g" +#line 743 "./glsl.g" case 13: { // nothing to do. } break; -#line 748 "./glsl.g" +#line 750 "./glsl.g" case 14: { ast(1) = makeAstNode<FunctionCallExpressionAST> (sym(1).function.id, sym(1).function.arguments); } break; -#line 756 "./glsl.g" +#line 758 "./glsl.g" case 15: { ast(1) = makeAstNode<FunctionCallExpressionAST> (expression(1), sym(3).function.id, sym(3).function.arguments); } break; -#line 764 "./glsl.g" +#line 766 "./glsl.g" case 16: { // nothing to do. } break; -#line 771 "./glsl.g" +#line 773 "./glsl.g" case 17: { // nothing to do. } break; -#line 778 "./glsl.g" +#line 780 "./glsl.g" case 18: { sym(1).function.id = sym(1).function_identifier; sym(1).function.arguments = 0; } break; -#line 786 "./glsl.g" +#line 788 "./glsl.g" case 19: { sym(1).function.id = sym(1).function_identifier; sym(1).function.arguments = 0; } break; -#line 794 "./glsl.g" +#line 796 "./glsl.g" case 20: { sym(1).function.id = sym(1).function_identifier; @@ -363,7 +365,7 @@ case 20: { makeAstNode< List<ExpressionAST *> >(expression(2)); } break; -#line 803 "./glsl.g" +#line 805 "./glsl.g" case 21: { sym(1).function.arguments = @@ -371,379 +373,379 @@ case 21: { (sym(1).function.arguments, expression(3)); } break; -#line 812 "./glsl.g" +#line 814 "./glsl.g" case 22: { // nothing to do. } break; -#line 819 "./glsl.g" +#line 821 "./glsl.g" case 23: { ast(1) = makeAstNode<FunctionIdentifierAST>(type(1)); } break; -#line 826 "./glsl.g" +#line 828 "./glsl.g" case 24: { ast(1) = makeAstNode<FunctionIdentifierAST>(string(1)); } break; -#line 833 "./glsl.g" +#line 835 "./glsl.g" case 25: { // nothing to do. } break; -#line 840 "./glsl.g" +#line 842 "./glsl.g" case 26: { ast(1) = makeAstNode<UnaryExpressionAST>(AST::Kind_PreIncrement, expression(2)); } break; -#line 847 "./glsl.g" +#line 849 "./glsl.g" case 27: { ast(1) = makeAstNode<UnaryExpressionAST>(AST::Kind_PreDecrement, expression(2)); } break; -#line 854 "./glsl.g" +#line 856 "./glsl.g" case 28: { ast(1) = makeAstNode<UnaryExpressionAST>(sym(1).kind, expression(2)); } break; -#line 861 "./glsl.g" +#line 863 "./glsl.g" case 29: { sym(1).kind = AST::Kind_UnaryPlus; } break; -#line 868 "./glsl.g" +#line 870 "./glsl.g" case 30: { sym(1).kind = AST::Kind_UnaryMinus; } break; -#line 875 "./glsl.g" +#line 877 "./glsl.g" case 31: { sym(1).kind = AST::Kind_LogicalNot; } break; -#line 882 "./glsl.g" +#line 884 "./glsl.g" case 32: { sym(1).kind = AST::Kind_BitwiseNot; } break; -#line 889 "./glsl.g" +#line 891 "./glsl.g" case 33: { // nothing to do. } break; -#line 896 "./glsl.g" +#line 898 "./glsl.g" case 34: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_Multiply, expression(1), expression(3)); } break; -#line 903 "./glsl.g" +#line 905 "./glsl.g" case 35: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_Divide, expression(1), expression(3)); } break; -#line 910 "./glsl.g" +#line 912 "./glsl.g" case 36: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_Modulus, expression(1), expression(3)); } break; -#line 917 "./glsl.g" +#line 919 "./glsl.g" case 37: { // nothing to do. } break; -#line 924 "./glsl.g" +#line 926 "./glsl.g" case 38: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_Plus, expression(1), expression(3)); } break; -#line 931 "./glsl.g" +#line 933 "./glsl.g" case 39: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_Minus, expression(1), expression(3)); } break; -#line 938 "./glsl.g" +#line 940 "./glsl.g" case 40: { // nothing to do. } break; -#line 945 "./glsl.g" +#line 947 "./glsl.g" case 41: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_ShiftLeft, expression(1), expression(3)); } break; -#line 952 "./glsl.g" +#line 954 "./glsl.g" case 42: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_ShiftRight, expression(1), expression(3)); } break; -#line 959 "./glsl.g" +#line 961 "./glsl.g" case 43: { // nothing to do. } break; -#line 966 "./glsl.g" +#line 968 "./glsl.g" case 44: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_LessThan, expression(1), expression(3)); } break; -#line 973 "./glsl.g" +#line 975 "./glsl.g" case 45: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_GreaterThan, expression(1), expression(3)); } break; -#line 980 "./glsl.g" +#line 982 "./glsl.g" case 46: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_LessEqual, expression(1), expression(3)); } break; -#line 987 "./glsl.g" +#line 989 "./glsl.g" case 47: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_GreaterEqual, expression(1), expression(3)); } break; -#line 994 "./glsl.g" +#line 996 "./glsl.g" case 48: { // nothing to do. } break; -#line 1001 "./glsl.g" +#line 1003 "./glsl.g" case 49: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_Equal, expression(1), expression(3)); } break; -#line 1008 "./glsl.g" +#line 1010 "./glsl.g" case 50: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_NotEqual, expression(1), expression(3)); } break; -#line 1015 "./glsl.g" +#line 1017 "./glsl.g" case 51: { // nothing to do. } break; -#line 1022 "./glsl.g" +#line 1024 "./glsl.g" case 52: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_BitwiseAnd, expression(1), expression(3)); } break; -#line 1029 "./glsl.g" +#line 1031 "./glsl.g" case 53: { // nothing to do. } break; -#line 1036 "./glsl.g" +#line 1038 "./glsl.g" case 54: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_BitwiseXor, expression(1), expression(3)); } break; -#line 1043 "./glsl.g" +#line 1045 "./glsl.g" case 55: { // nothing to do. } break; -#line 1050 "./glsl.g" +#line 1052 "./glsl.g" case 56: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_BitwiseOr, expression(1), expression(3)); } break; -#line 1057 "./glsl.g" +#line 1059 "./glsl.g" case 57: { // nothing to do. } break; -#line 1064 "./glsl.g" +#line 1066 "./glsl.g" case 58: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_LogicalAnd, expression(1), expression(3)); } break; -#line 1071 "./glsl.g" +#line 1073 "./glsl.g" case 59: { // nothing to do. } break; -#line 1078 "./glsl.g" +#line 1080 "./glsl.g" case 60: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_LogicalXor, expression(1), expression(3)); } break; -#line 1085 "./glsl.g" +#line 1087 "./glsl.g" case 61: { // nothing to do. } break; -#line 1092 "./glsl.g" +#line 1094 "./glsl.g" case 62: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_LogicalOr, expression(1), expression(3)); } break; -#line 1099 "./glsl.g" +#line 1101 "./glsl.g" case 63: { // nothing to do. } break; -#line 1106 "./glsl.g" +#line 1108 "./glsl.g" case 64: { ast(1) = makeAstNode<TernaryExpressionAST>(AST::Kind_Conditional, expression(1), expression(3), expression(5)); } break; -#line 1113 "./glsl.g" +#line 1115 "./glsl.g" case 65: { // nothing to do. } break; -#line 1120 "./glsl.g" +#line 1122 "./glsl.g" case 66: { ast(1) = makeAstNode<AssignmentExpressionAST>(sym(2).kind, expression(1), expression(3)); } break; -#line 1127 "./glsl.g" +#line 1129 "./glsl.g" case 67: { sym(1).kind = AST::Kind_Assign; } break; -#line 1134 "./glsl.g" +#line 1136 "./glsl.g" case 68: { sym(1).kind = AST::Kind_AssignMultiply; } break; -#line 1141 "./glsl.g" +#line 1143 "./glsl.g" case 69: { sym(1).kind = AST::Kind_AssignDivide; } break; -#line 1148 "./glsl.g" +#line 1150 "./glsl.g" case 70: { sym(1).kind = AST::Kind_AssignModulus; } break; -#line 1155 "./glsl.g" +#line 1157 "./glsl.g" case 71: { sym(1).kind = AST::Kind_AssignPlus; } break; -#line 1162 "./glsl.g" +#line 1164 "./glsl.g" case 72: { sym(1).kind = AST::Kind_AssignMinus; } break; -#line 1169 "./glsl.g" +#line 1171 "./glsl.g" case 73: { sym(1).kind = AST::Kind_AssignShiftLeft; } break; -#line 1176 "./glsl.g" +#line 1178 "./glsl.g" case 74: { sym(1).kind = AST::Kind_AssignShiftRight; } break; -#line 1183 "./glsl.g" +#line 1185 "./glsl.g" case 75: { sym(1).kind = AST::Kind_AssignAnd; } break; -#line 1190 "./glsl.g" +#line 1192 "./glsl.g" case 76: { sym(1).kind = AST::Kind_AssignXor; } break; -#line 1197 "./glsl.g" +#line 1199 "./glsl.g" case 77: { sym(1).kind = AST::Kind_AssignOr; } break; -#line 1204 "./glsl.g" +#line 1206 "./glsl.g" case 78: { // nothing to do. } break; -#line 1211 "./glsl.g" +#line 1213 "./glsl.g" case 79: { ast(1) = makeAstNode<BinaryExpressionAST>(AST::Kind_Comma, expression(1), expression(3)); } break; -#line 1218 "./glsl.g" +#line 1220 "./glsl.g" case 80: { // nothing to do. } break; -#line 1225 "./glsl.g" +#line 1227 "./glsl.g" case 81: { // nothing to do. } break; -#line 1232 "./glsl.g" +#line 1234 "./glsl.g" case 82: { ast(1) = makeAstNode<InitDeclarationAST>(sym(1).declaration_list); } break; -#line 1239 "./glsl.g" +#line 1241 "./glsl.g" case 83: { ast(1) = makeAstNode<PrecisionDeclarationAST>(sym(2).precision, type(3)); } break; -#line 1246 "./glsl.g" +#line 1248 "./glsl.g" case 84: { if (sym(1).type_qualifier.qualifier != QualifiedTypeAST::Struct) { @@ -753,7 +755,7 @@ case 84: { ast(1) = makeAstNode<TypeDeclarationAST>(type); } break; -#line 1257 "./glsl.g" +#line 1259 "./glsl.g" case 85: { if ((sym(1).type_qualifier.qualifier & QualifiedTypeAST::Struct) == 0) { @@ -771,7 +773,7 @@ case 85: { makeAstNode<VariableDeclarationAST>(qualtype, string(6))); } break; -#line 1276 "./glsl.g" +#line 1278 "./glsl.g" case 86: { if ((sym(1).type_qualifier.qualifier & QualifiedTypeAST::Struct) == 0) { @@ -790,7 +792,7 @@ case 86: { (makeAstNode<ArrayTypeAST>(qualtype), string(6))); } break; -#line 1296 "./glsl.g" +#line 1298 "./glsl.g" case 87: { if ((sym(1).type_qualifier.qualifier & QualifiedTypeAST::Struct) == 0) { @@ -809,7 +811,7 @@ case 87: { (makeAstNode<ArrayTypeAST>(qualtype, expression(8)), string(6))); } break; -#line 1316 "./glsl.g" +#line 1318 "./glsl.g" case 88: { TypeAST *type = makeAstNode<QualifiedTypeAST> @@ -818,59 +820,59 @@ case 88: { ast(1) = makeAstNode<TypeDeclarationAST>(type); } break; -#line 1326 "./glsl.g" +#line 1328 "./glsl.g" case 89: { function(1)->finishParams(); } break; -#line 1333 "./glsl.g" +#line 1335 "./glsl.g" case 90: { // nothing to do. } break; -#line 1340 "./glsl.g" +#line 1342 "./glsl.g" case 91: { // nothing to do. } break; -#line 1347 "./glsl.g" +#line 1349 "./glsl.g" case 92: { function(1)->params = makeAstNode< List<ParameterDeclarationAST *> > (sym(2).param_declaration); } break; -#line 1355 "./glsl.g" +#line 1357 "./glsl.g" case 93: { function(1)->params = makeAstNode< List<ParameterDeclarationAST *> > (function(1)->params, sym(3).param_declaration); } break; -#line 1363 "./glsl.g" +#line 1365 "./glsl.g" case 94: { function(1) = makeAstNode<FunctionDeclarationAST>(type(1), string(2)); } break; -#line 1370 "./glsl.g" +#line 1372 "./glsl.g" case 95: { sym(1).param_declarator.type = type(1); sym(1).param_declarator.name = string(2); } break; -#line 1378 "./glsl.g" +#line 1380 "./glsl.g" case 96: { sym(1).param_declarator.type = makeAstNode<ArrayTypeAST>(type(1), expression(4)); sym(1).param_declarator.name = string(2); } break; -#line 1386 "./glsl.g" +#line 1388 "./glsl.g" case 97: { ast(1) = makeAstNode<ParameterDeclarationAST> @@ -881,7 +883,7 @@ case 97: { sym(3).param_declarator.name); } break; -#line 1398 "./glsl.g" +#line 1400 "./glsl.g" case 98: { ast(1) = makeAstNode<ParameterDeclarationAST> @@ -890,7 +892,7 @@ case 98: { sym(2).param_declarator.name); } break; -#line 1408 "./glsl.g" +#line 1410 "./glsl.g" case 99: { ast(1) = makeAstNode<ParameterDeclarationAST> @@ -900,7 +902,7 @@ case 99: { (const QString *)0); } break; -#line 1419 "./glsl.g" +#line 1421 "./glsl.g" case 100: { ast(1) = makeAstNode<ParameterDeclarationAST> @@ -908,44 +910,44 @@ case 100: { (const QString *)0); } break; -#line 1428 "./glsl.g" +#line 1430 "./glsl.g" case 101: { sym(1).qualifier = ParameterDeclarationAST::In; } break; -#line 1435 "./glsl.g" +#line 1437 "./glsl.g" case 102: { sym(1).qualifier = ParameterDeclarationAST::In; } break; -#line 1442 "./glsl.g" +#line 1444 "./glsl.g" case 103: { sym(1).qualifier = ParameterDeclarationAST::Out; } break; -#line 1449 "./glsl.g" +#line 1451 "./glsl.g" case 104: { sym(1).qualifier = ParameterDeclarationAST::InOut; } break; -#line 1456 "./glsl.g" +#line 1458 "./glsl.g" case 105: { // nothing to do. } break; -#line 1463 "./glsl.g" +#line 1465 "./glsl.g" case 106: { sym(1).declaration_list = makeAstNode< List<DeclarationAST *> > (sym(1).declaration); } break; -#line 1471 "./glsl.g" +#line 1473 "./glsl.g" case 107: { TypeAST *type = VariableDeclarationAST::declarationType(sym(1).declaration_list); @@ -954,7 +956,7 @@ case 107: { (sym(1).declaration_list, decl); } break; -#line 1481 "./glsl.g" +#line 1483 "./glsl.g" case 108: { TypeAST *type = VariableDeclarationAST::declarationType(sym(1).declaration_list); @@ -964,7 +966,7 @@ case 108: { (sym(1).declaration_list, decl); } break; -#line 1492 "./glsl.g" +#line 1494 "./glsl.g" case 109: { TypeAST *type = VariableDeclarationAST::declarationType(sym(1).declaration_list); @@ -974,7 +976,7 @@ case 109: { (sym(1).declaration_list, decl); } break; -#line 1503 "./glsl.g" +#line 1505 "./glsl.g" case 110: { TypeAST *type = VariableDeclarationAST::declarationType(sym(1).declaration_list); @@ -985,7 +987,7 @@ case 110: { (sym(1).declaration_list, decl); } break; -#line 1515 "./glsl.g" +#line 1517 "./glsl.g" case 111: { TypeAST *type = VariableDeclarationAST::declarationType(sym(1).declaration_list); @@ -996,7 +998,7 @@ case 111: { (sym(1).declaration_list, decl); } break; -#line 1527 "./glsl.g" +#line 1529 "./glsl.g" case 112: { TypeAST *type = VariableDeclarationAST::declarationType(sym(1).declaration_list); @@ -1006,40 +1008,40 @@ case 112: { (sym(1).declaration_list, decl); } break; -#line 1538 "./glsl.g" +#line 1540 "./glsl.g" case 113: { ast(1) = makeAstNode<TypeDeclarationAST>(type(1)); } break; -#line 1545 "./glsl.g" +#line 1547 "./glsl.g" case 114: { ast(1) = makeAstNode<VariableDeclarationAST>(type(1), string(2)); } break; -#line 1552 "./glsl.g" +#line 1554 "./glsl.g" case 115: { ast(1) = makeAstNode<VariableDeclarationAST> (makeAstNode<ArrayTypeAST>(type(1)), string(2)); } break; -#line 1560 "./glsl.g" +#line 1562 "./glsl.g" case 116: { ast(1) = makeAstNode<VariableDeclarationAST> (makeAstNode<ArrayTypeAST>(type(1), expression(4)), string(2)); } break; -#line 1568 "./glsl.g" +#line 1570 "./glsl.g" case 117: { ast(1) = makeAstNode<VariableDeclarationAST> (makeAstNode<ArrayTypeAST>(type(1)), string(2), expression(6)); } break; -#line 1576 "./glsl.g" +#line 1578 "./glsl.g" case 118: { ast(1) = makeAstNode<VariableDeclarationAST> @@ -1047,26 +1049,26 @@ case 118: { string(2), expression(7)); } break; -#line 1585 "./glsl.g" +#line 1587 "./glsl.g" case 119: { ast(1) = makeAstNode<VariableDeclarationAST> (type(1), string(2), expression(4)); } break; -#line 1593 "./glsl.g" +#line 1595 "./glsl.g" case 120: { ast(1) = makeAstNode<InvariantDeclarationAST>(string(2)); } break; -#line 1600 "./glsl.g" +#line 1602 "./glsl.g" case 121: { ast(1) = makeAstNode<QualifiedTypeAST>(0, type(1), (List<LayoutQualifierAST *> *)0); } break; -#line 1607 "./glsl.g" +#line 1609 "./glsl.g" case 122: { ast(1) = makeAstNode<QualifiedTypeAST> @@ -1074,207 +1076,207 @@ case 122: { sym(1).type_qualifier.layout_list); } break; -#line 1616 "./glsl.g" +#line 1618 "./glsl.g" case 123: { sym(1).qualifier = QualifiedTypeAST::Invariant; } break; -#line 1623 "./glsl.g" +#line 1625 "./glsl.g" case 124: { sym(1).qualifier = QualifiedTypeAST::Smooth; } break; -#line 1630 "./glsl.g" +#line 1632 "./glsl.g" case 125: { sym(1).qualifier = QualifiedTypeAST::Flat; } break; -#line 1637 "./glsl.g" +#line 1639 "./glsl.g" case 126: { sym(1).qualifier = QualifiedTypeAST::NoPerspective; } break; -#line 1644 "./glsl.g" +#line 1646 "./glsl.g" case 127: { sym(1) = sym(3); } break; -#line 1651 "./glsl.g" +#line 1653 "./glsl.g" case 128: { sym(1).layout_list = makeAstNode< List<LayoutQualifierAST *> >(sym(1).layout); } break; -#line 1658 "./glsl.g" +#line 1660 "./glsl.g" case 129: { sym(1).layout_list = makeAstNode< List<LayoutQualifierAST *> >(sym(1).layout_list, sym(3).layout); } break; -#line 1665 "./glsl.g" +#line 1667 "./glsl.g" case 130: { sym(1).layout = makeAstNode<LayoutQualifierAST>(string(1), (const QString *)0); } break; -#line 1672 "./glsl.g" +#line 1674 "./glsl.g" case 131: { sym(1).layout = makeAstNode<LayoutQualifierAST>(string(1), string(3)); } break; -#line 1679 "./glsl.g" +#line 1681 "./glsl.g" case 132: { sym(1).qualifier = QualifiedTypeAST::Const; } break; -#line 1686 "./glsl.g" +#line 1688 "./glsl.g" case 133: { sym(1).type_qualifier.qualifier = sym(1).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1694 "./glsl.g" +#line 1696 "./glsl.g" case 134: { sym(1).type_qualifier.layout_list = sym(1).layout_list; sym(1).type_qualifier.qualifier = 0; } break; -#line 1702 "./glsl.g" +#line 1704 "./glsl.g" case 135: { sym(1).type_qualifier.layout_list = sym(1).layout_list; sym(1).type_qualifier.qualifier = sym(2).qualifier; } break; -#line 1710 "./glsl.g" +#line 1712 "./glsl.g" case 136: { sym(1).type_qualifier.qualifier = sym(1).qualifier | sym(2).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1718 "./glsl.g" +#line 1720 "./glsl.g" case 137: { sym(1).type_qualifier.qualifier = sym(1).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1726 "./glsl.g" +#line 1728 "./glsl.g" case 138: { sym(1).type_qualifier.qualifier = sym(1).qualifier | sym(2).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1734 "./glsl.g" +#line 1736 "./glsl.g" case 139: { sym(1).type_qualifier.qualifier = sym(1).qualifier | sym(2).qualifier | sym(3).qualifier; sym(1).type_qualifier.layout_list = 0; } break; -#line 1742 "./glsl.g" +#line 1744 "./glsl.g" case 140: { sym(1).type_qualifier.qualifier = QualifiedTypeAST::Invariant; sym(1).type_qualifier.layout_list = 0; } break; -#line 1750 "./glsl.g" +#line 1752 "./glsl.g" case 141: { sym(1).qualifier = QualifiedTypeAST::Const; } break; -#line 1757 "./glsl.g" +#line 1759 "./glsl.g" case 142: { sym(1).qualifier = QualifiedTypeAST::Attribute; } break; -#line 1764 "./glsl.g" +#line 1766 "./glsl.g" case 143: { sym(1).qualifier = QualifiedTypeAST::Varying; } break; -#line 1771 "./glsl.g" +#line 1773 "./glsl.g" case 144: { sym(1).qualifier = QualifiedTypeAST::CentroidVarying; } break; -#line 1778 "./glsl.g" +#line 1780 "./glsl.g" case 145: { sym(1).qualifier = QualifiedTypeAST::In; } break; -#line 1785 "./glsl.g" +#line 1787 "./glsl.g" case 146: { sym(1).qualifier = QualifiedTypeAST::Out; } break; -#line 1792 "./glsl.g" +#line 1794 "./glsl.g" case 147: { sym(1).qualifier = QualifiedTypeAST::CentroidIn; } break; -#line 1799 "./glsl.g" +#line 1801 "./glsl.g" case 148: { sym(1).qualifier = QualifiedTypeAST::CentroidOut; } break; -#line 1806 "./glsl.g" +#line 1808 "./glsl.g" case 149: { sym(1).qualifier = QualifiedTypeAST::PatchIn; } break; -#line 1813 "./glsl.g" +#line 1815 "./glsl.g" case 150: { sym(1).qualifier = QualifiedTypeAST::PatchOut; } break; -#line 1820 "./glsl.g" +#line 1822 "./glsl.g" case 151: { sym(1).qualifier = QualifiedTypeAST::SampleIn; } break; -#line 1827 "./glsl.g" +#line 1829 "./glsl.g" case 152: { sym(1).qualifier = QualifiedTypeAST::SampleOut; } break; -#line 1834 "./glsl.g" +#line 1836 "./glsl.g" case 153: { sym(1).qualifier = QualifiedTypeAST::Uniform; } break; -#line 1841 "./glsl.g" +#line 1843 "./glsl.g" case 154: { // nothing to do. } break; -#line 1848 "./glsl.g" +#line 1850 "./glsl.g" case 155: { if (!type(2)->setPrecision(sym(1).precision)) { @@ -1283,595 +1285,595 @@ case 155: { ast(1) = type(2); } break; -#line 1858 "./glsl.g" +#line 1860 "./glsl.g" case 156: { // nothing to do. } break; -#line 1865 "./glsl.g" +#line 1867 "./glsl.g" case 157: { ast(1) = makeAstNode<ArrayTypeAST>(type(1)); } break; -#line 1872 "./glsl.g" +#line 1874 "./glsl.g" case 158: { ast(1) = makeAstNode<ArrayTypeAST>(type(1), expression(3)); } break; -#line 1879 "./glsl.g" +#line 1881 "./glsl.g" case 159: { ast(1) = makeBasicType(T_VOID); } break; -#line 1886 "./glsl.g" +#line 1888 "./glsl.g" case 160: { ast(1) = makeBasicType(T_FLOAT); } break; -#line 1893 "./glsl.g" +#line 1895 "./glsl.g" case 161: { ast(1) = makeBasicType(T_DOUBLE); } break; -#line 1900 "./glsl.g" +#line 1902 "./glsl.g" case 162: { ast(1) = makeBasicType(T_INT); } break; -#line 1907 "./glsl.g" +#line 1909 "./glsl.g" case 163: { ast(1) = makeBasicType(T_UINT); } break; -#line 1914 "./glsl.g" +#line 1916 "./glsl.g" case 164: { ast(1) = makeBasicType(T_BOOL); } break; -#line 1921 "./glsl.g" +#line 1923 "./glsl.g" case 165: { ast(1) = makeBasicType(T_VEC2); } break; -#line 1928 "./glsl.g" +#line 1930 "./glsl.g" case 166: { ast(1) = makeBasicType(T_VEC3); } break; -#line 1935 "./glsl.g" +#line 1937 "./glsl.g" case 167: { ast(1) = makeBasicType(T_VEC4); } break; -#line 1942 "./glsl.g" +#line 1944 "./glsl.g" case 168: { ast(1) = makeBasicType(T_DVEC2); } break; -#line 1949 "./glsl.g" +#line 1951 "./glsl.g" case 169: { ast(1) = makeBasicType(T_DVEC3); } break; -#line 1956 "./glsl.g" +#line 1958 "./glsl.g" case 170: { ast(1) = makeBasicType(T_DVEC4); } break; -#line 1963 "./glsl.g" +#line 1965 "./glsl.g" case 171: { ast(1) = makeBasicType(T_BVEC2); } break; -#line 1970 "./glsl.g" +#line 1972 "./glsl.g" case 172: { ast(1) = makeBasicType(T_BVEC3); } break; -#line 1977 "./glsl.g" +#line 1979 "./glsl.g" case 173: { ast(1) = makeBasicType(T_BVEC4); } break; -#line 1984 "./glsl.g" +#line 1986 "./glsl.g" case 174: { ast(1) = makeBasicType(T_IVEC2); } break; -#line 1991 "./glsl.g" +#line 1993 "./glsl.g" case 175: { ast(1) = makeBasicType(T_IVEC3); } break; -#line 1998 "./glsl.g" +#line 2000 "./glsl.g" case 176: { ast(1) = makeBasicType(T_IVEC4); } break; -#line 2005 "./glsl.g" +#line 2007 "./glsl.g" case 177: { ast(1) = makeBasicType(T_UVEC2); } break; -#line 2012 "./glsl.g" +#line 2014 "./glsl.g" case 178: { ast(1) = makeBasicType(T_UVEC3); } break; -#line 2019 "./glsl.g" +#line 2021 "./glsl.g" case 179: { ast(1) = makeBasicType(T_UVEC4); } break; -#line 2026 "./glsl.g" +#line 2028 "./glsl.g" case 180: { ast(1) = makeBasicType(T_MAT2); } break; -#line 2033 "./glsl.g" +#line 2035 "./glsl.g" case 181: { ast(1) = makeBasicType(T_MAT3); } break; -#line 2040 "./glsl.g" +#line 2042 "./glsl.g" case 182: { ast(1) = makeBasicType(T_MAT4); } break; -#line 2047 "./glsl.g" +#line 2049 "./glsl.g" case 183: { ast(1) = makeBasicType(T_MAT2); } break; -#line 2054 "./glsl.g" +#line 2056 "./glsl.g" case 184: { ast(1) = makeBasicType(T_MAT2X3); } break; -#line 2061 "./glsl.g" +#line 2063 "./glsl.g" case 185: { ast(1) = makeBasicType(T_MAT2X4); } break; -#line 2068 "./glsl.g" +#line 2070 "./glsl.g" case 186: { ast(1) = makeBasicType(T_MAT3X2); } break; -#line 2075 "./glsl.g" +#line 2077 "./glsl.g" case 187: { ast(1) = makeBasicType(T_MAT3); } break; -#line 2082 "./glsl.g" +#line 2084 "./glsl.g" case 188: { ast(1) = makeBasicType(T_MAT3X4); } break; -#line 2089 "./glsl.g" +#line 2091 "./glsl.g" case 189: { ast(1) = makeBasicType(T_MAT4X2); } break; -#line 2096 "./glsl.g" +#line 2098 "./glsl.g" case 190: { ast(1) = makeBasicType(T_MAT4X3); } break; -#line 2103 "./glsl.g" +#line 2105 "./glsl.g" case 191: { ast(1) = makeBasicType(T_MAT4); } break; -#line 2110 "./glsl.g" +#line 2112 "./glsl.g" case 192: { ast(1) = makeBasicType(T_DMAT2); } break; -#line 2117 "./glsl.g" +#line 2119 "./glsl.g" case 193: { ast(1) = makeBasicType(T_DMAT3); } break; -#line 2124 "./glsl.g" +#line 2126 "./glsl.g" case 194: { ast(1) = makeBasicType(T_DMAT4); } break; -#line 2131 "./glsl.g" +#line 2133 "./glsl.g" case 195: { ast(1) = makeBasicType(T_DMAT2); } break; -#line 2138 "./glsl.g" +#line 2140 "./glsl.g" case 196: { ast(1) = makeBasicType(T_DMAT2X3); } break; -#line 2145 "./glsl.g" +#line 2147 "./glsl.g" case 197: { ast(1) = makeBasicType(T_DMAT2X4); } break; -#line 2152 "./glsl.g" +#line 2154 "./glsl.g" case 198: { ast(1) = makeBasicType(T_DMAT3X2); } break; -#line 2159 "./glsl.g" +#line 2161 "./glsl.g" case 199: { ast(1) = makeBasicType(T_DMAT3); } break; -#line 2166 "./glsl.g" +#line 2168 "./glsl.g" case 200: { ast(1) = makeBasicType(T_DMAT3X4); } break; -#line 2173 "./glsl.g" +#line 2175 "./glsl.g" case 201: { ast(1) = makeBasicType(T_DMAT4X2); } break; -#line 2180 "./glsl.g" +#line 2182 "./glsl.g" case 202: { ast(1) = makeBasicType(T_DMAT4X3); } break; -#line 2187 "./glsl.g" +#line 2189 "./glsl.g" case 203: { ast(1) = makeBasicType(T_DMAT4); } break; -#line 2194 "./glsl.g" +#line 2196 "./glsl.g" case 204: { ast(1) = makeBasicType(T_SAMPLER1D); } break; -#line 2201 "./glsl.g" +#line 2203 "./glsl.g" case 205: { ast(1) = makeBasicType(T_SAMPLER2D); } break; -#line 2208 "./glsl.g" +#line 2210 "./glsl.g" case 206: { ast(1) = makeBasicType(T_SAMPLER3D); } break; -#line 2215 "./glsl.g" +#line 2217 "./glsl.g" case 207: { ast(1) = makeBasicType(T_SAMPLERCUBE); } break; -#line 2222 "./glsl.g" +#line 2224 "./glsl.g" case 208: { ast(1) = makeBasicType(T_SAMPLER1DSHADOW); } break; -#line 2229 "./glsl.g" +#line 2231 "./glsl.g" case 209: { ast(1) = makeBasicType(T_SAMPLER2DSHADOW); } break; -#line 2236 "./glsl.g" +#line 2238 "./glsl.g" case 210: { ast(1) = makeBasicType(T_SAMPLERCUBESHADOW); } break; -#line 2243 "./glsl.g" +#line 2245 "./glsl.g" case 211: { ast(1) = makeBasicType(T_SAMPLER1DARRAY); } break; -#line 2250 "./glsl.g" +#line 2252 "./glsl.g" case 212: { ast(1) = makeBasicType(T_SAMPLER2DARRAY); } break; -#line 2257 "./glsl.g" +#line 2259 "./glsl.g" case 213: { ast(1) = makeBasicType(T_SAMPLER1DARRAYSHADOW); } break; -#line 2264 "./glsl.g" +#line 2266 "./glsl.g" case 214: { ast(1) = makeBasicType(T_SAMPLER2DARRAYSHADOW); } break; -#line 2271 "./glsl.g" +#line 2273 "./glsl.g" case 215: { ast(1) = makeBasicType(T_SAMPLERCUBEARRAY); } break; -#line 2278 "./glsl.g" +#line 2280 "./glsl.g" case 216: { ast(1) = makeBasicType(T_SAMPLERCUBEARRAYSHADOW); } break; -#line 2285 "./glsl.g" +#line 2287 "./glsl.g" case 217: { ast(1) = makeBasicType(T_ISAMPLER1D); } break; -#line 2292 "./glsl.g" +#line 2294 "./glsl.g" case 218: { ast(1) = makeBasicType(T_ISAMPLER2D); } break; -#line 2299 "./glsl.g" +#line 2301 "./glsl.g" case 219: { ast(1) = makeBasicType(T_ISAMPLER3D); } break; -#line 2306 "./glsl.g" +#line 2308 "./glsl.g" case 220: { ast(1) = makeBasicType(T_ISAMPLERCUBE); } break; -#line 2313 "./glsl.g" +#line 2315 "./glsl.g" case 221: { ast(1) = makeBasicType(T_ISAMPLER1DARRAY); } break; -#line 2320 "./glsl.g" +#line 2322 "./glsl.g" case 222: { ast(1) = makeBasicType(T_ISAMPLER2DARRAY); } break; -#line 2327 "./glsl.g" +#line 2329 "./glsl.g" case 223: { ast(1) = makeBasicType(T_ISAMPLERCUBEARRAY); } break; -#line 2334 "./glsl.g" +#line 2336 "./glsl.g" case 224: { ast(1) = makeBasicType(T_USAMPLER1D); } break; -#line 2341 "./glsl.g" +#line 2343 "./glsl.g" case 225: { ast(1) = makeBasicType(T_USAMPLER2D); } break; -#line 2348 "./glsl.g" +#line 2350 "./glsl.g" case 226: { ast(1) = makeBasicType(T_USAMPLER3D); } break; -#line 2355 "./glsl.g" +#line 2357 "./glsl.g" case 227: { ast(1) = makeBasicType(T_USAMPLERCUBE); } break; -#line 2362 "./glsl.g" +#line 2364 "./glsl.g" case 228: { ast(1) = makeBasicType(T_USAMPLER1DARRAY); } break; -#line 2369 "./glsl.g" +#line 2371 "./glsl.g" case 229: { ast(1) = makeBasicType(T_USAMPLER2DARRAY); } break; -#line 2376 "./glsl.g" +#line 2378 "./glsl.g" case 230: { ast(1) = makeBasicType(T_USAMPLERCUBEARRAY); } break; -#line 2383 "./glsl.g" +#line 2385 "./glsl.g" case 231: { ast(1) = makeBasicType(T_SAMPLER2DRECT); } break; -#line 2390 "./glsl.g" +#line 2392 "./glsl.g" case 232: { ast(1) = makeBasicType(T_SAMPLER2DRECTSHADOW); } break; -#line 2397 "./glsl.g" +#line 2399 "./glsl.g" case 233: { ast(1) = makeBasicType(T_ISAMPLER2DRECT); } break; -#line 2404 "./glsl.g" +#line 2406 "./glsl.g" case 234: { ast(1) = makeBasicType(T_USAMPLER2DRECT); } break; -#line 2411 "./glsl.g" +#line 2413 "./glsl.g" case 235: { ast(1) = makeBasicType(T_SAMPLERBUFFER); } break; -#line 2418 "./glsl.g" +#line 2420 "./glsl.g" case 236: { ast(1) = makeBasicType(T_ISAMPLERBUFFER); } break; -#line 2425 "./glsl.g" +#line 2427 "./glsl.g" case 237: { ast(1) = makeBasicType(T_USAMPLERBUFFER); } break; -#line 2432 "./glsl.g" +#line 2434 "./glsl.g" case 238: { ast(1) = makeBasicType(T_SAMPLER2DMS); } break; -#line 2439 "./glsl.g" +#line 2441 "./glsl.g" case 239: { ast(1) = makeBasicType(T_ISAMPLER2DMS); } break; -#line 2446 "./glsl.g" +#line 2448 "./glsl.g" case 240: { ast(1) = makeBasicType(T_USAMPLER2DMS); } break; -#line 2453 "./glsl.g" +#line 2455 "./glsl.g" case 241: { ast(1) = makeBasicType(T_SAMPLER2DMSARRAY); } break; -#line 2460 "./glsl.g" +#line 2462 "./glsl.g" case 242: { ast(1) = makeBasicType(T_ISAMPLER2DMSARRAY); } break; -#line 2467 "./glsl.g" +#line 2469 "./glsl.g" case 243: { ast(1) = makeBasicType(T_USAMPLER2DMSARRAY); } break; -#line 2474 "./glsl.g" +#line 2476 "./glsl.g" case 244: { // nothing to do. } break; -#line 2481 "./glsl.g" +#line 2483 "./glsl.g" case 245: { ast(1) = makeAstNode<NamedTypeAST>(string(1)); } break; -#line 2488 "./glsl.g" +#line 2490 "./glsl.g" case 246: { sym(1).precision = TypeAST::Highp; } break; -#line 2495 "./glsl.g" +#line 2497 "./glsl.g" case 247: { sym(1).precision = TypeAST::Mediump; } break; -#line 2502 "./glsl.g" +#line 2504 "./glsl.g" case 248: { sym(1).precision = TypeAST::Lowp; } break; -#line 2509 "./glsl.g" +#line 2511 "./glsl.g" case 249: { ast(1) = makeAstNode<StructTypeAST>(string(2), sym(4).field_list); } break; -#line 2516 "./glsl.g" +#line 2518 "./glsl.g" case 250: { ast(1) = makeAstNode<StructTypeAST>(sym(3).field_list); } break; -#line 2523 "./glsl.g" +#line 2525 "./glsl.g" case 251: { // nothing to do. } break; -#line 2530 "./glsl.g" +#line 2532 "./glsl.g" case 252: { sym(1).field_list = appendLists(sym(1).field_list, sym(2).field_list); } break; -#line 2537 "./glsl.g" +#line 2539 "./glsl.g" case 253: { sym(1).field_list = StructTypeAST::fixInnerTypes(type(1), sym(2).field_list); } break; -#line 2544 "./glsl.g" +#line 2546 "./glsl.g" case 254: { sym(1).field_list = StructTypeAST::fixInnerTypes @@ -1880,106 +1882,106 @@ case 254: { sym(1).type_qualifier.layout_list), sym(3).field_list); } break; -#line 2554 "./glsl.g" +#line 2556 "./glsl.g" case 255: { // nothing to do. sym(1).field_list = makeAstNode< List<StructTypeAST::Field *> >(sym(1).field); } break; -#line 2562 "./glsl.g" +#line 2564 "./glsl.g" case 256: { sym(1).field_list = makeAstNode< List<StructTypeAST::Field *> >(sym(1).field_list, sym(3).field); } break; -#line 2569 "./glsl.g" +#line 2571 "./glsl.g" case 257: { sym(1).field = makeAstNode<StructTypeAST::Field>(string(1)); } break; -#line 2576 "./glsl.g" +#line 2578 "./glsl.g" case 258: { sym(1).field = makeAstNode<StructTypeAST::Field> (string(1), makeAstNode<ArrayTypeAST>((TypeAST *)0)); } break; -#line 2584 "./glsl.g" +#line 2586 "./glsl.g" case 259: { sym(1).field = makeAstNode<StructTypeAST::Field> (string(1), makeAstNode<ArrayTypeAST>((TypeAST *)0, expression(3))); } break; -#line 2592 "./glsl.g" +#line 2594 "./glsl.g" case 260: { // nothing to do. } break; -#line 2599 "./glsl.g" +#line 2601 "./glsl.g" case 261: { ast(1) = makeAstNode<DeclarationStatementAST>(sym(1).declaration); } break; -#line 2606 "./glsl.g" +#line 2608 "./glsl.g" case 262: { // nothing to do. } break; -#line 2613 "./glsl.g" +#line 2615 "./glsl.g" case 263: { // nothing to do. } break; -#line 2620 "./glsl.g" +#line 2622 "./glsl.g" case 264: { // nothing to do. } break; -#line 2627 "./glsl.g" +#line 2629 "./glsl.g" case 265: { // nothing to do. } break; -#line 2634 "./glsl.g" +#line 2636 "./glsl.g" case 266: { // nothing to do. } break; -#line 2641 "./glsl.g" +#line 2643 "./glsl.g" case 267: { // nothing to do. } break; -#line 2648 "./glsl.g" +#line 2650 "./glsl.g" case 268: { // nothing to do. } break; -#line 2655 "./glsl.g" +#line 2657 "./glsl.g" case 269: { // nothing to do. } break; -#line 2662 "./glsl.g" +#line 2664 "./glsl.g" case 270: { // nothing to do. } break; -#line 2669 "./glsl.g" +#line 2671 "./glsl.g" case 271: { CompoundStatementAST *stmt = makeAstNode<CompoundStatementAST>(); @@ -1988,7 +1990,7 @@ case 271: { ast(1) = stmt; } break; -#line 2679 "./glsl.g" +#line 2681 "./glsl.g" case 272: { CompoundStatementAST *stmt = makeAstNode<CompoundStatementAST>(sym(2).statement_list); @@ -1997,19 +1999,19 @@ case 272: { ast(1) = stmt; } break; -#line 2689 "./glsl.g" +#line 2691 "./glsl.g" case 273: { // nothing to do. } break; -#line 2696 "./glsl.g" +#line 2698 "./glsl.g" case 274: { // nothing to do. } break; -#line 2703 "./glsl.g" +#line 2705 "./glsl.g" case 275: { CompoundStatementAST *stmt = makeAstNode<CompoundStatementAST>(); @@ -2018,7 +2020,7 @@ case 275: { ast(1) = stmt; } break; -#line 2713 "./glsl.g" +#line 2715 "./glsl.g" case 276: { CompoundStatementAST *stmt = makeAstNode<CompoundStatementAST>(sym(2).statement_list); @@ -2027,186 +2029,186 @@ case 276: { ast(1) = stmt; } break; -#line 2723 "./glsl.g" +#line 2725 "./glsl.g" case 277: { sym(1).statement_list = makeAstNode< List<StatementAST *> >(sym(1).statement); } break; -#line 2730 "./glsl.g" +#line 2732 "./glsl.g" case 278: { sym(1).statement_list = makeAstNode< List<StatementAST *> >(sym(1).statement_list, sym(2).statement); } break; -#line 2737 "./glsl.g" +#line 2739 "./glsl.g" case 279: { ast(1) = makeAstNode<CompoundStatementAST>(); // Empty statement } break; -#line 2744 "./glsl.g" +#line 2746 "./glsl.g" case 280: { ast(1) = makeAstNode<ExpressionStatementAST>(expression(1)); } break; -#line 2751 "./glsl.g" +#line 2753 "./glsl.g" case 281: { ast(1) = makeAstNode<IfStatementAST>(expression(3), sym(5).ifstmt.thenClause, sym(5).ifstmt.elseClause); } break; -#line 2758 "./glsl.g" +#line 2760 "./glsl.g" case 282: { sym(1).ifstmt.thenClause = statement(1); sym(1).ifstmt.elseClause = statement(3); } break; -#line 2766 "./glsl.g" +#line 2768 "./glsl.g" case 283: { sym(1).ifstmt.thenClause = statement(1); sym(1).ifstmt.elseClause = 0; } break; -#line 2774 "./glsl.g" +#line 2776 "./glsl.g" case 284: { // nothing to do. } break; -#line 2781 "./glsl.g" +#line 2783 "./glsl.g" case 285: { ast(1) = makeAstNode<DeclarationExpressionAST> (type(1), string(2), expression(4)); } break; -#line 2789 "./glsl.g" +#line 2791 "./glsl.g" case 286: { ast(1) = makeAstNode<SwitchStatementAST>(expression(3), statement(6)); } break; -#line 2796 "./glsl.g" +#line 2798 "./glsl.g" case 287: { ast(1) = makeAstNode<CompoundStatementAST>(); } break; -#line 2803 "./glsl.g" +#line 2805 "./glsl.g" case 288: { ast(1) = makeAstNode<CompoundStatementAST>(sym(1).statement_list); } break; -#line 2810 "./glsl.g" +#line 2812 "./glsl.g" case 289: { ast(1) = makeAstNode<CaseLabelStatementAST>(expression(2)); } break; -#line 2817 "./glsl.g" +#line 2819 "./glsl.g" case 290: { ast(1) = makeAstNode<CaseLabelStatementAST>(); } break; -#line 2824 "./glsl.g" +#line 2826 "./glsl.g" case 291: { ast(1) = makeAstNode<WhileStatementAST>(expression(3), statement(5)); } break; -#line 2831 "./glsl.g" +#line 2833 "./glsl.g" case 292: { ast(1) = makeAstNode<DoStatementAST>(statement(2), expression(5)); } break; -#line 2838 "./glsl.g" +#line 2840 "./glsl.g" case 293: { ast(1) = makeAstNode<ForStatementAST>(statement(3), sym(4).forstmt.condition, sym(4).forstmt.increment, statement(6)); } break; -#line 2845 "./glsl.g" +#line 2847 "./glsl.g" case 294: { // nothing to do. } break; -#line 2852 "./glsl.g" +#line 2854 "./glsl.g" case 295: { // nothing to do. } break; -#line 2859 "./glsl.g" +#line 2861 "./glsl.g" case 296: { // nothing to do. } break; -#line 2866 "./glsl.g" +#line 2868 "./glsl.g" case 297: { // nothing to do. } break; -#line 2873 "./glsl.g" +#line 2875 "./glsl.g" case 298: { sym(1).forstmt.condition = expression(1); sym(1).forstmt.increment = 0; } break; -#line 2881 "./glsl.g" +#line 2883 "./glsl.g" case 299: { sym(1).forstmt.condition = expression(1); sym(1).forstmt.increment = expression(3); } break; -#line 2889 "./glsl.g" +#line 2891 "./glsl.g" case 300: { ast(1) = makeAstNode<JumpStatementAST>(AST::Kind_Continue); } break; -#line 2896 "./glsl.g" +#line 2898 "./glsl.g" case 301: { ast(1) = makeAstNode<JumpStatementAST>(AST::Kind_Break); } break; -#line 2903 "./glsl.g" +#line 2905 "./glsl.g" case 302: { ast(1) = makeAstNode<ReturnStatementAST>(); } break; -#line 2910 "./glsl.g" +#line 2912 "./glsl.g" case 303: { ast(1) = makeAstNode<ReturnStatementAST>(expression(2)); } break; -#line 2917 "./glsl.g" +#line 2919 "./glsl.g" case 304: { ast(1) = makeAstNode<JumpStatementAST>(AST::Kind_Discard); } break; -#line 2924 "./glsl.g" +#line 2926 "./glsl.g" case 305: { ast(1) = makeAstNode<TranslationUnitAST>(sym(1).declaration_list); } break; -#line 2931 "./glsl.g" +#line 2933 "./glsl.g" case 306: { if (sym(1).declaration) { @@ -2217,7 +2219,7 @@ case 306: { } } break; -#line 2943 "./glsl.g" +#line 2945 "./glsl.g" case 307: { if (sym(1).declaration_list && sym(2).declaration) { @@ -2233,49 +2235,49 @@ case 307: { } } break; -#line 2960 "./glsl.g" +#line 2962 "./glsl.g" case 308: { // nothing to do. } break; -#line 2967 "./glsl.g" +#line 2969 "./glsl.g" case 309: { // nothing to do. } break; -#line 2974 "./glsl.g" +#line 2976 "./glsl.g" case 310: { ast(1) = 0; } break; -#line 2981 "./glsl.g" +#line 2983 "./glsl.g" case 311: { function(1)->body = statement(2); } break; -#line 2988 "./glsl.g" +#line 2990 "./glsl.g" case 312: { ast(1) = 0; } break; -#line 2996 "./glsl.g" +#line 2998 "./glsl.g" case 313: { ast(1) = ast(2); } break; -#line 3003 "./glsl.g" +#line 3005 "./glsl.g" case 314: { ast(1) = ast(2); } break; -#line 3009 "./glsl.g" +#line 3011 "./glsl.g" } // end switch } // end Parser::reduce() diff --git a/src/libs/glsl/glslparsertable.cpp b/src/libs/glsl/glslparsertable.cpp index 67666dba7e..55c39d1f99 100644 --- a/src/libs/glsl/glslparsertable.cpp +++ b/src/libs/glsl/glslparsertable.cpp @@ -1,26 +1,31 @@ /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ +** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** $QT_END_LICENSE$ ** @@ -32,1266 +37,1258 @@ QT_BEGIN_NAMESPACE const char *const GLSLParserTable::spell [] = { - "end of file", "feed GLSL", "feed expression", "+=", "&", "&=", "&&", "attribute", "!", "bool", - "break", "bvec2", "bvec3", "bvec4", "^", "case", "centroid", ":", ",", "const", - "continue", "-", "--", "default", "discard", "/=", "dmat2", "dmat2x2", "dmat2x3", "dmat2x4", - "dmat3", "dmat3x2", "dmat3x3", "dmat3x4", "dmat4", "dmat4x2", "dmat4x3", "dmat4x4", "do", ".", - "double", "dvec2", "dvec3", "dvec4", "else", "=", "==", "flat", "float", "for", - ">=", "highp", "identifier", "if", "in", "++", "inout", "int", "invariant", "isampler1D", - "isampler1DArray", "isampler2D", "isampler2DArray", "isampler2DMS", "isampler2DMSArray", "isampler2DRect", "isampler3D", "isamplerBuffer", "isamplerCube", "isamplerCubeArray", - "ivec2", "ivec3", "ivec4", "layout", "<", "<<=", "{", "[", "<<", "(", - "<=", "lowp", "mat2", "mat2x2", "mat2x3", "mat2x4", "mat3", "mat3x2", "mat3x3", "mat3x4", - "mat4", "mat4x2", "mat4x3", "mat4x4", "mediump", "%=", "*=", "!=", "noperspective", "number constant", - "|=", "||", "out", "patch", "%", "plus", "precision", "?", "return", ">", - ">>=", "}", "]", ">>", ")", "sample", "sampler1D", "sampler1DArray", "sampler1DArrayShadow", "sampler1DShadow", - "sampler2D", "sampler2DArray", "sampler2DArrayShadow", "sampler2DMS", "sampler2DMSArray", "sampler2DRect", "sampler2DRectShadow", "sampler2DShadow", "sampler3D", "samplerBuffer", - "samplerCube", "samplerCubeArray", "samplerCubeArrayShadow", "samplerCubeShadow", ";", "/", "smooth", "*", "struct", "subroutine", - "-=", "switch", "~", "type_name", "uint", "uniform", "usampler1D", "usampler1DArray", "usampler2D", "usampler2DArray", - "usampler2DMS", "usampler2DMSarray", "usampler2DRect", "usampler3D", "usamplerBuffer", "usamplerCube", "usamplerCubeArray", "uvec2", "uvec3", "uvec4", - "varying", "vec2", "vec3", "vec4", "|", "void", "while", "^=", "^^", "true", - "false", "preprocessor directive", "comment", "error", "reserved word" -}; + "end of file", "feed GLSL", "feed expression", "+=", "&", "&=", "&&", "attribute", "!", "bool", + "break", "bvec2", "bvec3", "bvec4", "^", "case", "centroid", ":", ",", "const", + "continue", "-", "--", "default", "discard", "/=", "dmat2", "dmat2x2", "dmat2x3", "dmat2x4", + "dmat3", "dmat3x2", "dmat3x3", "dmat3x4", "dmat4", "dmat4x2", "dmat4x3", "dmat4x4", "do", ".", + "double", "dvec2", "dvec3", "dvec4", "else", "=", "==", "flat", "float", "for", + ">=", "highp", "identifier", "if", "in", "++", "inout", "int", "invariant", "isampler1D", + "isampler1DArray", "isampler2D", "isampler2DArray", "isampler2DMS", "isampler2DMSArray", "isampler2DRect", "isampler3D", "isamplerBuffer", "isamplerCube", "isamplerCubeArray", + "ivec2", "ivec3", "ivec4", "layout", "<", "<<=", "{", "[", "<<", "(", + "<=", "lowp", "mat2", "mat2x2", "mat2x3", "mat2x4", "mat3", "mat3x2", "mat3x3", "mat3x4", + "mat4", "mat4x2", "mat4x3", "mat4x4", "mediump", "%=", "*=", "!=", "noperspective", "number constant", + "|=", "||", "out", "patch", "%", "plus", "precision", "?", "return", ">", + ">>=", "}", "]", ">>", ")", "sample", "sampler1D", "sampler1DArray", "sampler1DArrayShadow", "sampler1DShadow", + "sampler2D", "sampler2DArray", "sampler2DArrayShadow", "sampler2DMS", "sampler2DMSArray", "sampler2DRect", "sampler2DRectShadow", "sampler2DShadow", "sampler3D", "samplerBuffer", + "samplerCube", "samplerCubeArray", "samplerCubeArrayShadow", "samplerCubeShadow", ";", "/", "smooth", "*", "struct", "subroutine", + "-=", "switch", "~", "type_name", "uint", "uniform", "usampler1D", "usampler1DArray", "usampler2D", "usampler2DArray", + "usampler2DMS", "usampler2DMSarray", "usampler2DRect", "usampler3D", "usamplerBuffer", "usamplerCube", "usamplerCubeArray", "uvec2", "uvec3", "uvec4", + "varying", "vec2", "vec3", "vec4", "|", "void", "while", "^=", "^^", "true", + "false", "preprocessor directive", "comment", "error", "reserved word"}; const short GLSLParserTable::lhs [] = { - 176, 177, 177, 177, 177, 177, 179, 179, 179, 179, - 179, 179, 180, 181, 182, 182, 183, 183, 185, 185, - 184, 184, 186, 188, 188, 190, 190, 190, 190, 191, - 191, 191, 191, 192, 192, 192, 192, 193, 193, 193, - 194, 194, 194, 195, 195, 195, 195, 195, 196, 196, - 196, 197, 197, 198, 198, 199, 199, 200, 200, 201, - 201, 202, 202, 203, 203, 187, 187, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 178, 178, - 205, 206, 206, 206, 206, 206, 206, 206, 206, 207, - 213, 213, 215, 215, 214, 218, 218, 216, 216, 216, - 216, 220, 220, 220, 220, 221, 208, 208, 208, 208, - 208, 208, 208, 223, 223, 223, 223, 223, 223, 223, - 223, 217, 217, 225, 226, 226, 226, 227, 228, 228, - 229, 229, 219, 211, 211, 211, 211, 211, 211, 211, - 211, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 189, 189, 210, 210, 210, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 209, 209, 209, 232, - 232, 212, 212, 233, 233, 234, 234, 235, 235, 235, - 224, 236, 237, 237, 239, 239, 239, 239, 239, 239, - 239, 238, 238, 247, 247, 248, 248, 246, 246, 240, - 240, 241, 249, 249, 250, 250, 242, 251, 251, 243, - 243, 244, 244, 244, 252, 252, 254, 254, 253, 253, - 245, 245, 245, 245, 245, 255, 256, 256, 257, 257, - 257, 258, 222, 175, 175, 259 -}; + 176, 177, 177, 177, 177, 177, 179, 179, 179, 179, + 179, 179, 180, 181, 182, 182, 183, 183, 185, 185, + 184, 184, 186, 188, 188, 190, 190, 190, 190, 191, + 191, 191, 191, 192, 192, 192, 192, 193, 193, 193, + 194, 194, 194, 195, 195, 195, 195, 195, 196, 196, + 196, 197, 197, 198, 198, 199, 199, 200, 200, 201, + 201, 202, 202, 203, 203, 187, 187, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 178, 178, + 205, 206, 206, 206, 206, 206, 206, 206, 206, 207, + 213, 213, 215, 215, 214, 218, 218, 216, 216, 216, + 216, 220, 220, 220, 220, 221, 208, 208, 208, 208, + 208, 208, 208, 223, 223, 223, 223, 223, 223, 223, + 223, 217, 217, 225, 226, 226, 226, 227, 228, 228, + 229, 229, 219, 211, 211, 211, 211, 211, 211, 211, + 211, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 189, 189, 210, 210, 210, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 209, 209, 209, 232, + 232, 212, 212, 233, 233, 234, 234, 235, 235, 235, + 224, 236, 237, 237, 239, 239, 239, 239, 239, 239, + 239, 238, 238, 247, 247, 248, 248, 246, 246, 240, + 240, 241, 249, 249, 250, 250, 242, 251, 251, 243, + 243, 244, 244, 244, 252, 252, 254, 254, 253, 253, + 245, 245, 245, 245, 245, 255, 256, 256, 257, 257, + 257, 258, 222, 175, 175, 259}; const short GLSLParserTable::rhs [] = { - 1, 1, 1, 1, 1, 3, 1, 4, 1, 3, - 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, - 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, - 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, - 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, - 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 3, 1, 5, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 2, 2, 4, 6, 7, 9, 10, 2, 2, - 1, 1, 2, 3, 3, 2, 5, 3, 2, 3, - 2, 1, 1, 1, 1, 1, 1, 3, 5, 6, - 7, 8, 5, 1, 2, 4, 5, 6, 7, 4, - 2, 1, 2, 1, 1, 1, 1, 4, 1, 3, - 1, 3, 1, 1, 1, 2, 2, 1, 2, 3, - 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, - 2, 2, 2, 1, 1, 2, 1, 3, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, - 4, 1, 2, 3, 4, 1, 3, 1, 3, 4, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 3, 1, 1, 2, 3, 1, 2, 1, - 2, 5, 3, 1, 1, 4, 7, 1, 1, 3, - 2, 5, 7, 6, 1, 1, 1, 1, 2, 3, - 2, 2, 2, 3, 2, 1, 1, 2, 1, 1, - 1, 2, 0, 2, 2, 2 -}; + 1, 1, 1, 1, 1, 3, 1, 4, 1, 3, + 2, 2, 1, 1, 1, 3, 2, 2, 2, 1, + 2, 3, 2, 1, 1, 1, 2, 2, 2, 1, + 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, + 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 3, 1, 5, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 2, 2, 4, 6, 7, 9, 10, 2, 2, + 1, 1, 2, 3, 3, 2, 5, 3, 2, 3, + 2, 1, 1, 1, 1, 1, 1, 3, 5, 6, + 7, 8, 5, 1, 2, 4, 5, 6, 7, 4, + 2, 1, 2, 1, 1, 1, 1, 4, 1, 3, + 1, 3, 1, 1, 1, 2, 2, 1, 2, 3, + 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, + 2, 2, 2, 1, 1, 2, 1, 3, 4, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, + 4, 1, 2, 3, 4, 1, 3, 1, 3, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 3, 1, 1, 2, 3, 1, 2, 1, + 2, 5, 3, 1, 1, 4, 7, 1, 1, 3, + 2, 5, 7, 6, 1, 1, 1, 1, 2, 3, + 2, 2, 2, 3, 2, 1, 1, 2, 1, 1, + 1, 2, 0, 2, 2, 2}; const short GLSLParserTable::action_default [] = { - 0, 0, 0, 0, 32, 165, 172, 173, 174, 31, - 0, 193, 196, 197, 198, 194, 199, 200, 201, 195, - 202, 203, 204, 162, 169, 170, 171, 4, 161, 247, - 1, 0, 163, 218, 222, 219, 223, 240, 243, 234, - 220, 237, 221, 224, 175, 176, 177, 0, 249, 181, - 184, 185, 186, 182, 187, 188, 189, 183, 190, 191, - 192, 248, 2, 30, 205, 212, 214, 209, 206, 213, - 215, 239, 242, 232, 233, 210, 207, 236, 208, 216, - 217, 211, 0, 33, 3, 246, 164, 225, 229, 226, - 230, 241, 244, 235, 227, 238, 228, 231, 178, 179, - 180, 166, 167, 168, 160, 41, 54, 79, 66, 52, - 56, 315, 9, 15, 20, 0, 0, 14, 0, 58, - 60, 64, 62, 38, 26, 0, 7, 49, 44, 245, - 24, 155, 157, 34, 0, 5, 28, 27, 0, 0, - 6, 80, 0, 0, 0, 143, 0, 142, 126, 146, - 141, 0, 127, 147, 0, 0, 125, 154, 144, 138, - 0, 135, 134, 252, 0, 0, 0, 148, 149, 145, - 0, 131, 129, 0, 0, 132, 0, 128, 130, 150, - 151, 152, 153, 137, 0, 139, 140, 136, 250, 253, - 0, 258, 256, 0, 0, 259, 81, 0, 34, 260, - 0, 255, 257, 0, 254, 0, 251, 0, 0, 40, - 0, 0, 0, 37, 36, 35, 39, 0, 53, 0, - 0, 50, 0, 0, 0, 0, 48, 0, 0, 42, - 43, 45, 47, 46, 51, 0, 55, 160, 21, 18, - 0, 17, 22, 23, 0, 57, 0, 59, 0, 0, - 63, 0, 61, 0, 0, 65, 12, 0, 11, 0, - 10, 16, 13, 0, 8, 156, 0, 158, 0, 159, - 72, 76, 70, 68, 74, 71, 69, 78, 75, 73, - 77, 0, 67, 29, 141, 0, 311, 310, 307, 306, - 114, 0, 309, 313, 92, 0, 0, 107, 314, 0, - 122, 121, 0, 0, 84, 308, 115, 0, 0, 95, - 261, 120, 116, 0, 0, 118, 117, 0, 119, 90, - 133, 103, 105, 104, 102, 93, 0, 313, 99, 101, - 106, 96, 0, 0, 97, 0, 98, 100, 106, 313, - 94, 0, 82, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 276, 280, 0, 0, 269, 263, - 262, 265, 0, 266, 0, 270, 271, 267, 264, 278, - 0, 268, 122, 302, 0, 290, 301, 291, 305, 0, - 0, 0, 0, 0, 293, 0, 296, 295, 313, 122, - 298, 0, 297, 285, 0, 0, 0, 299, 300, 0, - 274, 275, 294, 0, 0, 286, 123, 0, 0, 0, - 282, 284, 0, 283, 272, 0, 273, 279, 303, 0, - 304, 0, 0, 0, 313, 288, 289, 0, 287, 0, - 0, 0, 292, 281, 277, 0, 83, 108, 0, 0, - 113, 109, 0, 0, 111, 110, 0, 112, 0, 89, - 0, 0, 0, 0, 85, 0, 86, 0, 0, 87, - 0, 88, 316 -}; + 0, 0, 0, 0, 32, 165, 172, 173, 174, 31, + 0, 193, 196, 197, 198, 194, 199, 200, 201, 195, + 202, 203, 204, 162, 169, 170, 171, 4, 161, 247, + 1, 0, 163, 218, 222, 219, 223, 240, 243, 234, + 220, 237, 221, 224, 175, 176, 177, 0, 249, 181, + 184, 185, 186, 182, 187, 188, 189, 183, 190, 191, + 192, 248, 2, 30, 205, 212, 214, 209, 206, 213, + 215, 239, 242, 232, 233, 210, 207, 236, 208, 216, + 217, 211, 0, 33, 3, 246, 164, 225, 229, 226, + 230, 241, 244, 235, 227, 238, 228, 231, 178, 179, + 180, 166, 167, 168, 160, 41, 54, 79, 66, 52, + 56, 315, 9, 15, 20, 0, 0, 14, 0, 58, + 60, 64, 62, 38, 26, 0, 7, 49, 44, 245, + 24, 155, 157, 34, 0, 5, 28, 27, 0, 0, + 6, 80, 0, 0, 0, 143, 0, 142, 126, 146, + 141, 0, 127, 147, 0, 0, 125, 154, 144, 138, + 0, 135, 134, 252, 0, 0, 0, 148, 149, 145, + 0, 131, 129, 0, 0, 132, 0, 128, 130, 150, + 151, 152, 153, 137, 0, 139, 140, 136, 250, 253, + 0, 258, 256, 0, 0, 259, 81, 0, 34, 260, + 0, 255, 257, 0, 254, 0, 251, 0, 0, 40, + 0, 0, 0, 37, 36, 35, 39, 0, 53, 0, + 0, 50, 0, 0, 0, 0, 48, 0, 0, 42, + 43, 45, 47, 46, 51, 0, 55, 160, 21, 18, + 0, 17, 22, 23, 0, 57, 0, 59, 0, 0, + 63, 0, 61, 0, 0, 65, 12, 0, 11, 0, + 10, 16, 13, 0, 8, 156, 0, 158, 0, 159, + 72, 76, 70, 68, 74, 71, 69, 78, 75, 73, + 77, 0, 67, 29, 141, 0, 311, 310, 307, 306, + 114, 0, 309, 313, 92, 0, 0, 107, 314, 0, + 122, 121, 0, 0, 84, 308, 115, 0, 0, 95, + 261, 120, 116, 0, 0, 118, 117, 0, 119, 90, + 133, 103, 105, 104, 102, 93, 0, 313, 99, 101, + 106, 96, 0, 0, 97, 0, 98, 100, 106, 313, + 94, 0, 82, 312, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 280, 0, 0, 269, 263, + 262, 265, 0, 266, 0, 270, 271, 267, 264, 278, + 0, 268, 122, 302, 0, 290, 301, 291, 305, 0, + 0, 0, 0, 0, 293, 0, 296, 295, 313, 122, + 298, 0, 297, 285, 0, 0, 0, 299, 300, 0, + 274, 275, 294, 0, 0, 286, 123, 0, 0, 0, + 282, 284, 0, 283, 272, 0, 273, 279, 303, 0, + 304, 0, 0, 0, 313, 288, 289, 0, 287, 0, + 0, 0, 292, 281, 277, 0, 83, 108, 0, 0, + 113, 109, 0, 0, 111, 110, 0, 112, 0, 89, + 0, 0, 0, 0, 85, 0, 86, 0, 0, 87, + 0, 88, 316}; const short GLSLParserTable::goto_default [] = { - 3, 135, 126, 362, 124, 263, 112, 117, 113, 116, - 115, 114, 107, 118, 130, 133, 134, 123, 105, 128, - 127, 109, 106, 110, 119, 120, 122, 121, 108, 281, - 197, 360, 364, 296, 125, 131, 299, 205, 291, 293, - 294, 325, 290, 328, 327, 326, 329, 324, 297, 311, - 160, 159, 161, 173, 172, 162, 132, 129, 163, 203, - 192, 361, 369, 359, 368, 363, 367, 371, 358, 365, - 366, 370, 402, 400, 410, 390, 427, 388, 394, 391, - 298, 289, 288, 292, 0 -}; + 3, 135, 126, 362, 124, 263, 112, 117, 113, 116, + 115, 114, 107, 118, 130, 133, 134, 123, 105, 128, + 127, 109, 106, 110, 119, 120, 122, 121, 108, 281, + 197, 360, 364, 296, 125, 131, 299, 205, 291, 293, + 294, 325, 290, 328, 327, 326, 329, 324, 297, 311, + 160, 159, 161, 173, 172, 162, 132, 129, 163, 203, + 192, 361, 369, 359, 368, 363, 367, 371, 358, 365, + 366, 370, 402, 400, 410, 390, 427, 388, 394, 391, + 298, 289, 288, 292, 0}; const short GLSLParserTable::action_index [] = { - 86, 1180, 3189, 58, -175, -175, -175, -175, -175, -175, - 1180, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -79, 1180, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -175, -175, -175, -175, -175, 1180, -175, -175, - -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, 32, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, -175, -175, -175, -175, 82, 61, -175, -175, 60, - 181, 45, -175, -175, 1347, -55, 87, -175, -25, -113, - -3, 6, -159, 40, 128, 515, -175, 112, 26, -175, - -175, -175, -58, 197, 1180, -175, -175, -175, 84, 1180, - -175, -175, -62, 2517, 2517, -175, 56, -175, -175, -175, - 187, -54, -175, -175, 46, 25, -175, -175, -175, 349, - 207, 349, -175, -175, 2685, 681, 10, -175, -175, -175, - 3, 11, -175, 83, -38, -175, 0, -175, -175, -175, - -175, -175, -175, -175, 349, -175, -175, -175, -175, -175, - 18, -6, -175, 79, 1514, -175, -175, -77, -175, -175, - -16, -175, -175, 76, -175, 3021, -175, 1180, 1180, 12, - 1180, 1180, 1180, -175, -175, -175, 37, 1180, 49, 1180, - 1180, 90, 1180, 1180, 1180, 1180, 15, 1180, 1180, 71, - 68, -4, 8, 7, 80, 1180, 33, -75, -175, -175, - 1180, -175, -175, -175, 1180, 181, 1180, -132, 1180, 1180, - -137, 1180, 34, 73, 1180, -175, -175, 847, -175, 1180, - -10, -175, 48, -44, -175, -175, 2349, -175, -45, -175, - -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, - -175, 1180, -175, -175, 217, 72, -175, -175, -175, 3189, - -47, -107, -175, 163, -14, 22, 81, -175, -175, 1013, - -175, -175, 515, -105, -175, -175, 66, 1180, 2015, -175, - -175, -175, -21, -91, 1180, -175, -34, 1180, -175, -175, - -175, -175, -175, -175, -175, -175, 681, 63, -175, -175, - -40, -76, 1180, -78, -175, 681, -175, -175, 5, 105, - -175, 4365, -175, -175, -81, 1180, -121, -2, -114, 3861, - -56, -53, 4533, 2182, -175, -175, -57, -69, -175, -175, - -175, -175, 54, -175, -74, -175, -175, -175, -175, -175, - 4029, -175, -46, -175, 59, -175, -175, -175, -175, -128, - -49, 1180, 55, -93, -175, 3525, -175, -175, 3357, -37, - -175, -90, -175, 27, -68, -5, 681, 1180, 30, 3693, - -175, -175, -175, 4, 1180, -175, -175, 1180, 57, 3861, - -175, -1, 3861, -175, -175, 4197, -175, -175, -175, 62, - -175, 1180, 64, 20, 3861, -175, 3861, -103, -175, 3357, - -86, 3693, -175, -175, -175, -35, -175, 38, 1180, 1848, - -175, -27, -85, 1180, -175, -43, 1180, -175, -70, -175, - 2517, 2853, 29, 1, -175, 1681, -175, -84, -48, -175, - -118, -175, -175, + 86, 1180, 3189, 58, -175, -175, -175, -175, -175, -175, + 1180, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -79, 1180, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, 1180, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, 32, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, -175, -175, -175, -175, 82, 61, -175, -175, 60, + 181, 45, -175, -175, 1347, -55, 87, -175, -25, -113, + -3, 6, -159, 40, 128, 515, -175, 112, 26, -175, + -175, -175, -58, 197, 1180, -175, -175, -175, 84, 1180, + -175, -175, -62, 2517, 2517, -175, 56, -175, -175, -175, + 187, -54, -175, -175, 46, 25, -175, -175, -175, 349, + 207, 349, -175, -175, 2685, 681, 10, -175, -175, -175, + 3, 11, -175, 83, -38, -175, 0, -175, -175, -175, + -175, -175, -175, -175, 349, -175, -175, -175, -175, -175, + 18, -6, -175, 79, 1514, -175, -175, -77, -175, -175, + -16, -175, -175, 76, -175, 3021, -175, 1180, 1180, 12, + 1180, 1180, 1180, -175, -175, -175, 37, 1180, 49, 1180, + 1180, 90, 1180, 1180, 1180, 1180, 15, 1180, 1180, 71, + 68, -4, 8, 7, 80, 1180, 33, -75, -175, -175, + 1180, -175, -175, -175, 1180, 181, 1180, -132, 1180, 1180, + -137, 1180, 34, 73, 1180, -175, -175, 847, -175, 1180, + -10, -175, 48, -44, -175, -175, 2349, -175, -45, -175, + -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, + -175, 1180, -175, -175, 217, 72, -175, -175, -175, 3189, + -47, -107, -175, 163, -14, 22, 81, -175, -175, 1013, + -175, -175, 515, -105, -175, -175, 66, 1180, 2015, -175, + -175, -175, -21, -91, 1180, -175, -34, 1180, -175, -175, + -175, -175, -175, -175, -175, -175, 681, 63, -175, -175, + -40, -76, 1180, -78, -175, 681, -175, -175, 5, 105, + -175, 4365, -175, -175, -81, 1180, -121, -2, -114, 3861, + -56, -53, 4533, 2182, -175, -175, -57, -69, -175, -175, + -175, -175, 54, -175, -74, -175, -175, -175, -175, -175, + 4029, -175, -46, -175, 59, -175, -175, -175, -175, -128, + -49, 1180, 55, -93, -175, 3525, -175, -175, 3357, -37, + -175, -90, -175, 27, -68, -5, 681, 1180, 30, 3693, + -175, -175, -175, 4, 1180, -175, -175, 1180, 57, 3861, + -175, -1, 3861, -175, -175, 4197, -175, -175, -175, 62, + -175, 1180, 64, 20, 3861, -175, 3861, -103, -175, 3357, + -86, 3693, -175, -175, -175, -35, -175, 38, 1180, 1848, + -175, -27, -85, 1180, -175, -43, 1180, -175, -70, -175, + 2517, 2853, 29, 1, -175, 1681, -175, -84, -48, -175, + -118, -175, -175, - -85, 11, 90, -85, -85, -85, -85, -85, -85, -85, - -3, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -9, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, 70, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, 20, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, 3, -85, -85, -85, -85, - -85, -85, -85, -85, 9, -85, -85, -85, -85, 5, - -85, -85, -85, 56, 110, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -39, - 21, -21, -85, -85, 96, -7, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -49, -85, -85, -85, - -85, -85, -85, -85, -47, -85, -85, -85, -85, -85, - -46, -85, -85, -85, 35, -85, -85, -85, -85, -85, - -45, -85, -85, -85, -85, 109, -85, 29, 30, -85, - -4, -5, -6, -85, -85, -85, -85, 38, -85, 40, - 41, -85, 43, 78, 84, 81, -85, 80, 66, -85, - -85, -85, -85, -85, -85, 67, -85, -85, -85, -85, - -12, -85, -85, -85, 42, -85, 51, -85, 52, 27, - -85, 49, -85, -85, 24, -85, -85, 18, -85, 22, - -85, -85, -85, -85, -85, -85, 114, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, 6, -85, -85, -85, -11, -85, -85, -85, 129, - -85, -85, -85, -85, -85, -38, -85, -85, -85, 23, - -85, -85, -2, -85, -85, -85, -85, 19, 79, -85, - -85, -85, -85, -85, 39, -85, -85, 37, -85, -85, - -85, -85, -85, -85, -85, -85, 14, -18, -85, -85, - -85, -85, 121, -85, -85, 94, -85, -85, -85, -19, - -85, 7, -85, -85, -85, 16, -85, -85, -85, 77, - -85, -85, 87, 17, -85, -85, -85, -85, -85, -85, - -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, - 65, -85, -85, -85, -85, -85, -85, -85, -85, -85, - -85, 26, -85, -85, -85, 91, -85, -85, 159, -85, - -85, -85, -85, -85, -85, -85, -13, -1, -85, 54, - -85, -85, -85, -85, 57, -85, -85, 1, -85, 69, - -85, -85, 141, -85, -85, 76, -85, -85, -85, -85, - -85, 0, -85, -85, 88, -85, 25, -85, -85, 223, - -85, 100, -85, -85, -85, -85, -85, -85, 36, 138, - -85, -85, -85, 31, -85, -85, 28, -85, -85, -85, - 97, 105, -85, -85, -85, 98, -85, -85, -85, -85, - -85, -85, -85 -}; + -85, 11, 90, -85, -85, -85, -85, -85, -85, -85, + -3, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -9, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, 70, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, 20, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, 3, -85, -85, -85, -85, + -85, -85, -85, -85, 9, -85, -85, -85, -85, 5, + -85, -85, -85, 56, 110, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -39, + 21, -21, -85, -85, 96, -7, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -49, -85, -85, -85, + -85, -85, -85, -85, -47, -85, -85, -85, -85, -85, + -46, -85, -85, -85, 35, -85, -85, -85, -85, -85, + -45, -85, -85, -85, -85, 109, -85, 29, 30, -85, + -4, -5, -6, -85, -85, -85, -85, 38, -85, 40, + 41, -85, 43, 78, 84, 81, -85, 80, 66, -85, + -85, -85, -85, -85, -85, 67, -85, -85, -85, -85, + -12, -85, -85, -85, 42, -85, 51, -85, 52, 27, + -85, 49, -85, -85, 24, -85, -85, 18, -85, 22, + -85, -85, -85, -85, -85, -85, 114, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, 6, -85, -85, -85, -11, -85, -85, -85, 129, + -85, -85, -85, -85, -85, -38, -85, -85, -85, 23, + -85, -85, -2, -85, -85, -85, -85, 19, 79, -85, + -85, -85, -85, -85, 39, -85, -85, 37, -85, -85, + -85, -85, -85, -85, -85, -85, 14, -18, -85, -85, + -85, -85, 121, -85, -85, 94, -85, -85, -85, -19, + -85, 7, -85, -85, -85, 16, -85, -85, -85, 77, + -85, -85, 87, 17, -85, -85, -85, -85, -85, -85, + -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, + 65, -85, -85, -85, -85, -85, -85, -85, -85, -85, + -85, 26, -85, -85, -85, 91, -85, -85, 159, -85, + -85, -85, -85, -85, -85, -85, -13, -1, -85, 54, + -85, -85, -85, -85, 57, -85, -85, 1, -85, 69, + -85, -85, 141, -85, -85, 76, -85, -85, -85, -85, + -85, 0, -85, -85, 88, -85, 25, -85, -85, 223, + -85, 100, -85, -85, -85, -85, -85, -85, 36, 138, + -85, -85, -85, 31, -85, -85, 28, -85, -85, -85, + 97, 105, -85, -85, -85, 98, -85, -85, -85, -85, + -85, -85, -85}; const short GLSLParserTable::action_info [] = { - -25, 332, 446, 246, 339, 306, 450, 319, 428, 251, - 429, 317, 331, 376, 144, 377, 461, 437, 443, 266, - 378, 316, 421, 385, 314, 170, 407, 445, 431, 304, - 381, 251, 244, -24, 334, 199, 191, 217, 380, -19, - 246, 384, -24, 412, 397, 139, 399, 403, 139, 404, - 459, 244, 171, 373, 243, 171, 174, 331, 462, 239, - 342, 175, 191, 139, 460, 217, 139, 269, 264, -25, - 191, 194, 139, 139, 227, 139, 375, 139, 455, 181, - 139, 453, 139, 438, 142, 227, 227, 2, 1, 207, - 254, 139, 207, 227, 200, 219, 424, 200, 341, 435, - 179, 176, 139, 207, 227, 240, 219, 248, 143, 228, - 167, 307, 0, 249, 0, 439, 210, 321, 0, 322, - 228, 228, 0, 29, 320, 0, 0, 182, 228, 0, - 222, 0, 0, 0, 0, 456, 0, 0, 0, 228, - 222, 210, 0, 308, 210, 309, 220, 211, 180, 212, - 256, 0, 0, 48, 223, 0, 342, 220, 168, 321, - 224, 322, 222, 454, 223, 323, 61, 257, 0, 383, - 224, 409, 211, 208, 212, 211, 208, 212, 423, 0, - 0, 0, 320, 258, 0, 0, 223, 208, 433, 225, - 0, 0, 224, 0, -124, 235, 420, 177, 140, 225, - 270, 241, 271, -124, 0, 259, -124, 323, 0, 0, - 204, 0, 0, 201, 145, 436, 169, 321, 0, 322, - 0, 225, 272, 146, -124, 0, 147, 0, 0, 0, - 0, 0, 0, -124, -124, 0, -124, 0, 0, 0, - 0, -124, 273, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, - 0, 149, 0, 0, -124, 323, 0, 0, 0, 301, - 0, -124, 274, 0, 0, 0, 0, -91, 0, 0, - 0, 0, 0, 0, 0, -124, 0, 0, 0, -124, - -124, 0, 275, 276, 0, 0, 0, 277, 0, 0, - 0, 0, -124, 0, 0, 152, 0, 278, 0, 153, - 154, 0, 0, 0, 0, -124, 0, 0, 0, -124, - -124, 0, 155, -124, 0, 0, 0, 0, 0, 0, - 0, 0, -124, 0, 0, 0, 0, 279, 0, 0, - 0, 0, 0, 156, 0, 0, 0, -124, 0, 0, - 0, 0, 157, -124, 0, 0, 145, 0, 0, 0, - 0, 0, -124, 0, 280, 146, 0, 158, 147, 0, - 0, 0, 0, 0, 0, 0, 0, -124, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 6, 7, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 0, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, - 0, 0, 0, 82, 0, 0, 0, 0, 85, 86, - 0, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 0, 6, 7, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, - 0, 23, 24, 25, 26, 0, 0, 0, 0, 28, - 0, 0, 29, 0, 0, 0, 0, 0, 32, 0, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 0, 0, 0, 0, 0, 0, - 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 0, 0, 0, 0, 82, - 0, 0, 0, 0, 85, 86, 0, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 0, 101, 102, 103, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 0, 6, 7, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 0, 0, 23, 24, 25, - 26, 0, 0, 0, 0, 28, 0, 0, 29, 260, - 0, 0, 0, 0, 32, 0, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 0, 0, 0, 0, 82, 0, 0, 0, 0, - 85, 86, 0, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, - 103, 0, 104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 6, 7, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 0, 0, 23, 24, 25, 26, 0, 0, 0, - 0, 28, 0, 0, 29, 448, 0, 0, 0, 0, - 32, 0, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 0, 0, 0, 0, - 0, 0, 0, 0, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 449, 0, 0, - 0, 82, 0, 0, 0, 0, 85, 86, 0, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 101, 102, 103, 0, 104, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, - 0, 6, 7, 8, 0, 0, 0, 0, 0, 0, - 0, 9, 10, 0, 0, 0, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 0, 0, - 23, 24, 25, 26, 0, 0, 0, 0, 28, 0, - 0, 29, 30, 0, 0, 31, 0, 32, 0, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 0, 0, 0, 0, 0, 0, 47, - 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 0, 0, 0, 0, 62, - 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 0, 0, 0, 0, 82, 0, - 0, 0, 83, 85, 86, 0, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 0, 101, 102, 103, 0, 104, 0, 0, 0, 84, - 27, 0, 0, 0, 0, 4, 5, 0, 6, 7, - 8, 0, 0, 0, 0, 0, 0, 0, 9, 10, - 0, 0, 0, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 0, 0, 23, 24, 25, - 26, 0, 0, 0, 0, 28, 0, 0, 29, 30, - 0, 0, 31, 0, 32, 0, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 0, 0, 0, 0, 0, 0, 47, 0, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 0, 0, 0, 0, 62, 0, 0, 0, - 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 0, 0, 0, 0, 82, 0, 0, 0, 83, - 85, 86, 0, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, - 103, 0, 237, 0, 0, 0, 84, 27, 0, 0, - 0, 0, 4, 5, 0, 6, 7, 8, 0, 0, - 0, 0, 0, 0, 0, 9, 10, 0, 0, 0, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 0, 0, 23, 24, 25, 26, 0, 0, - 0, 0, 28, 0, 0, 29, 30, 0, 0, 31, - 0, 32, 0, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 0, 0, 0, - 0, 0, 0, 47, 0, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, - 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, - 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 0, 0, - 0, 0, 82, 0, 0, 0, 83, 85, 86, 0, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 0, 101, 102, 103, 0, 104, - 0, 0, 0, 84, 27, 0, 0, 0, 0, 4, - 5, 0, 6, 7, 8, 0, 0, 0, 0, 0, - 0, 0, 9, 10, 0, 0, 0, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, - 0, 23, 24, 25, 26, 0, 0, 0, 0, 28, - 0, 0, 29, 30, 0, 0, 31, 0, 32, 0, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 0, 0, 0, 0, 0, 0, - 47, 0, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 457, 0, 0, 0, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 0, 0, 0, 0, 82, - 0, 0, 0, 83, 85, 86, 0, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 0, 101, 102, 103, 0, 104, 0, 0, 0, - 84, 27, 0, 0, 0, 0, 4, 5, 0, 6, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 9, - 10, 0, 0, 0, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 0, 0, 23, 24, - 25, 26, 0, 0, 0, 0, 28, 0, 0, 29, - 30, 0, 0, 31, 0, 32, 0, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 0, 0, 0, 0, 0, 0, 47, 0, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 0, 0, 0, 0, 62, 0, 0, - 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, - 441, 0, 0, 0, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 0, 0, 0, 0, 82, 0, 0, 0, - 83, 85, 86, 0, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, - 102, 103, 0, 104, 0, 0, 0, 84, 27, 0, - 0, 0, 0, 4, 5, 0, 6, 7, 8, 0, - 0, 0, 0, 0, 0, 0, 9, 10, 0, 0, - 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, - 0, 0, 0, 28, 0, 0, 29, 30, 0, 0, - 31, 0, 32, 0, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 0, 0, - 0, 0, 0, 0, 47, 0, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, - 63, 0, 0, 0, 0, 0, 0, 312, 0, 0, - 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, - 0, 0, 0, 82, 0, 0, 0, 83, 85, 86, - 0, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, - 104, 0, 0, 0, 84, 27, 0, 0, 0, 0, - 4, 5, 0, 6, 7, 8, 0, 0, 0, 0, - 0, 0, 0, 9, 10, 0, 0, 0, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 0, 0, 23, 24, 25, 26, 0, 0, 0, 0, - 28, 0, 0, 29, 30, 0, 0, 31, 0, 32, - 0, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 0, 0, 0, 0, 0, - 0, 47, 0, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 63, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 418, 0, 0, 0, - 82, 0, 0, 0, 83, 85, 86, 0, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 0, 101, 102, 103, 0, 104, 0, 0, - 0, 84, 27, 0, 0, 0, 0, 4, 5, 0, - 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, - 9, 10, 0, 0, 0, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 0, 0, 23, - 24, 25, 26, 0, 0, 0, 0, 28, 0, 0, - 29, 30, 0, 0, 31, 0, 32, 0, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 0, 0, 0, 0, 0, 0, 47, 0, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 0, 0, 0, 0, 62, 0, - 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, - 0, 267, 0, 0, 0, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 0, 0, 0, 0, 82, 0, 0, - 0, 83, 85, 86, 0, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 0, - 101, 102, 103, 0, 104, 0, 0, 0, 84, 27, - 0, 0, 0, 0, 145, 0, 5, 0, 6, 7, - 8, 0, 0, 146, 0, 0, 147, 0, 0, 0, - 0, 0, 0, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 0, 0, 23, 24, 25, - 26, 0, 0, 0, 148, 28, 0, 0, 29, 0, - 0, 149, 0, 0, 32, 150, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 151, 0, 0, 0, 0, 0, 0, 0, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 0, 0, 0, 152, 0, 0, 0, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 0, 0, 156, 0, 82, 0, 0, 0, 0, - 85, 86, 157, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 158, 101, 102, - 103, 0, 104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 5, 0, 6, 7, 8, 0, - 0, 146, 0, 0, 147, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, - 0, 0, 148, 28, 0, 0, 29, 0, 0, 149, - 0, 0, 32, 150, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 151, 0, - 0, 0, 0, 0, 0, 0, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 0, 0, 0, 152, 0, 0, 0, 153, 154, 0, - 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, - 155, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, - 0, 156, 0, 82, 0, 0, 0, 0, 85, 86, - 157, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 158, 101, 102, 103, 0, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 5, 0, 6, 7, 8, 0, 0, 146, - 0, 0, 147, 0, 0, 0, 0, 0, 0, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 0, 0, 23, 24, 25, 26, 0, 0, 0, - 148, 28, 0, 0, 29, 0, 0, 149, 0, 0, - 32, 150, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 151, 0, 0, 0, - 0, 0, 0, 0, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, - 0, 152, 0, 0, 0, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 452, 0, 0, 0, 155, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 0, 0, 156, - 0, 82, 0, 0, 0, 0, 85, 86, 157, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 158, 101, 102, 103, 0, 104, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 5, 0, 6, 7, 8, 0, 0, 146, 0, 0, - 147, 0, 0, 0, 0, 0, 0, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, - 0, 23, 24, 25, 26, 0, 0, 0, 148, 28, - 0, 0, 29, 0, 0, 149, 0, 0, 32, 150, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 151, 0, 0, 0, 0, 0, - 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 0, 0, 0, 152, - 0, 0, 0, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 206, 0, 0, 0, 155, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 0, 0, 156, 0, 82, - 0, 0, 0, 0, 85, 86, 157, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 158, 101, 102, 103, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 145, 0, 5, 0, - 6, 7, 8, 0, 0, 146, 0, 0, 147, 0, - 0, 0, 0, 0, 0, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 0, 0, 23, - 24, 25, 26, 0, 0, 0, 148, 28, 0, 0, - 29, 0, 0, 149, 0, 0, 32, 284, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 151, 0, 0, 0, 0, 0, 0, 0, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 0, 0, 0, 152, 0, 0, - 0, 153, 154, 0, 0, 285, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 286, 0, 156, 0, 82, 0, 0, - 0, 0, 85, 86, 157, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 158, - 101, 102, 103, 0, 104, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 145, 4, 5, 0, 6, 7, - 8, 0, 0, 146, 0, 0, 147, 0, 9, 10, - 0, 0, 0, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 0, 0, 23, 24, 25, - 26, 0, 0, 0, 148, 28, 0, 0, 29, 30, - 0, 149, 31, 0, 32, 150, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 151, 0, 0, 0, 0, 0, 47, 0, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 0, 0, 0, 152, 62, 0, 0, 153, - 154, 0, 63, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 0, 0, 156, 0, 82, 0, 0, 0, 83, - 85, 86, 157, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 158, 101, 102, - 103, 0, 104, 0, 0, 0, 84, 27, 0, 0, - 0, 0, 145, 4, 5, 0, 6, 7, 8, 0, - 0, 146, 0, 0, 147, 0, 9, 10, 0, 0, - 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, - 0, 0, 148, 28, 0, 0, 29, 30, 0, 149, - 31, 0, 32, 284, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 151, 0, - 0, 0, 0, 0, 47, 0, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 0, 0, 0, 152, 62, 0, 0, 153, 154, 0, - 63, 285, 0, 0, 0, 0, 0, 0, 0, 0, - 155, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 355, - 0, 156, 0, 82, 0, 0, 0, 83, 85, 86, - 157, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 158, 101, 102, 103, 0, - 104, 0, 0, 0, 84, 27, 0, 0, 0, 0, - 145, 4, 5, 344, 6, 7, 8, 0, 345, 146, - 0, 0, 147, 346, 9, 10, 347, 348, 0, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 349, 0, 23, 24, 25, 26, 0, 0, 0, - 148, 28, 350, 0, 29, 30, 351, 149, 31, 0, - 32, 284, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 151, 0, 0, 341, - 0, 0, 47, 0, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, - 0, 152, 62, 0, 0, 153, 154, 0, 63, 285, - 0, 353, 0, 0, 0, 0, 0, 0, 155, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 355, 0, 156, - 0, 82, 0, 0, 356, 83, 85, 86, 157, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 158, 101, 102, 103, 0, 104, 357, - 0, 0, 84, 27, 0, 0, 0, 0, 145, 4, - 5, 344, 6, 7, 8, 0, 345, 146, 0, 0, - 147, 346, 9, 10, 347, 348, 0, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 349, - 0, 23, 24, 25, 26, 0, 0, 0, 148, 28, - 350, 0, 29, 30, 351, 149, 31, 0, 32, 284, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 151, 0, 0, 352, 0, 0, - 47, 0, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 0, 0, 0, 152, - 62, 0, 0, 153, 154, 0, 63, 285, 0, 353, - 0, 0, 0, 0, 0, 0, 155, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 355, 0, 156, 0, 82, - 0, 0, 356, 83, 85, 86, 157, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 158, 101, 102, 103, 0, 104, 357, 0, 0, - 84, 27, 0, 0, 0, 0, 145, 4, 5, 344, - 6, 7, 8, 0, 345, 146, 0, 0, 147, 346, - 9, 10, 347, 348, 0, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 349, 0, 23, - 24, 25, 26, 0, 0, 0, 148, 28, 350, 0, - 29, 30, 351, 149, 31, 0, 32, 284, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 151, 0, 0, 352, 0, 0, 47, 0, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 0, 0, 0, 152, 62, 0, - 0, 153, 154, 0, 63, 285, 0, 353, 0, 0, - 434, 0, 0, 0, 155, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 355, 0, 156, 0, 82, 0, 0, - 356, 83, 85, 86, 157, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 158, - 101, 102, 103, 0, 104, 357, 0, 0, 84, 27, - 0, 0, 0, 0, 145, 4, 5, 344, 6, 7, - 8, 0, 345, 146, 0, 0, 147, 346, 9, 10, - 347, 348, 0, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 349, 0, 23, 24, 25, - 26, 0, 0, 0, 148, 28, 350, 0, 29, 30, - 351, 149, 31, 0, 32, 284, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 151, 0, 0, 352, 0, 0, 47, 0, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 0, 0, 0, 152, 62, 0, 0, 153, - 154, 0, 63, 285, 0, 353, 0, 0, 416, 0, - 0, 0, 155, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 355, 0, 156, 0, 82, 0, 0, 356, 83, - 85, 86, 157, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 158, 101, 102, - 103, 0, 104, 357, 0, 0, 84, 27, 0, 0, - 0, 0, 145, 4, 5, 344, 6, 7, 8, 0, - 345, 146, 0, 0, 147, 346, 9, 10, 347, 348, - 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 349, 0, 23, 24, 25, 26, 0, - 0, 0, 148, 28, 350, 0, 29, 30, 351, 149, - 31, 0, 32, 284, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 151, 0, - 0, 352, 0, 0, 47, 0, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 0, 0, 0, 152, 62, 0, 0, 153, 154, 0, - 63, 285, 0, 353, 0, 0, 354, 0, 0, 0, - 155, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 355, - 0, 156, 0, 82, 0, 0, 356, 83, 85, 86, - 157, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 158, 101, 102, 103, 0, - 104, 357, 0, 0, 84, 27, 0, 0, 0, 0, - 145, 4, 5, 344, 6, 7, 8, 0, 345, 146, - 0, 0, 147, 346, 9, 10, 347, 348, 0, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 349, 0, 23, 24, 25, 26, 0, 0, 0, - 148, 28, 350, 0, 29, 30, 351, 149, 31, 0, - 32, 284, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 151, 0, 0, 352, - 0, 0, 47, 0, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, - 0, 152, 62, 0, 0, 153, 154, 0, 63, 285, - 0, 353, 0, 0, 414, 0, 0, 0, 155, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 355, 0, 156, - 0, 82, 0, 0, 356, 83, 85, 86, 157, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 158, 101, 102, 103, 0, 104, 357, - 0, 0, 84, 27, 0, 0, 0, 0, + -25, 332, 446, 246, 339, 306, 450, 319, 428, 251, + 429, 317, 331, 376, 144, 377, 461, 437, 443, 266, + 378, 316, 421, 385, 314, 170, 407, 445, 431, 304, + 381, 251, 244, -24, 334, 199, 191, 217, 380, -19, + 246, 384, -24, 412, 397, 139, 399, 403, 139, 404, + 459, 244, 171, 373, 243, 171, 174, 331, 462, 239, + 342, 175, 191, 139, 460, 217, 139, 269, 264, -25, + 191, 194, 139, 139, 227, 139, 375, 139, 455, 181, + 139, 453, 139, 438, 142, 227, 227, 2, 1, 207, + 254, 139, 207, 227, 200, 219, 424, 200, 341, 435, + 179, 176, 139, 207, 227, 240, 219, 248, 143, 228, + 167, 307, 0, 249, 0, 439, 210, 321, 0, 322, + 228, 228, 0, 29, 320, 0, 0, 182, 228, 0, + 222, 0, 0, 0, 0, 456, 0, 0, 0, 228, + 222, 210, 0, 308, 210, 309, 220, 211, 180, 212, + 256, 0, 0, 48, 223, 0, 342, 220, 168, 321, + 224, 322, 222, 454, 223, 323, 61, 257, 0, 383, + 224, 409, 211, 208, 212, 211, 208, 212, 423, 0, + 0, 0, 320, 258, 0, 0, 223, 208, 433, 225, + 0, 0, 224, 0, -124, 235, 420, 177, 140, 225, + 270, 241, 271, -124, 0, 259, -124, 323, 0, 0, + 204, 0, 0, 201, 145, 436, 169, 321, 0, 322, + 0, 225, 272, 146, -124, 0, 147, 0, 0, 0, + 0, 0, 0, -124, -124, 0, -124, 0, 0, 0, + 0, -124, 273, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 148, 0, 0, 0, 0, 0, + 0, 149, 0, 0, -124, 323, 0, 0, 0, 301, + 0, -124, 274, 0, 0, 0, 0, -91, 0, 0, + 0, 0, 0, 0, 0, -124, 0, 0, 0, -124, + -124, 0, 275, 276, 0, 0, 0, 277, 0, 0, + 0, 0, -124, 0, 0, 152, 0, 278, 0, 153, + 154, 0, 0, 0, 0, -124, 0, 0, 0, -124, + -124, 0, 155, -124, 0, 0, 0, 0, 0, 0, + 0, 0, -124, 0, 0, 0, 0, 279, 0, 0, + 0, 0, 0, 156, 0, 0, 0, -124, 0, 0, + 0, 0, 157, -124, 0, 0, 145, 0, 0, 0, + 0, 0, -124, 0, 280, 146, 0, 158, 147, 0, + 0, 0, 0, 0, 0, 0, 0, -124, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 153, 154, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 0, 6, 7, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, + 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 32, 0, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, + 0, 0, 0, 82, 0, 0, 0, 0, 85, 86, + 0, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 6, 7, 8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, + 0, 23, 24, 25, 26, 0, 0, 0, 0, 28, + 0, 0, 29, 0, 0, 0, 0, 0, 32, 0, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 0, 0, 0, 0, 82, + 0, 0, 0, 0, 85, 86, 0, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 0, 6, 7, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 0, 0, 23, 24, 25, + 26, 0, 0, 0, 0, 28, 0, 0, 29, 260, + 0, 0, 0, 0, 32, 0, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 0, 0, 0, 0, 82, 0, 0, 0, 0, + 85, 86, 0, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 6, 7, 8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 0, 28, 0, 0, 29, 448, 0, 0, 0, 0, + 32, 0, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 449, 0, 0, + 0, 82, 0, 0, 0, 0, 85, 86, 0, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 0, 101, 102, 103, 0, 104, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, + 0, 6, 7, 8, 0, 0, 0, 0, 0, 0, + 0, 9, 10, 0, 0, 0, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 0, 0, + 23, 24, 25, 26, 0, 0, 0, 0, 28, 0, + 0, 29, 30, 0, 0, 31, 0, 32, 0, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 0, 0, 0, 0, 0, 0, 47, + 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 0, 0, 0, 0, 62, + 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 0, 0, 0, 0, 82, 0, + 0, 0, 83, 85, 86, 0, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 0, 101, 102, 103, 0, 104, 0, 0, 0, 84, + 27, 0, 0, 0, 0, 4, 5, 0, 6, 7, + 8, 0, 0, 0, 0, 0, 0, 0, 9, 10, + 0, 0, 0, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 0, 0, 23, 24, 25, + 26, 0, 0, 0, 0, 28, 0, 0, 29, 30, + 0, 0, 31, 0, 32, 0, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 0, 0, 0, 0, 0, 0, 47, 0, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 0, 0, 0, 0, 62, 0, 0, 0, + 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 0, 0, 0, 0, 82, 0, 0, 0, 83, + 85, 86, 0, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 0, 101, 102, + 103, 0, 237, 0, 0, 0, 84, 27, 0, 0, + 0, 0, 4, 5, 0, 6, 7, 8, 0, 0, + 0, 0, 0, 0, 0, 9, 10, 0, 0, 0, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 0, 0, 23, 24, 25, 26, 0, 0, + 0, 0, 28, 0, 0, 29, 30, 0, 0, 31, + 0, 32, 0, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 0, 0, 0, + 0, 0, 0, 47, 0, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 63, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 0, 0, + 0, 0, 82, 0, 0, 0, 83, 85, 86, 0, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 0, 101, 102, 103, 0, 104, + 0, 0, 0, 84, 27, 0, 0, 0, 0, 4, + 5, 0, 6, 7, 8, 0, 0, 0, 0, 0, + 0, 0, 9, 10, 0, 0, 0, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, + 0, 23, 24, 25, 26, 0, 0, 0, 0, 28, + 0, 0, 29, 30, 0, 0, 31, 0, 32, 0, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 0, 0, 0, 0, 0, 0, + 47, 0, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, + 62, 0, 0, 0, 0, 0, 63, 0, 0, 0, + 0, 0, 0, 457, 0, 0, 0, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 0, 0, 0, 0, 82, + 0, 0, 0, 83, 85, 86, 0, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 0, 101, 102, 103, 0, 104, 0, 0, 0, + 84, 27, 0, 0, 0, 0, 4, 5, 0, 6, + 7, 8, 0, 0, 0, 0, 0, 0, 0, 9, + 10, 0, 0, 0, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 0, 0, 23, 24, + 25, 26, 0, 0, 0, 0, 28, 0, 0, 29, + 30, 0, 0, 31, 0, 32, 0, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 0, 0, 0, 0, 0, 0, 47, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 0, 0, 0, 0, 62, 0, 0, + 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, + 441, 0, 0, 0, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 0, 0, 0, 0, 82, 0, 0, 0, + 83, 85, 86, 0, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 0, 101, + 102, 103, 0, 104, 0, 0, 0, 84, 27, 0, + 0, 0, 0, 4, 5, 0, 6, 7, 8, 0, + 0, 0, 0, 0, 0, 0, 9, 10, 0, 0, + 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, + 0, 0, 0, 28, 0, 0, 29, 30, 0, 0, + 31, 0, 32, 0, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 0, 0, + 0, 0, 0, 0, 47, 0, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 312, 0, 0, + 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, + 0, 0, 0, 82, 0, 0, 0, 83, 85, 86, + 0, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 0, 101, 102, 103, 0, + 104, 0, 0, 0, 84, 27, 0, 0, 0, 0, + 4, 5, 0, 6, 7, 8, 0, 0, 0, 0, + 0, 0, 0, 9, 10, 0, 0, 0, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 0, 0, 23, 24, 25, 26, 0, 0, 0, 0, + 28, 0, 0, 29, 30, 0, 0, 31, 0, 32, + 0, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 0, 0, 0, 0, 0, + 0, 47, 0, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, + 0, 62, 0, 0, 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 418, 0, 0, 0, + 82, 0, 0, 0, 83, 85, 86, 0, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 0, 101, 102, 103, 0, 104, 0, 0, + 0, 84, 27, 0, 0, 0, 0, 4, 5, 0, + 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, + 9, 10, 0, 0, 0, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 0, 0, 23, + 24, 25, 26, 0, 0, 0, 0, 28, 0, 0, + 29, 30, 0, 0, 31, 0, 32, 0, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 0, 0, 0, 0, 0, 0, 47, 0, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 0, 0, 0, 0, 62, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, + 0, 267, 0, 0, 0, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 0, 0, 0, 0, 82, 0, 0, + 0, 83, 85, 86, 0, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 0, + 101, 102, 103, 0, 104, 0, 0, 0, 84, 27, + 0, 0, 0, 0, 145, 0, 5, 0, 6, 7, + 8, 0, 0, 146, 0, 0, 147, 0, 0, 0, + 0, 0, 0, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 0, 0, 23, 24, 25, + 26, 0, 0, 0, 148, 28, 0, 0, 29, 0, + 0, 149, 0, 0, 32, 150, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 151, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 0, 0, 0, 152, 0, 0, 0, 153, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 0, 0, 156, 0, 82, 0, 0, 0, 0, + 85, 86, 157, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 158, 101, 102, + 103, 0, 104, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 5, 0, 6, 7, 8, 0, + 0, 146, 0, 0, 147, 0, 0, 0, 0, 0, + 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, + 0, 0, 148, 28, 0, 0, 29, 0, 0, 149, + 0, 0, 32, 150, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 151, 0, + 0, 0, 0, 0, 0, 0, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 0, 0, 0, 152, 0, 0, 0, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, + 155, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, + 0, 156, 0, 82, 0, 0, 0, 0, 85, 86, + 157, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 158, 101, 102, 103, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 5, 0, 6, 7, 8, 0, 0, 146, + 0, 0, 147, 0, 0, 0, 0, 0, 0, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 0, 0, 23, 24, 25, 26, 0, 0, 0, + 148, 28, 0, 0, 29, 0, 0, 149, 0, 0, + 32, 150, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 151, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, + 0, 152, 0, 0, 0, 153, 154, 0, 0, 0, + 0, 0, 0, 0, 452, 0, 0, 0, 155, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 0, 0, 156, + 0, 82, 0, 0, 0, 0, 85, 86, 157, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 158, 101, 102, 103, 0, 104, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 5, 0, 6, 7, 8, 0, 0, 146, 0, 0, + 147, 0, 0, 0, 0, 0, 0, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, + 0, 23, 24, 25, 26, 0, 0, 0, 148, 28, + 0, 0, 29, 0, 0, 149, 0, 0, 32, 150, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 151, 0, 0, 0, 0, 0, + 0, 0, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 0, 0, 0, 152, + 0, 0, 0, 153, 154, 0, 0, 0, 0, 0, + 0, 0, 206, 0, 0, 0, 155, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 0, 0, 156, 0, 82, + 0, 0, 0, 0, 85, 86, 157, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 158, 101, 102, 103, 0, 104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 0, 5, 0, + 6, 7, 8, 0, 0, 146, 0, 0, 147, 0, + 0, 0, 0, 0, 0, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 0, 0, 23, + 24, 25, 26, 0, 0, 0, 148, 28, 0, 0, + 29, 0, 0, 149, 0, 0, 32, 284, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 151, 0, 0, 0, 0, 0, 0, 0, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 0, 0, 0, 152, 0, 0, + 0, 153, 154, 0, 0, 285, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 286, 0, 156, 0, 82, 0, 0, + 0, 0, 85, 86, 157, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 158, + 101, 102, 103, 0, 104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 145, 4, 5, 0, 6, 7, + 8, 0, 0, 146, 0, 0, 147, 0, 9, 10, + 0, 0, 0, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 0, 0, 23, 24, 25, + 26, 0, 0, 0, 148, 28, 0, 0, 29, 30, + 0, 149, 31, 0, 32, 150, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 151, 0, 0, 0, 0, 0, 47, 0, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 0, 0, 0, 152, 62, 0, 0, 153, + 154, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 0, 0, 156, 0, 82, 0, 0, 0, 83, + 85, 86, 157, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 158, 101, 102, + 103, 0, 104, 0, 0, 0, 84, 27, 0, 0, + 0, 0, 145, 4, 5, 0, 6, 7, 8, 0, + 0, 146, 0, 0, 147, 0, 9, 10, 0, 0, + 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, + 0, 0, 148, 28, 0, 0, 29, 30, 0, 149, + 31, 0, 32, 284, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 151, 0, + 0, 0, 0, 0, 47, 0, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 0, 0, 0, 152, 62, 0, 0, 153, 154, 0, + 63, 285, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 355, + 0, 156, 0, 82, 0, 0, 0, 83, 85, 86, + 157, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 158, 101, 102, 103, 0, + 104, 0, 0, 0, 84, 27, 0, 0, 0, 0, + 145, 4, 5, 344, 6, 7, 8, 0, 345, 146, + 0, 0, 147, 346, 9, 10, 347, 348, 0, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 349, 0, 23, 24, 25, 26, 0, 0, 0, + 148, 28, 350, 0, 29, 30, 351, 149, 31, 0, + 32, 284, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 151, 0, 0, 341, + 0, 0, 47, 0, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, + 0, 152, 62, 0, 0, 153, 154, 0, 63, 285, + 0, 353, 0, 0, 0, 0, 0, 0, 155, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 355, 0, 156, + 0, 82, 0, 0, 356, 83, 85, 86, 157, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 158, 101, 102, 103, 0, 104, 357, + 0, 0, 84, 27, 0, 0, 0, 0, 145, 4, + 5, 344, 6, 7, 8, 0, 345, 146, 0, 0, + 147, 346, 9, 10, 347, 348, 0, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 349, + 0, 23, 24, 25, 26, 0, 0, 0, 148, 28, + 350, 0, 29, 30, 351, 149, 31, 0, 32, 284, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 151, 0, 0, 352, 0, 0, + 47, 0, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 0, 0, 0, 152, + 62, 0, 0, 153, 154, 0, 63, 285, 0, 353, + 0, 0, 0, 0, 0, 0, 155, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 355, 0, 156, 0, 82, + 0, 0, 356, 83, 85, 86, 157, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 158, 101, 102, 103, 0, 104, 357, 0, 0, + 84, 27, 0, 0, 0, 0, 145, 4, 5, 344, + 6, 7, 8, 0, 345, 146, 0, 0, 147, 346, + 9, 10, 347, 348, 0, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 349, 0, 23, + 24, 25, 26, 0, 0, 0, 148, 28, 350, 0, + 29, 30, 351, 149, 31, 0, 32, 284, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 151, 0, 0, 352, 0, 0, 47, 0, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 0, 0, 0, 152, 62, 0, + 0, 153, 154, 0, 63, 285, 0, 353, 0, 0, + 434, 0, 0, 0, 155, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 355, 0, 156, 0, 82, 0, 0, + 356, 83, 85, 86, 157, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 158, + 101, 102, 103, 0, 104, 357, 0, 0, 84, 27, + 0, 0, 0, 0, 145, 4, 5, 344, 6, 7, + 8, 0, 345, 146, 0, 0, 147, 346, 9, 10, + 347, 348, 0, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 349, 0, 23, 24, 25, + 26, 0, 0, 0, 148, 28, 350, 0, 29, 30, + 351, 149, 31, 0, 32, 284, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 151, 0, 0, 352, 0, 0, 47, 0, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 0, 0, 0, 152, 62, 0, 0, 153, + 154, 0, 63, 285, 0, 353, 0, 0, 416, 0, + 0, 0, 155, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 355, 0, 156, 0, 82, 0, 0, 356, 83, + 85, 86, 157, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 158, 101, 102, + 103, 0, 104, 357, 0, 0, 84, 27, 0, 0, + 0, 0, 145, 4, 5, 344, 6, 7, 8, 0, + 345, 146, 0, 0, 147, 346, 9, 10, 347, 348, + 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 349, 0, 23, 24, 25, 26, 0, + 0, 0, 148, 28, 350, 0, 29, 30, 351, 149, + 31, 0, 32, 284, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 151, 0, + 0, 352, 0, 0, 47, 0, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 0, 0, 0, 152, 62, 0, 0, 153, 154, 0, + 63, 285, 0, 353, 0, 0, 354, 0, 0, 0, + 155, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 355, + 0, 156, 0, 82, 0, 0, 356, 83, 85, 86, + 157, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 158, 101, 102, 103, 0, + 104, 357, 0, 0, 84, 27, 0, 0, 0, 0, + 145, 4, 5, 344, 6, 7, 8, 0, 345, 146, + 0, 0, 147, 346, 9, 10, 347, 348, 0, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 349, 0, 23, 24, 25, 26, 0, 0, 0, + 148, 28, 350, 0, 29, 30, 351, 149, 31, 0, + 32, 284, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 151, 0, 0, 352, + 0, 0, 47, 0, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, + 0, 152, 62, 0, 0, 153, 154, 0, 63, 285, + 0, 353, 0, 0, 414, 0, 0, 0, 155, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 355, 0, 156, + 0, 82, 0, 0, 356, 83, 85, 86, 157, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 158, 101, 102, 103, 0, 104, 357, + 0, 0, 84, 27, 0, 0, 0, 0, - 242, 406, 398, 422, 408, 178, 137, 190, 186, 215, - 214, 213, 136, 193, 111, 202, 183, 141, 282, 374, - 419, 372, 340, 302, 283, 262, 261, 335, 330, 382, - 253, 310, 238, 303, 187, 343, 255, 406, 265, 372, - 310, 0, 0, 310, 198, 198, 209, 216, 310, 310, - 198, 310, 0, 198, 0, 198, 198, 198, 198, 218, - 221, 234, 226, 196, 198, 245, 198, 198, 372, 310, - 166, 0, 184, 138, 252, 247, 185, 447, 250, 372, - 444, 198, 198, 372, 230, 440, 318, 417, 315, 236, - 372, 372, 165, 198, 198, 198, 198, 231, 229, 198, - 233, 372, 372, 232, 300, 389, 405, 196, 338, 313, - 166, 166, 0, 198, 372, 0, 0, 0, 401, 166, - 0, 287, 295, 166, 166, 0, 196, 417, 458, 198, - 0, 411, 165, 165, 451, 425, 198, 336, 417, 379, - 337, 165, 196, 300, 268, 165, 165, 164, 0, 196, - 0, 333, 386, 198, 189, 372, 387, 0, 415, 426, - 287, 295, 393, 189, 401, 0, 196, 189, 442, 0, - 0, 0, 432, 389, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, - 0, 395, 0, 413, 0, 0, 392, 0, 0, 0, - 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 389, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, - 0, 0, 0, 0, 0, 395, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 430, 0, - 0, 0, 0, 0, 0, 0, 0, 0 -}; + 242, 406, 398, 422, 408, 178, 137, 190, 186, 215, + 214, 213, 136, 193, 111, 202, 183, 141, 282, 374, + 419, 372, 340, 302, 283, 262, 261, 335, 330, 382, + 253, 310, 238, 303, 187, 343, 255, 406, 265, 372, + 310, 0, 0, 310, 198, 198, 209, 216, 310, 310, + 198, 310, 0, 198, 0, 198, 198, 198, 198, 218, + 221, 234, 226, 196, 198, 245, 198, 198, 372, 310, + 166, 0, 184, 138, 252, 247, 185, 447, 250, 372, + 444, 198, 198, 372, 230, 440, 318, 417, 315, 236, + 372, 372, 165, 198, 198, 198, 198, 231, 229, 198, + 233, 372, 372, 232, 300, 389, 405, 196, 338, 313, + 166, 166, 0, 198, 372, 0, 0, 0, 401, 166, + 0, 287, 295, 166, 166, 0, 196, 417, 458, 198, + 0, 411, 165, 165, 451, 425, 198, 336, 417, 379, + 337, 165, 196, 300, 268, 165, 165, 164, 0, 196, + 0, 333, 386, 198, 189, 372, 387, 0, 415, 426, + 287, 295, 393, 189, 401, 0, 196, 189, 442, 0, + 0, 0, 432, 389, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, + 0, 395, 0, 413, 0, 0, 392, 0, 0, 0, + 0, 305, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 389, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, + 0, 0, 0, 0, 0, 395, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 430, 0, + 0, 0, 0, 0, 0, 0, 0, 0}; const short GLSLParserTable::action_check [] = { - 79, 77, 45, 6, 18, 52, 76, 114, 111, 168, - 79, 45, 52, 134, 76, 17, 134, 52, 45, 77, - 134, 112, 79, 79, 45, 79, 79, 112, 114, 134, - 79, 168, 164, 79, 112, 112, 52, 4, 166, 114, - 6, 134, 79, 44, 134, 18, 114, 52, 18, 45, - 134, 164, 52, 134, 79, 52, 45, 52, 0, 114, - 134, 99, 52, 18, 112, 4, 18, 112, 112, 79, - 52, 77, 18, 18, 78, 18, 17, 18, 77, 54, - 18, 52, 18, 45, 52, 78, 78, 1, 2, 21, - 17, 18, 21, 78, 18, 46, 76, 18, 76, 18, - 54, 18, 18, 21, 78, 18, 46, 101, 76, 113, - 54, 45, -1, 107, -1, 77, 104, 54, -1, 56, - 113, 113, -1, 51, 19, -1, -1, 102, 113, -1, - 50, -1, -1, -1, -1, 134, -1, -1, -1, 113, - 50, 104, -1, 77, 104, 79, 97, 135, 102, 137, - 22, -1, -1, 81, 74, -1, 134, 97, 102, 54, - 80, 56, 50, 134, 74, 102, 94, 39, -1, 114, - 80, 114, 135, 105, 137, 135, 105, 137, 114, -1, - -1, -1, 19, 55, -1, -1, 74, 105, 134, 109, - -1, -1, 80, -1, 7, 14, 134, 114, 114, 109, - 3, 114, 5, 16, -1, 77, 19, 102, -1, -1, - 134, -1, -1, 134, 7, 134, 160, 54, -1, 56, - -1, 109, 25, 16, 7, -1, 19, -1, -1, -1, - -1, -1, -1, 16, 47, -1, 19, -1, -1, -1, - -1, 54, 45, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, - -1, 54, -1, -1, 47, 102, -1, -1, -1, 52, - -1, 54, 75, -1, -1, -1, -1, 114, -1, -1, - -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, - 103, -1, 95, 96, -1, -1, -1, 100, -1, -1, - -1, -1, 115, -1, -1, 98, -1, 110, -1, 102, - 103, -1, -1, -1, -1, 98, -1, -1, -1, 102, - 103, -1, 115, 136, -1, -1, -1, -1, -1, -1, - -1, -1, 115, -1, -1, -1, -1, 140, -1, -1, - -1, -1, -1, 136, -1, -1, -1, 160, -1, -1, - -1, -1, 145, 136, -1, -1, 7, -1, -1, -1, - -1, -1, 145, -1, 167, 16, -1, 160, 19, -1, - -1, -1, -1, -1, -1, -1, -1, 160, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 102, 103, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 160, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 9, -1, 11, 12, 13, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, -1, -1, 40, 41, 42, 43, -1, - -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, - -1, -1, 57, -1, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, -1, 143, 144, - -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, -1, 161, 162, 163, -1, - 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 9, -1, 11, 12, 13, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, 48, - -1, -1, 51, -1, -1, -1, -1, -1, 57, -1, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, - -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, -1, 143, 144, -1, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, -1, 161, 162, 163, -1, 165, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 9, -1, 11, 12, - 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, -1, -1, 40, 41, 42, - 43, -1, -1, -1, -1, 48, -1, -1, 51, 52, - -1, -1, -1, -1, 57, -1, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - -1, -1, -1, -1, -1, -1, -1, -1, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, - 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, -1, 161, 162, - 163, -1, 165, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 9, -1, 11, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, -1, -1, 40, 41, 42, 43, -1, -1, -1, - -1, 48, -1, -1, 51, 52, -1, -1, -1, -1, - 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, -1, -1, -1, -1, - -1, -1, -1, -1, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, 138, -1, -1, -1, -1, 143, 144, -1, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, -1, 161, 162, 163, -1, 165, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 8, 9, - -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, - -1, 21, 22, -1, -1, -1, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, -1, -1, - 40, 41, 42, 43, -1, -1, -1, -1, 48, -1, - -1, 51, 52, -1, -1, 55, -1, 57, -1, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, -1, -1, -1, -1, -1, -1, 79, - -1, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, -1, -1, -1, -1, 99, - -1, -1, -1, -1, -1, 105, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, - -1, -1, 142, 143, 144, -1, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - -1, 161, 162, 163, -1, 165, -1, -1, -1, 169, - 170, -1, -1, -1, -1, 8, 9, -1, 11, 12, - 13, -1, -1, -1, -1, -1, -1, -1, 21, 22, - -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, -1, -1, 40, 41, 42, - 43, -1, -1, -1, -1, 48, -1, -1, 51, 52, - -1, -1, 55, -1, 57, -1, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - -1, -1, -1, -1, -1, -1, 79, -1, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, -1, -1, -1, -1, 99, -1, -1, -1, - -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, -1, -1, 138, -1, -1, -1, 142, - 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, -1, 161, 162, - 163, -1, 165, -1, -1, -1, 169, 170, -1, -1, - -1, -1, 8, 9, -1, 11, 12, 13, -1, -1, - -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, -1, -1, 40, 41, 42, 43, -1, -1, - -1, -1, 48, -1, -1, 51, 52, -1, -1, 55, - -1, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, - -1, -1, -1, 79, -1, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, - -1, -1, -1, 99, -1, -1, -1, -1, -1, 105, - -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, - -1, -1, 138, -1, -1, -1, 142, 143, 144, -1, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, -1, 161, 162, 163, -1, 165, - -1, -1, -1, 169, 170, -1, -1, -1, -1, 8, - 9, -1, 11, 12, 13, -1, -1, -1, -1, -1, - -1, -1, 21, 22, -1, -1, -1, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, 48, - -1, -1, 51, 52, -1, -1, 55, -1, 57, -1, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, -1, -1, -1, -1, - 99, -1, -1, -1, -1, -1, 105, -1, -1, -1, - -1, -1, -1, 112, -1, -1, -1, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, - -1, -1, -1, 142, 143, 144, -1, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, -1, 161, 162, 163, -1, 165, -1, -1, -1, - 169, 170, -1, -1, -1, -1, 8, 9, -1, 11, - 12, 13, -1, -1, -1, -1, -1, -1, -1, 21, - 22, -1, -1, -1, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, -1, -1, 40, 41, - 42, 43, -1, -1, -1, -1, 48, -1, -1, 51, - 52, -1, -1, 55, -1, 57, -1, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, -1, -1, -1, -1, -1, -1, 79, -1, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, -1, -1, -1, -1, 99, -1, -1, - -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, - 112, -1, -1, -1, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, -1, -1, -1, -1, 138, -1, -1, -1, - 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, - 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, - -1, -1, -1, 8, 9, -1, 11, 12, 13, -1, - -1, -1, -1, -1, -1, -1, 21, 22, -1, -1, - -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, -1, -1, 40, 41, 42, 43, -1, - -1, -1, -1, 48, -1, -1, 51, 52, -1, -1, - 55, -1, 57, -1, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, - -1, -1, -1, -1, 79, -1, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, - 105, -1, -1, -1, -1, -1, -1, 112, -1, -1, - -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, -1, -1, 138, -1, -1, -1, 142, 143, 144, - -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, -1, 161, 162, 163, -1, - 165, -1, -1, -1, 169, 170, -1, -1, -1, -1, - 8, 9, -1, 11, 12, 13, -1, -1, -1, -1, - -1, -1, -1, 21, 22, -1, -1, -1, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - -1, -1, 40, 41, 42, 43, -1, -1, -1, -1, - 48, -1, -1, 51, 52, -1, -1, 55, -1, 57, - -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, - -1, 79, -1, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, - -1, 99, -1, -1, -1, -1, -1, 105, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - 138, -1, -1, -1, 142, 143, 144, -1, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, -1, 161, 162, 163, -1, 165, -1, -1, - -1, 169, 170, -1, -1, -1, -1, 8, 9, -1, - 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, - 21, 22, -1, -1, -1, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, -1, -1, 40, - 41, 42, 43, -1, -1, -1, -1, 48, -1, -1, - 51, 52, -1, -1, 55, -1, 57, -1, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, -1, -1, -1, -1, -1, -1, 79, -1, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, -1, -1, -1, -1, 99, -1, - -1, -1, -1, -1, 105, -1, -1, -1, -1, -1, - -1, 112, -1, -1, -1, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, - -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, - 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, - -1, -1, -1, -1, 7, -1, 9, -1, 11, 12, - 13, -1, -1, 16, -1, -1, 19, -1, -1, -1, - -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, -1, -1, 40, 41, 42, - 43, -1, -1, -1, 47, 48, -1, -1, 51, -1, - -1, 54, -1, -1, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, -1, -1, -1, 98, -1, -1, -1, 102, - 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, 136, -1, 138, -1, -1, -1, -1, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, -1, 165, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 7, -1, 9, -1, 11, 12, 13, -1, - -1, 16, -1, -1, 19, -1, -1, -1, -1, -1, - -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, -1, -1, 40, 41, 42, 43, -1, - -1, -1, 47, 48, -1, -1, 51, -1, -1, 54, - -1, -1, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, - -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - -1, -1, -1, 98, -1, -1, -1, 102, 103, -1, - -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, - -1, 136, -1, 138, -1, -1, -1, -1, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, - 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 7, -1, 9, -1, 11, 12, 13, -1, -1, 16, - -1, -1, 19, -1, -1, -1, -1, -1, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, -1, -1, 40, 41, 42, 43, -1, -1, -1, - 47, 48, -1, -1, 51, -1, -1, 54, -1, -1, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, -1, -1, -1, - -1, -1, -1, -1, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, - -1, 98, -1, -1, -1, 102, 103, -1, -1, -1, - -1, -1, -1, -1, 111, -1, -1, -1, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, -1, -1, 136, - -1, 138, -1, -1, -1, -1, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, -1, 165, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, - 9, -1, 11, 12, 13, -1, -1, 16, -1, -1, - 19, -1, -1, -1, -1, -1, -1, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, - -1, 40, 41, 42, 43, -1, -1, -1, 47, 48, - -1, -1, 51, -1, -1, 54, -1, -1, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, -1, -1, -1, -1, -1, - -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, - -1, -1, -1, 102, 103, -1, -1, -1, -1, -1, - -1, -1, 111, -1, -1, -1, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, -1, -1, 136, -1, 138, - -1, -1, -1, -1, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, -1, 165, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 7, -1, 9, -1, - 11, 12, 13, -1, -1, 16, -1, -1, 19, -1, - -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, -1, -1, 40, - 41, 42, 43, -1, -1, -1, 47, 48, -1, -1, - 51, -1, -1, 54, -1, -1, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, -1, -1, -1, 98, -1, -1, - -1, 102, 103, -1, -1, 106, -1, -1, -1, -1, - -1, -1, -1, -1, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, 136, -1, 138, -1, -1, - -1, -1, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, -1, 165, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 7, 8, 9, -1, 11, 12, - 13, -1, -1, 16, -1, -1, 19, -1, 21, 22, - -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, -1, -1, 40, 41, 42, - 43, -1, -1, -1, 47, 48, -1, -1, 51, 52, - -1, 54, 55, -1, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, -1, -1, -1, -1, -1, 79, -1, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, -1, -1, -1, 98, 99, -1, -1, 102, - 103, -1, 105, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, -1, -1, 136, -1, 138, -1, -1, -1, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, -1, 165, -1, -1, -1, 169, 170, -1, -1, - -1, -1, 7, 8, 9, -1, 11, 12, 13, -1, - -1, 16, -1, -1, 19, -1, 21, 22, -1, -1, - -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, -1, -1, 40, 41, 42, 43, -1, - -1, -1, 47, 48, -1, -1, 51, 52, -1, 54, - 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, - -1, -1, -1, -1, 79, -1, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - -1, -1, -1, 98, 99, -1, -1, 102, 103, -1, - 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, 136, -1, 138, -1, -1, -1, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, - 165, -1, -1, -1, 169, 170, -1, -1, -1, -1, - 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, - -1, -1, 19, 20, 21, 22, 23, 24, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, -1, 40, 41, 42, 43, -1, -1, -1, - 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, -1, -1, 76, - -1, -1, 79, -1, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, - -1, 98, 99, -1, -1, 102, 103, -1, 105, 106, - -1, 108, -1, -1, -1, -1, -1, -1, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, 136, - -1, 138, -1, -1, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, - -1, -1, 169, 170, -1, -1, -1, -1, 7, 8, - 9, 10, 11, 12, 13, -1, 15, 16, -1, -1, - 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - -1, 40, 41, 42, 43, -1, -1, -1, 47, 48, - 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, -1, -1, 76, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, - 99, -1, -1, 102, 103, -1, 105, 106, -1, 108, - -1, -1, -1, -1, -1, -1, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, 136, -1, 138, - -1, -1, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, -1, 165, 166, -1, -1, - 169, 170, -1, -1, -1, -1, 7, 8, 9, 10, - 11, 12, 13, -1, 15, 16, -1, -1, 19, 20, - 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, -1, 40, - 41, 42, 43, -1, -1, -1, 47, 48, 49, -1, - 51, 52, 53, 54, 55, -1, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, -1, -1, -1, 98, 99, -1, - -1, 102, 103, -1, 105, 106, -1, 108, -1, -1, - 111, -1, -1, -1, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, 136, -1, 138, -1, -1, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, -1, 165, 166, -1, -1, 169, 170, - -1, -1, -1, -1, 7, 8, 9, 10, 11, 12, - 13, -1, 15, 16, -1, -1, 19, 20, 21, 22, - 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, -1, 40, 41, 42, - 43, -1, -1, -1, 47, 48, 49, -1, 51, 52, - 53, 54, 55, -1, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, -1, -1, 76, -1, -1, 79, -1, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, -1, -1, -1, 98, 99, -1, -1, 102, - 103, -1, 105, 106, -1, 108, -1, -1, 111, -1, - -1, -1, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, 136, -1, 138, -1, -1, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, -1, 165, 166, -1, -1, 169, 170, -1, -1, - -1, -1, 7, 8, 9, 10, 11, 12, 13, -1, - 15, 16, -1, -1, 19, 20, 21, 22, 23, 24, - -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, - -1, -1, 47, 48, 49, -1, 51, 52, 53, 54, - 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, - -1, 76, -1, -1, 79, -1, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - -1, -1, -1, 98, 99, -1, -1, 102, 103, -1, - 105, 106, -1, 108, -1, -1, 111, -1, -1, -1, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, 136, -1, 138, -1, -1, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, - 165, 166, -1, -1, 169, 170, -1, -1, -1, -1, - 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, - -1, -1, 19, 20, 21, 22, 23, 24, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, -1, 40, 41, 42, 43, -1, -1, -1, - 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, -1, -1, 76, - -1, -1, 79, -1, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, - -1, 98, 99, -1, -1, 102, 103, -1, 105, 106, - -1, 108, -1, -1, 111, -1, -1, -1, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, 136, - -1, 138, -1, -1, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, - -1, -1, 169, 170, -1, -1, -1, -1, + 79, 77, 45, 6, 18, 52, 76, 114, 111, 168, + 79, 45, 52, 134, 76, 17, 134, 52, 45, 77, + 134, 112, 79, 79, 45, 79, 79, 112, 114, 134, + 79, 168, 164, 79, 112, 112, 52, 4, 166, 114, + 6, 134, 79, 44, 134, 18, 114, 52, 18, 45, + 134, 164, 52, 134, 79, 52, 45, 52, 0, 114, + 134, 99, 52, 18, 112, 4, 18, 112, 112, 79, + 52, 77, 18, 18, 78, 18, 17, 18, 77, 54, + 18, 52, 18, 45, 52, 78, 78, 1, 2, 21, + 17, 18, 21, 78, 18, 46, 76, 18, 76, 18, + 54, 18, 18, 21, 78, 18, 46, 101, 76, 113, + 54, 45, -1, 107, -1, 77, 104, 54, -1, 56, + 113, 113, -1, 51, 19, -1, -1, 102, 113, -1, + 50, -1, -1, -1, -1, 134, -1, -1, -1, 113, + 50, 104, -1, 77, 104, 79, 97, 135, 102, 137, + 22, -1, -1, 81, 74, -1, 134, 97, 102, 54, + 80, 56, 50, 134, 74, 102, 94, 39, -1, 114, + 80, 114, 135, 105, 137, 135, 105, 137, 114, -1, + -1, -1, 19, 55, -1, -1, 74, 105, 134, 109, + -1, -1, 80, -1, 7, 14, 134, 114, 114, 109, + 3, 114, 5, 16, -1, 77, 19, 102, -1, -1, + 134, -1, -1, 134, 7, 134, 160, 54, -1, 56, + -1, 109, 25, 16, 7, -1, 19, -1, -1, -1, + -1, -1, -1, 16, 47, -1, 19, -1, -1, -1, + -1, 54, 45, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, + -1, 54, -1, -1, 47, 102, -1, -1, -1, 52, + -1, 54, 75, -1, -1, -1, -1, 114, -1, -1, + -1, -1, -1, -1, -1, 98, -1, -1, -1, 102, + 103, -1, 95, 96, -1, -1, -1, 100, -1, -1, + -1, -1, 115, -1, -1, 98, -1, 110, -1, 102, + 103, -1, -1, -1, -1, 98, -1, -1, -1, 102, + 103, -1, 115, 136, -1, -1, -1, -1, -1, -1, + -1, -1, 115, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, 136, -1, -1, -1, 160, -1, -1, + -1, -1, 145, 136, -1, -1, 7, -1, -1, -1, + -1, -1, 145, -1, 167, 16, -1, 160, 19, -1, + -1, -1, -1, -1, -1, -1, -1, 160, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 102, 103, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 160, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 9, -1, 11, 12, 13, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, -1, 40, 41, 42, 43, -1, + -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, + -1, -1, 57, -1, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + -1, -1, -1, 138, -1, -1, -1, -1, 143, 144, + -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, 161, 162, 163, -1, + 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 9, -1, 11, 12, 13, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + -1, 40, 41, 42, 43, -1, -1, -1, -1, 48, + -1, -1, 51, -1, -1, -1, -1, -1, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, + -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, + -1, -1, -1, -1, 143, 144, -1, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, 161, 162, 163, -1, 165, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 9, -1, 11, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, -1, 40, 41, 42, + 43, -1, -1, -1, -1, 48, -1, -1, 51, 52, + -1, -1, -1, -1, 57, -1, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + -1, -1, -1, -1, -1, -1, -1, -1, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, -1, -1, -1, 138, -1, -1, -1, -1, + 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, 161, 162, + 163, -1, 165, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 9, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, -1, 40, 41, 42, 43, -1, -1, -1, + -1, 48, -1, -1, 51, 52, -1, -1, -1, -1, + 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, -1, -1, -1, -1, + -1, -1, -1, -1, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, + -1, 138, -1, -1, -1, -1, 143, 144, -1, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, 161, 162, 163, -1, 165, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 8, 9, + -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, 21, 22, -1, -1, -1, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, -1, -1, + 40, 41, 42, 43, -1, -1, -1, -1, 48, -1, + -1, 51, 52, -1, -1, 55, -1, 57, -1, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, -1, -1, -1, -1, -1, -1, 79, + -1, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, -1, -1, -1, -1, 99, + -1, -1, -1, -1, -1, 105, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, -1, -1, -1, -1, 138, -1, + -1, -1, 142, 143, 144, -1, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, 161, 162, 163, -1, 165, -1, -1, -1, 169, + 170, -1, -1, -1, -1, 8, 9, -1, 11, 12, + 13, -1, -1, -1, -1, -1, -1, -1, 21, 22, + -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, -1, 40, 41, 42, + 43, -1, -1, -1, -1, 48, -1, -1, 51, 52, + -1, -1, 55, -1, 57, -1, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + -1, -1, -1, -1, -1, -1, 79, -1, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, -1, 99, -1, -1, -1, + -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, -1, -1, -1, 138, -1, -1, -1, 142, + 143, 144, -1, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, 161, 162, + 163, -1, 165, -1, -1, -1, 169, 170, -1, -1, + -1, -1, 8, 9, -1, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, 48, -1, -1, 51, 52, -1, -1, 55, + -1, 57, -1, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, + -1, -1, -1, 79, -1, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, -1, + -1, -1, -1, 99, -1, -1, -1, -1, -1, 105, + -1, -1, -1, -1, -1, -1, 112, -1, -1, -1, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, -1, -1, + -1, -1, 138, -1, -1, -1, 142, 143, 144, -1, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, 161, 162, 163, -1, 165, + -1, -1, -1, 169, 170, -1, -1, -1, -1, 8, + 9, -1, 11, 12, 13, -1, -1, -1, -1, -1, + -1, -1, 21, 22, -1, -1, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + -1, 40, 41, 42, 43, -1, -1, -1, -1, 48, + -1, -1, 51, 52, -1, -1, 55, -1, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, + 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, -1, -1, -1, -1, + 99, -1, -1, -1, -1, -1, 105, -1, -1, -1, + -1, -1, -1, 112, -1, -1, -1, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, -1, -1, -1, 138, + -1, -1, -1, 142, 143, 144, -1, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, 161, 162, 163, -1, 165, -1, -1, -1, + 169, 170, -1, -1, -1, -1, 8, 9, -1, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, 21, + 22, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, -1, -1, 40, 41, + 42, 43, -1, -1, -1, -1, 48, -1, -1, 51, + 52, -1, -1, 55, -1, 57, -1, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, -1, 79, -1, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, -1, -1, -1, -1, 99, -1, -1, + -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, + 112, -1, -1, -1, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, -1, -1, -1, -1, 138, -1, -1, -1, + 142, 143, 144, -1, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, + 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, + -1, -1, -1, 8, 9, -1, 11, 12, 13, -1, + -1, -1, -1, -1, -1, -1, 21, 22, -1, -1, + -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, -1, 40, 41, 42, 43, -1, + -1, -1, -1, 48, -1, -1, 51, 52, -1, -1, + 55, -1, 57, -1, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, -1, -1, + -1, -1, -1, -1, 79, -1, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, + 105, -1, -1, -1, -1, -1, -1, 112, -1, -1, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + -1, -1, -1, 138, -1, -1, -1, 142, 143, 144, + -1, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, 161, 162, 163, -1, + 165, -1, -1, -1, 169, 170, -1, -1, -1, -1, + 8, 9, -1, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, 21, 22, -1, -1, -1, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + -1, -1, 40, 41, 42, 43, -1, -1, -1, -1, + 48, -1, -1, 51, 52, -1, -1, 55, -1, 57, + -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, + -1, 79, -1, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, -1, -1, -1, + -1, 99, -1, -1, -1, -1, -1, 105, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, + 138, -1, -1, -1, 142, 143, 144, -1, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, 161, 162, 163, -1, 165, -1, -1, + -1, 169, 170, -1, -1, -1, -1, 8, 9, -1, + 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, + 21, 22, -1, -1, -1, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, -1, 40, + 41, 42, 43, -1, -1, -1, -1, 48, -1, -1, + 51, 52, -1, -1, 55, -1, 57, -1, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, -1, -1, -1, -1, -1, -1, 79, -1, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, -1, -1, -1, -1, 99, -1, + -1, -1, -1, -1, 105, -1, -1, -1, -1, -1, + -1, 112, -1, -1, -1, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, -1, -1, -1, -1, 138, -1, -1, + -1, 142, 143, 144, -1, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, + -1, -1, -1, -1, 7, -1, 9, -1, 11, 12, + 13, -1, -1, 16, -1, -1, 19, -1, -1, -1, + -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, -1, 40, 41, 42, + 43, -1, -1, -1, 47, 48, -1, -1, 51, -1, + -1, 54, -1, -1, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, -1, -1, -1, -1, -1, -1, -1, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, -1, -1, -1, 102, + 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, -1, 136, -1, 138, -1, -1, -1, -1, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, -1, 165, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 7, -1, 9, -1, 11, 12, 13, -1, + -1, 16, -1, -1, 19, -1, -1, -1, -1, -1, + -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, -1, 40, 41, 42, 43, -1, + -1, -1, 47, 48, -1, -1, 51, -1, -1, 54, + -1, -1, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, + -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, 98, -1, -1, -1, 102, 103, -1, + -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, -1, + -1, 136, -1, 138, -1, -1, -1, -1, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, + 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 7, -1, 9, -1, 11, 12, 13, -1, -1, 16, + -1, -1, 19, -1, -1, -1, -1, -1, -1, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, -1, -1, 40, 41, 42, 43, -1, -1, -1, + 47, 48, -1, -1, 51, -1, -1, 54, -1, -1, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, -1, -1, -1, + -1, -1, -1, -1, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, + -1, 98, -1, -1, -1, 102, 103, -1, -1, -1, + -1, -1, -1, -1, 111, -1, -1, -1, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, -1, -1, 136, + -1, 138, -1, -1, -1, -1, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, -1, 165, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, + 9, -1, 11, 12, 13, -1, -1, 16, -1, -1, + 19, -1, -1, -1, -1, -1, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, + -1, 40, 41, 42, 43, -1, -1, -1, 47, 48, + -1, -1, 51, -1, -1, 54, -1, -1, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, -1, -1, -1, -1, + -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, + -1, -1, -1, 102, 103, -1, -1, -1, -1, -1, + -1, -1, 111, -1, -1, -1, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, -1, -1, 136, -1, 138, + -1, -1, -1, -1, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, -1, 165, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 7, -1, 9, -1, + 11, 12, 13, -1, -1, 16, -1, -1, 19, -1, + -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, -1, -1, 40, + 41, 42, 43, -1, -1, -1, 47, 48, -1, -1, + 51, -1, -1, 54, -1, -1, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, -1, -1, -1, -1, -1, -1, -1, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, -1, -1, -1, 98, -1, -1, + -1, 102, 103, -1, -1, 106, -1, -1, -1, -1, + -1, -1, -1, -1, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, -1, 136, -1, 138, -1, -1, + -1, -1, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, -1, 165, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 7, 8, 9, -1, 11, 12, + 13, -1, -1, 16, -1, -1, 19, -1, 21, 22, + -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, -1, -1, 40, 41, 42, + 43, -1, -1, -1, 47, 48, -1, -1, 51, 52, + -1, 54, 55, -1, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, -1, -1, -1, -1, -1, 79, -1, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, 99, -1, -1, 102, + 103, -1, 105, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, -1, -1, 136, -1, 138, -1, -1, -1, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, -1, 165, -1, -1, -1, 169, 170, -1, -1, + -1, -1, 7, 8, 9, -1, 11, 12, 13, -1, + -1, 16, -1, -1, 19, -1, 21, 22, -1, -1, + -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, -1, 40, 41, 42, 43, -1, + -1, -1, 47, 48, -1, -1, 51, 52, -1, 54, + 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, + -1, -1, -1, -1, 79, -1, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, 98, 99, -1, -1, 102, 103, -1, + 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + -1, 136, -1, 138, -1, -1, -1, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, + 165, -1, -1, -1, 169, 170, -1, -1, -1, -1, + 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, + -1, -1, 19, 20, 21, 22, 23, 24, -1, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, -1, 40, 41, 42, 43, -1, -1, -1, + 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, -1, -1, 76, + -1, -1, 79, -1, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, + -1, 98, 99, -1, -1, 102, 103, -1, 105, 106, + -1, 108, -1, -1, -1, -1, -1, -1, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, -1, 136, + -1, 138, -1, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, + -1, -1, 169, 170, -1, -1, -1, -1, 7, 8, + 9, 10, 11, 12, 13, -1, 15, 16, -1, -1, + 19, 20, 21, 22, 23, 24, -1, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + -1, 40, 41, 42, 43, -1, -1, -1, 47, 48, + 49, -1, 51, 52, 53, 54, 55, -1, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, -1, 76, -1, -1, + 79, -1, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, -1, -1, -1, 98, + 99, -1, -1, 102, 103, -1, 105, 106, -1, 108, + -1, -1, -1, -1, -1, -1, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, -1, 136, -1, 138, + -1, -1, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, -1, 165, 166, -1, -1, + 169, 170, -1, -1, -1, -1, 7, 8, 9, 10, + 11, 12, 13, -1, 15, 16, -1, -1, 19, 20, + 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, -1, 40, + 41, 42, 43, -1, -1, -1, 47, 48, 49, -1, + 51, 52, 53, 54, 55, -1, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, -1, -1, 76, -1, -1, 79, -1, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, -1, -1, -1, 98, 99, -1, + -1, 102, 103, -1, 105, 106, -1, 108, -1, -1, + 111, -1, -1, -1, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, -1, 136, -1, 138, -1, -1, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, -1, 165, 166, -1, -1, 169, 170, + -1, -1, -1, -1, 7, 8, 9, 10, 11, 12, + 13, -1, 15, 16, -1, -1, 19, 20, 21, 22, + 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, -1, 40, 41, 42, + 43, -1, -1, -1, 47, 48, 49, -1, 51, 52, + 53, 54, 55, -1, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, -1, -1, 76, -1, -1, 79, -1, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, -1, -1, -1, 98, 99, -1, -1, 102, + 103, -1, 105, 106, -1, 108, -1, -1, 111, -1, + -1, -1, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, -1, 136, -1, 138, -1, -1, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, -1, 165, 166, -1, -1, 169, 170, -1, -1, + -1, -1, 7, 8, 9, 10, 11, 12, 13, -1, + 15, 16, -1, -1, 19, 20, 21, 22, 23, 24, + -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, + -1, -1, 47, 48, 49, -1, 51, 52, 53, 54, + 55, -1, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, + -1, 76, -1, -1, 79, -1, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + -1, -1, -1, 98, 99, -1, -1, 102, 103, -1, + 105, 106, -1, 108, -1, -1, 111, -1, -1, -1, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + -1, 136, -1, 138, -1, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, -1, + 165, 166, -1, -1, 169, 170, -1, -1, -1, -1, + 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, + -1, -1, 19, 20, 21, 22, 23, 24, -1, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, -1, 40, 41, 42, 43, -1, -1, -1, + 47, 48, 49, -1, 51, 52, 53, 54, 55, -1, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, -1, -1, 76, + -1, -1, 79, -1, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, -1, -1, + -1, 98, 99, -1, -1, 102, 103, -1, 105, 106, + -1, 108, -1, -1, 111, -1, -1, -1, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, -1, 136, + -1, 138, -1, -1, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, -1, 165, 166, + -1, -1, 169, 170, -1, -1, -1, -1, - 12, 14, 3, 3, 3, 54, 15, 14, 55, 15, - 15, 15, 15, 59, 3, 60, 55, 12, 12, 3, - 3, 14, 41, 34, 15, 3, 8, 45, 14, 3, - 3, 12, 12, 35, 55, 73, 12, 14, 35, 14, - 12, -1, -1, 12, 15, 15, 17, 17, 12, 12, - 15, 12, -1, 15, -1, 15, 15, 15, 15, 21, - 20, 20, 19, 28, 15, 23, 15, 15, 14, 12, - 14, -1, 51, 3, 25, 24, 55, 49, 26, 14, - 49, 15, 15, 14, 18, 49, 49, 62, 49, 22, - 14, 14, 36, 15, 15, 15, 15, 19, 18, 15, - 19, 14, 14, 19, 14, 14, 49, 28, 14, 30, - 14, 14, -1, 15, 14, -1, -1, -1, 64, 14, - -1, 31, 32, 14, 14, -1, 28, 62, 30, 15, - -1, 62, 36, 36, 37, 47, 15, 43, 62, 62, - 46, 36, 28, 14, 30, 36, 36, 37, -1, 28, - -1, 30, 61, 15, 58, 14, 65, -1, 71, 71, - 31, 32, 3, 58, 64, -1, 28, 58, 30, -1, - -1, -1, 72, 14, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, - -1, 42, -1, 62, -1, -1, 47, -1, -1, -1, - -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, - -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 75, -1, - -1, -1, -1, -1, -1, -1, -1, -1 -}; + 12, 14, 3, 3, 3, 54, 15, 14, 55, 15, + 15, 15, 15, 59, 3, 60, 55, 12, 12, 3, + 3, 14, 41, 34, 15, 3, 8, 45, 14, 3, + 3, 12, 12, 35, 55, 73, 12, 14, 35, 14, + 12, -1, -1, 12, 15, 15, 17, 17, 12, 12, + 15, 12, -1, 15, -1, 15, 15, 15, 15, 21, + 20, 20, 19, 28, 15, 23, 15, 15, 14, 12, + 14, -1, 51, 3, 25, 24, 55, 49, 26, 14, + 49, 15, 15, 14, 18, 49, 49, 62, 49, 22, + 14, 14, 36, 15, 15, 15, 15, 19, 18, 15, + 19, 14, 14, 19, 14, 14, 49, 28, 14, 30, + 14, 14, -1, 15, 14, -1, -1, -1, 64, 14, + -1, 31, 32, 14, 14, -1, 28, 62, 30, 15, + -1, 62, 36, 36, 37, 47, 15, 43, 62, 62, + 46, 36, 28, 14, 30, 36, 36, 37, -1, 28, + -1, 30, 61, 15, 58, 14, 65, -1, 71, 71, + 31, 32, 3, 58, 64, -1, 28, 58, 30, -1, + -1, -1, 72, 14, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, + -1, 42, -1, 62, -1, -1, 47, -1, -1, -1, + -1, 82, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, + -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 75, -1, + -1, -1, -1, -1, -1, -1, -1, -1}; QT_END_NAMESPACE diff --git a/src/libs/glsl/glslparsertable_p.h b/src/libs/glsl/glslparsertable_p.h index 8abd115735..7c298263cd 100644 --- a/src/libs/glsl/glslparsertable_p.h +++ b/src/libs/glsl/glslparsertable_p.h @@ -1,26 +1,31 @@ /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ +** Contact: http://www.qt.io/licensing/ ** ** This file is part of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** $QT_BEGIN_LICENSE:LGPL21$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** $QT_END_LICENSE$ ** @@ -48,221 +53,221 @@ QT_BEGIN_NAMESPACE class GLSLParserTable { public: - enum VariousConstants { - EOF_SYMBOL = 0, - T_ADD_ASSIGN = 3, - T_AMPERSAND = 4, - T_AND_ASSIGN = 5, - T_AND_OP = 6, - T_ATTRIBUTE = 7, - T_BANG = 8, - T_BOOL = 9, - T_BREAK = 10, - T_BVEC2 = 11, - T_BVEC3 = 12, - T_BVEC4 = 13, - T_CARET = 14, - T_CASE = 15, - T_CENTROID = 16, - T_COLON = 17, - T_COMMA = 18, - T_COMMENT = 172, - T_CONST = 19, - T_CONTINUE = 20, - T_DASH = 21, - T_DEC_OP = 22, - T_DEFAULT = 23, - T_DISCARD = 24, - T_DIV_ASSIGN = 25, - T_DMAT2 = 26, - T_DMAT2X2 = 27, - T_DMAT2X3 = 28, - T_DMAT2X4 = 29, - T_DMAT3 = 30, - T_DMAT3X2 = 31, - T_DMAT3X3 = 32, - T_DMAT3X4 = 33, - T_DMAT4 = 34, - T_DMAT4X2 = 35, - T_DMAT4X3 = 36, - T_DMAT4X4 = 37, - T_DO = 38, - T_DOT = 39, - T_DOUBLE = 40, - T_DVEC2 = 41, - T_DVEC3 = 42, - T_DVEC4 = 43, - T_ELSE = 44, - T_EQUAL = 45, - T_EQ_OP = 46, - T_ERROR = 173, - T_FALSE = 170, - T_FEED_EXPRESSION = 2, - T_FEED_GLSL = 1, - T_FLAT = 47, - T_FLOAT = 48, - T_FOR = 49, - T_GE_OP = 50, - T_HIGHP = 51, - T_IDENTIFIER = 52, - T_IF = 53, - T_IN = 54, - T_INC_OP = 55, - T_INOUT = 56, - T_INT = 57, - T_INVARIANT = 58, - T_ISAMPLER1D = 59, - T_ISAMPLER1DARRAY = 60, - T_ISAMPLER2D = 61, - T_ISAMPLER2DARRAY = 62, - T_ISAMPLER2DMS = 63, - T_ISAMPLER2DMSARRAY = 64, - T_ISAMPLER2DRECT = 65, - T_ISAMPLER3D = 66, - T_ISAMPLERBUFFER = 67, - T_ISAMPLERCUBE = 68, - T_ISAMPLERCUBEARRAY = 69, - T_IVEC2 = 70, - T_IVEC3 = 71, - T_IVEC4 = 72, - T_LAYOUT = 73, - T_LEFT_ANGLE = 74, - T_LEFT_ASSIGN = 75, - T_LEFT_BRACE = 76, - T_LEFT_BRACKET = 77, - T_LEFT_OP = 78, - T_LEFT_PAREN = 79, - T_LE_OP = 80, - T_LOWP = 81, - T_MAT2 = 82, - T_MAT2X2 = 83, - T_MAT2X3 = 84, - T_MAT2X4 = 85, - T_MAT3 = 86, - T_MAT3X2 = 87, - T_MAT3X3 = 88, - T_MAT3X4 = 89, - T_MAT4 = 90, - T_MAT4X2 = 91, - T_MAT4X3 = 92, - T_MAT4X4 = 93, - T_MEDIUMP = 94, - T_MOD_ASSIGN = 95, - T_MUL_ASSIGN = 96, - T_NE_OP = 97, - T_NOPERSPECTIVE = 98, - T_NUMBER = 99, - T_OR_ASSIGN = 100, - T_OR_OP = 101, - T_OUT = 102, - T_PATCH = 103, - T_PERCENT = 104, - T_PLUS = 105, - T_PRECISION = 106, - T_PREPROC = 171, - T_QUESTION = 107, - T_RESERVED = 174, - T_RETURN = 108, - T_RIGHT_ANGLE = 109, - T_RIGHT_ASSIGN = 110, - T_RIGHT_BRACE = 111, - T_RIGHT_BRACKET = 112, - T_RIGHT_OP = 113, - T_RIGHT_PAREN = 114, - T_SAMPLE = 115, - T_SAMPLER1D = 116, - T_SAMPLER1DARRAY = 117, - T_SAMPLER1DARRAYSHADOW = 118, - T_SAMPLER1DSHADOW = 119, - T_SAMPLER2D = 120, - T_SAMPLER2DARRAY = 121, - T_SAMPLER2DARRAYSHADOW = 122, - T_SAMPLER2DMS = 123, - T_SAMPLER2DMSARRAY = 124, - T_SAMPLER2DRECT = 125, - T_SAMPLER2DRECTSHADOW = 126, - T_SAMPLER2DSHADOW = 127, - T_SAMPLER3D = 128, - T_SAMPLERBUFFER = 129, - T_SAMPLERCUBE = 130, - T_SAMPLERCUBEARRAY = 131, - T_SAMPLERCUBEARRAYSHADOW = 132, - T_SAMPLERCUBESHADOW = 133, - T_SEMICOLON = 134, - T_SLASH = 135, - T_SMOOTH = 136, - T_STAR = 137, - T_STRUCT = 138, - T_SUBROUTINE = 139, - T_SUB_ASSIGN = 140, - T_SWITCH = 141, - T_TILDE = 142, - T_TRUE = 169, - T_TYPE_NAME = 143, - T_UINT = 144, - T_UNIFORM = 145, - T_USAMPLER1D = 146, - T_USAMPLER1DARRAY = 147, - T_USAMPLER2D = 148, - T_USAMPLER2DARRAY = 149, - T_USAMPLER2DMS = 150, - T_USAMPLER2DMSARRAY = 151, - T_USAMPLER2DRECT = 152, - T_USAMPLER3D = 153, - T_USAMPLERBUFFER = 154, - T_USAMPLERCUBE = 155, - T_USAMPLERCUBEARRAY = 156, - T_UVEC2 = 157, - T_UVEC3 = 158, - T_UVEC4 = 159, - T_VARYING = 160, - T_VEC2 = 161, - T_VEC3 = 162, - T_VEC4 = 163, - T_VERTICAL_BAR = 164, - T_VOID = 165, - T_WHILE = 166, - T_XOR_ASSIGN = 167, - T_XOR_OP = 168, + enum VariousConstants { + EOF_SYMBOL = 0, + T_ADD_ASSIGN = 3, + T_AMPERSAND = 4, + T_AND_ASSIGN = 5, + T_AND_OP = 6, + T_ATTRIBUTE = 7, + T_BANG = 8, + T_BOOL = 9, + T_BREAK = 10, + T_BVEC2 = 11, + T_BVEC3 = 12, + T_BVEC4 = 13, + T_CARET = 14, + T_CASE = 15, + T_CENTROID = 16, + T_COLON = 17, + T_COMMA = 18, + T_COMMENT = 172, + T_CONST = 19, + T_CONTINUE = 20, + T_DASH = 21, + T_DEC_OP = 22, + T_DEFAULT = 23, + T_DISCARD = 24, + T_DIV_ASSIGN = 25, + T_DMAT2 = 26, + T_DMAT2X2 = 27, + T_DMAT2X3 = 28, + T_DMAT2X4 = 29, + T_DMAT3 = 30, + T_DMAT3X2 = 31, + T_DMAT3X3 = 32, + T_DMAT3X4 = 33, + T_DMAT4 = 34, + T_DMAT4X2 = 35, + T_DMAT4X3 = 36, + T_DMAT4X4 = 37, + T_DO = 38, + T_DOT = 39, + T_DOUBLE = 40, + T_DVEC2 = 41, + T_DVEC3 = 42, + T_DVEC4 = 43, + T_ELSE = 44, + T_EQUAL = 45, + T_EQ_OP = 46, + T_ERROR = 173, + T_FALSE = 170, + T_FEED_EXPRESSION = 2, + T_FEED_GLSL = 1, + T_FLAT = 47, + T_FLOAT = 48, + T_FOR = 49, + T_GE_OP = 50, + T_HIGHP = 51, + T_IDENTIFIER = 52, + T_IF = 53, + T_IN = 54, + T_INC_OP = 55, + T_INOUT = 56, + T_INT = 57, + T_INVARIANT = 58, + T_ISAMPLER1D = 59, + T_ISAMPLER1DARRAY = 60, + T_ISAMPLER2D = 61, + T_ISAMPLER2DARRAY = 62, + T_ISAMPLER2DMS = 63, + T_ISAMPLER2DMSARRAY = 64, + T_ISAMPLER2DRECT = 65, + T_ISAMPLER3D = 66, + T_ISAMPLERBUFFER = 67, + T_ISAMPLERCUBE = 68, + T_ISAMPLERCUBEARRAY = 69, + T_IVEC2 = 70, + T_IVEC3 = 71, + T_IVEC4 = 72, + T_LAYOUT = 73, + T_LEFT_ANGLE = 74, + T_LEFT_ASSIGN = 75, + T_LEFT_BRACE = 76, + T_LEFT_BRACKET = 77, + T_LEFT_OP = 78, + T_LEFT_PAREN = 79, + T_LE_OP = 80, + T_LOWP = 81, + T_MAT2 = 82, + T_MAT2X2 = 83, + T_MAT2X3 = 84, + T_MAT2X4 = 85, + T_MAT3 = 86, + T_MAT3X2 = 87, + T_MAT3X3 = 88, + T_MAT3X4 = 89, + T_MAT4 = 90, + T_MAT4X2 = 91, + T_MAT4X3 = 92, + T_MAT4X4 = 93, + T_MEDIUMP = 94, + T_MOD_ASSIGN = 95, + T_MUL_ASSIGN = 96, + T_NE_OP = 97, + T_NOPERSPECTIVE = 98, + T_NUMBER = 99, + T_OR_ASSIGN = 100, + T_OR_OP = 101, + T_OUT = 102, + T_PATCH = 103, + T_PERCENT = 104, + T_PLUS = 105, + T_PRECISION = 106, + T_PREPROC = 171, + T_QUESTION = 107, + T_RESERVED = 174, + T_RETURN = 108, + T_RIGHT_ANGLE = 109, + T_RIGHT_ASSIGN = 110, + T_RIGHT_BRACE = 111, + T_RIGHT_BRACKET = 112, + T_RIGHT_OP = 113, + T_RIGHT_PAREN = 114, + T_SAMPLE = 115, + T_SAMPLER1D = 116, + T_SAMPLER1DARRAY = 117, + T_SAMPLER1DARRAYSHADOW = 118, + T_SAMPLER1DSHADOW = 119, + T_SAMPLER2D = 120, + T_SAMPLER2DARRAY = 121, + T_SAMPLER2DARRAYSHADOW = 122, + T_SAMPLER2DMS = 123, + T_SAMPLER2DMSARRAY = 124, + T_SAMPLER2DRECT = 125, + T_SAMPLER2DRECTSHADOW = 126, + T_SAMPLER2DSHADOW = 127, + T_SAMPLER3D = 128, + T_SAMPLERBUFFER = 129, + T_SAMPLERCUBE = 130, + T_SAMPLERCUBEARRAY = 131, + T_SAMPLERCUBEARRAYSHADOW = 132, + T_SAMPLERCUBESHADOW = 133, + T_SEMICOLON = 134, + T_SLASH = 135, + T_SMOOTH = 136, + T_STAR = 137, + T_STRUCT = 138, + T_SUBROUTINE = 139, + T_SUB_ASSIGN = 140, + T_SWITCH = 141, + T_TILDE = 142, + T_TRUE = 169, + T_TYPE_NAME = 143, + T_UINT = 144, + T_UNIFORM = 145, + T_USAMPLER1D = 146, + T_USAMPLER1DARRAY = 147, + T_USAMPLER2D = 148, + T_USAMPLER2DARRAY = 149, + T_USAMPLER2DMS = 150, + T_USAMPLER2DMSARRAY = 151, + T_USAMPLER2DRECT = 152, + T_USAMPLER3D = 153, + T_USAMPLERBUFFER = 154, + T_USAMPLERCUBE = 155, + T_USAMPLERCUBEARRAY = 156, + T_UVEC2 = 157, + T_UVEC3 = 158, + T_UVEC4 = 159, + T_VARYING = 160, + T_VEC2 = 161, + T_VEC3 = 162, + T_VEC4 = 163, + T_VERTICAL_BAR = 164, + T_VOID = 165, + T_WHILE = 166, + T_XOR_ASSIGN = 167, + T_XOR_OP = 168, - ACCEPT_STATE = 462, - RULE_COUNT = 316, - STATE_COUNT = 463, - TERMINAL_COUNT = 175, - NON_TERMINAL_COUNT = 85, + ACCEPT_STATE = 462, + RULE_COUNT = 316, + STATE_COUNT = 463, + TERMINAL_COUNT = 175, + NON_TERMINAL_COUNT = 85, - GOTO_INDEX_OFFSET = 463, - GOTO_INFO_OFFSET = 4708, - GOTO_CHECK_OFFSET = 4708 - }; + GOTO_INDEX_OFFSET = 463, + GOTO_INFO_OFFSET = 4708, + GOTO_CHECK_OFFSET = 4708 + }; - static const char *const spell[]; - static const short lhs[]; - static const short rhs[]; - static const short goto_default[]; - static const short action_default[]; - static const short action_index[]; - static const short action_info[]; - static const short action_check[]; + static const char *const spell []; + static const short lhs []; + static const short rhs []; + static const short goto_default []; + static const short action_default []; + static const short action_index []; + static const short action_info []; + static const short action_check []; - static inline int nt_action (int state, int nt) - { - const int yyn = action_index [GOTO_INDEX_OFFSET + state] + nt; - if (yyn < 0 || action_check [GOTO_CHECK_OFFSET + yyn] != nt) - return goto_default [nt]; + static inline int nt_action (int state, int nt) + { + const int yyn = action_index [GOTO_INDEX_OFFSET + state] + nt; + if (yyn < 0 || action_check [GOTO_CHECK_OFFSET + yyn] != nt) + return goto_default [nt]; - return action_info [GOTO_INFO_OFFSET + yyn]; - } + return action_info [GOTO_INFO_OFFSET + yyn]; + } - static inline int t_action (int state, int token) - { - const int yyn = action_index [state] + token; + static inline int t_action (int state, int token) + { + const int yyn = action_index [state] + token; - if (yyn < 0 || action_check [yyn] != token) - return - action_default [state]; + if (yyn < 0 || action_check [yyn] != token) + return - action_default [state]; - return action_info [yyn]; - } + return action_info [yyn]; + } }; diff --git a/src/shared/qbs b/src/shared/qbs -Subproject 1ee4260129336c83d7acab1e3e675f7f507ad46 +Subproject d3e137c20248f6852a91341782011ca58534ed2 |