From 37974ca0cb8146b0350740cc8d2fb2e6d2d4ee63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=90=89=E6=98=93?= Date: Fri, 19 Apr 2024 17:19:36 +0800 Subject: [PATCH] fix: #290 hive lifecycle (#293) --- src/grammar/hive/HiveSqlParser.g4 | 12 +- src/lib/hive/HiveSqlParser.interp | 2 +- src/lib/hive/HiveSqlParser.ts | 4766 +++++++++-------- .../hive/syntax/fixtures/createTable.sql | 11 +- 4 files changed, 2410 insertions(+), 2381 deletions(-) diff --git a/src/grammar/hive/HiveSqlParser.g4 b/src/grammar/hive/HiveSqlParser.g4 index 04a37de..a95a3e4 100644 --- a/src/grammar/hive/HiveSqlParser.g4 +++ b/src/grammar/hive/HiveSqlParser.g4 @@ -1634,16 +1634,16 @@ Rules for parsing createtable */ createTableStatement : KW_CREATE temp=KW_TEMPORARY? trans=KW_TRANSACTIONAL? ext=KW_EXTERNAL? KW_TABLE ifNotExists? name=tableNameCreate ( - likeTableOrFile createTablePartitionSpec? tableRowFormat? tableFileFormat? tableLocation? tablePropertiesPrefixed? - | (LPAREN columnNameTypeOrConstraintList RPAREN)? tableComment? tableLifecycle? createTablePartitionSpec? tableBuckets? tableSkewed? - tableRowFormat? tableFileFormat? tableLocation? tablePropertiesPrefixed? ( + likeTableOrFile createTablePartitionSpec? tableRowFormat? tableFileFormat? tableLocation? tablePropertiesPrefixed? tableLifecycle? + | (LPAREN columnNameTypeOrConstraintList RPAREN)? tableComment? createTablePartitionSpec? tableBuckets? tableSkewed? tableRowFormat? + tableFileFormat? tableLocation? tablePropertiesPrefixed? tableLifecycle? ( KW_AS selectStatementWithCTE )? ) | KW_CREATE mgd=KW_MANAGED KW_TABLE ifNotExists? name=tableNameCreate ( - likeTableOrFile tableRowFormat? tableFileFormat? tableLocation? tablePropertiesPrefixed? - | (LPAREN columnNameTypeOrConstraintList RPAREN)? tableComment? tableLifecycle? createTablePartitionSpec? tableBuckets? tableSkewed? - tableRowFormat? tableFileFormat? tableLocation? tablePropertiesPrefixed? ( + likeTableOrFile tableRowFormat? tableFileFormat? tableLocation? tablePropertiesPrefixed? tableLifecycle? + | (LPAREN columnNameTypeOrConstraintList RPAREN)? tableComment? createTablePartitionSpec? tableBuckets? tableSkewed? tableRowFormat? + tableFileFormat? tableLocation? tablePropertiesPrefixed? tableLifecycle? ( KW_AS selectStatementWithCTE )? ) diff --git a/src/lib/hive/HiveSqlParser.interp b/src/lib/hive/HiveSqlParser.interp index b954137..c1518f6 100644 --- a/src/lib/hive/HiveSqlParser.interp +++ b/src/lib/hive/HiveSqlParser.interp @@ -1405,4 +1405,4 @@ dropMappingStatement atn: -[4, 1, 438, 5530, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 1, 0, 5, 0, 1044, 8, 0, 10, 0, 12, 0, 1047, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 1053, 8, 1, 1, 1, 3, 1, 1056, 8, 1, 1, 2, 1, 2, 5, 2, 1060, 8, 2, 10, 2, 12, 2, 1063, 9, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1068, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 1075, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 1085, 8, 3, 1, 3, 3, 3, 1088, 8, 3, 1, 3, 1, 3, 3, 3, 1092, 8, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 1112, 8, 6, 1, 7, 1, 7, 1, 7, 3, 7, 1117, 8, 7, 1, 7, 1, 7, 1, 7, 3, 7, 1122, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 1128, 8, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 3, 9, 1135, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 1148, 8, 10, 1, 11, 1, 11, 3, 11, 1152, 8, 11, 1, 11, 1, 11, 3, 11, 1156, 8, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1161, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1168, 8, 12, 1, 12, 1, 12, 3, 12, 1172, 8, 12, 1, 13, 1, 13, 1, 13, 3, 13, 1177, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 1184, 8, 14, 1, 14, 1, 14, 3, 14, 1188, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 5, 16, 1197, 8, 16, 10, 16, 12, 16, 1200, 9, 16, 1, 17, 1, 17, 1, 17, 3, 17, 1205, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 1212, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 1261, 8, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 3, 28, 1289, 8, 28, 1, 28, 1, 28, 3, 28, 1293, 8, 28, 1, 28, 1, 28, 3, 28, 1297, 8, 28, 1, 28, 3, 28, 1300, 8, 28, 1, 28, 3, 28, 1303, 8, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1308, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1314, 8, 28, 1, 28, 1, 28, 3, 28, 1318, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1324, 8, 28, 3, 28, 1326, 8, 28, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 5, 32, 1341, 8, 32, 10, 32, 12, 32, 1344, 9, 32, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 3, 35, 1355, 8, 35, 1, 35, 1, 35, 3, 35, 1359, 8, 35, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 1366, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 1374, 8, 37, 1, 37, 3, 37, 1377, 8, 37, 1, 38, 1, 38, 1, 38, 3, 38, 1382, 8, 38, 1, 38, 1, 38, 3, 38, 1386, 8, 38, 1, 38, 3, 38, 1389, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 3, 40, 1399, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 1407, 8, 40, 5, 40, 1409, 8, 40, 10, 40, 12, 40, 1412, 9, 40, 3, 40, 1414, 8, 40, 1, 41, 1, 41, 3, 41, 1418, 8, 41, 1, 42, 1, 42, 3, 42, 1422, 8, 42, 1, 42, 3, 42, 1425, 8, 42, 1, 43, 1, 43, 1, 43, 3, 43, 1430, 8, 43, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1436, 8, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1441, 8, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1446, 8, 43, 1, 43, 1, 43, 3, 43, 1450, 8, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 1461, 8, 44, 3, 44, 1463, 8, 44, 1, 44, 1, 44, 3, 44, 1467, 8, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1477, 8, 47, 1, 47, 1, 47, 3, 47, 1481, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1487, 8, 47, 1, 47, 3, 47, 1490, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1497, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1502, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1510, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1515, 8, 47, 1, 47, 1, 47, 3, 47, 1519, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1527, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1532, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1538, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1544, 8, 47, 1, 47, 3, 47, 1547, 8, 47, 1, 47, 3, 47, 1550, 8, 47, 1, 47, 3, 47, 1553, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1562, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1570, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1575, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1583, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1590, 8, 47, 1, 47, 3, 47, 1593, 8, 47, 1, 47, 3, 47, 1596, 8, 47, 3, 47, 1598, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1606, 8, 47, 1, 47, 3, 47, 1609, 8, 47, 1, 47, 3, 47, 1612, 8, 47, 1, 47, 3, 47, 1615, 8, 47, 1, 47, 3, 47, 1618, 8, 47, 1, 47, 3, 47, 1621, 8, 47, 1, 47, 3, 47, 1624, 8, 47, 1, 47, 3, 47, 1627, 8, 47, 1, 47, 3, 47, 1630, 8, 47, 1, 47, 3, 47, 1633, 8, 47, 1, 47, 3, 47, 1636, 8, 47, 3, 47, 1638, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1650, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1656, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1664, 8, 47, 3, 47, 1666, 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 1676, 8, 48, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 1682, 8, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 1697, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 3, 56, 1714, 8, 56, 1, 56, 1, 56, 1, 56, 3, 56, 1719, 8, 56, 1, 57, 1, 57, 3, 57, 1723, 8, 57, 1, 57, 1, 57, 3, 57, 1727, 8, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 3, 58, 1734, 8, 58, 1, 58, 1, 58, 1, 58, 5, 58, 1739, 8, 58, 10, 58, 12, 58, 1742, 9, 58, 1, 58, 1, 58, 1, 58, 3, 58, 1747, 8, 58, 1, 59, 1, 59, 3, 59, 1751, 8, 59, 1, 59, 3, 59, 1754, 8, 59, 1, 59, 1, 59, 1, 59, 5, 59, 1759, 8, 59, 10, 59, 12, 59, 1762, 9, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 3, 63, 1784, 8, 63, 1, 64, 1, 64, 1, 64, 3, 64, 1789, 8, 64, 1, 64, 1, 64, 3, 64, 1793, 8, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 3, 66, 1801, 8, 66, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 1810, 8, 68, 1, 68, 1, 68, 3, 68, 1814, 8, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 1820, 8, 68, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 1826, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 1833, 8, 69, 1, 69, 3, 69, 1836, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 1842, 8, 69, 1, 70, 1, 70, 1, 70, 5, 70, 1847, 8, 70, 10, 70, 12, 70, 1850, 9, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 1857, 8, 71, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 5, 73, 1864, 8, 73, 10, 73, 12, 73, 1867, 9, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 3, 74, 1875, 8, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 3, 75, 1882, 8, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 3, 80, 1902, 8, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 3, 80, 1909, 8, 80, 3, 80, 1911, 8, 80, 1, 81, 1, 81, 1, 81, 5, 81, 1916, 8, 81, 10, 81, 12, 81, 1919, 9, 81, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 84, 1, 84, 3, 84, 1928, 8, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 3, 84, 1936, 8, 84, 1, 85, 1, 85, 3, 85, 1940, 8, 85, 1, 85, 1, 85, 3, 85, 1944, 8, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 1957, 8, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 3, 88, 1966, 8, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 3, 89, 1982, 8, 89, 1, 89, 1, 89, 3, 89, 1986, 8, 89, 1, 89, 1, 89, 1, 89, 3, 89, 1991, 8, 89, 1, 89, 1, 89, 1, 89, 3, 89, 1996, 8, 89, 1, 89, 3, 89, 1999, 8, 89, 1, 89, 3, 89, 2002, 8, 89, 1, 89, 1, 89, 3, 89, 2006, 8, 89, 1, 89, 3, 89, 2009, 8, 89, 1, 89, 3, 89, 2012, 8, 89, 1, 90, 1, 90, 1, 90, 3, 90, 2017, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 3, 91, 2025, 8, 91, 1, 91, 1, 91, 3, 91, 2029, 8, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 3, 91, 2036, 8, 91, 1, 91, 3, 91, 2039, 8, 91, 1, 91, 3, 91, 2042, 8, 91, 1, 91, 3, 91, 2045, 8, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 3, 92, 2057, 8, 92, 1, 92, 1, 92, 1, 93, 1, 93, 3, 93, 2063, 8, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 3, 98, 2089, 8, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 3, 99, 2097, 8, 99, 1, 99, 1, 99, 3, 99, 2101, 8, 99, 1, 99, 3, 99, 2104, 8, 99, 1, 99, 3, 99, 2107, 8, 99, 1, 99, 3, 99, 2110, 8, 99, 1, 99, 3, 99, 2113, 8, 99, 1, 99, 3, 99, 2116, 8, 99, 1, 99, 3, 99, 2119, 8, 99, 1, 99, 3, 99, 2122, 8, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 3, 100, 2131, 8, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2141, 8, 101, 1, 101, 3, 101, 2144, 8, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 2164, 8, 104, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 2170, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 2176, 8, 105, 1, 105, 3, 105, 2179, 8, 105, 3, 105, 2181, 8, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 3, 107, 2188, 8, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 3, 108, 2195, 8, 108, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 3, 111, 2208, 8, 111, 1, 111, 1, 111, 1, 111, 3, 111, 2213, 8, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 5, 112, 2220, 8, 112, 10, 112, 12, 112, 2223, 9, 112, 1, 113, 1, 113, 1, 113, 5, 113, 2228, 8, 113, 10, 113, 12, 113, 2231, 9, 113, 1, 114, 1, 114, 1, 114, 5, 114, 2236, 8, 114, 10, 114, 12, 114, 2239, 9, 114, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 3, 116, 2248, 8, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 3, 116, 2261, 8, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2274, 8, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 2295, 8, 119, 1, 120, 1, 120, 3, 120, 2299, 8, 120, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 2314, 8, 123, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 2320, 8, 124, 1, 124, 3, 124, 2323, 8, 124, 1, 124, 3, 124, 2326, 8, 124, 1, 124, 3, 124, 2329, 8, 124, 1, 124, 3, 124, 2332, 8, 124, 1, 125, 1, 125, 3, 125, 2336, 8, 125, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 5, 128, 2348, 8, 128, 10, 128, 12, 128, 2351, 9, 128, 1, 128, 1, 128, 1, 128, 5, 128, 2356, 8, 128, 10, 128, 12, 128, 2359, 9, 128, 3, 128, 2361, 8, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 3, 131, 2376, 8, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2410, 8, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2418, 8, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2423, 8, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2431, 8, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2436, 8, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2441, 8, 136, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 5, 138, 2449, 8, 138, 10, 138, 12, 138, 2452, 9, 138, 1, 139, 1, 139, 1, 139, 5, 139, 2457, 8, 139, 10, 139, 12, 139, 2460, 9, 139, 1, 140, 1, 140, 1, 140, 5, 140, 2465, 8, 140, 10, 140, 12, 140, 2468, 9, 140, 1, 141, 1, 141, 1, 141, 5, 141, 2473, 8, 141, 10, 141, 12, 141, 2476, 9, 141, 1, 142, 1, 142, 1, 142, 5, 142, 2481, 8, 142, 10, 142, 12, 142, 2484, 9, 142, 1, 142, 3, 142, 2487, 8, 142, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 3, 144, 2497, 8, 144, 5, 144, 2499, 8, 144, 10, 144, 12, 144, 2502, 9, 144, 1, 145, 1, 145, 1, 145, 5, 145, 2507, 8, 145, 10, 145, 12, 145, 2510, 9, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 3, 147, 2518, 8, 147, 1, 147, 3, 147, 2521, 8, 147, 1, 148, 1, 148, 3, 148, 2525, 8, 148, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 3, 150, 2532, 8, 150, 1, 151, 1, 151, 1, 152, 1, 152, 3, 152, 2538, 8, 152, 1, 152, 1, 152, 3, 152, 2542, 8, 152, 1, 153, 1, 153, 1, 153, 1, 153, 3, 153, 2548, 8, 153, 1, 154, 1, 154, 3, 154, 2552, 8, 154, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 3, 157, 2564, 8, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 3, 157, 2573, 8, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 3, 158, 2584, 8, 158, 1, 159, 1, 159, 3, 159, 2588, 8, 159, 1, 160, 1, 160, 1, 160, 5, 160, 2593, 8, 160, 10, 160, 12, 160, 2596, 9, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 5, 162, 2605, 8, 162, 10, 162, 12, 162, 2608, 9, 162, 1, 163, 1, 163, 1, 164, 1, 164, 3, 164, 2614, 8, 164, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 3, 167, 2623, 8, 167, 1, 167, 3, 167, 2626, 8, 167, 1, 168, 1, 168, 1, 168, 5, 168, 2631, 8, 168, 10, 168, 12, 168, 2634, 9, 168, 1, 169, 1, 169, 1, 169, 3, 169, 2639, 8, 169, 1, 170, 1, 170, 1, 171, 1, 171, 3, 171, 2645, 8, 171, 1, 171, 3, 171, 2648, 8, 171, 1, 171, 3, 171, 2651, 8, 171, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 2657, 8, 172, 1, 173, 1, 173, 3, 173, 2661, 8, 173, 1, 174, 1, 174, 3, 174, 2665, 8, 174, 1, 175, 1, 175, 1, 175, 3, 175, 2670, 8, 175, 1, 175, 1, 175, 3, 175, 2674, 8, 175, 1, 176, 1, 176, 3, 176, 2678, 8, 176, 1, 177, 1, 177, 3, 177, 2682, 8, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 3, 177, 2690, 8, 177, 1, 178, 1, 178, 3, 178, 2694, 8, 178, 1, 178, 1, 178, 3, 178, 2698, 8, 178, 1, 179, 1, 179, 3, 179, 2702, 8, 179, 1, 180, 1, 180, 3, 180, 2706, 8, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 3, 180, 2714, 8, 180, 1, 181, 1, 181, 3, 181, 2718, 8, 181, 1, 181, 1, 181, 3, 181, 2722, 8, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 3, 182, 2730, 8, 182, 1, 183, 1, 183, 1, 183, 3, 183, 2735, 8, 183, 1, 184, 1, 184, 1, 184, 3, 184, 2740, 8, 184, 1, 185, 1, 185, 3, 185, 2744, 8, 185, 1, 186, 1, 186, 3, 186, 2748, 8, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 3, 187, 2755, 8, 187, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 5, 189, 2762, 8, 189, 10, 189, 12, 189, 2765, 9, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 3, 190, 2772, 8, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 2784, 8, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 2802, 8, 191, 1, 191, 3, 191, 2805, 8, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 2811, 8, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 3, 196, 2837, 8, 196, 1, 197, 3, 197, 2840, 8, 197, 1, 197, 1, 197, 1, 198, 1, 198, 3, 198, 2846, 8, 198, 1, 199, 1, 199, 1, 199, 1, 199, 5, 199, 2852, 8, 199, 10, 199, 12, 199, 2855, 9, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 3, 200, 2862, 8, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 5, 201, 2873, 8, 201, 10, 201, 12, 201, 2876, 9, 201, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2882, 8, 202, 1, 202, 3, 202, 2885, 8, 202, 1, 202, 3, 202, 2888, 8, 202, 1, 202, 3, 202, 2891, 8, 202, 1, 202, 3, 202, 2894, 8, 202, 1, 202, 3, 202, 2897, 8, 202, 1, 202, 3, 202, 2900, 8, 202, 1, 202, 3, 202, 2903, 8, 202, 1, 202, 3, 202, 2906, 8, 202, 1, 202, 3, 202, 2909, 8, 202, 1, 202, 3, 202, 2912, 8, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2917, 8, 202, 1, 202, 3, 202, 2920, 8, 202, 1, 202, 3, 202, 2923, 8, 202, 1, 202, 3, 202, 2926, 8, 202, 1, 202, 3, 202, 2929, 8, 202, 1, 202, 3, 202, 2932, 8, 202, 1, 202, 3, 202, 2935, 8, 202, 1, 202, 3, 202, 2938, 8, 202, 1, 202, 3, 202, 2941, 8, 202, 1, 202, 3, 202, 2944, 8, 202, 1, 202, 3, 202, 2947, 8, 202, 3, 202, 2949, 8, 202, 1, 203, 1, 203, 1, 203, 1, 203, 3, 203, 2955, 8, 203, 1, 204, 1, 204, 3, 204, 2959, 8, 204, 1, 204, 3, 204, 2962, 8, 204, 1, 204, 3, 204, 2965, 8, 204, 1, 204, 3, 204, 2968, 8, 204, 1, 204, 3, 204, 2971, 8, 204, 1, 204, 3, 204, 2974, 8, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 3, 204, 2981, 8, 204, 1, 205, 1, 205, 3, 205, 2985, 8, 205, 1, 205, 3, 205, 2988, 8, 205, 1, 205, 3, 205, 2991, 8, 205, 1, 205, 3, 205, 2994, 8, 205, 1, 205, 3, 205, 2997, 8, 205, 1, 205, 3, 205, 3000, 8, 205, 1, 206, 1, 206, 1, 206, 4, 206, 3005, 8, 206, 11, 206, 12, 206, 3006, 1, 207, 3, 207, 3010, 8, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 3, 208, 3018, 8, 208, 1, 208, 1, 208, 3, 208, 3022, 8, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 3, 208, 3029, 8, 208, 3, 208, 3031, 8, 208, 1, 209, 3, 209, 3034, 8, 209, 1, 209, 1, 209, 1, 209, 3, 209, 3039, 8, 209, 1, 209, 3, 209, 3042, 8, 209, 1, 209, 1, 209, 3, 209, 3046, 8, 209, 1, 210, 1, 210, 1, 210, 3, 210, 3051, 8, 210, 1, 210, 1, 210, 1, 210, 1, 210, 3, 210, 3057, 8, 210, 1, 211, 1, 211, 1, 211, 1, 211, 3, 211, 3063, 8, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 3, 213, 3071, 8, 213, 1, 214, 1, 214, 1, 214, 1, 214, 5, 214, 3077, 8, 214, 10, 214, 12, 214, 3080, 9, 214, 1, 215, 1, 215, 1, 215, 1, 215, 3, 215, 3086, 8, 215, 1, 216, 1, 216, 1, 216, 1, 216, 3, 216, 3092, 8, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 5, 217, 3099, 8, 217, 10, 217, 12, 217, 3102, 9, 217, 3, 217, 3104, 8, 217, 1, 218, 1, 218, 3, 218, 3108, 8, 218, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 222, 1, 222, 3, 222, 3121, 8, 222, 1, 223, 1, 223, 3, 223, 3125, 8, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 4, 225, 3134, 8, 225, 11, 225, 12, 225, 3135, 1, 226, 1, 226, 1, 226, 4, 226, 3141, 8, 226, 11, 226, 12, 226, 3142, 1, 227, 1, 227, 3, 227, 3147, 8, 227, 1, 227, 1, 227, 1, 227, 3, 227, 3152, 8, 227, 1, 227, 3, 227, 3155, 8, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 5, 228, 3165, 8, 228, 10, 228, 12, 228, 3168, 9, 228, 1, 228, 3, 228, 3171, 8, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 3178, 8, 229, 1, 229, 1, 229, 1, 229, 3, 229, 3183, 8, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 3, 232, 3203, 8, 232, 1, 233, 1, 233, 1, 233, 4, 233, 3208, 8, 233, 11, 233, 12, 233, 3209, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 3, 238, 3233, 8, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 3, 238, 3249, 8, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 3266, 8, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 3272, 8, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 3, 240, 3289, 8, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 3, 242, 3302, 8, 242, 1, 243, 1, 243, 3, 243, 3306, 8, 243, 1, 244, 1, 244, 3, 244, 3310, 8, 244, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 3, 246, 3317, 8, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 3, 252, 3345, 8, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 3, 252, 3352, 8, 252, 1, 253, 1, 253, 1, 253, 3, 253, 3357, 8, 253, 1, 254, 1, 254, 1, 254, 3, 254, 3362, 8, 254, 1, 255, 1, 255, 1, 255, 3, 255, 3367, 8, 255, 1, 255, 1, 255, 1, 255, 3, 255, 3372, 8, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 3, 257, 3380, 8, 257, 1, 257, 1, 257, 1, 257, 1, 257, 3, 257, 3386, 8, 257, 1, 257, 1, 257, 3, 257, 3390, 8, 257, 1, 257, 3, 257, 3393, 8, 257, 1, 257, 3, 257, 3396, 8, 257, 1, 258, 1, 258, 1, 258, 1, 258, 3, 258, 3402, 8, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 3, 258, 3409, 8, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 3, 260, 3419, 8, 260, 1, 261, 1, 261, 3, 261, 3423, 8, 261, 1, 261, 4, 261, 3426, 8, 261, 11, 261, 12, 261, 3427, 1, 262, 1, 262, 3, 262, 3432, 8, 262, 1, 263, 1, 263, 5, 263, 3436, 8, 263, 10, 263, 12, 263, 3439, 9, 263, 1, 264, 1, 264, 5, 264, 3443, 8, 264, 10, 264, 12, 264, 3446, 9, 264, 1, 265, 1, 265, 5, 265, 3450, 8, 265, 10, 265, 12, 265, 3453, 9, 265, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 3, 268, 3463, 8, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 5, 268, 3470, 8, 268, 10, 268, 12, 268, 3473, 9, 268, 1, 268, 3, 268, 3476, 8, 268, 1, 268, 3, 268, 3479, 8, 268, 1, 268, 3, 268, 3482, 8, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 3, 269, 3490, 8, 269, 1, 269, 3, 269, 3493, 8, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 3501, 8, 270, 1, 270, 3, 270, 3504, 8, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 3, 271, 3512, 8, 271, 1, 271, 1, 271, 3, 271, 3516, 8, 271, 1, 271, 1, 271, 1, 271, 3, 271, 3521, 8, 271, 1, 272, 1, 272, 3, 272, 3525, 8, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 3, 274, 3534, 8, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 5, 277, 3548, 8, 277, 10, 277, 12, 277, 3551, 9, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 3, 280, 3565, 8, 280, 3, 280, 3567, 8, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 3, 283, 3583, 8, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 3, 283, 3590, 8, 283, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 3, 288, 3607, 8, 288, 1, 288, 3, 288, 3610, 8, 288, 1, 288, 3, 288, 3613, 8, 288, 1, 288, 3, 288, 3616, 8, 288, 1, 288, 1, 288, 1, 288, 1, 288, 3, 288, 3622, 8, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 3, 291, 3645, 8, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 3, 292, 3653, 8, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 3, 293, 3667, 8, 293, 1, 293, 3, 293, 3670, 8, 293, 1, 294, 1, 294, 1, 294, 3, 294, 3675, 8, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 3, 298, 3701, 8, 298, 1, 299, 1, 299, 3, 299, 3705, 8, 299, 1, 299, 3, 299, 3708, 8, 299, 1, 299, 3, 299, 3711, 8, 299, 1, 299, 1, 299, 3, 299, 3715, 8, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3720, 8, 299, 1, 299, 3, 299, 3723, 8, 299, 1, 299, 3, 299, 3726, 8, 299, 1, 299, 3, 299, 3729, 8, 299, 1, 299, 3, 299, 3732, 8, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3738, 8, 299, 1, 299, 3, 299, 3741, 8, 299, 1, 299, 3, 299, 3744, 8, 299, 1, 299, 3, 299, 3747, 8, 299, 1, 299, 3, 299, 3750, 8, 299, 1, 299, 3, 299, 3753, 8, 299, 1, 299, 3, 299, 3756, 8, 299, 1, 299, 3, 299, 3759, 8, 299, 1, 299, 3, 299, 3762, 8, 299, 1, 299, 3, 299, 3765, 8, 299, 1, 299, 1, 299, 3, 299, 3769, 8, 299, 3, 299, 3771, 8, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3777, 8, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3782, 8, 299, 1, 299, 3, 299, 3785, 8, 299, 1, 299, 3, 299, 3788, 8, 299, 1, 299, 3, 299, 3791, 8, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3797, 8, 299, 1, 299, 3, 299, 3800, 8, 299, 1, 299, 3, 299, 3803, 8, 299, 1, 299, 3, 299, 3806, 8, 299, 1, 299, 3, 299, 3809, 8, 299, 1, 299, 3, 299, 3812, 8, 299, 1, 299, 3, 299, 3815, 8, 299, 1, 299, 3, 299, 3818, 8, 299, 1, 299, 3, 299, 3821, 8, 299, 1, 299, 3, 299, 3824, 8, 299, 1, 299, 1, 299, 3, 299, 3828, 8, 299, 3, 299, 3830, 8, 299, 3, 299, 3832, 8, 299, 1, 300, 1, 300, 1, 300, 3, 300, 3837, 8, 300, 1, 300, 1, 300, 3, 300, 3841, 8, 300, 1, 300, 3, 300, 3844, 8, 300, 1, 300, 3, 300, 3847, 8, 300, 1, 300, 1, 300, 1, 300, 3, 300, 3852, 8, 300, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 3, 305, 3870, 8, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 5, 306, 3877, 8, 306, 10, 306, 12, 306, 3880, 9, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 5, 308, 3889, 8, 308, 10, 308, 12, 308, 3892, 9, 308, 1, 309, 1, 309, 1, 309, 5, 309, 3897, 8, 309, 10, 309, 12, 309, 3900, 9, 309, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 4, 311, 3909, 8, 311, 11, 311, 12, 311, 3910, 1, 311, 3, 311, 3914, 8, 311, 1, 312, 1, 312, 5, 312, 3918, 8, 312, 10, 312, 12, 312, 3921, 9, 312, 1, 312, 1, 312, 5, 312, 3925, 8, 312, 10, 312, 12, 312, 3928, 9, 312, 1, 312, 1, 312, 5, 312, 3932, 8, 312, 10, 312, 12, 312, 3935, 9, 312, 1, 312, 1, 312, 5, 312, 3939, 8, 312, 10, 312, 12, 312, 3942, 9, 312, 1, 312, 1, 312, 1, 312, 1, 312, 3, 312, 3948, 8, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 3, 313, 3957, 8, 313, 5, 313, 3959, 8, 313, 10, 313, 12, 313, 3962, 9, 313, 1, 314, 1, 314, 1, 314, 1, 314, 3, 314, 3968, 8, 314, 1, 314, 5, 314, 3971, 8, 314, 10, 314, 12, 314, 3974, 9, 314, 1, 315, 3, 315, 3977, 8, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 3, 318, 3993, 8, 318, 1, 318, 1, 318, 3, 318, 3997, 8, 318, 3, 318, 3999, 8, 318, 1, 318, 3, 318, 4002, 8, 318, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 5, 319, 4013, 8, 319, 10, 319, 12, 319, 4016, 9, 319, 3, 319, 4018, 8, 319, 1, 319, 3, 319, 4021, 8, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 5, 319, 4031, 8, 319, 10, 319, 12, 319, 4034, 9, 319, 3, 319, 4036, 8, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 3, 319, 4043, 8, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 5, 319, 4050, 8, 319, 10, 319, 12, 319, 4053, 9, 319, 1, 319, 1, 319, 3, 319, 4057, 8, 319, 3, 319, 4059, 8, 319, 3, 319, 4061, 8, 319, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 5, 321, 4076, 8, 321, 10, 321, 12, 321, 4079, 9, 321, 3, 321, 4081, 8, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 3, 322, 4090, 8, 322, 1, 322, 1, 322, 1, 323, 1, 323, 3, 323, 4096, 8, 323, 1, 324, 1, 324, 3, 324, 4100, 8, 324, 1, 324, 3, 324, 4103, 8, 324, 1, 324, 3, 324, 4106, 8, 324, 1, 324, 3, 324, 4109, 8, 324, 1, 324, 3, 324, 4112, 8, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 3, 325, 4124, 8, 325, 1, 326, 1, 326, 3, 326, 4128, 8, 326, 1, 326, 3, 326, 4131, 8, 326, 1, 326, 3, 326, 4134, 8, 326, 1, 327, 1, 327, 1, 328, 1, 328, 1, 329, 1, 329, 3, 329, 4142, 8, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 3, 330, 4149, 8, 330, 1, 330, 3, 330, 4152, 8, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 3, 331, 4159, 8, 331, 1, 331, 3, 331, 4162, 8, 331, 1, 332, 1, 332, 1, 332, 3, 332, 4167, 8, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 3, 333, 4174, 8, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 3, 334, 4182, 8, 334, 1, 334, 1, 334, 1, 335, 1, 335, 3, 335, 4188, 8, 335, 1, 335, 1, 335, 1, 335, 3, 335, 4193, 8, 335, 1, 335, 1, 335, 3, 335, 4197, 8, 335, 1, 336, 1, 336, 1, 336, 3, 336, 4202, 8, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 3, 337, 4209, 8, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 5, 337, 4221, 8, 337, 10, 337, 12, 337, 4224, 9, 337, 3, 337, 4226, 8, 337, 1, 337, 1, 337, 3, 337, 4230, 8, 337, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 5, 342, 4245, 8, 342, 10, 342, 12, 342, 4248, 9, 342, 1, 342, 1, 342, 1, 342, 5, 342, 4253, 8, 342, 10, 342, 12, 342, 4256, 9, 342, 3, 342, 4258, 8, 342, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 3, 345, 4271, 8, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 5, 345, 4278, 8, 345, 10, 345, 12, 345, 4281, 9, 345, 3, 345, 4283, 8, 345, 1, 345, 1, 345, 1, 346, 1, 346, 3, 346, 4289, 8, 346, 1, 346, 3, 346, 4292, 8, 346, 1, 346, 1, 346, 1, 346, 3, 346, 4297, 8, 346, 1, 346, 3, 346, 4300, 8, 346, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 5, 348, 4307, 8, 348, 10, 348, 12, 348, 4310, 9, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 3, 349, 4323, 8, 349, 1, 349, 1, 349, 1, 349, 1, 349, 3, 349, 4329, 8, 349, 3, 349, 4331, 8, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 3, 350, 4339, 8, 350, 1, 350, 3, 350, 4342, 8, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 5, 350, 4350, 8, 350, 10, 350, 12, 350, 4353, 9, 350, 1, 350, 1, 350, 3, 350, 4357, 8, 350, 3, 350, 4359, 8, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 3, 351, 4371, 8, 351, 1, 351, 1, 351, 1, 351, 1, 351, 3, 351, 4377, 8, 351, 3, 351, 4379, 8, 351, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 3, 352, 4386, 8, 352, 1, 353, 1, 353, 1, 353, 5, 353, 4391, 8, 353, 10, 353, 12, 353, 4394, 9, 353, 1, 354, 1, 354, 1, 354, 1, 354, 5, 354, 4400, 8, 354, 10, 354, 12, 354, 4403, 9, 354, 1, 355, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 3, 356, 4412, 8, 356, 1, 356, 3, 356, 4415, 8, 356, 1, 356, 3, 356, 4418, 8, 356, 1, 356, 3, 356, 4421, 8, 356, 1, 357, 1, 357, 3, 357, 4425, 8, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 3, 358, 4434, 8, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 3, 359, 4443, 8, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 3, 360, 4451, 8, 360, 1, 361, 1, 361, 1, 361, 1, 361, 3, 361, 4457, 8, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 3, 363, 4467, 8, 363, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 3, 365, 4474, 8, 365, 1, 365, 1, 365, 1, 365, 1, 365, 5, 365, 4480, 8, 365, 10, 365, 12, 365, 4483, 9, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 3, 366, 4492, 8, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 5, 366, 4500, 8, 366, 10, 366, 12, 366, 4503, 9, 366, 1, 366, 1, 366, 3, 366, 4507, 8, 366, 1, 367, 1, 367, 3, 367, 4511, 8, 367, 1, 368, 1, 368, 3, 368, 4515, 8, 368, 1, 368, 1, 368, 5, 368, 4519, 8, 368, 10, 368, 12, 368, 4522, 9, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 3, 374, 4542, 8, 374, 1, 375, 1, 375, 4, 375, 4546, 8, 375, 11, 375, 12, 375, 4547, 1, 376, 1, 376, 3, 376, 4552, 8, 376, 1, 377, 1, 377, 3, 377, 4556, 8, 377, 1, 377, 3, 377, 4559, 8, 377, 1, 377, 1, 377, 5, 377, 4563, 8, 377, 10, 377, 12, 377, 4566, 9, 377, 1, 378, 1, 378, 3, 378, 4570, 8, 378, 1, 378, 3, 378, 4573, 8, 378, 1, 379, 1, 379, 3, 379, 4577, 8, 379, 1, 380, 1, 380, 1, 380, 1, 380, 5, 380, 4583, 8, 380, 10, 380, 12, 380, 4586, 9, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 5, 381, 4593, 8, 381, 10, 381, 12, 381, 4596, 9, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 5, 382, 4603, 8, 382, 10, 382, 12, 382, 4606, 9, 382, 1, 383, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 3, 386, 4624, 8, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 3, 387, 4631, 8, 387, 1, 387, 3, 387, 4634, 8, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 3, 388, 4645, 8, 388, 1, 388, 1, 388, 1, 388, 5, 388, 4650, 8, 388, 10, 388, 12, 388, 4653, 9, 388, 3, 388, 4655, 8, 388, 3, 388, 4657, 8, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 3, 388, 4668, 8, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 3, 388, 4678, 8, 388, 3, 388, 4680, 8, 388, 1, 389, 1, 389, 1, 389, 1, 389, 3, 389, 4686, 8, 389, 1, 390, 1, 390, 1, 391, 1, 391, 3, 391, 4692, 8, 391, 1, 392, 1, 392, 3, 392, 4696, 8, 392, 1, 393, 1, 393, 1, 394, 1, 394, 3, 394, 4702, 8, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 3, 395, 4711, 8, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 4, 396, 4722, 8, 396, 11, 396, 12, 396, 4723, 1, 396, 1, 396, 3, 396, 4728, 8, 396, 1, 396, 1, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 4, 397, 4738, 8, 397, 11, 397, 12, 397, 4739, 1, 397, 1, 397, 3, 397, 4744, 8, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 3, 398, 4753, 8, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 4765, 8, 399, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 3, 401, 4782, 8, 401, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 3, 402, 4797, 8, 402, 1, 403, 1, 403, 1, 404, 1, 404, 1, 405, 1, 405, 4, 405, 4805, 8, 405, 11, 405, 12, 405, 4806, 1, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 3, 407, 4815, 8, 407, 1, 408, 1, 408, 1, 408, 3, 408, 4820, 8, 408, 1, 409, 1, 409, 1, 409, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 3, 412, 4841, 8, 412, 1, 412, 1, 412, 3, 412, 4845, 8, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 3, 413, 4861, 8, 413, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 3, 415, 4876, 8, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 5, 416, 4885, 8, 416, 10, 416, 12, 416, 4888, 9, 416, 1, 417, 1, 417, 1, 418, 5, 418, 4893, 8, 418, 10, 418, 12, 418, 4896, 9, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 5, 420, 4906, 8, 420, 10, 420, 12, 420, 4909, 9, 420, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 5, 422, 4917, 8, 422, 10, 422, 12, 422, 4920, 9, 422, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 5, 424, 4928, 8, 424, 10, 424, 12, 424, 4931, 9, 424, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 5, 426, 4939, 8, 426, 10, 426, 12, 426, 4942, 9, 426, 1, 427, 1, 427, 1, 428, 1, 428, 1, 428, 1, 428, 5, 428, 4950, 8, 428, 10, 428, 12, 428, 4953, 9, 428, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 430, 5, 430, 4961, 8, 430, 10, 430, 12, 430, 4964, 9, 430, 1, 431, 1, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 3, 432, 4973, 8, 432, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 1, 434, 1, 434, 3, 434, 4982, 8, 434, 1, 435, 1, 435, 3, 435, 4986, 8, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 3, 436, 4994, 8, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 3, 437, 5007, 8, 437, 1, 438, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 1, 440, 1, 440, 3, 440, 5017, 8, 440, 1, 441, 1, 441, 1, 441, 1, 441, 3, 441, 5023, 8, 441, 1, 442, 1, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 3, 443, 5036, 8, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 5, 444, 5045, 8, 444, 10, 444, 12, 444, 5048, 9, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 3, 445, 5062, 8, 445, 1, 446, 1, 446, 1, 446, 3, 446, 5067, 8, 446, 1, 447, 1, 447, 1, 448, 5, 448, 5072, 8, 448, 10, 448, 12, 448, 5075, 9, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 450, 1, 450, 1, 450, 1, 450, 5, 450, 5085, 8, 450, 10, 450, 12, 450, 5088, 9, 450, 1, 451, 1, 451, 1, 452, 1, 452, 1, 452, 1, 452, 5, 452, 5096, 8, 452, 10, 452, 12, 452, 5099, 9, 452, 1, 453, 1, 453, 1, 454, 1, 454, 1, 455, 1, 455, 3, 455, 5107, 8, 455, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 5, 456, 5114, 8, 456, 10, 456, 12, 456, 5117, 9, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 3, 457, 5124, 8, 457, 1, 458, 1, 458, 1, 458, 1, 458, 5, 458, 5130, 8, 458, 10, 458, 12, 458, 5133, 9, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 3, 460, 5143, 8, 460, 1, 461, 1, 461, 1, 462, 1, 462, 1, 463, 1, 463, 3, 463, 5151, 8, 463, 1, 464, 1, 464, 1, 464, 3, 464, 5156, 8, 464, 1, 465, 1, 465, 1, 466, 1, 466, 1, 467, 1, 467, 1, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 5, 469, 5170, 8, 469, 10, 469, 12, 469, 5173, 9, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 3, 470, 5180, 8, 470, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 5, 472, 5187, 8, 472, 10, 472, 12, 472, 5190, 9, 472, 1, 473, 1, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 5, 476, 5207, 8, 476, 10, 476, 12, 476, 5210, 9, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 3, 477, 5226, 8, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 3, 478, 5235, 8, 478, 1, 479, 1, 479, 1, 479, 5, 479, 5240, 8, 479, 10, 479, 12, 479, 5243, 9, 479, 1, 480, 1, 480, 1, 480, 3, 480, 5248, 8, 480, 1, 481, 1, 481, 1, 481, 5, 481, 5253, 8, 481, 10, 481, 12, 481, 5256, 9, 481, 1, 482, 1, 482, 1, 482, 1, 482, 3, 482, 5262, 8, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 3, 482, 5271, 8, 482, 3, 482, 5273, 8, 482, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 3, 484, 5280, 8, 484, 1, 485, 1, 485, 1, 486, 1, 486, 1, 487, 1, 487, 1, 488, 1, 488, 1, 489, 1, 489, 1, 490, 1, 490, 1, 491, 1, 491, 1, 492, 1, 492, 1, 493, 1, 493, 1, 494, 1, 494, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 3, 496, 5319, 8, 496, 1, 496, 1, 496, 3, 496, 5323, 8, 496, 3, 496, 5325, 8, 496, 1, 497, 1, 497, 3, 497, 5329, 8, 497, 1, 497, 1, 497, 1, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 3, 498, 5346, 8, 498, 1, 499, 1, 499, 1, 499, 1, 499, 3, 499, 5352, 8, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 5, 500, 5359, 8, 500, 10, 500, 12, 500, 5362, 9, 500, 1, 501, 1, 501, 1, 502, 1, 502, 1, 502, 1, 503, 1, 503, 1, 503, 5, 503, 5372, 8, 503, 10, 503, 12, 503, 5375, 9, 503, 1, 504, 1, 504, 1, 504, 5, 504, 5380, 8, 504, 10, 504, 12, 504, 5383, 9, 504, 1, 505, 1, 505, 1, 505, 1, 505, 1, 506, 1, 506, 1, 507, 1, 507, 1, 508, 1, 508, 1, 508, 1, 508, 3, 508, 5397, 8, 508, 1, 509, 1, 509, 1, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 3, 511, 5426, 8, 511, 1, 511, 1, 511, 1, 511, 3, 511, 5431, 8, 511, 3, 511, 5433, 8, 511, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 3, 513, 5453, 8, 513, 1, 514, 1, 514, 1, 514, 5, 514, 5458, 8, 514, 10, 514, 12, 514, 5461, 9, 514, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 3, 516, 5483, 8, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 3, 518, 5500, 8, 518, 1, 518, 1, 518, 1, 518, 3, 518, 5505, 8, 518, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 3, 519, 5516, 8, 519, 1, 519, 1, 519, 1, 519, 3, 519, 5521, 8, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 0, 0, 521, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 934, 936, 938, 940, 942, 944, 946, 948, 950, 952, 954, 956, 958, 960, 962, 964, 966, 968, 970, 972, 974, 976, 978, 980, 982, 984, 986, 988, 990, 992, 994, 996, 998, 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040, 0, 56, 2, 0, 57, 57, 172, 172, 4, 0, 91, 91, 121, 121, 226, 226, 325, 325, 2, 0, 34, 34, 282, 282, 1, 0, 89, 90, 2, 0, 139, 139, 154, 154, 2, 0, 67, 67, 295, 295, 2, 0, 68, 68, 296, 296, 1, 0, 155, 156, 2, 0, 114, 114, 307, 307, 11, 0, 7, 7, 9, 9, 58, 58, 86, 86, 101, 101, 155, 155, 161, 161, 190, 190, 299, 299, 309, 309, 365, 365, 3, 0, 4, 4, 101, 101, 326, 326, 3, 0, 15, 15, 128, 128, 170, 170, 1, 0, 141, 142, 2, 0, 30, 30, 351, 351, 2, 0, 217, 217, 373, 373, 2, 0, 214, 214, 272, 272, 2, 0, 18, 18, 89, 89, 2, 0, 130, 130, 177, 177, 2, 0, 39, 39, 376, 376, 4, 0, 112, 112, 164, 164, 205, 205, 356, 356, 2, 0, 7, 7, 96, 96, 2, 0, 225, 225, 391, 391, 2, 0, 189, 189, 196, 196, 2, 0, 42, 42, 315, 315, 2, 0, 426, 426, 431, 431, 2, 0, 140, 140, 285, 285, 3, 0, 12, 12, 231, 231, 300, 300, 2, 0, 241, 241, 292, 292, 2, 0, 198, 198, 268, 268, 2, 0, 354, 354, 431, 431, 2, 0, 133, 133, 247, 247, 3, 0, 413, 414, 418, 418, 420, 420, 2, 0, 412, 412, 415, 417, 1, 0, 413, 414, 3, 0, 184, 184, 270, 270, 286, 286, 2, 0, 7, 7, 13, 13, 3, 0, 7, 7, 13, 13, 313, 313, 2, 0, 125, 125, 350, 350, 2, 0, 405, 405, 407, 411, 24, 0, 11, 11, 16, 16, 25, 28, 35, 35, 100, 100, 131, 132, 151, 151, 154, 154, 162, 163, 184, 184, 198, 198, 216, 216, 228, 228, 264, 264, 270, 270, 286, 286, 311, 311, 323, 324, 340, 340, 357, 357, 383, 383, 405, 417, 419, 421, 423, 423, 85, 0, 1, 6, 8, 8, 10, 10, 15, 15, 18, 20, 22, 24, 30, 31, 33, 34, 37, 38, 40, 44, 46, 47, 49, 50, 52, 53, 56, 57, 59, 59, 66, 66, 68, 68, 72, 77, 79, 79, 83, 85, 87, 89, 91, 95, 97, 99, 103, 104, 106, 107, 109, 111, 114, 116, 118, 121, 127, 130, 137, 138, 142, 142, 147, 150, 152, 152, 155, 156, 158, 160, 168, 170, 172, 177, 182, 183, 185, 187, 189, 193, 195, 197, 199, 202, 204, 204, 206, 209, 211, 212, 214, 215, 217, 218, 220, 220, 222, 223, 226, 227, 232, 233, 235, 236, 238, 240, 243, 246, 252, 252, 254, 255, 257, 259, 261, 262, 265, 267, 271, 282, 284, 284, 287, 288, 293, 298, 300, 303, 305, 310, 312, 312, 314, 317, 319, 325, 327, 328, 330, 330, 332, 334, 339, 340, 342, 342, 344, 346, 349, 349, 352, 353, 355, 355, 357, 357, 360, 364, 366, 368, 371, 373, 375, 375, 377, 382, 385, 385, 388, 394, 13, 0, 16, 16, 26, 28, 63, 64, 71, 71, 100, 100, 131, 131, 145, 145, 151, 151, 162, 163, 198, 198, 264, 264, 311, 311, 337, 337, 4, 0, 199, 199, 242, 242, 300, 300, 322, 322, 2, 0, 213, 213, 431, 432, 1, 0, 106, 107, 1, 0, 94, 95, 1, 0, 392, 393, 1, 0, 208, 209, 1, 0, 381, 382, 1, 0, 73, 74, 1, 0, 148, 149, 1, 0, 206, 207, 1, 0, 297, 298, 1, 0, 80, 82, 2, 0, 4, 4, 101, 101, 3, 0, 14, 14, 144, 144, 369, 369, 5931, 0, 1045, 1, 0, 0, 0, 2, 1052, 1, 0, 0, 0, 4, 1057, 1, 0, 0, 0, 6, 1091, 1, 0, 0, 0, 8, 1093, 1, 0, 0, 0, 10, 1095, 1, 0, 0, 0, 12, 1111, 1, 0, 0, 0, 14, 1113, 1, 0, 0, 0, 16, 1129, 1, 0, 0, 0, 18, 1132, 1, 0, 0, 0, 20, 1141, 1, 0, 0, 0, 22, 1149, 1, 0, 0, 0, 24, 1162, 1, 0, 0, 0, 26, 1173, 1, 0, 0, 0, 28, 1178, 1, 0, 0, 0, 30, 1189, 1, 0, 0, 0, 32, 1193, 1, 0, 0, 0, 34, 1201, 1, 0, 0, 0, 36, 1206, 1, 0, 0, 0, 38, 1260, 1, 0, 0, 0, 40, 1262, 1, 0, 0, 0, 42, 1265, 1, 0, 0, 0, 44, 1267, 1, 0, 0, 0, 46, 1271, 1, 0, 0, 0, 48, 1273, 1, 0, 0, 0, 50, 1276, 1, 0, 0, 0, 52, 1279, 1, 0, 0, 0, 54, 1283, 1, 0, 0, 0, 56, 1325, 1, 0, 0, 0, 58, 1327, 1, 0, 0, 0, 60, 1330, 1, 0, 0, 0, 62, 1333, 1, 0, 0, 0, 64, 1337, 1, 0, 0, 0, 66, 1345, 1, 0, 0, 0, 68, 1348, 1, 0, 0, 0, 70, 1351, 1, 0, 0, 0, 72, 1360, 1, 0, 0, 0, 74, 1363, 1, 0, 0, 0, 76, 1378, 1, 0, 0, 0, 78, 1390, 1, 0, 0, 0, 80, 1395, 1, 0, 0, 0, 82, 1415, 1, 0, 0, 0, 84, 1419, 1, 0, 0, 0, 86, 1426, 1, 0, 0, 0, 88, 1451, 1, 0, 0, 0, 90, 1468, 1, 0, 0, 0, 92, 1470, 1, 0, 0, 0, 94, 1665, 1, 0, 0, 0, 96, 1675, 1, 0, 0, 0, 98, 1677, 1, 0, 0, 0, 100, 1685, 1, 0, 0, 0, 102, 1690, 1, 0, 0, 0, 104, 1692, 1, 0, 0, 0, 106, 1698, 1, 0, 0, 0, 108, 1702, 1, 0, 0, 0, 110, 1706, 1, 0, 0, 0, 112, 1710, 1, 0, 0, 0, 114, 1720, 1, 0, 0, 0, 116, 1731, 1, 0, 0, 0, 118, 1748, 1, 0, 0, 0, 120, 1766, 1, 0, 0, 0, 122, 1771, 1, 0, 0, 0, 124, 1774, 1, 0, 0, 0, 126, 1778, 1, 0, 0, 0, 128, 1785, 1, 0, 0, 0, 130, 1794, 1, 0, 0, 0, 132, 1800, 1, 0, 0, 0, 134, 1802, 1, 0, 0, 0, 136, 1819, 1, 0, 0, 0, 138, 1841, 1, 0, 0, 0, 140, 1843, 1, 0, 0, 0, 142, 1851, 1, 0, 0, 0, 144, 1858, 1, 0, 0, 0, 146, 1860, 1, 0, 0, 0, 148, 1874, 1, 0, 0, 0, 150, 1881, 1, 0, 0, 0, 152, 1883, 1, 0, 0, 0, 154, 1887, 1, 0, 0, 0, 156, 1891, 1, 0, 0, 0, 158, 1895, 1, 0, 0, 0, 160, 1899, 1, 0, 0, 0, 162, 1912, 1, 0, 0, 0, 164, 1920, 1, 0, 0, 0, 166, 1923, 1, 0, 0, 0, 168, 1925, 1, 0, 0, 0, 170, 1937, 1, 0, 0, 0, 172, 1947, 1, 0, 0, 0, 174, 1950, 1, 0, 0, 0, 176, 1961, 1, 0, 0, 0, 178, 1969, 1, 0, 0, 0, 180, 2013, 1, 0, 0, 0, 182, 2022, 1, 0, 0, 0, 184, 2049, 1, 0, 0, 0, 186, 2062, 1, 0, 0, 0, 188, 2064, 1, 0, 0, 0, 190, 2070, 1, 0, 0, 0, 192, 2073, 1, 0, 0, 0, 194, 2079, 1, 0, 0, 0, 196, 2085, 1, 0, 0, 0, 198, 2092, 1, 0, 0, 0, 200, 2126, 1, 0, 0, 0, 202, 2134, 1, 0, 0, 0, 204, 2147, 1, 0, 0, 0, 206, 2152, 1, 0, 0, 0, 208, 2163, 1, 0, 0, 0, 210, 2180, 1, 0, 0, 0, 212, 2182, 1, 0, 0, 0, 214, 2187, 1, 0, 0, 0, 216, 2194, 1, 0, 0, 0, 218, 2196, 1, 0, 0, 0, 220, 2199, 1, 0, 0, 0, 222, 2202, 1, 0, 0, 0, 224, 2216, 1, 0, 0, 0, 226, 2224, 1, 0, 0, 0, 228, 2232, 1, 0, 0, 0, 230, 2240, 1, 0, 0, 0, 232, 2260, 1, 0, 0, 0, 234, 2262, 1, 0, 0, 0, 236, 2279, 1, 0, 0, 0, 238, 2284, 1, 0, 0, 0, 240, 2298, 1, 0, 0, 0, 242, 2300, 1, 0, 0, 0, 244, 2303, 1, 0, 0, 0, 246, 2306, 1, 0, 0, 0, 248, 2315, 1, 0, 0, 0, 250, 2335, 1, 0, 0, 0, 252, 2337, 1, 0, 0, 0, 254, 2340, 1, 0, 0, 0, 256, 2360, 1, 0, 0, 0, 258, 2362, 1, 0, 0, 0, 260, 2366, 1, 0, 0, 0, 262, 2368, 1, 0, 0, 0, 264, 2377, 1, 0, 0, 0, 266, 2383, 1, 0, 0, 0, 268, 2389, 1, 0, 0, 0, 270, 2394, 1, 0, 0, 0, 272, 2440, 1, 0, 0, 0, 274, 2442, 1, 0, 0, 0, 276, 2445, 1, 0, 0, 0, 278, 2453, 1, 0, 0, 0, 280, 2461, 1, 0, 0, 0, 282, 2469, 1, 0, 0, 0, 284, 2486, 1, 0, 0, 0, 286, 2488, 1, 0, 0, 0, 288, 2490, 1, 0, 0, 0, 290, 2503, 1, 0, 0, 0, 292, 2511, 1, 0, 0, 0, 294, 2520, 1, 0, 0, 0, 296, 2524, 1, 0, 0, 0, 298, 2526, 1, 0, 0, 0, 300, 2531, 1, 0, 0, 0, 302, 2533, 1, 0, 0, 0, 304, 2537, 1, 0, 0, 0, 306, 2543, 1, 0, 0, 0, 308, 2551, 1, 0, 0, 0, 310, 2553, 1, 0, 0, 0, 312, 2556, 1, 0, 0, 0, 314, 2563, 1, 0, 0, 0, 316, 2574, 1, 0, 0, 0, 318, 2587, 1, 0, 0, 0, 320, 2589, 1, 0, 0, 0, 322, 2597, 1, 0, 0, 0, 324, 2601, 1, 0, 0, 0, 326, 2609, 1, 0, 0, 0, 328, 2613, 1, 0, 0, 0, 330, 2615, 1, 0, 0, 0, 332, 2617, 1, 0, 0, 0, 334, 2620, 1, 0, 0, 0, 336, 2627, 1, 0, 0, 0, 338, 2635, 1, 0, 0, 0, 340, 2640, 1, 0, 0, 0, 342, 2644, 1, 0, 0, 0, 344, 2652, 1, 0, 0, 0, 346, 2660, 1, 0, 0, 0, 348, 2664, 1, 0, 0, 0, 350, 2666, 1, 0, 0, 0, 352, 2677, 1, 0, 0, 0, 354, 2681, 1, 0, 0, 0, 356, 2693, 1, 0, 0, 0, 358, 2701, 1, 0, 0, 0, 360, 2705, 1, 0, 0, 0, 362, 2717, 1, 0, 0, 0, 364, 2729, 1, 0, 0, 0, 366, 2734, 1, 0, 0, 0, 368, 2739, 1, 0, 0, 0, 370, 2741, 1, 0, 0, 0, 372, 2745, 1, 0, 0, 0, 374, 2749, 1, 0, 0, 0, 376, 2756, 1, 0, 0, 0, 378, 2758, 1, 0, 0, 0, 380, 2771, 1, 0, 0, 0, 382, 2810, 1, 0, 0, 0, 384, 2812, 1, 0, 0, 0, 386, 2817, 1, 0, 0, 0, 388, 2822, 1, 0, 0, 0, 390, 2829, 1, 0, 0, 0, 392, 2834, 1, 0, 0, 0, 394, 2839, 1, 0, 0, 0, 396, 2845, 1, 0, 0, 0, 398, 2847, 1, 0, 0, 0, 400, 2856, 1, 0, 0, 0, 402, 2868, 1, 0, 0, 0, 404, 2948, 1, 0, 0, 0, 406, 2954, 1, 0, 0, 0, 408, 2980, 1, 0, 0, 0, 410, 2982, 1, 0, 0, 0, 412, 3004, 1, 0, 0, 0, 414, 3009, 1, 0, 0, 0, 416, 3013, 1, 0, 0, 0, 418, 3045, 1, 0, 0, 0, 420, 3047, 1, 0, 0, 0, 422, 3058, 1, 0, 0, 0, 424, 3064, 1, 0, 0, 0, 426, 3070, 1, 0, 0, 0, 428, 3072, 1, 0, 0, 0, 430, 3081, 1, 0, 0, 0, 432, 3091, 1, 0, 0, 0, 434, 3093, 1, 0, 0, 0, 436, 3107, 1, 0, 0, 0, 438, 3109, 1, 0, 0, 0, 440, 3112, 1, 0, 0, 0, 442, 3116, 1, 0, 0, 0, 444, 3118, 1, 0, 0, 0, 446, 3122, 1, 0, 0, 0, 448, 3126, 1, 0, 0, 0, 450, 3130, 1, 0, 0, 0, 452, 3137, 1, 0, 0, 0, 454, 3144, 1, 0, 0, 0, 456, 3166, 1, 0, 0, 0, 458, 3172, 1, 0, 0, 0, 460, 3187, 1, 0, 0, 0, 462, 3194, 1, 0, 0, 0, 464, 3202, 1, 0, 0, 0, 466, 3204, 1, 0, 0, 0, 468, 3211, 1, 0, 0, 0, 470, 3215, 1, 0, 0, 0, 472, 3218, 1, 0, 0, 0, 474, 3221, 1, 0, 0, 0, 476, 3224, 1, 0, 0, 0, 478, 3271, 1, 0, 0, 0, 480, 3288, 1, 0, 0, 0, 482, 3290, 1, 0, 0, 0, 484, 3301, 1, 0, 0, 0, 486, 3305, 1, 0, 0, 0, 488, 3309, 1, 0, 0, 0, 490, 3311, 1, 0, 0, 0, 492, 3316, 1, 0, 0, 0, 494, 3318, 1, 0, 0, 0, 496, 3323, 1, 0, 0, 0, 498, 3328, 1, 0, 0, 0, 500, 3333, 1, 0, 0, 0, 502, 3338, 1, 0, 0, 0, 504, 3344, 1, 0, 0, 0, 506, 3353, 1, 0, 0, 0, 508, 3358, 1, 0, 0, 0, 510, 3371, 1, 0, 0, 0, 512, 3373, 1, 0, 0, 0, 514, 3377, 1, 0, 0, 0, 516, 3397, 1, 0, 0, 0, 518, 3410, 1, 0, 0, 0, 520, 3418, 1, 0, 0, 0, 522, 3420, 1, 0, 0, 0, 524, 3429, 1, 0, 0, 0, 526, 3433, 1, 0, 0, 0, 528, 3440, 1, 0, 0, 0, 530, 3447, 1, 0, 0, 0, 532, 3454, 1, 0, 0, 0, 534, 3457, 1, 0, 0, 0, 536, 3460, 1, 0, 0, 0, 538, 3492, 1, 0, 0, 0, 540, 3503, 1, 0, 0, 0, 542, 3520, 1, 0, 0, 0, 544, 3522, 1, 0, 0, 0, 546, 3526, 1, 0, 0, 0, 548, 3533, 1, 0, 0, 0, 550, 3535, 1, 0, 0, 0, 552, 3540, 1, 0, 0, 0, 554, 3544, 1, 0, 0, 0, 556, 3552, 1, 0, 0, 0, 558, 3556, 1, 0, 0, 0, 560, 3566, 1, 0, 0, 0, 562, 3568, 1, 0, 0, 0, 564, 3574, 1, 0, 0, 0, 566, 3578, 1, 0, 0, 0, 568, 3591, 1, 0, 0, 0, 570, 3593, 1, 0, 0, 0, 572, 3597, 1, 0, 0, 0, 574, 3600, 1, 0, 0, 0, 576, 3603, 1, 0, 0, 0, 578, 3623, 1, 0, 0, 0, 580, 3627, 1, 0, 0, 0, 582, 3634, 1, 0, 0, 0, 584, 3648, 1, 0, 0, 0, 586, 3669, 1, 0, 0, 0, 588, 3674, 1, 0, 0, 0, 590, 3676, 1, 0, 0, 0, 592, 3681, 1, 0, 0, 0, 594, 3686, 1, 0, 0, 0, 596, 3700, 1, 0, 0, 0, 598, 3831, 1, 0, 0, 0, 600, 3833, 1, 0, 0, 0, 602, 3853, 1, 0, 0, 0, 604, 3856, 1, 0, 0, 0, 606, 3859, 1, 0, 0, 0, 608, 3862, 1, 0, 0, 0, 610, 3866, 1, 0, 0, 0, 612, 3878, 1, 0, 0, 0, 614, 3883, 1, 0, 0, 0, 616, 3885, 1, 0, 0, 0, 618, 3893, 1, 0, 0, 0, 620, 3901, 1, 0, 0, 0, 622, 3913, 1, 0, 0, 0, 624, 3947, 1, 0, 0, 0, 626, 3949, 1, 0, 0, 0, 628, 3967, 1, 0, 0, 0, 630, 3976, 1, 0, 0, 0, 632, 3981, 1, 0, 0, 0, 634, 3985, 1, 0, 0, 0, 636, 4001, 1, 0, 0, 0, 638, 4060, 1, 0, 0, 0, 640, 4062, 1, 0, 0, 0, 642, 4064, 1, 0, 0, 0, 644, 4084, 1, 0, 0, 0, 646, 4095, 1, 0, 0, 0, 648, 4097, 1, 0, 0, 0, 650, 4113, 1, 0, 0, 0, 652, 4125, 1, 0, 0, 0, 654, 4135, 1, 0, 0, 0, 656, 4137, 1, 0, 0, 0, 658, 4141, 1, 0, 0, 0, 660, 4151, 1, 0, 0, 0, 662, 4161, 1, 0, 0, 0, 664, 4166, 1, 0, 0, 0, 666, 4173, 1, 0, 0, 0, 668, 4177, 1, 0, 0, 0, 670, 4196, 1, 0, 0, 0, 672, 4201, 1, 0, 0, 0, 674, 4203, 1, 0, 0, 0, 676, 4231, 1, 0, 0, 0, 678, 4234, 1, 0, 0, 0, 680, 4236, 1, 0, 0, 0, 682, 4238, 1, 0, 0, 0, 684, 4257, 1, 0, 0, 0, 686, 4259, 1, 0, 0, 0, 688, 4261, 1, 0, 0, 0, 690, 4265, 1, 0, 0, 0, 692, 4299, 1, 0, 0, 0, 694, 4301, 1, 0, 0, 0, 696, 4303, 1, 0, 0, 0, 698, 4311, 1, 0, 0, 0, 700, 4358, 1, 0, 0, 0, 702, 4360, 1, 0, 0, 0, 704, 4385, 1, 0, 0, 0, 706, 4387, 1, 0, 0, 0, 708, 4395, 1, 0, 0, 0, 710, 4404, 1, 0, 0, 0, 712, 4420, 1, 0, 0, 0, 714, 4424, 1, 0, 0, 0, 716, 4426, 1, 0, 0, 0, 718, 4435, 1, 0, 0, 0, 720, 4450, 1, 0, 0, 0, 722, 4456, 1, 0, 0, 0, 724, 4458, 1, 0, 0, 0, 726, 4466, 1, 0, 0, 0, 728, 4468, 1, 0, 0, 0, 730, 4473, 1, 0, 0, 0, 732, 4486, 1, 0, 0, 0, 734, 4510, 1, 0, 0, 0, 736, 4512, 1, 0, 0, 0, 738, 4525, 1, 0, 0, 0, 740, 4527, 1, 0, 0, 0, 742, 4530, 1, 0, 0, 0, 744, 4533, 1, 0, 0, 0, 746, 4535, 1, 0, 0, 0, 748, 4539, 1, 0, 0, 0, 750, 4545, 1, 0, 0, 0, 752, 4551, 1, 0, 0, 0, 754, 4553, 1, 0, 0, 0, 756, 4567, 1, 0, 0, 0, 758, 4576, 1, 0, 0, 0, 760, 4578, 1, 0, 0, 0, 762, 4589, 1, 0, 0, 0, 764, 4597, 1, 0, 0, 0, 766, 4607, 1, 0, 0, 0, 768, 4611, 1, 0, 0, 0, 770, 4615, 1, 0, 0, 0, 772, 4619, 1, 0, 0, 0, 774, 4625, 1, 0, 0, 0, 776, 4679, 1, 0, 0, 0, 778, 4685, 1, 0, 0, 0, 780, 4687, 1, 0, 0, 0, 782, 4691, 1, 0, 0, 0, 784, 4695, 1, 0, 0, 0, 786, 4697, 1, 0, 0, 0, 788, 4701, 1, 0, 0, 0, 790, 4703, 1, 0, 0, 0, 792, 4714, 1, 0, 0, 0, 794, 4731, 1, 0, 0, 0, 796, 4747, 1, 0, 0, 0, 798, 4764, 1, 0, 0, 0, 800, 4766, 1, 0, 0, 0, 802, 4781, 1, 0, 0, 0, 804, 4796, 1, 0, 0, 0, 806, 4798, 1, 0, 0, 0, 808, 4800, 1, 0, 0, 0, 810, 4802, 1, 0, 0, 0, 812, 4808, 1, 0, 0, 0, 814, 4814, 1, 0, 0, 0, 816, 4819, 1, 0, 0, 0, 818, 4821, 1, 0, 0, 0, 820, 4824, 1, 0, 0, 0, 822, 4826, 1, 0, 0, 0, 824, 4844, 1, 0, 0, 0, 826, 4860, 1, 0, 0, 0, 828, 4862, 1, 0, 0, 0, 830, 4875, 1, 0, 0, 0, 832, 4877, 1, 0, 0, 0, 834, 4889, 1, 0, 0, 0, 836, 4894, 1, 0, 0, 0, 838, 4899, 1, 0, 0, 0, 840, 4901, 1, 0, 0, 0, 842, 4910, 1, 0, 0, 0, 844, 4912, 1, 0, 0, 0, 846, 4921, 1, 0, 0, 0, 848, 4923, 1, 0, 0, 0, 850, 4932, 1, 0, 0, 0, 852, 4934, 1, 0, 0, 0, 854, 4943, 1, 0, 0, 0, 856, 4945, 1, 0, 0, 0, 858, 4954, 1, 0, 0, 0, 860, 4956, 1, 0, 0, 0, 862, 4965, 1, 0, 0, 0, 864, 4972, 1, 0, 0, 0, 866, 4974, 1, 0, 0, 0, 868, 4981, 1, 0, 0, 0, 870, 4983, 1, 0, 0, 0, 872, 4993, 1, 0, 0, 0, 874, 5006, 1, 0, 0, 0, 876, 5008, 1, 0, 0, 0, 878, 5012, 1, 0, 0, 0, 880, 5016, 1, 0, 0, 0, 882, 5022, 1, 0, 0, 0, 884, 5024, 1, 0, 0, 0, 886, 5035, 1, 0, 0, 0, 888, 5037, 1, 0, 0, 0, 890, 5061, 1, 0, 0, 0, 892, 5063, 1, 0, 0, 0, 894, 5068, 1, 0, 0, 0, 896, 5073, 1, 0, 0, 0, 898, 5078, 1, 0, 0, 0, 900, 5080, 1, 0, 0, 0, 902, 5089, 1, 0, 0, 0, 904, 5091, 1, 0, 0, 0, 906, 5100, 1, 0, 0, 0, 908, 5102, 1, 0, 0, 0, 910, 5104, 1, 0, 0, 0, 912, 5108, 1, 0, 0, 0, 914, 5120, 1, 0, 0, 0, 916, 5125, 1, 0, 0, 0, 918, 5136, 1, 0, 0, 0, 920, 5142, 1, 0, 0, 0, 922, 5144, 1, 0, 0, 0, 924, 5146, 1, 0, 0, 0, 926, 5150, 1, 0, 0, 0, 928, 5152, 1, 0, 0, 0, 930, 5157, 1, 0, 0, 0, 932, 5159, 1, 0, 0, 0, 934, 5161, 1, 0, 0, 0, 936, 5163, 1, 0, 0, 0, 938, 5166, 1, 0, 0, 0, 940, 5174, 1, 0, 0, 0, 942, 5181, 1, 0, 0, 0, 944, 5183, 1, 0, 0, 0, 946, 5191, 1, 0, 0, 0, 948, 5193, 1, 0, 0, 0, 950, 5198, 1, 0, 0, 0, 952, 5203, 1, 0, 0, 0, 954, 5225, 1, 0, 0, 0, 956, 5234, 1, 0, 0, 0, 958, 5236, 1, 0, 0, 0, 960, 5247, 1, 0, 0, 0, 962, 5249, 1, 0, 0, 0, 964, 5257, 1, 0, 0, 0, 966, 5274, 1, 0, 0, 0, 968, 5277, 1, 0, 0, 0, 970, 5281, 1, 0, 0, 0, 972, 5283, 1, 0, 0, 0, 974, 5285, 1, 0, 0, 0, 976, 5287, 1, 0, 0, 0, 978, 5289, 1, 0, 0, 0, 980, 5291, 1, 0, 0, 0, 982, 5293, 1, 0, 0, 0, 984, 5295, 1, 0, 0, 0, 986, 5297, 1, 0, 0, 0, 988, 5299, 1, 0, 0, 0, 990, 5301, 1, 0, 0, 0, 992, 5303, 1, 0, 0, 0, 994, 5328, 1, 0, 0, 0, 996, 5333, 1, 0, 0, 0, 998, 5347, 1, 0, 0, 0, 1000, 5355, 1, 0, 0, 0, 1002, 5363, 1, 0, 0, 0, 1004, 5365, 1, 0, 0, 0, 1006, 5368, 1, 0, 0, 0, 1008, 5376, 1, 0, 0, 0, 1010, 5384, 1, 0, 0, 0, 1012, 5388, 1, 0, 0, 0, 1014, 5390, 1, 0, 0, 0, 1016, 5396, 1, 0, 0, 0, 1018, 5398, 1, 0, 0, 0, 1020, 5401, 1, 0, 0, 0, 1022, 5411, 1, 0, 0, 0, 1024, 5434, 1, 0, 0, 0, 1026, 5452, 1, 0, 0, 0, 1028, 5454, 1, 0, 0, 0, 1030, 5462, 1, 0, 0, 0, 1032, 5470, 1, 0, 0, 0, 1034, 5484, 1, 0, 0, 0, 1036, 5490, 1, 0, 0, 0, 1038, 5506, 1, 0, 0, 0, 1040, 5522, 1, 0, 0, 0, 1042, 1044, 3, 2, 1, 0, 1043, 1042, 1, 0, 0, 0, 1044, 1047, 1, 0, 0, 0, 1045, 1043, 1, 0, 0, 0, 1045, 1046, 1, 0, 0, 0, 1046, 1048, 1, 0, 0, 0, 1047, 1045, 1, 0, 0, 0, 1048, 1049, 5, 0, 0, 1, 1049, 1, 1, 0, 0, 0, 1050, 1053, 3, 4, 2, 0, 1051, 1053, 3, 12, 6, 0, 1052, 1050, 1, 0, 0, 0, 1052, 1051, 1, 0, 0, 0, 1053, 1055, 1, 0, 0, 0, 1054, 1056, 5, 398, 0, 0, 1055, 1054, 1, 0, 0, 0, 1055, 1056, 1, 0, 0, 0, 1056, 3, 1, 0, 0, 0, 1057, 1067, 5, 119, 0, 0, 1058, 1060, 3, 6, 3, 0, 1059, 1058, 1, 0, 0, 0, 1060, 1063, 1, 0, 0, 0, 1061, 1059, 1, 0, 0, 0, 1061, 1062, 1, 0, 0, 0, 1062, 1064, 1, 0, 0, 0, 1063, 1061, 1, 0, 0, 0, 1064, 1068, 3, 12, 6, 0, 1065, 1066, 5, 284, 0, 0, 1066, 1068, 3, 394, 197, 0, 1067, 1061, 1, 0, 0, 0, 1067, 1065, 1, 0, 0, 0, 1068, 5, 1, 0, 0, 0, 1069, 1092, 5, 122, 0, 0, 1070, 1092, 5, 138, 0, 0, 1071, 1092, 5, 88, 0, 0, 1072, 1074, 5, 37, 0, 0, 1073, 1075, 7, 0, 0, 0, 1074, 1073, 1, 0, 0, 0, 1074, 1075, 1, 0, 0, 0, 1075, 1092, 1, 0, 0, 0, 1076, 1092, 5, 192, 0, 0, 1077, 1092, 5, 21, 0, 0, 1078, 1092, 5, 10, 0, 0, 1079, 1092, 5, 275, 0, 0, 1080, 1092, 5, 191, 0, 0, 1081, 1092, 5, 19, 0, 0, 1082, 1084, 5, 377, 0, 0, 1083, 1085, 3, 8, 4, 0, 1084, 1083, 1, 0, 0, 0, 1084, 1085, 1, 0, 0, 0, 1085, 1087, 1, 0, 0, 0, 1086, 1088, 3, 10, 5, 0, 1087, 1086, 1, 0, 0, 0, 1087, 1088, 1, 0, 0, 0, 1088, 1092, 1, 0, 0, 0, 1089, 1092, 5, 79, 0, 0, 1090, 1092, 5, 78, 0, 0, 1091, 1069, 1, 0, 0, 0, 1091, 1070, 1, 0, 0, 0, 1091, 1071, 1, 0, 0, 0, 1091, 1072, 1, 0, 0, 0, 1091, 1076, 1, 0, 0, 0, 1091, 1077, 1, 0, 0, 0, 1091, 1078, 1, 0, 0, 0, 1091, 1079, 1, 0, 0, 0, 1091, 1080, 1, 0, 0, 0, 1091, 1081, 1, 0, 0, 0, 1091, 1082, 1, 0, 0, 0, 1091, 1089, 1, 0, 0, 0, 1091, 1090, 1, 0, 0, 0, 1092, 7, 1, 0, 0, 0, 1093, 1094, 5, 225, 0, 0, 1094, 9, 1, 0, 0, 0, 1095, 1096, 7, 1, 0, 0, 1096, 11, 1, 0, 0, 0, 1097, 1112, 3, 394, 197, 0, 1098, 1112, 3, 14, 7, 0, 1099, 1112, 3, 20, 10, 0, 1100, 1112, 3, 22, 11, 0, 1101, 1112, 3, 24, 12, 0, 1102, 1112, 3, 28, 14, 0, 1103, 1112, 3, 36, 18, 0, 1104, 1112, 3, 38, 19, 0, 1105, 1112, 3, 422, 211, 0, 1106, 1112, 3, 430, 215, 0, 1107, 1112, 3, 432, 216, 0, 1108, 1112, 3, 454, 227, 0, 1109, 1112, 3, 948, 474, 0, 1110, 1112, 3, 950, 475, 0, 1111, 1097, 1, 0, 0, 0, 1111, 1098, 1, 0, 0, 0, 1111, 1099, 1, 0, 0, 0, 1111, 1100, 1, 0, 0, 0, 1111, 1101, 1, 0, 0, 0, 1111, 1102, 1, 0, 0, 0, 1111, 1103, 1, 0, 0, 0, 1111, 1104, 1, 0, 0, 0, 1111, 1105, 1, 0, 0, 0, 1111, 1106, 1, 0, 0, 0, 1111, 1107, 1, 0, 0, 0, 1111, 1108, 1, 0, 0, 0, 1111, 1109, 1, 0, 0, 0, 1111, 1110, 1, 0, 0, 0, 1112, 13, 1, 0, 0, 0, 1113, 1114, 5, 187, 0, 0, 1114, 1116, 5, 66, 0, 0, 1115, 1117, 5, 188, 0, 0, 1116, 1115, 1, 0, 0, 0, 1116, 1117, 1, 0, 0, 0, 1117, 1118, 1, 0, 0, 0, 1118, 1119, 5, 158, 0, 0, 1119, 1121, 5, 426, 0, 0, 1120, 1122, 5, 235, 0, 0, 1121, 1120, 1, 0, 0, 0, 1121, 1122, 1, 0, 0, 0, 1122, 1123, 1, 0, 0, 0, 1123, 1124, 5, 166, 0, 0, 1124, 1125, 5, 329, 0, 0, 1125, 1127, 3, 910, 455, 0, 1126, 1128, 3, 78, 39, 0, 1127, 1126, 1, 0, 0, 0, 1127, 1128, 1, 0, 0, 0, 1128, 15, 1, 0, 0, 0, 1129, 1130, 5, 152, 0, 0, 1130, 1131, 5, 254, 0, 0, 1131, 17, 1, 0, 0, 0, 1132, 1134, 5, 134, 0, 0, 1133, 1135, 5, 204, 0, 0, 1134, 1133, 1, 0, 0, 0, 1134, 1135, 1, 0, 0, 0, 1135, 1136, 1, 0, 0, 0, 1136, 1137, 5, 279, 0, 0, 1137, 1138, 5, 399, 0, 0, 1138, 1139, 5, 426, 0, 0, 1139, 1140, 5, 400, 0, 0, 1140, 19, 1, 0, 0, 0, 1141, 1142, 5, 120, 0, 0, 1142, 1143, 5, 329, 0, 0, 1143, 1144, 3, 910, 455, 0, 1144, 1145, 5, 341, 0, 0, 1145, 1147, 5, 426, 0, 0, 1146, 1148, 3, 18, 9, 0, 1147, 1146, 1, 0, 0, 0, 1147, 1148, 1, 0, 0, 0, 1148, 21, 1, 0, 0, 0, 1149, 1155, 5, 153, 0, 0, 1150, 1152, 5, 123, 0, 0, 1151, 1150, 1, 0, 0, 0, 1151, 1152, 1, 0, 0, 0, 1152, 1153, 1, 0, 0, 0, 1153, 1154, 5, 329, 0, 0, 1154, 1156, 3, 910, 455, 0, 1155, 1151, 1, 0, 0, 0, 1155, 1156, 1, 0, 0, 0, 1156, 1157, 1, 0, 0, 0, 1157, 1158, 5, 139, 0, 0, 1158, 1160, 5, 426, 0, 0, 1159, 1161, 3, 274, 137, 0, 1160, 1159, 1, 0, 0, 0, 1160, 1161, 1, 0, 0, 0, 1161, 23, 1, 0, 0, 0, 1162, 1163, 5, 277, 0, 0, 1163, 1164, 5, 103, 0, 0, 1164, 1167, 3, 26, 13, 0, 1165, 1166, 5, 278, 0, 0, 1166, 1168, 3, 26, 13, 0, 1167, 1165, 1, 0, 0, 0, 1167, 1168, 1, 0, 0, 0, 1168, 1171, 1, 0, 0, 0, 1169, 1170, 5, 387, 0, 0, 1170, 1172, 3, 30, 15, 0, 1171, 1169, 1, 0, 0, 0, 1171, 1172, 1, 0, 0, 0, 1172, 25, 1, 0, 0, 0, 1173, 1176, 3, 654, 327, 0, 1174, 1175, 5, 395, 0, 0, 1175, 1177, 3, 34, 17, 0, 1176, 1174, 1, 0, 0, 0, 1176, 1177, 1, 0, 0, 0, 1177, 27, 1, 0, 0, 0, 1178, 1179, 5, 277, 0, 0, 1179, 1180, 5, 187, 0, 0, 1180, 1183, 3, 26, 13, 0, 1181, 1182, 5, 166, 0, 0, 1182, 1184, 3, 654, 327, 0, 1183, 1181, 1, 0, 0, 0, 1183, 1184, 1, 0, 0, 0, 1184, 1187, 1, 0, 0, 0, 1185, 1186, 5, 387, 0, 0, 1186, 1188, 3, 30, 15, 0, 1187, 1185, 1, 0, 0, 0, 1187, 1188, 1, 0, 0, 0, 1188, 29, 1, 0, 0, 0, 1189, 1190, 5, 399, 0, 0, 1190, 1191, 3, 32, 16, 0, 1191, 1192, 5, 400, 0, 0, 1192, 31, 1, 0, 0, 0, 1193, 1198, 3, 258, 129, 0, 1194, 1195, 5, 397, 0, 0, 1195, 1197, 3, 258, 129, 0, 1196, 1194, 1, 0, 0, 0, 1197, 1200, 1, 0, 0, 0, 1198, 1196, 1, 0, 0, 0, 1198, 1199, 1, 0, 0, 0, 1199, 33, 1, 0, 0, 0, 1200, 1198, 1, 0, 0, 0, 1201, 1204, 5, 426, 0, 0, 1202, 1203, 5, 395, 0, 0, 1203, 1205, 5, 426, 0, 0, 1204, 1202, 1, 0, 0, 0, 1204, 1205, 1, 0, 0, 0, 1205, 35, 1, 0, 0, 0, 1206, 1207, 5, 277, 0, 0, 1207, 1208, 5, 320, 0, 0, 1208, 1211, 3, 654, 327, 0, 1209, 1210, 5, 387, 0, 0, 1210, 1212, 3, 30, 15, 0, 1211, 1209, 1, 0, 0, 0, 1211, 1212, 1, 0, 0, 0, 1212, 37, 1, 0, 0, 0, 1213, 1261, 3, 56, 28, 0, 1214, 1261, 3, 68, 34, 0, 1215, 1261, 3, 70, 35, 0, 1216, 1261, 3, 598, 299, 0, 1217, 1261, 3, 76, 38, 0, 1218, 1261, 3, 74, 37, 0, 1219, 1261, 3, 476, 238, 0, 1220, 1261, 3, 86, 43, 0, 1221, 1261, 3, 94, 47, 0, 1222, 1261, 3, 160, 80, 0, 1223, 1261, 3, 182, 91, 0, 1224, 1261, 3, 198, 99, 0, 1225, 1261, 3, 202, 101, 0, 1226, 1261, 3, 206, 103, 0, 1227, 1261, 3, 204, 102, 0, 1228, 1261, 3, 196, 98, 0, 1229, 1261, 3, 200, 100, 0, 1230, 1261, 3, 168, 84, 0, 1231, 1261, 3, 174, 87, 0, 1232, 1261, 3, 170, 85, 0, 1233, 1261, 3, 172, 86, 0, 1234, 1261, 3, 176, 88, 0, 1235, 1261, 3, 178, 89, 0, 1236, 1261, 3, 180, 90, 0, 1237, 1261, 3, 88, 44, 0, 1238, 1261, 3, 98, 49, 0, 1239, 1261, 3, 104, 52, 0, 1240, 1261, 3, 100, 50, 0, 1241, 1261, 3, 106, 53, 0, 1242, 1261, 3, 108, 54, 0, 1243, 1261, 3, 110, 55, 0, 1244, 1261, 3, 112, 56, 0, 1245, 1261, 3, 114, 57, 0, 1246, 1261, 3, 128, 64, 0, 1247, 1261, 3, 120, 60, 0, 1248, 1261, 3, 130, 65, 0, 1249, 1261, 3, 122, 61, 0, 1250, 1261, 3, 116, 58, 0, 1251, 1261, 3, 118, 59, 0, 1252, 1261, 3, 126, 63, 0, 1253, 1261, 3, 124, 62, 0, 1254, 1261, 3, 450, 225, 0, 1255, 1261, 3, 452, 226, 0, 1256, 1261, 3, 466, 233, 0, 1257, 1261, 3, 954, 477, 0, 1258, 1261, 3, 600, 300, 0, 1259, 1261, 3, 610, 305, 0, 1260, 1213, 1, 0, 0, 0, 1260, 1214, 1, 0, 0, 0, 1260, 1215, 1, 0, 0, 0, 1260, 1216, 1, 0, 0, 0, 1260, 1217, 1, 0, 0, 0, 1260, 1218, 1, 0, 0, 0, 1260, 1219, 1, 0, 0, 0, 1260, 1220, 1, 0, 0, 0, 1260, 1221, 1, 0, 0, 0, 1260, 1222, 1, 0, 0, 0, 1260, 1223, 1, 0, 0, 0, 1260, 1224, 1, 0, 0, 0, 1260, 1225, 1, 0, 0, 0, 1260, 1226, 1, 0, 0, 0, 1260, 1227, 1, 0, 0, 0, 1260, 1228, 1, 0, 0, 0, 1260, 1229, 1, 0, 0, 0, 1260, 1230, 1, 0, 0, 0, 1260, 1231, 1, 0, 0, 0, 1260, 1232, 1, 0, 0, 0, 1260, 1233, 1, 0, 0, 0, 1260, 1234, 1, 0, 0, 0, 1260, 1235, 1, 0, 0, 0, 1260, 1236, 1, 0, 0, 0, 1260, 1237, 1, 0, 0, 0, 1260, 1238, 1, 0, 0, 0, 1260, 1239, 1, 0, 0, 0, 1260, 1240, 1, 0, 0, 0, 1260, 1241, 1, 0, 0, 0, 1260, 1242, 1, 0, 0, 0, 1260, 1243, 1, 0, 0, 0, 1260, 1244, 1, 0, 0, 0, 1260, 1245, 1, 0, 0, 0, 1260, 1246, 1, 0, 0, 0, 1260, 1247, 1, 0, 0, 0, 1260, 1248, 1, 0, 0, 0, 1260, 1249, 1, 0, 0, 0, 1260, 1250, 1, 0, 0, 0, 1260, 1251, 1, 0, 0, 0, 1260, 1252, 1, 0, 0, 0, 1260, 1253, 1, 0, 0, 0, 1260, 1254, 1, 0, 0, 0, 1260, 1255, 1, 0, 0, 0, 1260, 1256, 1, 0, 0, 0, 1260, 1257, 1, 0, 0, 0, 1260, 1258, 1, 0, 0, 0, 1260, 1259, 1, 0, 0, 0, 1261, 39, 1, 0, 0, 0, 1262, 1263, 5, 151, 0, 0, 1263, 1264, 5, 117, 0, 0, 1264, 41, 1, 0, 0, 0, 1265, 1266, 7, 2, 0, 0, 1266, 43, 1, 0, 0, 0, 1267, 1268, 5, 151, 0, 0, 1268, 1269, 5, 216, 0, 0, 1269, 1270, 5, 117, 0, 0, 1270, 45, 1, 0, 0, 0, 1271, 1272, 5, 135, 0, 0, 1272, 47, 1, 0, 0, 0, 1273, 1274, 3, 970, 485, 0, 1274, 1275, 5, 284, 0, 0, 1275, 49, 1, 0, 0, 0, 1276, 1277, 3, 972, 486, 0, 1277, 1278, 5, 284, 0, 0, 1278, 51, 1, 0, 0, 0, 1279, 1280, 5, 321, 0, 0, 1280, 1281, 5, 17, 0, 0, 1281, 1282, 5, 92, 0, 0, 1282, 53, 1, 0, 0, 0, 1283, 1284, 5, 228, 0, 0, 1284, 1285, 5, 278, 0, 0, 1285, 55, 1, 0, 0, 0, 1286, 1288, 5, 58, 0, 0, 1287, 1289, 5, 273, 0, 0, 1288, 1287, 1, 0, 0, 0, 1288, 1289, 1, 0, 0, 0, 1289, 1290, 1, 0, 0, 0, 1290, 1292, 3, 92, 46, 0, 1291, 1293, 3, 44, 22, 0, 1292, 1291, 1, 0, 0, 0, 1292, 1293, 1, 0, 0, 0, 1293, 1294, 1, 0, 0, 0, 1294, 1296, 3, 656, 328, 0, 1295, 1297, 3, 72, 36, 0, 1296, 1295, 1, 0, 0, 0, 1296, 1297, 1, 0, 0, 0, 1297, 1299, 1, 0, 0, 0, 1298, 1300, 3, 58, 29, 0, 1299, 1298, 1, 0, 0, 0, 1299, 1300, 1, 0, 0, 0, 1300, 1302, 1, 0, 0, 0, 1301, 1303, 3, 60, 30, 0, 1302, 1301, 1, 0, 0, 0, 1302, 1303, 1, 0, 0, 0, 1303, 1307, 1, 0, 0, 0, 1304, 1305, 5, 387, 0, 0, 1305, 1306, 5, 76, 0, 0, 1306, 1308, 3, 62, 31, 0, 1307, 1304, 1, 0, 0, 0, 1307, 1308, 1, 0, 0, 0, 1308, 1326, 1, 0, 0, 0, 1309, 1310, 5, 58, 0, 0, 1310, 1311, 5, 273, 0, 0, 1311, 1313, 3, 92, 46, 0, 1312, 1314, 3, 44, 22, 0, 1313, 1312, 1, 0, 0, 0, 1313, 1314, 1, 0, 0, 0, 1314, 1315, 1, 0, 0, 0, 1315, 1317, 3, 656, 328, 0, 1316, 1318, 3, 72, 36, 0, 1317, 1316, 1, 0, 0, 0, 1317, 1318, 1, 0, 0, 0, 1318, 1319, 1, 0, 0, 0, 1319, 1323, 3, 66, 33, 0, 1320, 1321, 5, 387, 0, 0, 1321, 1322, 5, 76, 0, 0, 1322, 1324, 3, 62, 31, 0, 1323, 1320, 1, 0, 0, 0, 1323, 1324, 1, 0, 0, 0, 1324, 1326, 1, 0, 0, 0, 1325, 1286, 1, 0, 0, 0, 1325, 1309, 1, 0, 0, 0, 1326, 57, 1, 0, 0, 0, 1327, 1328, 5, 189, 0, 0, 1328, 1329, 5, 426, 0, 0, 1329, 59, 1, 0, 0, 0, 1330, 1331, 5, 196, 0, 0, 1331, 1332, 5, 426, 0, 0, 1332, 61, 1, 0, 0, 0, 1333, 1334, 5, 399, 0, 0, 1334, 1335, 3, 64, 32, 0, 1335, 1336, 5, 400, 0, 0, 1336, 63, 1, 0, 0, 0, 1337, 1342, 3, 258, 129, 0, 1338, 1339, 5, 397, 0, 0, 1339, 1341, 3, 258, 129, 0, 1340, 1338, 1, 0, 0, 0, 1341, 1344, 1, 0, 0, 0, 1342, 1340, 1, 0, 0, 0, 1342, 1343, 1, 0, 0, 0, 1343, 65, 1, 0, 0, 0, 1344, 1342, 1, 0, 0, 0, 1345, 1346, 5, 370, 0, 0, 1346, 1347, 3, 654, 327, 0, 1347, 67, 1, 0, 0, 0, 1348, 1349, 5, 368, 0, 0, 1349, 1350, 3, 654, 327, 0, 1350, 69, 1, 0, 0, 0, 1351, 1352, 5, 101, 0, 0, 1352, 1354, 3, 92, 46, 0, 1353, 1355, 3, 40, 20, 0, 1354, 1353, 1, 0, 0, 0, 1354, 1355, 1, 0, 0, 0, 1355, 1356, 1, 0, 0, 0, 1356, 1358, 3, 654, 327, 0, 1357, 1359, 3, 42, 21, 0, 1358, 1357, 1, 0, 0, 0, 1358, 1359, 1, 0, 0, 0, 1359, 71, 1, 0, 0, 0, 1360, 1361, 5, 47, 0, 0, 1361, 1362, 5, 426, 0, 0, 1362, 73, 1, 0, 0, 0, 1363, 1365, 5, 351, 0, 0, 1364, 1366, 5, 329, 0, 0, 1365, 1364, 1, 0, 0, 0, 1365, 1366, 1, 0, 0, 0, 1366, 1367, 1, 0, 0, 0, 1367, 1373, 3, 544, 272, 0, 1368, 1369, 5, 46, 0, 0, 1369, 1370, 5, 399, 0, 0, 1370, 1371, 3, 282, 141, 0, 1371, 1372, 5, 400, 0, 0, 1372, 1374, 1, 0, 0, 0, 1373, 1368, 1, 0, 0, 0, 1373, 1374, 1, 0, 0, 0, 1374, 1376, 1, 0, 0, 0, 1375, 1377, 3, 46, 23, 0, 1376, 1375, 1, 0, 0, 0, 1376, 1377, 1, 0, 0, 0, 1377, 75, 1, 0, 0, 0, 1378, 1379, 5, 101, 0, 0, 1379, 1381, 5, 329, 0, 0, 1380, 1382, 3, 40, 20, 0, 1381, 1380, 1, 0, 0, 0, 1381, 1382, 1, 0, 0, 0, 1382, 1383, 1, 0, 0, 0, 1383, 1385, 3, 660, 330, 0, 1384, 1386, 5, 255, 0, 0, 1385, 1384, 1, 0, 0, 0, 1385, 1386, 1, 0, 0, 0, 1386, 1388, 1, 0, 0, 0, 1387, 1389, 3, 18, 9, 0, 1388, 1387, 1, 0, 0, 0, 1388, 1389, 1, 0, 0, 0, 1389, 77, 1, 0, 0, 0, 1390, 1391, 5, 160, 0, 0, 1391, 1392, 5, 426, 0, 0, 1392, 1393, 5, 301, 0, 0, 1393, 1394, 5, 426, 0, 0, 1394, 79, 1, 0, 0, 0, 1395, 1398, 3, 926, 463, 0, 1396, 1397, 5, 395, 0, 0, 1397, 1399, 3, 926, 463, 0, 1398, 1396, 1, 0, 0, 0, 1398, 1399, 1, 0, 0, 0, 1399, 1413, 1, 0, 0, 0, 1400, 1410, 3, 926, 463, 0, 1401, 1406, 5, 395, 0, 0, 1402, 1407, 5, 104, 0, 0, 1403, 1407, 5, 175, 0, 0, 1404, 1407, 5, 375, 0, 0, 1405, 1407, 3, 926, 463, 0, 1406, 1402, 1, 0, 0, 0, 1406, 1403, 1, 0, 0, 0, 1406, 1404, 1, 0, 0, 0, 1406, 1405, 1, 0, 0, 0, 1407, 1409, 1, 0, 0, 0, 1408, 1401, 1, 0, 0, 0, 1409, 1412, 1, 0, 0, 0, 1410, 1408, 1, 0, 0, 0, 1410, 1411, 1, 0, 0, 0, 1411, 1414, 1, 0, 0, 0, 1412, 1410, 1, 0, 0, 0, 1413, 1400, 1, 0, 0, 0, 1413, 1414, 1, 0, 0, 0, 1414, 81, 1, 0, 0, 0, 1415, 1417, 3, 80, 40, 0, 1416, 1418, 3, 912, 456, 0, 1417, 1416, 1, 0, 0, 0, 1417, 1418, 1, 0, 0, 0, 1418, 83, 1, 0, 0, 0, 1419, 1421, 3, 658, 329, 0, 1420, 1422, 3, 912, 456, 0, 1421, 1420, 1, 0, 0, 0, 1421, 1422, 1, 0, 0, 0, 1422, 1424, 1, 0, 0, 0, 1423, 1425, 3, 288, 144, 0, 1424, 1423, 1, 0, 0, 0, 1424, 1425, 1, 0, 0, 0, 1425, 85, 1, 0, 0, 0, 1426, 1449, 7, 3, 0, 0, 1427, 1429, 3, 92, 46, 0, 1428, 1430, 5, 122, 0, 0, 1429, 1428, 1, 0, 0, 0, 1429, 1430, 1, 0, 0, 0, 1430, 1431, 1, 0, 0, 0, 1431, 1432, 3, 654, 327, 0, 1432, 1450, 1, 0, 0, 0, 1433, 1435, 5, 69, 0, 0, 1434, 1436, 5, 122, 0, 0, 1435, 1434, 1, 0, 0, 0, 1435, 1436, 1, 0, 0, 0, 1436, 1437, 1, 0, 0, 0, 1437, 1450, 3, 654, 327, 0, 1438, 1440, 5, 141, 0, 0, 1439, 1441, 5, 122, 0, 0, 1440, 1439, 1, 0, 0, 0, 1440, 1441, 1, 0, 0, 0, 1441, 1442, 1, 0, 0, 0, 1442, 1450, 3, 782, 391, 0, 1443, 1446, 5, 138, 0, 0, 1444, 1446, 5, 122, 0, 0, 1445, 1443, 1, 0, 0, 0, 1445, 1444, 1, 0, 0, 0, 1446, 1447, 1, 0, 0, 0, 1447, 1450, 3, 84, 42, 0, 1448, 1450, 3, 84, 42, 0, 1449, 1427, 1, 0, 0, 0, 1449, 1433, 1, 0, 0, 0, 1449, 1438, 1, 0, 0, 0, 1449, 1445, 1, 0, 0, 0, 1449, 1448, 1, 0, 0, 0, 1450, 87, 1, 0, 0, 0, 1451, 1452, 5, 10, 0, 0, 1452, 1453, 5, 329, 0, 0, 1453, 1466, 3, 910, 455, 0, 1454, 1455, 5, 52, 0, 0, 1455, 1462, 5, 319, 0, 0, 1456, 1463, 5, 215, 0, 0, 1457, 1458, 5, 134, 0, 0, 1458, 1460, 5, 46, 0, 0, 1459, 1461, 3, 282, 141, 0, 1460, 1459, 1, 0, 0, 0, 1460, 1461, 1, 0, 0, 0, 1461, 1463, 1, 0, 0, 0, 1462, 1456, 1, 0, 0, 0, 1462, 1457, 1, 0, 0, 0, 1462, 1463, 1, 0, 0, 0, 1463, 1467, 1, 0, 0, 0, 1464, 1465, 5, 33, 0, 0, 1465, 1467, 5, 204, 0, 0, 1466, 1454, 1, 0, 0, 0, 1466, 1464, 1, 0, 0, 0, 1467, 89, 1, 0, 0, 0, 1468, 1469, 7, 4, 0, 0, 1469, 91, 1, 0, 0, 0, 1470, 1471, 7, 5, 0, 0, 1471, 93, 1, 0, 0, 0, 1472, 1473, 5, 308, 0, 0, 1473, 1476, 7, 6, 0, 0, 1474, 1475, 5, 184, 0, 0, 1475, 1477, 3, 216, 108, 0, 1476, 1474, 1, 0, 0, 0, 1476, 1477, 1, 0, 0, 0, 1477, 1666, 1, 0, 0, 0, 1478, 1480, 5, 308, 0, 0, 1479, 1481, 5, 122, 0, 0, 1480, 1479, 1, 0, 0, 0, 1480, 1481, 1, 0, 0, 0, 1481, 1482, 1, 0, 0, 0, 1482, 1486, 5, 330, 0, 0, 1483, 1484, 3, 90, 45, 0, 1484, 1485, 3, 654, 327, 0, 1485, 1487, 1, 0, 0, 0, 1486, 1483, 1, 0, 0, 0, 1486, 1487, 1, 0, 0, 0, 1487, 1489, 1, 0, 0, 0, 1488, 1490, 3, 96, 48, 0, 1489, 1488, 1, 0, 0, 0, 1489, 1490, 1, 0, 0, 0, 1490, 1666, 1, 0, 0, 0, 1491, 1492, 5, 308, 0, 0, 1492, 1496, 5, 379, 0, 0, 1493, 1494, 3, 90, 45, 0, 1494, 1495, 3, 654, 327, 0, 1495, 1497, 1, 0, 0, 0, 1496, 1493, 1, 0, 0, 0, 1496, 1497, 1, 0, 0, 0, 1497, 1501, 1, 0, 0, 0, 1498, 1499, 5, 184, 0, 0, 1499, 1502, 3, 216, 108, 0, 1500, 1502, 3, 216, 108, 0, 1501, 1498, 1, 0, 0, 0, 1501, 1500, 1, 0, 0, 0, 1501, 1502, 1, 0, 0, 0, 1502, 1666, 1, 0, 0, 0, 1503, 1504, 5, 308, 0, 0, 1504, 1505, 5, 202, 0, 0, 1505, 1509, 5, 379, 0, 0, 1506, 1507, 3, 90, 45, 0, 1507, 1508, 3, 654, 327, 0, 1508, 1510, 1, 0, 0, 0, 1509, 1506, 1, 0, 0, 0, 1509, 1510, 1, 0, 0, 0, 1510, 1514, 1, 0, 0, 0, 1511, 1512, 5, 184, 0, 0, 1512, 1515, 3, 216, 108, 0, 1513, 1515, 3, 216, 108, 0, 1514, 1511, 1, 0, 0, 0, 1514, 1513, 1, 0, 0, 0, 1514, 1515, 1, 0, 0, 0, 1515, 1666, 1, 0, 0, 0, 1516, 1518, 5, 308, 0, 0, 1517, 1519, 5, 315, 0, 0, 1518, 1517, 1, 0, 0, 0, 1518, 1519, 1, 0, 0, 0, 1519, 1520, 1, 0, 0, 0, 1520, 1521, 5, 46, 0, 0, 1521, 1522, 3, 90, 45, 0, 1522, 1526, 3, 658, 329, 0, 1523, 1524, 3, 90, 45, 0, 1524, 1525, 3, 654, 327, 0, 1525, 1527, 1, 0, 0, 0, 1526, 1523, 1, 0, 0, 0, 1526, 1527, 1, 0, 0, 0, 1527, 1531, 1, 0, 0, 0, 1528, 1529, 5, 184, 0, 0, 1529, 1532, 3, 216, 108, 0, 1530, 1532, 3, 216, 108, 0, 1531, 1528, 1, 0, 0, 0, 1531, 1530, 1, 0, 0, 0, 1531, 1532, 1, 0, 0, 0, 1532, 1666, 1, 0, 0, 0, 1533, 1534, 5, 308, 0, 0, 1534, 1537, 5, 142, 0, 0, 1535, 1536, 5, 184, 0, 0, 1536, 1538, 3, 782, 391, 0, 1537, 1535, 1, 0, 0, 0, 1537, 1538, 1, 0, 0, 0, 1538, 1666, 1, 0, 0, 0, 1539, 1540, 5, 308, 0, 0, 1540, 1541, 5, 239, 0, 0, 1541, 1543, 3, 658, 329, 0, 1542, 1544, 3, 912, 456, 0, 1543, 1542, 1, 0, 0, 0, 1543, 1544, 1, 0, 0, 0, 1544, 1546, 1, 0, 0, 0, 1545, 1547, 3, 676, 338, 0, 1546, 1545, 1, 0, 0, 0, 1546, 1547, 1, 0, 0, 0, 1547, 1549, 1, 0, 0, 0, 1548, 1550, 3, 764, 382, 0, 1549, 1548, 1, 0, 0, 0, 1549, 1550, 1, 0, 0, 0, 1550, 1552, 1, 0, 0, 0, 1551, 1553, 3, 420, 210, 0, 1552, 1551, 1, 0, 0, 0, 1552, 1553, 1, 0, 0, 0, 1553, 1666, 1, 0, 0, 0, 1554, 1555, 5, 308, 0, 0, 1555, 1561, 5, 58, 0, 0, 1556, 1557, 3, 92, 46, 0, 1557, 1558, 3, 654, 327, 0, 1558, 1562, 1, 0, 0, 0, 1559, 1560, 5, 329, 0, 0, 1560, 1562, 3, 660, 330, 0, 1561, 1556, 1, 0, 0, 0, 1561, 1559, 1, 0, 0, 0, 1562, 1666, 1, 0, 0, 0, 1563, 1564, 5, 308, 0, 0, 1564, 1565, 5, 329, 0, 0, 1565, 1569, 5, 122, 0, 0, 1566, 1567, 3, 90, 45, 0, 1567, 1568, 3, 654, 327, 0, 1568, 1570, 1, 0, 0, 0, 1569, 1566, 1, 0, 0, 0, 1569, 1570, 1, 0, 0, 0, 1570, 1571, 1, 0, 0, 0, 1571, 1572, 5, 184, 0, 0, 1572, 1574, 3, 216, 108, 0, 1573, 1575, 3, 912, 456, 0, 1574, 1573, 1, 0, 0, 0, 1574, 1575, 1, 0, 0, 0, 1575, 1666, 1, 0, 0, 0, 1576, 1577, 5, 308, 0, 0, 1577, 1578, 5, 332, 0, 0, 1578, 1582, 3, 660, 330, 0, 1579, 1580, 5, 399, 0, 0, 1580, 1581, 5, 426, 0, 0, 1581, 1583, 5, 400, 0, 0, 1582, 1579, 1, 0, 0, 0, 1582, 1583, 1, 0, 0, 0, 1583, 1666, 1, 0, 0, 0, 1584, 1585, 5, 308, 0, 0, 1585, 1597, 5, 191, 0, 0, 1586, 1587, 3, 92, 46, 0, 1587, 1589, 3, 654, 327, 0, 1588, 1590, 5, 122, 0, 0, 1589, 1588, 1, 0, 0, 0, 1589, 1590, 1, 0, 0, 0, 1590, 1598, 1, 0, 0, 0, 1591, 1593, 3, 82, 41, 0, 1592, 1591, 1, 0, 0, 0, 1592, 1593, 1, 0, 0, 0, 1593, 1595, 1, 0, 0, 0, 1594, 1596, 5, 122, 0, 0, 1595, 1594, 1, 0, 0, 0, 1595, 1596, 1, 0, 0, 0, 1596, 1598, 1, 0, 0, 0, 1597, 1586, 1, 0, 0, 0, 1597, 1592, 1, 0, 0, 0, 1598, 1666, 1, 0, 0, 0, 1599, 1600, 5, 308, 0, 0, 1600, 1637, 5, 50, 0, 0, 1601, 1638, 3, 468, 234, 0, 1602, 1603, 3, 92, 46, 0, 1603, 1605, 3, 654, 327, 0, 1604, 1606, 3, 470, 235, 0, 1605, 1604, 1, 0, 0, 0, 1605, 1606, 1, 0, 0, 0, 1606, 1608, 1, 0, 0, 0, 1607, 1609, 3, 472, 236, 0, 1608, 1607, 1, 0, 0, 0, 1608, 1609, 1, 0, 0, 0, 1609, 1611, 1, 0, 0, 0, 1610, 1612, 3, 474, 237, 0, 1611, 1610, 1, 0, 0, 0, 1611, 1612, 1, 0, 0, 0, 1612, 1614, 1, 0, 0, 0, 1613, 1615, 3, 764, 382, 0, 1614, 1613, 1, 0, 0, 0, 1614, 1615, 1, 0, 0, 0, 1615, 1617, 1, 0, 0, 0, 1616, 1618, 3, 420, 210, 0, 1617, 1616, 1, 0, 0, 0, 1617, 1618, 1, 0, 0, 0, 1618, 1638, 1, 0, 0, 0, 1619, 1621, 3, 82, 41, 0, 1620, 1619, 1, 0, 0, 0, 1620, 1621, 1, 0, 0, 0, 1621, 1623, 1, 0, 0, 0, 1622, 1624, 3, 470, 235, 0, 1623, 1622, 1, 0, 0, 0, 1623, 1624, 1, 0, 0, 0, 1624, 1626, 1, 0, 0, 0, 1625, 1627, 3, 472, 236, 0, 1626, 1625, 1, 0, 0, 0, 1626, 1627, 1, 0, 0, 0, 1627, 1629, 1, 0, 0, 0, 1628, 1630, 3, 474, 237, 0, 1629, 1628, 1, 0, 0, 0, 1629, 1630, 1, 0, 0, 0, 1630, 1632, 1, 0, 0, 0, 1631, 1633, 3, 764, 382, 0, 1632, 1631, 1, 0, 0, 0, 1632, 1633, 1, 0, 0, 0, 1633, 1635, 1, 0, 0, 0, 1634, 1636, 3, 420, 210, 0, 1635, 1634, 1, 0, 0, 0, 1635, 1636, 1, 0, 0, 0, 1636, 1638, 1, 0, 0, 0, 1637, 1601, 1, 0, 0, 0, 1637, 1602, 1, 0, 0, 0, 1637, 1620, 1, 0, 0, 0, 1638, 1666, 1, 0, 0, 0, 1639, 1640, 5, 308, 0, 0, 1640, 1666, 5, 346, 0, 0, 1641, 1642, 5, 308, 0, 0, 1642, 1643, 5, 54, 0, 0, 1643, 1666, 5, 426, 0, 0, 1644, 1645, 5, 308, 0, 0, 1645, 1649, 5, 280, 0, 0, 1646, 1647, 5, 243, 0, 0, 1647, 1650, 3, 926, 463, 0, 1648, 1650, 5, 244, 0, 0, 1649, 1646, 1, 0, 0, 0, 1649, 1648, 1, 0, 0, 0, 1650, 1666, 1, 0, 0, 0, 1651, 1652, 5, 308, 0, 0, 1652, 1666, 5, 70, 0, 0, 1653, 1655, 5, 308, 0, 0, 1654, 1656, 5, 138, 0, 0, 1655, 1654, 1, 0, 0, 0, 1655, 1656, 1, 0, 0, 0, 1656, 1657, 1, 0, 0, 0, 1657, 1658, 7, 7, 0, 0, 1658, 1659, 5, 224, 0, 0, 1659, 1663, 3, 660, 330, 0, 1660, 1661, 3, 90, 45, 0, 1661, 1662, 3, 654, 327, 0, 1662, 1664, 1, 0, 0, 0, 1663, 1660, 1, 0, 0, 0, 1663, 1664, 1, 0, 0, 0, 1664, 1666, 1, 0, 0, 0, 1665, 1472, 1, 0, 0, 0, 1665, 1478, 1, 0, 0, 0, 1665, 1491, 1, 0, 0, 0, 1665, 1503, 1, 0, 0, 0, 1665, 1516, 1, 0, 0, 0, 1665, 1533, 1, 0, 0, 0, 1665, 1539, 1, 0, 0, 0, 1665, 1554, 1, 0, 0, 0, 1665, 1563, 1, 0, 0, 0, 1665, 1576, 1, 0, 0, 0, 1665, 1584, 1, 0, 0, 0, 1665, 1599, 1, 0, 0, 0, 1665, 1639, 1, 0, 0, 0, 1665, 1641, 1, 0, 0, 0, 1665, 1644, 1, 0, 0, 0, 1665, 1651, 1, 0, 0, 0, 1665, 1653, 1, 0, 0, 0, 1666, 95, 1, 0, 0, 0, 1667, 1668, 5, 384, 0, 0, 1668, 1669, 3, 926, 463, 0, 1669, 1670, 5, 405, 0, 0, 1670, 1671, 5, 426, 0, 0, 1671, 1676, 1, 0, 0, 0, 1672, 1673, 5, 184, 0, 0, 1673, 1676, 3, 216, 108, 0, 1674, 1676, 3, 216, 108, 0, 1675, 1667, 1, 0, 0, 0, 1675, 1672, 1, 0, 0, 0, 1675, 1674, 1, 0, 0, 0, 1676, 97, 1, 0, 0, 0, 1677, 1678, 5, 190, 0, 0, 1678, 1679, 5, 329, 0, 0, 1679, 1681, 3, 660, 330, 0, 1680, 1682, 3, 912, 456, 0, 1681, 1680, 1, 0, 0, 0, 1681, 1682, 1, 0, 0, 0, 1682, 1683, 1, 0, 0, 0, 1683, 1684, 3, 102, 51, 0, 1684, 99, 1, 0, 0, 0, 1685, 1686, 5, 190, 0, 0, 1686, 1687, 3, 92, 46, 0, 1687, 1688, 3, 654, 327, 0, 1688, 1689, 3, 102, 51, 0, 1689, 101, 1, 0, 0, 0, 1690, 1691, 7, 8, 0, 0, 1691, 103, 1, 0, 0, 0, 1692, 1693, 5, 361, 0, 0, 1693, 1694, 5, 329, 0, 0, 1694, 1696, 3, 660, 330, 0, 1695, 1697, 3, 912, 456, 0, 1696, 1695, 1, 0, 0, 0, 1696, 1697, 1, 0, 0, 0, 1697, 105, 1, 0, 0, 0, 1698, 1699, 5, 361, 0, 0, 1699, 1700, 3, 92, 46, 0, 1700, 1701, 3, 654, 327, 0, 1701, 107, 1, 0, 0, 0, 1702, 1703, 5, 58, 0, 0, 1703, 1704, 5, 287, 0, 0, 1704, 1705, 3, 926, 463, 0, 1705, 109, 1, 0, 0, 0, 1706, 1707, 5, 101, 0, 0, 1707, 1708, 5, 287, 0, 0, 1708, 1709, 3, 926, 463, 0, 1709, 111, 1, 0, 0, 0, 1710, 1711, 5, 143, 0, 0, 1711, 1713, 3, 140, 70, 0, 1712, 1714, 3, 134, 67, 0, 1713, 1712, 1, 0, 0, 0, 1713, 1714, 1, 0, 0, 0, 1714, 1715, 1, 0, 0, 0, 1715, 1716, 5, 341, 0, 0, 1716, 1718, 3, 146, 73, 0, 1717, 1719, 3, 152, 76, 0, 1718, 1717, 1, 0, 0, 0, 1718, 1719, 1, 0, 0, 0, 1719, 113, 1, 0, 0, 0, 1720, 1722, 5, 283, 0, 0, 1721, 1723, 3, 154, 77, 0, 1722, 1721, 1, 0, 0, 0, 1722, 1723, 1, 0, 0, 0, 1723, 1724, 1, 0, 0, 0, 1724, 1726, 3, 140, 70, 0, 1725, 1727, 3, 134, 67, 0, 1726, 1725, 1, 0, 0, 0, 1726, 1727, 1, 0, 0, 0, 1727, 1728, 1, 0, 0, 0, 1728, 1729, 5, 139, 0, 0, 1729, 1730, 3, 146, 73, 0, 1730, 115, 1, 0, 0, 0, 1731, 1733, 5, 143, 0, 0, 1732, 1734, 5, 287, 0, 0, 1733, 1732, 1, 0, 0, 0, 1733, 1734, 1, 0, 0, 0, 1734, 1735, 1, 0, 0, 0, 1735, 1740, 3, 926, 463, 0, 1736, 1737, 5, 397, 0, 0, 1737, 1739, 3, 926, 463, 0, 1738, 1736, 1, 0, 0, 0, 1739, 1742, 1, 0, 0, 0, 1740, 1738, 1, 0, 0, 0, 1740, 1741, 1, 0, 0, 0, 1741, 1743, 1, 0, 0, 0, 1742, 1740, 1, 0, 0, 0, 1743, 1744, 5, 341, 0, 0, 1744, 1746, 3, 146, 73, 0, 1745, 1747, 3, 158, 79, 0, 1746, 1745, 1, 0, 0, 0, 1746, 1747, 1, 0, 0, 0, 1747, 117, 1, 0, 0, 0, 1748, 1750, 5, 283, 0, 0, 1749, 1751, 3, 156, 78, 0, 1750, 1749, 1, 0, 0, 0, 1750, 1751, 1, 0, 0, 0, 1751, 1753, 1, 0, 0, 0, 1752, 1754, 5, 287, 0, 0, 1753, 1752, 1, 0, 0, 0, 1753, 1754, 1, 0, 0, 0, 1754, 1755, 1, 0, 0, 0, 1755, 1760, 3, 926, 463, 0, 1756, 1757, 5, 397, 0, 0, 1757, 1759, 3, 926, 463, 0, 1758, 1756, 1, 0, 0, 0, 1759, 1762, 1, 0, 0, 0, 1760, 1758, 1, 0, 0, 0, 1760, 1761, 1, 0, 0, 0, 1761, 1763, 1, 0, 0, 0, 1762, 1760, 1, 0, 0, 0, 1763, 1764, 5, 139, 0, 0, 1764, 1765, 3, 146, 73, 0, 1765, 119, 1, 0, 0, 0, 1766, 1767, 5, 308, 0, 0, 1767, 1768, 5, 287, 0, 0, 1768, 1769, 5, 143, 0, 0, 1769, 1770, 3, 148, 74, 0, 1770, 121, 1, 0, 0, 0, 1771, 1772, 5, 308, 0, 0, 1772, 1773, 5, 288, 0, 0, 1773, 123, 1, 0, 0, 0, 1774, 1775, 5, 308, 0, 0, 1775, 1776, 5, 62, 0, 0, 1776, 1777, 5, 288, 0, 0, 1777, 125, 1, 0, 0, 0, 1778, 1779, 5, 304, 0, 0, 1779, 1783, 5, 287, 0, 0, 1780, 1784, 5, 7, 0, 0, 1781, 1784, 5, 213, 0, 0, 1782, 1784, 3, 926, 463, 0, 1783, 1780, 1, 0, 0, 0, 1783, 1781, 1, 0, 0, 0, 1783, 1782, 1, 0, 0, 0, 1784, 127, 1, 0, 0, 0, 1785, 1786, 5, 308, 0, 0, 1786, 1788, 5, 143, 0, 0, 1787, 1789, 3, 148, 74, 0, 1788, 1787, 1, 0, 0, 0, 1788, 1789, 1, 0, 0, 0, 1789, 1792, 1, 0, 0, 0, 1790, 1791, 5, 224, 0, 0, 1791, 1793, 3, 132, 66, 0, 1792, 1790, 1, 0, 0, 0, 1792, 1793, 1, 0, 0, 0, 1793, 129, 1, 0, 0, 0, 1794, 1795, 5, 308, 0, 0, 1795, 1796, 5, 252, 0, 0, 1796, 1797, 3, 926, 463, 0, 1797, 131, 1, 0, 0, 0, 1798, 1801, 5, 7, 0, 0, 1799, 1801, 3, 138, 69, 0, 1800, 1798, 1, 0, 0, 0, 1800, 1799, 1, 0, 0, 0, 1801, 133, 1, 0, 0, 0, 1802, 1803, 5, 224, 0, 0, 1803, 1804, 3, 136, 68, 0, 1804, 135, 1, 0, 0, 0, 1805, 1806, 3, 92, 46, 0, 1806, 1807, 3, 654, 327, 0, 1807, 1820, 1, 0, 0, 0, 1808, 1810, 5, 329, 0, 0, 1809, 1808, 1, 0, 0, 0, 1809, 1810, 1, 0, 0, 0, 1810, 1811, 1, 0, 0, 0, 1811, 1813, 3, 660, 330, 0, 1812, 1814, 3, 912, 456, 0, 1813, 1812, 1, 0, 0, 0, 1813, 1814, 1, 0, 0, 0, 1814, 1820, 1, 0, 0, 0, 1815, 1816, 5, 366, 0, 0, 1816, 1820, 5, 426, 0, 0, 1817, 1818, 5, 303, 0, 0, 1818, 1820, 3, 926, 463, 0, 1819, 1805, 1, 0, 0, 0, 1819, 1809, 1, 0, 0, 0, 1819, 1815, 1, 0, 0, 0, 1819, 1817, 1, 0, 0, 0, 1820, 137, 1, 0, 0, 0, 1821, 1822, 3, 92, 46, 0, 1822, 1823, 3, 654, 327, 0, 1823, 1842, 1, 0, 0, 0, 1824, 1826, 5, 329, 0, 0, 1825, 1824, 1, 0, 0, 0, 1825, 1826, 1, 0, 0, 0, 1826, 1827, 1, 0, 0, 0, 1827, 1832, 3, 660, 330, 0, 1828, 1829, 5, 399, 0, 0, 1829, 1830, 3, 282, 141, 0, 1830, 1831, 5, 400, 0, 0, 1831, 1833, 1, 0, 0, 0, 1832, 1828, 1, 0, 0, 0, 1832, 1833, 1, 0, 0, 0, 1833, 1835, 1, 0, 0, 0, 1834, 1836, 3, 912, 456, 0, 1835, 1834, 1, 0, 0, 0, 1835, 1836, 1, 0, 0, 0, 1836, 1842, 1, 0, 0, 0, 1837, 1838, 5, 366, 0, 0, 1838, 1842, 5, 426, 0, 0, 1839, 1840, 5, 303, 0, 0, 1840, 1842, 3, 926, 463, 0, 1841, 1821, 1, 0, 0, 0, 1841, 1825, 1, 0, 0, 0, 1841, 1837, 1, 0, 0, 0, 1841, 1839, 1, 0, 0, 0, 1842, 139, 1, 0, 0, 0, 1843, 1848, 3, 142, 71, 0, 1844, 1845, 5, 397, 0, 0, 1845, 1847, 3, 142, 71, 0, 1846, 1844, 1, 0, 0, 0, 1847, 1850, 1, 0, 0, 0, 1848, 1846, 1, 0, 0, 0, 1848, 1849, 1, 0, 0, 0, 1849, 141, 1, 0, 0, 0, 1850, 1848, 1, 0, 0, 0, 1851, 1856, 3, 144, 72, 0, 1852, 1853, 5, 399, 0, 0, 1853, 1854, 3, 282, 141, 0, 1854, 1855, 5, 400, 0, 0, 1855, 1857, 1, 0, 0, 0, 1856, 1852, 1, 0, 0, 0, 1856, 1857, 1, 0, 0, 0, 1857, 143, 1, 0, 0, 0, 1858, 1859, 7, 9, 0, 0, 1859, 145, 1, 0, 0, 0, 1860, 1865, 3, 148, 74, 0, 1861, 1862, 5, 397, 0, 0, 1862, 1864, 3, 148, 74, 0, 1863, 1861, 1, 0, 0, 0, 1864, 1867, 1, 0, 0, 0, 1865, 1863, 1, 0, 0, 0, 1865, 1866, 1, 0, 0, 0, 1866, 147, 1, 0, 0, 0, 1867, 1865, 1, 0, 0, 0, 1868, 1869, 5, 369, 0, 0, 1869, 1875, 3, 930, 465, 0, 1870, 1871, 5, 144, 0, 0, 1871, 1875, 3, 930, 465, 0, 1872, 1873, 5, 287, 0, 0, 1873, 1875, 3, 926, 463, 0, 1874, 1868, 1, 0, 0, 0, 1874, 1870, 1, 0, 0, 0, 1874, 1872, 1, 0, 0, 0, 1875, 149, 1, 0, 0, 0, 1876, 1877, 5, 369, 0, 0, 1877, 1882, 3, 930, 465, 0, 1878, 1879, 5, 287, 0, 0, 1879, 1882, 3, 926, 463, 0, 1880, 1882, 3, 926, 463, 0, 1881, 1876, 1, 0, 0, 0, 1881, 1878, 1, 0, 0, 0, 1881, 1880, 1, 0, 0, 0, 1882, 151, 1, 0, 0, 0, 1883, 1884, 5, 387, 0, 0, 1884, 1885, 5, 143, 0, 0, 1885, 1886, 5, 227, 0, 0, 1886, 153, 1, 0, 0, 0, 1887, 1888, 5, 143, 0, 0, 1888, 1889, 5, 227, 0, 0, 1889, 1890, 5, 134, 0, 0, 1890, 155, 1, 0, 0, 0, 1891, 1892, 5, 5, 0, 0, 1892, 1893, 5, 227, 0, 0, 1893, 1894, 5, 134, 0, 0, 1894, 157, 1, 0, 0, 0, 1895, 1896, 5, 387, 0, 0, 1896, 1897, 5, 5, 0, 0, 1897, 1898, 5, 227, 0, 0, 1898, 159, 1, 0, 0, 0, 1899, 1901, 5, 212, 0, 0, 1900, 1902, 5, 276, 0, 0, 1901, 1900, 1, 0, 0, 0, 1901, 1902, 1, 0, 0, 0, 1902, 1903, 1, 0, 0, 0, 1903, 1904, 5, 329, 0, 0, 1904, 1910, 3, 660, 330, 0, 1905, 1906, 7, 10, 0, 0, 1906, 1908, 5, 239, 0, 0, 1907, 1909, 3, 916, 458, 0, 1908, 1907, 1, 0, 0, 0, 1908, 1909, 1, 0, 0, 0, 1909, 1911, 1, 0, 0, 0, 1910, 1905, 1, 0, 0, 0, 1910, 1911, 1, 0, 0, 0, 1911, 161, 1, 0, 0, 0, 1912, 1917, 3, 164, 82, 0, 1913, 1914, 5, 397, 0, 0, 1914, 1916, 3, 164, 82, 0, 1915, 1913, 1, 0, 0, 0, 1916, 1919, 1, 0, 0, 0, 1917, 1915, 1, 0, 0, 0, 1917, 1918, 1, 0, 0, 0, 1918, 163, 1, 0, 0, 0, 1919, 1917, 1, 0, 0, 0, 1920, 1921, 3, 166, 83, 0, 1921, 1922, 5, 426, 0, 0, 1922, 165, 1, 0, 0, 0, 1923, 1924, 7, 11, 0, 0, 1924, 167, 1, 0, 0, 0, 1925, 1927, 5, 58, 0, 0, 1926, 1928, 5, 333, 0, 0, 1927, 1926, 1, 0, 0, 0, 1927, 1928, 1, 0, 0, 0, 1928, 1929, 1, 0, 0, 0, 1929, 1930, 5, 141, 0, 0, 1930, 1931, 3, 780, 390, 0, 1931, 1932, 5, 17, 0, 0, 1932, 1935, 5, 426, 0, 0, 1933, 1934, 5, 370, 0, 0, 1934, 1936, 3, 162, 81, 0, 1935, 1933, 1, 0, 0, 0, 1935, 1936, 1, 0, 0, 0, 1936, 169, 1, 0, 0, 0, 1937, 1939, 5, 101, 0, 0, 1938, 1940, 5, 333, 0, 0, 1939, 1938, 1, 0, 0, 0, 1939, 1940, 1, 0, 0, 0, 1940, 1941, 1, 0, 0, 0, 1941, 1943, 5, 141, 0, 0, 1942, 1944, 3, 40, 20, 0, 1943, 1942, 1, 0, 0, 0, 1943, 1944, 1, 0, 0, 0, 1944, 1945, 1, 0, 0, 0, 1945, 1946, 3, 782, 391, 0, 1946, 171, 1, 0, 0, 0, 1947, 1948, 5, 271, 0, 0, 1948, 1949, 7, 12, 0, 0, 1949, 173, 1, 0, 0, 0, 1950, 1951, 5, 58, 0, 0, 1951, 1952, 5, 333, 0, 0, 1952, 1953, 5, 194, 0, 0, 1953, 1954, 5, 432, 0, 0, 1954, 1956, 5, 399, 0, 0, 1955, 1957, 3, 276, 138, 0, 1956, 1955, 1, 0, 0, 0, 1956, 1957, 1, 0, 0, 0, 1957, 1958, 1, 0, 0, 0, 1958, 1959, 5, 400, 0, 0, 1959, 1960, 3, 828, 414, 0, 1960, 175, 1, 0, 0, 0, 1961, 1962, 5, 101, 0, 0, 1962, 1963, 5, 333, 0, 0, 1963, 1965, 5, 194, 0, 0, 1964, 1966, 3, 40, 20, 0, 1965, 1964, 1, 0, 0, 0, 1965, 1966, 1, 0, 0, 0, 1966, 1967, 1, 0, 0, 0, 1967, 1968, 5, 432, 0, 0, 1968, 177, 1, 0, 0, 0, 1969, 1970, 5, 58, 0, 0, 1970, 1971, 5, 155, 0, 0, 1971, 1972, 3, 926, 463, 0, 1972, 1973, 5, 224, 0, 0, 1973, 1974, 5, 329, 0, 0, 1974, 1975, 3, 660, 330, 0, 1975, 1976, 3, 292, 146, 0, 1976, 1977, 5, 17, 0, 0, 1977, 1981, 5, 426, 0, 0, 1978, 1979, 5, 387, 0, 0, 1979, 1980, 5, 84, 0, 0, 1980, 1982, 5, 265, 0, 0, 1981, 1978, 1, 0, 0, 0, 1981, 1982, 1, 0, 0, 0, 1982, 1985, 1, 0, 0, 0, 1983, 1984, 5, 150, 0, 0, 1984, 1986, 3, 254, 127, 0, 1985, 1983, 1, 0, 0, 0, 1985, 1986, 1, 0, 0, 0, 1986, 1990, 1, 0, 0, 0, 1987, 1988, 5, 154, 0, 0, 1988, 1989, 5, 329, 0, 0, 1989, 1991, 3, 660, 330, 0, 1990, 1987, 1, 0, 0, 0, 1990, 1991, 1, 0, 0, 0, 1991, 1995, 1, 0, 0, 0, 1992, 1993, 5, 238, 0, 0, 1993, 1994, 5, 32, 0, 0, 1994, 1996, 3, 292, 146, 0, 1995, 1992, 1, 0, 0, 0, 1995, 1996, 1, 0, 0, 0, 1996, 2001, 1, 0, 0, 0, 1997, 1999, 3, 250, 125, 0, 1998, 1997, 1, 0, 0, 0, 1998, 1999, 1, 0, 0, 0, 1999, 2000, 1, 0, 0, 0, 2000, 2002, 3, 272, 136, 0, 2001, 1998, 1, 0, 0, 0, 2001, 2002, 1, 0, 0, 0, 2002, 2005, 1, 0, 0, 0, 2003, 2004, 5, 189, 0, 0, 2004, 2006, 5, 426, 0, 0, 2005, 2003, 1, 0, 0, 0, 2005, 2006, 1, 0, 0, 0, 2006, 2008, 1, 0, 0, 0, 2007, 2009, 3, 252, 126, 0, 2008, 2007, 1, 0, 0, 0, 2008, 2009, 1, 0, 0, 0, 2009, 2011, 1, 0, 0, 0, 2010, 2012, 3, 218, 109, 0, 2011, 2010, 1, 0, 0, 0, 2011, 2012, 1, 0, 0, 0, 2012, 179, 1, 0, 0, 0, 2013, 2014, 5, 101, 0, 0, 2014, 2016, 5, 155, 0, 0, 2015, 2017, 3, 40, 20, 0, 2016, 2015, 1, 0, 0, 0, 2016, 2017, 1, 0, 0, 0, 2017, 2018, 1, 0, 0, 0, 2018, 2019, 3, 926, 463, 0, 2019, 2020, 5, 224, 0, 0, 2020, 2021, 3, 660, 330, 0, 2021, 181, 1, 0, 0, 0, 2022, 2024, 5, 58, 0, 0, 2023, 2025, 3, 54, 27, 0, 2024, 2023, 1, 0, 0, 0, 2024, 2025, 1, 0, 0, 0, 2025, 2026, 1, 0, 0, 0, 2026, 2028, 5, 378, 0, 0, 2027, 2029, 3, 44, 22, 0, 2028, 2027, 1, 0, 0, 0, 2028, 2029, 1, 0, 0, 0, 2029, 2030, 1, 0, 0, 0, 2030, 2035, 3, 666, 333, 0, 2031, 2032, 5, 399, 0, 0, 2032, 2033, 3, 336, 168, 0, 2033, 2034, 5, 400, 0, 0, 2034, 2036, 1, 0, 0, 0, 2035, 2031, 1, 0, 0, 0, 2035, 2036, 1, 0, 0, 0, 2036, 2038, 1, 0, 0, 0, 2037, 2039, 3, 218, 109, 0, 2038, 2037, 1, 0, 0, 0, 2038, 2039, 1, 0, 0, 0, 2039, 2041, 1, 0, 0, 0, 2040, 2042, 3, 184, 92, 0, 2041, 2040, 1, 0, 0, 0, 2041, 2042, 1, 0, 0, 0, 2042, 2044, 1, 0, 0, 0, 2043, 2045, 3, 252, 126, 0, 2044, 2043, 1, 0, 0, 0, 2044, 2045, 1, 0, 0, 0, 2045, 2046, 1, 0, 0, 0, 2046, 2047, 5, 17, 0, 0, 2047, 2048, 3, 414, 207, 0, 2048, 183, 1, 0, 0, 0, 2049, 2050, 5, 238, 0, 0, 2050, 2056, 5, 224, 0, 0, 2051, 2052, 5, 399, 0, 0, 2052, 2057, 3, 282, 141, 0, 2053, 2054, 5, 316, 0, 0, 2054, 2055, 5, 399, 0, 0, 2055, 2057, 3, 228, 114, 0, 2056, 2051, 1, 0, 0, 0, 2056, 2053, 1, 0, 0, 0, 2057, 2058, 1, 0, 0, 0, 2058, 2059, 5, 400, 0, 0, 2059, 185, 1, 0, 0, 0, 2060, 2063, 3, 188, 94, 0, 2061, 2063, 3, 190, 95, 0, 2062, 2060, 1, 0, 0, 0, 2062, 2061, 1, 0, 0, 0, 2063, 187, 1, 0, 0, 0, 2064, 2065, 5, 42, 0, 0, 2065, 2066, 5, 224, 0, 0, 2066, 2067, 5, 399, 0, 0, 2067, 2068, 3, 282, 141, 0, 2068, 2069, 5, 400, 0, 0, 2069, 189, 1, 0, 0, 0, 2070, 2071, 3, 192, 96, 0, 2071, 2072, 3, 194, 97, 0, 2072, 191, 1, 0, 0, 0, 2073, 2074, 5, 98, 0, 0, 2074, 2075, 5, 224, 0, 0, 2075, 2076, 5, 399, 0, 0, 2076, 2077, 3, 282, 141, 0, 2077, 2078, 5, 400, 0, 0, 2078, 193, 1, 0, 0, 0, 2079, 2080, 5, 315, 0, 0, 2080, 2081, 5, 224, 0, 0, 2081, 2082, 5, 399, 0, 0, 2082, 2083, 3, 282, 141, 0, 2083, 2084, 5, 400, 0, 0, 2084, 195, 1, 0, 0, 0, 2085, 2086, 5, 101, 0, 0, 2086, 2088, 5, 378, 0, 0, 2087, 2089, 3, 40, 20, 0, 2088, 2087, 1, 0, 0, 0, 2088, 2089, 1, 0, 0, 0, 2089, 2090, 1, 0, 0, 0, 2090, 2091, 3, 664, 332, 0, 2091, 197, 1, 0, 0, 0, 2092, 2093, 5, 58, 0, 0, 2093, 2094, 5, 202, 0, 0, 2094, 2096, 5, 378, 0, 0, 2095, 2097, 3, 44, 22, 0, 2096, 2095, 1, 0, 0, 0, 2096, 2097, 1, 0, 0, 0, 2097, 2098, 1, 0, 0, 0, 2098, 2100, 3, 666, 333, 0, 2099, 2101, 3, 50, 25, 0, 2100, 2099, 1, 0, 0, 0, 2100, 2101, 1, 0, 0, 0, 2101, 2103, 1, 0, 0, 0, 2102, 2104, 3, 218, 109, 0, 2103, 2102, 1, 0, 0, 0, 2103, 2104, 1, 0, 0, 0, 2104, 2106, 1, 0, 0, 0, 2105, 2107, 3, 184, 92, 0, 2106, 2105, 1, 0, 0, 0, 2106, 2107, 1, 0, 0, 0, 2107, 2109, 1, 0, 0, 0, 2108, 2110, 3, 186, 93, 0, 2109, 2108, 1, 0, 0, 0, 2109, 2110, 1, 0, 0, 0, 2110, 2112, 1, 0, 0, 0, 2111, 2113, 3, 250, 125, 0, 2112, 2111, 1, 0, 0, 0, 2112, 2113, 1, 0, 0, 0, 2113, 2115, 1, 0, 0, 0, 2114, 2116, 3, 272, 136, 0, 2115, 2114, 1, 0, 0, 0, 2115, 2116, 1, 0, 0, 0, 2116, 2118, 1, 0, 0, 0, 2117, 2119, 3, 274, 137, 0, 2118, 2117, 1, 0, 0, 0, 2118, 2119, 1, 0, 0, 0, 2119, 2121, 1, 0, 0, 0, 2120, 2122, 3, 252, 126, 0, 2121, 2120, 1, 0, 0, 0, 2121, 2122, 1, 0, 0, 0, 2122, 2123, 1, 0, 0, 0, 2123, 2124, 5, 17, 0, 0, 2124, 2125, 3, 414, 207, 0, 2125, 199, 1, 0, 0, 0, 2126, 2127, 5, 101, 0, 0, 2127, 2128, 5, 202, 0, 0, 2128, 2130, 5, 378, 0, 0, 2129, 2131, 3, 40, 20, 0, 2130, 2129, 1, 0, 0, 0, 2130, 2131, 1, 0, 0, 0, 2131, 2132, 1, 0, 0, 0, 2132, 2133, 3, 664, 332, 0, 2133, 201, 1, 0, 0, 0, 2134, 2135, 5, 58, 0, 0, 2135, 2136, 5, 293, 0, 0, 2136, 2137, 5, 258, 0, 0, 2137, 2138, 3, 926, 463, 0, 2138, 2140, 3, 210, 105, 0, 2139, 2141, 3, 212, 106, 0, 2140, 2139, 1, 0, 0, 0, 2140, 2141, 1, 0, 0, 0, 2141, 2143, 1, 0, 0, 0, 2142, 2144, 3, 296, 148, 0, 2143, 2142, 1, 0, 0, 0, 2143, 2144, 1, 0, 0, 0, 2144, 2145, 1, 0, 0, 0, 2145, 2146, 3, 214, 107, 0, 2146, 203, 1, 0, 0, 0, 2147, 2148, 5, 101, 0, 0, 2148, 2149, 5, 293, 0, 0, 2149, 2150, 5, 258, 0, 0, 2150, 2151, 3, 926, 463, 0, 2151, 205, 1, 0, 0, 0, 2152, 2153, 5, 9, 0, 0, 2153, 2154, 5, 293, 0, 0, 2154, 2155, 5, 258, 0, 0, 2155, 2156, 3, 926, 463, 0, 2156, 2157, 3, 208, 104, 0, 2157, 207, 1, 0, 0, 0, 2158, 2164, 3, 210, 105, 0, 2159, 2164, 3, 212, 106, 0, 2160, 2164, 3, 296, 148, 0, 2161, 2164, 3, 214, 107, 0, 2162, 2164, 5, 115, 0, 0, 2163, 2158, 1, 0, 0, 0, 2163, 2159, 1, 0, 0, 0, 2163, 2160, 1, 0, 0, 0, 2163, 2161, 1, 0, 0, 0, 2163, 2162, 1, 0, 0, 0, 2164, 209, 1, 0, 0, 0, 2165, 2166, 5, 59, 0, 0, 2166, 2181, 5, 426, 0, 0, 2167, 2169, 5, 111, 0, 0, 2168, 2170, 5, 431, 0, 0, 2169, 2168, 1, 0, 0, 0, 2169, 2170, 1, 0, 0, 0, 2170, 2171, 1, 0, 0, 0, 2171, 2178, 3, 826, 413, 0, 2172, 2176, 5, 20, 0, 0, 2173, 2174, 5, 223, 0, 0, 2174, 2176, 5, 32, 0, 0, 2175, 2172, 1, 0, 0, 0, 2175, 2173, 1, 0, 0, 0, 2176, 2177, 1, 0, 0, 0, 2177, 2179, 5, 426, 0, 0, 2178, 2175, 1, 0, 0, 0, 2178, 2179, 1, 0, 0, 0, 2179, 2181, 1, 0, 0, 0, 2180, 2165, 1, 0, 0, 0, 2180, 2167, 1, 0, 0, 0, 2181, 211, 1, 0, 0, 0, 2182, 2183, 5, 116, 0, 0, 2183, 2184, 5, 17, 0, 0, 2184, 2185, 5, 426, 0, 0, 2185, 213, 1, 0, 0, 0, 2186, 2188, 5, 85, 0, 0, 2187, 2186, 1, 0, 0, 0, 2187, 2188, 1, 0, 0, 0, 2188, 2189, 1, 0, 0, 0, 2189, 2190, 5, 17, 0, 0, 2190, 2191, 3, 2, 1, 0, 2191, 215, 1, 0, 0, 0, 2192, 2195, 3, 926, 463, 0, 2193, 2195, 5, 426, 0, 0, 2194, 2192, 1, 0, 0, 0, 2194, 2193, 1, 0, 0, 0, 2195, 217, 1, 0, 0, 0, 2196, 2197, 5, 47, 0, 0, 2197, 2198, 5, 426, 0, 0, 2198, 219, 1, 0, 0, 0, 2199, 2200, 5, 183, 0, 0, 2200, 2201, 5, 431, 0, 0, 2201, 221, 1, 0, 0, 0, 2202, 2203, 5, 238, 0, 0, 2203, 2212, 5, 32, 0, 0, 2204, 2207, 5, 399, 0, 0, 2205, 2208, 3, 224, 112, 0, 2206, 2208, 3, 226, 113, 0, 2207, 2205, 1, 0, 0, 0, 2207, 2206, 1, 0, 0, 0, 2208, 2213, 1, 0, 0, 0, 2209, 2210, 5, 316, 0, 0, 2210, 2211, 5, 399, 0, 0, 2211, 2213, 3, 228, 114, 0, 2212, 2204, 1, 0, 0, 0, 2212, 2209, 1, 0, 0, 0, 2213, 2214, 1, 0, 0, 0, 2214, 2215, 5, 400, 0, 0, 2215, 223, 1, 0, 0, 0, 2216, 2221, 3, 350, 175, 0, 2217, 2218, 5, 397, 0, 0, 2218, 2220, 3, 350, 175, 0, 2219, 2217, 1, 0, 0, 0, 2220, 2223, 1, 0, 0, 0, 2221, 2219, 1, 0, 0, 0, 2221, 2222, 1, 0, 0, 0, 2222, 225, 1, 0, 0, 0, 2223, 2221, 1, 0, 0, 0, 2224, 2229, 3, 284, 142, 0, 2225, 2226, 5, 397, 0, 0, 2226, 2228, 3, 284, 142, 0, 2227, 2225, 1, 0, 0, 0, 2228, 2231, 1, 0, 0, 0, 2229, 2227, 1, 0, 0, 0, 2229, 2230, 1, 0, 0, 0, 2230, 227, 1, 0, 0, 0, 2231, 2229, 1, 0, 0, 0, 2232, 2237, 3, 230, 115, 0, 2233, 2234, 5, 397, 0, 0, 2234, 2236, 3, 230, 115, 0, 2235, 2233, 1, 0, 0, 0, 2236, 2239, 1, 0, 0, 0, 2237, 2235, 1, 0, 0, 0, 2237, 2238, 1, 0, 0, 0, 2238, 229, 1, 0, 0, 0, 2239, 2237, 1, 0, 0, 0, 2240, 2241, 3, 232, 116, 0, 2241, 231, 1, 0, 0, 0, 2242, 2261, 3, 284, 142, 0, 2243, 2248, 3, 976, 488, 0, 2244, 2248, 3, 978, 489, 0, 2245, 2248, 3, 982, 491, 0, 2246, 2248, 3, 984, 492, 0, 2247, 2243, 1, 0, 0, 0, 2247, 2244, 1, 0, 0, 0, 2247, 2245, 1, 0, 0, 0, 2247, 2246, 1, 0, 0, 0, 2248, 2249, 1, 0, 0, 0, 2249, 2250, 5, 399, 0, 0, 2250, 2251, 3, 284, 142, 0, 2251, 2252, 5, 400, 0, 0, 2252, 2261, 1, 0, 0, 0, 2253, 2254, 7, 13, 0, 0, 2254, 2255, 5, 399, 0, 0, 2255, 2256, 5, 431, 0, 0, 2256, 2257, 5, 397, 0, 0, 2257, 2258, 3, 284, 142, 0, 2258, 2259, 5, 400, 0, 0, 2259, 2261, 1, 0, 0, 0, 2260, 2242, 1, 0, 0, 0, 2260, 2247, 1, 0, 0, 0, 2260, 2253, 1, 0, 0, 0, 2261, 233, 1, 0, 0, 0, 2262, 2263, 5, 42, 0, 0, 2263, 2264, 5, 32, 0, 0, 2264, 2265, 5, 399, 0, 0, 2265, 2266, 3, 282, 141, 0, 2266, 2273, 5, 400, 0, 0, 2267, 2268, 5, 315, 0, 0, 2268, 2269, 5, 32, 0, 0, 2269, 2270, 5, 399, 0, 0, 2270, 2271, 3, 290, 145, 0, 2271, 2272, 5, 400, 0, 0, 2272, 2274, 1, 0, 0, 0, 2273, 2267, 1, 0, 0, 0, 2273, 2274, 1, 0, 0, 0, 2274, 2275, 1, 0, 0, 0, 2275, 2276, 5, 166, 0, 0, 2276, 2277, 5, 431, 0, 0, 2277, 2278, 5, 31, 0, 0, 2278, 235, 1, 0, 0, 0, 2279, 2280, 5, 42, 0, 0, 2280, 2281, 5, 166, 0, 0, 2281, 2282, 5, 431, 0, 0, 2282, 2283, 5, 31, 0, 0, 2283, 237, 1, 0, 0, 0, 2284, 2285, 5, 310, 0, 0, 2285, 2286, 5, 32, 0, 0, 2286, 2287, 5, 399, 0, 0, 2287, 2288, 3, 282, 141, 0, 2288, 2289, 5, 400, 0, 0, 2289, 2290, 5, 224, 0, 0, 2290, 2291, 5, 399, 0, 0, 2291, 2292, 3, 318, 159, 0, 2292, 2294, 5, 400, 0, 0, 2293, 2295, 3, 52, 26, 0, 2294, 2293, 1, 0, 0, 0, 2294, 2295, 1, 0, 0, 0, 2295, 239, 1, 0, 0, 0, 2296, 2299, 3, 246, 123, 0, 2297, 2299, 3, 248, 124, 0, 2298, 2296, 1, 0, 0, 0, 2298, 2297, 1, 0, 0, 0, 2299, 241, 1, 0, 0, 0, 2300, 2301, 5, 266, 0, 0, 2301, 2302, 5, 426, 0, 0, 2302, 243, 1, 0, 0, 0, 2303, 2304, 5, 267, 0, 0, 2304, 2305, 5, 426, 0, 0, 2305, 245, 1, 0, 0, 0, 2306, 2307, 5, 291, 0, 0, 2307, 2308, 5, 137, 0, 0, 2308, 2309, 5, 301, 0, 0, 2309, 2313, 5, 426, 0, 0, 2310, 2311, 5, 387, 0, 0, 2311, 2312, 5, 302, 0, 0, 2312, 2314, 3, 254, 127, 0, 2313, 2310, 1, 0, 0, 0, 2313, 2314, 1, 0, 0, 0, 2314, 247, 1, 0, 0, 0, 2315, 2316, 5, 291, 0, 0, 2316, 2317, 5, 137, 0, 0, 2317, 2319, 5, 87, 0, 0, 2318, 2320, 3, 262, 131, 0, 2319, 2318, 1, 0, 0, 0, 2319, 2320, 1, 0, 0, 0, 2320, 2322, 1, 0, 0, 0, 2321, 2323, 3, 264, 132, 0, 2322, 2321, 1, 0, 0, 0, 2322, 2323, 1, 0, 0, 0, 2323, 2325, 1, 0, 0, 0, 2324, 2326, 3, 266, 133, 0, 2325, 2324, 1, 0, 0, 0, 2325, 2326, 1, 0, 0, 0, 2326, 2328, 1, 0, 0, 0, 2327, 2329, 3, 268, 134, 0, 2328, 2327, 1, 0, 0, 0, 2328, 2329, 1, 0, 0, 0, 2329, 2331, 1, 0, 0, 0, 2330, 2332, 3, 270, 135, 0, 2331, 2330, 1, 0, 0, 0, 2331, 2332, 1, 0, 0, 0, 2332, 249, 1, 0, 0, 0, 2333, 2336, 3, 248, 124, 0, 2334, 2336, 3, 246, 123, 0, 2335, 2333, 1, 0, 0, 0, 2335, 2334, 1, 0, 0, 0, 2336, 251, 1, 0, 0, 0, 2337, 2338, 5, 332, 0, 0, 2338, 2339, 3, 254, 127, 0, 2339, 253, 1, 0, 0, 0, 2340, 2341, 5, 399, 0, 0, 2341, 2342, 3, 256, 128, 0, 2342, 2343, 5, 400, 0, 0, 2343, 255, 1, 0, 0, 0, 2344, 2349, 3, 258, 129, 0, 2345, 2346, 5, 397, 0, 0, 2346, 2348, 3, 258, 129, 0, 2347, 2345, 1, 0, 0, 0, 2348, 2351, 1, 0, 0, 0, 2349, 2347, 1, 0, 0, 0, 2349, 2350, 1, 0, 0, 0, 2350, 2361, 1, 0, 0, 0, 2351, 2349, 1, 0, 0, 0, 2352, 2357, 3, 260, 130, 0, 2353, 2354, 5, 397, 0, 0, 2354, 2356, 3, 260, 130, 0, 2355, 2353, 1, 0, 0, 0, 2356, 2359, 1, 0, 0, 0, 2357, 2355, 1, 0, 0, 0, 2357, 2358, 1, 0, 0, 0, 2358, 2361, 1, 0, 0, 0, 2359, 2357, 1, 0, 0, 0, 2360, 2344, 1, 0, 0, 0, 2360, 2352, 1, 0, 0, 0, 2361, 257, 1, 0, 0, 0, 2362, 2363, 5, 426, 0, 0, 2363, 2364, 5, 405, 0, 0, 2364, 2365, 5, 426, 0, 0, 2365, 259, 1, 0, 0, 0, 2366, 2367, 5, 426, 0, 0, 2367, 261, 1, 0, 0, 0, 2368, 2369, 5, 127, 0, 0, 2369, 2370, 5, 334, 0, 0, 2370, 2371, 5, 32, 0, 0, 2371, 2375, 5, 426, 0, 0, 2372, 2373, 5, 110, 0, 0, 2373, 2374, 5, 32, 0, 0, 2374, 2376, 5, 426, 0, 0, 2375, 2372, 1, 0, 0, 0, 2375, 2376, 1, 0, 0, 0, 2376, 263, 1, 0, 0, 0, 2377, 2378, 5, 44, 0, 0, 2378, 2379, 5, 169, 0, 0, 2379, 2380, 5, 334, 0, 0, 2380, 2381, 5, 32, 0, 0, 2381, 2382, 5, 426, 0, 0, 2382, 265, 1, 0, 0, 0, 2383, 2384, 5, 198, 0, 0, 2384, 2385, 5, 174, 0, 0, 2385, 2386, 5, 334, 0, 0, 2386, 2387, 5, 32, 0, 0, 2387, 2388, 5, 426, 0, 0, 2388, 267, 1, 0, 0, 0, 2389, 2390, 5, 186, 0, 0, 2390, 2391, 5, 334, 0, 0, 2391, 2392, 5, 32, 0, 0, 2392, 2393, 5, 426, 0, 0, 2393, 269, 1, 0, 0, 0, 2394, 2395, 5, 219, 0, 0, 2395, 2396, 5, 85, 0, 0, 2396, 2397, 5, 17, 0, 0, 2397, 2398, 5, 426, 0, 0, 2398, 271, 1, 0, 0, 0, 2399, 2400, 5, 321, 0, 0, 2400, 2401, 5, 17, 0, 0, 2401, 2402, 5, 160, 0, 0, 2402, 2403, 5, 426, 0, 0, 2403, 2404, 5, 233, 0, 0, 2404, 2409, 5, 426, 0, 0, 2405, 2406, 5, 159, 0, 0, 2406, 2407, 5, 426, 0, 0, 2407, 2408, 5, 232, 0, 0, 2408, 2410, 5, 426, 0, 0, 2409, 2405, 1, 0, 0, 0, 2409, 2410, 1, 0, 0, 0, 2410, 2441, 1, 0, 0, 0, 2411, 2412, 5, 321, 0, 0, 2412, 2413, 5, 32, 0, 0, 2413, 2417, 5, 426, 0, 0, 2414, 2415, 5, 387, 0, 0, 2415, 2416, 5, 302, 0, 0, 2416, 2418, 3, 254, 127, 0, 2417, 2414, 1, 0, 0, 0, 2417, 2418, 1, 0, 0, 0, 2418, 2422, 1, 0, 0, 0, 2419, 2420, 5, 321, 0, 0, 2420, 2421, 5, 17, 0, 0, 2421, 2423, 3, 926, 463, 0, 2422, 2419, 1, 0, 0, 0, 2422, 2423, 1, 0, 0, 0, 2423, 2441, 1, 0, 0, 0, 2424, 2425, 5, 321, 0, 0, 2425, 2426, 5, 32, 0, 0, 2426, 2430, 3, 926, 463, 0, 2427, 2428, 5, 387, 0, 0, 2428, 2429, 5, 302, 0, 0, 2429, 2431, 3, 254, 127, 0, 2430, 2427, 1, 0, 0, 0, 2430, 2431, 1, 0, 0, 0, 2431, 2435, 1, 0, 0, 0, 2432, 2433, 5, 321, 0, 0, 2433, 2434, 5, 17, 0, 0, 2434, 2436, 3, 926, 463, 0, 2435, 2432, 1, 0, 0, 0, 2435, 2436, 1, 0, 0, 0, 2436, 2441, 1, 0, 0, 0, 2437, 2438, 5, 321, 0, 0, 2438, 2439, 5, 17, 0, 0, 2439, 2441, 3, 926, 463, 0, 2440, 2399, 1, 0, 0, 0, 2440, 2411, 1, 0, 0, 0, 2440, 2424, 1, 0, 0, 0, 2440, 2437, 1, 0, 0, 0, 2441, 273, 1, 0, 0, 0, 2442, 2443, 5, 189, 0, 0, 2443, 2444, 5, 426, 0, 0, 2444, 275, 1, 0, 0, 0, 2445, 2450, 3, 344, 172, 0, 2446, 2447, 5, 397, 0, 0, 2447, 2449, 3, 344, 172, 0, 2448, 2446, 1, 0, 0, 0, 2449, 2452, 1, 0, 0, 0, 2450, 2448, 1, 0, 0, 0, 2450, 2451, 1, 0, 0, 0, 2451, 277, 1, 0, 0, 0, 2452, 2450, 1, 0, 0, 0, 2453, 2458, 3, 346, 173, 0, 2454, 2455, 5, 397, 0, 0, 2455, 2457, 3, 346, 173, 0, 2456, 2454, 1, 0, 0, 0, 2457, 2460, 1, 0, 0, 0, 2458, 2456, 1, 0, 0, 0, 2458, 2459, 1, 0, 0, 0, 2459, 279, 1, 0, 0, 0, 2460, 2458, 1, 0, 0, 0, 2461, 2466, 3, 374, 187, 0, 2462, 2463, 5, 397, 0, 0, 2463, 2465, 3, 374, 187, 0, 2464, 2462, 1, 0, 0, 0, 2465, 2468, 1, 0, 0, 0, 2466, 2464, 1, 0, 0, 0, 2466, 2467, 1, 0, 0, 0, 2467, 281, 1, 0, 0, 0, 2468, 2466, 1, 0, 0, 0, 2469, 2474, 3, 284, 142, 0, 2470, 2471, 5, 397, 0, 0, 2471, 2473, 3, 284, 142, 0, 2472, 2470, 1, 0, 0, 0, 2473, 2476, 1, 0, 0, 0, 2474, 2472, 1, 0, 0, 0, 2474, 2475, 1, 0, 0, 0, 2475, 283, 1, 0, 0, 0, 2476, 2474, 1, 0, 0, 0, 2477, 2482, 3, 926, 463, 0, 2478, 2479, 5, 395, 0, 0, 2479, 2481, 3, 926, 463, 0, 2480, 2478, 1, 0, 0, 0, 2481, 2484, 1, 0, 0, 0, 2482, 2480, 1, 0, 0, 0, 2482, 2483, 1, 0, 0, 0, 2483, 2487, 1, 0, 0, 0, 2484, 2482, 1, 0, 0, 0, 2485, 2487, 4, 142, 0, 0, 2486, 2477, 1, 0, 0, 0, 2486, 2485, 1, 0, 0, 0, 2487, 285, 1, 0, 0, 0, 2488, 2489, 3, 926, 463, 0, 2489, 287, 1, 0, 0, 0, 2490, 2500, 3, 284, 142, 0, 2491, 2496, 5, 395, 0, 0, 2492, 2497, 5, 104, 0, 0, 2493, 2497, 5, 175, 0, 0, 2494, 2497, 5, 375, 0, 0, 2495, 2497, 3, 926, 463, 0, 2496, 2492, 1, 0, 0, 0, 2496, 2493, 1, 0, 0, 0, 2496, 2494, 1, 0, 0, 0, 2496, 2495, 1, 0, 0, 0, 2497, 2499, 1, 0, 0, 0, 2498, 2491, 1, 0, 0, 0, 2499, 2502, 1, 0, 0, 0, 2500, 2498, 1, 0, 0, 0, 2500, 2501, 1, 0, 0, 0, 2501, 289, 1, 0, 0, 0, 2502, 2500, 1, 0, 0, 0, 2503, 2508, 3, 334, 167, 0, 2504, 2505, 5, 397, 0, 0, 2505, 2507, 3, 334, 167, 0, 2506, 2504, 1, 0, 0, 0, 2507, 2510, 1, 0, 0, 0, 2508, 2506, 1, 0, 0, 0, 2508, 2509, 1, 0, 0, 0, 2509, 291, 1, 0, 0, 0, 2510, 2508, 1, 0, 0, 0, 2511, 2512, 5, 399, 0, 0, 2512, 2513, 3, 282, 141, 0, 2513, 2514, 5, 400, 0, 0, 2514, 293, 1, 0, 0, 0, 2515, 2517, 3, 296, 148, 0, 2516, 2518, 3, 298, 149, 0, 2517, 2516, 1, 0, 0, 0, 2517, 2518, 1, 0, 0, 0, 2518, 2521, 1, 0, 0, 0, 2519, 2521, 3, 300, 150, 0, 2520, 2515, 1, 0, 0, 0, 2520, 2519, 1, 0, 0, 0, 2521, 295, 1, 0, 0, 0, 2522, 2525, 3, 970, 485, 0, 2523, 2525, 3, 972, 486, 0, 2524, 2522, 1, 0, 0, 0, 2524, 2523, 1, 0, 0, 0, 2525, 297, 1, 0, 0, 0, 2526, 2527, 7, 14, 0, 0, 2527, 299, 1, 0, 0, 0, 2528, 2532, 5, 109, 0, 0, 2529, 2530, 5, 216, 0, 0, 2530, 2532, 5, 109, 0, 0, 2531, 2528, 1, 0, 0, 0, 2531, 2529, 1, 0, 0, 0, 2532, 301, 1, 0, 0, 0, 2533, 2534, 7, 15, 0, 0, 2534, 303, 1, 0, 0, 0, 2535, 2536, 5, 55, 0, 0, 2536, 2538, 3, 926, 463, 0, 2537, 2535, 1, 0, 0, 0, 2537, 2538, 1, 0, 0, 0, 2538, 2539, 1, 0, 0, 0, 2539, 2541, 3, 308, 154, 0, 2540, 2542, 3, 370, 185, 0, 2541, 2540, 1, 0, 0, 0, 2541, 2542, 1, 0, 0, 0, 2542, 305, 1, 0, 0, 0, 2543, 2544, 5, 55, 0, 0, 2544, 2545, 3, 926, 463, 0, 2545, 2547, 3, 308, 154, 0, 2546, 2548, 3, 372, 186, 0, 2547, 2546, 1, 0, 0, 0, 2547, 2548, 1, 0, 0, 0, 2548, 307, 1, 0, 0, 0, 2549, 2552, 3, 310, 155, 0, 2550, 2552, 3, 312, 156, 0, 2551, 2549, 1, 0, 0, 0, 2551, 2550, 1, 0, 0, 0, 2552, 309, 1, 0, 0, 0, 2553, 2554, 3, 368, 184, 0, 2554, 2555, 3, 292, 146, 0, 2555, 311, 1, 0, 0, 0, 2556, 2557, 5, 40, 0, 0, 2557, 2558, 5, 399, 0, 0, 2558, 2559, 3, 828, 414, 0, 2559, 2560, 5, 400, 0, 0, 2560, 313, 1, 0, 0, 0, 2561, 2562, 5, 55, 0, 0, 2562, 2564, 3, 926, 463, 0, 2563, 2561, 1, 0, 0, 0, 2563, 2564, 1, 0, 0, 0, 2564, 2565, 1, 0, 0, 0, 2565, 2566, 5, 136, 0, 0, 2566, 2567, 5, 173, 0, 0, 2567, 2568, 3, 292, 146, 0, 2568, 2569, 5, 269, 0, 0, 2569, 2570, 3, 660, 330, 0, 2570, 2572, 3, 292, 146, 0, 2571, 2573, 3, 370, 185, 0, 2572, 2571, 1, 0, 0, 0, 2572, 2573, 1, 0, 0, 0, 2573, 315, 1, 0, 0, 0, 2574, 2575, 5, 55, 0, 0, 2575, 2576, 3, 926, 463, 0, 2576, 2577, 5, 136, 0, 0, 2577, 2578, 5, 173, 0, 0, 2578, 2579, 3, 292, 146, 0, 2579, 2580, 5, 269, 0, 0, 2580, 2581, 3, 660, 330, 0, 2581, 2583, 3, 292, 146, 0, 2582, 2584, 3, 372, 186, 0, 2583, 2582, 1, 0, 0, 0, 2583, 2584, 1, 0, 0, 0, 2584, 317, 1, 0, 0, 0, 2585, 2588, 3, 324, 162, 0, 2586, 2588, 3, 320, 160, 0, 2587, 2585, 1, 0, 0, 0, 2587, 2586, 1, 0, 0, 0, 2588, 319, 1, 0, 0, 0, 2589, 2594, 3, 322, 161, 0, 2590, 2591, 5, 397, 0, 0, 2591, 2593, 3, 322, 161, 0, 2592, 2590, 1, 0, 0, 0, 2593, 2596, 1, 0, 0, 0, 2594, 2592, 1, 0, 0, 0, 2594, 2595, 1, 0, 0, 0, 2595, 321, 1, 0, 0, 0, 2596, 2594, 1, 0, 0, 0, 2597, 2598, 5, 399, 0, 0, 2598, 2599, 3, 324, 162, 0, 2599, 2600, 5, 400, 0, 0, 2600, 323, 1, 0, 0, 0, 2601, 2606, 3, 326, 163, 0, 2602, 2603, 5, 397, 0, 0, 2603, 2605, 3, 326, 163, 0, 2604, 2602, 1, 0, 0, 0, 2605, 2608, 1, 0, 0, 0, 2606, 2604, 1, 0, 0, 0, 2606, 2607, 1, 0, 0, 0, 2607, 325, 1, 0, 0, 0, 2608, 2606, 1, 0, 0, 0, 2609, 2610, 3, 804, 402, 0, 2610, 327, 1, 0, 0, 0, 2611, 2614, 3, 326, 163, 0, 2612, 2614, 3, 322, 161, 0, 2613, 2611, 1, 0, 0, 0, 2613, 2612, 1, 0, 0, 0, 2614, 329, 1, 0, 0, 0, 2615, 2616, 7, 16, 0, 0, 2616, 331, 1, 0, 0, 0, 2617, 2618, 5, 220, 0, 0, 2618, 2619, 7, 17, 0, 0, 2619, 333, 1, 0, 0, 0, 2620, 2622, 3, 284, 142, 0, 2621, 2623, 3, 330, 165, 0, 2622, 2621, 1, 0, 0, 0, 2622, 2623, 1, 0, 0, 0, 2623, 2625, 1, 0, 0, 0, 2624, 2626, 3, 332, 166, 0, 2625, 2624, 1, 0, 0, 0, 2625, 2626, 1, 0, 0, 0, 2626, 335, 1, 0, 0, 0, 2627, 2632, 3, 338, 169, 0, 2628, 2629, 5, 397, 0, 0, 2629, 2631, 3, 338, 169, 0, 2630, 2628, 1, 0, 0, 0, 2631, 2634, 1, 0, 0, 0, 2632, 2630, 1, 0, 0, 0, 2632, 2633, 1, 0, 0, 0, 2633, 337, 1, 0, 0, 0, 2634, 2632, 1, 0, 0, 0, 2635, 2638, 3, 286, 143, 0, 2636, 2637, 5, 47, 0, 0, 2637, 2639, 5, 426, 0, 0, 2638, 2636, 1, 0, 0, 0, 2638, 2639, 1, 0, 0, 0, 2639, 339, 1, 0, 0, 0, 2640, 2641, 7, 16, 0, 0, 2641, 341, 1, 0, 0, 0, 2642, 2645, 3, 284, 142, 0, 2643, 2645, 3, 828, 414, 0, 2644, 2642, 1, 0, 0, 0, 2644, 2643, 1, 0, 0, 0, 2645, 2647, 1, 0, 0, 0, 2646, 2648, 3, 340, 170, 0, 2647, 2646, 1, 0, 0, 0, 2647, 2648, 1, 0, 0, 0, 2648, 2650, 1, 0, 0, 0, 2649, 2651, 3, 332, 166, 0, 2650, 2649, 1, 0, 0, 0, 2650, 2651, 1, 0, 0, 0, 2651, 343, 1, 0, 0, 0, 2652, 2653, 3, 286, 143, 0, 2653, 2656, 3, 376, 188, 0, 2654, 2655, 5, 47, 0, 0, 2655, 2657, 5, 426, 0, 0, 2656, 2654, 1, 0, 0, 0, 2656, 2657, 1, 0, 0, 0, 2657, 345, 1, 0, 0, 0, 2658, 2661, 3, 348, 174, 0, 2659, 2661, 3, 350, 175, 0, 2660, 2658, 1, 0, 0, 0, 2660, 2659, 1, 0, 0, 0, 2661, 347, 1, 0, 0, 0, 2662, 2665, 3, 314, 157, 0, 2663, 2665, 3, 304, 152, 0, 2664, 2662, 1, 0, 0, 0, 2664, 2663, 1, 0, 0, 0, 2665, 349, 1, 0, 0, 0, 2666, 2667, 3, 286, 143, 0, 2667, 2669, 3, 376, 188, 0, 2668, 2670, 3, 352, 176, 0, 2669, 2668, 1, 0, 0, 0, 2669, 2670, 1, 0, 0, 0, 2670, 2673, 1, 0, 0, 0, 2671, 2672, 5, 47, 0, 0, 2672, 2674, 5, 426, 0, 0, 2673, 2671, 1, 0, 0, 0, 2673, 2674, 1, 0, 0, 0, 2674, 351, 1, 0, 0, 0, 2675, 2678, 3, 354, 177, 0, 2676, 2678, 3, 356, 178, 0, 2677, 2675, 1, 0, 0, 0, 2677, 2676, 1, 0, 0, 0, 2678, 353, 1, 0, 0, 0, 2679, 2680, 5, 55, 0, 0, 2680, 2682, 3, 926, 463, 0, 2681, 2679, 1, 0, 0, 0, 2681, 2682, 1, 0, 0, 0, 2682, 2683, 1, 0, 0, 0, 2683, 2684, 5, 269, 0, 0, 2684, 2685, 3, 660, 330, 0, 2685, 2686, 5, 399, 0, 0, 2686, 2687, 3, 284, 142, 0, 2687, 2689, 5, 400, 0, 0, 2688, 2690, 3, 370, 185, 0, 2689, 2688, 1, 0, 0, 0, 2689, 2690, 1, 0, 0, 0, 2690, 355, 1, 0, 0, 0, 2691, 2692, 5, 55, 0, 0, 2692, 2694, 3, 926, 463, 0, 2693, 2691, 1, 0, 0, 0, 2693, 2694, 1, 0, 0, 0, 2694, 2695, 1, 0, 0, 0, 2695, 2697, 3, 364, 182, 0, 2696, 2698, 3, 370, 185, 0, 2697, 2696, 1, 0, 0, 0, 2697, 2698, 1, 0, 0, 0, 2698, 357, 1, 0, 0, 0, 2699, 2702, 3, 360, 180, 0, 2700, 2702, 3, 362, 181, 0, 2701, 2699, 1, 0, 0, 0, 2701, 2700, 1, 0, 0, 0, 2702, 359, 1, 0, 0, 0, 2703, 2704, 5, 55, 0, 0, 2704, 2706, 3, 926, 463, 0, 2705, 2703, 1, 0, 0, 0, 2705, 2706, 1, 0, 0, 0, 2706, 2707, 1, 0, 0, 0, 2707, 2708, 5, 269, 0, 0, 2708, 2709, 3, 660, 330, 0, 2709, 2710, 5, 399, 0, 0, 2710, 2711, 3, 284, 142, 0, 2711, 2713, 5, 400, 0, 0, 2712, 2714, 3, 372, 186, 0, 2713, 2712, 1, 0, 0, 0, 2713, 2714, 1, 0, 0, 0, 2714, 361, 1, 0, 0, 0, 2715, 2716, 5, 55, 0, 0, 2716, 2718, 3, 926, 463, 0, 2717, 2715, 1, 0, 0, 0, 2717, 2718, 1, 0, 0, 0, 2718, 2719, 1, 0, 0, 0, 2719, 2721, 3, 364, 182, 0, 2720, 2722, 3, 372, 186, 0, 2721, 2720, 1, 0, 0, 0, 2721, 2722, 1, 0, 0, 0, 2722, 363, 1, 0, 0, 0, 2723, 2724, 5, 216, 0, 0, 2724, 2730, 5, 219, 0, 0, 2725, 2726, 5, 83, 0, 0, 2726, 2730, 3, 366, 183, 0, 2727, 2730, 3, 312, 156, 0, 2728, 2730, 3, 368, 184, 0, 2729, 2723, 1, 0, 0, 0, 2729, 2725, 1, 0, 0, 0, 2729, 2727, 1, 0, 0, 0, 2729, 2728, 1, 0, 0, 0, 2730, 365, 1, 0, 0, 0, 2731, 2735, 3, 804, 402, 0, 2732, 2735, 3, 776, 388, 0, 2733, 2735, 3, 790, 395, 0, 2734, 2731, 1, 0, 0, 0, 2734, 2732, 1, 0, 0, 0, 2734, 2733, 1, 0, 0, 0, 2735, 367, 1, 0, 0, 0, 2736, 2737, 5, 251, 0, 0, 2737, 2740, 5, 173, 0, 0, 2738, 2740, 5, 358, 0, 0, 2739, 2736, 1, 0, 0, 0, 2739, 2738, 1, 0, 0, 0, 2740, 369, 1, 0, 0, 0, 2741, 2743, 3, 294, 147, 0, 2742, 2744, 3, 302, 151, 0, 2743, 2742, 1, 0, 0, 0, 2743, 2744, 1, 0, 0, 0, 2744, 371, 1, 0, 0, 0, 2745, 2747, 3, 294, 147, 0, 2746, 2748, 3, 302, 151, 0, 2747, 2746, 1, 0, 0, 0, 2747, 2748, 1, 0, 0, 0, 2748, 373, 1, 0, 0, 0, 2749, 2750, 3, 286, 143, 0, 2750, 2751, 5, 396, 0, 0, 2751, 2754, 3, 376, 188, 0, 2752, 2753, 5, 47, 0, 0, 2753, 2755, 5, 426, 0, 0, 2754, 2752, 1, 0, 0, 0, 2754, 2755, 1, 0, 0, 0, 2755, 375, 1, 0, 0, 0, 2756, 2757, 3, 380, 190, 0, 2757, 377, 1, 0, 0, 0, 2758, 2763, 3, 376, 188, 0, 2759, 2760, 5, 397, 0, 0, 2760, 2762, 3, 376, 188, 0, 2761, 2759, 1, 0, 0, 0, 2762, 2765, 1, 0, 0, 0, 2763, 2761, 1, 0, 0, 0, 2763, 2764, 1, 0, 0, 0, 2764, 379, 1, 0, 0, 0, 2765, 2763, 1, 0, 0, 0, 2766, 2772, 3, 382, 191, 0, 2767, 2772, 3, 384, 192, 0, 2768, 2772, 3, 386, 193, 0, 2769, 2772, 3, 388, 194, 0, 2770, 2772, 3, 390, 195, 0, 2771, 2766, 1, 0, 0, 0, 2771, 2767, 1, 0, 0, 0, 2771, 2768, 1, 0, 0, 0, 2771, 2769, 1, 0, 0, 0, 2771, 2770, 1, 0, 0, 0, 2772, 381, 1, 0, 0, 0, 2773, 2811, 5, 340, 0, 0, 2774, 2811, 5, 311, 0, 0, 2775, 2811, 5, 162, 0, 0, 2776, 2811, 5, 163, 0, 0, 2777, 2811, 5, 26, 0, 0, 2778, 2811, 5, 28, 0, 0, 2779, 2811, 5, 131, 0, 0, 2780, 2811, 5, 264, 0, 0, 2781, 2783, 5, 100, 0, 0, 2782, 2784, 5, 248, 0, 0, 2783, 2782, 1, 0, 0, 0, 2783, 2784, 1, 0, 0, 0, 2784, 2811, 1, 0, 0, 0, 2785, 2811, 5, 71, 0, 0, 2786, 2811, 5, 72, 0, 0, 2787, 2811, 5, 337, 0, 0, 2788, 2811, 5, 338, 0, 0, 2789, 2790, 5, 337, 0, 0, 2790, 2791, 5, 387, 0, 0, 2791, 2792, 5, 188, 0, 0, 2792, 2793, 5, 336, 0, 0, 2793, 2811, 5, 394, 0, 0, 2794, 2811, 5, 323, 0, 0, 2795, 2811, 5, 27, 0, 0, 2796, 2804, 3, 990, 495, 0, 2797, 2798, 5, 399, 0, 0, 2798, 2801, 5, 431, 0, 0, 2799, 2800, 5, 397, 0, 0, 2800, 2802, 5, 431, 0, 0, 2801, 2799, 1, 0, 0, 0, 2801, 2802, 1, 0, 0, 0, 2802, 2803, 1, 0, 0, 0, 2803, 2805, 5, 400, 0, 0, 2804, 2797, 1, 0, 0, 0, 2804, 2805, 1, 0, 0, 0, 2805, 2811, 1, 0, 0, 0, 2806, 2807, 7, 18, 0, 0, 2807, 2808, 5, 399, 0, 0, 2808, 2809, 5, 431, 0, 0, 2809, 2811, 5, 400, 0, 0, 2810, 2773, 1, 0, 0, 0, 2810, 2774, 1, 0, 0, 0, 2810, 2775, 1, 0, 0, 0, 2810, 2776, 1, 0, 0, 0, 2810, 2777, 1, 0, 0, 0, 2810, 2778, 1, 0, 0, 0, 2810, 2779, 1, 0, 0, 0, 2810, 2780, 1, 0, 0, 0, 2810, 2781, 1, 0, 0, 0, 2810, 2785, 1, 0, 0, 0, 2810, 2786, 1, 0, 0, 0, 2810, 2787, 1, 0, 0, 0, 2810, 2788, 1, 0, 0, 0, 2810, 2789, 1, 0, 0, 0, 2810, 2794, 1, 0, 0, 0, 2810, 2795, 1, 0, 0, 0, 2810, 2796, 1, 0, 0, 0, 2810, 2806, 1, 0, 0, 0, 2811, 383, 1, 0, 0, 0, 2812, 2813, 5, 16, 0, 0, 2813, 2814, 5, 409, 0, 0, 2814, 2815, 3, 380, 190, 0, 2815, 2816, 5, 411, 0, 0, 2816, 385, 1, 0, 0, 0, 2817, 2818, 5, 324, 0, 0, 2818, 2819, 5, 409, 0, 0, 2819, 2820, 3, 280, 140, 0, 2820, 2821, 5, 411, 0, 0, 2821, 387, 1, 0, 0, 0, 2822, 2823, 5, 198, 0, 0, 2823, 2824, 5, 409, 0, 0, 2824, 2825, 3, 382, 191, 0, 2825, 2826, 5, 397, 0, 0, 2826, 2827, 3, 380, 190, 0, 2827, 2828, 5, 411, 0, 0, 2828, 389, 1, 0, 0, 0, 2829, 2830, 5, 357, 0, 0, 2830, 2831, 5, 409, 0, 0, 2831, 2832, 3, 378, 189, 0, 2832, 2833, 5, 411, 0, 0, 2833, 391, 1, 0, 0, 0, 2834, 2836, 7, 19, 0, 0, 2835, 2837, 7, 20, 0, 0, 2836, 2835, 1, 0, 0, 0, 2836, 2837, 1, 0, 0, 0, 2837, 393, 1, 0, 0, 0, 2838, 2840, 3, 398, 199, 0, 2839, 2838, 1, 0, 0, 0, 2839, 2840, 1, 0, 0, 0, 2840, 2841, 1, 0, 0, 0, 2841, 2842, 3, 396, 198, 0, 2842, 395, 1, 0, 0, 0, 2843, 2846, 3, 402, 201, 0, 2844, 2846, 3, 406, 203, 0, 2845, 2843, 1, 0, 0, 0, 2845, 2844, 1, 0, 0, 0, 2846, 397, 1, 0, 0, 0, 2847, 2848, 5, 387, 0, 0, 2848, 2853, 3, 400, 200, 0, 2849, 2850, 5, 397, 0, 0, 2850, 2852, 3, 400, 200, 0, 2851, 2849, 1, 0, 0, 0, 2852, 2855, 1, 0, 0, 0, 2853, 2851, 1, 0, 0, 0, 2853, 2854, 1, 0, 0, 0, 2854, 399, 1, 0, 0, 0, 2855, 2853, 1, 0, 0, 0, 2856, 2861, 3, 926, 463, 0, 2857, 2858, 5, 399, 0, 0, 2858, 2859, 3, 282, 141, 0, 2859, 2860, 5, 400, 0, 0, 2860, 2862, 1, 0, 0, 0, 2861, 2857, 1, 0, 0, 0, 2861, 2862, 1, 0, 0, 0, 2862, 2863, 1, 0, 0, 0, 2863, 2864, 5, 17, 0, 0, 2864, 2865, 5, 399, 0, 0, 2865, 2866, 3, 394, 197, 0, 2866, 2867, 5, 400, 0, 0, 2867, 401, 1, 0, 0, 0, 2868, 2874, 3, 404, 202, 0, 2869, 2870, 3, 392, 196, 0, 2870, 2871, 3, 404, 202, 0, 2871, 2873, 1, 0, 0, 0, 2872, 2869, 1, 0, 0, 0, 2873, 2876, 1, 0, 0, 0, 2874, 2872, 1, 0, 0, 0, 2874, 2875, 1, 0, 0, 0, 2875, 403, 1, 0, 0, 0, 2876, 2874, 1, 0, 0, 0, 2877, 2878, 3, 620, 310, 0, 2878, 2879, 3, 416, 208, 0, 2879, 2881, 3, 692, 346, 0, 2880, 2882, 3, 638, 319, 0, 2881, 2880, 1, 0, 0, 0, 2881, 2882, 1, 0, 0, 0, 2882, 2884, 1, 0, 0, 0, 2883, 2885, 3, 676, 338, 0, 2884, 2883, 1, 0, 0, 0, 2884, 2885, 1, 0, 0, 0, 2885, 2887, 1, 0, 0, 0, 2886, 2888, 3, 724, 362, 0, 2887, 2886, 1, 0, 0, 0, 2887, 2888, 1, 0, 0, 0, 2888, 2890, 1, 0, 0, 0, 2889, 2891, 3, 740, 370, 0, 2890, 2889, 1, 0, 0, 0, 2890, 2891, 1, 0, 0, 0, 2891, 2893, 1, 0, 0, 0, 2892, 2894, 3, 708, 354, 0, 2893, 2892, 1, 0, 0, 0, 2893, 2894, 1, 0, 0, 0, 2894, 2896, 1, 0, 0, 0, 2895, 2897, 3, 742, 371, 0, 2896, 2895, 1, 0, 0, 0, 2896, 2897, 1, 0, 0, 0, 2897, 2899, 1, 0, 0, 0, 2898, 2900, 3, 764, 382, 0, 2899, 2898, 1, 0, 0, 0, 2899, 2900, 1, 0, 0, 0, 2900, 2902, 1, 0, 0, 0, 2901, 2903, 3, 766, 383, 0, 2902, 2901, 1, 0, 0, 0, 2902, 2903, 1, 0, 0, 0, 2903, 2905, 1, 0, 0, 0, 2904, 2906, 3, 770, 385, 0, 2905, 2904, 1, 0, 0, 0, 2905, 2906, 1, 0, 0, 0, 2906, 2908, 1, 0, 0, 0, 2907, 2909, 3, 772, 386, 0, 2908, 2907, 1, 0, 0, 0, 2908, 2909, 1, 0, 0, 0, 2909, 2911, 1, 0, 0, 0, 2910, 2912, 3, 420, 210, 0, 2911, 2910, 1, 0, 0, 0, 2911, 2912, 1, 0, 0, 0, 2912, 2949, 1, 0, 0, 0, 2913, 2914, 3, 620, 310, 0, 2914, 2916, 3, 692, 346, 0, 2915, 2917, 3, 638, 319, 0, 2916, 2915, 1, 0, 0, 0, 2916, 2917, 1, 0, 0, 0, 2917, 2919, 1, 0, 0, 0, 2918, 2920, 3, 676, 338, 0, 2919, 2918, 1, 0, 0, 0, 2919, 2920, 1, 0, 0, 0, 2920, 2922, 1, 0, 0, 0, 2921, 2923, 3, 724, 362, 0, 2922, 2921, 1, 0, 0, 0, 2922, 2923, 1, 0, 0, 0, 2923, 2925, 1, 0, 0, 0, 2924, 2926, 3, 740, 370, 0, 2925, 2924, 1, 0, 0, 0, 2925, 2926, 1, 0, 0, 0, 2926, 2928, 1, 0, 0, 0, 2927, 2929, 3, 708, 354, 0, 2928, 2927, 1, 0, 0, 0, 2928, 2929, 1, 0, 0, 0, 2929, 2931, 1, 0, 0, 0, 2930, 2932, 3, 742, 371, 0, 2931, 2930, 1, 0, 0, 0, 2931, 2932, 1, 0, 0, 0, 2932, 2934, 1, 0, 0, 0, 2933, 2935, 3, 764, 382, 0, 2934, 2933, 1, 0, 0, 0, 2934, 2935, 1, 0, 0, 0, 2935, 2937, 1, 0, 0, 0, 2936, 2938, 3, 766, 383, 0, 2937, 2936, 1, 0, 0, 0, 2937, 2938, 1, 0, 0, 0, 2938, 2940, 1, 0, 0, 0, 2939, 2941, 3, 770, 385, 0, 2940, 2939, 1, 0, 0, 0, 2940, 2941, 1, 0, 0, 0, 2941, 2943, 1, 0, 0, 0, 2942, 2944, 3, 772, 386, 0, 2943, 2942, 1, 0, 0, 0, 2943, 2944, 1, 0, 0, 0, 2944, 2946, 1, 0, 0, 0, 2945, 2947, 3, 420, 210, 0, 2946, 2945, 1, 0, 0, 0, 2946, 2947, 1, 0, 0, 0, 2947, 2949, 1, 0, 0, 0, 2948, 2877, 1, 0, 0, 0, 2948, 2913, 1, 0, 0, 0, 2949, 405, 1, 0, 0, 0, 2950, 2951, 3, 416, 208, 0, 2951, 2952, 3, 410, 205, 0, 2952, 2955, 1, 0, 0, 0, 2953, 2955, 3, 410, 205, 0, 2954, 2950, 1, 0, 0, 0, 2954, 2953, 1, 0, 0, 0, 2955, 407, 1, 0, 0, 0, 2956, 2958, 3, 692, 346, 0, 2957, 2959, 3, 620, 310, 0, 2958, 2957, 1, 0, 0, 0, 2958, 2959, 1, 0, 0, 0, 2959, 2961, 1, 0, 0, 0, 2960, 2962, 3, 676, 338, 0, 2961, 2960, 1, 0, 0, 0, 2961, 2962, 1, 0, 0, 0, 2962, 2964, 1, 0, 0, 0, 2963, 2965, 3, 724, 362, 0, 2964, 2963, 1, 0, 0, 0, 2964, 2965, 1, 0, 0, 0, 2965, 2967, 1, 0, 0, 0, 2966, 2968, 3, 740, 370, 0, 2967, 2966, 1, 0, 0, 0, 2967, 2968, 1, 0, 0, 0, 2968, 2970, 1, 0, 0, 0, 2969, 2971, 3, 708, 354, 0, 2970, 2969, 1, 0, 0, 0, 2970, 2971, 1, 0, 0, 0, 2971, 2973, 1, 0, 0, 0, 2972, 2974, 3, 742, 371, 0, 2973, 2972, 1, 0, 0, 0, 2973, 2974, 1, 0, 0, 0, 2974, 2981, 1, 0, 0, 0, 2975, 2976, 5, 399, 0, 0, 2976, 2977, 3, 410, 205, 0, 2977, 2978, 5, 400, 0, 0, 2978, 2981, 1, 0, 0, 0, 2979, 2981, 3, 680, 340, 0, 2980, 2956, 1, 0, 0, 0, 2980, 2975, 1, 0, 0, 0, 2980, 2979, 1, 0, 0, 0, 2981, 409, 1, 0, 0, 0, 2982, 2984, 3, 408, 204, 0, 2983, 2985, 3, 412, 206, 0, 2984, 2983, 1, 0, 0, 0, 2984, 2985, 1, 0, 0, 0, 2985, 2987, 1, 0, 0, 0, 2986, 2988, 3, 764, 382, 0, 2987, 2986, 1, 0, 0, 0, 2987, 2988, 1, 0, 0, 0, 2988, 2990, 1, 0, 0, 0, 2989, 2991, 3, 766, 383, 0, 2990, 2989, 1, 0, 0, 0, 2990, 2991, 1, 0, 0, 0, 2991, 2993, 1, 0, 0, 0, 2992, 2994, 3, 770, 385, 0, 2993, 2992, 1, 0, 0, 0, 2993, 2994, 1, 0, 0, 0, 2994, 2996, 1, 0, 0, 0, 2995, 2997, 3, 772, 386, 0, 2996, 2995, 1, 0, 0, 0, 2996, 2997, 1, 0, 0, 0, 2997, 2999, 1, 0, 0, 0, 2998, 3000, 3, 420, 210, 0, 2999, 2998, 1, 0, 0, 0, 2999, 3000, 1, 0, 0, 0, 3000, 411, 1, 0, 0, 0, 3001, 3002, 3, 392, 196, 0, 3002, 3003, 3, 408, 204, 0, 3003, 3005, 1, 0, 0, 0, 3004, 3001, 1, 0, 0, 0, 3005, 3006, 1, 0, 0, 0, 3006, 3004, 1, 0, 0, 0, 3006, 3007, 1, 0, 0, 0, 3007, 413, 1, 0, 0, 0, 3008, 3010, 3, 398, 199, 0, 3009, 3008, 1, 0, 0, 0, 3009, 3010, 1, 0, 0, 0, 3010, 3011, 1, 0, 0, 0, 3011, 3012, 3, 410, 205, 0, 3012, 415, 1, 0, 0, 0, 3013, 3030, 5, 161, 0, 0, 3014, 3015, 5, 235, 0, 0, 3015, 3017, 3, 418, 209, 0, 3016, 3018, 3, 44, 22, 0, 3017, 3016, 1, 0, 0, 0, 3017, 3018, 1, 0, 0, 0, 3018, 3031, 1, 0, 0, 0, 3019, 3021, 5, 166, 0, 0, 3020, 3022, 5, 329, 0, 0, 3021, 3020, 1, 0, 0, 0, 3021, 3022, 1, 0, 0, 0, 3022, 3023, 1, 0, 0, 0, 3023, 3028, 3, 910, 455, 0, 3024, 3025, 5, 399, 0, 0, 3025, 3026, 3, 282, 141, 0, 3026, 3027, 5, 400, 0, 0, 3027, 3029, 1, 0, 0, 0, 3028, 3024, 1, 0, 0, 0, 3028, 3029, 1, 0, 0, 0, 3029, 3031, 1, 0, 0, 0, 3030, 3014, 1, 0, 0, 0, 3030, 3019, 1, 0, 0, 0, 3031, 417, 1, 0, 0, 0, 3032, 3034, 5, 188, 0, 0, 3033, 3032, 1, 0, 0, 0, 3033, 3034, 1, 0, 0, 0, 3034, 3035, 1, 0, 0, 0, 3035, 3036, 5, 93, 0, 0, 3036, 3038, 5, 426, 0, 0, 3037, 3039, 3, 250, 125, 0, 3038, 3037, 1, 0, 0, 0, 3038, 3039, 1, 0, 0, 0, 3039, 3041, 1, 0, 0, 0, 3040, 3042, 3, 272, 136, 0, 3041, 3040, 1, 0, 0, 0, 3041, 3042, 1, 0, 0, 0, 3042, 3046, 1, 0, 0, 0, 3043, 3044, 5, 329, 0, 0, 3044, 3046, 3, 910, 455, 0, 3045, 3033, 1, 0, 0, 0, 3045, 3043, 1, 0, 0, 0, 3046, 419, 1, 0, 0, 0, 3047, 3056, 5, 185, 0, 0, 3048, 3049, 5, 431, 0, 0, 3049, 3051, 5, 397, 0, 0, 3050, 3048, 1, 0, 0, 0, 3050, 3051, 1, 0, 0, 0, 3051, 3052, 1, 0, 0, 0, 3052, 3057, 5, 431, 0, 0, 3053, 3054, 5, 431, 0, 0, 3054, 3055, 5, 223, 0, 0, 3055, 3057, 5, 431, 0, 0, 3056, 3050, 1, 0, 0, 0, 3056, 3053, 1, 0, 0, 0, 3057, 421, 1, 0, 0, 0, 3058, 3059, 5, 86, 0, 0, 3059, 3060, 5, 139, 0, 0, 3060, 3062, 3, 660, 330, 0, 3061, 3063, 3, 676, 338, 0, 3062, 3061, 1, 0, 0, 0, 3062, 3063, 1, 0, 0, 0, 3063, 423, 1, 0, 0, 0, 3064, 3065, 3, 284, 142, 0, 3065, 3066, 5, 405, 0, 0, 3066, 3067, 3, 426, 213, 0, 3067, 425, 1, 0, 0, 0, 3068, 3071, 3, 614, 307, 0, 3069, 3071, 3, 848, 424, 0, 3070, 3068, 1, 0, 0, 0, 3070, 3069, 1, 0, 0, 0, 3071, 427, 1, 0, 0, 0, 3072, 3073, 5, 304, 0, 0, 3073, 3078, 3, 424, 212, 0, 3074, 3075, 5, 397, 0, 0, 3075, 3077, 3, 424, 212, 0, 3076, 3074, 1, 0, 0, 0, 3077, 3080, 1, 0, 0, 0, 3078, 3076, 1, 0, 0, 0, 3078, 3079, 1, 0, 0, 0, 3079, 429, 1, 0, 0, 0, 3080, 3078, 1, 0, 0, 0, 3081, 3082, 5, 365, 0, 0, 3082, 3083, 3, 660, 330, 0, 3083, 3085, 3, 428, 214, 0, 3084, 3086, 3, 676, 338, 0, 3085, 3084, 1, 0, 0, 0, 3085, 3086, 1, 0, 0, 0, 3086, 431, 1, 0, 0, 0, 3087, 3092, 3, 434, 217, 0, 3088, 3092, 3, 444, 222, 0, 3089, 3092, 3, 446, 223, 0, 3090, 3092, 3, 448, 224, 0, 3091, 3087, 1, 0, 0, 0, 3091, 3088, 1, 0, 0, 0, 3091, 3089, 1, 0, 0, 0, 3091, 3090, 1, 0, 0, 0, 3092, 433, 1, 0, 0, 0, 3093, 3094, 5, 318, 0, 0, 3094, 3103, 5, 344, 0, 0, 3095, 3100, 3, 436, 218, 0, 3096, 3097, 5, 397, 0, 0, 3097, 3099, 3, 436, 218, 0, 3098, 3096, 1, 0, 0, 0, 3099, 3102, 1, 0, 0, 0, 3100, 3098, 1, 0, 0, 0, 3100, 3101, 1, 0, 0, 0, 3101, 3104, 1, 0, 0, 0, 3102, 3100, 1, 0, 0, 0, 3103, 3095, 1, 0, 0, 0, 3103, 3104, 1, 0, 0, 0, 3104, 435, 1, 0, 0, 0, 3105, 3108, 3, 440, 220, 0, 3106, 3108, 3, 438, 219, 0, 3107, 3105, 1, 0, 0, 0, 3107, 3106, 1, 0, 0, 0, 3108, 437, 1, 0, 0, 0, 3109, 3110, 5, 261, 0, 0, 3110, 3111, 7, 21, 0, 0, 3111, 439, 1, 0, 0, 0, 3112, 3113, 5, 168, 0, 0, 3113, 3114, 5, 182, 0, 0, 3114, 3115, 3, 442, 221, 0, 3115, 441, 1, 0, 0, 0, 3116, 3117, 5, 312, 0, 0, 3117, 443, 1, 0, 0, 0, 3118, 3120, 5, 48, 0, 0, 3119, 3121, 5, 389, 0, 0, 3120, 3119, 1, 0, 0, 0, 3120, 3121, 1, 0, 0, 0, 3121, 445, 1, 0, 0, 0, 3122, 3124, 5, 289, 0, 0, 3123, 3125, 5, 389, 0, 0, 3124, 3123, 1, 0, 0, 0, 3124, 3125, 1, 0, 0, 0, 3125, 447, 1, 0, 0, 0, 3126, 3127, 5, 304, 0, 0, 3127, 3128, 5, 22, 0, 0, 3128, 3129, 3, 908, 454, 0, 3129, 449, 1, 0, 0, 0, 3130, 3131, 5, 1, 0, 0, 3131, 3133, 5, 346, 0, 0, 3132, 3134, 5, 431, 0, 0, 3133, 3132, 1, 0, 0, 0, 3134, 3135, 1, 0, 0, 0, 3135, 3133, 1, 0, 0, 0, 3135, 3136, 1, 0, 0, 0, 3136, 451, 1, 0, 0, 0, 3137, 3138, 5, 1, 0, 0, 3138, 3140, 5, 50, 0, 0, 3139, 3141, 5, 431, 0, 0, 3140, 3139, 1, 0, 0, 0, 3141, 3142, 1, 0, 0, 0, 3142, 3140, 1, 0, 0, 0, 3142, 3143, 1, 0, 0, 0, 3143, 453, 1, 0, 0, 0, 3144, 3146, 5, 203, 0, 0, 3145, 3147, 5, 436, 0, 0, 3146, 3145, 1, 0, 0, 0, 3146, 3147, 1, 0, 0, 0, 3147, 3148, 1, 0, 0, 0, 3148, 3149, 5, 166, 0, 0, 3149, 3154, 3, 660, 330, 0, 3150, 3152, 5, 17, 0, 0, 3151, 3150, 1, 0, 0, 0, 3151, 3152, 1, 0, 0, 0, 3152, 3153, 1, 0, 0, 0, 3153, 3155, 3, 926, 463, 0, 3154, 3151, 1, 0, 0, 0, 3154, 3155, 1, 0, 0, 0, 3155, 3156, 1, 0, 0, 0, 3156, 3157, 5, 370, 0, 0, 3157, 3158, 3, 628, 314, 0, 3158, 3159, 5, 224, 0, 0, 3159, 3160, 3, 828, 414, 0, 3160, 3161, 3, 456, 228, 0, 3161, 455, 1, 0, 0, 0, 3162, 3165, 3, 460, 230, 0, 3163, 3165, 3, 462, 231, 0, 3164, 3162, 1, 0, 0, 0, 3164, 3163, 1, 0, 0, 0, 3165, 3168, 1, 0, 0, 0, 3166, 3164, 1, 0, 0, 0, 3166, 3167, 1, 0, 0, 0, 3167, 3170, 1, 0, 0, 0, 3168, 3166, 1, 0, 0, 0, 3169, 3171, 3, 458, 229, 0, 3170, 3169, 1, 0, 0, 0, 3170, 3171, 1, 0, 0, 0, 3171, 457, 1, 0, 0, 0, 3172, 3173, 5, 383, 0, 0, 3173, 3174, 5, 216, 0, 0, 3174, 3177, 5, 201, 0, 0, 3175, 3176, 5, 11, 0, 0, 3176, 3178, 3, 828, 414, 0, 3177, 3175, 1, 0, 0, 0, 3177, 3178, 1, 0, 0, 0, 3178, 3179, 1, 0, 0, 0, 3179, 3180, 5, 335, 0, 0, 3180, 3182, 5, 161, 0, 0, 3181, 3183, 3, 292, 146, 0, 3182, 3181, 1, 0, 0, 0, 3182, 3183, 1, 0, 0, 0, 3183, 3184, 1, 0, 0, 0, 3184, 3185, 5, 374, 0, 0, 3185, 3186, 3, 686, 343, 0, 3186, 459, 1, 0, 0, 0, 3187, 3188, 5, 383, 0, 0, 3188, 3189, 5, 201, 0, 0, 3189, 3190, 5, 11, 0, 0, 3190, 3191, 3, 828, 414, 0, 3191, 3192, 5, 335, 0, 0, 3192, 3193, 3, 464, 232, 0, 3193, 461, 1, 0, 0, 0, 3194, 3195, 5, 383, 0, 0, 3195, 3196, 5, 201, 0, 0, 3196, 3197, 5, 335, 0, 0, 3197, 3198, 3, 464, 232, 0, 3198, 463, 1, 0, 0, 0, 3199, 3200, 5, 365, 0, 0, 3200, 3203, 3, 428, 214, 0, 3201, 3203, 5, 86, 0, 0, 3202, 3199, 1, 0, 0, 0, 3202, 3201, 1, 0, 0, 0, 3203, 465, 1, 0, 0, 0, 3204, 3205, 5, 176, 0, 0, 3205, 3207, 5, 258, 0, 0, 3206, 3208, 5, 426, 0, 0, 3207, 3206, 1, 0, 0, 0, 3208, 3209, 1, 0, 0, 0, 3209, 3207, 1, 0, 0, 0, 3209, 3210, 1, 0, 0, 0, 3210, 467, 1, 0, 0, 0, 3211, 3212, 5, 51, 0, 0, 3212, 3213, 5, 405, 0, 0, 3213, 3214, 5, 431, 0, 0, 3214, 469, 1, 0, 0, 0, 3215, 3216, 5, 246, 0, 0, 3216, 3217, 5, 426, 0, 0, 3217, 471, 1, 0, 0, 0, 3218, 3219, 5, 352, 0, 0, 3219, 3220, 5, 426, 0, 0, 3220, 473, 1, 0, 0, 0, 3221, 3222, 5, 320, 0, 0, 3222, 3223, 5, 426, 0, 0, 3223, 475, 1, 0, 0, 0, 3224, 3248, 5, 9, 0, 0, 3225, 3226, 5, 329, 0, 0, 3226, 3227, 3, 660, 330, 0, 3227, 3228, 3, 478, 239, 0, 3228, 3249, 1, 0, 0, 0, 3229, 3230, 5, 378, 0, 0, 3230, 3232, 3, 664, 332, 0, 3231, 3233, 5, 17, 0, 0, 3232, 3231, 1, 0, 0, 0, 3232, 3233, 1, 0, 0, 0, 3233, 3234, 1, 0, 0, 0, 3234, 3235, 3, 484, 242, 0, 3235, 3249, 1, 0, 0, 0, 3236, 3237, 5, 202, 0, 0, 3237, 3238, 5, 378, 0, 0, 3238, 3239, 3, 664, 332, 0, 3239, 3240, 3, 486, 243, 0, 3240, 3249, 1, 0, 0, 0, 3241, 3242, 3, 92, 46, 0, 3242, 3243, 3, 492, 246, 0, 3243, 3249, 1, 0, 0, 0, 3244, 3245, 5, 69, 0, 0, 3245, 3249, 3, 588, 294, 0, 3246, 3247, 5, 155, 0, 0, 3247, 3249, 3, 584, 292, 0, 3248, 3225, 1, 0, 0, 0, 3248, 3229, 1, 0, 0, 0, 3248, 3236, 1, 0, 0, 0, 3248, 3241, 1, 0, 0, 0, 3248, 3244, 1, 0, 0, 0, 3248, 3246, 1, 0, 0, 0, 3249, 477, 1, 0, 0, 0, 3250, 3272, 3, 502, 251, 0, 3251, 3272, 3, 534, 267, 0, 3252, 3272, 3, 536, 268, 0, 3253, 3272, 3, 522, 261, 0, 3254, 3272, 3, 526, 263, 0, 3255, 3272, 3, 528, 264, 0, 3256, 3272, 3, 530, 265, 0, 3257, 3272, 3, 538, 269, 0, 3258, 3272, 3, 560, 280, 0, 3259, 3272, 3, 562, 281, 0, 3260, 3272, 3, 482, 241, 0, 3261, 3272, 3, 512, 256, 0, 3262, 3272, 3, 506, 253, 0, 3263, 3272, 3, 480, 240, 0, 3264, 3266, 3, 912, 456, 0, 3265, 3264, 1, 0, 0, 0, 3265, 3266, 1, 0, 0, 0, 3266, 3267, 1, 0, 0, 0, 3267, 3272, 3, 480, 240, 0, 3268, 3272, 3, 578, 289, 0, 3269, 3272, 3, 580, 290, 0, 3270, 3272, 3, 582, 291, 0, 3271, 3250, 1, 0, 0, 0, 3271, 3251, 1, 0, 0, 0, 3271, 3252, 1, 0, 0, 0, 3271, 3253, 1, 0, 0, 0, 3271, 3254, 1, 0, 0, 0, 3271, 3255, 1, 0, 0, 0, 3271, 3256, 1, 0, 0, 0, 3271, 3257, 1, 0, 0, 0, 3271, 3258, 1, 0, 0, 0, 3271, 3259, 1, 0, 0, 0, 3271, 3260, 1, 0, 0, 0, 3271, 3261, 1, 0, 0, 0, 3271, 3262, 1, 0, 0, 0, 3271, 3263, 1, 0, 0, 0, 3271, 3265, 1, 0, 0, 0, 3271, 3268, 1, 0, 0, 0, 3271, 3269, 1, 0, 0, 0, 3271, 3270, 1, 0, 0, 0, 3272, 479, 1, 0, 0, 0, 3273, 3289, 3, 546, 273, 0, 3274, 3289, 3, 558, 279, 0, 3275, 3289, 3, 568, 284, 0, 3276, 3289, 3, 542, 271, 0, 3277, 3289, 3, 564, 282, 0, 3278, 3289, 3, 570, 285, 0, 3279, 3289, 3, 550, 275, 0, 3280, 3289, 3, 548, 274, 0, 3281, 3289, 3, 576, 288, 0, 3282, 3289, 3, 516, 258, 0, 3283, 3289, 3, 518, 259, 0, 3284, 3289, 3, 514, 257, 0, 3285, 3289, 3, 504, 252, 0, 3286, 3289, 3, 508, 254, 0, 3287, 3289, 3, 510, 255, 0, 3288, 3273, 1, 0, 0, 0, 3288, 3274, 1, 0, 0, 0, 3288, 3275, 1, 0, 0, 0, 3288, 3276, 1, 0, 0, 0, 3288, 3277, 1, 0, 0, 0, 3288, 3278, 1, 0, 0, 0, 3288, 3279, 1, 0, 0, 0, 3288, 3280, 1, 0, 0, 0, 3288, 3281, 1, 0, 0, 0, 3288, 3282, 1, 0, 0, 0, 3288, 3283, 1, 0, 0, 0, 3288, 3284, 1, 0, 0, 0, 3288, 3285, 1, 0, 0, 0, 3288, 3286, 1, 0, 0, 0, 3288, 3287, 1, 0, 0, 0, 3289, 481, 1, 0, 0, 0, 3290, 3291, 5, 237, 0, 0, 3291, 3292, 5, 45, 0, 0, 3292, 3293, 5, 399, 0, 0, 3293, 3294, 3, 344, 172, 0, 3294, 3295, 5, 400, 0, 0, 3295, 483, 1, 0, 0, 0, 3296, 3302, 3, 540, 270, 0, 3297, 3302, 3, 502, 251, 0, 3298, 3302, 3, 522, 261, 0, 3299, 3302, 3, 536, 268, 0, 3300, 3302, 3, 414, 207, 0, 3301, 3296, 1, 0, 0, 0, 3301, 3297, 1, 0, 0, 0, 3301, 3298, 1, 0, 0, 0, 3301, 3299, 1, 0, 0, 0, 3301, 3300, 1, 0, 0, 0, 3302, 485, 1, 0, 0, 0, 3303, 3306, 3, 488, 244, 0, 3304, 3306, 3, 490, 245, 0, 3305, 3303, 1, 0, 0, 0, 3305, 3304, 1, 0, 0, 0, 3306, 487, 1, 0, 0, 0, 3307, 3310, 3, 48, 24, 0, 3308, 3310, 3, 50, 25, 0, 3309, 3307, 1, 0, 0, 0, 3309, 3308, 1, 0, 0, 0, 3310, 489, 1, 0, 0, 0, 3311, 3312, 5, 265, 0, 0, 3312, 491, 1, 0, 0, 0, 3313, 3317, 3, 494, 247, 0, 3314, 3317, 3, 496, 248, 0, 3315, 3317, 3, 498, 249, 0, 3316, 3313, 1, 0, 0, 0, 3316, 3314, 1, 0, 0, 0, 3316, 3315, 1, 0, 0, 0, 3317, 493, 1, 0, 0, 0, 3318, 3319, 3, 654, 327, 0, 3319, 3320, 5, 304, 0, 0, 3320, 3321, 5, 76, 0, 0, 3321, 3322, 3, 62, 31, 0, 3322, 495, 1, 0, 0, 0, 3323, 3324, 3, 654, 327, 0, 3324, 3325, 5, 304, 0, 0, 3325, 3326, 5, 236, 0, 0, 3326, 3327, 3, 150, 75, 0, 3327, 497, 1, 0, 0, 0, 3328, 3329, 3, 654, 327, 0, 3329, 3330, 5, 304, 0, 0, 3330, 3331, 7, 22, 0, 0, 3331, 3332, 5, 426, 0, 0, 3332, 499, 1, 0, 0, 0, 3333, 3334, 3, 654, 327, 0, 3334, 3335, 5, 304, 0, 0, 3335, 3336, 5, 196, 0, 0, 3336, 3337, 5, 426, 0, 0, 3337, 501, 1, 0, 0, 0, 3338, 3339, 5, 274, 0, 0, 3339, 3340, 5, 341, 0, 0, 3340, 3341, 3, 662, 331, 0, 3341, 503, 1, 0, 0, 0, 3342, 3345, 5, 4, 0, 0, 3343, 3345, 5, 278, 0, 0, 3344, 3342, 1, 0, 0, 0, 3344, 3343, 1, 0, 0, 0, 3345, 3346, 1, 0, 0, 0, 3346, 3347, 5, 46, 0, 0, 3347, 3348, 5, 399, 0, 0, 3348, 3349, 3, 276, 138, 0, 3349, 3351, 5, 400, 0, 0, 3350, 3352, 3, 42, 21, 0, 3351, 3350, 1, 0, 0, 0, 3351, 3352, 1, 0, 0, 0, 3352, 505, 1, 0, 0, 0, 3353, 3356, 5, 4, 0, 0, 3354, 3357, 3, 316, 158, 0, 3355, 3357, 3, 306, 153, 0, 3356, 3354, 1, 0, 0, 0, 3356, 3355, 1, 0, 0, 0, 3357, 507, 1, 0, 0, 0, 3358, 3359, 5, 365, 0, 0, 3359, 3361, 5, 46, 0, 0, 3360, 3362, 3, 42, 21, 0, 3361, 3360, 1, 0, 0, 0, 3361, 3362, 1, 0, 0, 0, 3362, 509, 1, 0, 0, 0, 3363, 3364, 3, 296, 148, 0, 3364, 3366, 5, 218, 0, 0, 3365, 3367, 5, 34, 0, 0, 3366, 3365, 1, 0, 0, 0, 3366, 3367, 1, 0, 0, 0, 3367, 3372, 1, 0, 0, 0, 3368, 3369, 3, 296, 148, 0, 3369, 3370, 5, 222, 0, 0, 3370, 3372, 1, 0, 0, 0, 3371, 3363, 1, 0, 0, 0, 3371, 3368, 1, 0, 0, 0, 3372, 511, 1, 0, 0, 0, 3373, 3374, 5, 101, 0, 0, 3374, 3375, 5, 55, 0, 0, 3375, 3376, 3, 926, 463, 0, 3376, 513, 1, 0, 0, 0, 3377, 3379, 5, 38, 0, 0, 3378, 3380, 5, 45, 0, 0, 3379, 3378, 1, 0, 0, 0, 3379, 3380, 1, 0, 0, 0, 3380, 3381, 1, 0, 0, 0, 3381, 3382, 3, 284, 142, 0, 3382, 3383, 3, 286, 143, 0, 3383, 3385, 3, 376, 188, 0, 3384, 3386, 3, 358, 179, 0, 3385, 3384, 1, 0, 0, 0, 3385, 3386, 1, 0, 0, 0, 3386, 3389, 1, 0, 0, 0, 3387, 3388, 5, 47, 0, 0, 3388, 3390, 5, 426, 0, 0, 3389, 3387, 1, 0, 0, 0, 3389, 3390, 1, 0, 0, 0, 3390, 3392, 1, 0, 0, 0, 3391, 3393, 3, 520, 260, 0, 3392, 3391, 1, 0, 0, 0, 3392, 3393, 1, 0, 0, 0, 3393, 3395, 1, 0, 0, 0, 3394, 3396, 3, 42, 21, 0, 3395, 3394, 1, 0, 0, 0, 3395, 3396, 1, 0, 0, 0, 3396, 515, 1, 0, 0, 0, 3397, 3398, 5, 365, 0, 0, 3398, 3399, 5, 319, 0, 0, 3399, 3401, 5, 134, 0, 0, 3400, 3402, 5, 45, 0, 0, 3401, 3400, 1, 0, 0, 0, 3401, 3402, 1, 0, 0, 0, 3402, 3403, 1, 0, 0, 0, 3403, 3404, 3, 284, 142, 0, 3404, 3405, 5, 304, 0, 0, 3405, 3408, 3, 254, 127, 0, 3406, 3407, 5, 47, 0, 0, 3407, 3409, 5, 426, 0, 0, 3408, 3406, 1, 0, 0, 0, 3408, 3409, 1, 0, 0, 0, 3409, 517, 1, 0, 0, 0, 3410, 3411, 5, 365, 0, 0, 3411, 3412, 5, 319, 0, 0, 3412, 3413, 5, 304, 0, 0, 3413, 3414, 3, 254, 127, 0, 3414, 519, 1, 0, 0, 0, 3415, 3419, 5, 130, 0, 0, 3416, 3417, 5, 6, 0, 0, 3417, 3419, 3, 926, 463, 0, 3418, 3415, 1, 0, 0, 0, 3418, 3416, 1, 0, 0, 0, 3419, 521, 1, 0, 0, 0, 3420, 3422, 5, 4, 0, 0, 3421, 3423, 3, 44, 22, 0, 3422, 3421, 1, 0, 0, 0, 3422, 3423, 1, 0, 0, 0, 3423, 3425, 1, 0, 0, 0, 3424, 3426, 3, 524, 262, 0, 3425, 3424, 1, 0, 0, 0, 3426, 3427, 1, 0, 0, 0, 3427, 3425, 1, 0, 0, 0, 3427, 3428, 1, 0, 0, 0, 3428, 523, 1, 0, 0, 0, 3429, 3431, 3, 912, 456, 0, 3430, 3432, 3, 532, 266, 0, 3431, 3430, 1, 0, 0, 0, 3431, 3432, 1, 0, 0, 0, 3432, 525, 1, 0, 0, 0, 3433, 3437, 5, 342, 0, 0, 3434, 3436, 3, 912, 456, 0, 3435, 3434, 1, 0, 0, 0, 3436, 3439, 1, 0, 0, 0, 3437, 3435, 1, 0, 0, 0, 3437, 3438, 1, 0, 0, 0, 3438, 527, 1, 0, 0, 0, 3439, 3437, 1, 0, 0, 0, 3440, 3444, 5, 15, 0, 0, 3441, 3443, 3, 912, 456, 0, 3442, 3441, 1, 0, 0, 0, 3443, 3446, 1, 0, 0, 0, 3444, 3442, 1, 0, 0, 0, 3444, 3445, 1, 0, 0, 0, 3445, 529, 1, 0, 0, 0, 3446, 3444, 1, 0, 0, 0, 3447, 3451, 5, 353, 0, 0, 3448, 3450, 3, 912, 456, 0, 3449, 3448, 1, 0, 0, 0, 3450, 3453, 1, 0, 0, 0, 3451, 3449, 1, 0, 0, 0, 3451, 3452, 1, 0, 0, 0, 3452, 531, 1, 0, 0, 0, 3453, 3451, 1, 0, 0, 0, 3454, 3455, 5, 189, 0, 0, 3455, 3456, 5, 426, 0, 0, 3456, 533, 1, 0, 0, 0, 3457, 3458, 5, 102, 0, 0, 3458, 3459, 5, 239, 0, 0, 3459, 535, 1, 0, 0, 0, 3460, 3462, 5, 101, 0, 0, 3461, 3463, 3, 40, 20, 0, 3462, 3461, 1, 0, 0, 0, 3462, 3463, 1, 0, 0, 0, 3463, 3464, 1, 0, 0, 0, 3464, 3465, 5, 237, 0, 0, 3465, 3471, 3, 916, 458, 0, 3466, 3467, 5, 397, 0, 0, 3467, 3468, 5, 237, 0, 0, 3468, 3470, 3, 916, 458, 0, 3469, 3466, 1, 0, 0, 0, 3470, 3473, 1, 0, 0, 0, 3471, 3469, 1, 0, 0, 0, 3471, 3472, 1, 0, 0, 0, 3472, 3475, 1, 0, 0, 0, 3473, 3471, 1, 0, 0, 0, 3474, 3476, 3, 16, 8, 0, 3475, 3474, 1, 0, 0, 0, 3475, 3476, 1, 0, 0, 0, 3476, 3478, 1, 0, 0, 0, 3477, 3479, 5, 255, 0, 0, 3478, 3477, 1, 0, 0, 0, 3478, 3479, 1, 0, 0, 0, 3479, 3481, 1, 0, 0, 0, 3480, 3482, 3, 18, 9, 0, 3481, 3480, 1, 0, 0, 0, 3481, 3482, 1, 0, 0, 0, 3482, 537, 1, 0, 0, 0, 3483, 3484, 5, 304, 0, 0, 3484, 3485, 5, 332, 0, 0, 3485, 3493, 3, 254, 127, 0, 3486, 3487, 5, 363, 0, 0, 3487, 3489, 5, 332, 0, 0, 3488, 3490, 3, 40, 20, 0, 3489, 3488, 1, 0, 0, 0, 3489, 3490, 1, 0, 0, 0, 3490, 3491, 1, 0, 0, 0, 3491, 3493, 3, 254, 127, 0, 3492, 3483, 1, 0, 0, 0, 3492, 3486, 1, 0, 0, 0, 3493, 539, 1, 0, 0, 0, 3494, 3495, 5, 304, 0, 0, 3495, 3496, 5, 332, 0, 0, 3496, 3504, 3, 254, 127, 0, 3497, 3498, 5, 363, 0, 0, 3498, 3500, 5, 332, 0, 0, 3499, 3501, 3, 40, 20, 0, 3500, 3499, 1, 0, 0, 0, 3500, 3501, 1, 0, 0, 0, 3501, 3502, 1, 0, 0, 0, 3502, 3504, 3, 254, 127, 0, 3503, 3494, 1, 0, 0, 0, 3503, 3497, 1, 0, 0, 0, 3504, 541, 1, 0, 0, 0, 3505, 3515, 5, 304, 0, 0, 3506, 3507, 5, 301, 0, 0, 3507, 3511, 5, 426, 0, 0, 3508, 3509, 5, 387, 0, 0, 3509, 3510, 5, 302, 0, 0, 3510, 3512, 3, 254, 127, 0, 3511, 3508, 1, 0, 0, 0, 3511, 3512, 1, 0, 0, 0, 3512, 3516, 1, 0, 0, 0, 3513, 3514, 5, 302, 0, 0, 3514, 3516, 3, 254, 127, 0, 3515, 3506, 1, 0, 0, 0, 3515, 3513, 1, 0, 0, 0, 3516, 3521, 1, 0, 0, 0, 3517, 3518, 5, 363, 0, 0, 3518, 3519, 5, 302, 0, 0, 3519, 3521, 3, 254, 127, 0, 3520, 3505, 1, 0, 0, 0, 3520, 3517, 1, 0, 0, 0, 3521, 543, 1, 0, 0, 0, 3522, 3524, 3, 660, 330, 0, 3523, 3525, 3, 912, 456, 0, 3524, 3523, 1, 0, 0, 0, 3524, 3525, 1, 0, 0, 0, 3525, 545, 1, 0, 0, 0, 3526, 3527, 5, 304, 0, 0, 3527, 3528, 5, 129, 0, 0, 3528, 3529, 3, 586, 293, 0, 3529, 547, 1, 0, 0, 0, 3530, 3531, 5, 216, 0, 0, 3531, 3534, 7, 23, 0, 0, 3532, 3534, 3, 234, 117, 0, 3533, 3530, 1, 0, 0, 0, 3533, 3532, 1, 0, 0, 0, 3534, 549, 1, 0, 0, 0, 3535, 3536, 5, 304, 0, 0, 3536, 3537, 5, 310, 0, 0, 3537, 3538, 5, 189, 0, 0, 3538, 3539, 3, 552, 276, 0, 3539, 551, 1, 0, 0, 0, 3540, 3541, 5, 399, 0, 0, 3541, 3542, 3, 554, 277, 0, 3542, 3543, 5, 400, 0, 0, 3543, 553, 1, 0, 0, 0, 3544, 3549, 3, 556, 278, 0, 3545, 3546, 5, 397, 0, 0, 3546, 3548, 3, 556, 278, 0, 3547, 3545, 1, 0, 0, 0, 3548, 3551, 1, 0, 0, 0, 3549, 3547, 1, 0, 0, 0, 3549, 3550, 1, 0, 0, 0, 3550, 555, 1, 0, 0, 0, 3551, 3549, 1, 0, 0, 0, 3552, 3553, 3, 328, 164, 0, 3553, 3554, 5, 405, 0, 0, 3554, 3555, 5, 426, 0, 0, 3555, 557, 1, 0, 0, 0, 3556, 3557, 5, 304, 0, 0, 3557, 3558, 5, 189, 0, 0, 3558, 3559, 5, 426, 0, 0, 3559, 559, 1, 0, 0, 0, 3560, 3567, 3, 238, 119, 0, 3561, 3564, 5, 216, 0, 0, 3562, 3565, 5, 310, 0, 0, 3563, 3565, 3, 52, 26, 0, 3564, 3562, 1, 0, 0, 0, 3564, 3563, 1, 0, 0, 0, 3565, 3567, 1, 0, 0, 0, 3566, 3560, 1, 0, 0, 0, 3566, 3561, 1, 0, 0, 0, 3567, 561, 1, 0, 0, 0, 3568, 3569, 5, 113, 0, 0, 3569, 3570, 3, 912, 456, 0, 3570, 3571, 5, 387, 0, 0, 3571, 3572, 5, 329, 0, 0, 3572, 3573, 3, 660, 330, 0, 3573, 563, 1, 0, 0, 0, 3574, 3575, 5, 274, 0, 0, 3575, 3576, 5, 341, 0, 0, 3576, 3577, 3, 912, 456, 0, 3577, 565, 1, 0, 0, 0, 3578, 3579, 5, 365, 0, 0, 3579, 3580, 5, 319, 0, 0, 3580, 3582, 5, 134, 0, 0, 3581, 3583, 5, 45, 0, 0, 3582, 3581, 1, 0, 0, 0, 3582, 3583, 1, 0, 0, 0, 3583, 3584, 1, 0, 0, 0, 3584, 3585, 3, 284, 142, 0, 3585, 3586, 5, 304, 0, 0, 3586, 3589, 3, 254, 127, 0, 3587, 3588, 5, 47, 0, 0, 3588, 3590, 5, 426, 0, 0, 3589, 3587, 1, 0, 0, 0, 3589, 3590, 1, 0, 0, 0, 3590, 567, 1, 0, 0, 0, 3591, 3592, 5, 53, 0, 0, 3592, 569, 1, 0, 0, 0, 3593, 3594, 5, 166, 0, 0, 3594, 3595, 5, 431, 0, 0, 3595, 3596, 5, 31, 0, 0, 3596, 571, 1, 0, 0, 0, 3597, 3598, 5, 11, 0, 0, 3598, 3599, 5, 380, 0, 0, 3599, 573, 1, 0, 0, 0, 3600, 3601, 5, 246, 0, 0, 3601, 3602, 5, 426, 0, 0, 3602, 575, 1, 0, 0, 0, 3603, 3604, 5, 49, 0, 0, 3604, 3606, 5, 426, 0, 0, 3605, 3607, 3, 572, 286, 0, 3606, 3605, 1, 0, 0, 0, 3606, 3607, 1, 0, 0, 0, 3607, 3609, 1, 0, 0, 0, 3608, 3610, 3, 236, 118, 0, 3609, 3608, 1, 0, 0, 0, 3609, 3610, 1, 0, 0, 0, 3610, 3612, 1, 0, 0, 0, 3611, 3613, 3, 764, 382, 0, 3612, 3611, 1, 0, 0, 0, 3612, 3613, 1, 0, 0, 0, 3613, 3615, 1, 0, 0, 0, 3614, 3616, 3, 574, 287, 0, 3615, 3614, 1, 0, 0, 0, 3615, 3616, 1, 0, 0, 0, 3616, 3621, 1, 0, 0, 0, 3617, 3618, 5, 387, 0, 0, 3618, 3619, 5, 235, 0, 0, 3619, 3620, 5, 332, 0, 0, 3620, 3622, 3, 254, 127, 0, 3621, 3617, 1, 0, 0, 0, 3621, 3622, 1, 0, 0, 0, 3622, 577, 1, 0, 0, 0, 3623, 3624, 5, 304, 0, 0, 3624, 3625, 5, 236, 0, 0, 3625, 3626, 3, 148, 74, 0, 3626, 579, 1, 0, 0, 0, 3627, 3628, 5, 304, 0, 0, 3628, 3629, 5, 237, 0, 0, 3629, 3630, 5, 316, 0, 0, 3630, 3631, 5, 399, 0, 0, 3631, 3632, 3, 228, 114, 0, 3632, 3633, 5, 400, 0, 0, 3633, 581, 1, 0, 0, 0, 3634, 3644, 5, 115, 0, 0, 3635, 3636, 5, 289, 0, 0, 3636, 3637, 5, 399, 0, 0, 3637, 3645, 7, 24, 0, 0, 3638, 3639, 5, 118, 0, 0, 3639, 3640, 5, 399, 0, 0, 3640, 3645, 5, 426, 0, 0, 3641, 3642, 5, 306, 0, 0, 3642, 3643, 5, 399, 0, 0, 3643, 3645, 5, 431, 0, 0, 3644, 3635, 1, 0, 0, 0, 3644, 3638, 1, 0, 0, 0, 3644, 3641, 1, 0, 0, 0, 3645, 3646, 1, 0, 0, 0, 3646, 3647, 5, 400, 0, 0, 3647, 583, 1, 0, 0, 0, 3648, 3649, 3, 926, 463, 0, 3649, 3650, 5, 224, 0, 0, 3650, 3652, 3, 660, 330, 0, 3651, 3653, 3, 912, 456, 0, 3652, 3651, 1, 0, 0, 0, 3652, 3653, 1, 0, 0, 0, 3653, 3654, 1, 0, 0, 0, 3654, 3655, 5, 265, 0, 0, 3655, 585, 1, 0, 0, 0, 3656, 3657, 5, 160, 0, 0, 3657, 3658, 5, 426, 0, 0, 3658, 3659, 5, 233, 0, 0, 3659, 3660, 5, 426, 0, 0, 3660, 3661, 5, 301, 0, 0, 3661, 3666, 5, 426, 0, 0, 3662, 3663, 5, 159, 0, 0, 3663, 3664, 5, 426, 0, 0, 3664, 3665, 5, 232, 0, 0, 3665, 3667, 5, 426, 0, 0, 3666, 3662, 1, 0, 0, 0, 3666, 3667, 1, 0, 0, 0, 3667, 3670, 1, 0, 0, 0, 3668, 3670, 3, 926, 463, 0, 3669, 3656, 1, 0, 0, 0, 3669, 3668, 1, 0, 0, 0, 3670, 587, 1, 0, 0, 0, 3671, 3675, 3, 590, 295, 0, 3672, 3675, 3, 592, 296, 0, 3673, 3675, 3, 594, 297, 0, 3674, 3671, 1, 0, 0, 0, 3674, 3672, 1, 0, 0, 0, 3674, 3673, 1, 0, 0, 0, 3675, 589, 1, 0, 0, 0, 3676, 3677, 3, 654, 327, 0, 3677, 3678, 5, 304, 0, 0, 3678, 3679, 5, 77, 0, 0, 3679, 3680, 3, 608, 304, 0, 3680, 591, 1, 0, 0, 0, 3681, 3682, 3, 654, 327, 0, 3682, 3683, 5, 304, 0, 0, 3683, 3684, 5, 236, 0, 0, 3684, 3685, 3, 150, 75, 0, 3685, 593, 1, 0, 0, 0, 3686, 3687, 3, 654, 327, 0, 3687, 3688, 5, 304, 0, 0, 3688, 3689, 5, 367, 0, 0, 3689, 3690, 5, 426, 0, 0, 3690, 595, 1, 0, 0, 0, 3691, 3692, 5, 184, 0, 0, 3692, 3701, 5, 128, 0, 0, 3693, 3694, 5, 184, 0, 0, 3694, 3695, 5, 128, 0, 0, 3695, 3696, 3, 926, 463, 0, 3696, 3697, 5, 426, 0, 0, 3697, 3701, 1, 0, 0, 0, 3698, 3699, 5, 184, 0, 0, 3699, 3701, 3, 660, 330, 0, 3700, 3691, 1, 0, 0, 0, 3700, 3693, 1, 0, 0, 0, 3700, 3698, 1, 0, 0, 0, 3701, 597, 1, 0, 0, 0, 3702, 3704, 5, 58, 0, 0, 3703, 3705, 5, 333, 0, 0, 3704, 3703, 1, 0, 0, 0, 3704, 3705, 1, 0, 0, 0, 3705, 3707, 1, 0, 0, 0, 3706, 3708, 5, 345, 0, 0, 3707, 3706, 1, 0, 0, 0, 3707, 3708, 1, 0, 0, 0, 3708, 3710, 1, 0, 0, 0, 3709, 3711, 5, 123, 0, 0, 3710, 3709, 1, 0, 0, 0, 3710, 3711, 1, 0, 0, 0, 3711, 3712, 1, 0, 0, 0, 3712, 3714, 5, 329, 0, 0, 3713, 3715, 3, 44, 22, 0, 3714, 3713, 1, 0, 0, 0, 3714, 3715, 1, 0, 0, 0, 3715, 3716, 1, 0, 0, 0, 3716, 3770, 3, 662, 331, 0, 3717, 3719, 3, 596, 298, 0, 3718, 3720, 3, 222, 111, 0, 3719, 3718, 1, 0, 0, 0, 3719, 3720, 1, 0, 0, 0, 3720, 3722, 1, 0, 0, 0, 3721, 3723, 3, 250, 125, 0, 3722, 3721, 1, 0, 0, 0, 3722, 3723, 1, 0, 0, 0, 3723, 3725, 1, 0, 0, 0, 3724, 3726, 3, 272, 136, 0, 3725, 3724, 1, 0, 0, 0, 3725, 3726, 1, 0, 0, 0, 3726, 3728, 1, 0, 0, 0, 3727, 3729, 3, 274, 137, 0, 3728, 3727, 1, 0, 0, 0, 3728, 3729, 1, 0, 0, 0, 3729, 3731, 1, 0, 0, 0, 3730, 3732, 3, 252, 126, 0, 3731, 3730, 1, 0, 0, 0, 3731, 3732, 1, 0, 0, 0, 3732, 3771, 1, 0, 0, 0, 3733, 3734, 5, 399, 0, 0, 3734, 3735, 3, 278, 139, 0, 3735, 3736, 5, 400, 0, 0, 3736, 3738, 1, 0, 0, 0, 3737, 3733, 1, 0, 0, 0, 3737, 3738, 1, 0, 0, 0, 3738, 3740, 1, 0, 0, 0, 3739, 3741, 3, 218, 109, 0, 3740, 3739, 1, 0, 0, 0, 3740, 3741, 1, 0, 0, 0, 3741, 3743, 1, 0, 0, 0, 3742, 3744, 3, 220, 110, 0, 3743, 3742, 1, 0, 0, 0, 3743, 3744, 1, 0, 0, 0, 3744, 3746, 1, 0, 0, 0, 3745, 3747, 3, 222, 111, 0, 3746, 3745, 1, 0, 0, 0, 3746, 3747, 1, 0, 0, 0, 3747, 3749, 1, 0, 0, 0, 3748, 3750, 3, 234, 117, 0, 3749, 3748, 1, 0, 0, 0, 3749, 3750, 1, 0, 0, 0, 3750, 3752, 1, 0, 0, 0, 3751, 3753, 3, 238, 119, 0, 3752, 3751, 1, 0, 0, 0, 3752, 3753, 1, 0, 0, 0, 3753, 3755, 1, 0, 0, 0, 3754, 3756, 3, 250, 125, 0, 3755, 3754, 1, 0, 0, 0, 3755, 3756, 1, 0, 0, 0, 3756, 3758, 1, 0, 0, 0, 3757, 3759, 3, 272, 136, 0, 3758, 3757, 1, 0, 0, 0, 3758, 3759, 1, 0, 0, 0, 3759, 3761, 1, 0, 0, 0, 3760, 3762, 3, 274, 137, 0, 3761, 3760, 1, 0, 0, 0, 3761, 3762, 1, 0, 0, 0, 3762, 3764, 1, 0, 0, 0, 3763, 3765, 3, 252, 126, 0, 3764, 3763, 1, 0, 0, 0, 3764, 3765, 1, 0, 0, 0, 3765, 3768, 1, 0, 0, 0, 3766, 3767, 5, 17, 0, 0, 3767, 3769, 3, 414, 207, 0, 3768, 3766, 1, 0, 0, 0, 3768, 3769, 1, 0, 0, 0, 3769, 3771, 1, 0, 0, 0, 3770, 3717, 1, 0, 0, 0, 3770, 3737, 1, 0, 0, 0, 3771, 3832, 1, 0, 0, 0, 3772, 3773, 5, 58, 0, 0, 3773, 3774, 5, 195, 0, 0, 3774, 3776, 5, 329, 0, 0, 3775, 3777, 3, 44, 22, 0, 3776, 3775, 1, 0, 0, 0, 3776, 3777, 1, 0, 0, 0, 3777, 3778, 1, 0, 0, 0, 3778, 3829, 3, 662, 331, 0, 3779, 3781, 3, 596, 298, 0, 3780, 3782, 3, 250, 125, 0, 3781, 3780, 1, 0, 0, 0, 3781, 3782, 1, 0, 0, 0, 3782, 3784, 1, 0, 0, 0, 3783, 3785, 3, 272, 136, 0, 3784, 3783, 1, 0, 0, 0, 3784, 3785, 1, 0, 0, 0, 3785, 3787, 1, 0, 0, 0, 3786, 3788, 3, 274, 137, 0, 3787, 3786, 1, 0, 0, 0, 3787, 3788, 1, 0, 0, 0, 3788, 3790, 1, 0, 0, 0, 3789, 3791, 3, 252, 126, 0, 3790, 3789, 1, 0, 0, 0, 3790, 3791, 1, 0, 0, 0, 3791, 3830, 1, 0, 0, 0, 3792, 3793, 5, 399, 0, 0, 3793, 3794, 3, 278, 139, 0, 3794, 3795, 5, 400, 0, 0, 3795, 3797, 1, 0, 0, 0, 3796, 3792, 1, 0, 0, 0, 3796, 3797, 1, 0, 0, 0, 3797, 3799, 1, 0, 0, 0, 3798, 3800, 3, 218, 109, 0, 3799, 3798, 1, 0, 0, 0, 3799, 3800, 1, 0, 0, 0, 3800, 3802, 1, 0, 0, 0, 3801, 3803, 3, 220, 110, 0, 3802, 3801, 1, 0, 0, 0, 3802, 3803, 1, 0, 0, 0, 3803, 3805, 1, 0, 0, 0, 3804, 3806, 3, 222, 111, 0, 3805, 3804, 1, 0, 0, 0, 3805, 3806, 1, 0, 0, 0, 3806, 3808, 1, 0, 0, 0, 3807, 3809, 3, 234, 117, 0, 3808, 3807, 1, 0, 0, 0, 3808, 3809, 1, 0, 0, 0, 3809, 3811, 1, 0, 0, 0, 3810, 3812, 3, 238, 119, 0, 3811, 3810, 1, 0, 0, 0, 3811, 3812, 1, 0, 0, 0, 3812, 3814, 1, 0, 0, 0, 3813, 3815, 3, 250, 125, 0, 3814, 3813, 1, 0, 0, 0, 3814, 3815, 1, 0, 0, 0, 3815, 3817, 1, 0, 0, 0, 3816, 3818, 3, 272, 136, 0, 3817, 3816, 1, 0, 0, 0, 3817, 3818, 1, 0, 0, 0, 3818, 3820, 1, 0, 0, 0, 3819, 3821, 3, 274, 137, 0, 3820, 3819, 1, 0, 0, 0, 3820, 3821, 1, 0, 0, 0, 3821, 3823, 1, 0, 0, 0, 3822, 3824, 3, 252, 126, 0, 3823, 3822, 1, 0, 0, 0, 3823, 3824, 1, 0, 0, 0, 3824, 3827, 1, 0, 0, 0, 3825, 3826, 5, 17, 0, 0, 3826, 3828, 3, 414, 207, 0, 3827, 3825, 1, 0, 0, 0, 3827, 3828, 1, 0, 0, 0, 3828, 3830, 1, 0, 0, 0, 3829, 3779, 1, 0, 0, 0, 3829, 3796, 1, 0, 0, 0, 3830, 3832, 1, 0, 0, 0, 3831, 3702, 1, 0, 0, 0, 3831, 3772, 1, 0, 0, 0, 3832, 599, 1, 0, 0, 0, 3833, 3834, 5, 58, 0, 0, 3834, 3836, 5, 69, 0, 0, 3835, 3837, 3, 44, 22, 0, 3836, 3835, 1, 0, 0, 0, 3836, 3837, 1, 0, 0, 0, 3837, 3838, 1, 0, 0, 0, 3838, 3840, 3, 926, 463, 0, 3839, 3841, 3, 606, 303, 0, 3840, 3839, 1, 0, 0, 0, 3840, 3841, 1, 0, 0, 0, 3841, 3843, 1, 0, 0, 0, 3842, 3844, 3, 604, 302, 0, 3843, 3842, 1, 0, 0, 0, 3843, 3844, 1, 0, 0, 0, 3844, 3846, 1, 0, 0, 0, 3845, 3847, 3, 602, 301, 0, 3846, 3845, 1, 0, 0, 0, 3846, 3847, 1, 0, 0, 0, 3847, 3851, 1, 0, 0, 0, 3848, 3849, 5, 387, 0, 0, 3849, 3850, 5, 77, 0, 0, 3850, 3852, 3, 608, 304, 0, 3851, 3848, 1, 0, 0, 0, 3851, 3852, 1, 0, 0, 0, 3852, 601, 1, 0, 0, 0, 3853, 3854, 5, 47, 0, 0, 3854, 3855, 5, 426, 0, 0, 3855, 603, 1, 0, 0, 0, 3856, 3857, 5, 367, 0, 0, 3857, 3858, 5, 426, 0, 0, 3858, 605, 1, 0, 0, 0, 3859, 3860, 5, 352, 0, 0, 3860, 3861, 5, 426, 0, 0, 3861, 607, 1, 0, 0, 0, 3862, 3863, 5, 399, 0, 0, 3863, 3864, 3, 64, 32, 0, 3864, 3865, 5, 400, 0, 0, 3865, 609, 1, 0, 0, 0, 3866, 3867, 5, 101, 0, 0, 3867, 3869, 5, 69, 0, 0, 3868, 3870, 3, 40, 20, 0, 3869, 3868, 1, 0, 0, 0, 3869, 3870, 1, 0, 0, 0, 3870, 3871, 1, 0, 0, 0, 3871, 3872, 3, 926, 463, 0, 3872, 611, 1, 0, 0, 0, 3873, 3874, 3, 926, 463, 0, 3874, 3875, 5, 395, 0, 0, 3875, 3877, 1, 0, 0, 0, 3876, 3873, 1, 0, 0, 0, 3877, 3880, 1, 0, 0, 0, 3878, 3876, 1, 0, 0, 0, 3878, 3879, 1, 0, 0, 0, 3879, 3881, 1, 0, 0, 0, 3880, 3878, 1, 0, 0, 0, 3881, 3882, 5, 415, 0, 0, 3882, 613, 1, 0, 0, 0, 3883, 3884, 5, 83, 0, 0, 3884, 615, 1, 0, 0, 0, 3885, 3890, 3, 828, 414, 0, 3886, 3887, 5, 397, 0, 0, 3887, 3889, 3, 828, 414, 0, 3888, 3886, 1, 0, 0, 0, 3889, 3892, 1, 0, 0, 0, 3890, 3888, 1, 0, 0, 0, 3890, 3891, 1, 0, 0, 0, 3891, 617, 1, 0, 0, 0, 3892, 3890, 1, 0, 0, 0, 3893, 3898, 3, 926, 463, 0, 3894, 3895, 5, 397, 0, 0, 3895, 3897, 3, 926, 463, 0, 3896, 3894, 1, 0, 0, 0, 3897, 3900, 1, 0, 0, 0, 3898, 3896, 1, 0, 0, 0, 3898, 3899, 1, 0, 0, 0, 3899, 619, 1, 0, 0, 0, 3900, 3898, 1, 0, 0, 0, 3901, 3902, 5, 139, 0, 0, 3902, 3903, 3, 622, 311, 0, 3903, 621, 1, 0, 0, 0, 3904, 3905, 3, 634, 317, 0, 3905, 3908, 3, 630, 315, 0, 3906, 3907, 5, 397, 0, 0, 3907, 3909, 3, 630, 315, 0, 3908, 3906, 1, 0, 0, 0, 3909, 3910, 1, 0, 0, 0, 3910, 3908, 1, 0, 0, 0, 3910, 3911, 1, 0, 0, 0, 3911, 3914, 1, 0, 0, 0, 3912, 3914, 3, 626, 313, 0, 3913, 3904, 1, 0, 0, 0, 3913, 3912, 1, 0, 0, 0, 3914, 623, 1, 0, 0, 0, 3915, 3919, 3, 648, 324, 0, 3916, 3918, 3, 638, 319, 0, 3917, 3916, 1, 0, 0, 0, 3918, 3921, 1, 0, 0, 0, 3919, 3917, 1, 0, 0, 0, 3919, 3920, 1, 0, 0, 0, 3920, 3948, 1, 0, 0, 0, 3921, 3919, 1, 0, 0, 0, 3922, 3926, 3, 690, 345, 0, 3923, 3925, 3, 638, 319, 0, 3924, 3923, 1, 0, 0, 0, 3925, 3928, 1, 0, 0, 0, 3926, 3924, 1, 0, 0, 0, 3926, 3927, 1, 0, 0, 0, 3927, 3948, 1, 0, 0, 0, 3928, 3926, 1, 0, 0, 0, 3929, 3933, 3, 668, 334, 0, 3930, 3932, 3, 638, 319, 0, 3931, 3930, 1, 0, 0, 0, 3932, 3935, 1, 0, 0, 0, 3933, 3931, 1, 0, 0, 0, 3933, 3934, 1, 0, 0, 0, 3934, 3948, 1, 0, 0, 0, 3935, 3933, 1, 0, 0, 0, 3936, 3940, 3, 674, 337, 0, 3937, 3939, 3, 638, 319, 0, 3938, 3937, 1, 0, 0, 0, 3939, 3942, 1, 0, 0, 0, 3940, 3938, 1, 0, 0, 0, 3940, 3941, 1, 0, 0, 0, 3941, 3948, 1, 0, 0, 0, 3942, 3940, 1, 0, 0, 0, 3943, 3944, 5, 399, 0, 0, 3944, 3945, 3, 626, 313, 0, 3945, 3946, 5, 400, 0, 0, 3946, 3948, 1, 0, 0, 0, 3947, 3915, 1, 0, 0, 0, 3947, 3922, 1, 0, 0, 0, 3947, 3929, 1, 0, 0, 0, 3947, 3936, 1, 0, 0, 0, 3947, 3943, 1, 0, 0, 0, 3948, 625, 1, 0, 0, 0, 3949, 3960, 3, 624, 312, 0, 3950, 3951, 3, 636, 318, 0, 3951, 3956, 3, 628, 314, 0, 3952, 3953, 5, 224, 0, 0, 3953, 3957, 3, 828, 414, 0, 3954, 3955, 5, 370, 0, 0, 3955, 3957, 3, 292, 146, 0, 3956, 3952, 1, 0, 0, 0, 3956, 3954, 1, 0, 0, 0, 3956, 3957, 1, 0, 0, 0, 3957, 3959, 1, 0, 0, 0, 3958, 3950, 1, 0, 0, 0, 3959, 3962, 1, 0, 0, 0, 3960, 3958, 1, 0, 0, 0, 3960, 3961, 1, 0, 0, 0, 3961, 627, 1, 0, 0, 0, 3962, 3960, 1, 0, 0, 0, 3963, 3968, 3, 648, 324, 0, 3964, 3968, 3, 690, 345, 0, 3965, 3968, 3, 668, 334, 0, 3966, 3968, 3, 674, 337, 0, 3967, 3963, 1, 0, 0, 0, 3967, 3964, 1, 0, 0, 0, 3967, 3965, 1, 0, 0, 0, 3967, 3966, 1, 0, 0, 0, 3968, 3972, 1, 0, 0, 0, 3969, 3971, 3, 638, 319, 0, 3970, 3969, 1, 0, 0, 0, 3971, 3974, 1, 0, 0, 0, 3972, 3970, 1, 0, 0, 0, 3972, 3973, 1, 0, 0, 0, 3973, 629, 1, 0, 0, 0, 3974, 3972, 1, 0, 0, 0, 3975, 3977, 5, 250, 0, 0, 3976, 3975, 1, 0, 0, 0, 3976, 3977, 1, 0, 0, 0, 3977, 3978, 1, 0, 0, 0, 3978, 3979, 3, 652, 326, 0, 3979, 3980, 3, 632, 316, 0, 3980, 631, 1, 0, 0, 0, 3981, 3982, 5, 399, 0, 0, 3982, 3983, 3, 616, 308, 0, 3983, 3984, 5, 400, 0, 0, 3984, 633, 1, 0, 0, 0, 3985, 3986, 5, 359, 0, 0, 3986, 635, 1, 0, 0, 0, 3987, 4002, 5, 397, 0, 0, 3988, 3999, 5, 157, 0, 0, 3989, 3999, 5, 60, 0, 0, 3990, 3992, 7, 25, 0, 0, 3991, 3993, 5, 231, 0, 0, 3992, 3991, 1, 0, 0, 0, 3992, 3993, 1, 0, 0, 0, 3993, 3999, 1, 0, 0, 0, 3994, 3996, 5, 180, 0, 0, 3995, 3997, 7, 26, 0, 0, 3996, 3995, 1, 0, 0, 0, 3996, 3997, 1, 0, 0, 0, 3997, 3999, 1, 0, 0, 0, 3998, 3988, 1, 0, 0, 0, 3998, 3989, 1, 0, 0, 0, 3998, 3990, 1, 0, 0, 0, 3998, 3994, 1, 0, 0, 0, 3998, 3999, 1, 0, 0, 0, 3999, 4000, 1, 0, 0, 0, 4000, 4002, 5, 171, 0, 0, 4001, 3987, 1, 0, 0, 0, 4001, 3998, 1, 0, 0, 0, 4002, 637, 1, 0, 0, 0, 4003, 4004, 5, 178, 0, 0, 4004, 4005, 5, 378, 0, 0, 4005, 4006, 5, 231, 0, 0, 4006, 4007, 3, 776, 388, 0, 4007, 4017, 3, 640, 320, 0, 4008, 4009, 5, 17, 0, 0, 4009, 4014, 3, 926, 463, 0, 4010, 4011, 5, 397, 0, 0, 4011, 4013, 3, 926, 463, 0, 4012, 4010, 1, 0, 0, 0, 4013, 4016, 1, 0, 0, 0, 4014, 4012, 1, 0, 0, 0, 4014, 4015, 1, 0, 0, 0, 4015, 4018, 1, 0, 0, 0, 4016, 4014, 1, 0, 0, 0, 4017, 4008, 1, 0, 0, 0, 4017, 4018, 1, 0, 0, 0, 4018, 4061, 1, 0, 0, 0, 4019, 4021, 5, 397, 0, 0, 4020, 4019, 1, 0, 0, 0, 4020, 4021, 1, 0, 0, 0, 4021, 4022, 1, 0, 0, 0, 4022, 4058, 5, 178, 0, 0, 4023, 4024, 5, 378, 0, 0, 4024, 4025, 3, 776, 388, 0, 4025, 4035, 3, 640, 320, 0, 4026, 4027, 5, 17, 0, 0, 4027, 4032, 3, 926, 463, 0, 4028, 4029, 5, 397, 0, 0, 4029, 4031, 3, 926, 463, 0, 4030, 4028, 1, 0, 0, 0, 4031, 4034, 1, 0, 0, 0, 4032, 4030, 1, 0, 0, 0, 4032, 4033, 1, 0, 0, 0, 4033, 4036, 1, 0, 0, 0, 4034, 4032, 1, 0, 0, 0, 4035, 4026, 1, 0, 0, 0, 4035, 4036, 1, 0, 0, 0, 4036, 4059, 1, 0, 0, 0, 4037, 4038, 5, 329, 0, 0, 4038, 4039, 5, 399, 0, 0, 4039, 4040, 3, 682, 341, 0, 4040, 4042, 5, 400, 0, 0, 4041, 4043, 5, 17, 0, 0, 4042, 4041, 1, 0, 0, 0, 4042, 4043, 1, 0, 0, 0, 4043, 4044, 1, 0, 0, 0, 4044, 4056, 3, 640, 320, 0, 4045, 4046, 5, 399, 0, 0, 4046, 4051, 3, 926, 463, 0, 4047, 4048, 5, 397, 0, 0, 4048, 4050, 3, 926, 463, 0, 4049, 4047, 1, 0, 0, 0, 4050, 4053, 1, 0, 0, 0, 4051, 4049, 1, 0, 0, 0, 4051, 4052, 1, 0, 0, 0, 4052, 4054, 1, 0, 0, 0, 4053, 4051, 1, 0, 0, 0, 4054, 4055, 5, 400, 0, 0, 4055, 4057, 1, 0, 0, 0, 4056, 4045, 1, 0, 0, 0, 4056, 4057, 1, 0, 0, 0, 4057, 4059, 1, 0, 0, 0, 4058, 4023, 1, 0, 0, 0, 4058, 4037, 1, 0, 0, 0, 4059, 4061, 1, 0, 0, 0, 4060, 4003, 1, 0, 0, 0, 4060, 4020, 1, 0, 0, 0, 4061, 639, 1, 0, 0, 0, 4062, 4063, 3, 926, 463, 0, 4063, 641, 1, 0, 0, 0, 4064, 4065, 5, 331, 0, 0, 4065, 4066, 5, 399, 0, 0, 4066, 4067, 5, 30, 0, 0, 4067, 4068, 5, 431, 0, 0, 4068, 4069, 5, 230, 0, 0, 4069, 4070, 5, 221, 0, 0, 4070, 4080, 5, 431, 0, 0, 4071, 4072, 5, 224, 0, 0, 4072, 4077, 3, 828, 414, 0, 4073, 4074, 5, 397, 0, 0, 4074, 4076, 3, 828, 414, 0, 4075, 4073, 1, 0, 0, 0, 4076, 4079, 1, 0, 0, 0, 4077, 4075, 1, 0, 0, 0, 4077, 4078, 1, 0, 0, 0, 4078, 4081, 1, 0, 0, 0, 4079, 4077, 1, 0, 0, 0, 4080, 4071, 1, 0, 0, 0, 4080, 4081, 1, 0, 0, 0, 4081, 4082, 1, 0, 0, 0, 4082, 4083, 5, 400, 0, 0, 4083, 643, 1, 0, 0, 0, 4084, 4085, 5, 331, 0, 0, 4085, 4089, 5, 399, 0, 0, 4086, 4087, 5, 431, 0, 0, 4087, 4090, 7, 27, 0, 0, 4088, 4090, 5, 430, 0, 0, 4089, 4086, 1, 0, 0, 0, 4089, 4088, 1, 0, 0, 0, 4090, 4091, 1, 0, 0, 0, 4091, 4092, 5, 400, 0, 0, 4092, 645, 1, 0, 0, 0, 4093, 4096, 3, 642, 321, 0, 4094, 4096, 3, 644, 322, 0, 4095, 4093, 1, 0, 0, 0, 4095, 4094, 1, 0, 0, 0, 4096, 647, 1, 0, 0, 0, 4097, 4099, 3, 658, 329, 0, 4098, 4100, 3, 254, 127, 0, 4099, 4098, 1, 0, 0, 0, 4099, 4100, 1, 0, 0, 0, 4100, 4102, 1, 0, 0, 0, 4101, 4103, 3, 646, 323, 0, 4102, 4101, 1, 0, 0, 0, 4102, 4103, 1, 0, 0, 0, 4103, 4105, 1, 0, 0, 0, 4104, 4106, 3, 650, 325, 0, 4105, 4104, 1, 0, 0, 0, 4105, 4106, 1, 0, 0, 0, 4106, 4111, 1, 0, 0, 0, 4107, 4109, 5, 17, 0, 0, 4108, 4107, 1, 0, 0, 0, 4108, 4109, 1, 0, 0, 0, 4109, 4110, 1, 0, 0, 0, 4110, 4112, 3, 926, 463, 0, 4111, 4108, 1, 0, 0, 0, 4111, 4112, 1, 0, 0, 0, 4112, 649, 1, 0, 0, 0, 4113, 4123, 5, 134, 0, 0, 4114, 4115, 5, 327, 0, 0, 4115, 4116, 5, 17, 0, 0, 4116, 4117, 5, 221, 0, 0, 4117, 4124, 3, 828, 414, 0, 4118, 4119, 5, 134, 0, 0, 4119, 4120, 5, 328, 0, 0, 4120, 4121, 5, 17, 0, 0, 4121, 4122, 5, 221, 0, 0, 4122, 4124, 5, 431, 0, 0, 4123, 4114, 1, 0, 0, 0, 4123, 4118, 1, 0, 0, 0, 4124, 651, 1, 0, 0, 0, 4125, 4127, 3, 658, 329, 0, 4126, 4128, 3, 646, 323, 0, 4127, 4126, 1, 0, 0, 0, 4127, 4128, 1, 0, 0, 0, 4128, 4133, 1, 0, 0, 0, 4129, 4131, 5, 17, 0, 0, 4130, 4129, 1, 0, 0, 0, 4130, 4131, 1, 0, 0, 0, 4131, 4132, 1, 0, 0, 0, 4132, 4134, 3, 926, 463, 0, 4133, 4130, 1, 0, 0, 0, 4133, 4134, 1, 0, 0, 0, 4134, 653, 1, 0, 0, 0, 4135, 4136, 3, 926, 463, 0, 4136, 655, 1, 0, 0, 0, 4137, 4138, 3, 926, 463, 0, 4138, 657, 1, 0, 0, 0, 4139, 4142, 3, 660, 330, 0, 4140, 4142, 3, 664, 332, 0, 4141, 4139, 1, 0, 0, 0, 4141, 4140, 1, 0, 0, 0, 4142, 659, 1, 0, 0, 0, 4143, 4144, 3, 926, 463, 0, 4144, 4145, 5, 395, 0, 0, 4145, 4148, 3, 926, 463, 0, 4146, 4147, 5, 395, 0, 0, 4147, 4149, 3, 926, 463, 0, 4148, 4146, 1, 0, 0, 0, 4148, 4149, 1, 0, 0, 0, 4149, 4152, 1, 0, 0, 0, 4150, 4152, 3, 926, 463, 0, 4151, 4143, 1, 0, 0, 0, 4151, 4150, 1, 0, 0, 0, 4152, 661, 1, 0, 0, 0, 4153, 4154, 3, 926, 463, 0, 4154, 4155, 5, 395, 0, 0, 4155, 4158, 3, 926, 463, 0, 4156, 4157, 5, 395, 0, 0, 4157, 4159, 3, 926, 463, 0, 4158, 4156, 1, 0, 0, 0, 4158, 4159, 1, 0, 0, 0, 4159, 4162, 1, 0, 0, 0, 4160, 4162, 3, 926, 463, 0, 4161, 4153, 1, 0, 0, 0, 4161, 4160, 1, 0, 0, 0, 4162, 663, 1, 0, 0, 0, 4163, 4164, 3, 926, 463, 0, 4164, 4165, 5, 395, 0, 0, 4165, 4167, 1, 0, 0, 0, 4166, 4163, 1, 0, 0, 0, 4166, 4167, 1, 0, 0, 0, 4167, 4168, 1, 0, 0, 0, 4168, 4169, 3, 926, 463, 0, 4169, 665, 1, 0, 0, 0, 4170, 4171, 3, 926, 463, 0, 4171, 4172, 5, 395, 0, 0, 4172, 4174, 1, 0, 0, 0, 4173, 4170, 1, 0, 0, 0, 4173, 4174, 1, 0, 0, 0, 4174, 4175, 1, 0, 0, 0, 4175, 4176, 3, 926, 463, 0, 4176, 667, 1, 0, 0, 0, 4177, 4178, 5, 399, 0, 0, 4178, 4179, 3, 394, 197, 0, 4179, 4181, 5, 400, 0, 0, 4180, 4182, 5, 17, 0, 0, 4181, 4180, 1, 0, 0, 0, 4181, 4182, 1, 0, 0, 0, 4182, 4183, 1, 0, 0, 0, 4183, 4184, 3, 926, 463, 0, 4184, 669, 1, 0, 0, 0, 4185, 4187, 3, 768, 384, 0, 4186, 4188, 3, 764, 382, 0, 4187, 4186, 1, 0, 0, 0, 4187, 4188, 1, 0, 0, 0, 4188, 4197, 1, 0, 0, 0, 4189, 4197, 3, 764, 382, 0, 4190, 4192, 3, 770, 385, 0, 4191, 4193, 3, 772, 386, 0, 4192, 4191, 1, 0, 0, 0, 4192, 4193, 1, 0, 0, 0, 4193, 4197, 1, 0, 0, 0, 4194, 4197, 3, 772, 386, 0, 4195, 4197, 3, 766, 383, 0, 4196, 4185, 1, 0, 0, 0, 4196, 4189, 1, 0, 0, 0, 4196, 4190, 1, 0, 0, 0, 4196, 4194, 1, 0, 0, 0, 4196, 4195, 1, 0, 0, 0, 4197, 671, 1, 0, 0, 0, 4198, 4202, 3, 668, 334, 0, 4199, 4202, 3, 648, 324, 0, 4200, 4202, 3, 674, 337, 0, 4201, 4198, 1, 0, 0, 0, 4201, 4199, 1, 0, 0, 0, 4201, 4200, 1, 0, 0, 0, 4202, 673, 1, 0, 0, 0, 4203, 4204, 3, 926, 463, 0, 4204, 4205, 5, 399, 0, 0, 4205, 4206, 5, 224, 0, 0, 4206, 4208, 3, 672, 336, 0, 4207, 4209, 3, 670, 335, 0, 4208, 4207, 1, 0, 0, 0, 4208, 4209, 1, 0, 0, 0, 4209, 4225, 1, 0, 0, 0, 4210, 4211, 5, 432, 0, 0, 4211, 4212, 5, 399, 0, 0, 4212, 4213, 3, 828, 414, 0, 4213, 4222, 5, 400, 0, 0, 4214, 4215, 5, 397, 0, 0, 4215, 4216, 5, 432, 0, 0, 4216, 4217, 5, 399, 0, 0, 4217, 4218, 3, 828, 414, 0, 4218, 4219, 5, 400, 0, 0, 4219, 4221, 1, 0, 0, 0, 4220, 4214, 1, 0, 0, 0, 4221, 4224, 1, 0, 0, 0, 4222, 4220, 1, 0, 0, 0, 4222, 4223, 1, 0, 0, 0, 4223, 4226, 1, 0, 0, 0, 4224, 4222, 1, 0, 0, 0, 4225, 4210, 1, 0, 0, 0, 4225, 4226, 1, 0, 0, 0, 4226, 4227, 1, 0, 0, 0, 4227, 4229, 5, 400, 0, 0, 4228, 4230, 3, 926, 463, 0, 4229, 4228, 1, 0, 0, 0, 4229, 4230, 1, 0, 0, 0, 4230, 675, 1, 0, 0, 0, 4231, 4232, 5, 384, 0, 0, 4232, 4233, 3, 678, 339, 0, 4233, 677, 1, 0, 0, 0, 4234, 4235, 3, 828, 414, 0, 4235, 679, 1, 0, 0, 0, 4236, 4237, 3, 682, 341, 0, 4237, 681, 1, 0, 0, 0, 4238, 4239, 5, 374, 0, 0, 4239, 4240, 3, 684, 342, 0, 4240, 683, 1, 0, 0, 0, 4241, 4246, 3, 686, 343, 0, 4242, 4243, 5, 397, 0, 0, 4243, 4245, 3, 686, 343, 0, 4244, 4242, 1, 0, 0, 0, 4245, 4248, 1, 0, 0, 0, 4246, 4244, 1, 0, 0, 0, 4246, 4247, 1, 0, 0, 0, 4247, 4258, 1, 0, 0, 0, 4248, 4246, 1, 0, 0, 0, 4249, 4254, 3, 688, 344, 0, 4250, 4251, 5, 397, 0, 0, 4251, 4253, 3, 686, 343, 0, 4252, 4250, 1, 0, 0, 0, 4253, 4256, 1, 0, 0, 0, 4254, 4252, 1, 0, 0, 0, 4254, 4255, 1, 0, 0, 0, 4255, 4258, 1, 0, 0, 0, 4256, 4254, 1, 0, 0, 0, 4257, 4241, 1, 0, 0, 0, 4257, 4249, 1, 0, 0, 0, 4258, 685, 1, 0, 0, 0, 4259, 4260, 3, 746, 373, 0, 4260, 687, 1, 0, 0, 0, 4261, 4262, 5, 399, 0, 0, 4262, 4263, 3, 754, 377, 0, 4263, 4264, 5, 400, 0, 0, 4264, 689, 1, 0, 0, 0, 4265, 4266, 5, 329, 0, 0, 4266, 4267, 5, 399, 0, 0, 4267, 4268, 3, 682, 341, 0, 4268, 4270, 5, 400, 0, 0, 4269, 4271, 5, 17, 0, 0, 4270, 4269, 1, 0, 0, 0, 4270, 4271, 1, 0, 0, 0, 4271, 4272, 1, 0, 0, 0, 4272, 4282, 3, 640, 320, 0, 4273, 4274, 5, 399, 0, 0, 4274, 4279, 3, 926, 463, 0, 4275, 4276, 5, 397, 0, 0, 4276, 4278, 3, 926, 463, 0, 4277, 4275, 1, 0, 0, 0, 4278, 4281, 1, 0, 0, 0, 4279, 4277, 1, 0, 0, 0, 4279, 4280, 1, 0, 0, 0, 4280, 4283, 1, 0, 0, 0, 4281, 4279, 1, 0, 0, 0, 4282, 4273, 1, 0, 0, 0, 4282, 4283, 1, 0, 0, 0, 4283, 4284, 1, 0, 0, 0, 4284, 4285, 5, 400, 0, 0, 4285, 691, 1, 0, 0, 0, 4286, 4288, 5, 299, 0, 0, 4287, 4289, 5, 436, 0, 0, 4288, 4287, 1, 0, 0, 0, 4288, 4289, 1, 0, 0, 0, 4289, 4296, 1, 0, 0, 0, 4290, 4292, 3, 694, 347, 0, 4291, 4290, 1, 0, 0, 0, 4291, 4292, 1, 0, 0, 0, 4292, 4293, 1, 0, 0, 0, 4293, 4297, 3, 696, 348, 0, 4294, 4295, 5, 347, 0, 0, 4295, 4297, 3, 698, 349, 0, 4296, 4291, 1, 0, 0, 0, 4296, 4294, 1, 0, 0, 0, 4297, 4300, 1, 0, 0, 0, 4298, 4300, 3, 702, 351, 0, 4299, 4286, 1, 0, 0, 0, 4299, 4298, 1, 0, 0, 0, 4300, 693, 1, 0, 0, 0, 4301, 4302, 7, 20, 0, 0, 4302, 695, 1, 0, 0, 0, 4303, 4308, 3, 700, 350, 0, 4304, 4305, 5, 397, 0, 0, 4305, 4307, 3, 700, 350, 0, 4306, 4304, 1, 0, 0, 0, 4307, 4310, 1, 0, 0, 0, 4308, 4306, 1, 0, 0, 0, 4308, 4309, 1, 0, 0, 0, 4309, 697, 1, 0, 0, 0, 4310, 4308, 1, 0, 0, 0, 4311, 4312, 5, 399, 0, 0, 4312, 4313, 3, 706, 353, 0, 4313, 4314, 5, 400, 0, 0, 4314, 4315, 3, 240, 120, 0, 4315, 4316, 3, 244, 122, 0, 4316, 4317, 5, 370, 0, 0, 4317, 4330, 5, 426, 0, 0, 4318, 4328, 5, 17, 0, 0, 4319, 4322, 5, 399, 0, 0, 4320, 4323, 3, 618, 309, 0, 4321, 4323, 3, 276, 138, 0, 4322, 4320, 1, 0, 0, 0, 4322, 4321, 1, 0, 0, 0, 4323, 4324, 1, 0, 0, 0, 4324, 4325, 5, 400, 0, 0, 4325, 4329, 1, 0, 0, 0, 4326, 4329, 3, 618, 309, 0, 4327, 4329, 3, 276, 138, 0, 4328, 4319, 1, 0, 0, 0, 4328, 4326, 1, 0, 0, 0, 4328, 4327, 1, 0, 0, 0, 4329, 4331, 1, 0, 0, 0, 4330, 4318, 1, 0, 0, 0, 4330, 4331, 1, 0, 0, 0, 4331, 4332, 1, 0, 0, 0, 4332, 4333, 3, 240, 120, 0, 4333, 4334, 3, 242, 121, 0, 4334, 699, 1, 0, 0, 0, 4335, 4359, 3, 612, 306, 0, 4336, 4339, 3, 284, 142, 0, 4337, 4339, 3, 828, 414, 0, 4338, 4336, 1, 0, 0, 0, 4338, 4337, 1, 0, 0, 0, 4339, 4356, 1, 0, 0, 0, 4340, 4342, 5, 17, 0, 0, 4341, 4340, 1, 0, 0, 0, 4341, 4342, 1, 0, 0, 0, 4342, 4343, 1, 0, 0, 0, 4343, 4357, 3, 926, 463, 0, 4344, 4345, 5, 17, 0, 0, 4345, 4346, 5, 399, 0, 0, 4346, 4351, 3, 926, 463, 0, 4347, 4348, 5, 397, 0, 0, 4348, 4350, 3, 926, 463, 0, 4349, 4347, 1, 0, 0, 0, 4350, 4353, 1, 0, 0, 0, 4351, 4349, 1, 0, 0, 0, 4351, 4352, 1, 0, 0, 0, 4352, 4354, 1, 0, 0, 0, 4353, 4351, 1, 0, 0, 0, 4354, 4355, 5, 400, 0, 0, 4355, 4357, 1, 0, 0, 0, 4356, 4341, 1, 0, 0, 0, 4356, 4344, 1, 0, 0, 0, 4356, 4357, 1, 0, 0, 0, 4357, 4359, 1, 0, 0, 0, 4358, 4335, 1, 0, 0, 0, 4358, 4338, 1, 0, 0, 0, 4359, 701, 1, 0, 0, 0, 4360, 4361, 7, 28, 0, 0, 4361, 4362, 3, 706, 353, 0, 4362, 4363, 3, 240, 120, 0, 4363, 4364, 3, 244, 122, 0, 4364, 4365, 5, 370, 0, 0, 4365, 4378, 5, 426, 0, 0, 4366, 4376, 5, 17, 0, 0, 4367, 4370, 5, 399, 0, 0, 4368, 4371, 3, 618, 309, 0, 4369, 4371, 3, 276, 138, 0, 4370, 4368, 1, 0, 0, 0, 4370, 4369, 1, 0, 0, 0, 4371, 4372, 1, 0, 0, 0, 4372, 4373, 5, 400, 0, 0, 4373, 4377, 1, 0, 0, 0, 4374, 4377, 3, 618, 309, 0, 4375, 4377, 3, 276, 138, 0, 4376, 4367, 1, 0, 0, 0, 4376, 4374, 1, 0, 0, 0, 4376, 4375, 1, 0, 0, 0, 4377, 4379, 1, 0, 0, 0, 4378, 4366, 1, 0, 0, 0, 4378, 4379, 1, 0, 0, 0, 4379, 4380, 1, 0, 0, 0, 4380, 4381, 3, 240, 120, 0, 4381, 4382, 3, 242, 121, 0, 4382, 703, 1, 0, 0, 0, 4383, 4386, 3, 612, 306, 0, 4384, 4386, 3, 828, 414, 0, 4385, 4383, 1, 0, 0, 0, 4385, 4384, 1, 0, 0, 0, 4386, 705, 1, 0, 0, 0, 4387, 4392, 3, 704, 352, 0, 4388, 4389, 5, 397, 0, 0, 4389, 4391, 3, 704, 352, 0, 4390, 4388, 1, 0, 0, 0, 4391, 4394, 1, 0, 0, 0, 4392, 4390, 1, 0, 0, 0, 4392, 4393, 1, 0, 0, 0, 4393, 707, 1, 0, 0, 0, 4394, 4392, 1, 0, 0, 0, 4395, 4396, 5, 386, 0, 0, 4396, 4401, 3, 710, 355, 0, 4397, 4398, 5, 397, 0, 0, 4398, 4400, 3, 710, 355, 0, 4399, 4397, 1, 0, 0, 0, 4400, 4403, 1, 0, 0, 0, 4401, 4399, 1, 0, 0, 0, 4401, 4402, 1, 0, 0, 0, 4402, 709, 1, 0, 0, 0, 4403, 4401, 1, 0, 0, 0, 4404, 4405, 3, 926, 463, 0, 4405, 4406, 5, 17, 0, 0, 4406, 4407, 3, 712, 356, 0, 4407, 711, 1, 0, 0, 0, 4408, 4421, 3, 926, 463, 0, 4409, 4411, 5, 399, 0, 0, 4410, 4412, 3, 926, 463, 0, 4411, 4410, 1, 0, 0, 0, 4411, 4412, 1, 0, 0, 0, 4412, 4414, 1, 0, 0, 0, 4413, 4415, 3, 670, 335, 0, 4414, 4413, 1, 0, 0, 0, 4414, 4415, 1, 0, 0, 0, 4415, 4417, 1, 0, 0, 0, 4416, 4418, 3, 714, 357, 0, 4417, 4416, 1, 0, 0, 0, 4417, 4418, 1, 0, 0, 0, 4418, 4419, 1, 0, 0, 0, 4419, 4421, 5, 400, 0, 0, 4420, 4408, 1, 0, 0, 0, 4420, 4409, 1, 0, 0, 0, 4421, 713, 1, 0, 0, 0, 4422, 4425, 3, 716, 358, 0, 4423, 4425, 3, 718, 359, 0, 4424, 4422, 1, 0, 0, 0, 4424, 4423, 1, 0, 0, 0, 4425, 715, 1, 0, 0, 0, 4426, 4433, 5, 292, 0, 0, 4427, 4434, 3, 720, 360, 0, 4428, 4429, 5, 25, 0, 0, 4429, 4430, 3, 722, 361, 0, 4430, 4431, 5, 11, 0, 0, 4431, 4432, 3, 722, 361, 0, 4432, 4434, 1, 0, 0, 0, 4433, 4427, 1, 0, 0, 0, 4433, 4428, 1, 0, 0, 0, 4434, 717, 1, 0, 0, 0, 4435, 4442, 5, 260, 0, 0, 4436, 4443, 3, 720, 360, 0, 4437, 4438, 5, 25, 0, 0, 4438, 4439, 3, 722, 361, 0, 4439, 4440, 5, 11, 0, 0, 4440, 4441, 3, 722, 361, 0, 4441, 4443, 1, 0, 0, 0, 4442, 4436, 1, 0, 0, 0, 4442, 4437, 1, 0, 0, 0, 4443, 719, 1, 0, 0, 0, 4444, 4445, 5, 354, 0, 0, 4445, 4451, 5, 247, 0, 0, 4446, 4447, 5, 62, 0, 0, 4447, 4451, 5, 291, 0, 0, 4448, 4449, 5, 431, 0, 0, 4449, 4451, 5, 247, 0, 0, 4450, 4444, 1, 0, 0, 0, 4450, 4446, 1, 0, 0, 0, 4450, 4448, 1, 0, 0, 0, 4451, 721, 1, 0, 0, 0, 4452, 4453, 7, 29, 0, 0, 4453, 4457, 7, 30, 0, 0, 4454, 4455, 5, 62, 0, 0, 4455, 4457, 5, 291, 0, 0, 4456, 4452, 1, 0, 0, 0, 4456, 4454, 1, 0, 0, 0, 4457, 723, 1, 0, 0, 0, 4458, 4459, 5, 144, 0, 0, 4459, 4460, 5, 32, 0, 0, 4460, 4461, 3, 726, 363, 0, 4461, 725, 1, 0, 0, 0, 4462, 4467, 3, 284, 142, 0, 4463, 4467, 3, 730, 365, 0, 4464, 4467, 3, 732, 366, 0, 4465, 4467, 3, 728, 364, 0, 4466, 4462, 1, 0, 0, 0, 4466, 4463, 1, 0, 0, 0, 4466, 4464, 1, 0, 0, 0, 4466, 4465, 1, 0, 0, 0, 4467, 727, 1, 0, 0, 0, 4468, 4469, 5, 399, 0, 0, 4469, 4470, 5, 400, 0, 0, 4470, 729, 1, 0, 0, 0, 4471, 4474, 5, 290, 0, 0, 4472, 4474, 5, 61, 0, 0, 4473, 4471, 1, 0, 0, 0, 4473, 4472, 1, 0, 0, 0, 4474, 4475, 1, 0, 0, 0, 4475, 4476, 5, 399, 0, 0, 4476, 4481, 3, 828, 414, 0, 4477, 4478, 5, 397, 0, 0, 4478, 4480, 3, 828, 414, 0, 4479, 4477, 1, 0, 0, 0, 4480, 4483, 1, 0, 0, 0, 4481, 4479, 1, 0, 0, 0, 4481, 4482, 1, 0, 0, 0, 4482, 4484, 1, 0, 0, 0, 4483, 4481, 1, 0, 0, 0, 4484, 4485, 5, 400, 0, 0, 4485, 731, 1, 0, 0, 0, 4486, 4491, 3, 748, 374, 0, 4487, 4488, 5, 387, 0, 0, 4488, 4492, 5, 290, 0, 0, 4489, 4490, 5, 387, 0, 0, 4490, 4492, 5, 61, 0, 0, 4491, 4487, 1, 0, 0, 0, 4491, 4489, 1, 0, 0, 0, 4491, 4492, 1, 0, 0, 0, 4492, 4506, 1, 0, 0, 0, 4493, 4494, 5, 145, 0, 0, 4494, 4495, 5, 305, 0, 0, 4495, 4496, 5, 399, 0, 0, 4496, 4501, 3, 734, 367, 0, 4497, 4498, 5, 397, 0, 0, 4498, 4500, 3, 734, 367, 0, 4499, 4497, 1, 0, 0, 0, 4500, 4503, 1, 0, 0, 0, 4501, 4499, 1, 0, 0, 0, 4501, 4502, 1, 0, 0, 0, 4502, 4504, 1, 0, 0, 0, 4503, 4501, 1, 0, 0, 0, 4504, 4505, 5, 400, 0, 0, 4505, 4507, 1, 0, 0, 0, 4506, 4493, 1, 0, 0, 0, 4506, 4507, 1, 0, 0, 0, 4507, 733, 1, 0, 0, 0, 4508, 4511, 3, 736, 368, 0, 4509, 4511, 3, 738, 369, 0, 4510, 4508, 1, 0, 0, 0, 4510, 4509, 1, 0, 0, 0, 4511, 735, 1, 0, 0, 0, 4512, 4514, 5, 399, 0, 0, 4513, 4515, 3, 828, 414, 0, 4514, 4513, 1, 0, 0, 0, 4514, 4515, 1, 0, 0, 0, 4515, 4520, 1, 0, 0, 0, 4516, 4517, 5, 397, 0, 0, 4517, 4519, 3, 828, 414, 0, 4518, 4516, 1, 0, 0, 0, 4519, 4522, 1, 0, 0, 0, 4520, 4518, 1, 0, 0, 0, 4520, 4521, 1, 0, 0, 0, 4521, 4523, 1, 0, 0, 0, 4522, 4520, 1, 0, 0, 0, 4523, 4524, 5, 400, 0, 0, 4524, 737, 1, 0, 0, 0, 4525, 4526, 3, 828, 414, 0, 4526, 739, 1, 0, 0, 0, 4527, 4528, 5, 146, 0, 0, 4528, 4529, 3, 744, 372, 0, 4529, 741, 1, 0, 0, 0, 4530, 4531, 5, 256, 0, 0, 4531, 4532, 3, 828, 414, 0, 4532, 743, 1, 0, 0, 0, 4533, 4534, 3, 828, 414, 0, 4534, 745, 1, 0, 0, 0, 4535, 4536, 5, 399, 0, 0, 4536, 4537, 3, 748, 374, 0, 4537, 4538, 5, 400, 0, 0, 4538, 747, 1, 0, 0, 0, 4539, 4541, 3, 752, 376, 0, 4540, 4542, 3, 750, 375, 0, 4541, 4540, 1, 0, 0, 0, 4541, 4542, 1, 0, 0, 0, 4542, 749, 1, 0, 0, 0, 4543, 4544, 5, 397, 0, 0, 4544, 4546, 3, 752, 376, 0, 4545, 4543, 1, 0, 0, 0, 4546, 4547, 1, 0, 0, 0, 4547, 4545, 1, 0, 0, 0, 4547, 4548, 1, 0, 0, 0, 4548, 751, 1, 0, 0, 0, 4549, 4552, 3, 614, 307, 0, 4550, 4552, 3, 828, 414, 0, 4551, 4549, 1, 0, 0, 0, 4551, 4550, 1, 0, 0, 0, 4552, 753, 1, 0, 0, 0, 4553, 4555, 3, 828, 414, 0, 4554, 4556, 5, 17, 0, 0, 4555, 4554, 1, 0, 0, 0, 4555, 4556, 1, 0, 0, 0, 4556, 4558, 1, 0, 0, 0, 4557, 4559, 3, 926, 463, 0, 4558, 4557, 1, 0, 0, 0, 4558, 4559, 1, 0, 0, 0, 4559, 4564, 1, 0, 0, 0, 4560, 4561, 5, 397, 0, 0, 4561, 4563, 3, 756, 378, 0, 4562, 4560, 1, 0, 0, 0, 4563, 4566, 1, 0, 0, 0, 4564, 4562, 1, 0, 0, 0, 4564, 4565, 1, 0, 0, 0, 4565, 755, 1, 0, 0, 0, 4566, 4564, 1, 0, 0, 0, 4567, 4569, 3, 828, 414, 0, 4568, 4570, 5, 17, 0, 0, 4569, 4568, 1, 0, 0, 0, 4569, 4570, 1, 0, 0, 0, 4570, 4572, 1, 0, 0, 0, 4571, 4573, 3, 926, 463, 0, 4572, 4571, 1, 0, 0, 0, 4572, 4573, 1, 0, 0, 0, 4573, 757, 1, 0, 0, 0, 4574, 4577, 3, 746, 373, 0, 4575, 4577, 3, 748, 374, 0, 4576, 4574, 1, 0, 0, 0, 4576, 4575, 1, 0, 0, 0, 4577, 759, 1, 0, 0, 0, 4578, 4579, 5, 399, 0, 0, 4579, 4584, 3, 342, 171, 0, 4580, 4581, 5, 397, 0, 0, 4581, 4583, 3, 342, 171, 0, 4582, 4580, 1, 0, 0, 0, 4583, 4586, 1, 0, 0, 0, 4584, 4582, 1, 0, 0, 0, 4584, 4585, 1, 0, 0, 0, 4585, 4587, 1, 0, 0, 0, 4586, 4584, 1, 0, 0, 0, 4587, 4588, 5, 400, 0, 0, 4588, 761, 1, 0, 0, 0, 4589, 4594, 3, 342, 171, 0, 4590, 4591, 5, 397, 0, 0, 4591, 4593, 3, 342, 171, 0, 4592, 4590, 1, 0, 0, 0, 4593, 4596, 1, 0, 0, 0, 4594, 4592, 1, 0, 0, 0, 4594, 4595, 1, 0, 0, 0, 4595, 763, 1, 0, 0, 0, 4596, 4594, 1, 0, 0, 0, 4597, 4598, 5, 229, 0, 0, 4598, 4599, 5, 32, 0, 0, 4599, 4604, 3, 342, 171, 0, 4600, 4601, 5, 397, 0, 0, 4601, 4603, 3, 342, 171, 0, 4602, 4600, 1, 0, 0, 0, 4603, 4606, 1, 0, 0, 0, 4604, 4602, 1, 0, 0, 0, 4604, 4605, 1, 0, 0, 0, 4605, 765, 1, 0, 0, 0, 4606, 4604, 1, 0, 0, 0, 4607, 4608, 5, 41, 0, 0, 4608, 4609, 5, 32, 0, 0, 4609, 4610, 3, 758, 379, 0, 4610, 767, 1, 0, 0, 0, 4611, 4612, 5, 237, 0, 0, 4612, 4613, 5, 32, 0, 0, 4613, 4614, 3, 758, 379, 0, 4614, 769, 1, 0, 0, 0, 4615, 4616, 5, 97, 0, 0, 4616, 4617, 5, 32, 0, 0, 4617, 4618, 3, 758, 379, 0, 4618, 771, 1, 0, 0, 0, 4619, 4620, 5, 314, 0, 0, 4620, 4623, 5, 32, 0, 0, 4621, 4624, 3, 760, 380, 0, 4622, 4624, 3, 762, 381, 0, 4623, 4621, 1, 0, 0, 0, 4623, 4622, 1, 0, 0, 0, 4624, 773, 1, 0, 0, 0, 4625, 4626, 5, 349, 0, 0, 4626, 4630, 5, 399, 0, 0, 4627, 4631, 5, 179, 0, 0, 4628, 4631, 5, 343, 0, 0, 4629, 4631, 5, 29, 0, 0, 4630, 4627, 1, 0, 0, 0, 4630, 4628, 1, 0, 0, 0, 4630, 4629, 1, 0, 0, 0, 4630, 4631, 1, 0, 0, 0, 4631, 4633, 1, 0, 0, 0, 4632, 4634, 3, 704, 352, 0, 4633, 4632, 1, 0, 0, 0, 4633, 4634, 1, 0, 0, 0, 4634, 4635, 1, 0, 0, 0, 4635, 4636, 5, 139, 0, 0, 4636, 4637, 3, 704, 352, 0, 4637, 4638, 5, 400, 0, 0, 4638, 775, 1, 0, 0, 0, 4639, 4680, 3, 774, 387, 0, 4640, 4641, 3, 784, 392, 0, 4641, 4656, 5, 399, 0, 0, 4642, 4657, 5, 415, 0, 0, 4643, 4645, 3, 694, 347, 0, 4644, 4643, 1, 0, 0, 0, 4644, 4645, 1, 0, 0, 0, 4645, 4654, 1, 0, 0, 0, 4646, 4651, 3, 704, 352, 0, 4647, 4648, 5, 397, 0, 0, 4648, 4650, 3, 704, 352, 0, 4649, 4647, 1, 0, 0, 0, 4650, 4653, 1, 0, 0, 0, 4651, 4649, 1, 0, 0, 0, 4651, 4652, 1, 0, 0, 0, 4652, 4655, 1, 0, 0, 0, 4653, 4651, 1, 0, 0, 0, 4654, 4646, 1, 0, 0, 0, 4654, 4655, 1, 0, 0, 0, 4655, 4657, 1, 0, 0, 0, 4656, 4642, 1, 0, 0, 0, 4656, 4644, 1, 0, 0, 0, 4657, 4677, 1, 0, 0, 0, 4658, 4659, 5, 400, 0, 0, 4659, 4660, 5, 388, 0, 0, 4660, 4661, 5, 144, 0, 0, 4661, 4662, 5, 399, 0, 0, 4662, 4663, 3, 764, 382, 0, 4663, 4664, 5, 400, 0, 0, 4664, 4678, 1, 0, 0, 0, 4665, 4667, 5, 400, 0, 0, 4666, 4668, 3, 778, 389, 0, 4667, 4666, 1, 0, 0, 0, 4667, 4668, 1, 0, 0, 0, 4668, 4669, 1, 0, 0, 0, 4669, 4670, 5, 234, 0, 0, 4670, 4678, 3, 712, 356, 0, 4671, 4672, 3, 778, 389, 0, 4672, 4673, 5, 400, 0, 0, 4673, 4674, 5, 234, 0, 0, 4674, 4675, 3, 712, 356, 0, 4675, 4678, 1, 0, 0, 0, 4676, 4678, 5, 400, 0, 0, 4677, 4658, 1, 0, 0, 0, 4677, 4665, 1, 0, 0, 0, 4677, 4671, 1, 0, 0, 0, 4677, 4676, 1, 0, 0, 0, 4678, 4680, 1, 0, 0, 0, 4679, 4639, 1, 0, 0, 0, 4679, 4640, 1, 0, 0, 0, 4680, 777, 1, 0, 0, 0, 4681, 4682, 5, 281, 0, 0, 4682, 4686, 5, 220, 0, 0, 4683, 4684, 5, 152, 0, 0, 4684, 4686, 5, 220, 0, 0, 4685, 4681, 1, 0, 0, 0, 4685, 4683, 1, 0, 0, 0, 4686, 779, 1, 0, 0, 0, 4687, 4688, 3, 928, 464, 0, 4688, 781, 1, 0, 0, 0, 4689, 4692, 3, 786, 393, 0, 4690, 4692, 5, 426, 0, 0, 4691, 4689, 1, 0, 0, 0, 4691, 4690, 1, 0, 0, 0, 4692, 783, 1, 0, 0, 0, 4693, 4696, 3, 786, 393, 0, 4694, 4696, 3, 788, 394, 0, 4695, 4693, 1, 0, 0, 0, 4695, 4694, 1, 0, 0, 0, 4696, 785, 1, 0, 0, 0, 4697, 4698, 3, 928, 464, 0, 4698, 787, 1, 0, 0, 0, 4699, 4702, 3, 934, 467, 0, 4700, 4702, 3, 924, 462, 0, 4701, 4699, 1, 0, 0, 0, 4701, 4700, 1, 0, 0, 0, 4702, 789, 1, 0, 0, 0, 4703, 4704, 5, 36, 0, 0, 4704, 4705, 5, 399, 0, 0, 4705, 4706, 3, 828, 414, 0, 4706, 4707, 5, 17, 0, 0, 4707, 4710, 3, 382, 191, 0, 4708, 4709, 5, 137, 0, 0, 4709, 4711, 5, 426, 0, 0, 4710, 4708, 1, 0, 0, 0, 4710, 4711, 1, 0, 0, 0, 4711, 4712, 1, 0, 0, 0, 4712, 4713, 5, 400, 0, 0, 4713, 791, 1, 0, 0, 0, 4714, 4715, 5, 35, 0, 0, 4715, 4721, 3, 828, 414, 0, 4716, 4717, 5, 383, 0, 0, 4717, 4718, 3, 828, 414, 0, 4718, 4719, 5, 335, 0, 0, 4719, 4720, 3, 828, 414, 0, 4720, 4722, 1, 0, 0, 0, 4721, 4716, 1, 0, 0, 0, 4722, 4723, 1, 0, 0, 0, 4723, 4721, 1, 0, 0, 0, 4723, 4724, 1, 0, 0, 0, 4724, 4727, 1, 0, 0, 0, 4725, 4726, 5, 105, 0, 0, 4726, 4728, 3, 828, 414, 0, 4727, 4725, 1, 0, 0, 0, 4727, 4728, 1, 0, 0, 0, 4728, 4729, 1, 0, 0, 0, 4729, 4730, 5, 108, 0, 0, 4730, 793, 1, 0, 0, 0, 4731, 4737, 5, 35, 0, 0, 4732, 4733, 5, 383, 0, 0, 4733, 4734, 3, 828, 414, 0, 4734, 4735, 5, 335, 0, 0, 4735, 4736, 3, 828, 414, 0, 4736, 4738, 1, 0, 0, 0, 4737, 4732, 1, 0, 0, 0, 4738, 4739, 1, 0, 0, 0, 4739, 4737, 1, 0, 0, 0, 4739, 4740, 1, 0, 0, 0, 4740, 4743, 1, 0, 0, 0, 4741, 4742, 5, 105, 0, 0, 4742, 4744, 3, 828, 414, 0, 4743, 4741, 1, 0, 0, 0, 4743, 4744, 1, 0, 0, 0, 4744, 4745, 1, 0, 0, 0, 4745, 4746, 5, 108, 0, 0, 4746, 795, 1, 0, 0, 0, 4747, 4748, 5, 132, 0, 0, 4748, 4749, 5, 399, 0, 0, 4749, 4752, 3, 828, 414, 0, 4750, 4751, 5, 341, 0, 0, 4751, 4753, 3, 798, 399, 0, 4752, 4750, 1, 0, 0, 0, 4752, 4753, 1, 0, 0, 0, 4753, 4754, 1, 0, 0, 0, 4754, 4755, 5, 400, 0, 0, 4755, 797, 1, 0, 0, 0, 4756, 4765, 3, 976, 488, 0, 4757, 4765, 5, 257, 0, 0, 4758, 4765, 3, 978, 489, 0, 4759, 4765, 3, 980, 490, 0, 4760, 4765, 3, 982, 491, 0, 4761, 4765, 3, 984, 492, 0, 4762, 4765, 3, 986, 493, 0, 4763, 4765, 3, 988, 494, 0, 4764, 4756, 1, 0, 0, 0, 4764, 4757, 1, 0, 0, 0, 4764, 4758, 1, 0, 0, 0, 4764, 4759, 1, 0, 0, 0, 4764, 4760, 1, 0, 0, 0, 4764, 4761, 1, 0, 0, 0, 4764, 4762, 1, 0, 0, 0, 4764, 4763, 1, 0, 0, 0, 4765, 799, 1, 0, 0, 0, 4766, 4767, 5, 124, 0, 0, 4767, 4768, 5, 399, 0, 0, 4768, 4769, 3, 802, 401, 0, 4769, 4770, 5, 139, 0, 0, 4770, 4771, 3, 828, 414, 0, 4771, 4772, 5, 400, 0, 0, 4772, 801, 1, 0, 0, 0, 4773, 4782, 3, 976, 488, 0, 4774, 4782, 5, 257, 0, 0, 4775, 4782, 3, 978, 489, 0, 4776, 4782, 3, 980, 490, 0, 4777, 4782, 3, 982, 491, 0, 4778, 4782, 3, 984, 492, 0, 4779, 4782, 3, 986, 493, 0, 4780, 4782, 3, 988, 494, 0, 4781, 4773, 1, 0, 0, 0, 4781, 4774, 1, 0, 0, 0, 4781, 4775, 1, 0, 0, 0, 4781, 4776, 1, 0, 0, 0, 4781, 4777, 1, 0, 0, 0, 4781, 4778, 1, 0, 0, 0, 4781, 4779, 1, 0, 0, 0, 4781, 4780, 1, 0, 0, 0, 4782, 803, 1, 0, 0, 0, 4783, 4797, 3, 822, 411, 0, 4784, 4797, 5, 431, 0, 0, 4785, 4797, 3, 814, 407, 0, 4786, 4797, 3, 816, 408, 0, 4787, 4797, 3, 818, 409, 0, 4788, 4797, 5, 426, 0, 0, 4789, 4797, 3, 810, 405, 0, 4790, 4797, 5, 428, 0, 0, 4791, 4797, 5, 429, 0, 0, 4792, 4797, 3, 812, 406, 0, 4793, 4797, 3, 906, 453, 0, 4794, 4797, 5, 219, 0, 0, 4795, 4797, 3, 806, 403, 0, 4796, 4783, 1, 0, 0, 0, 4796, 4784, 1, 0, 0, 0, 4796, 4785, 1, 0, 0, 0, 4796, 4786, 1, 0, 0, 0, 4796, 4787, 1, 0, 0, 0, 4796, 4788, 1, 0, 0, 0, 4796, 4789, 1, 0, 0, 0, 4796, 4790, 1, 0, 0, 0, 4796, 4791, 1, 0, 0, 0, 4796, 4792, 1, 0, 0, 0, 4796, 4793, 1, 0, 0, 0, 4796, 4794, 1, 0, 0, 0, 4796, 4795, 1, 0, 0, 0, 4797, 805, 1, 0, 0, 0, 4798, 4799, 3, 808, 404, 0, 4799, 807, 1, 0, 0, 0, 4800, 4801, 5, 424, 0, 0, 4801, 809, 1, 0, 0, 0, 4802, 4804, 5, 426, 0, 0, 4803, 4805, 5, 426, 0, 0, 4804, 4803, 1, 0, 0, 0, 4805, 4806, 1, 0, 0, 0, 4806, 4804, 1, 0, 0, 0, 4806, 4807, 1, 0, 0, 0, 4807, 811, 1, 0, 0, 0, 4808, 4809, 5, 433, 0, 0, 4809, 4810, 5, 427, 0, 0, 4810, 813, 1, 0, 0, 0, 4811, 4812, 5, 71, 0, 0, 4812, 4815, 5, 426, 0, 0, 4813, 4815, 5, 63, 0, 0, 4814, 4811, 1, 0, 0, 0, 4814, 4813, 1, 0, 0, 0, 4815, 815, 1, 0, 0, 0, 4816, 4817, 5, 337, 0, 0, 4817, 4820, 5, 426, 0, 0, 4818, 4820, 5, 64, 0, 0, 4819, 4816, 1, 0, 0, 0, 4819, 4818, 1, 0, 0, 0, 4820, 817, 1, 0, 0, 0, 4821, 4822, 5, 338, 0, 0, 4822, 4823, 5, 426, 0, 0, 4823, 819, 1, 0, 0, 0, 4824, 4825, 7, 24, 0, 0, 4825, 821, 1, 0, 0, 0, 4826, 4827, 3, 820, 410, 0, 4827, 4828, 3, 826, 413, 0, 4828, 823, 1, 0, 0, 0, 4829, 4830, 5, 399, 0, 0, 4830, 4831, 3, 820, 410, 0, 4831, 4832, 5, 400, 0, 0, 4832, 4833, 3, 826, 413, 0, 4833, 4845, 1, 0, 0, 0, 4834, 4840, 5, 165, 0, 0, 4835, 4841, 3, 820, 410, 0, 4836, 4837, 5, 399, 0, 0, 4837, 4838, 3, 828, 414, 0, 4838, 4839, 5, 400, 0, 0, 4839, 4841, 1, 0, 0, 0, 4840, 4835, 1, 0, 0, 0, 4840, 4836, 1, 0, 0, 0, 4841, 4842, 1, 0, 0, 0, 4842, 4843, 3, 826, 413, 0, 4843, 4845, 1, 0, 0, 0, 4844, 4829, 1, 0, 0, 0, 4844, 4834, 1, 0, 0, 0, 4845, 825, 1, 0, 0, 0, 4846, 4847, 3, 976, 488, 0, 4847, 4848, 5, 341, 0, 0, 4848, 4849, 3, 978, 489, 0, 4849, 4861, 1, 0, 0, 0, 4850, 4851, 3, 982, 491, 0, 4851, 4852, 5, 341, 0, 0, 4852, 4853, 3, 988, 494, 0, 4853, 4861, 1, 0, 0, 0, 4854, 4861, 3, 976, 488, 0, 4855, 4861, 3, 978, 489, 0, 4856, 4861, 3, 982, 491, 0, 4857, 4861, 3, 984, 492, 0, 4858, 4861, 3, 986, 493, 0, 4859, 4861, 3, 988, 494, 0, 4860, 4846, 1, 0, 0, 0, 4860, 4850, 1, 0, 0, 0, 4860, 4854, 1, 0, 0, 0, 4860, 4855, 1, 0, 0, 0, 4860, 4856, 1, 0, 0, 0, 4860, 4857, 1, 0, 0, 0, 4860, 4858, 1, 0, 0, 0, 4860, 4859, 1, 0, 0, 0, 4861, 827, 1, 0, 0, 0, 4862, 4863, 3, 904, 452, 0, 4863, 829, 1, 0, 0, 0, 4864, 4876, 3, 804, 402, 0, 4865, 4876, 3, 824, 412, 0, 4866, 4876, 3, 790, 395, 0, 4867, 4876, 3, 800, 400, 0, 4868, 4876, 3, 796, 398, 0, 4869, 4876, 3, 792, 396, 0, 4870, 4876, 3, 794, 397, 0, 4871, 4876, 3, 866, 433, 0, 4872, 4876, 3, 776, 388, 0, 4873, 4876, 3, 746, 373, 0, 4874, 4876, 3, 926, 463, 0, 4875, 4864, 1, 0, 0, 0, 4875, 4865, 1, 0, 0, 0, 4875, 4866, 1, 0, 0, 0, 4875, 4867, 1, 0, 0, 0, 4875, 4868, 1, 0, 0, 0, 4875, 4869, 1, 0, 0, 0, 4875, 4870, 1, 0, 0, 0, 4875, 4871, 1, 0, 0, 0, 4875, 4872, 1, 0, 0, 0, 4875, 4873, 1, 0, 0, 0, 4875, 4874, 1, 0, 0, 0, 4876, 831, 1, 0, 0, 0, 4877, 4886, 3, 830, 415, 0, 4878, 4879, 5, 401, 0, 0, 4879, 4880, 3, 828, 414, 0, 4880, 4881, 5, 402, 0, 0, 4881, 4885, 1, 0, 0, 0, 4882, 4883, 5, 395, 0, 0, 4883, 4885, 3, 926, 463, 0, 4884, 4878, 1, 0, 0, 0, 4884, 4882, 1, 0, 0, 0, 4885, 4888, 1, 0, 0, 0, 4886, 4884, 1, 0, 0, 0, 4886, 4887, 1, 0, 0, 0, 4887, 833, 1, 0, 0, 0, 4888, 4886, 1, 0, 0, 0, 4889, 4890, 7, 31, 0, 0, 4890, 835, 1, 0, 0, 0, 4891, 4893, 3, 834, 417, 0, 4892, 4891, 1, 0, 0, 0, 4893, 4896, 1, 0, 0, 0, 4894, 4892, 1, 0, 0, 0, 4894, 4895, 1, 0, 0, 0, 4895, 4897, 1, 0, 0, 0, 4896, 4894, 1, 0, 0, 0, 4897, 4898, 3, 832, 416, 0, 4898, 837, 1, 0, 0, 0, 4899, 4900, 5, 423, 0, 0, 4900, 839, 1, 0, 0, 0, 4901, 4907, 3, 836, 418, 0, 4902, 4903, 3, 838, 419, 0, 4903, 4904, 3, 836, 418, 0, 4904, 4906, 1, 0, 0, 0, 4905, 4902, 1, 0, 0, 0, 4906, 4909, 1, 0, 0, 0, 4907, 4905, 1, 0, 0, 0, 4907, 4908, 1, 0, 0, 0, 4908, 841, 1, 0, 0, 0, 4909, 4907, 1, 0, 0, 0, 4910, 4911, 7, 32, 0, 0, 4911, 843, 1, 0, 0, 0, 4912, 4918, 3, 840, 420, 0, 4913, 4914, 3, 842, 421, 0, 4914, 4915, 3, 840, 420, 0, 4915, 4917, 1, 0, 0, 0, 4916, 4913, 1, 0, 0, 0, 4917, 4920, 1, 0, 0, 0, 4918, 4916, 1, 0, 0, 0, 4918, 4919, 1, 0, 0, 0, 4919, 845, 1, 0, 0, 0, 4920, 4918, 1, 0, 0, 0, 4921, 4922, 7, 33, 0, 0, 4922, 847, 1, 0, 0, 0, 4923, 4929, 3, 844, 422, 0, 4924, 4925, 3, 846, 423, 0, 4925, 4926, 3, 844, 422, 0, 4926, 4928, 1, 0, 0, 0, 4927, 4924, 1, 0, 0, 0, 4928, 4931, 1, 0, 0, 0, 4929, 4927, 1, 0, 0, 0, 4929, 4930, 1, 0, 0, 0, 4930, 849, 1, 0, 0, 0, 4931, 4929, 1, 0, 0, 0, 4932, 4933, 5, 422, 0, 0, 4933, 851, 1, 0, 0, 0, 4934, 4940, 3, 848, 424, 0, 4935, 4936, 3, 850, 425, 0, 4936, 4937, 3, 848, 424, 0, 4937, 4939, 1, 0, 0, 0, 4938, 4935, 1, 0, 0, 0, 4939, 4942, 1, 0, 0, 0, 4940, 4938, 1, 0, 0, 0, 4940, 4941, 1, 0, 0, 0, 4941, 853, 1, 0, 0, 0, 4942, 4940, 1, 0, 0, 0, 4943, 4944, 5, 419, 0, 0, 4944, 855, 1, 0, 0, 0, 4945, 4951, 3, 852, 426, 0, 4946, 4947, 3, 854, 427, 0, 4947, 4948, 3, 852, 426, 0, 4948, 4950, 1, 0, 0, 0, 4949, 4946, 1, 0, 0, 0, 4950, 4953, 1, 0, 0, 0, 4951, 4949, 1, 0, 0, 0, 4951, 4952, 1, 0, 0, 0, 4952, 857, 1, 0, 0, 0, 4953, 4951, 1, 0, 0, 0, 4954, 4955, 5, 421, 0, 0, 4955, 859, 1, 0, 0, 0, 4956, 4962, 3, 856, 428, 0, 4957, 4958, 3, 858, 429, 0, 4958, 4959, 3, 856, 428, 0, 4959, 4961, 1, 0, 0, 0, 4960, 4957, 1, 0, 0, 0, 4961, 4964, 1, 0, 0, 0, 4962, 4960, 1, 0, 0, 0, 4962, 4963, 1, 0, 0, 0, 4963, 861, 1, 0, 0, 0, 4964, 4962, 1, 0, 0, 0, 4965, 4966, 7, 34, 0, 0, 4966, 863, 1, 0, 0, 0, 4967, 4973, 3, 862, 431, 0, 4968, 4973, 5, 408, 0, 0, 4969, 4973, 5, 409, 0, 0, 4970, 4973, 5, 410, 0, 0, 4971, 4973, 5, 411, 0, 0, 4972, 4967, 1, 0, 0, 0, 4972, 4968, 1, 0, 0, 0, 4972, 4969, 1, 0, 0, 0, 4972, 4970, 1, 0, 0, 0, 4972, 4971, 1, 0, 0, 0, 4973, 865, 1, 0, 0, 0, 4974, 4975, 5, 399, 0, 0, 4975, 4976, 3, 410, 205, 0, 4976, 4977, 5, 400, 0, 0, 4977, 867, 1, 0, 0, 0, 4978, 4982, 3, 870, 435, 0, 4979, 4980, 5, 117, 0, 0, 4980, 4982, 3, 866, 433, 0, 4981, 4978, 1, 0, 0, 0, 4981, 4979, 1, 0, 0, 0, 4982, 869, 1, 0, 0, 0, 4983, 4985, 3, 860, 430, 0, 4984, 4986, 3, 872, 436, 0, 4985, 4984, 1, 0, 0, 0, 4985, 4986, 1, 0, 0, 0, 4986, 871, 1, 0, 0, 0, 4987, 4988, 3, 864, 432, 0, 4988, 4989, 3, 860, 430, 0, 4989, 4994, 1, 0, 0, 0, 4990, 4994, 3, 874, 437, 0, 4991, 4992, 5, 216, 0, 0, 4992, 4994, 3, 882, 441, 0, 4993, 4987, 1, 0, 0, 0, 4993, 4990, 1, 0, 0, 0, 4993, 4991, 1, 0, 0, 0, 4994, 873, 1, 0, 0, 0, 4995, 4996, 5, 154, 0, 0, 4996, 5007, 3, 880, 440, 0, 4997, 4998, 5, 25, 0, 0, 4998, 4999, 3, 860, 430, 0, 4999, 5000, 5, 11, 0, 0, 5000, 5001, 3, 860, 430, 0, 5001, 5007, 1, 0, 0, 0, 5002, 5003, 5, 184, 0, 0, 5003, 5004, 7, 35, 0, 0, 5004, 5007, 3, 746, 373, 0, 5005, 5007, 3, 876, 438, 0, 5006, 4995, 1, 0, 0, 0, 5006, 4997, 1, 0, 0, 0, 5006, 5002, 1, 0, 0, 0, 5006, 5005, 1, 0, 0, 0, 5007, 875, 1, 0, 0, 0, 5008, 5009, 3, 922, 461, 0, 5009, 5010, 3, 878, 439, 0, 5010, 5011, 3, 866, 433, 0, 5011, 877, 1, 0, 0, 0, 5012, 5013, 7, 36, 0, 0, 5013, 879, 1, 0, 0, 0, 5014, 5017, 3, 866, 433, 0, 5015, 5017, 3, 746, 373, 0, 5016, 5014, 1, 0, 0, 0, 5016, 5015, 1, 0, 0, 0, 5017, 881, 1, 0, 0, 0, 5018, 5019, 3, 862, 431, 0, 5019, 5020, 3, 860, 430, 0, 5020, 5023, 1, 0, 0, 0, 5021, 5023, 3, 874, 437, 0, 5022, 5018, 1, 0, 0, 0, 5022, 5021, 1, 0, 0, 0, 5023, 883, 1, 0, 0, 0, 5024, 5025, 5, 167, 0, 0, 5025, 5026, 5, 96, 0, 0, 5026, 5027, 5, 139, 0, 0, 5027, 885, 1, 0, 0, 0, 5028, 5036, 5, 405, 0, 0, 5029, 5036, 5, 406, 0, 0, 5030, 5036, 5, 407, 0, 0, 5031, 5032, 5, 167, 0, 0, 5032, 5033, 5, 216, 0, 0, 5033, 5034, 5, 96, 0, 0, 5034, 5036, 5, 139, 0, 0, 5035, 5028, 1, 0, 0, 0, 5035, 5029, 1, 0, 0, 0, 5035, 5030, 1, 0, 0, 0, 5035, 5031, 1, 0, 0, 0, 5036, 887, 1, 0, 0, 0, 5037, 5046, 3, 868, 434, 0, 5038, 5039, 3, 886, 443, 0, 5039, 5040, 3, 868, 434, 0, 5040, 5045, 1, 0, 0, 0, 5041, 5042, 3, 884, 442, 0, 5042, 5043, 3, 868, 434, 0, 5043, 5045, 1, 0, 0, 0, 5044, 5038, 1, 0, 0, 0, 5044, 5041, 1, 0, 0, 0, 5045, 5048, 1, 0, 0, 0, 5046, 5044, 1, 0, 0, 0, 5046, 5047, 1, 0, 0, 0, 5047, 889, 1, 0, 0, 0, 5048, 5046, 1, 0, 0, 0, 5049, 5062, 5, 219, 0, 0, 5050, 5062, 5, 350, 0, 0, 5051, 5062, 5, 125, 0, 0, 5052, 5062, 5, 360, 0, 0, 5053, 5054, 5, 216, 0, 0, 5054, 5062, 5, 219, 0, 0, 5055, 5056, 5, 216, 0, 0, 5056, 5062, 5, 350, 0, 0, 5057, 5058, 5, 216, 0, 0, 5058, 5062, 5, 125, 0, 0, 5059, 5060, 5, 216, 0, 0, 5060, 5062, 5, 360, 0, 0, 5061, 5049, 1, 0, 0, 0, 5061, 5050, 1, 0, 0, 0, 5061, 5051, 1, 0, 0, 0, 5061, 5052, 1, 0, 0, 0, 5061, 5053, 1, 0, 0, 0, 5061, 5055, 1, 0, 0, 0, 5061, 5057, 1, 0, 0, 0, 5061, 5059, 1, 0, 0, 0, 5062, 891, 1, 0, 0, 0, 5063, 5066, 3, 888, 444, 0, 5064, 5065, 5, 167, 0, 0, 5065, 5067, 3, 890, 445, 0, 5066, 5064, 1, 0, 0, 0, 5066, 5067, 1, 0, 0, 0, 5067, 893, 1, 0, 0, 0, 5068, 5069, 5, 216, 0, 0, 5069, 895, 1, 0, 0, 0, 5070, 5072, 3, 894, 447, 0, 5071, 5070, 1, 0, 0, 0, 5072, 5075, 1, 0, 0, 0, 5073, 5071, 1, 0, 0, 0, 5073, 5074, 1, 0, 0, 0, 5074, 5076, 1, 0, 0, 0, 5075, 5073, 1, 0, 0, 0, 5076, 5077, 3, 892, 446, 0, 5077, 897, 1, 0, 0, 0, 5078, 5079, 5, 11, 0, 0, 5079, 899, 1, 0, 0, 0, 5080, 5086, 3, 896, 448, 0, 5081, 5082, 3, 898, 449, 0, 5082, 5083, 3, 896, 448, 0, 5083, 5085, 1, 0, 0, 0, 5084, 5081, 1, 0, 0, 0, 5085, 5088, 1, 0, 0, 0, 5086, 5084, 1, 0, 0, 0, 5086, 5087, 1, 0, 0, 0, 5087, 901, 1, 0, 0, 0, 5088, 5086, 1, 0, 0, 0, 5089, 5090, 5, 228, 0, 0, 5090, 903, 1, 0, 0, 0, 5091, 5097, 3, 900, 450, 0, 5092, 5093, 3, 902, 451, 0, 5093, 5094, 3, 900, 450, 0, 5094, 5096, 1, 0, 0, 0, 5095, 5092, 1, 0, 0, 0, 5096, 5099, 1, 0, 0, 0, 5097, 5095, 1, 0, 0, 0, 5097, 5098, 1, 0, 0, 0, 5098, 905, 1, 0, 0, 0, 5099, 5097, 1, 0, 0, 0, 5100, 5101, 7, 37, 0, 0, 5101, 907, 1, 0, 0, 0, 5102, 5103, 7, 37, 0, 0, 5103, 909, 1, 0, 0, 0, 5104, 5106, 3, 660, 330, 0, 5105, 5107, 3, 912, 456, 0, 5106, 5105, 1, 0, 0, 0, 5106, 5107, 1, 0, 0, 0, 5107, 911, 1, 0, 0, 0, 5108, 5109, 5, 237, 0, 0, 5109, 5110, 5, 399, 0, 0, 5110, 5115, 3, 914, 457, 0, 5111, 5112, 5, 397, 0, 0, 5112, 5114, 3, 914, 457, 0, 5113, 5111, 1, 0, 0, 0, 5114, 5117, 1, 0, 0, 0, 5115, 5113, 1, 0, 0, 0, 5115, 5116, 1, 0, 0, 0, 5116, 5118, 1, 0, 0, 0, 5117, 5115, 1, 0, 0, 0, 5118, 5119, 5, 400, 0, 0, 5119, 913, 1, 0, 0, 0, 5120, 5123, 3, 926, 463, 0, 5121, 5122, 5, 405, 0, 0, 5122, 5124, 3, 804, 402, 0, 5123, 5121, 1, 0, 0, 0, 5123, 5124, 1, 0, 0, 0, 5124, 915, 1, 0, 0, 0, 5125, 5126, 5, 399, 0, 0, 5126, 5131, 3, 918, 459, 0, 5127, 5128, 5, 397, 0, 0, 5128, 5130, 3, 918, 459, 0, 5129, 5127, 1, 0, 0, 0, 5130, 5133, 1, 0, 0, 0, 5131, 5129, 1, 0, 0, 0, 5131, 5132, 1, 0, 0, 0, 5132, 5134, 1, 0, 0, 0, 5133, 5131, 1, 0, 0, 0, 5134, 5135, 5, 400, 0, 0, 5135, 917, 1, 0, 0, 0, 5136, 5137, 3, 926, 463, 0, 5137, 5138, 3, 920, 460, 0, 5138, 5139, 3, 804, 402, 0, 5139, 919, 1, 0, 0, 0, 5140, 5143, 5, 184, 0, 0, 5141, 5143, 3, 922, 461, 0, 5142, 5140, 1, 0, 0, 0, 5142, 5141, 1, 0, 0, 0, 5143, 921, 1, 0, 0, 0, 5144, 5145, 7, 38, 0, 0, 5145, 923, 1, 0, 0, 0, 5146, 5147, 7, 39, 0, 0, 5147, 925, 1, 0, 0, 0, 5148, 5151, 5, 432, 0, 0, 5149, 5151, 3, 932, 466, 0, 5150, 5148, 1, 0, 0, 0, 5150, 5149, 1, 0, 0, 0, 5151, 927, 1, 0, 0, 0, 5152, 5155, 3, 926, 463, 0, 5153, 5154, 5, 395, 0, 0, 5154, 5156, 3, 926, 463, 0, 5155, 5153, 1, 0, 0, 0, 5155, 5156, 1, 0, 0, 0, 5156, 929, 1, 0, 0, 0, 5157, 5158, 3, 926, 463, 0, 5158, 931, 1, 0, 0, 0, 5159, 5160, 7, 40, 0, 0, 5160, 933, 1, 0, 0, 0, 5161, 5162, 7, 41, 0, 0, 5162, 935, 1, 0, 0, 0, 5163, 5164, 3, 938, 469, 0, 5164, 5165, 5, 0, 0, 1, 5165, 937, 1, 0, 0, 0, 5166, 5171, 3, 940, 470, 0, 5167, 5168, 5, 397, 0, 0, 5168, 5170, 3, 940, 470, 0, 5169, 5167, 1, 0, 0, 0, 5170, 5173, 1, 0, 0, 0, 5171, 5169, 1, 0, 0, 0, 5171, 5172, 1, 0, 0, 0, 5172, 939, 1, 0, 0, 0, 5173, 5171, 1, 0, 0, 0, 5174, 5179, 3, 942, 471, 0, 5175, 5176, 5, 399, 0, 0, 5176, 5177, 3, 944, 472, 0, 5177, 5178, 5, 400, 0, 0, 5178, 5180, 1, 0, 0, 0, 5179, 5175, 1, 0, 0, 0, 5179, 5180, 1, 0, 0, 0, 5180, 941, 1, 0, 0, 0, 5181, 5182, 7, 42, 0, 0, 5182, 943, 1, 0, 0, 0, 5183, 5188, 3, 946, 473, 0, 5184, 5185, 5, 397, 0, 0, 5185, 5187, 3, 946, 473, 0, 5186, 5184, 1, 0, 0, 0, 5187, 5190, 1, 0, 0, 0, 5188, 5186, 1, 0, 0, 0, 5188, 5189, 1, 0, 0, 0, 5189, 945, 1, 0, 0, 0, 5190, 5188, 1, 0, 0, 0, 5191, 5192, 7, 43, 0, 0, 5192, 947, 1, 0, 0, 0, 5193, 5194, 5, 249, 0, 0, 5194, 5195, 3, 926, 463, 0, 5195, 5196, 5, 139, 0, 0, 5196, 5197, 3, 394, 197, 0, 5197, 949, 1, 0, 0, 0, 5198, 5199, 5, 115, 0, 0, 5199, 5200, 3, 926, 463, 0, 5200, 5201, 5, 370, 0, 0, 5201, 5202, 3, 952, 476, 0, 5202, 951, 1, 0, 0, 0, 5203, 5208, 3, 804, 402, 0, 5204, 5205, 5, 397, 0, 0, 5205, 5207, 3, 804, 402, 0, 5206, 5204, 1, 0, 0, 0, 5207, 5210, 1, 0, 0, 0, 5208, 5206, 1, 0, 0, 0, 5208, 5209, 1, 0, 0, 0, 5209, 953, 1, 0, 0, 0, 5210, 5208, 1, 0, 0, 0, 5211, 5226, 3, 964, 482, 0, 5212, 5226, 3, 992, 496, 0, 5213, 5226, 3, 998, 499, 0, 5214, 5226, 3, 994, 497, 0, 5215, 5226, 3, 996, 498, 0, 5216, 5226, 3, 1020, 510, 0, 5217, 5226, 3, 1022, 511, 0, 5218, 5226, 3, 1024, 512, 0, 5219, 5226, 3, 1030, 515, 0, 5220, 5226, 3, 1032, 516, 0, 5221, 5226, 3, 1034, 517, 0, 5222, 5226, 3, 1036, 518, 0, 5223, 5226, 3, 1038, 519, 0, 5224, 5226, 3, 1040, 520, 0, 5225, 5211, 1, 0, 0, 0, 5225, 5212, 1, 0, 0, 0, 5225, 5213, 1, 0, 0, 0, 5225, 5214, 1, 0, 0, 0, 5225, 5215, 1, 0, 0, 0, 5225, 5216, 1, 0, 0, 0, 5225, 5217, 1, 0, 0, 0, 5225, 5218, 1, 0, 0, 0, 5225, 5219, 1, 0, 0, 0, 5225, 5220, 1, 0, 0, 0, 5225, 5221, 1, 0, 0, 0, 5225, 5222, 1, 0, 0, 0, 5225, 5223, 1, 0, 0, 0, 5225, 5224, 1, 0, 0, 0, 5226, 955, 1, 0, 0, 0, 5227, 5228, 5, 259, 0, 0, 5228, 5229, 5, 405, 0, 0, 5229, 5235, 5, 431, 0, 0, 5230, 5231, 5, 83, 0, 0, 5231, 5232, 5, 246, 0, 0, 5232, 5233, 5, 405, 0, 0, 5233, 5235, 3, 1000, 500, 0, 5234, 5227, 1, 0, 0, 0, 5234, 5230, 1, 0, 0, 0, 5235, 957, 1, 0, 0, 0, 5236, 5241, 3, 956, 478, 0, 5237, 5238, 5, 397, 0, 0, 5238, 5240, 3, 956, 478, 0, 5239, 5237, 1, 0, 0, 0, 5240, 5243, 1, 0, 0, 0, 5241, 5239, 1, 0, 0, 0, 5241, 5242, 1, 0, 0, 0, 5242, 959, 1, 0, 0, 0, 5243, 5241, 1, 0, 0, 0, 5244, 5248, 5, 259, 0, 0, 5245, 5246, 5, 83, 0, 0, 5246, 5248, 5, 246, 0, 0, 5247, 5244, 1, 0, 0, 0, 5247, 5245, 1, 0, 0, 0, 5248, 961, 1, 0, 0, 0, 5249, 5254, 3, 960, 480, 0, 5250, 5251, 5, 397, 0, 0, 5251, 5253, 3, 960, 480, 0, 5252, 5250, 1, 0, 0, 0, 5253, 5256, 1, 0, 0, 0, 5254, 5252, 1, 0, 0, 0, 5254, 5255, 1, 0, 0, 0, 5255, 963, 1, 0, 0, 0, 5256, 5254, 1, 0, 0, 0, 5257, 5258, 5, 58, 0, 0, 5258, 5259, 5, 280, 0, 0, 5259, 5261, 5, 243, 0, 0, 5260, 5262, 3, 44, 22, 0, 5261, 5260, 1, 0, 0, 0, 5261, 5262, 1, 0, 0, 0, 5262, 5272, 1, 0, 0, 0, 5263, 5264, 3, 926, 463, 0, 5264, 5265, 5, 184, 0, 0, 5265, 5266, 3, 926, 463, 0, 5266, 5273, 1, 0, 0, 0, 5267, 5270, 3, 926, 463, 0, 5268, 5269, 5, 387, 0, 0, 5269, 5271, 3, 958, 479, 0, 5270, 5268, 1, 0, 0, 0, 5270, 5271, 1, 0, 0, 0, 5271, 5273, 1, 0, 0, 0, 5272, 5263, 1, 0, 0, 0, 5272, 5267, 1, 0, 0, 0, 5273, 965, 1, 0, 0, 0, 5274, 5275, 5, 387, 0, 0, 5275, 5276, 5, 278, 0, 0, 5276, 967, 1, 0, 0, 0, 5277, 5279, 5, 2, 0, 0, 5278, 5280, 3, 966, 483, 0, 5279, 5278, 1, 0, 0, 0, 5279, 5280, 1, 0, 0, 0, 5280, 969, 1, 0, 0, 0, 5281, 5282, 7, 44, 0, 0, 5282, 971, 1, 0, 0, 0, 5283, 5284, 7, 45, 0, 0, 5284, 973, 1, 0, 0, 0, 5285, 5286, 5, 362, 0, 0, 5286, 975, 1, 0, 0, 0, 5287, 5288, 7, 46, 0, 0, 5288, 977, 1, 0, 0, 0, 5289, 5290, 7, 47, 0, 0, 5290, 979, 1, 0, 0, 0, 5291, 5292, 7, 48, 0, 0, 5292, 981, 1, 0, 0, 0, 5293, 5294, 7, 49, 0, 0, 5294, 983, 1, 0, 0, 0, 5295, 5296, 7, 50, 0, 0, 5296, 985, 1, 0, 0, 0, 5297, 5298, 7, 51, 0, 0, 5298, 987, 1, 0, 0, 0, 5299, 5300, 7, 52, 0, 0, 5300, 989, 1, 0, 0, 0, 5301, 5302, 7, 53, 0, 0, 5302, 991, 1, 0, 0, 0, 5303, 5304, 5, 9, 0, 0, 5304, 5305, 5, 280, 0, 0, 5305, 5306, 5, 243, 0, 0, 5306, 5324, 3, 926, 463, 0, 5307, 5325, 5, 373, 0, 0, 5308, 5325, 3, 972, 486, 0, 5309, 5310, 5, 304, 0, 0, 5310, 5325, 3, 958, 479, 0, 5311, 5312, 5, 363, 0, 0, 5312, 5325, 3, 962, 481, 0, 5313, 5314, 5, 274, 0, 0, 5314, 5315, 5, 341, 0, 0, 5315, 5325, 3, 926, 463, 0, 5316, 5318, 3, 968, 484, 0, 5317, 5319, 3, 970, 485, 0, 5318, 5317, 1, 0, 0, 0, 5318, 5319, 1, 0, 0, 0, 5319, 5325, 1, 0, 0, 0, 5320, 5322, 3, 970, 485, 0, 5321, 5323, 3, 968, 484, 0, 5322, 5321, 1, 0, 0, 0, 5322, 5323, 1, 0, 0, 0, 5323, 5325, 1, 0, 0, 0, 5324, 5307, 1, 0, 0, 0, 5324, 5308, 1, 0, 0, 0, 5324, 5309, 1, 0, 0, 0, 5324, 5311, 1, 0, 0, 0, 5324, 5313, 1, 0, 0, 0, 5324, 5316, 1, 0, 0, 0, 5324, 5320, 1, 0, 0, 0, 5325, 993, 1, 0, 0, 0, 5326, 5329, 3, 970, 485, 0, 5327, 5329, 3, 972, 486, 0, 5328, 5326, 1, 0, 0, 0, 5328, 5327, 1, 0, 0, 0, 5329, 5330, 1, 0, 0, 0, 5330, 5331, 5, 390, 0, 0, 5331, 5332, 5, 197, 0, 0, 5332, 995, 1, 0, 0, 0, 5333, 5345, 5, 278, 0, 0, 5334, 5335, 5, 3, 0, 0, 5335, 5336, 5, 280, 0, 0, 5336, 5337, 5, 243, 0, 0, 5337, 5338, 5, 387, 0, 0, 5338, 5346, 3, 926, 463, 0, 5339, 5340, 5, 280, 0, 0, 5340, 5341, 5, 243, 0, 0, 5341, 5342, 3, 926, 463, 0, 5342, 5343, 5, 387, 0, 0, 5343, 5344, 3, 926, 463, 0, 5344, 5346, 1, 0, 0, 0, 5345, 5334, 1, 0, 0, 0, 5345, 5339, 1, 0, 0, 0, 5346, 997, 1, 0, 0, 0, 5347, 5348, 5, 101, 0, 0, 5348, 5349, 5, 280, 0, 0, 5349, 5351, 5, 243, 0, 0, 5350, 5352, 3, 40, 20, 0, 5351, 5350, 1, 0, 0, 0, 5351, 5352, 1, 0, 0, 0, 5352, 5353, 1, 0, 0, 0, 5353, 5354, 3, 926, 463, 0, 5354, 999, 1, 0, 0, 0, 5355, 5360, 3, 926, 463, 0, 5356, 5357, 5, 395, 0, 0, 5357, 5359, 3, 926, 463, 0, 5358, 5356, 1, 0, 0, 0, 5359, 5362, 1, 0, 0, 0, 5360, 5358, 1, 0, 0, 0, 5360, 5361, 1, 0, 0, 0, 5361, 1001, 1, 0, 0, 0, 5362, 5360, 1, 0, 0, 0, 5363, 5364, 3, 1010, 505, 0, 5364, 1003, 1, 0, 0, 0, 5365, 5366, 3, 1002, 501, 0, 5366, 5367, 5, 0, 0, 1, 5367, 1005, 1, 0, 0, 0, 5368, 5373, 3, 1008, 504, 0, 5369, 5370, 5, 228, 0, 0, 5370, 5372, 3, 1008, 504, 0, 5371, 5369, 1, 0, 0, 0, 5372, 5375, 1, 0, 0, 0, 5373, 5371, 1, 0, 0, 0, 5373, 5374, 1, 0, 0, 0, 5374, 1007, 1, 0, 0, 0, 5375, 5373, 1, 0, 0, 0, 5376, 5381, 3, 1010, 505, 0, 5377, 5378, 5, 11, 0, 0, 5378, 5380, 3, 1010, 505, 0, 5379, 5377, 1, 0, 0, 0, 5380, 5383, 1, 0, 0, 0, 5381, 5379, 1, 0, 0, 0, 5381, 5382, 1, 0, 0, 0, 5382, 1009, 1, 0, 0, 0, 5383, 5381, 1, 0, 0, 0, 5384, 5385, 3, 926, 463, 0, 5385, 5386, 3, 1014, 507, 0, 5386, 5387, 3, 1012, 506, 0, 5387, 1011, 1, 0, 0, 0, 5388, 5389, 7, 24, 0, 0, 5389, 1013, 1, 0, 0, 0, 5390, 5391, 5, 411, 0, 0, 5391, 1015, 1, 0, 0, 0, 5392, 5397, 5, 176, 0, 0, 5393, 5394, 5, 211, 0, 0, 5394, 5395, 5, 341, 0, 0, 5395, 5397, 3, 1000, 500, 0, 5396, 5392, 1, 0, 0, 0, 5396, 5393, 1, 0, 0, 0, 5397, 1017, 1, 0, 0, 0, 5398, 5399, 3, 1016, 508, 0, 5399, 5400, 5, 0, 0, 1, 5400, 1019, 1, 0, 0, 0, 5401, 5402, 5, 58, 0, 0, 5402, 5403, 5, 348, 0, 0, 5403, 5404, 3, 926, 463, 0, 5404, 5405, 5, 395, 0, 0, 5405, 5406, 3, 926, 463, 0, 5406, 5407, 5, 383, 0, 0, 5407, 5408, 3, 1002, 501, 0, 5408, 5409, 5, 99, 0, 0, 5409, 5410, 3, 1016, 508, 0, 5410, 1021, 1, 0, 0, 0, 5411, 5412, 5, 9, 0, 0, 5412, 5413, 5, 348, 0, 0, 5413, 5414, 3, 926, 463, 0, 5414, 5415, 5, 395, 0, 0, 5415, 5432, 3, 926, 463, 0, 5416, 5417, 5, 383, 0, 0, 5417, 5418, 3, 1002, 501, 0, 5418, 5419, 5, 99, 0, 0, 5419, 5420, 3, 1016, 508, 0, 5420, 5433, 1, 0, 0, 0, 5421, 5422, 5, 4, 0, 0, 5422, 5426, 5, 341, 0, 0, 5423, 5424, 5, 101, 0, 0, 5424, 5426, 5, 139, 0, 0, 5425, 5421, 1, 0, 0, 0, 5425, 5423, 1, 0, 0, 0, 5426, 5430, 1, 0, 0, 0, 5427, 5428, 5, 246, 0, 0, 5428, 5431, 3, 1000, 500, 0, 5429, 5431, 5, 362, 0, 0, 5430, 5427, 1, 0, 0, 0, 5430, 5429, 1, 0, 0, 0, 5431, 5433, 1, 0, 0, 0, 5432, 5416, 1, 0, 0, 0, 5432, 5425, 1, 0, 0, 0, 5433, 1023, 1, 0, 0, 0, 5434, 5435, 5, 101, 0, 0, 5435, 5436, 5, 348, 0, 0, 5436, 5437, 3, 926, 463, 0, 5437, 5438, 5, 395, 0, 0, 5438, 5439, 3, 926, 463, 0, 5439, 1025, 1, 0, 0, 0, 5440, 5441, 5, 8, 0, 0, 5441, 5442, 5, 405, 0, 0, 5442, 5453, 5, 431, 0, 0, 5443, 5444, 5, 259, 0, 0, 5444, 5445, 5, 405, 0, 0, 5445, 5453, 5, 431, 0, 0, 5446, 5447, 5, 294, 0, 0, 5447, 5448, 5, 405, 0, 0, 5448, 5453, 5, 426, 0, 0, 5449, 5450, 5, 240, 0, 0, 5450, 5451, 5, 405, 0, 0, 5451, 5453, 3, 1000, 500, 0, 5452, 5440, 1, 0, 0, 0, 5452, 5443, 1, 0, 0, 0, 5452, 5446, 1, 0, 0, 0, 5452, 5449, 1, 0, 0, 0, 5453, 1027, 1, 0, 0, 0, 5454, 5459, 3, 1026, 513, 0, 5455, 5456, 5, 397, 0, 0, 5456, 5458, 3, 1026, 513, 0, 5457, 5455, 1, 0, 0, 0, 5458, 5461, 1, 0, 0, 0, 5459, 5457, 1, 0, 0, 0, 5459, 5460, 1, 0, 0, 0, 5460, 1029, 1, 0, 0, 0, 5461, 5459, 1, 0, 0, 0, 5462, 5463, 5, 58, 0, 0, 5463, 5464, 5, 246, 0, 0, 5464, 5465, 3, 926, 463, 0, 5465, 5466, 5, 395, 0, 0, 5466, 5467, 3, 1000, 500, 0, 5467, 5468, 5, 387, 0, 0, 5468, 5469, 3, 1028, 514, 0, 5469, 1031, 1, 0, 0, 0, 5470, 5471, 5, 9, 0, 0, 5471, 5472, 5, 246, 0, 0, 5472, 5473, 3, 926, 463, 0, 5473, 5474, 5, 395, 0, 0, 5474, 5482, 3, 1000, 500, 0, 5475, 5476, 5, 304, 0, 0, 5476, 5483, 3, 1028, 514, 0, 5477, 5478, 5, 363, 0, 0, 5478, 5483, 5, 294, 0, 0, 5479, 5480, 7, 54, 0, 0, 5480, 5481, 5, 348, 0, 0, 5481, 5483, 3, 926, 463, 0, 5482, 5475, 1, 0, 0, 0, 5482, 5477, 1, 0, 0, 0, 5482, 5479, 1, 0, 0, 0, 5483, 1033, 1, 0, 0, 0, 5484, 5485, 5, 101, 0, 0, 5485, 5486, 5, 246, 0, 0, 5486, 5487, 3, 926, 463, 0, 5487, 5488, 5, 395, 0, 0, 5488, 5489, 3, 1000, 500, 0, 5489, 1035, 1, 0, 0, 0, 5490, 5491, 5, 58, 0, 0, 5491, 5492, 7, 55, 0, 0, 5492, 5493, 5, 200, 0, 0, 5493, 5494, 5, 426, 0, 0, 5494, 5495, 5, 154, 0, 0, 5495, 5499, 3, 926, 463, 0, 5496, 5497, 5, 341, 0, 0, 5497, 5500, 3, 1000, 500, 0, 5498, 5500, 3, 974, 487, 0, 5499, 5496, 1, 0, 0, 0, 5499, 5498, 1, 0, 0, 0, 5500, 5504, 1, 0, 0, 0, 5501, 5502, 5, 387, 0, 0, 5502, 5503, 5, 229, 0, 0, 5503, 5505, 5, 431, 0, 0, 5504, 5501, 1, 0, 0, 0, 5504, 5505, 1, 0, 0, 0, 5505, 1037, 1, 0, 0, 0, 5506, 5507, 5, 9, 0, 0, 5507, 5508, 7, 55, 0, 0, 5508, 5509, 5, 200, 0, 0, 5509, 5510, 5, 426, 0, 0, 5510, 5511, 5, 154, 0, 0, 5511, 5515, 3, 926, 463, 0, 5512, 5513, 5, 341, 0, 0, 5513, 5516, 3, 1000, 500, 0, 5514, 5516, 3, 974, 487, 0, 5515, 5512, 1, 0, 0, 0, 5515, 5514, 1, 0, 0, 0, 5516, 5520, 1, 0, 0, 0, 5517, 5518, 5, 387, 0, 0, 5518, 5519, 5, 229, 0, 0, 5519, 5521, 5, 431, 0, 0, 5520, 5517, 1, 0, 0, 0, 5520, 5521, 1, 0, 0, 0, 5521, 1039, 1, 0, 0, 0, 5522, 5523, 5, 101, 0, 0, 5523, 5524, 7, 55, 0, 0, 5524, 5525, 5, 200, 0, 0, 5525, 5526, 5, 426, 0, 0, 5526, 5527, 5, 154, 0, 0, 5527, 5528, 3, 926, 463, 0, 5528, 1041, 1, 0, 0, 0, 651, 1045, 1052, 1055, 1061, 1067, 1074, 1084, 1087, 1091, 1111, 1116, 1121, 1127, 1134, 1147, 1151, 1155, 1160, 1167, 1171, 1176, 1183, 1187, 1198, 1204, 1211, 1260, 1288, 1292, 1296, 1299, 1302, 1307, 1313, 1317, 1323, 1325, 1342, 1354, 1358, 1365, 1373, 1376, 1381, 1385, 1388, 1398, 1406, 1410, 1413, 1417, 1421, 1424, 1429, 1435, 1440, 1445, 1449, 1460, 1462, 1466, 1476, 1480, 1486, 1489, 1496, 1501, 1509, 1514, 1518, 1526, 1531, 1537, 1543, 1546, 1549, 1552, 1561, 1569, 1574, 1582, 1589, 1592, 1595, 1597, 1605, 1608, 1611, 1614, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1637, 1649, 1655, 1663, 1665, 1675, 1681, 1696, 1713, 1718, 1722, 1726, 1733, 1740, 1746, 1750, 1753, 1760, 1783, 1788, 1792, 1800, 1809, 1813, 1819, 1825, 1832, 1835, 1841, 1848, 1856, 1865, 1874, 1881, 1901, 1908, 1910, 1917, 1927, 1935, 1939, 1943, 1956, 1965, 1981, 1985, 1990, 1995, 1998, 2001, 2005, 2008, 2011, 2016, 2024, 2028, 2035, 2038, 2041, 2044, 2056, 2062, 2088, 2096, 2100, 2103, 2106, 2109, 2112, 2115, 2118, 2121, 2130, 2140, 2143, 2163, 2169, 2175, 2178, 2180, 2187, 2194, 2207, 2212, 2221, 2229, 2237, 2247, 2260, 2273, 2294, 2298, 2313, 2319, 2322, 2325, 2328, 2331, 2335, 2349, 2357, 2360, 2375, 2409, 2417, 2422, 2430, 2435, 2440, 2450, 2458, 2466, 2474, 2482, 2486, 2496, 2500, 2508, 2517, 2520, 2524, 2531, 2537, 2541, 2547, 2551, 2563, 2572, 2583, 2587, 2594, 2606, 2613, 2622, 2625, 2632, 2638, 2644, 2647, 2650, 2656, 2660, 2664, 2669, 2673, 2677, 2681, 2689, 2693, 2697, 2701, 2705, 2713, 2717, 2721, 2729, 2734, 2739, 2743, 2747, 2754, 2763, 2771, 2783, 2801, 2804, 2810, 2836, 2839, 2845, 2853, 2861, 2874, 2881, 2884, 2887, 2890, 2893, 2896, 2899, 2902, 2905, 2908, 2911, 2916, 2919, 2922, 2925, 2928, 2931, 2934, 2937, 2940, 2943, 2946, 2948, 2954, 2958, 2961, 2964, 2967, 2970, 2973, 2980, 2984, 2987, 2990, 2993, 2996, 2999, 3006, 3009, 3017, 3021, 3028, 3030, 3033, 3038, 3041, 3045, 3050, 3056, 3062, 3070, 3078, 3085, 3091, 3100, 3103, 3107, 3120, 3124, 3135, 3142, 3146, 3151, 3154, 3164, 3166, 3170, 3177, 3182, 3202, 3209, 3232, 3248, 3265, 3271, 3288, 3301, 3305, 3309, 3316, 3344, 3351, 3356, 3361, 3366, 3371, 3379, 3385, 3389, 3392, 3395, 3401, 3408, 3418, 3422, 3427, 3431, 3437, 3444, 3451, 3462, 3471, 3475, 3478, 3481, 3489, 3492, 3500, 3503, 3511, 3515, 3520, 3524, 3533, 3549, 3564, 3566, 3582, 3589, 3606, 3609, 3612, 3615, 3621, 3644, 3652, 3666, 3669, 3674, 3700, 3704, 3707, 3710, 3714, 3719, 3722, 3725, 3728, 3731, 3737, 3740, 3743, 3746, 3749, 3752, 3755, 3758, 3761, 3764, 3768, 3770, 3776, 3781, 3784, 3787, 3790, 3796, 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3827, 3829, 3831, 3836, 3840, 3843, 3846, 3851, 3869, 3878, 3890, 3898, 3910, 3913, 3919, 3926, 3933, 3940, 3947, 3956, 3960, 3967, 3972, 3976, 3992, 3996, 3998, 4001, 4014, 4017, 4020, 4032, 4035, 4042, 4051, 4056, 4058, 4060, 4077, 4080, 4089, 4095, 4099, 4102, 4105, 4108, 4111, 4123, 4127, 4130, 4133, 4141, 4148, 4151, 4158, 4161, 4166, 4173, 4181, 4187, 4192, 4196, 4201, 4208, 4222, 4225, 4229, 4246, 4254, 4257, 4270, 4279, 4282, 4288, 4291, 4296, 4299, 4308, 4322, 4328, 4330, 4338, 4341, 4351, 4356, 4358, 4370, 4376, 4378, 4385, 4392, 4401, 4411, 4414, 4417, 4420, 4424, 4433, 4442, 4450, 4456, 4466, 4473, 4481, 4491, 4501, 4506, 4510, 4514, 4520, 4541, 4547, 4551, 4555, 4558, 4564, 4569, 4572, 4576, 4584, 4594, 4604, 4623, 4630, 4633, 4644, 4651, 4654, 4656, 4667, 4677, 4679, 4685, 4691, 4695, 4701, 4710, 4723, 4727, 4739, 4743, 4752, 4764, 4781, 4796, 4806, 4814, 4819, 4840, 4844, 4860, 4875, 4884, 4886, 4894, 4907, 4918, 4929, 4940, 4951, 4962, 4972, 4981, 4985, 4993, 5006, 5016, 5022, 5035, 5044, 5046, 5061, 5066, 5073, 5086, 5097, 5106, 5115, 5123, 5131, 5142, 5150, 5155, 5171, 5179, 5188, 5208, 5225, 5234, 5241, 5247, 5254, 5261, 5270, 5272, 5279, 5318, 5322, 5324, 5328, 5345, 5351, 5360, 5373, 5381, 5396, 5425, 5430, 5432, 5452, 5459, 5482, 5499, 5504, 5515, 5520] \ No newline at end of file +[4, 1, 438, 5536, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 2, 139, 7, 139, 2, 140, 7, 140, 2, 141, 7, 141, 2, 142, 7, 142, 2, 143, 7, 143, 2, 144, 7, 144, 2, 145, 7, 145, 2, 146, 7, 146, 2, 147, 7, 147, 2, 148, 7, 148, 2, 149, 7, 149, 2, 150, 7, 150, 2, 151, 7, 151, 2, 152, 7, 152, 2, 153, 7, 153, 2, 154, 7, 154, 2, 155, 7, 155, 2, 156, 7, 156, 2, 157, 7, 157, 2, 158, 7, 158, 2, 159, 7, 159, 2, 160, 7, 160, 2, 161, 7, 161, 2, 162, 7, 162, 2, 163, 7, 163, 2, 164, 7, 164, 2, 165, 7, 165, 2, 166, 7, 166, 2, 167, 7, 167, 2, 168, 7, 168, 2, 169, 7, 169, 2, 170, 7, 170, 2, 171, 7, 171, 2, 172, 7, 172, 2, 173, 7, 173, 2, 174, 7, 174, 2, 175, 7, 175, 2, 176, 7, 176, 2, 177, 7, 177, 2, 178, 7, 178, 2, 179, 7, 179, 2, 180, 7, 180, 2, 181, 7, 181, 2, 182, 7, 182, 2, 183, 7, 183, 2, 184, 7, 184, 2, 185, 7, 185, 2, 186, 7, 186, 2, 187, 7, 187, 2, 188, 7, 188, 2, 189, 7, 189, 2, 190, 7, 190, 2, 191, 7, 191, 2, 192, 7, 192, 2, 193, 7, 193, 2, 194, 7, 194, 2, 195, 7, 195, 2, 196, 7, 196, 2, 197, 7, 197, 2, 198, 7, 198, 2, 199, 7, 199, 2, 200, 7, 200, 2, 201, 7, 201, 2, 202, 7, 202, 2, 203, 7, 203, 2, 204, 7, 204, 2, 205, 7, 205, 2, 206, 7, 206, 2, 207, 7, 207, 2, 208, 7, 208, 2, 209, 7, 209, 2, 210, 7, 210, 2, 211, 7, 211, 2, 212, 7, 212, 2, 213, 7, 213, 2, 214, 7, 214, 2, 215, 7, 215, 2, 216, 7, 216, 2, 217, 7, 217, 2, 218, 7, 218, 2, 219, 7, 219, 2, 220, 7, 220, 2, 221, 7, 221, 2, 222, 7, 222, 2, 223, 7, 223, 2, 224, 7, 224, 2, 225, 7, 225, 2, 226, 7, 226, 2, 227, 7, 227, 2, 228, 7, 228, 2, 229, 7, 229, 2, 230, 7, 230, 2, 231, 7, 231, 2, 232, 7, 232, 2, 233, 7, 233, 2, 234, 7, 234, 2, 235, 7, 235, 2, 236, 7, 236, 2, 237, 7, 237, 2, 238, 7, 238, 2, 239, 7, 239, 2, 240, 7, 240, 2, 241, 7, 241, 2, 242, 7, 242, 2, 243, 7, 243, 2, 244, 7, 244, 2, 245, 7, 245, 2, 246, 7, 246, 2, 247, 7, 247, 2, 248, 7, 248, 2, 249, 7, 249, 2, 250, 7, 250, 2, 251, 7, 251, 2, 252, 7, 252, 2, 253, 7, 253, 2, 254, 7, 254, 2, 255, 7, 255, 2, 256, 7, 256, 2, 257, 7, 257, 2, 258, 7, 258, 2, 259, 7, 259, 2, 260, 7, 260, 2, 261, 7, 261, 2, 262, 7, 262, 2, 263, 7, 263, 2, 264, 7, 264, 2, 265, 7, 265, 2, 266, 7, 266, 2, 267, 7, 267, 2, 268, 7, 268, 2, 269, 7, 269, 2, 270, 7, 270, 2, 271, 7, 271, 2, 272, 7, 272, 2, 273, 7, 273, 2, 274, 7, 274, 2, 275, 7, 275, 2, 276, 7, 276, 2, 277, 7, 277, 2, 278, 7, 278, 2, 279, 7, 279, 2, 280, 7, 280, 2, 281, 7, 281, 2, 282, 7, 282, 2, 283, 7, 283, 2, 284, 7, 284, 2, 285, 7, 285, 2, 286, 7, 286, 2, 287, 7, 287, 2, 288, 7, 288, 2, 289, 7, 289, 2, 290, 7, 290, 2, 291, 7, 291, 2, 292, 7, 292, 2, 293, 7, 293, 2, 294, 7, 294, 2, 295, 7, 295, 2, 296, 7, 296, 2, 297, 7, 297, 2, 298, 7, 298, 2, 299, 7, 299, 2, 300, 7, 300, 2, 301, 7, 301, 2, 302, 7, 302, 2, 303, 7, 303, 2, 304, 7, 304, 2, 305, 7, 305, 2, 306, 7, 306, 2, 307, 7, 307, 2, 308, 7, 308, 2, 309, 7, 309, 2, 310, 7, 310, 2, 311, 7, 311, 2, 312, 7, 312, 2, 313, 7, 313, 2, 314, 7, 314, 2, 315, 7, 315, 2, 316, 7, 316, 2, 317, 7, 317, 2, 318, 7, 318, 2, 319, 7, 319, 2, 320, 7, 320, 2, 321, 7, 321, 2, 322, 7, 322, 2, 323, 7, 323, 2, 324, 7, 324, 2, 325, 7, 325, 2, 326, 7, 326, 2, 327, 7, 327, 2, 328, 7, 328, 2, 329, 7, 329, 2, 330, 7, 330, 2, 331, 7, 331, 2, 332, 7, 332, 2, 333, 7, 333, 2, 334, 7, 334, 2, 335, 7, 335, 2, 336, 7, 336, 2, 337, 7, 337, 2, 338, 7, 338, 2, 339, 7, 339, 2, 340, 7, 340, 2, 341, 7, 341, 2, 342, 7, 342, 2, 343, 7, 343, 2, 344, 7, 344, 2, 345, 7, 345, 2, 346, 7, 346, 2, 347, 7, 347, 2, 348, 7, 348, 2, 349, 7, 349, 2, 350, 7, 350, 2, 351, 7, 351, 2, 352, 7, 352, 2, 353, 7, 353, 2, 354, 7, 354, 2, 355, 7, 355, 2, 356, 7, 356, 2, 357, 7, 357, 2, 358, 7, 358, 2, 359, 7, 359, 2, 360, 7, 360, 2, 361, 7, 361, 2, 362, 7, 362, 2, 363, 7, 363, 2, 364, 7, 364, 2, 365, 7, 365, 2, 366, 7, 366, 2, 367, 7, 367, 2, 368, 7, 368, 2, 369, 7, 369, 2, 370, 7, 370, 2, 371, 7, 371, 2, 372, 7, 372, 2, 373, 7, 373, 2, 374, 7, 374, 2, 375, 7, 375, 2, 376, 7, 376, 2, 377, 7, 377, 2, 378, 7, 378, 2, 379, 7, 379, 2, 380, 7, 380, 2, 381, 7, 381, 2, 382, 7, 382, 2, 383, 7, 383, 2, 384, 7, 384, 2, 385, 7, 385, 2, 386, 7, 386, 2, 387, 7, 387, 2, 388, 7, 388, 2, 389, 7, 389, 2, 390, 7, 390, 2, 391, 7, 391, 2, 392, 7, 392, 2, 393, 7, 393, 2, 394, 7, 394, 2, 395, 7, 395, 2, 396, 7, 396, 2, 397, 7, 397, 2, 398, 7, 398, 2, 399, 7, 399, 2, 400, 7, 400, 2, 401, 7, 401, 2, 402, 7, 402, 2, 403, 7, 403, 2, 404, 7, 404, 2, 405, 7, 405, 2, 406, 7, 406, 2, 407, 7, 407, 2, 408, 7, 408, 2, 409, 7, 409, 2, 410, 7, 410, 2, 411, 7, 411, 2, 412, 7, 412, 2, 413, 7, 413, 2, 414, 7, 414, 2, 415, 7, 415, 2, 416, 7, 416, 2, 417, 7, 417, 2, 418, 7, 418, 2, 419, 7, 419, 2, 420, 7, 420, 2, 421, 7, 421, 2, 422, 7, 422, 2, 423, 7, 423, 2, 424, 7, 424, 2, 425, 7, 425, 2, 426, 7, 426, 2, 427, 7, 427, 2, 428, 7, 428, 2, 429, 7, 429, 2, 430, 7, 430, 2, 431, 7, 431, 2, 432, 7, 432, 2, 433, 7, 433, 2, 434, 7, 434, 2, 435, 7, 435, 2, 436, 7, 436, 2, 437, 7, 437, 2, 438, 7, 438, 2, 439, 7, 439, 2, 440, 7, 440, 2, 441, 7, 441, 2, 442, 7, 442, 2, 443, 7, 443, 2, 444, 7, 444, 2, 445, 7, 445, 2, 446, 7, 446, 2, 447, 7, 447, 2, 448, 7, 448, 2, 449, 7, 449, 2, 450, 7, 450, 2, 451, 7, 451, 2, 452, 7, 452, 2, 453, 7, 453, 2, 454, 7, 454, 2, 455, 7, 455, 2, 456, 7, 456, 2, 457, 7, 457, 2, 458, 7, 458, 2, 459, 7, 459, 2, 460, 7, 460, 2, 461, 7, 461, 2, 462, 7, 462, 2, 463, 7, 463, 2, 464, 7, 464, 2, 465, 7, 465, 2, 466, 7, 466, 2, 467, 7, 467, 2, 468, 7, 468, 2, 469, 7, 469, 2, 470, 7, 470, 2, 471, 7, 471, 2, 472, 7, 472, 2, 473, 7, 473, 2, 474, 7, 474, 2, 475, 7, 475, 2, 476, 7, 476, 2, 477, 7, 477, 2, 478, 7, 478, 2, 479, 7, 479, 2, 480, 7, 480, 2, 481, 7, 481, 2, 482, 7, 482, 2, 483, 7, 483, 2, 484, 7, 484, 2, 485, 7, 485, 2, 486, 7, 486, 2, 487, 7, 487, 2, 488, 7, 488, 2, 489, 7, 489, 2, 490, 7, 490, 2, 491, 7, 491, 2, 492, 7, 492, 2, 493, 7, 493, 2, 494, 7, 494, 2, 495, 7, 495, 2, 496, 7, 496, 2, 497, 7, 497, 2, 498, 7, 498, 2, 499, 7, 499, 2, 500, 7, 500, 2, 501, 7, 501, 2, 502, 7, 502, 2, 503, 7, 503, 2, 504, 7, 504, 2, 505, 7, 505, 2, 506, 7, 506, 2, 507, 7, 507, 2, 508, 7, 508, 2, 509, 7, 509, 2, 510, 7, 510, 2, 511, 7, 511, 2, 512, 7, 512, 2, 513, 7, 513, 2, 514, 7, 514, 2, 515, 7, 515, 2, 516, 7, 516, 2, 517, 7, 517, 2, 518, 7, 518, 2, 519, 7, 519, 2, 520, 7, 520, 1, 0, 5, 0, 1044, 8, 0, 10, 0, 12, 0, 1047, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 1053, 8, 1, 1, 1, 3, 1, 1056, 8, 1, 1, 2, 1, 2, 5, 2, 1060, 8, 2, 10, 2, 12, 2, 1063, 9, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1068, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 1075, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 1085, 8, 3, 1, 3, 3, 3, 1088, 8, 3, 1, 3, 1, 3, 3, 3, 1092, 8, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 1112, 8, 6, 1, 7, 1, 7, 1, 7, 3, 7, 1117, 8, 7, 1, 7, 1, 7, 1, 7, 3, 7, 1122, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 1128, 8, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 3, 9, 1135, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 1148, 8, 10, 1, 11, 1, 11, 3, 11, 1152, 8, 11, 1, 11, 1, 11, 3, 11, 1156, 8, 11, 1, 11, 1, 11, 1, 11, 3, 11, 1161, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 1168, 8, 12, 1, 12, 1, 12, 3, 12, 1172, 8, 12, 1, 13, 1, 13, 1, 13, 3, 13, 1177, 8, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 1184, 8, 14, 1, 14, 1, 14, 3, 14, 1188, 8, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 5, 16, 1197, 8, 16, 10, 16, 12, 16, 1200, 9, 16, 1, 17, 1, 17, 1, 17, 3, 17, 1205, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 1212, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 1261, 8, 19, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 3, 28, 1289, 8, 28, 1, 28, 1, 28, 3, 28, 1293, 8, 28, 1, 28, 1, 28, 3, 28, 1297, 8, 28, 1, 28, 3, 28, 1300, 8, 28, 1, 28, 3, 28, 1303, 8, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1308, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1314, 8, 28, 1, 28, 1, 28, 3, 28, 1318, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 1324, 8, 28, 3, 28, 1326, 8, 28, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 5, 32, 1341, 8, 32, 10, 32, 12, 32, 1344, 9, 32, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 3, 35, 1355, 8, 35, 1, 35, 1, 35, 3, 35, 1359, 8, 35, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 1366, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 1374, 8, 37, 1, 37, 3, 37, 1377, 8, 37, 1, 38, 1, 38, 1, 38, 3, 38, 1382, 8, 38, 1, 38, 1, 38, 3, 38, 1386, 8, 38, 1, 38, 3, 38, 1389, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 3, 40, 1399, 8, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 1407, 8, 40, 5, 40, 1409, 8, 40, 10, 40, 12, 40, 1412, 9, 40, 3, 40, 1414, 8, 40, 1, 41, 1, 41, 3, 41, 1418, 8, 41, 1, 42, 1, 42, 3, 42, 1422, 8, 42, 1, 42, 3, 42, 1425, 8, 42, 1, 43, 1, 43, 1, 43, 3, 43, 1430, 8, 43, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1436, 8, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1441, 8, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1446, 8, 43, 1, 43, 1, 43, 3, 43, 1450, 8, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 1461, 8, 44, 3, 44, 1463, 8, 44, 1, 44, 1, 44, 3, 44, 1467, 8, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1477, 8, 47, 1, 47, 1, 47, 3, 47, 1481, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1487, 8, 47, 1, 47, 3, 47, 1490, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1497, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1502, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1510, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1515, 8, 47, 1, 47, 1, 47, 3, 47, 1519, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1527, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1532, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1538, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1544, 8, 47, 1, 47, 3, 47, 1547, 8, 47, 1, 47, 3, 47, 1550, 8, 47, 1, 47, 3, 47, 1553, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1562, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1570, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1575, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1583, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1590, 8, 47, 1, 47, 3, 47, 1593, 8, 47, 1, 47, 3, 47, 1596, 8, 47, 3, 47, 1598, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1606, 8, 47, 1, 47, 3, 47, 1609, 8, 47, 1, 47, 3, 47, 1612, 8, 47, 1, 47, 3, 47, 1615, 8, 47, 1, 47, 3, 47, 1618, 8, 47, 1, 47, 3, 47, 1621, 8, 47, 1, 47, 3, 47, 1624, 8, 47, 1, 47, 3, 47, 1627, 8, 47, 1, 47, 3, 47, 1630, 8, 47, 1, 47, 3, 47, 1633, 8, 47, 1, 47, 3, 47, 1636, 8, 47, 3, 47, 1638, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1650, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1656, 8, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 1664, 8, 47, 3, 47, 1666, 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 1676, 8, 48, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 1682, 8, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 1697, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 3, 56, 1714, 8, 56, 1, 56, 1, 56, 1, 56, 3, 56, 1719, 8, 56, 1, 57, 1, 57, 3, 57, 1723, 8, 57, 1, 57, 1, 57, 3, 57, 1727, 8, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 3, 58, 1734, 8, 58, 1, 58, 1, 58, 1, 58, 5, 58, 1739, 8, 58, 10, 58, 12, 58, 1742, 9, 58, 1, 58, 1, 58, 1, 58, 3, 58, 1747, 8, 58, 1, 59, 1, 59, 3, 59, 1751, 8, 59, 1, 59, 3, 59, 1754, 8, 59, 1, 59, 1, 59, 1, 59, 5, 59, 1759, 8, 59, 10, 59, 12, 59, 1762, 9, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 3, 63, 1784, 8, 63, 1, 64, 1, 64, 1, 64, 3, 64, 1789, 8, 64, 1, 64, 1, 64, 3, 64, 1793, 8, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 3, 66, 1801, 8, 66, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 1810, 8, 68, 1, 68, 1, 68, 3, 68, 1814, 8, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 1820, 8, 68, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 1826, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 1833, 8, 69, 1, 69, 3, 69, 1836, 8, 69, 1, 69, 1, 69, 1, 69, 1, 69, 3, 69, 1842, 8, 69, 1, 70, 1, 70, 1, 70, 5, 70, 1847, 8, 70, 10, 70, 12, 70, 1850, 9, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 1857, 8, 71, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 5, 73, 1864, 8, 73, 10, 73, 12, 73, 1867, 9, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 3, 74, 1875, 8, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 3, 75, 1882, 8, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 3, 80, 1902, 8, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 3, 80, 1909, 8, 80, 3, 80, 1911, 8, 80, 1, 81, 1, 81, 1, 81, 5, 81, 1916, 8, 81, 10, 81, 12, 81, 1919, 9, 81, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 84, 1, 84, 3, 84, 1928, 8, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 3, 84, 1936, 8, 84, 1, 85, 1, 85, 3, 85, 1940, 8, 85, 1, 85, 1, 85, 3, 85, 1944, 8, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 1957, 8, 87, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 88, 3, 88, 1966, 8, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 1, 89, 3, 89, 1982, 8, 89, 1, 89, 1, 89, 3, 89, 1986, 8, 89, 1, 89, 1, 89, 1, 89, 3, 89, 1991, 8, 89, 1, 89, 1, 89, 1, 89, 3, 89, 1996, 8, 89, 1, 89, 3, 89, 1999, 8, 89, 1, 89, 3, 89, 2002, 8, 89, 1, 89, 1, 89, 3, 89, 2006, 8, 89, 1, 89, 3, 89, 2009, 8, 89, 1, 89, 3, 89, 2012, 8, 89, 1, 90, 1, 90, 1, 90, 3, 90, 2017, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 91, 1, 91, 3, 91, 2025, 8, 91, 1, 91, 1, 91, 3, 91, 2029, 8, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 91, 3, 91, 2036, 8, 91, 1, 91, 3, 91, 2039, 8, 91, 1, 91, 3, 91, 2042, 8, 91, 1, 91, 3, 91, 2045, 8, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 3, 92, 2057, 8, 92, 1, 92, 1, 92, 1, 93, 1, 93, 3, 93, 2063, 8, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 3, 98, 2089, 8, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 3, 99, 2097, 8, 99, 1, 99, 1, 99, 3, 99, 2101, 8, 99, 1, 99, 3, 99, 2104, 8, 99, 1, 99, 3, 99, 2107, 8, 99, 1, 99, 3, 99, 2110, 8, 99, 1, 99, 3, 99, 2113, 8, 99, 1, 99, 3, 99, 2116, 8, 99, 1, 99, 3, 99, 2119, 8, 99, 1, 99, 3, 99, 2122, 8, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 100, 3, 100, 2131, 8, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 2141, 8, 101, 1, 101, 3, 101, 2144, 8, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 2164, 8, 104, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 2170, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 2176, 8, 105, 1, 105, 3, 105, 2179, 8, 105, 3, 105, 2181, 8, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 107, 3, 107, 2188, 8, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, 108, 3, 108, 2195, 8, 108, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 3, 111, 2208, 8, 111, 1, 111, 1, 111, 1, 111, 3, 111, 2213, 8, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 5, 112, 2220, 8, 112, 10, 112, 12, 112, 2223, 9, 112, 1, 113, 1, 113, 1, 113, 5, 113, 2228, 8, 113, 10, 113, 12, 113, 2231, 9, 113, 1, 114, 1, 114, 1, 114, 5, 114, 2236, 8, 114, 10, 114, 12, 114, 2239, 9, 114, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 3, 116, 2248, 8, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 3, 116, 2261, 8, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 2274, 8, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 2295, 8, 119, 1, 120, 1, 120, 3, 120, 2299, 8, 120, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 2314, 8, 123, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 2320, 8, 124, 1, 124, 3, 124, 2323, 8, 124, 1, 124, 3, 124, 2326, 8, 124, 1, 124, 3, 124, 2329, 8, 124, 1, 124, 3, 124, 2332, 8, 124, 1, 125, 1, 125, 3, 125, 2336, 8, 125, 1, 126, 1, 126, 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 1, 128, 1, 128, 1, 128, 5, 128, 2348, 8, 128, 10, 128, 12, 128, 2351, 9, 128, 1, 128, 1, 128, 1, 128, 5, 128, 2356, 8, 128, 10, 128, 12, 128, 2359, 9, 128, 3, 128, 2361, 8, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 3, 131, 2376, 8, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2410, 8, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2418, 8, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2423, 8, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2431, 8, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2436, 8, 136, 1, 136, 1, 136, 1, 136, 3, 136, 2441, 8, 136, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 5, 138, 2449, 8, 138, 10, 138, 12, 138, 2452, 9, 138, 1, 139, 1, 139, 1, 139, 5, 139, 2457, 8, 139, 10, 139, 12, 139, 2460, 9, 139, 1, 140, 1, 140, 1, 140, 5, 140, 2465, 8, 140, 10, 140, 12, 140, 2468, 9, 140, 1, 141, 1, 141, 1, 141, 5, 141, 2473, 8, 141, 10, 141, 12, 141, 2476, 9, 141, 1, 142, 1, 142, 1, 142, 5, 142, 2481, 8, 142, 10, 142, 12, 142, 2484, 9, 142, 1, 142, 3, 142, 2487, 8, 142, 1, 143, 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 3, 144, 2497, 8, 144, 5, 144, 2499, 8, 144, 10, 144, 12, 144, 2502, 9, 144, 1, 145, 1, 145, 1, 145, 5, 145, 2507, 8, 145, 10, 145, 12, 145, 2510, 9, 145, 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 3, 147, 2518, 8, 147, 1, 147, 3, 147, 2521, 8, 147, 1, 148, 1, 148, 3, 148, 2525, 8, 148, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 3, 150, 2532, 8, 150, 1, 151, 1, 151, 1, 152, 1, 152, 3, 152, 2538, 8, 152, 1, 152, 1, 152, 3, 152, 2542, 8, 152, 1, 153, 1, 153, 1, 153, 1, 153, 3, 153, 2548, 8, 153, 1, 154, 1, 154, 3, 154, 2552, 8, 154, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, 157, 1, 157, 3, 157, 2564, 8, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 3, 157, 2573, 8, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 3, 158, 2584, 8, 158, 1, 159, 1, 159, 3, 159, 2588, 8, 159, 1, 160, 1, 160, 1, 160, 5, 160, 2593, 8, 160, 10, 160, 12, 160, 2596, 9, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, 162, 1, 162, 5, 162, 2605, 8, 162, 10, 162, 12, 162, 2608, 9, 162, 1, 163, 1, 163, 1, 164, 1, 164, 3, 164, 2614, 8, 164, 1, 165, 1, 165, 1, 166, 1, 166, 1, 166, 1, 167, 1, 167, 3, 167, 2623, 8, 167, 1, 167, 3, 167, 2626, 8, 167, 1, 168, 1, 168, 1, 168, 5, 168, 2631, 8, 168, 10, 168, 12, 168, 2634, 9, 168, 1, 169, 1, 169, 1, 169, 3, 169, 2639, 8, 169, 1, 170, 1, 170, 1, 171, 1, 171, 3, 171, 2645, 8, 171, 1, 171, 3, 171, 2648, 8, 171, 1, 171, 3, 171, 2651, 8, 171, 1, 172, 1, 172, 1, 172, 1, 172, 3, 172, 2657, 8, 172, 1, 173, 1, 173, 3, 173, 2661, 8, 173, 1, 174, 1, 174, 3, 174, 2665, 8, 174, 1, 175, 1, 175, 1, 175, 3, 175, 2670, 8, 175, 1, 175, 1, 175, 3, 175, 2674, 8, 175, 1, 176, 1, 176, 3, 176, 2678, 8, 176, 1, 177, 1, 177, 3, 177, 2682, 8, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 3, 177, 2690, 8, 177, 1, 178, 1, 178, 3, 178, 2694, 8, 178, 1, 178, 1, 178, 3, 178, 2698, 8, 178, 1, 179, 1, 179, 3, 179, 2702, 8, 179, 1, 180, 1, 180, 3, 180, 2706, 8, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 1, 180, 3, 180, 2714, 8, 180, 1, 181, 1, 181, 3, 181, 2718, 8, 181, 1, 181, 1, 181, 3, 181, 2722, 8, 181, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 1, 182, 3, 182, 2730, 8, 182, 1, 183, 1, 183, 1, 183, 3, 183, 2735, 8, 183, 1, 184, 1, 184, 1, 184, 3, 184, 2740, 8, 184, 1, 185, 1, 185, 3, 185, 2744, 8, 185, 1, 186, 1, 186, 3, 186, 2748, 8, 186, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 3, 187, 2755, 8, 187, 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 5, 189, 2762, 8, 189, 10, 189, 12, 189, 2765, 9, 189, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 3, 190, 2772, 8, 190, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 2784, 8, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 2802, 8, 191, 1, 191, 3, 191, 2805, 8, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 2811, 8, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, 193, 1, 193, 1, 193, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 194, 1, 195, 1, 195, 1, 195, 1, 195, 1, 195, 1, 196, 1, 196, 3, 196, 2837, 8, 196, 1, 197, 3, 197, 2840, 8, 197, 1, 197, 1, 197, 1, 198, 1, 198, 3, 198, 2846, 8, 198, 1, 199, 1, 199, 1, 199, 1, 199, 5, 199, 2852, 8, 199, 10, 199, 12, 199, 2855, 9, 199, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 3, 200, 2862, 8, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 200, 1, 201, 1, 201, 1, 201, 1, 201, 5, 201, 2873, 8, 201, 10, 201, 12, 201, 2876, 9, 201, 1, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2882, 8, 202, 1, 202, 3, 202, 2885, 8, 202, 1, 202, 3, 202, 2888, 8, 202, 1, 202, 3, 202, 2891, 8, 202, 1, 202, 3, 202, 2894, 8, 202, 1, 202, 3, 202, 2897, 8, 202, 1, 202, 3, 202, 2900, 8, 202, 1, 202, 3, 202, 2903, 8, 202, 1, 202, 3, 202, 2906, 8, 202, 1, 202, 3, 202, 2909, 8, 202, 1, 202, 3, 202, 2912, 8, 202, 1, 202, 1, 202, 1, 202, 3, 202, 2917, 8, 202, 1, 202, 3, 202, 2920, 8, 202, 1, 202, 3, 202, 2923, 8, 202, 1, 202, 3, 202, 2926, 8, 202, 1, 202, 3, 202, 2929, 8, 202, 1, 202, 3, 202, 2932, 8, 202, 1, 202, 3, 202, 2935, 8, 202, 1, 202, 3, 202, 2938, 8, 202, 1, 202, 3, 202, 2941, 8, 202, 1, 202, 3, 202, 2944, 8, 202, 1, 202, 3, 202, 2947, 8, 202, 3, 202, 2949, 8, 202, 1, 203, 1, 203, 1, 203, 1, 203, 3, 203, 2955, 8, 203, 1, 204, 1, 204, 3, 204, 2959, 8, 204, 1, 204, 3, 204, 2962, 8, 204, 1, 204, 3, 204, 2965, 8, 204, 1, 204, 3, 204, 2968, 8, 204, 1, 204, 3, 204, 2971, 8, 204, 1, 204, 3, 204, 2974, 8, 204, 1, 204, 1, 204, 1, 204, 1, 204, 1, 204, 3, 204, 2981, 8, 204, 1, 205, 1, 205, 3, 205, 2985, 8, 205, 1, 205, 3, 205, 2988, 8, 205, 1, 205, 3, 205, 2991, 8, 205, 1, 205, 3, 205, 2994, 8, 205, 1, 205, 3, 205, 2997, 8, 205, 1, 205, 3, 205, 3000, 8, 205, 1, 206, 1, 206, 1, 206, 4, 206, 3005, 8, 206, 11, 206, 12, 206, 3006, 1, 207, 3, 207, 3010, 8, 207, 1, 207, 1, 207, 1, 208, 1, 208, 1, 208, 1, 208, 3, 208, 3018, 8, 208, 1, 208, 1, 208, 3, 208, 3022, 8, 208, 1, 208, 1, 208, 1, 208, 1, 208, 1, 208, 3, 208, 3029, 8, 208, 3, 208, 3031, 8, 208, 1, 209, 3, 209, 3034, 8, 209, 1, 209, 1, 209, 1, 209, 3, 209, 3039, 8, 209, 1, 209, 3, 209, 3042, 8, 209, 1, 209, 1, 209, 3, 209, 3046, 8, 209, 1, 210, 1, 210, 1, 210, 3, 210, 3051, 8, 210, 1, 210, 1, 210, 1, 210, 1, 210, 3, 210, 3057, 8, 210, 1, 211, 1, 211, 1, 211, 1, 211, 3, 211, 3063, 8, 211, 1, 212, 1, 212, 1, 212, 1, 212, 1, 213, 1, 213, 3, 213, 3071, 8, 213, 1, 214, 1, 214, 1, 214, 1, 214, 5, 214, 3077, 8, 214, 10, 214, 12, 214, 3080, 9, 214, 1, 215, 1, 215, 1, 215, 1, 215, 3, 215, 3086, 8, 215, 1, 216, 1, 216, 1, 216, 1, 216, 3, 216, 3092, 8, 216, 1, 217, 1, 217, 1, 217, 1, 217, 1, 217, 5, 217, 3099, 8, 217, 10, 217, 12, 217, 3102, 9, 217, 3, 217, 3104, 8, 217, 1, 218, 1, 218, 3, 218, 3108, 8, 218, 1, 219, 1, 219, 1, 219, 1, 220, 1, 220, 1, 220, 1, 220, 1, 221, 1, 221, 1, 222, 1, 222, 3, 222, 3121, 8, 222, 1, 223, 1, 223, 3, 223, 3125, 8, 223, 1, 224, 1, 224, 1, 224, 1, 224, 1, 225, 1, 225, 1, 225, 4, 225, 3134, 8, 225, 11, 225, 12, 225, 3135, 1, 226, 1, 226, 1, 226, 4, 226, 3141, 8, 226, 11, 226, 12, 226, 3142, 1, 227, 1, 227, 3, 227, 3147, 8, 227, 1, 227, 1, 227, 1, 227, 3, 227, 3152, 8, 227, 1, 227, 3, 227, 3155, 8, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 227, 1, 228, 1, 228, 5, 228, 3165, 8, 228, 10, 228, 12, 228, 3168, 9, 228, 1, 228, 3, 228, 3171, 8, 228, 1, 229, 1, 229, 1, 229, 1, 229, 1, 229, 3, 229, 3178, 8, 229, 1, 229, 1, 229, 1, 229, 3, 229, 3183, 8, 229, 1, 229, 1, 229, 1, 229, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 230, 1, 231, 1, 231, 1, 231, 1, 231, 1, 231, 1, 232, 1, 232, 1, 232, 3, 232, 3203, 8, 232, 1, 233, 1, 233, 1, 233, 4, 233, 3208, 8, 233, 11, 233, 12, 233, 3209, 1, 234, 1, 234, 1, 234, 1, 234, 1, 235, 1, 235, 1, 235, 1, 236, 1, 236, 1, 236, 1, 237, 1, 237, 1, 237, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 3, 238, 3233, 8, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 1, 238, 3, 238, 3249, 8, 238, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 3266, 8, 239, 1, 239, 1, 239, 1, 239, 1, 239, 3, 239, 3272, 8, 239, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 1, 240, 3, 240, 3289, 8, 240, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 241, 1, 242, 1, 242, 1, 242, 1, 242, 1, 242, 3, 242, 3302, 8, 242, 1, 243, 1, 243, 3, 243, 3306, 8, 243, 1, 244, 1, 244, 3, 244, 3310, 8, 244, 1, 245, 1, 245, 1, 246, 1, 246, 1, 246, 3, 246, 3317, 8, 246, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 248, 1, 248, 1, 248, 1, 248, 1, 248, 1, 249, 1, 249, 1, 249, 1, 249, 1, 249, 1, 250, 1, 250, 1, 250, 1, 250, 1, 250, 1, 251, 1, 251, 1, 251, 1, 251, 1, 252, 1, 252, 3, 252, 3345, 8, 252, 1, 252, 1, 252, 1, 252, 1, 252, 1, 252, 3, 252, 3352, 8, 252, 1, 253, 1, 253, 1, 253, 3, 253, 3357, 8, 253, 1, 254, 1, 254, 1, 254, 3, 254, 3362, 8, 254, 1, 255, 1, 255, 1, 255, 3, 255, 3367, 8, 255, 1, 255, 1, 255, 1, 255, 3, 255, 3372, 8, 255, 1, 256, 1, 256, 1, 256, 1, 256, 1, 257, 1, 257, 3, 257, 3380, 8, 257, 1, 257, 1, 257, 1, 257, 1, 257, 3, 257, 3386, 8, 257, 1, 257, 1, 257, 3, 257, 3390, 8, 257, 1, 257, 3, 257, 3393, 8, 257, 1, 257, 3, 257, 3396, 8, 257, 1, 258, 1, 258, 1, 258, 1, 258, 3, 258, 3402, 8, 258, 1, 258, 1, 258, 1, 258, 1, 258, 1, 258, 3, 258, 3409, 8, 258, 1, 259, 1, 259, 1, 259, 1, 259, 1, 259, 1, 260, 1, 260, 1, 260, 3, 260, 3419, 8, 260, 1, 261, 1, 261, 3, 261, 3423, 8, 261, 1, 261, 4, 261, 3426, 8, 261, 11, 261, 12, 261, 3427, 1, 262, 1, 262, 3, 262, 3432, 8, 262, 1, 263, 1, 263, 5, 263, 3436, 8, 263, 10, 263, 12, 263, 3439, 9, 263, 1, 264, 1, 264, 5, 264, 3443, 8, 264, 10, 264, 12, 264, 3446, 9, 264, 1, 265, 1, 265, 5, 265, 3450, 8, 265, 10, 265, 12, 265, 3453, 9, 265, 1, 266, 1, 266, 1, 266, 1, 267, 1, 267, 1, 267, 1, 268, 1, 268, 3, 268, 3463, 8, 268, 1, 268, 1, 268, 1, 268, 1, 268, 1, 268, 5, 268, 3470, 8, 268, 10, 268, 12, 268, 3473, 9, 268, 1, 268, 3, 268, 3476, 8, 268, 1, 268, 3, 268, 3479, 8, 268, 1, 268, 3, 268, 3482, 8, 268, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 1, 269, 3, 269, 3490, 8, 269, 1, 269, 3, 269, 3493, 8, 269, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 1, 270, 3, 270, 3501, 8, 270, 1, 270, 3, 270, 3504, 8, 270, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 1, 271, 3, 271, 3512, 8, 271, 1, 271, 1, 271, 3, 271, 3516, 8, 271, 1, 271, 1, 271, 1, 271, 3, 271, 3521, 8, 271, 1, 272, 1, 272, 3, 272, 3525, 8, 272, 1, 273, 1, 273, 1, 273, 1, 273, 1, 274, 1, 274, 1, 274, 3, 274, 3534, 8, 274, 1, 275, 1, 275, 1, 275, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 1, 276, 1, 277, 1, 277, 1, 277, 5, 277, 3548, 8, 277, 10, 277, 12, 277, 3551, 9, 277, 1, 278, 1, 278, 1, 278, 1, 278, 1, 279, 1, 279, 1, 279, 1, 279, 1, 280, 1, 280, 1, 280, 1, 280, 3, 280, 3565, 8, 280, 3, 280, 3567, 8, 280, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 281, 1, 282, 1, 282, 1, 282, 1, 282, 1, 283, 1, 283, 1, 283, 1, 283, 3, 283, 3583, 8, 283, 1, 283, 1, 283, 1, 283, 1, 283, 1, 283, 3, 283, 3590, 8, 283, 1, 284, 1, 284, 1, 285, 1, 285, 1, 285, 1, 285, 1, 286, 1, 286, 1, 286, 1, 287, 1, 287, 1, 287, 1, 288, 1, 288, 1, 288, 3, 288, 3607, 8, 288, 1, 288, 3, 288, 3610, 8, 288, 1, 288, 3, 288, 3613, 8, 288, 1, 288, 3, 288, 3616, 8, 288, 1, 288, 1, 288, 1, 288, 1, 288, 3, 288, 3622, 8, 288, 1, 289, 1, 289, 1, 289, 1, 289, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 290, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 1, 291, 3, 291, 3645, 8, 291, 1, 291, 1, 291, 1, 292, 1, 292, 1, 292, 1, 292, 3, 292, 3653, 8, 292, 1, 292, 1, 292, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 1, 293, 3, 293, 3667, 8, 293, 1, 293, 3, 293, 3670, 8, 293, 1, 294, 1, 294, 1, 294, 3, 294, 3675, 8, 294, 1, 295, 1, 295, 1, 295, 1, 295, 1, 295, 1, 296, 1, 296, 1, 296, 1, 296, 1, 296, 1, 297, 1, 297, 1, 297, 1, 297, 1, 297, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 1, 298, 3, 298, 3701, 8, 298, 1, 299, 1, 299, 3, 299, 3705, 8, 299, 1, 299, 3, 299, 3708, 8, 299, 1, 299, 3, 299, 3711, 8, 299, 1, 299, 1, 299, 3, 299, 3715, 8, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3720, 8, 299, 1, 299, 3, 299, 3723, 8, 299, 1, 299, 3, 299, 3726, 8, 299, 1, 299, 3, 299, 3729, 8, 299, 1, 299, 3, 299, 3732, 8, 299, 1, 299, 3, 299, 3735, 8, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3741, 8, 299, 1, 299, 3, 299, 3744, 8, 299, 1, 299, 3, 299, 3747, 8, 299, 1, 299, 3, 299, 3750, 8, 299, 1, 299, 3, 299, 3753, 8, 299, 1, 299, 3, 299, 3756, 8, 299, 1, 299, 3, 299, 3759, 8, 299, 1, 299, 3, 299, 3762, 8, 299, 1, 299, 3, 299, 3765, 8, 299, 1, 299, 3, 299, 3768, 8, 299, 1, 299, 1, 299, 3, 299, 3772, 8, 299, 3, 299, 3774, 8, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3780, 8, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3785, 8, 299, 1, 299, 3, 299, 3788, 8, 299, 1, 299, 3, 299, 3791, 8, 299, 1, 299, 3, 299, 3794, 8, 299, 1, 299, 3, 299, 3797, 8, 299, 1, 299, 1, 299, 1, 299, 1, 299, 3, 299, 3803, 8, 299, 1, 299, 3, 299, 3806, 8, 299, 1, 299, 3, 299, 3809, 8, 299, 1, 299, 3, 299, 3812, 8, 299, 1, 299, 3, 299, 3815, 8, 299, 1, 299, 3, 299, 3818, 8, 299, 1, 299, 3, 299, 3821, 8, 299, 1, 299, 3, 299, 3824, 8, 299, 1, 299, 3, 299, 3827, 8, 299, 1, 299, 3, 299, 3830, 8, 299, 1, 299, 1, 299, 3, 299, 3834, 8, 299, 3, 299, 3836, 8, 299, 3, 299, 3838, 8, 299, 1, 300, 1, 300, 1, 300, 3, 300, 3843, 8, 300, 1, 300, 1, 300, 3, 300, 3847, 8, 300, 1, 300, 3, 300, 3850, 8, 300, 1, 300, 3, 300, 3853, 8, 300, 1, 300, 1, 300, 1, 300, 3, 300, 3858, 8, 300, 1, 301, 1, 301, 1, 301, 1, 302, 1, 302, 1, 302, 1, 303, 1, 303, 1, 303, 1, 304, 1, 304, 1, 304, 1, 304, 1, 305, 1, 305, 1, 305, 3, 305, 3876, 8, 305, 1, 305, 1, 305, 1, 306, 1, 306, 1, 306, 5, 306, 3883, 8, 306, 10, 306, 12, 306, 3886, 9, 306, 1, 306, 1, 306, 1, 307, 1, 307, 1, 308, 1, 308, 1, 308, 5, 308, 3895, 8, 308, 10, 308, 12, 308, 3898, 9, 308, 1, 309, 1, 309, 1, 309, 5, 309, 3903, 8, 309, 10, 309, 12, 309, 3906, 9, 309, 1, 310, 1, 310, 1, 310, 1, 311, 1, 311, 1, 311, 1, 311, 4, 311, 3915, 8, 311, 11, 311, 12, 311, 3916, 1, 311, 3, 311, 3920, 8, 311, 1, 312, 1, 312, 5, 312, 3924, 8, 312, 10, 312, 12, 312, 3927, 9, 312, 1, 312, 1, 312, 5, 312, 3931, 8, 312, 10, 312, 12, 312, 3934, 9, 312, 1, 312, 1, 312, 5, 312, 3938, 8, 312, 10, 312, 12, 312, 3941, 9, 312, 1, 312, 1, 312, 5, 312, 3945, 8, 312, 10, 312, 12, 312, 3948, 9, 312, 1, 312, 1, 312, 1, 312, 1, 312, 3, 312, 3954, 8, 312, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 1, 313, 3, 313, 3963, 8, 313, 5, 313, 3965, 8, 313, 10, 313, 12, 313, 3968, 9, 313, 1, 314, 1, 314, 1, 314, 1, 314, 3, 314, 3974, 8, 314, 1, 314, 5, 314, 3977, 8, 314, 10, 314, 12, 314, 3980, 9, 314, 1, 315, 3, 315, 3983, 8, 315, 1, 315, 1, 315, 1, 315, 1, 316, 1, 316, 1, 316, 1, 316, 1, 317, 1, 317, 1, 318, 1, 318, 1, 318, 1, 318, 1, 318, 3, 318, 3999, 8, 318, 1, 318, 1, 318, 3, 318, 4003, 8, 318, 3, 318, 4005, 8, 318, 1, 318, 3, 318, 4008, 8, 318, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 5, 319, 4019, 8, 319, 10, 319, 12, 319, 4022, 9, 319, 3, 319, 4024, 8, 319, 1, 319, 3, 319, 4027, 8, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 5, 319, 4037, 8, 319, 10, 319, 12, 319, 4040, 9, 319, 3, 319, 4042, 8, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 3, 319, 4049, 8, 319, 1, 319, 1, 319, 1, 319, 1, 319, 1, 319, 5, 319, 4056, 8, 319, 10, 319, 12, 319, 4059, 9, 319, 1, 319, 1, 319, 3, 319, 4063, 8, 319, 3, 319, 4065, 8, 319, 3, 319, 4067, 8, 319, 1, 320, 1, 320, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 1, 321, 5, 321, 4082, 8, 321, 10, 321, 12, 321, 4085, 9, 321, 3, 321, 4087, 8, 321, 1, 321, 1, 321, 1, 322, 1, 322, 1, 322, 1, 322, 1, 322, 3, 322, 4096, 8, 322, 1, 322, 1, 322, 1, 323, 1, 323, 3, 323, 4102, 8, 323, 1, 324, 1, 324, 3, 324, 4106, 8, 324, 1, 324, 3, 324, 4109, 8, 324, 1, 324, 3, 324, 4112, 8, 324, 1, 324, 3, 324, 4115, 8, 324, 1, 324, 3, 324, 4118, 8, 324, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 1, 325, 3, 325, 4130, 8, 325, 1, 326, 1, 326, 3, 326, 4134, 8, 326, 1, 326, 3, 326, 4137, 8, 326, 1, 326, 3, 326, 4140, 8, 326, 1, 327, 1, 327, 1, 328, 1, 328, 1, 329, 1, 329, 3, 329, 4148, 8, 329, 1, 330, 1, 330, 1, 330, 1, 330, 1, 330, 3, 330, 4155, 8, 330, 1, 330, 3, 330, 4158, 8, 330, 1, 331, 1, 331, 1, 331, 1, 331, 1, 331, 3, 331, 4165, 8, 331, 1, 331, 3, 331, 4168, 8, 331, 1, 332, 1, 332, 1, 332, 3, 332, 4173, 8, 332, 1, 332, 1, 332, 1, 333, 1, 333, 1, 333, 3, 333, 4180, 8, 333, 1, 333, 1, 333, 1, 334, 1, 334, 1, 334, 1, 334, 3, 334, 4188, 8, 334, 1, 334, 1, 334, 1, 335, 1, 335, 3, 335, 4194, 8, 335, 1, 335, 1, 335, 1, 335, 3, 335, 4199, 8, 335, 1, 335, 1, 335, 3, 335, 4203, 8, 335, 1, 336, 1, 336, 1, 336, 3, 336, 4208, 8, 336, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 3, 337, 4215, 8, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 1, 337, 5, 337, 4227, 8, 337, 10, 337, 12, 337, 4230, 9, 337, 3, 337, 4232, 8, 337, 1, 337, 1, 337, 3, 337, 4236, 8, 337, 1, 338, 1, 338, 1, 338, 1, 339, 1, 339, 1, 340, 1, 340, 1, 341, 1, 341, 1, 341, 1, 342, 1, 342, 1, 342, 5, 342, 4251, 8, 342, 10, 342, 12, 342, 4254, 9, 342, 1, 342, 1, 342, 1, 342, 5, 342, 4259, 8, 342, 10, 342, 12, 342, 4262, 9, 342, 3, 342, 4264, 8, 342, 1, 343, 1, 343, 1, 344, 1, 344, 1, 344, 1, 344, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 3, 345, 4277, 8, 345, 1, 345, 1, 345, 1, 345, 1, 345, 1, 345, 5, 345, 4284, 8, 345, 10, 345, 12, 345, 4287, 9, 345, 3, 345, 4289, 8, 345, 1, 345, 1, 345, 1, 346, 1, 346, 3, 346, 4295, 8, 346, 1, 346, 3, 346, 4298, 8, 346, 1, 346, 1, 346, 1, 346, 3, 346, 4303, 8, 346, 1, 346, 3, 346, 4306, 8, 346, 1, 347, 1, 347, 1, 348, 1, 348, 1, 348, 5, 348, 4313, 8, 348, 10, 348, 12, 348, 4316, 9, 348, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 1, 349, 3, 349, 4329, 8, 349, 1, 349, 1, 349, 1, 349, 1, 349, 3, 349, 4335, 8, 349, 3, 349, 4337, 8, 349, 1, 349, 1, 349, 1, 349, 1, 350, 1, 350, 1, 350, 3, 350, 4345, 8, 350, 1, 350, 3, 350, 4348, 8, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 1, 350, 5, 350, 4356, 8, 350, 10, 350, 12, 350, 4359, 9, 350, 1, 350, 1, 350, 3, 350, 4363, 8, 350, 3, 350, 4365, 8, 350, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 1, 351, 3, 351, 4377, 8, 351, 1, 351, 1, 351, 1, 351, 1, 351, 3, 351, 4383, 8, 351, 3, 351, 4385, 8, 351, 1, 351, 1, 351, 1, 351, 1, 352, 1, 352, 3, 352, 4392, 8, 352, 1, 353, 1, 353, 1, 353, 5, 353, 4397, 8, 353, 10, 353, 12, 353, 4400, 9, 353, 1, 354, 1, 354, 1, 354, 1, 354, 5, 354, 4406, 8, 354, 10, 354, 12, 354, 4409, 9, 354, 1, 355, 1, 355, 1, 355, 1, 355, 1, 356, 1, 356, 1, 356, 3, 356, 4418, 8, 356, 1, 356, 3, 356, 4421, 8, 356, 1, 356, 3, 356, 4424, 8, 356, 1, 356, 3, 356, 4427, 8, 356, 1, 357, 1, 357, 3, 357, 4431, 8, 357, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 1, 358, 3, 358, 4440, 8, 358, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 1, 359, 3, 359, 4449, 8, 359, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 1, 360, 3, 360, 4457, 8, 360, 1, 361, 1, 361, 1, 361, 1, 361, 3, 361, 4463, 8, 361, 1, 362, 1, 362, 1, 362, 1, 362, 1, 363, 1, 363, 1, 363, 1, 363, 3, 363, 4473, 8, 363, 1, 364, 1, 364, 1, 364, 1, 365, 1, 365, 3, 365, 4480, 8, 365, 1, 365, 1, 365, 1, 365, 1, 365, 5, 365, 4486, 8, 365, 10, 365, 12, 365, 4489, 9, 365, 1, 365, 1, 365, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 3, 366, 4498, 8, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 1, 366, 5, 366, 4506, 8, 366, 10, 366, 12, 366, 4509, 9, 366, 1, 366, 1, 366, 3, 366, 4513, 8, 366, 1, 367, 1, 367, 3, 367, 4517, 8, 367, 1, 368, 1, 368, 3, 368, 4521, 8, 368, 1, 368, 1, 368, 5, 368, 4525, 8, 368, 10, 368, 12, 368, 4528, 9, 368, 1, 368, 1, 368, 1, 369, 1, 369, 1, 370, 1, 370, 1, 370, 1, 371, 1, 371, 1, 371, 1, 372, 1, 372, 1, 373, 1, 373, 1, 373, 1, 373, 1, 374, 1, 374, 3, 374, 4548, 8, 374, 1, 375, 1, 375, 4, 375, 4552, 8, 375, 11, 375, 12, 375, 4553, 1, 376, 1, 376, 3, 376, 4558, 8, 376, 1, 377, 1, 377, 3, 377, 4562, 8, 377, 1, 377, 3, 377, 4565, 8, 377, 1, 377, 1, 377, 5, 377, 4569, 8, 377, 10, 377, 12, 377, 4572, 9, 377, 1, 378, 1, 378, 3, 378, 4576, 8, 378, 1, 378, 3, 378, 4579, 8, 378, 1, 379, 1, 379, 3, 379, 4583, 8, 379, 1, 380, 1, 380, 1, 380, 1, 380, 5, 380, 4589, 8, 380, 10, 380, 12, 380, 4592, 9, 380, 1, 380, 1, 380, 1, 381, 1, 381, 1, 381, 5, 381, 4599, 8, 381, 10, 381, 12, 381, 4602, 9, 381, 1, 382, 1, 382, 1, 382, 1, 382, 1, 382, 5, 382, 4609, 8, 382, 10, 382, 12, 382, 4612, 9, 382, 1, 383, 1, 383, 1, 383, 1, 383, 1, 384, 1, 384, 1, 384, 1, 384, 1, 385, 1, 385, 1, 385, 1, 385, 1, 386, 1, 386, 1, 386, 1, 386, 3, 386, 4630, 8, 386, 1, 387, 1, 387, 1, 387, 1, 387, 1, 387, 3, 387, 4637, 8, 387, 1, 387, 3, 387, 4640, 8, 387, 1, 387, 1, 387, 1, 387, 1, 387, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 3, 388, 4651, 8, 388, 1, 388, 1, 388, 1, 388, 5, 388, 4656, 8, 388, 10, 388, 12, 388, 4659, 9, 388, 3, 388, 4661, 8, 388, 3, 388, 4663, 8, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 3, 388, 4674, 8, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 1, 388, 3, 388, 4684, 8, 388, 3, 388, 4686, 8, 388, 1, 389, 1, 389, 1, 389, 1, 389, 3, 389, 4692, 8, 389, 1, 390, 1, 390, 1, 391, 1, 391, 3, 391, 4698, 8, 391, 1, 392, 1, 392, 3, 392, 4702, 8, 392, 1, 393, 1, 393, 1, 394, 1, 394, 3, 394, 4708, 8, 394, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 1, 395, 3, 395, 4717, 8, 395, 1, 395, 1, 395, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 1, 396, 4, 396, 4728, 8, 396, 11, 396, 12, 396, 4729, 1, 396, 1, 396, 3, 396, 4734, 8, 396, 1, 396, 1, 396, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 1, 397, 4, 397, 4744, 8, 397, 11, 397, 12, 397, 4745, 1, 397, 1, 397, 3, 397, 4750, 8, 397, 1, 397, 1, 397, 1, 398, 1, 398, 1, 398, 1, 398, 1, 398, 3, 398, 4759, 8, 398, 1, 398, 1, 398, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 1, 399, 3, 399, 4771, 8, 399, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 400, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 1, 401, 3, 401, 4788, 8, 401, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 1, 402, 3, 402, 4803, 8, 402, 1, 403, 1, 403, 1, 404, 1, 404, 1, 405, 1, 405, 4, 405, 4811, 8, 405, 11, 405, 12, 405, 4812, 1, 406, 1, 406, 1, 406, 1, 407, 1, 407, 1, 407, 3, 407, 4821, 8, 407, 1, 408, 1, 408, 1, 408, 3, 408, 4826, 8, 408, 1, 409, 1, 409, 1, 409, 1, 410, 1, 410, 1, 411, 1, 411, 1, 411, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 1, 412, 3, 412, 4847, 8, 412, 1, 412, 1, 412, 3, 412, 4851, 8, 412, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 1, 413, 3, 413, 4867, 8, 413, 1, 414, 1, 414, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 1, 415, 3, 415, 4882, 8, 415, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 1, 416, 5, 416, 4891, 8, 416, 10, 416, 12, 416, 4894, 9, 416, 1, 417, 1, 417, 1, 418, 5, 418, 4899, 8, 418, 10, 418, 12, 418, 4902, 9, 418, 1, 418, 1, 418, 1, 419, 1, 419, 1, 420, 1, 420, 1, 420, 1, 420, 5, 420, 4912, 8, 420, 10, 420, 12, 420, 4915, 9, 420, 1, 421, 1, 421, 1, 422, 1, 422, 1, 422, 1, 422, 5, 422, 4923, 8, 422, 10, 422, 12, 422, 4926, 9, 422, 1, 423, 1, 423, 1, 424, 1, 424, 1, 424, 1, 424, 5, 424, 4934, 8, 424, 10, 424, 12, 424, 4937, 9, 424, 1, 425, 1, 425, 1, 426, 1, 426, 1, 426, 1, 426, 5, 426, 4945, 8, 426, 10, 426, 12, 426, 4948, 9, 426, 1, 427, 1, 427, 1, 428, 1, 428, 1, 428, 1, 428, 5, 428, 4956, 8, 428, 10, 428, 12, 428, 4959, 9, 428, 1, 429, 1, 429, 1, 430, 1, 430, 1, 430, 1, 430, 5, 430, 4967, 8, 430, 10, 430, 12, 430, 4970, 9, 430, 1, 431, 1, 431, 1, 432, 1, 432, 1, 432, 1, 432, 1, 432, 3, 432, 4979, 8, 432, 1, 433, 1, 433, 1, 433, 1, 433, 1, 434, 1, 434, 1, 434, 3, 434, 4988, 8, 434, 1, 435, 1, 435, 3, 435, 4992, 8, 435, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 1, 436, 3, 436, 5000, 8, 436, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 1, 437, 3, 437, 5013, 8, 437, 1, 438, 1, 438, 1, 438, 1, 438, 1, 439, 1, 439, 1, 440, 1, 440, 3, 440, 5023, 8, 440, 1, 441, 1, 441, 1, 441, 1, 441, 3, 441, 5029, 8, 441, 1, 442, 1, 442, 1, 442, 1, 442, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 1, 443, 3, 443, 5042, 8, 443, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 1, 444, 5, 444, 5051, 8, 444, 10, 444, 12, 444, 5054, 9, 444, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 1, 445, 3, 445, 5068, 8, 445, 1, 446, 1, 446, 1, 446, 3, 446, 5073, 8, 446, 1, 447, 1, 447, 1, 448, 5, 448, 5078, 8, 448, 10, 448, 12, 448, 5081, 9, 448, 1, 448, 1, 448, 1, 449, 1, 449, 1, 450, 1, 450, 1, 450, 1, 450, 5, 450, 5091, 8, 450, 10, 450, 12, 450, 5094, 9, 450, 1, 451, 1, 451, 1, 452, 1, 452, 1, 452, 1, 452, 5, 452, 5102, 8, 452, 10, 452, 12, 452, 5105, 9, 452, 1, 453, 1, 453, 1, 454, 1, 454, 1, 455, 1, 455, 3, 455, 5113, 8, 455, 1, 456, 1, 456, 1, 456, 1, 456, 1, 456, 5, 456, 5120, 8, 456, 10, 456, 12, 456, 5123, 9, 456, 1, 456, 1, 456, 1, 457, 1, 457, 1, 457, 3, 457, 5130, 8, 457, 1, 458, 1, 458, 1, 458, 1, 458, 5, 458, 5136, 8, 458, 10, 458, 12, 458, 5139, 9, 458, 1, 458, 1, 458, 1, 459, 1, 459, 1, 459, 1, 459, 1, 460, 1, 460, 3, 460, 5149, 8, 460, 1, 461, 1, 461, 1, 462, 1, 462, 1, 463, 1, 463, 3, 463, 5157, 8, 463, 1, 464, 1, 464, 1, 464, 3, 464, 5162, 8, 464, 1, 465, 1, 465, 1, 466, 1, 466, 1, 467, 1, 467, 1, 468, 1, 468, 1, 468, 1, 469, 1, 469, 1, 469, 5, 469, 5176, 8, 469, 10, 469, 12, 469, 5179, 9, 469, 1, 470, 1, 470, 1, 470, 1, 470, 1, 470, 3, 470, 5186, 8, 470, 1, 471, 1, 471, 1, 472, 1, 472, 1, 472, 5, 472, 5193, 8, 472, 10, 472, 12, 472, 5196, 9, 472, 1, 473, 1, 473, 1, 474, 1, 474, 1, 474, 1, 474, 1, 474, 1, 475, 1, 475, 1, 475, 1, 475, 1, 475, 1, 476, 1, 476, 1, 476, 5, 476, 5213, 8, 476, 10, 476, 12, 476, 5216, 9, 476, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 1, 477, 3, 477, 5232, 8, 477, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 1, 478, 3, 478, 5241, 8, 478, 1, 479, 1, 479, 1, 479, 5, 479, 5246, 8, 479, 10, 479, 12, 479, 5249, 9, 479, 1, 480, 1, 480, 1, 480, 3, 480, 5254, 8, 480, 1, 481, 1, 481, 1, 481, 5, 481, 5259, 8, 481, 10, 481, 12, 481, 5262, 9, 481, 1, 482, 1, 482, 1, 482, 1, 482, 3, 482, 5268, 8, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 1, 482, 3, 482, 5277, 8, 482, 3, 482, 5279, 8, 482, 1, 483, 1, 483, 1, 483, 1, 484, 1, 484, 3, 484, 5286, 8, 484, 1, 485, 1, 485, 1, 486, 1, 486, 1, 487, 1, 487, 1, 488, 1, 488, 1, 489, 1, 489, 1, 490, 1, 490, 1, 491, 1, 491, 1, 492, 1, 492, 1, 493, 1, 493, 1, 494, 1, 494, 1, 495, 1, 495, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 1, 496, 3, 496, 5325, 8, 496, 1, 496, 1, 496, 3, 496, 5329, 8, 496, 3, 496, 5331, 8, 496, 1, 497, 1, 497, 3, 497, 5335, 8, 497, 1, 497, 1, 497, 1, 497, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 1, 498, 3, 498, 5352, 8, 498, 1, 499, 1, 499, 1, 499, 1, 499, 3, 499, 5358, 8, 499, 1, 499, 1, 499, 1, 500, 1, 500, 1, 500, 5, 500, 5365, 8, 500, 10, 500, 12, 500, 5368, 9, 500, 1, 501, 1, 501, 1, 502, 1, 502, 1, 502, 1, 503, 1, 503, 1, 503, 5, 503, 5378, 8, 503, 10, 503, 12, 503, 5381, 9, 503, 1, 504, 1, 504, 1, 504, 5, 504, 5386, 8, 504, 10, 504, 12, 504, 5389, 9, 504, 1, 505, 1, 505, 1, 505, 1, 505, 1, 506, 1, 506, 1, 507, 1, 507, 1, 508, 1, 508, 1, 508, 1, 508, 3, 508, 5403, 8, 508, 1, 509, 1, 509, 1, 509, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 510, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 1, 511, 3, 511, 5432, 8, 511, 1, 511, 1, 511, 1, 511, 3, 511, 5437, 8, 511, 3, 511, 5439, 8, 511, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 512, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 1, 513, 3, 513, 5459, 8, 513, 1, 514, 1, 514, 1, 514, 5, 514, 5464, 8, 514, 10, 514, 12, 514, 5467, 9, 514, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 515, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 1, 516, 3, 516, 5489, 8, 516, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 517, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 1, 518, 3, 518, 5506, 8, 518, 1, 518, 1, 518, 1, 518, 3, 518, 5511, 8, 518, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 1, 519, 3, 519, 5522, 8, 519, 1, 519, 1, 519, 1, 519, 3, 519, 5527, 8, 519, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 1, 520, 0, 0, 521, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 928, 930, 932, 934, 936, 938, 940, 942, 944, 946, 948, 950, 952, 954, 956, 958, 960, 962, 964, 966, 968, 970, 972, 974, 976, 978, 980, 982, 984, 986, 988, 990, 992, 994, 996, 998, 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040, 0, 56, 2, 0, 57, 57, 172, 172, 4, 0, 91, 91, 121, 121, 226, 226, 325, 325, 2, 0, 34, 34, 282, 282, 1, 0, 89, 90, 2, 0, 139, 139, 154, 154, 2, 0, 67, 67, 295, 295, 2, 0, 68, 68, 296, 296, 1, 0, 155, 156, 2, 0, 114, 114, 307, 307, 11, 0, 7, 7, 9, 9, 58, 58, 86, 86, 101, 101, 155, 155, 161, 161, 190, 190, 299, 299, 309, 309, 365, 365, 3, 0, 4, 4, 101, 101, 326, 326, 3, 0, 15, 15, 128, 128, 170, 170, 1, 0, 141, 142, 2, 0, 30, 30, 351, 351, 2, 0, 217, 217, 373, 373, 2, 0, 214, 214, 272, 272, 2, 0, 18, 18, 89, 89, 2, 0, 130, 130, 177, 177, 2, 0, 39, 39, 376, 376, 4, 0, 112, 112, 164, 164, 205, 205, 356, 356, 2, 0, 7, 7, 96, 96, 2, 0, 225, 225, 391, 391, 2, 0, 189, 189, 196, 196, 2, 0, 42, 42, 315, 315, 2, 0, 426, 426, 431, 431, 2, 0, 140, 140, 285, 285, 3, 0, 12, 12, 231, 231, 300, 300, 2, 0, 241, 241, 292, 292, 2, 0, 198, 198, 268, 268, 2, 0, 354, 354, 431, 431, 2, 0, 133, 133, 247, 247, 3, 0, 413, 414, 418, 418, 420, 420, 2, 0, 412, 412, 415, 417, 1, 0, 413, 414, 3, 0, 184, 184, 270, 270, 286, 286, 2, 0, 7, 7, 13, 13, 3, 0, 7, 7, 13, 13, 313, 313, 2, 0, 125, 125, 350, 350, 2, 0, 405, 405, 407, 411, 24, 0, 11, 11, 16, 16, 25, 28, 35, 35, 100, 100, 131, 132, 151, 151, 154, 154, 162, 163, 184, 184, 198, 198, 216, 216, 228, 228, 264, 264, 270, 270, 286, 286, 311, 311, 323, 324, 340, 340, 357, 357, 383, 383, 405, 417, 419, 421, 423, 423, 85, 0, 1, 6, 8, 8, 10, 10, 15, 15, 18, 20, 22, 24, 30, 31, 33, 34, 37, 38, 40, 44, 46, 47, 49, 50, 52, 53, 56, 57, 59, 59, 66, 66, 68, 68, 72, 77, 79, 79, 83, 85, 87, 89, 91, 95, 97, 99, 103, 104, 106, 107, 109, 111, 114, 116, 118, 121, 127, 130, 137, 138, 142, 142, 147, 150, 152, 152, 155, 156, 158, 160, 168, 170, 172, 177, 182, 183, 185, 187, 189, 193, 195, 197, 199, 202, 204, 204, 206, 209, 211, 212, 214, 215, 217, 218, 220, 220, 222, 223, 226, 227, 232, 233, 235, 236, 238, 240, 243, 246, 252, 252, 254, 255, 257, 259, 261, 262, 265, 267, 271, 282, 284, 284, 287, 288, 293, 298, 300, 303, 305, 310, 312, 312, 314, 317, 319, 325, 327, 328, 330, 330, 332, 334, 339, 340, 342, 342, 344, 346, 349, 349, 352, 353, 355, 355, 357, 357, 360, 364, 366, 368, 371, 373, 375, 375, 377, 382, 385, 385, 388, 394, 13, 0, 16, 16, 26, 28, 63, 64, 71, 71, 100, 100, 131, 131, 145, 145, 151, 151, 162, 163, 198, 198, 264, 264, 311, 311, 337, 337, 4, 0, 199, 199, 242, 242, 300, 300, 322, 322, 2, 0, 213, 213, 431, 432, 1, 0, 106, 107, 1, 0, 94, 95, 1, 0, 392, 393, 1, 0, 208, 209, 1, 0, 381, 382, 1, 0, 73, 74, 1, 0, 148, 149, 1, 0, 206, 207, 1, 0, 297, 298, 1, 0, 80, 82, 2, 0, 4, 4, 101, 101, 3, 0, 14, 14, 144, 144, 369, 369, 5939, 0, 1045, 1, 0, 0, 0, 2, 1052, 1, 0, 0, 0, 4, 1057, 1, 0, 0, 0, 6, 1091, 1, 0, 0, 0, 8, 1093, 1, 0, 0, 0, 10, 1095, 1, 0, 0, 0, 12, 1111, 1, 0, 0, 0, 14, 1113, 1, 0, 0, 0, 16, 1129, 1, 0, 0, 0, 18, 1132, 1, 0, 0, 0, 20, 1141, 1, 0, 0, 0, 22, 1149, 1, 0, 0, 0, 24, 1162, 1, 0, 0, 0, 26, 1173, 1, 0, 0, 0, 28, 1178, 1, 0, 0, 0, 30, 1189, 1, 0, 0, 0, 32, 1193, 1, 0, 0, 0, 34, 1201, 1, 0, 0, 0, 36, 1206, 1, 0, 0, 0, 38, 1260, 1, 0, 0, 0, 40, 1262, 1, 0, 0, 0, 42, 1265, 1, 0, 0, 0, 44, 1267, 1, 0, 0, 0, 46, 1271, 1, 0, 0, 0, 48, 1273, 1, 0, 0, 0, 50, 1276, 1, 0, 0, 0, 52, 1279, 1, 0, 0, 0, 54, 1283, 1, 0, 0, 0, 56, 1325, 1, 0, 0, 0, 58, 1327, 1, 0, 0, 0, 60, 1330, 1, 0, 0, 0, 62, 1333, 1, 0, 0, 0, 64, 1337, 1, 0, 0, 0, 66, 1345, 1, 0, 0, 0, 68, 1348, 1, 0, 0, 0, 70, 1351, 1, 0, 0, 0, 72, 1360, 1, 0, 0, 0, 74, 1363, 1, 0, 0, 0, 76, 1378, 1, 0, 0, 0, 78, 1390, 1, 0, 0, 0, 80, 1395, 1, 0, 0, 0, 82, 1415, 1, 0, 0, 0, 84, 1419, 1, 0, 0, 0, 86, 1426, 1, 0, 0, 0, 88, 1451, 1, 0, 0, 0, 90, 1468, 1, 0, 0, 0, 92, 1470, 1, 0, 0, 0, 94, 1665, 1, 0, 0, 0, 96, 1675, 1, 0, 0, 0, 98, 1677, 1, 0, 0, 0, 100, 1685, 1, 0, 0, 0, 102, 1690, 1, 0, 0, 0, 104, 1692, 1, 0, 0, 0, 106, 1698, 1, 0, 0, 0, 108, 1702, 1, 0, 0, 0, 110, 1706, 1, 0, 0, 0, 112, 1710, 1, 0, 0, 0, 114, 1720, 1, 0, 0, 0, 116, 1731, 1, 0, 0, 0, 118, 1748, 1, 0, 0, 0, 120, 1766, 1, 0, 0, 0, 122, 1771, 1, 0, 0, 0, 124, 1774, 1, 0, 0, 0, 126, 1778, 1, 0, 0, 0, 128, 1785, 1, 0, 0, 0, 130, 1794, 1, 0, 0, 0, 132, 1800, 1, 0, 0, 0, 134, 1802, 1, 0, 0, 0, 136, 1819, 1, 0, 0, 0, 138, 1841, 1, 0, 0, 0, 140, 1843, 1, 0, 0, 0, 142, 1851, 1, 0, 0, 0, 144, 1858, 1, 0, 0, 0, 146, 1860, 1, 0, 0, 0, 148, 1874, 1, 0, 0, 0, 150, 1881, 1, 0, 0, 0, 152, 1883, 1, 0, 0, 0, 154, 1887, 1, 0, 0, 0, 156, 1891, 1, 0, 0, 0, 158, 1895, 1, 0, 0, 0, 160, 1899, 1, 0, 0, 0, 162, 1912, 1, 0, 0, 0, 164, 1920, 1, 0, 0, 0, 166, 1923, 1, 0, 0, 0, 168, 1925, 1, 0, 0, 0, 170, 1937, 1, 0, 0, 0, 172, 1947, 1, 0, 0, 0, 174, 1950, 1, 0, 0, 0, 176, 1961, 1, 0, 0, 0, 178, 1969, 1, 0, 0, 0, 180, 2013, 1, 0, 0, 0, 182, 2022, 1, 0, 0, 0, 184, 2049, 1, 0, 0, 0, 186, 2062, 1, 0, 0, 0, 188, 2064, 1, 0, 0, 0, 190, 2070, 1, 0, 0, 0, 192, 2073, 1, 0, 0, 0, 194, 2079, 1, 0, 0, 0, 196, 2085, 1, 0, 0, 0, 198, 2092, 1, 0, 0, 0, 200, 2126, 1, 0, 0, 0, 202, 2134, 1, 0, 0, 0, 204, 2147, 1, 0, 0, 0, 206, 2152, 1, 0, 0, 0, 208, 2163, 1, 0, 0, 0, 210, 2180, 1, 0, 0, 0, 212, 2182, 1, 0, 0, 0, 214, 2187, 1, 0, 0, 0, 216, 2194, 1, 0, 0, 0, 218, 2196, 1, 0, 0, 0, 220, 2199, 1, 0, 0, 0, 222, 2202, 1, 0, 0, 0, 224, 2216, 1, 0, 0, 0, 226, 2224, 1, 0, 0, 0, 228, 2232, 1, 0, 0, 0, 230, 2240, 1, 0, 0, 0, 232, 2260, 1, 0, 0, 0, 234, 2262, 1, 0, 0, 0, 236, 2279, 1, 0, 0, 0, 238, 2284, 1, 0, 0, 0, 240, 2298, 1, 0, 0, 0, 242, 2300, 1, 0, 0, 0, 244, 2303, 1, 0, 0, 0, 246, 2306, 1, 0, 0, 0, 248, 2315, 1, 0, 0, 0, 250, 2335, 1, 0, 0, 0, 252, 2337, 1, 0, 0, 0, 254, 2340, 1, 0, 0, 0, 256, 2360, 1, 0, 0, 0, 258, 2362, 1, 0, 0, 0, 260, 2366, 1, 0, 0, 0, 262, 2368, 1, 0, 0, 0, 264, 2377, 1, 0, 0, 0, 266, 2383, 1, 0, 0, 0, 268, 2389, 1, 0, 0, 0, 270, 2394, 1, 0, 0, 0, 272, 2440, 1, 0, 0, 0, 274, 2442, 1, 0, 0, 0, 276, 2445, 1, 0, 0, 0, 278, 2453, 1, 0, 0, 0, 280, 2461, 1, 0, 0, 0, 282, 2469, 1, 0, 0, 0, 284, 2486, 1, 0, 0, 0, 286, 2488, 1, 0, 0, 0, 288, 2490, 1, 0, 0, 0, 290, 2503, 1, 0, 0, 0, 292, 2511, 1, 0, 0, 0, 294, 2520, 1, 0, 0, 0, 296, 2524, 1, 0, 0, 0, 298, 2526, 1, 0, 0, 0, 300, 2531, 1, 0, 0, 0, 302, 2533, 1, 0, 0, 0, 304, 2537, 1, 0, 0, 0, 306, 2543, 1, 0, 0, 0, 308, 2551, 1, 0, 0, 0, 310, 2553, 1, 0, 0, 0, 312, 2556, 1, 0, 0, 0, 314, 2563, 1, 0, 0, 0, 316, 2574, 1, 0, 0, 0, 318, 2587, 1, 0, 0, 0, 320, 2589, 1, 0, 0, 0, 322, 2597, 1, 0, 0, 0, 324, 2601, 1, 0, 0, 0, 326, 2609, 1, 0, 0, 0, 328, 2613, 1, 0, 0, 0, 330, 2615, 1, 0, 0, 0, 332, 2617, 1, 0, 0, 0, 334, 2620, 1, 0, 0, 0, 336, 2627, 1, 0, 0, 0, 338, 2635, 1, 0, 0, 0, 340, 2640, 1, 0, 0, 0, 342, 2644, 1, 0, 0, 0, 344, 2652, 1, 0, 0, 0, 346, 2660, 1, 0, 0, 0, 348, 2664, 1, 0, 0, 0, 350, 2666, 1, 0, 0, 0, 352, 2677, 1, 0, 0, 0, 354, 2681, 1, 0, 0, 0, 356, 2693, 1, 0, 0, 0, 358, 2701, 1, 0, 0, 0, 360, 2705, 1, 0, 0, 0, 362, 2717, 1, 0, 0, 0, 364, 2729, 1, 0, 0, 0, 366, 2734, 1, 0, 0, 0, 368, 2739, 1, 0, 0, 0, 370, 2741, 1, 0, 0, 0, 372, 2745, 1, 0, 0, 0, 374, 2749, 1, 0, 0, 0, 376, 2756, 1, 0, 0, 0, 378, 2758, 1, 0, 0, 0, 380, 2771, 1, 0, 0, 0, 382, 2810, 1, 0, 0, 0, 384, 2812, 1, 0, 0, 0, 386, 2817, 1, 0, 0, 0, 388, 2822, 1, 0, 0, 0, 390, 2829, 1, 0, 0, 0, 392, 2834, 1, 0, 0, 0, 394, 2839, 1, 0, 0, 0, 396, 2845, 1, 0, 0, 0, 398, 2847, 1, 0, 0, 0, 400, 2856, 1, 0, 0, 0, 402, 2868, 1, 0, 0, 0, 404, 2948, 1, 0, 0, 0, 406, 2954, 1, 0, 0, 0, 408, 2980, 1, 0, 0, 0, 410, 2982, 1, 0, 0, 0, 412, 3004, 1, 0, 0, 0, 414, 3009, 1, 0, 0, 0, 416, 3013, 1, 0, 0, 0, 418, 3045, 1, 0, 0, 0, 420, 3047, 1, 0, 0, 0, 422, 3058, 1, 0, 0, 0, 424, 3064, 1, 0, 0, 0, 426, 3070, 1, 0, 0, 0, 428, 3072, 1, 0, 0, 0, 430, 3081, 1, 0, 0, 0, 432, 3091, 1, 0, 0, 0, 434, 3093, 1, 0, 0, 0, 436, 3107, 1, 0, 0, 0, 438, 3109, 1, 0, 0, 0, 440, 3112, 1, 0, 0, 0, 442, 3116, 1, 0, 0, 0, 444, 3118, 1, 0, 0, 0, 446, 3122, 1, 0, 0, 0, 448, 3126, 1, 0, 0, 0, 450, 3130, 1, 0, 0, 0, 452, 3137, 1, 0, 0, 0, 454, 3144, 1, 0, 0, 0, 456, 3166, 1, 0, 0, 0, 458, 3172, 1, 0, 0, 0, 460, 3187, 1, 0, 0, 0, 462, 3194, 1, 0, 0, 0, 464, 3202, 1, 0, 0, 0, 466, 3204, 1, 0, 0, 0, 468, 3211, 1, 0, 0, 0, 470, 3215, 1, 0, 0, 0, 472, 3218, 1, 0, 0, 0, 474, 3221, 1, 0, 0, 0, 476, 3224, 1, 0, 0, 0, 478, 3271, 1, 0, 0, 0, 480, 3288, 1, 0, 0, 0, 482, 3290, 1, 0, 0, 0, 484, 3301, 1, 0, 0, 0, 486, 3305, 1, 0, 0, 0, 488, 3309, 1, 0, 0, 0, 490, 3311, 1, 0, 0, 0, 492, 3316, 1, 0, 0, 0, 494, 3318, 1, 0, 0, 0, 496, 3323, 1, 0, 0, 0, 498, 3328, 1, 0, 0, 0, 500, 3333, 1, 0, 0, 0, 502, 3338, 1, 0, 0, 0, 504, 3344, 1, 0, 0, 0, 506, 3353, 1, 0, 0, 0, 508, 3358, 1, 0, 0, 0, 510, 3371, 1, 0, 0, 0, 512, 3373, 1, 0, 0, 0, 514, 3377, 1, 0, 0, 0, 516, 3397, 1, 0, 0, 0, 518, 3410, 1, 0, 0, 0, 520, 3418, 1, 0, 0, 0, 522, 3420, 1, 0, 0, 0, 524, 3429, 1, 0, 0, 0, 526, 3433, 1, 0, 0, 0, 528, 3440, 1, 0, 0, 0, 530, 3447, 1, 0, 0, 0, 532, 3454, 1, 0, 0, 0, 534, 3457, 1, 0, 0, 0, 536, 3460, 1, 0, 0, 0, 538, 3492, 1, 0, 0, 0, 540, 3503, 1, 0, 0, 0, 542, 3520, 1, 0, 0, 0, 544, 3522, 1, 0, 0, 0, 546, 3526, 1, 0, 0, 0, 548, 3533, 1, 0, 0, 0, 550, 3535, 1, 0, 0, 0, 552, 3540, 1, 0, 0, 0, 554, 3544, 1, 0, 0, 0, 556, 3552, 1, 0, 0, 0, 558, 3556, 1, 0, 0, 0, 560, 3566, 1, 0, 0, 0, 562, 3568, 1, 0, 0, 0, 564, 3574, 1, 0, 0, 0, 566, 3578, 1, 0, 0, 0, 568, 3591, 1, 0, 0, 0, 570, 3593, 1, 0, 0, 0, 572, 3597, 1, 0, 0, 0, 574, 3600, 1, 0, 0, 0, 576, 3603, 1, 0, 0, 0, 578, 3623, 1, 0, 0, 0, 580, 3627, 1, 0, 0, 0, 582, 3634, 1, 0, 0, 0, 584, 3648, 1, 0, 0, 0, 586, 3669, 1, 0, 0, 0, 588, 3674, 1, 0, 0, 0, 590, 3676, 1, 0, 0, 0, 592, 3681, 1, 0, 0, 0, 594, 3686, 1, 0, 0, 0, 596, 3700, 1, 0, 0, 0, 598, 3837, 1, 0, 0, 0, 600, 3839, 1, 0, 0, 0, 602, 3859, 1, 0, 0, 0, 604, 3862, 1, 0, 0, 0, 606, 3865, 1, 0, 0, 0, 608, 3868, 1, 0, 0, 0, 610, 3872, 1, 0, 0, 0, 612, 3884, 1, 0, 0, 0, 614, 3889, 1, 0, 0, 0, 616, 3891, 1, 0, 0, 0, 618, 3899, 1, 0, 0, 0, 620, 3907, 1, 0, 0, 0, 622, 3919, 1, 0, 0, 0, 624, 3953, 1, 0, 0, 0, 626, 3955, 1, 0, 0, 0, 628, 3973, 1, 0, 0, 0, 630, 3982, 1, 0, 0, 0, 632, 3987, 1, 0, 0, 0, 634, 3991, 1, 0, 0, 0, 636, 4007, 1, 0, 0, 0, 638, 4066, 1, 0, 0, 0, 640, 4068, 1, 0, 0, 0, 642, 4070, 1, 0, 0, 0, 644, 4090, 1, 0, 0, 0, 646, 4101, 1, 0, 0, 0, 648, 4103, 1, 0, 0, 0, 650, 4119, 1, 0, 0, 0, 652, 4131, 1, 0, 0, 0, 654, 4141, 1, 0, 0, 0, 656, 4143, 1, 0, 0, 0, 658, 4147, 1, 0, 0, 0, 660, 4157, 1, 0, 0, 0, 662, 4167, 1, 0, 0, 0, 664, 4172, 1, 0, 0, 0, 666, 4179, 1, 0, 0, 0, 668, 4183, 1, 0, 0, 0, 670, 4202, 1, 0, 0, 0, 672, 4207, 1, 0, 0, 0, 674, 4209, 1, 0, 0, 0, 676, 4237, 1, 0, 0, 0, 678, 4240, 1, 0, 0, 0, 680, 4242, 1, 0, 0, 0, 682, 4244, 1, 0, 0, 0, 684, 4263, 1, 0, 0, 0, 686, 4265, 1, 0, 0, 0, 688, 4267, 1, 0, 0, 0, 690, 4271, 1, 0, 0, 0, 692, 4305, 1, 0, 0, 0, 694, 4307, 1, 0, 0, 0, 696, 4309, 1, 0, 0, 0, 698, 4317, 1, 0, 0, 0, 700, 4364, 1, 0, 0, 0, 702, 4366, 1, 0, 0, 0, 704, 4391, 1, 0, 0, 0, 706, 4393, 1, 0, 0, 0, 708, 4401, 1, 0, 0, 0, 710, 4410, 1, 0, 0, 0, 712, 4426, 1, 0, 0, 0, 714, 4430, 1, 0, 0, 0, 716, 4432, 1, 0, 0, 0, 718, 4441, 1, 0, 0, 0, 720, 4456, 1, 0, 0, 0, 722, 4462, 1, 0, 0, 0, 724, 4464, 1, 0, 0, 0, 726, 4472, 1, 0, 0, 0, 728, 4474, 1, 0, 0, 0, 730, 4479, 1, 0, 0, 0, 732, 4492, 1, 0, 0, 0, 734, 4516, 1, 0, 0, 0, 736, 4518, 1, 0, 0, 0, 738, 4531, 1, 0, 0, 0, 740, 4533, 1, 0, 0, 0, 742, 4536, 1, 0, 0, 0, 744, 4539, 1, 0, 0, 0, 746, 4541, 1, 0, 0, 0, 748, 4545, 1, 0, 0, 0, 750, 4551, 1, 0, 0, 0, 752, 4557, 1, 0, 0, 0, 754, 4559, 1, 0, 0, 0, 756, 4573, 1, 0, 0, 0, 758, 4582, 1, 0, 0, 0, 760, 4584, 1, 0, 0, 0, 762, 4595, 1, 0, 0, 0, 764, 4603, 1, 0, 0, 0, 766, 4613, 1, 0, 0, 0, 768, 4617, 1, 0, 0, 0, 770, 4621, 1, 0, 0, 0, 772, 4625, 1, 0, 0, 0, 774, 4631, 1, 0, 0, 0, 776, 4685, 1, 0, 0, 0, 778, 4691, 1, 0, 0, 0, 780, 4693, 1, 0, 0, 0, 782, 4697, 1, 0, 0, 0, 784, 4701, 1, 0, 0, 0, 786, 4703, 1, 0, 0, 0, 788, 4707, 1, 0, 0, 0, 790, 4709, 1, 0, 0, 0, 792, 4720, 1, 0, 0, 0, 794, 4737, 1, 0, 0, 0, 796, 4753, 1, 0, 0, 0, 798, 4770, 1, 0, 0, 0, 800, 4772, 1, 0, 0, 0, 802, 4787, 1, 0, 0, 0, 804, 4802, 1, 0, 0, 0, 806, 4804, 1, 0, 0, 0, 808, 4806, 1, 0, 0, 0, 810, 4808, 1, 0, 0, 0, 812, 4814, 1, 0, 0, 0, 814, 4820, 1, 0, 0, 0, 816, 4825, 1, 0, 0, 0, 818, 4827, 1, 0, 0, 0, 820, 4830, 1, 0, 0, 0, 822, 4832, 1, 0, 0, 0, 824, 4850, 1, 0, 0, 0, 826, 4866, 1, 0, 0, 0, 828, 4868, 1, 0, 0, 0, 830, 4881, 1, 0, 0, 0, 832, 4883, 1, 0, 0, 0, 834, 4895, 1, 0, 0, 0, 836, 4900, 1, 0, 0, 0, 838, 4905, 1, 0, 0, 0, 840, 4907, 1, 0, 0, 0, 842, 4916, 1, 0, 0, 0, 844, 4918, 1, 0, 0, 0, 846, 4927, 1, 0, 0, 0, 848, 4929, 1, 0, 0, 0, 850, 4938, 1, 0, 0, 0, 852, 4940, 1, 0, 0, 0, 854, 4949, 1, 0, 0, 0, 856, 4951, 1, 0, 0, 0, 858, 4960, 1, 0, 0, 0, 860, 4962, 1, 0, 0, 0, 862, 4971, 1, 0, 0, 0, 864, 4978, 1, 0, 0, 0, 866, 4980, 1, 0, 0, 0, 868, 4987, 1, 0, 0, 0, 870, 4989, 1, 0, 0, 0, 872, 4999, 1, 0, 0, 0, 874, 5012, 1, 0, 0, 0, 876, 5014, 1, 0, 0, 0, 878, 5018, 1, 0, 0, 0, 880, 5022, 1, 0, 0, 0, 882, 5028, 1, 0, 0, 0, 884, 5030, 1, 0, 0, 0, 886, 5041, 1, 0, 0, 0, 888, 5043, 1, 0, 0, 0, 890, 5067, 1, 0, 0, 0, 892, 5069, 1, 0, 0, 0, 894, 5074, 1, 0, 0, 0, 896, 5079, 1, 0, 0, 0, 898, 5084, 1, 0, 0, 0, 900, 5086, 1, 0, 0, 0, 902, 5095, 1, 0, 0, 0, 904, 5097, 1, 0, 0, 0, 906, 5106, 1, 0, 0, 0, 908, 5108, 1, 0, 0, 0, 910, 5110, 1, 0, 0, 0, 912, 5114, 1, 0, 0, 0, 914, 5126, 1, 0, 0, 0, 916, 5131, 1, 0, 0, 0, 918, 5142, 1, 0, 0, 0, 920, 5148, 1, 0, 0, 0, 922, 5150, 1, 0, 0, 0, 924, 5152, 1, 0, 0, 0, 926, 5156, 1, 0, 0, 0, 928, 5158, 1, 0, 0, 0, 930, 5163, 1, 0, 0, 0, 932, 5165, 1, 0, 0, 0, 934, 5167, 1, 0, 0, 0, 936, 5169, 1, 0, 0, 0, 938, 5172, 1, 0, 0, 0, 940, 5180, 1, 0, 0, 0, 942, 5187, 1, 0, 0, 0, 944, 5189, 1, 0, 0, 0, 946, 5197, 1, 0, 0, 0, 948, 5199, 1, 0, 0, 0, 950, 5204, 1, 0, 0, 0, 952, 5209, 1, 0, 0, 0, 954, 5231, 1, 0, 0, 0, 956, 5240, 1, 0, 0, 0, 958, 5242, 1, 0, 0, 0, 960, 5253, 1, 0, 0, 0, 962, 5255, 1, 0, 0, 0, 964, 5263, 1, 0, 0, 0, 966, 5280, 1, 0, 0, 0, 968, 5283, 1, 0, 0, 0, 970, 5287, 1, 0, 0, 0, 972, 5289, 1, 0, 0, 0, 974, 5291, 1, 0, 0, 0, 976, 5293, 1, 0, 0, 0, 978, 5295, 1, 0, 0, 0, 980, 5297, 1, 0, 0, 0, 982, 5299, 1, 0, 0, 0, 984, 5301, 1, 0, 0, 0, 986, 5303, 1, 0, 0, 0, 988, 5305, 1, 0, 0, 0, 990, 5307, 1, 0, 0, 0, 992, 5309, 1, 0, 0, 0, 994, 5334, 1, 0, 0, 0, 996, 5339, 1, 0, 0, 0, 998, 5353, 1, 0, 0, 0, 1000, 5361, 1, 0, 0, 0, 1002, 5369, 1, 0, 0, 0, 1004, 5371, 1, 0, 0, 0, 1006, 5374, 1, 0, 0, 0, 1008, 5382, 1, 0, 0, 0, 1010, 5390, 1, 0, 0, 0, 1012, 5394, 1, 0, 0, 0, 1014, 5396, 1, 0, 0, 0, 1016, 5402, 1, 0, 0, 0, 1018, 5404, 1, 0, 0, 0, 1020, 5407, 1, 0, 0, 0, 1022, 5417, 1, 0, 0, 0, 1024, 5440, 1, 0, 0, 0, 1026, 5458, 1, 0, 0, 0, 1028, 5460, 1, 0, 0, 0, 1030, 5468, 1, 0, 0, 0, 1032, 5476, 1, 0, 0, 0, 1034, 5490, 1, 0, 0, 0, 1036, 5496, 1, 0, 0, 0, 1038, 5512, 1, 0, 0, 0, 1040, 5528, 1, 0, 0, 0, 1042, 1044, 3, 2, 1, 0, 1043, 1042, 1, 0, 0, 0, 1044, 1047, 1, 0, 0, 0, 1045, 1043, 1, 0, 0, 0, 1045, 1046, 1, 0, 0, 0, 1046, 1048, 1, 0, 0, 0, 1047, 1045, 1, 0, 0, 0, 1048, 1049, 5, 0, 0, 1, 1049, 1, 1, 0, 0, 0, 1050, 1053, 3, 4, 2, 0, 1051, 1053, 3, 12, 6, 0, 1052, 1050, 1, 0, 0, 0, 1052, 1051, 1, 0, 0, 0, 1053, 1055, 1, 0, 0, 0, 1054, 1056, 5, 398, 0, 0, 1055, 1054, 1, 0, 0, 0, 1055, 1056, 1, 0, 0, 0, 1056, 3, 1, 0, 0, 0, 1057, 1067, 5, 119, 0, 0, 1058, 1060, 3, 6, 3, 0, 1059, 1058, 1, 0, 0, 0, 1060, 1063, 1, 0, 0, 0, 1061, 1059, 1, 0, 0, 0, 1061, 1062, 1, 0, 0, 0, 1062, 1064, 1, 0, 0, 0, 1063, 1061, 1, 0, 0, 0, 1064, 1068, 3, 12, 6, 0, 1065, 1066, 5, 284, 0, 0, 1066, 1068, 3, 394, 197, 0, 1067, 1061, 1, 0, 0, 0, 1067, 1065, 1, 0, 0, 0, 1068, 5, 1, 0, 0, 0, 1069, 1092, 5, 122, 0, 0, 1070, 1092, 5, 138, 0, 0, 1071, 1092, 5, 88, 0, 0, 1072, 1074, 5, 37, 0, 0, 1073, 1075, 7, 0, 0, 0, 1074, 1073, 1, 0, 0, 0, 1074, 1075, 1, 0, 0, 0, 1075, 1092, 1, 0, 0, 0, 1076, 1092, 5, 192, 0, 0, 1077, 1092, 5, 21, 0, 0, 1078, 1092, 5, 10, 0, 0, 1079, 1092, 5, 275, 0, 0, 1080, 1092, 5, 191, 0, 0, 1081, 1092, 5, 19, 0, 0, 1082, 1084, 5, 377, 0, 0, 1083, 1085, 3, 8, 4, 0, 1084, 1083, 1, 0, 0, 0, 1084, 1085, 1, 0, 0, 0, 1085, 1087, 1, 0, 0, 0, 1086, 1088, 3, 10, 5, 0, 1087, 1086, 1, 0, 0, 0, 1087, 1088, 1, 0, 0, 0, 1088, 1092, 1, 0, 0, 0, 1089, 1092, 5, 79, 0, 0, 1090, 1092, 5, 78, 0, 0, 1091, 1069, 1, 0, 0, 0, 1091, 1070, 1, 0, 0, 0, 1091, 1071, 1, 0, 0, 0, 1091, 1072, 1, 0, 0, 0, 1091, 1076, 1, 0, 0, 0, 1091, 1077, 1, 0, 0, 0, 1091, 1078, 1, 0, 0, 0, 1091, 1079, 1, 0, 0, 0, 1091, 1080, 1, 0, 0, 0, 1091, 1081, 1, 0, 0, 0, 1091, 1082, 1, 0, 0, 0, 1091, 1089, 1, 0, 0, 0, 1091, 1090, 1, 0, 0, 0, 1092, 7, 1, 0, 0, 0, 1093, 1094, 5, 225, 0, 0, 1094, 9, 1, 0, 0, 0, 1095, 1096, 7, 1, 0, 0, 1096, 11, 1, 0, 0, 0, 1097, 1112, 3, 394, 197, 0, 1098, 1112, 3, 14, 7, 0, 1099, 1112, 3, 20, 10, 0, 1100, 1112, 3, 22, 11, 0, 1101, 1112, 3, 24, 12, 0, 1102, 1112, 3, 28, 14, 0, 1103, 1112, 3, 36, 18, 0, 1104, 1112, 3, 38, 19, 0, 1105, 1112, 3, 422, 211, 0, 1106, 1112, 3, 430, 215, 0, 1107, 1112, 3, 432, 216, 0, 1108, 1112, 3, 454, 227, 0, 1109, 1112, 3, 948, 474, 0, 1110, 1112, 3, 950, 475, 0, 1111, 1097, 1, 0, 0, 0, 1111, 1098, 1, 0, 0, 0, 1111, 1099, 1, 0, 0, 0, 1111, 1100, 1, 0, 0, 0, 1111, 1101, 1, 0, 0, 0, 1111, 1102, 1, 0, 0, 0, 1111, 1103, 1, 0, 0, 0, 1111, 1104, 1, 0, 0, 0, 1111, 1105, 1, 0, 0, 0, 1111, 1106, 1, 0, 0, 0, 1111, 1107, 1, 0, 0, 0, 1111, 1108, 1, 0, 0, 0, 1111, 1109, 1, 0, 0, 0, 1111, 1110, 1, 0, 0, 0, 1112, 13, 1, 0, 0, 0, 1113, 1114, 5, 187, 0, 0, 1114, 1116, 5, 66, 0, 0, 1115, 1117, 5, 188, 0, 0, 1116, 1115, 1, 0, 0, 0, 1116, 1117, 1, 0, 0, 0, 1117, 1118, 1, 0, 0, 0, 1118, 1119, 5, 158, 0, 0, 1119, 1121, 5, 426, 0, 0, 1120, 1122, 5, 235, 0, 0, 1121, 1120, 1, 0, 0, 0, 1121, 1122, 1, 0, 0, 0, 1122, 1123, 1, 0, 0, 0, 1123, 1124, 5, 166, 0, 0, 1124, 1125, 5, 329, 0, 0, 1125, 1127, 3, 910, 455, 0, 1126, 1128, 3, 78, 39, 0, 1127, 1126, 1, 0, 0, 0, 1127, 1128, 1, 0, 0, 0, 1128, 15, 1, 0, 0, 0, 1129, 1130, 5, 152, 0, 0, 1130, 1131, 5, 254, 0, 0, 1131, 17, 1, 0, 0, 0, 1132, 1134, 5, 134, 0, 0, 1133, 1135, 5, 204, 0, 0, 1134, 1133, 1, 0, 0, 0, 1134, 1135, 1, 0, 0, 0, 1135, 1136, 1, 0, 0, 0, 1136, 1137, 5, 279, 0, 0, 1137, 1138, 5, 399, 0, 0, 1138, 1139, 5, 426, 0, 0, 1139, 1140, 5, 400, 0, 0, 1140, 19, 1, 0, 0, 0, 1141, 1142, 5, 120, 0, 0, 1142, 1143, 5, 329, 0, 0, 1143, 1144, 3, 910, 455, 0, 1144, 1145, 5, 341, 0, 0, 1145, 1147, 5, 426, 0, 0, 1146, 1148, 3, 18, 9, 0, 1147, 1146, 1, 0, 0, 0, 1147, 1148, 1, 0, 0, 0, 1148, 21, 1, 0, 0, 0, 1149, 1155, 5, 153, 0, 0, 1150, 1152, 5, 123, 0, 0, 1151, 1150, 1, 0, 0, 0, 1151, 1152, 1, 0, 0, 0, 1152, 1153, 1, 0, 0, 0, 1153, 1154, 5, 329, 0, 0, 1154, 1156, 3, 910, 455, 0, 1155, 1151, 1, 0, 0, 0, 1155, 1156, 1, 0, 0, 0, 1156, 1157, 1, 0, 0, 0, 1157, 1158, 5, 139, 0, 0, 1158, 1160, 5, 426, 0, 0, 1159, 1161, 3, 274, 137, 0, 1160, 1159, 1, 0, 0, 0, 1160, 1161, 1, 0, 0, 0, 1161, 23, 1, 0, 0, 0, 1162, 1163, 5, 277, 0, 0, 1163, 1164, 5, 103, 0, 0, 1164, 1167, 3, 26, 13, 0, 1165, 1166, 5, 278, 0, 0, 1166, 1168, 3, 26, 13, 0, 1167, 1165, 1, 0, 0, 0, 1167, 1168, 1, 0, 0, 0, 1168, 1171, 1, 0, 0, 0, 1169, 1170, 5, 387, 0, 0, 1170, 1172, 3, 30, 15, 0, 1171, 1169, 1, 0, 0, 0, 1171, 1172, 1, 0, 0, 0, 1172, 25, 1, 0, 0, 0, 1173, 1176, 3, 654, 327, 0, 1174, 1175, 5, 395, 0, 0, 1175, 1177, 3, 34, 17, 0, 1176, 1174, 1, 0, 0, 0, 1176, 1177, 1, 0, 0, 0, 1177, 27, 1, 0, 0, 0, 1178, 1179, 5, 277, 0, 0, 1179, 1180, 5, 187, 0, 0, 1180, 1183, 3, 26, 13, 0, 1181, 1182, 5, 166, 0, 0, 1182, 1184, 3, 654, 327, 0, 1183, 1181, 1, 0, 0, 0, 1183, 1184, 1, 0, 0, 0, 1184, 1187, 1, 0, 0, 0, 1185, 1186, 5, 387, 0, 0, 1186, 1188, 3, 30, 15, 0, 1187, 1185, 1, 0, 0, 0, 1187, 1188, 1, 0, 0, 0, 1188, 29, 1, 0, 0, 0, 1189, 1190, 5, 399, 0, 0, 1190, 1191, 3, 32, 16, 0, 1191, 1192, 5, 400, 0, 0, 1192, 31, 1, 0, 0, 0, 1193, 1198, 3, 258, 129, 0, 1194, 1195, 5, 397, 0, 0, 1195, 1197, 3, 258, 129, 0, 1196, 1194, 1, 0, 0, 0, 1197, 1200, 1, 0, 0, 0, 1198, 1196, 1, 0, 0, 0, 1198, 1199, 1, 0, 0, 0, 1199, 33, 1, 0, 0, 0, 1200, 1198, 1, 0, 0, 0, 1201, 1204, 5, 426, 0, 0, 1202, 1203, 5, 395, 0, 0, 1203, 1205, 5, 426, 0, 0, 1204, 1202, 1, 0, 0, 0, 1204, 1205, 1, 0, 0, 0, 1205, 35, 1, 0, 0, 0, 1206, 1207, 5, 277, 0, 0, 1207, 1208, 5, 320, 0, 0, 1208, 1211, 3, 654, 327, 0, 1209, 1210, 5, 387, 0, 0, 1210, 1212, 3, 30, 15, 0, 1211, 1209, 1, 0, 0, 0, 1211, 1212, 1, 0, 0, 0, 1212, 37, 1, 0, 0, 0, 1213, 1261, 3, 56, 28, 0, 1214, 1261, 3, 68, 34, 0, 1215, 1261, 3, 70, 35, 0, 1216, 1261, 3, 598, 299, 0, 1217, 1261, 3, 76, 38, 0, 1218, 1261, 3, 74, 37, 0, 1219, 1261, 3, 476, 238, 0, 1220, 1261, 3, 86, 43, 0, 1221, 1261, 3, 94, 47, 0, 1222, 1261, 3, 160, 80, 0, 1223, 1261, 3, 182, 91, 0, 1224, 1261, 3, 198, 99, 0, 1225, 1261, 3, 202, 101, 0, 1226, 1261, 3, 206, 103, 0, 1227, 1261, 3, 204, 102, 0, 1228, 1261, 3, 196, 98, 0, 1229, 1261, 3, 200, 100, 0, 1230, 1261, 3, 168, 84, 0, 1231, 1261, 3, 174, 87, 0, 1232, 1261, 3, 170, 85, 0, 1233, 1261, 3, 172, 86, 0, 1234, 1261, 3, 176, 88, 0, 1235, 1261, 3, 178, 89, 0, 1236, 1261, 3, 180, 90, 0, 1237, 1261, 3, 88, 44, 0, 1238, 1261, 3, 98, 49, 0, 1239, 1261, 3, 104, 52, 0, 1240, 1261, 3, 100, 50, 0, 1241, 1261, 3, 106, 53, 0, 1242, 1261, 3, 108, 54, 0, 1243, 1261, 3, 110, 55, 0, 1244, 1261, 3, 112, 56, 0, 1245, 1261, 3, 114, 57, 0, 1246, 1261, 3, 128, 64, 0, 1247, 1261, 3, 120, 60, 0, 1248, 1261, 3, 130, 65, 0, 1249, 1261, 3, 122, 61, 0, 1250, 1261, 3, 116, 58, 0, 1251, 1261, 3, 118, 59, 0, 1252, 1261, 3, 126, 63, 0, 1253, 1261, 3, 124, 62, 0, 1254, 1261, 3, 450, 225, 0, 1255, 1261, 3, 452, 226, 0, 1256, 1261, 3, 466, 233, 0, 1257, 1261, 3, 954, 477, 0, 1258, 1261, 3, 600, 300, 0, 1259, 1261, 3, 610, 305, 0, 1260, 1213, 1, 0, 0, 0, 1260, 1214, 1, 0, 0, 0, 1260, 1215, 1, 0, 0, 0, 1260, 1216, 1, 0, 0, 0, 1260, 1217, 1, 0, 0, 0, 1260, 1218, 1, 0, 0, 0, 1260, 1219, 1, 0, 0, 0, 1260, 1220, 1, 0, 0, 0, 1260, 1221, 1, 0, 0, 0, 1260, 1222, 1, 0, 0, 0, 1260, 1223, 1, 0, 0, 0, 1260, 1224, 1, 0, 0, 0, 1260, 1225, 1, 0, 0, 0, 1260, 1226, 1, 0, 0, 0, 1260, 1227, 1, 0, 0, 0, 1260, 1228, 1, 0, 0, 0, 1260, 1229, 1, 0, 0, 0, 1260, 1230, 1, 0, 0, 0, 1260, 1231, 1, 0, 0, 0, 1260, 1232, 1, 0, 0, 0, 1260, 1233, 1, 0, 0, 0, 1260, 1234, 1, 0, 0, 0, 1260, 1235, 1, 0, 0, 0, 1260, 1236, 1, 0, 0, 0, 1260, 1237, 1, 0, 0, 0, 1260, 1238, 1, 0, 0, 0, 1260, 1239, 1, 0, 0, 0, 1260, 1240, 1, 0, 0, 0, 1260, 1241, 1, 0, 0, 0, 1260, 1242, 1, 0, 0, 0, 1260, 1243, 1, 0, 0, 0, 1260, 1244, 1, 0, 0, 0, 1260, 1245, 1, 0, 0, 0, 1260, 1246, 1, 0, 0, 0, 1260, 1247, 1, 0, 0, 0, 1260, 1248, 1, 0, 0, 0, 1260, 1249, 1, 0, 0, 0, 1260, 1250, 1, 0, 0, 0, 1260, 1251, 1, 0, 0, 0, 1260, 1252, 1, 0, 0, 0, 1260, 1253, 1, 0, 0, 0, 1260, 1254, 1, 0, 0, 0, 1260, 1255, 1, 0, 0, 0, 1260, 1256, 1, 0, 0, 0, 1260, 1257, 1, 0, 0, 0, 1260, 1258, 1, 0, 0, 0, 1260, 1259, 1, 0, 0, 0, 1261, 39, 1, 0, 0, 0, 1262, 1263, 5, 151, 0, 0, 1263, 1264, 5, 117, 0, 0, 1264, 41, 1, 0, 0, 0, 1265, 1266, 7, 2, 0, 0, 1266, 43, 1, 0, 0, 0, 1267, 1268, 5, 151, 0, 0, 1268, 1269, 5, 216, 0, 0, 1269, 1270, 5, 117, 0, 0, 1270, 45, 1, 0, 0, 0, 1271, 1272, 5, 135, 0, 0, 1272, 47, 1, 0, 0, 0, 1273, 1274, 3, 970, 485, 0, 1274, 1275, 5, 284, 0, 0, 1275, 49, 1, 0, 0, 0, 1276, 1277, 3, 972, 486, 0, 1277, 1278, 5, 284, 0, 0, 1278, 51, 1, 0, 0, 0, 1279, 1280, 5, 321, 0, 0, 1280, 1281, 5, 17, 0, 0, 1281, 1282, 5, 92, 0, 0, 1282, 53, 1, 0, 0, 0, 1283, 1284, 5, 228, 0, 0, 1284, 1285, 5, 278, 0, 0, 1285, 55, 1, 0, 0, 0, 1286, 1288, 5, 58, 0, 0, 1287, 1289, 5, 273, 0, 0, 1288, 1287, 1, 0, 0, 0, 1288, 1289, 1, 0, 0, 0, 1289, 1290, 1, 0, 0, 0, 1290, 1292, 3, 92, 46, 0, 1291, 1293, 3, 44, 22, 0, 1292, 1291, 1, 0, 0, 0, 1292, 1293, 1, 0, 0, 0, 1293, 1294, 1, 0, 0, 0, 1294, 1296, 3, 656, 328, 0, 1295, 1297, 3, 72, 36, 0, 1296, 1295, 1, 0, 0, 0, 1296, 1297, 1, 0, 0, 0, 1297, 1299, 1, 0, 0, 0, 1298, 1300, 3, 58, 29, 0, 1299, 1298, 1, 0, 0, 0, 1299, 1300, 1, 0, 0, 0, 1300, 1302, 1, 0, 0, 0, 1301, 1303, 3, 60, 30, 0, 1302, 1301, 1, 0, 0, 0, 1302, 1303, 1, 0, 0, 0, 1303, 1307, 1, 0, 0, 0, 1304, 1305, 5, 387, 0, 0, 1305, 1306, 5, 76, 0, 0, 1306, 1308, 3, 62, 31, 0, 1307, 1304, 1, 0, 0, 0, 1307, 1308, 1, 0, 0, 0, 1308, 1326, 1, 0, 0, 0, 1309, 1310, 5, 58, 0, 0, 1310, 1311, 5, 273, 0, 0, 1311, 1313, 3, 92, 46, 0, 1312, 1314, 3, 44, 22, 0, 1313, 1312, 1, 0, 0, 0, 1313, 1314, 1, 0, 0, 0, 1314, 1315, 1, 0, 0, 0, 1315, 1317, 3, 656, 328, 0, 1316, 1318, 3, 72, 36, 0, 1317, 1316, 1, 0, 0, 0, 1317, 1318, 1, 0, 0, 0, 1318, 1319, 1, 0, 0, 0, 1319, 1323, 3, 66, 33, 0, 1320, 1321, 5, 387, 0, 0, 1321, 1322, 5, 76, 0, 0, 1322, 1324, 3, 62, 31, 0, 1323, 1320, 1, 0, 0, 0, 1323, 1324, 1, 0, 0, 0, 1324, 1326, 1, 0, 0, 0, 1325, 1286, 1, 0, 0, 0, 1325, 1309, 1, 0, 0, 0, 1326, 57, 1, 0, 0, 0, 1327, 1328, 5, 189, 0, 0, 1328, 1329, 5, 426, 0, 0, 1329, 59, 1, 0, 0, 0, 1330, 1331, 5, 196, 0, 0, 1331, 1332, 5, 426, 0, 0, 1332, 61, 1, 0, 0, 0, 1333, 1334, 5, 399, 0, 0, 1334, 1335, 3, 64, 32, 0, 1335, 1336, 5, 400, 0, 0, 1336, 63, 1, 0, 0, 0, 1337, 1342, 3, 258, 129, 0, 1338, 1339, 5, 397, 0, 0, 1339, 1341, 3, 258, 129, 0, 1340, 1338, 1, 0, 0, 0, 1341, 1344, 1, 0, 0, 0, 1342, 1340, 1, 0, 0, 0, 1342, 1343, 1, 0, 0, 0, 1343, 65, 1, 0, 0, 0, 1344, 1342, 1, 0, 0, 0, 1345, 1346, 5, 370, 0, 0, 1346, 1347, 3, 654, 327, 0, 1347, 67, 1, 0, 0, 0, 1348, 1349, 5, 368, 0, 0, 1349, 1350, 3, 654, 327, 0, 1350, 69, 1, 0, 0, 0, 1351, 1352, 5, 101, 0, 0, 1352, 1354, 3, 92, 46, 0, 1353, 1355, 3, 40, 20, 0, 1354, 1353, 1, 0, 0, 0, 1354, 1355, 1, 0, 0, 0, 1355, 1356, 1, 0, 0, 0, 1356, 1358, 3, 654, 327, 0, 1357, 1359, 3, 42, 21, 0, 1358, 1357, 1, 0, 0, 0, 1358, 1359, 1, 0, 0, 0, 1359, 71, 1, 0, 0, 0, 1360, 1361, 5, 47, 0, 0, 1361, 1362, 5, 426, 0, 0, 1362, 73, 1, 0, 0, 0, 1363, 1365, 5, 351, 0, 0, 1364, 1366, 5, 329, 0, 0, 1365, 1364, 1, 0, 0, 0, 1365, 1366, 1, 0, 0, 0, 1366, 1367, 1, 0, 0, 0, 1367, 1373, 3, 544, 272, 0, 1368, 1369, 5, 46, 0, 0, 1369, 1370, 5, 399, 0, 0, 1370, 1371, 3, 282, 141, 0, 1371, 1372, 5, 400, 0, 0, 1372, 1374, 1, 0, 0, 0, 1373, 1368, 1, 0, 0, 0, 1373, 1374, 1, 0, 0, 0, 1374, 1376, 1, 0, 0, 0, 1375, 1377, 3, 46, 23, 0, 1376, 1375, 1, 0, 0, 0, 1376, 1377, 1, 0, 0, 0, 1377, 75, 1, 0, 0, 0, 1378, 1379, 5, 101, 0, 0, 1379, 1381, 5, 329, 0, 0, 1380, 1382, 3, 40, 20, 0, 1381, 1380, 1, 0, 0, 0, 1381, 1382, 1, 0, 0, 0, 1382, 1383, 1, 0, 0, 0, 1383, 1385, 3, 660, 330, 0, 1384, 1386, 5, 255, 0, 0, 1385, 1384, 1, 0, 0, 0, 1385, 1386, 1, 0, 0, 0, 1386, 1388, 1, 0, 0, 0, 1387, 1389, 3, 18, 9, 0, 1388, 1387, 1, 0, 0, 0, 1388, 1389, 1, 0, 0, 0, 1389, 77, 1, 0, 0, 0, 1390, 1391, 5, 160, 0, 0, 1391, 1392, 5, 426, 0, 0, 1392, 1393, 5, 301, 0, 0, 1393, 1394, 5, 426, 0, 0, 1394, 79, 1, 0, 0, 0, 1395, 1398, 3, 926, 463, 0, 1396, 1397, 5, 395, 0, 0, 1397, 1399, 3, 926, 463, 0, 1398, 1396, 1, 0, 0, 0, 1398, 1399, 1, 0, 0, 0, 1399, 1413, 1, 0, 0, 0, 1400, 1410, 3, 926, 463, 0, 1401, 1406, 5, 395, 0, 0, 1402, 1407, 5, 104, 0, 0, 1403, 1407, 5, 175, 0, 0, 1404, 1407, 5, 375, 0, 0, 1405, 1407, 3, 926, 463, 0, 1406, 1402, 1, 0, 0, 0, 1406, 1403, 1, 0, 0, 0, 1406, 1404, 1, 0, 0, 0, 1406, 1405, 1, 0, 0, 0, 1407, 1409, 1, 0, 0, 0, 1408, 1401, 1, 0, 0, 0, 1409, 1412, 1, 0, 0, 0, 1410, 1408, 1, 0, 0, 0, 1410, 1411, 1, 0, 0, 0, 1411, 1414, 1, 0, 0, 0, 1412, 1410, 1, 0, 0, 0, 1413, 1400, 1, 0, 0, 0, 1413, 1414, 1, 0, 0, 0, 1414, 81, 1, 0, 0, 0, 1415, 1417, 3, 80, 40, 0, 1416, 1418, 3, 912, 456, 0, 1417, 1416, 1, 0, 0, 0, 1417, 1418, 1, 0, 0, 0, 1418, 83, 1, 0, 0, 0, 1419, 1421, 3, 658, 329, 0, 1420, 1422, 3, 912, 456, 0, 1421, 1420, 1, 0, 0, 0, 1421, 1422, 1, 0, 0, 0, 1422, 1424, 1, 0, 0, 0, 1423, 1425, 3, 288, 144, 0, 1424, 1423, 1, 0, 0, 0, 1424, 1425, 1, 0, 0, 0, 1425, 85, 1, 0, 0, 0, 1426, 1449, 7, 3, 0, 0, 1427, 1429, 3, 92, 46, 0, 1428, 1430, 5, 122, 0, 0, 1429, 1428, 1, 0, 0, 0, 1429, 1430, 1, 0, 0, 0, 1430, 1431, 1, 0, 0, 0, 1431, 1432, 3, 654, 327, 0, 1432, 1450, 1, 0, 0, 0, 1433, 1435, 5, 69, 0, 0, 1434, 1436, 5, 122, 0, 0, 1435, 1434, 1, 0, 0, 0, 1435, 1436, 1, 0, 0, 0, 1436, 1437, 1, 0, 0, 0, 1437, 1450, 3, 654, 327, 0, 1438, 1440, 5, 141, 0, 0, 1439, 1441, 5, 122, 0, 0, 1440, 1439, 1, 0, 0, 0, 1440, 1441, 1, 0, 0, 0, 1441, 1442, 1, 0, 0, 0, 1442, 1450, 3, 782, 391, 0, 1443, 1446, 5, 138, 0, 0, 1444, 1446, 5, 122, 0, 0, 1445, 1443, 1, 0, 0, 0, 1445, 1444, 1, 0, 0, 0, 1446, 1447, 1, 0, 0, 0, 1447, 1450, 3, 84, 42, 0, 1448, 1450, 3, 84, 42, 0, 1449, 1427, 1, 0, 0, 0, 1449, 1433, 1, 0, 0, 0, 1449, 1438, 1, 0, 0, 0, 1449, 1445, 1, 0, 0, 0, 1449, 1448, 1, 0, 0, 0, 1450, 87, 1, 0, 0, 0, 1451, 1452, 5, 10, 0, 0, 1452, 1453, 5, 329, 0, 0, 1453, 1466, 3, 910, 455, 0, 1454, 1455, 5, 52, 0, 0, 1455, 1462, 5, 319, 0, 0, 1456, 1463, 5, 215, 0, 0, 1457, 1458, 5, 134, 0, 0, 1458, 1460, 5, 46, 0, 0, 1459, 1461, 3, 282, 141, 0, 1460, 1459, 1, 0, 0, 0, 1460, 1461, 1, 0, 0, 0, 1461, 1463, 1, 0, 0, 0, 1462, 1456, 1, 0, 0, 0, 1462, 1457, 1, 0, 0, 0, 1462, 1463, 1, 0, 0, 0, 1463, 1467, 1, 0, 0, 0, 1464, 1465, 5, 33, 0, 0, 1465, 1467, 5, 204, 0, 0, 1466, 1454, 1, 0, 0, 0, 1466, 1464, 1, 0, 0, 0, 1467, 89, 1, 0, 0, 0, 1468, 1469, 7, 4, 0, 0, 1469, 91, 1, 0, 0, 0, 1470, 1471, 7, 5, 0, 0, 1471, 93, 1, 0, 0, 0, 1472, 1473, 5, 308, 0, 0, 1473, 1476, 7, 6, 0, 0, 1474, 1475, 5, 184, 0, 0, 1475, 1477, 3, 216, 108, 0, 1476, 1474, 1, 0, 0, 0, 1476, 1477, 1, 0, 0, 0, 1477, 1666, 1, 0, 0, 0, 1478, 1480, 5, 308, 0, 0, 1479, 1481, 5, 122, 0, 0, 1480, 1479, 1, 0, 0, 0, 1480, 1481, 1, 0, 0, 0, 1481, 1482, 1, 0, 0, 0, 1482, 1486, 5, 330, 0, 0, 1483, 1484, 3, 90, 45, 0, 1484, 1485, 3, 654, 327, 0, 1485, 1487, 1, 0, 0, 0, 1486, 1483, 1, 0, 0, 0, 1486, 1487, 1, 0, 0, 0, 1487, 1489, 1, 0, 0, 0, 1488, 1490, 3, 96, 48, 0, 1489, 1488, 1, 0, 0, 0, 1489, 1490, 1, 0, 0, 0, 1490, 1666, 1, 0, 0, 0, 1491, 1492, 5, 308, 0, 0, 1492, 1496, 5, 379, 0, 0, 1493, 1494, 3, 90, 45, 0, 1494, 1495, 3, 654, 327, 0, 1495, 1497, 1, 0, 0, 0, 1496, 1493, 1, 0, 0, 0, 1496, 1497, 1, 0, 0, 0, 1497, 1501, 1, 0, 0, 0, 1498, 1499, 5, 184, 0, 0, 1499, 1502, 3, 216, 108, 0, 1500, 1502, 3, 216, 108, 0, 1501, 1498, 1, 0, 0, 0, 1501, 1500, 1, 0, 0, 0, 1501, 1502, 1, 0, 0, 0, 1502, 1666, 1, 0, 0, 0, 1503, 1504, 5, 308, 0, 0, 1504, 1505, 5, 202, 0, 0, 1505, 1509, 5, 379, 0, 0, 1506, 1507, 3, 90, 45, 0, 1507, 1508, 3, 654, 327, 0, 1508, 1510, 1, 0, 0, 0, 1509, 1506, 1, 0, 0, 0, 1509, 1510, 1, 0, 0, 0, 1510, 1514, 1, 0, 0, 0, 1511, 1512, 5, 184, 0, 0, 1512, 1515, 3, 216, 108, 0, 1513, 1515, 3, 216, 108, 0, 1514, 1511, 1, 0, 0, 0, 1514, 1513, 1, 0, 0, 0, 1514, 1515, 1, 0, 0, 0, 1515, 1666, 1, 0, 0, 0, 1516, 1518, 5, 308, 0, 0, 1517, 1519, 5, 315, 0, 0, 1518, 1517, 1, 0, 0, 0, 1518, 1519, 1, 0, 0, 0, 1519, 1520, 1, 0, 0, 0, 1520, 1521, 5, 46, 0, 0, 1521, 1522, 3, 90, 45, 0, 1522, 1526, 3, 658, 329, 0, 1523, 1524, 3, 90, 45, 0, 1524, 1525, 3, 654, 327, 0, 1525, 1527, 1, 0, 0, 0, 1526, 1523, 1, 0, 0, 0, 1526, 1527, 1, 0, 0, 0, 1527, 1531, 1, 0, 0, 0, 1528, 1529, 5, 184, 0, 0, 1529, 1532, 3, 216, 108, 0, 1530, 1532, 3, 216, 108, 0, 1531, 1528, 1, 0, 0, 0, 1531, 1530, 1, 0, 0, 0, 1531, 1532, 1, 0, 0, 0, 1532, 1666, 1, 0, 0, 0, 1533, 1534, 5, 308, 0, 0, 1534, 1537, 5, 142, 0, 0, 1535, 1536, 5, 184, 0, 0, 1536, 1538, 3, 782, 391, 0, 1537, 1535, 1, 0, 0, 0, 1537, 1538, 1, 0, 0, 0, 1538, 1666, 1, 0, 0, 0, 1539, 1540, 5, 308, 0, 0, 1540, 1541, 5, 239, 0, 0, 1541, 1543, 3, 658, 329, 0, 1542, 1544, 3, 912, 456, 0, 1543, 1542, 1, 0, 0, 0, 1543, 1544, 1, 0, 0, 0, 1544, 1546, 1, 0, 0, 0, 1545, 1547, 3, 676, 338, 0, 1546, 1545, 1, 0, 0, 0, 1546, 1547, 1, 0, 0, 0, 1547, 1549, 1, 0, 0, 0, 1548, 1550, 3, 764, 382, 0, 1549, 1548, 1, 0, 0, 0, 1549, 1550, 1, 0, 0, 0, 1550, 1552, 1, 0, 0, 0, 1551, 1553, 3, 420, 210, 0, 1552, 1551, 1, 0, 0, 0, 1552, 1553, 1, 0, 0, 0, 1553, 1666, 1, 0, 0, 0, 1554, 1555, 5, 308, 0, 0, 1555, 1561, 5, 58, 0, 0, 1556, 1557, 3, 92, 46, 0, 1557, 1558, 3, 654, 327, 0, 1558, 1562, 1, 0, 0, 0, 1559, 1560, 5, 329, 0, 0, 1560, 1562, 3, 660, 330, 0, 1561, 1556, 1, 0, 0, 0, 1561, 1559, 1, 0, 0, 0, 1562, 1666, 1, 0, 0, 0, 1563, 1564, 5, 308, 0, 0, 1564, 1565, 5, 329, 0, 0, 1565, 1569, 5, 122, 0, 0, 1566, 1567, 3, 90, 45, 0, 1567, 1568, 3, 654, 327, 0, 1568, 1570, 1, 0, 0, 0, 1569, 1566, 1, 0, 0, 0, 1569, 1570, 1, 0, 0, 0, 1570, 1571, 1, 0, 0, 0, 1571, 1572, 5, 184, 0, 0, 1572, 1574, 3, 216, 108, 0, 1573, 1575, 3, 912, 456, 0, 1574, 1573, 1, 0, 0, 0, 1574, 1575, 1, 0, 0, 0, 1575, 1666, 1, 0, 0, 0, 1576, 1577, 5, 308, 0, 0, 1577, 1578, 5, 332, 0, 0, 1578, 1582, 3, 660, 330, 0, 1579, 1580, 5, 399, 0, 0, 1580, 1581, 5, 426, 0, 0, 1581, 1583, 5, 400, 0, 0, 1582, 1579, 1, 0, 0, 0, 1582, 1583, 1, 0, 0, 0, 1583, 1666, 1, 0, 0, 0, 1584, 1585, 5, 308, 0, 0, 1585, 1597, 5, 191, 0, 0, 1586, 1587, 3, 92, 46, 0, 1587, 1589, 3, 654, 327, 0, 1588, 1590, 5, 122, 0, 0, 1589, 1588, 1, 0, 0, 0, 1589, 1590, 1, 0, 0, 0, 1590, 1598, 1, 0, 0, 0, 1591, 1593, 3, 82, 41, 0, 1592, 1591, 1, 0, 0, 0, 1592, 1593, 1, 0, 0, 0, 1593, 1595, 1, 0, 0, 0, 1594, 1596, 5, 122, 0, 0, 1595, 1594, 1, 0, 0, 0, 1595, 1596, 1, 0, 0, 0, 1596, 1598, 1, 0, 0, 0, 1597, 1586, 1, 0, 0, 0, 1597, 1592, 1, 0, 0, 0, 1598, 1666, 1, 0, 0, 0, 1599, 1600, 5, 308, 0, 0, 1600, 1637, 5, 50, 0, 0, 1601, 1638, 3, 468, 234, 0, 1602, 1603, 3, 92, 46, 0, 1603, 1605, 3, 654, 327, 0, 1604, 1606, 3, 470, 235, 0, 1605, 1604, 1, 0, 0, 0, 1605, 1606, 1, 0, 0, 0, 1606, 1608, 1, 0, 0, 0, 1607, 1609, 3, 472, 236, 0, 1608, 1607, 1, 0, 0, 0, 1608, 1609, 1, 0, 0, 0, 1609, 1611, 1, 0, 0, 0, 1610, 1612, 3, 474, 237, 0, 1611, 1610, 1, 0, 0, 0, 1611, 1612, 1, 0, 0, 0, 1612, 1614, 1, 0, 0, 0, 1613, 1615, 3, 764, 382, 0, 1614, 1613, 1, 0, 0, 0, 1614, 1615, 1, 0, 0, 0, 1615, 1617, 1, 0, 0, 0, 1616, 1618, 3, 420, 210, 0, 1617, 1616, 1, 0, 0, 0, 1617, 1618, 1, 0, 0, 0, 1618, 1638, 1, 0, 0, 0, 1619, 1621, 3, 82, 41, 0, 1620, 1619, 1, 0, 0, 0, 1620, 1621, 1, 0, 0, 0, 1621, 1623, 1, 0, 0, 0, 1622, 1624, 3, 470, 235, 0, 1623, 1622, 1, 0, 0, 0, 1623, 1624, 1, 0, 0, 0, 1624, 1626, 1, 0, 0, 0, 1625, 1627, 3, 472, 236, 0, 1626, 1625, 1, 0, 0, 0, 1626, 1627, 1, 0, 0, 0, 1627, 1629, 1, 0, 0, 0, 1628, 1630, 3, 474, 237, 0, 1629, 1628, 1, 0, 0, 0, 1629, 1630, 1, 0, 0, 0, 1630, 1632, 1, 0, 0, 0, 1631, 1633, 3, 764, 382, 0, 1632, 1631, 1, 0, 0, 0, 1632, 1633, 1, 0, 0, 0, 1633, 1635, 1, 0, 0, 0, 1634, 1636, 3, 420, 210, 0, 1635, 1634, 1, 0, 0, 0, 1635, 1636, 1, 0, 0, 0, 1636, 1638, 1, 0, 0, 0, 1637, 1601, 1, 0, 0, 0, 1637, 1602, 1, 0, 0, 0, 1637, 1620, 1, 0, 0, 0, 1638, 1666, 1, 0, 0, 0, 1639, 1640, 5, 308, 0, 0, 1640, 1666, 5, 346, 0, 0, 1641, 1642, 5, 308, 0, 0, 1642, 1643, 5, 54, 0, 0, 1643, 1666, 5, 426, 0, 0, 1644, 1645, 5, 308, 0, 0, 1645, 1649, 5, 280, 0, 0, 1646, 1647, 5, 243, 0, 0, 1647, 1650, 3, 926, 463, 0, 1648, 1650, 5, 244, 0, 0, 1649, 1646, 1, 0, 0, 0, 1649, 1648, 1, 0, 0, 0, 1650, 1666, 1, 0, 0, 0, 1651, 1652, 5, 308, 0, 0, 1652, 1666, 5, 70, 0, 0, 1653, 1655, 5, 308, 0, 0, 1654, 1656, 5, 138, 0, 0, 1655, 1654, 1, 0, 0, 0, 1655, 1656, 1, 0, 0, 0, 1656, 1657, 1, 0, 0, 0, 1657, 1658, 7, 7, 0, 0, 1658, 1659, 5, 224, 0, 0, 1659, 1663, 3, 660, 330, 0, 1660, 1661, 3, 90, 45, 0, 1661, 1662, 3, 654, 327, 0, 1662, 1664, 1, 0, 0, 0, 1663, 1660, 1, 0, 0, 0, 1663, 1664, 1, 0, 0, 0, 1664, 1666, 1, 0, 0, 0, 1665, 1472, 1, 0, 0, 0, 1665, 1478, 1, 0, 0, 0, 1665, 1491, 1, 0, 0, 0, 1665, 1503, 1, 0, 0, 0, 1665, 1516, 1, 0, 0, 0, 1665, 1533, 1, 0, 0, 0, 1665, 1539, 1, 0, 0, 0, 1665, 1554, 1, 0, 0, 0, 1665, 1563, 1, 0, 0, 0, 1665, 1576, 1, 0, 0, 0, 1665, 1584, 1, 0, 0, 0, 1665, 1599, 1, 0, 0, 0, 1665, 1639, 1, 0, 0, 0, 1665, 1641, 1, 0, 0, 0, 1665, 1644, 1, 0, 0, 0, 1665, 1651, 1, 0, 0, 0, 1665, 1653, 1, 0, 0, 0, 1666, 95, 1, 0, 0, 0, 1667, 1668, 5, 384, 0, 0, 1668, 1669, 3, 926, 463, 0, 1669, 1670, 5, 405, 0, 0, 1670, 1671, 5, 426, 0, 0, 1671, 1676, 1, 0, 0, 0, 1672, 1673, 5, 184, 0, 0, 1673, 1676, 3, 216, 108, 0, 1674, 1676, 3, 216, 108, 0, 1675, 1667, 1, 0, 0, 0, 1675, 1672, 1, 0, 0, 0, 1675, 1674, 1, 0, 0, 0, 1676, 97, 1, 0, 0, 0, 1677, 1678, 5, 190, 0, 0, 1678, 1679, 5, 329, 0, 0, 1679, 1681, 3, 660, 330, 0, 1680, 1682, 3, 912, 456, 0, 1681, 1680, 1, 0, 0, 0, 1681, 1682, 1, 0, 0, 0, 1682, 1683, 1, 0, 0, 0, 1683, 1684, 3, 102, 51, 0, 1684, 99, 1, 0, 0, 0, 1685, 1686, 5, 190, 0, 0, 1686, 1687, 3, 92, 46, 0, 1687, 1688, 3, 654, 327, 0, 1688, 1689, 3, 102, 51, 0, 1689, 101, 1, 0, 0, 0, 1690, 1691, 7, 8, 0, 0, 1691, 103, 1, 0, 0, 0, 1692, 1693, 5, 361, 0, 0, 1693, 1694, 5, 329, 0, 0, 1694, 1696, 3, 660, 330, 0, 1695, 1697, 3, 912, 456, 0, 1696, 1695, 1, 0, 0, 0, 1696, 1697, 1, 0, 0, 0, 1697, 105, 1, 0, 0, 0, 1698, 1699, 5, 361, 0, 0, 1699, 1700, 3, 92, 46, 0, 1700, 1701, 3, 654, 327, 0, 1701, 107, 1, 0, 0, 0, 1702, 1703, 5, 58, 0, 0, 1703, 1704, 5, 287, 0, 0, 1704, 1705, 3, 926, 463, 0, 1705, 109, 1, 0, 0, 0, 1706, 1707, 5, 101, 0, 0, 1707, 1708, 5, 287, 0, 0, 1708, 1709, 3, 926, 463, 0, 1709, 111, 1, 0, 0, 0, 1710, 1711, 5, 143, 0, 0, 1711, 1713, 3, 140, 70, 0, 1712, 1714, 3, 134, 67, 0, 1713, 1712, 1, 0, 0, 0, 1713, 1714, 1, 0, 0, 0, 1714, 1715, 1, 0, 0, 0, 1715, 1716, 5, 341, 0, 0, 1716, 1718, 3, 146, 73, 0, 1717, 1719, 3, 152, 76, 0, 1718, 1717, 1, 0, 0, 0, 1718, 1719, 1, 0, 0, 0, 1719, 113, 1, 0, 0, 0, 1720, 1722, 5, 283, 0, 0, 1721, 1723, 3, 154, 77, 0, 1722, 1721, 1, 0, 0, 0, 1722, 1723, 1, 0, 0, 0, 1723, 1724, 1, 0, 0, 0, 1724, 1726, 3, 140, 70, 0, 1725, 1727, 3, 134, 67, 0, 1726, 1725, 1, 0, 0, 0, 1726, 1727, 1, 0, 0, 0, 1727, 1728, 1, 0, 0, 0, 1728, 1729, 5, 139, 0, 0, 1729, 1730, 3, 146, 73, 0, 1730, 115, 1, 0, 0, 0, 1731, 1733, 5, 143, 0, 0, 1732, 1734, 5, 287, 0, 0, 1733, 1732, 1, 0, 0, 0, 1733, 1734, 1, 0, 0, 0, 1734, 1735, 1, 0, 0, 0, 1735, 1740, 3, 926, 463, 0, 1736, 1737, 5, 397, 0, 0, 1737, 1739, 3, 926, 463, 0, 1738, 1736, 1, 0, 0, 0, 1739, 1742, 1, 0, 0, 0, 1740, 1738, 1, 0, 0, 0, 1740, 1741, 1, 0, 0, 0, 1741, 1743, 1, 0, 0, 0, 1742, 1740, 1, 0, 0, 0, 1743, 1744, 5, 341, 0, 0, 1744, 1746, 3, 146, 73, 0, 1745, 1747, 3, 158, 79, 0, 1746, 1745, 1, 0, 0, 0, 1746, 1747, 1, 0, 0, 0, 1747, 117, 1, 0, 0, 0, 1748, 1750, 5, 283, 0, 0, 1749, 1751, 3, 156, 78, 0, 1750, 1749, 1, 0, 0, 0, 1750, 1751, 1, 0, 0, 0, 1751, 1753, 1, 0, 0, 0, 1752, 1754, 5, 287, 0, 0, 1753, 1752, 1, 0, 0, 0, 1753, 1754, 1, 0, 0, 0, 1754, 1755, 1, 0, 0, 0, 1755, 1760, 3, 926, 463, 0, 1756, 1757, 5, 397, 0, 0, 1757, 1759, 3, 926, 463, 0, 1758, 1756, 1, 0, 0, 0, 1759, 1762, 1, 0, 0, 0, 1760, 1758, 1, 0, 0, 0, 1760, 1761, 1, 0, 0, 0, 1761, 1763, 1, 0, 0, 0, 1762, 1760, 1, 0, 0, 0, 1763, 1764, 5, 139, 0, 0, 1764, 1765, 3, 146, 73, 0, 1765, 119, 1, 0, 0, 0, 1766, 1767, 5, 308, 0, 0, 1767, 1768, 5, 287, 0, 0, 1768, 1769, 5, 143, 0, 0, 1769, 1770, 3, 148, 74, 0, 1770, 121, 1, 0, 0, 0, 1771, 1772, 5, 308, 0, 0, 1772, 1773, 5, 288, 0, 0, 1773, 123, 1, 0, 0, 0, 1774, 1775, 5, 308, 0, 0, 1775, 1776, 5, 62, 0, 0, 1776, 1777, 5, 288, 0, 0, 1777, 125, 1, 0, 0, 0, 1778, 1779, 5, 304, 0, 0, 1779, 1783, 5, 287, 0, 0, 1780, 1784, 5, 7, 0, 0, 1781, 1784, 5, 213, 0, 0, 1782, 1784, 3, 926, 463, 0, 1783, 1780, 1, 0, 0, 0, 1783, 1781, 1, 0, 0, 0, 1783, 1782, 1, 0, 0, 0, 1784, 127, 1, 0, 0, 0, 1785, 1786, 5, 308, 0, 0, 1786, 1788, 5, 143, 0, 0, 1787, 1789, 3, 148, 74, 0, 1788, 1787, 1, 0, 0, 0, 1788, 1789, 1, 0, 0, 0, 1789, 1792, 1, 0, 0, 0, 1790, 1791, 5, 224, 0, 0, 1791, 1793, 3, 132, 66, 0, 1792, 1790, 1, 0, 0, 0, 1792, 1793, 1, 0, 0, 0, 1793, 129, 1, 0, 0, 0, 1794, 1795, 5, 308, 0, 0, 1795, 1796, 5, 252, 0, 0, 1796, 1797, 3, 926, 463, 0, 1797, 131, 1, 0, 0, 0, 1798, 1801, 5, 7, 0, 0, 1799, 1801, 3, 138, 69, 0, 1800, 1798, 1, 0, 0, 0, 1800, 1799, 1, 0, 0, 0, 1801, 133, 1, 0, 0, 0, 1802, 1803, 5, 224, 0, 0, 1803, 1804, 3, 136, 68, 0, 1804, 135, 1, 0, 0, 0, 1805, 1806, 3, 92, 46, 0, 1806, 1807, 3, 654, 327, 0, 1807, 1820, 1, 0, 0, 0, 1808, 1810, 5, 329, 0, 0, 1809, 1808, 1, 0, 0, 0, 1809, 1810, 1, 0, 0, 0, 1810, 1811, 1, 0, 0, 0, 1811, 1813, 3, 660, 330, 0, 1812, 1814, 3, 912, 456, 0, 1813, 1812, 1, 0, 0, 0, 1813, 1814, 1, 0, 0, 0, 1814, 1820, 1, 0, 0, 0, 1815, 1816, 5, 366, 0, 0, 1816, 1820, 5, 426, 0, 0, 1817, 1818, 5, 303, 0, 0, 1818, 1820, 3, 926, 463, 0, 1819, 1805, 1, 0, 0, 0, 1819, 1809, 1, 0, 0, 0, 1819, 1815, 1, 0, 0, 0, 1819, 1817, 1, 0, 0, 0, 1820, 137, 1, 0, 0, 0, 1821, 1822, 3, 92, 46, 0, 1822, 1823, 3, 654, 327, 0, 1823, 1842, 1, 0, 0, 0, 1824, 1826, 5, 329, 0, 0, 1825, 1824, 1, 0, 0, 0, 1825, 1826, 1, 0, 0, 0, 1826, 1827, 1, 0, 0, 0, 1827, 1832, 3, 660, 330, 0, 1828, 1829, 5, 399, 0, 0, 1829, 1830, 3, 282, 141, 0, 1830, 1831, 5, 400, 0, 0, 1831, 1833, 1, 0, 0, 0, 1832, 1828, 1, 0, 0, 0, 1832, 1833, 1, 0, 0, 0, 1833, 1835, 1, 0, 0, 0, 1834, 1836, 3, 912, 456, 0, 1835, 1834, 1, 0, 0, 0, 1835, 1836, 1, 0, 0, 0, 1836, 1842, 1, 0, 0, 0, 1837, 1838, 5, 366, 0, 0, 1838, 1842, 5, 426, 0, 0, 1839, 1840, 5, 303, 0, 0, 1840, 1842, 3, 926, 463, 0, 1841, 1821, 1, 0, 0, 0, 1841, 1825, 1, 0, 0, 0, 1841, 1837, 1, 0, 0, 0, 1841, 1839, 1, 0, 0, 0, 1842, 139, 1, 0, 0, 0, 1843, 1848, 3, 142, 71, 0, 1844, 1845, 5, 397, 0, 0, 1845, 1847, 3, 142, 71, 0, 1846, 1844, 1, 0, 0, 0, 1847, 1850, 1, 0, 0, 0, 1848, 1846, 1, 0, 0, 0, 1848, 1849, 1, 0, 0, 0, 1849, 141, 1, 0, 0, 0, 1850, 1848, 1, 0, 0, 0, 1851, 1856, 3, 144, 72, 0, 1852, 1853, 5, 399, 0, 0, 1853, 1854, 3, 282, 141, 0, 1854, 1855, 5, 400, 0, 0, 1855, 1857, 1, 0, 0, 0, 1856, 1852, 1, 0, 0, 0, 1856, 1857, 1, 0, 0, 0, 1857, 143, 1, 0, 0, 0, 1858, 1859, 7, 9, 0, 0, 1859, 145, 1, 0, 0, 0, 1860, 1865, 3, 148, 74, 0, 1861, 1862, 5, 397, 0, 0, 1862, 1864, 3, 148, 74, 0, 1863, 1861, 1, 0, 0, 0, 1864, 1867, 1, 0, 0, 0, 1865, 1863, 1, 0, 0, 0, 1865, 1866, 1, 0, 0, 0, 1866, 147, 1, 0, 0, 0, 1867, 1865, 1, 0, 0, 0, 1868, 1869, 5, 369, 0, 0, 1869, 1875, 3, 930, 465, 0, 1870, 1871, 5, 144, 0, 0, 1871, 1875, 3, 930, 465, 0, 1872, 1873, 5, 287, 0, 0, 1873, 1875, 3, 926, 463, 0, 1874, 1868, 1, 0, 0, 0, 1874, 1870, 1, 0, 0, 0, 1874, 1872, 1, 0, 0, 0, 1875, 149, 1, 0, 0, 0, 1876, 1877, 5, 369, 0, 0, 1877, 1882, 3, 930, 465, 0, 1878, 1879, 5, 287, 0, 0, 1879, 1882, 3, 926, 463, 0, 1880, 1882, 3, 926, 463, 0, 1881, 1876, 1, 0, 0, 0, 1881, 1878, 1, 0, 0, 0, 1881, 1880, 1, 0, 0, 0, 1882, 151, 1, 0, 0, 0, 1883, 1884, 5, 387, 0, 0, 1884, 1885, 5, 143, 0, 0, 1885, 1886, 5, 227, 0, 0, 1886, 153, 1, 0, 0, 0, 1887, 1888, 5, 143, 0, 0, 1888, 1889, 5, 227, 0, 0, 1889, 1890, 5, 134, 0, 0, 1890, 155, 1, 0, 0, 0, 1891, 1892, 5, 5, 0, 0, 1892, 1893, 5, 227, 0, 0, 1893, 1894, 5, 134, 0, 0, 1894, 157, 1, 0, 0, 0, 1895, 1896, 5, 387, 0, 0, 1896, 1897, 5, 5, 0, 0, 1897, 1898, 5, 227, 0, 0, 1898, 159, 1, 0, 0, 0, 1899, 1901, 5, 212, 0, 0, 1900, 1902, 5, 276, 0, 0, 1901, 1900, 1, 0, 0, 0, 1901, 1902, 1, 0, 0, 0, 1902, 1903, 1, 0, 0, 0, 1903, 1904, 5, 329, 0, 0, 1904, 1910, 3, 660, 330, 0, 1905, 1906, 7, 10, 0, 0, 1906, 1908, 5, 239, 0, 0, 1907, 1909, 3, 916, 458, 0, 1908, 1907, 1, 0, 0, 0, 1908, 1909, 1, 0, 0, 0, 1909, 1911, 1, 0, 0, 0, 1910, 1905, 1, 0, 0, 0, 1910, 1911, 1, 0, 0, 0, 1911, 161, 1, 0, 0, 0, 1912, 1917, 3, 164, 82, 0, 1913, 1914, 5, 397, 0, 0, 1914, 1916, 3, 164, 82, 0, 1915, 1913, 1, 0, 0, 0, 1916, 1919, 1, 0, 0, 0, 1917, 1915, 1, 0, 0, 0, 1917, 1918, 1, 0, 0, 0, 1918, 163, 1, 0, 0, 0, 1919, 1917, 1, 0, 0, 0, 1920, 1921, 3, 166, 83, 0, 1921, 1922, 5, 426, 0, 0, 1922, 165, 1, 0, 0, 0, 1923, 1924, 7, 11, 0, 0, 1924, 167, 1, 0, 0, 0, 1925, 1927, 5, 58, 0, 0, 1926, 1928, 5, 333, 0, 0, 1927, 1926, 1, 0, 0, 0, 1927, 1928, 1, 0, 0, 0, 1928, 1929, 1, 0, 0, 0, 1929, 1930, 5, 141, 0, 0, 1930, 1931, 3, 780, 390, 0, 1931, 1932, 5, 17, 0, 0, 1932, 1935, 5, 426, 0, 0, 1933, 1934, 5, 370, 0, 0, 1934, 1936, 3, 162, 81, 0, 1935, 1933, 1, 0, 0, 0, 1935, 1936, 1, 0, 0, 0, 1936, 169, 1, 0, 0, 0, 1937, 1939, 5, 101, 0, 0, 1938, 1940, 5, 333, 0, 0, 1939, 1938, 1, 0, 0, 0, 1939, 1940, 1, 0, 0, 0, 1940, 1941, 1, 0, 0, 0, 1941, 1943, 5, 141, 0, 0, 1942, 1944, 3, 40, 20, 0, 1943, 1942, 1, 0, 0, 0, 1943, 1944, 1, 0, 0, 0, 1944, 1945, 1, 0, 0, 0, 1945, 1946, 3, 782, 391, 0, 1946, 171, 1, 0, 0, 0, 1947, 1948, 5, 271, 0, 0, 1948, 1949, 7, 12, 0, 0, 1949, 173, 1, 0, 0, 0, 1950, 1951, 5, 58, 0, 0, 1951, 1952, 5, 333, 0, 0, 1952, 1953, 5, 194, 0, 0, 1953, 1954, 5, 432, 0, 0, 1954, 1956, 5, 399, 0, 0, 1955, 1957, 3, 276, 138, 0, 1956, 1955, 1, 0, 0, 0, 1956, 1957, 1, 0, 0, 0, 1957, 1958, 1, 0, 0, 0, 1958, 1959, 5, 400, 0, 0, 1959, 1960, 3, 828, 414, 0, 1960, 175, 1, 0, 0, 0, 1961, 1962, 5, 101, 0, 0, 1962, 1963, 5, 333, 0, 0, 1963, 1965, 5, 194, 0, 0, 1964, 1966, 3, 40, 20, 0, 1965, 1964, 1, 0, 0, 0, 1965, 1966, 1, 0, 0, 0, 1966, 1967, 1, 0, 0, 0, 1967, 1968, 5, 432, 0, 0, 1968, 177, 1, 0, 0, 0, 1969, 1970, 5, 58, 0, 0, 1970, 1971, 5, 155, 0, 0, 1971, 1972, 3, 926, 463, 0, 1972, 1973, 5, 224, 0, 0, 1973, 1974, 5, 329, 0, 0, 1974, 1975, 3, 660, 330, 0, 1975, 1976, 3, 292, 146, 0, 1976, 1977, 5, 17, 0, 0, 1977, 1981, 5, 426, 0, 0, 1978, 1979, 5, 387, 0, 0, 1979, 1980, 5, 84, 0, 0, 1980, 1982, 5, 265, 0, 0, 1981, 1978, 1, 0, 0, 0, 1981, 1982, 1, 0, 0, 0, 1982, 1985, 1, 0, 0, 0, 1983, 1984, 5, 150, 0, 0, 1984, 1986, 3, 254, 127, 0, 1985, 1983, 1, 0, 0, 0, 1985, 1986, 1, 0, 0, 0, 1986, 1990, 1, 0, 0, 0, 1987, 1988, 5, 154, 0, 0, 1988, 1989, 5, 329, 0, 0, 1989, 1991, 3, 660, 330, 0, 1990, 1987, 1, 0, 0, 0, 1990, 1991, 1, 0, 0, 0, 1991, 1995, 1, 0, 0, 0, 1992, 1993, 5, 238, 0, 0, 1993, 1994, 5, 32, 0, 0, 1994, 1996, 3, 292, 146, 0, 1995, 1992, 1, 0, 0, 0, 1995, 1996, 1, 0, 0, 0, 1996, 2001, 1, 0, 0, 0, 1997, 1999, 3, 250, 125, 0, 1998, 1997, 1, 0, 0, 0, 1998, 1999, 1, 0, 0, 0, 1999, 2000, 1, 0, 0, 0, 2000, 2002, 3, 272, 136, 0, 2001, 1998, 1, 0, 0, 0, 2001, 2002, 1, 0, 0, 0, 2002, 2005, 1, 0, 0, 0, 2003, 2004, 5, 189, 0, 0, 2004, 2006, 5, 426, 0, 0, 2005, 2003, 1, 0, 0, 0, 2005, 2006, 1, 0, 0, 0, 2006, 2008, 1, 0, 0, 0, 2007, 2009, 3, 252, 126, 0, 2008, 2007, 1, 0, 0, 0, 2008, 2009, 1, 0, 0, 0, 2009, 2011, 1, 0, 0, 0, 2010, 2012, 3, 218, 109, 0, 2011, 2010, 1, 0, 0, 0, 2011, 2012, 1, 0, 0, 0, 2012, 179, 1, 0, 0, 0, 2013, 2014, 5, 101, 0, 0, 2014, 2016, 5, 155, 0, 0, 2015, 2017, 3, 40, 20, 0, 2016, 2015, 1, 0, 0, 0, 2016, 2017, 1, 0, 0, 0, 2017, 2018, 1, 0, 0, 0, 2018, 2019, 3, 926, 463, 0, 2019, 2020, 5, 224, 0, 0, 2020, 2021, 3, 660, 330, 0, 2021, 181, 1, 0, 0, 0, 2022, 2024, 5, 58, 0, 0, 2023, 2025, 3, 54, 27, 0, 2024, 2023, 1, 0, 0, 0, 2024, 2025, 1, 0, 0, 0, 2025, 2026, 1, 0, 0, 0, 2026, 2028, 5, 378, 0, 0, 2027, 2029, 3, 44, 22, 0, 2028, 2027, 1, 0, 0, 0, 2028, 2029, 1, 0, 0, 0, 2029, 2030, 1, 0, 0, 0, 2030, 2035, 3, 666, 333, 0, 2031, 2032, 5, 399, 0, 0, 2032, 2033, 3, 336, 168, 0, 2033, 2034, 5, 400, 0, 0, 2034, 2036, 1, 0, 0, 0, 2035, 2031, 1, 0, 0, 0, 2035, 2036, 1, 0, 0, 0, 2036, 2038, 1, 0, 0, 0, 2037, 2039, 3, 218, 109, 0, 2038, 2037, 1, 0, 0, 0, 2038, 2039, 1, 0, 0, 0, 2039, 2041, 1, 0, 0, 0, 2040, 2042, 3, 184, 92, 0, 2041, 2040, 1, 0, 0, 0, 2041, 2042, 1, 0, 0, 0, 2042, 2044, 1, 0, 0, 0, 2043, 2045, 3, 252, 126, 0, 2044, 2043, 1, 0, 0, 0, 2044, 2045, 1, 0, 0, 0, 2045, 2046, 1, 0, 0, 0, 2046, 2047, 5, 17, 0, 0, 2047, 2048, 3, 414, 207, 0, 2048, 183, 1, 0, 0, 0, 2049, 2050, 5, 238, 0, 0, 2050, 2056, 5, 224, 0, 0, 2051, 2052, 5, 399, 0, 0, 2052, 2057, 3, 282, 141, 0, 2053, 2054, 5, 316, 0, 0, 2054, 2055, 5, 399, 0, 0, 2055, 2057, 3, 228, 114, 0, 2056, 2051, 1, 0, 0, 0, 2056, 2053, 1, 0, 0, 0, 2057, 2058, 1, 0, 0, 0, 2058, 2059, 5, 400, 0, 0, 2059, 185, 1, 0, 0, 0, 2060, 2063, 3, 188, 94, 0, 2061, 2063, 3, 190, 95, 0, 2062, 2060, 1, 0, 0, 0, 2062, 2061, 1, 0, 0, 0, 2063, 187, 1, 0, 0, 0, 2064, 2065, 5, 42, 0, 0, 2065, 2066, 5, 224, 0, 0, 2066, 2067, 5, 399, 0, 0, 2067, 2068, 3, 282, 141, 0, 2068, 2069, 5, 400, 0, 0, 2069, 189, 1, 0, 0, 0, 2070, 2071, 3, 192, 96, 0, 2071, 2072, 3, 194, 97, 0, 2072, 191, 1, 0, 0, 0, 2073, 2074, 5, 98, 0, 0, 2074, 2075, 5, 224, 0, 0, 2075, 2076, 5, 399, 0, 0, 2076, 2077, 3, 282, 141, 0, 2077, 2078, 5, 400, 0, 0, 2078, 193, 1, 0, 0, 0, 2079, 2080, 5, 315, 0, 0, 2080, 2081, 5, 224, 0, 0, 2081, 2082, 5, 399, 0, 0, 2082, 2083, 3, 282, 141, 0, 2083, 2084, 5, 400, 0, 0, 2084, 195, 1, 0, 0, 0, 2085, 2086, 5, 101, 0, 0, 2086, 2088, 5, 378, 0, 0, 2087, 2089, 3, 40, 20, 0, 2088, 2087, 1, 0, 0, 0, 2088, 2089, 1, 0, 0, 0, 2089, 2090, 1, 0, 0, 0, 2090, 2091, 3, 664, 332, 0, 2091, 197, 1, 0, 0, 0, 2092, 2093, 5, 58, 0, 0, 2093, 2094, 5, 202, 0, 0, 2094, 2096, 5, 378, 0, 0, 2095, 2097, 3, 44, 22, 0, 2096, 2095, 1, 0, 0, 0, 2096, 2097, 1, 0, 0, 0, 2097, 2098, 1, 0, 0, 0, 2098, 2100, 3, 666, 333, 0, 2099, 2101, 3, 50, 25, 0, 2100, 2099, 1, 0, 0, 0, 2100, 2101, 1, 0, 0, 0, 2101, 2103, 1, 0, 0, 0, 2102, 2104, 3, 218, 109, 0, 2103, 2102, 1, 0, 0, 0, 2103, 2104, 1, 0, 0, 0, 2104, 2106, 1, 0, 0, 0, 2105, 2107, 3, 184, 92, 0, 2106, 2105, 1, 0, 0, 0, 2106, 2107, 1, 0, 0, 0, 2107, 2109, 1, 0, 0, 0, 2108, 2110, 3, 186, 93, 0, 2109, 2108, 1, 0, 0, 0, 2109, 2110, 1, 0, 0, 0, 2110, 2112, 1, 0, 0, 0, 2111, 2113, 3, 250, 125, 0, 2112, 2111, 1, 0, 0, 0, 2112, 2113, 1, 0, 0, 0, 2113, 2115, 1, 0, 0, 0, 2114, 2116, 3, 272, 136, 0, 2115, 2114, 1, 0, 0, 0, 2115, 2116, 1, 0, 0, 0, 2116, 2118, 1, 0, 0, 0, 2117, 2119, 3, 274, 137, 0, 2118, 2117, 1, 0, 0, 0, 2118, 2119, 1, 0, 0, 0, 2119, 2121, 1, 0, 0, 0, 2120, 2122, 3, 252, 126, 0, 2121, 2120, 1, 0, 0, 0, 2121, 2122, 1, 0, 0, 0, 2122, 2123, 1, 0, 0, 0, 2123, 2124, 5, 17, 0, 0, 2124, 2125, 3, 414, 207, 0, 2125, 199, 1, 0, 0, 0, 2126, 2127, 5, 101, 0, 0, 2127, 2128, 5, 202, 0, 0, 2128, 2130, 5, 378, 0, 0, 2129, 2131, 3, 40, 20, 0, 2130, 2129, 1, 0, 0, 0, 2130, 2131, 1, 0, 0, 0, 2131, 2132, 1, 0, 0, 0, 2132, 2133, 3, 664, 332, 0, 2133, 201, 1, 0, 0, 0, 2134, 2135, 5, 58, 0, 0, 2135, 2136, 5, 293, 0, 0, 2136, 2137, 5, 258, 0, 0, 2137, 2138, 3, 926, 463, 0, 2138, 2140, 3, 210, 105, 0, 2139, 2141, 3, 212, 106, 0, 2140, 2139, 1, 0, 0, 0, 2140, 2141, 1, 0, 0, 0, 2141, 2143, 1, 0, 0, 0, 2142, 2144, 3, 296, 148, 0, 2143, 2142, 1, 0, 0, 0, 2143, 2144, 1, 0, 0, 0, 2144, 2145, 1, 0, 0, 0, 2145, 2146, 3, 214, 107, 0, 2146, 203, 1, 0, 0, 0, 2147, 2148, 5, 101, 0, 0, 2148, 2149, 5, 293, 0, 0, 2149, 2150, 5, 258, 0, 0, 2150, 2151, 3, 926, 463, 0, 2151, 205, 1, 0, 0, 0, 2152, 2153, 5, 9, 0, 0, 2153, 2154, 5, 293, 0, 0, 2154, 2155, 5, 258, 0, 0, 2155, 2156, 3, 926, 463, 0, 2156, 2157, 3, 208, 104, 0, 2157, 207, 1, 0, 0, 0, 2158, 2164, 3, 210, 105, 0, 2159, 2164, 3, 212, 106, 0, 2160, 2164, 3, 296, 148, 0, 2161, 2164, 3, 214, 107, 0, 2162, 2164, 5, 115, 0, 0, 2163, 2158, 1, 0, 0, 0, 2163, 2159, 1, 0, 0, 0, 2163, 2160, 1, 0, 0, 0, 2163, 2161, 1, 0, 0, 0, 2163, 2162, 1, 0, 0, 0, 2164, 209, 1, 0, 0, 0, 2165, 2166, 5, 59, 0, 0, 2166, 2181, 5, 426, 0, 0, 2167, 2169, 5, 111, 0, 0, 2168, 2170, 5, 431, 0, 0, 2169, 2168, 1, 0, 0, 0, 2169, 2170, 1, 0, 0, 0, 2170, 2171, 1, 0, 0, 0, 2171, 2178, 3, 826, 413, 0, 2172, 2176, 5, 20, 0, 0, 2173, 2174, 5, 223, 0, 0, 2174, 2176, 5, 32, 0, 0, 2175, 2172, 1, 0, 0, 0, 2175, 2173, 1, 0, 0, 0, 2176, 2177, 1, 0, 0, 0, 2177, 2179, 5, 426, 0, 0, 2178, 2175, 1, 0, 0, 0, 2178, 2179, 1, 0, 0, 0, 2179, 2181, 1, 0, 0, 0, 2180, 2165, 1, 0, 0, 0, 2180, 2167, 1, 0, 0, 0, 2181, 211, 1, 0, 0, 0, 2182, 2183, 5, 116, 0, 0, 2183, 2184, 5, 17, 0, 0, 2184, 2185, 5, 426, 0, 0, 2185, 213, 1, 0, 0, 0, 2186, 2188, 5, 85, 0, 0, 2187, 2186, 1, 0, 0, 0, 2187, 2188, 1, 0, 0, 0, 2188, 2189, 1, 0, 0, 0, 2189, 2190, 5, 17, 0, 0, 2190, 2191, 3, 2, 1, 0, 2191, 215, 1, 0, 0, 0, 2192, 2195, 3, 926, 463, 0, 2193, 2195, 5, 426, 0, 0, 2194, 2192, 1, 0, 0, 0, 2194, 2193, 1, 0, 0, 0, 2195, 217, 1, 0, 0, 0, 2196, 2197, 5, 47, 0, 0, 2197, 2198, 5, 426, 0, 0, 2198, 219, 1, 0, 0, 0, 2199, 2200, 5, 183, 0, 0, 2200, 2201, 5, 431, 0, 0, 2201, 221, 1, 0, 0, 0, 2202, 2203, 5, 238, 0, 0, 2203, 2212, 5, 32, 0, 0, 2204, 2207, 5, 399, 0, 0, 2205, 2208, 3, 224, 112, 0, 2206, 2208, 3, 226, 113, 0, 2207, 2205, 1, 0, 0, 0, 2207, 2206, 1, 0, 0, 0, 2208, 2213, 1, 0, 0, 0, 2209, 2210, 5, 316, 0, 0, 2210, 2211, 5, 399, 0, 0, 2211, 2213, 3, 228, 114, 0, 2212, 2204, 1, 0, 0, 0, 2212, 2209, 1, 0, 0, 0, 2213, 2214, 1, 0, 0, 0, 2214, 2215, 5, 400, 0, 0, 2215, 223, 1, 0, 0, 0, 2216, 2221, 3, 350, 175, 0, 2217, 2218, 5, 397, 0, 0, 2218, 2220, 3, 350, 175, 0, 2219, 2217, 1, 0, 0, 0, 2220, 2223, 1, 0, 0, 0, 2221, 2219, 1, 0, 0, 0, 2221, 2222, 1, 0, 0, 0, 2222, 225, 1, 0, 0, 0, 2223, 2221, 1, 0, 0, 0, 2224, 2229, 3, 284, 142, 0, 2225, 2226, 5, 397, 0, 0, 2226, 2228, 3, 284, 142, 0, 2227, 2225, 1, 0, 0, 0, 2228, 2231, 1, 0, 0, 0, 2229, 2227, 1, 0, 0, 0, 2229, 2230, 1, 0, 0, 0, 2230, 227, 1, 0, 0, 0, 2231, 2229, 1, 0, 0, 0, 2232, 2237, 3, 230, 115, 0, 2233, 2234, 5, 397, 0, 0, 2234, 2236, 3, 230, 115, 0, 2235, 2233, 1, 0, 0, 0, 2236, 2239, 1, 0, 0, 0, 2237, 2235, 1, 0, 0, 0, 2237, 2238, 1, 0, 0, 0, 2238, 229, 1, 0, 0, 0, 2239, 2237, 1, 0, 0, 0, 2240, 2241, 3, 232, 116, 0, 2241, 231, 1, 0, 0, 0, 2242, 2261, 3, 284, 142, 0, 2243, 2248, 3, 976, 488, 0, 2244, 2248, 3, 978, 489, 0, 2245, 2248, 3, 982, 491, 0, 2246, 2248, 3, 984, 492, 0, 2247, 2243, 1, 0, 0, 0, 2247, 2244, 1, 0, 0, 0, 2247, 2245, 1, 0, 0, 0, 2247, 2246, 1, 0, 0, 0, 2248, 2249, 1, 0, 0, 0, 2249, 2250, 5, 399, 0, 0, 2250, 2251, 3, 284, 142, 0, 2251, 2252, 5, 400, 0, 0, 2252, 2261, 1, 0, 0, 0, 2253, 2254, 7, 13, 0, 0, 2254, 2255, 5, 399, 0, 0, 2255, 2256, 5, 431, 0, 0, 2256, 2257, 5, 397, 0, 0, 2257, 2258, 3, 284, 142, 0, 2258, 2259, 5, 400, 0, 0, 2259, 2261, 1, 0, 0, 0, 2260, 2242, 1, 0, 0, 0, 2260, 2247, 1, 0, 0, 0, 2260, 2253, 1, 0, 0, 0, 2261, 233, 1, 0, 0, 0, 2262, 2263, 5, 42, 0, 0, 2263, 2264, 5, 32, 0, 0, 2264, 2265, 5, 399, 0, 0, 2265, 2266, 3, 282, 141, 0, 2266, 2273, 5, 400, 0, 0, 2267, 2268, 5, 315, 0, 0, 2268, 2269, 5, 32, 0, 0, 2269, 2270, 5, 399, 0, 0, 2270, 2271, 3, 290, 145, 0, 2271, 2272, 5, 400, 0, 0, 2272, 2274, 1, 0, 0, 0, 2273, 2267, 1, 0, 0, 0, 2273, 2274, 1, 0, 0, 0, 2274, 2275, 1, 0, 0, 0, 2275, 2276, 5, 166, 0, 0, 2276, 2277, 5, 431, 0, 0, 2277, 2278, 5, 31, 0, 0, 2278, 235, 1, 0, 0, 0, 2279, 2280, 5, 42, 0, 0, 2280, 2281, 5, 166, 0, 0, 2281, 2282, 5, 431, 0, 0, 2282, 2283, 5, 31, 0, 0, 2283, 237, 1, 0, 0, 0, 2284, 2285, 5, 310, 0, 0, 2285, 2286, 5, 32, 0, 0, 2286, 2287, 5, 399, 0, 0, 2287, 2288, 3, 282, 141, 0, 2288, 2289, 5, 400, 0, 0, 2289, 2290, 5, 224, 0, 0, 2290, 2291, 5, 399, 0, 0, 2291, 2292, 3, 318, 159, 0, 2292, 2294, 5, 400, 0, 0, 2293, 2295, 3, 52, 26, 0, 2294, 2293, 1, 0, 0, 0, 2294, 2295, 1, 0, 0, 0, 2295, 239, 1, 0, 0, 0, 2296, 2299, 3, 246, 123, 0, 2297, 2299, 3, 248, 124, 0, 2298, 2296, 1, 0, 0, 0, 2298, 2297, 1, 0, 0, 0, 2299, 241, 1, 0, 0, 0, 2300, 2301, 5, 266, 0, 0, 2301, 2302, 5, 426, 0, 0, 2302, 243, 1, 0, 0, 0, 2303, 2304, 5, 267, 0, 0, 2304, 2305, 5, 426, 0, 0, 2305, 245, 1, 0, 0, 0, 2306, 2307, 5, 291, 0, 0, 2307, 2308, 5, 137, 0, 0, 2308, 2309, 5, 301, 0, 0, 2309, 2313, 5, 426, 0, 0, 2310, 2311, 5, 387, 0, 0, 2311, 2312, 5, 302, 0, 0, 2312, 2314, 3, 254, 127, 0, 2313, 2310, 1, 0, 0, 0, 2313, 2314, 1, 0, 0, 0, 2314, 247, 1, 0, 0, 0, 2315, 2316, 5, 291, 0, 0, 2316, 2317, 5, 137, 0, 0, 2317, 2319, 5, 87, 0, 0, 2318, 2320, 3, 262, 131, 0, 2319, 2318, 1, 0, 0, 0, 2319, 2320, 1, 0, 0, 0, 2320, 2322, 1, 0, 0, 0, 2321, 2323, 3, 264, 132, 0, 2322, 2321, 1, 0, 0, 0, 2322, 2323, 1, 0, 0, 0, 2323, 2325, 1, 0, 0, 0, 2324, 2326, 3, 266, 133, 0, 2325, 2324, 1, 0, 0, 0, 2325, 2326, 1, 0, 0, 0, 2326, 2328, 1, 0, 0, 0, 2327, 2329, 3, 268, 134, 0, 2328, 2327, 1, 0, 0, 0, 2328, 2329, 1, 0, 0, 0, 2329, 2331, 1, 0, 0, 0, 2330, 2332, 3, 270, 135, 0, 2331, 2330, 1, 0, 0, 0, 2331, 2332, 1, 0, 0, 0, 2332, 249, 1, 0, 0, 0, 2333, 2336, 3, 248, 124, 0, 2334, 2336, 3, 246, 123, 0, 2335, 2333, 1, 0, 0, 0, 2335, 2334, 1, 0, 0, 0, 2336, 251, 1, 0, 0, 0, 2337, 2338, 5, 332, 0, 0, 2338, 2339, 3, 254, 127, 0, 2339, 253, 1, 0, 0, 0, 2340, 2341, 5, 399, 0, 0, 2341, 2342, 3, 256, 128, 0, 2342, 2343, 5, 400, 0, 0, 2343, 255, 1, 0, 0, 0, 2344, 2349, 3, 258, 129, 0, 2345, 2346, 5, 397, 0, 0, 2346, 2348, 3, 258, 129, 0, 2347, 2345, 1, 0, 0, 0, 2348, 2351, 1, 0, 0, 0, 2349, 2347, 1, 0, 0, 0, 2349, 2350, 1, 0, 0, 0, 2350, 2361, 1, 0, 0, 0, 2351, 2349, 1, 0, 0, 0, 2352, 2357, 3, 260, 130, 0, 2353, 2354, 5, 397, 0, 0, 2354, 2356, 3, 260, 130, 0, 2355, 2353, 1, 0, 0, 0, 2356, 2359, 1, 0, 0, 0, 2357, 2355, 1, 0, 0, 0, 2357, 2358, 1, 0, 0, 0, 2358, 2361, 1, 0, 0, 0, 2359, 2357, 1, 0, 0, 0, 2360, 2344, 1, 0, 0, 0, 2360, 2352, 1, 0, 0, 0, 2361, 257, 1, 0, 0, 0, 2362, 2363, 5, 426, 0, 0, 2363, 2364, 5, 405, 0, 0, 2364, 2365, 5, 426, 0, 0, 2365, 259, 1, 0, 0, 0, 2366, 2367, 5, 426, 0, 0, 2367, 261, 1, 0, 0, 0, 2368, 2369, 5, 127, 0, 0, 2369, 2370, 5, 334, 0, 0, 2370, 2371, 5, 32, 0, 0, 2371, 2375, 5, 426, 0, 0, 2372, 2373, 5, 110, 0, 0, 2373, 2374, 5, 32, 0, 0, 2374, 2376, 5, 426, 0, 0, 2375, 2372, 1, 0, 0, 0, 2375, 2376, 1, 0, 0, 0, 2376, 263, 1, 0, 0, 0, 2377, 2378, 5, 44, 0, 0, 2378, 2379, 5, 169, 0, 0, 2379, 2380, 5, 334, 0, 0, 2380, 2381, 5, 32, 0, 0, 2381, 2382, 5, 426, 0, 0, 2382, 265, 1, 0, 0, 0, 2383, 2384, 5, 198, 0, 0, 2384, 2385, 5, 174, 0, 0, 2385, 2386, 5, 334, 0, 0, 2386, 2387, 5, 32, 0, 0, 2387, 2388, 5, 426, 0, 0, 2388, 267, 1, 0, 0, 0, 2389, 2390, 5, 186, 0, 0, 2390, 2391, 5, 334, 0, 0, 2391, 2392, 5, 32, 0, 0, 2392, 2393, 5, 426, 0, 0, 2393, 269, 1, 0, 0, 0, 2394, 2395, 5, 219, 0, 0, 2395, 2396, 5, 85, 0, 0, 2396, 2397, 5, 17, 0, 0, 2397, 2398, 5, 426, 0, 0, 2398, 271, 1, 0, 0, 0, 2399, 2400, 5, 321, 0, 0, 2400, 2401, 5, 17, 0, 0, 2401, 2402, 5, 160, 0, 0, 2402, 2403, 5, 426, 0, 0, 2403, 2404, 5, 233, 0, 0, 2404, 2409, 5, 426, 0, 0, 2405, 2406, 5, 159, 0, 0, 2406, 2407, 5, 426, 0, 0, 2407, 2408, 5, 232, 0, 0, 2408, 2410, 5, 426, 0, 0, 2409, 2405, 1, 0, 0, 0, 2409, 2410, 1, 0, 0, 0, 2410, 2441, 1, 0, 0, 0, 2411, 2412, 5, 321, 0, 0, 2412, 2413, 5, 32, 0, 0, 2413, 2417, 5, 426, 0, 0, 2414, 2415, 5, 387, 0, 0, 2415, 2416, 5, 302, 0, 0, 2416, 2418, 3, 254, 127, 0, 2417, 2414, 1, 0, 0, 0, 2417, 2418, 1, 0, 0, 0, 2418, 2422, 1, 0, 0, 0, 2419, 2420, 5, 321, 0, 0, 2420, 2421, 5, 17, 0, 0, 2421, 2423, 3, 926, 463, 0, 2422, 2419, 1, 0, 0, 0, 2422, 2423, 1, 0, 0, 0, 2423, 2441, 1, 0, 0, 0, 2424, 2425, 5, 321, 0, 0, 2425, 2426, 5, 32, 0, 0, 2426, 2430, 3, 926, 463, 0, 2427, 2428, 5, 387, 0, 0, 2428, 2429, 5, 302, 0, 0, 2429, 2431, 3, 254, 127, 0, 2430, 2427, 1, 0, 0, 0, 2430, 2431, 1, 0, 0, 0, 2431, 2435, 1, 0, 0, 0, 2432, 2433, 5, 321, 0, 0, 2433, 2434, 5, 17, 0, 0, 2434, 2436, 3, 926, 463, 0, 2435, 2432, 1, 0, 0, 0, 2435, 2436, 1, 0, 0, 0, 2436, 2441, 1, 0, 0, 0, 2437, 2438, 5, 321, 0, 0, 2438, 2439, 5, 17, 0, 0, 2439, 2441, 3, 926, 463, 0, 2440, 2399, 1, 0, 0, 0, 2440, 2411, 1, 0, 0, 0, 2440, 2424, 1, 0, 0, 0, 2440, 2437, 1, 0, 0, 0, 2441, 273, 1, 0, 0, 0, 2442, 2443, 5, 189, 0, 0, 2443, 2444, 5, 426, 0, 0, 2444, 275, 1, 0, 0, 0, 2445, 2450, 3, 344, 172, 0, 2446, 2447, 5, 397, 0, 0, 2447, 2449, 3, 344, 172, 0, 2448, 2446, 1, 0, 0, 0, 2449, 2452, 1, 0, 0, 0, 2450, 2448, 1, 0, 0, 0, 2450, 2451, 1, 0, 0, 0, 2451, 277, 1, 0, 0, 0, 2452, 2450, 1, 0, 0, 0, 2453, 2458, 3, 346, 173, 0, 2454, 2455, 5, 397, 0, 0, 2455, 2457, 3, 346, 173, 0, 2456, 2454, 1, 0, 0, 0, 2457, 2460, 1, 0, 0, 0, 2458, 2456, 1, 0, 0, 0, 2458, 2459, 1, 0, 0, 0, 2459, 279, 1, 0, 0, 0, 2460, 2458, 1, 0, 0, 0, 2461, 2466, 3, 374, 187, 0, 2462, 2463, 5, 397, 0, 0, 2463, 2465, 3, 374, 187, 0, 2464, 2462, 1, 0, 0, 0, 2465, 2468, 1, 0, 0, 0, 2466, 2464, 1, 0, 0, 0, 2466, 2467, 1, 0, 0, 0, 2467, 281, 1, 0, 0, 0, 2468, 2466, 1, 0, 0, 0, 2469, 2474, 3, 284, 142, 0, 2470, 2471, 5, 397, 0, 0, 2471, 2473, 3, 284, 142, 0, 2472, 2470, 1, 0, 0, 0, 2473, 2476, 1, 0, 0, 0, 2474, 2472, 1, 0, 0, 0, 2474, 2475, 1, 0, 0, 0, 2475, 283, 1, 0, 0, 0, 2476, 2474, 1, 0, 0, 0, 2477, 2482, 3, 926, 463, 0, 2478, 2479, 5, 395, 0, 0, 2479, 2481, 3, 926, 463, 0, 2480, 2478, 1, 0, 0, 0, 2481, 2484, 1, 0, 0, 0, 2482, 2480, 1, 0, 0, 0, 2482, 2483, 1, 0, 0, 0, 2483, 2487, 1, 0, 0, 0, 2484, 2482, 1, 0, 0, 0, 2485, 2487, 4, 142, 0, 0, 2486, 2477, 1, 0, 0, 0, 2486, 2485, 1, 0, 0, 0, 2487, 285, 1, 0, 0, 0, 2488, 2489, 3, 926, 463, 0, 2489, 287, 1, 0, 0, 0, 2490, 2500, 3, 284, 142, 0, 2491, 2496, 5, 395, 0, 0, 2492, 2497, 5, 104, 0, 0, 2493, 2497, 5, 175, 0, 0, 2494, 2497, 5, 375, 0, 0, 2495, 2497, 3, 926, 463, 0, 2496, 2492, 1, 0, 0, 0, 2496, 2493, 1, 0, 0, 0, 2496, 2494, 1, 0, 0, 0, 2496, 2495, 1, 0, 0, 0, 2497, 2499, 1, 0, 0, 0, 2498, 2491, 1, 0, 0, 0, 2499, 2502, 1, 0, 0, 0, 2500, 2498, 1, 0, 0, 0, 2500, 2501, 1, 0, 0, 0, 2501, 289, 1, 0, 0, 0, 2502, 2500, 1, 0, 0, 0, 2503, 2508, 3, 334, 167, 0, 2504, 2505, 5, 397, 0, 0, 2505, 2507, 3, 334, 167, 0, 2506, 2504, 1, 0, 0, 0, 2507, 2510, 1, 0, 0, 0, 2508, 2506, 1, 0, 0, 0, 2508, 2509, 1, 0, 0, 0, 2509, 291, 1, 0, 0, 0, 2510, 2508, 1, 0, 0, 0, 2511, 2512, 5, 399, 0, 0, 2512, 2513, 3, 282, 141, 0, 2513, 2514, 5, 400, 0, 0, 2514, 293, 1, 0, 0, 0, 2515, 2517, 3, 296, 148, 0, 2516, 2518, 3, 298, 149, 0, 2517, 2516, 1, 0, 0, 0, 2517, 2518, 1, 0, 0, 0, 2518, 2521, 1, 0, 0, 0, 2519, 2521, 3, 300, 150, 0, 2520, 2515, 1, 0, 0, 0, 2520, 2519, 1, 0, 0, 0, 2521, 295, 1, 0, 0, 0, 2522, 2525, 3, 970, 485, 0, 2523, 2525, 3, 972, 486, 0, 2524, 2522, 1, 0, 0, 0, 2524, 2523, 1, 0, 0, 0, 2525, 297, 1, 0, 0, 0, 2526, 2527, 7, 14, 0, 0, 2527, 299, 1, 0, 0, 0, 2528, 2532, 5, 109, 0, 0, 2529, 2530, 5, 216, 0, 0, 2530, 2532, 5, 109, 0, 0, 2531, 2528, 1, 0, 0, 0, 2531, 2529, 1, 0, 0, 0, 2532, 301, 1, 0, 0, 0, 2533, 2534, 7, 15, 0, 0, 2534, 303, 1, 0, 0, 0, 2535, 2536, 5, 55, 0, 0, 2536, 2538, 3, 926, 463, 0, 2537, 2535, 1, 0, 0, 0, 2537, 2538, 1, 0, 0, 0, 2538, 2539, 1, 0, 0, 0, 2539, 2541, 3, 308, 154, 0, 2540, 2542, 3, 370, 185, 0, 2541, 2540, 1, 0, 0, 0, 2541, 2542, 1, 0, 0, 0, 2542, 305, 1, 0, 0, 0, 2543, 2544, 5, 55, 0, 0, 2544, 2545, 3, 926, 463, 0, 2545, 2547, 3, 308, 154, 0, 2546, 2548, 3, 372, 186, 0, 2547, 2546, 1, 0, 0, 0, 2547, 2548, 1, 0, 0, 0, 2548, 307, 1, 0, 0, 0, 2549, 2552, 3, 310, 155, 0, 2550, 2552, 3, 312, 156, 0, 2551, 2549, 1, 0, 0, 0, 2551, 2550, 1, 0, 0, 0, 2552, 309, 1, 0, 0, 0, 2553, 2554, 3, 368, 184, 0, 2554, 2555, 3, 292, 146, 0, 2555, 311, 1, 0, 0, 0, 2556, 2557, 5, 40, 0, 0, 2557, 2558, 5, 399, 0, 0, 2558, 2559, 3, 828, 414, 0, 2559, 2560, 5, 400, 0, 0, 2560, 313, 1, 0, 0, 0, 2561, 2562, 5, 55, 0, 0, 2562, 2564, 3, 926, 463, 0, 2563, 2561, 1, 0, 0, 0, 2563, 2564, 1, 0, 0, 0, 2564, 2565, 1, 0, 0, 0, 2565, 2566, 5, 136, 0, 0, 2566, 2567, 5, 173, 0, 0, 2567, 2568, 3, 292, 146, 0, 2568, 2569, 5, 269, 0, 0, 2569, 2570, 3, 660, 330, 0, 2570, 2572, 3, 292, 146, 0, 2571, 2573, 3, 370, 185, 0, 2572, 2571, 1, 0, 0, 0, 2572, 2573, 1, 0, 0, 0, 2573, 315, 1, 0, 0, 0, 2574, 2575, 5, 55, 0, 0, 2575, 2576, 3, 926, 463, 0, 2576, 2577, 5, 136, 0, 0, 2577, 2578, 5, 173, 0, 0, 2578, 2579, 3, 292, 146, 0, 2579, 2580, 5, 269, 0, 0, 2580, 2581, 3, 660, 330, 0, 2581, 2583, 3, 292, 146, 0, 2582, 2584, 3, 372, 186, 0, 2583, 2582, 1, 0, 0, 0, 2583, 2584, 1, 0, 0, 0, 2584, 317, 1, 0, 0, 0, 2585, 2588, 3, 324, 162, 0, 2586, 2588, 3, 320, 160, 0, 2587, 2585, 1, 0, 0, 0, 2587, 2586, 1, 0, 0, 0, 2588, 319, 1, 0, 0, 0, 2589, 2594, 3, 322, 161, 0, 2590, 2591, 5, 397, 0, 0, 2591, 2593, 3, 322, 161, 0, 2592, 2590, 1, 0, 0, 0, 2593, 2596, 1, 0, 0, 0, 2594, 2592, 1, 0, 0, 0, 2594, 2595, 1, 0, 0, 0, 2595, 321, 1, 0, 0, 0, 2596, 2594, 1, 0, 0, 0, 2597, 2598, 5, 399, 0, 0, 2598, 2599, 3, 324, 162, 0, 2599, 2600, 5, 400, 0, 0, 2600, 323, 1, 0, 0, 0, 2601, 2606, 3, 326, 163, 0, 2602, 2603, 5, 397, 0, 0, 2603, 2605, 3, 326, 163, 0, 2604, 2602, 1, 0, 0, 0, 2605, 2608, 1, 0, 0, 0, 2606, 2604, 1, 0, 0, 0, 2606, 2607, 1, 0, 0, 0, 2607, 325, 1, 0, 0, 0, 2608, 2606, 1, 0, 0, 0, 2609, 2610, 3, 804, 402, 0, 2610, 327, 1, 0, 0, 0, 2611, 2614, 3, 326, 163, 0, 2612, 2614, 3, 322, 161, 0, 2613, 2611, 1, 0, 0, 0, 2613, 2612, 1, 0, 0, 0, 2614, 329, 1, 0, 0, 0, 2615, 2616, 7, 16, 0, 0, 2616, 331, 1, 0, 0, 0, 2617, 2618, 5, 220, 0, 0, 2618, 2619, 7, 17, 0, 0, 2619, 333, 1, 0, 0, 0, 2620, 2622, 3, 284, 142, 0, 2621, 2623, 3, 330, 165, 0, 2622, 2621, 1, 0, 0, 0, 2622, 2623, 1, 0, 0, 0, 2623, 2625, 1, 0, 0, 0, 2624, 2626, 3, 332, 166, 0, 2625, 2624, 1, 0, 0, 0, 2625, 2626, 1, 0, 0, 0, 2626, 335, 1, 0, 0, 0, 2627, 2632, 3, 338, 169, 0, 2628, 2629, 5, 397, 0, 0, 2629, 2631, 3, 338, 169, 0, 2630, 2628, 1, 0, 0, 0, 2631, 2634, 1, 0, 0, 0, 2632, 2630, 1, 0, 0, 0, 2632, 2633, 1, 0, 0, 0, 2633, 337, 1, 0, 0, 0, 2634, 2632, 1, 0, 0, 0, 2635, 2638, 3, 286, 143, 0, 2636, 2637, 5, 47, 0, 0, 2637, 2639, 5, 426, 0, 0, 2638, 2636, 1, 0, 0, 0, 2638, 2639, 1, 0, 0, 0, 2639, 339, 1, 0, 0, 0, 2640, 2641, 7, 16, 0, 0, 2641, 341, 1, 0, 0, 0, 2642, 2645, 3, 284, 142, 0, 2643, 2645, 3, 828, 414, 0, 2644, 2642, 1, 0, 0, 0, 2644, 2643, 1, 0, 0, 0, 2645, 2647, 1, 0, 0, 0, 2646, 2648, 3, 340, 170, 0, 2647, 2646, 1, 0, 0, 0, 2647, 2648, 1, 0, 0, 0, 2648, 2650, 1, 0, 0, 0, 2649, 2651, 3, 332, 166, 0, 2650, 2649, 1, 0, 0, 0, 2650, 2651, 1, 0, 0, 0, 2651, 343, 1, 0, 0, 0, 2652, 2653, 3, 286, 143, 0, 2653, 2656, 3, 376, 188, 0, 2654, 2655, 5, 47, 0, 0, 2655, 2657, 5, 426, 0, 0, 2656, 2654, 1, 0, 0, 0, 2656, 2657, 1, 0, 0, 0, 2657, 345, 1, 0, 0, 0, 2658, 2661, 3, 348, 174, 0, 2659, 2661, 3, 350, 175, 0, 2660, 2658, 1, 0, 0, 0, 2660, 2659, 1, 0, 0, 0, 2661, 347, 1, 0, 0, 0, 2662, 2665, 3, 314, 157, 0, 2663, 2665, 3, 304, 152, 0, 2664, 2662, 1, 0, 0, 0, 2664, 2663, 1, 0, 0, 0, 2665, 349, 1, 0, 0, 0, 2666, 2667, 3, 286, 143, 0, 2667, 2669, 3, 376, 188, 0, 2668, 2670, 3, 352, 176, 0, 2669, 2668, 1, 0, 0, 0, 2669, 2670, 1, 0, 0, 0, 2670, 2673, 1, 0, 0, 0, 2671, 2672, 5, 47, 0, 0, 2672, 2674, 5, 426, 0, 0, 2673, 2671, 1, 0, 0, 0, 2673, 2674, 1, 0, 0, 0, 2674, 351, 1, 0, 0, 0, 2675, 2678, 3, 354, 177, 0, 2676, 2678, 3, 356, 178, 0, 2677, 2675, 1, 0, 0, 0, 2677, 2676, 1, 0, 0, 0, 2678, 353, 1, 0, 0, 0, 2679, 2680, 5, 55, 0, 0, 2680, 2682, 3, 926, 463, 0, 2681, 2679, 1, 0, 0, 0, 2681, 2682, 1, 0, 0, 0, 2682, 2683, 1, 0, 0, 0, 2683, 2684, 5, 269, 0, 0, 2684, 2685, 3, 660, 330, 0, 2685, 2686, 5, 399, 0, 0, 2686, 2687, 3, 284, 142, 0, 2687, 2689, 5, 400, 0, 0, 2688, 2690, 3, 370, 185, 0, 2689, 2688, 1, 0, 0, 0, 2689, 2690, 1, 0, 0, 0, 2690, 355, 1, 0, 0, 0, 2691, 2692, 5, 55, 0, 0, 2692, 2694, 3, 926, 463, 0, 2693, 2691, 1, 0, 0, 0, 2693, 2694, 1, 0, 0, 0, 2694, 2695, 1, 0, 0, 0, 2695, 2697, 3, 364, 182, 0, 2696, 2698, 3, 370, 185, 0, 2697, 2696, 1, 0, 0, 0, 2697, 2698, 1, 0, 0, 0, 2698, 357, 1, 0, 0, 0, 2699, 2702, 3, 360, 180, 0, 2700, 2702, 3, 362, 181, 0, 2701, 2699, 1, 0, 0, 0, 2701, 2700, 1, 0, 0, 0, 2702, 359, 1, 0, 0, 0, 2703, 2704, 5, 55, 0, 0, 2704, 2706, 3, 926, 463, 0, 2705, 2703, 1, 0, 0, 0, 2705, 2706, 1, 0, 0, 0, 2706, 2707, 1, 0, 0, 0, 2707, 2708, 5, 269, 0, 0, 2708, 2709, 3, 660, 330, 0, 2709, 2710, 5, 399, 0, 0, 2710, 2711, 3, 284, 142, 0, 2711, 2713, 5, 400, 0, 0, 2712, 2714, 3, 372, 186, 0, 2713, 2712, 1, 0, 0, 0, 2713, 2714, 1, 0, 0, 0, 2714, 361, 1, 0, 0, 0, 2715, 2716, 5, 55, 0, 0, 2716, 2718, 3, 926, 463, 0, 2717, 2715, 1, 0, 0, 0, 2717, 2718, 1, 0, 0, 0, 2718, 2719, 1, 0, 0, 0, 2719, 2721, 3, 364, 182, 0, 2720, 2722, 3, 372, 186, 0, 2721, 2720, 1, 0, 0, 0, 2721, 2722, 1, 0, 0, 0, 2722, 363, 1, 0, 0, 0, 2723, 2724, 5, 216, 0, 0, 2724, 2730, 5, 219, 0, 0, 2725, 2726, 5, 83, 0, 0, 2726, 2730, 3, 366, 183, 0, 2727, 2730, 3, 312, 156, 0, 2728, 2730, 3, 368, 184, 0, 2729, 2723, 1, 0, 0, 0, 2729, 2725, 1, 0, 0, 0, 2729, 2727, 1, 0, 0, 0, 2729, 2728, 1, 0, 0, 0, 2730, 365, 1, 0, 0, 0, 2731, 2735, 3, 804, 402, 0, 2732, 2735, 3, 776, 388, 0, 2733, 2735, 3, 790, 395, 0, 2734, 2731, 1, 0, 0, 0, 2734, 2732, 1, 0, 0, 0, 2734, 2733, 1, 0, 0, 0, 2735, 367, 1, 0, 0, 0, 2736, 2737, 5, 251, 0, 0, 2737, 2740, 5, 173, 0, 0, 2738, 2740, 5, 358, 0, 0, 2739, 2736, 1, 0, 0, 0, 2739, 2738, 1, 0, 0, 0, 2740, 369, 1, 0, 0, 0, 2741, 2743, 3, 294, 147, 0, 2742, 2744, 3, 302, 151, 0, 2743, 2742, 1, 0, 0, 0, 2743, 2744, 1, 0, 0, 0, 2744, 371, 1, 0, 0, 0, 2745, 2747, 3, 294, 147, 0, 2746, 2748, 3, 302, 151, 0, 2747, 2746, 1, 0, 0, 0, 2747, 2748, 1, 0, 0, 0, 2748, 373, 1, 0, 0, 0, 2749, 2750, 3, 286, 143, 0, 2750, 2751, 5, 396, 0, 0, 2751, 2754, 3, 376, 188, 0, 2752, 2753, 5, 47, 0, 0, 2753, 2755, 5, 426, 0, 0, 2754, 2752, 1, 0, 0, 0, 2754, 2755, 1, 0, 0, 0, 2755, 375, 1, 0, 0, 0, 2756, 2757, 3, 380, 190, 0, 2757, 377, 1, 0, 0, 0, 2758, 2763, 3, 376, 188, 0, 2759, 2760, 5, 397, 0, 0, 2760, 2762, 3, 376, 188, 0, 2761, 2759, 1, 0, 0, 0, 2762, 2765, 1, 0, 0, 0, 2763, 2761, 1, 0, 0, 0, 2763, 2764, 1, 0, 0, 0, 2764, 379, 1, 0, 0, 0, 2765, 2763, 1, 0, 0, 0, 2766, 2772, 3, 382, 191, 0, 2767, 2772, 3, 384, 192, 0, 2768, 2772, 3, 386, 193, 0, 2769, 2772, 3, 388, 194, 0, 2770, 2772, 3, 390, 195, 0, 2771, 2766, 1, 0, 0, 0, 2771, 2767, 1, 0, 0, 0, 2771, 2768, 1, 0, 0, 0, 2771, 2769, 1, 0, 0, 0, 2771, 2770, 1, 0, 0, 0, 2772, 381, 1, 0, 0, 0, 2773, 2811, 5, 340, 0, 0, 2774, 2811, 5, 311, 0, 0, 2775, 2811, 5, 162, 0, 0, 2776, 2811, 5, 163, 0, 0, 2777, 2811, 5, 26, 0, 0, 2778, 2811, 5, 28, 0, 0, 2779, 2811, 5, 131, 0, 0, 2780, 2811, 5, 264, 0, 0, 2781, 2783, 5, 100, 0, 0, 2782, 2784, 5, 248, 0, 0, 2783, 2782, 1, 0, 0, 0, 2783, 2784, 1, 0, 0, 0, 2784, 2811, 1, 0, 0, 0, 2785, 2811, 5, 71, 0, 0, 2786, 2811, 5, 72, 0, 0, 2787, 2811, 5, 337, 0, 0, 2788, 2811, 5, 338, 0, 0, 2789, 2790, 5, 337, 0, 0, 2790, 2791, 5, 387, 0, 0, 2791, 2792, 5, 188, 0, 0, 2792, 2793, 5, 336, 0, 0, 2793, 2811, 5, 394, 0, 0, 2794, 2811, 5, 323, 0, 0, 2795, 2811, 5, 27, 0, 0, 2796, 2804, 3, 990, 495, 0, 2797, 2798, 5, 399, 0, 0, 2798, 2801, 5, 431, 0, 0, 2799, 2800, 5, 397, 0, 0, 2800, 2802, 5, 431, 0, 0, 2801, 2799, 1, 0, 0, 0, 2801, 2802, 1, 0, 0, 0, 2802, 2803, 1, 0, 0, 0, 2803, 2805, 5, 400, 0, 0, 2804, 2797, 1, 0, 0, 0, 2804, 2805, 1, 0, 0, 0, 2805, 2811, 1, 0, 0, 0, 2806, 2807, 7, 18, 0, 0, 2807, 2808, 5, 399, 0, 0, 2808, 2809, 5, 431, 0, 0, 2809, 2811, 5, 400, 0, 0, 2810, 2773, 1, 0, 0, 0, 2810, 2774, 1, 0, 0, 0, 2810, 2775, 1, 0, 0, 0, 2810, 2776, 1, 0, 0, 0, 2810, 2777, 1, 0, 0, 0, 2810, 2778, 1, 0, 0, 0, 2810, 2779, 1, 0, 0, 0, 2810, 2780, 1, 0, 0, 0, 2810, 2781, 1, 0, 0, 0, 2810, 2785, 1, 0, 0, 0, 2810, 2786, 1, 0, 0, 0, 2810, 2787, 1, 0, 0, 0, 2810, 2788, 1, 0, 0, 0, 2810, 2789, 1, 0, 0, 0, 2810, 2794, 1, 0, 0, 0, 2810, 2795, 1, 0, 0, 0, 2810, 2796, 1, 0, 0, 0, 2810, 2806, 1, 0, 0, 0, 2811, 383, 1, 0, 0, 0, 2812, 2813, 5, 16, 0, 0, 2813, 2814, 5, 409, 0, 0, 2814, 2815, 3, 380, 190, 0, 2815, 2816, 5, 411, 0, 0, 2816, 385, 1, 0, 0, 0, 2817, 2818, 5, 324, 0, 0, 2818, 2819, 5, 409, 0, 0, 2819, 2820, 3, 280, 140, 0, 2820, 2821, 5, 411, 0, 0, 2821, 387, 1, 0, 0, 0, 2822, 2823, 5, 198, 0, 0, 2823, 2824, 5, 409, 0, 0, 2824, 2825, 3, 382, 191, 0, 2825, 2826, 5, 397, 0, 0, 2826, 2827, 3, 380, 190, 0, 2827, 2828, 5, 411, 0, 0, 2828, 389, 1, 0, 0, 0, 2829, 2830, 5, 357, 0, 0, 2830, 2831, 5, 409, 0, 0, 2831, 2832, 3, 378, 189, 0, 2832, 2833, 5, 411, 0, 0, 2833, 391, 1, 0, 0, 0, 2834, 2836, 7, 19, 0, 0, 2835, 2837, 7, 20, 0, 0, 2836, 2835, 1, 0, 0, 0, 2836, 2837, 1, 0, 0, 0, 2837, 393, 1, 0, 0, 0, 2838, 2840, 3, 398, 199, 0, 2839, 2838, 1, 0, 0, 0, 2839, 2840, 1, 0, 0, 0, 2840, 2841, 1, 0, 0, 0, 2841, 2842, 3, 396, 198, 0, 2842, 395, 1, 0, 0, 0, 2843, 2846, 3, 402, 201, 0, 2844, 2846, 3, 406, 203, 0, 2845, 2843, 1, 0, 0, 0, 2845, 2844, 1, 0, 0, 0, 2846, 397, 1, 0, 0, 0, 2847, 2848, 5, 387, 0, 0, 2848, 2853, 3, 400, 200, 0, 2849, 2850, 5, 397, 0, 0, 2850, 2852, 3, 400, 200, 0, 2851, 2849, 1, 0, 0, 0, 2852, 2855, 1, 0, 0, 0, 2853, 2851, 1, 0, 0, 0, 2853, 2854, 1, 0, 0, 0, 2854, 399, 1, 0, 0, 0, 2855, 2853, 1, 0, 0, 0, 2856, 2861, 3, 926, 463, 0, 2857, 2858, 5, 399, 0, 0, 2858, 2859, 3, 282, 141, 0, 2859, 2860, 5, 400, 0, 0, 2860, 2862, 1, 0, 0, 0, 2861, 2857, 1, 0, 0, 0, 2861, 2862, 1, 0, 0, 0, 2862, 2863, 1, 0, 0, 0, 2863, 2864, 5, 17, 0, 0, 2864, 2865, 5, 399, 0, 0, 2865, 2866, 3, 394, 197, 0, 2866, 2867, 5, 400, 0, 0, 2867, 401, 1, 0, 0, 0, 2868, 2874, 3, 404, 202, 0, 2869, 2870, 3, 392, 196, 0, 2870, 2871, 3, 404, 202, 0, 2871, 2873, 1, 0, 0, 0, 2872, 2869, 1, 0, 0, 0, 2873, 2876, 1, 0, 0, 0, 2874, 2872, 1, 0, 0, 0, 2874, 2875, 1, 0, 0, 0, 2875, 403, 1, 0, 0, 0, 2876, 2874, 1, 0, 0, 0, 2877, 2878, 3, 620, 310, 0, 2878, 2879, 3, 416, 208, 0, 2879, 2881, 3, 692, 346, 0, 2880, 2882, 3, 638, 319, 0, 2881, 2880, 1, 0, 0, 0, 2881, 2882, 1, 0, 0, 0, 2882, 2884, 1, 0, 0, 0, 2883, 2885, 3, 676, 338, 0, 2884, 2883, 1, 0, 0, 0, 2884, 2885, 1, 0, 0, 0, 2885, 2887, 1, 0, 0, 0, 2886, 2888, 3, 724, 362, 0, 2887, 2886, 1, 0, 0, 0, 2887, 2888, 1, 0, 0, 0, 2888, 2890, 1, 0, 0, 0, 2889, 2891, 3, 740, 370, 0, 2890, 2889, 1, 0, 0, 0, 2890, 2891, 1, 0, 0, 0, 2891, 2893, 1, 0, 0, 0, 2892, 2894, 3, 708, 354, 0, 2893, 2892, 1, 0, 0, 0, 2893, 2894, 1, 0, 0, 0, 2894, 2896, 1, 0, 0, 0, 2895, 2897, 3, 742, 371, 0, 2896, 2895, 1, 0, 0, 0, 2896, 2897, 1, 0, 0, 0, 2897, 2899, 1, 0, 0, 0, 2898, 2900, 3, 764, 382, 0, 2899, 2898, 1, 0, 0, 0, 2899, 2900, 1, 0, 0, 0, 2900, 2902, 1, 0, 0, 0, 2901, 2903, 3, 766, 383, 0, 2902, 2901, 1, 0, 0, 0, 2902, 2903, 1, 0, 0, 0, 2903, 2905, 1, 0, 0, 0, 2904, 2906, 3, 770, 385, 0, 2905, 2904, 1, 0, 0, 0, 2905, 2906, 1, 0, 0, 0, 2906, 2908, 1, 0, 0, 0, 2907, 2909, 3, 772, 386, 0, 2908, 2907, 1, 0, 0, 0, 2908, 2909, 1, 0, 0, 0, 2909, 2911, 1, 0, 0, 0, 2910, 2912, 3, 420, 210, 0, 2911, 2910, 1, 0, 0, 0, 2911, 2912, 1, 0, 0, 0, 2912, 2949, 1, 0, 0, 0, 2913, 2914, 3, 620, 310, 0, 2914, 2916, 3, 692, 346, 0, 2915, 2917, 3, 638, 319, 0, 2916, 2915, 1, 0, 0, 0, 2916, 2917, 1, 0, 0, 0, 2917, 2919, 1, 0, 0, 0, 2918, 2920, 3, 676, 338, 0, 2919, 2918, 1, 0, 0, 0, 2919, 2920, 1, 0, 0, 0, 2920, 2922, 1, 0, 0, 0, 2921, 2923, 3, 724, 362, 0, 2922, 2921, 1, 0, 0, 0, 2922, 2923, 1, 0, 0, 0, 2923, 2925, 1, 0, 0, 0, 2924, 2926, 3, 740, 370, 0, 2925, 2924, 1, 0, 0, 0, 2925, 2926, 1, 0, 0, 0, 2926, 2928, 1, 0, 0, 0, 2927, 2929, 3, 708, 354, 0, 2928, 2927, 1, 0, 0, 0, 2928, 2929, 1, 0, 0, 0, 2929, 2931, 1, 0, 0, 0, 2930, 2932, 3, 742, 371, 0, 2931, 2930, 1, 0, 0, 0, 2931, 2932, 1, 0, 0, 0, 2932, 2934, 1, 0, 0, 0, 2933, 2935, 3, 764, 382, 0, 2934, 2933, 1, 0, 0, 0, 2934, 2935, 1, 0, 0, 0, 2935, 2937, 1, 0, 0, 0, 2936, 2938, 3, 766, 383, 0, 2937, 2936, 1, 0, 0, 0, 2937, 2938, 1, 0, 0, 0, 2938, 2940, 1, 0, 0, 0, 2939, 2941, 3, 770, 385, 0, 2940, 2939, 1, 0, 0, 0, 2940, 2941, 1, 0, 0, 0, 2941, 2943, 1, 0, 0, 0, 2942, 2944, 3, 772, 386, 0, 2943, 2942, 1, 0, 0, 0, 2943, 2944, 1, 0, 0, 0, 2944, 2946, 1, 0, 0, 0, 2945, 2947, 3, 420, 210, 0, 2946, 2945, 1, 0, 0, 0, 2946, 2947, 1, 0, 0, 0, 2947, 2949, 1, 0, 0, 0, 2948, 2877, 1, 0, 0, 0, 2948, 2913, 1, 0, 0, 0, 2949, 405, 1, 0, 0, 0, 2950, 2951, 3, 416, 208, 0, 2951, 2952, 3, 410, 205, 0, 2952, 2955, 1, 0, 0, 0, 2953, 2955, 3, 410, 205, 0, 2954, 2950, 1, 0, 0, 0, 2954, 2953, 1, 0, 0, 0, 2955, 407, 1, 0, 0, 0, 2956, 2958, 3, 692, 346, 0, 2957, 2959, 3, 620, 310, 0, 2958, 2957, 1, 0, 0, 0, 2958, 2959, 1, 0, 0, 0, 2959, 2961, 1, 0, 0, 0, 2960, 2962, 3, 676, 338, 0, 2961, 2960, 1, 0, 0, 0, 2961, 2962, 1, 0, 0, 0, 2962, 2964, 1, 0, 0, 0, 2963, 2965, 3, 724, 362, 0, 2964, 2963, 1, 0, 0, 0, 2964, 2965, 1, 0, 0, 0, 2965, 2967, 1, 0, 0, 0, 2966, 2968, 3, 740, 370, 0, 2967, 2966, 1, 0, 0, 0, 2967, 2968, 1, 0, 0, 0, 2968, 2970, 1, 0, 0, 0, 2969, 2971, 3, 708, 354, 0, 2970, 2969, 1, 0, 0, 0, 2970, 2971, 1, 0, 0, 0, 2971, 2973, 1, 0, 0, 0, 2972, 2974, 3, 742, 371, 0, 2973, 2972, 1, 0, 0, 0, 2973, 2974, 1, 0, 0, 0, 2974, 2981, 1, 0, 0, 0, 2975, 2976, 5, 399, 0, 0, 2976, 2977, 3, 410, 205, 0, 2977, 2978, 5, 400, 0, 0, 2978, 2981, 1, 0, 0, 0, 2979, 2981, 3, 680, 340, 0, 2980, 2956, 1, 0, 0, 0, 2980, 2975, 1, 0, 0, 0, 2980, 2979, 1, 0, 0, 0, 2981, 409, 1, 0, 0, 0, 2982, 2984, 3, 408, 204, 0, 2983, 2985, 3, 412, 206, 0, 2984, 2983, 1, 0, 0, 0, 2984, 2985, 1, 0, 0, 0, 2985, 2987, 1, 0, 0, 0, 2986, 2988, 3, 764, 382, 0, 2987, 2986, 1, 0, 0, 0, 2987, 2988, 1, 0, 0, 0, 2988, 2990, 1, 0, 0, 0, 2989, 2991, 3, 766, 383, 0, 2990, 2989, 1, 0, 0, 0, 2990, 2991, 1, 0, 0, 0, 2991, 2993, 1, 0, 0, 0, 2992, 2994, 3, 770, 385, 0, 2993, 2992, 1, 0, 0, 0, 2993, 2994, 1, 0, 0, 0, 2994, 2996, 1, 0, 0, 0, 2995, 2997, 3, 772, 386, 0, 2996, 2995, 1, 0, 0, 0, 2996, 2997, 1, 0, 0, 0, 2997, 2999, 1, 0, 0, 0, 2998, 3000, 3, 420, 210, 0, 2999, 2998, 1, 0, 0, 0, 2999, 3000, 1, 0, 0, 0, 3000, 411, 1, 0, 0, 0, 3001, 3002, 3, 392, 196, 0, 3002, 3003, 3, 408, 204, 0, 3003, 3005, 1, 0, 0, 0, 3004, 3001, 1, 0, 0, 0, 3005, 3006, 1, 0, 0, 0, 3006, 3004, 1, 0, 0, 0, 3006, 3007, 1, 0, 0, 0, 3007, 413, 1, 0, 0, 0, 3008, 3010, 3, 398, 199, 0, 3009, 3008, 1, 0, 0, 0, 3009, 3010, 1, 0, 0, 0, 3010, 3011, 1, 0, 0, 0, 3011, 3012, 3, 410, 205, 0, 3012, 415, 1, 0, 0, 0, 3013, 3030, 5, 161, 0, 0, 3014, 3015, 5, 235, 0, 0, 3015, 3017, 3, 418, 209, 0, 3016, 3018, 3, 44, 22, 0, 3017, 3016, 1, 0, 0, 0, 3017, 3018, 1, 0, 0, 0, 3018, 3031, 1, 0, 0, 0, 3019, 3021, 5, 166, 0, 0, 3020, 3022, 5, 329, 0, 0, 3021, 3020, 1, 0, 0, 0, 3021, 3022, 1, 0, 0, 0, 3022, 3023, 1, 0, 0, 0, 3023, 3028, 3, 910, 455, 0, 3024, 3025, 5, 399, 0, 0, 3025, 3026, 3, 282, 141, 0, 3026, 3027, 5, 400, 0, 0, 3027, 3029, 1, 0, 0, 0, 3028, 3024, 1, 0, 0, 0, 3028, 3029, 1, 0, 0, 0, 3029, 3031, 1, 0, 0, 0, 3030, 3014, 1, 0, 0, 0, 3030, 3019, 1, 0, 0, 0, 3031, 417, 1, 0, 0, 0, 3032, 3034, 5, 188, 0, 0, 3033, 3032, 1, 0, 0, 0, 3033, 3034, 1, 0, 0, 0, 3034, 3035, 1, 0, 0, 0, 3035, 3036, 5, 93, 0, 0, 3036, 3038, 5, 426, 0, 0, 3037, 3039, 3, 250, 125, 0, 3038, 3037, 1, 0, 0, 0, 3038, 3039, 1, 0, 0, 0, 3039, 3041, 1, 0, 0, 0, 3040, 3042, 3, 272, 136, 0, 3041, 3040, 1, 0, 0, 0, 3041, 3042, 1, 0, 0, 0, 3042, 3046, 1, 0, 0, 0, 3043, 3044, 5, 329, 0, 0, 3044, 3046, 3, 910, 455, 0, 3045, 3033, 1, 0, 0, 0, 3045, 3043, 1, 0, 0, 0, 3046, 419, 1, 0, 0, 0, 3047, 3056, 5, 185, 0, 0, 3048, 3049, 5, 431, 0, 0, 3049, 3051, 5, 397, 0, 0, 3050, 3048, 1, 0, 0, 0, 3050, 3051, 1, 0, 0, 0, 3051, 3052, 1, 0, 0, 0, 3052, 3057, 5, 431, 0, 0, 3053, 3054, 5, 431, 0, 0, 3054, 3055, 5, 223, 0, 0, 3055, 3057, 5, 431, 0, 0, 3056, 3050, 1, 0, 0, 0, 3056, 3053, 1, 0, 0, 0, 3057, 421, 1, 0, 0, 0, 3058, 3059, 5, 86, 0, 0, 3059, 3060, 5, 139, 0, 0, 3060, 3062, 3, 660, 330, 0, 3061, 3063, 3, 676, 338, 0, 3062, 3061, 1, 0, 0, 0, 3062, 3063, 1, 0, 0, 0, 3063, 423, 1, 0, 0, 0, 3064, 3065, 3, 284, 142, 0, 3065, 3066, 5, 405, 0, 0, 3066, 3067, 3, 426, 213, 0, 3067, 425, 1, 0, 0, 0, 3068, 3071, 3, 614, 307, 0, 3069, 3071, 3, 848, 424, 0, 3070, 3068, 1, 0, 0, 0, 3070, 3069, 1, 0, 0, 0, 3071, 427, 1, 0, 0, 0, 3072, 3073, 5, 304, 0, 0, 3073, 3078, 3, 424, 212, 0, 3074, 3075, 5, 397, 0, 0, 3075, 3077, 3, 424, 212, 0, 3076, 3074, 1, 0, 0, 0, 3077, 3080, 1, 0, 0, 0, 3078, 3076, 1, 0, 0, 0, 3078, 3079, 1, 0, 0, 0, 3079, 429, 1, 0, 0, 0, 3080, 3078, 1, 0, 0, 0, 3081, 3082, 5, 365, 0, 0, 3082, 3083, 3, 660, 330, 0, 3083, 3085, 3, 428, 214, 0, 3084, 3086, 3, 676, 338, 0, 3085, 3084, 1, 0, 0, 0, 3085, 3086, 1, 0, 0, 0, 3086, 431, 1, 0, 0, 0, 3087, 3092, 3, 434, 217, 0, 3088, 3092, 3, 444, 222, 0, 3089, 3092, 3, 446, 223, 0, 3090, 3092, 3, 448, 224, 0, 3091, 3087, 1, 0, 0, 0, 3091, 3088, 1, 0, 0, 0, 3091, 3089, 1, 0, 0, 0, 3091, 3090, 1, 0, 0, 0, 3092, 433, 1, 0, 0, 0, 3093, 3094, 5, 318, 0, 0, 3094, 3103, 5, 344, 0, 0, 3095, 3100, 3, 436, 218, 0, 3096, 3097, 5, 397, 0, 0, 3097, 3099, 3, 436, 218, 0, 3098, 3096, 1, 0, 0, 0, 3099, 3102, 1, 0, 0, 0, 3100, 3098, 1, 0, 0, 0, 3100, 3101, 1, 0, 0, 0, 3101, 3104, 1, 0, 0, 0, 3102, 3100, 1, 0, 0, 0, 3103, 3095, 1, 0, 0, 0, 3103, 3104, 1, 0, 0, 0, 3104, 435, 1, 0, 0, 0, 3105, 3108, 3, 440, 220, 0, 3106, 3108, 3, 438, 219, 0, 3107, 3105, 1, 0, 0, 0, 3107, 3106, 1, 0, 0, 0, 3108, 437, 1, 0, 0, 0, 3109, 3110, 5, 261, 0, 0, 3110, 3111, 7, 21, 0, 0, 3111, 439, 1, 0, 0, 0, 3112, 3113, 5, 168, 0, 0, 3113, 3114, 5, 182, 0, 0, 3114, 3115, 3, 442, 221, 0, 3115, 441, 1, 0, 0, 0, 3116, 3117, 5, 312, 0, 0, 3117, 443, 1, 0, 0, 0, 3118, 3120, 5, 48, 0, 0, 3119, 3121, 5, 389, 0, 0, 3120, 3119, 1, 0, 0, 0, 3120, 3121, 1, 0, 0, 0, 3121, 445, 1, 0, 0, 0, 3122, 3124, 5, 289, 0, 0, 3123, 3125, 5, 389, 0, 0, 3124, 3123, 1, 0, 0, 0, 3124, 3125, 1, 0, 0, 0, 3125, 447, 1, 0, 0, 0, 3126, 3127, 5, 304, 0, 0, 3127, 3128, 5, 22, 0, 0, 3128, 3129, 3, 908, 454, 0, 3129, 449, 1, 0, 0, 0, 3130, 3131, 5, 1, 0, 0, 3131, 3133, 5, 346, 0, 0, 3132, 3134, 5, 431, 0, 0, 3133, 3132, 1, 0, 0, 0, 3134, 3135, 1, 0, 0, 0, 3135, 3133, 1, 0, 0, 0, 3135, 3136, 1, 0, 0, 0, 3136, 451, 1, 0, 0, 0, 3137, 3138, 5, 1, 0, 0, 3138, 3140, 5, 50, 0, 0, 3139, 3141, 5, 431, 0, 0, 3140, 3139, 1, 0, 0, 0, 3141, 3142, 1, 0, 0, 0, 3142, 3140, 1, 0, 0, 0, 3142, 3143, 1, 0, 0, 0, 3143, 453, 1, 0, 0, 0, 3144, 3146, 5, 203, 0, 0, 3145, 3147, 5, 436, 0, 0, 3146, 3145, 1, 0, 0, 0, 3146, 3147, 1, 0, 0, 0, 3147, 3148, 1, 0, 0, 0, 3148, 3149, 5, 166, 0, 0, 3149, 3154, 3, 660, 330, 0, 3150, 3152, 5, 17, 0, 0, 3151, 3150, 1, 0, 0, 0, 3151, 3152, 1, 0, 0, 0, 3152, 3153, 1, 0, 0, 0, 3153, 3155, 3, 926, 463, 0, 3154, 3151, 1, 0, 0, 0, 3154, 3155, 1, 0, 0, 0, 3155, 3156, 1, 0, 0, 0, 3156, 3157, 5, 370, 0, 0, 3157, 3158, 3, 628, 314, 0, 3158, 3159, 5, 224, 0, 0, 3159, 3160, 3, 828, 414, 0, 3160, 3161, 3, 456, 228, 0, 3161, 455, 1, 0, 0, 0, 3162, 3165, 3, 460, 230, 0, 3163, 3165, 3, 462, 231, 0, 3164, 3162, 1, 0, 0, 0, 3164, 3163, 1, 0, 0, 0, 3165, 3168, 1, 0, 0, 0, 3166, 3164, 1, 0, 0, 0, 3166, 3167, 1, 0, 0, 0, 3167, 3170, 1, 0, 0, 0, 3168, 3166, 1, 0, 0, 0, 3169, 3171, 3, 458, 229, 0, 3170, 3169, 1, 0, 0, 0, 3170, 3171, 1, 0, 0, 0, 3171, 457, 1, 0, 0, 0, 3172, 3173, 5, 383, 0, 0, 3173, 3174, 5, 216, 0, 0, 3174, 3177, 5, 201, 0, 0, 3175, 3176, 5, 11, 0, 0, 3176, 3178, 3, 828, 414, 0, 3177, 3175, 1, 0, 0, 0, 3177, 3178, 1, 0, 0, 0, 3178, 3179, 1, 0, 0, 0, 3179, 3180, 5, 335, 0, 0, 3180, 3182, 5, 161, 0, 0, 3181, 3183, 3, 292, 146, 0, 3182, 3181, 1, 0, 0, 0, 3182, 3183, 1, 0, 0, 0, 3183, 3184, 1, 0, 0, 0, 3184, 3185, 5, 374, 0, 0, 3185, 3186, 3, 686, 343, 0, 3186, 459, 1, 0, 0, 0, 3187, 3188, 5, 383, 0, 0, 3188, 3189, 5, 201, 0, 0, 3189, 3190, 5, 11, 0, 0, 3190, 3191, 3, 828, 414, 0, 3191, 3192, 5, 335, 0, 0, 3192, 3193, 3, 464, 232, 0, 3193, 461, 1, 0, 0, 0, 3194, 3195, 5, 383, 0, 0, 3195, 3196, 5, 201, 0, 0, 3196, 3197, 5, 335, 0, 0, 3197, 3198, 3, 464, 232, 0, 3198, 463, 1, 0, 0, 0, 3199, 3200, 5, 365, 0, 0, 3200, 3203, 3, 428, 214, 0, 3201, 3203, 5, 86, 0, 0, 3202, 3199, 1, 0, 0, 0, 3202, 3201, 1, 0, 0, 0, 3203, 465, 1, 0, 0, 0, 3204, 3205, 5, 176, 0, 0, 3205, 3207, 5, 258, 0, 0, 3206, 3208, 5, 426, 0, 0, 3207, 3206, 1, 0, 0, 0, 3208, 3209, 1, 0, 0, 0, 3209, 3207, 1, 0, 0, 0, 3209, 3210, 1, 0, 0, 0, 3210, 467, 1, 0, 0, 0, 3211, 3212, 5, 51, 0, 0, 3212, 3213, 5, 405, 0, 0, 3213, 3214, 5, 431, 0, 0, 3214, 469, 1, 0, 0, 0, 3215, 3216, 5, 246, 0, 0, 3216, 3217, 5, 426, 0, 0, 3217, 471, 1, 0, 0, 0, 3218, 3219, 5, 352, 0, 0, 3219, 3220, 5, 426, 0, 0, 3220, 473, 1, 0, 0, 0, 3221, 3222, 5, 320, 0, 0, 3222, 3223, 5, 426, 0, 0, 3223, 475, 1, 0, 0, 0, 3224, 3248, 5, 9, 0, 0, 3225, 3226, 5, 329, 0, 0, 3226, 3227, 3, 660, 330, 0, 3227, 3228, 3, 478, 239, 0, 3228, 3249, 1, 0, 0, 0, 3229, 3230, 5, 378, 0, 0, 3230, 3232, 3, 664, 332, 0, 3231, 3233, 5, 17, 0, 0, 3232, 3231, 1, 0, 0, 0, 3232, 3233, 1, 0, 0, 0, 3233, 3234, 1, 0, 0, 0, 3234, 3235, 3, 484, 242, 0, 3235, 3249, 1, 0, 0, 0, 3236, 3237, 5, 202, 0, 0, 3237, 3238, 5, 378, 0, 0, 3238, 3239, 3, 664, 332, 0, 3239, 3240, 3, 486, 243, 0, 3240, 3249, 1, 0, 0, 0, 3241, 3242, 3, 92, 46, 0, 3242, 3243, 3, 492, 246, 0, 3243, 3249, 1, 0, 0, 0, 3244, 3245, 5, 69, 0, 0, 3245, 3249, 3, 588, 294, 0, 3246, 3247, 5, 155, 0, 0, 3247, 3249, 3, 584, 292, 0, 3248, 3225, 1, 0, 0, 0, 3248, 3229, 1, 0, 0, 0, 3248, 3236, 1, 0, 0, 0, 3248, 3241, 1, 0, 0, 0, 3248, 3244, 1, 0, 0, 0, 3248, 3246, 1, 0, 0, 0, 3249, 477, 1, 0, 0, 0, 3250, 3272, 3, 502, 251, 0, 3251, 3272, 3, 534, 267, 0, 3252, 3272, 3, 536, 268, 0, 3253, 3272, 3, 522, 261, 0, 3254, 3272, 3, 526, 263, 0, 3255, 3272, 3, 528, 264, 0, 3256, 3272, 3, 530, 265, 0, 3257, 3272, 3, 538, 269, 0, 3258, 3272, 3, 560, 280, 0, 3259, 3272, 3, 562, 281, 0, 3260, 3272, 3, 482, 241, 0, 3261, 3272, 3, 512, 256, 0, 3262, 3272, 3, 506, 253, 0, 3263, 3272, 3, 480, 240, 0, 3264, 3266, 3, 912, 456, 0, 3265, 3264, 1, 0, 0, 0, 3265, 3266, 1, 0, 0, 0, 3266, 3267, 1, 0, 0, 0, 3267, 3272, 3, 480, 240, 0, 3268, 3272, 3, 578, 289, 0, 3269, 3272, 3, 580, 290, 0, 3270, 3272, 3, 582, 291, 0, 3271, 3250, 1, 0, 0, 0, 3271, 3251, 1, 0, 0, 0, 3271, 3252, 1, 0, 0, 0, 3271, 3253, 1, 0, 0, 0, 3271, 3254, 1, 0, 0, 0, 3271, 3255, 1, 0, 0, 0, 3271, 3256, 1, 0, 0, 0, 3271, 3257, 1, 0, 0, 0, 3271, 3258, 1, 0, 0, 0, 3271, 3259, 1, 0, 0, 0, 3271, 3260, 1, 0, 0, 0, 3271, 3261, 1, 0, 0, 0, 3271, 3262, 1, 0, 0, 0, 3271, 3263, 1, 0, 0, 0, 3271, 3265, 1, 0, 0, 0, 3271, 3268, 1, 0, 0, 0, 3271, 3269, 1, 0, 0, 0, 3271, 3270, 1, 0, 0, 0, 3272, 479, 1, 0, 0, 0, 3273, 3289, 3, 546, 273, 0, 3274, 3289, 3, 558, 279, 0, 3275, 3289, 3, 568, 284, 0, 3276, 3289, 3, 542, 271, 0, 3277, 3289, 3, 564, 282, 0, 3278, 3289, 3, 570, 285, 0, 3279, 3289, 3, 550, 275, 0, 3280, 3289, 3, 548, 274, 0, 3281, 3289, 3, 576, 288, 0, 3282, 3289, 3, 516, 258, 0, 3283, 3289, 3, 518, 259, 0, 3284, 3289, 3, 514, 257, 0, 3285, 3289, 3, 504, 252, 0, 3286, 3289, 3, 508, 254, 0, 3287, 3289, 3, 510, 255, 0, 3288, 3273, 1, 0, 0, 0, 3288, 3274, 1, 0, 0, 0, 3288, 3275, 1, 0, 0, 0, 3288, 3276, 1, 0, 0, 0, 3288, 3277, 1, 0, 0, 0, 3288, 3278, 1, 0, 0, 0, 3288, 3279, 1, 0, 0, 0, 3288, 3280, 1, 0, 0, 0, 3288, 3281, 1, 0, 0, 0, 3288, 3282, 1, 0, 0, 0, 3288, 3283, 1, 0, 0, 0, 3288, 3284, 1, 0, 0, 0, 3288, 3285, 1, 0, 0, 0, 3288, 3286, 1, 0, 0, 0, 3288, 3287, 1, 0, 0, 0, 3289, 481, 1, 0, 0, 0, 3290, 3291, 5, 237, 0, 0, 3291, 3292, 5, 45, 0, 0, 3292, 3293, 5, 399, 0, 0, 3293, 3294, 3, 344, 172, 0, 3294, 3295, 5, 400, 0, 0, 3295, 483, 1, 0, 0, 0, 3296, 3302, 3, 540, 270, 0, 3297, 3302, 3, 502, 251, 0, 3298, 3302, 3, 522, 261, 0, 3299, 3302, 3, 536, 268, 0, 3300, 3302, 3, 414, 207, 0, 3301, 3296, 1, 0, 0, 0, 3301, 3297, 1, 0, 0, 0, 3301, 3298, 1, 0, 0, 0, 3301, 3299, 1, 0, 0, 0, 3301, 3300, 1, 0, 0, 0, 3302, 485, 1, 0, 0, 0, 3303, 3306, 3, 488, 244, 0, 3304, 3306, 3, 490, 245, 0, 3305, 3303, 1, 0, 0, 0, 3305, 3304, 1, 0, 0, 0, 3306, 487, 1, 0, 0, 0, 3307, 3310, 3, 48, 24, 0, 3308, 3310, 3, 50, 25, 0, 3309, 3307, 1, 0, 0, 0, 3309, 3308, 1, 0, 0, 0, 3310, 489, 1, 0, 0, 0, 3311, 3312, 5, 265, 0, 0, 3312, 491, 1, 0, 0, 0, 3313, 3317, 3, 494, 247, 0, 3314, 3317, 3, 496, 248, 0, 3315, 3317, 3, 498, 249, 0, 3316, 3313, 1, 0, 0, 0, 3316, 3314, 1, 0, 0, 0, 3316, 3315, 1, 0, 0, 0, 3317, 493, 1, 0, 0, 0, 3318, 3319, 3, 654, 327, 0, 3319, 3320, 5, 304, 0, 0, 3320, 3321, 5, 76, 0, 0, 3321, 3322, 3, 62, 31, 0, 3322, 495, 1, 0, 0, 0, 3323, 3324, 3, 654, 327, 0, 3324, 3325, 5, 304, 0, 0, 3325, 3326, 5, 236, 0, 0, 3326, 3327, 3, 150, 75, 0, 3327, 497, 1, 0, 0, 0, 3328, 3329, 3, 654, 327, 0, 3329, 3330, 5, 304, 0, 0, 3330, 3331, 7, 22, 0, 0, 3331, 3332, 5, 426, 0, 0, 3332, 499, 1, 0, 0, 0, 3333, 3334, 3, 654, 327, 0, 3334, 3335, 5, 304, 0, 0, 3335, 3336, 5, 196, 0, 0, 3336, 3337, 5, 426, 0, 0, 3337, 501, 1, 0, 0, 0, 3338, 3339, 5, 274, 0, 0, 3339, 3340, 5, 341, 0, 0, 3340, 3341, 3, 662, 331, 0, 3341, 503, 1, 0, 0, 0, 3342, 3345, 5, 4, 0, 0, 3343, 3345, 5, 278, 0, 0, 3344, 3342, 1, 0, 0, 0, 3344, 3343, 1, 0, 0, 0, 3345, 3346, 1, 0, 0, 0, 3346, 3347, 5, 46, 0, 0, 3347, 3348, 5, 399, 0, 0, 3348, 3349, 3, 276, 138, 0, 3349, 3351, 5, 400, 0, 0, 3350, 3352, 3, 42, 21, 0, 3351, 3350, 1, 0, 0, 0, 3351, 3352, 1, 0, 0, 0, 3352, 505, 1, 0, 0, 0, 3353, 3356, 5, 4, 0, 0, 3354, 3357, 3, 316, 158, 0, 3355, 3357, 3, 306, 153, 0, 3356, 3354, 1, 0, 0, 0, 3356, 3355, 1, 0, 0, 0, 3357, 507, 1, 0, 0, 0, 3358, 3359, 5, 365, 0, 0, 3359, 3361, 5, 46, 0, 0, 3360, 3362, 3, 42, 21, 0, 3361, 3360, 1, 0, 0, 0, 3361, 3362, 1, 0, 0, 0, 3362, 509, 1, 0, 0, 0, 3363, 3364, 3, 296, 148, 0, 3364, 3366, 5, 218, 0, 0, 3365, 3367, 5, 34, 0, 0, 3366, 3365, 1, 0, 0, 0, 3366, 3367, 1, 0, 0, 0, 3367, 3372, 1, 0, 0, 0, 3368, 3369, 3, 296, 148, 0, 3369, 3370, 5, 222, 0, 0, 3370, 3372, 1, 0, 0, 0, 3371, 3363, 1, 0, 0, 0, 3371, 3368, 1, 0, 0, 0, 3372, 511, 1, 0, 0, 0, 3373, 3374, 5, 101, 0, 0, 3374, 3375, 5, 55, 0, 0, 3375, 3376, 3, 926, 463, 0, 3376, 513, 1, 0, 0, 0, 3377, 3379, 5, 38, 0, 0, 3378, 3380, 5, 45, 0, 0, 3379, 3378, 1, 0, 0, 0, 3379, 3380, 1, 0, 0, 0, 3380, 3381, 1, 0, 0, 0, 3381, 3382, 3, 284, 142, 0, 3382, 3383, 3, 286, 143, 0, 3383, 3385, 3, 376, 188, 0, 3384, 3386, 3, 358, 179, 0, 3385, 3384, 1, 0, 0, 0, 3385, 3386, 1, 0, 0, 0, 3386, 3389, 1, 0, 0, 0, 3387, 3388, 5, 47, 0, 0, 3388, 3390, 5, 426, 0, 0, 3389, 3387, 1, 0, 0, 0, 3389, 3390, 1, 0, 0, 0, 3390, 3392, 1, 0, 0, 0, 3391, 3393, 3, 520, 260, 0, 3392, 3391, 1, 0, 0, 0, 3392, 3393, 1, 0, 0, 0, 3393, 3395, 1, 0, 0, 0, 3394, 3396, 3, 42, 21, 0, 3395, 3394, 1, 0, 0, 0, 3395, 3396, 1, 0, 0, 0, 3396, 515, 1, 0, 0, 0, 3397, 3398, 5, 365, 0, 0, 3398, 3399, 5, 319, 0, 0, 3399, 3401, 5, 134, 0, 0, 3400, 3402, 5, 45, 0, 0, 3401, 3400, 1, 0, 0, 0, 3401, 3402, 1, 0, 0, 0, 3402, 3403, 1, 0, 0, 0, 3403, 3404, 3, 284, 142, 0, 3404, 3405, 5, 304, 0, 0, 3405, 3408, 3, 254, 127, 0, 3406, 3407, 5, 47, 0, 0, 3407, 3409, 5, 426, 0, 0, 3408, 3406, 1, 0, 0, 0, 3408, 3409, 1, 0, 0, 0, 3409, 517, 1, 0, 0, 0, 3410, 3411, 5, 365, 0, 0, 3411, 3412, 5, 319, 0, 0, 3412, 3413, 5, 304, 0, 0, 3413, 3414, 3, 254, 127, 0, 3414, 519, 1, 0, 0, 0, 3415, 3419, 5, 130, 0, 0, 3416, 3417, 5, 6, 0, 0, 3417, 3419, 3, 926, 463, 0, 3418, 3415, 1, 0, 0, 0, 3418, 3416, 1, 0, 0, 0, 3419, 521, 1, 0, 0, 0, 3420, 3422, 5, 4, 0, 0, 3421, 3423, 3, 44, 22, 0, 3422, 3421, 1, 0, 0, 0, 3422, 3423, 1, 0, 0, 0, 3423, 3425, 1, 0, 0, 0, 3424, 3426, 3, 524, 262, 0, 3425, 3424, 1, 0, 0, 0, 3426, 3427, 1, 0, 0, 0, 3427, 3425, 1, 0, 0, 0, 3427, 3428, 1, 0, 0, 0, 3428, 523, 1, 0, 0, 0, 3429, 3431, 3, 912, 456, 0, 3430, 3432, 3, 532, 266, 0, 3431, 3430, 1, 0, 0, 0, 3431, 3432, 1, 0, 0, 0, 3432, 525, 1, 0, 0, 0, 3433, 3437, 5, 342, 0, 0, 3434, 3436, 3, 912, 456, 0, 3435, 3434, 1, 0, 0, 0, 3436, 3439, 1, 0, 0, 0, 3437, 3435, 1, 0, 0, 0, 3437, 3438, 1, 0, 0, 0, 3438, 527, 1, 0, 0, 0, 3439, 3437, 1, 0, 0, 0, 3440, 3444, 5, 15, 0, 0, 3441, 3443, 3, 912, 456, 0, 3442, 3441, 1, 0, 0, 0, 3443, 3446, 1, 0, 0, 0, 3444, 3442, 1, 0, 0, 0, 3444, 3445, 1, 0, 0, 0, 3445, 529, 1, 0, 0, 0, 3446, 3444, 1, 0, 0, 0, 3447, 3451, 5, 353, 0, 0, 3448, 3450, 3, 912, 456, 0, 3449, 3448, 1, 0, 0, 0, 3450, 3453, 1, 0, 0, 0, 3451, 3449, 1, 0, 0, 0, 3451, 3452, 1, 0, 0, 0, 3452, 531, 1, 0, 0, 0, 3453, 3451, 1, 0, 0, 0, 3454, 3455, 5, 189, 0, 0, 3455, 3456, 5, 426, 0, 0, 3456, 533, 1, 0, 0, 0, 3457, 3458, 5, 102, 0, 0, 3458, 3459, 5, 239, 0, 0, 3459, 535, 1, 0, 0, 0, 3460, 3462, 5, 101, 0, 0, 3461, 3463, 3, 40, 20, 0, 3462, 3461, 1, 0, 0, 0, 3462, 3463, 1, 0, 0, 0, 3463, 3464, 1, 0, 0, 0, 3464, 3465, 5, 237, 0, 0, 3465, 3471, 3, 916, 458, 0, 3466, 3467, 5, 397, 0, 0, 3467, 3468, 5, 237, 0, 0, 3468, 3470, 3, 916, 458, 0, 3469, 3466, 1, 0, 0, 0, 3470, 3473, 1, 0, 0, 0, 3471, 3469, 1, 0, 0, 0, 3471, 3472, 1, 0, 0, 0, 3472, 3475, 1, 0, 0, 0, 3473, 3471, 1, 0, 0, 0, 3474, 3476, 3, 16, 8, 0, 3475, 3474, 1, 0, 0, 0, 3475, 3476, 1, 0, 0, 0, 3476, 3478, 1, 0, 0, 0, 3477, 3479, 5, 255, 0, 0, 3478, 3477, 1, 0, 0, 0, 3478, 3479, 1, 0, 0, 0, 3479, 3481, 1, 0, 0, 0, 3480, 3482, 3, 18, 9, 0, 3481, 3480, 1, 0, 0, 0, 3481, 3482, 1, 0, 0, 0, 3482, 537, 1, 0, 0, 0, 3483, 3484, 5, 304, 0, 0, 3484, 3485, 5, 332, 0, 0, 3485, 3493, 3, 254, 127, 0, 3486, 3487, 5, 363, 0, 0, 3487, 3489, 5, 332, 0, 0, 3488, 3490, 3, 40, 20, 0, 3489, 3488, 1, 0, 0, 0, 3489, 3490, 1, 0, 0, 0, 3490, 3491, 1, 0, 0, 0, 3491, 3493, 3, 254, 127, 0, 3492, 3483, 1, 0, 0, 0, 3492, 3486, 1, 0, 0, 0, 3493, 539, 1, 0, 0, 0, 3494, 3495, 5, 304, 0, 0, 3495, 3496, 5, 332, 0, 0, 3496, 3504, 3, 254, 127, 0, 3497, 3498, 5, 363, 0, 0, 3498, 3500, 5, 332, 0, 0, 3499, 3501, 3, 40, 20, 0, 3500, 3499, 1, 0, 0, 0, 3500, 3501, 1, 0, 0, 0, 3501, 3502, 1, 0, 0, 0, 3502, 3504, 3, 254, 127, 0, 3503, 3494, 1, 0, 0, 0, 3503, 3497, 1, 0, 0, 0, 3504, 541, 1, 0, 0, 0, 3505, 3515, 5, 304, 0, 0, 3506, 3507, 5, 301, 0, 0, 3507, 3511, 5, 426, 0, 0, 3508, 3509, 5, 387, 0, 0, 3509, 3510, 5, 302, 0, 0, 3510, 3512, 3, 254, 127, 0, 3511, 3508, 1, 0, 0, 0, 3511, 3512, 1, 0, 0, 0, 3512, 3516, 1, 0, 0, 0, 3513, 3514, 5, 302, 0, 0, 3514, 3516, 3, 254, 127, 0, 3515, 3506, 1, 0, 0, 0, 3515, 3513, 1, 0, 0, 0, 3516, 3521, 1, 0, 0, 0, 3517, 3518, 5, 363, 0, 0, 3518, 3519, 5, 302, 0, 0, 3519, 3521, 3, 254, 127, 0, 3520, 3505, 1, 0, 0, 0, 3520, 3517, 1, 0, 0, 0, 3521, 543, 1, 0, 0, 0, 3522, 3524, 3, 660, 330, 0, 3523, 3525, 3, 912, 456, 0, 3524, 3523, 1, 0, 0, 0, 3524, 3525, 1, 0, 0, 0, 3525, 545, 1, 0, 0, 0, 3526, 3527, 5, 304, 0, 0, 3527, 3528, 5, 129, 0, 0, 3528, 3529, 3, 586, 293, 0, 3529, 547, 1, 0, 0, 0, 3530, 3531, 5, 216, 0, 0, 3531, 3534, 7, 23, 0, 0, 3532, 3534, 3, 234, 117, 0, 3533, 3530, 1, 0, 0, 0, 3533, 3532, 1, 0, 0, 0, 3534, 549, 1, 0, 0, 0, 3535, 3536, 5, 304, 0, 0, 3536, 3537, 5, 310, 0, 0, 3537, 3538, 5, 189, 0, 0, 3538, 3539, 3, 552, 276, 0, 3539, 551, 1, 0, 0, 0, 3540, 3541, 5, 399, 0, 0, 3541, 3542, 3, 554, 277, 0, 3542, 3543, 5, 400, 0, 0, 3543, 553, 1, 0, 0, 0, 3544, 3549, 3, 556, 278, 0, 3545, 3546, 5, 397, 0, 0, 3546, 3548, 3, 556, 278, 0, 3547, 3545, 1, 0, 0, 0, 3548, 3551, 1, 0, 0, 0, 3549, 3547, 1, 0, 0, 0, 3549, 3550, 1, 0, 0, 0, 3550, 555, 1, 0, 0, 0, 3551, 3549, 1, 0, 0, 0, 3552, 3553, 3, 328, 164, 0, 3553, 3554, 5, 405, 0, 0, 3554, 3555, 5, 426, 0, 0, 3555, 557, 1, 0, 0, 0, 3556, 3557, 5, 304, 0, 0, 3557, 3558, 5, 189, 0, 0, 3558, 3559, 5, 426, 0, 0, 3559, 559, 1, 0, 0, 0, 3560, 3567, 3, 238, 119, 0, 3561, 3564, 5, 216, 0, 0, 3562, 3565, 5, 310, 0, 0, 3563, 3565, 3, 52, 26, 0, 3564, 3562, 1, 0, 0, 0, 3564, 3563, 1, 0, 0, 0, 3565, 3567, 1, 0, 0, 0, 3566, 3560, 1, 0, 0, 0, 3566, 3561, 1, 0, 0, 0, 3567, 561, 1, 0, 0, 0, 3568, 3569, 5, 113, 0, 0, 3569, 3570, 3, 912, 456, 0, 3570, 3571, 5, 387, 0, 0, 3571, 3572, 5, 329, 0, 0, 3572, 3573, 3, 660, 330, 0, 3573, 563, 1, 0, 0, 0, 3574, 3575, 5, 274, 0, 0, 3575, 3576, 5, 341, 0, 0, 3576, 3577, 3, 912, 456, 0, 3577, 565, 1, 0, 0, 0, 3578, 3579, 5, 365, 0, 0, 3579, 3580, 5, 319, 0, 0, 3580, 3582, 5, 134, 0, 0, 3581, 3583, 5, 45, 0, 0, 3582, 3581, 1, 0, 0, 0, 3582, 3583, 1, 0, 0, 0, 3583, 3584, 1, 0, 0, 0, 3584, 3585, 3, 284, 142, 0, 3585, 3586, 5, 304, 0, 0, 3586, 3589, 3, 254, 127, 0, 3587, 3588, 5, 47, 0, 0, 3588, 3590, 5, 426, 0, 0, 3589, 3587, 1, 0, 0, 0, 3589, 3590, 1, 0, 0, 0, 3590, 567, 1, 0, 0, 0, 3591, 3592, 5, 53, 0, 0, 3592, 569, 1, 0, 0, 0, 3593, 3594, 5, 166, 0, 0, 3594, 3595, 5, 431, 0, 0, 3595, 3596, 5, 31, 0, 0, 3596, 571, 1, 0, 0, 0, 3597, 3598, 5, 11, 0, 0, 3598, 3599, 5, 380, 0, 0, 3599, 573, 1, 0, 0, 0, 3600, 3601, 5, 246, 0, 0, 3601, 3602, 5, 426, 0, 0, 3602, 575, 1, 0, 0, 0, 3603, 3604, 5, 49, 0, 0, 3604, 3606, 5, 426, 0, 0, 3605, 3607, 3, 572, 286, 0, 3606, 3605, 1, 0, 0, 0, 3606, 3607, 1, 0, 0, 0, 3607, 3609, 1, 0, 0, 0, 3608, 3610, 3, 236, 118, 0, 3609, 3608, 1, 0, 0, 0, 3609, 3610, 1, 0, 0, 0, 3610, 3612, 1, 0, 0, 0, 3611, 3613, 3, 764, 382, 0, 3612, 3611, 1, 0, 0, 0, 3612, 3613, 1, 0, 0, 0, 3613, 3615, 1, 0, 0, 0, 3614, 3616, 3, 574, 287, 0, 3615, 3614, 1, 0, 0, 0, 3615, 3616, 1, 0, 0, 0, 3616, 3621, 1, 0, 0, 0, 3617, 3618, 5, 387, 0, 0, 3618, 3619, 5, 235, 0, 0, 3619, 3620, 5, 332, 0, 0, 3620, 3622, 3, 254, 127, 0, 3621, 3617, 1, 0, 0, 0, 3621, 3622, 1, 0, 0, 0, 3622, 577, 1, 0, 0, 0, 3623, 3624, 5, 304, 0, 0, 3624, 3625, 5, 236, 0, 0, 3625, 3626, 3, 148, 74, 0, 3626, 579, 1, 0, 0, 0, 3627, 3628, 5, 304, 0, 0, 3628, 3629, 5, 237, 0, 0, 3629, 3630, 5, 316, 0, 0, 3630, 3631, 5, 399, 0, 0, 3631, 3632, 3, 228, 114, 0, 3632, 3633, 5, 400, 0, 0, 3633, 581, 1, 0, 0, 0, 3634, 3644, 5, 115, 0, 0, 3635, 3636, 5, 289, 0, 0, 3636, 3637, 5, 399, 0, 0, 3637, 3645, 7, 24, 0, 0, 3638, 3639, 5, 118, 0, 0, 3639, 3640, 5, 399, 0, 0, 3640, 3645, 5, 426, 0, 0, 3641, 3642, 5, 306, 0, 0, 3642, 3643, 5, 399, 0, 0, 3643, 3645, 5, 431, 0, 0, 3644, 3635, 1, 0, 0, 0, 3644, 3638, 1, 0, 0, 0, 3644, 3641, 1, 0, 0, 0, 3645, 3646, 1, 0, 0, 0, 3646, 3647, 5, 400, 0, 0, 3647, 583, 1, 0, 0, 0, 3648, 3649, 3, 926, 463, 0, 3649, 3650, 5, 224, 0, 0, 3650, 3652, 3, 660, 330, 0, 3651, 3653, 3, 912, 456, 0, 3652, 3651, 1, 0, 0, 0, 3652, 3653, 1, 0, 0, 0, 3653, 3654, 1, 0, 0, 0, 3654, 3655, 5, 265, 0, 0, 3655, 585, 1, 0, 0, 0, 3656, 3657, 5, 160, 0, 0, 3657, 3658, 5, 426, 0, 0, 3658, 3659, 5, 233, 0, 0, 3659, 3660, 5, 426, 0, 0, 3660, 3661, 5, 301, 0, 0, 3661, 3666, 5, 426, 0, 0, 3662, 3663, 5, 159, 0, 0, 3663, 3664, 5, 426, 0, 0, 3664, 3665, 5, 232, 0, 0, 3665, 3667, 5, 426, 0, 0, 3666, 3662, 1, 0, 0, 0, 3666, 3667, 1, 0, 0, 0, 3667, 3670, 1, 0, 0, 0, 3668, 3670, 3, 926, 463, 0, 3669, 3656, 1, 0, 0, 0, 3669, 3668, 1, 0, 0, 0, 3670, 587, 1, 0, 0, 0, 3671, 3675, 3, 590, 295, 0, 3672, 3675, 3, 592, 296, 0, 3673, 3675, 3, 594, 297, 0, 3674, 3671, 1, 0, 0, 0, 3674, 3672, 1, 0, 0, 0, 3674, 3673, 1, 0, 0, 0, 3675, 589, 1, 0, 0, 0, 3676, 3677, 3, 654, 327, 0, 3677, 3678, 5, 304, 0, 0, 3678, 3679, 5, 77, 0, 0, 3679, 3680, 3, 608, 304, 0, 3680, 591, 1, 0, 0, 0, 3681, 3682, 3, 654, 327, 0, 3682, 3683, 5, 304, 0, 0, 3683, 3684, 5, 236, 0, 0, 3684, 3685, 3, 150, 75, 0, 3685, 593, 1, 0, 0, 0, 3686, 3687, 3, 654, 327, 0, 3687, 3688, 5, 304, 0, 0, 3688, 3689, 5, 367, 0, 0, 3689, 3690, 5, 426, 0, 0, 3690, 595, 1, 0, 0, 0, 3691, 3692, 5, 184, 0, 0, 3692, 3701, 5, 128, 0, 0, 3693, 3694, 5, 184, 0, 0, 3694, 3695, 5, 128, 0, 0, 3695, 3696, 3, 926, 463, 0, 3696, 3697, 5, 426, 0, 0, 3697, 3701, 1, 0, 0, 0, 3698, 3699, 5, 184, 0, 0, 3699, 3701, 3, 660, 330, 0, 3700, 3691, 1, 0, 0, 0, 3700, 3693, 1, 0, 0, 0, 3700, 3698, 1, 0, 0, 0, 3701, 597, 1, 0, 0, 0, 3702, 3704, 5, 58, 0, 0, 3703, 3705, 5, 333, 0, 0, 3704, 3703, 1, 0, 0, 0, 3704, 3705, 1, 0, 0, 0, 3705, 3707, 1, 0, 0, 0, 3706, 3708, 5, 345, 0, 0, 3707, 3706, 1, 0, 0, 0, 3707, 3708, 1, 0, 0, 0, 3708, 3710, 1, 0, 0, 0, 3709, 3711, 5, 123, 0, 0, 3710, 3709, 1, 0, 0, 0, 3710, 3711, 1, 0, 0, 0, 3711, 3712, 1, 0, 0, 0, 3712, 3714, 5, 329, 0, 0, 3713, 3715, 3, 44, 22, 0, 3714, 3713, 1, 0, 0, 0, 3714, 3715, 1, 0, 0, 0, 3715, 3716, 1, 0, 0, 0, 3716, 3773, 3, 662, 331, 0, 3717, 3719, 3, 596, 298, 0, 3718, 3720, 3, 222, 111, 0, 3719, 3718, 1, 0, 0, 0, 3719, 3720, 1, 0, 0, 0, 3720, 3722, 1, 0, 0, 0, 3721, 3723, 3, 250, 125, 0, 3722, 3721, 1, 0, 0, 0, 3722, 3723, 1, 0, 0, 0, 3723, 3725, 1, 0, 0, 0, 3724, 3726, 3, 272, 136, 0, 3725, 3724, 1, 0, 0, 0, 3725, 3726, 1, 0, 0, 0, 3726, 3728, 1, 0, 0, 0, 3727, 3729, 3, 274, 137, 0, 3728, 3727, 1, 0, 0, 0, 3728, 3729, 1, 0, 0, 0, 3729, 3731, 1, 0, 0, 0, 3730, 3732, 3, 252, 126, 0, 3731, 3730, 1, 0, 0, 0, 3731, 3732, 1, 0, 0, 0, 3732, 3734, 1, 0, 0, 0, 3733, 3735, 3, 220, 110, 0, 3734, 3733, 1, 0, 0, 0, 3734, 3735, 1, 0, 0, 0, 3735, 3774, 1, 0, 0, 0, 3736, 3737, 5, 399, 0, 0, 3737, 3738, 3, 278, 139, 0, 3738, 3739, 5, 400, 0, 0, 3739, 3741, 1, 0, 0, 0, 3740, 3736, 1, 0, 0, 0, 3740, 3741, 1, 0, 0, 0, 3741, 3743, 1, 0, 0, 0, 3742, 3744, 3, 218, 109, 0, 3743, 3742, 1, 0, 0, 0, 3743, 3744, 1, 0, 0, 0, 3744, 3746, 1, 0, 0, 0, 3745, 3747, 3, 222, 111, 0, 3746, 3745, 1, 0, 0, 0, 3746, 3747, 1, 0, 0, 0, 3747, 3749, 1, 0, 0, 0, 3748, 3750, 3, 234, 117, 0, 3749, 3748, 1, 0, 0, 0, 3749, 3750, 1, 0, 0, 0, 3750, 3752, 1, 0, 0, 0, 3751, 3753, 3, 238, 119, 0, 3752, 3751, 1, 0, 0, 0, 3752, 3753, 1, 0, 0, 0, 3753, 3755, 1, 0, 0, 0, 3754, 3756, 3, 250, 125, 0, 3755, 3754, 1, 0, 0, 0, 3755, 3756, 1, 0, 0, 0, 3756, 3758, 1, 0, 0, 0, 3757, 3759, 3, 272, 136, 0, 3758, 3757, 1, 0, 0, 0, 3758, 3759, 1, 0, 0, 0, 3759, 3761, 1, 0, 0, 0, 3760, 3762, 3, 274, 137, 0, 3761, 3760, 1, 0, 0, 0, 3761, 3762, 1, 0, 0, 0, 3762, 3764, 1, 0, 0, 0, 3763, 3765, 3, 252, 126, 0, 3764, 3763, 1, 0, 0, 0, 3764, 3765, 1, 0, 0, 0, 3765, 3767, 1, 0, 0, 0, 3766, 3768, 3, 220, 110, 0, 3767, 3766, 1, 0, 0, 0, 3767, 3768, 1, 0, 0, 0, 3768, 3771, 1, 0, 0, 0, 3769, 3770, 5, 17, 0, 0, 3770, 3772, 3, 414, 207, 0, 3771, 3769, 1, 0, 0, 0, 3771, 3772, 1, 0, 0, 0, 3772, 3774, 1, 0, 0, 0, 3773, 3717, 1, 0, 0, 0, 3773, 3740, 1, 0, 0, 0, 3774, 3838, 1, 0, 0, 0, 3775, 3776, 5, 58, 0, 0, 3776, 3777, 5, 195, 0, 0, 3777, 3779, 5, 329, 0, 0, 3778, 3780, 3, 44, 22, 0, 3779, 3778, 1, 0, 0, 0, 3779, 3780, 1, 0, 0, 0, 3780, 3781, 1, 0, 0, 0, 3781, 3835, 3, 662, 331, 0, 3782, 3784, 3, 596, 298, 0, 3783, 3785, 3, 250, 125, 0, 3784, 3783, 1, 0, 0, 0, 3784, 3785, 1, 0, 0, 0, 3785, 3787, 1, 0, 0, 0, 3786, 3788, 3, 272, 136, 0, 3787, 3786, 1, 0, 0, 0, 3787, 3788, 1, 0, 0, 0, 3788, 3790, 1, 0, 0, 0, 3789, 3791, 3, 274, 137, 0, 3790, 3789, 1, 0, 0, 0, 3790, 3791, 1, 0, 0, 0, 3791, 3793, 1, 0, 0, 0, 3792, 3794, 3, 252, 126, 0, 3793, 3792, 1, 0, 0, 0, 3793, 3794, 1, 0, 0, 0, 3794, 3796, 1, 0, 0, 0, 3795, 3797, 3, 220, 110, 0, 3796, 3795, 1, 0, 0, 0, 3796, 3797, 1, 0, 0, 0, 3797, 3836, 1, 0, 0, 0, 3798, 3799, 5, 399, 0, 0, 3799, 3800, 3, 278, 139, 0, 3800, 3801, 5, 400, 0, 0, 3801, 3803, 1, 0, 0, 0, 3802, 3798, 1, 0, 0, 0, 3802, 3803, 1, 0, 0, 0, 3803, 3805, 1, 0, 0, 0, 3804, 3806, 3, 218, 109, 0, 3805, 3804, 1, 0, 0, 0, 3805, 3806, 1, 0, 0, 0, 3806, 3808, 1, 0, 0, 0, 3807, 3809, 3, 222, 111, 0, 3808, 3807, 1, 0, 0, 0, 3808, 3809, 1, 0, 0, 0, 3809, 3811, 1, 0, 0, 0, 3810, 3812, 3, 234, 117, 0, 3811, 3810, 1, 0, 0, 0, 3811, 3812, 1, 0, 0, 0, 3812, 3814, 1, 0, 0, 0, 3813, 3815, 3, 238, 119, 0, 3814, 3813, 1, 0, 0, 0, 3814, 3815, 1, 0, 0, 0, 3815, 3817, 1, 0, 0, 0, 3816, 3818, 3, 250, 125, 0, 3817, 3816, 1, 0, 0, 0, 3817, 3818, 1, 0, 0, 0, 3818, 3820, 1, 0, 0, 0, 3819, 3821, 3, 272, 136, 0, 3820, 3819, 1, 0, 0, 0, 3820, 3821, 1, 0, 0, 0, 3821, 3823, 1, 0, 0, 0, 3822, 3824, 3, 274, 137, 0, 3823, 3822, 1, 0, 0, 0, 3823, 3824, 1, 0, 0, 0, 3824, 3826, 1, 0, 0, 0, 3825, 3827, 3, 252, 126, 0, 3826, 3825, 1, 0, 0, 0, 3826, 3827, 1, 0, 0, 0, 3827, 3829, 1, 0, 0, 0, 3828, 3830, 3, 220, 110, 0, 3829, 3828, 1, 0, 0, 0, 3829, 3830, 1, 0, 0, 0, 3830, 3833, 1, 0, 0, 0, 3831, 3832, 5, 17, 0, 0, 3832, 3834, 3, 414, 207, 0, 3833, 3831, 1, 0, 0, 0, 3833, 3834, 1, 0, 0, 0, 3834, 3836, 1, 0, 0, 0, 3835, 3782, 1, 0, 0, 0, 3835, 3802, 1, 0, 0, 0, 3836, 3838, 1, 0, 0, 0, 3837, 3702, 1, 0, 0, 0, 3837, 3775, 1, 0, 0, 0, 3838, 599, 1, 0, 0, 0, 3839, 3840, 5, 58, 0, 0, 3840, 3842, 5, 69, 0, 0, 3841, 3843, 3, 44, 22, 0, 3842, 3841, 1, 0, 0, 0, 3842, 3843, 1, 0, 0, 0, 3843, 3844, 1, 0, 0, 0, 3844, 3846, 3, 926, 463, 0, 3845, 3847, 3, 606, 303, 0, 3846, 3845, 1, 0, 0, 0, 3846, 3847, 1, 0, 0, 0, 3847, 3849, 1, 0, 0, 0, 3848, 3850, 3, 604, 302, 0, 3849, 3848, 1, 0, 0, 0, 3849, 3850, 1, 0, 0, 0, 3850, 3852, 1, 0, 0, 0, 3851, 3853, 3, 602, 301, 0, 3852, 3851, 1, 0, 0, 0, 3852, 3853, 1, 0, 0, 0, 3853, 3857, 1, 0, 0, 0, 3854, 3855, 5, 387, 0, 0, 3855, 3856, 5, 77, 0, 0, 3856, 3858, 3, 608, 304, 0, 3857, 3854, 1, 0, 0, 0, 3857, 3858, 1, 0, 0, 0, 3858, 601, 1, 0, 0, 0, 3859, 3860, 5, 47, 0, 0, 3860, 3861, 5, 426, 0, 0, 3861, 603, 1, 0, 0, 0, 3862, 3863, 5, 367, 0, 0, 3863, 3864, 5, 426, 0, 0, 3864, 605, 1, 0, 0, 0, 3865, 3866, 5, 352, 0, 0, 3866, 3867, 5, 426, 0, 0, 3867, 607, 1, 0, 0, 0, 3868, 3869, 5, 399, 0, 0, 3869, 3870, 3, 64, 32, 0, 3870, 3871, 5, 400, 0, 0, 3871, 609, 1, 0, 0, 0, 3872, 3873, 5, 101, 0, 0, 3873, 3875, 5, 69, 0, 0, 3874, 3876, 3, 40, 20, 0, 3875, 3874, 1, 0, 0, 0, 3875, 3876, 1, 0, 0, 0, 3876, 3877, 1, 0, 0, 0, 3877, 3878, 3, 926, 463, 0, 3878, 611, 1, 0, 0, 0, 3879, 3880, 3, 926, 463, 0, 3880, 3881, 5, 395, 0, 0, 3881, 3883, 1, 0, 0, 0, 3882, 3879, 1, 0, 0, 0, 3883, 3886, 1, 0, 0, 0, 3884, 3882, 1, 0, 0, 0, 3884, 3885, 1, 0, 0, 0, 3885, 3887, 1, 0, 0, 0, 3886, 3884, 1, 0, 0, 0, 3887, 3888, 5, 415, 0, 0, 3888, 613, 1, 0, 0, 0, 3889, 3890, 5, 83, 0, 0, 3890, 615, 1, 0, 0, 0, 3891, 3896, 3, 828, 414, 0, 3892, 3893, 5, 397, 0, 0, 3893, 3895, 3, 828, 414, 0, 3894, 3892, 1, 0, 0, 0, 3895, 3898, 1, 0, 0, 0, 3896, 3894, 1, 0, 0, 0, 3896, 3897, 1, 0, 0, 0, 3897, 617, 1, 0, 0, 0, 3898, 3896, 1, 0, 0, 0, 3899, 3904, 3, 926, 463, 0, 3900, 3901, 5, 397, 0, 0, 3901, 3903, 3, 926, 463, 0, 3902, 3900, 1, 0, 0, 0, 3903, 3906, 1, 0, 0, 0, 3904, 3902, 1, 0, 0, 0, 3904, 3905, 1, 0, 0, 0, 3905, 619, 1, 0, 0, 0, 3906, 3904, 1, 0, 0, 0, 3907, 3908, 5, 139, 0, 0, 3908, 3909, 3, 622, 311, 0, 3909, 621, 1, 0, 0, 0, 3910, 3911, 3, 634, 317, 0, 3911, 3914, 3, 630, 315, 0, 3912, 3913, 5, 397, 0, 0, 3913, 3915, 3, 630, 315, 0, 3914, 3912, 1, 0, 0, 0, 3915, 3916, 1, 0, 0, 0, 3916, 3914, 1, 0, 0, 0, 3916, 3917, 1, 0, 0, 0, 3917, 3920, 1, 0, 0, 0, 3918, 3920, 3, 626, 313, 0, 3919, 3910, 1, 0, 0, 0, 3919, 3918, 1, 0, 0, 0, 3920, 623, 1, 0, 0, 0, 3921, 3925, 3, 648, 324, 0, 3922, 3924, 3, 638, 319, 0, 3923, 3922, 1, 0, 0, 0, 3924, 3927, 1, 0, 0, 0, 3925, 3923, 1, 0, 0, 0, 3925, 3926, 1, 0, 0, 0, 3926, 3954, 1, 0, 0, 0, 3927, 3925, 1, 0, 0, 0, 3928, 3932, 3, 690, 345, 0, 3929, 3931, 3, 638, 319, 0, 3930, 3929, 1, 0, 0, 0, 3931, 3934, 1, 0, 0, 0, 3932, 3930, 1, 0, 0, 0, 3932, 3933, 1, 0, 0, 0, 3933, 3954, 1, 0, 0, 0, 3934, 3932, 1, 0, 0, 0, 3935, 3939, 3, 668, 334, 0, 3936, 3938, 3, 638, 319, 0, 3937, 3936, 1, 0, 0, 0, 3938, 3941, 1, 0, 0, 0, 3939, 3937, 1, 0, 0, 0, 3939, 3940, 1, 0, 0, 0, 3940, 3954, 1, 0, 0, 0, 3941, 3939, 1, 0, 0, 0, 3942, 3946, 3, 674, 337, 0, 3943, 3945, 3, 638, 319, 0, 3944, 3943, 1, 0, 0, 0, 3945, 3948, 1, 0, 0, 0, 3946, 3944, 1, 0, 0, 0, 3946, 3947, 1, 0, 0, 0, 3947, 3954, 1, 0, 0, 0, 3948, 3946, 1, 0, 0, 0, 3949, 3950, 5, 399, 0, 0, 3950, 3951, 3, 626, 313, 0, 3951, 3952, 5, 400, 0, 0, 3952, 3954, 1, 0, 0, 0, 3953, 3921, 1, 0, 0, 0, 3953, 3928, 1, 0, 0, 0, 3953, 3935, 1, 0, 0, 0, 3953, 3942, 1, 0, 0, 0, 3953, 3949, 1, 0, 0, 0, 3954, 625, 1, 0, 0, 0, 3955, 3966, 3, 624, 312, 0, 3956, 3957, 3, 636, 318, 0, 3957, 3962, 3, 628, 314, 0, 3958, 3959, 5, 224, 0, 0, 3959, 3963, 3, 828, 414, 0, 3960, 3961, 5, 370, 0, 0, 3961, 3963, 3, 292, 146, 0, 3962, 3958, 1, 0, 0, 0, 3962, 3960, 1, 0, 0, 0, 3962, 3963, 1, 0, 0, 0, 3963, 3965, 1, 0, 0, 0, 3964, 3956, 1, 0, 0, 0, 3965, 3968, 1, 0, 0, 0, 3966, 3964, 1, 0, 0, 0, 3966, 3967, 1, 0, 0, 0, 3967, 627, 1, 0, 0, 0, 3968, 3966, 1, 0, 0, 0, 3969, 3974, 3, 648, 324, 0, 3970, 3974, 3, 690, 345, 0, 3971, 3974, 3, 668, 334, 0, 3972, 3974, 3, 674, 337, 0, 3973, 3969, 1, 0, 0, 0, 3973, 3970, 1, 0, 0, 0, 3973, 3971, 1, 0, 0, 0, 3973, 3972, 1, 0, 0, 0, 3974, 3978, 1, 0, 0, 0, 3975, 3977, 3, 638, 319, 0, 3976, 3975, 1, 0, 0, 0, 3977, 3980, 1, 0, 0, 0, 3978, 3976, 1, 0, 0, 0, 3978, 3979, 1, 0, 0, 0, 3979, 629, 1, 0, 0, 0, 3980, 3978, 1, 0, 0, 0, 3981, 3983, 5, 250, 0, 0, 3982, 3981, 1, 0, 0, 0, 3982, 3983, 1, 0, 0, 0, 3983, 3984, 1, 0, 0, 0, 3984, 3985, 3, 652, 326, 0, 3985, 3986, 3, 632, 316, 0, 3986, 631, 1, 0, 0, 0, 3987, 3988, 5, 399, 0, 0, 3988, 3989, 3, 616, 308, 0, 3989, 3990, 5, 400, 0, 0, 3990, 633, 1, 0, 0, 0, 3991, 3992, 5, 359, 0, 0, 3992, 635, 1, 0, 0, 0, 3993, 4008, 5, 397, 0, 0, 3994, 4005, 5, 157, 0, 0, 3995, 4005, 5, 60, 0, 0, 3996, 3998, 7, 25, 0, 0, 3997, 3999, 5, 231, 0, 0, 3998, 3997, 1, 0, 0, 0, 3998, 3999, 1, 0, 0, 0, 3999, 4005, 1, 0, 0, 0, 4000, 4002, 5, 180, 0, 0, 4001, 4003, 7, 26, 0, 0, 4002, 4001, 1, 0, 0, 0, 4002, 4003, 1, 0, 0, 0, 4003, 4005, 1, 0, 0, 0, 4004, 3994, 1, 0, 0, 0, 4004, 3995, 1, 0, 0, 0, 4004, 3996, 1, 0, 0, 0, 4004, 4000, 1, 0, 0, 0, 4004, 4005, 1, 0, 0, 0, 4005, 4006, 1, 0, 0, 0, 4006, 4008, 5, 171, 0, 0, 4007, 3993, 1, 0, 0, 0, 4007, 4004, 1, 0, 0, 0, 4008, 637, 1, 0, 0, 0, 4009, 4010, 5, 178, 0, 0, 4010, 4011, 5, 378, 0, 0, 4011, 4012, 5, 231, 0, 0, 4012, 4013, 3, 776, 388, 0, 4013, 4023, 3, 640, 320, 0, 4014, 4015, 5, 17, 0, 0, 4015, 4020, 3, 926, 463, 0, 4016, 4017, 5, 397, 0, 0, 4017, 4019, 3, 926, 463, 0, 4018, 4016, 1, 0, 0, 0, 4019, 4022, 1, 0, 0, 0, 4020, 4018, 1, 0, 0, 0, 4020, 4021, 1, 0, 0, 0, 4021, 4024, 1, 0, 0, 0, 4022, 4020, 1, 0, 0, 0, 4023, 4014, 1, 0, 0, 0, 4023, 4024, 1, 0, 0, 0, 4024, 4067, 1, 0, 0, 0, 4025, 4027, 5, 397, 0, 0, 4026, 4025, 1, 0, 0, 0, 4026, 4027, 1, 0, 0, 0, 4027, 4028, 1, 0, 0, 0, 4028, 4064, 5, 178, 0, 0, 4029, 4030, 5, 378, 0, 0, 4030, 4031, 3, 776, 388, 0, 4031, 4041, 3, 640, 320, 0, 4032, 4033, 5, 17, 0, 0, 4033, 4038, 3, 926, 463, 0, 4034, 4035, 5, 397, 0, 0, 4035, 4037, 3, 926, 463, 0, 4036, 4034, 1, 0, 0, 0, 4037, 4040, 1, 0, 0, 0, 4038, 4036, 1, 0, 0, 0, 4038, 4039, 1, 0, 0, 0, 4039, 4042, 1, 0, 0, 0, 4040, 4038, 1, 0, 0, 0, 4041, 4032, 1, 0, 0, 0, 4041, 4042, 1, 0, 0, 0, 4042, 4065, 1, 0, 0, 0, 4043, 4044, 5, 329, 0, 0, 4044, 4045, 5, 399, 0, 0, 4045, 4046, 3, 682, 341, 0, 4046, 4048, 5, 400, 0, 0, 4047, 4049, 5, 17, 0, 0, 4048, 4047, 1, 0, 0, 0, 4048, 4049, 1, 0, 0, 0, 4049, 4050, 1, 0, 0, 0, 4050, 4062, 3, 640, 320, 0, 4051, 4052, 5, 399, 0, 0, 4052, 4057, 3, 926, 463, 0, 4053, 4054, 5, 397, 0, 0, 4054, 4056, 3, 926, 463, 0, 4055, 4053, 1, 0, 0, 0, 4056, 4059, 1, 0, 0, 0, 4057, 4055, 1, 0, 0, 0, 4057, 4058, 1, 0, 0, 0, 4058, 4060, 1, 0, 0, 0, 4059, 4057, 1, 0, 0, 0, 4060, 4061, 5, 400, 0, 0, 4061, 4063, 1, 0, 0, 0, 4062, 4051, 1, 0, 0, 0, 4062, 4063, 1, 0, 0, 0, 4063, 4065, 1, 0, 0, 0, 4064, 4029, 1, 0, 0, 0, 4064, 4043, 1, 0, 0, 0, 4065, 4067, 1, 0, 0, 0, 4066, 4009, 1, 0, 0, 0, 4066, 4026, 1, 0, 0, 0, 4067, 639, 1, 0, 0, 0, 4068, 4069, 3, 926, 463, 0, 4069, 641, 1, 0, 0, 0, 4070, 4071, 5, 331, 0, 0, 4071, 4072, 5, 399, 0, 0, 4072, 4073, 5, 30, 0, 0, 4073, 4074, 5, 431, 0, 0, 4074, 4075, 5, 230, 0, 0, 4075, 4076, 5, 221, 0, 0, 4076, 4086, 5, 431, 0, 0, 4077, 4078, 5, 224, 0, 0, 4078, 4083, 3, 828, 414, 0, 4079, 4080, 5, 397, 0, 0, 4080, 4082, 3, 828, 414, 0, 4081, 4079, 1, 0, 0, 0, 4082, 4085, 1, 0, 0, 0, 4083, 4081, 1, 0, 0, 0, 4083, 4084, 1, 0, 0, 0, 4084, 4087, 1, 0, 0, 0, 4085, 4083, 1, 0, 0, 0, 4086, 4077, 1, 0, 0, 0, 4086, 4087, 1, 0, 0, 0, 4087, 4088, 1, 0, 0, 0, 4088, 4089, 5, 400, 0, 0, 4089, 643, 1, 0, 0, 0, 4090, 4091, 5, 331, 0, 0, 4091, 4095, 5, 399, 0, 0, 4092, 4093, 5, 431, 0, 0, 4093, 4096, 7, 27, 0, 0, 4094, 4096, 5, 430, 0, 0, 4095, 4092, 1, 0, 0, 0, 4095, 4094, 1, 0, 0, 0, 4096, 4097, 1, 0, 0, 0, 4097, 4098, 5, 400, 0, 0, 4098, 645, 1, 0, 0, 0, 4099, 4102, 3, 642, 321, 0, 4100, 4102, 3, 644, 322, 0, 4101, 4099, 1, 0, 0, 0, 4101, 4100, 1, 0, 0, 0, 4102, 647, 1, 0, 0, 0, 4103, 4105, 3, 658, 329, 0, 4104, 4106, 3, 254, 127, 0, 4105, 4104, 1, 0, 0, 0, 4105, 4106, 1, 0, 0, 0, 4106, 4108, 1, 0, 0, 0, 4107, 4109, 3, 646, 323, 0, 4108, 4107, 1, 0, 0, 0, 4108, 4109, 1, 0, 0, 0, 4109, 4111, 1, 0, 0, 0, 4110, 4112, 3, 650, 325, 0, 4111, 4110, 1, 0, 0, 0, 4111, 4112, 1, 0, 0, 0, 4112, 4117, 1, 0, 0, 0, 4113, 4115, 5, 17, 0, 0, 4114, 4113, 1, 0, 0, 0, 4114, 4115, 1, 0, 0, 0, 4115, 4116, 1, 0, 0, 0, 4116, 4118, 3, 926, 463, 0, 4117, 4114, 1, 0, 0, 0, 4117, 4118, 1, 0, 0, 0, 4118, 649, 1, 0, 0, 0, 4119, 4129, 5, 134, 0, 0, 4120, 4121, 5, 327, 0, 0, 4121, 4122, 5, 17, 0, 0, 4122, 4123, 5, 221, 0, 0, 4123, 4130, 3, 828, 414, 0, 4124, 4125, 5, 134, 0, 0, 4125, 4126, 5, 328, 0, 0, 4126, 4127, 5, 17, 0, 0, 4127, 4128, 5, 221, 0, 0, 4128, 4130, 5, 431, 0, 0, 4129, 4120, 1, 0, 0, 0, 4129, 4124, 1, 0, 0, 0, 4130, 651, 1, 0, 0, 0, 4131, 4133, 3, 658, 329, 0, 4132, 4134, 3, 646, 323, 0, 4133, 4132, 1, 0, 0, 0, 4133, 4134, 1, 0, 0, 0, 4134, 4139, 1, 0, 0, 0, 4135, 4137, 5, 17, 0, 0, 4136, 4135, 1, 0, 0, 0, 4136, 4137, 1, 0, 0, 0, 4137, 4138, 1, 0, 0, 0, 4138, 4140, 3, 926, 463, 0, 4139, 4136, 1, 0, 0, 0, 4139, 4140, 1, 0, 0, 0, 4140, 653, 1, 0, 0, 0, 4141, 4142, 3, 926, 463, 0, 4142, 655, 1, 0, 0, 0, 4143, 4144, 3, 926, 463, 0, 4144, 657, 1, 0, 0, 0, 4145, 4148, 3, 660, 330, 0, 4146, 4148, 3, 664, 332, 0, 4147, 4145, 1, 0, 0, 0, 4147, 4146, 1, 0, 0, 0, 4148, 659, 1, 0, 0, 0, 4149, 4150, 3, 926, 463, 0, 4150, 4151, 5, 395, 0, 0, 4151, 4154, 3, 926, 463, 0, 4152, 4153, 5, 395, 0, 0, 4153, 4155, 3, 926, 463, 0, 4154, 4152, 1, 0, 0, 0, 4154, 4155, 1, 0, 0, 0, 4155, 4158, 1, 0, 0, 0, 4156, 4158, 3, 926, 463, 0, 4157, 4149, 1, 0, 0, 0, 4157, 4156, 1, 0, 0, 0, 4158, 661, 1, 0, 0, 0, 4159, 4160, 3, 926, 463, 0, 4160, 4161, 5, 395, 0, 0, 4161, 4164, 3, 926, 463, 0, 4162, 4163, 5, 395, 0, 0, 4163, 4165, 3, 926, 463, 0, 4164, 4162, 1, 0, 0, 0, 4164, 4165, 1, 0, 0, 0, 4165, 4168, 1, 0, 0, 0, 4166, 4168, 3, 926, 463, 0, 4167, 4159, 1, 0, 0, 0, 4167, 4166, 1, 0, 0, 0, 4168, 663, 1, 0, 0, 0, 4169, 4170, 3, 926, 463, 0, 4170, 4171, 5, 395, 0, 0, 4171, 4173, 1, 0, 0, 0, 4172, 4169, 1, 0, 0, 0, 4172, 4173, 1, 0, 0, 0, 4173, 4174, 1, 0, 0, 0, 4174, 4175, 3, 926, 463, 0, 4175, 665, 1, 0, 0, 0, 4176, 4177, 3, 926, 463, 0, 4177, 4178, 5, 395, 0, 0, 4178, 4180, 1, 0, 0, 0, 4179, 4176, 1, 0, 0, 0, 4179, 4180, 1, 0, 0, 0, 4180, 4181, 1, 0, 0, 0, 4181, 4182, 3, 926, 463, 0, 4182, 667, 1, 0, 0, 0, 4183, 4184, 5, 399, 0, 0, 4184, 4185, 3, 394, 197, 0, 4185, 4187, 5, 400, 0, 0, 4186, 4188, 5, 17, 0, 0, 4187, 4186, 1, 0, 0, 0, 4187, 4188, 1, 0, 0, 0, 4188, 4189, 1, 0, 0, 0, 4189, 4190, 3, 926, 463, 0, 4190, 669, 1, 0, 0, 0, 4191, 4193, 3, 768, 384, 0, 4192, 4194, 3, 764, 382, 0, 4193, 4192, 1, 0, 0, 0, 4193, 4194, 1, 0, 0, 0, 4194, 4203, 1, 0, 0, 0, 4195, 4203, 3, 764, 382, 0, 4196, 4198, 3, 770, 385, 0, 4197, 4199, 3, 772, 386, 0, 4198, 4197, 1, 0, 0, 0, 4198, 4199, 1, 0, 0, 0, 4199, 4203, 1, 0, 0, 0, 4200, 4203, 3, 772, 386, 0, 4201, 4203, 3, 766, 383, 0, 4202, 4191, 1, 0, 0, 0, 4202, 4195, 1, 0, 0, 0, 4202, 4196, 1, 0, 0, 0, 4202, 4200, 1, 0, 0, 0, 4202, 4201, 1, 0, 0, 0, 4203, 671, 1, 0, 0, 0, 4204, 4208, 3, 668, 334, 0, 4205, 4208, 3, 648, 324, 0, 4206, 4208, 3, 674, 337, 0, 4207, 4204, 1, 0, 0, 0, 4207, 4205, 1, 0, 0, 0, 4207, 4206, 1, 0, 0, 0, 4208, 673, 1, 0, 0, 0, 4209, 4210, 3, 926, 463, 0, 4210, 4211, 5, 399, 0, 0, 4211, 4212, 5, 224, 0, 0, 4212, 4214, 3, 672, 336, 0, 4213, 4215, 3, 670, 335, 0, 4214, 4213, 1, 0, 0, 0, 4214, 4215, 1, 0, 0, 0, 4215, 4231, 1, 0, 0, 0, 4216, 4217, 5, 432, 0, 0, 4217, 4218, 5, 399, 0, 0, 4218, 4219, 3, 828, 414, 0, 4219, 4228, 5, 400, 0, 0, 4220, 4221, 5, 397, 0, 0, 4221, 4222, 5, 432, 0, 0, 4222, 4223, 5, 399, 0, 0, 4223, 4224, 3, 828, 414, 0, 4224, 4225, 5, 400, 0, 0, 4225, 4227, 1, 0, 0, 0, 4226, 4220, 1, 0, 0, 0, 4227, 4230, 1, 0, 0, 0, 4228, 4226, 1, 0, 0, 0, 4228, 4229, 1, 0, 0, 0, 4229, 4232, 1, 0, 0, 0, 4230, 4228, 1, 0, 0, 0, 4231, 4216, 1, 0, 0, 0, 4231, 4232, 1, 0, 0, 0, 4232, 4233, 1, 0, 0, 0, 4233, 4235, 5, 400, 0, 0, 4234, 4236, 3, 926, 463, 0, 4235, 4234, 1, 0, 0, 0, 4235, 4236, 1, 0, 0, 0, 4236, 675, 1, 0, 0, 0, 4237, 4238, 5, 384, 0, 0, 4238, 4239, 3, 678, 339, 0, 4239, 677, 1, 0, 0, 0, 4240, 4241, 3, 828, 414, 0, 4241, 679, 1, 0, 0, 0, 4242, 4243, 3, 682, 341, 0, 4243, 681, 1, 0, 0, 0, 4244, 4245, 5, 374, 0, 0, 4245, 4246, 3, 684, 342, 0, 4246, 683, 1, 0, 0, 0, 4247, 4252, 3, 686, 343, 0, 4248, 4249, 5, 397, 0, 0, 4249, 4251, 3, 686, 343, 0, 4250, 4248, 1, 0, 0, 0, 4251, 4254, 1, 0, 0, 0, 4252, 4250, 1, 0, 0, 0, 4252, 4253, 1, 0, 0, 0, 4253, 4264, 1, 0, 0, 0, 4254, 4252, 1, 0, 0, 0, 4255, 4260, 3, 688, 344, 0, 4256, 4257, 5, 397, 0, 0, 4257, 4259, 3, 686, 343, 0, 4258, 4256, 1, 0, 0, 0, 4259, 4262, 1, 0, 0, 0, 4260, 4258, 1, 0, 0, 0, 4260, 4261, 1, 0, 0, 0, 4261, 4264, 1, 0, 0, 0, 4262, 4260, 1, 0, 0, 0, 4263, 4247, 1, 0, 0, 0, 4263, 4255, 1, 0, 0, 0, 4264, 685, 1, 0, 0, 0, 4265, 4266, 3, 746, 373, 0, 4266, 687, 1, 0, 0, 0, 4267, 4268, 5, 399, 0, 0, 4268, 4269, 3, 754, 377, 0, 4269, 4270, 5, 400, 0, 0, 4270, 689, 1, 0, 0, 0, 4271, 4272, 5, 329, 0, 0, 4272, 4273, 5, 399, 0, 0, 4273, 4274, 3, 682, 341, 0, 4274, 4276, 5, 400, 0, 0, 4275, 4277, 5, 17, 0, 0, 4276, 4275, 1, 0, 0, 0, 4276, 4277, 1, 0, 0, 0, 4277, 4278, 1, 0, 0, 0, 4278, 4288, 3, 640, 320, 0, 4279, 4280, 5, 399, 0, 0, 4280, 4285, 3, 926, 463, 0, 4281, 4282, 5, 397, 0, 0, 4282, 4284, 3, 926, 463, 0, 4283, 4281, 1, 0, 0, 0, 4284, 4287, 1, 0, 0, 0, 4285, 4283, 1, 0, 0, 0, 4285, 4286, 1, 0, 0, 0, 4286, 4289, 1, 0, 0, 0, 4287, 4285, 1, 0, 0, 0, 4288, 4279, 1, 0, 0, 0, 4288, 4289, 1, 0, 0, 0, 4289, 4290, 1, 0, 0, 0, 4290, 4291, 5, 400, 0, 0, 4291, 691, 1, 0, 0, 0, 4292, 4294, 5, 299, 0, 0, 4293, 4295, 5, 436, 0, 0, 4294, 4293, 1, 0, 0, 0, 4294, 4295, 1, 0, 0, 0, 4295, 4302, 1, 0, 0, 0, 4296, 4298, 3, 694, 347, 0, 4297, 4296, 1, 0, 0, 0, 4297, 4298, 1, 0, 0, 0, 4298, 4299, 1, 0, 0, 0, 4299, 4303, 3, 696, 348, 0, 4300, 4301, 5, 347, 0, 0, 4301, 4303, 3, 698, 349, 0, 4302, 4297, 1, 0, 0, 0, 4302, 4300, 1, 0, 0, 0, 4303, 4306, 1, 0, 0, 0, 4304, 4306, 3, 702, 351, 0, 4305, 4292, 1, 0, 0, 0, 4305, 4304, 1, 0, 0, 0, 4306, 693, 1, 0, 0, 0, 4307, 4308, 7, 20, 0, 0, 4308, 695, 1, 0, 0, 0, 4309, 4314, 3, 700, 350, 0, 4310, 4311, 5, 397, 0, 0, 4311, 4313, 3, 700, 350, 0, 4312, 4310, 1, 0, 0, 0, 4313, 4316, 1, 0, 0, 0, 4314, 4312, 1, 0, 0, 0, 4314, 4315, 1, 0, 0, 0, 4315, 697, 1, 0, 0, 0, 4316, 4314, 1, 0, 0, 0, 4317, 4318, 5, 399, 0, 0, 4318, 4319, 3, 706, 353, 0, 4319, 4320, 5, 400, 0, 0, 4320, 4321, 3, 240, 120, 0, 4321, 4322, 3, 244, 122, 0, 4322, 4323, 5, 370, 0, 0, 4323, 4336, 5, 426, 0, 0, 4324, 4334, 5, 17, 0, 0, 4325, 4328, 5, 399, 0, 0, 4326, 4329, 3, 618, 309, 0, 4327, 4329, 3, 276, 138, 0, 4328, 4326, 1, 0, 0, 0, 4328, 4327, 1, 0, 0, 0, 4329, 4330, 1, 0, 0, 0, 4330, 4331, 5, 400, 0, 0, 4331, 4335, 1, 0, 0, 0, 4332, 4335, 3, 618, 309, 0, 4333, 4335, 3, 276, 138, 0, 4334, 4325, 1, 0, 0, 0, 4334, 4332, 1, 0, 0, 0, 4334, 4333, 1, 0, 0, 0, 4335, 4337, 1, 0, 0, 0, 4336, 4324, 1, 0, 0, 0, 4336, 4337, 1, 0, 0, 0, 4337, 4338, 1, 0, 0, 0, 4338, 4339, 3, 240, 120, 0, 4339, 4340, 3, 242, 121, 0, 4340, 699, 1, 0, 0, 0, 4341, 4365, 3, 612, 306, 0, 4342, 4345, 3, 284, 142, 0, 4343, 4345, 3, 828, 414, 0, 4344, 4342, 1, 0, 0, 0, 4344, 4343, 1, 0, 0, 0, 4345, 4362, 1, 0, 0, 0, 4346, 4348, 5, 17, 0, 0, 4347, 4346, 1, 0, 0, 0, 4347, 4348, 1, 0, 0, 0, 4348, 4349, 1, 0, 0, 0, 4349, 4363, 3, 926, 463, 0, 4350, 4351, 5, 17, 0, 0, 4351, 4352, 5, 399, 0, 0, 4352, 4357, 3, 926, 463, 0, 4353, 4354, 5, 397, 0, 0, 4354, 4356, 3, 926, 463, 0, 4355, 4353, 1, 0, 0, 0, 4356, 4359, 1, 0, 0, 0, 4357, 4355, 1, 0, 0, 0, 4357, 4358, 1, 0, 0, 0, 4358, 4360, 1, 0, 0, 0, 4359, 4357, 1, 0, 0, 0, 4360, 4361, 5, 400, 0, 0, 4361, 4363, 1, 0, 0, 0, 4362, 4347, 1, 0, 0, 0, 4362, 4350, 1, 0, 0, 0, 4362, 4363, 1, 0, 0, 0, 4363, 4365, 1, 0, 0, 0, 4364, 4341, 1, 0, 0, 0, 4364, 4344, 1, 0, 0, 0, 4365, 701, 1, 0, 0, 0, 4366, 4367, 7, 28, 0, 0, 4367, 4368, 3, 706, 353, 0, 4368, 4369, 3, 240, 120, 0, 4369, 4370, 3, 244, 122, 0, 4370, 4371, 5, 370, 0, 0, 4371, 4384, 5, 426, 0, 0, 4372, 4382, 5, 17, 0, 0, 4373, 4376, 5, 399, 0, 0, 4374, 4377, 3, 618, 309, 0, 4375, 4377, 3, 276, 138, 0, 4376, 4374, 1, 0, 0, 0, 4376, 4375, 1, 0, 0, 0, 4377, 4378, 1, 0, 0, 0, 4378, 4379, 5, 400, 0, 0, 4379, 4383, 1, 0, 0, 0, 4380, 4383, 3, 618, 309, 0, 4381, 4383, 3, 276, 138, 0, 4382, 4373, 1, 0, 0, 0, 4382, 4380, 1, 0, 0, 0, 4382, 4381, 1, 0, 0, 0, 4383, 4385, 1, 0, 0, 0, 4384, 4372, 1, 0, 0, 0, 4384, 4385, 1, 0, 0, 0, 4385, 4386, 1, 0, 0, 0, 4386, 4387, 3, 240, 120, 0, 4387, 4388, 3, 242, 121, 0, 4388, 703, 1, 0, 0, 0, 4389, 4392, 3, 612, 306, 0, 4390, 4392, 3, 828, 414, 0, 4391, 4389, 1, 0, 0, 0, 4391, 4390, 1, 0, 0, 0, 4392, 705, 1, 0, 0, 0, 4393, 4398, 3, 704, 352, 0, 4394, 4395, 5, 397, 0, 0, 4395, 4397, 3, 704, 352, 0, 4396, 4394, 1, 0, 0, 0, 4397, 4400, 1, 0, 0, 0, 4398, 4396, 1, 0, 0, 0, 4398, 4399, 1, 0, 0, 0, 4399, 707, 1, 0, 0, 0, 4400, 4398, 1, 0, 0, 0, 4401, 4402, 5, 386, 0, 0, 4402, 4407, 3, 710, 355, 0, 4403, 4404, 5, 397, 0, 0, 4404, 4406, 3, 710, 355, 0, 4405, 4403, 1, 0, 0, 0, 4406, 4409, 1, 0, 0, 0, 4407, 4405, 1, 0, 0, 0, 4407, 4408, 1, 0, 0, 0, 4408, 709, 1, 0, 0, 0, 4409, 4407, 1, 0, 0, 0, 4410, 4411, 3, 926, 463, 0, 4411, 4412, 5, 17, 0, 0, 4412, 4413, 3, 712, 356, 0, 4413, 711, 1, 0, 0, 0, 4414, 4427, 3, 926, 463, 0, 4415, 4417, 5, 399, 0, 0, 4416, 4418, 3, 926, 463, 0, 4417, 4416, 1, 0, 0, 0, 4417, 4418, 1, 0, 0, 0, 4418, 4420, 1, 0, 0, 0, 4419, 4421, 3, 670, 335, 0, 4420, 4419, 1, 0, 0, 0, 4420, 4421, 1, 0, 0, 0, 4421, 4423, 1, 0, 0, 0, 4422, 4424, 3, 714, 357, 0, 4423, 4422, 1, 0, 0, 0, 4423, 4424, 1, 0, 0, 0, 4424, 4425, 1, 0, 0, 0, 4425, 4427, 5, 400, 0, 0, 4426, 4414, 1, 0, 0, 0, 4426, 4415, 1, 0, 0, 0, 4427, 713, 1, 0, 0, 0, 4428, 4431, 3, 716, 358, 0, 4429, 4431, 3, 718, 359, 0, 4430, 4428, 1, 0, 0, 0, 4430, 4429, 1, 0, 0, 0, 4431, 715, 1, 0, 0, 0, 4432, 4439, 5, 292, 0, 0, 4433, 4440, 3, 720, 360, 0, 4434, 4435, 5, 25, 0, 0, 4435, 4436, 3, 722, 361, 0, 4436, 4437, 5, 11, 0, 0, 4437, 4438, 3, 722, 361, 0, 4438, 4440, 1, 0, 0, 0, 4439, 4433, 1, 0, 0, 0, 4439, 4434, 1, 0, 0, 0, 4440, 717, 1, 0, 0, 0, 4441, 4448, 5, 260, 0, 0, 4442, 4449, 3, 720, 360, 0, 4443, 4444, 5, 25, 0, 0, 4444, 4445, 3, 722, 361, 0, 4445, 4446, 5, 11, 0, 0, 4446, 4447, 3, 722, 361, 0, 4447, 4449, 1, 0, 0, 0, 4448, 4442, 1, 0, 0, 0, 4448, 4443, 1, 0, 0, 0, 4449, 719, 1, 0, 0, 0, 4450, 4451, 5, 354, 0, 0, 4451, 4457, 5, 247, 0, 0, 4452, 4453, 5, 62, 0, 0, 4453, 4457, 5, 291, 0, 0, 4454, 4455, 5, 431, 0, 0, 4455, 4457, 5, 247, 0, 0, 4456, 4450, 1, 0, 0, 0, 4456, 4452, 1, 0, 0, 0, 4456, 4454, 1, 0, 0, 0, 4457, 721, 1, 0, 0, 0, 4458, 4459, 7, 29, 0, 0, 4459, 4463, 7, 30, 0, 0, 4460, 4461, 5, 62, 0, 0, 4461, 4463, 5, 291, 0, 0, 4462, 4458, 1, 0, 0, 0, 4462, 4460, 1, 0, 0, 0, 4463, 723, 1, 0, 0, 0, 4464, 4465, 5, 144, 0, 0, 4465, 4466, 5, 32, 0, 0, 4466, 4467, 3, 726, 363, 0, 4467, 725, 1, 0, 0, 0, 4468, 4473, 3, 284, 142, 0, 4469, 4473, 3, 730, 365, 0, 4470, 4473, 3, 732, 366, 0, 4471, 4473, 3, 728, 364, 0, 4472, 4468, 1, 0, 0, 0, 4472, 4469, 1, 0, 0, 0, 4472, 4470, 1, 0, 0, 0, 4472, 4471, 1, 0, 0, 0, 4473, 727, 1, 0, 0, 0, 4474, 4475, 5, 399, 0, 0, 4475, 4476, 5, 400, 0, 0, 4476, 729, 1, 0, 0, 0, 4477, 4480, 5, 290, 0, 0, 4478, 4480, 5, 61, 0, 0, 4479, 4477, 1, 0, 0, 0, 4479, 4478, 1, 0, 0, 0, 4480, 4481, 1, 0, 0, 0, 4481, 4482, 5, 399, 0, 0, 4482, 4487, 3, 828, 414, 0, 4483, 4484, 5, 397, 0, 0, 4484, 4486, 3, 828, 414, 0, 4485, 4483, 1, 0, 0, 0, 4486, 4489, 1, 0, 0, 0, 4487, 4485, 1, 0, 0, 0, 4487, 4488, 1, 0, 0, 0, 4488, 4490, 1, 0, 0, 0, 4489, 4487, 1, 0, 0, 0, 4490, 4491, 5, 400, 0, 0, 4491, 731, 1, 0, 0, 0, 4492, 4497, 3, 748, 374, 0, 4493, 4494, 5, 387, 0, 0, 4494, 4498, 5, 290, 0, 0, 4495, 4496, 5, 387, 0, 0, 4496, 4498, 5, 61, 0, 0, 4497, 4493, 1, 0, 0, 0, 4497, 4495, 1, 0, 0, 0, 4497, 4498, 1, 0, 0, 0, 4498, 4512, 1, 0, 0, 0, 4499, 4500, 5, 145, 0, 0, 4500, 4501, 5, 305, 0, 0, 4501, 4502, 5, 399, 0, 0, 4502, 4507, 3, 734, 367, 0, 4503, 4504, 5, 397, 0, 0, 4504, 4506, 3, 734, 367, 0, 4505, 4503, 1, 0, 0, 0, 4506, 4509, 1, 0, 0, 0, 4507, 4505, 1, 0, 0, 0, 4507, 4508, 1, 0, 0, 0, 4508, 4510, 1, 0, 0, 0, 4509, 4507, 1, 0, 0, 0, 4510, 4511, 5, 400, 0, 0, 4511, 4513, 1, 0, 0, 0, 4512, 4499, 1, 0, 0, 0, 4512, 4513, 1, 0, 0, 0, 4513, 733, 1, 0, 0, 0, 4514, 4517, 3, 736, 368, 0, 4515, 4517, 3, 738, 369, 0, 4516, 4514, 1, 0, 0, 0, 4516, 4515, 1, 0, 0, 0, 4517, 735, 1, 0, 0, 0, 4518, 4520, 5, 399, 0, 0, 4519, 4521, 3, 828, 414, 0, 4520, 4519, 1, 0, 0, 0, 4520, 4521, 1, 0, 0, 0, 4521, 4526, 1, 0, 0, 0, 4522, 4523, 5, 397, 0, 0, 4523, 4525, 3, 828, 414, 0, 4524, 4522, 1, 0, 0, 0, 4525, 4528, 1, 0, 0, 0, 4526, 4524, 1, 0, 0, 0, 4526, 4527, 1, 0, 0, 0, 4527, 4529, 1, 0, 0, 0, 4528, 4526, 1, 0, 0, 0, 4529, 4530, 5, 400, 0, 0, 4530, 737, 1, 0, 0, 0, 4531, 4532, 3, 828, 414, 0, 4532, 739, 1, 0, 0, 0, 4533, 4534, 5, 146, 0, 0, 4534, 4535, 3, 744, 372, 0, 4535, 741, 1, 0, 0, 0, 4536, 4537, 5, 256, 0, 0, 4537, 4538, 3, 828, 414, 0, 4538, 743, 1, 0, 0, 0, 4539, 4540, 3, 828, 414, 0, 4540, 745, 1, 0, 0, 0, 4541, 4542, 5, 399, 0, 0, 4542, 4543, 3, 748, 374, 0, 4543, 4544, 5, 400, 0, 0, 4544, 747, 1, 0, 0, 0, 4545, 4547, 3, 752, 376, 0, 4546, 4548, 3, 750, 375, 0, 4547, 4546, 1, 0, 0, 0, 4547, 4548, 1, 0, 0, 0, 4548, 749, 1, 0, 0, 0, 4549, 4550, 5, 397, 0, 0, 4550, 4552, 3, 752, 376, 0, 4551, 4549, 1, 0, 0, 0, 4552, 4553, 1, 0, 0, 0, 4553, 4551, 1, 0, 0, 0, 4553, 4554, 1, 0, 0, 0, 4554, 751, 1, 0, 0, 0, 4555, 4558, 3, 614, 307, 0, 4556, 4558, 3, 828, 414, 0, 4557, 4555, 1, 0, 0, 0, 4557, 4556, 1, 0, 0, 0, 4558, 753, 1, 0, 0, 0, 4559, 4561, 3, 828, 414, 0, 4560, 4562, 5, 17, 0, 0, 4561, 4560, 1, 0, 0, 0, 4561, 4562, 1, 0, 0, 0, 4562, 4564, 1, 0, 0, 0, 4563, 4565, 3, 926, 463, 0, 4564, 4563, 1, 0, 0, 0, 4564, 4565, 1, 0, 0, 0, 4565, 4570, 1, 0, 0, 0, 4566, 4567, 5, 397, 0, 0, 4567, 4569, 3, 756, 378, 0, 4568, 4566, 1, 0, 0, 0, 4569, 4572, 1, 0, 0, 0, 4570, 4568, 1, 0, 0, 0, 4570, 4571, 1, 0, 0, 0, 4571, 755, 1, 0, 0, 0, 4572, 4570, 1, 0, 0, 0, 4573, 4575, 3, 828, 414, 0, 4574, 4576, 5, 17, 0, 0, 4575, 4574, 1, 0, 0, 0, 4575, 4576, 1, 0, 0, 0, 4576, 4578, 1, 0, 0, 0, 4577, 4579, 3, 926, 463, 0, 4578, 4577, 1, 0, 0, 0, 4578, 4579, 1, 0, 0, 0, 4579, 757, 1, 0, 0, 0, 4580, 4583, 3, 746, 373, 0, 4581, 4583, 3, 748, 374, 0, 4582, 4580, 1, 0, 0, 0, 4582, 4581, 1, 0, 0, 0, 4583, 759, 1, 0, 0, 0, 4584, 4585, 5, 399, 0, 0, 4585, 4590, 3, 342, 171, 0, 4586, 4587, 5, 397, 0, 0, 4587, 4589, 3, 342, 171, 0, 4588, 4586, 1, 0, 0, 0, 4589, 4592, 1, 0, 0, 0, 4590, 4588, 1, 0, 0, 0, 4590, 4591, 1, 0, 0, 0, 4591, 4593, 1, 0, 0, 0, 4592, 4590, 1, 0, 0, 0, 4593, 4594, 5, 400, 0, 0, 4594, 761, 1, 0, 0, 0, 4595, 4600, 3, 342, 171, 0, 4596, 4597, 5, 397, 0, 0, 4597, 4599, 3, 342, 171, 0, 4598, 4596, 1, 0, 0, 0, 4599, 4602, 1, 0, 0, 0, 4600, 4598, 1, 0, 0, 0, 4600, 4601, 1, 0, 0, 0, 4601, 763, 1, 0, 0, 0, 4602, 4600, 1, 0, 0, 0, 4603, 4604, 5, 229, 0, 0, 4604, 4605, 5, 32, 0, 0, 4605, 4610, 3, 342, 171, 0, 4606, 4607, 5, 397, 0, 0, 4607, 4609, 3, 342, 171, 0, 4608, 4606, 1, 0, 0, 0, 4609, 4612, 1, 0, 0, 0, 4610, 4608, 1, 0, 0, 0, 4610, 4611, 1, 0, 0, 0, 4611, 765, 1, 0, 0, 0, 4612, 4610, 1, 0, 0, 0, 4613, 4614, 5, 41, 0, 0, 4614, 4615, 5, 32, 0, 0, 4615, 4616, 3, 758, 379, 0, 4616, 767, 1, 0, 0, 0, 4617, 4618, 5, 237, 0, 0, 4618, 4619, 5, 32, 0, 0, 4619, 4620, 3, 758, 379, 0, 4620, 769, 1, 0, 0, 0, 4621, 4622, 5, 97, 0, 0, 4622, 4623, 5, 32, 0, 0, 4623, 4624, 3, 758, 379, 0, 4624, 771, 1, 0, 0, 0, 4625, 4626, 5, 314, 0, 0, 4626, 4629, 5, 32, 0, 0, 4627, 4630, 3, 760, 380, 0, 4628, 4630, 3, 762, 381, 0, 4629, 4627, 1, 0, 0, 0, 4629, 4628, 1, 0, 0, 0, 4630, 773, 1, 0, 0, 0, 4631, 4632, 5, 349, 0, 0, 4632, 4636, 5, 399, 0, 0, 4633, 4637, 5, 179, 0, 0, 4634, 4637, 5, 343, 0, 0, 4635, 4637, 5, 29, 0, 0, 4636, 4633, 1, 0, 0, 0, 4636, 4634, 1, 0, 0, 0, 4636, 4635, 1, 0, 0, 0, 4636, 4637, 1, 0, 0, 0, 4637, 4639, 1, 0, 0, 0, 4638, 4640, 3, 704, 352, 0, 4639, 4638, 1, 0, 0, 0, 4639, 4640, 1, 0, 0, 0, 4640, 4641, 1, 0, 0, 0, 4641, 4642, 5, 139, 0, 0, 4642, 4643, 3, 704, 352, 0, 4643, 4644, 5, 400, 0, 0, 4644, 775, 1, 0, 0, 0, 4645, 4686, 3, 774, 387, 0, 4646, 4647, 3, 784, 392, 0, 4647, 4662, 5, 399, 0, 0, 4648, 4663, 5, 415, 0, 0, 4649, 4651, 3, 694, 347, 0, 4650, 4649, 1, 0, 0, 0, 4650, 4651, 1, 0, 0, 0, 4651, 4660, 1, 0, 0, 0, 4652, 4657, 3, 704, 352, 0, 4653, 4654, 5, 397, 0, 0, 4654, 4656, 3, 704, 352, 0, 4655, 4653, 1, 0, 0, 0, 4656, 4659, 1, 0, 0, 0, 4657, 4655, 1, 0, 0, 0, 4657, 4658, 1, 0, 0, 0, 4658, 4661, 1, 0, 0, 0, 4659, 4657, 1, 0, 0, 0, 4660, 4652, 1, 0, 0, 0, 4660, 4661, 1, 0, 0, 0, 4661, 4663, 1, 0, 0, 0, 4662, 4648, 1, 0, 0, 0, 4662, 4650, 1, 0, 0, 0, 4663, 4683, 1, 0, 0, 0, 4664, 4665, 5, 400, 0, 0, 4665, 4666, 5, 388, 0, 0, 4666, 4667, 5, 144, 0, 0, 4667, 4668, 5, 399, 0, 0, 4668, 4669, 3, 764, 382, 0, 4669, 4670, 5, 400, 0, 0, 4670, 4684, 1, 0, 0, 0, 4671, 4673, 5, 400, 0, 0, 4672, 4674, 3, 778, 389, 0, 4673, 4672, 1, 0, 0, 0, 4673, 4674, 1, 0, 0, 0, 4674, 4675, 1, 0, 0, 0, 4675, 4676, 5, 234, 0, 0, 4676, 4684, 3, 712, 356, 0, 4677, 4678, 3, 778, 389, 0, 4678, 4679, 5, 400, 0, 0, 4679, 4680, 5, 234, 0, 0, 4680, 4681, 3, 712, 356, 0, 4681, 4684, 1, 0, 0, 0, 4682, 4684, 5, 400, 0, 0, 4683, 4664, 1, 0, 0, 0, 4683, 4671, 1, 0, 0, 0, 4683, 4677, 1, 0, 0, 0, 4683, 4682, 1, 0, 0, 0, 4684, 4686, 1, 0, 0, 0, 4685, 4645, 1, 0, 0, 0, 4685, 4646, 1, 0, 0, 0, 4686, 777, 1, 0, 0, 0, 4687, 4688, 5, 281, 0, 0, 4688, 4692, 5, 220, 0, 0, 4689, 4690, 5, 152, 0, 0, 4690, 4692, 5, 220, 0, 0, 4691, 4687, 1, 0, 0, 0, 4691, 4689, 1, 0, 0, 0, 4692, 779, 1, 0, 0, 0, 4693, 4694, 3, 928, 464, 0, 4694, 781, 1, 0, 0, 0, 4695, 4698, 3, 786, 393, 0, 4696, 4698, 5, 426, 0, 0, 4697, 4695, 1, 0, 0, 0, 4697, 4696, 1, 0, 0, 0, 4698, 783, 1, 0, 0, 0, 4699, 4702, 3, 786, 393, 0, 4700, 4702, 3, 788, 394, 0, 4701, 4699, 1, 0, 0, 0, 4701, 4700, 1, 0, 0, 0, 4702, 785, 1, 0, 0, 0, 4703, 4704, 3, 928, 464, 0, 4704, 787, 1, 0, 0, 0, 4705, 4708, 3, 934, 467, 0, 4706, 4708, 3, 924, 462, 0, 4707, 4705, 1, 0, 0, 0, 4707, 4706, 1, 0, 0, 0, 4708, 789, 1, 0, 0, 0, 4709, 4710, 5, 36, 0, 0, 4710, 4711, 5, 399, 0, 0, 4711, 4712, 3, 828, 414, 0, 4712, 4713, 5, 17, 0, 0, 4713, 4716, 3, 382, 191, 0, 4714, 4715, 5, 137, 0, 0, 4715, 4717, 5, 426, 0, 0, 4716, 4714, 1, 0, 0, 0, 4716, 4717, 1, 0, 0, 0, 4717, 4718, 1, 0, 0, 0, 4718, 4719, 5, 400, 0, 0, 4719, 791, 1, 0, 0, 0, 4720, 4721, 5, 35, 0, 0, 4721, 4727, 3, 828, 414, 0, 4722, 4723, 5, 383, 0, 0, 4723, 4724, 3, 828, 414, 0, 4724, 4725, 5, 335, 0, 0, 4725, 4726, 3, 828, 414, 0, 4726, 4728, 1, 0, 0, 0, 4727, 4722, 1, 0, 0, 0, 4728, 4729, 1, 0, 0, 0, 4729, 4727, 1, 0, 0, 0, 4729, 4730, 1, 0, 0, 0, 4730, 4733, 1, 0, 0, 0, 4731, 4732, 5, 105, 0, 0, 4732, 4734, 3, 828, 414, 0, 4733, 4731, 1, 0, 0, 0, 4733, 4734, 1, 0, 0, 0, 4734, 4735, 1, 0, 0, 0, 4735, 4736, 5, 108, 0, 0, 4736, 793, 1, 0, 0, 0, 4737, 4743, 5, 35, 0, 0, 4738, 4739, 5, 383, 0, 0, 4739, 4740, 3, 828, 414, 0, 4740, 4741, 5, 335, 0, 0, 4741, 4742, 3, 828, 414, 0, 4742, 4744, 1, 0, 0, 0, 4743, 4738, 1, 0, 0, 0, 4744, 4745, 1, 0, 0, 0, 4745, 4743, 1, 0, 0, 0, 4745, 4746, 1, 0, 0, 0, 4746, 4749, 1, 0, 0, 0, 4747, 4748, 5, 105, 0, 0, 4748, 4750, 3, 828, 414, 0, 4749, 4747, 1, 0, 0, 0, 4749, 4750, 1, 0, 0, 0, 4750, 4751, 1, 0, 0, 0, 4751, 4752, 5, 108, 0, 0, 4752, 795, 1, 0, 0, 0, 4753, 4754, 5, 132, 0, 0, 4754, 4755, 5, 399, 0, 0, 4755, 4758, 3, 828, 414, 0, 4756, 4757, 5, 341, 0, 0, 4757, 4759, 3, 798, 399, 0, 4758, 4756, 1, 0, 0, 0, 4758, 4759, 1, 0, 0, 0, 4759, 4760, 1, 0, 0, 0, 4760, 4761, 5, 400, 0, 0, 4761, 797, 1, 0, 0, 0, 4762, 4771, 3, 976, 488, 0, 4763, 4771, 5, 257, 0, 0, 4764, 4771, 3, 978, 489, 0, 4765, 4771, 3, 980, 490, 0, 4766, 4771, 3, 982, 491, 0, 4767, 4771, 3, 984, 492, 0, 4768, 4771, 3, 986, 493, 0, 4769, 4771, 3, 988, 494, 0, 4770, 4762, 1, 0, 0, 0, 4770, 4763, 1, 0, 0, 0, 4770, 4764, 1, 0, 0, 0, 4770, 4765, 1, 0, 0, 0, 4770, 4766, 1, 0, 0, 0, 4770, 4767, 1, 0, 0, 0, 4770, 4768, 1, 0, 0, 0, 4770, 4769, 1, 0, 0, 0, 4771, 799, 1, 0, 0, 0, 4772, 4773, 5, 124, 0, 0, 4773, 4774, 5, 399, 0, 0, 4774, 4775, 3, 802, 401, 0, 4775, 4776, 5, 139, 0, 0, 4776, 4777, 3, 828, 414, 0, 4777, 4778, 5, 400, 0, 0, 4778, 801, 1, 0, 0, 0, 4779, 4788, 3, 976, 488, 0, 4780, 4788, 5, 257, 0, 0, 4781, 4788, 3, 978, 489, 0, 4782, 4788, 3, 980, 490, 0, 4783, 4788, 3, 982, 491, 0, 4784, 4788, 3, 984, 492, 0, 4785, 4788, 3, 986, 493, 0, 4786, 4788, 3, 988, 494, 0, 4787, 4779, 1, 0, 0, 0, 4787, 4780, 1, 0, 0, 0, 4787, 4781, 1, 0, 0, 0, 4787, 4782, 1, 0, 0, 0, 4787, 4783, 1, 0, 0, 0, 4787, 4784, 1, 0, 0, 0, 4787, 4785, 1, 0, 0, 0, 4787, 4786, 1, 0, 0, 0, 4788, 803, 1, 0, 0, 0, 4789, 4803, 3, 822, 411, 0, 4790, 4803, 5, 431, 0, 0, 4791, 4803, 3, 814, 407, 0, 4792, 4803, 3, 816, 408, 0, 4793, 4803, 3, 818, 409, 0, 4794, 4803, 5, 426, 0, 0, 4795, 4803, 3, 810, 405, 0, 4796, 4803, 5, 428, 0, 0, 4797, 4803, 5, 429, 0, 0, 4798, 4803, 3, 812, 406, 0, 4799, 4803, 3, 906, 453, 0, 4800, 4803, 5, 219, 0, 0, 4801, 4803, 3, 806, 403, 0, 4802, 4789, 1, 0, 0, 0, 4802, 4790, 1, 0, 0, 0, 4802, 4791, 1, 0, 0, 0, 4802, 4792, 1, 0, 0, 0, 4802, 4793, 1, 0, 0, 0, 4802, 4794, 1, 0, 0, 0, 4802, 4795, 1, 0, 0, 0, 4802, 4796, 1, 0, 0, 0, 4802, 4797, 1, 0, 0, 0, 4802, 4798, 1, 0, 0, 0, 4802, 4799, 1, 0, 0, 0, 4802, 4800, 1, 0, 0, 0, 4802, 4801, 1, 0, 0, 0, 4803, 805, 1, 0, 0, 0, 4804, 4805, 3, 808, 404, 0, 4805, 807, 1, 0, 0, 0, 4806, 4807, 5, 424, 0, 0, 4807, 809, 1, 0, 0, 0, 4808, 4810, 5, 426, 0, 0, 4809, 4811, 5, 426, 0, 0, 4810, 4809, 1, 0, 0, 0, 4811, 4812, 1, 0, 0, 0, 4812, 4810, 1, 0, 0, 0, 4812, 4813, 1, 0, 0, 0, 4813, 811, 1, 0, 0, 0, 4814, 4815, 5, 433, 0, 0, 4815, 4816, 5, 427, 0, 0, 4816, 813, 1, 0, 0, 0, 4817, 4818, 5, 71, 0, 0, 4818, 4821, 5, 426, 0, 0, 4819, 4821, 5, 63, 0, 0, 4820, 4817, 1, 0, 0, 0, 4820, 4819, 1, 0, 0, 0, 4821, 815, 1, 0, 0, 0, 4822, 4823, 5, 337, 0, 0, 4823, 4826, 5, 426, 0, 0, 4824, 4826, 5, 64, 0, 0, 4825, 4822, 1, 0, 0, 0, 4825, 4824, 1, 0, 0, 0, 4826, 817, 1, 0, 0, 0, 4827, 4828, 5, 338, 0, 0, 4828, 4829, 5, 426, 0, 0, 4829, 819, 1, 0, 0, 0, 4830, 4831, 7, 24, 0, 0, 4831, 821, 1, 0, 0, 0, 4832, 4833, 3, 820, 410, 0, 4833, 4834, 3, 826, 413, 0, 4834, 823, 1, 0, 0, 0, 4835, 4836, 5, 399, 0, 0, 4836, 4837, 3, 820, 410, 0, 4837, 4838, 5, 400, 0, 0, 4838, 4839, 3, 826, 413, 0, 4839, 4851, 1, 0, 0, 0, 4840, 4846, 5, 165, 0, 0, 4841, 4847, 3, 820, 410, 0, 4842, 4843, 5, 399, 0, 0, 4843, 4844, 3, 828, 414, 0, 4844, 4845, 5, 400, 0, 0, 4845, 4847, 1, 0, 0, 0, 4846, 4841, 1, 0, 0, 0, 4846, 4842, 1, 0, 0, 0, 4847, 4848, 1, 0, 0, 0, 4848, 4849, 3, 826, 413, 0, 4849, 4851, 1, 0, 0, 0, 4850, 4835, 1, 0, 0, 0, 4850, 4840, 1, 0, 0, 0, 4851, 825, 1, 0, 0, 0, 4852, 4853, 3, 976, 488, 0, 4853, 4854, 5, 341, 0, 0, 4854, 4855, 3, 978, 489, 0, 4855, 4867, 1, 0, 0, 0, 4856, 4857, 3, 982, 491, 0, 4857, 4858, 5, 341, 0, 0, 4858, 4859, 3, 988, 494, 0, 4859, 4867, 1, 0, 0, 0, 4860, 4867, 3, 976, 488, 0, 4861, 4867, 3, 978, 489, 0, 4862, 4867, 3, 982, 491, 0, 4863, 4867, 3, 984, 492, 0, 4864, 4867, 3, 986, 493, 0, 4865, 4867, 3, 988, 494, 0, 4866, 4852, 1, 0, 0, 0, 4866, 4856, 1, 0, 0, 0, 4866, 4860, 1, 0, 0, 0, 4866, 4861, 1, 0, 0, 0, 4866, 4862, 1, 0, 0, 0, 4866, 4863, 1, 0, 0, 0, 4866, 4864, 1, 0, 0, 0, 4866, 4865, 1, 0, 0, 0, 4867, 827, 1, 0, 0, 0, 4868, 4869, 3, 904, 452, 0, 4869, 829, 1, 0, 0, 0, 4870, 4882, 3, 804, 402, 0, 4871, 4882, 3, 824, 412, 0, 4872, 4882, 3, 790, 395, 0, 4873, 4882, 3, 800, 400, 0, 4874, 4882, 3, 796, 398, 0, 4875, 4882, 3, 792, 396, 0, 4876, 4882, 3, 794, 397, 0, 4877, 4882, 3, 866, 433, 0, 4878, 4882, 3, 776, 388, 0, 4879, 4882, 3, 746, 373, 0, 4880, 4882, 3, 926, 463, 0, 4881, 4870, 1, 0, 0, 0, 4881, 4871, 1, 0, 0, 0, 4881, 4872, 1, 0, 0, 0, 4881, 4873, 1, 0, 0, 0, 4881, 4874, 1, 0, 0, 0, 4881, 4875, 1, 0, 0, 0, 4881, 4876, 1, 0, 0, 0, 4881, 4877, 1, 0, 0, 0, 4881, 4878, 1, 0, 0, 0, 4881, 4879, 1, 0, 0, 0, 4881, 4880, 1, 0, 0, 0, 4882, 831, 1, 0, 0, 0, 4883, 4892, 3, 830, 415, 0, 4884, 4885, 5, 401, 0, 0, 4885, 4886, 3, 828, 414, 0, 4886, 4887, 5, 402, 0, 0, 4887, 4891, 1, 0, 0, 0, 4888, 4889, 5, 395, 0, 0, 4889, 4891, 3, 926, 463, 0, 4890, 4884, 1, 0, 0, 0, 4890, 4888, 1, 0, 0, 0, 4891, 4894, 1, 0, 0, 0, 4892, 4890, 1, 0, 0, 0, 4892, 4893, 1, 0, 0, 0, 4893, 833, 1, 0, 0, 0, 4894, 4892, 1, 0, 0, 0, 4895, 4896, 7, 31, 0, 0, 4896, 835, 1, 0, 0, 0, 4897, 4899, 3, 834, 417, 0, 4898, 4897, 1, 0, 0, 0, 4899, 4902, 1, 0, 0, 0, 4900, 4898, 1, 0, 0, 0, 4900, 4901, 1, 0, 0, 0, 4901, 4903, 1, 0, 0, 0, 4902, 4900, 1, 0, 0, 0, 4903, 4904, 3, 832, 416, 0, 4904, 837, 1, 0, 0, 0, 4905, 4906, 5, 423, 0, 0, 4906, 839, 1, 0, 0, 0, 4907, 4913, 3, 836, 418, 0, 4908, 4909, 3, 838, 419, 0, 4909, 4910, 3, 836, 418, 0, 4910, 4912, 1, 0, 0, 0, 4911, 4908, 1, 0, 0, 0, 4912, 4915, 1, 0, 0, 0, 4913, 4911, 1, 0, 0, 0, 4913, 4914, 1, 0, 0, 0, 4914, 841, 1, 0, 0, 0, 4915, 4913, 1, 0, 0, 0, 4916, 4917, 7, 32, 0, 0, 4917, 843, 1, 0, 0, 0, 4918, 4924, 3, 840, 420, 0, 4919, 4920, 3, 842, 421, 0, 4920, 4921, 3, 840, 420, 0, 4921, 4923, 1, 0, 0, 0, 4922, 4919, 1, 0, 0, 0, 4923, 4926, 1, 0, 0, 0, 4924, 4922, 1, 0, 0, 0, 4924, 4925, 1, 0, 0, 0, 4925, 845, 1, 0, 0, 0, 4926, 4924, 1, 0, 0, 0, 4927, 4928, 7, 33, 0, 0, 4928, 847, 1, 0, 0, 0, 4929, 4935, 3, 844, 422, 0, 4930, 4931, 3, 846, 423, 0, 4931, 4932, 3, 844, 422, 0, 4932, 4934, 1, 0, 0, 0, 4933, 4930, 1, 0, 0, 0, 4934, 4937, 1, 0, 0, 0, 4935, 4933, 1, 0, 0, 0, 4935, 4936, 1, 0, 0, 0, 4936, 849, 1, 0, 0, 0, 4937, 4935, 1, 0, 0, 0, 4938, 4939, 5, 422, 0, 0, 4939, 851, 1, 0, 0, 0, 4940, 4946, 3, 848, 424, 0, 4941, 4942, 3, 850, 425, 0, 4942, 4943, 3, 848, 424, 0, 4943, 4945, 1, 0, 0, 0, 4944, 4941, 1, 0, 0, 0, 4945, 4948, 1, 0, 0, 0, 4946, 4944, 1, 0, 0, 0, 4946, 4947, 1, 0, 0, 0, 4947, 853, 1, 0, 0, 0, 4948, 4946, 1, 0, 0, 0, 4949, 4950, 5, 419, 0, 0, 4950, 855, 1, 0, 0, 0, 4951, 4957, 3, 852, 426, 0, 4952, 4953, 3, 854, 427, 0, 4953, 4954, 3, 852, 426, 0, 4954, 4956, 1, 0, 0, 0, 4955, 4952, 1, 0, 0, 0, 4956, 4959, 1, 0, 0, 0, 4957, 4955, 1, 0, 0, 0, 4957, 4958, 1, 0, 0, 0, 4958, 857, 1, 0, 0, 0, 4959, 4957, 1, 0, 0, 0, 4960, 4961, 5, 421, 0, 0, 4961, 859, 1, 0, 0, 0, 4962, 4968, 3, 856, 428, 0, 4963, 4964, 3, 858, 429, 0, 4964, 4965, 3, 856, 428, 0, 4965, 4967, 1, 0, 0, 0, 4966, 4963, 1, 0, 0, 0, 4967, 4970, 1, 0, 0, 0, 4968, 4966, 1, 0, 0, 0, 4968, 4969, 1, 0, 0, 0, 4969, 861, 1, 0, 0, 0, 4970, 4968, 1, 0, 0, 0, 4971, 4972, 7, 34, 0, 0, 4972, 863, 1, 0, 0, 0, 4973, 4979, 3, 862, 431, 0, 4974, 4979, 5, 408, 0, 0, 4975, 4979, 5, 409, 0, 0, 4976, 4979, 5, 410, 0, 0, 4977, 4979, 5, 411, 0, 0, 4978, 4973, 1, 0, 0, 0, 4978, 4974, 1, 0, 0, 0, 4978, 4975, 1, 0, 0, 0, 4978, 4976, 1, 0, 0, 0, 4978, 4977, 1, 0, 0, 0, 4979, 865, 1, 0, 0, 0, 4980, 4981, 5, 399, 0, 0, 4981, 4982, 3, 410, 205, 0, 4982, 4983, 5, 400, 0, 0, 4983, 867, 1, 0, 0, 0, 4984, 4988, 3, 870, 435, 0, 4985, 4986, 5, 117, 0, 0, 4986, 4988, 3, 866, 433, 0, 4987, 4984, 1, 0, 0, 0, 4987, 4985, 1, 0, 0, 0, 4988, 869, 1, 0, 0, 0, 4989, 4991, 3, 860, 430, 0, 4990, 4992, 3, 872, 436, 0, 4991, 4990, 1, 0, 0, 0, 4991, 4992, 1, 0, 0, 0, 4992, 871, 1, 0, 0, 0, 4993, 4994, 3, 864, 432, 0, 4994, 4995, 3, 860, 430, 0, 4995, 5000, 1, 0, 0, 0, 4996, 5000, 3, 874, 437, 0, 4997, 4998, 5, 216, 0, 0, 4998, 5000, 3, 882, 441, 0, 4999, 4993, 1, 0, 0, 0, 4999, 4996, 1, 0, 0, 0, 4999, 4997, 1, 0, 0, 0, 5000, 873, 1, 0, 0, 0, 5001, 5002, 5, 154, 0, 0, 5002, 5013, 3, 880, 440, 0, 5003, 5004, 5, 25, 0, 0, 5004, 5005, 3, 860, 430, 0, 5005, 5006, 5, 11, 0, 0, 5006, 5007, 3, 860, 430, 0, 5007, 5013, 1, 0, 0, 0, 5008, 5009, 5, 184, 0, 0, 5009, 5010, 7, 35, 0, 0, 5010, 5013, 3, 746, 373, 0, 5011, 5013, 3, 876, 438, 0, 5012, 5001, 1, 0, 0, 0, 5012, 5003, 1, 0, 0, 0, 5012, 5008, 1, 0, 0, 0, 5012, 5011, 1, 0, 0, 0, 5013, 875, 1, 0, 0, 0, 5014, 5015, 3, 922, 461, 0, 5015, 5016, 3, 878, 439, 0, 5016, 5017, 3, 866, 433, 0, 5017, 877, 1, 0, 0, 0, 5018, 5019, 7, 36, 0, 0, 5019, 879, 1, 0, 0, 0, 5020, 5023, 3, 866, 433, 0, 5021, 5023, 3, 746, 373, 0, 5022, 5020, 1, 0, 0, 0, 5022, 5021, 1, 0, 0, 0, 5023, 881, 1, 0, 0, 0, 5024, 5025, 3, 862, 431, 0, 5025, 5026, 3, 860, 430, 0, 5026, 5029, 1, 0, 0, 0, 5027, 5029, 3, 874, 437, 0, 5028, 5024, 1, 0, 0, 0, 5028, 5027, 1, 0, 0, 0, 5029, 883, 1, 0, 0, 0, 5030, 5031, 5, 167, 0, 0, 5031, 5032, 5, 96, 0, 0, 5032, 5033, 5, 139, 0, 0, 5033, 885, 1, 0, 0, 0, 5034, 5042, 5, 405, 0, 0, 5035, 5042, 5, 406, 0, 0, 5036, 5042, 5, 407, 0, 0, 5037, 5038, 5, 167, 0, 0, 5038, 5039, 5, 216, 0, 0, 5039, 5040, 5, 96, 0, 0, 5040, 5042, 5, 139, 0, 0, 5041, 5034, 1, 0, 0, 0, 5041, 5035, 1, 0, 0, 0, 5041, 5036, 1, 0, 0, 0, 5041, 5037, 1, 0, 0, 0, 5042, 887, 1, 0, 0, 0, 5043, 5052, 3, 868, 434, 0, 5044, 5045, 3, 886, 443, 0, 5045, 5046, 3, 868, 434, 0, 5046, 5051, 1, 0, 0, 0, 5047, 5048, 3, 884, 442, 0, 5048, 5049, 3, 868, 434, 0, 5049, 5051, 1, 0, 0, 0, 5050, 5044, 1, 0, 0, 0, 5050, 5047, 1, 0, 0, 0, 5051, 5054, 1, 0, 0, 0, 5052, 5050, 1, 0, 0, 0, 5052, 5053, 1, 0, 0, 0, 5053, 889, 1, 0, 0, 0, 5054, 5052, 1, 0, 0, 0, 5055, 5068, 5, 219, 0, 0, 5056, 5068, 5, 350, 0, 0, 5057, 5068, 5, 125, 0, 0, 5058, 5068, 5, 360, 0, 0, 5059, 5060, 5, 216, 0, 0, 5060, 5068, 5, 219, 0, 0, 5061, 5062, 5, 216, 0, 0, 5062, 5068, 5, 350, 0, 0, 5063, 5064, 5, 216, 0, 0, 5064, 5068, 5, 125, 0, 0, 5065, 5066, 5, 216, 0, 0, 5066, 5068, 5, 360, 0, 0, 5067, 5055, 1, 0, 0, 0, 5067, 5056, 1, 0, 0, 0, 5067, 5057, 1, 0, 0, 0, 5067, 5058, 1, 0, 0, 0, 5067, 5059, 1, 0, 0, 0, 5067, 5061, 1, 0, 0, 0, 5067, 5063, 1, 0, 0, 0, 5067, 5065, 1, 0, 0, 0, 5068, 891, 1, 0, 0, 0, 5069, 5072, 3, 888, 444, 0, 5070, 5071, 5, 167, 0, 0, 5071, 5073, 3, 890, 445, 0, 5072, 5070, 1, 0, 0, 0, 5072, 5073, 1, 0, 0, 0, 5073, 893, 1, 0, 0, 0, 5074, 5075, 5, 216, 0, 0, 5075, 895, 1, 0, 0, 0, 5076, 5078, 3, 894, 447, 0, 5077, 5076, 1, 0, 0, 0, 5078, 5081, 1, 0, 0, 0, 5079, 5077, 1, 0, 0, 0, 5079, 5080, 1, 0, 0, 0, 5080, 5082, 1, 0, 0, 0, 5081, 5079, 1, 0, 0, 0, 5082, 5083, 3, 892, 446, 0, 5083, 897, 1, 0, 0, 0, 5084, 5085, 5, 11, 0, 0, 5085, 899, 1, 0, 0, 0, 5086, 5092, 3, 896, 448, 0, 5087, 5088, 3, 898, 449, 0, 5088, 5089, 3, 896, 448, 0, 5089, 5091, 1, 0, 0, 0, 5090, 5087, 1, 0, 0, 0, 5091, 5094, 1, 0, 0, 0, 5092, 5090, 1, 0, 0, 0, 5092, 5093, 1, 0, 0, 0, 5093, 901, 1, 0, 0, 0, 5094, 5092, 1, 0, 0, 0, 5095, 5096, 5, 228, 0, 0, 5096, 903, 1, 0, 0, 0, 5097, 5103, 3, 900, 450, 0, 5098, 5099, 3, 902, 451, 0, 5099, 5100, 3, 900, 450, 0, 5100, 5102, 1, 0, 0, 0, 5101, 5098, 1, 0, 0, 0, 5102, 5105, 1, 0, 0, 0, 5103, 5101, 1, 0, 0, 0, 5103, 5104, 1, 0, 0, 0, 5104, 905, 1, 0, 0, 0, 5105, 5103, 1, 0, 0, 0, 5106, 5107, 7, 37, 0, 0, 5107, 907, 1, 0, 0, 0, 5108, 5109, 7, 37, 0, 0, 5109, 909, 1, 0, 0, 0, 5110, 5112, 3, 660, 330, 0, 5111, 5113, 3, 912, 456, 0, 5112, 5111, 1, 0, 0, 0, 5112, 5113, 1, 0, 0, 0, 5113, 911, 1, 0, 0, 0, 5114, 5115, 5, 237, 0, 0, 5115, 5116, 5, 399, 0, 0, 5116, 5121, 3, 914, 457, 0, 5117, 5118, 5, 397, 0, 0, 5118, 5120, 3, 914, 457, 0, 5119, 5117, 1, 0, 0, 0, 5120, 5123, 1, 0, 0, 0, 5121, 5119, 1, 0, 0, 0, 5121, 5122, 1, 0, 0, 0, 5122, 5124, 1, 0, 0, 0, 5123, 5121, 1, 0, 0, 0, 5124, 5125, 5, 400, 0, 0, 5125, 913, 1, 0, 0, 0, 5126, 5129, 3, 926, 463, 0, 5127, 5128, 5, 405, 0, 0, 5128, 5130, 3, 804, 402, 0, 5129, 5127, 1, 0, 0, 0, 5129, 5130, 1, 0, 0, 0, 5130, 915, 1, 0, 0, 0, 5131, 5132, 5, 399, 0, 0, 5132, 5137, 3, 918, 459, 0, 5133, 5134, 5, 397, 0, 0, 5134, 5136, 3, 918, 459, 0, 5135, 5133, 1, 0, 0, 0, 5136, 5139, 1, 0, 0, 0, 5137, 5135, 1, 0, 0, 0, 5137, 5138, 1, 0, 0, 0, 5138, 5140, 1, 0, 0, 0, 5139, 5137, 1, 0, 0, 0, 5140, 5141, 5, 400, 0, 0, 5141, 917, 1, 0, 0, 0, 5142, 5143, 3, 926, 463, 0, 5143, 5144, 3, 920, 460, 0, 5144, 5145, 3, 804, 402, 0, 5145, 919, 1, 0, 0, 0, 5146, 5149, 5, 184, 0, 0, 5147, 5149, 3, 922, 461, 0, 5148, 5146, 1, 0, 0, 0, 5148, 5147, 1, 0, 0, 0, 5149, 921, 1, 0, 0, 0, 5150, 5151, 7, 38, 0, 0, 5151, 923, 1, 0, 0, 0, 5152, 5153, 7, 39, 0, 0, 5153, 925, 1, 0, 0, 0, 5154, 5157, 5, 432, 0, 0, 5155, 5157, 3, 932, 466, 0, 5156, 5154, 1, 0, 0, 0, 5156, 5155, 1, 0, 0, 0, 5157, 927, 1, 0, 0, 0, 5158, 5161, 3, 926, 463, 0, 5159, 5160, 5, 395, 0, 0, 5160, 5162, 3, 926, 463, 0, 5161, 5159, 1, 0, 0, 0, 5161, 5162, 1, 0, 0, 0, 5162, 929, 1, 0, 0, 0, 5163, 5164, 3, 926, 463, 0, 5164, 931, 1, 0, 0, 0, 5165, 5166, 7, 40, 0, 0, 5166, 933, 1, 0, 0, 0, 5167, 5168, 7, 41, 0, 0, 5168, 935, 1, 0, 0, 0, 5169, 5170, 3, 938, 469, 0, 5170, 5171, 5, 0, 0, 1, 5171, 937, 1, 0, 0, 0, 5172, 5177, 3, 940, 470, 0, 5173, 5174, 5, 397, 0, 0, 5174, 5176, 3, 940, 470, 0, 5175, 5173, 1, 0, 0, 0, 5176, 5179, 1, 0, 0, 0, 5177, 5175, 1, 0, 0, 0, 5177, 5178, 1, 0, 0, 0, 5178, 939, 1, 0, 0, 0, 5179, 5177, 1, 0, 0, 0, 5180, 5185, 3, 942, 471, 0, 5181, 5182, 5, 399, 0, 0, 5182, 5183, 3, 944, 472, 0, 5183, 5184, 5, 400, 0, 0, 5184, 5186, 1, 0, 0, 0, 5185, 5181, 1, 0, 0, 0, 5185, 5186, 1, 0, 0, 0, 5186, 941, 1, 0, 0, 0, 5187, 5188, 7, 42, 0, 0, 5188, 943, 1, 0, 0, 0, 5189, 5194, 3, 946, 473, 0, 5190, 5191, 5, 397, 0, 0, 5191, 5193, 3, 946, 473, 0, 5192, 5190, 1, 0, 0, 0, 5193, 5196, 1, 0, 0, 0, 5194, 5192, 1, 0, 0, 0, 5194, 5195, 1, 0, 0, 0, 5195, 945, 1, 0, 0, 0, 5196, 5194, 1, 0, 0, 0, 5197, 5198, 7, 43, 0, 0, 5198, 947, 1, 0, 0, 0, 5199, 5200, 5, 249, 0, 0, 5200, 5201, 3, 926, 463, 0, 5201, 5202, 5, 139, 0, 0, 5202, 5203, 3, 394, 197, 0, 5203, 949, 1, 0, 0, 0, 5204, 5205, 5, 115, 0, 0, 5205, 5206, 3, 926, 463, 0, 5206, 5207, 5, 370, 0, 0, 5207, 5208, 3, 952, 476, 0, 5208, 951, 1, 0, 0, 0, 5209, 5214, 3, 804, 402, 0, 5210, 5211, 5, 397, 0, 0, 5211, 5213, 3, 804, 402, 0, 5212, 5210, 1, 0, 0, 0, 5213, 5216, 1, 0, 0, 0, 5214, 5212, 1, 0, 0, 0, 5214, 5215, 1, 0, 0, 0, 5215, 953, 1, 0, 0, 0, 5216, 5214, 1, 0, 0, 0, 5217, 5232, 3, 964, 482, 0, 5218, 5232, 3, 992, 496, 0, 5219, 5232, 3, 998, 499, 0, 5220, 5232, 3, 994, 497, 0, 5221, 5232, 3, 996, 498, 0, 5222, 5232, 3, 1020, 510, 0, 5223, 5232, 3, 1022, 511, 0, 5224, 5232, 3, 1024, 512, 0, 5225, 5232, 3, 1030, 515, 0, 5226, 5232, 3, 1032, 516, 0, 5227, 5232, 3, 1034, 517, 0, 5228, 5232, 3, 1036, 518, 0, 5229, 5232, 3, 1038, 519, 0, 5230, 5232, 3, 1040, 520, 0, 5231, 5217, 1, 0, 0, 0, 5231, 5218, 1, 0, 0, 0, 5231, 5219, 1, 0, 0, 0, 5231, 5220, 1, 0, 0, 0, 5231, 5221, 1, 0, 0, 0, 5231, 5222, 1, 0, 0, 0, 5231, 5223, 1, 0, 0, 0, 5231, 5224, 1, 0, 0, 0, 5231, 5225, 1, 0, 0, 0, 5231, 5226, 1, 0, 0, 0, 5231, 5227, 1, 0, 0, 0, 5231, 5228, 1, 0, 0, 0, 5231, 5229, 1, 0, 0, 0, 5231, 5230, 1, 0, 0, 0, 5232, 955, 1, 0, 0, 0, 5233, 5234, 5, 259, 0, 0, 5234, 5235, 5, 405, 0, 0, 5235, 5241, 5, 431, 0, 0, 5236, 5237, 5, 83, 0, 0, 5237, 5238, 5, 246, 0, 0, 5238, 5239, 5, 405, 0, 0, 5239, 5241, 3, 1000, 500, 0, 5240, 5233, 1, 0, 0, 0, 5240, 5236, 1, 0, 0, 0, 5241, 957, 1, 0, 0, 0, 5242, 5247, 3, 956, 478, 0, 5243, 5244, 5, 397, 0, 0, 5244, 5246, 3, 956, 478, 0, 5245, 5243, 1, 0, 0, 0, 5246, 5249, 1, 0, 0, 0, 5247, 5245, 1, 0, 0, 0, 5247, 5248, 1, 0, 0, 0, 5248, 959, 1, 0, 0, 0, 5249, 5247, 1, 0, 0, 0, 5250, 5254, 5, 259, 0, 0, 5251, 5252, 5, 83, 0, 0, 5252, 5254, 5, 246, 0, 0, 5253, 5250, 1, 0, 0, 0, 5253, 5251, 1, 0, 0, 0, 5254, 961, 1, 0, 0, 0, 5255, 5260, 3, 960, 480, 0, 5256, 5257, 5, 397, 0, 0, 5257, 5259, 3, 960, 480, 0, 5258, 5256, 1, 0, 0, 0, 5259, 5262, 1, 0, 0, 0, 5260, 5258, 1, 0, 0, 0, 5260, 5261, 1, 0, 0, 0, 5261, 963, 1, 0, 0, 0, 5262, 5260, 1, 0, 0, 0, 5263, 5264, 5, 58, 0, 0, 5264, 5265, 5, 280, 0, 0, 5265, 5267, 5, 243, 0, 0, 5266, 5268, 3, 44, 22, 0, 5267, 5266, 1, 0, 0, 0, 5267, 5268, 1, 0, 0, 0, 5268, 5278, 1, 0, 0, 0, 5269, 5270, 3, 926, 463, 0, 5270, 5271, 5, 184, 0, 0, 5271, 5272, 3, 926, 463, 0, 5272, 5279, 1, 0, 0, 0, 5273, 5276, 3, 926, 463, 0, 5274, 5275, 5, 387, 0, 0, 5275, 5277, 3, 958, 479, 0, 5276, 5274, 1, 0, 0, 0, 5276, 5277, 1, 0, 0, 0, 5277, 5279, 1, 0, 0, 0, 5278, 5269, 1, 0, 0, 0, 5278, 5273, 1, 0, 0, 0, 5279, 965, 1, 0, 0, 0, 5280, 5281, 5, 387, 0, 0, 5281, 5282, 5, 278, 0, 0, 5282, 967, 1, 0, 0, 0, 5283, 5285, 5, 2, 0, 0, 5284, 5286, 3, 966, 483, 0, 5285, 5284, 1, 0, 0, 0, 5285, 5286, 1, 0, 0, 0, 5286, 969, 1, 0, 0, 0, 5287, 5288, 7, 44, 0, 0, 5288, 971, 1, 0, 0, 0, 5289, 5290, 7, 45, 0, 0, 5290, 973, 1, 0, 0, 0, 5291, 5292, 5, 362, 0, 0, 5292, 975, 1, 0, 0, 0, 5293, 5294, 7, 46, 0, 0, 5294, 977, 1, 0, 0, 0, 5295, 5296, 7, 47, 0, 0, 5296, 979, 1, 0, 0, 0, 5297, 5298, 7, 48, 0, 0, 5298, 981, 1, 0, 0, 0, 5299, 5300, 7, 49, 0, 0, 5300, 983, 1, 0, 0, 0, 5301, 5302, 7, 50, 0, 0, 5302, 985, 1, 0, 0, 0, 5303, 5304, 7, 51, 0, 0, 5304, 987, 1, 0, 0, 0, 5305, 5306, 7, 52, 0, 0, 5306, 989, 1, 0, 0, 0, 5307, 5308, 7, 53, 0, 0, 5308, 991, 1, 0, 0, 0, 5309, 5310, 5, 9, 0, 0, 5310, 5311, 5, 280, 0, 0, 5311, 5312, 5, 243, 0, 0, 5312, 5330, 3, 926, 463, 0, 5313, 5331, 5, 373, 0, 0, 5314, 5331, 3, 972, 486, 0, 5315, 5316, 5, 304, 0, 0, 5316, 5331, 3, 958, 479, 0, 5317, 5318, 5, 363, 0, 0, 5318, 5331, 3, 962, 481, 0, 5319, 5320, 5, 274, 0, 0, 5320, 5321, 5, 341, 0, 0, 5321, 5331, 3, 926, 463, 0, 5322, 5324, 3, 968, 484, 0, 5323, 5325, 3, 970, 485, 0, 5324, 5323, 1, 0, 0, 0, 5324, 5325, 1, 0, 0, 0, 5325, 5331, 1, 0, 0, 0, 5326, 5328, 3, 970, 485, 0, 5327, 5329, 3, 968, 484, 0, 5328, 5327, 1, 0, 0, 0, 5328, 5329, 1, 0, 0, 0, 5329, 5331, 1, 0, 0, 0, 5330, 5313, 1, 0, 0, 0, 5330, 5314, 1, 0, 0, 0, 5330, 5315, 1, 0, 0, 0, 5330, 5317, 1, 0, 0, 0, 5330, 5319, 1, 0, 0, 0, 5330, 5322, 1, 0, 0, 0, 5330, 5326, 1, 0, 0, 0, 5331, 993, 1, 0, 0, 0, 5332, 5335, 3, 970, 485, 0, 5333, 5335, 3, 972, 486, 0, 5334, 5332, 1, 0, 0, 0, 5334, 5333, 1, 0, 0, 0, 5335, 5336, 1, 0, 0, 0, 5336, 5337, 5, 390, 0, 0, 5337, 5338, 5, 197, 0, 0, 5338, 995, 1, 0, 0, 0, 5339, 5351, 5, 278, 0, 0, 5340, 5341, 5, 3, 0, 0, 5341, 5342, 5, 280, 0, 0, 5342, 5343, 5, 243, 0, 0, 5343, 5344, 5, 387, 0, 0, 5344, 5352, 3, 926, 463, 0, 5345, 5346, 5, 280, 0, 0, 5346, 5347, 5, 243, 0, 0, 5347, 5348, 3, 926, 463, 0, 5348, 5349, 5, 387, 0, 0, 5349, 5350, 3, 926, 463, 0, 5350, 5352, 1, 0, 0, 0, 5351, 5340, 1, 0, 0, 0, 5351, 5345, 1, 0, 0, 0, 5352, 997, 1, 0, 0, 0, 5353, 5354, 5, 101, 0, 0, 5354, 5355, 5, 280, 0, 0, 5355, 5357, 5, 243, 0, 0, 5356, 5358, 3, 40, 20, 0, 5357, 5356, 1, 0, 0, 0, 5357, 5358, 1, 0, 0, 0, 5358, 5359, 1, 0, 0, 0, 5359, 5360, 3, 926, 463, 0, 5360, 999, 1, 0, 0, 0, 5361, 5366, 3, 926, 463, 0, 5362, 5363, 5, 395, 0, 0, 5363, 5365, 3, 926, 463, 0, 5364, 5362, 1, 0, 0, 0, 5365, 5368, 1, 0, 0, 0, 5366, 5364, 1, 0, 0, 0, 5366, 5367, 1, 0, 0, 0, 5367, 1001, 1, 0, 0, 0, 5368, 5366, 1, 0, 0, 0, 5369, 5370, 3, 1010, 505, 0, 5370, 1003, 1, 0, 0, 0, 5371, 5372, 3, 1002, 501, 0, 5372, 5373, 5, 0, 0, 1, 5373, 1005, 1, 0, 0, 0, 5374, 5379, 3, 1008, 504, 0, 5375, 5376, 5, 228, 0, 0, 5376, 5378, 3, 1008, 504, 0, 5377, 5375, 1, 0, 0, 0, 5378, 5381, 1, 0, 0, 0, 5379, 5377, 1, 0, 0, 0, 5379, 5380, 1, 0, 0, 0, 5380, 1007, 1, 0, 0, 0, 5381, 5379, 1, 0, 0, 0, 5382, 5387, 3, 1010, 505, 0, 5383, 5384, 5, 11, 0, 0, 5384, 5386, 3, 1010, 505, 0, 5385, 5383, 1, 0, 0, 0, 5386, 5389, 1, 0, 0, 0, 5387, 5385, 1, 0, 0, 0, 5387, 5388, 1, 0, 0, 0, 5388, 1009, 1, 0, 0, 0, 5389, 5387, 1, 0, 0, 0, 5390, 5391, 3, 926, 463, 0, 5391, 5392, 3, 1014, 507, 0, 5392, 5393, 3, 1012, 506, 0, 5393, 1011, 1, 0, 0, 0, 5394, 5395, 7, 24, 0, 0, 5395, 1013, 1, 0, 0, 0, 5396, 5397, 5, 411, 0, 0, 5397, 1015, 1, 0, 0, 0, 5398, 5403, 5, 176, 0, 0, 5399, 5400, 5, 211, 0, 0, 5400, 5401, 5, 341, 0, 0, 5401, 5403, 3, 1000, 500, 0, 5402, 5398, 1, 0, 0, 0, 5402, 5399, 1, 0, 0, 0, 5403, 1017, 1, 0, 0, 0, 5404, 5405, 3, 1016, 508, 0, 5405, 5406, 5, 0, 0, 1, 5406, 1019, 1, 0, 0, 0, 5407, 5408, 5, 58, 0, 0, 5408, 5409, 5, 348, 0, 0, 5409, 5410, 3, 926, 463, 0, 5410, 5411, 5, 395, 0, 0, 5411, 5412, 3, 926, 463, 0, 5412, 5413, 5, 383, 0, 0, 5413, 5414, 3, 1002, 501, 0, 5414, 5415, 5, 99, 0, 0, 5415, 5416, 3, 1016, 508, 0, 5416, 1021, 1, 0, 0, 0, 5417, 5418, 5, 9, 0, 0, 5418, 5419, 5, 348, 0, 0, 5419, 5420, 3, 926, 463, 0, 5420, 5421, 5, 395, 0, 0, 5421, 5438, 3, 926, 463, 0, 5422, 5423, 5, 383, 0, 0, 5423, 5424, 3, 1002, 501, 0, 5424, 5425, 5, 99, 0, 0, 5425, 5426, 3, 1016, 508, 0, 5426, 5439, 1, 0, 0, 0, 5427, 5428, 5, 4, 0, 0, 5428, 5432, 5, 341, 0, 0, 5429, 5430, 5, 101, 0, 0, 5430, 5432, 5, 139, 0, 0, 5431, 5427, 1, 0, 0, 0, 5431, 5429, 1, 0, 0, 0, 5432, 5436, 1, 0, 0, 0, 5433, 5434, 5, 246, 0, 0, 5434, 5437, 3, 1000, 500, 0, 5435, 5437, 5, 362, 0, 0, 5436, 5433, 1, 0, 0, 0, 5436, 5435, 1, 0, 0, 0, 5437, 5439, 1, 0, 0, 0, 5438, 5422, 1, 0, 0, 0, 5438, 5431, 1, 0, 0, 0, 5439, 1023, 1, 0, 0, 0, 5440, 5441, 5, 101, 0, 0, 5441, 5442, 5, 348, 0, 0, 5442, 5443, 3, 926, 463, 0, 5443, 5444, 5, 395, 0, 0, 5444, 5445, 3, 926, 463, 0, 5445, 1025, 1, 0, 0, 0, 5446, 5447, 5, 8, 0, 0, 5447, 5448, 5, 405, 0, 0, 5448, 5459, 5, 431, 0, 0, 5449, 5450, 5, 259, 0, 0, 5450, 5451, 5, 405, 0, 0, 5451, 5459, 5, 431, 0, 0, 5452, 5453, 5, 294, 0, 0, 5453, 5454, 5, 405, 0, 0, 5454, 5459, 5, 426, 0, 0, 5455, 5456, 5, 240, 0, 0, 5456, 5457, 5, 405, 0, 0, 5457, 5459, 3, 1000, 500, 0, 5458, 5446, 1, 0, 0, 0, 5458, 5449, 1, 0, 0, 0, 5458, 5452, 1, 0, 0, 0, 5458, 5455, 1, 0, 0, 0, 5459, 1027, 1, 0, 0, 0, 5460, 5465, 3, 1026, 513, 0, 5461, 5462, 5, 397, 0, 0, 5462, 5464, 3, 1026, 513, 0, 5463, 5461, 1, 0, 0, 0, 5464, 5467, 1, 0, 0, 0, 5465, 5463, 1, 0, 0, 0, 5465, 5466, 1, 0, 0, 0, 5466, 1029, 1, 0, 0, 0, 5467, 5465, 1, 0, 0, 0, 5468, 5469, 5, 58, 0, 0, 5469, 5470, 5, 246, 0, 0, 5470, 5471, 3, 926, 463, 0, 5471, 5472, 5, 395, 0, 0, 5472, 5473, 3, 1000, 500, 0, 5473, 5474, 5, 387, 0, 0, 5474, 5475, 3, 1028, 514, 0, 5475, 1031, 1, 0, 0, 0, 5476, 5477, 5, 9, 0, 0, 5477, 5478, 5, 246, 0, 0, 5478, 5479, 3, 926, 463, 0, 5479, 5480, 5, 395, 0, 0, 5480, 5488, 3, 1000, 500, 0, 5481, 5482, 5, 304, 0, 0, 5482, 5489, 3, 1028, 514, 0, 5483, 5484, 5, 363, 0, 0, 5484, 5489, 5, 294, 0, 0, 5485, 5486, 7, 54, 0, 0, 5486, 5487, 5, 348, 0, 0, 5487, 5489, 3, 926, 463, 0, 5488, 5481, 1, 0, 0, 0, 5488, 5483, 1, 0, 0, 0, 5488, 5485, 1, 0, 0, 0, 5489, 1033, 1, 0, 0, 0, 5490, 5491, 5, 101, 0, 0, 5491, 5492, 5, 246, 0, 0, 5492, 5493, 3, 926, 463, 0, 5493, 5494, 5, 395, 0, 0, 5494, 5495, 3, 1000, 500, 0, 5495, 1035, 1, 0, 0, 0, 5496, 5497, 5, 58, 0, 0, 5497, 5498, 7, 55, 0, 0, 5498, 5499, 5, 200, 0, 0, 5499, 5500, 5, 426, 0, 0, 5500, 5501, 5, 154, 0, 0, 5501, 5505, 3, 926, 463, 0, 5502, 5503, 5, 341, 0, 0, 5503, 5506, 3, 1000, 500, 0, 5504, 5506, 3, 974, 487, 0, 5505, 5502, 1, 0, 0, 0, 5505, 5504, 1, 0, 0, 0, 5506, 5510, 1, 0, 0, 0, 5507, 5508, 5, 387, 0, 0, 5508, 5509, 5, 229, 0, 0, 5509, 5511, 5, 431, 0, 0, 5510, 5507, 1, 0, 0, 0, 5510, 5511, 1, 0, 0, 0, 5511, 1037, 1, 0, 0, 0, 5512, 5513, 5, 9, 0, 0, 5513, 5514, 7, 55, 0, 0, 5514, 5515, 5, 200, 0, 0, 5515, 5516, 5, 426, 0, 0, 5516, 5517, 5, 154, 0, 0, 5517, 5521, 3, 926, 463, 0, 5518, 5519, 5, 341, 0, 0, 5519, 5522, 3, 1000, 500, 0, 5520, 5522, 3, 974, 487, 0, 5521, 5518, 1, 0, 0, 0, 5521, 5520, 1, 0, 0, 0, 5522, 5526, 1, 0, 0, 0, 5523, 5524, 5, 387, 0, 0, 5524, 5525, 5, 229, 0, 0, 5525, 5527, 5, 431, 0, 0, 5526, 5523, 1, 0, 0, 0, 5526, 5527, 1, 0, 0, 0, 5527, 1039, 1, 0, 0, 0, 5528, 5529, 5, 101, 0, 0, 5529, 5530, 7, 55, 0, 0, 5530, 5531, 5, 200, 0, 0, 5531, 5532, 5, 426, 0, 0, 5532, 5533, 5, 154, 0, 0, 5533, 5534, 3, 926, 463, 0, 5534, 1041, 1, 0, 0, 0, 653, 1045, 1052, 1055, 1061, 1067, 1074, 1084, 1087, 1091, 1111, 1116, 1121, 1127, 1134, 1147, 1151, 1155, 1160, 1167, 1171, 1176, 1183, 1187, 1198, 1204, 1211, 1260, 1288, 1292, 1296, 1299, 1302, 1307, 1313, 1317, 1323, 1325, 1342, 1354, 1358, 1365, 1373, 1376, 1381, 1385, 1388, 1398, 1406, 1410, 1413, 1417, 1421, 1424, 1429, 1435, 1440, 1445, 1449, 1460, 1462, 1466, 1476, 1480, 1486, 1489, 1496, 1501, 1509, 1514, 1518, 1526, 1531, 1537, 1543, 1546, 1549, 1552, 1561, 1569, 1574, 1582, 1589, 1592, 1595, 1597, 1605, 1608, 1611, 1614, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1637, 1649, 1655, 1663, 1665, 1675, 1681, 1696, 1713, 1718, 1722, 1726, 1733, 1740, 1746, 1750, 1753, 1760, 1783, 1788, 1792, 1800, 1809, 1813, 1819, 1825, 1832, 1835, 1841, 1848, 1856, 1865, 1874, 1881, 1901, 1908, 1910, 1917, 1927, 1935, 1939, 1943, 1956, 1965, 1981, 1985, 1990, 1995, 1998, 2001, 2005, 2008, 2011, 2016, 2024, 2028, 2035, 2038, 2041, 2044, 2056, 2062, 2088, 2096, 2100, 2103, 2106, 2109, 2112, 2115, 2118, 2121, 2130, 2140, 2143, 2163, 2169, 2175, 2178, 2180, 2187, 2194, 2207, 2212, 2221, 2229, 2237, 2247, 2260, 2273, 2294, 2298, 2313, 2319, 2322, 2325, 2328, 2331, 2335, 2349, 2357, 2360, 2375, 2409, 2417, 2422, 2430, 2435, 2440, 2450, 2458, 2466, 2474, 2482, 2486, 2496, 2500, 2508, 2517, 2520, 2524, 2531, 2537, 2541, 2547, 2551, 2563, 2572, 2583, 2587, 2594, 2606, 2613, 2622, 2625, 2632, 2638, 2644, 2647, 2650, 2656, 2660, 2664, 2669, 2673, 2677, 2681, 2689, 2693, 2697, 2701, 2705, 2713, 2717, 2721, 2729, 2734, 2739, 2743, 2747, 2754, 2763, 2771, 2783, 2801, 2804, 2810, 2836, 2839, 2845, 2853, 2861, 2874, 2881, 2884, 2887, 2890, 2893, 2896, 2899, 2902, 2905, 2908, 2911, 2916, 2919, 2922, 2925, 2928, 2931, 2934, 2937, 2940, 2943, 2946, 2948, 2954, 2958, 2961, 2964, 2967, 2970, 2973, 2980, 2984, 2987, 2990, 2993, 2996, 2999, 3006, 3009, 3017, 3021, 3028, 3030, 3033, 3038, 3041, 3045, 3050, 3056, 3062, 3070, 3078, 3085, 3091, 3100, 3103, 3107, 3120, 3124, 3135, 3142, 3146, 3151, 3154, 3164, 3166, 3170, 3177, 3182, 3202, 3209, 3232, 3248, 3265, 3271, 3288, 3301, 3305, 3309, 3316, 3344, 3351, 3356, 3361, 3366, 3371, 3379, 3385, 3389, 3392, 3395, 3401, 3408, 3418, 3422, 3427, 3431, 3437, 3444, 3451, 3462, 3471, 3475, 3478, 3481, 3489, 3492, 3500, 3503, 3511, 3515, 3520, 3524, 3533, 3549, 3564, 3566, 3582, 3589, 3606, 3609, 3612, 3615, 3621, 3644, 3652, 3666, 3669, 3674, 3700, 3704, 3707, 3710, 3714, 3719, 3722, 3725, 3728, 3731, 3734, 3740, 3743, 3746, 3749, 3752, 3755, 3758, 3761, 3764, 3767, 3771, 3773, 3779, 3784, 3787, 3790, 3793, 3796, 3802, 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3826, 3829, 3833, 3835, 3837, 3842, 3846, 3849, 3852, 3857, 3875, 3884, 3896, 3904, 3916, 3919, 3925, 3932, 3939, 3946, 3953, 3962, 3966, 3973, 3978, 3982, 3998, 4002, 4004, 4007, 4020, 4023, 4026, 4038, 4041, 4048, 4057, 4062, 4064, 4066, 4083, 4086, 4095, 4101, 4105, 4108, 4111, 4114, 4117, 4129, 4133, 4136, 4139, 4147, 4154, 4157, 4164, 4167, 4172, 4179, 4187, 4193, 4198, 4202, 4207, 4214, 4228, 4231, 4235, 4252, 4260, 4263, 4276, 4285, 4288, 4294, 4297, 4302, 4305, 4314, 4328, 4334, 4336, 4344, 4347, 4357, 4362, 4364, 4376, 4382, 4384, 4391, 4398, 4407, 4417, 4420, 4423, 4426, 4430, 4439, 4448, 4456, 4462, 4472, 4479, 4487, 4497, 4507, 4512, 4516, 4520, 4526, 4547, 4553, 4557, 4561, 4564, 4570, 4575, 4578, 4582, 4590, 4600, 4610, 4629, 4636, 4639, 4650, 4657, 4660, 4662, 4673, 4683, 4685, 4691, 4697, 4701, 4707, 4716, 4729, 4733, 4745, 4749, 4758, 4770, 4787, 4802, 4812, 4820, 4825, 4846, 4850, 4866, 4881, 4890, 4892, 4900, 4913, 4924, 4935, 4946, 4957, 4968, 4978, 4987, 4991, 4999, 5012, 5022, 5028, 5041, 5050, 5052, 5067, 5072, 5079, 5092, 5103, 5112, 5121, 5129, 5137, 5148, 5156, 5161, 5177, 5185, 5194, 5214, 5231, 5240, 5247, 5253, 5260, 5267, 5276, 5278, 5285, 5324, 5328, 5330, 5334, 5351, 5357, 5366, 5379, 5387, 5402, 5431, 5436, 5438, 5458, 5465, 5488, 5505, 5510, 5521, 5526] \ No newline at end of file diff --git a/src/lib/hive/HiveSqlParser.ts b/src/lib/hive/HiveSqlParser.ts index 543b4c8..a51428d 100644 --- a/src/lib/hive/HiveSqlParser.ts +++ b/src/lib/hive/HiveSqlParser.ts @@ -17188,9 +17188,9 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 598, HiveSqlParser.RULE_createTableStatement); let _la: number; try { - this.state = 3831; + this.state = 3837; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 437, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 439, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { @@ -17240,7 +17240,7 @@ export class HiveSqlParser extends SQLParserBase { this.state = 3716; localContext._name = this.tableNameCreate(); - this.state = 3770; + this.state = 3773; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_LIKE: @@ -17297,6 +17297,16 @@ export class HiveSqlParser extends SQLParserBase { } } + this.state = 3734; + this.errorHandler.sync(this); + _la = this.tokenStream.LA(1); + if (_la === 183) { + { + this.state = 3733; + this.tableLifecycle(); + } + } + } break; case HiveSqlParser.EOF: @@ -17356,37 +17366,27 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.SEMICOLON: case HiveSqlParser.LPAREN: { - this.state = 3737; + this.state = 3740; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 408, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 409, this.context) ) { case 1: { - this.state = 3733; + this.state = 3736; this.match(HiveSqlParser.LPAREN); - this.state = 3734; + this.state = 3737; this.columnNameTypeOrConstraintList(); - this.state = 3735; + this.state = 3738; this.match(HiveSqlParser.RPAREN); } break; } - this.state = 3740; + this.state = 3743; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 47) { - { - this.state = 3739; - this.tableComment(); - } - } - - this.state = 3743; - this.errorHandler.sync(this); - _la = this.tokenStream.LA(1); - if (_la === 183) { { this.state = 3742; - this.tableLifecycle(); + this.tableComment(); } } @@ -17460,14 +17460,24 @@ export class HiveSqlParser extends SQLParserBase { } } - this.state = 3768; + this.state = 3767; + this.errorHandler.sync(this); + _la = this.tokenStream.LA(1); + if (_la === 183) { + { + this.state = 3766; + this.tableLifecycle(); + } + } + + this.state = 3771; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 3766; + this.state = 3769; this.match(HiveSqlParser.KW_AS); - this.state = 3767; + this.state = 3770; this.selectStatementWithCTE(); } } @@ -17482,71 +17492,81 @@ export class HiveSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 3772; + this.state = 3775; this.match(HiveSqlParser.KW_CREATE); - this.state = 3773; - localContext._mgd = this.match(HiveSqlParser.KW_MANAGED); - this.state = 3774; - this.match(HiveSqlParser.KW_TABLE); this.state = 3776; + localContext._mgd = this.match(HiveSqlParser.KW_MANAGED); + this.state = 3777; + this.match(HiveSqlParser.KW_TABLE); + this.state = 3779; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 151) { { - this.state = 3775; + this.state = 3778; this.ifNotExists(); } } - this.state = 3778; + this.state = 3781; localContext._name = this.tableNameCreate(); - this.state = 3829; + this.state = 3835; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_LIKE: { - this.state = 3779; + this.state = 3782; this.likeTableOrFile(); - this.state = 3781; + this.state = 3784; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 291) { - { - this.state = 3780; - this.tableRowFormat(); - } - } - - this.state = 3784; - this.errorHandler.sync(this); - _la = this.tokenStream.LA(1); - if (_la === 321) { { this.state = 3783; - this.tableFileFormat(); + this.tableRowFormat(); } } this.state = 3787; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); - if (_la === 189) { + if (_la === 321) { { this.state = 3786; - this.tableLocation(); + this.tableFileFormat(); } } this.state = 3790; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); - if (_la === 332) { + if (_la === 189) { { this.state = 3789; + this.tableLocation(); + } + } + + this.state = 3793; + this.errorHandler.sync(this); + _la = this.tokenStream.LA(1); + if (_la === 332) { + { + this.state = 3792; this.tablePropertiesPrefixed(); } } + this.state = 3796; + this.errorHandler.sync(this); + _la = this.tokenStream.LA(1); + if (_la === 183) { + { + this.state = 3795; + this.tableLifecycle(); + } + } + } break; case HiveSqlParser.EOF: @@ -17606,118 +17626,118 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.SEMICOLON: case HiveSqlParser.LPAREN: { - this.state = 3796; + this.state = 3802; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 425, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 427, this.context) ) { case 1: { - this.state = 3792; + this.state = 3798; this.match(HiveSqlParser.LPAREN); - this.state = 3793; + this.state = 3799; this.columnNameTypeOrConstraintList(); - this.state = 3794; + this.state = 3800; this.match(HiveSqlParser.RPAREN); } break; } - this.state = 3799; + this.state = 3805; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 47) { - { - this.state = 3798; - this.tableComment(); - } - } - - this.state = 3802; - this.errorHandler.sync(this); - _la = this.tokenStream.LA(1); - if (_la === 183) { - { - this.state = 3801; - this.tableLifecycle(); - } - } - - this.state = 3805; - this.errorHandler.sync(this); - _la = this.tokenStream.LA(1); - if (_la === 238) { { this.state = 3804; - this.createTablePartitionSpec(); + this.tableComment(); } } this.state = 3808; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); - if (_la === 42) { + if (_la === 238) { { this.state = 3807; - this.tableBuckets(); + this.createTablePartitionSpec(); } } this.state = 3811; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); - if (_la === 310) { + if (_la === 42) { { this.state = 3810; - this.tableSkewed(); + this.tableBuckets(); } } this.state = 3814; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); - if (_la === 291) { + if (_la === 310) { { this.state = 3813; - this.tableRowFormat(); + this.tableSkewed(); } } this.state = 3817; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); - if (_la === 321) { + if (_la === 291) { { this.state = 3816; - this.tableFileFormat(); + this.tableRowFormat(); } } this.state = 3820; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); - if (_la === 189) { + if (_la === 321) { { this.state = 3819; - this.tableLocation(); + this.tableFileFormat(); } } this.state = 3823; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); - if (_la === 332) { + if (_la === 189) { { this.state = 3822; + this.tableLocation(); + } + } + + this.state = 3826; + this.errorHandler.sync(this); + _la = this.tokenStream.LA(1); + if (_la === 332) { + { + this.state = 3825; this.tablePropertiesPrefixed(); } } - this.state = 3827; + this.state = 3829; + this.errorHandler.sync(this); + _la = this.tokenStream.LA(1); + if (_la === 183) { + { + this.state = 3828; + this.tableLifecycle(); + } + } + + this.state = 3833; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 3825; + this.state = 3831; this.match(HiveSqlParser.KW_AS); - this.state = 3826; + this.state = 3832; this.selectStatementWithCTE(); } } @@ -17752,62 +17772,62 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3833; + this.state = 3839; this.match(HiveSqlParser.KW_CREATE); - this.state = 3834; + this.state = 3840; this.match(HiveSqlParser.KW_DATACONNECTOR); - this.state = 3836; + this.state = 3842; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 151) { { - this.state = 3835; + this.state = 3841; this.ifNotExists(); } } - this.state = 3838; + this.state = 3844; localContext._name = this.id_(); - this.state = 3840; + this.state = 3846; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 352) { { - this.state = 3839; + this.state = 3845; this.dataConnectorType(); } } - this.state = 3843; + this.state = 3849; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 367) { { - this.state = 3842; + this.state = 3848; this.dataConnectorUrl(); } } - this.state = 3846; + this.state = 3852; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 47) { { - this.state = 3845; + this.state = 3851; this.dataConnectorComment(); } } - this.state = 3851; + this.state = 3857; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 442, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 444, this.context) ) { case 1: { - this.state = 3848; + this.state = 3854; this.match(HiveSqlParser.KW_WITH); - this.state = 3849; + this.state = 3855; this.match(HiveSqlParser.KW_DCPROPERTIES); - this.state = 3850; + this.state = 3856; localContext._dcprops = this.dcProperties(); } break; @@ -17834,9 +17854,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3853; + this.state = 3859; this.match(HiveSqlParser.KW_COMMENT); - this.state = 3854; + this.state = 3860; localContext._comment = this.match(HiveSqlParser.StringLiteral); } } @@ -17860,9 +17880,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3856; + this.state = 3862; this.match(HiveSqlParser.KW_URL); - this.state = 3857; + this.state = 3863; localContext._url = this.match(HiveSqlParser.StringLiteral); } } @@ -17886,9 +17906,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3859; + this.state = 3865; this.match(HiveSqlParser.KW_TYPE); - this.state = 3860; + this.state = 3866; localContext._dcType = this.match(HiveSqlParser.StringLiteral); } } @@ -17912,11 +17932,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3862; + this.state = 3868; this.match(HiveSqlParser.LPAREN); - this.state = 3863; + this.state = 3869; this.dbPropertiesList(); - this.state = 3864; + this.state = 3870; this.match(HiveSqlParser.RPAREN); } } @@ -17941,21 +17961,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3866; + this.state = 3872; this.match(HiveSqlParser.KW_DROP); - this.state = 3867; + this.state = 3873; this.match(HiveSqlParser.KW_DATACONNECTOR); - this.state = 3869; + this.state = 3875; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 151) { { - this.state = 3868; + this.state = 3874; this.ifExists(); } } - this.state = 3871; + this.state = 3877; this.id_(); } } @@ -17980,23 +18000,23 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3878; + this.state = 3884; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 3252454782) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 94072755) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 3203280837) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3774298979) !== 0) || ((((_la - 130)) & ~0x1F) === 0 && ((1 << (_la - 130)) & 1985876353) !== 0) || ((((_la - 168)) & ~0x1F) === 0 && ((1 << (_la - 168)) & 3152987127) !== 0) || ((((_la - 200)) & ~0x1F) === 0 && ((1 << (_la - 200)) & 215407575) !== 0) || ((((_la - 232)) & ~0x1F) === 0 && ((1 << (_la - 232)) & 1859156443) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & 4039901127) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & 3755917179) !== 0) || ((((_la - 330)) & ~0x1F) === 0 && ((1 << (_la - 330)) & 3402225181) !== 0) || ((((_la - 362)) & ~0x1F) === 0 && ((1 << (_la - 362)) & 4238323319) !== 0) || _la === 394 || _la === 432) { { { - this.state = 3873; + this.state = 3879; this.id_(); - this.state = 3874; + this.state = 3880; this.match(HiveSqlParser.DOT); } } - this.state = 3880; + this.state = 3886; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 3881; + this.state = 3887; this.match(HiveSqlParser.STAR); } } @@ -18020,7 +18040,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3883; + this.state = 3889; this.match(HiveSqlParser.KW_DEFAULT); } } @@ -18045,21 +18065,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3885; + this.state = 3891; this.expression(); - this.state = 3890; + this.state = 3896; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 3886; + this.state = 3892; this.match(HiveSqlParser.COMMA); - this.state = 3887; + this.state = 3893; this.expression(); } } - this.state = 3892; + this.state = 3898; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -18086,21 +18106,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3893; + this.state = 3899; this.id_(); - this.state = 3898; + this.state = 3904; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 3894; + this.state = 3900; this.match(HiveSqlParser.COMMA); - this.state = 3895; + this.state = 3901; this.id_(); } } - this.state = 3900; + this.state = 3906; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -18126,9 +18146,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3901; + this.state = 3907; this.match(HiveSqlParser.KW_FROM); - this.state = 3902; + this.state = 3908; this.fromSource(); } } @@ -18151,29 +18171,29 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 622, HiveSqlParser.RULE_fromSource); let _la: number; try { - this.state = 3913; + this.state = 3919; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_UNIQUEJOIN: this.enterOuterAlt(localContext, 1); { - this.state = 3904; + this.state = 3910; this.uniqueJoinToken(); - this.state = 3905; + this.state = 3911; this.uniqueJoinSource(); - this.state = 3908; + this.state = 3914; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 3906; + this.state = 3912; this.match(HiveSqlParser.COMMA); - this.state = 3907; + this.state = 3913; this.uniqueJoinSource(); } } - this.state = 3910; + this.state = 3916; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 397); @@ -18423,7 +18443,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.Identifier: this.enterOuterAlt(localContext, 2); { - this.state = 3912; + this.state = 3918; this.joinSource(); } break; @@ -18450,109 +18470,109 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 624, HiveSqlParser.RULE_atomjoinSource); try { let alternative: number; - this.state = 3947; + this.state = 3953; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 453, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 455, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 3915; + this.state = 3921; this.tableSource(); - this.state = 3919; - this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 449, this.context); - while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { - if (alternative === 1) { - { - { - this.state = 3916; - this.lateralView(); - } - } - } - this.state = 3921; - this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 449, this.context); - } - } - break; - case 2: - this.enterOuterAlt(localContext, 2); - { - this.state = 3922; - this.virtualTableSource(); - this.state = 3926; - this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 450, this.context); - while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { - if (alternative === 1) { - { - { - this.state = 3923; - this.lateralView(); - } - } - } - this.state = 3928; - this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 450, this.context); - } - } - break; - case 3: - this.enterOuterAlt(localContext, 3); - { - this.state = 3929; - this.subQuerySource(); - this.state = 3933; + this.state = 3925; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 451, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 3930; + this.state = 3922; this.lateralView(); } } } - this.state = 3935; + this.state = 3927; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 451, this.context); } } break; - case 4: - this.enterOuterAlt(localContext, 4); + case 2: + this.enterOuterAlt(localContext, 2); { - this.state = 3936; - this.partitionedTableFunction(); - this.state = 3940; + this.state = 3928; + this.virtualTableSource(); + this.state = 3932; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 452, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 3937; + this.state = 3929; this.lateralView(); } } } - this.state = 3942; + this.state = 3934; this.errorHandler.sync(this); alternative = this.interpreter.adaptivePredict(this.tokenStream, 452, this.context); } } break; + case 3: + this.enterOuterAlt(localContext, 3); + { + this.state = 3935; + this.subQuerySource(); + this.state = 3939; + this.errorHandler.sync(this); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 453, this.context); + while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { + if (alternative === 1) { + { + { + this.state = 3936; + this.lateralView(); + } + } + } + this.state = 3941; + this.errorHandler.sync(this); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 453, this.context); + } + } + break; + case 4: + this.enterOuterAlt(localContext, 4); + { + this.state = 3942; + this.partitionedTableFunction(); + this.state = 3946; + this.errorHandler.sync(this); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 454, this.context); + while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { + if (alternative === 1) { + { + { + this.state = 3943; + this.lateralView(); + } + } + } + this.state = 3948; + this.errorHandler.sync(this); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 454, this.context); + } + } + break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 3943; + this.state = 3949; this.match(HiveSqlParser.LPAREN); - this.state = 3944; + this.state = 3950; this.joinSource(); - this.state = 3945; + this.state = 3951; this.match(HiveSqlParser.RPAREN); } break; @@ -18579,34 +18599,34 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3949; + this.state = 3955; this.atomjoinSource(); - this.state = 3960; + this.state = 3966; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 60 || ((((_la - 140)) & ~0x1F) === 0 && ((1 << (_la - 140)) & 2147614721) !== 0) || _la === 180 || _la === 285 || _la === 397) { { { - this.state = 3950; - this.joinToken(); - this.state = 3951; - this.joinSourcePart(); this.state = 3956; + this.joinToken(); + this.state = 3957; + this.joinSourcePart(); + this.state = 3962; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ON: { - this.state = 3952; + this.state = 3958; this.match(HiveSqlParser.KW_ON); - this.state = 3953; + this.state = 3959; this.expression(); } break; case HiveSqlParser.KW_USING: { - this.state = 3954; + this.state = 3960; this.match(HiveSqlParser.KW_USING); - this.state = 3955; + this.state = 3961; this.columnParenthesesList(); } break; @@ -18684,7 +18704,7 @@ export class HiveSqlParser extends SQLParserBase { } } } - this.state = 3962; + this.state = 3968; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -18711,49 +18731,49 @@ export class HiveSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 3967; + this.state = 3973; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 456, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 458, this.context) ) { case 1: { - this.state = 3963; + this.state = 3969; this.tableSource(); } break; case 2: { - this.state = 3964; + this.state = 3970; this.virtualTableSource(); } break; case 3: { - this.state = 3965; + this.state = 3971; this.subQuerySource(); } break; case 4: { - this.state = 3966; + this.state = 3972; this.partitionedTableFunction(); } break; } - this.state = 3972; + this.state = 3978; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 457, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 459, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 3969; + this.state = 3975; this.lateralView(); } } } - this.state = 3974; + this.state = 3980; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 457, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 459, this.context); } } } @@ -18778,19 +18798,19 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3976; + this.state = 3982; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 250) { { - this.state = 3975; + this.state = 3981; this.match(HiveSqlParser.KW_PRESERVE); } } - this.state = 3978; + this.state = 3984; this.uniqueJoinTableSource(); - this.state = 3979; + this.state = 3985; this.uniqueJoinExpr(); } } @@ -18814,11 +18834,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3981; + this.state = 3987; this.match(HiveSqlParser.LPAREN); - this.state = 3982; + this.state = 3988; this.expressionList(); - this.state = 3983; + this.state = 3989; this.match(HiveSqlParser.RPAREN); } } @@ -18842,7 +18862,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 3985; + this.state = 3991; this.match(HiveSqlParser.KW_UNIQUEJOIN); } } @@ -18865,13 +18885,13 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 636, HiveSqlParser.RULE_joinToken); let _la: number; try { - this.state = 4001; + this.state = 4007; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.COMMA: this.enterOuterAlt(localContext, 1); { - this.state = 3987; + this.state = 3993; this.match(HiveSqlParser.COMMA); } break; @@ -18883,25 +18903,25 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_RIGHT: this.enterOuterAlt(localContext, 2); { - this.state = 3998; + this.state = 4004; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_INNER: { - this.state = 3988; + this.state = 3994; this.match(HiveSqlParser.KW_INNER); } break; case HiveSqlParser.KW_CROSS: { - this.state = 3989; + this.state = 3995; this.match(HiveSqlParser.KW_CROSS); } break; case HiveSqlParser.KW_FULL: case HiveSqlParser.KW_RIGHT: { - this.state = 3990; + this.state = 3996; _la = this.tokenStream.LA(1); if(!(_la === 140 || _la === 285)) { this.errorHandler.recoverInline(this); @@ -18910,12 +18930,12 @@ export class HiveSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 3992; + this.state = 3998; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 231) { { - this.state = 3991; + this.state = 3997; this.match(HiveSqlParser.KW_OUTER); } } @@ -18924,14 +18944,14 @@ export class HiveSqlParser extends SQLParserBase { break; case HiveSqlParser.KW_LEFT: { - this.state = 3994; + this.state = 4000; this.match(HiveSqlParser.KW_LEFT); - this.state = 3996; + this.state = 4002; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 12 || _la === 231 || _la === 300) { { - this.state = 3995; + this.state = 4001; _la = this.tokenStream.LA(1); if(!(_la === 12 || _la === 231 || _la === 300)) { this.errorHandler.recoverInline(this); @@ -18950,7 +18970,7 @@ export class HiveSqlParser extends SQLParserBase { default: break; } - this.state = 4000; + this.state = 4006; this.match(HiveSqlParser.KW_JOIN); } break; @@ -18978,48 +18998,48 @@ export class HiveSqlParser extends SQLParserBase { let _la: number; try { let alternative: number; - this.state = 4060; + this.state = 4066; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 472, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 474, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4003; + this.state = 4009; this.match(HiveSqlParser.KW_LATERAL); - this.state = 4004; + this.state = 4010; this.match(HiveSqlParser.KW_VIEW); - this.state = 4005; + this.state = 4011; this.match(HiveSqlParser.KW_OUTER); - this.state = 4006; + this.state = 4012; this.function_(); - this.state = 4007; + this.state = 4013; this.tableAlias(); - this.state = 4017; + this.state = 4023; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4008; - this.match(HiveSqlParser.KW_AS); - this.state = 4009; - this.id_(); this.state = 4014; + this.match(HiveSqlParser.KW_AS); + this.state = 4015; + this.id_(); + this.state = 4020; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 463, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 465, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 4010; + this.state = 4016; this.match(HiveSqlParser.COMMA); - this.state = 4011; + this.state = 4017; this.id_(); } } } - this.state = 4016; + this.state = 4022; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 463, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 465, this.context); } } } @@ -19029,55 +19049,55 @@ export class HiveSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4020; + this.state = 4026; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 397) { { - this.state = 4019; + this.state = 4025; this.match(HiveSqlParser.COMMA); } } - this.state = 4022; + this.state = 4028; this.match(HiveSqlParser.KW_LATERAL); - this.state = 4058; + this.state = 4064; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_VIEW: { - this.state = 4023; + this.state = 4029; this.match(HiveSqlParser.KW_VIEW); - this.state = 4024; + this.state = 4030; this.function_(); - this.state = 4025; + this.state = 4031; this.tableAlias(); - this.state = 4035; + this.state = 4041; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4026; - this.match(HiveSqlParser.KW_AS); - this.state = 4027; - this.id_(); this.state = 4032; + this.match(HiveSqlParser.KW_AS); + this.state = 4033; + this.id_(); + this.state = 4038; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 466, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 468, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 4028; + this.state = 4034; this.match(HiveSqlParser.COMMA); - this.state = 4029; + this.state = 4035; this.id_(); } } } - this.state = 4034; + this.state = 4040; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 466, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 468, this.context); } } } @@ -19086,52 +19106,52 @@ export class HiveSqlParser extends SQLParserBase { break; case HiveSqlParser.KW_TABLE: { - this.state = 4037; + this.state = 4043; this.match(HiveSqlParser.KW_TABLE); - this.state = 4038; + this.state = 4044; this.match(HiveSqlParser.LPAREN); - this.state = 4039; + this.state = 4045; this.valuesClause(); - this.state = 4040; + this.state = 4046; this.match(HiveSqlParser.RPAREN); - this.state = 4042; + this.state = 4048; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4041; + this.state = 4047; this.match(HiveSqlParser.KW_AS); } } - this.state = 4044; + this.state = 4050; this.tableAlias(); - this.state = 4056; + this.state = 4062; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 470, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 472, this.context) ) { case 1: { - this.state = 4045; - this.match(HiveSqlParser.LPAREN); - this.state = 4046; - this.id_(); this.state = 4051; + this.match(HiveSqlParser.LPAREN); + this.state = 4052; + this.id_(); + this.state = 4057; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4047; + this.state = 4053; this.match(HiveSqlParser.COMMA); - this.state = 4048; + this.state = 4054; this.id_(); } } - this.state = 4053; + this.state = 4059; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4054; + this.state = 4060; this.match(HiveSqlParser.RPAREN); } break; @@ -19165,7 +19185,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4062; + this.state = 4068; this.id_(); } } @@ -19190,51 +19210,51 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4064; - this.match(HiveSqlParser.KW_TABLESAMPLE); - this.state = 4065; - this.match(HiveSqlParser.LPAREN); - this.state = 4066; - this.match(HiveSqlParser.KW_BUCKET); - this.state = 4067; - localContext._numerator = this.match(HiveSqlParser.Number); - this.state = 4068; - this.match(HiveSqlParser.KW_OUT); - this.state = 4069; - this.match(HiveSqlParser.KW_OF); this.state = 4070; + this.match(HiveSqlParser.KW_TABLESAMPLE); + this.state = 4071; + this.match(HiveSqlParser.LPAREN); + this.state = 4072; + this.match(HiveSqlParser.KW_BUCKET); + this.state = 4073; + localContext._numerator = this.match(HiveSqlParser.Number); + this.state = 4074; + this.match(HiveSqlParser.KW_OUT); + this.state = 4075; + this.match(HiveSqlParser.KW_OF); + this.state = 4076; localContext._denominator = this.match(HiveSqlParser.Number); - this.state = 4080; + this.state = 4086; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 224) { { - this.state = 4071; + this.state = 4077; this.match(HiveSqlParser.KW_ON); - this.state = 4072; + this.state = 4078; localContext._expression = this.expression(); localContext._expr.push(localContext._expression); - this.state = 4077; + this.state = 4083; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4073; + this.state = 4079; this.match(HiveSqlParser.COMMA); - this.state = 4074; + this.state = 4080; localContext._expression = this.expression(); localContext._expr.push(localContext._expression); } } - this.state = 4079; + this.state = 4085; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } } - this.state = 4082; + this.state = 4088; this.match(HiveSqlParser.RPAREN); } } @@ -19259,18 +19279,18 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4084; + this.state = 4090; this.match(HiveSqlParser.KW_TABLESAMPLE); - this.state = 4085; + this.state = 4091; this.match(HiveSqlParser.LPAREN); - this.state = 4089; + this.state = 4095; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.Number: { - this.state = 4086; + this.state = 4092; this.match(HiveSqlParser.Number); - this.state = 4087; + this.state = 4093; _la = this.tokenStream.LA(1); if(!(_la === 241 || _la === 292)) { this.errorHandler.recoverInline(this); @@ -19283,14 +19303,14 @@ export class HiveSqlParser extends SQLParserBase { break; case HiveSqlParser.ByteLengthLiteral: { - this.state = 4088; + this.state = 4094; this.match(HiveSqlParser.ByteLengthLiteral); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4091; + this.state = 4097; this.match(HiveSqlParser.RPAREN); } } @@ -19312,20 +19332,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new TableSampleContext(this.context, this.state); this.enterRule(localContext, 646, HiveSqlParser.RULE_tableSample); try { - this.state = 4095; + this.state = 4101; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 476, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 478, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4093; + this.state = 4099; this.tableBucketSample(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4094; + this.state = 4100; this.splitSample(); } break; @@ -19352,54 +19372,54 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4097; + this.state = 4103; localContext._tabname = this.tableOrView(); - this.state = 4099; + this.state = 4105; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 477, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 479, this.context) ) { case 1: { - this.state = 4098; + this.state = 4104; localContext._props = this.tableProperties(); } break; } - this.state = 4102; + this.state = 4108; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 331) { { - this.state = 4101; + this.state = 4107; localContext._ts = this.tableSample(); } } - this.state = 4105; - this.errorHandler.sync(this); - _la = this.tokenStream.LA(1); - if (_la === 134) { - { - this.state = 4104; - localContext._asOf = this.asOfClause(); - } - } - this.state = 4111; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 481, this.context) ) { + _la = this.tokenStream.LA(1); + if (_la === 134) { + { + this.state = 4110; + localContext._asOf = this.asOfClause(); + } + } + + this.state = 4117; + this.errorHandler.sync(this); + switch (this.interpreter.adaptivePredict(this.tokenStream, 483, this.context) ) { case 1: { - this.state = 4108; + this.state = 4114; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4107; + this.state = 4113; this.match(HiveSqlParser.KW_AS); } } - this.state = 4110; + this.state = 4116; localContext._alias = this.id_(); } break; @@ -19426,34 +19446,34 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4113; + this.state = 4119; this.match(HiveSqlParser.KW_FOR); - this.state = 4123; + this.state = 4129; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_SYSTEM_TIME: { - this.state = 4114; + this.state = 4120; this.match(HiveSqlParser.KW_SYSTEM_TIME); - this.state = 4115; + this.state = 4121; this.match(HiveSqlParser.KW_AS); - this.state = 4116; + this.state = 4122; this.match(HiveSqlParser.KW_OF); - this.state = 4117; + this.state = 4123; localContext._asOfTime = this.expression(); } break; case HiveSqlParser.KW_FOR: { - this.state = 4118; + this.state = 4124; this.match(HiveSqlParser.KW_FOR); - this.state = 4119; + this.state = 4125; this.match(HiveSqlParser.KW_SYSTEM_VERSION); - this.state = 4120; + this.state = 4126; this.match(HiveSqlParser.KW_AS); - this.state = 4121; + this.state = 4127; this.match(HiveSqlParser.KW_OF); - this.state = 4122; + this.state = 4128; localContext._asOfVersion = this.match(HiveSqlParser.Number); } break; @@ -19483,34 +19503,34 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4125; + this.state = 4131; localContext._tabname = this.tableOrView(); - this.state = 4127; + this.state = 4133; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 331) { { - this.state = 4126; + this.state = 4132; localContext._ts = this.tableSample(); } } - this.state = 4133; + this.state = 4139; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 3252585854) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 94072755) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 3203280837) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3774298979) !== 0) || ((((_la - 130)) & ~0x1F) === 0 && ((1 << (_la - 130)) & 1985876353) !== 0) || ((((_la - 168)) & ~0x1F) === 0 && ((1 << (_la - 168)) & 3152987127) !== 0) || ((((_la - 200)) & ~0x1F) === 0 && ((1 << (_la - 200)) & 215407575) !== 0) || ((((_la - 232)) & ~0x1F) === 0 && ((1 << (_la - 232)) & 1859156443) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & 4039901127) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & 3755917179) !== 0) || ((((_la - 330)) & ~0x1F) === 0 && ((1 << (_la - 330)) & 3402225181) !== 0) || ((((_la - 362)) & ~0x1F) === 0 && ((1 << (_la - 362)) & 4238323319) !== 0) || _la === 394 || _la === 432) { { - this.state = 4130; + this.state = 4136; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4129; + this.state = 4135; this.match(HiveSqlParser.KW_AS); } } - this.state = 4132; + this.state = 4138; localContext._alias = this.id_(); } } @@ -19537,7 +19557,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4135; + this.state = 4141; this.id_(); } } @@ -19561,7 +19581,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4137; + this.state = 4143; this.id_(); } } @@ -19583,20 +19603,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new TableOrViewContext(this.context, this.state); this.enterRule(localContext, 658, HiveSqlParser.RULE_tableOrView); try { - this.state = 4141; + this.state = 4147; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 486, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 488, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4139; + this.state = 4145; this.tableName(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4140; + this.state = 4146; this.viewName(); } break; @@ -19620,26 +19640,26 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new TableNameContext(this.context, this.state); this.enterRule(localContext, 660, HiveSqlParser.RULE_tableName); try { - this.state = 4151; + this.state = 4157; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 488, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 490, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4143; + this.state = 4149; localContext._db = this.id_(); - this.state = 4144; + this.state = 4150; this.match(HiveSqlParser.DOT); - this.state = 4145; + this.state = 4151; localContext._tab = this.id_(); - this.state = 4148; + this.state = 4154; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 487, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 489, this.context) ) { case 1: { - this.state = 4146; + this.state = 4152; this.match(HiveSqlParser.DOT); - this.state = 4147; + this.state = 4153; localContext._meta = this.id_(); } break; @@ -19649,7 +19669,7 @@ export class HiveSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4150; + this.state = 4156; localContext._tab = this.id_(); } break; @@ -19674,26 +19694,26 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 662, HiveSqlParser.RULE_tableNameCreate); let _la: number; try { - this.state = 4161; + this.state = 4167; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 490, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 492, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4153; + this.state = 4159; localContext._db = this.id_(); - this.state = 4154; + this.state = 4160; this.match(HiveSqlParser.DOT); - this.state = 4155; + this.state = 4161; localContext._tab = this.id_(); - this.state = 4158; + this.state = 4164; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 395) { { - this.state = 4156; + this.state = 4162; this.match(HiveSqlParser.DOT); - this.state = 4157; + this.state = 4163; localContext._meta = this.id_(); } } @@ -19703,7 +19723,7 @@ export class HiveSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4160; + this.state = 4166; localContext._tab = this.id_(); } break; @@ -19729,19 +19749,19 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4166; + this.state = 4172; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 491, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 493, this.context) ) { case 1: { - this.state = 4163; + this.state = 4169; localContext._db = this.id_(); - this.state = 4164; + this.state = 4170; this.match(HiveSqlParser.DOT); } break; } - this.state = 4168; + this.state = 4174; localContext._view = this.id_(); } } @@ -19765,19 +19785,19 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4173; + this.state = 4179; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 492, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 494, this.context) ) { case 1: { - this.state = 4170; + this.state = 4176; localContext._db = this.id_(); - this.state = 4171; + this.state = 4177; this.match(HiveSqlParser.DOT); } break; } - this.state = 4175; + this.state = 4181; localContext._view = this.id_(); } } @@ -19802,23 +19822,23 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4177; + this.state = 4183; this.match(HiveSqlParser.LPAREN); - this.state = 4178; + this.state = 4184; this.queryStatementExpression(); - this.state = 4179; + this.state = 4185; this.match(HiveSqlParser.RPAREN); - this.state = 4181; + this.state = 4187; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4180; + this.state = 4186; this.match(HiveSqlParser.KW_AS); } } - this.state = 4183; + this.state = 4189; this.id_(); } } @@ -19841,20 +19861,20 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 670, HiveSqlParser.RULE_partitioningSpec); let _la: number; try { - this.state = 4196; + this.state = 4202; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_PARTITION: this.enterOuterAlt(localContext, 1); { - this.state = 4185; + this.state = 4191; this.partitionByClause(); - this.state = 4187; + this.state = 4193; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 229) { { - this.state = 4186; + this.state = 4192; this.orderByClause(); } } @@ -19864,21 +19884,21 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_ORDER: this.enterOuterAlt(localContext, 2); { - this.state = 4189; + this.state = 4195; this.orderByClause(); } break; case HiveSqlParser.KW_DISTRIBUTE: this.enterOuterAlt(localContext, 3); { - this.state = 4190; + this.state = 4196; this.distributeByClause(); - this.state = 4192; + this.state = 4198; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 314) { { - this.state = 4191; + this.state = 4197; this.sortByClause(); } } @@ -19888,14 +19908,14 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_SORT: this.enterOuterAlt(localContext, 4); { - this.state = 4194; + this.state = 4200; this.sortByClause(); } break; case HiveSqlParser.KW_CLUSTER: this.enterOuterAlt(localContext, 5); { - this.state = 4195; + this.state = 4201; this.clusterByClause(); } break; @@ -19921,27 +19941,27 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new PartitionTableFunctionSourceContext(this.context, this.state); this.enterRule(localContext, 672, HiveSqlParser.RULE_partitionTableFunctionSource); try { - this.state = 4201; + this.state = 4207; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 497, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 499, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4198; + this.state = 4204; this.subQuerySource(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4199; + this.state = 4205; this.tableSource(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4200; + this.state = 4206; this.partitionedTableFunction(); } break; @@ -19968,70 +19988,70 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4203; + this.state = 4209; localContext._n = this.id_(); - this.state = 4204; + this.state = 4210; this.match(HiveSqlParser.LPAREN); - this.state = 4205; + this.state = 4211; this.match(HiveSqlParser.KW_ON); - this.state = 4206; + this.state = 4212; localContext._ptfsrc = this.partitionTableFunctionSource(); - this.state = 4208; + this.state = 4214; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 41 || _la === 97 || _la === 229 || _la === 237 || _la === 314) { { - this.state = 4207; + this.state = 4213; localContext._spec = this.partitioningSpec(); } } - this.state = 4225; + this.state = 4231; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 432) { { - this.state = 4210; + this.state = 4216; this.match(HiveSqlParser.Identifier); - this.state = 4211; + this.state = 4217; this.match(HiveSqlParser.LPAREN); - this.state = 4212; + this.state = 4218; this.expression(); - this.state = 4213; + this.state = 4219; this.match(HiveSqlParser.RPAREN); - this.state = 4222; + this.state = 4228; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4214; + this.state = 4220; this.match(HiveSqlParser.COMMA); - this.state = 4215; + this.state = 4221; this.match(HiveSqlParser.Identifier); - this.state = 4216; + this.state = 4222; this.match(HiveSqlParser.LPAREN); - this.state = 4217; + this.state = 4223; this.expression(); - this.state = 4218; + this.state = 4224; this.match(HiveSqlParser.RPAREN); } } - this.state = 4224; + this.state = 4230; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } } - this.state = 4227; + this.state = 4233; this.match(HiveSqlParser.RPAREN); - this.state = 4229; + this.state = 4235; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 501, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 503, this.context) ) { case 1: { - this.state = 4228; + this.state = 4234; localContext._alias = this.id_(); } break; @@ -20058,9 +20078,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4231; + this.state = 4237; this.match(HiveSqlParser.KW_WHERE); - this.state = 4232; + this.state = 4238; this.searchCondition(); } } @@ -20084,7 +20104,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4234; + this.state = 4240; this.expression(); } } @@ -20108,7 +20128,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4236; + this.state = 4242; this.valuesClause(); } } @@ -20132,9 +20152,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4238; + this.state = 4244; this.match(HiveSqlParser.KW_VALUES); - this.state = 4239; + this.state = 4245; this.valuesTableConstructor(); } } @@ -20157,27 +20177,27 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 684, HiveSqlParser.RULE_valuesTableConstructor); let _la: number; try { - this.state = 4257; + this.state = 4263; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 504, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 506, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4241; + this.state = 4247; this.valueRowConstructor(); - this.state = 4246; + this.state = 4252; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4242; + this.state = 4248; this.match(HiveSqlParser.COMMA); - this.state = 4243; + this.state = 4249; this.valueRowConstructor(); } } - this.state = 4248; + this.state = 4254; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -20186,21 +20206,21 @@ export class HiveSqlParser extends SQLParserBase { case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4249; + this.state = 4255; this.firstValueRowConstructor(); - this.state = 4254; + this.state = 4260; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4250; + this.state = 4256; this.match(HiveSqlParser.COMMA); - this.state = 4251; + this.state = 4257; this.valueRowConstructor(); } } - this.state = 4256; + this.state = 4262; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -20228,7 +20248,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4259; + this.state = 4265; this.expressionsInParenthesis(); } } @@ -20252,11 +20272,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4261; + this.state = 4267; this.match(HiveSqlParser.LPAREN); - this.state = 4262; + this.state = 4268; this.firstExpressionsWithAlias(); - this.state = 4263; + this.state = 4269; this.match(HiveSqlParser.RPAREN); } } @@ -20281,55 +20301,55 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4265; + this.state = 4271; this.match(HiveSqlParser.KW_TABLE); - this.state = 4266; + this.state = 4272; this.match(HiveSqlParser.LPAREN); - this.state = 4267; + this.state = 4273; this.valuesClause(); - this.state = 4268; + this.state = 4274; this.match(HiveSqlParser.RPAREN); - this.state = 4270; + this.state = 4276; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4269; + this.state = 4275; this.match(HiveSqlParser.KW_AS); } } - this.state = 4272; + this.state = 4278; this.tableAlias(); - this.state = 4282; + this.state = 4288; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 399) { { - this.state = 4273; - this.match(HiveSqlParser.LPAREN); - this.state = 4274; - this.id_(); this.state = 4279; + this.match(HiveSqlParser.LPAREN); + this.state = 4280; + this.id_(); + this.state = 4285; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4275; + this.state = 4281; this.match(HiveSqlParser.COMMA); - this.state = 4276; + this.state = 4282; this.id_(); } } - this.state = 4281; + this.state = 4287; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } } } - this.state = 4284; + this.state = 4290; this.match(HiveSqlParser.RPAREN); } } @@ -20351,48 +20371,48 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new SelectClauseContext(this.context, this.state); this.enterRule(localContext, 692, HiveSqlParser.RULE_selectClause); try { - this.state = 4299; + this.state = 4305; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_SELECT: this.enterOuterAlt(localContext, 1); { - this.state = 4286; + this.state = 4292; this.match(HiveSqlParser.KW_SELECT); - this.state = 4288; - this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 508, this.context) ) { - case 1: - { - this.state = 4287; - this.match(HiveSqlParser.QUERY_HINT); - } - break; - } - this.state = 4296; + this.state = 4294; this.errorHandler.sync(this); switch (this.interpreter.adaptivePredict(this.tokenStream, 510, this.context) ) { case 1: { - this.state = 4291; + this.state = 4293; + this.match(HiveSqlParser.QUERY_HINT); + } + break; + } + this.state = 4302; + this.errorHandler.sync(this); + switch (this.interpreter.adaptivePredict(this.tokenStream, 512, this.context) ) { + case 1: + { + this.state = 4297; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 509, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 511, this.context) ) { case 1: { - this.state = 4290; + this.state = 4296; this.all_distinct(); } break; } - this.state = 4293; + this.state = 4299; this.selectList(); } break; case 2: { - this.state = 4294; + this.state = 4300; this.match(HiveSqlParser.KW_TRANSFORM); - this.state = 4295; + this.state = 4301; this.selectTrfmClause(); } break; @@ -20403,7 +20423,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_REDUCE: this.enterOuterAlt(localContext, 2); { - this.state = 4298; + this.state = 4304; this.trfmClause(); } break; @@ -20432,7 +20452,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4301; + this.state = 4307; _la = this.tokenStream.LA(1); if(!(_la === 7 || _la === 96)) { this.errorHandler.recoverInline(this); @@ -20464,25 +20484,25 @@ export class HiveSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 4303; + this.state = 4309; this.selectItem(); - this.state = 4308; + this.state = 4314; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 512, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 514, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 4304; + this.state = 4310; this.match(HiveSqlParser.COMMA); - this.state = 4305; + this.state = 4311; this.selectItem(); } } } - this.state = 4310; + this.state = 4316; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 512, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 514, this.context); } } } @@ -20507,63 +20527,63 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4311; - this.match(HiveSqlParser.LPAREN); - this.state = 4312; - this.selectExpressionList(); - this.state = 4313; - this.match(HiveSqlParser.RPAREN); - this.state = 4314; - this.rowFormat(); - this.state = 4315; - this.recordWriter(); - this.state = 4316; - this.match(HiveSqlParser.KW_USING); this.state = 4317; + this.match(HiveSqlParser.LPAREN); + this.state = 4318; + this.selectExpressionList(); + this.state = 4319; + this.match(HiveSqlParser.RPAREN); + this.state = 4320; + this.rowFormat(); + this.state = 4321; + this.recordWriter(); + this.state = 4322; + this.match(HiveSqlParser.KW_USING); + this.state = 4323; this.match(HiveSqlParser.StringLiteral); - this.state = 4330; + this.state = 4336; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4318; + this.state = 4324; this.match(HiveSqlParser.KW_AS); - this.state = 4328; + this.state = 4334; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 514, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 516, this.context) ) { case 1: { - this.state = 4319; + this.state = 4325; this.match(HiveSqlParser.LPAREN); - this.state = 4322; + this.state = 4328; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 513, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 515, this.context) ) { case 1: { - this.state = 4320; + this.state = 4326; this.aliasList(); } break; case 2: { - this.state = 4321; + this.state = 4327; this.columnNameTypeList(); } break; } - this.state = 4324; + this.state = 4330; this.match(HiveSqlParser.RPAREN); } break; case 2: { - this.state = 4326; + this.state = 4332; this.aliasList(); } break; case 3: { - this.state = 4327; + this.state = 4333; this.columnNameTypeList(); } break; @@ -20571,9 +20591,9 @@ export class HiveSqlParser extends SQLParserBase { } } - this.state = 4332; + this.state = 4338; this.rowFormat(); - this.state = 4333; + this.state = 4339; this.recordReader(); } } @@ -20596,13 +20616,13 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 700, HiveSqlParser.RULE_selectItem); let _la: number; try { - this.state = 4358; + this.state = 4364; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 520, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 522, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4335; + this.state = 4341; this.tableAllColumns(); } break; @@ -20610,66 +20630,66 @@ export class HiveSqlParser extends SQLParserBase { this.enterOuterAlt(localContext, 2); { { - this.state = 4338; + this.state = 4344; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 516, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 518, this.context) ) { case 1: { - this.state = 4336; + this.state = 4342; this.columnName(); } break; case 2: { - this.state = 4337; + this.state = 4343; this.expression(); } break; } - this.state = 4356; + this.state = 4362; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 519, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 521, this.context) ) { case 1: { - this.state = 4341; + this.state = 4347; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4340; + this.state = 4346; this.match(HiveSqlParser.KW_AS); } } - this.state = 4343; + this.state = 4349; this.id_(); } break; case 2: { - this.state = 4344; + this.state = 4350; this.match(HiveSqlParser.KW_AS); - this.state = 4345; - this.match(HiveSqlParser.LPAREN); - this.state = 4346; - this.id_(); this.state = 4351; + this.match(HiveSqlParser.LPAREN); + this.state = 4352; + this.id_(); + this.state = 4357; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4347; + this.state = 4353; this.match(HiveSqlParser.COMMA); - this.state = 4348; + this.state = 4354; this.id_(); } } - this.state = 4353; + this.state = 4359; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4354; + this.state = 4360; this.match(HiveSqlParser.RPAREN); } break; @@ -20700,7 +20720,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4360; + this.state = 4366; _la = this.tokenStream.LA(1); if(!(_la === 198 || _la === 268)) { this.errorHandler.recoverInline(this); @@ -20709,59 +20729,59 @@ export class HiveSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4361; + this.state = 4367; this.selectExpressionList(); - this.state = 4362; + this.state = 4368; this.rowFormat(); - this.state = 4363; + this.state = 4369; this.recordWriter(); - this.state = 4364; + this.state = 4370; this.match(HiveSqlParser.KW_USING); - this.state = 4365; + this.state = 4371; this.match(HiveSqlParser.StringLiteral); - this.state = 4378; + this.state = 4384; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4366; + this.state = 4372; this.match(HiveSqlParser.KW_AS); - this.state = 4376; + this.state = 4382; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 522, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 524, this.context) ) { case 1: { - this.state = 4367; + this.state = 4373; this.match(HiveSqlParser.LPAREN); - this.state = 4370; + this.state = 4376; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 521, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 523, this.context) ) { case 1: { - this.state = 4368; + this.state = 4374; this.aliasList(); } break; case 2: { - this.state = 4369; + this.state = 4375; this.columnNameTypeList(); } break; } - this.state = 4372; + this.state = 4378; this.match(HiveSqlParser.RPAREN); } break; case 2: { - this.state = 4374; + this.state = 4380; this.aliasList(); } break; case 3: { - this.state = 4375; + this.state = 4381; this.columnNameTypeList(); } break; @@ -20769,9 +20789,9 @@ export class HiveSqlParser extends SQLParserBase { } } - this.state = 4380; + this.state = 4386; this.rowFormat(); - this.state = 4381; + this.state = 4387; this.recordReader(); } } @@ -20793,20 +20813,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new SelectExpressionContext(this.context, this.state); this.enterRule(localContext, 704, HiveSqlParser.RULE_selectExpression); try { - this.state = 4385; + this.state = 4391; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 524, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 526, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4383; + this.state = 4389; this.tableAllColumns(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4384; + this.state = 4390; this.expression(); } break; @@ -20833,21 +20853,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4387; + this.state = 4393; this.selectExpression(); - this.state = 4392; + this.state = 4398; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4388; + this.state = 4394; this.match(HiveSqlParser.COMMA); - this.state = 4389; + this.state = 4395; this.selectExpression(); } } - this.state = 4394; + this.state = 4400; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -20874,23 +20894,23 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4395; - this.match(HiveSqlParser.KW_WINDOW); - this.state = 4396; - this.window_defn(); this.state = 4401; + this.match(HiveSqlParser.KW_WINDOW); + this.state = 4402; + this.window_defn(); + this.state = 4407; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4397; + this.state = 4403; this.match(HiveSqlParser.COMMA); - this.state = 4398; + this.state = 4404; this.window_defn(); } } - this.state = 4403; + this.state = 4409; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -20916,11 +20936,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4404; + this.state = 4410; this.id_(); - this.state = 4405; + this.state = 4411; this.match(HiveSqlParser.KW_AS); - this.state = 4406; + this.state = 4412; this.window_specification(); } } @@ -20943,7 +20963,7 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 712, HiveSqlParser.RULE_window_specification); let _la: number; try { - this.state = 4420; + this.state = 4426; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ABORT: @@ -21188,46 +21208,46 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.Identifier: this.enterOuterAlt(localContext, 1); { - this.state = 4408; + this.state = 4414; this.id_(); } break; case HiveSqlParser.LPAREN: this.enterOuterAlt(localContext, 2); { - this.state = 4409; + this.state = 4415; this.match(HiveSqlParser.LPAREN); - this.state = 4411; + this.state = 4417; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 527, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 529, this.context) ) { case 1: { - this.state = 4410; + this.state = 4416; this.id_(); } break; } - this.state = 4414; + this.state = 4420; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 41 || _la === 97 || _la === 229 || _la === 237 || _la === 314) { { - this.state = 4413; + this.state = 4419; this.partitioningSpec(); } } - this.state = 4417; + this.state = 4423; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 260 || _la === 292) { { - this.state = 4416; + this.state = 4422; this.window_frame(); } } - this.state = 4419; + this.state = 4425; this.match(HiveSqlParser.RPAREN); } break; @@ -21253,20 +21273,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new Window_frameContext(this.context, this.state); this.enterRule(localContext, 714, HiveSqlParser.RULE_window_frame); try { - this.state = 4424; + this.state = 4430; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ROWS: this.enterOuterAlt(localContext, 1); { - this.state = 4422; + this.state = 4428; this.window_range_expression(); } break; case HiveSqlParser.KW_RANGE: this.enterOuterAlt(localContext, 2); { - this.state = 4423; + this.state = 4429; this.window_value_expression(); } break; @@ -21294,28 +21314,28 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4426; + this.state = 4432; this.match(HiveSqlParser.KW_ROWS); - this.state = 4433; + this.state = 4439; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_CURRENT: case HiveSqlParser.KW_UNBOUNDED: case HiveSqlParser.Number: { - this.state = 4427; + this.state = 4433; this.window_frame_start_boundary(); } break; case HiveSqlParser.KW_BETWEEN: { - this.state = 4428; + this.state = 4434; this.match(HiveSqlParser.KW_BETWEEN); - this.state = 4429; + this.state = 4435; this.window_frame_boundary(); - this.state = 4430; + this.state = 4436; this.match(HiveSqlParser.KW_AND); - this.state = 4431; + this.state = 4437; this.window_frame_boundary(); } break; @@ -21344,28 +21364,28 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4435; + this.state = 4441; this.match(HiveSqlParser.KW_RANGE); - this.state = 4442; + this.state = 4448; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_CURRENT: case HiveSqlParser.KW_UNBOUNDED: case HiveSqlParser.Number: { - this.state = 4436; + this.state = 4442; this.window_frame_start_boundary(); } break; case HiveSqlParser.KW_BETWEEN: { - this.state = 4437; + this.state = 4443; this.match(HiveSqlParser.KW_BETWEEN); - this.state = 4438; + this.state = 4444; this.window_frame_boundary(); - this.state = 4439; + this.state = 4445; this.match(HiveSqlParser.KW_AND); - this.state = 4440; + this.state = 4446; this.window_frame_boundary(); } break; @@ -21392,33 +21412,33 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new Window_frame_start_boundaryContext(this.context, this.state); this.enterRule(localContext, 720, HiveSqlParser.RULE_window_frame_start_boundary); try { - this.state = 4450; + this.state = 4456; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_UNBOUNDED: this.enterOuterAlt(localContext, 1); { - this.state = 4444; + this.state = 4450; this.match(HiveSqlParser.KW_UNBOUNDED); - this.state = 4445; + this.state = 4451; this.match(HiveSqlParser.KW_PRECEDING); } break; case HiveSqlParser.KW_CURRENT: this.enterOuterAlt(localContext, 2); { - this.state = 4446; + this.state = 4452; this.match(HiveSqlParser.KW_CURRENT); - this.state = 4447; + this.state = 4453; this.match(HiveSqlParser.KW_ROW); } break; case HiveSqlParser.Number: this.enterOuterAlt(localContext, 3); { - this.state = 4448; + this.state = 4454; this.match(HiveSqlParser.Number); - this.state = 4449; + this.state = 4455; this.match(HiveSqlParser.KW_PRECEDING); } break; @@ -21445,14 +21465,14 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 722, HiveSqlParser.RULE_window_frame_boundary); let _la: number; try { - this.state = 4456; + this.state = 4462; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_UNBOUNDED: case HiveSqlParser.Number: this.enterOuterAlt(localContext, 1); { - this.state = 4452; + this.state = 4458; _la = this.tokenStream.LA(1); if(!(_la === 354 || _la === 431)) { this.errorHandler.recoverInline(this); @@ -21461,7 +21481,7 @@ export class HiveSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 4453; + this.state = 4459; _la = this.tokenStream.LA(1); if(!(_la === 133 || _la === 247)) { this.errorHandler.recoverInline(this); @@ -21475,9 +21495,9 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_CURRENT: this.enterOuterAlt(localContext, 2); { - this.state = 4454; + this.state = 4460; this.match(HiveSqlParser.KW_CURRENT); - this.state = 4455; + this.state = 4461; this.match(HiveSqlParser.KW_ROW); } break; @@ -21505,11 +21525,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4458; + this.state = 4464; this.match(HiveSqlParser.KW_GROUP); - this.state = 4459; + this.state = 4465; this.match(HiveSqlParser.KW_BY); - this.state = 4460; + this.state = 4466; this.groupby_expression(); } } @@ -21531,34 +21551,34 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new Groupby_expressionContext(this.context, this.state); this.enterRule(localContext, 726, HiveSqlParser.RULE_groupby_expression); try { - this.state = 4466; + this.state = 4472; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 536, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 538, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4462; + this.state = 4468; this.columnName(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4463; + this.state = 4469; this.rollupStandard(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4464; + this.state = 4470; this.rollupOldSyntax(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 4465; + this.state = 4471; this.groupByEmpty(); } break; @@ -21584,9 +21604,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4468; + this.state = 4474; this.match(HiveSqlParser.LPAREN); - this.state = 4469; + this.state = 4475; this.match(HiveSqlParser.RPAREN); } } @@ -21611,45 +21631,45 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4473; + this.state = 4479; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ROLLUP: { - this.state = 4471; + this.state = 4477; localContext._rollup = this.match(HiveSqlParser.KW_ROLLUP); } break; case HiveSqlParser.KW_CUBE: { - this.state = 4472; + this.state = 4478; localContext._cube = this.match(HiveSqlParser.KW_CUBE); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4475; - this.match(HiveSqlParser.LPAREN); - this.state = 4476; - this.expression(); this.state = 4481; + this.match(HiveSqlParser.LPAREN); + this.state = 4482; + this.expression(); + this.state = 4487; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4477; + this.state = 4483; this.match(HiveSqlParser.COMMA); - this.state = 4478; + this.state = 4484; this.expression(); } } - this.state = 4483; + this.state = 4489; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4484; + this.state = 4490; this.match(HiveSqlParser.RPAREN); } } @@ -21674,58 +21694,58 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4486; + this.state = 4492; localContext._expr = this.expressionsNotInParenthesis(); - this.state = 4491; + this.state = 4497; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 539, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 541, this.context) ) { case 1: { - this.state = 4487; + this.state = 4493; localContext._rollup = this.match(HiveSqlParser.KW_WITH); - this.state = 4488; + this.state = 4494; this.match(HiveSqlParser.KW_ROLLUP); } break; case 2: { - this.state = 4489; + this.state = 4495; localContext._cube = this.match(HiveSqlParser.KW_WITH); - this.state = 4490; + this.state = 4496; this.match(HiveSqlParser.KW_CUBE); } break; } - this.state = 4506; + this.state = 4512; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 145) { { - this.state = 4493; + this.state = 4499; localContext._sets = this.match(HiveSqlParser.KW_GROUPING); - this.state = 4494; + this.state = 4500; this.match(HiveSqlParser.KW_SETS); - this.state = 4495; - this.match(HiveSqlParser.LPAREN); - this.state = 4496; - this.groupingSetExpression(); this.state = 4501; + this.match(HiveSqlParser.LPAREN); + this.state = 4502; + this.groupingSetExpression(); + this.state = 4507; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4497; + this.state = 4503; this.match(HiveSqlParser.COMMA); - this.state = 4498; + this.state = 4504; this.groupingSetExpression(); } } - this.state = 4503; + this.state = 4509; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4504; + this.state = 4510; this.match(HiveSqlParser.RPAREN); } } @@ -21750,20 +21770,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new GroupingSetExpressionContext(this.context, this.state); this.enterRule(localContext, 734, HiveSqlParser.RULE_groupingSetExpression); try { - this.state = 4510; + this.state = 4516; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 542, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 544, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4508; + this.state = 4514; this.groupingSetExpressionMultiple(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4509; + this.state = 4515; this.groupingExpressionSingle(); } break; @@ -21790,35 +21810,35 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4512; + this.state = 4518; this.match(HiveSqlParser.LPAREN); - this.state = 4514; + this.state = 4520; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 3755838846) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 3315298239) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 3203280869) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3976149863) !== 0) || ((((_la - 130)) & ~0x1F) === 0 && ((1 << (_la - 130)) & 2004783495) !== 0) || ((((_la - 162)) & ~0x1F) === 0 && ((1 << (_la - 162)) & 4226874827) !== 0) || ((((_la - 195)) & ~0x1F) === 0 && ((1 << (_la - 195)) & 2616949503) !== 0) || ((((_la - 227)) & ~0x1F) === 0 && ((1 << (_la - 227)) & 3658431331) !== 0) || ((((_la - 259)) & ~0x1F) === 0 && ((1 << (_la - 259)) & 989854189) !== 0) || ((((_la - 293)) & ~0x1F) === 0 && ((1 << (_la - 293)) & 4260362175) !== 0) || ((((_la - 325)) & ~0x1F) === 0 && ((1 << (_la - 325)) & 1530590125) !== 0) || ((((_la - 357)) & ~0x1F) === 0 && ((1 << (_la - 357)) & 2549468921) !== 0) || ((((_la - 389)) & ~0x1F) === 0 && ((1 << (_la - 389)) & 4294902847) !== 0) || ((((_la - 421)) & ~0x1F) === 0 && ((1 << (_la - 421)) & 7597) !== 0)) { { - this.state = 4513; + this.state = 4519; this.expression(); } } - this.state = 4520; + this.state = 4526; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4516; + this.state = 4522; this.match(HiveSqlParser.COMMA); - this.state = 4517; + this.state = 4523; this.expression(); } } - this.state = 4522; + this.state = 4528; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4523; + this.state = 4529; this.match(HiveSqlParser.RPAREN); } } @@ -21842,7 +21862,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4525; + this.state = 4531; this.expression(); } } @@ -21866,9 +21886,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4527; + this.state = 4533; this.match(HiveSqlParser.KW_HAVING); - this.state = 4528; + this.state = 4534; this.havingCondition(); } } @@ -21892,9 +21912,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4530; + this.state = 4536; this.match(HiveSqlParser.KW_QUALIFY); - this.state = 4531; + this.state = 4537; this.expression(); } } @@ -21918,7 +21938,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4533; + this.state = 4539; this.expression(); } } @@ -21942,11 +21962,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4535; + this.state = 4541; this.match(HiveSqlParser.LPAREN); - this.state = 4536; + this.state = 4542; this.expressionsNotInParenthesis(); - this.state = 4537; + this.state = 4543; this.match(HiveSqlParser.RPAREN); } } @@ -21971,14 +21991,14 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4539; + this.state = 4545; localContext._first = this.expressionOrDefault(); - this.state = 4541; + this.state = 4547; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 397) { { - this.state = 4540; + this.state = 4546; localContext._more = this.expressionPart(); } } @@ -22006,19 +22026,19 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4545; + this.state = 4551; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 4543; + this.state = 4549; this.match(HiveSqlParser.COMMA); - this.state = 4544; + this.state = 4550; this.expressionOrDefault(); } } - this.state = 4547; + this.state = 4553; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 397); @@ -22042,20 +22062,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new ExpressionOrDefaultContext(this.context, this.state); this.enterRule(localContext, 752, HiveSqlParser.RULE_expressionOrDefault); try { - this.state = 4551; + this.state = 4557; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 547, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 549, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4549; + this.state = 4555; this.defaultValue(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4550; + this.state = 4556; this.expression(); } break; @@ -22082,41 +22102,41 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4553; + this.state = 4559; localContext._first = this.expression(); - this.state = 4555; + this.state = 4561; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4554; + this.state = 4560; this.match(HiveSqlParser.KW_AS); } } - this.state = 4558; - this.errorHandler.sync(this); - _la = this.tokenStream.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 3252454782) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 94072755) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 3203280837) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3774298979) !== 0) || ((((_la - 130)) & ~0x1F) === 0 && ((1 << (_la - 130)) & 1985876353) !== 0) || ((((_la - 168)) & ~0x1F) === 0 && ((1 << (_la - 168)) & 3152987127) !== 0) || ((((_la - 200)) & ~0x1F) === 0 && ((1 << (_la - 200)) & 215407575) !== 0) || ((((_la - 232)) & ~0x1F) === 0 && ((1 << (_la - 232)) & 1859156443) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & 4039901127) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & 3755917179) !== 0) || ((((_la - 330)) & ~0x1F) === 0 && ((1 << (_la - 330)) & 3402225181) !== 0) || ((((_la - 362)) & ~0x1F) === 0 && ((1 << (_la - 362)) & 4238323319) !== 0) || _la === 394 || _la === 432) { - { - this.state = 4557; - localContext._colAlias = this.id_(); - } - } - this.state = 4564; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 3252454782) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 94072755) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 3203280837) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3774298979) !== 0) || ((((_la - 130)) & ~0x1F) === 0 && ((1 << (_la - 130)) & 1985876353) !== 0) || ((((_la - 168)) & ~0x1F) === 0 && ((1 << (_la - 168)) & 3152987127) !== 0) || ((((_la - 200)) & ~0x1F) === 0 && ((1 << (_la - 200)) & 215407575) !== 0) || ((((_la - 232)) & ~0x1F) === 0 && ((1 << (_la - 232)) & 1859156443) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & 4039901127) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & 3755917179) !== 0) || ((((_la - 330)) & ~0x1F) === 0 && ((1 << (_la - 330)) & 3402225181) !== 0) || ((((_la - 362)) & ~0x1F) === 0 && ((1 << (_la - 362)) & 4238323319) !== 0) || _la === 394 || _la === 432) { + { + this.state = 4563; + localContext._colAlias = this.id_(); + } + } + + this.state = 4570; + this.errorHandler.sync(this); + _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4560; + this.state = 4566; this.match(HiveSqlParser.COMMA); - this.state = 4561; + this.state = 4567; this.expressionWithAlias(); } } - this.state = 4566; + this.state = 4572; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -22143,24 +22163,24 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4567; + this.state = 4573; this.expression(); - this.state = 4569; + this.state = 4575; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 17) { { - this.state = 4568; + this.state = 4574; this.match(HiveSqlParser.KW_AS); } } - this.state = 4572; + this.state = 4578; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 3252454782) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 94072755) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 3203280837) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3774298979) !== 0) || ((((_la - 130)) & ~0x1F) === 0 && ((1 << (_la - 130)) & 1985876353) !== 0) || ((((_la - 168)) & ~0x1F) === 0 && ((1 << (_la - 168)) & 3152987127) !== 0) || ((((_la - 200)) & ~0x1F) === 0 && ((1 << (_la - 200)) & 215407575) !== 0) || ((((_la - 232)) & ~0x1F) === 0 && ((1 << (_la - 232)) & 1859156443) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & 4039901127) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & 3755917179) !== 0) || ((((_la - 330)) & ~0x1F) === 0 && ((1 << (_la - 330)) & 3402225181) !== 0) || ((((_la - 362)) & ~0x1F) === 0 && ((1 << (_la - 362)) & 4238323319) !== 0) || _la === 394 || _la === 432) { { - this.state = 4571; + this.state = 4577; localContext._alias = this.id_(); } } @@ -22185,20 +22205,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new ExpressionsContext(this.context, this.state); this.enterRule(localContext, 758, HiveSqlParser.RULE_expressions); try { - this.state = 4576; + this.state = 4582; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 553, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 555, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4574; + this.state = 4580; this.expressionsInParenthesis(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4575; + this.state = 4581; this.expressionsNotInParenthesis(); } break; @@ -22225,27 +22245,27 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4578; - this.match(HiveSqlParser.LPAREN); - this.state = 4579; - this.columnRefOrder(); this.state = 4584; + this.match(HiveSqlParser.LPAREN); + this.state = 4585; + this.columnRefOrder(); + this.state = 4590; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4580; + this.state = 4586; this.match(HiveSqlParser.COMMA); - this.state = 4581; + this.state = 4587; this.columnRefOrder(); } } - this.state = 4586; + this.state = 4592; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 4587; + this.state = 4593; this.match(HiveSqlParser.RPAREN); } } @@ -22270,21 +22290,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4589; + this.state = 4595; this.columnRefOrder(); - this.state = 4594; + this.state = 4600; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4590; + this.state = 4596; this.match(HiveSqlParser.COMMA); - this.state = 4591; + this.state = 4597; this.columnRefOrder(); } } - this.state = 4596; + this.state = 4602; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -22311,25 +22331,25 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4597; + this.state = 4603; this.match(HiveSqlParser.KW_ORDER); - this.state = 4598; - this.match(HiveSqlParser.KW_BY); - this.state = 4599; - this.columnRefOrder(); this.state = 4604; + this.match(HiveSqlParser.KW_BY); + this.state = 4605; + this.columnRefOrder(); + this.state = 4610; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4600; + this.state = 4606; this.match(HiveSqlParser.COMMA); - this.state = 4601; + this.state = 4607; this.columnRefOrder(); } } - this.state = 4606; + this.state = 4612; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -22355,11 +22375,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4607; + this.state = 4613; this.match(HiveSqlParser.KW_CLUSTER); - this.state = 4608; + this.state = 4614; this.match(HiveSqlParser.KW_BY); - this.state = 4609; + this.state = 4615; this.expressions(); } } @@ -22383,11 +22403,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4611; + this.state = 4617; this.match(HiveSqlParser.KW_PARTITION); - this.state = 4612; + this.state = 4618; this.match(HiveSqlParser.KW_BY); - this.state = 4613; + this.state = 4619; this.expressions(); } } @@ -22411,11 +22431,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4615; + this.state = 4621; this.match(HiveSqlParser.KW_DISTRIBUTE); - this.state = 4616; + this.state = 4622; this.match(HiveSqlParser.KW_BY); - this.state = 4617; + this.state = 4623; this.expressions(); } } @@ -22439,22 +22459,22 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4619; + this.state = 4625; this.match(HiveSqlParser.KW_SORT); - this.state = 4620; + this.state = 4626; this.match(HiveSqlParser.KW_BY); - this.state = 4623; + this.state = 4629; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 557, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 559, this.context) ) { case 1: { - this.state = 4621; + this.state = 4627; this.columnRefOrderInParenthesis(); } break; case 2: { - this.state = 4622; + this.state = 4628; this.columnRefOrderNotInParenthesis(); } break; @@ -22482,28 +22502,28 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4625; + this.state = 4631; this.match(HiveSqlParser.KW_TRIM); - this.state = 4626; + this.state = 4632; this.match(HiveSqlParser.LPAREN); - this.state = 4630; + this.state = 4636; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_LEADING: { - this.state = 4627; + this.state = 4633; localContext._leading = this.match(HiveSqlParser.KW_LEADING); } break; case HiveSqlParser.KW_TRAILING: { - this.state = 4628; + this.state = 4634; localContext._trailing = this.match(HiveSqlParser.KW_TRAILING); } break; case HiveSqlParser.KW_BOTH: { - this.state = 4629; + this.state = 4635; this.match(HiveSqlParser.KW_BOTH); } break; @@ -22813,21 +22833,21 @@ export class HiveSqlParser extends SQLParserBase { default: break; } - this.state = 4633; + this.state = 4639; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 3755838846) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 3315298239) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 3203280869) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3976149863) !== 0) || ((((_la - 130)) & ~0x1F) === 0 && ((1 << (_la - 130)) & 2004783495) !== 0) || ((((_la - 162)) & ~0x1F) === 0 && ((1 << (_la - 162)) & 4226874827) !== 0) || ((((_la - 195)) & ~0x1F) === 0 && ((1 << (_la - 195)) & 2616949503) !== 0) || ((((_la - 227)) & ~0x1F) === 0 && ((1 << (_la - 227)) & 3658431331) !== 0) || ((((_la - 259)) & ~0x1F) === 0 && ((1 << (_la - 259)) & 989854189) !== 0) || ((((_la - 293)) & ~0x1F) === 0 && ((1 << (_la - 293)) & 4260362175) !== 0) || ((((_la - 325)) & ~0x1F) === 0 && ((1 << (_la - 325)) & 1530590125) !== 0) || ((((_la - 357)) & ~0x1F) === 0 && ((1 << (_la - 357)) & 2549468921) !== 0) || ((((_la - 389)) & ~0x1F) === 0 && ((1 << (_la - 389)) & 4294902847) !== 0) || ((((_la - 421)) & ~0x1F) === 0 && ((1 << (_la - 421)) & 7597) !== 0)) { { - this.state = 4632; + this.state = 4638; localContext._trim_characters = this.selectExpression(); } } - this.state = 4635; + this.state = 4641; this.match(HiveSqlParser.KW_FROM); - this.state = 4636; + this.state = 4642; localContext._str = this.selectExpression(); - this.state = 4637; + this.state = 4643; this.match(HiveSqlParser.RPAREN); } } @@ -22850,64 +22870,64 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 776, HiveSqlParser.RULE_function_); let _la: number; try { - this.state = 4679; + this.state = 4685; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 566, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 568, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4639; + this.state = 4645; this.trimFunction(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4640; + this.state = 4646; this.functionNameForInvoke(); - this.state = 4641; + this.state = 4647; this.match(HiveSqlParser.LPAREN); - this.state = 4656; + this.state = 4662; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 563, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 565, this.context) ) { case 1: { - this.state = 4642; + this.state = 4648; localContext._star = this.match(HiveSqlParser.STAR); } break; case 2: { - this.state = 4644; + this.state = 4650; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 7 || _la === 96) { { - this.state = 4643; + this.state = 4649; localContext._dist = this.all_distinct(); } } - this.state = 4654; + this.state = 4660; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 562, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 564, this.context) ) { case 1: { - this.state = 4646; + this.state = 4652; this.selectExpression(); - this.state = 4651; + this.state = 4657; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 4647; + this.state = 4653; this.match(HiveSqlParser.COMMA); - this.state = 4648; + this.state = 4654; this.selectExpression(); } } - this.state = 4653; + this.state = 4659; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -22917,60 +22937,60 @@ export class HiveSqlParser extends SQLParserBase { } break; } - this.state = 4677; + this.state = 4683; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 565, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 567, this.context) ) { case 1: { - this.state = 4658; + this.state = 4664; this.match(HiveSqlParser.RPAREN); - this.state = 4659; + this.state = 4665; localContext._within = this.match(HiveSqlParser.KW_WITHIN); - this.state = 4660; + this.state = 4666; this.match(HiveSqlParser.KW_GROUP); - this.state = 4661; + this.state = 4667; this.match(HiveSqlParser.LPAREN); - this.state = 4662; + this.state = 4668; localContext._ordBy = this.orderByClause(); - this.state = 4663; + this.state = 4669; this.match(HiveSqlParser.RPAREN); } break; case 2: { - this.state = 4665; + this.state = 4671; this.match(HiveSqlParser.RPAREN); - this.state = 4667; + this.state = 4673; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 152 || _la === 281) { { - this.state = 4666; + this.state = 4672; localContext._nt = this.null_treatment(); } } - this.state = 4669; + this.state = 4675; this.match(HiveSqlParser.KW_OVER); - this.state = 4670; + this.state = 4676; localContext._ws = this.window_specification(); } break; case 3: { - this.state = 4671; + this.state = 4677; localContext._nt = this.null_treatment(); - this.state = 4672; + this.state = 4678; this.match(HiveSqlParser.RPAREN); - this.state = 4673; + this.state = 4679; this.match(HiveSqlParser.KW_OVER); - this.state = 4674; + this.state = 4680; localContext._ws = this.window_specification(); } break; case 4: { - this.state = 4676; + this.state = 4682; this.match(HiveSqlParser.RPAREN); } break; @@ -22997,24 +23017,24 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new Null_treatmentContext(this.context, this.state); this.enterRule(localContext, 778, HiveSqlParser.RULE_null_treatment); try { - this.state = 4685; + this.state = 4691; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_RESPECT: this.enterOuterAlt(localContext, 1); { - this.state = 4681; + this.state = 4687; this.match(HiveSqlParser.KW_RESPECT); - this.state = 4682; + this.state = 4688; this.match(HiveSqlParser.KW_NULLS); } break; case HiveSqlParser.KW_IGNORE: this.enterOuterAlt(localContext, 2); { - this.state = 4683; + this.state = 4689; this.match(HiveSqlParser.KW_IGNORE); - this.state = 4684; + this.state = 4690; this.match(HiveSqlParser.KW_NULLS); } break; @@ -23042,7 +23062,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4687; + this.state = 4693; this.functionIdentifier(); } } @@ -23064,7 +23084,7 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new FunctionNameForDDLContext(this.context, this.state); this.enterRule(localContext, 782, HiveSqlParser.RULE_functionNameForDDL); try { - this.state = 4691; + this.state = 4697; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ABORT: @@ -23309,14 +23329,14 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.Identifier: this.enterOuterAlt(localContext, 1); { - this.state = 4689; + this.state = 4695; this.userDefinedFuncName(); } break; case HiveSqlParser.StringLiteral: this.enterOuterAlt(localContext, 2); { - this.state = 4690; + this.state = 4696; this.match(HiveSqlParser.StringLiteral); } break; @@ -23342,20 +23362,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new FunctionNameForInvokeContext(this.context, this.state); this.enterRule(localContext, 784, HiveSqlParser.RULE_functionNameForInvoke); try { - this.state = 4695; + this.state = 4701; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 569, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 571, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4693; + this.state = 4699; this.userDefinedFuncName(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4694; + this.state = 4700; this.internalFunctionName(); } break; @@ -23381,7 +23401,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4697; + this.state = 4703; this.functionIdentifier(); } } @@ -23403,20 +23423,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new InternalFunctionNameContext(this.context, this.state); this.enterRule(localContext, 788, HiveSqlParser.RULE_internalFunctionName); try { - this.state = 4701; + this.state = 4707; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 570, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 572, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4699; + this.state = 4705; this.sql11ReservedKeywordsUsedAsFunctionName(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4700; + this.state = 4706; this.sysFuncNames(); } break; @@ -23443,29 +23463,29 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4703; + this.state = 4709; this.match(HiveSqlParser.KW_CAST); - this.state = 4704; - this.match(HiveSqlParser.LPAREN); - this.state = 4705; - this.expression(); - this.state = 4706; - this.match(HiveSqlParser.KW_AS); - this.state = 4707; - localContext._toType = this.primitiveType(); this.state = 4710; + this.match(HiveSqlParser.LPAREN); + this.state = 4711; + this.expression(); + this.state = 4712; + this.match(HiveSqlParser.KW_AS); + this.state = 4713; + localContext._toType = this.primitiveType(); + this.state = 4716; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 137) { { - this.state = 4708; + this.state = 4714; localContext._fmt = this.match(HiveSqlParser.KW_FORMAT); - this.state = 4709; + this.state = 4715; this.match(HiveSqlParser.StringLiteral); } } - this.state = 4712; + this.state = 4718; this.match(HiveSqlParser.RPAREN); } } @@ -23490,43 +23510,43 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4714; + this.state = 4720; this.match(HiveSqlParser.KW_CASE); - this.state = 4715; - this.expression(); this.state = 4721; + this.expression(); + this.state = 4727; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 4716; + this.state = 4722; this.match(HiveSqlParser.KW_WHEN); - this.state = 4717; - this.expression(); - this.state = 4718; - this.match(HiveSqlParser.KW_THEN); - this.state = 4719; - this.expression(); - } - } this.state = 4723; + this.expression(); + this.state = 4724; + this.match(HiveSqlParser.KW_THEN); + this.state = 4725; + this.expression(); + } + } + this.state = 4729; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 383); - this.state = 4727; + this.state = 4733; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 4725; + this.state = 4731; this.match(HiveSqlParser.KW_ELSE); - this.state = 4726; + this.state = 4732; this.expression(); } } - this.state = 4729; + this.state = 4735; this.match(HiveSqlParser.KW_END); } } @@ -23551,41 +23571,41 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4731; - this.match(HiveSqlParser.KW_CASE); this.state = 4737; + this.match(HiveSqlParser.KW_CASE); + this.state = 4743; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 4732; + this.state = 4738; this.match(HiveSqlParser.KW_WHEN); - this.state = 4733; - this.expression(); - this.state = 4734; - this.match(HiveSqlParser.KW_THEN); - this.state = 4735; - this.expression(); - } - } this.state = 4739; + this.expression(); + this.state = 4740; + this.match(HiveSqlParser.KW_THEN); + this.state = 4741; + this.expression(); + } + } + this.state = 4745; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 383); - this.state = 4743; + this.state = 4749; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 105) { { - this.state = 4741; + this.state = 4747; this.match(HiveSqlParser.KW_ELSE); - this.state = 4742; + this.state = 4748; this.expression(); } } - this.state = 4745; + this.state = 4751; this.match(HiveSqlParser.KW_END); } } @@ -23610,25 +23630,25 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4747; + this.state = 4753; this.match(HiveSqlParser.KW_FLOOR); - this.state = 4748; + this.state = 4754; this.match(HiveSqlParser.LPAREN); - this.state = 4749; + this.state = 4755; this.expression(); - this.state = 4752; + this.state = 4758; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 341) { { - this.state = 4750; + this.state = 4756; this.match(HiveSqlParser.KW_TO); - this.state = 4751; + this.state = 4757; localContext._floorUnit = this.floorDateQualifiers(); } } - this.state = 4754; + this.state = 4760; this.match(HiveSqlParser.RPAREN); } } @@ -23650,21 +23670,21 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new FloorDateQualifiersContext(this.context, this.state); this.enterRule(localContext, 798, HiveSqlParser.RULE_floorDateQualifiers); try { - this.state = 4764; + this.state = 4770; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_YEAR: case HiveSqlParser.KW_YEARS: this.enterOuterAlt(localContext, 1); { - this.state = 4756; + this.state = 4762; this.year(); } break; case HiveSqlParser.KW_QUARTER: this.enterOuterAlt(localContext, 2); { - this.state = 4757; + this.state = 4763; this.match(HiveSqlParser.KW_QUARTER); } break; @@ -23672,7 +23692,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_MONTHS: this.enterOuterAlt(localContext, 3); { - this.state = 4758; + this.state = 4764; this.month(); } break; @@ -23680,7 +23700,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_WEEKS: this.enterOuterAlt(localContext, 4); { - this.state = 4759; + this.state = 4765; this.week(); } break; @@ -23688,7 +23708,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_DAYS: this.enterOuterAlt(localContext, 5); { - this.state = 4760; + this.state = 4766; this.day(); } break; @@ -23696,7 +23716,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_HOURS: this.enterOuterAlt(localContext, 6); { - this.state = 4761; + this.state = 4767; this.hour(); } break; @@ -23704,7 +23724,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_MINUTES: this.enterOuterAlt(localContext, 7); { - this.state = 4762; + this.state = 4768; this.minute(); } break; @@ -23712,7 +23732,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_SECONDS: this.enterOuterAlt(localContext, 8); { - this.state = 4763; + this.state = 4769; this.second(); } break; @@ -23740,17 +23760,17 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4766; + this.state = 4772; this.match(HiveSqlParser.KW_EXTRACT); - this.state = 4767; + this.state = 4773; this.match(HiveSqlParser.LPAREN); - this.state = 4768; + this.state = 4774; localContext._timeUnit = this.timeQualifiers(); - this.state = 4769; + this.state = 4775; this.match(HiveSqlParser.KW_FROM); - this.state = 4770; + this.state = 4776; this.expression(); - this.state = 4771; + this.state = 4777; this.match(HiveSqlParser.RPAREN); } } @@ -23772,21 +23792,21 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new TimeQualifiersContext(this.context, this.state); this.enterRule(localContext, 802, HiveSqlParser.RULE_timeQualifiers); try { - this.state = 4781; + this.state = 4787; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_YEAR: case HiveSqlParser.KW_YEARS: this.enterOuterAlt(localContext, 1); { - this.state = 4773; + this.state = 4779; this.year(); } break; case HiveSqlParser.KW_QUARTER: this.enterOuterAlt(localContext, 2); { - this.state = 4774; + this.state = 4780; this.match(HiveSqlParser.KW_QUARTER); } break; @@ -23794,7 +23814,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_MONTHS: this.enterOuterAlt(localContext, 3); { - this.state = 4775; + this.state = 4781; this.month(); } break; @@ -23802,7 +23822,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_WEEKS: this.enterOuterAlt(localContext, 4); { - this.state = 4776; + this.state = 4782; this.week(); } break; @@ -23810,7 +23830,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_DAYS: this.enterOuterAlt(localContext, 5); { - this.state = 4777; + this.state = 4783; this.day(); } break; @@ -23818,7 +23838,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_HOURS: this.enterOuterAlt(localContext, 6); { - this.state = 4778; + this.state = 4784; this.hour(); } break; @@ -23826,7 +23846,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_MINUTES: this.enterOuterAlt(localContext, 7); { - this.state = 4779; + this.state = 4785; this.minute(); } break; @@ -23834,7 +23854,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_SECONDS: this.enterOuterAlt(localContext, 8); { - this.state = 4780; + this.state = 4786; this.second(); } break; @@ -23860,97 +23880,97 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new ConstantContext(this.context, this.state); this.enterRule(localContext, 804, HiveSqlParser.RULE_constant); try { - this.state = 4796; + this.state = 4802; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 579, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 581, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4783; + this.state = 4789; this.intervalLiteral(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4784; + this.state = 4790; this.match(HiveSqlParser.Number); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4785; + this.state = 4791; this.dateLiteral(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 4786; + this.state = 4792; this.timestampLiteral(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 4787; + this.state = 4793; this.timestampLocalTZLiteral(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 4788; + this.state = 4794; this.match(HiveSqlParser.StringLiteral); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 4789; + this.state = 4795; this.stringLiteralSequence(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 4790; + this.state = 4796; this.match(HiveSqlParser.IntegralLiteral); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 4791; + this.state = 4797; this.match(HiveSqlParser.NumberLiteral); } break; case 10: this.enterOuterAlt(localContext, 10); { - this.state = 4792; + this.state = 4798; this.charSetStringLiteral(); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 4793; + this.state = 4799; this.booleanValue(); } break; case 12: this.enterOuterAlt(localContext, 12); { - this.state = 4794; + this.state = 4800; this.match(HiveSqlParser.KW_NULL); } break; case 13: this.enterOuterAlt(localContext, 13); { - this.state = 4795; + this.state = 4801; this.prepareStmtParam(); } break; @@ -23976,7 +23996,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4798; + this.state = 4804; localContext._p = this.parameterIdx(); } } @@ -24000,7 +24020,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4800; + this.state = 4806; this.match(HiveSqlParser.QUESTION); } } @@ -24025,19 +24045,19 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4802; + this.state = 4808; this.match(HiveSqlParser.StringLiteral); - this.state = 4804; + this.state = 4810; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); do { { { - this.state = 4803; + this.state = 4809; this.match(HiveSqlParser.StringLiteral); } } - this.state = 4806; + this.state = 4812; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } while (_la === 426); @@ -24063,9 +24083,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4808; + this.state = 4814; localContext._csName = this.match(HiveSqlParser.CharSetName); - this.state = 4809; + this.state = 4815; localContext._csLiteral = this.match(HiveSqlParser.CharSetLiteral); } } @@ -24087,22 +24107,22 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new DateLiteralContext(this.context, this.state); this.enterRule(localContext, 814, HiveSqlParser.RULE_dateLiteral); try { - this.state = 4814; + this.state = 4820; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_DATE: this.enterOuterAlt(localContext, 1); { - this.state = 4811; + this.state = 4817; this.match(HiveSqlParser.KW_DATE); - this.state = 4812; + this.state = 4818; this.match(HiveSqlParser.StringLiteral); } break; case HiveSqlParser.KW_CURRENT_DATE: this.enterOuterAlt(localContext, 2); { - this.state = 4813; + this.state = 4819; this.match(HiveSqlParser.KW_CURRENT_DATE); } break; @@ -24128,22 +24148,22 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new TimestampLiteralContext(this.context, this.state); this.enterRule(localContext, 816, HiveSqlParser.RULE_timestampLiteral); try { - this.state = 4819; + this.state = 4825; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_TIMESTAMP: this.enterOuterAlt(localContext, 1); { - this.state = 4816; + this.state = 4822; this.match(HiveSqlParser.KW_TIMESTAMP); - this.state = 4817; + this.state = 4823; this.match(HiveSqlParser.StringLiteral); } break; case HiveSqlParser.KW_CURRENT_TIMESTAMP: this.enterOuterAlt(localContext, 2); { - this.state = 4818; + this.state = 4824; this.match(HiveSqlParser.KW_CURRENT_TIMESTAMP); } break; @@ -24171,9 +24191,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4821; + this.state = 4827; this.match(HiveSqlParser.KW_TIMESTAMPLOCALTZ); - this.state = 4822; + this.state = 4828; this.match(HiveSqlParser.StringLiteral); } } @@ -24198,7 +24218,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4824; + this.state = 4830; _la = this.tokenStream.LA(1); if(!(_la === 426 || _la === 431)) { this.errorHandler.recoverInline(this); @@ -24229,9 +24249,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4826; + this.state = 4832; localContext._value = this.intervalValue(); - this.state = 4827; + this.state = 4833; localContext._qualifiers = this.intervalQualifiers(); } } @@ -24253,51 +24273,51 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new IntervalExpressionContext(this.context, this.state); this.enterRule(localContext, 824, HiveSqlParser.RULE_intervalExpression); try { - this.state = 4844; + this.state = 4850; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.LPAREN: this.enterOuterAlt(localContext, 1); { - this.state = 4829; + this.state = 4835; this.match(HiveSqlParser.LPAREN); - this.state = 4830; + this.state = 4836; localContext._value = this.intervalValue(); - this.state = 4831; + this.state = 4837; this.match(HiveSqlParser.RPAREN); - this.state = 4832; + this.state = 4838; localContext._qualifiers = this.intervalQualifiers(); } break; case HiveSqlParser.KW_INTERVAL: this.enterOuterAlt(localContext, 2); { - this.state = 4834; - this.match(HiveSqlParser.KW_INTERVAL); this.state = 4840; + this.match(HiveSqlParser.KW_INTERVAL); + this.state = 4846; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.StringLiteral: case HiveSqlParser.Number: { - this.state = 4835; + this.state = 4841; localContext._value = this.intervalValue(); } break; case HiveSqlParser.LPAREN: { - this.state = 4836; + this.state = 4842; this.match(HiveSqlParser.LPAREN); - this.state = 4837; + this.state = 4843; localContext._expr = this.expression(); - this.state = 4838; + this.state = 4844; this.match(HiveSqlParser.RPAREN); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 4842; + this.state = 4848; localContext._qualifiers = this.intervalQualifiers(); } break; @@ -24323,70 +24343,70 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new IntervalQualifiersContext(this.context, this.state); this.enterRule(localContext, 826, HiveSqlParser.RULE_intervalQualifiers); try { - this.state = 4860; + this.state = 4866; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 585, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 587, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4846; + this.state = 4852; this.year(); - this.state = 4847; + this.state = 4853; this.match(HiveSqlParser.KW_TO); - this.state = 4848; + this.state = 4854; this.month(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4850; + this.state = 4856; this.day(); - this.state = 4851; + this.state = 4857; this.match(HiveSqlParser.KW_TO); - this.state = 4852; + this.state = 4858; this.second(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4854; + this.state = 4860; this.year(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 4855; + this.state = 4861; this.month(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 4856; + this.state = 4862; this.day(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 4857; + this.state = 4863; this.hour(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 4858; + this.state = 4864; this.minute(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 4859; + this.state = 4865; this.second(); } break; @@ -24412,7 +24432,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4862; + this.state = 4868; this.precedenceOrExpression(); } } @@ -24434,83 +24454,83 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new AtomExpressionContext(this.context, this.state); this.enterRule(localContext, 830, HiveSqlParser.RULE_atomExpression); try { - this.state = 4875; + this.state = 4881; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 586, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 588, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4864; + this.state = 4870; this.constant(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4865; + this.state = 4871; this.intervalExpression(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4866; + this.state = 4872; this.castExpression(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 4867; + this.state = 4873; this.extractExpression(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 4868; + this.state = 4874; this.floorExpression(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 4869; + this.state = 4875; this.caseExpression(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 4870; + this.state = 4876; this.whenExpression(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 4871; + this.state = 4877; this.subQueryExpression(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 4872; + this.state = 4878; this.function_(); } break; case 10: this.enterOuterAlt(localContext, 10); { - this.state = 4873; + this.state = 4879; this.expressionsInParenthesis(); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 4874; + this.state = 4880; this.id_(); } break; @@ -24537,31 +24557,31 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4877; + this.state = 4883; this.atomExpression(); - this.state = 4886; + this.state = 4892; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 395 || _la === 401) { { - this.state = 4884; + this.state = 4890; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.LSQUARE: { - this.state = 4878; + this.state = 4884; this.match(HiveSqlParser.LSQUARE); - this.state = 4879; + this.state = 4885; this.expression(); - this.state = 4880; + this.state = 4886; this.match(HiveSqlParser.RSQUARE); } break; case HiveSqlParser.DOT: { - this.state = 4882; + this.state = 4888; this.match(HiveSqlParser.DOT); - this.state = 4883; + this.state = 4889; this.id_(); } break; @@ -24569,7 +24589,7 @@ export class HiveSqlParser extends SQLParserBase { throw new antlr.NoViableAltException(this); } } - this.state = 4888; + this.state = 4894; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -24596,7 +24616,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4889; + this.state = 4895; _la = this.tokenStream.LA(1); if(!(((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & 163) !== 0))) { this.errorHandler.recoverInline(this); @@ -24628,23 +24648,23 @@ export class HiveSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 4894; + this.state = 4900; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 589, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 591, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 4891; + this.state = 4897; this.precedenceUnaryOperator(); } } } - this.state = 4896; + this.state = 4902; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 589, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 591, this.context); } - this.state = 4897; + this.state = 4903; this.precedenceFieldExpression(); } } @@ -24668,7 +24688,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4899; + this.state = 4905; this.match(HiveSqlParser.BITWISEXOR); } } @@ -24693,21 +24713,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4901; - this.precedenceUnaryPrefixExpression(); this.state = 4907; + this.precedenceUnaryPrefixExpression(); + this.state = 4913; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 423) { { { - this.state = 4902; + this.state = 4908; this.precedenceBitwiseXorOperator(); - this.state = 4903; + this.state = 4909; this.precedenceUnaryPrefixExpression(); } } - this.state = 4909; + this.state = 4915; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -24734,7 +24754,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4910; + this.state = 4916; _la = this.tokenStream.LA(1); if(!(((((_la - 412)) & ~0x1F) === 0 && ((1 << (_la - 412)) & 57) !== 0))) { this.errorHandler.recoverInline(this); @@ -24766,21 +24786,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4912; - this.precedenceBitwiseXorExpression(); this.state = 4918; + this.precedenceBitwiseXorExpression(); + this.state = 4924; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (((((_la - 412)) & ~0x1F) === 0 && ((1 << (_la - 412)) & 57) !== 0)) { { { - this.state = 4913; + this.state = 4919; this.precedenceStarOperator(); - this.state = 4914; + this.state = 4920; this.precedenceBitwiseXorExpression(); } } - this.state = 4920; + this.state = 4926; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -24807,7 +24827,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4921; + this.state = 4927; _la = this.tokenStream.LA(1); if(!(_la === 413 || _la === 414)) { this.errorHandler.recoverInline(this); @@ -24839,21 +24859,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4923; - this.precedenceStarExpression(); this.state = 4929; + this.precedenceStarExpression(); + this.state = 4935; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 413 || _la === 414) { { { - this.state = 4924; + this.state = 4930; this.precedencePlusOperator(); - this.state = 4925; + this.state = 4931; this.precedenceStarExpression(); } } - this.state = 4931; + this.state = 4937; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -24879,7 +24899,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4932; + this.state = 4938; this.match(HiveSqlParser.CONCATENATE); } } @@ -24904,21 +24924,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4934; - this.precedencePlusExpression(); this.state = 4940; + this.precedencePlusExpression(); + this.state = 4946; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 422) { { { - this.state = 4935; + this.state = 4941; this.precedenceConcatenateOperator(); - this.state = 4936; + this.state = 4942; localContext._plus = this.precedencePlusExpression(); } } - this.state = 4942; + this.state = 4948; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -24944,7 +24964,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4943; + this.state = 4949; this.match(HiveSqlParser.AMPERSAND); } } @@ -24969,21 +24989,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4945; - this.precedenceConcatenateExpression(); this.state = 4951; + this.precedenceConcatenateExpression(); + this.state = 4957; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 419) { { { - this.state = 4946; + this.state = 4952; this.precedenceAmpersandOperator(); - this.state = 4947; + this.state = 4953; this.precedenceConcatenateExpression(); } } - this.state = 4953; + this.state = 4959; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -25009,7 +25029,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4954; + this.state = 4960; this.match(HiveSqlParser.BITWISEOR); } } @@ -25034,21 +25054,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4956; - this.precedenceAmpersandExpression(); this.state = 4962; + this.precedenceAmpersandExpression(); + this.state = 4968; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 421) { { { - this.state = 4957; + this.state = 4963; this.precedenceBitwiseOrOperator(); - this.state = 4958; + this.state = 4964; this.precedenceAmpersandExpression(); } } - this.state = 4964; + this.state = 4970; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -25075,7 +25095,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4965; + this.state = 4971; _la = this.tokenStream.LA(1); if(!(_la === 184 || _la === 270 || _la === 286)) { this.errorHandler.recoverInline(this); @@ -25104,7 +25124,7 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new PrecedenceSimilarOperatorContext(this.context, this.state); this.enterRule(localContext, 864, HiveSqlParser.RULE_precedenceSimilarOperator); try { - this.state = 4972; + this.state = 4978; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_LIKE: @@ -25112,35 +25132,35 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_RLIKE: this.enterOuterAlt(localContext, 1); { - this.state = 4967; + this.state = 4973; this.precedenceRegexpOperator(); } break; case HiveSqlParser.LESSTHANOREQUALTO: this.enterOuterAlt(localContext, 2); { - this.state = 4968; + this.state = 4974; this.match(HiveSqlParser.LESSTHANOREQUALTO); } break; case HiveSqlParser.LESSTHAN: this.enterOuterAlt(localContext, 3); { - this.state = 4969; + this.state = 4975; this.match(HiveSqlParser.LESSTHAN); } break; case HiveSqlParser.GREATERTHANOREQUALTO: this.enterOuterAlt(localContext, 4); { - this.state = 4970; + this.state = 4976; this.match(HiveSqlParser.GREATERTHANOREQUALTO); } break; case HiveSqlParser.GREATERTHAN: this.enterOuterAlt(localContext, 5); { - this.state = 4971; + this.state = 4977; this.match(HiveSqlParser.GREATERTHAN); } break; @@ -25168,11 +25188,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4974; + this.state = 4980; this.match(HiveSqlParser.LPAREN); - this.state = 4975; + this.state = 4981; this.selectStatement(); - this.state = 4976; + this.state = 4982; this.match(HiveSqlParser.RPAREN); } } @@ -25194,7 +25214,7 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new PrecedenceSimilarExpressionContext(this.context, this.state); this.enterRule(localContext, 868, HiveSqlParser.RULE_precedenceSimilarExpression); try { - this.state = 4981; + this.state = 4987; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ABORT: @@ -25499,16 +25519,16 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.CharSetName: this.enterOuterAlt(localContext, 1); { - this.state = 4978; + this.state = 4984; this.precedenceSimilarExpressionMain(); } break; case HiveSqlParser.KW_EXISTS: this.enterOuterAlt(localContext, 2); { - this.state = 4979; + this.state = 4985; this.match(HiveSqlParser.KW_EXISTS); - this.state = 4980; + this.state = 4986; this.subQueryExpression(); } break; @@ -25536,14 +25556,14 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 4983; + this.state = 4989; localContext._a = this.precedenceBitwiseOrExpression(); - this.state = 4985; + this.state = 4991; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 598, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 600, this.context) ) { case 1: { - this.state = 4984; + this.state = 4990; localContext._part = this.precedenceSimilarExpressionPart(); } break; @@ -25568,31 +25588,31 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new PrecedenceSimilarExpressionPartContext(this.context, this.state); this.enterRule(localContext, 872, HiveSqlParser.RULE_precedenceSimilarExpressionPart); try { - this.state = 4993; + this.state = 4999; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 599, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 601, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 4987; + this.state = 4993; this.precedenceSimilarOperator(); - this.state = 4988; + this.state = 4994; localContext._equalExpr = this.precedenceBitwiseOrExpression(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 4990; + this.state = 4996; this.precedenceSimilarExpressionAtom(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 4991; + this.state = 4997; this.match(HiveSqlParser.KW_NOT); - this.state = 4992; + this.state = 4998; this.precedenceSimilarExpressionPartNot(); } break; @@ -25617,37 +25637,37 @@ export class HiveSqlParser extends SQLParserBase { this.enterRule(localContext, 874, HiveSqlParser.RULE_precedenceSimilarExpressionAtom); let _la: number; try { - this.state = 5006; + this.state = 5012; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_IN: this.enterOuterAlt(localContext, 1); { - this.state = 4995; + this.state = 5001; this.match(HiveSqlParser.KW_IN); - this.state = 4996; + this.state = 5002; this.precedenceSimilarExpressionIn(); } break; case HiveSqlParser.KW_BETWEEN: this.enterOuterAlt(localContext, 2); { - this.state = 4997; + this.state = 5003; this.match(HiveSqlParser.KW_BETWEEN); - this.state = 4998; + this.state = 5004; localContext._min = this.precedenceBitwiseOrExpression(); - this.state = 4999; + this.state = 5005; this.match(HiveSqlParser.KW_AND); - this.state = 5000; + this.state = 5006; localContext._max = this.precedenceBitwiseOrExpression(); } break; case HiveSqlParser.KW_LIKE: this.enterOuterAlt(localContext, 3); { - this.state = 5002; + this.state = 5008; this.match(HiveSqlParser.KW_LIKE); - this.state = 5003; + this.state = 5009; _la = this.tokenStream.LA(1); if(!(_la === 7 || _la === 13)) { this.errorHandler.recoverInline(this); @@ -25656,7 +25676,7 @@ export class HiveSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5004; + this.state = 5010; localContext._expr = this.expressionsInParenthesis(); } break; @@ -25668,7 +25688,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.GREATERTHAN: this.enterOuterAlt(localContext, 4); { - this.state = 5005; + this.state = 5011; this.precedenceSimilarExpressionQuantifierPredicate(); } break; @@ -25696,11 +25716,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5008; + this.state = 5014; this.subQuerySelectorOperator(); - this.state = 5009; + this.state = 5015; this.quantifierType(); - this.state = 5010; + this.state = 5016; this.subQueryExpression(); } } @@ -25725,7 +25745,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5012; + this.state = 5018; _la = this.tokenStream.LA(1); if(!(_la === 7 || _la === 13 || _la === 313)) { this.errorHandler.recoverInline(this); @@ -25754,20 +25774,20 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new PrecedenceSimilarExpressionInContext(this.context, this.state); this.enterRule(localContext, 880, HiveSqlParser.RULE_precedenceSimilarExpressionIn); try { - this.state = 5016; + this.state = 5022; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 601, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 603, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5014; + this.state = 5020; this.subQueryExpression(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5015; + this.state = 5021; localContext._expr = this.expressionsInParenthesis(); } break; @@ -25791,22 +25811,22 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new PrecedenceSimilarExpressionPartNotContext(this.context, this.state); this.enterRule(localContext, 882, HiveSqlParser.RULE_precedenceSimilarExpressionPartNot); try { - this.state = 5022; + this.state = 5028; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 602, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 604, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5018; + this.state = 5024; this.precedenceRegexpOperator(); - this.state = 5019; + this.state = 5025; localContext._notExpr = this.precedenceBitwiseOrExpression(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5021; + this.state = 5027; this.precedenceSimilarExpressionAtom(); } break; @@ -25832,11 +25852,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5024; + this.state = 5030; this.match(HiveSqlParser.KW_IS); - this.state = 5025; + this.state = 5031; this.match(HiveSqlParser.KW_DISTINCT); - this.state = 5026; + this.state = 5032; this.match(HiveSqlParser.KW_FROM); } } @@ -25858,40 +25878,40 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new PrecedenceEqualOperatorContext(this.context, this.state); this.enterRule(localContext, 886, HiveSqlParser.RULE_precedenceEqualOperator); try { - this.state = 5035; + this.state = 5041; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.EQUAL: this.enterOuterAlt(localContext, 1); { - this.state = 5028; + this.state = 5034; this.match(HiveSqlParser.EQUAL); } break; case HiveSqlParser.EQUAL_NS: this.enterOuterAlt(localContext, 2); { - this.state = 5029; + this.state = 5035; this.match(HiveSqlParser.EQUAL_NS); } break; case HiveSqlParser.NOTEQUAL: this.enterOuterAlt(localContext, 3); { - this.state = 5030; + this.state = 5036; this.match(HiveSqlParser.NOTEQUAL); } break; case HiveSqlParser.KW_IS: this.enterOuterAlt(localContext, 4); { - this.state = 5031; + this.state = 5037; this.match(HiveSqlParser.KW_IS); - this.state = 5032; + this.state = 5038; this.match(HiveSqlParser.KW_NOT); - this.state = 5033; + this.state = 5039; this.match(HiveSqlParser.KW_DISTINCT); - this.state = 5034; + this.state = 5040; this.match(HiveSqlParser.KW_FROM); } break; @@ -25920,33 +25940,33 @@ export class HiveSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 5037; + this.state = 5043; this.precedenceSimilarExpression(); - this.state = 5046; + this.state = 5052; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 605, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 607, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { - this.state = 5044; + this.state = 5050; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 604, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 606, this.context) ) { case 1: { - this.state = 5038; + this.state = 5044; localContext._precedenceEqualOperator = this.precedenceEqualOperator(); localContext._equal.push(localContext._precedenceEqualOperator); - this.state = 5039; + this.state = 5045; localContext._precedenceSimilarExpression = this.precedenceSimilarExpression(); localContext._p.push(localContext._precedenceSimilarExpression); } break; case 2: { - this.state = 5041; + this.state = 5047; localContext._precedenceDistinctOperator = this.precedenceDistinctOperator(); localContext._dist.push(localContext._precedenceDistinctOperator); - this.state = 5042; + this.state = 5048; localContext._precedenceSimilarExpression = this.precedenceSimilarExpression(); localContext._p.push(localContext._precedenceSimilarExpression); } @@ -25954,9 +25974,9 @@ export class HiveSqlParser extends SQLParserBase { } } } - this.state = 5048; + this.state = 5054; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 605, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 607, this.context); } } } @@ -25978,70 +25998,70 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new IsConditionContext(this.context, this.state); this.enterRule(localContext, 890, HiveSqlParser.RULE_isCondition); try { - this.state = 5061; + this.state = 5067; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 606, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 608, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5049; + this.state = 5055; this.match(HiveSqlParser.KW_NULL); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5050; + this.state = 5056; this.match(HiveSqlParser.KW_TRUE); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 5051; + this.state = 5057; this.match(HiveSqlParser.KW_FALSE); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 5052; + this.state = 5058; this.match(HiveSqlParser.KW_UNKNOWN); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 5053; + this.state = 5059; this.match(HiveSqlParser.KW_NOT); - this.state = 5054; + this.state = 5060; this.match(HiveSqlParser.KW_NULL); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 5055; + this.state = 5061; this.match(HiveSqlParser.KW_NOT); - this.state = 5056; + this.state = 5062; this.match(HiveSqlParser.KW_TRUE); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 5057; + this.state = 5063; this.match(HiveSqlParser.KW_NOT); - this.state = 5058; + this.state = 5064; this.match(HiveSqlParser.KW_FALSE); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 5059; + this.state = 5065; this.match(HiveSqlParser.KW_NOT); - this.state = 5060; + this.state = 5066; this.match(HiveSqlParser.KW_UNKNOWN); } break; @@ -26068,16 +26088,16 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5063; + this.state = 5069; this.precedenceEqualExpression(); - this.state = 5066; + this.state = 5072; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 167) { { - this.state = 5064; + this.state = 5070; localContext._a = this.match(HiveSqlParser.KW_IS); - this.state = 5065; + this.state = 5071; this.isCondition(); } } @@ -26104,7 +26124,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5068; + this.state = 5074; this.match(HiveSqlParser.KW_NOT); } } @@ -26129,23 +26149,23 @@ export class HiveSqlParser extends SQLParserBase { let alternative: number; this.enterOuterAlt(localContext, 1); { - this.state = 5073; + this.state = 5079; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 608, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 610, this.context); while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) { if (alternative === 1) { { { - this.state = 5070; + this.state = 5076; this.precedenceNotOperator(); } } } - this.state = 5075; + this.state = 5081; this.errorHandler.sync(this); - alternative = this.interpreter.adaptivePredict(this.tokenStream, 608, this.context); + alternative = this.interpreter.adaptivePredict(this.tokenStream, 610, this.context); } - this.state = 5076; + this.state = 5082; this.precedenceUnarySuffixExpression(); } } @@ -26169,7 +26189,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5078; + this.state = 5084; this.match(HiveSqlParser.KW_AND); } } @@ -26194,21 +26214,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5080; - this.precedenceNotExpression(); this.state = 5086; + this.precedenceNotExpression(); + this.state = 5092; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 11) { { { - this.state = 5081; + this.state = 5087; this.precedenceAndOperator(); - this.state = 5082; + this.state = 5088; this.precedenceNotExpression(); } } - this.state = 5088; + this.state = 5094; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -26234,7 +26254,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5089; + this.state = 5095; this.match(HiveSqlParser.KW_OR); } } @@ -26259,21 +26279,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5091; - this.precedenceAndExpression(); this.state = 5097; + this.precedenceAndExpression(); + this.state = 5103; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 228) { { { - this.state = 5092; + this.state = 5098; this.precedenceOrOperator(); - this.state = 5093; + this.state = 5099; this.precedenceAndExpression(); } } - this.state = 5099; + this.state = 5105; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -26300,7 +26320,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5100; + this.state = 5106; _la = this.tokenStream.LA(1); if(!(_la === 125 || _la === 350)) { this.errorHandler.recoverInline(this); @@ -26332,7 +26352,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5102; + this.state = 5108; _la = this.tokenStream.LA(1); if(!(_la === 125 || _la === 350)) { this.errorHandler.recoverInline(this); @@ -26364,14 +26384,14 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5104; + this.state = 5110; this.tableName(); - this.state = 5106; + this.state = 5112; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 237) { { - this.state = 5105; + this.state = 5111; this.partitionSpec(); } } @@ -26399,29 +26419,29 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5108; + this.state = 5114; this.match(HiveSqlParser.KW_PARTITION); - this.state = 5109; - this.match(HiveSqlParser.LPAREN); - this.state = 5110; - this.partitionVal(); this.state = 5115; + this.match(HiveSqlParser.LPAREN); + this.state = 5116; + this.partitionVal(); + this.state = 5121; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 5111; + this.state = 5117; this.match(HiveSqlParser.COMMA); - this.state = 5112; + this.state = 5118; this.partitionVal(); } } - this.state = 5117; + this.state = 5123; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 5118; + this.state = 5124; this.match(HiveSqlParser.RPAREN); } } @@ -26446,16 +26466,16 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5120; + this.state = 5126; this.id_(); - this.state = 5123; + this.state = 5129; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 405) { { - this.state = 5121; + this.state = 5127; this.match(HiveSqlParser.EQUAL); - this.state = 5122; + this.state = 5128; this.constant(); } } @@ -26483,27 +26503,27 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5125; - this.match(HiveSqlParser.LPAREN); - this.state = 5126; - this.partitionSelectorVal(); this.state = 5131; + this.match(HiveSqlParser.LPAREN); + this.state = 5132; + this.partitionSelectorVal(); + this.state = 5137; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 5127; + this.state = 5133; this.match(HiveSqlParser.COMMA); - this.state = 5128; + this.state = 5134; this.partitionSelectorVal(); } } - this.state = 5133; + this.state = 5139; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } - this.state = 5134; + this.state = 5140; this.match(HiveSqlParser.RPAREN); } } @@ -26527,11 +26547,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5136; + this.state = 5142; this.id_(); - this.state = 5137; + this.state = 5143; this.partitionSelectorOperator(); - this.state = 5138; + this.state = 5144; this.constant(); } } @@ -26553,13 +26573,13 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new PartitionSelectorOperatorContext(this.context, this.state); this.enterRule(localContext, 920, HiveSqlParser.RULE_partitionSelectorOperator); try { - this.state = 5142; + this.state = 5148; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_LIKE: this.enterOuterAlt(localContext, 1); { - this.state = 5140; + this.state = 5146; this.match(HiveSqlParser.KW_LIKE); } break; @@ -26571,7 +26591,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.GREATERTHAN: this.enterOuterAlt(localContext, 2); { - this.state = 5141; + this.state = 5147; this.subQuerySelectorOperator(); } break; @@ -26600,7 +26620,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5144; + this.state = 5150; _la = this.tokenStream.LA(1); if(!(((((_la - 405)) & ~0x1F) === 0 && ((1 << (_la - 405)) & 125) !== 0))) { this.errorHandler.recoverInline(this); @@ -26632,7 +26652,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5146; + this.state = 5152; _la = this.tokenStream.LA(1); if(!(((((_la - 11)) & ~0x1F) === 0 && ((1 << (_la - 11)) & 17023009) !== 0) || _la === 100 || _la === 131 || ((((_la - 132)) & ~0x1F) === 0 && ((1 << (_la - 132)) & 3225944065) !== 0) || _la === 184 || _la === 198 || _la === 216 || _la === 228 || ((((_la - 264)) & ~0x1F) === 0 && ((1 << (_la - 264)) & 4194369) !== 0) || ((((_la - 311)) & ~0x1F) === 0 && ((1 << (_la - 311)) & 536883201) !== 0) || _la === 357 || _la === 383 || ((((_la - 405)) & ~0x1F) === 0 && ((1 << (_la - 405)) & 385023) !== 0))) { this.errorHandler.recoverInline(this); @@ -26661,13 +26681,13 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new Id_Context(this.context, this.state); this.enterRule(localContext, 926, HiveSqlParser.RULE_id_); try { - this.state = 5150; + this.state = 5156; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.Identifier: this.enterOuterAlt(localContext, 1); { - this.state = 5148; + this.state = 5154; this.match(HiveSqlParser.Identifier); } break; @@ -26912,7 +26932,7 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_ZONE: this.enterOuterAlt(localContext, 2); { - this.state = 5149; + this.state = 5155; this.nonReserved(); } break; @@ -26941,16 +26961,16 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5152; + this.state = 5158; this.id_(); - this.state = 5155; + this.state = 5161; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 395) { { - this.state = 5153; + this.state = 5159; this.match(HiveSqlParser.DOT); - this.state = 5154; + this.state = 5160; localContext._fn = this.id_(); } } @@ -26977,7 +26997,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5157; + this.state = 5163; this.id_(); } } @@ -27002,7 +27022,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5159; + this.state = 5165; _la = this.tokenStream.LA(1); if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3252454782) !== 0) || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 94072755) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 3203280837) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3774298979) !== 0) || ((((_la - 130)) & ~0x1F) === 0 && ((1 << (_la - 130)) & 1985876353) !== 0) || ((((_la - 168)) & ~0x1F) === 0 && ((1 << (_la - 168)) & 3152987127) !== 0) || ((((_la - 200)) & ~0x1F) === 0 && ((1 << (_la - 200)) & 215407575) !== 0) || ((((_la - 232)) & ~0x1F) === 0 && ((1 << (_la - 232)) & 1859156443) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & 4039901127) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & 3755917179) !== 0) || ((((_la - 330)) & ~0x1F) === 0 && ((1 << (_la - 330)) & 3402225181) !== 0) || ((((_la - 362)) & ~0x1F) === 0 && ((1 << (_la - 362)) & 4238323319) !== 0) || _la === 394)) { this.errorHandler.recoverInline(this); @@ -27034,7 +27054,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5161; + this.state = 5167; _la = this.tokenStream.LA(1); if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 469827584) !== 0) || ((((_la - 63)) & ~0x1F) === 0 && ((1 << (_la - 63)) & 259) !== 0) || _la === 100 || _la === 131 || ((((_la - 145)) & ~0x1F) === 0 && ((1 << (_la - 145)) & 393281) !== 0) || _la === 198 || _la === 264 || _la === 311 || _la === 337)) { this.errorHandler.recoverInline(this); @@ -27065,9 +27085,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5163; + this.state = 5169; this.hintList(); - this.state = 5164; + this.state = 5170; this.match(HiveSqlParser.EOF); } } @@ -27092,21 +27112,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5166; + this.state = 5172; this.hintItem(); - this.state = 5171; + this.state = 5177; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 5167; + this.state = 5173; this.match(HiveSqlParser.COMMA); - this.state = 5168; + this.state = 5174; this.hintItem(); } } - this.state = 5173; + this.state = 5179; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -27133,18 +27153,18 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5174; + this.state = 5180; this.hintName(); - this.state = 5179; + this.state = 5185; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 399) { { - this.state = 5175; + this.state = 5181; this.match(HiveSqlParser.LPAREN); - this.state = 5176; + this.state = 5182; this.hintArgs(); - this.state = 5177; + this.state = 5183; this.match(HiveSqlParser.RPAREN); } } @@ -27172,7 +27192,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5181; + this.state = 5187; _la = this.tokenStream.LA(1); if(!(_la === 199 || _la === 242 || _la === 300 || _la === 322)) { this.errorHandler.recoverInline(this); @@ -27204,21 +27224,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5183; + this.state = 5189; this.hintArgName(); - this.state = 5188; + this.state = 5194; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 5184; + this.state = 5190; this.match(HiveSqlParser.COMMA); - this.state = 5185; + this.state = 5191; this.hintArgName(); } } - this.state = 5190; + this.state = 5196; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -27245,7 +27265,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5191; + this.state = 5197; _la = this.tokenStream.LA(1); if(!(_la === 213 || _la === 431 || _la === 432)) { this.errorHandler.recoverInline(this); @@ -27276,13 +27296,13 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5193; + this.state = 5199; this.match(HiveSqlParser.KW_PREPARE); - this.state = 5194; + this.state = 5200; this.id_(); - this.state = 5195; + this.state = 5201; this.match(HiveSqlParser.KW_FROM); - this.state = 5196; + this.state = 5202; this.queryStatementExpression(); } } @@ -27306,13 +27326,13 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5198; + this.state = 5204; this.match(HiveSqlParser.KW_EXECUTE); - this.state = 5199; + this.state = 5205; this.id_(); - this.state = 5200; + this.state = 5206; this.match(HiveSqlParser.KW_USING); - this.state = 5201; + this.state = 5207; this.executeParamList(); } } @@ -27337,21 +27357,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5203; + this.state = 5209; this.constant(); - this.state = 5208; + this.state = 5214; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 5204; + this.state = 5210; this.match(HiveSqlParser.COMMA); - this.state = 5205; + this.state = 5211; this.constant(); } } - this.state = 5210; + this.state = 5216; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -27375,104 +27395,104 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new ResourcePlanDdlStatementsContext(this.context, this.state); this.enterRule(localContext, 954, HiveSqlParser.RULE_resourcePlanDdlStatements); try { - this.state = 5225; + this.state = 5231; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 622, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 624, this.context) ) { case 1: this.enterOuterAlt(localContext, 1); { - this.state = 5211; + this.state = 5217; this.createResourcePlanStatement(); } break; case 2: this.enterOuterAlt(localContext, 2); { - this.state = 5212; + this.state = 5218; this.alterResourcePlanStatement(); } break; case 3: this.enterOuterAlt(localContext, 3); { - this.state = 5213; + this.state = 5219; this.dropResourcePlanStatement(); } break; case 4: this.enterOuterAlt(localContext, 4); { - this.state = 5214; + this.state = 5220; this.globalWmStatement(); } break; case 5: this.enterOuterAlt(localContext, 5); { - this.state = 5215; + this.state = 5221; this.replaceResourcePlanStatement(); } break; case 6: this.enterOuterAlt(localContext, 6); { - this.state = 5216; + this.state = 5222; this.createTriggerStatement(); } break; case 7: this.enterOuterAlt(localContext, 7); { - this.state = 5217; + this.state = 5223; this.alterTriggerStatement(); } break; case 8: this.enterOuterAlt(localContext, 8); { - this.state = 5218; + this.state = 5224; this.dropTriggerStatement(); } break; case 9: this.enterOuterAlt(localContext, 9); { - this.state = 5219; + this.state = 5225; this.createPoolStatement(); } break; case 10: this.enterOuterAlt(localContext, 10); { - this.state = 5220; + this.state = 5226; this.alterPoolStatement(); } break; case 11: this.enterOuterAlt(localContext, 11); { - this.state = 5221; + this.state = 5227; this.dropPoolStatement(); } break; case 12: this.enterOuterAlt(localContext, 12); { - this.state = 5222; + this.state = 5228; this.createMappingStatement(); } break; case 13: this.enterOuterAlt(localContext, 13); { - this.state = 5223; + this.state = 5229; this.alterMappingStatement(); } break; case 14: this.enterOuterAlt(localContext, 14); { - this.state = 5224; + this.state = 5230; this.dropMappingStatement(); } break; @@ -27496,30 +27516,30 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new RpAssignContext(this.context, this.state); this.enterRule(localContext, 956, HiveSqlParser.RULE_rpAssign); try { - this.state = 5234; + this.state = 5240; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_QUERY_PARALLELISM: this.enterOuterAlt(localContext, 1); { - this.state = 5227; + this.state = 5233; this.match(HiveSqlParser.KW_QUERY_PARALLELISM); - this.state = 5228; + this.state = 5234; this.match(HiveSqlParser.EQUAL); - this.state = 5229; + this.state = 5235; localContext._parallelism = this.match(HiveSqlParser.Number); } break; case HiveSqlParser.KW_DEFAULT: this.enterOuterAlt(localContext, 2); { - this.state = 5230; + this.state = 5236; this.match(HiveSqlParser.KW_DEFAULT); - this.state = 5231; + this.state = 5237; this.match(HiveSqlParser.KW_POOL); - this.state = 5232; + this.state = 5238; this.match(HiveSqlParser.EQUAL); - this.state = 5233; + this.state = 5239; this.poolPath(); } break; @@ -27548,21 +27568,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5236; + this.state = 5242; this.rpAssign(); - this.state = 5241; + this.state = 5247; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 5237; + this.state = 5243; this.match(HiveSqlParser.COMMA); - this.state = 5238; + this.state = 5244; this.rpAssign(); } } - this.state = 5243; + this.state = 5249; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -27586,22 +27606,22 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new RpUnassignContext(this.context, this.state); this.enterRule(localContext, 960, HiveSqlParser.RULE_rpUnassign); try { - this.state = 5247; + this.state = 5253; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_QUERY_PARALLELISM: this.enterOuterAlt(localContext, 1); { - this.state = 5244; + this.state = 5250; this.match(HiveSqlParser.KW_QUERY_PARALLELISM); } break; case HiveSqlParser.KW_DEFAULT: this.enterOuterAlt(localContext, 2); { - this.state = 5245; + this.state = 5251; this.match(HiveSqlParser.KW_DEFAULT); - this.state = 5246; + this.state = 5252; this.match(HiveSqlParser.KW_POOL); } break; @@ -27630,21 +27650,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5249; + this.state = 5255; this.rpUnassign(); - this.state = 5254; + this.state = 5260; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 5250; + this.state = 5256; this.match(HiveSqlParser.COMMA); - this.state = 5251; + this.state = 5257; this.rpUnassign(); } } - this.state = 5256; + this.state = 5262; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -27671,47 +27691,47 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5257; + this.state = 5263; this.match(HiveSqlParser.KW_CREATE); - this.state = 5258; + this.state = 5264; this.match(HiveSqlParser.KW_RESOURCE); - this.state = 5259; + this.state = 5265; this.match(HiveSqlParser.KW_PLAN); - this.state = 5261; + this.state = 5267; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 151) { { - this.state = 5260; + this.state = 5266; this.ifNotExists(); } } - this.state = 5272; + this.state = 5278; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 629, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 631, this.context) ) { case 1: { - this.state = 5263; + this.state = 5269; localContext._name = this.id_(); - this.state = 5264; + this.state = 5270; this.match(HiveSqlParser.KW_LIKE); - this.state = 5265; + this.state = 5271; localContext._likeName = this.id_(); } break; case 2: { - this.state = 5267; + this.state = 5273; localContext._name = this.id_(); - this.state = 5270; + this.state = 5276; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 628, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 630, this.context) ) { case 1: { - this.state = 5268; + this.state = 5274; this.match(HiveSqlParser.KW_WITH); - this.state = 5269; + this.state = 5275; this.rpAssignList(); } break; @@ -27741,9 +27761,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5274; + this.state = 5280; this.match(HiveSqlParser.KW_WITH); - this.state = 5275; + this.state = 5281; this.match(HiveSqlParser.KW_REPLACE); } } @@ -27767,14 +27787,14 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5277; + this.state = 5283; this.match(HiveSqlParser.KW_ACTIVATE); - this.state = 5279; + this.state = 5285; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 630, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 632, this.context) ) { case 1: { - this.state = 5278; + this.state = 5284; this.withReplace(); } break; @@ -27802,7 +27822,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5281; + this.state = 5287; _la = this.tokenStream.LA(1); if(!(_la === 106 || _la === 107)) { this.errorHandler.recoverInline(this); @@ -27834,7 +27854,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5283; + this.state = 5289; _la = this.tokenStream.LA(1); if(!(_la === 94 || _la === 95)) { this.errorHandler.recoverInline(this); @@ -27865,7 +27885,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5285; + this.state = 5291; this.match(HiveSqlParser.KW_UNMANAGED); } } @@ -27890,7 +27910,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5287; + this.state = 5293; _la = this.tokenStream.LA(1); if(!(_la === 392 || _la === 393)) { this.errorHandler.recoverInline(this); @@ -27922,7 +27942,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5289; + this.state = 5295; _la = this.tokenStream.LA(1); if(!(_la === 208 || _la === 209)) { this.errorHandler.recoverInline(this); @@ -27954,7 +27974,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5291; + this.state = 5297; _la = this.tokenStream.LA(1); if(!(_la === 381 || _la === 382)) { this.errorHandler.recoverInline(this); @@ -27986,7 +28006,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5293; + this.state = 5299; _la = this.tokenStream.LA(1); if(!(_la === 73 || _la === 74)) { this.errorHandler.recoverInline(this); @@ -28018,7 +28038,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5295; + this.state = 5301; _la = this.tokenStream.LA(1); if(!(_la === 148 || _la === 149)) { this.errorHandler.recoverInline(this); @@ -28050,7 +28070,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5297; + this.state = 5303; _la = this.tokenStream.LA(1); if(!(_la === 206 || _la === 207)) { this.errorHandler.recoverInline(this); @@ -28082,7 +28102,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5299; + this.state = 5305; _la = this.tokenStream.LA(1); if(!(_la === 297 || _la === 298)) { this.errorHandler.recoverInline(this); @@ -28114,7 +28134,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5301; + this.state = 5307; _la = this.tokenStream.LA(1); if(!(((((_la - 80)) & ~0x1F) === 0 && ((1 << (_la - 80)) & 7) !== 0))) { this.errorHandler.recoverInline(this); @@ -28146,66 +28166,66 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5303; + this.state = 5309; this.match(HiveSqlParser.KW_ALTER); - this.state = 5304; + this.state = 5310; this.match(HiveSqlParser.KW_RESOURCE); - this.state = 5305; + this.state = 5311; this.match(HiveSqlParser.KW_PLAN); - this.state = 5306; + this.state = 5312; localContext._name = this.id_(); - this.state = 5324; + this.state = 5330; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_VALIDATE: { - this.state = 5307; + this.state = 5313; this.match(HiveSqlParser.KW_VALIDATE); } break; case HiveSqlParser.KW_DISABLE: case HiveSqlParser.KW_DISABLED: { - this.state = 5308; + this.state = 5314; this.disable(); } break; case HiveSqlParser.KW_SET: { - this.state = 5309; + this.state = 5315; this.match(HiveSqlParser.KW_SET); - this.state = 5310; + this.state = 5316; this.rpAssignList(); } break; case HiveSqlParser.KW_UNSET: { - this.state = 5311; + this.state = 5317; this.match(HiveSqlParser.KW_UNSET); - this.state = 5312; + this.state = 5318; this.rpUnassignList(); } break; case HiveSqlParser.KW_RENAME: { - this.state = 5313; + this.state = 5319; this.match(HiveSqlParser.KW_RENAME); - this.state = 5314; + this.state = 5320; this.match(HiveSqlParser.KW_TO); - this.state = 5315; + this.state = 5321; localContext._newName = this.id_(); } break; case HiveSqlParser.KW_ACTIVATE: { - this.state = 5316; + this.state = 5322; this.activate(); - this.state = 5318; + this.state = 5324; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 631, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 633, this.context) ) { case 1: { - this.state = 5317; + this.state = 5323; this.enable(); } break; @@ -28215,14 +28235,14 @@ export class HiveSqlParser extends SQLParserBase { case HiveSqlParser.KW_ENABLE: case HiveSqlParser.KW_ENABLED: { - this.state = 5320; + this.state = 5326; this.enable(); - this.state = 5322; + this.state = 5328; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 2) { { - this.state = 5321; + this.state = 5327; this.activate(); } } @@ -28254,29 +28274,29 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5328; + this.state = 5334; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ENABLE: case HiveSqlParser.KW_ENABLED: { - this.state = 5326; + this.state = 5332; this.enable(); } break; case HiveSqlParser.KW_DISABLE: case HiveSqlParser.KW_DISABLED: { - this.state = 5327; + this.state = 5333; this.disable(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5330; + this.state = 5336; this.match(HiveSqlParser.KW_WORKLOAD); - this.state = 5331; + this.state = 5337; this.match(HiveSqlParser.KW_MANAGEMENT); } } @@ -28300,36 +28320,36 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5333; + this.state = 5339; this.match(HiveSqlParser.KW_REPLACE); - this.state = 5345; + this.state = 5351; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ACTIVE: { - this.state = 5334; + this.state = 5340; this.match(HiveSqlParser.KW_ACTIVE); - this.state = 5335; + this.state = 5341; this.match(HiveSqlParser.KW_RESOURCE); - this.state = 5336; + this.state = 5342; this.match(HiveSqlParser.KW_PLAN); - this.state = 5337; + this.state = 5343; this.match(HiveSqlParser.KW_WITH); - this.state = 5338; + this.state = 5344; localContext._src = this.id_(); } break; case HiveSqlParser.KW_RESOURCE: { - this.state = 5339; + this.state = 5345; this.match(HiveSqlParser.KW_RESOURCE); - this.state = 5340; + this.state = 5346; this.match(HiveSqlParser.KW_PLAN); - this.state = 5341; + this.state = 5347; localContext._dest = this.id_(); - this.state = 5342; + this.state = 5348; this.match(HiveSqlParser.KW_WITH); - this.state = 5343; + this.state = 5349; localContext._src = this.id_(); } break; @@ -28359,23 +28379,23 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5347; + this.state = 5353; this.match(HiveSqlParser.KW_DROP); - this.state = 5348; + this.state = 5354; this.match(HiveSqlParser.KW_RESOURCE); - this.state = 5349; + this.state = 5355; this.match(HiveSqlParser.KW_PLAN); - this.state = 5351; + this.state = 5357; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); if (_la === 151) { { - this.state = 5350; + this.state = 5356; this.ifExists(); } } - this.state = 5353; + this.state = 5359; localContext._name = this.id_(); } } @@ -28400,21 +28420,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5355; + this.state = 5361; this.id_(); - this.state = 5360; + this.state = 5366; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 395) { { { - this.state = 5356; + this.state = 5362; this.match(HiveSqlParser.DOT); - this.state = 5357; + this.state = 5363; this.id_(); } } - this.state = 5362; + this.state = 5368; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -28440,7 +28460,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5363; + this.state = 5369; this.triggerAtomExpression(); } } @@ -28464,9 +28484,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5365; + this.state = 5371; this.triggerExpression(); - this.state = 5366; + this.state = 5372; this.match(HiveSqlParser.EOF); } } @@ -28491,21 +28511,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5368; + this.state = 5374; this.triggerAndExpression(); - this.state = 5373; + this.state = 5379; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 228) { { { - this.state = 5369; + this.state = 5375; this.match(HiveSqlParser.KW_OR); - this.state = 5370; + this.state = 5376; this.triggerAndExpression(); } } - this.state = 5375; + this.state = 5381; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -28532,21 +28552,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5376; + this.state = 5382; this.triggerAtomExpression(); - this.state = 5381; + this.state = 5387; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 11) { { { - this.state = 5377; + this.state = 5383; this.match(HiveSqlParser.KW_AND); - this.state = 5378; + this.state = 5384; this.triggerAtomExpression(); } } - this.state = 5383; + this.state = 5389; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -28572,11 +28592,11 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5384; + this.state = 5390; this.id_(); - this.state = 5385; + this.state = 5391; this.comparisionOperator(); - this.state = 5386; + this.state = 5392; this.triggerLiteral(); } } @@ -28601,7 +28621,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5388; + this.state = 5394; _la = this.tokenStream.LA(1); if(!(_la === 426 || _la === 431)) { this.errorHandler.recoverInline(this); @@ -28632,7 +28652,7 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5390; + this.state = 5396; this.match(HiveSqlParser.GREATERTHAN); } } @@ -28654,24 +28674,24 @@ export class HiveSqlParser extends SQLParserBase { let localContext = new TriggerActionExpressionContext(this.context, this.state); this.enterRule(localContext, 1016, HiveSqlParser.RULE_triggerActionExpression); try { - this.state = 5396; + this.state = 5402; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_KILL: this.enterOuterAlt(localContext, 1); { - this.state = 5392; + this.state = 5398; this.match(HiveSqlParser.KW_KILL); } break; case HiveSqlParser.KW_MOVE: this.enterOuterAlt(localContext, 2); { - this.state = 5393; + this.state = 5399; this.match(HiveSqlParser.KW_MOVE); - this.state = 5394; + this.state = 5400; this.match(HiveSqlParser.KW_TO); - this.state = 5395; + this.state = 5401; this.poolPath(); } break; @@ -28699,9 +28719,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5398; + this.state = 5404; this.triggerActionExpression(); - this.state = 5399; + this.state = 5405; this.match(HiveSqlParser.EOF); } } @@ -28725,23 +28745,23 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5401; - this.match(HiveSqlParser.KW_CREATE); - this.state = 5402; - this.match(HiveSqlParser.KW_TRIGGER); - this.state = 5403; - localContext._rpName = this.id_(); - this.state = 5404; - this.match(HiveSqlParser.DOT); - this.state = 5405; - localContext._triggerName = this.id_(); - this.state = 5406; - this.match(HiveSqlParser.KW_WHEN); this.state = 5407; - this.triggerExpression(); + this.match(HiveSqlParser.KW_CREATE); this.state = 5408; - this.match(HiveSqlParser.KW_DO); + this.match(HiveSqlParser.KW_TRIGGER); this.state = 5409; + localContext._rpName = this.id_(); + this.state = 5410; + this.match(HiveSqlParser.DOT); + this.state = 5411; + localContext._triggerName = this.id_(); + this.state = 5412; + this.match(HiveSqlParser.KW_WHEN); + this.state = 5413; + this.triggerExpression(); + this.state = 5414; + this.match(HiveSqlParser.KW_DO); + this.state = 5415; this.triggerActionExpression(); } } @@ -28765,70 +28785,70 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5411; + this.state = 5417; this.match(HiveSqlParser.KW_ALTER); - this.state = 5412; + this.state = 5418; this.match(HiveSqlParser.KW_TRIGGER); - this.state = 5413; + this.state = 5419; localContext._rpName = this.id_(); - this.state = 5414; + this.state = 5420; this.match(HiveSqlParser.DOT); - this.state = 5415; + this.state = 5421; localContext._triggerName = this.id_(); - this.state = 5432; + this.state = 5438; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_WHEN: { - this.state = 5416; + this.state = 5422; this.match(HiveSqlParser.KW_WHEN); - this.state = 5417; + this.state = 5423; this.triggerExpression(); - this.state = 5418; + this.state = 5424; this.match(HiveSqlParser.KW_DO); - this.state = 5419; + this.state = 5425; this.triggerActionExpression(); } break; case HiveSqlParser.KW_ADD: case HiveSqlParser.KW_DROP: { - this.state = 5425; + this.state = 5431; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ADD: { - this.state = 5421; + this.state = 5427; this.match(HiveSqlParser.KW_ADD); - this.state = 5422; + this.state = 5428; this.match(HiveSqlParser.KW_TO); } break; case HiveSqlParser.KW_DROP: { - this.state = 5423; + this.state = 5429; this.match(HiveSqlParser.KW_DROP); - this.state = 5424; + this.state = 5430; this.match(HiveSqlParser.KW_FROM); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5430; + this.state = 5436; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_POOL: { - this.state = 5427; + this.state = 5433; this.match(HiveSqlParser.KW_POOL); - this.state = 5428; + this.state = 5434; localContext._poolName = this.poolPath(); } break; case HiveSqlParser.KW_UNMANAGED: { - this.state = 5429; + this.state = 5435; this.match(HiveSqlParser.KW_UNMANAGED); } break; @@ -28862,15 +28882,15 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5434; + this.state = 5440; this.match(HiveSqlParser.KW_DROP); - this.state = 5435; + this.state = 5441; this.match(HiveSqlParser.KW_TRIGGER); - this.state = 5436; + this.state = 5442; localContext._rpName = this.id_(); - this.state = 5437; + this.state = 5443; this.match(HiveSqlParser.DOT); - this.state = 5438; + this.state = 5444; localContext._triggerName = this.id_(); } } @@ -28894,46 +28914,46 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5452; + this.state = 5458; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_ALLOC_FRACTION: { - this.state = 5440; + this.state = 5446; this.match(HiveSqlParser.KW_ALLOC_FRACTION); - this.state = 5441; + this.state = 5447; this.match(HiveSqlParser.EQUAL); - this.state = 5442; + this.state = 5448; localContext._allocFraction = this.match(HiveSqlParser.Number); } break; case HiveSqlParser.KW_QUERY_PARALLELISM: { - this.state = 5443; + this.state = 5449; this.match(HiveSqlParser.KW_QUERY_PARALLELISM); - this.state = 5444; + this.state = 5450; this.match(HiveSqlParser.EQUAL); - this.state = 5445; + this.state = 5451; localContext._parallelism = this.match(HiveSqlParser.Number); } break; case HiveSqlParser.KW_SCHEDULING_POLICY: { - this.state = 5446; + this.state = 5452; this.match(HiveSqlParser.KW_SCHEDULING_POLICY); - this.state = 5447; + this.state = 5453; this.match(HiveSqlParser.EQUAL); - this.state = 5448; + this.state = 5454; localContext._policy = this.match(HiveSqlParser.StringLiteral); } break; case HiveSqlParser.KW_PATH: { - this.state = 5449; + this.state = 5455; this.match(HiveSqlParser.KW_PATH); - this.state = 5450; + this.state = 5456; this.match(HiveSqlParser.EQUAL); - this.state = 5451; + this.state = 5457; localContext._path = this.poolPath(); } break; @@ -28963,21 +28983,21 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5454; + this.state = 5460; this.poolAssign(); - this.state = 5459; + this.state = 5465; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); while (_la === 397) { { { - this.state = 5455; + this.state = 5461; this.match(HiveSqlParser.COMMA); - this.state = 5456; + this.state = 5462; this.poolAssign(); } } - this.state = 5461; + this.state = 5467; this.errorHandler.sync(this); _la = this.tokenStream.LA(1); } @@ -29003,19 +29023,19 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5462; - this.match(HiveSqlParser.KW_CREATE); - this.state = 5463; - this.match(HiveSqlParser.KW_POOL); - this.state = 5464; - localContext._rpName = this.id_(); - this.state = 5465; - this.match(HiveSqlParser.DOT); - this.state = 5466; - this.poolPath(); - this.state = 5467; - this.match(HiveSqlParser.KW_WITH); this.state = 5468; + this.match(HiveSqlParser.KW_CREATE); + this.state = 5469; + this.match(HiveSqlParser.KW_POOL); + this.state = 5470; + localContext._rpName = this.id_(); + this.state = 5471; + this.match(HiveSqlParser.DOT); + this.state = 5472; + this.poolPath(); + this.state = 5473; + this.match(HiveSqlParser.KW_WITH); + this.state = 5474; this.poolAssignList(); } } @@ -29040,39 +29060,39 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5470; + this.state = 5476; this.match(HiveSqlParser.KW_ALTER); - this.state = 5471; + this.state = 5477; this.match(HiveSqlParser.KW_POOL); - this.state = 5472; + this.state = 5478; localContext._rpName = this.id_(); - this.state = 5473; + this.state = 5479; this.match(HiveSqlParser.DOT); - this.state = 5474; + this.state = 5480; this.poolPath(); - this.state = 5482; + this.state = 5488; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_SET: { - this.state = 5475; + this.state = 5481; this.match(HiveSqlParser.KW_SET); - this.state = 5476; + this.state = 5482; this.poolAssignList(); } break; case HiveSqlParser.KW_UNSET: { - this.state = 5477; + this.state = 5483; this.match(HiveSqlParser.KW_UNSET); - this.state = 5478; + this.state = 5484; this.match(HiveSqlParser.KW_SCHEDULING_POLICY); } break; case HiveSqlParser.KW_ADD: case HiveSqlParser.KW_DROP: { - this.state = 5479; + this.state = 5485; _la = this.tokenStream.LA(1); if(!(_la === 4 || _la === 101)) { this.errorHandler.recoverInline(this); @@ -29081,9 +29101,9 @@ export class HiveSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5480; + this.state = 5486; this.match(HiveSqlParser.KW_TRIGGER); - this.state = 5481; + this.state = 5487; localContext._triggerName = this.id_(); } break; @@ -29112,15 +29132,15 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5484; + this.state = 5490; this.match(HiveSqlParser.KW_DROP); - this.state = 5485; + this.state = 5491; this.match(HiveSqlParser.KW_POOL); - this.state = 5486; + this.state = 5492; localContext._rpName = this.id_(); - this.state = 5487; + this.state = 5493; this.match(HiveSqlParser.DOT); - this.state = 5488; + this.state = 5494; this.poolPath(); } } @@ -29145,9 +29165,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5490; + this.state = 5496; this.match(HiveSqlParser.KW_CREATE); - this.state = 5491; + this.state = 5497; localContext._mappingType = this.tokenStream.LT(1); _la = this.tokenStream.LA(1); if(!(_la === 14 || _la === 144 || _la === 369)) { @@ -29157,44 +29177,44 @@ export class HiveSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5492; + this.state = 5498; this.match(HiveSqlParser.KW_MAPPING); - this.state = 5493; - localContext._name = this.match(HiveSqlParser.StringLiteral); - this.state = 5494; - this.match(HiveSqlParser.KW_IN); - this.state = 5495; - localContext._rpName = this.id_(); this.state = 5499; + localContext._name = this.match(HiveSqlParser.StringLiteral); + this.state = 5500; + this.match(HiveSqlParser.KW_IN); + this.state = 5501; + localContext._rpName = this.id_(); + this.state = 5505; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_TO: { - this.state = 5496; + this.state = 5502; this.match(HiveSqlParser.KW_TO); - this.state = 5497; + this.state = 5503; localContext._path = this.poolPath(); } break; case HiveSqlParser.KW_UNMANAGED: { - this.state = 5498; + this.state = 5504; this.unmanaged(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5504; + this.state = 5510; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 648, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 650, this.context) ) { case 1: { - this.state = 5501; + this.state = 5507; this.match(HiveSqlParser.KW_WITH); - this.state = 5502; + this.state = 5508; this.match(HiveSqlParser.KW_ORDER); - this.state = 5503; + this.state = 5509; localContext._order = this.match(HiveSqlParser.Number); } break; @@ -29222,9 +29242,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5506; + this.state = 5512; this.match(HiveSqlParser.KW_ALTER); - this.state = 5507; + this.state = 5513; localContext._mappingType = this.tokenStream.LT(1); _la = this.tokenStream.LA(1); if(!(_la === 14 || _la === 144 || _la === 369)) { @@ -29234,44 +29254,44 @@ export class HiveSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5508; + this.state = 5514; this.match(HiveSqlParser.KW_MAPPING); - this.state = 5509; - localContext._name = this.match(HiveSqlParser.StringLiteral); - this.state = 5510; - this.match(HiveSqlParser.KW_IN); - this.state = 5511; - localContext._rpName = this.id_(); this.state = 5515; + localContext._name = this.match(HiveSqlParser.StringLiteral); + this.state = 5516; + this.match(HiveSqlParser.KW_IN); + this.state = 5517; + localContext._rpName = this.id_(); + this.state = 5521; this.errorHandler.sync(this); switch (this.tokenStream.LA(1)) { case HiveSqlParser.KW_TO: { - this.state = 5512; + this.state = 5518; this.match(HiveSqlParser.KW_TO); - this.state = 5513; + this.state = 5519; localContext._path = this.poolPath(); } break; case HiveSqlParser.KW_UNMANAGED: { - this.state = 5514; + this.state = 5520; this.unmanaged(); } break; default: throw new antlr.NoViableAltException(this); } - this.state = 5520; + this.state = 5526; this.errorHandler.sync(this); - switch (this.interpreter.adaptivePredict(this.tokenStream, 650, this.context) ) { + switch (this.interpreter.adaptivePredict(this.tokenStream, 652, this.context) ) { case 1: { - this.state = 5517; + this.state = 5523; this.match(HiveSqlParser.KW_WITH); - this.state = 5518; + this.state = 5524; this.match(HiveSqlParser.KW_ORDER); - this.state = 5519; + this.state = 5525; localContext._order = this.match(HiveSqlParser.Number); } break; @@ -29299,9 +29319,9 @@ export class HiveSqlParser extends SQLParserBase { try { this.enterOuterAlt(localContext, 1); { - this.state = 5522; + this.state = 5528; this.match(HiveSqlParser.KW_DROP); - this.state = 5523; + this.state = 5529; localContext._mappingType = this.tokenStream.LT(1); _la = this.tokenStream.LA(1); if(!(_la === 14 || _la === 144 || _la === 369)) { @@ -29311,13 +29331,13 @@ export class HiveSqlParser extends SQLParserBase { this.errorHandler.reportMatch(this); this.consume(); } - this.state = 5524; + this.state = 5530; this.match(HiveSqlParser.KW_MAPPING); - this.state = 5525; + this.state = 5531; localContext._name = this.match(HiveSqlParser.StringLiteral); - this.state = 5526; + this.state = 5532; this.match(HiveSqlParser.KW_IN); - this.state = 5527; + this.state = 5533; localContext._rpName = this.id_(); } } @@ -29352,7 +29372,7 @@ export class HiveSqlParser extends SQLParserBase { } public static readonly _serializedATN: number[] = [ - 4,1,438,5530,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6, + 4,1,438,5536,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6, 7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7, 13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2, 20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7, @@ -29709,196 +29729,197 @@ export class HiveSqlParser extends SQLParserBase { 1,299,1,299,3,299,3705,8,299,1,299,3,299,3708,8,299,1,299,3,299, 3711,8,299,1,299,1,299,3,299,3715,8,299,1,299,1,299,1,299,3,299, 3720,8,299,1,299,3,299,3723,8,299,1,299,3,299,3726,8,299,1,299,3, - 299,3729,8,299,1,299,3,299,3732,8,299,1,299,1,299,1,299,1,299,3, - 299,3738,8,299,1,299,3,299,3741,8,299,1,299,3,299,3744,8,299,1,299, + 299,3729,8,299,1,299,3,299,3732,8,299,1,299,3,299,3735,8,299,1,299, + 1,299,1,299,1,299,3,299,3741,8,299,1,299,3,299,3744,8,299,1,299, 3,299,3747,8,299,1,299,3,299,3750,8,299,1,299,3,299,3753,8,299,1, 299,3,299,3756,8,299,1,299,3,299,3759,8,299,1,299,3,299,3762,8,299, - 1,299,3,299,3765,8,299,1,299,1,299,3,299,3769,8,299,3,299,3771,8, - 299,1,299,1,299,1,299,1,299,3,299,3777,8,299,1,299,1,299,1,299,3, - 299,3782,8,299,1,299,3,299,3785,8,299,1,299,3,299,3788,8,299,1,299, - 3,299,3791,8,299,1,299,1,299,1,299,1,299,3,299,3797,8,299,1,299, - 3,299,3800,8,299,1,299,3,299,3803,8,299,1,299,3,299,3806,8,299,1, - 299,3,299,3809,8,299,1,299,3,299,3812,8,299,1,299,3,299,3815,8,299, - 1,299,3,299,3818,8,299,1,299,3,299,3821,8,299,1,299,3,299,3824,8, - 299,1,299,1,299,3,299,3828,8,299,3,299,3830,8,299,3,299,3832,8,299, - 1,300,1,300,1,300,3,300,3837,8,300,1,300,1,300,3,300,3841,8,300, - 1,300,3,300,3844,8,300,1,300,3,300,3847,8,300,1,300,1,300,1,300, - 3,300,3852,8,300,1,301,1,301,1,301,1,302,1,302,1,302,1,303,1,303, - 1,303,1,304,1,304,1,304,1,304,1,305,1,305,1,305,3,305,3870,8,305, - 1,305,1,305,1,306,1,306,1,306,5,306,3877,8,306,10,306,12,306,3880, - 9,306,1,306,1,306,1,307,1,307,1,308,1,308,1,308,5,308,3889,8,308, - 10,308,12,308,3892,9,308,1,309,1,309,1,309,5,309,3897,8,309,10,309, - 12,309,3900,9,309,1,310,1,310,1,310,1,311,1,311,1,311,1,311,4,311, - 3909,8,311,11,311,12,311,3910,1,311,3,311,3914,8,311,1,312,1,312, - 5,312,3918,8,312,10,312,12,312,3921,9,312,1,312,1,312,5,312,3925, - 8,312,10,312,12,312,3928,9,312,1,312,1,312,5,312,3932,8,312,10,312, - 12,312,3935,9,312,1,312,1,312,5,312,3939,8,312,10,312,12,312,3942, - 9,312,1,312,1,312,1,312,1,312,3,312,3948,8,312,1,313,1,313,1,313, - 1,313,1,313,1,313,1,313,3,313,3957,8,313,5,313,3959,8,313,10,313, - 12,313,3962,9,313,1,314,1,314,1,314,1,314,3,314,3968,8,314,1,314, - 5,314,3971,8,314,10,314,12,314,3974,9,314,1,315,3,315,3977,8,315, - 1,315,1,315,1,315,1,316,1,316,1,316,1,316,1,317,1,317,1,318,1,318, - 1,318,1,318,1,318,3,318,3993,8,318,1,318,1,318,3,318,3997,8,318, - 3,318,3999,8,318,1,318,3,318,4002,8,318,1,319,1,319,1,319,1,319, - 1,319,1,319,1,319,1,319,1,319,5,319,4013,8,319,10,319,12,319,4016, - 9,319,3,319,4018,8,319,1,319,3,319,4021,8,319,1,319,1,319,1,319, - 1,319,1,319,1,319,1,319,1,319,5,319,4031,8,319,10,319,12,319,4034, - 9,319,3,319,4036,8,319,1,319,1,319,1,319,1,319,1,319,3,319,4043, - 8,319,1,319,1,319,1,319,1,319,1,319,5,319,4050,8,319,10,319,12,319, - 4053,9,319,1,319,1,319,3,319,4057,8,319,3,319,4059,8,319,3,319,4061, - 8,319,1,320,1,320,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321, - 1,321,1,321,1,321,5,321,4076,8,321,10,321,12,321,4079,9,321,3,321, - 4081,8,321,1,321,1,321,1,322,1,322,1,322,1,322,1,322,3,322,4090, - 8,322,1,322,1,322,1,323,1,323,3,323,4096,8,323,1,324,1,324,3,324, - 4100,8,324,1,324,3,324,4103,8,324,1,324,3,324,4106,8,324,1,324,3, - 324,4109,8,324,1,324,3,324,4112,8,324,1,325,1,325,1,325,1,325,1, - 325,1,325,1,325,1,325,1,325,1,325,3,325,4124,8,325,1,326,1,326,3, - 326,4128,8,326,1,326,3,326,4131,8,326,1,326,3,326,4134,8,326,1,327, - 1,327,1,328,1,328,1,329,1,329,3,329,4142,8,329,1,330,1,330,1,330, - 1,330,1,330,3,330,4149,8,330,1,330,3,330,4152,8,330,1,331,1,331, - 1,331,1,331,1,331,3,331,4159,8,331,1,331,3,331,4162,8,331,1,332, - 1,332,1,332,3,332,4167,8,332,1,332,1,332,1,333,1,333,1,333,3,333, - 4174,8,333,1,333,1,333,1,334,1,334,1,334,1,334,3,334,4182,8,334, - 1,334,1,334,1,335,1,335,3,335,4188,8,335,1,335,1,335,1,335,3,335, - 4193,8,335,1,335,1,335,3,335,4197,8,335,1,336,1,336,1,336,3,336, - 4202,8,336,1,337,1,337,1,337,1,337,1,337,3,337,4209,8,337,1,337, - 1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,5,337,4221, - 8,337,10,337,12,337,4224,9,337,3,337,4226,8,337,1,337,1,337,3,337, - 4230,8,337,1,338,1,338,1,338,1,339,1,339,1,340,1,340,1,341,1,341, - 1,341,1,342,1,342,1,342,5,342,4245,8,342,10,342,12,342,4248,9,342, - 1,342,1,342,1,342,5,342,4253,8,342,10,342,12,342,4256,9,342,3,342, - 4258,8,342,1,343,1,343,1,344,1,344,1,344,1,344,1,345,1,345,1,345, - 1,345,1,345,3,345,4271,8,345,1,345,1,345,1,345,1,345,1,345,5,345, - 4278,8,345,10,345,12,345,4281,9,345,3,345,4283,8,345,1,345,1,345, - 1,346,1,346,3,346,4289,8,346,1,346,3,346,4292,8,346,1,346,1,346, - 1,346,3,346,4297,8,346,1,346,3,346,4300,8,346,1,347,1,347,1,348, - 1,348,1,348,5,348,4307,8,348,10,348,12,348,4310,9,348,1,349,1,349, - 1,349,1,349,1,349,1,349,1,349,1,349,1,349,1,349,1,349,3,349,4323, - 8,349,1,349,1,349,1,349,1,349,3,349,4329,8,349,3,349,4331,8,349, - 1,349,1,349,1,349,1,350,1,350,1,350,3,350,4339,8,350,1,350,3,350, - 4342,8,350,1,350,1,350,1,350,1,350,1,350,1,350,5,350,4350,8,350, - 10,350,12,350,4353,9,350,1,350,1,350,3,350,4357,8,350,3,350,4359, - 8,350,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351, - 3,351,4371,8,351,1,351,1,351,1,351,1,351,3,351,4377,8,351,3,351, - 4379,8,351,1,351,1,351,1,351,1,352,1,352,3,352,4386,8,352,1,353, - 1,353,1,353,5,353,4391,8,353,10,353,12,353,4394,9,353,1,354,1,354, - 1,354,1,354,5,354,4400,8,354,10,354,12,354,4403,9,354,1,355,1,355, - 1,355,1,355,1,356,1,356,1,356,3,356,4412,8,356,1,356,3,356,4415, - 8,356,1,356,3,356,4418,8,356,1,356,3,356,4421,8,356,1,357,1,357, - 3,357,4425,8,357,1,358,1,358,1,358,1,358,1,358,1,358,1,358,3,358, - 4434,8,358,1,359,1,359,1,359,1,359,1,359,1,359,1,359,3,359,4443, - 8,359,1,360,1,360,1,360,1,360,1,360,1,360,3,360,4451,8,360,1,361, - 1,361,1,361,1,361,3,361,4457,8,361,1,362,1,362,1,362,1,362,1,363, - 1,363,1,363,1,363,3,363,4467,8,363,1,364,1,364,1,364,1,365,1,365, - 3,365,4474,8,365,1,365,1,365,1,365,1,365,5,365,4480,8,365,10,365, - 12,365,4483,9,365,1,365,1,365,1,366,1,366,1,366,1,366,1,366,3,366, - 4492,8,366,1,366,1,366,1,366,1,366,1,366,1,366,5,366,4500,8,366, - 10,366,12,366,4503,9,366,1,366,1,366,3,366,4507,8,366,1,367,1,367, - 3,367,4511,8,367,1,368,1,368,3,368,4515,8,368,1,368,1,368,5,368, - 4519,8,368,10,368,12,368,4522,9,368,1,368,1,368,1,369,1,369,1,370, - 1,370,1,370,1,371,1,371,1,371,1,372,1,372,1,373,1,373,1,373,1,373, - 1,374,1,374,3,374,4542,8,374,1,375,1,375,4,375,4546,8,375,11,375, - 12,375,4547,1,376,1,376,3,376,4552,8,376,1,377,1,377,3,377,4556, - 8,377,1,377,3,377,4559,8,377,1,377,1,377,5,377,4563,8,377,10,377, - 12,377,4566,9,377,1,378,1,378,3,378,4570,8,378,1,378,3,378,4573, - 8,378,1,379,1,379,3,379,4577,8,379,1,380,1,380,1,380,1,380,5,380, - 4583,8,380,10,380,12,380,4586,9,380,1,380,1,380,1,381,1,381,1,381, - 5,381,4593,8,381,10,381,12,381,4596,9,381,1,382,1,382,1,382,1,382, - 1,382,5,382,4603,8,382,10,382,12,382,4606,9,382,1,383,1,383,1,383, - 1,383,1,384,1,384,1,384,1,384,1,385,1,385,1,385,1,385,1,386,1,386, - 1,386,1,386,3,386,4624,8,386,1,387,1,387,1,387,1,387,1,387,3,387, - 4631,8,387,1,387,3,387,4634,8,387,1,387,1,387,1,387,1,387,1,388, - 1,388,1,388,1,388,1,388,3,388,4645,8,388,1,388,1,388,1,388,5,388, - 4650,8,388,10,388,12,388,4653,9,388,3,388,4655,8,388,3,388,4657, - 8,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,3,388, - 4668,8,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,3,388, - 4678,8,388,3,388,4680,8,388,1,389,1,389,1,389,1,389,3,389,4686,8, - 389,1,390,1,390,1,391,1,391,3,391,4692,8,391,1,392,1,392,3,392,4696, - 8,392,1,393,1,393,1,394,1,394,3,394,4702,8,394,1,395,1,395,1,395, - 1,395,1,395,1,395,1,395,3,395,4711,8,395,1,395,1,395,1,396,1,396, - 1,396,1,396,1,396,1,396,1,396,4,396,4722,8,396,11,396,12,396,4723, - 1,396,1,396,3,396,4728,8,396,1,396,1,396,1,397,1,397,1,397,1,397, - 1,397,1,397,4,397,4738,8,397,11,397,12,397,4739,1,397,1,397,3,397, - 4744,8,397,1,397,1,397,1,398,1,398,1,398,1,398,1,398,3,398,4753, + 1,299,3,299,3765,8,299,1,299,3,299,3768,8,299,1,299,1,299,3,299, + 3772,8,299,3,299,3774,8,299,1,299,1,299,1,299,1,299,3,299,3780,8, + 299,1,299,1,299,1,299,3,299,3785,8,299,1,299,3,299,3788,8,299,1, + 299,3,299,3791,8,299,1,299,3,299,3794,8,299,1,299,3,299,3797,8,299, + 1,299,1,299,1,299,1,299,3,299,3803,8,299,1,299,3,299,3806,8,299, + 1,299,3,299,3809,8,299,1,299,3,299,3812,8,299,1,299,3,299,3815,8, + 299,1,299,3,299,3818,8,299,1,299,3,299,3821,8,299,1,299,3,299,3824, + 8,299,1,299,3,299,3827,8,299,1,299,3,299,3830,8,299,1,299,1,299, + 3,299,3834,8,299,3,299,3836,8,299,3,299,3838,8,299,1,300,1,300,1, + 300,3,300,3843,8,300,1,300,1,300,3,300,3847,8,300,1,300,3,300,3850, + 8,300,1,300,3,300,3853,8,300,1,300,1,300,1,300,3,300,3858,8,300, + 1,301,1,301,1,301,1,302,1,302,1,302,1,303,1,303,1,303,1,304,1,304, + 1,304,1,304,1,305,1,305,1,305,3,305,3876,8,305,1,305,1,305,1,306, + 1,306,1,306,5,306,3883,8,306,10,306,12,306,3886,9,306,1,306,1,306, + 1,307,1,307,1,308,1,308,1,308,5,308,3895,8,308,10,308,12,308,3898, + 9,308,1,309,1,309,1,309,5,309,3903,8,309,10,309,12,309,3906,9,309, + 1,310,1,310,1,310,1,311,1,311,1,311,1,311,4,311,3915,8,311,11,311, + 12,311,3916,1,311,3,311,3920,8,311,1,312,1,312,5,312,3924,8,312, + 10,312,12,312,3927,9,312,1,312,1,312,5,312,3931,8,312,10,312,12, + 312,3934,9,312,1,312,1,312,5,312,3938,8,312,10,312,12,312,3941,9, + 312,1,312,1,312,5,312,3945,8,312,10,312,12,312,3948,9,312,1,312, + 1,312,1,312,1,312,3,312,3954,8,312,1,313,1,313,1,313,1,313,1,313, + 1,313,1,313,3,313,3963,8,313,5,313,3965,8,313,10,313,12,313,3968, + 9,313,1,314,1,314,1,314,1,314,3,314,3974,8,314,1,314,5,314,3977, + 8,314,10,314,12,314,3980,9,314,1,315,3,315,3983,8,315,1,315,1,315, + 1,315,1,316,1,316,1,316,1,316,1,317,1,317,1,318,1,318,1,318,1,318, + 1,318,3,318,3999,8,318,1,318,1,318,3,318,4003,8,318,3,318,4005,8, + 318,1,318,3,318,4008,8,318,1,319,1,319,1,319,1,319,1,319,1,319,1, + 319,1,319,1,319,5,319,4019,8,319,10,319,12,319,4022,9,319,3,319, + 4024,8,319,1,319,3,319,4027,8,319,1,319,1,319,1,319,1,319,1,319, + 1,319,1,319,1,319,5,319,4037,8,319,10,319,12,319,4040,9,319,3,319, + 4042,8,319,1,319,1,319,1,319,1,319,1,319,3,319,4049,8,319,1,319, + 1,319,1,319,1,319,1,319,5,319,4056,8,319,10,319,12,319,4059,9,319, + 1,319,1,319,3,319,4063,8,319,3,319,4065,8,319,3,319,4067,8,319,1, + 320,1,320,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321, + 1,321,1,321,5,321,4082,8,321,10,321,12,321,4085,9,321,3,321,4087, + 8,321,1,321,1,321,1,322,1,322,1,322,1,322,1,322,3,322,4096,8,322, + 1,322,1,322,1,323,1,323,3,323,4102,8,323,1,324,1,324,3,324,4106, + 8,324,1,324,3,324,4109,8,324,1,324,3,324,4112,8,324,1,324,3,324, + 4115,8,324,1,324,3,324,4118,8,324,1,325,1,325,1,325,1,325,1,325, + 1,325,1,325,1,325,1,325,1,325,3,325,4130,8,325,1,326,1,326,3,326, + 4134,8,326,1,326,3,326,4137,8,326,1,326,3,326,4140,8,326,1,327,1, + 327,1,328,1,328,1,329,1,329,3,329,4148,8,329,1,330,1,330,1,330,1, + 330,1,330,3,330,4155,8,330,1,330,3,330,4158,8,330,1,331,1,331,1, + 331,1,331,1,331,3,331,4165,8,331,1,331,3,331,4168,8,331,1,332,1, + 332,1,332,3,332,4173,8,332,1,332,1,332,1,333,1,333,1,333,3,333,4180, + 8,333,1,333,1,333,1,334,1,334,1,334,1,334,3,334,4188,8,334,1,334, + 1,334,1,335,1,335,3,335,4194,8,335,1,335,1,335,1,335,3,335,4199, + 8,335,1,335,1,335,3,335,4203,8,335,1,336,1,336,1,336,3,336,4208, + 8,336,1,337,1,337,1,337,1,337,1,337,3,337,4215,8,337,1,337,1,337, + 1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,5,337,4227,8,337, + 10,337,12,337,4230,9,337,3,337,4232,8,337,1,337,1,337,3,337,4236, + 8,337,1,338,1,338,1,338,1,339,1,339,1,340,1,340,1,341,1,341,1,341, + 1,342,1,342,1,342,5,342,4251,8,342,10,342,12,342,4254,9,342,1,342, + 1,342,1,342,5,342,4259,8,342,10,342,12,342,4262,9,342,3,342,4264, + 8,342,1,343,1,343,1,344,1,344,1,344,1,344,1,345,1,345,1,345,1,345, + 1,345,3,345,4277,8,345,1,345,1,345,1,345,1,345,1,345,5,345,4284, + 8,345,10,345,12,345,4287,9,345,3,345,4289,8,345,1,345,1,345,1,346, + 1,346,3,346,4295,8,346,1,346,3,346,4298,8,346,1,346,1,346,1,346, + 3,346,4303,8,346,1,346,3,346,4306,8,346,1,347,1,347,1,348,1,348, + 1,348,5,348,4313,8,348,10,348,12,348,4316,9,348,1,349,1,349,1,349, + 1,349,1,349,1,349,1,349,1,349,1,349,1,349,1,349,3,349,4329,8,349, + 1,349,1,349,1,349,1,349,3,349,4335,8,349,3,349,4337,8,349,1,349, + 1,349,1,349,1,350,1,350,1,350,3,350,4345,8,350,1,350,3,350,4348, + 8,350,1,350,1,350,1,350,1,350,1,350,1,350,5,350,4356,8,350,10,350, + 12,350,4359,9,350,1,350,1,350,3,350,4363,8,350,3,350,4365,8,350, + 1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,3,351, + 4377,8,351,1,351,1,351,1,351,1,351,3,351,4383,8,351,3,351,4385,8, + 351,1,351,1,351,1,351,1,352,1,352,3,352,4392,8,352,1,353,1,353,1, + 353,5,353,4397,8,353,10,353,12,353,4400,9,353,1,354,1,354,1,354, + 1,354,5,354,4406,8,354,10,354,12,354,4409,9,354,1,355,1,355,1,355, + 1,355,1,356,1,356,1,356,3,356,4418,8,356,1,356,3,356,4421,8,356, + 1,356,3,356,4424,8,356,1,356,3,356,4427,8,356,1,357,1,357,3,357, + 4431,8,357,1,358,1,358,1,358,1,358,1,358,1,358,1,358,3,358,4440, + 8,358,1,359,1,359,1,359,1,359,1,359,1,359,1,359,3,359,4449,8,359, + 1,360,1,360,1,360,1,360,1,360,1,360,3,360,4457,8,360,1,361,1,361, + 1,361,1,361,3,361,4463,8,361,1,362,1,362,1,362,1,362,1,363,1,363, + 1,363,1,363,3,363,4473,8,363,1,364,1,364,1,364,1,365,1,365,3,365, + 4480,8,365,1,365,1,365,1,365,1,365,5,365,4486,8,365,10,365,12,365, + 4489,9,365,1,365,1,365,1,366,1,366,1,366,1,366,1,366,3,366,4498, + 8,366,1,366,1,366,1,366,1,366,1,366,1,366,5,366,4506,8,366,10,366, + 12,366,4509,9,366,1,366,1,366,3,366,4513,8,366,1,367,1,367,3,367, + 4517,8,367,1,368,1,368,3,368,4521,8,368,1,368,1,368,5,368,4525,8, + 368,10,368,12,368,4528,9,368,1,368,1,368,1,369,1,369,1,370,1,370, + 1,370,1,371,1,371,1,371,1,372,1,372,1,373,1,373,1,373,1,373,1,374, + 1,374,3,374,4548,8,374,1,375,1,375,4,375,4552,8,375,11,375,12,375, + 4553,1,376,1,376,3,376,4558,8,376,1,377,1,377,3,377,4562,8,377,1, + 377,3,377,4565,8,377,1,377,1,377,5,377,4569,8,377,10,377,12,377, + 4572,9,377,1,378,1,378,3,378,4576,8,378,1,378,3,378,4579,8,378,1, + 379,1,379,3,379,4583,8,379,1,380,1,380,1,380,1,380,5,380,4589,8, + 380,10,380,12,380,4592,9,380,1,380,1,380,1,381,1,381,1,381,5,381, + 4599,8,381,10,381,12,381,4602,9,381,1,382,1,382,1,382,1,382,1,382, + 5,382,4609,8,382,10,382,12,382,4612,9,382,1,383,1,383,1,383,1,383, + 1,384,1,384,1,384,1,384,1,385,1,385,1,385,1,385,1,386,1,386,1,386, + 1,386,3,386,4630,8,386,1,387,1,387,1,387,1,387,1,387,3,387,4637, + 8,387,1,387,3,387,4640,8,387,1,387,1,387,1,387,1,387,1,388,1,388, + 1,388,1,388,1,388,3,388,4651,8,388,1,388,1,388,1,388,5,388,4656, + 8,388,10,388,12,388,4659,9,388,3,388,4661,8,388,3,388,4663,8,388, + 1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,3,388,4674, + 8,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,3,388,4684, + 8,388,3,388,4686,8,388,1,389,1,389,1,389,1,389,3,389,4692,8,389, + 1,390,1,390,1,391,1,391,3,391,4698,8,391,1,392,1,392,3,392,4702, + 8,392,1,393,1,393,1,394,1,394,3,394,4708,8,394,1,395,1,395,1,395, + 1,395,1,395,1,395,1,395,3,395,4717,8,395,1,395,1,395,1,396,1,396, + 1,396,1,396,1,396,1,396,1,396,4,396,4728,8,396,11,396,12,396,4729, + 1,396,1,396,3,396,4734,8,396,1,396,1,396,1,397,1,397,1,397,1,397, + 1,397,1,397,4,397,4744,8,397,11,397,12,397,4745,1,397,1,397,3,397, + 4750,8,397,1,397,1,397,1,398,1,398,1,398,1,398,1,398,3,398,4759, 8,398,1,398,1,398,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399, - 3,399,4765,8,399,1,400,1,400,1,400,1,400,1,400,1,400,1,400,1,401, - 1,401,1,401,1,401,1,401,1,401,1,401,1,401,3,401,4782,8,401,1,402, + 3,399,4771,8,399,1,400,1,400,1,400,1,400,1,400,1,400,1,400,1,401, + 1,401,1,401,1,401,1,401,1,401,1,401,1,401,3,401,4788,8,401,1,402, 1,402,1,402,1,402,1,402,1,402,1,402,1,402,1,402,1,402,1,402,1,402, - 1,402,3,402,4797,8,402,1,403,1,403,1,404,1,404,1,405,1,405,4,405, - 4805,8,405,11,405,12,405,4806,1,406,1,406,1,406,1,407,1,407,1,407, - 3,407,4815,8,407,1,408,1,408,1,408,3,408,4820,8,408,1,409,1,409, + 1,402,3,402,4803,8,402,1,403,1,403,1,404,1,404,1,405,1,405,4,405, + 4811,8,405,11,405,12,405,4812,1,406,1,406,1,406,1,407,1,407,1,407, + 3,407,4821,8,407,1,408,1,408,1,408,3,408,4826,8,408,1,409,1,409, 1,409,1,410,1,410,1,411,1,411,1,411,1,412,1,412,1,412,1,412,1,412, - 1,412,1,412,1,412,1,412,1,412,1,412,3,412,4841,8,412,1,412,1,412, - 3,412,4845,8,412,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413, - 1,413,1,413,1,413,1,413,1,413,1,413,3,413,4861,8,413,1,414,1,414, + 1,412,1,412,1,412,1,412,1,412,1,412,3,412,4847,8,412,1,412,1,412, + 3,412,4851,8,412,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413, + 1,413,1,413,1,413,1,413,1,413,1,413,3,413,4867,8,413,1,414,1,414, 1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415, - 3,415,4876,8,415,1,416,1,416,1,416,1,416,1,416,1,416,1,416,5,416, - 4885,8,416,10,416,12,416,4888,9,416,1,417,1,417,1,418,5,418,4893, - 8,418,10,418,12,418,4896,9,418,1,418,1,418,1,419,1,419,1,420,1,420, - 1,420,1,420,5,420,4906,8,420,10,420,12,420,4909,9,420,1,421,1,421, - 1,422,1,422,1,422,1,422,5,422,4917,8,422,10,422,12,422,4920,9,422, - 1,423,1,423,1,424,1,424,1,424,1,424,5,424,4928,8,424,10,424,12,424, - 4931,9,424,1,425,1,425,1,426,1,426,1,426,1,426,5,426,4939,8,426, - 10,426,12,426,4942,9,426,1,427,1,427,1,428,1,428,1,428,1,428,5,428, - 4950,8,428,10,428,12,428,4953,9,428,1,429,1,429,1,430,1,430,1,430, - 1,430,5,430,4961,8,430,10,430,12,430,4964,9,430,1,431,1,431,1,432, - 1,432,1,432,1,432,1,432,3,432,4973,8,432,1,433,1,433,1,433,1,433, - 1,434,1,434,1,434,3,434,4982,8,434,1,435,1,435,3,435,4986,8,435, - 1,436,1,436,1,436,1,436,1,436,1,436,3,436,4994,8,436,1,437,1,437, - 1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,437,3,437,5007, - 8,437,1,438,1,438,1,438,1,438,1,439,1,439,1,440,1,440,3,440,5017, - 8,440,1,441,1,441,1,441,1,441,3,441,5023,8,441,1,442,1,442,1,442, - 1,442,1,443,1,443,1,443,1,443,1,443,1,443,1,443,3,443,5036,8,443, - 1,444,1,444,1,444,1,444,1,444,1,444,1,444,5,444,5045,8,444,10,444, - 12,444,5048,9,444,1,445,1,445,1,445,1,445,1,445,1,445,1,445,1,445, - 1,445,1,445,1,445,1,445,3,445,5062,8,445,1,446,1,446,1,446,3,446, - 5067,8,446,1,447,1,447,1,448,5,448,5072,8,448,10,448,12,448,5075, - 9,448,1,448,1,448,1,449,1,449,1,450,1,450,1,450,1,450,5,450,5085, - 8,450,10,450,12,450,5088,9,450,1,451,1,451,1,452,1,452,1,452,1,452, - 5,452,5096,8,452,10,452,12,452,5099,9,452,1,453,1,453,1,454,1,454, - 1,455,1,455,3,455,5107,8,455,1,456,1,456,1,456,1,456,1,456,5,456, - 5114,8,456,10,456,12,456,5117,9,456,1,456,1,456,1,457,1,457,1,457, - 3,457,5124,8,457,1,458,1,458,1,458,1,458,5,458,5130,8,458,10,458, - 12,458,5133,9,458,1,458,1,458,1,459,1,459,1,459,1,459,1,460,1,460, - 3,460,5143,8,460,1,461,1,461,1,462,1,462,1,463,1,463,3,463,5151, - 8,463,1,464,1,464,1,464,3,464,5156,8,464,1,465,1,465,1,466,1,466, - 1,467,1,467,1,468,1,468,1,468,1,469,1,469,1,469,5,469,5170,8,469, - 10,469,12,469,5173,9,469,1,470,1,470,1,470,1,470,1,470,3,470,5180, - 8,470,1,471,1,471,1,472,1,472,1,472,5,472,5187,8,472,10,472,12,472, - 5190,9,472,1,473,1,473,1,474,1,474,1,474,1,474,1,474,1,475,1,475, - 1,475,1,475,1,475,1,476,1,476,1,476,5,476,5207,8,476,10,476,12,476, - 5210,9,476,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477, - 1,477,1,477,1,477,1,477,1,477,3,477,5226,8,477,1,478,1,478,1,478, - 1,478,1,478,1,478,1,478,3,478,5235,8,478,1,479,1,479,1,479,5,479, - 5240,8,479,10,479,12,479,5243,9,479,1,480,1,480,1,480,3,480,5248, - 8,480,1,481,1,481,1,481,5,481,5253,8,481,10,481,12,481,5256,9,481, - 1,482,1,482,1,482,1,482,3,482,5262,8,482,1,482,1,482,1,482,1,482, - 1,482,1,482,1,482,3,482,5271,8,482,3,482,5273,8,482,1,483,1,483, - 1,483,1,484,1,484,3,484,5280,8,484,1,485,1,485,1,486,1,486,1,487, + 3,415,4882,8,415,1,416,1,416,1,416,1,416,1,416,1,416,1,416,5,416, + 4891,8,416,10,416,12,416,4894,9,416,1,417,1,417,1,418,5,418,4899, + 8,418,10,418,12,418,4902,9,418,1,418,1,418,1,419,1,419,1,420,1,420, + 1,420,1,420,5,420,4912,8,420,10,420,12,420,4915,9,420,1,421,1,421, + 1,422,1,422,1,422,1,422,5,422,4923,8,422,10,422,12,422,4926,9,422, + 1,423,1,423,1,424,1,424,1,424,1,424,5,424,4934,8,424,10,424,12,424, + 4937,9,424,1,425,1,425,1,426,1,426,1,426,1,426,5,426,4945,8,426, + 10,426,12,426,4948,9,426,1,427,1,427,1,428,1,428,1,428,1,428,5,428, + 4956,8,428,10,428,12,428,4959,9,428,1,429,1,429,1,430,1,430,1,430, + 1,430,5,430,4967,8,430,10,430,12,430,4970,9,430,1,431,1,431,1,432, + 1,432,1,432,1,432,1,432,3,432,4979,8,432,1,433,1,433,1,433,1,433, + 1,434,1,434,1,434,3,434,4988,8,434,1,435,1,435,3,435,4992,8,435, + 1,436,1,436,1,436,1,436,1,436,1,436,3,436,5000,8,436,1,437,1,437, + 1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,437,3,437,5013, + 8,437,1,438,1,438,1,438,1,438,1,439,1,439,1,440,1,440,3,440,5023, + 8,440,1,441,1,441,1,441,1,441,3,441,5029,8,441,1,442,1,442,1,442, + 1,442,1,443,1,443,1,443,1,443,1,443,1,443,1,443,3,443,5042,8,443, + 1,444,1,444,1,444,1,444,1,444,1,444,1,444,5,444,5051,8,444,10,444, + 12,444,5054,9,444,1,445,1,445,1,445,1,445,1,445,1,445,1,445,1,445, + 1,445,1,445,1,445,1,445,3,445,5068,8,445,1,446,1,446,1,446,3,446, + 5073,8,446,1,447,1,447,1,448,5,448,5078,8,448,10,448,12,448,5081, + 9,448,1,448,1,448,1,449,1,449,1,450,1,450,1,450,1,450,5,450,5091, + 8,450,10,450,12,450,5094,9,450,1,451,1,451,1,452,1,452,1,452,1,452, + 5,452,5102,8,452,10,452,12,452,5105,9,452,1,453,1,453,1,454,1,454, + 1,455,1,455,3,455,5113,8,455,1,456,1,456,1,456,1,456,1,456,5,456, + 5120,8,456,10,456,12,456,5123,9,456,1,456,1,456,1,457,1,457,1,457, + 3,457,5130,8,457,1,458,1,458,1,458,1,458,5,458,5136,8,458,10,458, + 12,458,5139,9,458,1,458,1,458,1,459,1,459,1,459,1,459,1,460,1,460, + 3,460,5149,8,460,1,461,1,461,1,462,1,462,1,463,1,463,3,463,5157, + 8,463,1,464,1,464,1,464,3,464,5162,8,464,1,465,1,465,1,466,1,466, + 1,467,1,467,1,468,1,468,1,468,1,469,1,469,1,469,5,469,5176,8,469, + 10,469,12,469,5179,9,469,1,470,1,470,1,470,1,470,1,470,3,470,5186, + 8,470,1,471,1,471,1,472,1,472,1,472,5,472,5193,8,472,10,472,12,472, + 5196,9,472,1,473,1,473,1,474,1,474,1,474,1,474,1,474,1,475,1,475, + 1,475,1,475,1,475,1,476,1,476,1,476,5,476,5213,8,476,10,476,12,476, + 5216,9,476,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477, + 1,477,1,477,1,477,1,477,1,477,3,477,5232,8,477,1,478,1,478,1,478, + 1,478,1,478,1,478,1,478,3,478,5241,8,478,1,479,1,479,1,479,5,479, + 5246,8,479,10,479,12,479,5249,9,479,1,480,1,480,1,480,3,480,5254, + 8,480,1,481,1,481,1,481,5,481,5259,8,481,10,481,12,481,5262,9,481, + 1,482,1,482,1,482,1,482,3,482,5268,8,482,1,482,1,482,1,482,1,482, + 1,482,1,482,1,482,3,482,5277,8,482,3,482,5279,8,482,1,483,1,483, + 1,483,1,484,1,484,3,484,5286,8,484,1,485,1,485,1,486,1,486,1,487, 1,487,1,488,1,488,1,489,1,489,1,490,1,490,1,491,1,491,1,492,1,492, 1,493,1,493,1,494,1,494,1,495,1,495,1,496,1,496,1,496,1,496,1,496, 1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,496,3,496, - 5319,8,496,1,496,1,496,3,496,5323,8,496,3,496,5325,8,496,1,497,1, - 497,3,497,5329,8,497,1,497,1,497,1,497,1,498,1,498,1,498,1,498,1, - 498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,3,498,5346,8,498,1, - 499,1,499,1,499,1,499,3,499,5352,8,499,1,499,1,499,1,500,1,500,1, - 500,5,500,5359,8,500,10,500,12,500,5362,9,500,1,501,1,501,1,502, - 1,502,1,502,1,503,1,503,1,503,5,503,5372,8,503,10,503,12,503,5375, - 9,503,1,504,1,504,1,504,5,504,5380,8,504,10,504,12,504,5383,9,504, + 5325,8,496,1,496,1,496,3,496,5329,8,496,3,496,5331,8,496,1,497,1, + 497,3,497,5335,8,497,1,497,1,497,1,497,1,498,1,498,1,498,1,498,1, + 498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,3,498,5352,8,498,1, + 499,1,499,1,499,1,499,3,499,5358,8,499,1,499,1,499,1,500,1,500,1, + 500,5,500,5365,8,500,10,500,12,500,5368,9,500,1,501,1,501,1,502, + 1,502,1,502,1,503,1,503,1,503,5,503,5378,8,503,10,503,12,503,5381, + 9,503,1,504,1,504,1,504,5,504,5386,8,504,10,504,12,504,5389,9,504, 1,505,1,505,1,505,1,505,1,506,1,506,1,507,1,507,1,508,1,508,1,508, - 1,508,3,508,5397,8,508,1,509,1,509,1,509,1,510,1,510,1,510,1,510, + 1,508,3,508,5403,8,508,1,509,1,509,1,509,1,510,1,510,1,510,1,510, 1,510,1,510,1,510,1,510,1,510,1,510,1,511,1,511,1,511,1,511,1,511, - 1,511,1,511,1,511,1,511,1,511,1,511,1,511,1,511,1,511,3,511,5426, - 8,511,1,511,1,511,1,511,3,511,5431,8,511,3,511,5433,8,511,1,512, + 1,511,1,511,1,511,1,511,1,511,1,511,1,511,1,511,1,511,3,511,5432, + 8,511,1,511,1,511,1,511,3,511,5437,8,511,3,511,5439,8,511,1,512, 1,512,1,512,1,512,1,512,1,512,1,513,1,513,1,513,1,513,1,513,1,513, - 1,513,1,513,1,513,1,513,1,513,1,513,3,513,5453,8,513,1,514,1,514, - 1,514,5,514,5458,8,514,10,514,12,514,5461,9,514,1,515,1,515,1,515, + 1,513,1,513,1,513,1,513,1,513,1,513,3,513,5459,8,513,1,514,1,514, + 1,514,5,514,5464,8,514,10,514,12,514,5467,9,514,1,515,1,515,1,515, 1,515,1,515,1,515,1,515,1,515,1,516,1,516,1,516,1,516,1,516,1,516, - 1,516,1,516,1,516,1,516,1,516,1,516,3,516,5483,8,516,1,517,1,517, + 1,516,1,516,1,516,1,516,1,516,1,516,3,516,5489,8,516,1,517,1,517, 1,517,1,517,1,517,1,517,1,518,1,518,1,518,1,518,1,518,1,518,1,518, - 1,518,1,518,3,518,5500,8,518,1,518,1,518,1,518,3,518,5505,8,518, - 1,519,1,519,1,519,1,519,1,519,1,519,1,519,1,519,1,519,3,519,5516, - 8,519,1,519,1,519,1,519,3,519,5521,8,519,1,520,1,520,1,520,1,520, + 1,518,1,518,3,518,5506,8,518,1,518,1,518,1,518,3,518,5511,8,518, + 1,519,1,519,1,519,1,519,1,519,1,519,1,519,1,519,1,519,3,519,5522, + 8,519,1,519,1,519,1,519,3,519,5527,8,519,1,520,1,520,1,520,1,520, 1,520,1,520,1,520,1,520,0,0,521,0,2,4,6,8,10,12,14,16,18,20,22,24, 26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68, 70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108, @@ -29962,7 +29983,7 @@ export class HiveSqlParser extends SQLParserBase { 199,242,242,300,300,322,322,2,0,213,213,431,432,1,0,106,107,1,0, 94,95,1,0,392,393,1,0,208,209,1,0,381,382,1,0,73,74,1,0,148,149, 1,0,206,207,1,0,297,298,1,0,80,82,2,0,4,4,101,101,3,0,14,14,144, - 144,369,369,5931,0,1045,1,0,0,0,2,1052,1,0,0,0,4,1057,1,0,0,0,6, + 144,369,369,5939,0,1045,1,0,0,0,2,1052,1,0,0,0,4,1057,1,0,0,0,6, 1091,1,0,0,0,8,1093,1,0,0,0,10,1095,1,0,0,0,12,1111,1,0,0,0,14,1113, 1,0,0,0,16,1129,1,0,0,0,18,1132,1,0,0,0,20,1141,1,0,0,0,22,1149, 1,0,0,0,24,1162,1,0,0,0,26,1173,1,0,0,0,28,1178,1,0,0,0,30,1189, @@ -30036,63 +30057,63 @@ export class HiveSqlParser extends SQLParserBase { 1,0,0,0,568,3591,1,0,0,0,570,3593,1,0,0,0,572,3597,1,0,0,0,574,3600, 1,0,0,0,576,3603,1,0,0,0,578,3623,1,0,0,0,580,3627,1,0,0,0,582,3634, 1,0,0,0,584,3648,1,0,0,0,586,3669,1,0,0,0,588,3674,1,0,0,0,590,3676, - 1,0,0,0,592,3681,1,0,0,0,594,3686,1,0,0,0,596,3700,1,0,0,0,598,3831, - 1,0,0,0,600,3833,1,0,0,0,602,3853,1,0,0,0,604,3856,1,0,0,0,606,3859, - 1,0,0,0,608,3862,1,0,0,0,610,3866,1,0,0,0,612,3878,1,0,0,0,614,3883, - 1,0,0,0,616,3885,1,0,0,0,618,3893,1,0,0,0,620,3901,1,0,0,0,622,3913, - 1,0,0,0,624,3947,1,0,0,0,626,3949,1,0,0,0,628,3967,1,0,0,0,630,3976, - 1,0,0,0,632,3981,1,0,0,0,634,3985,1,0,0,0,636,4001,1,0,0,0,638,4060, - 1,0,0,0,640,4062,1,0,0,0,642,4064,1,0,0,0,644,4084,1,0,0,0,646,4095, - 1,0,0,0,648,4097,1,0,0,0,650,4113,1,0,0,0,652,4125,1,0,0,0,654,4135, - 1,0,0,0,656,4137,1,0,0,0,658,4141,1,0,0,0,660,4151,1,0,0,0,662,4161, - 1,0,0,0,664,4166,1,0,0,0,666,4173,1,0,0,0,668,4177,1,0,0,0,670,4196, - 1,0,0,0,672,4201,1,0,0,0,674,4203,1,0,0,0,676,4231,1,0,0,0,678,4234, - 1,0,0,0,680,4236,1,0,0,0,682,4238,1,0,0,0,684,4257,1,0,0,0,686,4259, - 1,0,0,0,688,4261,1,0,0,0,690,4265,1,0,0,0,692,4299,1,0,0,0,694,4301, - 1,0,0,0,696,4303,1,0,0,0,698,4311,1,0,0,0,700,4358,1,0,0,0,702,4360, - 1,0,0,0,704,4385,1,0,0,0,706,4387,1,0,0,0,708,4395,1,0,0,0,710,4404, - 1,0,0,0,712,4420,1,0,0,0,714,4424,1,0,0,0,716,4426,1,0,0,0,718,4435, - 1,0,0,0,720,4450,1,0,0,0,722,4456,1,0,0,0,724,4458,1,0,0,0,726,4466, - 1,0,0,0,728,4468,1,0,0,0,730,4473,1,0,0,0,732,4486,1,0,0,0,734,4510, - 1,0,0,0,736,4512,1,0,0,0,738,4525,1,0,0,0,740,4527,1,0,0,0,742,4530, - 1,0,0,0,744,4533,1,0,0,0,746,4535,1,0,0,0,748,4539,1,0,0,0,750,4545, - 1,0,0,0,752,4551,1,0,0,0,754,4553,1,0,0,0,756,4567,1,0,0,0,758,4576, - 1,0,0,0,760,4578,1,0,0,0,762,4589,1,0,0,0,764,4597,1,0,0,0,766,4607, - 1,0,0,0,768,4611,1,0,0,0,770,4615,1,0,0,0,772,4619,1,0,0,0,774,4625, - 1,0,0,0,776,4679,1,0,0,0,778,4685,1,0,0,0,780,4687,1,0,0,0,782,4691, - 1,0,0,0,784,4695,1,0,0,0,786,4697,1,0,0,0,788,4701,1,0,0,0,790,4703, - 1,0,0,0,792,4714,1,0,0,0,794,4731,1,0,0,0,796,4747,1,0,0,0,798,4764, - 1,0,0,0,800,4766,1,0,0,0,802,4781,1,0,0,0,804,4796,1,0,0,0,806,4798, - 1,0,0,0,808,4800,1,0,0,0,810,4802,1,0,0,0,812,4808,1,0,0,0,814,4814, - 1,0,0,0,816,4819,1,0,0,0,818,4821,1,0,0,0,820,4824,1,0,0,0,822,4826, - 1,0,0,0,824,4844,1,0,0,0,826,4860,1,0,0,0,828,4862,1,0,0,0,830,4875, - 1,0,0,0,832,4877,1,0,0,0,834,4889,1,0,0,0,836,4894,1,0,0,0,838,4899, - 1,0,0,0,840,4901,1,0,0,0,842,4910,1,0,0,0,844,4912,1,0,0,0,846,4921, - 1,0,0,0,848,4923,1,0,0,0,850,4932,1,0,0,0,852,4934,1,0,0,0,854,4943, - 1,0,0,0,856,4945,1,0,0,0,858,4954,1,0,0,0,860,4956,1,0,0,0,862,4965, - 1,0,0,0,864,4972,1,0,0,0,866,4974,1,0,0,0,868,4981,1,0,0,0,870,4983, - 1,0,0,0,872,4993,1,0,0,0,874,5006,1,0,0,0,876,5008,1,0,0,0,878,5012, - 1,0,0,0,880,5016,1,0,0,0,882,5022,1,0,0,0,884,5024,1,0,0,0,886,5035, - 1,0,0,0,888,5037,1,0,0,0,890,5061,1,0,0,0,892,5063,1,0,0,0,894,5068, - 1,0,0,0,896,5073,1,0,0,0,898,5078,1,0,0,0,900,5080,1,0,0,0,902,5089, - 1,0,0,0,904,5091,1,0,0,0,906,5100,1,0,0,0,908,5102,1,0,0,0,910,5104, - 1,0,0,0,912,5108,1,0,0,0,914,5120,1,0,0,0,916,5125,1,0,0,0,918,5136, - 1,0,0,0,920,5142,1,0,0,0,922,5144,1,0,0,0,924,5146,1,0,0,0,926,5150, - 1,0,0,0,928,5152,1,0,0,0,930,5157,1,0,0,0,932,5159,1,0,0,0,934,5161, - 1,0,0,0,936,5163,1,0,0,0,938,5166,1,0,0,0,940,5174,1,0,0,0,942,5181, - 1,0,0,0,944,5183,1,0,0,0,946,5191,1,0,0,0,948,5193,1,0,0,0,950,5198, - 1,0,0,0,952,5203,1,0,0,0,954,5225,1,0,0,0,956,5234,1,0,0,0,958,5236, - 1,0,0,0,960,5247,1,0,0,0,962,5249,1,0,0,0,964,5257,1,0,0,0,966,5274, - 1,0,0,0,968,5277,1,0,0,0,970,5281,1,0,0,0,972,5283,1,0,0,0,974,5285, - 1,0,0,0,976,5287,1,0,0,0,978,5289,1,0,0,0,980,5291,1,0,0,0,982,5293, - 1,0,0,0,984,5295,1,0,0,0,986,5297,1,0,0,0,988,5299,1,0,0,0,990,5301, - 1,0,0,0,992,5303,1,0,0,0,994,5328,1,0,0,0,996,5333,1,0,0,0,998,5347, - 1,0,0,0,1000,5355,1,0,0,0,1002,5363,1,0,0,0,1004,5365,1,0,0,0,1006, - 5368,1,0,0,0,1008,5376,1,0,0,0,1010,5384,1,0,0,0,1012,5388,1,0,0, - 0,1014,5390,1,0,0,0,1016,5396,1,0,0,0,1018,5398,1,0,0,0,1020,5401, - 1,0,0,0,1022,5411,1,0,0,0,1024,5434,1,0,0,0,1026,5452,1,0,0,0,1028, - 5454,1,0,0,0,1030,5462,1,0,0,0,1032,5470,1,0,0,0,1034,5484,1,0,0, - 0,1036,5490,1,0,0,0,1038,5506,1,0,0,0,1040,5522,1,0,0,0,1042,1044, + 1,0,0,0,592,3681,1,0,0,0,594,3686,1,0,0,0,596,3700,1,0,0,0,598,3837, + 1,0,0,0,600,3839,1,0,0,0,602,3859,1,0,0,0,604,3862,1,0,0,0,606,3865, + 1,0,0,0,608,3868,1,0,0,0,610,3872,1,0,0,0,612,3884,1,0,0,0,614,3889, + 1,0,0,0,616,3891,1,0,0,0,618,3899,1,0,0,0,620,3907,1,0,0,0,622,3919, + 1,0,0,0,624,3953,1,0,0,0,626,3955,1,0,0,0,628,3973,1,0,0,0,630,3982, + 1,0,0,0,632,3987,1,0,0,0,634,3991,1,0,0,0,636,4007,1,0,0,0,638,4066, + 1,0,0,0,640,4068,1,0,0,0,642,4070,1,0,0,0,644,4090,1,0,0,0,646,4101, + 1,0,0,0,648,4103,1,0,0,0,650,4119,1,0,0,0,652,4131,1,0,0,0,654,4141, + 1,0,0,0,656,4143,1,0,0,0,658,4147,1,0,0,0,660,4157,1,0,0,0,662,4167, + 1,0,0,0,664,4172,1,0,0,0,666,4179,1,0,0,0,668,4183,1,0,0,0,670,4202, + 1,0,0,0,672,4207,1,0,0,0,674,4209,1,0,0,0,676,4237,1,0,0,0,678,4240, + 1,0,0,0,680,4242,1,0,0,0,682,4244,1,0,0,0,684,4263,1,0,0,0,686,4265, + 1,0,0,0,688,4267,1,0,0,0,690,4271,1,0,0,0,692,4305,1,0,0,0,694,4307, + 1,0,0,0,696,4309,1,0,0,0,698,4317,1,0,0,0,700,4364,1,0,0,0,702,4366, + 1,0,0,0,704,4391,1,0,0,0,706,4393,1,0,0,0,708,4401,1,0,0,0,710,4410, + 1,0,0,0,712,4426,1,0,0,0,714,4430,1,0,0,0,716,4432,1,0,0,0,718,4441, + 1,0,0,0,720,4456,1,0,0,0,722,4462,1,0,0,0,724,4464,1,0,0,0,726,4472, + 1,0,0,0,728,4474,1,0,0,0,730,4479,1,0,0,0,732,4492,1,0,0,0,734,4516, + 1,0,0,0,736,4518,1,0,0,0,738,4531,1,0,0,0,740,4533,1,0,0,0,742,4536, + 1,0,0,0,744,4539,1,0,0,0,746,4541,1,0,0,0,748,4545,1,0,0,0,750,4551, + 1,0,0,0,752,4557,1,0,0,0,754,4559,1,0,0,0,756,4573,1,0,0,0,758,4582, + 1,0,0,0,760,4584,1,0,0,0,762,4595,1,0,0,0,764,4603,1,0,0,0,766,4613, + 1,0,0,0,768,4617,1,0,0,0,770,4621,1,0,0,0,772,4625,1,0,0,0,774,4631, + 1,0,0,0,776,4685,1,0,0,0,778,4691,1,0,0,0,780,4693,1,0,0,0,782,4697, + 1,0,0,0,784,4701,1,0,0,0,786,4703,1,0,0,0,788,4707,1,0,0,0,790,4709, + 1,0,0,0,792,4720,1,0,0,0,794,4737,1,0,0,0,796,4753,1,0,0,0,798,4770, + 1,0,0,0,800,4772,1,0,0,0,802,4787,1,0,0,0,804,4802,1,0,0,0,806,4804, + 1,0,0,0,808,4806,1,0,0,0,810,4808,1,0,0,0,812,4814,1,0,0,0,814,4820, + 1,0,0,0,816,4825,1,0,0,0,818,4827,1,0,0,0,820,4830,1,0,0,0,822,4832, + 1,0,0,0,824,4850,1,0,0,0,826,4866,1,0,0,0,828,4868,1,0,0,0,830,4881, + 1,0,0,0,832,4883,1,0,0,0,834,4895,1,0,0,0,836,4900,1,0,0,0,838,4905, + 1,0,0,0,840,4907,1,0,0,0,842,4916,1,0,0,0,844,4918,1,0,0,0,846,4927, + 1,0,0,0,848,4929,1,0,0,0,850,4938,1,0,0,0,852,4940,1,0,0,0,854,4949, + 1,0,0,0,856,4951,1,0,0,0,858,4960,1,0,0,0,860,4962,1,0,0,0,862,4971, + 1,0,0,0,864,4978,1,0,0,0,866,4980,1,0,0,0,868,4987,1,0,0,0,870,4989, + 1,0,0,0,872,4999,1,0,0,0,874,5012,1,0,0,0,876,5014,1,0,0,0,878,5018, + 1,0,0,0,880,5022,1,0,0,0,882,5028,1,0,0,0,884,5030,1,0,0,0,886,5041, + 1,0,0,0,888,5043,1,0,0,0,890,5067,1,0,0,0,892,5069,1,0,0,0,894,5074, + 1,0,0,0,896,5079,1,0,0,0,898,5084,1,0,0,0,900,5086,1,0,0,0,902,5095, + 1,0,0,0,904,5097,1,0,0,0,906,5106,1,0,0,0,908,5108,1,0,0,0,910,5110, + 1,0,0,0,912,5114,1,0,0,0,914,5126,1,0,0,0,916,5131,1,0,0,0,918,5142, + 1,0,0,0,920,5148,1,0,0,0,922,5150,1,0,0,0,924,5152,1,0,0,0,926,5156, + 1,0,0,0,928,5158,1,0,0,0,930,5163,1,0,0,0,932,5165,1,0,0,0,934,5167, + 1,0,0,0,936,5169,1,0,0,0,938,5172,1,0,0,0,940,5180,1,0,0,0,942,5187, + 1,0,0,0,944,5189,1,0,0,0,946,5197,1,0,0,0,948,5199,1,0,0,0,950,5204, + 1,0,0,0,952,5209,1,0,0,0,954,5231,1,0,0,0,956,5240,1,0,0,0,958,5242, + 1,0,0,0,960,5253,1,0,0,0,962,5255,1,0,0,0,964,5263,1,0,0,0,966,5280, + 1,0,0,0,968,5283,1,0,0,0,970,5287,1,0,0,0,972,5289,1,0,0,0,974,5291, + 1,0,0,0,976,5293,1,0,0,0,978,5295,1,0,0,0,980,5297,1,0,0,0,982,5299, + 1,0,0,0,984,5301,1,0,0,0,986,5303,1,0,0,0,988,5305,1,0,0,0,990,5307, + 1,0,0,0,992,5309,1,0,0,0,994,5334,1,0,0,0,996,5339,1,0,0,0,998,5353, + 1,0,0,0,1000,5361,1,0,0,0,1002,5369,1,0,0,0,1004,5371,1,0,0,0,1006, + 5374,1,0,0,0,1008,5382,1,0,0,0,1010,5390,1,0,0,0,1012,5394,1,0,0, + 0,1014,5396,1,0,0,0,1016,5402,1,0,0,0,1018,5404,1,0,0,0,1020,5407, + 1,0,0,0,1022,5417,1,0,0,0,1024,5440,1,0,0,0,1026,5458,1,0,0,0,1028, + 5460,1,0,0,0,1030,5468,1,0,0,0,1032,5476,1,0,0,0,1034,5490,1,0,0, + 0,1036,5496,1,0,0,0,1038,5512,1,0,0,0,1040,5528,1,0,0,0,1042,1044, 3,2,1,0,1043,1042,1,0,0,0,1044,1047,1,0,0,0,1045,1043,1,0,0,0,1045, 1046,1,0,0,0,1046,1048,1,0,0,0,1047,1045,1,0,0,0,1048,1049,5,0,0, 1,1049,1,1,0,0,0,1050,1053,3,4,2,0,1051,1053,3,12,6,0,1052,1050, @@ -31046,17 +31067,17 @@ export class HiveSqlParser extends SQLParserBase { 3706,3708,5,345,0,0,3707,3706,1,0,0,0,3707,3708,1,0,0,0,3708,3710, 1,0,0,0,3709,3711,5,123,0,0,3710,3709,1,0,0,0,3710,3711,1,0,0,0, 3711,3712,1,0,0,0,3712,3714,5,329,0,0,3713,3715,3,44,22,0,3714,3713, - 1,0,0,0,3714,3715,1,0,0,0,3715,3716,1,0,0,0,3716,3770,3,662,331, + 1,0,0,0,3714,3715,1,0,0,0,3715,3716,1,0,0,0,3716,3773,3,662,331, 0,3717,3719,3,596,298,0,3718,3720,3,222,111,0,3719,3718,1,0,0,0, 3719,3720,1,0,0,0,3720,3722,1,0,0,0,3721,3723,3,250,125,0,3722,3721, 1,0,0,0,3722,3723,1,0,0,0,3723,3725,1,0,0,0,3724,3726,3,272,136, 0,3725,3724,1,0,0,0,3725,3726,1,0,0,0,3726,3728,1,0,0,0,3727,3729, 3,274,137,0,3728,3727,1,0,0,0,3728,3729,1,0,0,0,3729,3731,1,0,0, 0,3730,3732,3,252,126,0,3731,3730,1,0,0,0,3731,3732,1,0,0,0,3732, - 3771,1,0,0,0,3733,3734,5,399,0,0,3734,3735,3,278,139,0,3735,3736, - 5,400,0,0,3736,3738,1,0,0,0,3737,3733,1,0,0,0,3737,3738,1,0,0,0, - 3738,3740,1,0,0,0,3739,3741,3,218,109,0,3740,3739,1,0,0,0,3740,3741, - 1,0,0,0,3741,3743,1,0,0,0,3742,3744,3,220,110,0,3743,3742,1,0,0, + 3734,1,0,0,0,3733,3735,3,220,110,0,3734,3733,1,0,0,0,3734,3735,1, + 0,0,0,3735,3774,1,0,0,0,3736,3737,5,399,0,0,3737,3738,3,278,139, + 0,3738,3739,5,400,0,0,3739,3741,1,0,0,0,3740,3736,1,0,0,0,3740,3741, + 1,0,0,0,3741,3743,1,0,0,0,3742,3744,3,218,109,0,3743,3742,1,0,0, 0,3743,3744,1,0,0,0,3744,3746,1,0,0,0,3745,3747,3,222,111,0,3746, 3745,1,0,0,0,3746,3747,1,0,0,0,3747,3749,1,0,0,0,3748,3750,3,234, 117,0,3749,3748,1,0,0,0,3749,3750,1,0,0,0,3750,3752,1,0,0,0,3751, @@ -31065,623 +31086,626 @@ export class HiveSqlParser extends SQLParserBase { 3756,3758,1,0,0,0,3757,3759,3,272,136,0,3758,3757,1,0,0,0,3758,3759, 1,0,0,0,3759,3761,1,0,0,0,3760,3762,3,274,137,0,3761,3760,1,0,0, 0,3761,3762,1,0,0,0,3762,3764,1,0,0,0,3763,3765,3,252,126,0,3764, - 3763,1,0,0,0,3764,3765,1,0,0,0,3765,3768,1,0,0,0,3766,3767,5,17, - 0,0,3767,3769,3,414,207,0,3768,3766,1,0,0,0,3768,3769,1,0,0,0,3769, - 3771,1,0,0,0,3770,3717,1,0,0,0,3770,3737,1,0,0,0,3771,3832,1,0,0, - 0,3772,3773,5,58,0,0,3773,3774,5,195,0,0,3774,3776,5,329,0,0,3775, - 3777,3,44,22,0,3776,3775,1,0,0,0,3776,3777,1,0,0,0,3777,3778,1,0, - 0,0,3778,3829,3,662,331,0,3779,3781,3,596,298,0,3780,3782,3,250, - 125,0,3781,3780,1,0,0,0,3781,3782,1,0,0,0,3782,3784,1,0,0,0,3783, - 3785,3,272,136,0,3784,3783,1,0,0,0,3784,3785,1,0,0,0,3785,3787,1, - 0,0,0,3786,3788,3,274,137,0,3787,3786,1,0,0,0,3787,3788,1,0,0,0, - 3788,3790,1,0,0,0,3789,3791,3,252,126,0,3790,3789,1,0,0,0,3790,3791, - 1,0,0,0,3791,3830,1,0,0,0,3792,3793,5,399,0,0,3793,3794,3,278,139, - 0,3794,3795,5,400,0,0,3795,3797,1,0,0,0,3796,3792,1,0,0,0,3796,3797, - 1,0,0,0,3797,3799,1,0,0,0,3798,3800,3,218,109,0,3799,3798,1,0,0, - 0,3799,3800,1,0,0,0,3800,3802,1,0,0,0,3801,3803,3,220,110,0,3802, - 3801,1,0,0,0,3802,3803,1,0,0,0,3803,3805,1,0,0,0,3804,3806,3,222, - 111,0,3805,3804,1,0,0,0,3805,3806,1,0,0,0,3806,3808,1,0,0,0,3807, - 3809,3,234,117,0,3808,3807,1,0,0,0,3808,3809,1,0,0,0,3809,3811,1, - 0,0,0,3810,3812,3,238,119,0,3811,3810,1,0,0,0,3811,3812,1,0,0,0, - 3812,3814,1,0,0,0,3813,3815,3,250,125,0,3814,3813,1,0,0,0,3814,3815, - 1,0,0,0,3815,3817,1,0,0,0,3816,3818,3,272,136,0,3817,3816,1,0,0, - 0,3817,3818,1,0,0,0,3818,3820,1,0,0,0,3819,3821,3,274,137,0,3820, - 3819,1,0,0,0,3820,3821,1,0,0,0,3821,3823,1,0,0,0,3822,3824,3,252, - 126,0,3823,3822,1,0,0,0,3823,3824,1,0,0,0,3824,3827,1,0,0,0,3825, - 3826,5,17,0,0,3826,3828,3,414,207,0,3827,3825,1,0,0,0,3827,3828, - 1,0,0,0,3828,3830,1,0,0,0,3829,3779,1,0,0,0,3829,3796,1,0,0,0,3830, - 3832,1,0,0,0,3831,3702,1,0,0,0,3831,3772,1,0,0,0,3832,599,1,0,0, - 0,3833,3834,5,58,0,0,3834,3836,5,69,0,0,3835,3837,3,44,22,0,3836, - 3835,1,0,0,0,3836,3837,1,0,0,0,3837,3838,1,0,0,0,3838,3840,3,926, - 463,0,3839,3841,3,606,303,0,3840,3839,1,0,0,0,3840,3841,1,0,0,0, - 3841,3843,1,0,0,0,3842,3844,3,604,302,0,3843,3842,1,0,0,0,3843,3844, - 1,0,0,0,3844,3846,1,0,0,0,3845,3847,3,602,301,0,3846,3845,1,0,0, - 0,3846,3847,1,0,0,0,3847,3851,1,0,0,0,3848,3849,5,387,0,0,3849,3850, - 5,77,0,0,3850,3852,3,608,304,0,3851,3848,1,0,0,0,3851,3852,1,0,0, - 0,3852,601,1,0,0,0,3853,3854,5,47,0,0,3854,3855,5,426,0,0,3855,603, - 1,0,0,0,3856,3857,5,367,0,0,3857,3858,5,426,0,0,3858,605,1,0,0,0, - 3859,3860,5,352,0,0,3860,3861,5,426,0,0,3861,607,1,0,0,0,3862,3863, - 5,399,0,0,3863,3864,3,64,32,0,3864,3865,5,400,0,0,3865,609,1,0,0, - 0,3866,3867,5,101,0,0,3867,3869,5,69,0,0,3868,3870,3,40,20,0,3869, - 3868,1,0,0,0,3869,3870,1,0,0,0,3870,3871,1,0,0,0,3871,3872,3,926, - 463,0,3872,611,1,0,0,0,3873,3874,3,926,463,0,3874,3875,5,395,0,0, - 3875,3877,1,0,0,0,3876,3873,1,0,0,0,3877,3880,1,0,0,0,3878,3876, - 1,0,0,0,3878,3879,1,0,0,0,3879,3881,1,0,0,0,3880,3878,1,0,0,0,3881, - 3882,5,415,0,0,3882,613,1,0,0,0,3883,3884,5,83,0,0,3884,615,1,0, - 0,0,3885,3890,3,828,414,0,3886,3887,5,397,0,0,3887,3889,3,828,414, - 0,3888,3886,1,0,0,0,3889,3892,1,0,0,0,3890,3888,1,0,0,0,3890,3891, - 1,0,0,0,3891,617,1,0,0,0,3892,3890,1,0,0,0,3893,3898,3,926,463,0, - 3894,3895,5,397,0,0,3895,3897,3,926,463,0,3896,3894,1,0,0,0,3897, - 3900,1,0,0,0,3898,3896,1,0,0,0,3898,3899,1,0,0,0,3899,619,1,0,0, - 0,3900,3898,1,0,0,0,3901,3902,5,139,0,0,3902,3903,3,622,311,0,3903, - 621,1,0,0,0,3904,3905,3,634,317,0,3905,3908,3,630,315,0,3906,3907, - 5,397,0,0,3907,3909,3,630,315,0,3908,3906,1,0,0,0,3909,3910,1,0, - 0,0,3910,3908,1,0,0,0,3910,3911,1,0,0,0,3911,3914,1,0,0,0,3912,3914, - 3,626,313,0,3913,3904,1,0,0,0,3913,3912,1,0,0,0,3914,623,1,0,0,0, - 3915,3919,3,648,324,0,3916,3918,3,638,319,0,3917,3916,1,0,0,0,3918, - 3921,1,0,0,0,3919,3917,1,0,0,0,3919,3920,1,0,0,0,3920,3948,1,0,0, - 0,3921,3919,1,0,0,0,3922,3926,3,690,345,0,3923,3925,3,638,319,0, - 3924,3923,1,0,0,0,3925,3928,1,0,0,0,3926,3924,1,0,0,0,3926,3927, - 1,0,0,0,3927,3948,1,0,0,0,3928,3926,1,0,0,0,3929,3933,3,668,334, - 0,3930,3932,3,638,319,0,3931,3930,1,0,0,0,3932,3935,1,0,0,0,3933, - 3931,1,0,0,0,3933,3934,1,0,0,0,3934,3948,1,0,0,0,3935,3933,1,0,0, - 0,3936,3940,3,674,337,0,3937,3939,3,638,319,0,3938,3937,1,0,0,0, - 3939,3942,1,0,0,0,3940,3938,1,0,0,0,3940,3941,1,0,0,0,3941,3948, - 1,0,0,0,3942,3940,1,0,0,0,3943,3944,5,399,0,0,3944,3945,3,626,313, - 0,3945,3946,5,400,0,0,3946,3948,1,0,0,0,3947,3915,1,0,0,0,3947,3922, - 1,0,0,0,3947,3929,1,0,0,0,3947,3936,1,0,0,0,3947,3943,1,0,0,0,3948, - 625,1,0,0,0,3949,3960,3,624,312,0,3950,3951,3,636,318,0,3951,3956, - 3,628,314,0,3952,3953,5,224,0,0,3953,3957,3,828,414,0,3954,3955, - 5,370,0,0,3955,3957,3,292,146,0,3956,3952,1,0,0,0,3956,3954,1,0, - 0,0,3956,3957,1,0,0,0,3957,3959,1,0,0,0,3958,3950,1,0,0,0,3959,3962, - 1,0,0,0,3960,3958,1,0,0,0,3960,3961,1,0,0,0,3961,627,1,0,0,0,3962, - 3960,1,0,0,0,3963,3968,3,648,324,0,3964,3968,3,690,345,0,3965,3968, - 3,668,334,0,3966,3968,3,674,337,0,3967,3963,1,0,0,0,3967,3964,1, - 0,0,0,3967,3965,1,0,0,0,3967,3966,1,0,0,0,3968,3972,1,0,0,0,3969, - 3971,3,638,319,0,3970,3969,1,0,0,0,3971,3974,1,0,0,0,3972,3970,1, - 0,0,0,3972,3973,1,0,0,0,3973,629,1,0,0,0,3974,3972,1,0,0,0,3975, - 3977,5,250,0,0,3976,3975,1,0,0,0,3976,3977,1,0,0,0,3977,3978,1,0, - 0,0,3978,3979,3,652,326,0,3979,3980,3,632,316,0,3980,631,1,0,0,0, - 3981,3982,5,399,0,0,3982,3983,3,616,308,0,3983,3984,5,400,0,0,3984, - 633,1,0,0,0,3985,3986,5,359,0,0,3986,635,1,0,0,0,3987,4002,5,397, - 0,0,3988,3999,5,157,0,0,3989,3999,5,60,0,0,3990,3992,7,25,0,0,3991, - 3993,5,231,0,0,3992,3991,1,0,0,0,3992,3993,1,0,0,0,3993,3999,1,0, - 0,0,3994,3996,5,180,0,0,3995,3997,7,26,0,0,3996,3995,1,0,0,0,3996, - 3997,1,0,0,0,3997,3999,1,0,0,0,3998,3988,1,0,0,0,3998,3989,1,0,0, - 0,3998,3990,1,0,0,0,3998,3994,1,0,0,0,3998,3999,1,0,0,0,3999,4000, - 1,0,0,0,4000,4002,5,171,0,0,4001,3987,1,0,0,0,4001,3998,1,0,0,0, - 4002,637,1,0,0,0,4003,4004,5,178,0,0,4004,4005,5,378,0,0,4005,4006, - 5,231,0,0,4006,4007,3,776,388,0,4007,4017,3,640,320,0,4008,4009, - 5,17,0,0,4009,4014,3,926,463,0,4010,4011,5,397,0,0,4011,4013,3,926, - 463,0,4012,4010,1,0,0,0,4013,4016,1,0,0,0,4014,4012,1,0,0,0,4014, - 4015,1,0,0,0,4015,4018,1,0,0,0,4016,4014,1,0,0,0,4017,4008,1,0,0, - 0,4017,4018,1,0,0,0,4018,4061,1,0,0,0,4019,4021,5,397,0,0,4020,4019, - 1,0,0,0,4020,4021,1,0,0,0,4021,4022,1,0,0,0,4022,4058,5,178,0,0, - 4023,4024,5,378,0,0,4024,4025,3,776,388,0,4025,4035,3,640,320,0, - 4026,4027,5,17,0,0,4027,4032,3,926,463,0,4028,4029,5,397,0,0,4029, - 4031,3,926,463,0,4030,4028,1,0,0,0,4031,4034,1,0,0,0,4032,4030,1, - 0,0,0,4032,4033,1,0,0,0,4033,4036,1,0,0,0,4034,4032,1,0,0,0,4035, - 4026,1,0,0,0,4035,4036,1,0,0,0,4036,4059,1,0,0,0,4037,4038,5,329, - 0,0,4038,4039,5,399,0,0,4039,4040,3,682,341,0,4040,4042,5,400,0, - 0,4041,4043,5,17,0,0,4042,4041,1,0,0,0,4042,4043,1,0,0,0,4043,4044, - 1,0,0,0,4044,4056,3,640,320,0,4045,4046,5,399,0,0,4046,4051,3,926, - 463,0,4047,4048,5,397,0,0,4048,4050,3,926,463,0,4049,4047,1,0,0, - 0,4050,4053,1,0,0,0,4051,4049,1,0,0,0,4051,4052,1,0,0,0,4052,4054, - 1,0,0,0,4053,4051,1,0,0,0,4054,4055,5,400,0,0,4055,4057,1,0,0,0, - 4056,4045,1,0,0,0,4056,4057,1,0,0,0,4057,4059,1,0,0,0,4058,4023, - 1,0,0,0,4058,4037,1,0,0,0,4059,4061,1,0,0,0,4060,4003,1,0,0,0,4060, - 4020,1,0,0,0,4061,639,1,0,0,0,4062,4063,3,926,463,0,4063,641,1,0, - 0,0,4064,4065,5,331,0,0,4065,4066,5,399,0,0,4066,4067,5,30,0,0,4067, - 4068,5,431,0,0,4068,4069,5,230,0,0,4069,4070,5,221,0,0,4070,4080, - 5,431,0,0,4071,4072,5,224,0,0,4072,4077,3,828,414,0,4073,4074,5, - 397,0,0,4074,4076,3,828,414,0,4075,4073,1,0,0,0,4076,4079,1,0,0, - 0,4077,4075,1,0,0,0,4077,4078,1,0,0,0,4078,4081,1,0,0,0,4079,4077, - 1,0,0,0,4080,4071,1,0,0,0,4080,4081,1,0,0,0,4081,4082,1,0,0,0,4082, - 4083,5,400,0,0,4083,643,1,0,0,0,4084,4085,5,331,0,0,4085,4089,5, - 399,0,0,4086,4087,5,431,0,0,4087,4090,7,27,0,0,4088,4090,5,430,0, - 0,4089,4086,1,0,0,0,4089,4088,1,0,0,0,4090,4091,1,0,0,0,4091,4092, - 5,400,0,0,4092,645,1,0,0,0,4093,4096,3,642,321,0,4094,4096,3,644, - 322,0,4095,4093,1,0,0,0,4095,4094,1,0,0,0,4096,647,1,0,0,0,4097, - 4099,3,658,329,0,4098,4100,3,254,127,0,4099,4098,1,0,0,0,4099,4100, - 1,0,0,0,4100,4102,1,0,0,0,4101,4103,3,646,323,0,4102,4101,1,0,0, - 0,4102,4103,1,0,0,0,4103,4105,1,0,0,0,4104,4106,3,650,325,0,4105, - 4104,1,0,0,0,4105,4106,1,0,0,0,4106,4111,1,0,0,0,4107,4109,5,17, - 0,0,4108,4107,1,0,0,0,4108,4109,1,0,0,0,4109,4110,1,0,0,0,4110,4112, - 3,926,463,0,4111,4108,1,0,0,0,4111,4112,1,0,0,0,4112,649,1,0,0,0, - 4113,4123,5,134,0,0,4114,4115,5,327,0,0,4115,4116,5,17,0,0,4116, - 4117,5,221,0,0,4117,4124,3,828,414,0,4118,4119,5,134,0,0,4119,4120, - 5,328,0,0,4120,4121,5,17,0,0,4121,4122,5,221,0,0,4122,4124,5,431, - 0,0,4123,4114,1,0,0,0,4123,4118,1,0,0,0,4124,651,1,0,0,0,4125,4127, - 3,658,329,0,4126,4128,3,646,323,0,4127,4126,1,0,0,0,4127,4128,1, - 0,0,0,4128,4133,1,0,0,0,4129,4131,5,17,0,0,4130,4129,1,0,0,0,4130, - 4131,1,0,0,0,4131,4132,1,0,0,0,4132,4134,3,926,463,0,4133,4130,1, - 0,0,0,4133,4134,1,0,0,0,4134,653,1,0,0,0,4135,4136,3,926,463,0,4136, - 655,1,0,0,0,4137,4138,3,926,463,0,4138,657,1,0,0,0,4139,4142,3,660, - 330,0,4140,4142,3,664,332,0,4141,4139,1,0,0,0,4141,4140,1,0,0,0, - 4142,659,1,0,0,0,4143,4144,3,926,463,0,4144,4145,5,395,0,0,4145, - 4148,3,926,463,0,4146,4147,5,395,0,0,4147,4149,3,926,463,0,4148, - 4146,1,0,0,0,4148,4149,1,0,0,0,4149,4152,1,0,0,0,4150,4152,3,926, - 463,0,4151,4143,1,0,0,0,4151,4150,1,0,0,0,4152,661,1,0,0,0,4153, - 4154,3,926,463,0,4154,4155,5,395,0,0,4155,4158,3,926,463,0,4156, - 4157,5,395,0,0,4157,4159,3,926,463,0,4158,4156,1,0,0,0,4158,4159, - 1,0,0,0,4159,4162,1,0,0,0,4160,4162,3,926,463,0,4161,4153,1,0,0, - 0,4161,4160,1,0,0,0,4162,663,1,0,0,0,4163,4164,3,926,463,0,4164, - 4165,5,395,0,0,4165,4167,1,0,0,0,4166,4163,1,0,0,0,4166,4167,1,0, - 0,0,4167,4168,1,0,0,0,4168,4169,3,926,463,0,4169,665,1,0,0,0,4170, - 4171,3,926,463,0,4171,4172,5,395,0,0,4172,4174,1,0,0,0,4173,4170, - 1,0,0,0,4173,4174,1,0,0,0,4174,4175,1,0,0,0,4175,4176,3,926,463, - 0,4176,667,1,0,0,0,4177,4178,5,399,0,0,4178,4179,3,394,197,0,4179, - 4181,5,400,0,0,4180,4182,5,17,0,0,4181,4180,1,0,0,0,4181,4182,1, - 0,0,0,4182,4183,1,0,0,0,4183,4184,3,926,463,0,4184,669,1,0,0,0,4185, - 4187,3,768,384,0,4186,4188,3,764,382,0,4187,4186,1,0,0,0,4187,4188, - 1,0,0,0,4188,4197,1,0,0,0,4189,4197,3,764,382,0,4190,4192,3,770, - 385,0,4191,4193,3,772,386,0,4192,4191,1,0,0,0,4192,4193,1,0,0,0, - 4193,4197,1,0,0,0,4194,4197,3,772,386,0,4195,4197,3,766,383,0,4196, - 4185,1,0,0,0,4196,4189,1,0,0,0,4196,4190,1,0,0,0,4196,4194,1,0,0, - 0,4196,4195,1,0,0,0,4197,671,1,0,0,0,4198,4202,3,668,334,0,4199, - 4202,3,648,324,0,4200,4202,3,674,337,0,4201,4198,1,0,0,0,4201,4199, - 1,0,0,0,4201,4200,1,0,0,0,4202,673,1,0,0,0,4203,4204,3,926,463,0, - 4204,4205,5,399,0,0,4205,4206,5,224,0,0,4206,4208,3,672,336,0,4207, - 4209,3,670,335,0,4208,4207,1,0,0,0,4208,4209,1,0,0,0,4209,4225,1, - 0,0,0,4210,4211,5,432,0,0,4211,4212,5,399,0,0,4212,4213,3,828,414, - 0,4213,4222,5,400,0,0,4214,4215,5,397,0,0,4215,4216,5,432,0,0,4216, - 4217,5,399,0,0,4217,4218,3,828,414,0,4218,4219,5,400,0,0,4219,4221, - 1,0,0,0,4220,4214,1,0,0,0,4221,4224,1,0,0,0,4222,4220,1,0,0,0,4222, - 4223,1,0,0,0,4223,4226,1,0,0,0,4224,4222,1,0,0,0,4225,4210,1,0,0, - 0,4225,4226,1,0,0,0,4226,4227,1,0,0,0,4227,4229,5,400,0,0,4228,4230, - 3,926,463,0,4229,4228,1,0,0,0,4229,4230,1,0,0,0,4230,675,1,0,0,0, - 4231,4232,5,384,0,0,4232,4233,3,678,339,0,4233,677,1,0,0,0,4234, - 4235,3,828,414,0,4235,679,1,0,0,0,4236,4237,3,682,341,0,4237,681, - 1,0,0,0,4238,4239,5,374,0,0,4239,4240,3,684,342,0,4240,683,1,0,0, - 0,4241,4246,3,686,343,0,4242,4243,5,397,0,0,4243,4245,3,686,343, - 0,4244,4242,1,0,0,0,4245,4248,1,0,0,0,4246,4244,1,0,0,0,4246,4247, - 1,0,0,0,4247,4258,1,0,0,0,4248,4246,1,0,0,0,4249,4254,3,688,344, - 0,4250,4251,5,397,0,0,4251,4253,3,686,343,0,4252,4250,1,0,0,0,4253, - 4256,1,0,0,0,4254,4252,1,0,0,0,4254,4255,1,0,0,0,4255,4258,1,0,0, - 0,4256,4254,1,0,0,0,4257,4241,1,0,0,0,4257,4249,1,0,0,0,4258,685, - 1,0,0,0,4259,4260,3,746,373,0,4260,687,1,0,0,0,4261,4262,5,399,0, - 0,4262,4263,3,754,377,0,4263,4264,5,400,0,0,4264,689,1,0,0,0,4265, - 4266,5,329,0,0,4266,4267,5,399,0,0,4267,4268,3,682,341,0,4268,4270, - 5,400,0,0,4269,4271,5,17,0,0,4270,4269,1,0,0,0,4270,4271,1,0,0,0, - 4271,4272,1,0,0,0,4272,4282,3,640,320,0,4273,4274,5,399,0,0,4274, - 4279,3,926,463,0,4275,4276,5,397,0,0,4276,4278,3,926,463,0,4277, - 4275,1,0,0,0,4278,4281,1,0,0,0,4279,4277,1,0,0,0,4279,4280,1,0,0, - 0,4280,4283,1,0,0,0,4281,4279,1,0,0,0,4282,4273,1,0,0,0,4282,4283, - 1,0,0,0,4283,4284,1,0,0,0,4284,4285,5,400,0,0,4285,691,1,0,0,0,4286, - 4288,5,299,0,0,4287,4289,5,436,0,0,4288,4287,1,0,0,0,4288,4289,1, - 0,0,0,4289,4296,1,0,0,0,4290,4292,3,694,347,0,4291,4290,1,0,0,0, - 4291,4292,1,0,0,0,4292,4293,1,0,0,0,4293,4297,3,696,348,0,4294,4295, - 5,347,0,0,4295,4297,3,698,349,0,4296,4291,1,0,0,0,4296,4294,1,0, - 0,0,4297,4300,1,0,0,0,4298,4300,3,702,351,0,4299,4286,1,0,0,0,4299, - 4298,1,0,0,0,4300,693,1,0,0,0,4301,4302,7,20,0,0,4302,695,1,0,0, - 0,4303,4308,3,700,350,0,4304,4305,5,397,0,0,4305,4307,3,700,350, - 0,4306,4304,1,0,0,0,4307,4310,1,0,0,0,4308,4306,1,0,0,0,4308,4309, - 1,0,0,0,4309,697,1,0,0,0,4310,4308,1,0,0,0,4311,4312,5,399,0,0,4312, - 4313,3,706,353,0,4313,4314,5,400,0,0,4314,4315,3,240,120,0,4315, - 4316,3,244,122,0,4316,4317,5,370,0,0,4317,4330,5,426,0,0,4318,4328, - 5,17,0,0,4319,4322,5,399,0,0,4320,4323,3,618,309,0,4321,4323,3,276, - 138,0,4322,4320,1,0,0,0,4322,4321,1,0,0,0,4323,4324,1,0,0,0,4324, - 4325,5,400,0,0,4325,4329,1,0,0,0,4326,4329,3,618,309,0,4327,4329, - 3,276,138,0,4328,4319,1,0,0,0,4328,4326,1,0,0,0,4328,4327,1,0,0, - 0,4329,4331,1,0,0,0,4330,4318,1,0,0,0,4330,4331,1,0,0,0,4331,4332, - 1,0,0,0,4332,4333,3,240,120,0,4333,4334,3,242,121,0,4334,699,1,0, - 0,0,4335,4359,3,612,306,0,4336,4339,3,284,142,0,4337,4339,3,828, - 414,0,4338,4336,1,0,0,0,4338,4337,1,0,0,0,4339,4356,1,0,0,0,4340, - 4342,5,17,0,0,4341,4340,1,0,0,0,4341,4342,1,0,0,0,4342,4343,1,0, - 0,0,4343,4357,3,926,463,0,4344,4345,5,17,0,0,4345,4346,5,399,0,0, - 4346,4351,3,926,463,0,4347,4348,5,397,0,0,4348,4350,3,926,463,0, - 4349,4347,1,0,0,0,4350,4353,1,0,0,0,4351,4349,1,0,0,0,4351,4352, - 1,0,0,0,4352,4354,1,0,0,0,4353,4351,1,0,0,0,4354,4355,5,400,0,0, - 4355,4357,1,0,0,0,4356,4341,1,0,0,0,4356,4344,1,0,0,0,4356,4357, - 1,0,0,0,4357,4359,1,0,0,0,4358,4335,1,0,0,0,4358,4338,1,0,0,0,4359, - 701,1,0,0,0,4360,4361,7,28,0,0,4361,4362,3,706,353,0,4362,4363,3, - 240,120,0,4363,4364,3,244,122,0,4364,4365,5,370,0,0,4365,4378,5, - 426,0,0,4366,4376,5,17,0,0,4367,4370,5,399,0,0,4368,4371,3,618,309, - 0,4369,4371,3,276,138,0,4370,4368,1,0,0,0,4370,4369,1,0,0,0,4371, - 4372,1,0,0,0,4372,4373,5,400,0,0,4373,4377,1,0,0,0,4374,4377,3,618, - 309,0,4375,4377,3,276,138,0,4376,4367,1,0,0,0,4376,4374,1,0,0,0, - 4376,4375,1,0,0,0,4377,4379,1,0,0,0,4378,4366,1,0,0,0,4378,4379, - 1,0,0,0,4379,4380,1,0,0,0,4380,4381,3,240,120,0,4381,4382,3,242, - 121,0,4382,703,1,0,0,0,4383,4386,3,612,306,0,4384,4386,3,828,414, - 0,4385,4383,1,0,0,0,4385,4384,1,0,0,0,4386,705,1,0,0,0,4387,4392, - 3,704,352,0,4388,4389,5,397,0,0,4389,4391,3,704,352,0,4390,4388, - 1,0,0,0,4391,4394,1,0,0,0,4392,4390,1,0,0,0,4392,4393,1,0,0,0,4393, - 707,1,0,0,0,4394,4392,1,0,0,0,4395,4396,5,386,0,0,4396,4401,3,710, - 355,0,4397,4398,5,397,0,0,4398,4400,3,710,355,0,4399,4397,1,0,0, - 0,4400,4403,1,0,0,0,4401,4399,1,0,0,0,4401,4402,1,0,0,0,4402,709, - 1,0,0,0,4403,4401,1,0,0,0,4404,4405,3,926,463,0,4405,4406,5,17,0, - 0,4406,4407,3,712,356,0,4407,711,1,0,0,0,4408,4421,3,926,463,0,4409, - 4411,5,399,0,0,4410,4412,3,926,463,0,4411,4410,1,0,0,0,4411,4412, - 1,0,0,0,4412,4414,1,0,0,0,4413,4415,3,670,335,0,4414,4413,1,0,0, - 0,4414,4415,1,0,0,0,4415,4417,1,0,0,0,4416,4418,3,714,357,0,4417, - 4416,1,0,0,0,4417,4418,1,0,0,0,4418,4419,1,0,0,0,4419,4421,5,400, - 0,0,4420,4408,1,0,0,0,4420,4409,1,0,0,0,4421,713,1,0,0,0,4422,4425, - 3,716,358,0,4423,4425,3,718,359,0,4424,4422,1,0,0,0,4424,4423,1, - 0,0,0,4425,715,1,0,0,0,4426,4433,5,292,0,0,4427,4434,3,720,360,0, - 4428,4429,5,25,0,0,4429,4430,3,722,361,0,4430,4431,5,11,0,0,4431, - 4432,3,722,361,0,4432,4434,1,0,0,0,4433,4427,1,0,0,0,4433,4428,1, - 0,0,0,4434,717,1,0,0,0,4435,4442,5,260,0,0,4436,4443,3,720,360,0, - 4437,4438,5,25,0,0,4438,4439,3,722,361,0,4439,4440,5,11,0,0,4440, - 4441,3,722,361,0,4441,4443,1,0,0,0,4442,4436,1,0,0,0,4442,4437,1, - 0,0,0,4443,719,1,0,0,0,4444,4445,5,354,0,0,4445,4451,5,247,0,0,4446, - 4447,5,62,0,0,4447,4451,5,291,0,0,4448,4449,5,431,0,0,4449,4451, - 5,247,0,0,4450,4444,1,0,0,0,4450,4446,1,0,0,0,4450,4448,1,0,0,0, - 4451,721,1,0,0,0,4452,4453,7,29,0,0,4453,4457,7,30,0,0,4454,4455, - 5,62,0,0,4455,4457,5,291,0,0,4456,4452,1,0,0,0,4456,4454,1,0,0,0, - 4457,723,1,0,0,0,4458,4459,5,144,0,0,4459,4460,5,32,0,0,4460,4461, - 3,726,363,0,4461,725,1,0,0,0,4462,4467,3,284,142,0,4463,4467,3,730, - 365,0,4464,4467,3,732,366,0,4465,4467,3,728,364,0,4466,4462,1,0, - 0,0,4466,4463,1,0,0,0,4466,4464,1,0,0,0,4466,4465,1,0,0,0,4467,727, - 1,0,0,0,4468,4469,5,399,0,0,4469,4470,5,400,0,0,4470,729,1,0,0,0, - 4471,4474,5,290,0,0,4472,4474,5,61,0,0,4473,4471,1,0,0,0,4473,4472, - 1,0,0,0,4474,4475,1,0,0,0,4475,4476,5,399,0,0,4476,4481,3,828,414, - 0,4477,4478,5,397,0,0,4478,4480,3,828,414,0,4479,4477,1,0,0,0,4480, - 4483,1,0,0,0,4481,4479,1,0,0,0,4481,4482,1,0,0,0,4482,4484,1,0,0, - 0,4483,4481,1,0,0,0,4484,4485,5,400,0,0,4485,731,1,0,0,0,4486,4491, - 3,748,374,0,4487,4488,5,387,0,0,4488,4492,5,290,0,0,4489,4490,5, - 387,0,0,4490,4492,5,61,0,0,4491,4487,1,0,0,0,4491,4489,1,0,0,0,4491, - 4492,1,0,0,0,4492,4506,1,0,0,0,4493,4494,5,145,0,0,4494,4495,5,305, - 0,0,4495,4496,5,399,0,0,4496,4501,3,734,367,0,4497,4498,5,397,0, - 0,4498,4500,3,734,367,0,4499,4497,1,0,0,0,4500,4503,1,0,0,0,4501, - 4499,1,0,0,0,4501,4502,1,0,0,0,4502,4504,1,0,0,0,4503,4501,1,0,0, - 0,4504,4505,5,400,0,0,4505,4507,1,0,0,0,4506,4493,1,0,0,0,4506,4507, - 1,0,0,0,4507,733,1,0,0,0,4508,4511,3,736,368,0,4509,4511,3,738,369, - 0,4510,4508,1,0,0,0,4510,4509,1,0,0,0,4511,735,1,0,0,0,4512,4514, - 5,399,0,0,4513,4515,3,828,414,0,4514,4513,1,0,0,0,4514,4515,1,0, - 0,0,4515,4520,1,0,0,0,4516,4517,5,397,0,0,4517,4519,3,828,414,0, - 4518,4516,1,0,0,0,4519,4522,1,0,0,0,4520,4518,1,0,0,0,4520,4521, - 1,0,0,0,4521,4523,1,0,0,0,4522,4520,1,0,0,0,4523,4524,5,400,0,0, - 4524,737,1,0,0,0,4525,4526,3,828,414,0,4526,739,1,0,0,0,4527,4528, - 5,146,0,0,4528,4529,3,744,372,0,4529,741,1,0,0,0,4530,4531,5,256, - 0,0,4531,4532,3,828,414,0,4532,743,1,0,0,0,4533,4534,3,828,414,0, - 4534,745,1,0,0,0,4535,4536,5,399,0,0,4536,4537,3,748,374,0,4537, - 4538,5,400,0,0,4538,747,1,0,0,0,4539,4541,3,752,376,0,4540,4542, - 3,750,375,0,4541,4540,1,0,0,0,4541,4542,1,0,0,0,4542,749,1,0,0,0, - 4543,4544,5,397,0,0,4544,4546,3,752,376,0,4545,4543,1,0,0,0,4546, - 4547,1,0,0,0,4547,4545,1,0,0,0,4547,4548,1,0,0,0,4548,751,1,0,0, - 0,4549,4552,3,614,307,0,4550,4552,3,828,414,0,4551,4549,1,0,0,0, - 4551,4550,1,0,0,0,4552,753,1,0,0,0,4553,4555,3,828,414,0,4554,4556, - 5,17,0,0,4555,4554,1,0,0,0,4555,4556,1,0,0,0,4556,4558,1,0,0,0,4557, - 4559,3,926,463,0,4558,4557,1,0,0,0,4558,4559,1,0,0,0,4559,4564,1, - 0,0,0,4560,4561,5,397,0,0,4561,4563,3,756,378,0,4562,4560,1,0,0, - 0,4563,4566,1,0,0,0,4564,4562,1,0,0,0,4564,4565,1,0,0,0,4565,755, - 1,0,0,0,4566,4564,1,0,0,0,4567,4569,3,828,414,0,4568,4570,5,17,0, - 0,4569,4568,1,0,0,0,4569,4570,1,0,0,0,4570,4572,1,0,0,0,4571,4573, - 3,926,463,0,4572,4571,1,0,0,0,4572,4573,1,0,0,0,4573,757,1,0,0,0, - 4574,4577,3,746,373,0,4575,4577,3,748,374,0,4576,4574,1,0,0,0,4576, - 4575,1,0,0,0,4577,759,1,0,0,0,4578,4579,5,399,0,0,4579,4584,3,342, - 171,0,4580,4581,5,397,0,0,4581,4583,3,342,171,0,4582,4580,1,0,0, - 0,4583,4586,1,0,0,0,4584,4582,1,0,0,0,4584,4585,1,0,0,0,4585,4587, - 1,0,0,0,4586,4584,1,0,0,0,4587,4588,5,400,0,0,4588,761,1,0,0,0,4589, - 4594,3,342,171,0,4590,4591,5,397,0,0,4591,4593,3,342,171,0,4592, - 4590,1,0,0,0,4593,4596,1,0,0,0,4594,4592,1,0,0,0,4594,4595,1,0,0, - 0,4595,763,1,0,0,0,4596,4594,1,0,0,0,4597,4598,5,229,0,0,4598,4599, - 5,32,0,0,4599,4604,3,342,171,0,4600,4601,5,397,0,0,4601,4603,3,342, - 171,0,4602,4600,1,0,0,0,4603,4606,1,0,0,0,4604,4602,1,0,0,0,4604, - 4605,1,0,0,0,4605,765,1,0,0,0,4606,4604,1,0,0,0,4607,4608,5,41,0, - 0,4608,4609,5,32,0,0,4609,4610,3,758,379,0,4610,767,1,0,0,0,4611, - 4612,5,237,0,0,4612,4613,5,32,0,0,4613,4614,3,758,379,0,4614,769, - 1,0,0,0,4615,4616,5,97,0,0,4616,4617,5,32,0,0,4617,4618,3,758,379, - 0,4618,771,1,0,0,0,4619,4620,5,314,0,0,4620,4623,5,32,0,0,4621,4624, - 3,760,380,0,4622,4624,3,762,381,0,4623,4621,1,0,0,0,4623,4622,1, - 0,0,0,4624,773,1,0,0,0,4625,4626,5,349,0,0,4626,4630,5,399,0,0,4627, - 4631,5,179,0,0,4628,4631,5,343,0,0,4629,4631,5,29,0,0,4630,4627, - 1,0,0,0,4630,4628,1,0,0,0,4630,4629,1,0,0,0,4630,4631,1,0,0,0,4631, - 4633,1,0,0,0,4632,4634,3,704,352,0,4633,4632,1,0,0,0,4633,4634,1, - 0,0,0,4634,4635,1,0,0,0,4635,4636,5,139,0,0,4636,4637,3,704,352, - 0,4637,4638,5,400,0,0,4638,775,1,0,0,0,4639,4680,3,774,387,0,4640, - 4641,3,784,392,0,4641,4656,5,399,0,0,4642,4657,5,415,0,0,4643,4645, - 3,694,347,0,4644,4643,1,0,0,0,4644,4645,1,0,0,0,4645,4654,1,0,0, - 0,4646,4651,3,704,352,0,4647,4648,5,397,0,0,4648,4650,3,704,352, - 0,4649,4647,1,0,0,0,4650,4653,1,0,0,0,4651,4649,1,0,0,0,4651,4652, - 1,0,0,0,4652,4655,1,0,0,0,4653,4651,1,0,0,0,4654,4646,1,0,0,0,4654, - 4655,1,0,0,0,4655,4657,1,0,0,0,4656,4642,1,0,0,0,4656,4644,1,0,0, - 0,4657,4677,1,0,0,0,4658,4659,5,400,0,0,4659,4660,5,388,0,0,4660, - 4661,5,144,0,0,4661,4662,5,399,0,0,4662,4663,3,764,382,0,4663,4664, - 5,400,0,0,4664,4678,1,0,0,0,4665,4667,5,400,0,0,4666,4668,3,778, - 389,0,4667,4666,1,0,0,0,4667,4668,1,0,0,0,4668,4669,1,0,0,0,4669, - 4670,5,234,0,0,4670,4678,3,712,356,0,4671,4672,3,778,389,0,4672, - 4673,5,400,0,0,4673,4674,5,234,0,0,4674,4675,3,712,356,0,4675,4678, - 1,0,0,0,4676,4678,5,400,0,0,4677,4658,1,0,0,0,4677,4665,1,0,0,0, - 4677,4671,1,0,0,0,4677,4676,1,0,0,0,4678,4680,1,0,0,0,4679,4639, - 1,0,0,0,4679,4640,1,0,0,0,4680,777,1,0,0,0,4681,4682,5,281,0,0,4682, - 4686,5,220,0,0,4683,4684,5,152,0,0,4684,4686,5,220,0,0,4685,4681, - 1,0,0,0,4685,4683,1,0,0,0,4686,779,1,0,0,0,4687,4688,3,928,464,0, - 4688,781,1,0,0,0,4689,4692,3,786,393,0,4690,4692,5,426,0,0,4691, - 4689,1,0,0,0,4691,4690,1,0,0,0,4692,783,1,0,0,0,4693,4696,3,786, - 393,0,4694,4696,3,788,394,0,4695,4693,1,0,0,0,4695,4694,1,0,0,0, - 4696,785,1,0,0,0,4697,4698,3,928,464,0,4698,787,1,0,0,0,4699,4702, - 3,934,467,0,4700,4702,3,924,462,0,4701,4699,1,0,0,0,4701,4700,1, - 0,0,0,4702,789,1,0,0,0,4703,4704,5,36,0,0,4704,4705,5,399,0,0,4705, - 4706,3,828,414,0,4706,4707,5,17,0,0,4707,4710,3,382,191,0,4708,4709, - 5,137,0,0,4709,4711,5,426,0,0,4710,4708,1,0,0,0,4710,4711,1,0,0, - 0,4711,4712,1,0,0,0,4712,4713,5,400,0,0,4713,791,1,0,0,0,4714,4715, - 5,35,0,0,4715,4721,3,828,414,0,4716,4717,5,383,0,0,4717,4718,3,828, - 414,0,4718,4719,5,335,0,0,4719,4720,3,828,414,0,4720,4722,1,0,0, - 0,4721,4716,1,0,0,0,4722,4723,1,0,0,0,4723,4721,1,0,0,0,4723,4724, - 1,0,0,0,4724,4727,1,0,0,0,4725,4726,5,105,0,0,4726,4728,3,828,414, - 0,4727,4725,1,0,0,0,4727,4728,1,0,0,0,4728,4729,1,0,0,0,4729,4730, - 5,108,0,0,4730,793,1,0,0,0,4731,4737,5,35,0,0,4732,4733,5,383,0, - 0,4733,4734,3,828,414,0,4734,4735,5,335,0,0,4735,4736,3,828,414, - 0,4736,4738,1,0,0,0,4737,4732,1,0,0,0,4738,4739,1,0,0,0,4739,4737, - 1,0,0,0,4739,4740,1,0,0,0,4740,4743,1,0,0,0,4741,4742,5,105,0,0, - 4742,4744,3,828,414,0,4743,4741,1,0,0,0,4743,4744,1,0,0,0,4744,4745, - 1,0,0,0,4745,4746,5,108,0,0,4746,795,1,0,0,0,4747,4748,5,132,0,0, - 4748,4749,5,399,0,0,4749,4752,3,828,414,0,4750,4751,5,341,0,0,4751, - 4753,3,798,399,0,4752,4750,1,0,0,0,4752,4753,1,0,0,0,4753,4754,1, - 0,0,0,4754,4755,5,400,0,0,4755,797,1,0,0,0,4756,4765,3,976,488,0, - 4757,4765,5,257,0,0,4758,4765,3,978,489,0,4759,4765,3,980,490,0, - 4760,4765,3,982,491,0,4761,4765,3,984,492,0,4762,4765,3,986,493, - 0,4763,4765,3,988,494,0,4764,4756,1,0,0,0,4764,4757,1,0,0,0,4764, - 4758,1,0,0,0,4764,4759,1,0,0,0,4764,4760,1,0,0,0,4764,4761,1,0,0, - 0,4764,4762,1,0,0,0,4764,4763,1,0,0,0,4765,799,1,0,0,0,4766,4767, - 5,124,0,0,4767,4768,5,399,0,0,4768,4769,3,802,401,0,4769,4770,5, - 139,0,0,4770,4771,3,828,414,0,4771,4772,5,400,0,0,4772,801,1,0,0, - 0,4773,4782,3,976,488,0,4774,4782,5,257,0,0,4775,4782,3,978,489, - 0,4776,4782,3,980,490,0,4777,4782,3,982,491,0,4778,4782,3,984,492, - 0,4779,4782,3,986,493,0,4780,4782,3,988,494,0,4781,4773,1,0,0,0, - 4781,4774,1,0,0,0,4781,4775,1,0,0,0,4781,4776,1,0,0,0,4781,4777, - 1,0,0,0,4781,4778,1,0,0,0,4781,4779,1,0,0,0,4781,4780,1,0,0,0,4782, - 803,1,0,0,0,4783,4797,3,822,411,0,4784,4797,5,431,0,0,4785,4797, - 3,814,407,0,4786,4797,3,816,408,0,4787,4797,3,818,409,0,4788,4797, - 5,426,0,0,4789,4797,3,810,405,0,4790,4797,5,428,0,0,4791,4797,5, - 429,0,0,4792,4797,3,812,406,0,4793,4797,3,906,453,0,4794,4797,5, - 219,0,0,4795,4797,3,806,403,0,4796,4783,1,0,0,0,4796,4784,1,0,0, - 0,4796,4785,1,0,0,0,4796,4786,1,0,0,0,4796,4787,1,0,0,0,4796,4788, - 1,0,0,0,4796,4789,1,0,0,0,4796,4790,1,0,0,0,4796,4791,1,0,0,0,4796, - 4792,1,0,0,0,4796,4793,1,0,0,0,4796,4794,1,0,0,0,4796,4795,1,0,0, - 0,4797,805,1,0,0,0,4798,4799,3,808,404,0,4799,807,1,0,0,0,4800,4801, - 5,424,0,0,4801,809,1,0,0,0,4802,4804,5,426,0,0,4803,4805,5,426,0, - 0,4804,4803,1,0,0,0,4805,4806,1,0,0,0,4806,4804,1,0,0,0,4806,4807, - 1,0,0,0,4807,811,1,0,0,0,4808,4809,5,433,0,0,4809,4810,5,427,0,0, - 4810,813,1,0,0,0,4811,4812,5,71,0,0,4812,4815,5,426,0,0,4813,4815, - 5,63,0,0,4814,4811,1,0,0,0,4814,4813,1,0,0,0,4815,815,1,0,0,0,4816, - 4817,5,337,0,0,4817,4820,5,426,0,0,4818,4820,5,64,0,0,4819,4816, - 1,0,0,0,4819,4818,1,0,0,0,4820,817,1,0,0,0,4821,4822,5,338,0,0,4822, - 4823,5,426,0,0,4823,819,1,0,0,0,4824,4825,7,24,0,0,4825,821,1,0, - 0,0,4826,4827,3,820,410,0,4827,4828,3,826,413,0,4828,823,1,0,0,0, - 4829,4830,5,399,0,0,4830,4831,3,820,410,0,4831,4832,5,400,0,0,4832, - 4833,3,826,413,0,4833,4845,1,0,0,0,4834,4840,5,165,0,0,4835,4841, - 3,820,410,0,4836,4837,5,399,0,0,4837,4838,3,828,414,0,4838,4839, - 5,400,0,0,4839,4841,1,0,0,0,4840,4835,1,0,0,0,4840,4836,1,0,0,0, - 4841,4842,1,0,0,0,4842,4843,3,826,413,0,4843,4845,1,0,0,0,4844,4829, - 1,0,0,0,4844,4834,1,0,0,0,4845,825,1,0,0,0,4846,4847,3,976,488,0, - 4847,4848,5,341,0,0,4848,4849,3,978,489,0,4849,4861,1,0,0,0,4850, - 4851,3,982,491,0,4851,4852,5,341,0,0,4852,4853,3,988,494,0,4853, - 4861,1,0,0,0,4854,4861,3,976,488,0,4855,4861,3,978,489,0,4856,4861, - 3,982,491,0,4857,4861,3,984,492,0,4858,4861,3,986,493,0,4859,4861, - 3,988,494,0,4860,4846,1,0,0,0,4860,4850,1,0,0,0,4860,4854,1,0,0, - 0,4860,4855,1,0,0,0,4860,4856,1,0,0,0,4860,4857,1,0,0,0,4860,4858, - 1,0,0,0,4860,4859,1,0,0,0,4861,827,1,0,0,0,4862,4863,3,904,452,0, - 4863,829,1,0,0,0,4864,4876,3,804,402,0,4865,4876,3,824,412,0,4866, - 4876,3,790,395,0,4867,4876,3,800,400,0,4868,4876,3,796,398,0,4869, - 4876,3,792,396,0,4870,4876,3,794,397,0,4871,4876,3,866,433,0,4872, - 4876,3,776,388,0,4873,4876,3,746,373,0,4874,4876,3,926,463,0,4875, - 4864,1,0,0,0,4875,4865,1,0,0,0,4875,4866,1,0,0,0,4875,4867,1,0,0, - 0,4875,4868,1,0,0,0,4875,4869,1,0,0,0,4875,4870,1,0,0,0,4875,4871, - 1,0,0,0,4875,4872,1,0,0,0,4875,4873,1,0,0,0,4875,4874,1,0,0,0,4876, - 831,1,0,0,0,4877,4886,3,830,415,0,4878,4879,5,401,0,0,4879,4880, - 3,828,414,0,4880,4881,5,402,0,0,4881,4885,1,0,0,0,4882,4883,5,395, - 0,0,4883,4885,3,926,463,0,4884,4878,1,0,0,0,4884,4882,1,0,0,0,4885, - 4888,1,0,0,0,4886,4884,1,0,0,0,4886,4887,1,0,0,0,4887,833,1,0,0, - 0,4888,4886,1,0,0,0,4889,4890,7,31,0,0,4890,835,1,0,0,0,4891,4893, - 3,834,417,0,4892,4891,1,0,0,0,4893,4896,1,0,0,0,4894,4892,1,0,0, - 0,4894,4895,1,0,0,0,4895,4897,1,0,0,0,4896,4894,1,0,0,0,4897,4898, - 3,832,416,0,4898,837,1,0,0,0,4899,4900,5,423,0,0,4900,839,1,0,0, - 0,4901,4907,3,836,418,0,4902,4903,3,838,419,0,4903,4904,3,836,418, - 0,4904,4906,1,0,0,0,4905,4902,1,0,0,0,4906,4909,1,0,0,0,4907,4905, - 1,0,0,0,4907,4908,1,0,0,0,4908,841,1,0,0,0,4909,4907,1,0,0,0,4910, - 4911,7,32,0,0,4911,843,1,0,0,0,4912,4918,3,840,420,0,4913,4914,3, - 842,421,0,4914,4915,3,840,420,0,4915,4917,1,0,0,0,4916,4913,1,0, - 0,0,4917,4920,1,0,0,0,4918,4916,1,0,0,0,4918,4919,1,0,0,0,4919,845, - 1,0,0,0,4920,4918,1,0,0,0,4921,4922,7,33,0,0,4922,847,1,0,0,0,4923, - 4929,3,844,422,0,4924,4925,3,846,423,0,4925,4926,3,844,422,0,4926, - 4928,1,0,0,0,4927,4924,1,0,0,0,4928,4931,1,0,0,0,4929,4927,1,0,0, - 0,4929,4930,1,0,0,0,4930,849,1,0,0,0,4931,4929,1,0,0,0,4932,4933, - 5,422,0,0,4933,851,1,0,0,0,4934,4940,3,848,424,0,4935,4936,3,850, - 425,0,4936,4937,3,848,424,0,4937,4939,1,0,0,0,4938,4935,1,0,0,0, - 4939,4942,1,0,0,0,4940,4938,1,0,0,0,4940,4941,1,0,0,0,4941,853,1, - 0,0,0,4942,4940,1,0,0,0,4943,4944,5,419,0,0,4944,855,1,0,0,0,4945, - 4951,3,852,426,0,4946,4947,3,854,427,0,4947,4948,3,852,426,0,4948, - 4950,1,0,0,0,4949,4946,1,0,0,0,4950,4953,1,0,0,0,4951,4949,1,0,0, - 0,4951,4952,1,0,0,0,4952,857,1,0,0,0,4953,4951,1,0,0,0,4954,4955, - 5,421,0,0,4955,859,1,0,0,0,4956,4962,3,856,428,0,4957,4958,3,858, - 429,0,4958,4959,3,856,428,0,4959,4961,1,0,0,0,4960,4957,1,0,0,0, - 4961,4964,1,0,0,0,4962,4960,1,0,0,0,4962,4963,1,0,0,0,4963,861,1, - 0,0,0,4964,4962,1,0,0,0,4965,4966,7,34,0,0,4966,863,1,0,0,0,4967, - 4973,3,862,431,0,4968,4973,5,408,0,0,4969,4973,5,409,0,0,4970,4973, - 5,410,0,0,4971,4973,5,411,0,0,4972,4967,1,0,0,0,4972,4968,1,0,0, - 0,4972,4969,1,0,0,0,4972,4970,1,0,0,0,4972,4971,1,0,0,0,4973,865, - 1,0,0,0,4974,4975,5,399,0,0,4975,4976,3,410,205,0,4976,4977,5,400, - 0,0,4977,867,1,0,0,0,4978,4982,3,870,435,0,4979,4980,5,117,0,0,4980, - 4982,3,866,433,0,4981,4978,1,0,0,0,4981,4979,1,0,0,0,4982,869,1, - 0,0,0,4983,4985,3,860,430,0,4984,4986,3,872,436,0,4985,4984,1,0, - 0,0,4985,4986,1,0,0,0,4986,871,1,0,0,0,4987,4988,3,864,432,0,4988, - 4989,3,860,430,0,4989,4994,1,0,0,0,4990,4994,3,874,437,0,4991,4992, - 5,216,0,0,4992,4994,3,882,441,0,4993,4987,1,0,0,0,4993,4990,1,0, - 0,0,4993,4991,1,0,0,0,4994,873,1,0,0,0,4995,4996,5,154,0,0,4996, - 5007,3,880,440,0,4997,4998,5,25,0,0,4998,4999,3,860,430,0,4999,5000, - 5,11,0,0,5000,5001,3,860,430,0,5001,5007,1,0,0,0,5002,5003,5,184, - 0,0,5003,5004,7,35,0,0,5004,5007,3,746,373,0,5005,5007,3,876,438, - 0,5006,4995,1,0,0,0,5006,4997,1,0,0,0,5006,5002,1,0,0,0,5006,5005, - 1,0,0,0,5007,875,1,0,0,0,5008,5009,3,922,461,0,5009,5010,3,878,439, - 0,5010,5011,3,866,433,0,5011,877,1,0,0,0,5012,5013,7,36,0,0,5013, - 879,1,0,0,0,5014,5017,3,866,433,0,5015,5017,3,746,373,0,5016,5014, - 1,0,0,0,5016,5015,1,0,0,0,5017,881,1,0,0,0,5018,5019,3,862,431,0, - 5019,5020,3,860,430,0,5020,5023,1,0,0,0,5021,5023,3,874,437,0,5022, - 5018,1,0,0,0,5022,5021,1,0,0,0,5023,883,1,0,0,0,5024,5025,5,167, - 0,0,5025,5026,5,96,0,0,5026,5027,5,139,0,0,5027,885,1,0,0,0,5028, - 5036,5,405,0,0,5029,5036,5,406,0,0,5030,5036,5,407,0,0,5031,5032, - 5,167,0,0,5032,5033,5,216,0,0,5033,5034,5,96,0,0,5034,5036,5,139, - 0,0,5035,5028,1,0,0,0,5035,5029,1,0,0,0,5035,5030,1,0,0,0,5035,5031, - 1,0,0,0,5036,887,1,0,0,0,5037,5046,3,868,434,0,5038,5039,3,886,443, - 0,5039,5040,3,868,434,0,5040,5045,1,0,0,0,5041,5042,3,884,442,0, - 5042,5043,3,868,434,0,5043,5045,1,0,0,0,5044,5038,1,0,0,0,5044,5041, - 1,0,0,0,5045,5048,1,0,0,0,5046,5044,1,0,0,0,5046,5047,1,0,0,0,5047, - 889,1,0,0,0,5048,5046,1,0,0,0,5049,5062,5,219,0,0,5050,5062,5,350, - 0,0,5051,5062,5,125,0,0,5052,5062,5,360,0,0,5053,5054,5,216,0,0, - 5054,5062,5,219,0,0,5055,5056,5,216,0,0,5056,5062,5,350,0,0,5057, - 5058,5,216,0,0,5058,5062,5,125,0,0,5059,5060,5,216,0,0,5060,5062, - 5,360,0,0,5061,5049,1,0,0,0,5061,5050,1,0,0,0,5061,5051,1,0,0,0, - 5061,5052,1,0,0,0,5061,5053,1,0,0,0,5061,5055,1,0,0,0,5061,5057, - 1,0,0,0,5061,5059,1,0,0,0,5062,891,1,0,0,0,5063,5066,3,888,444,0, - 5064,5065,5,167,0,0,5065,5067,3,890,445,0,5066,5064,1,0,0,0,5066, - 5067,1,0,0,0,5067,893,1,0,0,0,5068,5069,5,216,0,0,5069,895,1,0,0, - 0,5070,5072,3,894,447,0,5071,5070,1,0,0,0,5072,5075,1,0,0,0,5073, - 5071,1,0,0,0,5073,5074,1,0,0,0,5074,5076,1,0,0,0,5075,5073,1,0,0, - 0,5076,5077,3,892,446,0,5077,897,1,0,0,0,5078,5079,5,11,0,0,5079, - 899,1,0,0,0,5080,5086,3,896,448,0,5081,5082,3,898,449,0,5082,5083, - 3,896,448,0,5083,5085,1,0,0,0,5084,5081,1,0,0,0,5085,5088,1,0,0, - 0,5086,5084,1,0,0,0,5086,5087,1,0,0,0,5087,901,1,0,0,0,5088,5086, - 1,0,0,0,5089,5090,5,228,0,0,5090,903,1,0,0,0,5091,5097,3,900,450, - 0,5092,5093,3,902,451,0,5093,5094,3,900,450,0,5094,5096,1,0,0,0, - 5095,5092,1,0,0,0,5096,5099,1,0,0,0,5097,5095,1,0,0,0,5097,5098, - 1,0,0,0,5098,905,1,0,0,0,5099,5097,1,0,0,0,5100,5101,7,37,0,0,5101, - 907,1,0,0,0,5102,5103,7,37,0,0,5103,909,1,0,0,0,5104,5106,3,660, - 330,0,5105,5107,3,912,456,0,5106,5105,1,0,0,0,5106,5107,1,0,0,0, - 5107,911,1,0,0,0,5108,5109,5,237,0,0,5109,5110,5,399,0,0,5110,5115, - 3,914,457,0,5111,5112,5,397,0,0,5112,5114,3,914,457,0,5113,5111, - 1,0,0,0,5114,5117,1,0,0,0,5115,5113,1,0,0,0,5115,5116,1,0,0,0,5116, - 5118,1,0,0,0,5117,5115,1,0,0,0,5118,5119,5,400,0,0,5119,913,1,0, - 0,0,5120,5123,3,926,463,0,5121,5122,5,405,0,0,5122,5124,3,804,402, - 0,5123,5121,1,0,0,0,5123,5124,1,0,0,0,5124,915,1,0,0,0,5125,5126, - 5,399,0,0,5126,5131,3,918,459,0,5127,5128,5,397,0,0,5128,5130,3, - 918,459,0,5129,5127,1,0,0,0,5130,5133,1,0,0,0,5131,5129,1,0,0,0, - 5131,5132,1,0,0,0,5132,5134,1,0,0,0,5133,5131,1,0,0,0,5134,5135, - 5,400,0,0,5135,917,1,0,0,0,5136,5137,3,926,463,0,5137,5138,3,920, - 460,0,5138,5139,3,804,402,0,5139,919,1,0,0,0,5140,5143,5,184,0,0, - 5141,5143,3,922,461,0,5142,5140,1,0,0,0,5142,5141,1,0,0,0,5143,921, - 1,0,0,0,5144,5145,7,38,0,0,5145,923,1,0,0,0,5146,5147,7,39,0,0,5147, - 925,1,0,0,0,5148,5151,5,432,0,0,5149,5151,3,932,466,0,5150,5148, - 1,0,0,0,5150,5149,1,0,0,0,5151,927,1,0,0,0,5152,5155,3,926,463,0, - 5153,5154,5,395,0,0,5154,5156,3,926,463,0,5155,5153,1,0,0,0,5155, - 5156,1,0,0,0,5156,929,1,0,0,0,5157,5158,3,926,463,0,5158,931,1,0, - 0,0,5159,5160,7,40,0,0,5160,933,1,0,0,0,5161,5162,7,41,0,0,5162, - 935,1,0,0,0,5163,5164,3,938,469,0,5164,5165,5,0,0,1,5165,937,1,0, - 0,0,5166,5171,3,940,470,0,5167,5168,5,397,0,0,5168,5170,3,940,470, - 0,5169,5167,1,0,0,0,5170,5173,1,0,0,0,5171,5169,1,0,0,0,5171,5172, - 1,0,0,0,5172,939,1,0,0,0,5173,5171,1,0,0,0,5174,5179,3,942,471,0, - 5175,5176,5,399,0,0,5176,5177,3,944,472,0,5177,5178,5,400,0,0,5178, - 5180,1,0,0,0,5179,5175,1,0,0,0,5179,5180,1,0,0,0,5180,941,1,0,0, - 0,5181,5182,7,42,0,0,5182,943,1,0,0,0,5183,5188,3,946,473,0,5184, - 5185,5,397,0,0,5185,5187,3,946,473,0,5186,5184,1,0,0,0,5187,5190, - 1,0,0,0,5188,5186,1,0,0,0,5188,5189,1,0,0,0,5189,945,1,0,0,0,5190, - 5188,1,0,0,0,5191,5192,7,43,0,0,5192,947,1,0,0,0,5193,5194,5,249, - 0,0,5194,5195,3,926,463,0,5195,5196,5,139,0,0,5196,5197,3,394,197, - 0,5197,949,1,0,0,0,5198,5199,5,115,0,0,5199,5200,3,926,463,0,5200, - 5201,5,370,0,0,5201,5202,3,952,476,0,5202,951,1,0,0,0,5203,5208, - 3,804,402,0,5204,5205,5,397,0,0,5205,5207,3,804,402,0,5206,5204, - 1,0,0,0,5207,5210,1,0,0,0,5208,5206,1,0,0,0,5208,5209,1,0,0,0,5209, - 953,1,0,0,0,5210,5208,1,0,0,0,5211,5226,3,964,482,0,5212,5226,3, - 992,496,0,5213,5226,3,998,499,0,5214,5226,3,994,497,0,5215,5226, - 3,996,498,0,5216,5226,3,1020,510,0,5217,5226,3,1022,511,0,5218,5226, - 3,1024,512,0,5219,5226,3,1030,515,0,5220,5226,3,1032,516,0,5221, - 5226,3,1034,517,0,5222,5226,3,1036,518,0,5223,5226,3,1038,519,0, - 5224,5226,3,1040,520,0,5225,5211,1,0,0,0,5225,5212,1,0,0,0,5225, - 5213,1,0,0,0,5225,5214,1,0,0,0,5225,5215,1,0,0,0,5225,5216,1,0,0, - 0,5225,5217,1,0,0,0,5225,5218,1,0,0,0,5225,5219,1,0,0,0,5225,5220, - 1,0,0,0,5225,5221,1,0,0,0,5225,5222,1,0,0,0,5225,5223,1,0,0,0,5225, - 5224,1,0,0,0,5226,955,1,0,0,0,5227,5228,5,259,0,0,5228,5229,5,405, - 0,0,5229,5235,5,431,0,0,5230,5231,5,83,0,0,5231,5232,5,246,0,0,5232, - 5233,5,405,0,0,5233,5235,3,1000,500,0,5234,5227,1,0,0,0,5234,5230, - 1,0,0,0,5235,957,1,0,0,0,5236,5241,3,956,478,0,5237,5238,5,397,0, - 0,5238,5240,3,956,478,0,5239,5237,1,0,0,0,5240,5243,1,0,0,0,5241, - 5239,1,0,0,0,5241,5242,1,0,0,0,5242,959,1,0,0,0,5243,5241,1,0,0, - 0,5244,5248,5,259,0,0,5245,5246,5,83,0,0,5246,5248,5,246,0,0,5247, - 5244,1,0,0,0,5247,5245,1,0,0,0,5248,961,1,0,0,0,5249,5254,3,960, - 480,0,5250,5251,5,397,0,0,5251,5253,3,960,480,0,5252,5250,1,0,0, - 0,5253,5256,1,0,0,0,5254,5252,1,0,0,0,5254,5255,1,0,0,0,5255,963, - 1,0,0,0,5256,5254,1,0,0,0,5257,5258,5,58,0,0,5258,5259,5,280,0,0, - 5259,5261,5,243,0,0,5260,5262,3,44,22,0,5261,5260,1,0,0,0,5261,5262, - 1,0,0,0,5262,5272,1,0,0,0,5263,5264,3,926,463,0,5264,5265,5,184, - 0,0,5265,5266,3,926,463,0,5266,5273,1,0,0,0,5267,5270,3,926,463, - 0,5268,5269,5,387,0,0,5269,5271,3,958,479,0,5270,5268,1,0,0,0,5270, - 5271,1,0,0,0,5271,5273,1,0,0,0,5272,5263,1,0,0,0,5272,5267,1,0,0, - 0,5273,965,1,0,0,0,5274,5275,5,387,0,0,5275,5276,5,278,0,0,5276, - 967,1,0,0,0,5277,5279,5,2,0,0,5278,5280,3,966,483,0,5279,5278,1, - 0,0,0,5279,5280,1,0,0,0,5280,969,1,0,0,0,5281,5282,7,44,0,0,5282, - 971,1,0,0,0,5283,5284,7,45,0,0,5284,973,1,0,0,0,5285,5286,5,362, - 0,0,5286,975,1,0,0,0,5287,5288,7,46,0,0,5288,977,1,0,0,0,5289,5290, - 7,47,0,0,5290,979,1,0,0,0,5291,5292,7,48,0,0,5292,981,1,0,0,0,5293, - 5294,7,49,0,0,5294,983,1,0,0,0,5295,5296,7,50,0,0,5296,985,1,0,0, - 0,5297,5298,7,51,0,0,5298,987,1,0,0,0,5299,5300,7,52,0,0,5300,989, - 1,0,0,0,5301,5302,7,53,0,0,5302,991,1,0,0,0,5303,5304,5,9,0,0,5304, - 5305,5,280,0,0,5305,5306,5,243,0,0,5306,5324,3,926,463,0,5307,5325, - 5,373,0,0,5308,5325,3,972,486,0,5309,5310,5,304,0,0,5310,5325,3, - 958,479,0,5311,5312,5,363,0,0,5312,5325,3,962,481,0,5313,5314,5, - 274,0,0,5314,5315,5,341,0,0,5315,5325,3,926,463,0,5316,5318,3,968, - 484,0,5317,5319,3,970,485,0,5318,5317,1,0,0,0,5318,5319,1,0,0,0, - 5319,5325,1,0,0,0,5320,5322,3,970,485,0,5321,5323,3,968,484,0,5322, - 5321,1,0,0,0,5322,5323,1,0,0,0,5323,5325,1,0,0,0,5324,5307,1,0,0, - 0,5324,5308,1,0,0,0,5324,5309,1,0,0,0,5324,5311,1,0,0,0,5324,5313, - 1,0,0,0,5324,5316,1,0,0,0,5324,5320,1,0,0,0,5325,993,1,0,0,0,5326, - 5329,3,970,485,0,5327,5329,3,972,486,0,5328,5326,1,0,0,0,5328,5327, - 1,0,0,0,5329,5330,1,0,0,0,5330,5331,5,390,0,0,5331,5332,5,197,0, - 0,5332,995,1,0,0,0,5333,5345,5,278,0,0,5334,5335,5,3,0,0,5335,5336, - 5,280,0,0,5336,5337,5,243,0,0,5337,5338,5,387,0,0,5338,5346,3,926, - 463,0,5339,5340,5,280,0,0,5340,5341,5,243,0,0,5341,5342,3,926,463, - 0,5342,5343,5,387,0,0,5343,5344,3,926,463,0,5344,5346,1,0,0,0,5345, - 5334,1,0,0,0,5345,5339,1,0,0,0,5346,997,1,0,0,0,5347,5348,5,101, - 0,0,5348,5349,5,280,0,0,5349,5351,5,243,0,0,5350,5352,3,40,20,0, - 5351,5350,1,0,0,0,5351,5352,1,0,0,0,5352,5353,1,0,0,0,5353,5354, - 3,926,463,0,5354,999,1,0,0,0,5355,5360,3,926,463,0,5356,5357,5,395, - 0,0,5357,5359,3,926,463,0,5358,5356,1,0,0,0,5359,5362,1,0,0,0,5360, - 5358,1,0,0,0,5360,5361,1,0,0,0,5361,1001,1,0,0,0,5362,5360,1,0,0, - 0,5363,5364,3,1010,505,0,5364,1003,1,0,0,0,5365,5366,3,1002,501, - 0,5366,5367,5,0,0,1,5367,1005,1,0,0,0,5368,5373,3,1008,504,0,5369, - 5370,5,228,0,0,5370,5372,3,1008,504,0,5371,5369,1,0,0,0,5372,5375, - 1,0,0,0,5373,5371,1,0,0,0,5373,5374,1,0,0,0,5374,1007,1,0,0,0,5375, - 5373,1,0,0,0,5376,5381,3,1010,505,0,5377,5378,5,11,0,0,5378,5380, - 3,1010,505,0,5379,5377,1,0,0,0,5380,5383,1,0,0,0,5381,5379,1,0,0, - 0,5381,5382,1,0,0,0,5382,1009,1,0,0,0,5383,5381,1,0,0,0,5384,5385, - 3,926,463,0,5385,5386,3,1014,507,0,5386,5387,3,1012,506,0,5387,1011, - 1,0,0,0,5388,5389,7,24,0,0,5389,1013,1,0,0,0,5390,5391,5,411,0,0, - 5391,1015,1,0,0,0,5392,5397,5,176,0,0,5393,5394,5,211,0,0,5394,5395, - 5,341,0,0,5395,5397,3,1000,500,0,5396,5392,1,0,0,0,5396,5393,1,0, - 0,0,5397,1017,1,0,0,0,5398,5399,3,1016,508,0,5399,5400,5,0,0,1,5400, - 1019,1,0,0,0,5401,5402,5,58,0,0,5402,5403,5,348,0,0,5403,5404,3, - 926,463,0,5404,5405,5,395,0,0,5405,5406,3,926,463,0,5406,5407,5, - 383,0,0,5407,5408,3,1002,501,0,5408,5409,5,99,0,0,5409,5410,3,1016, - 508,0,5410,1021,1,0,0,0,5411,5412,5,9,0,0,5412,5413,5,348,0,0,5413, - 5414,3,926,463,0,5414,5415,5,395,0,0,5415,5432,3,926,463,0,5416, - 5417,5,383,0,0,5417,5418,3,1002,501,0,5418,5419,5,99,0,0,5419,5420, - 3,1016,508,0,5420,5433,1,0,0,0,5421,5422,5,4,0,0,5422,5426,5,341, - 0,0,5423,5424,5,101,0,0,5424,5426,5,139,0,0,5425,5421,1,0,0,0,5425, - 5423,1,0,0,0,5426,5430,1,0,0,0,5427,5428,5,246,0,0,5428,5431,3,1000, - 500,0,5429,5431,5,362,0,0,5430,5427,1,0,0,0,5430,5429,1,0,0,0,5431, - 5433,1,0,0,0,5432,5416,1,0,0,0,5432,5425,1,0,0,0,5433,1023,1,0,0, - 0,5434,5435,5,101,0,0,5435,5436,5,348,0,0,5436,5437,3,926,463,0, - 5437,5438,5,395,0,0,5438,5439,3,926,463,0,5439,1025,1,0,0,0,5440, - 5441,5,8,0,0,5441,5442,5,405,0,0,5442,5453,5,431,0,0,5443,5444,5, - 259,0,0,5444,5445,5,405,0,0,5445,5453,5,431,0,0,5446,5447,5,294, - 0,0,5447,5448,5,405,0,0,5448,5453,5,426,0,0,5449,5450,5,240,0,0, - 5450,5451,5,405,0,0,5451,5453,3,1000,500,0,5452,5440,1,0,0,0,5452, - 5443,1,0,0,0,5452,5446,1,0,0,0,5452,5449,1,0,0,0,5453,1027,1,0,0, - 0,5454,5459,3,1026,513,0,5455,5456,5,397,0,0,5456,5458,3,1026,513, - 0,5457,5455,1,0,0,0,5458,5461,1,0,0,0,5459,5457,1,0,0,0,5459,5460, - 1,0,0,0,5460,1029,1,0,0,0,5461,5459,1,0,0,0,5462,5463,5,58,0,0,5463, - 5464,5,246,0,0,5464,5465,3,926,463,0,5465,5466,5,395,0,0,5466,5467, - 3,1000,500,0,5467,5468,5,387,0,0,5468,5469,3,1028,514,0,5469,1031, - 1,0,0,0,5470,5471,5,9,0,0,5471,5472,5,246,0,0,5472,5473,3,926,463, - 0,5473,5474,5,395,0,0,5474,5482,3,1000,500,0,5475,5476,5,304,0,0, - 5476,5483,3,1028,514,0,5477,5478,5,363,0,0,5478,5483,5,294,0,0,5479, - 5480,7,54,0,0,5480,5481,5,348,0,0,5481,5483,3,926,463,0,5482,5475, - 1,0,0,0,5482,5477,1,0,0,0,5482,5479,1,0,0,0,5483,1033,1,0,0,0,5484, - 5485,5,101,0,0,5485,5486,5,246,0,0,5486,5487,3,926,463,0,5487,5488, - 5,395,0,0,5488,5489,3,1000,500,0,5489,1035,1,0,0,0,5490,5491,5,58, - 0,0,5491,5492,7,55,0,0,5492,5493,5,200,0,0,5493,5494,5,426,0,0,5494, - 5495,5,154,0,0,5495,5499,3,926,463,0,5496,5497,5,341,0,0,5497,5500, - 3,1000,500,0,5498,5500,3,974,487,0,5499,5496,1,0,0,0,5499,5498,1, - 0,0,0,5500,5504,1,0,0,0,5501,5502,5,387,0,0,5502,5503,5,229,0,0, - 5503,5505,5,431,0,0,5504,5501,1,0,0,0,5504,5505,1,0,0,0,5505,1037, - 1,0,0,0,5506,5507,5,9,0,0,5507,5508,7,55,0,0,5508,5509,5,200,0,0, - 5509,5510,5,426,0,0,5510,5511,5,154,0,0,5511,5515,3,926,463,0,5512, - 5513,5,341,0,0,5513,5516,3,1000,500,0,5514,5516,3,974,487,0,5515, - 5512,1,0,0,0,5515,5514,1,0,0,0,5516,5520,1,0,0,0,5517,5518,5,387, - 0,0,5518,5519,5,229,0,0,5519,5521,5,431,0,0,5520,5517,1,0,0,0,5520, - 5521,1,0,0,0,5521,1039,1,0,0,0,5522,5523,5,101,0,0,5523,5524,7,55, - 0,0,5524,5525,5,200,0,0,5525,5526,5,426,0,0,5526,5527,5,154,0,0, - 5527,5528,3,926,463,0,5528,1041,1,0,0,0,651,1045,1052,1055,1061, + 3763,1,0,0,0,3764,3765,1,0,0,0,3765,3767,1,0,0,0,3766,3768,3,220, + 110,0,3767,3766,1,0,0,0,3767,3768,1,0,0,0,3768,3771,1,0,0,0,3769, + 3770,5,17,0,0,3770,3772,3,414,207,0,3771,3769,1,0,0,0,3771,3772, + 1,0,0,0,3772,3774,1,0,0,0,3773,3717,1,0,0,0,3773,3740,1,0,0,0,3774, + 3838,1,0,0,0,3775,3776,5,58,0,0,3776,3777,5,195,0,0,3777,3779,5, + 329,0,0,3778,3780,3,44,22,0,3779,3778,1,0,0,0,3779,3780,1,0,0,0, + 3780,3781,1,0,0,0,3781,3835,3,662,331,0,3782,3784,3,596,298,0,3783, + 3785,3,250,125,0,3784,3783,1,0,0,0,3784,3785,1,0,0,0,3785,3787,1, + 0,0,0,3786,3788,3,272,136,0,3787,3786,1,0,0,0,3787,3788,1,0,0,0, + 3788,3790,1,0,0,0,3789,3791,3,274,137,0,3790,3789,1,0,0,0,3790,3791, + 1,0,0,0,3791,3793,1,0,0,0,3792,3794,3,252,126,0,3793,3792,1,0,0, + 0,3793,3794,1,0,0,0,3794,3796,1,0,0,0,3795,3797,3,220,110,0,3796, + 3795,1,0,0,0,3796,3797,1,0,0,0,3797,3836,1,0,0,0,3798,3799,5,399, + 0,0,3799,3800,3,278,139,0,3800,3801,5,400,0,0,3801,3803,1,0,0,0, + 3802,3798,1,0,0,0,3802,3803,1,0,0,0,3803,3805,1,0,0,0,3804,3806, + 3,218,109,0,3805,3804,1,0,0,0,3805,3806,1,0,0,0,3806,3808,1,0,0, + 0,3807,3809,3,222,111,0,3808,3807,1,0,0,0,3808,3809,1,0,0,0,3809, + 3811,1,0,0,0,3810,3812,3,234,117,0,3811,3810,1,0,0,0,3811,3812,1, + 0,0,0,3812,3814,1,0,0,0,3813,3815,3,238,119,0,3814,3813,1,0,0,0, + 3814,3815,1,0,0,0,3815,3817,1,0,0,0,3816,3818,3,250,125,0,3817,3816, + 1,0,0,0,3817,3818,1,0,0,0,3818,3820,1,0,0,0,3819,3821,3,272,136, + 0,3820,3819,1,0,0,0,3820,3821,1,0,0,0,3821,3823,1,0,0,0,3822,3824, + 3,274,137,0,3823,3822,1,0,0,0,3823,3824,1,0,0,0,3824,3826,1,0,0, + 0,3825,3827,3,252,126,0,3826,3825,1,0,0,0,3826,3827,1,0,0,0,3827, + 3829,1,0,0,0,3828,3830,3,220,110,0,3829,3828,1,0,0,0,3829,3830,1, + 0,0,0,3830,3833,1,0,0,0,3831,3832,5,17,0,0,3832,3834,3,414,207,0, + 3833,3831,1,0,0,0,3833,3834,1,0,0,0,3834,3836,1,0,0,0,3835,3782, + 1,0,0,0,3835,3802,1,0,0,0,3836,3838,1,0,0,0,3837,3702,1,0,0,0,3837, + 3775,1,0,0,0,3838,599,1,0,0,0,3839,3840,5,58,0,0,3840,3842,5,69, + 0,0,3841,3843,3,44,22,0,3842,3841,1,0,0,0,3842,3843,1,0,0,0,3843, + 3844,1,0,0,0,3844,3846,3,926,463,0,3845,3847,3,606,303,0,3846,3845, + 1,0,0,0,3846,3847,1,0,0,0,3847,3849,1,0,0,0,3848,3850,3,604,302, + 0,3849,3848,1,0,0,0,3849,3850,1,0,0,0,3850,3852,1,0,0,0,3851,3853, + 3,602,301,0,3852,3851,1,0,0,0,3852,3853,1,0,0,0,3853,3857,1,0,0, + 0,3854,3855,5,387,0,0,3855,3856,5,77,0,0,3856,3858,3,608,304,0,3857, + 3854,1,0,0,0,3857,3858,1,0,0,0,3858,601,1,0,0,0,3859,3860,5,47,0, + 0,3860,3861,5,426,0,0,3861,603,1,0,0,0,3862,3863,5,367,0,0,3863, + 3864,5,426,0,0,3864,605,1,0,0,0,3865,3866,5,352,0,0,3866,3867,5, + 426,0,0,3867,607,1,0,0,0,3868,3869,5,399,0,0,3869,3870,3,64,32,0, + 3870,3871,5,400,0,0,3871,609,1,0,0,0,3872,3873,5,101,0,0,3873,3875, + 5,69,0,0,3874,3876,3,40,20,0,3875,3874,1,0,0,0,3875,3876,1,0,0,0, + 3876,3877,1,0,0,0,3877,3878,3,926,463,0,3878,611,1,0,0,0,3879,3880, + 3,926,463,0,3880,3881,5,395,0,0,3881,3883,1,0,0,0,3882,3879,1,0, + 0,0,3883,3886,1,0,0,0,3884,3882,1,0,0,0,3884,3885,1,0,0,0,3885,3887, + 1,0,0,0,3886,3884,1,0,0,0,3887,3888,5,415,0,0,3888,613,1,0,0,0,3889, + 3890,5,83,0,0,3890,615,1,0,0,0,3891,3896,3,828,414,0,3892,3893,5, + 397,0,0,3893,3895,3,828,414,0,3894,3892,1,0,0,0,3895,3898,1,0,0, + 0,3896,3894,1,0,0,0,3896,3897,1,0,0,0,3897,617,1,0,0,0,3898,3896, + 1,0,0,0,3899,3904,3,926,463,0,3900,3901,5,397,0,0,3901,3903,3,926, + 463,0,3902,3900,1,0,0,0,3903,3906,1,0,0,0,3904,3902,1,0,0,0,3904, + 3905,1,0,0,0,3905,619,1,0,0,0,3906,3904,1,0,0,0,3907,3908,5,139, + 0,0,3908,3909,3,622,311,0,3909,621,1,0,0,0,3910,3911,3,634,317,0, + 3911,3914,3,630,315,0,3912,3913,5,397,0,0,3913,3915,3,630,315,0, + 3914,3912,1,0,0,0,3915,3916,1,0,0,0,3916,3914,1,0,0,0,3916,3917, + 1,0,0,0,3917,3920,1,0,0,0,3918,3920,3,626,313,0,3919,3910,1,0,0, + 0,3919,3918,1,0,0,0,3920,623,1,0,0,0,3921,3925,3,648,324,0,3922, + 3924,3,638,319,0,3923,3922,1,0,0,0,3924,3927,1,0,0,0,3925,3923,1, + 0,0,0,3925,3926,1,0,0,0,3926,3954,1,0,0,0,3927,3925,1,0,0,0,3928, + 3932,3,690,345,0,3929,3931,3,638,319,0,3930,3929,1,0,0,0,3931,3934, + 1,0,0,0,3932,3930,1,0,0,0,3932,3933,1,0,0,0,3933,3954,1,0,0,0,3934, + 3932,1,0,0,0,3935,3939,3,668,334,0,3936,3938,3,638,319,0,3937,3936, + 1,0,0,0,3938,3941,1,0,0,0,3939,3937,1,0,0,0,3939,3940,1,0,0,0,3940, + 3954,1,0,0,0,3941,3939,1,0,0,0,3942,3946,3,674,337,0,3943,3945,3, + 638,319,0,3944,3943,1,0,0,0,3945,3948,1,0,0,0,3946,3944,1,0,0,0, + 3946,3947,1,0,0,0,3947,3954,1,0,0,0,3948,3946,1,0,0,0,3949,3950, + 5,399,0,0,3950,3951,3,626,313,0,3951,3952,5,400,0,0,3952,3954,1, + 0,0,0,3953,3921,1,0,0,0,3953,3928,1,0,0,0,3953,3935,1,0,0,0,3953, + 3942,1,0,0,0,3953,3949,1,0,0,0,3954,625,1,0,0,0,3955,3966,3,624, + 312,0,3956,3957,3,636,318,0,3957,3962,3,628,314,0,3958,3959,5,224, + 0,0,3959,3963,3,828,414,0,3960,3961,5,370,0,0,3961,3963,3,292,146, + 0,3962,3958,1,0,0,0,3962,3960,1,0,0,0,3962,3963,1,0,0,0,3963,3965, + 1,0,0,0,3964,3956,1,0,0,0,3965,3968,1,0,0,0,3966,3964,1,0,0,0,3966, + 3967,1,0,0,0,3967,627,1,0,0,0,3968,3966,1,0,0,0,3969,3974,3,648, + 324,0,3970,3974,3,690,345,0,3971,3974,3,668,334,0,3972,3974,3,674, + 337,0,3973,3969,1,0,0,0,3973,3970,1,0,0,0,3973,3971,1,0,0,0,3973, + 3972,1,0,0,0,3974,3978,1,0,0,0,3975,3977,3,638,319,0,3976,3975,1, + 0,0,0,3977,3980,1,0,0,0,3978,3976,1,0,0,0,3978,3979,1,0,0,0,3979, + 629,1,0,0,0,3980,3978,1,0,0,0,3981,3983,5,250,0,0,3982,3981,1,0, + 0,0,3982,3983,1,0,0,0,3983,3984,1,0,0,0,3984,3985,3,652,326,0,3985, + 3986,3,632,316,0,3986,631,1,0,0,0,3987,3988,5,399,0,0,3988,3989, + 3,616,308,0,3989,3990,5,400,0,0,3990,633,1,0,0,0,3991,3992,5,359, + 0,0,3992,635,1,0,0,0,3993,4008,5,397,0,0,3994,4005,5,157,0,0,3995, + 4005,5,60,0,0,3996,3998,7,25,0,0,3997,3999,5,231,0,0,3998,3997,1, + 0,0,0,3998,3999,1,0,0,0,3999,4005,1,0,0,0,4000,4002,5,180,0,0,4001, + 4003,7,26,0,0,4002,4001,1,0,0,0,4002,4003,1,0,0,0,4003,4005,1,0, + 0,0,4004,3994,1,0,0,0,4004,3995,1,0,0,0,4004,3996,1,0,0,0,4004,4000, + 1,0,0,0,4004,4005,1,0,0,0,4005,4006,1,0,0,0,4006,4008,5,171,0,0, + 4007,3993,1,0,0,0,4007,4004,1,0,0,0,4008,637,1,0,0,0,4009,4010,5, + 178,0,0,4010,4011,5,378,0,0,4011,4012,5,231,0,0,4012,4013,3,776, + 388,0,4013,4023,3,640,320,0,4014,4015,5,17,0,0,4015,4020,3,926,463, + 0,4016,4017,5,397,0,0,4017,4019,3,926,463,0,4018,4016,1,0,0,0,4019, + 4022,1,0,0,0,4020,4018,1,0,0,0,4020,4021,1,0,0,0,4021,4024,1,0,0, + 0,4022,4020,1,0,0,0,4023,4014,1,0,0,0,4023,4024,1,0,0,0,4024,4067, + 1,0,0,0,4025,4027,5,397,0,0,4026,4025,1,0,0,0,4026,4027,1,0,0,0, + 4027,4028,1,0,0,0,4028,4064,5,178,0,0,4029,4030,5,378,0,0,4030,4031, + 3,776,388,0,4031,4041,3,640,320,0,4032,4033,5,17,0,0,4033,4038,3, + 926,463,0,4034,4035,5,397,0,0,4035,4037,3,926,463,0,4036,4034,1, + 0,0,0,4037,4040,1,0,0,0,4038,4036,1,0,0,0,4038,4039,1,0,0,0,4039, + 4042,1,0,0,0,4040,4038,1,0,0,0,4041,4032,1,0,0,0,4041,4042,1,0,0, + 0,4042,4065,1,0,0,0,4043,4044,5,329,0,0,4044,4045,5,399,0,0,4045, + 4046,3,682,341,0,4046,4048,5,400,0,0,4047,4049,5,17,0,0,4048,4047, + 1,0,0,0,4048,4049,1,0,0,0,4049,4050,1,0,0,0,4050,4062,3,640,320, + 0,4051,4052,5,399,0,0,4052,4057,3,926,463,0,4053,4054,5,397,0,0, + 4054,4056,3,926,463,0,4055,4053,1,0,0,0,4056,4059,1,0,0,0,4057,4055, + 1,0,0,0,4057,4058,1,0,0,0,4058,4060,1,0,0,0,4059,4057,1,0,0,0,4060, + 4061,5,400,0,0,4061,4063,1,0,0,0,4062,4051,1,0,0,0,4062,4063,1,0, + 0,0,4063,4065,1,0,0,0,4064,4029,1,0,0,0,4064,4043,1,0,0,0,4065,4067, + 1,0,0,0,4066,4009,1,0,0,0,4066,4026,1,0,0,0,4067,639,1,0,0,0,4068, + 4069,3,926,463,0,4069,641,1,0,0,0,4070,4071,5,331,0,0,4071,4072, + 5,399,0,0,4072,4073,5,30,0,0,4073,4074,5,431,0,0,4074,4075,5,230, + 0,0,4075,4076,5,221,0,0,4076,4086,5,431,0,0,4077,4078,5,224,0,0, + 4078,4083,3,828,414,0,4079,4080,5,397,0,0,4080,4082,3,828,414,0, + 4081,4079,1,0,0,0,4082,4085,1,0,0,0,4083,4081,1,0,0,0,4083,4084, + 1,0,0,0,4084,4087,1,0,0,0,4085,4083,1,0,0,0,4086,4077,1,0,0,0,4086, + 4087,1,0,0,0,4087,4088,1,0,0,0,4088,4089,5,400,0,0,4089,643,1,0, + 0,0,4090,4091,5,331,0,0,4091,4095,5,399,0,0,4092,4093,5,431,0,0, + 4093,4096,7,27,0,0,4094,4096,5,430,0,0,4095,4092,1,0,0,0,4095,4094, + 1,0,0,0,4096,4097,1,0,0,0,4097,4098,5,400,0,0,4098,645,1,0,0,0,4099, + 4102,3,642,321,0,4100,4102,3,644,322,0,4101,4099,1,0,0,0,4101,4100, + 1,0,0,0,4102,647,1,0,0,0,4103,4105,3,658,329,0,4104,4106,3,254,127, + 0,4105,4104,1,0,0,0,4105,4106,1,0,0,0,4106,4108,1,0,0,0,4107,4109, + 3,646,323,0,4108,4107,1,0,0,0,4108,4109,1,0,0,0,4109,4111,1,0,0, + 0,4110,4112,3,650,325,0,4111,4110,1,0,0,0,4111,4112,1,0,0,0,4112, + 4117,1,0,0,0,4113,4115,5,17,0,0,4114,4113,1,0,0,0,4114,4115,1,0, + 0,0,4115,4116,1,0,0,0,4116,4118,3,926,463,0,4117,4114,1,0,0,0,4117, + 4118,1,0,0,0,4118,649,1,0,0,0,4119,4129,5,134,0,0,4120,4121,5,327, + 0,0,4121,4122,5,17,0,0,4122,4123,5,221,0,0,4123,4130,3,828,414,0, + 4124,4125,5,134,0,0,4125,4126,5,328,0,0,4126,4127,5,17,0,0,4127, + 4128,5,221,0,0,4128,4130,5,431,0,0,4129,4120,1,0,0,0,4129,4124,1, + 0,0,0,4130,651,1,0,0,0,4131,4133,3,658,329,0,4132,4134,3,646,323, + 0,4133,4132,1,0,0,0,4133,4134,1,0,0,0,4134,4139,1,0,0,0,4135,4137, + 5,17,0,0,4136,4135,1,0,0,0,4136,4137,1,0,0,0,4137,4138,1,0,0,0,4138, + 4140,3,926,463,0,4139,4136,1,0,0,0,4139,4140,1,0,0,0,4140,653,1, + 0,0,0,4141,4142,3,926,463,0,4142,655,1,0,0,0,4143,4144,3,926,463, + 0,4144,657,1,0,0,0,4145,4148,3,660,330,0,4146,4148,3,664,332,0,4147, + 4145,1,0,0,0,4147,4146,1,0,0,0,4148,659,1,0,0,0,4149,4150,3,926, + 463,0,4150,4151,5,395,0,0,4151,4154,3,926,463,0,4152,4153,5,395, + 0,0,4153,4155,3,926,463,0,4154,4152,1,0,0,0,4154,4155,1,0,0,0,4155, + 4158,1,0,0,0,4156,4158,3,926,463,0,4157,4149,1,0,0,0,4157,4156,1, + 0,0,0,4158,661,1,0,0,0,4159,4160,3,926,463,0,4160,4161,5,395,0,0, + 4161,4164,3,926,463,0,4162,4163,5,395,0,0,4163,4165,3,926,463,0, + 4164,4162,1,0,0,0,4164,4165,1,0,0,0,4165,4168,1,0,0,0,4166,4168, + 3,926,463,0,4167,4159,1,0,0,0,4167,4166,1,0,0,0,4168,663,1,0,0,0, + 4169,4170,3,926,463,0,4170,4171,5,395,0,0,4171,4173,1,0,0,0,4172, + 4169,1,0,0,0,4172,4173,1,0,0,0,4173,4174,1,0,0,0,4174,4175,3,926, + 463,0,4175,665,1,0,0,0,4176,4177,3,926,463,0,4177,4178,5,395,0,0, + 4178,4180,1,0,0,0,4179,4176,1,0,0,0,4179,4180,1,0,0,0,4180,4181, + 1,0,0,0,4181,4182,3,926,463,0,4182,667,1,0,0,0,4183,4184,5,399,0, + 0,4184,4185,3,394,197,0,4185,4187,5,400,0,0,4186,4188,5,17,0,0,4187, + 4186,1,0,0,0,4187,4188,1,0,0,0,4188,4189,1,0,0,0,4189,4190,3,926, + 463,0,4190,669,1,0,0,0,4191,4193,3,768,384,0,4192,4194,3,764,382, + 0,4193,4192,1,0,0,0,4193,4194,1,0,0,0,4194,4203,1,0,0,0,4195,4203, + 3,764,382,0,4196,4198,3,770,385,0,4197,4199,3,772,386,0,4198,4197, + 1,0,0,0,4198,4199,1,0,0,0,4199,4203,1,0,0,0,4200,4203,3,772,386, + 0,4201,4203,3,766,383,0,4202,4191,1,0,0,0,4202,4195,1,0,0,0,4202, + 4196,1,0,0,0,4202,4200,1,0,0,0,4202,4201,1,0,0,0,4203,671,1,0,0, + 0,4204,4208,3,668,334,0,4205,4208,3,648,324,0,4206,4208,3,674,337, + 0,4207,4204,1,0,0,0,4207,4205,1,0,0,0,4207,4206,1,0,0,0,4208,673, + 1,0,0,0,4209,4210,3,926,463,0,4210,4211,5,399,0,0,4211,4212,5,224, + 0,0,4212,4214,3,672,336,0,4213,4215,3,670,335,0,4214,4213,1,0,0, + 0,4214,4215,1,0,0,0,4215,4231,1,0,0,0,4216,4217,5,432,0,0,4217,4218, + 5,399,0,0,4218,4219,3,828,414,0,4219,4228,5,400,0,0,4220,4221,5, + 397,0,0,4221,4222,5,432,0,0,4222,4223,5,399,0,0,4223,4224,3,828, + 414,0,4224,4225,5,400,0,0,4225,4227,1,0,0,0,4226,4220,1,0,0,0,4227, + 4230,1,0,0,0,4228,4226,1,0,0,0,4228,4229,1,0,0,0,4229,4232,1,0,0, + 0,4230,4228,1,0,0,0,4231,4216,1,0,0,0,4231,4232,1,0,0,0,4232,4233, + 1,0,0,0,4233,4235,5,400,0,0,4234,4236,3,926,463,0,4235,4234,1,0, + 0,0,4235,4236,1,0,0,0,4236,675,1,0,0,0,4237,4238,5,384,0,0,4238, + 4239,3,678,339,0,4239,677,1,0,0,0,4240,4241,3,828,414,0,4241,679, + 1,0,0,0,4242,4243,3,682,341,0,4243,681,1,0,0,0,4244,4245,5,374,0, + 0,4245,4246,3,684,342,0,4246,683,1,0,0,0,4247,4252,3,686,343,0,4248, + 4249,5,397,0,0,4249,4251,3,686,343,0,4250,4248,1,0,0,0,4251,4254, + 1,0,0,0,4252,4250,1,0,0,0,4252,4253,1,0,0,0,4253,4264,1,0,0,0,4254, + 4252,1,0,0,0,4255,4260,3,688,344,0,4256,4257,5,397,0,0,4257,4259, + 3,686,343,0,4258,4256,1,0,0,0,4259,4262,1,0,0,0,4260,4258,1,0,0, + 0,4260,4261,1,0,0,0,4261,4264,1,0,0,0,4262,4260,1,0,0,0,4263,4247, + 1,0,0,0,4263,4255,1,0,0,0,4264,685,1,0,0,0,4265,4266,3,746,373,0, + 4266,687,1,0,0,0,4267,4268,5,399,0,0,4268,4269,3,754,377,0,4269, + 4270,5,400,0,0,4270,689,1,0,0,0,4271,4272,5,329,0,0,4272,4273,5, + 399,0,0,4273,4274,3,682,341,0,4274,4276,5,400,0,0,4275,4277,5,17, + 0,0,4276,4275,1,0,0,0,4276,4277,1,0,0,0,4277,4278,1,0,0,0,4278,4288, + 3,640,320,0,4279,4280,5,399,0,0,4280,4285,3,926,463,0,4281,4282, + 5,397,0,0,4282,4284,3,926,463,0,4283,4281,1,0,0,0,4284,4287,1,0, + 0,0,4285,4283,1,0,0,0,4285,4286,1,0,0,0,4286,4289,1,0,0,0,4287,4285, + 1,0,0,0,4288,4279,1,0,0,0,4288,4289,1,0,0,0,4289,4290,1,0,0,0,4290, + 4291,5,400,0,0,4291,691,1,0,0,0,4292,4294,5,299,0,0,4293,4295,5, + 436,0,0,4294,4293,1,0,0,0,4294,4295,1,0,0,0,4295,4302,1,0,0,0,4296, + 4298,3,694,347,0,4297,4296,1,0,0,0,4297,4298,1,0,0,0,4298,4299,1, + 0,0,0,4299,4303,3,696,348,0,4300,4301,5,347,0,0,4301,4303,3,698, + 349,0,4302,4297,1,0,0,0,4302,4300,1,0,0,0,4303,4306,1,0,0,0,4304, + 4306,3,702,351,0,4305,4292,1,0,0,0,4305,4304,1,0,0,0,4306,693,1, + 0,0,0,4307,4308,7,20,0,0,4308,695,1,0,0,0,4309,4314,3,700,350,0, + 4310,4311,5,397,0,0,4311,4313,3,700,350,0,4312,4310,1,0,0,0,4313, + 4316,1,0,0,0,4314,4312,1,0,0,0,4314,4315,1,0,0,0,4315,697,1,0,0, + 0,4316,4314,1,0,0,0,4317,4318,5,399,0,0,4318,4319,3,706,353,0,4319, + 4320,5,400,0,0,4320,4321,3,240,120,0,4321,4322,3,244,122,0,4322, + 4323,5,370,0,0,4323,4336,5,426,0,0,4324,4334,5,17,0,0,4325,4328, + 5,399,0,0,4326,4329,3,618,309,0,4327,4329,3,276,138,0,4328,4326, + 1,0,0,0,4328,4327,1,0,0,0,4329,4330,1,0,0,0,4330,4331,5,400,0,0, + 4331,4335,1,0,0,0,4332,4335,3,618,309,0,4333,4335,3,276,138,0,4334, + 4325,1,0,0,0,4334,4332,1,0,0,0,4334,4333,1,0,0,0,4335,4337,1,0,0, + 0,4336,4324,1,0,0,0,4336,4337,1,0,0,0,4337,4338,1,0,0,0,4338,4339, + 3,240,120,0,4339,4340,3,242,121,0,4340,699,1,0,0,0,4341,4365,3,612, + 306,0,4342,4345,3,284,142,0,4343,4345,3,828,414,0,4344,4342,1,0, + 0,0,4344,4343,1,0,0,0,4345,4362,1,0,0,0,4346,4348,5,17,0,0,4347, + 4346,1,0,0,0,4347,4348,1,0,0,0,4348,4349,1,0,0,0,4349,4363,3,926, + 463,0,4350,4351,5,17,0,0,4351,4352,5,399,0,0,4352,4357,3,926,463, + 0,4353,4354,5,397,0,0,4354,4356,3,926,463,0,4355,4353,1,0,0,0,4356, + 4359,1,0,0,0,4357,4355,1,0,0,0,4357,4358,1,0,0,0,4358,4360,1,0,0, + 0,4359,4357,1,0,0,0,4360,4361,5,400,0,0,4361,4363,1,0,0,0,4362,4347, + 1,0,0,0,4362,4350,1,0,0,0,4362,4363,1,0,0,0,4363,4365,1,0,0,0,4364, + 4341,1,0,0,0,4364,4344,1,0,0,0,4365,701,1,0,0,0,4366,4367,7,28,0, + 0,4367,4368,3,706,353,0,4368,4369,3,240,120,0,4369,4370,3,244,122, + 0,4370,4371,5,370,0,0,4371,4384,5,426,0,0,4372,4382,5,17,0,0,4373, + 4376,5,399,0,0,4374,4377,3,618,309,0,4375,4377,3,276,138,0,4376, + 4374,1,0,0,0,4376,4375,1,0,0,0,4377,4378,1,0,0,0,4378,4379,5,400, + 0,0,4379,4383,1,0,0,0,4380,4383,3,618,309,0,4381,4383,3,276,138, + 0,4382,4373,1,0,0,0,4382,4380,1,0,0,0,4382,4381,1,0,0,0,4383,4385, + 1,0,0,0,4384,4372,1,0,0,0,4384,4385,1,0,0,0,4385,4386,1,0,0,0,4386, + 4387,3,240,120,0,4387,4388,3,242,121,0,4388,703,1,0,0,0,4389,4392, + 3,612,306,0,4390,4392,3,828,414,0,4391,4389,1,0,0,0,4391,4390,1, + 0,0,0,4392,705,1,0,0,0,4393,4398,3,704,352,0,4394,4395,5,397,0,0, + 4395,4397,3,704,352,0,4396,4394,1,0,0,0,4397,4400,1,0,0,0,4398,4396, + 1,0,0,0,4398,4399,1,0,0,0,4399,707,1,0,0,0,4400,4398,1,0,0,0,4401, + 4402,5,386,0,0,4402,4407,3,710,355,0,4403,4404,5,397,0,0,4404,4406, + 3,710,355,0,4405,4403,1,0,0,0,4406,4409,1,0,0,0,4407,4405,1,0,0, + 0,4407,4408,1,0,0,0,4408,709,1,0,0,0,4409,4407,1,0,0,0,4410,4411, + 3,926,463,0,4411,4412,5,17,0,0,4412,4413,3,712,356,0,4413,711,1, + 0,0,0,4414,4427,3,926,463,0,4415,4417,5,399,0,0,4416,4418,3,926, + 463,0,4417,4416,1,0,0,0,4417,4418,1,0,0,0,4418,4420,1,0,0,0,4419, + 4421,3,670,335,0,4420,4419,1,0,0,0,4420,4421,1,0,0,0,4421,4423,1, + 0,0,0,4422,4424,3,714,357,0,4423,4422,1,0,0,0,4423,4424,1,0,0,0, + 4424,4425,1,0,0,0,4425,4427,5,400,0,0,4426,4414,1,0,0,0,4426,4415, + 1,0,0,0,4427,713,1,0,0,0,4428,4431,3,716,358,0,4429,4431,3,718,359, + 0,4430,4428,1,0,0,0,4430,4429,1,0,0,0,4431,715,1,0,0,0,4432,4439, + 5,292,0,0,4433,4440,3,720,360,0,4434,4435,5,25,0,0,4435,4436,3,722, + 361,0,4436,4437,5,11,0,0,4437,4438,3,722,361,0,4438,4440,1,0,0,0, + 4439,4433,1,0,0,0,4439,4434,1,0,0,0,4440,717,1,0,0,0,4441,4448,5, + 260,0,0,4442,4449,3,720,360,0,4443,4444,5,25,0,0,4444,4445,3,722, + 361,0,4445,4446,5,11,0,0,4446,4447,3,722,361,0,4447,4449,1,0,0,0, + 4448,4442,1,0,0,0,4448,4443,1,0,0,0,4449,719,1,0,0,0,4450,4451,5, + 354,0,0,4451,4457,5,247,0,0,4452,4453,5,62,0,0,4453,4457,5,291,0, + 0,4454,4455,5,431,0,0,4455,4457,5,247,0,0,4456,4450,1,0,0,0,4456, + 4452,1,0,0,0,4456,4454,1,0,0,0,4457,721,1,0,0,0,4458,4459,7,29,0, + 0,4459,4463,7,30,0,0,4460,4461,5,62,0,0,4461,4463,5,291,0,0,4462, + 4458,1,0,0,0,4462,4460,1,0,0,0,4463,723,1,0,0,0,4464,4465,5,144, + 0,0,4465,4466,5,32,0,0,4466,4467,3,726,363,0,4467,725,1,0,0,0,4468, + 4473,3,284,142,0,4469,4473,3,730,365,0,4470,4473,3,732,366,0,4471, + 4473,3,728,364,0,4472,4468,1,0,0,0,4472,4469,1,0,0,0,4472,4470,1, + 0,0,0,4472,4471,1,0,0,0,4473,727,1,0,0,0,4474,4475,5,399,0,0,4475, + 4476,5,400,0,0,4476,729,1,0,0,0,4477,4480,5,290,0,0,4478,4480,5, + 61,0,0,4479,4477,1,0,0,0,4479,4478,1,0,0,0,4480,4481,1,0,0,0,4481, + 4482,5,399,0,0,4482,4487,3,828,414,0,4483,4484,5,397,0,0,4484,4486, + 3,828,414,0,4485,4483,1,0,0,0,4486,4489,1,0,0,0,4487,4485,1,0,0, + 0,4487,4488,1,0,0,0,4488,4490,1,0,0,0,4489,4487,1,0,0,0,4490,4491, + 5,400,0,0,4491,731,1,0,0,0,4492,4497,3,748,374,0,4493,4494,5,387, + 0,0,4494,4498,5,290,0,0,4495,4496,5,387,0,0,4496,4498,5,61,0,0,4497, + 4493,1,0,0,0,4497,4495,1,0,0,0,4497,4498,1,0,0,0,4498,4512,1,0,0, + 0,4499,4500,5,145,0,0,4500,4501,5,305,0,0,4501,4502,5,399,0,0,4502, + 4507,3,734,367,0,4503,4504,5,397,0,0,4504,4506,3,734,367,0,4505, + 4503,1,0,0,0,4506,4509,1,0,0,0,4507,4505,1,0,0,0,4507,4508,1,0,0, + 0,4508,4510,1,0,0,0,4509,4507,1,0,0,0,4510,4511,5,400,0,0,4511,4513, + 1,0,0,0,4512,4499,1,0,0,0,4512,4513,1,0,0,0,4513,733,1,0,0,0,4514, + 4517,3,736,368,0,4515,4517,3,738,369,0,4516,4514,1,0,0,0,4516,4515, + 1,0,0,0,4517,735,1,0,0,0,4518,4520,5,399,0,0,4519,4521,3,828,414, + 0,4520,4519,1,0,0,0,4520,4521,1,0,0,0,4521,4526,1,0,0,0,4522,4523, + 5,397,0,0,4523,4525,3,828,414,0,4524,4522,1,0,0,0,4525,4528,1,0, + 0,0,4526,4524,1,0,0,0,4526,4527,1,0,0,0,4527,4529,1,0,0,0,4528,4526, + 1,0,0,0,4529,4530,5,400,0,0,4530,737,1,0,0,0,4531,4532,3,828,414, + 0,4532,739,1,0,0,0,4533,4534,5,146,0,0,4534,4535,3,744,372,0,4535, + 741,1,0,0,0,4536,4537,5,256,0,0,4537,4538,3,828,414,0,4538,743,1, + 0,0,0,4539,4540,3,828,414,0,4540,745,1,0,0,0,4541,4542,5,399,0,0, + 4542,4543,3,748,374,0,4543,4544,5,400,0,0,4544,747,1,0,0,0,4545, + 4547,3,752,376,0,4546,4548,3,750,375,0,4547,4546,1,0,0,0,4547,4548, + 1,0,0,0,4548,749,1,0,0,0,4549,4550,5,397,0,0,4550,4552,3,752,376, + 0,4551,4549,1,0,0,0,4552,4553,1,0,0,0,4553,4551,1,0,0,0,4553,4554, + 1,0,0,0,4554,751,1,0,0,0,4555,4558,3,614,307,0,4556,4558,3,828,414, + 0,4557,4555,1,0,0,0,4557,4556,1,0,0,0,4558,753,1,0,0,0,4559,4561, + 3,828,414,0,4560,4562,5,17,0,0,4561,4560,1,0,0,0,4561,4562,1,0,0, + 0,4562,4564,1,0,0,0,4563,4565,3,926,463,0,4564,4563,1,0,0,0,4564, + 4565,1,0,0,0,4565,4570,1,0,0,0,4566,4567,5,397,0,0,4567,4569,3,756, + 378,0,4568,4566,1,0,0,0,4569,4572,1,0,0,0,4570,4568,1,0,0,0,4570, + 4571,1,0,0,0,4571,755,1,0,0,0,4572,4570,1,0,0,0,4573,4575,3,828, + 414,0,4574,4576,5,17,0,0,4575,4574,1,0,0,0,4575,4576,1,0,0,0,4576, + 4578,1,0,0,0,4577,4579,3,926,463,0,4578,4577,1,0,0,0,4578,4579,1, + 0,0,0,4579,757,1,0,0,0,4580,4583,3,746,373,0,4581,4583,3,748,374, + 0,4582,4580,1,0,0,0,4582,4581,1,0,0,0,4583,759,1,0,0,0,4584,4585, + 5,399,0,0,4585,4590,3,342,171,0,4586,4587,5,397,0,0,4587,4589,3, + 342,171,0,4588,4586,1,0,0,0,4589,4592,1,0,0,0,4590,4588,1,0,0,0, + 4590,4591,1,0,0,0,4591,4593,1,0,0,0,4592,4590,1,0,0,0,4593,4594, + 5,400,0,0,4594,761,1,0,0,0,4595,4600,3,342,171,0,4596,4597,5,397, + 0,0,4597,4599,3,342,171,0,4598,4596,1,0,0,0,4599,4602,1,0,0,0,4600, + 4598,1,0,0,0,4600,4601,1,0,0,0,4601,763,1,0,0,0,4602,4600,1,0,0, + 0,4603,4604,5,229,0,0,4604,4605,5,32,0,0,4605,4610,3,342,171,0,4606, + 4607,5,397,0,0,4607,4609,3,342,171,0,4608,4606,1,0,0,0,4609,4612, + 1,0,0,0,4610,4608,1,0,0,0,4610,4611,1,0,0,0,4611,765,1,0,0,0,4612, + 4610,1,0,0,0,4613,4614,5,41,0,0,4614,4615,5,32,0,0,4615,4616,3,758, + 379,0,4616,767,1,0,0,0,4617,4618,5,237,0,0,4618,4619,5,32,0,0,4619, + 4620,3,758,379,0,4620,769,1,0,0,0,4621,4622,5,97,0,0,4622,4623,5, + 32,0,0,4623,4624,3,758,379,0,4624,771,1,0,0,0,4625,4626,5,314,0, + 0,4626,4629,5,32,0,0,4627,4630,3,760,380,0,4628,4630,3,762,381,0, + 4629,4627,1,0,0,0,4629,4628,1,0,0,0,4630,773,1,0,0,0,4631,4632,5, + 349,0,0,4632,4636,5,399,0,0,4633,4637,5,179,0,0,4634,4637,5,343, + 0,0,4635,4637,5,29,0,0,4636,4633,1,0,0,0,4636,4634,1,0,0,0,4636, + 4635,1,0,0,0,4636,4637,1,0,0,0,4637,4639,1,0,0,0,4638,4640,3,704, + 352,0,4639,4638,1,0,0,0,4639,4640,1,0,0,0,4640,4641,1,0,0,0,4641, + 4642,5,139,0,0,4642,4643,3,704,352,0,4643,4644,5,400,0,0,4644,775, + 1,0,0,0,4645,4686,3,774,387,0,4646,4647,3,784,392,0,4647,4662,5, + 399,0,0,4648,4663,5,415,0,0,4649,4651,3,694,347,0,4650,4649,1,0, + 0,0,4650,4651,1,0,0,0,4651,4660,1,0,0,0,4652,4657,3,704,352,0,4653, + 4654,5,397,0,0,4654,4656,3,704,352,0,4655,4653,1,0,0,0,4656,4659, + 1,0,0,0,4657,4655,1,0,0,0,4657,4658,1,0,0,0,4658,4661,1,0,0,0,4659, + 4657,1,0,0,0,4660,4652,1,0,0,0,4660,4661,1,0,0,0,4661,4663,1,0,0, + 0,4662,4648,1,0,0,0,4662,4650,1,0,0,0,4663,4683,1,0,0,0,4664,4665, + 5,400,0,0,4665,4666,5,388,0,0,4666,4667,5,144,0,0,4667,4668,5,399, + 0,0,4668,4669,3,764,382,0,4669,4670,5,400,0,0,4670,4684,1,0,0,0, + 4671,4673,5,400,0,0,4672,4674,3,778,389,0,4673,4672,1,0,0,0,4673, + 4674,1,0,0,0,4674,4675,1,0,0,0,4675,4676,5,234,0,0,4676,4684,3,712, + 356,0,4677,4678,3,778,389,0,4678,4679,5,400,0,0,4679,4680,5,234, + 0,0,4680,4681,3,712,356,0,4681,4684,1,0,0,0,4682,4684,5,400,0,0, + 4683,4664,1,0,0,0,4683,4671,1,0,0,0,4683,4677,1,0,0,0,4683,4682, + 1,0,0,0,4684,4686,1,0,0,0,4685,4645,1,0,0,0,4685,4646,1,0,0,0,4686, + 777,1,0,0,0,4687,4688,5,281,0,0,4688,4692,5,220,0,0,4689,4690,5, + 152,0,0,4690,4692,5,220,0,0,4691,4687,1,0,0,0,4691,4689,1,0,0,0, + 4692,779,1,0,0,0,4693,4694,3,928,464,0,4694,781,1,0,0,0,4695,4698, + 3,786,393,0,4696,4698,5,426,0,0,4697,4695,1,0,0,0,4697,4696,1,0, + 0,0,4698,783,1,0,0,0,4699,4702,3,786,393,0,4700,4702,3,788,394,0, + 4701,4699,1,0,0,0,4701,4700,1,0,0,0,4702,785,1,0,0,0,4703,4704,3, + 928,464,0,4704,787,1,0,0,0,4705,4708,3,934,467,0,4706,4708,3,924, + 462,0,4707,4705,1,0,0,0,4707,4706,1,0,0,0,4708,789,1,0,0,0,4709, + 4710,5,36,0,0,4710,4711,5,399,0,0,4711,4712,3,828,414,0,4712,4713, + 5,17,0,0,4713,4716,3,382,191,0,4714,4715,5,137,0,0,4715,4717,5,426, + 0,0,4716,4714,1,0,0,0,4716,4717,1,0,0,0,4717,4718,1,0,0,0,4718,4719, + 5,400,0,0,4719,791,1,0,0,0,4720,4721,5,35,0,0,4721,4727,3,828,414, + 0,4722,4723,5,383,0,0,4723,4724,3,828,414,0,4724,4725,5,335,0,0, + 4725,4726,3,828,414,0,4726,4728,1,0,0,0,4727,4722,1,0,0,0,4728,4729, + 1,0,0,0,4729,4727,1,0,0,0,4729,4730,1,0,0,0,4730,4733,1,0,0,0,4731, + 4732,5,105,0,0,4732,4734,3,828,414,0,4733,4731,1,0,0,0,4733,4734, + 1,0,0,0,4734,4735,1,0,0,0,4735,4736,5,108,0,0,4736,793,1,0,0,0,4737, + 4743,5,35,0,0,4738,4739,5,383,0,0,4739,4740,3,828,414,0,4740,4741, + 5,335,0,0,4741,4742,3,828,414,0,4742,4744,1,0,0,0,4743,4738,1,0, + 0,0,4744,4745,1,0,0,0,4745,4743,1,0,0,0,4745,4746,1,0,0,0,4746,4749, + 1,0,0,0,4747,4748,5,105,0,0,4748,4750,3,828,414,0,4749,4747,1,0, + 0,0,4749,4750,1,0,0,0,4750,4751,1,0,0,0,4751,4752,5,108,0,0,4752, + 795,1,0,0,0,4753,4754,5,132,0,0,4754,4755,5,399,0,0,4755,4758,3, + 828,414,0,4756,4757,5,341,0,0,4757,4759,3,798,399,0,4758,4756,1, + 0,0,0,4758,4759,1,0,0,0,4759,4760,1,0,0,0,4760,4761,5,400,0,0,4761, + 797,1,0,0,0,4762,4771,3,976,488,0,4763,4771,5,257,0,0,4764,4771, + 3,978,489,0,4765,4771,3,980,490,0,4766,4771,3,982,491,0,4767,4771, + 3,984,492,0,4768,4771,3,986,493,0,4769,4771,3,988,494,0,4770,4762, + 1,0,0,0,4770,4763,1,0,0,0,4770,4764,1,0,0,0,4770,4765,1,0,0,0,4770, + 4766,1,0,0,0,4770,4767,1,0,0,0,4770,4768,1,0,0,0,4770,4769,1,0,0, + 0,4771,799,1,0,0,0,4772,4773,5,124,0,0,4773,4774,5,399,0,0,4774, + 4775,3,802,401,0,4775,4776,5,139,0,0,4776,4777,3,828,414,0,4777, + 4778,5,400,0,0,4778,801,1,0,0,0,4779,4788,3,976,488,0,4780,4788, + 5,257,0,0,4781,4788,3,978,489,0,4782,4788,3,980,490,0,4783,4788, + 3,982,491,0,4784,4788,3,984,492,0,4785,4788,3,986,493,0,4786,4788, + 3,988,494,0,4787,4779,1,0,0,0,4787,4780,1,0,0,0,4787,4781,1,0,0, + 0,4787,4782,1,0,0,0,4787,4783,1,0,0,0,4787,4784,1,0,0,0,4787,4785, + 1,0,0,0,4787,4786,1,0,0,0,4788,803,1,0,0,0,4789,4803,3,822,411,0, + 4790,4803,5,431,0,0,4791,4803,3,814,407,0,4792,4803,3,816,408,0, + 4793,4803,3,818,409,0,4794,4803,5,426,0,0,4795,4803,3,810,405,0, + 4796,4803,5,428,0,0,4797,4803,5,429,0,0,4798,4803,3,812,406,0,4799, + 4803,3,906,453,0,4800,4803,5,219,0,0,4801,4803,3,806,403,0,4802, + 4789,1,0,0,0,4802,4790,1,0,0,0,4802,4791,1,0,0,0,4802,4792,1,0,0, + 0,4802,4793,1,0,0,0,4802,4794,1,0,0,0,4802,4795,1,0,0,0,4802,4796, + 1,0,0,0,4802,4797,1,0,0,0,4802,4798,1,0,0,0,4802,4799,1,0,0,0,4802, + 4800,1,0,0,0,4802,4801,1,0,0,0,4803,805,1,0,0,0,4804,4805,3,808, + 404,0,4805,807,1,0,0,0,4806,4807,5,424,0,0,4807,809,1,0,0,0,4808, + 4810,5,426,0,0,4809,4811,5,426,0,0,4810,4809,1,0,0,0,4811,4812,1, + 0,0,0,4812,4810,1,0,0,0,4812,4813,1,0,0,0,4813,811,1,0,0,0,4814, + 4815,5,433,0,0,4815,4816,5,427,0,0,4816,813,1,0,0,0,4817,4818,5, + 71,0,0,4818,4821,5,426,0,0,4819,4821,5,63,0,0,4820,4817,1,0,0,0, + 4820,4819,1,0,0,0,4821,815,1,0,0,0,4822,4823,5,337,0,0,4823,4826, + 5,426,0,0,4824,4826,5,64,0,0,4825,4822,1,0,0,0,4825,4824,1,0,0,0, + 4826,817,1,0,0,0,4827,4828,5,338,0,0,4828,4829,5,426,0,0,4829,819, + 1,0,0,0,4830,4831,7,24,0,0,4831,821,1,0,0,0,4832,4833,3,820,410, + 0,4833,4834,3,826,413,0,4834,823,1,0,0,0,4835,4836,5,399,0,0,4836, + 4837,3,820,410,0,4837,4838,5,400,0,0,4838,4839,3,826,413,0,4839, + 4851,1,0,0,0,4840,4846,5,165,0,0,4841,4847,3,820,410,0,4842,4843, + 5,399,0,0,4843,4844,3,828,414,0,4844,4845,5,400,0,0,4845,4847,1, + 0,0,0,4846,4841,1,0,0,0,4846,4842,1,0,0,0,4847,4848,1,0,0,0,4848, + 4849,3,826,413,0,4849,4851,1,0,0,0,4850,4835,1,0,0,0,4850,4840,1, + 0,0,0,4851,825,1,0,0,0,4852,4853,3,976,488,0,4853,4854,5,341,0,0, + 4854,4855,3,978,489,0,4855,4867,1,0,0,0,4856,4857,3,982,491,0,4857, + 4858,5,341,0,0,4858,4859,3,988,494,0,4859,4867,1,0,0,0,4860,4867, + 3,976,488,0,4861,4867,3,978,489,0,4862,4867,3,982,491,0,4863,4867, + 3,984,492,0,4864,4867,3,986,493,0,4865,4867,3,988,494,0,4866,4852, + 1,0,0,0,4866,4856,1,0,0,0,4866,4860,1,0,0,0,4866,4861,1,0,0,0,4866, + 4862,1,0,0,0,4866,4863,1,0,0,0,4866,4864,1,0,0,0,4866,4865,1,0,0, + 0,4867,827,1,0,0,0,4868,4869,3,904,452,0,4869,829,1,0,0,0,4870,4882, + 3,804,402,0,4871,4882,3,824,412,0,4872,4882,3,790,395,0,4873,4882, + 3,800,400,0,4874,4882,3,796,398,0,4875,4882,3,792,396,0,4876,4882, + 3,794,397,0,4877,4882,3,866,433,0,4878,4882,3,776,388,0,4879,4882, + 3,746,373,0,4880,4882,3,926,463,0,4881,4870,1,0,0,0,4881,4871,1, + 0,0,0,4881,4872,1,0,0,0,4881,4873,1,0,0,0,4881,4874,1,0,0,0,4881, + 4875,1,0,0,0,4881,4876,1,0,0,0,4881,4877,1,0,0,0,4881,4878,1,0,0, + 0,4881,4879,1,0,0,0,4881,4880,1,0,0,0,4882,831,1,0,0,0,4883,4892, + 3,830,415,0,4884,4885,5,401,0,0,4885,4886,3,828,414,0,4886,4887, + 5,402,0,0,4887,4891,1,0,0,0,4888,4889,5,395,0,0,4889,4891,3,926, + 463,0,4890,4884,1,0,0,0,4890,4888,1,0,0,0,4891,4894,1,0,0,0,4892, + 4890,1,0,0,0,4892,4893,1,0,0,0,4893,833,1,0,0,0,4894,4892,1,0,0, + 0,4895,4896,7,31,0,0,4896,835,1,0,0,0,4897,4899,3,834,417,0,4898, + 4897,1,0,0,0,4899,4902,1,0,0,0,4900,4898,1,0,0,0,4900,4901,1,0,0, + 0,4901,4903,1,0,0,0,4902,4900,1,0,0,0,4903,4904,3,832,416,0,4904, + 837,1,0,0,0,4905,4906,5,423,0,0,4906,839,1,0,0,0,4907,4913,3,836, + 418,0,4908,4909,3,838,419,0,4909,4910,3,836,418,0,4910,4912,1,0, + 0,0,4911,4908,1,0,0,0,4912,4915,1,0,0,0,4913,4911,1,0,0,0,4913,4914, + 1,0,0,0,4914,841,1,0,0,0,4915,4913,1,0,0,0,4916,4917,7,32,0,0,4917, + 843,1,0,0,0,4918,4924,3,840,420,0,4919,4920,3,842,421,0,4920,4921, + 3,840,420,0,4921,4923,1,0,0,0,4922,4919,1,0,0,0,4923,4926,1,0,0, + 0,4924,4922,1,0,0,0,4924,4925,1,0,0,0,4925,845,1,0,0,0,4926,4924, + 1,0,0,0,4927,4928,7,33,0,0,4928,847,1,0,0,0,4929,4935,3,844,422, + 0,4930,4931,3,846,423,0,4931,4932,3,844,422,0,4932,4934,1,0,0,0, + 4933,4930,1,0,0,0,4934,4937,1,0,0,0,4935,4933,1,0,0,0,4935,4936, + 1,0,0,0,4936,849,1,0,0,0,4937,4935,1,0,0,0,4938,4939,5,422,0,0,4939, + 851,1,0,0,0,4940,4946,3,848,424,0,4941,4942,3,850,425,0,4942,4943, + 3,848,424,0,4943,4945,1,0,0,0,4944,4941,1,0,0,0,4945,4948,1,0,0, + 0,4946,4944,1,0,0,0,4946,4947,1,0,0,0,4947,853,1,0,0,0,4948,4946, + 1,0,0,0,4949,4950,5,419,0,0,4950,855,1,0,0,0,4951,4957,3,852,426, + 0,4952,4953,3,854,427,0,4953,4954,3,852,426,0,4954,4956,1,0,0,0, + 4955,4952,1,0,0,0,4956,4959,1,0,0,0,4957,4955,1,0,0,0,4957,4958, + 1,0,0,0,4958,857,1,0,0,0,4959,4957,1,0,0,0,4960,4961,5,421,0,0,4961, + 859,1,0,0,0,4962,4968,3,856,428,0,4963,4964,3,858,429,0,4964,4965, + 3,856,428,0,4965,4967,1,0,0,0,4966,4963,1,0,0,0,4967,4970,1,0,0, + 0,4968,4966,1,0,0,0,4968,4969,1,0,0,0,4969,861,1,0,0,0,4970,4968, + 1,0,0,0,4971,4972,7,34,0,0,4972,863,1,0,0,0,4973,4979,3,862,431, + 0,4974,4979,5,408,0,0,4975,4979,5,409,0,0,4976,4979,5,410,0,0,4977, + 4979,5,411,0,0,4978,4973,1,0,0,0,4978,4974,1,0,0,0,4978,4975,1,0, + 0,0,4978,4976,1,0,0,0,4978,4977,1,0,0,0,4979,865,1,0,0,0,4980,4981, + 5,399,0,0,4981,4982,3,410,205,0,4982,4983,5,400,0,0,4983,867,1,0, + 0,0,4984,4988,3,870,435,0,4985,4986,5,117,0,0,4986,4988,3,866,433, + 0,4987,4984,1,0,0,0,4987,4985,1,0,0,0,4988,869,1,0,0,0,4989,4991, + 3,860,430,0,4990,4992,3,872,436,0,4991,4990,1,0,0,0,4991,4992,1, + 0,0,0,4992,871,1,0,0,0,4993,4994,3,864,432,0,4994,4995,3,860,430, + 0,4995,5000,1,0,0,0,4996,5000,3,874,437,0,4997,4998,5,216,0,0,4998, + 5000,3,882,441,0,4999,4993,1,0,0,0,4999,4996,1,0,0,0,4999,4997,1, + 0,0,0,5000,873,1,0,0,0,5001,5002,5,154,0,0,5002,5013,3,880,440,0, + 5003,5004,5,25,0,0,5004,5005,3,860,430,0,5005,5006,5,11,0,0,5006, + 5007,3,860,430,0,5007,5013,1,0,0,0,5008,5009,5,184,0,0,5009,5010, + 7,35,0,0,5010,5013,3,746,373,0,5011,5013,3,876,438,0,5012,5001,1, + 0,0,0,5012,5003,1,0,0,0,5012,5008,1,0,0,0,5012,5011,1,0,0,0,5013, + 875,1,0,0,0,5014,5015,3,922,461,0,5015,5016,3,878,439,0,5016,5017, + 3,866,433,0,5017,877,1,0,0,0,5018,5019,7,36,0,0,5019,879,1,0,0,0, + 5020,5023,3,866,433,0,5021,5023,3,746,373,0,5022,5020,1,0,0,0,5022, + 5021,1,0,0,0,5023,881,1,0,0,0,5024,5025,3,862,431,0,5025,5026,3, + 860,430,0,5026,5029,1,0,0,0,5027,5029,3,874,437,0,5028,5024,1,0, + 0,0,5028,5027,1,0,0,0,5029,883,1,0,0,0,5030,5031,5,167,0,0,5031, + 5032,5,96,0,0,5032,5033,5,139,0,0,5033,885,1,0,0,0,5034,5042,5,405, + 0,0,5035,5042,5,406,0,0,5036,5042,5,407,0,0,5037,5038,5,167,0,0, + 5038,5039,5,216,0,0,5039,5040,5,96,0,0,5040,5042,5,139,0,0,5041, + 5034,1,0,0,0,5041,5035,1,0,0,0,5041,5036,1,0,0,0,5041,5037,1,0,0, + 0,5042,887,1,0,0,0,5043,5052,3,868,434,0,5044,5045,3,886,443,0,5045, + 5046,3,868,434,0,5046,5051,1,0,0,0,5047,5048,3,884,442,0,5048,5049, + 3,868,434,0,5049,5051,1,0,0,0,5050,5044,1,0,0,0,5050,5047,1,0,0, + 0,5051,5054,1,0,0,0,5052,5050,1,0,0,0,5052,5053,1,0,0,0,5053,889, + 1,0,0,0,5054,5052,1,0,0,0,5055,5068,5,219,0,0,5056,5068,5,350,0, + 0,5057,5068,5,125,0,0,5058,5068,5,360,0,0,5059,5060,5,216,0,0,5060, + 5068,5,219,0,0,5061,5062,5,216,0,0,5062,5068,5,350,0,0,5063,5064, + 5,216,0,0,5064,5068,5,125,0,0,5065,5066,5,216,0,0,5066,5068,5,360, + 0,0,5067,5055,1,0,0,0,5067,5056,1,0,0,0,5067,5057,1,0,0,0,5067,5058, + 1,0,0,0,5067,5059,1,0,0,0,5067,5061,1,0,0,0,5067,5063,1,0,0,0,5067, + 5065,1,0,0,0,5068,891,1,0,0,0,5069,5072,3,888,444,0,5070,5071,5, + 167,0,0,5071,5073,3,890,445,0,5072,5070,1,0,0,0,5072,5073,1,0,0, + 0,5073,893,1,0,0,0,5074,5075,5,216,0,0,5075,895,1,0,0,0,5076,5078, + 3,894,447,0,5077,5076,1,0,0,0,5078,5081,1,0,0,0,5079,5077,1,0,0, + 0,5079,5080,1,0,0,0,5080,5082,1,0,0,0,5081,5079,1,0,0,0,5082,5083, + 3,892,446,0,5083,897,1,0,0,0,5084,5085,5,11,0,0,5085,899,1,0,0,0, + 5086,5092,3,896,448,0,5087,5088,3,898,449,0,5088,5089,3,896,448, + 0,5089,5091,1,0,0,0,5090,5087,1,0,0,0,5091,5094,1,0,0,0,5092,5090, + 1,0,0,0,5092,5093,1,0,0,0,5093,901,1,0,0,0,5094,5092,1,0,0,0,5095, + 5096,5,228,0,0,5096,903,1,0,0,0,5097,5103,3,900,450,0,5098,5099, + 3,902,451,0,5099,5100,3,900,450,0,5100,5102,1,0,0,0,5101,5098,1, + 0,0,0,5102,5105,1,0,0,0,5103,5101,1,0,0,0,5103,5104,1,0,0,0,5104, + 905,1,0,0,0,5105,5103,1,0,0,0,5106,5107,7,37,0,0,5107,907,1,0,0, + 0,5108,5109,7,37,0,0,5109,909,1,0,0,0,5110,5112,3,660,330,0,5111, + 5113,3,912,456,0,5112,5111,1,0,0,0,5112,5113,1,0,0,0,5113,911,1, + 0,0,0,5114,5115,5,237,0,0,5115,5116,5,399,0,0,5116,5121,3,914,457, + 0,5117,5118,5,397,0,0,5118,5120,3,914,457,0,5119,5117,1,0,0,0,5120, + 5123,1,0,0,0,5121,5119,1,0,0,0,5121,5122,1,0,0,0,5122,5124,1,0,0, + 0,5123,5121,1,0,0,0,5124,5125,5,400,0,0,5125,913,1,0,0,0,5126,5129, + 3,926,463,0,5127,5128,5,405,0,0,5128,5130,3,804,402,0,5129,5127, + 1,0,0,0,5129,5130,1,0,0,0,5130,915,1,0,0,0,5131,5132,5,399,0,0,5132, + 5137,3,918,459,0,5133,5134,5,397,0,0,5134,5136,3,918,459,0,5135, + 5133,1,0,0,0,5136,5139,1,0,0,0,5137,5135,1,0,0,0,5137,5138,1,0,0, + 0,5138,5140,1,0,0,0,5139,5137,1,0,0,0,5140,5141,5,400,0,0,5141,917, + 1,0,0,0,5142,5143,3,926,463,0,5143,5144,3,920,460,0,5144,5145,3, + 804,402,0,5145,919,1,0,0,0,5146,5149,5,184,0,0,5147,5149,3,922,461, + 0,5148,5146,1,0,0,0,5148,5147,1,0,0,0,5149,921,1,0,0,0,5150,5151, + 7,38,0,0,5151,923,1,0,0,0,5152,5153,7,39,0,0,5153,925,1,0,0,0,5154, + 5157,5,432,0,0,5155,5157,3,932,466,0,5156,5154,1,0,0,0,5156,5155, + 1,0,0,0,5157,927,1,0,0,0,5158,5161,3,926,463,0,5159,5160,5,395,0, + 0,5160,5162,3,926,463,0,5161,5159,1,0,0,0,5161,5162,1,0,0,0,5162, + 929,1,0,0,0,5163,5164,3,926,463,0,5164,931,1,0,0,0,5165,5166,7,40, + 0,0,5166,933,1,0,0,0,5167,5168,7,41,0,0,5168,935,1,0,0,0,5169,5170, + 3,938,469,0,5170,5171,5,0,0,1,5171,937,1,0,0,0,5172,5177,3,940,470, + 0,5173,5174,5,397,0,0,5174,5176,3,940,470,0,5175,5173,1,0,0,0,5176, + 5179,1,0,0,0,5177,5175,1,0,0,0,5177,5178,1,0,0,0,5178,939,1,0,0, + 0,5179,5177,1,0,0,0,5180,5185,3,942,471,0,5181,5182,5,399,0,0,5182, + 5183,3,944,472,0,5183,5184,5,400,0,0,5184,5186,1,0,0,0,5185,5181, + 1,0,0,0,5185,5186,1,0,0,0,5186,941,1,0,0,0,5187,5188,7,42,0,0,5188, + 943,1,0,0,0,5189,5194,3,946,473,0,5190,5191,5,397,0,0,5191,5193, + 3,946,473,0,5192,5190,1,0,0,0,5193,5196,1,0,0,0,5194,5192,1,0,0, + 0,5194,5195,1,0,0,0,5195,945,1,0,0,0,5196,5194,1,0,0,0,5197,5198, + 7,43,0,0,5198,947,1,0,0,0,5199,5200,5,249,0,0,5200,5201,3,926,463, + 0,5201,5202,5,139,0,0,5202,5203,3,394,197,0,5203,949,1,0,0,0,5204, + 5205,5,115,0,0,5205,5206,3,926,463,0,5206,5207,5,370,0,0,5207,5208, + 3,952,476,0,5208,951,1,0,0,0,5209,5214,3,804,402,0,5210,5211,5,397, + 0,0,5211,5213,3,804,402,0,5212,5210,1,0,0,0,5213,5216,1,0,0,0,5214, + 5212,1,0,0,0,5214,5215,1,0,0,0,5215,953,1,0,0,0,5216,5214,1,0,0, + 0,5217,5232,3,964,482,0,5218,5232,3,992,496,0,5219,5232,3,998,499, + 0,5220,5232,3,994,497,0,5221,5232,3,996,498,0,5222,5232,3,1020,510, + 0,5223,5232,3,1022,511,0,5224,5232,3,1024,512,0,5225,5232,3,1030, + 515,0,5226,5232,3,1032,516,0,5227,5232,3,1034,517,0,5228,5232,3, + 1036,518,0,5229,5232,3,1038,519,0,5230,5232,3,1040,520,0,5231,5217, + 1,0,0,0,5231,5218,1,0,0,0,5231,5219,1,0,0,0,5231,5220,1,0,0,0,5231, + 5221,1,0,0,0,5231,5222,1,0,0,0,5231,5223,1,0,0,0,5231,5224,1,0,0, + 0,5231,5225,1,0,0,0,5231,5226,1,0,0,0,5231,5227,1,0,0,0,5231,5228, + 1,0,0,0,5231,5229,1,0,0,0,5231,5230,1,0,0,0,5232,955,1,0,0,0,5233, + 5234,5,259,0,0,5234,5235,5,405,0,0,5235,5241,5,431,0,0,5236,5237, + 5,83,0,0,5237,5238,5,246,0,0,5238,5239,5,405,0,0,5239,5241,3,1000, + 500,0,5240,5233,1,0,0,0,5240,5236,1,0,0,0,5241,957,1,0,0,0,5242, + 5247,3,956,478,0,5243,5244,5,397,0,0,5244,5246,3,956,478,0,5245, + 5243,1,0,0,0,5246,5249,1,0,0,0,5247,5245,1,0,0,0,5247,5248,1,0,0, + 0,5248,959,1,0,0,0,5249,5247,1,0,0,0,5250,5254,5,259,0,0,5251,5252, + 5,83,0,0,5252,5254,5,246,0,0,5253,5250,1,0,0,0,5253,5251,1,0,0,0, + 5254,961,1,0,0,0,5255,5260,3,960,480,0,5256,5257,5,397,0,0,5257, + 5259,3,960,480,0,5258,5256,1,0,0,0,5259,5262,1,0,0,0,5260,5258,1, + 0,0,0,5260,5261,1,0,0,0,5261,963,1,0,0,0,5262,5260,1,0,0,0,5263, + 5264,5,58,0,0,5264,5265,5,280,0,0,5265,5267,5,243,0,0,5266,5268, + 3,44,22,0,5267,5266,1,0,0,0,5267,5268,1,0,0,0,5268,5278,1,0,0,0, + 5269,5270,3,926,463,0,5270,5271,5,184,0,0,5271,5272,3,926,463,0, + 5272,5279,1,0,0,0,5273,5276,3,926,463,0,5274,5275,5,387,0,0,5275, + 5277,3,958,479,0,5276,5274,1,0,0,0,5276,5277,1,0,0,0,5277,5279,1, + 0,0,0,5278,5269,1,0,0,0,5278,5273,1,0,0,0,5279,965,1,0,0,0,5280, + 5281,5,387,0,0,5281,5282,5,278,0,0,5282,967,1,0,0,0,5283,5285,5, + 2,0,0,5284,5286,3,966,483,0,5285,5284,1,0,0,0,5285,5286,1,0,0,0, + 5286,969,1,0,0,0,5287,5288,7,44,0,0,5288,971,1,0,0,0,5289,5290,7, + 45,0,0,5290,973,1,0,0,0,5291,5292,5,362,0,0,5292,975,1,0,0,0,5293, + 5294,7,46,0,0,5294,977,1,0,0,0,5295,5296,7,47,0,0,5296,979,1,0,0, + 0,5297,5298,7,48,0,0,5298,981,1,0,0,0,5299,5300,7,49,0,0,5300,983, + 1,0,0,0,5301,5302,7,50,0,0,5302,985,1,0,0,0,5303,5304,7,51,0,0,5304, + 987,1,0,0,0,5305,5306,7,52,0,0,5306,989,1,0,0,0,5307,5308,7,53,0, + 0,5308,991,1,0,0,0,5309,5310,5,9,0,0,5310,5311,5,280,0,0,5311,5312, + 5,243,0,0,5312,5330,3,926,463,0,5313,5331,5,373,0,0,5314,5331,3, + 972,486,0,5315,5316,5,304,0,0,5316,5331,3,958,479,0,5317,5318,5, + 363,0,0,5318,5331,3,962,481,0,5319,5320,5,274,0,0,5320,5321,5,341, + 0,0,5321,5331,3,926,463,0,5322,5324,3,968,484,0,5323,5325,3,970, + 485,0,5324,5323,1,0,0,0,5324,5325,1,0,0,0,5325,5331,1,0,0,0,5326, + 5328,3,970,485,0,5327,5329,3,968,484,0,5328,5327,1,0,0,0,5328,5329, + 1,0,0,0,5329,5331,1,0,0,0,5330,5313,1,0,0,0,5330,5314,1,0,0,0,5330, + 5315,1,0,0,0,5330,5317,1,0,0,0,5330,5319,1,0,0,0,5330,5322,1,0,0, + 0,5330,5326,1,0,0,0,5331,993,1,0,0,0,5332,5335,3,970,485,0,5333, + 5335,3,972,486,0,5334,5332,1,0,0,0,5334,5333,1,0,0,0,5335,5336,1, + 0,0,0,5336,5337,5,390,0,0,5337,5338,5,197,0,0,5338,995,1,0,0,0,5339, + 5351,5,278,0,0,5340,5341,5,3,0,0,5341,5342,5,280,0,0,5342,5343,5, + 243,0,0,5343,5344,5,387,0,0,5344,5352,3,926,463,0,5345,5346,5,280, + 0,0,5346,5347,5,243,0,0,5347,5348,3,926,463,0,5348,5349,5,387,0, + 0,5349,5350,3,926,463,0,5350,5352,1,0,0,0,5351,5340,1,0,0,0,5351, + 5345,1,0,0,0,5352,997,1,0,0,0,5353,5354,5,101,0,0,5354,5355,5,280, + 0,0,5355,5357,5,243,0,0,5356,5358,3,40,20,0,5357,5356,1,0,0,0,5357, + 5358,1,0,0,0,5358,5359,1,0,0,0,5359,5360,3,926,463,0,5360,999,1, + 0,0,0,5361,5366,3,926,463,0,5362,5363,5,395,0,0,5363,5365,3,926, + 463,0,5364,5362,1,0,0,0,5365,5368,1,0,0,0,5366,5364,1,0,0,0,5366, + 5367,1,0,0,0,5367,1001,1,0,0,0,5368,5366,1,0,0,0,5369,5370,3,1010, + 505,0,5370,1003,1,0,0,0,5371,5372,3,1002,501,0,5372,5373,5,0,0,1, + 5373,1005,1,0,0,0,5374,5379,3,1008,504,0,5375,5376,5,228,0,0,5376, + 5378,3,1008,504,0,5377,5375,1,0,0,0,5378,5381,1,0,0,0,5379,5377, + 1,0,0,0,5379,5380,1,0,0,0,5380,1007,1,0,0,0,5381,5379,1,0,0,0,5382, + 5387,3,1010,505,0,5383,5384,5,11,0,0,5384,5386,3,1010,505,0,5385, + 5383,1,0,0,0,5386,5389,1,0,0,0,5387,5385,1,0,0,0,5387,5388,1,0,0, + 0,5388,1009,1,0,0,0,5389,5387,1,0,0,0,5390,5391,3,926,463,0,5391, + 5392,3,1014,507,0,5392,5393,3,1012,506,0,5393,1011,1,0,0,0,5394, + 5395,7,24,0,0,5395,1013,1,0,0,0,5396,5397,5,411,0,0,5397,1015,1, + 0,0,0,5398,5403,5,176,0,0,5399,5400,5,211,0,0,5400,5401,5,341,0, + 0,5401,5403,3,1000,500,0,5402,5398,1,0,0,0,5402,5399,1,0,0,0,5403, + 1017,1,0,0,0,5404,5405,3,1016,508,0,5405,5406,5,0,0,1,5406,1019, + 1,0,0,0,5407,5408,5,58,0,0,5408,5409,5,348,0,0,5409,5410,3,926,463, + 0,5410,5411,5,395,0,0,5411,5412,3,926,463,0,5412,5413,5,383,0,0, + 5413,5414,3,1002,501,0,5414,5415,5,99,0,0,5415,5416,3,1016,508,0, + 5416,1021,1,0,0,0,5417,5418,5,9,0,0,5418,5419,5,348,0,0,5419,5420, + 3,926,463,0,5420,5421,5,395,0,0,5421,5438,3,926,463,0,5422,5423, + 5,383,0,0,5423,5424,3,1002,501,0,5424,5425,5,99,0,0,5425,5426,3, + 1016,508,0,5426,5439,1,0,0,0,5427,5428,5,4,0,0,5428,5432,5,341,0, + 0,5429,5430,5,101,0,0,5430,5432,5,139,0,0,5431,5427,1,0,0,0,5431, + 5429,1,0,0,0,5432,5436,1,0,0,0,5433,5434,5,246,0,0,5434,5437,3,1000, + 500,0,5435,5437,5,362,0,0,5436,5433,1,0,0,0,5436,5435,1,0,0,0,5437, + 5439,1,0,0,0,5438,5422,1,0,0,0,5438,5431,1,0,0,0,5439,1023,1,0,0, + 0,5440,5441,5,101,0,0,5441,5442,5,348,0,0,5442,5443,3,926,463,0, + 5443,5444,5,395,0,0,5444,5445,3,926,463,0,5445,1025,1,0,0,0,5446, + 5447,5,8,0,0,5447,5448,5,405,0,0,5448,5459,5,431,0,0,5449,5450,5, + 259,0,0,5450,5451,5,405,0,0,5451,5459,5,431,0,0,5452,5453,5,294, + 0,0,5453,5454,5,405,0,0,5454,5459,5,426,0,0,5455,5456,5,240,0,0, + 5456,5457,5,405,0,0,5457,5459,3,1000,500,0,5458,5446,1,0,0,0,5458, + 5449,1,0,0,0,5458,5452,1,0,0,0,5458,5455,1,0,0,0,5459,1027,1,0,0, + 0,5460,5465,3,1026,513,0,5461,5462,5,397,0,0,5462,5464,3,1026,513, + 0,5463,5461,1,0,0,0,5464,5467,1,0,0,0,5465,5463,1,0,0,0,5465,5466, + 1,0,0,0,5466,1029,1,0,0,0,5467,5465,1,0,0,0,5468,5469,5,58,0,0,5469, + 5470,5,246,0,0,5470,5471,3,926,463,0,5471,5472,5,395,0,0,5472,5473, + 3,1000,500,0,5473,5474,5,387,0,0,5474,5475,3,1028,514,0,5475,1031, + 1,0,0,0,5476,5477,5,9,0,0,5477,5478,5,246,0,0,5478,5479,3,926,463, + 0,5479,5480,5,395,0,0,5480,5488,3,1000,500,0,5481,5482,5,304,0,0, + 5482,5489,3,1028,514,0,5483,5484,5,363,0,0,5484,5489,5,294,0,0,5485, + 5486,7,54,0,0,5486,5487,5,348,0,0,5487,5489,3,926,463,0,5488,5481, + 1,0,0,0,5488,5483,1,0,0,0,5488,5485,1,0,0,0,5489,1033,1,0,0,0,5490, + 5491,5,101,0,0,5491,5492,5,246,0,0,5492,5493,3,926,463,0,5493,5494, + 5,395,0,0,5494,5495,3,1000,500,0,5495,1035,1,0,0,0,5496,5497,5,58, + 0,0,5497,5498,7,55,0,0,5498,5499,5,200,0,0,5499,5500,5,426,0,0,5500, + 5501,5,154,0,0,5501,5505,3,926,463,0,5502,5503,5,341,0,0,5503,5506, + 3,1000,500,0,5504,5506,3,974,487,0,5505,5502,1,0,0,0,5505,5504,1, + 0,0,0,5506,5510,1,0,0,0,5507,5508,5,387,0,0,5508,5509,5,229,0,0, + 5509,5511,5,431,0,0,5510,5507,1,0,0,0,5510,5511,1,0,0,0,5511,1037, + 1,0,0,0,5512,5513,5,9,0,0,5513,5514,7,55,0,0,5514,5515,5,200,0,0, + 5515,5516,5,426,0,0,5516,5517,5,154,0,0,5517,5521,3,926,463,0,5518, + 5519,5,341,0,0,5519,5522,3,1000,500,0,5520,5522,3,974,487,0,5521, + 5518,1,0,0,0,5521,5520,1,0,0,0,5522,5526,1,0,0,0,5523,5524,5,387, + 0,0,5524,5525,5,229,0,0,5525,5527,5,431,0,0,5526,5523,1,0,0,0,5526, + 5527,1,0,0,0,5527,1039,1,0,0,0,5528,5529,5,101,0,0,5529,5530,7,55, + 0,0,5530,5531,5,200,0,0,5531,5532,5,426,0,0,5532,5533,5,154,0,0, + 5533,5534,3,926,463,0,5534,1041,1,0,0,0,653,1045,1052,1055,1061, 1067,1074,1084,1087,1091,1111,1116,1121,1127,1134,1147,1151,1155, 1160,1167,1171,1176,1183,1187,1198,1204,1211,1260,1288,1292,1296, 1299,1302,1307,1313,1317,1323,1325,1342,1354,1358,1365,1373,1376, @@ -31713,25 +31737,25 @@ export class HiveSqlParser extends SQLParserBase { 3451,3462,3471,3475,3478,3481,3489,3492,3500,3503,3511,3515,3520, 3524,3533,3549,3564,3566,3582,3589,3606,3609,3612,3615,3621,3644, 3652,3666,3669,3674,3700,3704,3707,3710,3714,3719,3722,3725,3728, - 3731,3737,3740,3743,3746,3749,3752,3755,3758,3761,3764,3768,3770, - 3776,3781,3784,3787,3790,3796,3799,3802,3805,3808,3811,3814,3817, - 3820,3823,3827,3829,3831,3836,3840,3843,3846,3851,3869,3878,3890, - 3898,3910,3913,3919,3926,3933,3940,3947,3956,3960,3967,3972,3976, - 3992,3996,3998,4001,4014,4017,4020,4032,4035,4042,4051,4056,4058, - 4060,4077,4080,4089,4095,4099,4102,4105,4108,4111,4123,4127,4130, - 4133,4141,4148,4151,4158,4161,4166,4173,4181,4187,4192,4196,4201, - 4208,4222,4225,4229,4246,4254,4257,4270,4279,4282,4288,4291,4296, - 4299,4308,4322,4328,4330,4338,4341,4351,4356,4358,4370,4376,4378, - 4385,4392,4401,4411,4414,4417,4420,4424,4433,4442,4450,4456,4466, - 4473,4481,4491,4501,4506,4510,4514,4520,4541,4547,4551,4555,4558, - 4564,4569,4572,4576,4584,4594,4604,4623,4630,4633,4644,4651,4654, - 4656,4667,4677,4679,4685,4691,4695,4701,4710,4723,4727,4739,4743, - 4752,4764,4781,4796,4806,4814,4819,4840,4844,4860,4875,4884,4886, - 4894,4907,4918,4929,4940,4951,4962,4972,4981,4985,4993,5006,5016, - 5022,5035,5044,5046,5061,5066,5073,5086,5097,5106,5115,5123,5131, - 5142,5150,5155,5171,5179,5188,5208,5225,5234,5241,5247,5254,5261, - 5270,5272,5279,5318,5322,5324,5328,5345,5351,5360,5373,5381,5396, - 5425,5430,5432,5452,5459,5482,5499,5504,5515,5520 + 3731,3734,3740,3743,3746,3749,3752,3755,3758,3761,3764,3767,3771, + 3773,3779,3784,3787,3790,3793,3796,3802,3805,3808,3811,3814,3817, + 3820,3823,3826,3829,3833,3835,3837,3842,3846,3849,3852,3857,3875, + 3884,3896,3904,3916,3919,3925,3932,3939,3946,3953,3962,3966,3973, + 3978,3982,3998,4002,4004,4007,4020,4023,4026,4038,4041,4048,4057, + 4062,4064,4066,4083,4086,4095,4101,4105,4108,4111,4114,4117,4129, + 4133,4136,4139,4147,4154,4157,4164,4167,4172,4179,4187,4193,4198, + 4202,4207,4214,4228,4231,4235,4252,4260,4263,4276,4285,4288,4294, + 4297,4302,4305,4314,4328,4334,4336,4344,4347,4357,4362,4364,4376, + 4382,4384,4391,4398,4407,4417,4420,4423,4426,4430,4439,4448,4456, + 4462,4472,4479,4487,4497,4507,4512,4516,4520,4526,4547,4553,4557, + 4561,4564,4570,4575,4578,4582,4590,4600,4610,4629,4636,4639,4650, + 4657,4660,4662,4673,4683,4685,4691,4697,4701,4707,4716,4729,4733, + 4745,4749,4758,4770,4787,4802,4812,4820,4825,4846,4850,4866,4881, + 4890,4892,4900,4913,4924,4935,4946,4957,4968,4978,4987,4991,4999, + 5012,5022,5028,5041,5050,5052,5067,5072,5079,5092,5103,5112,5121, + 5129,5137,5148,5156,5161,5177,5185,5194,5214,5231,5240,5247,5253, + 5260,5267,5276,5278,5285,5324,5328,5330,5334,5351,5357,5366,5379, + 5387,5402,5431,5436,5438,5458,5465,5488,5505,5510,5521,5526 ]; private static __ATN: antlr.ATN; @@ -45068,6 +45092,9 @@ export class CreateTableStatementContext extends antlr.ParserRuleContext { public tablePropertiesPrefixed(): TablePropertiesPrefixedContext | null { return this.getRuleContext(0, TablePropertiesPrefixedContext); } + public tableLifecycle(): TableLifecycleContext | null { + return this.getRuleContext(0, TableLifecycleContext); + } public LPAREN(): antlr.TerminalNode | null { return this.getToken(HiveSqlParser.LPAREN, 0); } @@ -45080,9 +45107,6 @@ export class CreateTableStatementContext extends antlr.ParserRuleContext { public tableComment(): TableCommentContext | null { return this.getRuleContext(0, TableCommentContext); } - public tableLifecycle(): TableLifecycleContext | null { - return this.getRuleContext(0, TableLifecycleContext); - } public tableBuckets(): TableBucketsContext | null { return this.getRuleContext(0, TableBucketsContext); } diff --git a/test/parser/hive/syntax/fixtures/createTable.sql b/test/parser/hive/syntax/fixtures/createTable.sql index aa08695..e88f1f9 100644 --- a/test/parser/hive/syntax/fixtures/createTable.sql +++ b/test/parser/hive/syntax/fixtures/createTable.sql @@ -112,9 +112,14 @@ CREATE TABLE IF NOT EXISTS t1 ( name STRING COMMENT '姓名', age SMALLINT COMMENT '年龄' ) COMMENT "t1表" lifecycle 29; - --- dtstack SparkSQL/HiveSQL lifecycle CREATE MANAGED TABLE managed_table ( id INT COMMENT 'ID', name STRING COMMENT '名称' -) COMMENT '测试分桶' lifecycle 29 CLUSTERED BY(id) SORTED BY (id) INTO 4 BUCKETS STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'; +) COMMENT '测试分桶' CLUSTERED BY(id) SORTED BY (id) INTO 4 BUCKETS STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' lifecycle 29; +CREATE TABLE employee ( + eid int, + name String, + salary String, + destination String) + STORED AS ORC + lifecycle 10;