diff --git a/pkg/parser/hintparser.go b/pkg/parser/hintparser.go index cc05b52363cd1..b8579e71e84d3 100644 --- a/pkg/parser/hintparser.go +++ b/pkg/parser/hintparser.go @@ -133,83 +133,83 @@ const ( hintUseToja = 57410 yyhintMaxDepth = 200 - yyhintTabOfs = -214 + yyhintTabOfs = -216 ) var ( yyhintXLAT = map[int]int{ - 41: 0, // ')' (158x) - 57379: 1, // hintAggToCop (145x) - 57401: 2, // hintBCJoin (145x) - 57355: 3, // hintBKA (145x) - 57357: 4, // hintBNL (145x) - 57415: 5, // hintForceIndex (145x) - 57381: 6, // hintHashAgg (145x) - 57359: 7, // hintHashJoin (145x) - 57360: 8, // hintHashJoinBuild (145x) - 57361: 9, // hintHashJoinProbe (145x) - 57347: 10, // hintIdentifier (145x) - 57384: 11, // hintIgnoreIndex (145x) - 57380: 12, // hintIgnorePlanCache (145x) - 57388: 13, // hintIndexHashJoin (145x) - 57385: 14, // hintIndexJoin (145x) - 57365: 15, // hintIndexMerge (145x) - 57392: 16, // hintIndexMergeJoin (145x) - 57387: 17, // hintInlHashJoin (145x) - 57390: 18, // hintInlJoin (145x) - 57391: 19, // hintInlMergeJoin (145x) - 57351: 20, // hintJoinFixedOrder (145x) - 57352: 21, // hintJoinOrder (145x) - 57353: 22, // hintJoinPrefix (145x) - 57354: 23, // hintJoinSuffix (145x) - 57417: 24, // hintLeading (145x) - 57414: 25, // hintLimitToCop (145x) - 57375: 26, // hintMaxExecutionTime (145x) - 57394: 27, // hintMemoryQuota (145x) - 57363: 28, // hintMerge (145x) - 57382: 29, // hintMpp1PhaseAgg (145x) - 57383: 30, // hintMpp2PhaseAgg (145x) - 57367: 31, // hintMRR (145x) - 57356: 32, // hintNoBKA (145x) - 57358: 33, // hintNoBNL (145x) - 57419: 34, // hintNoDecorrelate (145x) - 57362: 35, // hintNoHashJoin (145x) - 57369: 36, // hintNoICP (145x) - 57389: 37, // hintNoIndexHashJoin (145x) - 57386: 38, // hintNoIndexJoin (145x) - 57366: 39, // hintNoIndexMerge (145x) - 57393: 40, // hintNoIndexMergeJoin (145x) - 57364: 41, // hintNoMerge (145x) - 57368: 42, // hintNoMRR (145x) - 57408: 43, // hintNoOrderIndex (145x) - 57370: 44, // hintNoRangeOptimization (145x) - 57374: 45, // hintNoSemijoin (145x) - 57372: 46, // hintNoSkipScan (145x) - 57400: 47, // hintNoSMJoin (145x) - 57395: 48, // hintNoSwapJoinInputs (145x) - 57413: 49, // hintNthPlan (145x) - 57407: 50, // hintOrderIndex (145x) - 57378: 51, // hintQBName (145x) - 57396: 52, // hintQueryType (145x) - 57397: 53, // hintReadConsistentReplica (145x) - 57398: 54, // hintReadFromStorage (145x) - 57377: 55, // hintResourceGroup (145x) - 57373: 56, // hintSemijoin (145x) - 57418: 57, // hintSemiJoinRewrite (145x) - 57376: 58, // hintSetVar (145x) - 57402: 59, // hintShuffleJoin (145x) - 57371: 60, // hintSkipScan (145x) - 57399: 61, // hintSMJoin (145x) - 57416: 62, // hintStraightJoin (145x) - 57403: 63, // hintStreamAgg (145x) - 57404: 64, // hintSwapJoinInputs (145x) - 57411: 65, // hintTimeRange (145x) - 57412: 66, // hintUseCascades (145x) - 57406: 67, // hintUseIndex (145x) - 57405: 68, // hintUseIndexMerge (145x) - 57409: 69, // hintUsePlanCache (145x) - 57410: 70, // hintUseToja (145x) - 44: 71, // ',' (140x) + 41: 0, // ')' (160x) + 57379: 1, // hintAggToCop (147x) + 57401: 2, // hintBCJoin (147x) + 57355: 3, // hintBKA (147x) + 57357: 4, // hintBNL (147x) + 57415: 5, // hintForceIndex (147x) + 57381: 6, // hintHashAgg (147x) + 57359: 7, // hintHashJoin (147x) + 57360: 8, // hintHashJoinBuild (147x) + 57361: 9, // hintHashJoinProbe (147x) + 57347: 10, // hintIdentifier (147x) + 57384: 11, // hintIgnoreIndex (147x) + 57380: 12, // hintIgnorePlanCache (147x) + 57388: 13, // hintIndexHashJoin (147x) + 57385: 14, // hintIndexJoin (147x) + 57365: 15, // hintIndexMerge (147x) + 57392: 16, // hintIndexMergeJoin (147x) + 57387: 17, // hintInlHashJoin (147x) + 57390: 18, // hintInlJoin (147x) + 57391: 19, // hintInlMergeJoin (147x) + 57351: 20, // hintJoinFixedOrder (147x) + 57352: 21, // hintJoinOrder (147x) + 57353: 22, // hintJoinPrefix (147x) + 57354: 23, // hintJoinSuffix (147x) + 57417: 24, // hintLeading (147x) + 57414: 25, // hintLimitToCop (147x) + 57375: 26, // hintMaxExecutionTime (147x) + 57394: 27, // hintMemoryQuota (147x) + 57363: 28, // hintMerge (147x) + 57382: 29, // hintMpp1PhaseAgg (147x) + 57383: 30, // hintMpp2PhaseAgg (147x) + 57367: 31, // hintMRR (147x) + 57356: 32, // hintNoBKA (147x) + 57358: 33, // hintNoBNL (147x) + 57419: 34, // hintNoDecorrelate (147x) + 57362: 35, // hintNoHashJoin (147x) + 57369: 36, // hintNoICP (147x) + 57389: 37, // hintNoIndexHashJoin (147x) + 57386: 38, // hintNoIndexJoin (147x) + 57366: 39, // hintNoIndexMerge (147x) + 57393: 40, // hintNoIndexMergeJoin (147x) + 57364: 41, // hintNoMerge (147x) + 57368: 42, // hintNoMRR (147x) + 57408: 43, // hintNoOrderIndex (147x) + 57370: 44, // hintNoRangeOptimization (147x) + 57374: 45, // hintNoSemijoin (147x) + 57372: 46, // hintNoSkipScan (147x) + 57400: 47, // hintNoSMJoin (147x) + 57395: 48, // hintNoSwapJoinInputs (147x) + 57413: 49, // hintNthPlan (147x) + 57407: 50, // hintOrderIndex (147x) + 57378: 51, // hintQBName (147x) + 57396: 52, // hintQueryType (147x) + 57397: 53, // hintReadConsistentReplica (147x) + 57398: 54, // hintReadFromStorage (147x) + 57377: 55, // hintResourceGroup (147x) + 57373: 56, // hintSemijoin (147x) + 57418: 57, // hintSemiJoinRewrite (147x) + 57376: 58, // hintSetVar (147x) + 57402: 59, // hintShuffleJoin (147x) + 57371: 60, // hintSkipScan (147x) + 57399: 61, // hintSMJoin (147x) + 57416: 62, // hintStraightJoin (147x) + 57403: 63, // hintStreamAgg (147x) + 57404: 64, // hintSwapJoinInputs (147x) + 57411: 65, // hintTimeRange (147x) + 57412: 66, // hintUseCascades (147x) + 57406: 67, // hintUseIndex (147x) + 57405: 68, // hintUseIndexMerge (147x) + 57409: 69, // hintUsePlanCache (147x) + 57410: 70, // hintUseToja (147x) + 44: 71, // ',' (142x) 57429: 72, // hintDupsWeedOut (121x) 57430: 73, // hintFirstMatch (121x) 57431: 74, // hintLooseScan (121x) @@ -222,16 +222,16 @@ var ( 57426: 81, // hintTrue (120x) 57428: 82, // hintGB (119x) 57427: 83, // hintMB (119x) - 57349: 84, // hintSingleAtIdentifier (102x) + 57349: 84, // hintSingleAtIdentifier (103x) 93: 85, // ']' (93x) 46: 86, // '.' (92x) 57422: 87, // hintPartition (87x) 61: 88, // '=' (84x) 40: 89, // '(' (79x) - 57344: 90, // $end (26x) - 57453: 91, // QueryBlockOpt (20x) + 57344: 90, // $end (28x) + 57453: 91, // QueryBlockOpt (21x) 57445: 92, // Identifier (17x) - 57346: 93, // hintIntLit (11x) + 57346: 93, // hintIntLit (13x) 57350: 94, // hintStringLit (6x) 57435: 95, // CommaOpt (4x) 57441: 96, // HintTable (4x) @@ -436,6 +436,8 @@ var ( {114, 5}, {114, 4}, {114, 5}, + {114, 5}, + {114, 4}, {114, 6}, {109, 5}, {120, 1}, @@ -630,36 +632,36 @@ var ( yyhintXErrors = map[yyhintXError]string{} - yyhintParseTab = [308][]uint16{ + yyhintParseTab = [312][]uint16{ // 0 - {1: 289, 248, 241, 243, 277, 285, 262, 264, 265, 236, 275, 293, 255, 251, 267, 260, 254, 250, 259, 219, 238, 239, 240, 266, 290, 226, 231, 253, 286, 287, 268, 242, 244, 296, 263, 270, 256, 252, 291, 261, 245, 269, 279, 271, 281, 273, 247, 258, 227, 278, 230, 235, 292, 237, 229, 280, 295, 228, 249, 272, 246, 294, 288, 257, 232, 283, 274, 276, 284, 282, 101: 233, 106: 220, 234, 109: 218, 225, 112: 224, 222, 217, 223, 221, 124: 216, 126: 215}, - {90: 214}, - {1: 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 401, 90: 213, 95: 519}, + {1: 291, 250, 243, 245, 279, 287, 264, 266, 267, 238, 277, 295, 257, 253, 269, 262, 256, 252, 261, 221, 240, 241, 242, 268, 292, 228, 233, 255, 288, 289, 270, 244, 246, 298, 265, 272, 258, 254, 293, 263, 247, 271, 281, 273, 283, 275, 249, 260, 229, 280, 232, 237, 294, 239, 231, 282, 297, 230, 251, 274, 248, 296, 290, 259, 234, 285, 276, 278, 286, 284, 101: 235, 106: 222, 236, 109: 220, 227, 112: 226, 224, 219, 225, 223, 124: 218, 126: 217}, + {90: 216}, + {1: 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 403, 90: 215, 95: 525}, + {1: 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 90: 214}, {1: 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 90: 212}, - {1: 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 90: 210}, // 5 + {89: 522}, + {89: 519}, {89: 516}, - {89: 513}, - {89: 510}, - {89: 505}, - {89: 502}, + {89: 511}, + {89: 508}, // 10 - {89: 491}, - {89: 479}, - {89: 475}, - {89: 471}, - {89: 466}, + {89: 497}, + {89: 485}, + {89: 481}, + {89: 477}, + {89: 472}, // 15 - {89: 463}, - {89: 451}, - {89: 444}, + {89: 469}, + {89: 457}, + {89: 450}, + {89: 445}, {89: 439}, - {89: 433}, // 20 + {89: 436}, {89: 430}, - {89: 424}, - {89: 412}, - {89: 297}, + {89: 414}, + {89: 299}, {89: 149}, // 25 {89: 148}, @@ -731,22 +733,22 @@ var ( {89: 89}, {89: 88}, {89: 87}, - {76: 185, 185, 84: 299, 91: 298}, - {76: 304, 303, 103: 302, 301, 120: 300}, + {76: 185, 185, 84: 301, 91: 300}, + {76: 306, 305, 103: 304, 303, 120: 302}, // 85 {184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 85: 184, 184, 184, 93: 184}, - {409, 71: 410}, + {411, 71: 412}, {188, 71: 188}, - {98: 305}, + {98: 307}, {98: 84}, // 90 {98: 83}, - {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 299, 91: 307, 97: 306}, - {71: 407, 85: 406}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 309, 96: 308}, + {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 301, 91: 309, 97: 308}, + {71: 409, 85: 408}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 311, 96: 310}, {175, 71: 175, 85: 175}, // 95 - {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 299, 185, 393, 185, 91: 392}, + {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 301, 185, 395, 185, 91: 394}, {82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82}, {81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81}, {80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80}, @@ -845,162 +847,167 @@ var ( {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, {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}, - {181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 85: 181, 87: 396, 108: 405}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 394}, + {181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 85: 181, 87: 398, 108: 407}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 396}, // 180 - {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 299, 185, 87: 185, 91: 395}, - {181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 85: 181, 87: 396, 108: 397}, - {89: 398}, + {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 301, 185, 87: 185, 91: 397}, + {181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 85: 181, 87: 398, 108: 399}, + {89: 400}, {172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 85: 172}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 400, 125: 399}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 402, 125: 401}, // 185 - {402, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 401, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 95: 403}, + {404, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 403, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 95: 405}, {179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179}, {182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 72: 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 94: 182}, {180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 85: 180}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 404}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 406}, // 190 {178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178}, {173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 85: 173}, {186, 71: 186}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 309, 96: 408}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 311, 96: 410}, {174, 71: 174, 85: 174}, // 195 {1: 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 90: 189}, - {76: 304, 303, 103: 302, 411}, + {76: 306, 305, 103: 304, 413}, {187, 71: 187}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 413}, - {88: 414}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 301, 91: 415, 416, 185}, + {93: 428}, // 200 - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 417, 418, 416, 99: 419, 420, 117: 415}, - {423}, + {417, 88: 418}, + {1: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 90: 191}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 421, 422, 420, 99: 423, 424, 117: 419}, + {427}, {158}, + // 205 {157}, {156}, - // 205 - {93: 422}, - {93: 421}, + {93: 426}, + {93: 425}, {154}, + // 210 {155}, {1: 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 90: 190}, - // 210 - {79: 185, 185, 84: 299, 91: 425}, - {79: 427, 428, 119: 426}, {429}, + {1: 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 90: 192}, + {79: 185, 185, 84: 301, 91: 431}, + // 215 + {79: 433, 434, 119: 432}, + {435}, {86}, {85}, - // 215 - {1: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 90: 191}, - {185, 84: 299, 91: 431}, - {432}, - {1: 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 90: 192}, - {78: 185, 81: 185, 84: 299, 91: 434}, + {1: 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 90: 193}, // 220 - {78: 437, 81: 436, 121: 435}, + {185, 84: 301, 91: 437}, {438}, + {1: 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 90: 194}, + {78: 185, 81: 185, 84: 301, 91: 440}, + {78: 443, 81: 442, 121: 441}, + // 225 + {444}, {151}, {150}, - {1: 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 90: 193}, - // 225 - {94: 440}, - {71: 401, 94: 183, 441}, - {94: 442}, - {443}, - {1: 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 90: 194}, + {1: 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 90: 195}, + {94: 446}, // 230 - {84: 299, 91: 445, 93: 185}, - {93: 446}, - {82: 449, 448, 129: 447}, - {450}, - {153}, + {71: 403, 94: 183, 447}, + {94: 448}, + {449}, + {1: 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 90: 196}, + {84: 301, 91: 451, 93: 185}, // 235 + {93: 452}, + {82: 455, 454, 129: 453}, + {456}, + {153}, {152}, - {1: 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 90: 195}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 452}, - {453, 71: 454}, - {1: 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 90: 197}, // 240 - {185, 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 299, 86: 185, 91: 458, 457, 118: 456, 130: 455}, - {460, 86: 461}, + {1: 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 90: 197}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 458}, + {459, 71: 460}, + {1: 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 90: 199}, + {185, 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 301, 86: 185, 91: 464, 463, 118: 462, 130: 461}, + // 245 + {466, 86: 467}, {170, 86: 170}, - {185, 84: 299, 86: 185, 91: 459}, + {185, 84: 301, 86: 185, 91: 465}, {168, 86: 168}, - // 245 {169, 86: 169}, - {1: 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 90: 196}, - {185, 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 299, 86: 185, 91: 458, 457, 118: 462}, - {171, 86: 171}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 464}, // 250 - {465}, {1: 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 90: 198}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 467}, - {88: 468}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 417, 418, 416, 99: 419, 420, 117: 469}, + {185, 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 301, 86: 185, 91: 464, 463, 118: 468}, + {171, 86: 171}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 470}, + {471}, // 255 - {470}, - {1: 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 90: 199}, - {84: 299, 91: 472, 93: 185}, - {93: 473}, - {474}, - // 260 {1: 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 90: 200}, - {84: 299, 91: 476, 93: 185}, - {93: 477}, - {478}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 473}, + {88: 474}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 421, 422, 420, 99: 423, 424, 117: 475}, + {476}, + // 260 {1: 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 90: 201}, + {84: 301, 91: 478, 93: 185}, + {93: 479}, + {480}, + {1: 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 90: 202}, // 265 - {185, 72: 185, 185, 185, 185, 84: 299, 91: 480}, - {162, 72: 484, 485, 486, 487, 111: 483, 127: 482, 481}, - {490}, - {161, 71: 488}, - {160, 71: 160}, + {84: 301, 91: 482, 93: 185}, + {93: 483}, + {484}, + {1: 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 90: 203}, + {185, 72: 185, 185, 185, 185, 84: 301, 91: 486}, // 270 + {162, 72: 490, 491, 492, 493, 111: 489, 127: 488, 487}, + {496}, + {161, 71: 494}, + {160, 71: 160}, {105, 71: 105}, + // 275 {104, 71: 104}, {103, 71: 103}, {102, 71: 102}, - {72: 484, 485, 486, 487, 111: 489}, - // 275 + {72: 490, 491, 492, 493, 111: 495}, {159, 71: 159}, - {1: 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 90: 202}, - {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 299, 91: 493, 102: 492}, - {501}, - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 309, 96: 494}, // 280 - {183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 401, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 95: 495}, - {166, 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 498, 122: 497, 496}, + {1: 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 90: 204}, + {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 301, 91: 499, 102: 498}, + {507}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 311, 96: 500}, + {183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 403, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 95: 501}, + // 285 + {166, 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 504, 122: 503, 502}, {167}, - {165, 71: 499}, + {165, 71: 505}, {164, 71: 164}, - // 285 - {1: 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 500}, - {163, 71: 163}, - {1: 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 90: 203}, - {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 299, 91: 493, 102: 503}, - {504}, + {1: 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 506}, // 290 - {1: 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 90: 204}, - {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 299, 91: 508, 97: 507, 105: 506}, - {509}, - {177, 71: 407}, - {176, 339, 362, 315, 317, 375, 342, 319, 320, 321, 310, 345, 341, 347, 350, 325, 353, 346, 349, 352, 311, 312, 313, 314, 377, 340, 335, 355, 323, 343, 344, 327, 316, 318, 379, 322, 329, 348, 351, 326, 354, 324, 328, 369, 330, 334, 332, 361, 356, 374, 368, 338, 357, 358, 359, 337, 333, 378, 336, 363, 331, 360, 376, 364, 365, 372, 373, 367, 366, 370, 371, 72: 388, 389, 390, 391, 383, 382, 384, 380, 381, 385, 387, 386, 92: 309, 96: 308}, - // 295 + {163, 71: 163}, {1: 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 90: 205}, - {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 299, 91: 508, 97: 507, 105: 511}, - {512}, + {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 301, 91: 499, 102: 509}, + {510}, {1: 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 90: 206}, - {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 299, 91: 307, 97: 514}, - // 300 - {515, 71: 407}, + // 295 + {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 301, 91: 514, 97: 513, 105: 512}, + {515}, + {177, 71: 409}, + {176, 341, 364, 317, 319, 377, 344, 321, 322, 323, 312, 347, 343, 349, 352, 327, 355, 348, 351, 354, 313, 314, 315, 316, 379, 342, 337, 357, 325, 345, 346, 329, 318, 320, 381, 324, 331, 350, 353, 328, 356, 326, 330, 371, 332, 336, 334, 363, 358, 376, 370, 340, 359, 360, 361, 339, 335, 380, 338, 365, 333, 362, 378, 366, 367, 374, 375, 369, 368, 372, 373, 72: 390, 391, 392, 393, 385, 384, 386, 382, 383, 387, 389, 388, 92: 311, 96: 310}, {1: 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 90: 207}, - {185, 84: 299, 91: 517}, + // 300 + {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 301, 91: 514, 97: 513, 105: 517}, {518}, {1: 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 90: 208}, + {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 72: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 301, 91: 309, 97: 520}, + {521, 71: 409}, // 305 - {1: 289, 248, 241, 243, 277, 285, 262, 264, 265, 236, 275, 293, 255, 251, 267, 260, 254, 250, 259, 219, 238, 239, 240, 266, 290, 226, 231, 253, 286, 287, 268, 242, 244, 296, 263, 270, 256, 252, 291, 261, 245, 269, 279, 271, 281, 273, 247, 258, 227, 278, 230, 235, 292, 237, 229, 280, 295, 228, 249, 272, 246, 294, 288, 257, 232, 283, 274, 276, 284, 282, 101: 233, 106: 220, 234, 109: 521, 225, 112: 224, 222, 520, 223, 221}, - {1: 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 90: 211}, {1: 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 90: 209}, + {185, 84: 301, 91: 523}, + {524}, + {1: 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 90: 210}, + {1: 291, 250, 243, 245, 279, 287, 264, 266, 267, 238, 277, 295, 257, 253, 269, 262, 256, 252, 261, 221, 240, 241, 242, 268, 292, 228, 233, 255, 288, 289, 270, 244, 246, 298, 265, 272, 258, 254, 293, 263, 247, 271, 281, 273, 283, 275, 249, 260, 229, 280, 232, 237, 294, 239, 231, 282, 297, 230, 251, 274, 248, 296, 290, 259, 234, 285, 276, 278, 286, 284, 101: 235, 106: 222, 236, 109: 527, 227, 112: 226, 224, 526, 225, 223}, + // 310 + {1: 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 90: 213}, + {1: 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 90: 211}, } ) @@ -1375,10 +1382,20 @@ yynewstate: } case 24: { - parser.warnUnsupportedHint(yyS[yypt-5].ident) + parser.warnUnsupportedHint(yyS[yypt-4].ident) parser.yyVAL.hint = nil } case 25: + { + parser.warnUnsupportedHint(yyS[yypt-3].ident) + parser.yyVAL.hint = nil + } + case 26: + { + parser.warnUnsupportedHint(yyS[yypt-5].ident) + parser.yyVAL.hint = nil + } + case 27: { hs := yyS[yypt-1].hints name := model.NewCIStr(yyS[yypt-4].ident) @@ -1389,60 +1406,60 @@ yynewstate: } parser.yyVAL.hints = hs } - case 26: + case 28: { parser.yyVAL.hints = []*ast.TableOptimizerHint{yyS[yypt-0].hint} } - case 27: + case 29: { parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hint) } - case 28: + case 30: { h := yyS[yypt-1].hint h.HintData = model.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } - case 29: + case 31: { parser.yyVAL.ident = "" } - case 33: + case 35: { parser.yyVAL.modelIdents = nil } - case 34: + case 36: { parser.yyVAL.modelIdents = yyS[yypt-1].modelIdents } - case 35: + case 37: { parser.yyVAL.modelIdents = []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)} } - case 36: + case 38: { parser.yyVAL.modelIdents = append(yyS[yypt-2].modelIdents, model.NewCIStr(yyS[yypt-0].ident)) } - case 38: + case 40: { parser.yyVAL.hint = &ast.TableOptimizerHint{ QBName: model.NewCIStr(yyS[yypt-0].ident), } } - case 39: + case 41: { parser.yyVAL.hint = &ast.TableOptimizerHint{ Tables: []ast.HintTable{yyS[yypt-0].table}, QBName: model.NewCIStr(yyS[yypt-1].ident), } } - case 40: + case 42: { h := yyS[yypt-2].hint h.Tables = append(h.Tables, yyS[yypt-0].table) parser.yyVAL.hint = h } - case 41: + case 43: { parser.yyVAL.table = ast.HintTable{ TableName: model.NewCIStr(yyS[yypt-2].ident), @@ -1450,7 +1467,7 @@ yynewstate: PartitionList: yyS[yypt-0].modelIdents, } } - case 42: + case 44: { parser.yyVAL.table = ast.HintTable{ DBName: model.NewCIStr(yyS[yypt-4].ident), @@ -1459,63 +1476,63 @@ yynewstate: PartitionList: yyS[yypt-0].modelIdents, } } - case 43: + case 45: { h := yyS[yypt-2].hint h.Tables = append(h.Tables, yyS[yypt-0].table) parser.yyVAL.hint = h } - case 44: + case 46: { parser.yyVAL.hint = &ast.TableOptimizerHint{ Tables: []ast.HintTable{yyS[yypt-0].table}, } } - case 45: + case 47: { parser.yyVAL.table = ast.HintTable{ TableName: model.NewCIStr(yyS[yypt-1].ident), QBName: model.NewCIStr(yyS[yypt-0].ident), } } - case 46: + case 48: { parser.yyVAL.table = ast.HintTable{ QBName: model.NewCIStr(yyS[yypt-0].ident), } } - case 47: + case 49: { h := yyS[yypt-0].hint h.Tables = []ast.HintTable{yyS[yypt-2].table} h.QBName = model.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } - case 48: + case 50: { parser.yyVAL.hint = &ast.TableOptimizerHint{} } - case 50: + case 52: { parser.yyVAL.hint = &ast.TableOptimizerHint{ Indexes: []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)}, } } - case 51: + case 53: { h := yyS[yypt-2].hint h.Indexes = append(h.Indexes, model.NewCIStr(yyS[yypt-0].ident)) parser.yyVAL.hint = h } - case 58: + case 60: { parser.yyVAL.ident = strconv.FormatUint(yyS[yypt-0].number, 10) } - case 59: + case 61: { parser.yyVAL.ident = strconv.FormatUint(yyS[yypt-0].number, 10) } - case 60: + case 62: { if yyS[yypt-0].number > 9223372036854775808 { yylex.AppendError(yylex.Errorf("the Signed Value should be at the range of [-9223372036854775808, 9223372036854775807].")) @@ -1527,19 +1544,19 @@ yynewstate: parser.yyVAL.ident = strconv.FormatInt(-int64(yyS[yypt-0].number), 10) } } - case 61: + case 63: { parser.yyVAL.number = 1024 * 1024 } - case 62: + case 64: { parser.yyVAL.number = 1024 * 1024 * 1024 } - case 63: + case 65: { parser.yyVAL.hint = &ast.TableOptimizerHint{HintData: true} } - case 64: + case 66: { parser.yyVAL.hint = &ast.TableOptimizerHint{HintData: false} } diff --git a/pkg/parser/hintparser.y b/pkg/parser/hintparser.y index 232395f9d8ddc..a3e29c8874d06 100644 --- a/pkg/parser/hintparser.y +++ b/pkg/parser/hintparser.y @@ -353,6 +353,16 @@ TableOptimizerHintOpt: HintData: model.NewCIStr($4), } } +| hintIdentifier '(' QueryBlockOpt hintIntLit ')' + { + parser.warnUnsupportedHint($1) + $$ = nil + } +| hintIdentifier '(' Identifier ')' + { + parser.warnUnsupportedHint($1) + $$ = nil + } | hintIdentifier '(' Identifier '=' Value ')' { parser.warnUnsupportedHint($1)