summaryrefslogtreecommitdiff
path: root/gdb/ada-casefold.h
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2022-02-03 10:42:07 -0700
committerTom Tromey <tromey@adacore.com>2022-03-07 07:52:59 -0700
commit315e4ebb4b7ef01da2f5c419edc74f39a0122d20 (patch)
treeed8a010b58b1f7cb532b83d602b39adfc07397f8 /gdb/ada-casefold.h
parentee3d46491537e343c276a7fc455dd94812fd3f72 (diff)
downloadbinutils-gdb-315e4ebb4b7ef01da2f5c419edc74f39a0122d20.tar.gz
Handle non-ASCII identifiers in Ada
Ada allows non-ASCII identifiers, and GNAT supports several such encodings. This patch adds the corresponding support to gdb. GNAT encodes non-ASCII characters using special symbol names. For character sets like Latin-1, where all characters are a single byte, it uses a "U" followed by the hex for the character. So, for example, thorn would be encoded as "Ufe" (0xFE being lower case thorn). For wider characters, despite what the manual says (it claims Shift-JIS and EUC can be used), in practice recent versions only support Unicode. Here, characters in the base plane are represented using "Wxxxx" and characters outside the base plane using "WWxxxxxxxx". GNAT has some further quirks here. Ada is case-insensitive, and GNAT emits symbols that have been case-folded. For characters in ASCII, and for all characters in non-Unicode character sets, lower case is used. For Unicode, however, characters that fit in a single byte are converted to lower case, but all others are converted to upper case. Furthermore, there is a bug in GNAT where two symbols that differ only in the case of "Y WITH DIAERESIS" (and potentially others, I did not check exhaustively) can be used in one program. I chose to omit handling this case from gdb, on the theory that it is hard to figure out the logic, and anyway if the bug is ever fixed, we'll regret having a heuristic. This patch introduces a new "ada source-charset" setting. It defaults to Latin-1, as that is GNAT's default. This setting controls how "U" characters are decoded -- W/WW are always handled as UTF-32. The ada_tag_name_from_tsd change is needed because this function will read memory from the inferior and interpret it -- and this caused an encoding failure on PPC when running a test that tries to read uninitialized memory. This patch implements its own UTF-32-based case folder. This avoids host platform quirks, and is relatively simple. A short Python program to generate the case-folding table is included. It simply relies on whatever version of Unicode is used by the host Python, which seems basically acceptable. Test cases for UTF-8, Latin-1, and Latin-3 are included. This exercises most of the new code paths, aside from Y WITH DIAERESIS as noted above.
Diffstat (limited to 'gdb/ada-casefold.h')
-rw-r--r--gdb/ada-casefold.h1345
1 files changed, 1345 insertions, 0 deletions
diff --git a/gdb/ada-casefold.h b/gdb/ada-casefold.h
new file mode 100644
index 00000000000..f790f37e671
--- /dev/null
+++ b/gdb/ada-casefold.h
@@ -0,0 +1,1345 @@
+/* *INDENT-OFF* */ /* THIS FILE IS GENERATED -*- buffer-read-only: t -*- */
+/* vi:set ro: */
+
+/* UTF-32 case-folding for GDB
+
+ Copyright (C) 2022 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* To regenerate this file, run:
+ ./ada-unicode.py
+*/
+
+ {65, 90, 0, 32},
+ {97, 122, -32, 0},
+ {181, 181, 743, 0},
+ {192, 214, 0, 32},
+ {216, 222, 0, 32},
+ {224, 246, -32, 0},
+ {248, 254, -32, 0},
+ {255, 255, 121, 0},
+ {256, 256, 0, 1},
+ {257, 257, -1, 0},
+ {258, 258, 0, 1},
+ {259, 259, -1, 0},
+ {260, 260, 0, 1},
+ {261, 261, -1, 0},
+ {262, 262, 0, 1},
+ {263, 263, -1, 0},
+ {264, 264, 0, 1},
+ {265, 265, -1, 0},
+ {266, 266, 0, 1},
+ {267, 267, -1, 0},
+ {268, 268, 0, 1},
+ {269, 269, -1, 0},
+ {270, 270, 0, 1},
+ {271, 271, -1, 0},
+ {272, 272, 0, 1},
+ {273, 273, -1, 0},
+ {274, 274, 0, 1},
+ {275, 275, -1, 0},
+ {276, 276, 0, 1},
+ {277, 277, -1, 0},
+ {278, 278, 0, 1},
+ {279, 279, -1, 0},
+ {280, 280, 0, 1},
+ {281, 281, -1, 0},
+ {282, 282, 0, 1},
+ {283, 283, -1, 0},
+ {284, 284, 0, 1},
+ {285, 285, -1, 0},
+ {286, 286, 0, 1},
+ {287, 287, -1, 0},
+ {288, 288, 0, 1},
+ {289, 289, -1, 0},
+ {290, 290, 0, 1},
+ {291, 291, -1, 0},
+ {292, 292, 0, 1},
+ {293, 293, -1, 0},
+ {294, 294, 0, 1},
+ {295, 295, -1, 0},
+ {296, 296, 0, 1},
+ {297, 297, -1, 0},
+ {298, 298, 0, 1},
+ {299, 299, -1, 0},
+ {300, 300, 0, 1},
+ {301, 301, -1, 0},
+ {302, 302, 0, 1},
+ {303, 303, -1, 0},
+ {305, 305, -232, 0},
+ {306, 306, 0, 1},
+ {307, 307, -1, 0},
+ {308, 308, 0, 1},
+ {309, 309, -1, 0},
+ {310, 310, 0, 1},
+ {311, 311, -1, 0},
+ {313, 313, 0, 1},
+ {314, 314, -1, 0},
+ {315, 315, 0, 1},
+ {316, 316, -1, 0},
+ {317, 317, 0, 1},
+ {318, 318, -1, 0},
+ {319, 319, 0, 1},
+ {320, 320, -1, 0},
+ {321, 321, 0, 1},
+ {322, 322, -1, 0},
+ {323, 323, 0, 1},
+ {324, 324, -1, 0},
+ {325, 325, 0, 1},
+ {326, 326, -1, 0},
+ {327, 327, 0, 1},
+ {328, 328, -1, 0},
+ {330, 330, 0, 1},
+ {331, 331, -1, 0},
+ {332, 332, 0, 1},
+ {333, 333, -1, 0},
+ {334, 334, 0, 1},
+ {335, 335, -1, 0},
+ {336, 336, 0, 1},
+ {337, 337, -1, 0},
+ {338, 338, 0, 1},
+ {339, 339, -1, 0},
+ {340, 340, 0, 1},
+ {341, 341, -1, 0},
+ {342, 342, 0, 1},
+ {343, 343, -1, 0},
+ {344, 344, 0, 1},
+ {345, 345, -1, 0},
+ {346, 346, 0, 1},
+ {347, 347, -1, 0},
+ {348, 348, 0, 1},
+ {349, 349, -1, 0},
+ {350, 350, 0, 1},
+ {351, 351, -1, 0},
+ {352, 352, 0, 1},
+ {353, 353, -1, 0},
+ {354, 354, 0, 1},
+ {355, 355, -1, 0},
+ {356, 356, 0, 1},
+ {357, 357, -1, 0},
+ {358, 358, 0, 1},
+ {359, 359, -1, 0},
+ {360, 360, 0, 1},
+ {361, 361, -1, 0},
+ {362, 362, 0, 1},
+ {363, 363, -1, 0},
+ {364, 364, 0, 1},
+ {365, 365, -1, 0},
+ {366, 366, 0, 1},
+ {367, 367, -1, 0},
+ {368, 368, 0, 1},
+ {369, 369, -1, 0},
+ {370, 370, 0, 1},
+ {371, 371, -1, 0},
+ {372, 372, 0, 1},
+ {373, 373, -1, 0},
+ {374, 374, 0, 1},
+ {375, 375, -1, 0},
+ {376, 376, 0, -121},
+ {377, 377, 0, 1},
+ {378, 378, -1, 0},
+ {379, 379, 0, 1},
+ {380, 380, -1, 0},
+ {381, 381, 0, 1},
+ {382, 382, -1, 0},
+ {383, 383, -300, 0},
+ {384, 384, 195, 0},
+ {385, 385, 0, 210},
+ {386, 386, 0, 1},
+ {387, 387, -1, 0},
+ {388, 388, 0, 1},
+ {389, 389, -1, 0},
+ {390, 390, 0, 206},
+ {391, 391, 0, 1},
+ {392, 392, -1, 0},
+ {393, 394, 0, 205},
+ {395, 395, 0, 1},
+ {396, 396, -1, 0},
+ {398, 398, 0, 79},
+ {399, 399, 0, 202},
+ {400, 400, 0, 203},
+ {401, 401, 0, 1},
+ {402, 402, -1, 0},
+ {403, 403, 0, 205},
+ {404, 404, 0, 207},
+ {405, 405, 97, 0},
+ {406, 406, 0, 211},
+ {407, 407, 0, 209},
+ {408, 408, 0, 1},
+ {409, 409, -1, 0},
+ {410, 410, 163, 0},
+ {412, 412, 0, 211},
+ {413, 413, 0, 213},
+ {414, 414, 130, 0},
+ {415, 415, 0, 214},
+ {416, 416, 0, 1},
+ {417, 417, -1, 0},
+ {418, 418, 0, 1},
+ {419, 419, -1, 0},
+ {420, 420, 0, 1},
+ {421, 421, -1, 0},
+ {422, 422, 0, 218},
+ {423, 423, 0, 1},
+ {424, 424, -1, 0},
+ {425, 425, 0, 218},
+ {428, 428, 0, 1},
+ {429, 429, -1, 0},
+ {430, 430, 0, 218},
+ {431, 431, 0, 1},
+ {432, 432, -1, 0},
+ {433, 434, 0, 217},
+ {435, 435, 0, 1},
+ {436, 436, -1, 0},
+ {437, 437, 0, 1},
+ {438, 438, -1, 0},
+ {439, 439, 0, 219},
+ {440, 440, 0, 1},
+ {441, 441, -1, 0},
+ {444, 444, 0, 1},
+ {445, 445, -1, 0},
+ {447, 447, 56, 0},
+ {452, 452, 0, 2},
+ {453, 453, -1, 1},
+ {454, 454, -2, 0},
+ {455, 455, 0, 2},
+ {456, 456, -1, 1},
+ {457, 457, -2, 0},
+ {458, 458, 0, 2},
+ {459, 459, -1, 1},
+ {460, 460, -2, 0},
+ {461, 461, 0, 1},
+ {462, 462, -1, 0},
+ {463, 463, 0, 1},
+ {464, 464, -1, 0},
+ {465, 465, 0, 1},
+ {466, 466, -1, 0},
+ {467, 467, 0, 1},
+ {468, 468, -1, 0},
+ {469, 469, 0, 1},
+ {470, 470, -1, 0},
+ {471, 471, 0, 1},
+ {472, 472, -1, 0},
+ {473, 473, 0, 1},
+ {474, 474, -1, 0},
+ {475, 475, 0, 1},
+ {476, 476, -1, 0},
+ {477, 477, -79, 0},
+ {478, 478, 0, 1},
+ {479, 479, -1, 0},
+ {480, 480, 0, 1},
+ {481, 481, -1, 0},
+ {482, 482, 0, 1},
+ {483, 483, -1, 0},
+ {484, 484, 0, 1},
+ {485, 485, -1, 0},
+ {486, 486, 0, 1},
+ {487, 487, -1, 0},
+ {488, 488, 0, 1},
+ {489, 489, -1, 0},
+ {490, 490, 0, 1},
+ {491, 491, -1, 0},
+ {492, 492, 0, 1},
+ {493, 493, -1, 0},
+ {494, 494, 0, 1},
+ {495, 495, -1, 0},
+ {497, 497, 0, 2},
+ {498, 498, -1, 1},
+ {499, 499, -2, 0},
+ {500, 500, 0, 1},
+ {501, 501, -1, 0},
+ {502, 502, 0, -97},
+ {503, 503, 0, -56},
+ {504, 504, 0, 1},
+ {505, 505, -1, 0},
+ {506, 506, 0, 1},
+ {507, 507, -1, 0},
+ {508, 508, 0, 1},
+ {509, 509, -1, 0},
+ {510, 510, 0, 1},
+ {511, 511, -1, 0},
+ {512, 512, 0, 1},
+ {513, 513, -1, 0},
+ {514, 514, 0, 1},
+ {515, 515, -1, 0},
+ {516, 516, 0, 1},
+ {517, 517, -1, 0},
+ {518, 518, 0, 1},
+ {519, 519, -1, 0},
+ {520, 520, 0, 1},
+ {521, 521, -1, 0},
+ {522, 522, 0, 1},
+ {523, 523, -1, 0},
+ {524, 524, 0, 1},
+ {525, 525, -1, 0},
+ {526, 526, 0, 1},
+ {527, 527, -1, 0},
+ {528, 528, 0, 1},
+ {529, 529, -1, 0},
+ {530, 530, 0, 1},
+ {531, 531, -1, 0},
+ {532, 532, 0, 1},
+ {533, 533, -1, 0},
+ {534, 534, 0, 1},
+ {535, 535, -1, 0},
+ {536, 536, 0, 1},
+ {537, 537, -1, 0},
+ {538, 538, 0, 1},
+ {539, 539, -1, 0},
+ {540, 540, 0, 1},
+ {541, 541, -1, 0},
+ {542, 542, 0, 1},
+ {543, 543, -1, 0},
+ {544, 544, 0, -130},
+ {546, 546, 0, 1},
+ {547, 547, -1, 0},
+ {548, 548, 0, 1},
+ {549, 549, -1, 0},
+ {550, 550, 0, 1},
+ {551, 551, -1, 0},
+ {552, 552, 0, 1},
+ {553, 553, -1, 0},
+ {554, 554, 0, 1},
+ {555, 555, -1, 0},
+ {556, 556, 0, 1},
+ {557, 557, -1, 0},
+ {558, 558, 0, 1},
+ {559, 559, -1, 0},
+ {560, 560, 0, 1},
+ {561, 561, -1, 0},
+ {562, 562, 0, 1},
+ {563, 563, -1, 0},
+ {570, 570, 0, 10795},
+ {571, 571, 0, 1},
+ {572, 572, -1, 0},
+ {573, 573, 0, -163},
+ {574, 574, 0, 10792},
+ {575, 576, 10815, 0},
+ {577, 577, 0, 1},
+ {578, 578, -1, 0},
+ {579, 579, 0, -195},
+ {580, 580, 0, 69},
+ {581, 581, 0, 71},
+ {582, 582, 0, 1},
+ {583, 583, -1, 0},
+ {584, 584, 0, 1},
+ {585, 585, -1, 0},
+ {586, 586, 0, 1},
+ {587, 587, -1, 0},
+ {588, 588, 0, 1},
+ {589, 589, -1, 0},
+ {590, 590, 0, 1},
+ {591, 591, -1, 0},
+ {592, 592, 10783, 0},
+ {593, 593, 10780, 0},
+ {594, 594, 10782, 0},
+ {595, 595, -210, 0},
+ {596, 596, -206, 0},
+ {598, 599, -205, 0},
+ {601, 601, -202, 0},
+ {603, 603, -203, 0},
+ {604, 604, 42319, 0},
+ {608, 608, -205, 0},
+ {609, 609, 42315, 0},
+ {611, 611, -207, 0},
+ {613, 613, 42280, 0},
+ {614, 614, 42308, 0},
+ {616, 616, -209, 0},
+ {617, 617, -211, 0},
+ {618, 618, 42308, 0},
+ {619, 619, 10743, 0},
+ {620, 620, 42305, 0},
+ {623, 623, -211, 0},
+ {625, 625, 10749, 0},
+ {626, 626, -213, 0},
+ {629, 629, -214, 0},
+ {637, 637, 10727, 0},
+ {640, 640, -218, 0},
+ {642, 642, 42307, 0},
+ {643, 643, -218, 0},
+ {647, 647, 42282, 0},
+ {648, 648, -218, 0},
+ {649, 649, -69, 0},
+ {650, 651, -217, 0},
+ {652, 652, -71, 0},
+ {658, 658, -219, 0},
+ {669, 669, 42261, 0},
+ {670, 670, 42258, 0},
+ {837, 837, 84, 0},
+ {880, 880, 0, 1},
+ {881, 881, -1, 0},
+ {882, 882, 0, 1},
+ {883, 883, -1, 0},
+ {886, 886, 0, 1},
+ {887, 887, -1, 0},
+ {891, 893, 130, 0},
+ {895, 895, 0, 116},
+ {902, 902, 0, 38},
+ {904, 906, 0, 37},
+ {908, 908, 0, 64},
+ {910, 911, 0, 63},
+ {913, 929, 0, 32},
+ {931, 939, 0, 32},
+ {940, 940, -38, 0},
+ {941, 943, -37, 0},
+ {945, 961, -32, 0},
+ {962, 962, -31, 0},
+ {963, 971, -32, 0},
+ {972, 972, -64, 0},
+ {973, 974, -63, 0},
+ {975, 975, 0, 8},
+ {976, 976, -62, 0},
+ {977, 977, -57, 0},
+ {981, 981, -47, 0},
+ {982, 982, -54, 0},
+ {983, 983, -8, 0},
+ {984, 984, 0, 1},
+ {985, 985, -1, 0},
+ {986, 986, 0, 1},
+ {987, 987, -1, 0},
+ {988, 988, 0, 1},
+ {989, 989, -1, 0},
+ {990, 990, 0, 1},
+ {991, 991, -1, 0},
+ {992, 992, 0, 1},
+ {993, 993, -1, 0},
+ {994, 994, 0, 1},
+ {995, 995, -1, 0},
+ {996, 996, 0, 1},
+ {997, 997, -1, 0},
+ {998, 998, 0, 1},
+ {999, 999, -1, 0},
+ {1000, 1000, 0, 1},
+ {1001, 1001, -1, 0},
+ {1002, 1002, 0, 1},
+ {1003, 1003, -1, 0},
+ {1004, 1004, 0, 1},
+ {1005, 1005, -1, 0},
+ {1006, 1006, 0, 1},
+ {1007, 1007, -1, 0},
+ {1008, 1008, -86, 0},
+ {1009, 1009, -80, 0},
+ {1010, 1010, 7, 0},
+ {1011, 1011, -116, 0},
+ {1012, 1012, 0, -60},
+ {1013, 1013, -96, 0},
+ {1015, 1015, 0, 1},
+ {1016, 1016, -1, 0},
+ {1017, 1017, 0, -7},
+ {1018, 1018, 0, 1},
+ {1019, 1019, -1, 0},
+ {1021, 1023, 0, -130},
+ {1024, 1039, 0, 80},
+ {1040, 1071, 0, 32},
+ {1072, 1103, -32, 0},
+ {1104, 1119, -80, 0},
+ {1120, 1120, 0, 1},
+ {1121, 1121, -1, 0},
+ {1122, 1122, 0, 1},
+ {1123, 1123, -1, 0},
+ {1124, 1124, 0, 1},
+ {1125, 1125, -1, 0},
+ {1126, 1126, 0, 1},
+ {1127, 1127, -1, 0},
+ {1128, 1128, 0, 1},
+ {1129, 1129, -1, 0},
+ {1130, 1130, 0, 1},
+ {1131, 1131, -1, 0},
+ {1132, 1132, 0, 1},
+ {1133, 1133, -1, 0},
+ {1134, 1134, 0, 1},
+ {1135, 1135, -1, 0},
+ {1136, 1136, 0, 1},
+ {1137, 1137, -1, 0},
+ {1138, 1138, 0, 1},
+ {1139, 1139, -1, 0},
+ {1140, 1140, 0, 1},
+ {1141, 1141, -1, 0},
+ {1142, 1142, 0, 1},
+ {1143, 1143, -1, 0},
+ {1144, 1144, 0, 1},
+ {1145, 1145, -1, 0},
+ {1146, 1146, 0, 1},
+ {1147, 1147, -1, 0},
+ {1148, 1148, 0, 1},
+ {1149, 1149, -1, 0},
+ {1150, 1150, 0, 1},
+ {1151, 1151, -1, 0},
+ {1152, 1152, 0, 1},
+ {1153, 1153, -1, 0},
+ {1162, 1162, 0, 1},
+ {1163, 1163, -1, 0},
+ {1164, 1164, 0, 1},
+ {1165, 1165, -1, 0},
+ {1166, 1166, 0, 1},
+ {1167, 1167, -1, 0},
+ {1168, 1168, 0, 1},
+ {1169, 1169, -1, 0},
+ {1170, 1170, 0, 1},
+ {1171, 1171, -1, 0},
+ {1172, 1172, 0, 1},
+ {1173, 1173, -1, 0},
+ {1174, 1174, 0, 1},
+ {1175, 1175, -1, 0},
+ {1176, 1176, 0, 1},
+ {1177, 1177, -1, 0},
+ {1178, 1178, 0, 1},
+ {1179, 1179, -1, 0},
+ {1180, 1180, 0, 1},
+ {1181, 1181, -1, 0},
+ {1182, 1182, 0, 1},
+ {1183, 1183, -1, 0},
+ {1184, 1184, 0, 1},
+ {1185, 1185, -1, 0},
+ {1186, 1186, 0, 1},
+ {1187, 1187, -1, 0},
+ {1188, 1188, 0, 1},
+ {1189, 1189, -1, 0},
+ {1190, 1190, 0, 1},
+ {1191, 1191, -1, 0},
+ {1192, 1192, 0, 1},
+ {1193, 1193, -1, 0},
+ {1194, 1194, 0, 1},
+ {1195, 1195, -1, 0},
+ {1196, 1196, 0, 1},
+ {1197, 1197, -1, 0},
+ {1198, 1198, 0, 1},
+ {1199, 1199, -1, 0},
+ {1200, 1200, 0, 1},
+ {1201, 1201, -1, 0},
+ {1202, 1202, 0, 1},
+ {1203, 1203, -1, 0},
+ {1204, 1204, 0, 1},
+ {1205, 1205, -1, 0},
+ {1206, 1206, 0, 1},
+ {1207, 1207, -1, 0},
+ {1208, 1208, 0, 1},
+ {1209, 1209, -1, 0},
+ {1210, 1210, 0, 1},
+ {1211, 1211, -1, 0},
+ {1212, 1212, 0, 1},
+ {1213, 1213, -1, 0},
+ {1214, 1214, 0, 1},
+ {1215, 1215, -1, 0},
+ {1216, 1216, 0, 15},
+ {1217, 1217, 0, 1},
+ {1218, 1218, -1, 0},
+ {1219, 1219, 0, 1},
+ {1220, 1220, -1, 0},
+ {1221, 1221, 0, 1},
+ {1222, 1222, -1, 0},
+ {1223, 1223, 0, 1},
+ {1224, 1224, -1, 0},
+ {1225, 1225, 0, 1},
+ {1226, 1226, -1, 0},
+ {1227, 1227, 0, 1},
+ {1228, 1228, -1, 0},
+ {1229, 1229, 0, 1},
+ {1230, 1230, -1, 0},
+ {1231, 1231, -15, 0},
+ {1232, 1232, 0, 1},
+ {1233, 1233, -1, 0},
+ {1234, 1234, 0, 1},
+ {1235, 1235, -1, 0},
+ {1236, 1236, 0, 1},
+ {1237, 1237, -1, 0},
+ {1238, 1238, 0, 1},
+ {1239, 1239, -1, 0},
+ {1240, 1240, 0, 1},
+ {1241, 1241, -1, 0},
+ {1242, 1242, 0, 1},
+ {1243, 1243, -1, 0},
+ {1244, 1244, 0, 1},
+ {1245, 1245, -1, 0},
+ {1246, 1246, 0, 1},
+ {1247, 1247, -1, 0},
+ {1248, 1248, 0, 1},
+ {1249, 1249, -1, 0},
+ {1250, 1250, 0, 1},
+ {1251, 1251, -1, 0},
+ {1252, 1252, 0, 1},
+ {1253, 1253, -1, 0},
+ {1254, 1254, 0, 1},
+ {1255, 1255, -1, 0},
+ {1256, 1256, 0, 1},
+ {1257, 1257, -1, 0},
+ {1258, 1258, 0, 1},
+ {1259, 1259, -1, 0},
+ {1260, 1260, 0, 1},
+ {1261, 1261, -1, 0},
+ {1262, 1262, 0, 1},
+ {1263, 1263, -1, 0},
+ {1264, 1264, 0, 1},
+ {1265, 1265, -1, 0},
+ {1266, 1266, 0, 1},
+ {1267, 1267, -1, 0},
+ {1268, 1268, 0, 1},
+ {1269, 1269, -1, 0},
+ {1270, 1270, 0, 1},
+ {1271, 1271, -1, 0},
+ {1272, 1272, 0, 1},
+ {1273, 1273, -1, 0},
+ {1274, 1274, 0, 1},
+ {1275, 1275, -1, 0},
+ {1276, 1276, 0, 1},
+ {1277, 1277, -1, 0},
+ {1278, 1278, 0, 1},
+ {1279, 1279, -1, 0},
+ {1280, 1280, 0, 1},
+ {1281, 1281, -1, 0},
+ {1282, 1282, 0, 1},
+ {1283, 1283, -1, 0},
+ {1284, 1284, 0, 1},
+ {1285, 1285, -1, 0},
+ {1286, 1286, 0, 1},
+ {1287, 1287, -1, 0},
+ {1288, 1288, 0, 1},
+ {1289, 1289, -1, 0},
+ {1290, 1290, 0, 1},
+ {1291, 1291, -1, 0},
+ {1292, 1292, 0, 1},
+ {1293, 1293, -1, 0},
+ {1294, 1294, 0, 1},
+ {1295, 1295, -1, 0},
+ {1296, 1296, 0, 1},
+ {1297, 1297, -1, 0},
+ {1298, 1298, 0, 1},
+ {1299, 1299, -1, 0},
+ {1300, 1300, 0, 1},
+ {1301, 1301, -1, 0},
+ {1302, 1302, 0, 1},
+ {1303, 1303, -1, 0},
+ {1304, 1304, 0, 1},
+ {1305, 1305, -1, 0},
+ {1306, 1306, 0, 1},
+ {1307, 1307, -1, 0},
+ {1308, 1308, 0, 1},
+ {1309, 1309, -1, 0},
+ {1310, 1310, 0, 1},
+ {1311, 1311, -1, 0},
+ {1312, 1312, 0, 1},
+ {1313, 1313, -1, 0},
+ {1314, 1314, 0, 1},
+ {1315, 1315, -1, 0},
+ {1316, 1316, 0, 1},
+ {1317, 1317, -1, 0},
+ {1318, 1318, 0, 1},
+ {1319, 1319, -1, 0},
+ {1320, 1320, 0, 1},
+ {1321, 1321, -1, 0},
+ {1322, 1322, 0, 1},
+ {1323, 1323, -1, 0},
+ {1324, 1324, 0, 1},
+ {1325, 1325, -1, 0},
+ {1326, 1326, 0, 1},
+ {1327, 1327, -1, 0},
+ {1329, 1366, 0, 48},
+ {1377, 1414, -48, 0},
+ {4256, 4293, 0, 7264},
+ {4295, 4295, 0, 7264},
+ {4301, 4301, 0, 7264},
+ {4304, 4346, 3008, 0},
+ {4349, 4351, 3008, 0},
+ {5024, 5103, 0, 38864},
+ {5104, 5109, 0, 8},
+ {5112, 5117, -8, 0},
+ {7296, 7296, -6254, 0},
+ {7297, 7297, -6253, 0},
+ {7298, 7298, -6244, 0},
+ {7299, 7300, -6242, 0},
+ {7301, 7301, -6243, 0},
+ {7302, 7302, -6236, 0},
+ {7303, 7303, -6181, 0},
+ {7304, 7304, 35266, 0},
+ {7312, 7354, 0, -3008},
+ {7357, 7359, 0, -3008},
+ {7545, 7545, 35332, 0},
+ {7549, 7549, 3814, 0},
+ {7566, 7566, 35384, 0},
+ {7680, 7680, 0, 1},
+ {7681, 7681, -1, 0},
+ {7682, 7682, 0, 1},
+ {7683, 7683, -1, 0},
+ {7684, 7684, 0, 1},
+ {7685, 7685, -1, 0},
+ {7686, 7686, 0, 1},
+ {7687, 7687, -1, 0},
+ {7688, 7688, 0, 1},
+ {7689, 7689, -1, 0},
+ {7690, 7690, 0, 1},
+ {7691, 7691, -1, 0},
+ {7692, 7692, 0, 1},
+ {7693, 7693, -1, 0},
+ {7694, 7694, 0, 1},
+ {7695, 7695, -1, 0},
+ {7696, 7696, 0, 1},
+ {7697, 7697, -1, 0},
+ {7698, 7698, 0, 1},
+ {7699, 7699, -1, 0},
+ {7700, 7700, 0, 1},
+ {7701, 7701, -1, 0},
+ {7702, 7702, 0, 1},
+ {7703, 7703, -1, 0},
+ {7704, 7704, 0, 1},
+ {7705, 7705, -1, 0},
+ {7706, 7706, 0, 1},
+ {7707, 7707, -1, 0},
+ {7708, 7708, 0, 1},
+ {7709, 7709, -1, 0},
+ {7710, 7710, 0, 1},
+ {7711, 7711, -1, 0},
+ {7712, 7712, 0, 1},
+ {7713, 7713, -1, 0},
+ {7714, 7714, 0, 1},
+ {7715, 7715, -1, 0},
+ {7716, 7716, 0, 1},
+ {7717, 7717, -1, 0},
+ {7718, 7718, 0, 1},
+ {7719, 7719, -1, 0},
+ {7720, 7720, 0, 1},
+ {7721, 7721, -1, 0},
+ {7722, 7722, 0, 1},
+ {7723, 7723, -1, 0},
+ {7724, 7724, 0, 1},
+ {7725, 7725, -1, 0},
+ {7726, 7726, 0, 1},
+ {7727, 7727, -1, 0},
+ {7728, 7728, 0, 1},
+ {7729, 7729, -1, 0},
+ {7730, 7730, 0, 1},
+ {7731, 7731, -1, 0},
+ {7732, 7732, 0, 1},
+ {7733, 7733, -1, 0},
+ {7734, 7734, 0, 1},
+ {7735, 7735, -1, 0},
+ {7736, 7736, 0, 1},
+ {7737, 7737, -1, 0},
+ {7738, 7738, 0, 1},
+ {7739, 7739, -1, 0},
+ {7740, 7740, 0, 1},
+ {7741, 7741, -1, 0},
+ {7742, 7742, 0, 1},
+ {7743, 7743, -1, 0},
+ {7744, 7744, 0, 1},
+ {7745, 7745, -1, 0},
+ {7746, 7746, 0, 1},
+ {7747, 7747, -1, 0},
+ {7748, 7748, 0, 1},
+ {7749, 7749, -1, 0},
+ {7750, 7750, 0, 1},
+ {7751, 7751, -1, 0},
+ {7752, 7752, 0, 1},
+ {7753, 7753, -1, 0},
+ {7754, 7754, 0, 1},
+ {7755, 7755, -1, 0},
+ {7756, 7756, 0, 1},
+ {7757, 7757, -1, 0},
+ {7758, 7758, 0, 1},
+ {7759, 7759, -1, 0},
+ {7760, 7760, 0, 1},
+ {7761, 7761, -1, 0},
+ {7762, 7762, 0, 1},
+ {7763, 7763, -1, 0},
+ {7764, 7764, 0, 1},
+ {7765, 7765, -1, 0},
+ {7766, 7766, 0, 1},
+ {7767, 7767, -1, 0},
+ {7768, 7768, 0, 1},
+ {7769, 7769, -1, 0},
+ {7770, 7770, 0, 1},
+ {7771, 7771, -1, 0},
+ {7772, 7772, 0, 1},
+ {7773, 7773, -1, 0},
+ {7774, 7774, 0, 1},
+ {7775, 7775, -1, 0},
+ {7776, 7776, 0, 1},
+ {7777, 7777, -1, 0},
+ {7778, 7778, 0, 1},
+ {7779, 7779, -1, 0},
+ {7780, 7780, 0, 1},
+ {7781, 7781, -1, 0},
+ {7782, 7782, 0, 1},
+ {7783, 7783, -1, 0},
+ {7784, 7784, 0, 1},
+ {7785, 7785, -1, 0},
+ {7786, 7786, 0, 1},
+ {7787, 7787, -1, 0},
+ {7788, 7788, 0, 1},
+ {7789, 7789, -1, 0},
+ {7790, 7790, 0, 1},
+ {7791, 7791, -1, 0},
+ {7792, 7792, 0, 1},
+ {7793, 7793, -1, 0},
+ {7794, 7794, 0, 1},
+ {7795, 7795, -1, 0},
+ {7796, 7796, 0, 1},
+ {7797, 7797, -1, 0},
+ {7798, 7798, 0, 1},
+ {7799, 7799, -1, 0},
+ {7800, 7800, 0, 1},
+ {7801, 7801, -1, 0},
+ {7802, 7802, 0, 1},
+ {7803, 7803, -1, 0},
+ {7804, 7804, 0, 1},
+ {7805, 7805, -1, 0},
+ {7806, 7806, 0, 1},
+ {7807, 7807, -1, 0},
+ {7808, 7808, 0, 1},
+ {7809, 7809, -1, 0},
+ {7810, 7810, 0, 1},
+ {7811, 7811, -1, 0},
+ {7812, 7812, 0, 1},
+ {7813, 7813, -1, 0},
+ {7814, 7814, 0, 1},
+ {7815, 7815, -1, 0},
+ {7816, 7816, 0, 1},
+ {7817, 7817, -1, 0},
+ {7818, 7818, 0, 1},
+ {7819, 7819, -1, 0},
+ {7820, 7820, 0, 1},
+ {7821, 7821, -1, 0},
+ {7822, 7822, 0, 1},
+ {7823, 7823, -1, 0},
+ {7824, 7824, 0, 1},
+ {7825, 7825, -1, 0},
+ {7826, 7826, 0, 1},
+ {7827, 7827, -1, 0},
+ {7828, 7828, 0, 1},
+ {7829, 7829, -1, 0},
+ {7835, 7835, -59, 0},
+ {7838, 7838, 0, -7615},
+ {7840, 7840, 0, 1},
+ {7841, 7841, -1, 0},
+ {7842, 7842, 0, 1},
+ {7843, 7843, -1, 0},
+ {7844, 7844, 0, 1},
+ {7845, 7845, -1, 0},
+ {7846, 7846, 0, 1},
+ {7847, 7847, -1, 0},
+ {7848, 7848, 0, 1},
+ {7849, 7849, -1, 0},
+ {7850, 7850, 0, 1},
+ {7851, 7851, -1, 0},
+ {7852, 7852, 0, 1},
+ {7853, 7853, -1, 0},
+ {7854, 7854, 0, 1},
+ {7855, 7855, -1, 0},
+ {7856, 7856, 0, 1},
+ {7857, 7857, -1, 0},
+ {7858, 7858, 0, 1},
+ {7859, 7859, -1, 0},
+ {7860, 7860, 0, 1},
+ {7861, 7861, -1, 0},
+ {7862, 7862, 0, 1},
+ {7863, 7863, -1, 0},
+ {7864, 7864, 0, 1},
+ {7865, 7865, -1, 0},
+ {7866, 7866, 0, 1},
+ {7867, 7867, -1, 0},
+ {7868, 7868, 0, 1},
+ {7869, 7869, -1, 0},
+ {7870, 7870, 0, 1},
+ {7871, 7871, -1, 0},
+ {7872, 7872, 0, 1},
+ {7873, 7873, -1, 0},
+ {7874, 7874, 0, 1},
+ {7875, 7875, -1, 0},
+ {7876, 7876, 0, 1},
+ {7877, 7877, -1, 0},
+ {7878, 7878, 0, 1},
+ {7879, 7879, -1, 0},
+ {7880, 7880, 0, 1},
+ {7881, 7881, -1, 0},
+ {7882, 7882, 0, 1},
+ {7883, 7883, -1, 0},
+ {7884, 7884, 0, 1},
+ {7885, 7885, -1, 0},
+ {7886, 7886, 0, 1},
+ {7887, 7887, -1, 0},
+ {7888, 7888, 0, 1},
+ {7889, 7889, -1, 0},
+ {7890, 7890, 0, 1},
+ {7891, 7891, -1, 0},
+ {7892, 7892, 0, 1},
+ {7893, 7893, -1, 0},
+ {7894, 7894, 0, 1},
+ {7895, 7895, -1, 0},
+ {7896, 7896, 0, 1},
+ {7897, 7897, -1, 0},
+ {7898, 7898, 0, 1},
+ {7899, 7899, -1, 0},
+ {7900, 7900, 0, 1},
+ {7901, 7901, -1, 0},
+ {7902, 7902, 0, 1},
+ {7903, 7903, -1, 0},
+ {7904, 7904, 0, 1},
+ {7905, 7905, -1, 0},
+ {7906, 7906, 0, 1},
+ {7907, 7907, -1, 0},
+ {7908, 7908, 0, 1},
+ {7909, 7909, -1, 0},
+ {7910, 7910, 0, 1},
+ {7911, 7911, -1, 0},
+ {7912, 7912, 0, 1},
+ {7913, 7913, -1, 0},
+ {7914, 7914, 0, 1},
+ {7915, 7915, -1, 0},
+ {7916, 7916, 0, 1},
+ {7917, 7917, -1, 0},
+ {7918, 7918, 0, 1},
+ {7919, 7919, -1, 0},
+ {7920, 7920, 0, 1},
+ {7921, 7921, -1, 0},
+ {7922, 7922, 0, 1},
+ {7923, 7923, -1, 0},
+ {7924, 7924, 0, 1},
+ {7925, 7925, -1, 0},
+ {7926, 7926, 0, 1},
+ {7927, 7927, -1, 0},
+ {7928, 7928, 0, 1},
+ {7929, 7929, -1, 0},
+ {7930, 7930, 0, 1},
+ {7931, 7931, -1, 0},
+ {7932, 7932, 0, 1},
+ {7933, 7933, -1, 0},
+ {7934, 7934, 0, 1},
+ {7935, 7935, -1, 0},
+ {7936, 7943, 8, 0},
+ {7944, 7951, 0, -8},
+ {7952, 7957, 8, 0},
+ {7960, 7965, 0, -8},
+ {7968, 7975, 8, 0},
+ {7976, 7983, 0, -8},
+ {7984, 7991, 8, 0},
+ {7992, 7999, 0, -8},
+ {8000, 8005, 8, 0},
+ {8008, 8013, 0, -8},
+ {8017, 8017, 8, 0},
+ {8019, 8019, 8, 0},
+ {8021, 8021, 8, 0},
+ {8023, 8023, 8, 0},
+ {8025, 8025, 0, -8},
+ {8027, 8027, 0, -8},
+ {8029, 8029, 0, -8},
+ {8031, 8031, 0, -8},
+ {8032, 8039, 8, 0},
+ {8040, 8047, 0, -8},
+ {8048, 8049, 74, 0},
+ {8050, 8053, 86, 0},
+ {8054, 8055, 100, 0},
+ {8056, 8057, 128, 0},
+ {8058, 8059, 112, 0},
+ {8060, 8061, 126, 0},
+ {8112, 8113, 8, 0},
+ {8120, 8121, 0, -8},
+ {8122, 8123, 0, -74},
+ {8126, 8126, -7205, 0},
+ {8136, 8139, 0, -86},
+ {8144, 8145, 8, 0},
+ {8152, 8153, 0, -8},
+ {8154, 8155, 0, -100},
+ {8160, 8161, 8, 0},
+ {8165, 8165, 7, 0},
+ {8168, 8169, 0, -8},
+ {8170, 8171, 0, -112},
+ {8172, 8172, 0, -7},
+ {8184, 8185, 0, -128},
+ {8186, 8187, 0, -126},
+ {8486, 8486, 0, -7517},
+ {8490, 8490, 0, -8383},
+ {8491, 8491, 0, -8262},
+ {8498, 8498, 0, 28},
+ {8526, 8526, -28, 0},
+ {8544, 8559, 0, 16},
+ {8560, 8575, -16, 0},
+ {8579, 8579, 0, 1},
+ {8580, 8580, -1, 0},
+ {9398, 9423, 0, 26},
+ {9424, 9449, -26, 0},
+ {11264, 11310, 0, 48},
+ {11312, 11358, -48, 0},
+ {11360, 11360, 0, 1},
+ {11361, 11361, -1, 0},
+ {11362, 11362, 0, -10743},
+ {11363, 11363, 0, -3814},
+ {11364, 11364, 0, -10727},
+ {11365, 11365, -10795, 0},
+ {11366, 11366, -10792, 0},
+ {11367, 11367, 0, 1},
+ {11368, 11368, -1, 0},
+ {11369, 11369, 0, 1},
+ {11370, 11370, -1, 0},
+ {11371, 11371, 0, 1},
+ {11372, 11372, -1, 0},
+ {11373, 11373, 0, -10780},
+ {11374, 11374, 0, -10749},
+ {11375, 11375, 0, -10783},
+ {11376, 11376, 0, -10782},
+ {11378, 11378, 0, 1},
+ {11379, 11379, -1, 0},
+ {11381, 11381, 0, 1},
+ {11382, 11382, -1, 0},
+ {11390, 11391, 0, -10815},
+ {11392, 11392, 0, 1},
+ {11393, 11393, -1, 0},
+ {11394, 11394, 0, 1},
+ {11395, 11395, -1, 0},
+ {11396, 11396, 0, 1},
+ {11397, 11397, -1, 0},
+ {11398, 11398, 0, 1},
+ {11399, 11399, -1, 0},
+ {11400, 11400, 0, 1},
+ {11401, 11401, -1, 0},
+ {11402, 11402, 0, 1},
+ {11403, 11403, -1, 0},
+ {11404, 11404, 0, 1},
+ {11405, 11405, -1, 0},
+ {11406, 11406, 0, 1},
+ {11407, 11407, -1, 0},
+ {11408, 11408, 0, 1},
+ {11409, 11409, -1, 0},
+ {11410, 11410, 0, 1},
+ {11411, 11411, -1, 0},
+ {11412, 11412, 0, 1},
+ {11413, 11413, -1, 0},
+ {11414, 11414, 0, 1},
+ {11415, 11415, -1, 0},
+ {11416, 11416, 0, 1},
+ {11417, 11417, -1, 0},
+ {11418, 11418, 0, 1},
+ {11419, 11419, -1, 0},
+ {11420, 11420, 0, 1},
+ {11421, 11421, -1, 0},
+ {11422, 11422, 0, 1},
+ {11423, 11423, -1, 0},
+ {11424, 11424, 0, 1},
+ {11425, 11425, -1, 0},
+ {11426, 11426, 0, 1},
+ {11427, 11427, -1, 0},
+ {11428, 11428, 0, 1},
+ {11429, 11429, -1, 0},
+ {11430, 11430, 0, 1},
+ {11431, 11431, -1, 0},
+ {11432, 11432, 0, 1},
+ {11433, 11433, -1, 0},
+ {11434, 11434, 0, 1},
+ {11435, 11435, -1, 0},
+ {11436, 11436, 0, 1},
+ {11437, 11437, -1, 0},
+ {11438, 11438, 0, 1},
+ {11439, 11439, -1, 0},
+ {11440, 11440, 0, 1},
+ {11441, 11441, -1, 0},
+ {11442, 11442, 0, 1},
+ {11443, 11443, -1, 0},
+ {11444, 11444, 0, 1},
+ {11445, 11445, -1, 0},
+ {11446, 11446, 0, 1},
+ {11447, 11447, -1, 0},
+ {11448, 11448, 0, 1},
+ {11449, 11449, -1, 0},
+ {11450, 11450, 0, 1},
+ {11451, 11451, -1, 0},
+ {11452, 11452, 0, 1},
+ {11453, 11453, -1, 0},
+ {11454, 11454, 0, 1},
+ {11455, 11455, -1, 0},
+ {11456, 11456, 0, 1},
+ {11457, 11457, -1, 0},
+ {11458, 11458, 0, 1},
+ {11459, 11459, -1, 0},
+ {11460, 11460, 0, 1},
+ {11461, 11461, -1, 0},
+ {11462, 11462, 0, 1},
+ {11463, 11463, -1, 0},
+ {11464, 11464, 0, 1},
+ {11465, 11465, -1, 0},
+ {11466, 11466, 0, 1},
+ {11467, 11467, -1, 0},
+ {11468, 11468, 0, 1},
+ {11469, 11469, -1, 0},
+ {11470, 11470, 0, 1},
+ {11471, 11471, -1, 0},
+ {11472, 11472, 0, 1},
+ {11473, 11473, -1, 0},
+ {11474, 11474, 0, 1},
+ {11475, 11475, -1, 0},
+ {11476, 11476, 0, 1},
+ {11477, 11477, -1, 0},
+ {11478, 11478, 0, 1},
+ {11479, 11479, -1, 0},
+ {11480, 11480, 0, 1},
+ {11481, 11481, -1, 0},
+ {11482, 11482, 0, 1},
+ {11483, 11483, -1, 0},
+ {11484, 11484, 0, 1},
+ {11485, 11485, -1, 0},
+ {11486, 11486, 0, 1},
+ {11487, 11487, -1, 0},
+ {11488, 11488, 0, 1},
+ {11489, 11489, -1, 0},
+ {11490, 11490, 0, 1},
+ {11491, 11491, -1, 0},
+ {11499, 11499, 0, 1},
+ {11500, 11500, -1, 0},
+ {11501, 11501, 0, 1},
+ {11502, 11502, -1, 0},
+ {11506, 11506, 0, 1},
+ {11507, 11507, -1, 0},
+ {11520, 11557, -7264, 0},
+ {11559, 11559, -7264, 0},
+ {11565, 11565, -7264, 0},
+ {42560, 42560, 0, 1},
+ {42561, 42561, -1, 0},
+ {42562, 42562, 0, 1},
+ {42563, 42563, -1, 0},
+ {42564, 42564, 0, 1},
+ {42565, 42565, -1, 0},
+ {42566, 42566, 0, 1},
+ {42567, 42567, -1, 0},
+ {42568, 42568, 0, 1},
+ {42569, 42569, -1, 0},
+ {42570, 42570, 0, 1},
+ {42571, 42571, -1, 0},
+ {42572, 42572, 0, 1},
+ {42573, 42573, -1, 0},
+ {42574, 42574, 0, 1},
+ {42575, 42575, -1, 0},
+ {42576, 42576, 0, 1},
+ {42577, 42577, -1, 0},
+ {42578, 42578, 0, 1},
+ {42579, 42579, -1, 0},
+ {42580, 42580, 0, 1},
+ {42581, 42581, -1, 0},
+ {42582, 42582, 0, 1},
+ {42583, 42583, -1, 0},
+ {42584, 42584, 0, 1},
+ {42585, 42585, -1, 0},
+ {42586, 42586, 0, 1},
+ {42587, 42587, -1, 0},
+ {42588, 42588, 0, 1},
+ {42589, 42589, -1, 0},
+ {42590, 42590, 0, 1},
+ {42591, 42591, -1, 0},
+ {42592, 42592, 0, 1},
+ {42593, 42593, -1, 0},
+ {42594, 42594, 0, 1},
+ {42595, 42595, -1, 0},
+ {42596, 42596, 0, 1},
+ {42597, 42597, -1, 0},
+ {42598, 42598, 0, 1},
+ {42599, 42599, -1, 0},
+ {42600, 42600, 0, 1},
+ {42601, 42601, -1, 0},
+ {42602, 42602, 0, 1},
+ {42603, 42603, -1, 0},
+ {42604, 42604, 0, 1},
+ {42605, 42605, -1, 0},
+ {42624, 42624, 0, 1},
+ {42625, 42625, -1, 0},
+ {42626, 42626, 0, 1},
+ {42627, 42627, -1, 0},
+ {42628, 42628, 0, 1},
+ {42629, 42629, -1, 0},
+ {42630, 42630, 0, 1},
+ {42631, 42631, -1, 0},
+ {42632, 42632, 0, 1},
+ {42633, 42633, -1, 0},
+ {42634, 42634, 0, 1},
+ {42635, 42635, -1, 0},
+ {42636, 42636, 0, 1},
+ {42637, 42637, -1, 0},
+ {42638, 42638, 0, 1},
+ {42639, 42639, -1, 0},
+ {42640, 42640, 0, 1},
+ {42641, 42641, -1, 0},
+ {42642, 42642, 0, 1},
+ {42643, 42643, -1, 0},
+ {42644, 42644, 0, 1},
+ {42645, 42645, -1, 0},
+ {42646, 42646, 0, 1},
+ {42647, 42647, -1, 0},
+ {42648, 42648, 0, 1},
+ {42649, 42649, -1, 0},
+ {42650, 42650, 0, 1},
+ {42651, 42651, -1, 0},
+ {42786, 42786, 0, 1},
+ {42787, 42787, -1, 0},
+ {42788, 42788, 0, 1},
+ {42789, 42789, -1, 0},
+ {42790, 42790, 0, 1},
+ {42791, 42791, -1, 0},
+ {42792, 42792, 0, 1},
+ {42793, 42793, -1, 0},
+ {42794, 42794, 0, 1},
+ {42795, 42795, -1, 0},
+ {42796, 42796, 0, 1},
+ {42797, 42797, -1, 0},
+ {42798, 42798, 0, 1},
+ {42799, 42799, -1, 0},
+ {42802, 42802, 0, 1},
+ {42803, 42803, -1, 0},
+ {42804, 42804, 0, 1},
+ {42805, 42805, -1, 0},
+ {42806, 42806, 0, 1},
+ {42807, 42807, -1, 0},
+ {42808, 42808, 0, 1},
+ {42809, 42809, -1, 0},
+ {42810, 42810, 0, 1},
+ {42811, 42811, -1, 0},
+ {42812, 42812, 0, 1},
+ {42813, 42813, -1, 0},
+ {42814, 42814, 0, 1},
+ {42815, 42815, -1, 0},
+ {42816, 42816, 0, 1},
+ {42817, 42817, -1, 0},
+ {42818, 42818, 0, 1},
+ {42819, 42819, -1, 0},
+ {42820, 42820, 0, 1},
+ {42821, 42821, -1, 0},
+ {42822, 42822, 0, 1},
+ {42823, 42823, -1, 0},
+ {42824, 42824, 0, 1},
+ {42825, 42825, -1, 0},
+ {42826, 42826, 0, 1},
+ {42827, 42827, -1, 0},
+ {42828, 42828, 0, 1},
+ {42829, 42829, -1, 0},
+ {42830, 42830, 0, 1},
+ {42831, 42831, -1, 0},
+ {42832, 42832, 0, 1},
+ {42833, 42833, -1, 0},
+ {42834, 42834, 0, 1},
+ {42835, 42835, -1, 0},
+ {42836, 42836, 0, 1},
+ {42837, 42837, -1, 0},
+ {42838, 42838, 0, 1},
+ {42839, 42839, -1, 0},
+ {42840, 42840, 0, 1},
+ {42841, 42841, -1, 0},
+ {42842, 42842, 0, 1},
+ {42843, 42843, -1, 0},
+ {42844, 42844, 0, 1},
+ {42845, 42845, -1, 0},
+ {42846, 42846, 0, 1},
+ {42847, 42847, -1, 0},
+ {42848, 42848, 0, 1},
+ {42849, 42849, -1, 0},
+ {42850, 42850, 0, 1},
+ {42851, 42851, -1, 0},
+ {42852, 42852, 0, 1},
+ {42853, 42853, -1, 0},
+ {42854, 42854, 0, 1},
+ {42855, 42855, -1, 0},
+ {42856, 42856, 0, 1},
+ {42857, 42857, -1, 0},
+ {42858, 42858, 0, 1},
+ {42859, 42859, -1, 0},
+ {42860, 42860, 0, 1},
+ {42861, 42861, -1, 0},
+ {42862, 42862, 0, 1},
+ {42863, 42863, -1, 0},
+ {42873, 42873, 0, 1},
+ {42874, 42874, -1, 0},
+ {42875, 42875, 0, 1},
+ {42876, 42876, -1, 0},
+ {42877, 42877, 0, -35332},
+ {42878, 42878, 0, 1},
+ {42879, 42879, -1, 0},
+ {42880, 42880, 0, 1},
+ {42881, 42881, -1, 0},
+ {42882, 42882, 0, 1},
+ {42883, 42883, -1, 0},
+ {42884, 42884, 0, 1},
+ {42885, 42885, -1, 0},
+ {42886, 42886, 0, 1},
+ {42887, 42887, -1, 0},
+ {42891, 42891, 0, 1},
+ {42892, 42892, -1, 0},
+ {42893, 42893, 0, -42280},
+ {42896, 42896, 0, 1},
+ {42897, 42897, -1, 0},
+ {42898, 42898, 0, 1},
+ {42899, 42899, -1, 0},
+ {42900, 42900, 48, 0},
+ {42902, 42902, 0, 1},
+ {42903, 42903, -1, 0},
+ {42904, 42904, 0, 1},
+ {42905, 42905, -1, 0},
+ {42906, 42906, 0, 1},
+ {42907, 42907, -1, 0},
+ {42908, 42908, 0, 1},
+ {42909, 42909, -1, 0},
+ {42910, 42910, 0, 1},
+ {42911, 42911, -1, 0},
+ {42912, 42912, 0, 1},
+ {42913, 42913, -1, 0},
+ {42914, 42914, 0, 1},
+ {42915, 42915, -1, 0},
+ {42916, 42916, 0, 1},
+ {42917, 42917, -1, 0},
+ {42918, 42918, 0, 1},
+ {42919, 42919, -1, 0},
+ {42920, 42920, 0, 1},
+ {42921, 42921, -1, 0},
+ {42922, 42922, 0, -42308},
+ {42923, 42923, 0, -42319},
+ {42924, 42924, 0, -42315},
+ {42925, 42925, 0, -42305},
+ {42926, 42926, 0, -42308},
+ {42928, 42928, 0, -42258},
+ {42929, 42929, 0, -42282},
+ {42930, 42930, 0, -42261},
+ {42931, 42931, 0, 928},
+ {42932, 42932, 0, 1},
+ {42933, 42933, -1, 0},
+ {42934, 42934, 0, 1},
+ {42935, 42935, -1, 0},
+ {42936, 42936, 0, 1},
+ {42937, 42937, -1, 0},
+ {42938, 42938, 0, 1},
+ {42939, 42939, -1, 0},
+ {42940, 42940, 0, 1},
+ {42941, 42941, -1, 0},
+ {42942, 42942, 0, 1},
+ {42943, 42943, -1, 0},
+ {42946, 42946, 0, 1},
+ {42947, 42947, -1, 0},
+ {42948, 42948, 0, -48},
+ {42949, 42949, 0, -42307},
+ {42950, 42950, 0, -35384},
+ {42951, 42951, 0, 1},
+ {42952, 42952, -1, 0},
+ {42953, 42953, 0, 1},
+ {42954, 42954, -1, 0},
+ {42997, 42997, 0, 1},
+ {42998, 42998, -1, 0},
+ {43859, 43859, -928, 0},
+ {43888, 43967, -38864, 0},
+ {65313, 65338, 0, 32},
+ {65345, 65370, -32, 0},
+ {66560, 66599, 0, 40},
+ {66600, 66639, -40, 0},
+ {66736, 66771, 0, 40},
+ {66776, 66811, -40, 0},
+ {68736, 68786, 0, 64},
+ {68800, 68850, -64, 0},
+ {71840, 71871, 0, 32},
+ {71872, 71903, -32, 0},
+ {93760, 93791, 0, 32},
+ {93792, 93823, -32, 0},
+ {125184, 125217, 0, 34},
+ {125218, 125251, -34, 0},