diff --git a/src/zorg/grammar/ZorgFile.g4 b/src/zorg/grammar/ZorgFile.g4 index 07ec124..e808308 100644 --- a/src/zorg/grammar/ZorgFile.g4 +++ b/src/zorg/grammar/ZorgFile.g4 @@ -107,4 +107,4 @@ h4_header : H4_HEADER space_atoms eol ; eol : NL | EOF ; // URL -url : ('https://' | 'http://') ID ('.' ID)* (':' NUM_ID)? ('/' ID ((AMP | COLON | DASH | EQUAL | QMARK) PERCENT? (ID | FSLASH))*)* ; +url : ('https://' | 'http://') ID ('.' ID)* (':' NUM_ID)? ('/' PERCENT? ID ((AMP | COLON | DASH | EQUAL | QMARK) PERCENT? (ID | FSLASH))*)* ; diff --git a/src/zorg/grammar/zorg_file/ZorgFile.interp b/src/zorg/grammar/zorg_file/ZorgFile.interp index 4afaf9c..f2caca7 100644 --- a/src/zorg/grammar/zorg_file/ZorgFile.interp +++ b/src/zorg/grammar/zorg_file/ZorgFile.interp @@ -163,4 +163,4 @@ url atn: -[4, 1, 49, 531, 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, 1, 0, 1, 0, 3, 0, 117, 8, 0, 1, 0, 1, 0, 1, 1, 4, 1, 122, 8, 1, 11, 1, 12, 1, 123, 1, 2, 1, 2, 3, 2, 128, 8, 2, 1, 2, 1, 2, 1, 3, 4, 3, 133, 8, 3, 11, 3, 12, 3, 134, 1, 3, 5, 3, 138, 8, 3, 10, 3, 12, 3, 141, 9, 3, 1, 3, 5, 3, 144, 8, 3, 10, 3, 12, 3, 147, 9, 3, 1, 3, 5, 3, 150, 8, 3, 10, 3, 12, 3, 153, 9, 3, 1, 4, 4, 4, 156, 8, 4, 11, 4, 12, 4, 157, 1, 4, 5, 4, 161, 8, 4, 10, 4, 12, 4, 164, 9, 4, 1, 5, 1, 5, 1, 5, 3, 5, 169, 8, 5, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 4, 8, 180, 8, 8, 11, 8, 12, 8, 181, 1, 8, 5, 8, 185, 8, 8, 10, 8, 12, 8, 188, 9, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 3, 10, 195, 8, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 4, 13, 205, 8, 13, 11, 13, 12, 13, 206, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 3, 15, 214, 8, 15, 1, 16, 5, 16, 217, 8, 16, 10, 16, 12, 16, 220, 9, 16, 1, 16, 3, 16, 223, 8, 16, 1, 16, 5, 16, 226, 8, 16, 10, 16, 12, 16, 229, 9, 16, 1, 17, 1, 17, 3, 17, 233, 8, 17, 1, 18, 1, 18, 3, 18, 237, 8, 18, 1, 19, 1, 19, 1, 19, 5, 19, 242, 8, 19, 10, 19, 12, 19, 245, 9, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 258, 8, 20, 1, 21, 1, 21, 4, 21, 262, 8, 21, 11, 21, 12, 21, 263, 1, 21, 3, 21, 267, 8, 21, 1, 21, 1, 21, 4, 21, 271, 8, 21, 11, 21, 12, 21, 272, 1, 21, 3, 21, 276, 8, 21, 3, 21, 278, 8, 21, 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 284, 8, 22, 1, 23, 1, 23, 1, 24, 1, 24, 3, 24, 290, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 299, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 306, 8, 27, 1, 27, 1, 27, 1, 27, 5, 27, 311, 8, 27, 10, 27, 12, 27, 314, 9, 27, 1, 27, 1, 27, 1, 28, 1, 28, 4, 28, 320, 8, 28, 11, 28, 12, 28, 321, 1, 28, 5, 28, 325, 8, 28, 10, 28, 12, 28, 328, 9, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 339, 8, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 354, 8, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 366, 8, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 5, 47, 406, 8, 47, 10, 47, 12, 47, 409, 9, 47, 1, 47, 5, 47, 412, 8, 47, 10, 47, 12, 47, 415, 9, 47, 1, 47, 3, 47, 418, 8, 47, 1, 47, 5, 47, 421, 8, 47, 10, 47, 12, 47, 424, 9, 47, 1, 48, 1, 48, 5, 48, 428, 8, 48, 10, 48, 12, 48, 431, 9, 48, 1, 48, 5, 48, 434, 8, 48, 10, 48, 12, 48, 437, 9, 48, 1, 48, 3, 48, 440, 8, 48, 1, 48, 5, 48, 443, 8, 48, 10, 48, 12, 48, 446, 9, 48, 1, 49, 1, 49, 5, 49, 450, 8, 49, 10, 49, 12, 49, 453, 9, 49, 1, 49, 5, 49, 456, 8, 49, 10, 49, 12, 49, 459, 9, 49, 1, 49, 3, 49, 462, 8, 49, 1, 49, 5, 49, 465, 8, 49, 10, 49, 12, 49, 468, 9, 49, 1, 50, 1, 50, 5, 50, 472, 8, 50, 10, 50, 12, 50, 475, 9, 50, 1, 50, 5, 50, 478, 8, 50, 10, 50, 12, 50, 481, 9, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 505, 8, 56, 10, 56, 12, 56, 508, 9, 56, 1, 56, 1, 56, 3, 56, 512, 8, 56, 1, 56, 1, 56, 1, 56, 1, 56, 3, 56, 518, 8, 56, 1, 56, 5, 56, 521, 8, 56, 10, 56, 12, 56, 524, 9, 56, 5, 56, 526, 8, 56, 10, 56, 12, 56, 529, 9, 56, 1, 56, 0, 0, 57, 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, 0, 8, 3, 0, 13, 14, 45, 45, 47, 48, 4, 0, 26, 29, 35, 35, 37, 38, 45, 48, 3, 0, 32, 34, 39, 39, 49, 49, 1, 0, 39, 42, 1, 1, 12, 12, 1, 0, 10, 11, 3, 0, 27, 29, 32, 32, 49, 49, 2, 0, 18, 18, 34, 34, 559, 0, 114, 1, 0, 0, 0, 2, 121, 1, 0, 0, 0, 4, 125, 1, 0, 0, 0, 6, 132, 1, 0, 0, 0, 8, 155, 1, 0, 0, 0, 10, 168, 1, 0, 0, 0, 12, 170, 1, 0, 0, 0, 14, 173, 1, 0, 0, 0, 16, 176, 1, 0, 0, 0, 18, 189, 1, 0, 0, 0, 20, 191, 1, 0, 0, 0, 22, 199, 1, 0, 0, 0, 24, 201, 1, 0, 0, 0, 26, 204, 1, 0, 0, 0, 28, 208, 1, 0, 0, 0, 30, 213, 1, 0, 0, 0, 32, 218, 1, 0, 0, 0, 34, 232, 1, 0, 0, 0, 36, 236, 1, 0, 0, 0, 38, 238, 1, 0, 0, 0, 40, 257, 1, 0, 0, 0, 42, 277, 1, 0, 0, 0, 44, 283, 1, 0, 0, 0, 46, 285, 1, 0, 0, 0, 48, 289, 1, 0, 0, 0, 50, 291, 1, 0, 0, 0, 52, 298, 1, 0, 0, 0, 54, 300, 1, 0, 0, 0, 56, 317, 1, 0, 0, 0, 58, 338, 1, 0, 0, 0, 60, 340, 1, 0, 0, 0, 62, 342, 1, 0, 0, 0, 64, 353, 1, 0, 0, 0, 66, 355, 1, 0, 0, 0, 68, 357, 1, 0, 0, 0, 70, 359, 1, 0, 0, 0, 72, 365, 1, 0, 0, 0, 74, 367, 1, 0, 0, 0, 76, 370, 1, 0, 0, 0, 78, 373, 1, 0, 0, 0, 80, 376, 1, 0, 0, 0, 82, 379, 1, 0, 0, 0, 84, 383, 1, 0, 0, 0, 86, 387, 1, 0, 0, 0, 88, 391, 1, 0, 0, 0, 90, 395, 1, 0, 0, 0, 92, 399, 1, 0, 0, 0, 94, 403, 1, 0, 0, 0, 96, 425, 1, 0, 0, 0, 98, 447, 1, 0, 0, 0, 100, 469, 1, 0, 0, 0, 102, 482, 1, 0, 0, 0, 104, 486, 1, 0, 0, 0, 106, 490, 1, 0, 0, 0, 108, 494, 1, 0, 0, 0, 110, 498, 1, 0, 0, 0, 112, 500, 1, 0, 0, 0, 114, 116, 3, 2, 1, 0, 115, 117, 3, 6, 3, 0, 116, 115, 1, 0, 0, 0, 116, 117, 1, 0, 0, 0, 117, 118, 1, 0, 0, 0, 118, 119, 5, 0, 0, 1, 119, 1, 1, 0, 0, 0, 120, 122, 3, 4, 2, 0, 121, 120, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 123, 121, 1, 0, 0, 0, 123, 124, 1, 0, 0, 0, 124, 3, 1, 0, 0, 0, 125, 127, 5, 39, 0, 0, 126, 128, 3, 26, 13, 0, 127, 126, 1, 0, 0, 0, 127, 128, 1, 0, 0, 0, 128, 129, 1, 0, 0, 0, 129, 130, 5, 12, 0, 0, 130, 5, 1, 0, 0, 0, 131, 133, 5, 12, 0, 0, 132, 131, 1, 0, 0, 0, 133, 134, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 139, 1, 0, 0, 0, 136, 138, 3, 8, 4, 0, 137, 136, 1, 0, 0, 0, 138, 141, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 145, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 142, 144, 3, 96, 48, 0, 143, 142, 1, 0, 0, 0, 144, 147, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 151, 1, 0, 0, 0, 147, 145, 1, 0, 0, 0, 148, 150, 3, 94, 47, 0, 149, 148, 1, 0, 0, 0, 150, 153, 1, 0, 0, 0, 151, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 7, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 154, 156, 3, 10, 5, 0, 155, 154, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 162, 1, 0, 0, 0, 159, 161, 5, 12, 0, 0, 160, 159, 1, 0, 0, 0, 161, 164, 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 9, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 165, 169, 3, 18, 9, 0, 166, 169, 3, 12, 6, 0, 167, 169, 3, 4, 2, 0, 168, 165, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 168, 167, 1, 0, 0, 0, 169, 11, 1, 0, 0, 0, 170, 171, 5, 32, 0, 0, 171, 172, 3, 14, 7, 0, 172, 13, 1, 0, 0, 0, 173, 174, 3, 16, 8, 0, 174, 175, 5, 12, 0, 0, 175, 15, 1, 0, 0, 0, 176, 186, 3, 26, 13, 0, 177, 179, 5, 12, 0, 0, 178, 180, 5, 36, 0, 0, 179, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 185, 3, 26, 13, 0, 184, 177, 1, 0, 0, 0, 185, 188, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 17, 1, 0, 0, 0, 188, 186, 1, 0, 0, 0, 189, 190, 3, 20, 10, 0, 190, 19, 1, 0, 0, 0, 191, 194, 3, 22, 11, 0, 192, 193, 5, 36, 0, 0, 193, 195, 3, 24, 12, 0, 194, 192, 1, 0, 0, 0, 194, 195, 1, 0, 0, 0, 195, 196, 1, 0, 0, 0, 196, 197, 3, 16, 8, 0, 197, 198, 5, 12, 0, 0, 198, 21, 1, 0, 0, 0, 199, 200, 7, 0, 0, 0, 200, 23, 1, 0, 0, 0, 201, 202, 5, 17, 0, 0, 202, 25, 1, 0, 0, 0, 203, 205, 3, 28, 14, 0, 204, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 204, 1, 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 27, 1, 0, 0, 0, 208, 209, 5, 36, 0, 0, 209, 210, 3, 30, 15, 0, 210, 29, 1, 0, 0, 0, 211, 214, 3, 70, 35, 0, 212, 214, 3, 32, 16, 0, 213, 211, 1, 0, 0, 0, 213, 212, 1, 0, 0, 0, 214, 31, 1, 0, 0, 0, 215, 217, 3, 34, 17, 0, 216, 215, 1, 0, 0, 0, 217, 220, 1, 0, 0, 0, 218, 216, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, 219, 222, 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 221, 223, 3, 36, 18, 0, 222, 221, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 227, 1, 0, 0, 0, 224, 226, 3, 38, 19, 0, 225, 224, 1, 0, 0, 0, 226, 229, 1, 0, 0, 0, 227, 225, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 33, 1, 0, 0, 0, 229, 227, 1, 0, 0, 0, 230, 233, 3, 66, 33, 0, 231, 233, 5, 32, 0, 0, 232, 230, 1, 0, 0, 0, 232, 231, 1, 0, 0, 0, 233, 35, 1, 0, 0, 0, 234, 237, 3, 42, 21, 0, 235, 237, 3, 40, 20, 0, 236, 234, 1, 0, 0, 0, 236, 235, 1, 0, 0, 0, 237, 37, 1, 0, 0, 0, 238, 243, 3, 64, 32, 0, 239, 242, 3, 64, 32, 0, 240, 242, 3, 58, 29, 0, 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 39, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 258, 3, 72, 36, 0, 247, 258, 3, 82, 41, 0, 248, 258, 3, 48, 24, 0, 249, 258, 3, 112, 56, 0, 250, 258, 3, 56, 28, 0, 251, 258, 3, 84, 42, 0, 252, 258, 3, 86, 43, 0, 253, 258, 3, 88, 44, 0, 254, 258, 3, 90, 45, 0, 255, 258, 3, 92, 46, 0, 256, 258, 3, 24, 12, 0, 257, 246, 1, 0, 0, 0, 257, 247, 1, 0, 0, 0, 257, 248, 1, 0, 0, 0, 257, 249, 1, 0, 0, 0, 257, 250, 1, 0, 0, 0, 257, 251, 1, 0, 0, 0, 257, 252, 1, 0, 0, 0, 257, 253, 1, 0, 0, 0, 257, 254, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 256, 1, 0, 0, 0, 258, 41, 1, 0, 0, 0, 259, 261, 5, 43, 0, 0, 260, 262, 3, 44, 22, 0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261, 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 266, 1, 0, 0, 0, 265, 267, 5, 43, 0, 0, 266, 265, 1, 0, 0, 0, 266, 267, 1, 0, 0, 0, 267, 278, 1, 0, 0, 0, 268, 270, 5, 44, 0, 0, 269, 271, 3, 44, 22, 0, 270, 269, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 275, 1, 0, 0, 0, 274, 276, 5, 44, 0, 0, 275, 274, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 278, 1, 0, 0, 0, 277, 259, 1, 0, 0, 0, 277, 268, 1, 0, 0, 0, 278, 43, 1, 0, 0, 0, 279, 284, 3, 64, 32, 0, 280, 284, 3, 40, 20, 0, 281, 284, 5, 1, 0, 0, 282, 284, 5, 2, 0, 0, 283, 279, 1, 0, 0, 0, 283, 280, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 283, 282, 1, 0, 0, 0, 284, 45, 1, 0, 0, 0, 285, 286, 5, 19, 0, 0, 286, 47, 1, 0, 0, 0, 287, 290, 3, 50, 25, 0, 288, 290, 3, 54, 27, 0, 289, 287, 1, 0, 0, 0, 289, 288, 1, 0, 0, 0, 290, 49, 1, 0, 0, 0, 291, 292, 3, 58, 29, 0, 292, 293, 5, 49, 0, 0, 293, 294, 5, 49, 0, 0, 294, 295, 3, 52, 26, 0, 295, 51, 1, 0, 0, 0, 296, 299, 3, 58, 29, 0, 297, 299, 3, 112, 56, 0, 298, 296, 1, 0, 0, 0, 298, 297, 1, 0, 0, 0, 299, 53, 1, 0, 0, 0, 300, 301, 5, 3, 0, 0, 301, 302, 3, 58, 29, 0, 302, 303, 5, 49, 0, 0, 303, 305, 5, 49, 0, 0, 304, 306, 5, 36, 0, 0, 305, 304, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307, 312, 3, 56, 28, 0, 308, 309, 5, 36, 0, 0, 309, 311, 3, 56, 28, 0, 310, 308, 1, 0, 0, 0, 311, 314, 1, 0, 0, 0, 312, 310, 1, 0, 0, 0, 312, 313, 1, 0, 0, 0, 313, 315, 1, 0, 0, 0, 314, 312, 1, 0, 0, 0, 315, 316, 5, 4, 0, 0, 316, 55, 1, 0, 0, 0, 317, 326, 3, 58, 29, 0, 318, 320, 3, 64, 32, 0, 319, 318, 1, 0, 0, 0, 320, 321, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 325, 1, 0, 0, 0, 323, 325, 3, 58, 29, 0, 324, 319, 1, 0, 0, 0, 324, 323, 1, 0, 0, 0, 325, 328, 1, 0, 0, 0, 326, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 57, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 329, 339, 5, 18, 0, 0, 330, 339, 5, 20, 0, 0, 331, 339, 5, 17, 0, 0, 332, 339, 3, 60, 30, 0, 333, 339, 3, 62, 31, 0, 334, 339, 3, 46, 23, 0, 335, 339, 3, 112, 56, 0, 336, 339, 5, 13, 0, 0, 337, 339, 5, 14, 0, 0, 338, 329, 1, 0, 0, 0, 338, 330, 1, 0, 0, 0, 338, 331, 1, 0, 0, 0, 338, 332, 1, 0, 0, 0, 338, 333, 1, 0, 0, 0, 338, 334, 1, 0, 0, 0, 338, 335, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 338, 337, 1, 0, 0, 0, 339, 59, 1, 0, 0, 0, 340, 341, 5, 15, 0, 0, 341, 61, 1, 0, 0, 0, 342, 343, 5, 16, 0, 0, 343, 63, 1, 0, 0, 0, 344, 354, 5, 43, 0, 0, 345, 354, 5, 44, 0, 0, 346, 354, 5, 31, 0, 0, 347, 354, 5, 30, 0, 0, 348, 354, 3, 66, 33, 0, 349, 354, 3, 70, 35, 0, 350, 354, 3, 68, 34, 0, 351, 354, 5, 3, 0, 0, 352, 354, 5, 4, 0, 0, 353, 344, 1, 0, 0, 0, 353, 345, 1, 0, 0, 0, 353, 346, 1, 0, 0, 0, 353, 347, 1, 0, 0, 0, 353, 348, 1, 0, 0, 0, 353, 349, 1, 0, 0, 0, 353, 350, 1, 0, 0, 0, 353, 351, 1, 0, 0, 0, 353, 352, 1, 0, 0, 0, 354, 65, 1, 0, 0, 0, 355, 356, 7, 1, 0, 0, 356, 67, 1, 0, 0, 0, 357, 358, 7, 2, 0, 0, 358, 69, 1, 0, 0, 0, 359, 360, 7, 3, 0, 0, 360, 71, 1, 0, 0, 0, 361, 366, 3, 74, 37, 0, 362, 366, 3, 76, 38, 0, 363, 366, 3, 78, 39, 0, 364, 366, 3, 80, 40, 0, 365, 361, 1, 0, 0, 0, 365, 362, 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 365, 364, 1, 0, 0, 0, 366, 73, 1, 0, 0, 0, 367, 368, 5, 39, 0, 0, 368, 369, 3, 58, 29, 0, 369, 75, 1, 0, 0, 0, 370, 371, 5, 40, 0, 0, 371, 372, 3, 58, 29, 0, 372, 77, 1, 0, 0, 0, 373, 374, 5, 42, 0, 0, 374, 375, 3, 58, 29, 0, 375, 79, 1, 0, 0, 0, 376, 377, 5, 41, 0, 0, 377, 378, 3, 58, 29, 0, 378, 81, 1, 0, 0, 0, 379, 380, 5, 1, 0, 0, 380, 381, 3, 56, 28, 0, 381, 382, 5, 2, 0, 0, 382, 83, 1, 0, 0, 0, 383, 384, 5, 5, 0, 0, 384, 385, 5, 18, 0, 0, 385, 386, 5, 4, 0, 0, 386, 85, 1, 0, 0, 0, 387, 388, 5, 6, 0, 0, 388, 389, 5, 18, 0, 0, 389, 390, 5, 4, 0, 0, 390, 87, 1, 0, 0, 0, 391, 392, 5, 3, 0, 0, 392, 393, 3, 46, 23, 0, 393, 394, 5, 4, 0, 0, 394, 89, 1, 0, 0, 0, 395, 396, 5, 7, 0, 0, 396, 397, 3, 56, 28, 0, 397, 398, 5, 8, 0, 0, 398, 91, 1, 0, 0, 0, 399, 400, 5, 9, 0, 0, 400, 401, 5, 18, 0, 0, 401, 402, 5, 4, 0, 0, 402, 93, 1, 0, 0, 0, 403, 407, 3, 102, 51, 0, 404, 406, 5, 12, 0, 0, 405, 404, 1, 0, 0, 0, 406, 409, 1, 0, 0, 0, 407, 405, 1, 0, 0, 0, 407, 408, 1, 0, 0, 0, 408, 413, 1, 0, 0, 0, 409, 407, 1, 0, 0, 0, 410, 412, 3, 8, 4, 0, 411, 410, 1, 0, 0, 0, 412, 415, 1, 0, 0, 0, 413, 411, 1, 0, 0, 0, 413, 414, 1, 0, 0, 0, 414, 422, 1, 0, 0, 0, 415, 413, 1, 0, 0, 0, 416, 418, 5, 12, 0, 0, 417, 416, 1, 0, 0, 0, 417, 418, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 421, 3, 96, 48, 0, 420, 417, 1, 0, 0, 0, 421, 424, 1, 0, 0, 0, 422, 420, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423, 95, 1, 0, 0, 0, 424, 422, 1, 0, 0, 0, 425, 429, 3, 104, 52, 0, 426, 428, 5, 12, 0, 0, 427, 426, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 435, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432, 434, 3, 8, 4, 0, 433, 432, 1, 0, 0, 0, 434, 437, 1, 0, 0, 0, 435, 433, 1, 0, 0, 0, 435, 436, 1, 0, 0, 0, 436, 444, 1, 0, 0, 0, 437, 435, 1, 0, 0, 0, 438, 440, 5, 12, 0, 0, 439, 438, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 443, 3, 98, 49, 0, 442, 439, 1, 0, 0, 0, 443, 446, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 97, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 447, 451, 3, 106, 53, 0, 448, 450, 5, 12, 0, 0, 449, 448, 1, 0, 0, 0, 450, 453, 1, 0, 0, 0, 451, 449, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 457, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 454, 456, 3, 8, 4, 0, 455, 454, 1, 0, 0, 0, 456, 459, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 457, 458, 1, 0, 0, 0, 458, 466, 1, 0, 0, 0, 459, 457, 1, 0, 0, 0, 460, 462, 5, 12, 0, 0, 461, 460, 1, 0, 0, 0, 461, 462, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 465, 3, 100, 50, 0, 464, 461, 1, 0, 0, 0, 465, 468, 1, 0, 0, 0, 466, 464, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 99, 1, 0, 0, 0, 468, 466, 1, 0, 0, 0, 469, 473, 3, 108, 54, 0, 470, 472, 5, 12, 0, 0, 471, 470, 1, 0, 0, 0, 472, 475, 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 479, 1, 0, 0, 0, 475, 473, 1, 0, 0, 0, 476, 478, 3, 8, 4, 0, 477, 476, 1, 0, 0, 0, 478, 481, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 101, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 482, 483, 5, 22, 0, 0, 483, 484, 3, 26, 13, 0, 484, 485, 3, 110, 55, 0, 485, 103, 1, 0, 0, 0, 486, 487, 5, 23, 0, 0, 487, 488, 3, 26, 13, 0, 488, 489, 3, 110, 55, 0, 489, 105, 1, 0, 0, 0, 490, 491, 5, 24, 0, 0, 491, 492, 3, 26, 13, 0, 492, 493, 3, 110, 55, 0, 493, 107, 1, 0, 0, 0, 494, 495, 5, 25, 0, 0, 495, 496, 3, 26, 13, 0, 496, 497, 3, 110, 55, 0, 497, 109, 1, 0, 0, 0, 498, 499, 7, 4, 0, 0, 499, 111, 1, 0, 0, 0, 500, 501, 7, 5, 0, 0, 501, 506, 5, 18, 0, 0, 502, 503, 5, 33, 0, 0, 503, 505, 5, 18, 0, 0, 504, 502, 1, 0, 0, 0, 505, 508, 1, 0, 0, 0, 506, 504, 1, 0, 0, 0, 506, 507, 1, 0, 0, 0, 507, 511, 1, 0, 0, 0, 508, 506, 1, 0, 0, 0, 509, 510, 5, 49, 0, 0, 510, 512, 5, 20, 0, 0, 511, 509, 1, 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 527, 1, 0, 0, 0, 513, 514, 5, 34, 0, 0, 514, 522, 5, 18, 0, 0, 515, 517, 7, 6, 0, 0, 516, 518, 5, 42, 0, 0, 517, 516, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 521, 7, 7, 0, 0, 520, 515, 1, 0, 0, 0, 521, 524, 1, 0, 0, 0, 522, 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 526, 1, 0, 0, 0, 524, 522, 1, 0, 0, 0, 525, 513, 1, 0, 0, 0, 526, 529, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 113, 1, 0, 0, 0, 529, 527, 1, 0, 0, 0, 58, 116, 123, 127, 134, 139, 145, 151, 157, 162, 168, 181, 186, 194, 206, 213, 218, 222, 227, 232, 236, 241, 243, 257, 263, 266, 272, 275, 277, 283, 289, 298, 305, 312, 321, 324, 326, 338, 353, 365, 407, 413, 417, 422, 429, 435, 439, 444, 451, 457, 461, 466, 473, 479, 506, 511, 517, 522, 527] \ No newline at end of file +[4, 1, 49, 534, 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, 1, 0, 1, 0, 3, 0, 117, 8, 0, 1, 0, 1, 0, 1, 1, 4, 1, 122, 8, 1, 11, 1, 12, 1, 123, 1, 2, 1, 2, 3, 2, 128, 8, 2, 1, 2, 1, 2, 1, 3, 4, 3, 133, 8, 3, 11, 3, 12, 3, 134, 1, 3, 5, 3, 138, 8, 3, 10, 3, 12, 3, 141, 9, 3, 1, 3, 5, 3, 144, 8, 3, 10, 3, 12, 3, 147, 9, 3, 1, 3, 5, 3, 150, 8, 3, 10, 3, 12, 3, 153, 9, 3, 1, 4, 4, 4, 156, 8, 4, 11, 4, 12, 4, 157, 1, 4, 5, 4, 161, 8, 4, 10, 4, 12, 4, 164, 9, 4, 1, 5, 1, 5, 1, 5, 3, 5, 169, 8, 5, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 4, 8, 180, 8, 8, 11, 8, 12, 8, 181, 1, 8, 5, 8, 185, 8, 8, 10, 8, 12, 8, 188, 9, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 3, 10, 195, 8, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 4, 13, 205, 8, 13, 11, 13, 12, 13, 206, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 3, 15, 214, 8, 15, 1, 16, 5, 16, 217, 8, 16, 10, 16, 12, 16, 220, 9, 16, 1, 16, 3, 16, 223, 8, 16, 1, 16, 5, 16, 226, 8, 16, 10, 16, 12, 16, 229, 9, 16, 1, 17, 1, 17, 3, 17, 233, 8, 17, 1, 18, 1, 18, 3, 18, 237, 8, 18, 1, 19, 1, 19, 1, 19, 5, 19, 242, 8, 19, 10, 19, 12, 19, 245, 9, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 258, 8, 20, 1, 21, 1, 21, 4, 21, 262, 8, 21, 11, 21, 12, 21, 263, 1, 21, 3, 21, 267, 8, 21, 1, 21, 1, 21, 4, 21, 271, 8, 21, 11, 21, 12, 21, 272, 1, 21, 3, 21, 276, 8, 21, 3, 21, 278, 8, 21, 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 284, 8, 22, 1, 23, 1, 23, 1, 24, 1, 24, 3, 24, 290, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 299, 8, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 306, 8, 27, 1, 27, 1, 27, 1, 27, 5, 27, 311, 8, 27, 10, 27, 12, 27, 314, 9, 27, 1, 27, 1, 27, 1, 28, 1, 28, 4, 28, 320, 8, 28, 11, 28, 12, 28, 321, 1, 28, 5, 28, 325, 8, 28, 10, 28, 12, 28, 328, 9, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 3, 29, 339, 8, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 354, 8, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 366, 8, 36, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 5, 47, 406, 8, 47, 10, 47, 12, 47, 409, 9, 47, 1, 47, 5, 47, 412, 8, 47, 10, 47, 12, 47, 415, 9, 47, 1, 47, 3, 47, 418, 8, 47, 1, 47, 5, 47, 421, 8, 47, 10, 47, 12, 47, 424, 9, 47, 1, 48, 1, 48, 5, 48, 428, 8, 48, 10, 48, 12, 48, 431, 9, 48, 1, 48, 5, 48, 434, 8, 48, 10, 48, 12, 48, 437, 9, 48, 1, 48, 3, 48, 440, 8, 48, 1, 48, 5, 48, 443, 8, 48, 10, 48, 12, 48, 446, 9, 48, 1, 49, 1, 49, 5, 49, 450, 8, 49, 10, 49, 12, 49, 453, 9, 49, 1, 49, 5, 49, 456, 8, 49, 10, 49, 12, 49, 459, 9, 49, 1, 49, 3, 49, 462, 8, 49, 1, 49, 5, 49, 465, 8, 49, 10, 49, 12, 49, 468, 9, 49, 1, 50, 1, 50, 5, 50, 472, 8, 50, 10, 50, 12, 50, 475, 9, 50, 1, 50, 5, 50, 478, 8, 50, 10, 50, 12, 50, 481, 9, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 505, 8, 56, 10, 56, 12, 56, 508, 9, 56, 1, 56, 1, 56, 3, 56, 512, 8, 56, 1, 56, 1, 56, 3, 56, 516, 8, 56, 1, 56, 1, 56, 1, 56, 3, 56, 521, 8, 56, 1, 56, 5, 56, 524, 8, 56, 10, 56, 12, 56, 527, 9, 56, 5, 56, 529, 8, 56, 10, 56, 12, 56, 532, 9, 56, 1, 56, 0, 0, 57, 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, 0, 8, 3, 0, 13, 14, 45, 45, 47, 48, 4, 0, 26, 29, 35, 35, 37, 38, 45, 48, 3, 0, 32, 34, 39, 39, 49, 49, 1, 0, 39, 42, 1, 1, 12, 12, 1, 0, 10, 11, 3, 0, 27, 29, 32, 32, 49, 49, 2, 0, 18, 18, 34, 34, 563, 0, 114, 1, 0, 0, 0, 2, 121, 1, 0, 0, 0, 4, 125, 1, 0, 0, 0, 6, 132, 1, 0, 0, 0, 8, 155, 1, 0, 0, 0, 10, 168, 1, 0, 0, 0, 12, 170, 1, 0, 0, 0, 14, 173, 1, 0, 0, 0, 16, 176, 1, 0, 0, 0, 18, 189, 1, 0, 0, 0, 20, 191, 1, 0, 0, 0, 22, 199, 1, 0, 0, 0, 24, 201, 1, 0, 0, 0, 26, 204, 1, 0, 0, 0, 28, 208, 1, 0, 0, 0, 30, 213, 1, 0, 0, 0, 32, 218, 1, 0, 0, 0, 34, 232, 1, 0, 0, 0, 36, 236, 1, 0, 0, 0, 38, 238, 1, 0, 0, 0, 40, 257, 1, 0, 0, 0, 42, 277, 1, 0, 0, 0, 44, 283, 1, 0, 0, 0, 46, 285, 1, 0, 0, 0, 48, 289, 1, 0, 0, 0, 50, 291, 1, 0, 0, 0, 52, 298, 1, 0, 0, 0, 54, 300, 1, 0, 0, 0, 56, 317, 1, 0, 0, 0, 58, 338, 1, 0, 0, 0, 60, 340, 1, 0, 0, 0, 62, 342, 1, 0, 0, 0, 64, 353, 1, 0, 0, 0, 66, 355, 1, 0, 0, 0, 68, 357, 1, 0, 0, 0, 70, 359, 1, 0, 0, 0, 72, 365, 1, 0, 0, 0, 74, 367, 1, 0, 0, 0, 76, 370, 1, 0, 0, 0, 78, 373, 1, 0, 0, 0, 80, 376, 1, 0, 0, 0, 82, 379, 1, 0, 0, 0, 84, 383, 1, 0, 0, 0, 86, 387, 1, 0, 0, 0, 88, 391, 1, 0, 0, 0, 90, 395, 1, 0, 0, 0, 92, 399, 1, 0, 0, 0, 94, 403, 1, 0, 0, 0, 96, 425, 1, 0, 0, 0, 98, 447, 1, 0, 0, 0, 100, 469, 1, 0, 0, 0, 102, 482, 1, 0, 0, 0, 104, 486, 1, 0, 0, 0, 106, 490, 1, 0, 0, 0, 108, 494, 1, 0, 0, 0, 110, 498, 1, 0, 0, 0, 112, 500, 1, 0, 0, 0, 114, 116, 3, 2, 1, 0, 115, 117, 3, 6, 3, 0, 116, 115, 1, 0, 0, 0, 116, 117, 1, 0, 0, 0, 117, 118, 1, 0, 0, 0, 118, 119, 5, 0, 0, 1, 119, 1, 1, 0, 0, 0, 120, 122, 3, 4, 2, 0, 121, 120, 1, 0, 0, 0, 122, 123, 1, 0, 0, 0, 123, 121, 1, 0, 0, 0, 123, 124, 1, 0, 0, 0, 124, 3, 1, 0, 0, 0, 125, 127, 5, 39, 0, 0, 126, 128, 3, 26, 13, 0, 127, 126, 1, 0, 0, 0, 127, 128, 1, 0, 0, 0, 128, 129, 1, 0, 0, 0, 129, 130, 5, 12, 0, 0, 130, 5, 1, 0, 0, 0, 131, 133, 5, 12, 0, 0, 132, 131, 1, 0, 0, 0, 133, 134, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 139, 1, 0, 0, 0, 136, 138, 3, 8, 4, 0, 137, 136, 1, 0, 0, 0, 138, 141, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 145, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 142, 144, 3, 96, 48, 0, 143, 142, 1, 0, 0, 0, 144, 147, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 151, 1, 0, 0, 0, 147, 145, 1, 0, 0, 0, 148, 150, 3, 94, 47, 0, 149, 148, 1, 0, 0, 0, 150, 153, 1, 0, 0, 0, 151, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 7, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 154, 156, 3, 10, 5, 0, 155, 154, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 157, 158, 1, 0, 0, 0, 158, 162, 1, 0, 0, 0, 159, 161, 5, 12, 0, 0, 160, 159, 1, 0, 0, 0, 161, 164, 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 9, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 165, 169, 3, 18, 9, 0, 166, 169, 3, 12, 6, 0, 167, 169, 3, 4, 2, 0, 168, 165, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 168, 167, 1, 0, 0, 0, 169, 11, 1, 0, 0, 0, 170, 171, 5, 32, 0, 0, 171, 172, 3, 14, 7, 0, 172, 13, 1, 0, 0, 0, 173, 174, 3, 16, 8, 0, 174, 175, 5, 12, 0, 0, 175, 15, 1, 0, 0, 0, 176, 186, 3, 26, 13, 0, 177, 179, 5, 12, 0, 0, 178, 180, 5, 36, 0, 0, 179, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 185, 3, 26, 13, 0, 184, 177, 1, 0, 0, 0, 185, 188, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 17, 1, 0, 0, 0, 188, 186, 1, 0, 0, 0, 189, 190, 3, 20, 10, 0, 190, 19, 1, 0, 0, 0, 191, 194, 3, 22, 11, 0, 192, 193, 5, 36, 0, 0, 193, 195, 3, 24, 12, 0, 194, 192, 1, 0, 0, 0, 194, 195, 1, 0, 0, 0, 195, 196, 1, 0, 0, 0, 196, 197, 3, 16, 8, 0, 197, 198, 5, 12, 0, 0, 198, 21, 1, 0, 0, 0, 199, 200, 7, 0, 0, 0, 200, 23, 1, 0, 0, 0, 201, 202, 5, 17, 0, 0, 202, 25, 1, 0, 0, 0, 203, 205, 3, 28, 14, 0, 204, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 204, 1, 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 27, 1, 0, 0, 0, 208, 209, 5, 36, 0, 0, 209, 210, 3, 30, 15, 0, 210, 29, 1, 0, 0, 0, 211, 214, 3, 70, 35, 0, 212, 214, 3, 32, 16, 0, 213, 211, 1, 0, 0, 0, 213, 212, 1, 0, 0, 0, 214, 31, 1, 0, 0, 0, 215, 217, 3, 34, 17, 0, 216, 215, 1, 0, 0, 0, 217, 220, 1, 0, 0, 0, 218, 216, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, 219, 222, 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 221, 223, 3, 36, 18, 0, 222, 221, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 227, 1, 0, 0, 0, 224, 226, 3, 38, 19, 0, 225, 224, 1, 0, 0, 0, 226, 229, 1, 0, 0, 0, 227, 225, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 33, 1, 0, 0, 0, 229, 227, 1, 0, 0, 0, 230, 233, 3, 66, 33, 0, 231, 233, 5, 32, 0, 0, 232, 230, 1, 0, 0, 0, 232, 231, 1, 0, 0, 0, 233, 35, 1, 0, 0, 0, 234, 237, 3, 42, 21, 0, 235, 237, 3, 40, 20, 0, 236, 234, 1, 0, 0, 0, 236, 235, 1, 0, 0, 0, 237, 37, 1, 0, 0, 0, 238, 243, 3, 64, 32, 0, 239, 242, 3, 64, 32, 0, 240, 242, 3, 58, 29, 0, 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 39, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 258, 3, 72, 36, 0, 247, 258, 3, 82, 41, 0, 248, 258, 3, 48, 24, 0, 249, 258, 3, 112, 56, 0, 250, 258, 3, 56, 28, 0, 251, 258, 3, 84, 42, 0, 252, 258, 3, 86, 43, 0, 253, 258, 3, 88, 44, 0, 254, 258, 3, 90, 45, 0, 255, 258, 3, 92, 46, 0, 256, 258, 3, 24, 12, 0, 257, 246, 1, 0, 0, 0, 257, 247, 1, 0, 0, 0, 257, 248, 1, 0, 0, 0, 257, 249, 1, 0, 0, 0, 257, 250, 1, 0, 0, 0, 257, 251, 1, 0, 0, 0, 257, 252, 1, 0, 0, 0, 257, 253, 1, 0, 0, 0, 257, 254, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 256, 1, 0, 0, 0, 258, 41, 1, 0, 0, 0, 259, 261, 5, 43, 0, 0, 260, 262, 3, 44, 22, 0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261, 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 266, 1, 0, 0, 0, 265, 267, 5, 43, 0, 0, 266, 265, 1, 0, 0, 0, 266, 267, 1, 0, 0, 0, 267, 278, 1, 0, 0, 0, 268, 270, 5, 44, 0, 0, 269, 271, 3, 44, 22, 0, 270, 269, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 275, 1, 0, 0, 0, 274, 276, 5, 44, 0, 0, 275, 274, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 278, 1, 0, 0, 0, 277, 259, 1, 0, 0, 0, 277, 268, 1, 0, 0, 0, 278, 43, 1, 0, 0, 0, 279, 284, 3, 64, 32, 0, 280, 284, 3, 40, 20, 0, 281, 284, 5, 1, 0, 0, 282, 284, 5, 2, 0, 0, 283, 279, 1, 0, 0, 0, 283, 280, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 283, 282, 1, 0, 0, 0, 284, 45, 1, 0, 0, 0, 285, 286, 5, 19, 0, 0, 286, 47, 1, 0, 0, 0, 287, 290, 3, 50, 25, 0, 288, 290, 3, 54, 27, 0, 289, 287, 1, 0, 0, 0, 289, 288, 1, 0, 0, 0, 290, 49, 1, 0, 0, 0, 291, 292, 3, 58, 29, 0, 292, 293, 5, 49, 0, 0, 293, 294, 5, 49, 0, 0, 294, 295, 3, 52, 26, 0, 295, 51, 1, 0, 0, 0, 296, 299, 3, 58, 29, 0, 297, 299, 3, 112, 56, 0, 298, 296, 1, 0, 0, 0, 298, 297, 1, 0, 0, 0, 299, 53, 1, 0, 0, 0, 300, 301, 5, 3, 0, 0, 301, 302, 3, 58, 29, 0, 302, 303, 5, 49, 0, 0, 303, 305, 5, 49, 0, 0, 304, 306, 5, 36, 0, 0, 305, 304, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307, 312, 3, 56, 28, 0, 308, 309, 5, 36, 0, 0, 309, 311, 3, 56, 28, 0, 310, 308, 1, 0, 0, 0, 311, 314, 1, 0, 0, 0, 312, 310, 1, 0, 0, 0, 312, 313, 1, 0, 0, 0, 313, 315, 1, 0, 0, 0, 314, 312, 1, 0, 0, 0, 315, 316, 5, 4, 0, 0, 316, 55, 1, 0, 0, 0, 317, 326, 3, 58, 29, 0, 318, 320, 3, 64, 32, 0, 319, 318, 1, 0, 0, 0, 320, 321, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 325, 1, 0, 0, 0, 323, 325, 3, 58, 29, 0, 324, 319, 1, 0, 0, 0, 324, 323, 1, 0, 0, 0, 325, 328, 1, 0, 0, 0, 326, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 57, 1, 0, 0, 0, 328, 326, 1, 0, 0, 0, 329, 339, 5, 18, 0, 0, 330, 339, 5, 20, 0, 0, 331, 339, 5, 17, 0, 0, 332, 339, 3, 60, 30, 0, 333, 339, 3, 62, 31, 0, 334, 339, 3, 46, 23, 0, 335, 339, 3, 112, 56, 0, 336, 339, 5, 13, 0, 0, 337, 339, 5, 14, 0, 0, 338, 329, 1, 0, 0, 0, 338, 330, 1, 0, 0, 0, 338, 331, 1, 0, 0, 0, 338, 332, 1, 0, 0, 0, 338, 333, 1, 0, 0, 0, 338, 334, 1, 0, 0, 0, 338, 335, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 338, 337, 1, 0, 0, 0, 339, 59, 1, 0, 0, 0, 340, 341, 5, 15, 0, 0, 341, 61, 1, 0, 0, 0, 342, 343, 5, 16, 0, 0, 343, 63, 1, 0, 0, 0, 344, 354, 5, 43, 0, 0, 345, 354, 5, 44, 0, 0, 346, 354, 5, 31, 0, 0, 347, 354, 5, 30, 0, 0, 348, 354, 3, 66, 33, 0, 349, 354, 3, 70, 35, 0, 350, 354, 3, 68, 34, 0, 351, 354, 5, 3, 0, 0, 352, 354, 5, 4, 0, 0, 353, 344, 1, 0, 0, 0, 353, 345, 1, 0, 0, 0, 353, 346, 1, 0, 0, 0, 353, 347, 1, 0, 0, 0, 353, 348, 1, 0, 0, 0, 353, 349, 1, 0, 0, 0, 353, 350, 1, 0, 0, 0, 353, 351, 1, 0, 0, 0, 353, 352, 1, 0, 0, 0, 354, 65, 1, 0, 0, 0, 355, 356, 7, 1, 0, 0, 356, 67, 1, 0, 0, 0, 357, 358, 7, 2, 0, 0, 358, 69, 1, 0, 0, 0, 359, 360, 7, 3, 0, 0, 360, 71, 1, 0, 0, 0, 361, 366, 3, 74, 37, 0, 362, 366, 3, 76, 38, 0, 363, 366, 3, 78, 39, 0, 364, 366, 3, 80, 40, 0, 365, 361, 1, 0, 0, 0, 365, 362, 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 365, 364, 1, 0, 0, 0, 366, 73, 1, 0, 0, 0, 367, 368, 5, 39, 0, 0, 368, 369, 3, 58, 29, 0, 369, 75, 1, 0, 0, 0, 370, 371, 5, 40, 0, 0, 371, 372, 3, 58, 29, 0, 372, 77, 1, 0, 0, 0, 373, 374, 5, 42, 0, 0, 374, 375, 3, 58, 29, 0, 375, 79, 1, 0, 0, 0, 376, 377, 5, 41, 0, 0, 377, 378, 3, 58, 29, 0, 378, 81, 1, 0, 0, 0, 379, 380, 5, 1, 0, 0, 380, 381, 3, 56, 28, 0, 381, 382, 5, 2, 0, 0, 382, 83, 1, 0, 0, 0, 383, 384, 5, 5, 0, 0, 384, 385, 5, 18, 0, 0, 385, 386, 5, 4, 0, 0, 386, 85, 1, 0, 0, 0, 387, 388, 5, 6, 0, 0, 388, 389, 5, 18, 0, 0, 389, 390, 5, 4, 0, 0, 390, 87, 1, 0, 0, 0, 391, 392, 5, 3, 0, 0, 392, 393, 3, 46, 23, 0, 393, 394, 5, 4, 0, 0, 394, 89, 1, 0, 0, 0, 395, 396, 5, 7, 0, 0, 396, 397, 3, 56, 28, 0, 397, 398, 5, 8, 0, 0, 398, 91, 1, 0, 0, 0, 399, 400, 5, 9, 0, 0, 400, 401, 5, 18, 0, 0, 401, 402, 5, 4, 0, 0, 402, 93, 1, 0, 0, 0, 403, 407, 3, 102, 51, 0, 404, 406, 5, 12, 0, 0, 405, 404, 1, 0, 0, 0, 406, 409, 1, 0, 0, 0, 407, 405, 1, 0, 0, 0, 407, 408, 1, 0, 0, 0, 408, 413, 1, 0, 0, 0, 409, 407, 1, 0, 0, 0, 410, 412, 3, 8, 4, 0, 411, 410, 1, 0, 0, 0, 412, 415, 1, 0, 0, 0, 413, 411, 1, 0, 0, 0, 413, 414, 1, 0, 0, 0, 414, 422, 1, 0, 0, 0, 415, 413, 1, 0, 0, 0, 416, 418, 5, 12, 0, 0, 417, 416, 1, 0, 0, 0, 417, 418, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 421, 3, 96, 48, 0, 420, 417, 1, 0, 0, 0, 421, 424, 1, 0, 0, 0, 422, 420, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423, 95, 1, 0, 0, 0, 424, 422, 1, 0, 0, 0, 425, 429, 3, 104, 52, 0, 426, 428, 5, 12, 0, 0, 427, 426, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 435, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432, 434, 3, 8, 4, 0, 433, 432, 1, 0, 0, 0, 434, 437, 1, 0, 0, 0, 435, 433, 1, 0, 0, 0, 435, 436, 1, 0, 0, 0, 436, 444, 1, 0, 0, 0, 437, 435, 1, 0, 0, 0, 438, 440, 5, 12, 0, 0, 439, 438, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 443, 3, 98, 49, 0, 442, 439, 1, 0, 0, 0, 443, 446, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 97, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 447, 451, 3, 106, 53, 0, 448, 450, 5, 12, 0, 0, 449, 448, 1, 0, 0, 0, 450, 453, 1, 0, 0, 0, 451, 449, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 457, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 454, 456, 3, 8, 4, 0, 455, 454, 1, 0, 0, 0, 456, 459, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 457, 458, 1, 0, 0, 0, 458, 466, 1, 0, 0, 0, 459, 457, 1, 0, 0, 0, 460, 462, 5, 12, 0, 0, 461, 460, 1, 0, 0, 0, 461, 462, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 465, 3, 100, 50, 0, 464, 461, 1, 0, 0, 0, 465, 468, 1, 0, 0, 0, 466, 464, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 99, 1, 0, 0, 0, 468, 466, 1, 0, 0, 0, 469, 473, 3, 108, 54, 0, 470, 472, 5, 12, 0, 0, 471, 470, 1, 0, 0, 0, 472, 475, 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 479, 1, 0, 0, 0, 475, 473, 1, 0, 0, 0, 476, 478, 3, 8, 4, 0, 477, 476, 1, 0, 0, 0, 478, 481, 1, 0, 0, 0, 479, 477, 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 101, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 482, 483, 5, 22, 0, 0, 483, 484, 3, 26, 13, 0, 484, 485, 3, 110, 55, 0, 485, 103, 1, 0, 0, 0, 486, 487, 5, 23, 0, 0, 487, 488, 3, 26, 13, 0, 488, 489, 3, 110, 55, 0, 489, 105, 1, 0, 0, 0, 490, 491, 5, 24, 0, 0, 491, 492, 3, 26, 13, 0, 492, 493, 3, 110, 55, 0, 493, 107, 1, 0, 0, 0, 494, 495, 5, 25, 0, 0, 495, 496, 3, 26, 13, 0, 496, 497, 3, 110, 55, 0, 497, 109, 1, 0, 0, 0, 498, 499, 7, 4, 0, 0, 499, 111, 1, 0, 0, 0, 500, 501, 7, 5, 0, 0, 501, 506, 5, 18, 0, 0, 502, 503, 5, 33, 0, 0, 503, 505, 5, 18, 0, 0, 504, 502, 1, 0, 0, 0, 505, 508, 1, 0, 0, 0, 506, 504, 1, 0, 0, 0, 506, 507, 1, 0, 0, 0, 507, 511, 1, 0, 0, 0, 508, 506, 1, 0, 0, 0, 509, 510, 5, 49, 0, 0, 510, 512, 5, 20, 0, 0, 511, 509, 1, 0, 0, 0, 511, 512, 1, 0, 0, 0, 512, 530, 1, 0, 0, 0, 513, 515, 5, 34, 0, 0, 514, 516, 5, 42, 0, 0, 515, 514, 1, 0, 0, 0, 515, 516, 1, 0, 0, 0, 516, 517, 1, 0, 0, 0, 517, 525, 5, 18, 0, 0, 518, 520, 7, 6, 0, 0, 519, 521, 5, 42, 0, 0, 520, 519, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 524, 7, 7, 0, 0, 523, 518, 1, 0, 0, 0, 524, 527, 1, 0, 0, 0, 525, 523, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 529, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 528, 513, 1, 0, 0, 0, 529, 532, 1, 0, 0, 0, 530, 528, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 113, 1, 0, 0, 0, 532, 530, 1, 0, 0, 0, 59, 116, 123, 127, 134, 139, 145, 151, 157, 162, 168, 181, 186, 194, 206, 213, 218, 222, 227, 232, 236, 241, 243, 257, 263, 266, 272, 275, 277, 283, 289, 298, 305, 312, 321, 324, 326, 338, 353, 365, 407, 413, 417, 422, 429, 435, 439, 444, 451, 457, 461, 466, 473, 479, 506, 511, 515, 520, 525, 530] \ No newline at end of file diff --git a/src/zorg/grammar/zorg_file/ZorgFileParser.py b/src/zorg/grammar/zorg_file/ZorgFileParser.py index 4d4ebb1..55af345 100644 --- a/src/zorg/grammar/zorg_file/ZorgFileParser.py +++ b/src/zorg/grammar/zorg_file/ZorgFileParser.py @@ -10,7 +10,7 @@ def serializedATN(): return [ - 4,1,49,531,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, + 4,1,49,534,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, @@ -54,157 +54,158 @@ def serializedATN(): 475,9,50,1,50,5,50,478,8,50,10,50,12,50,481,9,50,1,51,1,51,1,51, 1,51,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54, 1,55,1,55,1,56,1,56,1,56,1,56,5,56,505,8,56,10,56,12,56,508,9,56, - 1,56,1,56,3,56,512,8,56,1,56,1,56,1,56,1,56,3,56,518,8,56,1,56,5, - 56,521,8,56,10,56,12,56,524,9,56,5,56,526,8,56,10,56,12,56,529,9, - 56,1,56,0,0,57,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,0,8,3, - 0,13,14,45,45,47,48,4,0,26,29,35,35,37,38,45,48,3,0,32,34,39,39, - 49,49,1,0,39,42,1,1,12,12,1,0,10,11,3,0,27,29,32,32,49,49,2,0,18, - 18,34,34,559,0,114,1,0,0,0,2,121,1,0,0,0,4,125,1,0,0,0,6,132,1,0, - 0,0,8,155,1,0,0,0,10,168,1,0,0,0,12,170,1,0,0,0,14,173,1,0,0,0,16, - 176,1,0,0,0,18,189,1,0,0,0,20,191,1,0,0,0,22,199,1,0,0,0,24,201, - 1,0,0,0,26,204,1,0,0,0,28,208,1,0,0,0,30,213,1,0,0,0,32,218,1,0, - 0,0,34,232,1,0,0,0,36,236,1,0,0,0,38,238,1,0,0,0,40,257,1,0,0,0, - 42,277,1,0,0,0,44,283,1,0,0,0,46,285,1,0,0,0,48,289,1,0,0,0,50,291, - 1,0,0,0,52,298,1,0,0,0,54,300,1,0,0,0,56,317,1,0,0,0,58,338,1,0, - 0,0,60,340,1,0,0,0,62,342,1,0,0,0,64,353,1,0,0,0,66,355,1,0,0,0, - 68,357,1,0,0,0,70,359,1,0,0,0,72,365,1,0,0,0,74,367,1,0,0,0,76,370, - 1,0,0,0,78,373,1,0,0,0,80,376,1,0,0,0,82,379,1,0,0,0,84,383,1,0, - 0,0,86,387,1,0,0,0,88,391,1,0,0,0,90,395,1,0,0,0,92,399,1,0,0,0, - 94,403,1,0,0,0,96,425,1,0,0,0,98,447,1,0,0,0,100,469,1,0,0,0,102, - 482,1,0,0,0,104,486,1,0,0,0,106,490,1,0,0,0,108,494,1,0,0,0,110, - 498,1,0,0,0,112,500,1,0,0,0,114,116,3,2,1,0,115,117,3,6,3,0,116, - 115,1,0,0,0,116,117,1,0,0,0,117,118,1,0,0,0,118,119,5,0,0,1,119, - 1,1,0,0,0,120,122,3,4,2,0,121,120,1,0,0,0,122,123,1,0,0,0,123,121, - 1,0,0,0,123,124,1,0,0,0,124,3,1,0,0,0,125,127,5,39,0,0,126,128,3, - 26,13,0,127,126,1,0,0,0,127,128,1,0,0,0,128,129,1,0,0,0,129,130, - 5,12,0,0,130,5,1,0,0,0,131,133,5,12,0,0,132,131,1,0,0,0,133,134, - 1,0,0,0,134,132,1,0,0,0,134,135,1,0,0,0,135,139,1,0,0,0,136,138, - 3,8,4,0,137,136,1,0,0,0,138,141,1,0,0,0,139,137,1,0,0,0,139,140, - 1,0,0,0,140,145,1,0,0,0,141,139,1,0,0,0,142,144,3,96,48,0,143,142, - 1,0,0,0,144,147,1,0,0,0,145,143,1,0,0,0,145,146,1,0,0,0,146,151, - 1,0,0,0,147,145,1,0,0,0,148,150,3,94,47,0,149,148,1,0,0,0,150,153, - 1,0,0,0,151,149,1,0,0,0,151,152,1,0,0,0,152,7,1,0,0,0,153,151,1, - 0,0,0,154,156,3,10,5,0,155,154,1,0,0,0,156,157,1,0,0,0,157,155,1, - 0,0,0,157,158,1,0,0,0,158,162,1,0,0,0,159,161,5,12,0,0,160,159,1, - 0,0,0,161,164,1,0,0,0,162,160,1,0,0,0,162,163,1,0,0,0,163,9,1,0, - 0,0,164,162,1,0,0,0,165,169,3,18,9,0,166,169,3,12,6,0,167,169,3, - 4,2,0,168,165,1,0,0,0,168,166,1,0,0,0,168,167,1,0,0,0,169,11,1,0, - 0,0,170,171,5,32,0,0,171,172,3,14,7,0,172,13,1,0,0,0,173,174,3,16, - 8,0,174,175,5,12,0,0,175,15,1,0,0,0,176,186,3,26,13,0,177,179,5, - 12,0,0,178,180,5,36,0,0,179,178,1,0,0,0,180,181,1,0,0,0,181,179, - 1,0,0,0,181,182,1,0,0,0,182,183,1,0,0,0,183,185,3,26,13,0,184,177, - 1,0,0,0,185,188,1,0,0,0,186,184,1,0,0,0,186,187,1,0,0,0,187,17,1, - 0,0,0,188,186,1,0,0,0,189,190,3,20,10,0,190,19,1,0,0,0,191,194,3, - 22,11,0,192,193,5,36,0,0,193,195,3,24,12,0,194,192,1,0,0,0,194,195, - 1,0,0,0,195,196,1,0,0,0,196,197,3,16,8,0,197,198,5,12,0,0,198,21, - 1,0,0,0,199,200,7,0,0,0,200,23,1,0,0,0,201,202,5,17,0,0,202,25,1, - 0,0,0,203,205,3,28,14,0,204,203,1,0,0,0,205,206,1,0,0,0,206,204, - 1,0,0,0,206,207,1,0,0,0,207,27,1,0,0,0,208,209,5,36,0,0,209,210, - 3,30,15,0,210,29,1,0,0,0,211,214,3,70,35,0,212,214,3,32,16,0,213, - 211,1,0,0,0,213,212,1,0,0,0,214,31,1,0,0,0,215,217,3,34,17,0,216, - 215,1,0,0,0,217,220,1,0,0,0,218,216,1,0,0,0,218,219,1,0,0,0,219, - 222,1,0,0,0,220,218,1,0,0,0,221,223,3,36,18,0,222,221,1,0,0,0,222, - 223,1,0,0,0,223,227,1,0,0,0,224,226,3,38,19,0,225,224,1,0,0,0,226, - 229,1,0,0,0,227,225,1,0,0,0,227,228,1,0,0,0,228,33,1,0,0,0,229,227, - 1,0,0,0,230,233,3,66,33,0,231,233,5,32,0,0,232,230,1,0,0,0,232,231, - 1,0,0,0,233,35,1,0,0,0,234,237,3,42,21,0,235,237,3,40,20,0,236,234, - 1,0,0,0,236,235,1,0,0,0,237,37,1,0,0,0,238,243,3,64,32,0,239,242, - 3,64,32,0,240,242,3,58,29,0,241,239,1,0,0,0,241,240,1,0,0,0,242, - 245,1,0,0,0,243,241,1,0,0,0,243,244,1,0,0,0,244,39,1,0,0,0,245,243, - 1,0,0,0,246,258,3,72,36,0,247,258,3,82,41,0,248,258,3,48,24,0,249, - 258,3,112,56,0,250,258,3,56,28,0,251,258,3,84,42,0,252,258,3,86, - 43,0,253,258,3,88,44,0,254,258,3,90,45,0,255,258,3,92,46,0,256,258, - 3,24,12,0,257,246,1,0,0,0,257,247,1,0,0,0,257,248,1,0,0,0,257,249, - 1,0,0,0,257,250,1,0,0,0,257,251,1,0,0,0,257,252,1,0,0,0,257,253, - 1,0,0,0,257,254,1,0,0,0,257,255,1,0,0,0,257,256,1,0,0,0,258,41,1, - 0,0,0,259,261,5,43,0,0,260,262,3,44,22,0,261,260,1,0,0,0,262,263, - 1,0,0,0,263,261,1,0,0,0,263,264,1,0,0,0,264,266,1,0,0,0,265,267, - 5,43,0,0,266,265,1,0,0,0,266,267,1,0,0,0,267,278,1,0,0,0,268,270, - 5,44,0,0,269,271,3,44,22,0,270,269,1,0,0,0,271,272,1,0,0,0,272,270, - 1,0,0,0,272,273,1,0,0,0,273,275,1,0,0,0,274,276,5,44,0,0,275,274, - 1,0,0,0,275,276,1,0,0,0,276,278,1,0,0,0,277,259,1,0,0,0,277,268, - 1,0,0,0,278,43,1,0,0,0,279,284,3,64,32,0,280,284,3,40,20,0,281,284, - 5,1,0,0,282,284,5,2,0,0,283,279,1,0,0,0,283,280,1,0,0,0,283,281, - 1,0,0,0,283,282,1,0,0,0,284,45,1,0,0,0,285,286,5,19,0,0,286,47,1, - 0,0,0,287,290,3,50,25,0,288,290,3,54,27,0,289,287,1,0,0,0,289,288, - 1,0,0,0,290,49,1,0,0,0,291,292,3,58,29,0,292,293,5,49,0,0,293,294, - 5,49,0,0,294,295,3,52,26,0,295,51,1,0,0,0,296,299,3,58,29,0,297, - 299,3,112,56,0,298,296,1,0,0,0,298,297,1,0,0,0,299,53,1,0,0,0,300, - 301,5,3,0,0,301,302,3,58,29,0,302,303,5,49,0,0,303,305,5,49,0,0, - 304,306,5,36,0,0,305,304,1,0,0,0,305,306,1,0,0,0,306,307,1,0,0,0, - 307,312,3,56,28,0,308,309,5,36,0,0,309,311,3,56,28,0,310,308,1,0, - 0,0,311,314,1,0,0,0,312,310,1,0,0,0,312,313,1,0,0,0,313,315,1,0, - 0,0,314,312,1,0,0,0,315,316,5,4,0,0,316,55,1,0,0,0,317,326,3,58, - 29,0,318,320,3,64,32,0,319,318,1,0,0,0,320,321,1,0,0,0,321,319,1, - 0,0,0,321,322,1,0,0,0,322,325,1,0,0,0,323,325,3,58,29,0,324,319, - 1,0,0,0,324,323,1,0,0,0,325,328,1,0,0,0,326,324,1,0,0,0,326,327, - 1,0,0,0,327,57,1,0,0,0,328,326,1,0,0,0,329,339,5,18,0,0,330,339, - 5,20,0,0,331,339,5,17,0,0,332,339,3,60,30,0,333,339,3,62,31,0,334, - 339,3,46,23,0,335,339,3,112,56,0,336,339,5,13,0,0,337,339,5,14,0, - 0,338,329,1,0,0,0,338,330,1,0,0,0,338,331,1,0,0,0,338,332,1,0,0, - 0,338,333,1,0,0,0,338,334,1,0,0,0,338,335,1,0,0,0,338,336,1,0,0, - 0,338,337,1,0,0,0,339,59,1,0,0,0,340,341,5,15,0,0,341,61,1,0,0,0, - 342,343,5,16,0,0,343,63,1,0,0,0,344,354,5,43,0,0,345,354,5,44,0, - 0,346,354,5,31,0,0,347,354,5,30,0,0,348,354,3,66,33,0,349,354,3, - 70,35,0,350,354,3,68,34,0,351,354,5,3,0,0,352,354,5,4,0,0,353,344, - 1,0,0,0,353,345,1,0,0,0,353,346,1,0,0,0,353,347,1,0,0,0,353,348, - 1,0,0,0,353,349,1,0,0,0,353,350,1,0,0,0,353,351,1,0,0,0,353,352, - 1,0,0,0,354,65,1,0,0,0,355,356,7,1,0,0,356,67,1,0,0,0,357,358,7, - 2,0,0,358,69,1,0,0,0,359,360,7,3,0,0,360,71,1,0,0,0,361,366,3,74, - 37,0,362,366,3,76,38,0,363,366,3,78,39,0,364,366,3,80,40,0,365,361, - 1,0,0,0,365,362,1,0,0,0,365,363,1,0,0,0,365,364,1,0,0,0,366,73,1, - 0,0,0,367,368,5,39,0,0,368,369,3,58,29,0,369,75,1,0,0,0,370,371, - 5,40,0,0,371,372,3,58,29,0,372,77,1,0,0,0,373,374,5,42,0,0,374,375, - 3,58,29,0,375,79,1,0,0,0,376,377,5,41,0,0,377,378,3,58,29,0,378, - 81,1,0,0,0,379,380,5,1,0,0,380,381,3,56,28,0,381,382,5,2,0,0,382, - 83,1,0,0,0,383,384,5,5,0,0,384,385,5,18,0,0,385,386,5,4,0,0,386, - 85,1,0,0,0,387,388,5,6,0,0,388,389,5,18,0,0,389,390,5,4,0,0,390, - 87,1,0,0,0,391,392,5,3,0,0,392,393,3,46,23,0,393,394,5,4,0,0,394, - 89,1,0,0,0,395,396,5,7,0,0,396,397,3,56,28,0,397,398,5,8,0,0,398, - 91,1,0,0,0,399,400,5,9,0,0,400,401,5,18,0,0,401,402,5,4,0,0,402, - 93,1,0,0,0,403,407,3,102,51,0,404,406,5,12,0,0,405,404,1,0,0,0,406, - 409,1,0,0,0,407,405,1,0,0,0,407,408,1,0,0,0,408,413,1,0,0,0,409, - 407,1,0,0,0,410,412,3,8,4,0,411,410,1,0,0,0,412,415,1,0,0,0,413, - 411,1,0,0,0,413,414,1,0,0,0,414,422,1,0,0,0,415,413,1,0,0,0,416, - 418,5,12,0,0,417,416,1,0,0,0,417,418,1,0,0,0,418,419,1,0,0,0,419, - 421,3,96,48,0,420,417,1,0,0,0,421,424,1,0,0,0,422,420,1,0,0,0,422, - 423,1,0,0,0,423,95,1,0,0,0,424,422,1,0,0,0,425,429,3,104,52,0,426, - 428,5,12,0,0,427,426,1,0,0,0,428,431,1,0,0,0,429,427,1,0,0,0,429, - 430,1,0,0,0,430,435,1,0,0,0,431,429,1,0,0,0,432,434,3,8,4,0,433, - 432,1,0,0,0,434,437,1,0,0,0,435,433,1,0,0,0,435,436,1,0,0,0,436, - 444,1,0,0,0,437,435,1,0,0,0,438,440,5,12,0,0,439,438,1,0,0,0,439, - 440,1,0,0,0,440,441,1,0,0,0,441,443,3,98,49,0,442,439,1,0,0,0,443, - 446,1,0,0,0,444,442,1,0,0,0,444,445,1,0,0,0,445,97,1,0,0,0,446,444, - 1,0,0,0,447,451,3,106,53,0,448,450,5,12,0,0,449,448,1,0,0,0,450, - 453,1,0,0,0,451,449,1,0,0,0,451,452,1,0,0,0,452,457,1,0,0,0,453, - 451,1,0,0,0,454,456,3,8,4,0,455,454,1,0,0,0,456,459,1,0,0,0,457, - 455,1,0,0,0,457,458,1,0,0,0,458,466,1,0,0,0,459,457,1,0,0,0,460, - 462,5,12,0,0,461,460,1,0,0,0,461,462,1,0,0,0,462,463,1,0,0,0,463, - 465,3,100,50,0,464,461,1,0,0,0,465,468,1,0,0,0,466,464,1,0,0,0,466, - 467,1,0,0,0,467,99,1,0,0,0,468,466,1,0,0,0,469,473,3,108,54,0,470, - 472,5,12,0,0,471,470,1,0,0,0,472,475,1,0,0,0,473,471,1,0,0,0,473, - 474,1,0,0,0,474,479,1,0,0,0,475,473,1,0,0,0,476,478,3,8,4,0,477, - 476,1,0,0,0,478,481,1,0,0,0,479,477,1,0,0,0,479,480,1,0,0,0,480, - 101,1,0,0,0,481,479,1,0,0,0,482,483,5,22,0,0,483,484,3,26,13,0,484, - 485,3,110,55,0,485,103,1,0,0,0,486,487,5,23,0,0,487,488,3,26,13, - 0,488,489,3,110,55,0,489,105,1,0,0,0,490,491,5,24,0,0,491,492,3, - 26,13,0,492,493,3,110,55,0,493,107,1,0,0,0,494,495,5,25,0,0,495, - 496,3,26,13,0,496,497,3,110,55,0,497,109,1,0,0,0,498,499,7,4,0,0, - 499,111,1,0,0,0,500,501,7,5,0,0,501,506,5,18,0,0,502,503,5,33,0, - 0,503,505,5,18,0,0,504,502,1,0,0,0,505,508,1,0,0,0,506,504,1,0,0, - 0,506,507,1,0,0,0,507,511,1,0,0,0,508,506,1,0,0,0,509,510,5,49,0, - 0,510,512,5,20,0,0,511,509,1,0,0,0,511,512,1,0,0,0,512,527,1,0,0, - 0,513,514,5,34,0,0,514,522,5,18,0,0,515,517,7,6,0,0,516,518,5,42, - 0,0,517,516,1,0,0,0,517,518,1,0,0,0,518,519,1,0,0,0,519,521,7,7, - 0,0,520,515,1,0,0,0,521,524,1,0,0,0,522,520,1,0,0,0,522,523,1,0, - 0,0,523,526,1,0,0,0,524,522,1,0,0,0,525,513,1,0,0,0,526,529,1,0, - 0,0,527,525,1,0,0,0,527,528,1,0,0,0,528,113,1,0,0,0,529,527,1,0, - 0,0,58,116,123,127,134,139,145,151,157,162,168,181,186,194,206,213, - 218,222,227,232,236,241,243,257,263,266,272,275,277,283,289,298, - 305,312,321,324,326,338,353,365,407,413,417,422,429,435,439,444, - 451,457,461,466,473,479,506,511,517,522,527 + 1,56,1,56,3,56,512,8,56,1,56,1,56,3,56,516,8,56,1,56,1,56,1,56,3, + 56,521,8,56,1,56,5,56,524,8,56,10,56,12,56,527,9,56,5,56,529,8,56, + 10,56,12,56,532,9,56,1,56,0,0,57,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,0,8,3,0,13,14,45,45,47,48,4,0,26,29,35,35,37,38,45,48, + 3,0,32,34,39,39,49,49,1,0,39,42,1,1,12,12,1,0,10,11,3,0,27,29,32, + 32,49,49,2,0,18,18,34,34,563,0,114,1,0,0,0,2,121,1,0,0,0,4,125,1, + 0,0,0,6,132,1,0,0,0,8,155,1,0,0,0,10,168,1,0,0,0,12,170,1,0,0,0, + 14,173,1,0,0,0,16,176,1,0,0,0,18,189,1,0,0,0,20,191,1,0,0,0,22,199, + 1,0,0,0,24,201,1,0,0,0,26,204,1,0,0,0,28,208,1,0,0,0,30,213,1,0, + 0,0,32,218,1,0,0,0,34,232,1,0,0,0,36,236,1,0,0,0,38,238,1,0,0,0, + 40,257,1,0,0,0,42,277,1,0,0,0,44,283,1,0,0,0,46,285,1,0,0,0,48,289, + 1,0,0,0,50,291,1,0,0,0,52,298,1,0,0,0,54,300,1,0,0,0,56,317,1,0, + 0,0,58,338,1,0,0,0,60,340,1,0,0,0,62,342,1,0,0,0,64,353,1,0,0,0, + 66,355,1,0,0,0,68,357,1,0,0,0,70,359,1,0,0,0,72,365,1,0,0,0,74,367, + 1,0,0,0,76,370,1,0,0,0,78,373,1,0,0,0,80,376,1,0,0,0,82,379,1,0, + 0,0,84,383,1,0,0,0,86,387,1,0,0,0,88,391,1,0,0,0,90,395,1,0,0,0, + 92,399,1,0,0,0,94,403,1,0,0,0,96,425,1,0,0,0,98,447,1,0,0,0,100, + 469,1,0,0,0,102,482,1,0,0,0,104,486,1,0,0,0,106,490,1,0,0,0,108, + 494,1,0,0,0,110,498,1,0,0,0,112,500,1,0,0,0,114,116,3,2,1,0,115, + 117,3,6,3,0,116,115,1,0,0,0,116,117,1,0,0,0,117,118,1,0,0,0,118, + 119,5,0,0,1,119,1,1,0,0,0,120,122,3,4,2,0,121,120,1,0,0,0,122,123, + 1,0,0,0,123,121,1,0,0,0,123,124,1,0,0,0,124,3,1,0,0,0,125,127,5, + 39,0,0,126,128,3,26,13,0,127,126,1,0,0,0,127,128,1,0,0,0,128,129, + 1,0,0,0,129,130,5,12,0,0,130,5,1,0,0,0,131,133,5,12,0,0,132,131, + 1,0,0,0,133,134,1,0,0,0,134,132,1,0,0,0,134,135,1,0,0,0,135,139, + 1,0,0,0,136,138,3,8,4,0,137,136,1,0,0,0,138,141,1,0,0,0,139,137, + 1,0,0,0,139,140,1,0,0,0,140,145,1,0,0,0,141,139,1,0,0,0,142,144, + 3,96,48,0,143,142,1,0,0,0,144,147,1,0,0,0,145,143,1,0,0,0,145,146, + 1,0,0,0,146,151,1,0,0,0,147,145,1,0,0,0,148,150,3,94,47,0,149,148, + 1,0,0,0,150,153,1,0,0,0,151,149,1,0,0,0,151,152,1,0,0,0,152,7,1, + 0,0,0,153,151,1,0,0,0,154,156,3,10,5,0,155,154,1,0,0,0,156,157,1, + 0,0,0,157,155,1,0,0,0,157,158,1,0,0,0,158,162,1,0,0,0,159,161,5, + 12,0,0,160,159,1,0,0,0,161,164,1,0,0,0,162,160,1,0,0,0,162,163,1, + 0,0,0,163,9,1,0,0,0,164,162,1,0,0,0,165,169,3,18,9,0,166,169,3,12, + 6,0,167,169,3,4,2,0,168,165,1,0,0,0,168,166,1,0,0,0,168,167,1,0, + 0,0,169,11,1,0,0,0,170,171,5,32,0,0,171,172,3,14,7,0,172,13,1,0, + 0,0,173,174,3,16,8,0,174,175,5,12,0,0,175,15,1,0,0,0,176,186,3,26, + 13,0,177,179,5,12,0,0,178,180,5,36,0,0,179,178,1,0,0,0,180,181,1, + 0,0,0,181,179,1,0,0,0,181,182,1,0,0,0,182,183,1,0,0,0,183,185,3, + 26,13,0,184,177,1,0,0,0,185,188,1,0,0,0,186,184,1,0,0,0,186,187, + 1,0,0,0,187,17,1,0,0,0,188,186,1,0,0,0,189,190,3,20,10,0,190,19, + 1,0,0,0,191,194,3,22,11,0,192,193,5,36,0,0,193,195,3,24,12,0,194, + 192,1,0,0,0,194,195,1,0,0,0,195,196,1,0,0,0,196,197,3,16,8,0,197, + 198,5,12,0,0,198,21,1,0,0,0,199,200,7,0,0,0,200,23,1,0,0,0,201,202, + 5,17,0,0,202,25,1,0,0,0,203,205,3,28,14,0,204,203,1,0,0,0,205,206, + 1,0,0,0,206,204,1,0,0,0,206,207,1,0,0,0,207,27,1,0,0,0,208,209,5, + 36,0,0,209,210,3,30,15,0,210,29,1,0,0,0,211,214,3,70,35,0,212,214, + 3,32,16,0,213,211,1,0,0,0,213,212,1,0,0,0,214,31,1,0,0,0,215,217, + 3,34,17,0,216,215,1,0,0,0,217,220,1,0,0,0,218,216,1,0,0,0,218,219, + 1,0,0,0,219,222,1,0,0,0,220,218,1,0,0,0,221,223,3,36,18,0,222,221, + 1,0,0,0,222,223,1,0,0,0,223,227,1,0,0,0,224,226,3,38,19,0,225,224, + 1,0,0,0,226,229,1,0,0,0,227,225,1,0,0,0,227,228,1,0,0,0,228,33,1, + 0,0,0,229,227,1,0,0,0,230,233,3,66,33,0,231,233,5,32,0,0,232,230, + 1,0,0,0,232,231,1,0,0,0,233,35,1,0,0,0,234,237,3,42,21,0,235,237, + 3,40,20,0,236,234,1,0,0,0,236,235,1,0,0,0,237,37,1,0,0,0,238,243, + 3,64,32,0,239,242,3,64,32,0,240,242,3,58,29,0,241,239,1,0,0,0,241, + 240,1,0,0,0,242,245,1,0,0,0,243,241,1,0,0,0,243,244,1,0,0,0,244, + 39,1,0,0,0,245,243,1,0,0,0,246,258,3,72,36,0,247,258,3,82,41,0,248, + 258,3,48,24,0,249,258,3,112,56,0,250,258,3,56,28,0,251,258,3,84, + 42,0,252,258,3,86,43,0,253,258,3,88,44,0,254,258,3,90,45,0,255,258, + 3,92,46,0,256,258,3,24,12,0,257,246,1,0,0,0,257,247,1,0,0,0,257, + 248,1,0,0,0,257,249,1,0,0,0,257,250,1,0,0,0,257,251,1,0,0,0,257, + 252,1,0,0,0,257,253,1,0,0,0,257,254,1,0,0,0,257,255,1,0,0,0,257, + 256,1,0,0,0,258,41,1,0,0,0,259,261,5,43,0,0,260,262,3,44,22,0,261, + 260,1,0,0,0,262,263,1,0,0,0,263,261,1,0,0,0,263,264,1,0,0,0,264, + 266,1,0,0,0,265,267,5,43,0,0,266,265,1,0,0,0,266,267,1,0,0,0,267, + 278,1,0,0,0,268,270,5,44,0,0,269,271,3,44,22,0,270,269,1,0,0,0,271, + 272,1,0,0,0,272,270,1,0,0,0,272,273,1,0,0,0,273,275,1,0,0,0,274, + 276,5,44,0,0,275,274,1,0,0,0,275,276,1,0,0,0,276,278,1,0,0,0,277, + 259,1,0,0,0,277,268,1,0,0,0,278,43,1,0,0,0,279,284,3,64,32,0,280, + 284,3,40,20,0,281,284,5,1,0,0,282,284,5,2,0,0,283,279,1,0,0,0,283, + 280,1,0,0,0,283,281,1,0,0,0,283,282,1,0,0,0,284,45,1,0,0,0,285,286, + 5,19,0,0,286,47,1,0,0,0,287,290,3,50,25,0,288,290,3,54,27,0,289, + 287,1,0,0,0,289,288,1,0,0,0,290,49,1,0,0,0,291,292,3,58,29,0,292, + 293,5,49,0,0,293,294,5,49,0,0,294,295,3,52,26,0,295,51,1,0,0,0,296, + 299,3,58,29,0,297,299,3,112,56,0,298,296,1,0,0,0,298,297,1,0,0,0, + 299,53,1,0,0,0,300,301,5,3,0,0,301,302,3,58,29,0,302,303,5,49,0, + 0,303,305,5,49,0,0,304,306,5,36,0,0,305,304,1,0,0,0,305,306,1,0, + 0,0,306,307,1,0,0,0,307,312,3,56,28,0,308,309,5,36,0,0,309,311,3, + 56,28,0,310,308,1,0,0,0,311,314,1,0,0,0,312,310,1,0,0,0,312,313, + 1,0,0,0,313,315,1,0,0,0,314,312,1,0,0,0,315,316,5,4,0,0,316,55,1, + 0,0,0,317,326,3,58,29,0,318,320,3,64,32,0,319,318,1,0,0,0,320,321, + 1,0,0,0,321,319,1,0,0,0,321,322,1,0,0,0,322,325,1,0,0,0,323,325, + 3,58,29,0,324,319,1,0,0,0,324,323,1,0,0,0,325,328,1,0,0,0,326,324, + 1,0,0,0,326,327,1,0,0,0,327,57,1,0,0,0,328,326,1,0,0,0,329,339,5, + 18,0,0,330,339,5,20,0,0,331,339,5,17,0,0,332,339,3,60,30,0,333,339, + 3,62,31,0,334,339,3,46,23,0,335,339,3,112,56,0,336,339,5,13,0,0, + 337,339,5,14,0,0,338,329,1,0,0,0,338,330,1,0,0,0,338,331,1,0,0,0, + 338,332,1,0,0,0,338,333,1,0,0,0,338,334,1,0,0,0,338,335,1,0,0,0, + 338,336,1,0,0,0,338,337,1,0,0,0,339,59,1,0,0,0,340,341,5,15,0,0, + 341,61,1,0,0,0,342,343,5,16,0,0,343,63,1,0,0,0,344,354,5,43,0,0, + 345,354,5,44,0,0,346,354,5,31,0,0,347,354,5,30,0,0,348,354,3,66, + 33,0,349,354,3,70,35,0,350,354,3,68,34,0,351,354,5,3,0,0,352,354, + 5,4,0,0,353,344,1,0,0,0,353,345,1,0,0,0,353,346,1,0,0,0,353,347, + 1,0,0,0,353,348,1,0,0,0,353,349,1,0,0,0,353,350,1,0,0,0,353,351, + 1,0,0,0,353,352,1,0,0,0,354,65,1,0,0,0,355,356,7,1,0,0,356,67,1, + 0,0,0,357,358,7,2,0,0,358,69,1,0,0,0,359,360,7,3,0,0,360,71,1,0, + 0,0,361,366,3,74,37,0,362,366,3,76,38,0,363,366,3,78,39,0,364,366, + 3,80,40,0,365,361,1,0,0,0,365,362,1,0,0,0,365,363,1,0,0,0,365,364, + 1,0,0,0,366,73,1,0,0,0,367,368,5,39,0,0,368,369,3,58,29,0,369,75, + 1,0,0,0,370,371,5,40,0,0,371,372,3,58,29,0,372,77,1,0,0,0,373,374, + 5,42,0,0,374,375,3,58,29,0,375,79,1,0,0,0,376,377,5,41,0,0,377,378, + 3,58,29,0,378,81,1,0,0,0,379,380,5,1,0,0,380,381,3,56,28,0,381,382, + 5,2,0,0,382,83,1,0,0,0,383,384,5,5,0,0,384,385,5,18,0,0,385,386, + 5,4,0,0,386,85,1,0,0,0,387,388,5,6,0,0,388,389,5,18,0,0,389,390, + 5,4,0,0,390,87,1,0,0,0,391,392,5,3,0,0,392,393,3,46,23,0,393,394, + 5,4,0,0,394,89,1,0,0,0,395,396,5,7,0,0,396,397,3,56,28,0,397,398, + 5,8,0,0,398,91,1,0,0,0,399,400,5,9,0,0,400,401,5,18,0,0,401,402, + 5,4,0,0,402,93,1,0,0,0,403,407,3,102,51,0,404,406,5,12,0,0,405,404, + 1,0,0,0,406,409,1,0,0,0,407,405,1,0,0,0,407,408,1,0,0,0,408,413, + 1,0,0,0,409,407,1,0,0,0,410,412,3,8,4,0,411,410,1,0,0,0,412,415, + 1,0,0,0,413,411,1,0,0,0,413,414,1,0,0,0,414,422,1,0,0,0,415,413, + 1,0,0,0,416,418,5,12,0,0,417,416,1,0,0,0,417,418,1,0,0,0,418,419, + 1,0,0,0,419,421,3,96,48,0,420,417,1,0,0,0,421,424,1,0,0,0,422,420, + 1,0,0,0,422,423,1,0,0,0,423,95,1,0,0,0,424,422,1,0,0,0,425,429,3, + 104,52,0,426,428,5,12,0,0,427,426,1,0,0,0,428,431,1,0,0,0,429,427, + 1,0,0,0,429,430,1,0,0,0,430,435,1,0,0,0,431,429,1,0,0,0,432,434, + 3,8,4,0,433,432,1,0,0,0,434,437,1,0,0,0,435,433,1,0,0,0,435,436, + 1,0,0,0,436,444,1,0,0,0,437,435,1,0,0,0,438,440,5,12,0,0,439,438, + 1,0,0,0,439,440,1,0,0,0,440,441,1,0,0,0,441,443,3,98,49,0,442,439, + 1,0,0,0,443,446,1,0,0,0,444,442,1,0,0,0,444,445,1,0,0,0,445,97,1, + 0,0,0,446,444,1,0,0,0,447,451,3,106,53,0,448,450,5,12,0,0,449,448, + 1,0,0,0,450,453,1,0,0,0,451,449,1,0,0,0,451,452,1,0,0,0,452,457, + 1,0,0,0,453,451,1,0,0,0,454,456,3,8,4,0,455,454,1,0,0,0,456,459, + 1,0,0,0,457,455,1,0,0,0,457,458,1,0,0,0,458,466,1,0,0,0,459,457, + 1,0,0,0,460,462,5,12,0,0,461,460,1,0,0,0,461,462,1,0,0,0,462,463, + 1,0,0,0,463,465,3,100,50,0,464,461,1,0,0,0,465,468,1,0,0,0,466,464, + 1,0,0,0,466,467,1,0,0,0,467,99,1,0,0,0,468,466,1,0,0,0,469,473,3, + 108,54,0,470,472,5,12,0,0,471,470,1,0,0,0,472,475,1,0,0,0,473,471, + 1,0,0,0,473,474,1,0,0,0,474,479,1,0,0,0,475,473,1,0,0,0,476,478, + 3,8,4,0,477,476,1,0,0,0,478,481,1,0,0,0,479,477,1,0,0,0,479,480, + 1,0,0,0,480,101,1,0,0,0,481,479,1,0,0,0,482,483,5,22,0,0,483,484, + 3,26,13,0,484,485,3,110,55,0,485,103,1,0,0,0,486,487,5,23,0,0,487, + 488,3,26,13,0,488,489,3,110,55,0,489,105,1,0,0,0,490,491,5,24,0, + 0,491,492,3,26,13,0,492,493,3,110,55,0,493,107,1,0,0,0,494,495,5, + 25,0,0,495,496,3,26,13,0,496,497,3,110,55,0,497,109,1,0,0,0,498, + 499,7,4,0,0,499,111,1,0,0,0,500,501,7,5,0,0,501,506,5,18,0,0,502, + 503,5,33,0,0,503,505,5,18,0,0,504,502,1,0,0,0,505,508,1,0,0,0,506, + 504,1,0,0,0,506,507,1,0,0,0,507,511,1,0,0,0,508,506,1,0,0,0,509, + 510,5,49,0,0,510,512,5,20,0,0,511,509,1,0,0,0,511,512,1,0,0,0,512, + 530,1,0,0,0,513,515,5,34,0,0,514,516,5,42,0,0,515,514,1,0,0,0,515, + 516,1,0,0,0,516,517,1,0,0,0,517,525,5,18,0,0,518,520,7,6,0,0,519, + 521,5,42,0,0,520,519,1,0,0,0,520,521,1,0,0,0,521,522,1,0,0,0,522, + 524,7,7,0,0,523,518,1,0,0,0,524,527,1,0,0,0,525,523,1,0,0,0,525, + 526,1,0,0,0,526,529,1,0,0,0,527,525,1,0,0,0,528,513,1,0,0,0,529, + 532,1,0,0,0,530,528,1,0,0,0,530,531,1,0,0,0,531,113,1,0,0,0,532, + 530,1,0,0,0,59,116,123,127,134,139,145,151,157,162,168,181,186,194, + 206,213,218,222,227,232,236,241,243,257,263,266,272,275,277,283, + 289,298,305,312,321,324,326,338,353,365,407,413,417,422,429,435, + 439,444,451,457,461,466,473,479,506,511,515,520,525,530 ] class ZorgFileParser ( Parser ): @@ -4078,6 +4079,12 @@ def FSLASH(self, i:int=None): else: return self.getToken(ZorgFileParser.FSLASH, i) + def PERCENT(self, i:int=None): + if i is None: + return self.getTokens(ZorgFileParser.PERCENT) + else: + return self.getToken(ZorgFileParser.PERCENT, i) + def AMP(self, i:int=None): if i is None: return self.getTokens(ZorgFileParser.AMP) @@ -4102,12 +4109,6 @@ def QMARK(self, i:int=None): else: return self.getToken(ZorgFileParser.QMARK, i) - def PERCENT(self, i:int=None): - if i is None: - return self.getTokens(ZorgFileParser.PERCENT) - else: - return self.getToken(ZorgFileParser.PERCENT, i) - def getRuleIndex(self): return ZorgFileParser.RULE_url @@ -4161,49 +4162,57 @@ def url(self): self.match(ZorgFileParser.NUM_ID) - self.state = 527 + self.state = 530 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,57,self._ctx) + _alt = self._interp.adaptivePredict(self._input,58,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: self.state = 513 self.match(ZorgFileParser.FSLASH) - self.state = 514 + self.state = 515 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==42: + self.state = 514 + self.match(ZorgFileParser.PERCENT) + + + self.state = 517 self.match(ZorgFileParser.ID) - self.state = 522 + self.state = 525 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,56,self._ctx) + _alt = self._interp.adaptivePredict(self._input,57,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 515 + self.state = 518 _la = self._input.LA(1) if not((((_la) & ~0x3f) == 0 and ((1 << _la) & 562955187912704) != 0)): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() - self.state = 517 + self.state = 520 self._errHandler.sync(self) _la = self._input.LA(1) if _la==42: - self.state = 516 + self.state = 519 self.match(ZorgFileParser.PERCENT) - self.state = 519 + self.state = 522 _la = self._input.LA(1) if not(_la==18 or _la==34): self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() - self.state = 524 + self.state = 527 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,56,self._ctx) + _alt = self._interp.adaptivePredict(self._input,57,self._ctx) - self.state = 529 + self.state = 532 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,57,self._ctx) + _alt = self._interp.adaptivePredict(self._input,58,self._ctx) except RecognitionException as re: localctx.exception = re diff --git a/tests/__snapshots__/test_run_action_open.ambr b/tests/__snapshots__/test_run_action_open.ambr index 96dfe13..7f36b2e 100644 --- a/tests/__snapshots__/test_run_action_open.ambr +++ b/tests/__snapshots__/test_run_action_open.ambr @@ -58,6 +58,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s ################################ [[multiblocks]] - 240510#0E Note A2 diff --git a/tests/__snapshots__/test_run_compile.ambr b/tests/__snapshots__/test_run_compile.ambr index ffae156..7f0dc1c 100644 --- a/tests/__snapshots__/test_run_compile.ambr +++ b/tests/__snapshots__/test_run_compile.ambr @@ -625,7 +625,20 @@ 'projects': [], 'properties': {'ID': 'foo_with_url_arg'}, 'todo_payload': None, - 'zid': '240828#03'}], + 'zid': '240828#03'}, + {'areas': [], + 'block': None, + 'body': '240828#04 ID::foo_slash_arg ' + 'https://go/foo/bar/%s', + 'contexts': ['footnote'], + 'create_date': FakeDate(2024, 8, 28), + 'links': ['x:https://go/foo/bar/%s'], + 'modify_date': FakeDate(2024, 8, 28), + 'people': [], + 'projects': [], + 'properties': {'ID': 'foo_slash_arg'}, + 'todo_payload': None, + 'zid': '240828#04'}], 'section': None}], 'h2s': [], 'page': None, diff --git a/tests/__snapshots__/test_run_db.ambr b/tests/__snapshots__/test_run_db.ambr index 14b78ff..6bfc0b1 100644 --- a/tests/__snapshots__/test_run_db.ambr +++ b/tests/__snapshots__/test_run_db.ambr @@ -53,6 +53,7 @@ 'ref:some_article', 'x:http://www.example.com', 'x:https://go/foo-bar-baz', + 'x:https://go/foo/bar/%s', 'x:https://go/foo:bar:baz', 'x:https://go/foo?a=/&b=2&c=/', 'x:https://go/foo?bar=%s', @@ -65,7 +66,7 @@ ]) # --- # name: test_run_db_create__note_count[YAMLConfigFile] - 122 + 123 # --- # name: test_run_db_create__people[YAMLConfigFile] list([ @@ -289,6 +290,7 @@ '240828#01', '240828#02', '240828#03', + '240828#04', '301231#X0', '301231#X1', ]) diff --git a/tests/__snapshots__/test_run_query.ambr b/tests/__snapshots__/test_run_query.ambr index 98dc80f..8a6f4bb 100644 --- a/tests/__snapshots__/test_run_query.ambr +++ b/tests/__snapshots__/test_run_query.ambr @@ -25,6 +25,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s ''' # --- @@ -52,6 +53,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s o P3 240510#21 Some foobar todo. o P3 240510#26 Some foobar todo. @@ -83,6 +85,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s ''' # --- @@ -94,6 +97,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s - 240629#00 A note with a bullet property that contains a sublist * url:: - https://www.foobar.com @@ -266,6 +270,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s ################################ [[multiblocks]] o P3 240510#07 Some todo @@ -782,6 +787,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s ################################ @pomodoro - 240323#0J #gtd pomodoro @@ -1006,6 +1012,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s - 301231#X1 @READ Some article * RID::some_article * url::http://www.example.com @@ -1181,6 +1188,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s ++++++++++++++++ +arms - 240510#0L Sqtdicu Gfwebkj: fdxd://rd/czge-nxgz-vmuncaf @@ -1393,6 +1401,7 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s ################################ [[multiblocks]] - 240510#0E Note A2 @@ -1602,6 +1611,7 @@ - 240704#00 LID::2 https://go/foo-bar-baz - 240828#00 ID::foo_bar_baz https://go/foo:bar:baz - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s + - 240828#04 ID::foo_slash_arg https://go/foo/bar/%s ################################ [[priority]] o P0 240313#03 High Priority TODO @@ -1735,6 +1745,7 @@ tick_03 x:http://www.example.com x:https://go/foo-bar-baz + x:https://go/foo/bar/%s x:https://go/foo:bar:baz x:https://go/foo?a=/&b=2&c=/ x:https://go/foo?bar=%s @@ -1767,6 +1778,7 @@ x:https://go/foo?env=dev&bar=2&baz=3 x:https://go/foo?a=/&b=2&c=/ x:https://go/foo?bar=%s + x:https://go/foo/bar/%s bar.sh baz buz#fuzz diff --git a/tests/data/links.zo b/tests/data/links.zo index d057def..5861b33 100644 --- a/tests/data/links.zo +++ b/tests/data/links.zo @@ -25,3 +25,4 @@ - 240828#01 ID::foo_with_url_query https://go/foo?env=dev&bar=2&baz=3 - 240828#02 ID::foo_with_slashes_query https://go/foo?a=/&b=2&c=/ - 240828#03 ID::foo_with_url_arg https://go/foo?bar=%s +- 240828#04 ID::foo_slash_arg https://go/foo/bar/%s