| 1 | // Scintilla source code edit control |
| 2 | /** @file CharacterCategory.cxx |
| 3 | ** Returns the Unicode general category of a character. |
| 4 | ** Table automatically regenerated by scripts/GenerateCharacterCategory.py |
| 5 | ** Should only be rarely regenerated for new versions of Unicode. |
| 6 | **/ |
| 7 | // Copyright 2013 by Neil Hodgson <neilh@scintilla.org> |
| 8 | // The License.txt file describes the conditions under which this software may be distributed. |
| 9 | |
| 10 | #include <vector> |
| 11 | #include <algorithm> |
| 12 | #include <iterator> |
| 13 | |
| 14 | #include "CharacterCategory.h" |
| 15 | |
| 16 | namespace Lexilla { |
| 17 | |
| 18 | namespace { |
| 19 | // Use an unnamed namespace to protect the declarations from name conflicts |
| 20 | |
| 21 | const int catRanges[] = { |
| 22 | //++Autogenerated -- start of section automatically generated |
| 23 | // Created with Python 3.9.4, Unicode 13.0.0 |
| 24 | 25, |
| 25 | 1046, |
| 26 | 1073, |
| 27 | 1171, |
| 28 | 1201, |
| 29 | 1293, |
| 30 | 1326, |
| 31 | 1361, |
| 32 | 1394, |
| 33 | 1425, |
| 34 | 1452, |
| 35 | 1489, |
| 36 | 1544, |
| 37 | 1873, |
| 38 | 1938, |
| 39 | 2033, |
| 40 | 2080, |
| 41 | 2925, |
| 42 | 2961, |
| 43 | 2990, |
| 44 | 3028, |
| 45 | 3051, |
| 46 | 3092, |
| 47 | 3105, |
| 48 | 3949, |
| 49 | 3986, |
| 50 | 4014, |
| 51 | 4050, |
| 52 | 4089, |
| 53 | 5142, |
| 54 | 5169, |
| 55 | 5203, |
| 56 | 5333, |
| 57 | 5361, |
| 58 | 5396, |
| 59 | 5429, |
| 60 | 5444, |
| 61 | 5487, |
| 62 | 5522, |
| 63 | 5562, |
| 64 | 5589, |
| 65 | 5620, |
| 66 | 5653, |
| 67 | 5682, |
| 68 | 5706, |
| 69 | 5780, |
| 70 | 5793, |
| 71 | 5841, |
| 72 | 5908, |
| 73 | 5930, |
| 74 | 5956, |
| 75 | 6000, |
| 76 | 6026, |
| 77 | 6129, |
| 78 | 6144, |
| 79 | 6898, |
| 80 | 6912, |
| 81 | 7137, |
| 82 | 7922, |
| 83 | 7937, |
| 84 | 8192, |
| 85 | 8225, |
| 86 | 8256, |
| 87 | 8289, |
| 88 | 8320, |
| 89 | 8353, |
| 90 | 8384, |
| 91 | 8417, |
| 92 | 8448, |
| 93 | 8481, |
| 94 | 8512, |
| 95 | 8545, |
| 96 | 8576, |
| 97 | 8609, |
| 98 | 8640, |
| 99 | 8673, |
| 100 | 8704, |
| 101 | 8737, |
| 102 | 8768, |
| 103 | 8801, |
| 104 | 8832, |
| 105 | 8865, |
| 106 | 8896, |
| 107 | 8929, |
| 108 | 8960, |
| 109 | 8993, |
| 110 | 9024, |
| 111 | 9057, |
| 112 | 9088, |
| 113 | 9121, |
| 114 | 9152, |
| 115 | 9185, |
| 116 | 9216, |
| 117 | 9249, |
| 118 | 9280, |
| 119 | 9313, |
| 120 | 9344, |
| 121 | 9377, |
| 122 | 9408, |
| 123 | 9441, |
| 124 | 9472, |
| 125 | 9505, |
| 126 | 9536, |
| 127 | 9569, |
| 128 | 9600, |
| 129 | 9633, |
| 130 | 9664, |
| 131 | 9697, |
| 132 | 9728, |
| 133 | 9761, |
| 134 | 9792, |
| 135 | 9825, |
| 136 | 9856, |
| 137 | 9889, |
| 138 | 9920, |
| 139 | 9953, |
| 140 | 10016, |
| 141 | 10049, |
| 142 | 10080, |
| 143 | 10113, |
| 144 | 10144, |
| 145 | 10177, |
| 146 | 10208, |
| 147 | 10241, |
| 148 | 10272, |
| 149 | 10305, |
| 150 | 10336, |
| 151 | 10369, |
| 152 | 10400, |
| 153 | 10433, |
| 154 | 10464, |
| 155 | 10497, |
| 156 | 10560, |
| 157 | 10593, |
| 158 | 10624, |
| 159 | 10657, |
| 160 | 10688, |
| 161 | 10721, |
| 162 | 10752, |
| 163 | 10785, |
| 164 | 10816, |
| 165 | 10849, |
| 166 | 10880, |
| 167 | 10913, |
| 168 | 10944, |
| 169 | 10977, |
| 170 | 11008, |
| 171 | 11041, |
| 172 | 11072, |
| 173 | 11105, |
| 174 | 11136, |
| 175 | 11169, |
| 176 | 11200, |
| 177 | 11233, |
| 178 | 11264, |
| 179 | 11297, |
| 180 | 11328, |
| 181 | 11361, |
| 182 | 11392, |
| 183 | 11425, |
| 184 | 11456, |
| 185 | 11489, |
| 186 | 11520, |
| 187 | 11553, |
| 188 | 11584, |
| 189 | 11617, |
| 190 | 11648, |
| 191 | 11681, |
| 192 | 11712, |
| 193 | 11745, |
| 194 | 11776, |
| 195 | 11809, |
| 196 | 11840, |
| 197 | 11873, |
| 198 | 11904, |
| 199 | 11937, |
| 200 | 11968, |
| 201 | 12001, |
| 202 | 12032, |
| 203 | 12097, |
| 204 | 12128, |
| 205 | 12161, |
| 206 | 12192, |
| 207 | 12225, |
| 208 | 12320, |
| 209 | 12385, |
| 210 | 12416, |
| 211 | 12449, |
| 212 | 12480, |
| 213 | 12545, |
| 214 | 12576, |
| 215 | 12673, |
| 216 | 12736, |
| 217 | 12865, |
| 218 | 12896, |
| 219 | 12961, |
| 220 | 12992, |
| 221 | 13089, |
| 222 | 13184, |
| 223 | 13249, |
| 224 | 13280, |
| 225 | 13345, |
| 226 | 13376, |
| 227 | 13409, |
| 228 | 13440, |
| 229 | 13473, |
| 230 | 13504, |
| 231 | 13569, |
| 232 | 13600, |
| 233 | 13633, |
| 234 | 13696, |
| 235 | 13729, |
| 236 | 13760, |
| 237 | 13825, |
| 238 | 13856, |
| 239 | 13953, |
| 240 | 13984, |
| 241 | 14017, |
| 242 | 14048, |
| 243 | 14113, |
| 244 | 14180, |
| 245 | 14208, |
| 246 | 14241, |
| 247 | 14340, |
| 248 | 14464, |
| 249 | 14498, |
| 250 | 14529, |
| 251 | 14560, |
| 252 | 14594, |
| 253 | 14625, |
| 254 | 14656, |
| 255 | 14690, |
| 256 | 14721, |
| 257 | 14752, |
| 258 | 14785, |
| 259 | 14816, |
| 260 | 14849, |
| 261 | 14880, |
| 262 | 14913, |
| 263 | 14944, |
| 264 | 14977, |
| 265 | 15008, |
| 266 | 15041, |
| 267 | 15072, |
| 268 | 15105, |
| 269 | 15136, |
| 270 | 15169, |
| 271 | 15200, |
| 272 | 15233, |
| 273 | 15296, |
| 274 | 15329, |
| 275 | 15360, |
| 276 | 15393, |
| 277 | 15424, |
| 278 | 15457, |
| 279 | 15488, |
| 280 | 15521, |
| 281 | 15552, |
| 282 | 15585, |
| 283 | 15616, |
| 284 | 15649, |
| 285 | 15680, |
| 286 | 15713, |
| 287 | 15744, |
| 288 | 15777, |
| 289 | 15808, |
| 290 | 15841, |
| 291 | 15904, |
| 292 | 15938, |
| 293 | 15969, |
| 294 | 16000, |
| 295 | 16033, |
| 296 | 16064, |
| 297 | 16161, |
| 298 | 16192, |
| 299 | 16225, |
| 300 | 16256, |
| 301 | 16289, |
| 302 | 16320, |
| 303 | 16353, |
| 304 | 16384, |
| 305 | 16417, |
| 306 | 16448, |
| 307 | 16481, |
| 308 | 16512, |
| 309 | 16545, |
| 310 | 16576, |
| 311 | 16609, |
| 312 | 16640, |
| 313 | 16673, |
| 314 | 16704, |
| 315 | 16737, |
| 316 | 16768, |
| 317 | 16801, |
| 318 | 16832, |
| 319 | 16865, |
| 320 | 16896, |
| 321 | 16929, |
| 322 | 16960, |
| 323 | 16993, |
| 324 | 17024, |
| 325 | 17057, |
| 326 | 17088, |
| 327 | 17121, |
| 328 | 17152, |
| 329 | 17185, |
| 330 | 17216, |
| 331 | 17249, |
| 332 | 17280, |
| 333 | 17313, |
| 334 | 17344, |
| 335 | 17377, |
| 336 | 17408, |
| 337 | 17441, |
| 338 | 17472, |
| 339 | 17505, |
| 340 | 17536, |
| 341 | 17569, |
| 342 | 17600, |
| 343 | 17633, |
| 344 | 17664, |
| 345 | 17697, |
| 346 | 17728, |
| 347 | 17761, |
| 348 | 17792, |
| 349 | 17825, |
| 350 | 17856, |
| 351 | 17889, |
| 352 | 17920, |
| 353 | 17953, |
| 354 | 17984, |
| 355 | 18017, |
| 356 | 18240, |
| 357 | 18305, |
| 358 | 18336, |
| 359 | 18401, |
| 360 | 18464, |
| 361 | 18497, |
| 362 | 18528, |
| 363 | 18657, |
| 364 | 18688, |
| 365 | 18721, |
| 366 | 18752, |
| 367 | 18785, |
| 368 | 18816, |
| 369 | 18849, |
| 370 | 18880, |
| 371 | 18913, |
| 372 | 21124, |
| 373 | 21153, |
| 374 | 22019, |
| 375 | 22612, |
| 376 | 22723, |
| 377 | 23124, |
| 378 | 23555, |
| 379 | 23732, |
| 380 | 23939, |
| 381 | 23988, |
| 382 | 24003, |
| 383 | 24052, |
| 384 | 24581, |
| 385 | 28160, |
| 386 | 28193, |
| 387 | 28224, |
| 388 | 28257, |
| 389 | 28291, |
| 390 | 28340, |
| 391 | 28352, |
| 392 | 28385, |
| 393 | 28445, |
| 394 | 28483, |
| 395 | 28513, |
| 396 | 28625, |
| 397 | 28640, |
| 398 | 28701, |
| 399 | 28820, |
| 400 | 28864, |
| 401 | 28913, |
| 402 | 28928, |
| 403 | 29053, |
| 404 | 29056, |
| 405 | 29117, |
| 406 | 29120, |
| 407 | 29185, |
| 408 | 29216, |
| 409 | 29789, |
| 410 | 29792, |
| 411 | 30081, |
| 412 | 31200, |
| 413 | 31233, |
| 414 | 31296, |
| 415 | 31393, |
| 416 | 31488, |
| 417 | 31521, |
| 418 | 31552, |
| 419 | 31585, |
| 420 | 31616, |
| 421 | 31649, |
| 422 | 31680, |
| 423 | 31713, |
| 424 | 31744, |
| 425 | 31777, |
| 426 | 31808, |
| 427 | 31841, |
| 428 | 31872, |
| 429 | 31905, |
| 430 | 31936, |
| 431 | 31969, |
| 432 | 32000, |
| 433 | 32033, |
| 434 | 32064, |
| 435 | 32097, |
| 436 | 32128, |
| 437 | 32161, |
| 438 | 32192, |
| 439 | 32225, |
| 440 | 32384, |
| 441 | 32417, |
| 442 | 32466, |
| 443 | 32480, |
| 444 | 32513, |
| 445 | 32544, |
| 446 | 32609, |
| 447 | 32672, |
| 448 | 34305, |
| 449 | 35840, |
| 450 | 35873, |
| 451 | 35904, |
| 452 | 35937, |
| 453 | 35968, |
| 454 | 36001, |
| 455 | 36032, |
| 456 | 36065, |
| 457 | 36096, |
| 458 | 36129, |
| 459 | 36160, |
| 460 | 36193, |
| 461 | 36224, |
| 462 | 36257, |
| 463 | 36288, |
| 464 | 36321, |
| 465 | 36352, |
| 466 | 36385, |
| 467 | 36416, |
| 468 | 36449, |
| 469 | 36480, |
| 470 | 36513, |
| 471 | 36544, |
| 472 | 36577, |
| 473 | 36608, |
| 474 | 36641, |
| 475 | 36672, |
| 476 | 36705, |
| 477 | 36736, |
| 478 | 36769, |
| 479 | 36800, |
| 480 | 36833, |
| 481 | 36864, |
| 482 | 36897, |
| 483 | 36949, |
| 484 | 36965, |
| 485 | 37127, |
| 486 | 37184, |
| 487 | 37217, |
| 488 | 37248, |
| 489 | 37281, |
| 490 | 37312, |
| 491 | 37345, |
| 492 | 37376, |
| 493 | 37409, |
| 494 | 37440, |
| 495 | 37473, |
| 496 | 37504, |
| 497 | 37537, |
| 498 | 37568, |
| 499 | 37601, |
| 500 | 37632, |
| 501 | 37665, |
| 502 | 37696, |
| 503 | 37729, |
| 504 | 37760, |
| 505 | 37793, |
| 506 | 37824, |
| 507 | 37857, |
| 508 | 37888, |
| 509 | 37921, |
| 510 | 37952, |
| 511 | 37985, |
| 512 | 38016, |
| 513 | 38049, |
| 514 | 38080, |
| 515 | 38113, |
| 516 | 38144, |
| 517 | 38177, |
| 518 | 38208, |
| 519 | 38241, |
| 520 | 38272, |
| 521 | 38305, |
| 522 | 38336, |
| 523 | 38369, |
| 524 | 38400, |
| 525 | 38433, |
| 526 | 38464, |
| 527 | 38497, |
| 528 | 38528, |
| 529 | 38561, |
| 530 | 38592, |
| 531 | 38625, |
| 532 | 38656, |
| 533 | 38689, |
| 534 | 38720, |
| 535 | 38753, |
| 536 | 38784, |
| 537 | 38817, |
| 538 | 38848, |
| 539 | 38881, |
| 540 | 38912, |
| 541 | 38977, |
| 542 | 39008, |
| 543 | 39041, |
| 544 | 39072, |
| 545 | 39105, |
| 546 | 39136, |
| 547 | 39169, |
| 548 | 39200, |
| 549 | 39233, |
| 550 | 39264, |
| 551 | 39297, |
| 552 | 39328, |
| 553 | 39361, |
| 554 | 39424, |
| 555 | 39457, |
| 556 | 39488, |
| 557 | 39521, |
| 558 | 39552, |
| 559 | 39585, |
| 560 | 39616, |
| 561 | 39649, |
| 562 | 39680, |
| 563 | 39713, |
| 564 | 39744, |
| 565 | 39777, |
| 566 | 39808, |
| 567 | 39841, |
| 568 | 39872, |
| 569 | 39905, |
| 570 | 39936, |
| 571 | 39969, |
| 572 | 40000, |
| 573 | 40033, |
| 574 | 40064, |
| 575 | 40097, |
| 576 | 40128, |
| 577 | 40161, |
| 578 | 40192, |
| 579 | 40225, |
| 580 | 40256, |
| 581 | 40289, |
| 582 | 40320, |
| 583 | 40353, |
| 584 | 40384, |
| 585 | 40417, |
| 586 | 40448, |
| 587 | 40481, |
| 588 | 40512, |
| 589 | 40545, |
| 590 | 40576, |
| 591 | 40609, |
| 592 | 40640, |
| 593 | 40673, |
| 594 | 40704, |
| 595 | 40737, |
| 596 | 40768, |
| 597 | 40801, |
| 598 | 40832, |
| 599 | 40865, |
| 600 | 40896, |
| 601 | 40929, |
| 602 | 40960, |
| 603 | 40993, |
| 604 | 41024, |
| 605 | 41057, |
| 606 | 41088, |
| 607 | 41121, |
| 608 | 41152, |
| 609 | 41185, |
| 610 | 41216, |
| 611 | 41249, |
| 612 | 41280, |
| 613 | 41313, |
| 614 | 41344, |
| 615 | 41377, |
| 616 | 41408, |
| 617 | 41441, |
| 618 | 41472, |
| 619 | 41505, |
| 620 | 41536, |
| 621 | 41569, |
| 622 | 41600, |
| 623 | 41633, |
| 624 | 41664, |
| 625 | 41697, |
| 626 | 41728, |
| 627 | 41761, |
| 628 | 41792, |
| 629 | 41825, |
| 630 | 41856, |
| 631 | 41889, |
| 632 | 41920, |
| 633 | 41953, |
| 634 | 41984, |
| 635 | 42017, |
| 636 | 42048, |
| 637 | 42081, |
| 638 | 42112, |
| 639 | 42145, |
| 640 | 42176, |
| 641 | 42209, |
| 642 | 42240, |
| 643 | 42273, |
| 644 | 42304, |
| 645 | 42337, |
| 646 | 42368, |
| 647 | 42401, |
| 648 | 42432, |
| 649 | 42465, |
| 650 | 42525, |
| 651 | 42528, |
| 652 | 43773, |
| 653 | 43811, |
| 654 | 43857, |
| 655 | 44033, |
| 656 | 45361, |
| 657 | 45388, |
| 658 | 45437, |
| 659 | 45493, |
| 660 | 45555, |
| 661 | 45597, |
| 662 | 45605, |
| 663 | 47052, |
| 664 | 47077, |
| 665 | 47121, |
| 666 | 47141, |
| 667 | 47217, |
| 668 | 47237, |
| 669 | 47313, |
| 670 | 47333, |
| 671 | 47389, |
| 672 | 47620, |
| 673 | 48509, |
| 674 | 48612, |
| 675 | 48753, |
| 676 | 48829, |
| 677 | 49178, |
| 678 | 49362, |
| 679 | 49457, |
| 680 | 49523, |
| 681 | 49553, |
| 682 | 49621, |
| 683 | 49669, |
| 684 | 50033, |
| 685 | 50074, |
| 686 | 50109, |
| 687 | 50129, |
| 688 | 50180, |
| 689 | 51203, |
| 690 | 51236, |
| 691 | 51557, |
| 692 | 52232, |
| 693 | 52561, |
| 694 | 52676, |
| 695 | 52741, |
| 696 | 52772, |
| 697 | 55953, |
| 698 | 55972, |
| 699 | 56005, |
| 700 | 56250, |
| 701 | 56277, |
| 702 | 56293, |
| 703 | 56483, |
| 704 | 56549, |
| 705 | 56629, |
| 706 | 56645, |
| 707 | 56772, |
| 708 | 56840, |
| 709 | 57156, |
| 710 | 57269, |
| 711 | 57316, |
| 712 | 57361, |
| 713 | 57821, |
| 714 | 57850, |
| 715 | 57860, |
| 716 | 57893, |
| 717 | 57924, |
| 718 | 58885, |
| 719 | 59773, |
| 720 | 59812, |
| 721 | 62661, |
| 722 | 63012, |
| 723 | 63069, |
| 724 | 63496, |
| 725 | 63812, |
| 726 | 64869, |
| 727 | 65155, |
| 728 | 65237, |
| 729 | 65265, |
| 730 | 65347, |
| 731 | 65405, |
| 732 | 65445, |
| 733 | 65491, |
| 734 | 65540, |
| 735 | 66245, |
| 736 | 66371, |
| 737 | 66405, |
| 738 | 66691, |
| 739 | 66725, |
| 740 | 66819, |
| 741 | 66853, |
| 742 | 67037, |
| 743 | 67089, |
| 744 | 67581, |
| 745 | 67588, |
| 746 | 68389, |
| 747 | 68509, |
| 748 | 68561, |
| 749 | 68605, |
| 750 | 68612, |
| 751 | 68989, |
| 752 | 70660, |
| 753 | 71357, |
| 754 | 71364, |
| 755 | 71965, |
| 756 | 72293, |
| 757 | 72794, |
| 758 | 72805, |
| 759 | 73830, |
| 760 | 73860, |
| 761 | 75589, |
| 762 | 75622, |
| 763 | 75653, |
| 764 | 75684, |
| 765 | 75718, |
| 766 | 75813, |
| 767 | 76070, |
| 768 | 76197, |
| 769 | 76230, |
| 770 | 76292, |
| 771 | 76325, |
| 772 | 76548, |
| 773 | 76869, |
| 774 | 76945, |
| 775 | 77000, |
| 776 | 77329, |
| 777 | 77347, |
| 778 | 77380, |
| 779 | 77861, |
| 780 | 77894, |
| 781 | 77981, |
| 782 | 77988, |
| 783 | 78269, |
| 784 | 78308, |
| 785 | 78397, |
| 786 | 78436, |
| 787 | 79165, |
| 788 | 79172, |
| 789 | 79421, |
| 790 | 79428, |
| 791 | 79485, |
| 792 | 79556, |
| 793 | 79709, |
| 794 | 79749, |
| 795 | 79780, |
| 796 | 79814, |
| 797 | 79909, |
| 798 | 80061, |
| 799 | 80102, |
| 800 | 80189, |
| 801 | 80230, |
| 802 | 80293, |
| 803 | 80324, |
| 804 | 80381, |
| 805 | 80614, |
| 806 | 80669, |
| 807 | 80772, |
| 808 | 80861, |
| 809 | 80868, |
| 810 | 80965, |
| 811 | 81053, |
| 812 | 81096, |
| 813 | 81412, |
| 814 | 81491, |
| 815 | 81546, |
| 816 | 81749, |
| 817 | 81779, |
| 818 | 81796, |
| 819 | 81841, |
| 820 | 81861, |
| 821 | 81917, |
| 822 | 81957, |
| 823 | 82022, |
| 824 | 82077, |
| 825 | 82084, |
| 826 | 82301, |
| 827 | 82404, |
| 828 | 82493, |
| 829 | 82532, |
| 830 | 83261, |
| 831 | 83268, |
| 832 | 83517, |
| 833 | 83524, |
| 834 | 83613, |
| 835 | 83620, |
| 836 | 83709, |
| 837 | 83716, |
| 838 | 83805, |
| 839 | 83845, |
| 840 | 83901, |
| 841 | 83910, |
| 842 | 84005, |
| 843 | 84093, |
| 844 | 84197, |
| 845 | 84285, |
| 846 | 84325, |
| 847 | 84445, |
| 848 | 84517, |
| 849 | 84573, |
| 850 | 84772, |
| 851 | 84925, |
| 852 | 84932, |
| 853 | 84989, |
| 854 | 85192, |
| 855 | 85509, |
| 856 | 85572, |
| 857 | 85669, |
| 858 | 85713, |
| 859 | 85757, |
| 860 | 86053, |
| 861 | 86118, |
| 862 | 86173, |
| 863 | 86180, |
| 864 | 86493, |
| 865 | 86500, |
| 866 | 86621, |
| 867 | 86628, |
| 868 | 87357, |
| 869 | 87364, |
| 870 | 87613, |
| 871 | 87620, |
| 872 | 87709, |
| 873 | 87716, |
| 874 | 87901, |
| 875 | 87941, |
| 876 | 87972, |
| 877 | 88006, |
| 878 | 88101, |
| 879 | 88285, |
| 880 | 88293, |
| 881 | 88358, |
| 882 | 88413, |
| 883 | 88422, |
| 884 | 88485, |
| 885 | 88541, |
| 886 | 88580, |
| 887 | 88637, |
| 888 | 89092, |
| 889 | 89157, |
| 890 | 89245, |
| 891 | 89288, |
| 892 | 89617, |
| 893 | 89651, |
| 894 | 89693, |
| 895 | 89892, |
| 896 | 89925, |
| 897 | 90141, |
| 898 | 90149, |
| 899 | 90182, |
| 900 | 90269, |
| 901 | 90276, |
| 902 | 90557, |
| 903 | 90596, |
| 904 | 90685, |
| 905 | 90724, |
| 906 | 91453, |
| 907 | 91460, |
| 908 | 91709, |
| 909 | 91716, |
| 910 | 91805, |
| 911 | 91812, |
| 912 | 91997, |
| 913 | 92037, |
| 914 | 92068, |
| 915 | 92102, |
| 916 | 92133, |
| 917 | 92166, |
| 918 | 92197, |
| 919 | 92349, |
| 920 | 92390, |
| 921 | 92477, |
| 922 | 92518, |
| 923 | 92581, |
| 924 | 92637, |
| 925 | 92837, |
| 926 | 92902, |
| 927 | 92957, |
| 928 | 93060, |
| 929 | 93149, |
| 930 | 93156, |
| 931 | 93253, |
| 932 | 93341, |
| 933 | 93384, |
| 934 | 93717, |
| 935 | 93732, |
| 936 | 93770, |
| 937 | 93981, |
| 938 | 94277, |
| 939 | 94308, |
| 940 | 94365, |
| 941 | 94372, |
| 942 | 94589, |
| 943 | 94660, |
| 944 | 94781, |
| 945 | 94788, |
| 946 | 94941, |
| 947 | 95012, |
| 948 | 95101, |
| 949 | 95108, |
| 950 | 95165, |
| 951 | 95172, |
| 952 | 95261, |
| 953 | 95332, |
| 954 | 95421, |
| 955 | 95492, |
| 956 | 95613, |
| 957 | 95684, |
| 958 | 96093, |
| 959 | 96198, |
| 960 | 96261, |
| 961 | 96294, |
| 962 | 96381, |
| 963 | 96454, |
| 964 | 96573, |
| 965 | 96582, |
| 966 | 96677, |
| 967 | 96733, |
| 968 | 96772, |
| 969 | 96829, |
| 970 | 96998, |
| 971 | 97053, |
| 972 | 97480, |
| 973 | 97802, |
| 974 | 97909, |
| 975 | 98099, |
| 976 | 98133, |
| 977 | 98173, |
| 978 | 98309, |
| 979 | 98342, |
| 980 | 98437, |
| 981 | 98468, |
| 982 | 98749, |
| 983 | 98756, |
| 984 | 98877, |
| 985 | 98884, |
| 986 | 99645, |
| 987 | 99652, |
| 988 | 100189, |
| 989 | 100260, |
| 990 | 100293, |
| 991 | 100390, |
| 992 | 100541, |
| 993 | 100549, |
| 994 | 100669, |
| 995 | 100677, |
| 996 | 100829, |
| 997 | 101029, |
| 998 | 101117, |
| 999 | 101124, |
| 1000 | 101245, |
| 1001 | 101380, |
| 1002 | 101445, |
| 1003 | 101533, |
| 1004 | 101576, |
| 1005 | 101917, |
| 1006 | 102129, |
| 1007 | 102154, |
| 1008 | 102389, |
| 1009 | 102404, |
| 1010 | 102437, |
| 1011 | 102470, |
| 1012 | 102545, |
| 1013 | 102564, |
| 1014 | 102845, |
| 1015 | 102852, |
| 1016 | 102973, |
| 1017 | 102980, |
| 1018 | 103741, |
| 1019 | 103748, |
| 1020 | 104093, |
| 1021 | 104100, |
| 1022 | 104285, |
| 1023 | 104325, |
| 1024 | 104356, |
| 1025 | 104390, |
| 1026 | 104421, |
| 1027 | 104454, |
| 1028 | 104637, |
| 1029 | 104645, |
| 1030 | 104678, |
| 1031 | 104765, |
| 1032 | 104774, |
| 1033 | 104837, |
| 1034 | 104925, |
| 1035 | 105126, |
| 1036 | 105213, |
| 1037 | 105412, |
| 1038 | 105469, |
| 1039 | 105476, |
| 1040 | 105541, |
| 1041 | 105629, |
| 1042 | 105672, |
| 1043 | 106013, |
| 1044 | 106020, |
| 1045 | 106109, |
| 1046 | 106501, |
| 1047 | 106566, |
| 1048 | 106628, |
| 1049 | 106941, |
| 1050 | 106948, |
| 1051 | 107069, |
| 1052 | 107076, |
| 1053 | 108389, |
| 1054 | 108452, |
| 1055 | 108486, |
| 1056 | 108581, |
| 1057 | 108733, |
| 1058 | 108742, |
| 1059 | 108861, |
| 1060 | 108870, |
| 1061 | 108965, |
| 1062 | 108996, |
| 1063 | 109045, |
| 1064 | 109085, |
| 1065 | 109188, |
| 1066 | 109286, |
| 1067 | 109322, |
| 1068 | 109540, |
| 1069 | 109637, |
| 1070 | 109725, |
| 1071 | 109768, |
| 1072 | 110090, |
| 1073 | 110389, |
| 1074 | 110404, |
| 1075 | 110621, |
| 1076 | 110629, |
| 1077 | 110662, |
| 1078 | 110749, |
| 1079 | 110756, |
| 1080 | 111357, |
| 1081 | 111428, |
| 1082 | 112221, |
| 1083 | 112228, |
| 1084 | 112541, |
| 1085 | 112548, |
| 1086 | 112605, |
| 1087 | 112644, |
| 1088 | 112893, |
| 1089 | 112965, |
| 1090 | 113021, |
| 1091 | 113126, |
| 1092 | 113221, |
| 1093 | 113341, |
| 1094 | 113349, |
| 1095 | 113405, |
| 1096 | 113414, |
| 1097 | 113693, |
| 1098 | 113864, |
| 1099 | 114205, |
| 1100 | 114246, |
| 1101 | 114321, |
| 1102 | 114365, |
| 1103 | 114724, |
| 1104 | 116261, |
| 1105 | 116292, |
| 1106 | 116357, |
| 1107 | 116605, |
| 1108 | 116723, |
| 1109 | 116740, |
| 1110 | 116931, |
| 1111 | 116965, |
| 1112 | 117233, |
| 1113 | 117256, |
| 1114 | 117585, |
| 1115 | 117661, |
| 1116 | 118820, |
| 1117 | 118909, |
| 1118 | 118916, |
| 1119 | 118973, |
| 1120 | 118980, |
| 1121 | 119165, |
| 1122 | 119172, |
| 1123 | 119965, |
| 1124 | 119972, |
| 1125 | 120029, |
| 1126 | 120036, |
| 1127 | 120357, |
| 1128 | 120388, |
| 1129 | 120453, |
| 1130 | 120740, |
| 1131 | 120797, |
| 1132 | 120836, |
| 1133 | 121021, |
| 1134 | 121027, |
| 1135 | 121085, |
| 1136 | 121093, |
| 1137 | 121309, |
| 1138 | 121352, |
| 1139 | 121693, |
| 1140 | 121732, |
| 1141 | 121885, |
| 1142 | 122884, |
| 1143 | 122933, |
| 1144 | 123025, |
| 1145 | 123509, |
| 1146 | 123537, |
| 1147 | 123573, |
| 1148 | 123653, |
| 1149 | 123733, |
| 1150 | 123912, |
| 1151 | 124234, |
| 1152 | 124565, |
| 1153 | 124581, |
| 1154 | 124629, |
| 1155 | 124645, |
| 1156 | 124693, |
| 1157 | 124709, |
| 1158 | 124749, |
| 1159 | 124782, |
| 1160 | 124813, |
| 1161 | 124846, |
| 1162 | 124870, |
| 1163 | 124932, |
| 1164 | 125213, |
| 1165 | 125220, |
| 1166 | 126397, |
| 1167 | 126501, |
| 1168 | 126950, |
| 1169 | 126981, |
| 1170 | 127153, |
| 1171 | 127173, |
| 1172 | 127236, |
| 1173 | 127397, |
| 1174 | 127773, |
| 1175 | 127781, |
| 1176 | 128957, |
| 1177 | 128981, |
| 1178 | 129221, |
| 1179 | 129269, |
| 1180 | 129469, |
| 1181 | 129493, |
| 1182 | 129553, |
| 1183 | 129717, |
| 1184 | 129841, |
| 1185 | 129917, |
| 1186 | 131076, |
| 1187 | 132454, |
| 1188 | 132517, |
| 1189 | 132646, |
| 1190 | 132677, |
| 1191 | 132870, |
| 1192 | 132901, |
| 1193 | 132966, |
| 1194 | 133029, |
| 1195 | 133092, |
| 1196 | 133128, |
| 1197 | 133457, |
| 1198 | 133636, |
| 1199 | 133830, |
| 1200 | 133893, |
| 1201 | 133956, |
| 1202 | 134085, |
| 1203 | 134180, |
| 1204 | 134214, |
| 1205 | 134308, |
| 1206 | 134374, |
| 1207 | 134596, |
| 1208 | 134693, |
| 1209 | 134820, |
| 1210 | 135237, |
| 1211 | 135270, |
| 1212 | 135333, |
| 1213 | 135398, |
| 1214 | 135589, |
| 1215 | 135620, |
| 1216 | 135654, |
| 1217 | 135688, |
| 1218 | 136006, |
| 1219 | 136101, |
| 1220 | 136149, |
| 1221 | 136192, |
| 1222 | 137437, |
| 1223 | 137440, |
| 1224 | 137501, |
| 1225 | 137632, |
| 1226 | 137693, |
| 1227 | 137729, |
| 1228 | 139121, |
| 1229 | 139139, |
| 1230 | 139169, |
| 1231 | 139268, |
| 1232 | 149821, |
| 1233 | 149828, |
| 1234 | 149981, |
| 1235 | 150020, |
| 1236 | 150269, |
| 1237 | 150276, |
| 1238 | 150333, |
| 1239 | 150340, |
| 1240 | 150493, |
| 1241 | 150532, |
| 1242 | 151869, |
| 1243 | 151876, |
| 1244 | 152029, |
| 1245 | 152068, |
| 1246 | 153149, |
| 1247 | 153156, |
| 1248 | 153309, |
| 1249 | 153348, |
| 1250 | 153597, |
| 1251 | 153604, |
| 1252 | 153661, |
| 1253 | 153668, |
| 1254 | 153821, |
| 1255 | 153860, |
| 1256 | 154365, |
| 1257 | 154372, |
| 1258 | 156221, |
| 1259 | 156228, |
| 1260 | 156381, |
| 1261 | 156420, |
| 1262 | 158589, |
| 1263 | 158629, |
| 1264 | 158737, |
| 1265 | 159018, |
| 1266 | 159677, |
| 1267 | 159748, |
| 1268 | 160277, |
| 1269 | 160605, |
| 1270 | 160768, |
| 1271 | 163549, |
| 1272 | 163585, |
| 1273 | 163805, |
| 1274 | 163852, |
| 1275 | 163876, |
| 1276 | 183733, |
| 1277 | 183761, |
| 1278 | 183780, |
| 1279 | 184342, |
| 1280 | 184356, |
| 1281 | 185197, |
| 1282 | 185230, |
| 1283 | 185277, |
| 1284 | 185348, |
| 1285 | 187761, |
| 1286 | 187849, |
| 1287 | 187940, |
| 1288 | 188221, |
| 1289 | 188420, |
| 1290 | 188861, |
| 1291 | 188868, |
| 1292 | 188997, |
| 1293 | 189117, |
| 1294 | 189444, |
| 1295 | 190021, |
| 1296 | 190129, |
| 1297 | 190205, |
| 1298 | 190468, |
| 1299 | 191045, |
| 1300 | 191133, |
| 1301 | 191492, |
| 1302 | 191933, |
| 1303 | 191940, |
| 1304 | 192061, |
| 1305 | 192069, |
| 1306 | 192157, |
| 1307 | 192516, |
| 1308 | 194181, |
| 1309 | 194246, |
| 1310 | 194277, |
| 1311 | 194502, |
| 1312 | 194757, |
| 1313 | 194790, |
| 1314 | 194853, |
| 1315 | 195217, |
| 1316 | 195299, |
| 1317 | 195345, |
| 1318 | 195443, |
| 1319 | 195460, |
| 1320 | 195493, |
| 1321 | 195549, |
| 1322 | 195592, |
| 1323 | 195933, |
| 1324 | 196106, |
| 1325 | 196445, |
| 1326 | 196625, |
| 1327 | 196812, |
| 1328 | 196849, |
| 1329 | 196965, |
| 1330 | 197082, |
| 1331 | 197117, |
| 1332 | 197128, |
| 1333 | 197469, |
| 1334 | 197636, |
| 1335 | 198755, |
| 1336 | 198788, |
| 1337 | 200509, |
| 1338 | 200708, |
| 1339 | 200869, |
| 1340 | 200932, |
| 1341 | 202021, |
| 1342 | 202052, |
| 1343 | 202109, |
| 1344 | 202244, |
| 1345 | 204509, |
| 1346 | 204804, |
| 1347 | 205821, |
| 1348 | 205829, |
| 1349 | 205926, |
| 1350 | 206053, |
| 1351 | 206118, |
| 1352 | 206237, |
| 1353 | 206342, |
| 1354 | 206405, |
| 1355 | 206438, |
| 1356 | 206629, |
| 1357 | 206749, |
| 1358 | 206869, |
| 1359 | 206909, |
| 1360 | 206993, |
| 1361 | 207048, |
| 1362 | 207364, |
| 1363 | 208349, |
| 1364 | 208388, |
| 1365 | 208573, |
| 1366 | 208900, |
| 1367 | 210333, |
| 1368 | 210436, |
| 1369 | 211293, |
| 1370 | 211464, |
| 1371 | 211786, |
| 1372 | 211837, |
| 1373 | 211925, |
| 1374 | 212996, |
| 1375 | 213733, |
| 1376 | 213798, |
| 1377 | 213861, |
| 1378 | 213917, |
| 1379 | 213969, |
| 1380 | 214020, |
| 1381 | 215718, |
| 1382 | 215749, |
| 1383 | 215782, |
| 1384 | 215813, |
| 1385 | 216061, |
| 1386 | 216069, |
| 1387 | 216102, |
| 1388 | 216133, |
| 1389 | 216166, |
| 1390 | 216229, |
| 1391 | 216486, |
| 1392 | 216677, |
| 1393 | 217021, |
| 1394 | 217061, |
| 1395 | 217096, |
| 1396 | 217437, |
| 1397 | 217608, |
| 1398 | 217949, |
| 1399 | 218129, |
| 1400 | 218339, |
| 1401 | 218385, |
| 1402 | 218589, |
| 1403 | 218629, |
| 1404 | 219079, |
| 1405 | 219109, |
| 1406 | 219197, |
| 1407 | 221189, |
| 1408 | 221318, |
| 1409 | 221348, |
| 1410 | 222853, |
| 1411 | 222886, |
| 1412 | 222917, |
| 1413 | 223078, |
| 1414 | 223109, |
| 1415 | 223142, |
| 1416 | 223301, |
| 1417 | 223334, |
| 1418 | 223396, |
| 1419 | 223645, |
| 1420 | 223752, |
| 1421 | 224081, |
| 1422 | 224309, |
| 1423 | 224613, |
| 1424 | 224917, |
| 1425 | 225213, |
| 1426 | 225285, |
| 1427 | 225350, |
| 1428 | 225380, |
| 1429 | 226342, |
| 1430 | 226373, |
| 1431 | 226502, |
| 1432 | 226565, |
| 1433 | 226630, |
| 1434 | 226661, |
| 1435 | 226756, |
| 1436 | 226824, |
| 1437 | 227140, |
| 1438 | 228549, |
| 1439 | 228582, |
| 1440 | 228613, |
| 1441 | 228678, |
| 1442 | 228773, |
| 1443 | 228806, |
| 1444 | 228837, |
| 1445 | 228934, |
| 1446 | 229021, |
| 1447 | 229265, |
| 1448 | 229380, |
| 1449 | 230534, |
| 1450 | 230789, |
| 1451 | 231046, |
| 1452 | 231109, |
| 1453 | 231197, |
| 1454 | 231281, |
| 1455 | 231432, |
| 1456 | 231773, |
| 1457 | 231844, |
| 1458 | 231944, |
| 1459 | 232260, |
| 1460 | 233219, |
| 1461 | 233425, |
| 1462 | 233473, |
| 1463 | 233789, |
| 1464 | 233984, |
| 1465 | 235389, |
| 1466 | 235424, |
| 1467 | 235537, |
| 1468 | 235805, |
| 1469 | 236037, |
| 1470 | 236145, |
| 1471 | 236165, |
| 1472 | 236582, |
| 1473 | 236613, |
| 1474 | 236836, |
| 1475 | 236965, |
| 1476 | 236996, |
| 1477 | 237189, |
| 1478 | 237220, |
| 1479 | 237286, |
| 1480 | 237317, |
| 1481 | 237380, |
| 1482 | 237437, |
| 1483 | 237569, |
| 1484 | 238979, |
| 1485 | 240993, |
| 1486 | 241411, |
| 1487 | 241441, |
| 1488 | 242531, |
| 1489 | 243717, |
| 1490 | 245597, |
| 1491 | 245605, |
| 1492 | 245760, |
| 1493 | 245793, |
| 1494 | 245824, |
| 1495 | 245857, |
| 1496 | 245888, |
| 1497 | 245921, |
| 1498 | 245952, |
| 1499 | 245985, |
| 1500 | 246016, |
| 1501 | 246049, |
| 1502 | 246080, |
| 1503 | 246113, |
| 1504 | 246144, |
| 1505 | 246177, |
| 1506 | 246208, |
| 1507 | 246241, |
| 1508 | 246272, |
| 1509 | 246305, |
| 1510 | 246336, |
| 1511 | 246369, |
| 1512 | 246400, |
| 1513 | 246433, |
| 1514 | 246464, |
| 1515 | 246497, |
| 1516 | 246528, |
| 1517 | 246561, |
| 1518 | 246592, |
| 1519 | 246625, |
| 1520 | 246656, |
| 1521 | 246689, |
| 1522 | 246720, |
| 1523 | 246753, |
| 1524 | 246784, |
| 1525 | 246817, |
| 1526 | 246848, |
| 1527 | 246881, |
| 1528 | 246912, |
| 1529 | 246945, |
| 1530 | 246976, |
| 1531 | 247009, |
| 1532 | 247040, |
| 1533 | 247073, |
| 1534 | 247104, |
| 1535 | 247137, |
| 1536 | 247168, |
| 1537 | 247201, |
| 1538 | 247232, |
| 1539 | 247265, |
| 1540 | 247296, |
| 1541 | 247329, |
| 1542 | 247360, |
| 1543 | 247393, |
| 1544 | 247424, |
| 1545 | 247457, |
| 1546 | 247488, |
| 1547 | 247521, |
| 1548 | 247552, |
| 1549 | 247585, |
| 1550 | 247616, |
| 1551 | 247649, |
| 1552 | 247680, |
| 1553 | 247713, |
| 1554 | 247744, |
| 1555 | 247777, |
| 1556 | 247808, |
| 1557 | 247841, |
| 1558 | 247872, |
| 1559 | 247905, |
| 1560 | 247936, |
| 1561 | 247969, |
| 1562 | 248000, |
| 1563 | 248033, |
| 1564 | 248064, |
| 1565 | 248097, |
| 1566 | 248128, |
| 1567 | 248161, |
| 1568 | 248192, |
| 1569 | 248225, |
| 1570 | 248256, |
| 1571 | 248289, |
| 1572 | 248320, |
| 1573 | 248353, |
| 1574 | 248384, |
| 1575 | 248417, |
| 1576 | 248448, |
| 1577 | 248481, |
| 1578 | 248512, |
| 1579 | 248545, |
| 1580 | 248576, |
| 1581 | 248609, |
| 1582 | 248640, |
| 1583 | 248673, |
| 1584 | 248704, |
| 1585 | 248737, |
| 1586 | 248768, |
| 1587 | 248801, |
| 1588 | 248832, |
| 1589 | 248865, |
| 1590 | 248896, |
| 1591 | 248929, |
| 1592 | 248960, |
| 1593 | 248993, |
| 1594 | 249024, |
| 1595 | 249057, |
| 1596 | 249088, |
| 1597 | 249121, |
| 1598 | 249152, |
| 1599 | 249185, |
| 1600 | 249216, |
| 1601 | 249249, |
| 1602 | 249280, |
| 1603 | 249313, |
| 1604 | 249344, |
| 1605 | 249377, |
| 1606 | 249408, |
| 1607 | 249441, |
| 1608 | 249472, |
| 1609 | 249505, |
| 1610 | 249536, |
| 1611 | 249569, |
| 1612 | 249600, |
| 1613 | 249633, |
| 1614 | 249664, |
| 1615 | 249697, |
| 1616 | 249728, |
| 1617 | 249761, |
| 1618 | 249792, |
| 1619 | 249825, |
| 1620 | 249856, |
| 1621 | 249889, |
| 1622 | 249920, |
| 1623 | 249953, |
| 1624 | 249984, |
| 1625 | 250017, |
| 1626 | 250048, |
| 1627 | 250081, |
| 1628 | 250112, |
| 1629 | 250145, |
| 1630 | 250176, |
| 1631 | 250209, |
| 1632 | 250240, |
| 1633 | 250273, |
| 1634 | 250304, |
| 1635 | 250337, |
| 1636 | 250368, |
| 1637 | 250401, |
| 1638 | 250432, |
| 1639 | 250465, |
| 1640 | 250496, |
| 1641 | 250529, |
| 1642 | 250816, |
| 1643 | 250849, |
| 1644 | 250880, |
| 1645 | 250913, |
| 1646 | 250944, |
| 1647 | 250977, |
| 1648 | 251008, |
| 1649 | 251041, |
| 1650 | 251072, |
| 1651 | 251105, |
| 1652 | 251136, |
| 1653 | 251169, |
| 1654 | 251200, |
| 1655 | 251233, |
| 1656 | 251264, |
| 1657 | 251297, |
| 1658 | 251328, |
| 1659 | 251361, |
| 1660 | 251392, |
| 1661 | 251425, |
| 1662 | 251456, |
| 1663 | 251489, |
| 1664 | 251520, |
| 1665 | 251553, |
| 1666 | 251584, |
| 1667 | 251617, |
| 1668 | 251648, |
| 1669 | 251681, |
| 1670 | 251712, |
| 1671 | 251745, |
| 1672 | 251776, |
| 1673 | 251809, |
| 1674 | 251840, |
| 1675 | 251873, |
| 1676 | 251904, |
| 1677 | 251937, |
| 1678 | 251968, |
| 1679 | 252001, |
| 1680 | 252032, |
| 1681 | 252065, |
| 1682 | 252096, |
| 1683 | 252129, |
| 1684 | 252160, |
| 1685 | 252193, |
| 1686 | 252224, |
| 1687 | 252257, |
| 1688 | 252288, |
| 1689 | 252321, |
| 1690 | 252352, |
| 1691 | 252385, |
| 1692 | 252416, |
| 1693 | 252449, |
| 1694 | 252480, |
| 1695 | 252513, |
| 1696 | 252544, |
| 1697 | 252577, |
| 1698 | 252608, |
| 1699 | 252641, |
| 1700 | 252672, |
| 1701 | 252705, |
| 1702 | 252736, |
| 1703 | 252769, |
| 1704 | 252800, |
| 1705 | 252833, |
| 1706 | 252864, |
| 1707 | 252897, |
| 1708 | 252928, |
| 1709 | 252961, |
| 1710 | 252992, |
| 1711 | 253025, |
| 1712 | 253056, |
| 1713 | 253089, |
| 1714 | 253120, |
| 1715 | 253153, |
| 1716 | 253184, |
| 1717 | 253217, |
| 1718 | 253248, |
| 1719 | 253281, |
| 1720 | 253312, |
| 1721 | 253345, |
| 1722 | 253376, |
| 1723 | 253409, |
| 1724 | 253440, |
| 1725 | 253473, |
| 1726 | 253504, |
| 1727 | 253537, |
| 1728 | 253568, |
| 1729 | 253601, |
| 1730 | 253632, |
| 1731 | 253665, |
| 1732 | 253696, |
| 1733 | 253729, |
| 1734 | 253760, |
| 1735 | 253793, |
| 1736 | 253824, |
| 1737 | 253857, |
| 1738 | 253888, |
| 1739 | 253921, |
| 1740 | 254208, |
| 1741 | 254465, |
| 1742 | 254685, |
| 1743 | 254720, |
| 1744 | 254941, |
| 1745 | 254977, |
| 1746 | 255232, |
| 1747 | 255489, |
| 1748 | 255744, |
| 1749 | 256001, |
| 1750 | 256221, |
| 1751 | 256256, |
| 1752 | 256477, |
| 1753 | 256513, |
| 1754 | 256797, |
| 1755 | 256800, |
| 1756 | 256861, |
| 1757 | 256864, |
| 1758 | 256925, |
| 1759 | 256928, |
| 1760 | 256989, |
| 1761 | 256992, |
| 1762 | 257025, |
| 1763 | 257280, |
| 1764 | 257537, |
| 1765 | 258013, |
| 1766 | 258049, |
| 1767 | 258306, |
| 1768 | 258561, |
| 1769 | 258818, |
| 1770 | 259073, |
| 1771 | 259330, |
| 1772 | 259585, |
| 1773 | 259773, |
| 1774 | 259777, |
| 1775 | 259840, |
| 1776 | 259970, |
| 1777 | 260020, |
| 1778 | 260033, |
| 1779 | 260084, |
| 1780 | 260161, |
| 1781 | 260285, |
| 1782 | 260289, |
| 1783 | 260352, |
| 1784 | 260482, |
| 1785 | 260532, |
| 1786 | 260609, |
| 1787 | 260765, |
| 1788 | 260801, |
| 1789 | 260864, |
| 1790 | 261021, |
| 1791 | 261044, |
| 1792 | 261121, |
| 1793 | 261376, |
| 1794 | 261556, |
| 1795 | 261661, |
| 1796 | 261697, |
| 1797 | 261821, |
| 1798 | 261825, |
| 1799 | 261888, |
| 1800 | 262018, |
| 1801 | 262068, |
| 1802 | 262141, |
| 1803 | 262166, |
| 1804 | 262522, |
| 1805 | 262668, |
| 1806 | 262865, |
| 1807 | 262927, |
| 1808 | 262960, |
| 1809 | 262989, |
| 1810 | 263023, |
| 1811 | 263088, |
| 1812 | 263117, |
| 1813 | 263151, |
| 1814 | 263185, |
| 1815 | 263447, |
| 1816 | 263480, |
| 1817 | 263514, |
| 1818 | 263670, |
| 1819 | 263697, |
| 1820 | 263983, |
| 1821 | 264016, |
| 1822 | 264049, |
| 1823 | 264171, |
| 1824 | 264241, |
| 1825 | 264338, |
| 1826 | 264365, |
| 1827 | 264398, |
| 1828 | 264433, |
| 1829 | 264786, |
| 1830 | 264817, |
| 1831 | 264843, |
| 1832 | 264881, |
| 1833 | 265206, |
| 1834 | 265242, |
| 1835 | 265405, |
| 1836 | 265434, |
| 1837 | 265738, |
| 1838 | 265763, |
| 1839 | 265821, |
| 1840 | 265866, |
| 1841 | 266066, |
| 1842 | 266157, |
| 1843 | 266190, |
| 1844 | 266211, |
| 1845 | 266250, |
| 1846 | 266578, |
| 1847 | 266669, |
| 1848 | 266702, |
| 1849 | 266749, |
| 1850 | 266755, |
| 1851 | 267197, |
| 1852 | 267283, |
| 1853 | 268317, |
| 1854 | 268805, |
| 1855 | 269223, |
| 1856 | 269349, |
| 1857 | 269383, |
| 1858 | 269477, |
| 1859 | 269885, |
| 1860 | 270357, |
| 1861 | 270400, |
| 1862 | 270453, |
| 1863 | 270560, |
| 1864 | 270613, |
| 1865 | 270657, |
| 1866 | 270688, |
| 1867 | 270785, |
| 1868 | 270848, |
| 1869 | 270945, |
| 1870 | 270997, |
| 1871 | 271008, |
| 1872 | 271061, |
| 1873 | 271122, |
| 1874 | 271136, |
| 1875 | 271317, |
| 1876 | 271488, |
| 1877 | 271541, |
| 1878 | 271552, |
| 1879 | 271605, |
| 1880 | 271616, |
| 1881 | 271669, |
| 1882 | 271680, |
| 1883 | 271829, |
| 1884 | 271841, |
| 1885 | 271872, |
| 1886 | 272001, |
| 1887 | 272036, |
| 1888 | 272161, |
| 1889 | 272213, |
| 1890 | 272257, |
| 1891 | 272320, |
| 1892 | 272402, |
| 1893 | 272544, |
| 1894 | 272577, |
| 1895 | 272725, |
| 1896 | 272754, |
| 1897 | 272789, |
| 1898 | 272833, |
| 1899 | 272885, |
| 1900 | 272906, |
| 1901 | 273417, |
| 1902 | 274528, |
| 1903 | 274561, |
| 1904 | 274601, |
| 1905 | 274730, |
| 1906 | 274773, |
| 1907 | 274845, |
| 1908 | 274962, |
| 1909 | 275125, |
| 1910 | 275282, |
| 1911 | 275349, |
| 1912 | 275474, |
| 1913 | 275509, |
| 1914 | 275570, |
| 1915 | 275605, |
| 1916 | 275666, |
| 1917 | 275701, |
| 1918 | 275922, |
| 1919 | 275957, |
| 1920 | 276946, |
| 1921 | 277013, |
| 1922 | 277074, |
| 1923 | 277109, |
| 1924 | 277138, |
| 1925 | 277173, |
| 1926 | 278162, |
| 1927 | 286741, |
| 1928 | 286989, |
| 1929 | 287022, |
| 1930 | 287053, |
| 1931 | 287086, |
| 1932 | 287125, |
| 1933 | 287762, |
| 1934 | 287829, |
| 1935 | 288045, |
| 1936 | 288078, |
| 1937 | 288117, |
| 1938 | 290706, |
| 1939 | 290741, |
| 1940 | 291698, |
| 1941 | 292501, |
| 1942 | 293778, |
| 1943 | 293973, |
| 1944 | 296189, |
| 1945 | 296981, |
| 1946 | 297341, |
| 1947 | 297994, |
| 1948 | 299925, |
| 1949 | 302410, |
| 1950 | 303125, |
| 1951 | 308978, |
| 1952 | 309013, |
| 1953 | 309298, |
| 1954 | 309333, |
| 1955 | 311058, |
| 1956 | 311317, |
| 1957 | 314866, |
| 1958 | 314901, |
| 1959 | 322829, |
| 1960 | 322862, |
| 1961 | 322893, |
| 1962 | 322926, |
| 1963 | 322957, |
| 1964 | 322990, |
| 1965 | 323021, |
| 1966 | 323054, |
| 1967 | 323085, |
| 1968 | 323118, |
| 1969 | 323149, |
| 1970 | 323182, |
| 1971 | 323213, |
| 1972 | 323246, |
| 1973 | 323274, |
| 1974 | 324245, |
| 1975 | 325650, |
| 1976 | 325805, |
| 1977 | 325838, |
| 1978 | 325874, |
| 1979 | 326861, |
| 1980 | 326894, |
| 1981 | 326925, |
| 1982 | 326958, |
| 1983 | 326989, |
| 1984 | 327022, |
| 1985 | 327053, |
| 1986 | 327086, |
| 1987 | 327117, |
| 1988 | 327150, |
| 1989 | 327186, |
| 1990 | 327701, |
| 1991 | 335890, |
| 1992 | 340077, |
| 1993 | 340110, |
| 1994 | 340141, |
| 1995 | 340174, |
| 1996 | 340205, |
| 1997 | 340238, |
| 1998 | 340269, |
| 1999 | 340302, |
| 2000 | 340333, |
| 2001 | 340366, |
| 2002 | 340397, |
| 2003 | 340430, |
| 2004 | 340461, |
| 2005 | 340494, |
| 2006 | 340525, |
| 2007 | 340558, |
| 2008 | 340589, |
| 2009 | 340622, |
| 2010 | 340653, |
| 2011 | 340686, |
| 2012 | 340717, |
| 2013 | 340750, |
| 2014 | 340786, |
| 2015 | 342797, |
| 2016 | 342830, |
| 2017 | 342861, |
| 2018 | 342894, |
| 2019 | 342930, |
| 2020 | 343949, |
| 2021 | 343982, |
| 2022 | 344018, |
| 2023 | 352277, |
| 2024 | 353810, |
| 2025 | 354485, |
| 2026 | 354546, |
| 2027 | 354741, |
| 2028 | 355997, |
| 2029 | 356053, |
| 2030 | 357085, |
| 2031 | 357109, |
| 2032 | 360448, |
| 2033 | 361981, |
| 2034 | 361985, |
| 2035 | 363517, |
| 2036 | 363520, |
| 2037 | 363553, |
| 2038 | 363584, |
| 2039 | 363681, |
| 2040 | 363744, |
| 2041 | 363777, |
| 2042 | 363808, |
| 2043 | 363841, |
| 2044 | 363872, |
| 2045 | 363905, |
| 2046 | 363936, |
| 2047 | 364065, |
| 2048 | 364096, |
| 2049 | 364129, |
| 2050 | 364192, |
| 2051 | 364225, |
| 2052 | 364419, |
| 2053 | 364480, |
| 2054 | 364577, |
| 2055 | 364608, |
| 2056 | 364641, |
| 2057 | 364672, |
| 2058 | 364705, |
| 2059 | 364736, |
| 2060 | 364769, |
| 2061 | 364800, |
| 2062 | 364833, |
| 2063 | 364864, |
| 2064 | 364897, |
| 2065 | 364928, |
| 2066 | 364961, |
| 2067 | 364992, |
| 2068 | 365025, |
| 2069 | 365056, |
| 2070 | 365089, |
| 2071 | 365120, |
| 2072 | 365153, |
| 2073 | 365184, |
| 2074 | 365217, |
| 2075 | 365248, |
| 2076 | 365281, |
| 2077 | 365312, |
| 2078 | 365345, |
| 2079 | 365376, |
| 2080 | 365409, |
| 2081 | 365440, |
| 2082 | 365473, |
| 2083 | 365504, |
| 2084 | 365537, |
| 2085 | 365568, |
| 2086 | 365601, |
| 2087 | 365632, |
| 2088 | 365665, |
| 2089 | 365696, |
| 2090 | 365729, |
| 2091 | 365760, |
| 2092 | 365793, |
| 2093 | 365824, |
| 2094 | 365857, |
| 2095 | 365888, |
| 2096 | 365921, |
| 2097 | 365952, |
| 2098 | 365985, |
| 2099 | 366016, |
| 2100 | 366049, |
| 2101 | 366080, |
| 2102 | 366113, |
| 2103 | 366144, |
| 2104 | 366177, |
| 2105 | 366208, |
| 2106 | 366241, |
| 2107 | 366272, |
| 2108 | 366305, |
| 2109 | 366336, |
| 2110 | 366369, |
| 2111 | 366400, |
| 2112 | 366433, |
| 2113 | 366464, |
| 2114 | 366497, |
| 2115 | 366528, |
| 2116 | 366561, |
| 2117 | 366592, |
| 2118 | 366625, |
| 2119 | 366656, |
| 2120 | 366689, |
| 2121 | 366720, |
| 2122 | 366753, |
| 2123 | 366784, |
| 2124 | 366817, |
| 2125 | 366848, |
| 2126 | 366881, |
| 2127 | 366912, |
| 2128 | 366945, |
| 2129 | 366976, |
| 2130 | 367009, |
| 2131 | 367040, |
| 2132 | 367073, |
| 2133 | 367104, |
| 2134 | 367137, |
| 2135 | 367168, |
| 2136 | 367201, |
| 2137 | 367232, |
| 2138 | 367265, |
| 2139 | 367296, |
| 2140 | 367329, |
| 2141 | 367360, |
| 2142 | 367393, |
| 2143 | 367424, |
| 2144 | 367457, |
| 2145 | 367488, |
| 2146 | 367521, |
| 2147 | 367552, |
| 2148 | 367585, |
| 2149 | 367616, |
| 2150 | 367649, |
| 2151 | 367680, |
| 2152 | 367713, |
| 2153 | 367797, |
| 2154 | 367968, |
| 2155 | 368001, |
| 2156 | 368032, |
| 2157 | 368065, |
| 2158 | 368101, |
| 2159 | 368192, |
| 2160 | 368225, |
| 2161 | 368285, |
| 2162 | 368433, |
| 2163 | 368554, |
| 2164 | 368593, |
| 2165 | 368641, |
| 2166 | 369885, |
| 2167 | 369889, |
| 2168 | 369949, |
| 2169 | 370081, |
| 2170 | 370141, |
| 2171 | 370180, |
| 2172 | 371997, |
| 2173 | 372195, |
| 2174 | 372241, |
| 2175 | 372285, |
| 2176 | 372709, |
| 2177 | 372740, |
| 2178 | 373501, |
| 2179 | 373764, |
| 2180 | 374013, |
| 2181 | 374020, |
| 2182 | 374269, |
| 2183 | 374276, |
| 2184 | 374525, |
| 2185 | 374532, |
| 2186 | 374781, |
| 2187 | 374788, |
| 2188 | 375037, |
| 2189 | 375044, |
| 2190 | 375293, |
| 2191 | 375300, |
| 2192 | 375549, |
| 2193 | 375556, |
| 2194 | 375805, |
| 2195 | 375813, |
| 2196 | 376849, |
| 2197 | 376911, |
| 2198 | 376944, |
| 2199 | 376975, |
| 2200 | 377008, |
| 2201 | 377041, |
| 2202 | 377135, |
| 2203 | 377168, |
| 2204 | 377201, |
| 2205 | 377231, |
| 2206 | 377264, |
| 2207 | 377297, |
| 2208 | 377580, |
| 2209 | 377617, |
| 2210 | 377676, |
| 2211 | 377713, |
| 2212 | 377743, |
| 2213 | 377776, |
| 2214 | 377809, |
| 2215 | 377871, |
| 2216 | 377904, |
| 2217 | 377933, |
| 2218 | 377966, |
| 2219 | 377997, |
| 2220 | 378030, |
| 2221 | 378061, |
| 2222 | 378094, |
| 2223 | 378125, |
| 2224 | 378158, |
| 2225 | 378193, |
| 2226 | 378339, |
| 2227 | 378385, |
| 2228 | 378700, |
| 2229 | 378769, |
| 2230 | 378892, |
| 2231 | 378929, |
| 2232 | 378957, |
| 2233 | 378993, |
| 2234 | 379413, |
| 2235 | 379473, |
| 2236 | 379517, |
| 2237 | 380949, |
| 2238 | 381789, |
| 2239 | 381813, |
| 2240 | 384669, |
| 2241 | 385045, |
| 2242 | 391901, |
| 2243 | 392725, |
| 2244 | 393117, |
| 2245 | 393238, |
| 2246 | 393265, |
| 2247 | 393365, |
| 2248 | 393379, |
| 2249 | 393412, |
| 2250 | 393449, |
| 2251 | 393485, |
| 2252 | 393518, |
| 2253 | 393549, |
| 2254 | 393582, |
| 2255 | 393613, |
| 2256 | 393646, |
| 2257 | 393677, |
| 2258 | 393710, |
| 2259 | 393741, |
| 2260 | 393774, |
| 2261 | 393813, |
| 2262 | 393869, |
| 2263 | 393902, |
| 2264 | 393933, |
| 2265 | 393966, |
| 2266 | 393997, |
| 2267 | 394030, |
| 2268 | 394061, |
| 2269 | 394094, |
| 2270 | 394124, |
| 2271 | 394157, |
| 2272 | 394190, |
| 2273 | 394261, |
| 2274 | 394281, |
| 2275 | 394565, |
| 2276 | 394694, |
| 2277 | 394764, |
| 2278 | 394787, |
| 2279 | 394965, |
| 2280 | 395017, |
| 2281 | 395107, |
| 2282 | 395140, |
| 2283 | 395185, |
| 2284 | 395221, |
| 2285 | 395293, |
| 2286 | 395300, |
| 2287 | 398077, |
| 2288 | 398117, |
| 2289 | 398196, |
| 2290 | 398243, |
| 2291 | 398308, |
| 2292 | 398348, |
| 2293 | 398372, |
| 2294 | 401265, |
| 2295 | 401283, |
| 2296 | 401380, |
| 2297 | 401437, |
| 2298 | 401572, |
| 2299 | 402973, |
| 2300 | 402980, |
| 2301 | 406013, |
| 2302 | 406037, |
| 2303 | 406090, |
| 2304 | 406229, |
| 2305 | 406532, |
| 2306 | 407573, |
| 2307 | 408733, |
| 2308 | 409092, |
| 2309 | 409621, |
| 2310 | 410621, |
| 2311 | 410634, |
| 2312 | 410965, |
| 2313 | 411914, |
| 2314 | 412181, |
| 2315 | 412202, |
| 2316 | 412693, |
| 2317 | 413706, |
| 2318 | 414037, |
| 2319 | 415274, |
| 2320 | 415765, |
| 2321 | 425988, |
| 2322 | 636949, |
| 2323 | 638980, |
| 2324 | 1310653, |
| 2325 | 1310724, |
| 2326 | 1311395, |
| 2327 | 1311428, |
| 2328 | 1348029, |
| 2329 | 1348117, |
| 2330 | 1349885, |
| 2331 | 1350148, |
| 2332 | 1351427, |
| 2333 | 1351633, |
| 2334 | 1351684, |
| 2335 | 1360259, |
| 2336 | 1360305, |
| 2337 | 1360388, |
| 2338 | 1360904, |
| 2339 | 1361220, |
| 2340 | 1361309, |
| 2341 | 1361920, |
| 2342 | 1361953, |
| 2343 | 1361984, |
| 2344 | 1362017, |
| 2345 | 1362048, |
| 2346 | 1362081, |
| 2347 | 1362112, |
| 2348 | 1362145, |
| 2349 | 1362176, |
| 2350 | 1362209, |
| 2351 | 1362240, |
| 2352 | 1362273, |
| 2353 | 1362304, |
| 2354 | 1362337, |
| 2355 | 1362368, |
| 2356 | 1362401, |
| 2357 | 1362432, |
| 2358 | 1362465, |
| 2359 | 1362496, |
| 2360 | 1362529, |
| 2361 | 1362560, |
| 2362 | 1362593, |
| 2363 | 1362624, |
| 2364 | 1362657, |
| 2365 | 1362688, |
| 2366 | 1362721, |
| 2367 | 1362752, |
| 2368 | 1362785, |
| 2369 | 1362816, |
| 2370 | 1362849, |
| 2371 | 1362880, |
| 2372 | 1362913, |
| 2373 | 1362944, |
| 2374 | 1362977, |
| 2375 | 1363008, |
| 2376 | 1363041, |
| 2377 | 1363072, |
| 2378 | 1363105, |
| 2379 | 1363136, |
| 2380 | 1363169, |
| 2381 | 1363200, |
| 2382 | 1363233, |
| 2383 | 1363264, |
| 2384 | 1363297, |
| 2385 | 1363328, |
| 2386 | 1363361, |
| 2387 | 1363396, |
| 2388 | 1363429, |
| 2389 | 1363463, |
| 2390 | 1363569, |
| 2391 | 1363589, |
| 2392 | 1363921, |
| 2393 | 1363939, |
| 2394 | 1363968, |
| 2395 | 1364001, |
| 2396 | 1364032, |
| 2397 | 1364065, |
| 2398 | 1364096, |
| 2399 | 1364129, |
| 2400 | 1364160, |
| 2401 | 1364193, |
| 2402 | 1364224, |
| 2403 | 1364257, |
| 2404 | 1364288, |
| 2405 | 1364321, |
| 2406 | 1364352, |
| 2407 | 1364385, |
| 2408 | 1364416, |
| 2409 | 1364449, |
| 2410 | 1364480, |
| 2411 | 1364513, |
| 2412 | 1364544, |
| 2413 | 1364577, |
| 2414 | 1364608, |
| 2415 | 1364641, |
| 2416 | 1364672, |
| 2417 | 1364705, |
| 2418 | 1364736, |
| 2419 | 1364769, |
| 2420 | 1364800, |
| 2421 | 1364833, |
| 2422 | 1364867, |
| 2423 | 1364933, |
| 2424 | 1364996, |
| 2425 | 1367241, |
| 2426 | 1367557, |
| 2427 | 1367633, |
| 2428 | 1367837, |
| 2429 | 1368084, |
| 2430 | 1368803, |
| 2431 | 1369108, |
| 2432 | 1369152, |
| 2433 | 1369185, |
| 2434 | 1369216, |
| 2435 | 1369249, |
| 2436 | 1369280, |
| 2437 | 1369313, |
| 2438 | 1369344, |
| 2439 | 1369377, |
| 2440 | 1369408, |
| 2441 | 1369441, |
| 2442 | 1369472, |
| 2443 | 1369505, |
| 2444 | 1369536, |
| 2445 | 1369569, |
| 2446 | 1369664, |
| 2447 | 1369697, |
| 2448 | 1369728, |
| 2449 | 1369761, |
| 2450 | 1369792, |
| 2451 | 1369825, |
| 2452 | 1369856, |
| 2453 | 1369889, |
| 2454 | 1369920, |
| 2455 | 1369953, |
| 2456 | 1369984, |
| 2457 | 1370017, |
| 2458 | 1370048, |
| 2459 | 1370081, |
| 2460 | 1370112, |
| 2461 | 1370145, |
| 2462 | 1370176, |
| 2463 | 1370209, |
| 2464 | 1370240, |
| 2465 | 1370273, |
| 2466 | 1370304, |
| 2467 | 1370337, |
| 2468 | 1370368, |
| 2469 | 1370401, |
| 2470 | 1370432, |
| 2471 | 1370465, |
| 2472 | 1370496, |
| 2473 | 1370529, |
| 2474 | 1370560, |
| 2475 | 1370593, |
| 2476 | 1370624, |
| 2477 | 1370657, |
| 2478 | 1370688, |
| 2479 | 1370721, |
| 2480 | 1370752, |
| 2481 | 1370785, |
| 2482 | 1370816, |
| 2483 | 1370849, |
| 2484 | 1370880, |
| 2485 | 1370913, |
| 2486 | 1370944, |
| 2487 | 1370977, |
| 2488 | 1371008, |
| 2489 | 1371041, |
| 2490 | 1371072, |
| 2491 | 1371105, |
| 2492 | 1371136, |
| 2493 | 1371169, |
| 2494 | 1371200, |
| 2495 | 1371233, |
| 2496 | 1371264, |
| 2497 | 1371297, |
| 2498 | 1371328, |
| 2499 | 1371361, |
| 2500 | 1371392, |
| 2501 | 1371425, |
| 2502 | 1371456, |
| 2503 | 1371489, |
| 2504 | 1371520, |
| 2505 | 1371553, |
| 2506 | 1371584, |
| 2507 | 1371617, |
| 2508 | 1371651, |
| 2509 | 1371681, |
| 2510 | 1371936, |
| 2511 | 1371969, |
| 2512 | 1372000, |
| 2513 | 1372033, |
| 2514 | 1372064, |
| 2515 | 1372129, |
| 2516 | 1372160, |
| 2517 | 1372193, |
| 2518 | 1372224, |
| 2519 | 1372257, |
| 2520 | 1372288, |
| 2521 | 1372321, |
| 2522 | 1372352, |
| 2523 | 1372385, |
| 2524 | 1372419, |
| 2525 | 1372468, |
| 2526 | 1372512, |
| 2527 | 1372545, |
| 2528 | 1372576, |
| 2529 | 1372609, |
| 2530 | 1372644, |
| 2531 | 1372672, |
| 2532 | 1372705, |
| 2533 | 1372736, |
| 2534 | 1372769, |
| 2535 | 1372864, |
| 2536 | 1372897, |
| 2537 | 1372928, |
| 2538 | 1372961, |
| 2539 | 1372992, |
| 2540 | 1373025, |
| 2541 | 1373056, |
| 2542 | 1373089, |
| 2543 | 1373120, |
| 2544 | 1373153, |
| 2545 | 1373184, |
| 2546 | 1373217, |
| 2547 | 1373248, |
| 2548 | 1373281, |
| 2549 | 1373312, |
| 2550 | 1373345, |
| 2551 | 1373376, |
| 2552 | 1373409, |
| 2553 | 1373440, |
| 2554 | 1373473, |
| 2555 | 1373504, |
| 2556 | 1373665, |
| 2557 | 1373696, |
| 2558 | 1373857, |
| 2559 | 1373888, |
| 2560 | 1373921, |
| 2561 | 1373952, |
| 2562 | 1373985, |
| 2563 | 1374016, |
| 2564 | 1374049, |
| 2565 | 1374080, |
| 2566 | 1374113, |
| 2567 | 1374144, |
| 2568 | 1374177, |
| 2569 | 1374237, |
| 2570 | 1374272, |
| 2571 | 1374305, |
| 2572 | 1374336, |
| 2573 | 1374465, |
| 2574 | 1374496, |
| 2575 | 1374529, |
| 2576 | 1374589, |
| 2577 | 1375904, |
| 2578 | 1375937, |
| 2579 | 1375972, |
| 2580 | 1376003, |
| 2581 | 1376065, |
| 2582 | 1376100, |
| 2583 | 1376325, |
| 2584 | 1376356, |
| 2585 | 1376453, |
| 2586 | 1376484, |
| 2587 | 1376613, |
| 2588 | 1376644, |
| 2589 | 1377382, |
| 2590 | 1377445, |
| 2591 | 1377510, |
| 2592 | 1377557, |
| 2593 | 1377669, |
| 2594 | 1377725, |
| 2595 | 1377802, |
| 2596 | 1378005, |
| 2597 | 1378067, |
| 2598 | 1378101, |
| 2599 | 1378141, |
| 2600 | 1378308, |
| 2601 | 1379985, |
| 2602 | 1380125, |
| 2603 | 1380358, |
| 2604 | 1380420, |
| 2605 | 1382022, |
| 2606 | 1382533, |
| 2607 | 1382621, |
| 2608 | 1382865, |
| 2609 | 1382920, |
| 2610 | 1383261, |
| 2611 | 1383429, |
| 2612 | 1384004, |
| 2613 | 1384209, |
| 2614 | 1384292, |
| 2615 | 1384337, |
| 2616 | 1384356, |
| 2617 | 1384421, |
| 2618 | 1384456, |
| 2619 | 1384772, |
| 2620 | 1385669, |
| 2621 | 1385937, |
| 2622 | 1385988, |
| 2623 | 1386725, |
| 2624 | 1387078, |
| 2625 | 1387165, |
| 2626 | 1387505, |
| 2627 | 1387524, |
| 2628 | 1388477, |
| 2629 | 1388549, |
| 2630 | 1388646, |
| 2631 | 1388676, |
| 2632 | 1390181, |
| 2633 | 1390214, |
| 2634 | 1390277, |
| 2635 | 1390406, |
| 2636 | 1390469, |
| 2637 | 1390534, |
| 2638 | 1390641, |
| 2639 | 1391069, |
| 2640 | 1391075, |
| 2641 | 1391112, |
| 2642 | 1391453, |
| 2643 | 1391569, |
| 2644 | 1391620, |
| 2645 | 1391781, |
| 2646 | 1391811, |
| 2647 | 1391844, |
| 2648 | 1392136, |
| 2649 | 1392452, |
| 2650 | 1392637, |
| 2651 | 1392644, |
| 2652 | 1393957, |
| 2653 | 1394150, |
| 2654 | 1394213, |
| 2655 | 1394278, |
| 2656 | 1394341, |
| 2657 | 1394429, |
| 2658 | 1394692, |
| 2659 | 1394789, |
| 2660 | 1394820, |
| 2661 | 1395077, |
| 2662 | 1395110, |
| 2663 | 1395165, |
| 2664 | 1395208, |
| 2665 | 1395549, |
| 2666 | 1395601, |
| 2667 | 1395716, |
| 2668 | 1396227, |
| 2669 | 1396260, |
| 2670 | 1396469, |
| 2671 | 1396548, |
| 2672 | 1396582, |
| 2673 | 1396613, |
| 2674 | 1396646, |
| 2675 | 1396676, |
| 2676 | 1398277, |
| 2677 | 1398308, |
| 2678 | 1398341, |
| 2679 | 1398436, |
| 2680 | 1398501, |
| 2681 | 1398564, |
| 2682 | 1398725, |
| 2683 | 1398788, |
| 2684 | 1398821, |
| 2685 | 1398852, |
| 2686 | 1398909, |
| 2687 | 1399652, |
| 2688 | 1399715, |
| 2689 | 1399761, |
| 2690 | 1399812, |
| 2691 | 1400166, |
| 2692 | 1400197, |
| 2693 | 1400262, |
| 2694 | 1400337, |
| 2695 | 1400388, |
| 2696 | 1400419, |
| 2697 | 1400486, |
| 2698 | 1400517, |
| 2699 | 1400573, |
| 2700 | 1400868, |
| 2701 | 1401085, |
| 2702 | 1401124, |
| 2703 | 1401341, |
| 2704 | 1401380, |
| 2705 | 1401597, |
| 2706 | 1401860, |
| 2707 | 1402109, |
| 2708 | 1402116, |
| 2709 | 1402365, |
| 2710 | 1402369, |
| 2711 | 1403764, |
| 2712 | 1403779, |
| 2713 | 1403905, |
| 2714 | 1404195, |
| 2715 | 1404244, |
| 2716 | 1404317, |
| 2717 | 1404417, |
| 2718 | 1406980, |
| 2719 | 1408102, |
| 2720 | 1408165, |
| 2721 | 1408198, |
| 2722 | 1408261, |
| 2723 | 1408294, |
| 2724 | 1408369, |
| 2725 | 1408390, |
| 2726 | 1408421, |
| 2727 | 1408477, |
| 2728 | 1408520, |
| 2729 | 1408861, |
| 2730 | 1409028, |
| 2731 | 1766557, |
| 2732 | 1766916, |
| 2733 | 1767677, |
| 2734 | 1767780, |
| 2735 | 1769373, |
| 2736 | 1769499, |
| 2737 | 1835036, |
| 2738 | 2039812, |
| 2739 | 2051549, |
| 2740 | 2051588, |
| 2741 | 2055005, |
| 2742 | 2056193, |
| 2743 | 2056445, |
| 2744 | 2056801, |
| 2745 | 2056989, |
| 2746 | 2057124, |
| 2747 | 2057157, |
| 2748 | 2057188, |
| 2749 | 2057522, |
| 2750 | 2057540, |
| 2751 | 2057981, |
| 2752 | 2057988, |
| 2753 | 2058173, |
| 2754 | 2058180, |
| 2755 | 2058237, |
| 2756 | 2058244, |
| 2757 | 2058333, |
| 2758 | 2058340, |
| 2759 | 2058429, |
| 2760 | 2058436, |
| 2761 | 2061908, |
| 2762 | 2062429, |
| 2763 | 2062948, |
| 2764 | 2074574, |
| 2765 | 2074605, |
| 2766 | 2074653, |
| 2767 | 2075140, |
| 2768 | 2077213, |
| 2769 | 2077252, |
| 2770 | 2079005, |
| 2771 | 2080260, |
| 2772 | 2080659, |
| 2773 | 2080693, |
| 2774 | 2080733, |
| 2775 | 2080773, |
| 2776 | 2081297, |
| 2777 | 2081517, |
| 2778 | 2081550, |
| 2779 | 2081585, |
| 2780 | 2081629, |
| 2781 | 2081797, |
| 2782 | 2082321, |
| 2783 | 2082348, |
| 2784 | 2082411, |
| 2785 | 2082477, |
| 2786 | 2082510, |
| 2787 | 2082541, |
| 2788 | 2082574, |
| 2789 | 2082605, |
| 2790 | 2082638, |
| 2791 | 2082669, |
| 2792 | 2082702, |
| 2793 | 2082733, |
| 2794 | 2082766, |
| 2795 | 2082797, |
| 2796 | 2082830, |
| 2797 | 2082861, |
| 2798 | 2082894, |
| 2799 | 2082925, |
| 2800 | 2082958, |
| 2801 | 2082993, |
| 2802 | 2083053, |
| 2803 | 2083086, |
| 2804 | 2083121, |
| 2805 | 2083243, |
| 2806 | 2083345, |
| 2807 | 2083453, |
| 2808 | 2083473, |
| 2809 | 2083596, |
| 2810 | 2083629, |
| 2811 | 2083662, |
| 2812 | 2083693, |
| 2813 | 2083726, |
| 2814 | 2083757, |
| 2815 | 2083790, |
| 2816 | 2083825, |
| 2817 | 2083922, |
| 2818 | 2083948, |
| 2819 | 2083986, |
| 2820 | 2084093, |
| 2821 | 2084113, |
| 2822 | 2084147, |
| 2823 | 2084177, |
| 2824 | 2084253, |
| 2825 | 2084356, |
| 2826 | 2084541, |
| 2827 | 2084548, |
| 2828 | 2088893, |
| 2829 | 2088954, |
| 2830 | 2088989, |
| 2831 | 2089009, |
| 2832 | 2089107, |
| 2833 | 2089137, |
| 2834 | 2089229, |
| 2835 | 2089262, |
| 2836 | 2089297, |
| 2837 | 2089330, |
| 2838 | 2089361, |
| 2839 | 2089388, |
| 2840 | 2089425, |
| 2841 | 2089480, |
| 2842 | 2089809, |
| 2843 | 2089874, |
| 2844 | 2089969, |
| 2845 | 2090016, |
| 2846 | 2090861, |
| 2847 | 2090897, |
| 2848 | 2090926, |
| 2849 | 2090964, |
| 2850 | 2090987, |
| 2851 | 2091028, |
| 2852 | 2091041, |
| 2853 | 2091885, |
| 2854 | 2091922, |
| 2855 | 2091950, |
| 2856 | 2091986, |
| 2857 | 2092013, |
| 2858 | 2092046, |
| 2859 | 2092081, |
| 2860 | 2092109, |
| 2861 | 2092142, |
| 2862 | 2092177, |
| 2863 | 2092228, |
| 2864 | 2092547, |
| 2865 | 2092580, |
| 2866 | 2094019, |
| 2867 | 2094084, |
| 2868 | 2095101, |
| 2869 | 2095172, |
| 2870 | 2095389, |
| 2871 | 2095428, |
| 2872 | 2095645, |
| 2873 | 2095684, |
| 2874 | 2095901, |
| 2875 | 2095940, |
| 2876 | 2096061, |
| 2877 | 2096147, |
| 2878 | 2096210, |
| 2879 | 2096244, |
| 2880 | 2096277, |
| 2881 | 2096307, |
| 2882 | 2096381, |
| 2883 | 2096405, |
| 2884 | 2096434, |
| 2885 | 2096565, |
| 2886 | 2096637, |
| 2887 | 2096954, |
| 2888 | 2097045, |
| 2889 | 2097117, |
| 2890 | 2097156, |
| 2891 | 2097565, |
| 2892 | 2097572, |
| 2893 | 2098429, |
| 2894 | 2098436, |
| 2895 | 2099069, |
| 2896 | 2099076, |
| 2897 | 2099165, |
| 2898 | 2099172, |
| 2899 | 2099677, |
| 2900 | 2099716, |
| 2901 | 2100189, |
| 2902 | 2101252, |
| 2903 | 2105213, |
| 2904 | 2105361, |
| 2905 | 2105469, |
| 2906 | 2105578, |
| 2907 | 2107037, |
| 2908 | 2107125, |
| 2909 | 2107401, |
| 2910 | 2109098, |
| 2911 | 2109237, |
| 2912 | 2109770, |
| 2913 | 2109845, |
| 2914 | 2109949, |
| 2915 | 2109973, |
| 2916 | 2110397, |
| 2917 | 2110485, |
| 2918 | 2110525, |
| 2919 | 2112021, |
| 2920 | 2113445, |
| 2921 | 2113501, |
| 2922 | 2117636, |
| 2923 | 2118589, |
| 2924 | 2118660, |
| 2925 | 2120253, |
| 2926 | 2120709, |
| 2927 | 2120746, |
| 2928 | 2121629, |
| 2929 | 2121732, |
| 2930 | 2122762, |
| 2931 | 2122909, |
| 2932 | 2123172, |
| 2933 | 2123817, |
| 2934 | 2123844, |
| 2935 | 2124105, |
| 2936 | 2124157, |
| 2937 | 2124292, |
| 2938 | 2125509, |
| 2939 | 2125693, |
| 2940 | 2125828, |
| 2941 | 2126813, |
| 2942 | 2126833, |
| 2943 | 2126852, |
| 2944 | 2128029, |
| 2945 | 2128132, |
| 2946 | 2128401, |
| 2947 | 2128425, |
| 2948 | 2128605, |
| 2949 | 2129920, |
| 2950 | 2131201, |
| 2951 | 2132484, |
| 2952 | 2135005, |
| 2953 | 2135048, |
| 2954 | 2135389, |
| 2955 | 2135552, |
| 2956 | 2136733, |
| 2957 | 2136833, |
| 2958 | 2138013, |
| 2959 | 2138116, |
| 2960 | 2139421, |
| 2961 | 2139652, |
| 2962 | 2141341, |
| 2963 | 2141681, |
| 2964 | 2141725, |
| 2965 | 2146308, |
| 2966 | 2156285, |
| 2967 | 2156548, |
| 2968 | 2157277, |
| 2969 | 2157572, |
| 2970 | 2157853, |
| 2971 | 2162692, |
| 2972 | 2162909, |
| 2973 | 2162948, |
| 2974 | 2163005, |
| 2975 | 2163012, |
| 2976 | 2164445, |
| 2977 | 2164452, |
| 2978 | 2164541, |
| 2979 | 2164612, |
| 2980 | 2164669, |
| 2981 | 2164708, |
| 2982 | 2165469, |
| 2983 | 2165489, |
| 2984 | 2165514, |
| 2985 | 2165764, |
| 2986 | 2166517, |
| 2987 | 2166570, |
| 2988 | 2166788, |
| 2989 | 2167805, |
| 2990 | 2168042, |
| 2991 | 2168349, |
| 2992 | 2169860, |
| 2993 | 2170493, |
| 2994 | 2170500, |
| 2995 | 2170589, |
| 2996 | 2170730, |
| 2997 | 2170884, |
| 2998 | 2171594, |
| 2999 | 2171805, |
| 3000 | 2171889, |
| 3001 | 2171908, |
| 3002 | 2172765, |
| 3003 | 2172913, |
| 3004 | 2172957, |
| 3005 | 2174980, |
| 3006 | 2176797, |
| 3007 | 2176906, |
| 3008 | 2176964, |
| 3009 | 2177034, |
| 3010 | 2177565, |
| 3011 | 2177610, |
| 3012 | 2179076, |
| 3013 | 2179109, |
| 3014 | 2179229, |
| 3015 | 2179237, |
| 3016 | 2179325, |
| 3017 | 2179461, |
| 3018 | 2179588, |
| 3019 | 2179741, |
| 3020 | 2179748, |
| 3021 | 2179869, |
| 3022 | 2179876, |
| 3023 | 2180829, |
| 3024 | 2180869, |
| 3025 | 2180989, |
| 3026 | 2181093, |
| 3027 | 2181130, |
| 3028 | 2181437, |
| 3029 | 2181649, |
| 3030 | 2181949, |
| 3031 | 2182148, |
| 3032 | 2183082, |
| 3033 | 2183153, |
| 3034 | 2183172, |
| 3035 | 2184106, |
| 3036 | 2184221, |
| 3037 | 2185220, |
| 3038 | 2185493, |
| 3039 | 2185508, |
| 3040 | 2186405, |
| 3041 | 2186493, |
| 3042 | 2186602, |
| 3043 | 2186769, |
| 3044 | 2187005, |
| 3045 | 2187268, |
| 3046 | 2189021, |
| 3047 | 2189105, |
| 3048 | 2189316, |
| 3049 | 2190045, |
| 3050 | 2190090, |
| 3051 | 2190340, |
| 3052 | 2190973, |
| 3053 | 2191114, |
| 3054 | 2191364, |
| 3055 | 2191965, |
| 3056 | 2192177, |
| 3057 | 2192317, |
| 3058 | 2192682, |
| 3059 | 2192925, |
| 3060 | 2195460, |
| 3061 | 2197821, |
| 3062 | 2199552, |
| 3063 | 2201213, |
| 3064 | 2201601, |
| 3065 | 2203261, |
| 3066 | 2203466, |
| 3067 | 2203652, |
| 3068 | 2204805, |
| 3069 | 2204957, |
| 3070 | 2205192, |
| 3071 | 2205533, |
| 3072 | 2214922, |
| 3073 | 2215933, |
| 3074 | 2215940, |
| 3075 | 2217309, |
| 3076 | 2217317, |
| 3077 | 2217388, |
| 3078 | 2217437, |
| 3079 | 2217476, |
| 3080 | 2217565, |
| 3081 | 2220036, |
| 3082 | 2220970, |
| 3083 | 2221284, |
| 3084 | 2221341, |
| 3085 | 2221572, |
| 3086 | 2222277, |
| 3087 | 2222634, |
| 3088 | 2222769, |
| 3089 | 2222941, |
| 3090 | 2225668, |
| 3091 | 2226346, |
| 3092 | 2226589, |
| 3093 | 2227204, |
| 3094 | 2227965, |
| 3095 | 2228230, |
| 3096 | 2228261, |
| 3097 | 2228294, |
| 3098 | 2228324, |
| 3099 | 2230021, |
| 3100 | 2230513, |
| 3101 | 2230749, |
| 3102 | 2230858, |
| 3103 | 2231496, |
| 3104 | 2231837, |
| 3105 | 2232293, |
| 3106 | 2232390, |
| 3107 | 2232420, |
| 3108 | 2233862, |
| 3109 | 2233957, |
| 3110 | 2234086, |
| 3111 | 2234149, |
| 3112 | 2234225, |
| 3113 | 2234298, |
| 3114 | 2234321, |
| 3115 | 2234461, |
| 3116 | 2234810, |
| 3117 | 2234845, |
| 3118 | 2234884, |
| 3119 | 2235709, |
| 3120 | 2235912, |
| 3121 | 2236253, |
| 3122 | 2236421, |
| 3123 | 2236516, |
| 3124 | 2237669, |
| 3125 | 2237830, |
| 3126 | 2237861, |
| 3127 | 2238141, |
| 3128 | 2238152, |
| 3129 | 2238481, |
| 3130 | 2238596, |
| 3131 | 2238630, |
| 3132 | 2238692, |
| 3133 | 2238749, |
| 3134 | 2238980, |
| 3135 | 2240101, |
| 3136 | 2240145, |
| 3137 | 2240196, |
| 3138 | 2240253, |
| 3139 | 2240517, |
| 3140 | 2240582, |
| 3141 | 2240612, |
| 3142 | 2242150, |
| 3143 | 2242245, |
| 3144 | 2242534, |
| 3145 | 2242596, |
| 3146 | 2242737, |
| 3147 | 2242853, |
| 3148 | 2242993, |
| 3149 | 2243014, |
| 3150 | 2243045, |
| 3151 | 2243080, |
| 3152 | 2243396, |
| 3153 | 2243441, |
| 3154 | 2243460, |
| 3155 | 2243505, |
| 3156 | 2243613, |
| 3157 | 2243626, |
| 3158 | 2244285, |
| 3159 | 2244612, |
| 3160 | 2245213, |
| 3161 | 2245220, |
| 3162 | 2246022, |
| 3163 | 2246117, |
| 3164 | 2246214, |
| 3165 | 2246277, |
| 3166 | 2246310, |
| 3167 | 2246341, |
| 3168 | 2246417, |
| 3169 | 2246597, |
| 3170 | 2246653, |
| 3171 | 2248708, |
| 3172 | 2248957, |
| 3173 | 2248964, |
| 3174 | 2249021, |
| 3175 | 2249028, |
| 3176 | 2249181, |
| 3177 | 2249188, |
| 3178 | 2249693, |
| 3179 | 2249700, |
| 3180 | 2250033, |
| 3181 | 2250077, |
| 3182 | 2250244, |
| 3183 | 2251749, |
| 3184 | 2251782, |
| 3185 | 2251877, |
| 3186 | 2252157, |
| 3187 | 2252296, |
| 3188 | 2252637, |
| 3189 | 2252805, |
| 3190 | 2252870, |
| 3191 | 2252957, |
| 3192 | 2252964, |
| 3193 | 2253245, |
| 3194 | 2253284, |
| 3195 | 2253373, |
| 3196 | 2253412, |
| 3197 | 2254141, |
| 3198 | 2254148, |
| 3199 | 2254397, |
| 3200 | 2254404, |
| 3201 | 2254493, |
| 3202 | 2254500, |
| 3203 | 2254685, |
| 3204 | 2254693, |
| 3205 | 2254756, |
| 3206 | 2254790, |
| 3207 | 2254853, |
| 3208 | 2254886, |
| 3209 | 2255037, |
| 3210 | 2255078, |
| 3211 | 2255165, |
| 3212 | 2255206, |
| 3213 | 2255325, |
| 3214 | 2255364, |
| 3215 | 2255421, |
| 3216 | 2255590, |
| 3217 | 2255645, |
| 3218 | 2255780, |
| 3219 | 2255942, |
| 3220 | 2256029, |
| 3221 | 2256069, |
| 3222 | 2256317, |
| 3223 | 2256389, |
| 3224 | 2256573, |
| 3225 | 2260996, |
| 3226 | 2262694, |
| 3227 | 2262789, |
| 3228 | 2263046, |
| 3229 | 2263109, |
| 3230 | 2263206, |
| 3231 | 2263237, |
| 3232 | 2263268, |
| 3233 | 2263409, |
| 3234 | 2263560, |
| 3235 | 2263889, |
| 3236 | 2263965, |
| 3237 | 2263985, |
| 3238 | 2264005, |
| 3239 | 2264036, |
| 3240 | 2264157, |
| 3241 | 2265092, |
| 3242 | 2266630, |
| 3243 | 2266725, |
| 3244 | 2266918, |
| 3245 | 2266949, |
| 3246 | 2266982, |
| 3247 | 2267109, |
| 3248 | 2267174, |
| 3249 | 2267205, |
| 3250 | 2267268, |
| 3251 | 2267345, |
| 3252 | 2267364, |
| 3253 | 2267421, |
| 3254 | 2267656, |
| 3255 | 2267997, |
| 3256 | 2273284, |
| 3257 | 2274790, |
| 3258 | 2274885, |
| 3259 | 2275037, |
| 3260 | 2275078, |
| 3261 | 2275205, |
| 3262 | 2275270, |
| 3263 | 2275301, |
| 3264 | 2275377, |
| 3265 | 2276100, |
| 3266 | 2276229, |
| 3267 | 2276317, |
| 3268 | 2277380, |
| 3269 | 2278918, |
| 3270 | 2279013, |
| 3271 | 2279270, |
| 3272 | 2279333, |
| 3273 | 2279366, |
| 3274 | 2279397, |
| 3275 | 2279473, |
| 3276 | 2279556, |
| 3277 | 2279613, |
| 3278 | 2279944, |
| 3279 | 2280285, |
| 3280 | 2280465, |
| 3281 | 2280893, |
| 3282 | 2281476, |
| 3283 | 2282853, |
| 3284 | 2282886, |
| 3285 | 2282917, |
| 3286 | 2282950, |
| 3287 | 2283013, |
| 3288 | 2283206, |
| 3289 | 2283237, |
| 3290 | 2283268, |
| 3291 | 2283325, |
| 3292 | 2283528, |
| 3293 | 2283869, |
| 3294 | 2285572, |
| 3295 | 2286461, |
| 3296 | 2286501, |
| 3297 | 2286598, |
| 3298 | 2286661, |
| 3299 | 2286790, |
| 3300 | 2286821, |
| 3301 | 2287005, |
| 3302 | 2287112, |
| 3303 | 2287434, |
| 3304 | 2287505, |
| 3305 | 2287605, |
| 3306 | 2287645, |
| 3307 | 2293764, |
| 3308 | 2295174, |
| 3309 | 2295269, |
| 3310 | 2295558, |
| 3311 | 2295589, |
| 3312 | 2295665, |
| 3313 | 2295709, |
| 3314 | 2298880, |
| 3315 | 2299905, |
| 3316 | 2300936, |
| 3317 | 2301258, |
| 3318 | 2301565, |
| 3319 | 2301924, |
| 3320 | 2302205, |
| 3321 | 2302244, |
| 3322 | 2302301, |
| 3323 | 2302340, |
| 3324 | 2302621, |
| 3325 | 2302628, |
| 3326 | 2302717, |
| 3327 | 2302724, |
| 3328 | 2303494, |
| 3329 | 2303709, |
| 3330 | 2303718, |
| 3331 | 2303805, |
| 3332 | 2303845, |
| 3333 | 2303910, |
| 3334 | 2303941, |
| 3335 | 2303972, |
| 3336 | 2304006, |
| 3337 | 2304036, |
| 3338 | 2304070, |
| 3339 | 2304101, |
| 3340 | 2304145, |
| 3341 | 2304253, |
| 3342 | 2304520, |
| 3343 | 2304861, |
| 3344 | 2307076, |
| 3345 | 2307357, |
| 3346 | 2307396, |
| 3347 | 2308646, |
| 3348 | 2308741, |
| 3349 | 2308893, |
| 3350 | 2308933, |
| 3351 | 2308998, |
| 3352 | 2309125, |
| 3353 | 2309156, |
| 3354 | 2309201, |
| 3355 | 2309220, |
| 3356 | 2309254, |
| 3357 | 2309309, |
| 3358 | 2310148, |
| 3359 | 2310181, |
| 3360 | 2310500, |
| 3361 | 2311781, |
| 3362 | 2311974, |
| 3363 | 2312004, |
| 3364 | 2312037, |
| 3365 | 2312177, |
| 3366 | 2312421, |
| 3367 | 2312477, |
| 3368 | 2312708, |
| 3369 | 2312741, |
| 3370 | 2312934, |
| 3371 | 2312997, |
| 3372 | 2313092, |
| 3373 | 2314565, |
| 3374 | 2314982, |
| 3375 | 2315013, |
| 3376 | 2315089, |
| 3377 | 2315172, |
| 3378 | 2315217, |
| 3379 | 2315389, |
| 3380 | 2316292, |
| 3381 | 2318141, |
| 3382 | 2326532, |
| 3383 | 2326845, |
| 3384 | 2326852, |
| 3385 | 2328038, |
| 3386 | 2328069, |
| 3387 | 2328317, |
| 3388 | 2328325, |
| 3389 | 2328518, |
| 3390 | 2328549, |
| 3391 | 2328580, |
| 3392 | 2328625, |
| 3393 | 2328797, |
| 3394 | 2329096, |
| 3395 | 2329418, |
| 3396 | 2330045, |
| 3397 | 2330129, |
| 3398 | 2330180, |
| 3399 | 2331165, |
| 3400 | 2331205, |
| 3401 | 2331933, |
| 3402 | 2331942, |
| 3403 | 2331973, |
| 3404 | 2332198, |
| 3405 | 2332229, |
| 3406 | 2332294, |
| 3407 | 2332325, |
| 3408 | 2332413, |
| 3409 | 2334724, |
| 3410 | 2334973, |
| 3411 | 2334980, |
| 3412 | 2335069, |
| 3413 | 2335076, |
| 3414 | 2336293, |
| 3415 | 2336509, |
| 3416 | 2336581, |
| 3417 | 2336637, |
| 3418 | 2336645, |
| 3419 | 2336733, |
| 3420 | 2336741, |
| 3421 | 2336964, |
| 3422 | 2336997, |
| 3423 | 2337053, |
| 3424 | 2337288, |
| 3425 | 2337629, |
| 3426 | 2337796, |
| 3427 | 2338013, |
| 3428 | 2338020, |
| 3429 | 2338109, |
| 3430 | 2338116, |
| 3431 | 2339142, |
| 3432 | 2339325, |
| 3433 | 2339333, |
| 3434 | 2339421, |
| 3435 | 2339430, |
| 3436 | 2339493, |
| 3437 | 2339526, |
| 3438 | 2339557, |
| 3439 | 2339588, |
| 3440 | 2339645, |
| 3441 | 2339848, |
| 3442 | 2340189, |
| 3443 | 2350084, |
| 3444 | 2350693, |
| 3445 | 2350758, |
| 3446 | 2350833, |
| 3447 | 2350909, |
| 3448 | 2356740, |
| 3449 | 2356797, |
| 3450 | 2357258, |
| 3451 | 2357941, |
| 3452 | 2358195, |
| 3453 | 2358325, |
| 3454 | 2358877, |
| 3455 | 2359281, |
| 3456 | 2359300, |
| 3457 | 2388829, |
| 3458 | 2392073, |
| 3459 | 2395645, |
| 3460 | 2395665, |
| 3461 | 2395837, |
| 3462 | 2396164, |
| 3463 | 2402461, |
| 3464 | 2490372, |
| 3465 | 2524669, |
| 3466 | 2524698, |
| 3467 | 2524989, |
| 3468 | 2654212, |
| 3469 | 2672893, |
| 3470 | 2949124, |
| 3471 | 2967357, |
| 3472 | 2967556, |
| 3473 | 2968573, |
| 3474 | 2968584, |
| 3475 | 2968925, |
| 3476 | 2969041, |
| 3477 | 2969117, |
| 3478 | 2972164, |
| 3479 | 2973149, |
| 3480 | 2973189, |
| 3481 | 2973361, |
| 3482 | 2973405, |
| 3483 | 2973700, |
| 3484 | 2975237, |
| 3485 | 2975473, |
| 3486 | 2975637, |
| 3487 | 2975747, |
| 3488 | 2975889, |
| 3489 | 2975925, |
| 3490 | 2975965, |
| 3491 | 2976264, |
| 3492 | 2976605, |
| 3493 | 2976618, |
| 3494 | 2976861, |
| 3495 | 2976868, |
| 3496 | 2977565, |
| 3497 | 2977700, |
| 3498 | 2978333, |
| 3499 | 3000320, |
| 3500 | 3001345, |
| 3501 | 3002378, |
| 3502 | 3003121, |
| 3503 | 3003261, |
| 3504 | 3006468, |
| 3505 | 3008893, |
| 3506 | 3008997, |
| 3507 | 3009028, |
| 3508 | 3009062, |
| 3509 | 3010845, |
| 3510 | 3011045, |
| 3511 | 3011171, |
| 3512 | 3011613, |
| 3513 | 3013635, |
| 3514 | 3013713, |
| 3515 | 3013731, |
| 3516 | 3013765, |
| 3517 | 3013821, |
| 3518 | 3014150, |
| 3519 | 3014237, |
| 3520 | 3014660, |
| 3521 | 3211037, |
| 3522 | 3211268, |
| 3523 | 3250909, |
| 3524 | 3252228, |
| 3525 | 3252541, |
| 3526 | 3538948, |
| 3527 | 3548157, |
| 3528 | 3549700, |
| 3529 | 3549821, |
| 3530 | 3550340, |
| 3531 | 3550493, |
| 3532 | 3550724, |
| 3533 | 3563421, |
| 3534 | 3637252, |
| 3535 | 3640701, |
| 3536 | 3640836, |
| 3537 | 3641277, |
| 3538 | 3641348, |
| 3539 | 3641661, |
| 3540 | 3641860, |
| 3541 | 3642205, |
| 3542 | 3642261, |
| 3543 | 3642277, |
| 3544 | 3642353, |
| 3545 | 3642394, |
| 3546 | 3642525, |
| 3547 | 3801109, |
| 3548 | 3808989, |
| 3549 | 3809301, |
| 3550 | 3810557, |
| 3551 | 3810613, |
| 3552 | 3812518, |
| 3553 | 3812581, |
| 3554 | 3812693, |
| 3555 | 3812774, |
| 3556 | 3812986, |
| 3557 | 3813221, |
| 3558 | 3813493, |
| 3559 | 3813541, |
| 3560 | 3813781, |
| 3561 | 3814725, |
| 3562 | 3814869, |
| 3563 | 3816765, |
| 3564 | 3817493, |
| 3565 | 3819589, |
| 3566 | 3819701, |
| 3567 | 3819741, |
| 3568 | 3824650, |
| 3569 | 3825309, |
| 3570 | 3825685, |
| 3571 | 3828477, |
| 3572 | 3828746, |
| 3573 | 3829565, |
| 3574 | 3833856, |
| 3575 | 3834689, |
| 3576 | 3835520, |
| 3577 | 3836353, |
| 3578 | 3836605, |
| 3579 | 3836609, |
| 3580 | 3837184, |
| 3581 | 3838017, |
| 3582 | 3838848, |
| 3583 | 3838909, |
| 3584 | 3838912, |
| 3585 | 3839005, |
| 3586 | 3839040, |
| 3587 | 3839101, |
| 3588 | 3839136, |
| 3589 | 3839229, |
| 3590 | 3839264, |
| 3591 | 3839421, |
| 3592 | 3839424, |
| 3593 | 3839681, |
| 3594 | 3839837, |
| 3595 | 3839841, |
| 3596 | 3839901, |
| 3597 | 3839905, |
| 3598 | 3840157, |
| 3599 | 3840161, |
| 3600 | 3840512, |
| 3601 | 3841345, |
| 3602 | 3842176, |
| 3603 | 3842269, |
| 3604 | 3842272, |
| 3605 | 3842429, |
| 3606 | 3842464, |
| 3607 | 3842749, |
| 3608 | 3842752, |
| 3609 | 3843005, |
| 3610 | 3843009, |
| 3611 | 3843840, |
| 3612 | 3843933, |
| 3613 | 3843936, |
| 3614 | 3844093, |
| 3615 | 3844096, |
| 3616 | 3844285, |
| 3617 | 3844288, |
| 3618 | 3844349, |
| 3619 | 3844416, |
| 3620 | 3844669, |
| 3621 | 3844673, |
| 3622 | 3845504, |
| 3623 | 3846337, |
| 3624 | 3847168, |
| 3625 | 3848001, |
| 3626 | 3848832, |
| 3627 | 3849665, |
| 3628 | 3850496, |
| 3629 | 3851329, |
| 3630 | 3852160, |
| 3631 | 3852993, |
| 3632 | 3853824, |
| 3633 | 3854657, |
| 3634 | 3855581, |
| 3635 | 3855616, |
| 3636 | 3856434, |
| 3637 | 3856449, |
| 3638 | 3857266, |
| 3639 | 3857281, |
| 3640 | 3857472, |
| 3641 | 3858290, |
| 3642 | 3858305, |
| 3643 | 3859122, |
| 3644 | 3859137, |
| 3645 | 3859328, |
| 3646 | 3860146, |
| 3647 | 3860161, |
| 3648 | 3860978, |
| 3649 | 3860993, |
| 3650 | 3861184, |
| 3651 | 3862002, |
| 3652 | 3862017, |
| 3653 | 3862834, |
| 3654 | 3862849, |
| 3655 | 3863040, |
| 3656 | 3863858, |
| 3657 | 3863873, |
| 3658 | 3864690, |
| 3659 | 3864705, |
| 3660 | 3864896, |
| 3661 | 3864929, |
| 3662 | 3864989, |
| 3663 | 3865032, |
| 3664 | 3866645, |
| 3665 | 3883013, |
| 3666 | 3884789, |
| 3667 | 3884901, |
| 3668 | 3886517, |
| 3669 | 3886757, |
| 3670 | 3886805, |
| 3671 | 3887237, |
| 3672 | 3887285, |
| 3673 | 3887345, |
| 3674 | 3887517, |
| 3675 | 3887973, |
| 3676 | 3888157, |
| 3677 | 3888165, |
| 3678 | 3888669, |
| 3679 | 3932165, |
| 3680 | 3932413, |
| 3681 | 3932421, |
| 3682 | 3932989, |
| 3683 | 3933029, |
| 3684 | 3933277, |
| 3685 | 3933285, |
| 3686 | 3933373, |
| 3687 | 3933381, |
| 3688 | 3933565, |
| 3689 | 3940356, |
| 3690 | 3941821, |
| 3691 | 3941893, |
| 3692 | 3942115, |
| 3693 | 3942365, |
| 3694 | 3942408, |
| 3695 | 3942749, |
| 3696 | 3942852, |
| 3697 | 3942901, |
| 3698 | 3942941, |
| 3699 | 3954692, |
| 3700 | 3956101, |
| 3701 | 3956232, |
| 3702 | 3956573, |
| 3703 | 3956723, |
| 3704 | 3956765, |
| 3705 | 3997700, |
| 3706 | 4004029, |
| 3707 | 4004074, |
| 3708 | 4004357, |
| 3709 | 4004605, |
| 3710 | 4005888, |
| 3711 | 4006977, |
| 3712 | 4008069, |
| 3713 | 4008291, |
| 3714 | 4008349, |
| 3715 | 4008456, |
| 3716 | 4008797, |
| 3717 | 4008913, |
| 3718 | 4008989, |
| 3719 | 4034090, |
| 3720 | 4035989, |
| 3721 | 4036010, |
| 3722 | 4036115, |
| 3723 | 4036138, |
| 3724 | 4036285, |
| 3725 | 4038698, |
| 3726 | 4040149, |
| 3727 | 4040170, |
| 3728 | 4040669, |
| 3729 | 4046852, |
| 3730 | 4047005, |
| 3731 | 4047012, |
| 3732 | 4047901, |
| 3733 | 4047908, |
| 3734 | 4047997, |
| 3735 | 4048004, |
| 3736 | 4048061, |
| 3737 | 4048100, |
| 3738 | 4048157, |
| 3739 | 4048164, |
| 3740 | 4048509, |
| 3741 | 4048516, |
| 3742 | 4048669, |
| 3743 | 4048676, |
| 3744 | 4048733, |
| 3745 | 4048740, |
| 3746 | 4048797, |
| 3747 | 4048964, |
| 3748 | 4049021, |
| 3749 | 4049124, |
| 3750 | 4049181, |
| 3751 | 4049188, |
| 3752 | 4049245, |
| 3753 | 4049252, |
| 3754 | 4049309, |
| 3755 | 4049316, |
| 3756 | 4049437, |
| 3757 | 4049444, |
| 3758 | 4049533, |
| 3759 | 4049540, |
| 3760 | 4049597, |
| 3761 | 4049636, |
| 3762 | 4049693, |
| 3763 | 4049700, |
| 3764 | 4049757, |
| 3765 | 4049764, |
| 3766 | 4049821, |
| 3767 | 4049828, |
| 3768 | 4049885, |
| 3769 | 4049892, |
| 3770 | 4049949, |
| 3771 | 4049956, |
| 3772 | 4050045, |
| 3773 | 4050052, |
| 3774 | 4050109, |
| 3775 | 4050148, |
| 3776 | 4050301, |
| 3777 | 4050308, |
| 3778 | 4050557, |
| 3779 | 4050564, |
| 3780 | 4050717, |
| 3781 | 4050724, |
| 3782 | 4050877, |
| 3783 | 4050884, |
| 3784 | 4050941, |
| 3785 | 4050948, |
| 3786 | 4051293, |
| 3787 | 4051300, |
| 3788 | 4051869, |
| 3789 | 4052004, |
| 3790 | 4052125, |
| 3791 | 4052132, |
| 3792 | 4052317, |
| 3793 | 4052324, |
| 3794 | 4052893, |
| 3795 | 4054546, |
| 3796 | 4054621, |
| 3797 | 4063253, |
| 3798 | 4064669, |
| 3799 | 4064789, |
| 3800 | 4067997, |
| 3801 | 4068373, |
| 3802 | 4068861, |
| 3803 | 4068917, |
| 3804 | 4069405, |
| 3805 | 4069429, |
| 3806 | 4069917, |
| 3807 | 4069941, |
| 3808 | 4071133, |
| 3809 | 4071434, |
| 3810 | 4071861, |
| 3811 | 4077021, |
| 3812 | 4078805, |
| 3813 | 4079741, |
| 3814 | 4080149, |
| 3815 | 4081565, |
| 3816 | 4081685, |
| 3817 | 4081981, |
| 3818 | 4082197, |
| 3819 | 4082269, |
| 3820 | 4082709, |
| 3821 | 4082909, |
| 3822 | 4087829, |
| 3823 | 4095860, |
| 3824 | 4096021, |
| 3825 | 4119325, |
| 3826 | 4119573, |
| 3827 | 4119997, |
| 3828 | 4120085, |
| 3829 | 4120509, |
| 3830 | 4120597, |
| 3831 | 4124317, |
| 3832 | 4124693, |
| 3833 | 4127549, |
| 3834 | 4127765, |
| 3835 | 4128157, |
| 3836 | 4128789, |
| 3837 | 4129181, |
| 3838 | 4129301, |
| 3839 | 4131101, |
| 3840 | 4131349, |
| 3841 | 4131677, |
| 3842 | 4131861, |
| 3843 | 4133149, |
| 3844 | 4133397, |
| 3845 | 4134365, |
| 3846 | 4134421, |
| 3847 | 4134493, |
| 3848 | 4136981, |
| 3849 | 4140861, |
| 3850 | 4140885, |
| 3851 | 4143517, |
| 3852 | 4143541, |
| 3853 | 4147869, |
| 3854 | 4148245, |
| 3855 | 4148701, |
| 3856 | 4148757, |
| 3857 | 4148925, |
| 3858 | 4149013, |
| 3859 | 4149117, |
| 3860 | 4149269, |
| 3861 | 4149501, |
| 3862 | 4149781, |
| 3863 | 4150589, |
| 3864 | 4150805, |
| 3865 | 4151037, |
| 3866 | 4151317, |
| 3867 | 4151421, |
| 3868 | 4151829, |
| 3869 | 4152061, |
| 3870 | 4153365, |
| 3871 | 4158077, |
| 3872 | 4158101, |
| 3873 | 4159869, |
| 3874 | 4161032, |
| 3875 | 4161373, |
| 3876 | 4194308, |
| 3877 | 5561309, |
| 3878 | 5562372, |
| 3879 | 5695165, |
| 3880 | 5695492, |
| 3881 | 5702621, |
| 3882 | 5702660, |
| 3883 | 5887069, |
| 3884 | 5887492, |
| 3885 | 6126653, |
| 3886 | 6225924, |
| 3887 | 6243293, |
| 3888 | 6291460, |
| 3889 | 6449533, |
| 3890 | 29360186, |
| 3891 | 29360221, |
| 3892 | 29361178, |
| 3893 | 29364253, |
| 3894 | 29368325, |
| 3895 | 29376029, |
| 3896 | 31457308, |
| 3897 | 33554397, |
| 3898 | 33554460, |
| 3899 | 35651549, |
| 3900 | 35651613, |
| 3901 | //--Autogenerated -- end of section automatically generated |
| 3902 | }; |
| 3903 | |
| 3904 | constexpr int maxUnicode = 0x10ffff; |
| 3905 | constexpr int maskCategory = 0x1F; |
| 3906 | |
| 3907 | } |
| 3908 | |
| 3909 | // Each element in catRanges is the start of a range of Unicode characters in |
| 3910 | // one general category. |
| 3911 | // The value is comprised of a 21-bit character value shifted 5 bits and a 5 bit |
| 3912 | // category matching the CharacterCategory enumeration. |
| 3913 | // Initial version has 3249 entries and adds about 13K to the executable. |
| 3914 | // The array is in ascending order so can be searched using binary search. |
| 3915 | // Therefore the average call takes log2(3249) = 12 comparisons. |
| 3916 | // For speed, it may be useful to make a linear table for the common values, |
| 3917 | // possibly for 0..0xff for most Western European text or 0..0xfff for most |
| 3918 | // alphabetic languages. |
| 3919 | |
| 3920 | CharacterCategory CategoriseCharacter(int character) { |
| 3921 | if (character < 0 || character > maxUnicode) |
| 3922 | return ccCn; |
| 3923 | const int baseValue = character * (maskCategory+1) + maskCategory; |
| 3924 | const int *placeAfter = std::lower_bound(catRanges, std::end(catRanges), baseValue); |
| 3925 | return static_cast<CharacterCategory>(*(placeAfter-1) & maskCategory); |
| 3926 | } |
| 3927 | |
| 3928 | // Implementation of character sets recommended for identifiers in Unicode Standard Annex #31. |
| 3929 | // http://unicode.org/reports/tr31/ |
| 3930 | |
| 3931 | namespace { |
| 3932 | |
| 3933 | enum class OtherID { oidNone, oidStart, oidContinue }; |
| 3934 | |
| 3935 | // Some characters are treated as valid for identifiers even |
| 3936 | // though most characters from their category are not. |
| 3937 | // Values copied from http://www.unicode.org/Public/9.0.0/ucd/PropList.txt |
| 3938 | OtherID OtherIDOfCharacter(int character) noexcept { |
| 3939 | if ( |
| 3940 | (character == 0x1885) || // MONGOLIAN LETTER ALI GALI BALUDA |
| 3941 | (character == 0x1886) || // MONGOLIAN LETTER ALI GALI THREE BALUDA |
| 3942 | (character == 0x2118) || // SCRIPT CAPITAL P |
| 3943 | (character == 0x212E) || // ESTIMATED SYMBOL |
| 3944 | (character == 0x309B) || // KATAKANA-HIRAGANA VOICED SOUND MARK |
| 3945 | (character == 0x309C)) { // KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK |
| 3946 | return OtherID::oidStart; |
| 3947 | } else if ( |
| 3948 | (character == 0x00B7) || // MIDDLE DOT |
| 3949 | (character == 0x0387) || // GREEK ANO TELEIA |
| 3950 | ((character >= 0x1369) && (character <= 0x1371)) || // ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE |
| 3951 | (character == 0x19DA)) { // NEW TAI LUE THAM DIGIT ONE |
| 3952 | return OtherID::oidContinue; |
| 3953 | } else { |
| 3954 | return OtherID::oidNone; |
| 3955 | } |
| 3956 | } |
| 3957 | |
| 3958 | // Determine if a character is in Ll|Lu|Lt|Lm|Lo|Nl|Mn|Mc|Nd|Pc and has |
| 3959 | // Pattern_Syntax|Pattern_White_Space. |
| 3960 | // As of Unicode 9, only VERTICAL TILDE which is in Lm and has Pattern_Syntax matches. |
| 3961 | // Should really generate from PropList.txt a list of Pattern_Syntax and Pattern_White_Space. |
| 3962 | constexpr bool IsIdPattern(int character) noexcept { |
| 3963 | return character == 0x2E2F; |
| 3964 | } |
| 3965 | |
| 3966 | bool OmitXidStart(int character) noexcept { |
| 3967 | switch (character) { |
| 3968 | case 0x037A: // GREEK YPOGEGRAMMENI |
| 3969 | case 0x0E33: // THAI CHARACTER SARA AM |
| 3970 | case 0x0EB3: // LAO VOWEL SIGN AM |
| 3971 | case 0x309B: // KATAKANA-HIRAGANA VOICED SOUND MARK |
| 3972 | case 0x309C: // KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK |
| 3973 | case 0xFC5E: // ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM |
| 3974 | case 0xFC5F: // ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM |
| 3975 | case 0xFC60: // ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM |
| 3976 | case 0xFC61: // ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM |
| 3977 | case 0xFC62: // ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM |
| 3978 | case 0xFC63: // ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM |
| 3979 | case 0xFDFA: // ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM |
| 3980 | case 0xFDFB: // ARABIC LIGATURE JALLAJALALOUHOU |
| 3981 | case 0xFE70: // ARABIC FATHATAN ISOLATED FORM |
| 3982 | case 0xFE72: // ARABIC DAMMATAN ISOLATED FORM |
| 3983 | case 0xFE74: // ARABIC KASRATAN ISOLATED FORM |
| 3984 | case 0xFE76: // ARABIC FATHA ISOLATED FORM |
| 3985 | case 0xFE78: // ARABIC DAMMA ISOLATED FORM |
| 3986 | case 0xFE7A: // ARABIC KASRA ISOLATED FORM |
| 3987 | case 0xFE7C: // ARABIC SHADDA ISOLATED FORM |
| 3988 | case 0xFE7E: // ARABIC SUKUN ISOLATED FORM |
| 3989 | case 0xFF9E: // HALFWIDTH KATAKANA VOICED SOUND MARK |
| 3990 | case 0xFF9F: // HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK |
| 3991 | return true; |
| 3992 | default: |
| 3993 | return false; |
| 3994 | } |
| 3995 | } |
| 3996 | |
| 3997 | bool OmitXidContinue(int character) noexcept { |
| 3998 | switch (character) { |
| 3999 | case 0x037A: // GREEK YPOGEGRAMMENI |
| 4000 | case 0x309B: // KATAKANA-HIRAGANA VOICED SOUND MARK |
| 4001 | case 0x309C: // KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK |
| 4002 | case 0xFC5E: // ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM |
| 4003 | case 0xFC5F: // ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM |
| 4004 | case 0xFC60: // ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM |
| 4005 | case 0xFC61: // ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM |
| 4006 | case 0xFC62: // ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM |
| 4007 | case 0xFC63: // ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM |
| 4008 | case 0xFDFA: // ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM |
| 4009 | case 0xFDFB: // ARABIC LIGATURE JALLAJALALOUHOU |
| 4010 | case 0xFE70: // ARABIC FATHATAN ISOLATED FORM |
| 4011 | case 0xFE72: // ARABIC DAMMATAN ISOLATED FORM |
| 4012 | case 0xFE74: // ARABIC KASRATAN ISOLATED FORM |
| 4013 | case 0xFE76: // ARABIC FATHA ISOLATED FORM |
| 4014 | case 0xFE78: // ARABIC DAMMA ISOLATED FORM |
| 4015 | case 0xFE7A: // ARABIC KASRA ISOLATED FORM |
| 4016 | case 0xFE7C: // ARABIC SHADDA ISOLATED FORM |
| 4017 | case 0xFE7E: // ARABIC SUKUN ISOLATED FORM |
| 4018 | return true; |
| 4019 | default: |
| 4020 | return false; |
| 4021 | } |
| 4022 | } |
| 4023 | |
| 4024 | } |
| 4025 | |
| 4026 | // UAX #31 defines ID_Start as |
| 4027 | // [[:L:][:Nl:][:Other_ID_Start:]--[:Pattern_Syntax:]--[:Pattern_White_Space:]] |
| 4028 | bool IsIdStart(int character) { |
| 4029 | if (IsIdPattern(character)) { |
| 4030 | return false; |
| 4031 | } |
| 4032 | const OtherID oid = OtherIDOfCharacter(character); |
| 4033 | if (oid == OtherID::oidStart) { |
| 4034 | return true; |
| 4035 | } |
| 4036 | const CharacterCategory c = CategoriseCharacter(character); |
| 4037 | return (c == ccLl || c == ccLu || c == ccLt || c == ccLm || c == ccLo |
| 4038 | || c == ccNl); |
| 4039 | } |
| 4040 | |
| 4041 | // UAX #31 defines ID_Continue as |
| 4042 | // [[:ID_Start:][:Mn:][:Mc:][:Nd:][:Pc:][:Other_ID_Continue:]--[:Pattern_Syntax:]--[:Pattern_White_Space:]] |
| 4043 | bool IsIdContinue(int character) { |
| 4044 | if (IsIdPattern(character)) { |
| 4045 | return false; |
| 4046 | } |
| 4047 | const OtherID oid = OtherIDOfCharacter(character); |
| 4048 | if (oid != OtherID::oidNone) { |
| 4049 | return true; |
| 4050 | } |
| 4051 | const CharacterCategory c = CategoriseCharacter(character); |
| 4052 | return (c == ccLl || c == ccLu || c == ccLt || c == ccLm || c == ccLo |
| 4053 | || c == ccNl || c == ccMn || c == ccMc || c == ccNd || c == ccPc); |
| 4054 | } |
| 4055 | |
| 4056 | // XID_Start is ID_Start modified for Normalization Form KC in UAX #31 |
| 4057 | bool IsXidStart(int character) { |
| 4058 | if (OmitXidStart(character)) { |
| 4059 | return false; |
| 4060 | } else { |
| 4061 | return IsIdStart(character); |
| 4062 | } |
| 4063 | } |
| 4064 | |
| 4065 | // XID_Continue is ID_Continue modified for Normalization Form KC in UAX #31 |
| 4066 | bool IsXidContinue(int character) { |
| 4067 | if (OmitXidContinue(character)) { |
| 4068 | return false; |
| 4069 | } else { |
| 4070 | return IsIdContinue(character); |
| 4071 | } |
| 4072 | } |
| 4073 | |
| 4074 | CharacterCategoryMap::CharacterCategoryMap() { |
| 4075 | Optimize(256); |
| 4076 | } |
| 4077 | |
| 4078 | int CharacterCategoryMap::Size() const noexcept { |
| 4079 | return static_cast<int>(dense.size()); |
| 4080 | } |
| 4081 | |
| 4082 | void CharacterCategoryMap::Optimize(int countCharacters) { |
| 4083 | const int characters = std::clamp(countCharacters, 256, maxUnicode + 1); |
| 4084 | dense.resize(characters); |
| 4085 | |
| 4086 | int end = 0; |
| 4087 | int index = 0; |
| 4088 | int current = catRanges[index]; |
| 4089 | ++index; |
| 4090 | do { |
| 4091 | const int next = catRanges[index]; |
| 4092 | const unsigned char category = current & maskCategory; |
| 4093 | current >>= 5; |
| 4094 | end = std::min(characters, next >> 5); |
| 4095 | while (current < end) { |
| 4096 | dense[current++] = category; |
| 4097 | } |
| 4098 | current = next; |
| 4099 | ++index; |
| 4100 | } while (characters > end); |
| 4101 | } |
| 4102 | |
| 4103 | } |
| 4104 | |