1 /* vi:set ts=8 sts=4 sw=4 noet: 2 * 3 * VIM - Vi IMproved by Bram Moolenaar 4 * 5 * Do ":help uganda" in Vim to read copying and usage conditions. 6 * Do ":help credits" in Vim to see a list of people who contributed. 7 * See README.txt for an overview of the Vim source code. 8 */ 9 10 #include "vim.h" 11 12 #ifdef AMIGA 13 # include <time.h> /* for time() */ 14 #endif 15 16 /* 17 * Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred) 18 * It has been changed beyond recognition since then. 19 * 20 * Differences between version 7.4 and 8.x can be found with ":help version8". 21 * Differences between version 6.4 and 7.x can be found with ":help version7". 22 * Differences between version 5.8 and 6.x can be found with ":help version6". 23 * Differences between version 4.x and 5.x can be found with ":help version5". 24 * Differences between version 3.0 and 4.x can be found with ":help version4". 25 * All the remarks about older versions have been removed, they are not very 26 * interesting. 27 */ 28 29 #include "version.h" 30 31 char *Version = VIM_VERSION_SHORT; 32 static char *mediumVersion = VIM_VERSION_MEDIUM; 33 34 #if defined(HAVE_DATE_TIME) || defined(PROTO) 35 # if (defined(VMS) && defined(VAXC)) || defined(PROTO) 36 char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__) 37 + sizeof(__TIME__) + 3]; 38 39 void 40 make_version(void) 41 { 42 /* 43 * Construct the long version string. Necessary because 44 * VAX C can't catenate strings in the preprocessor. 45 */ 46 strcpy(longVersion, VIM_VERSION_LONG_DATE); 47 strcat(longVersion, __DATE__); 48 strcat(longVersion, " "); 49 strcat(longVersion, __TIME__); 50 strcat(longVersion, ")"); 51 } 52 # else 53 char *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")"; 54 # endif 55 #else 56 char *longVersion = VIM_VERSION_LONG; 57 #endif 58 59 static void list_features(void); 60 static void version_msg(char *s); 61 62 static char *(features[]) = 63 { 64 #ifdef HAVE_ACL 65 "+acl", 66 #else 67 "-acl", 68 #endif 69 #ifdef AMIGA /* only for Amiga systems */ 70 # ifdef FEAT_ARP 71 "+ARP", 72 # else 73 "-ARP", 74 # endif 75 #endif 76 #ifdef FEAT_ARABIC 77 "+arabic", 78 #else 79 "-arabic", 80 #endif 81 "+autocmd", 82 #ifdef FEAT_AUTOSERVERNAME 83 "+autoservername", 84 #else 85 "-autoservername", 86 #endif 87 #ifdef FEAT_BEVAL_GUI 88 "+balloon_eval", 89 #else 90 "-balloon_eval", 91 #endif 92 #ifdef FEAT_BEVAL_TERM 93 "+balloon_eval_term", 94 #else 95 "-balloon_eval_term", 96 #endif 97 #ifdef FEAT_BROWSE 98 "+browse", 99 #else 100 "-browse", 101 #endif 102 #ifdef NO_BUILTIN_TCAPS 103 "-builtin_terms", 104 #endif 105 #ifdef SOME_BUILTIN_TCAPS 106 "+builtin_terms", 107 #endif 108 #ifdef ALL_BUILTIN_TCAPS 109 "++builtin_terms", 110 #endif 111 #ifdef FEAT_BYTEOFF 112 "+byte_offset", 113 #else 114 "-byte_offset", 115 #endif 116 #ifdef FEAT_JOB_CHANNEL 117 "+channel", 118 #else 119 "-channel", 120 #endif 121 #ifdef FEAT_CINDENT 122 "+cindent", 123 #else 124 "-cindent", 125 #endif 126 #ifdef FEAT_CLIENTSERVER 127 "+clientserver", 128 #else 129 "-clientserver", 130 #endif 131 #ifdef FEAT_CLIPBOARD 132 "+clipboard", 133 #else 134 "-clipboard", 135 #endif 136 #ifdef FEAT_CMDL_COMPL 137 "+cmdline_compl", 138 #else 139 "-cmdline_compl", 140 #endif 141 #ifdef FEAT_CMDHIST 142 "+cmdline_hist", 143 #else 144 "-cmdline_hist", 145 #endif 146 #ifdef FEAT_CMDL_INFO 147 "+cmdline_info", 148 #else 149 "-cmdline_info", 150 #endif 151 #ifdef FEAT_COMMENTS 152 "+comments", 153 #else 154 "-comments", 155 #endif 156 #ifdef FEAT_CONCEAL 157 "+conceal", 158 #else 159 "-conceal", 160 #endif 161 #ifdef FEAT_CRYPT 162 "+cryptv", 163 #else 164 "-cryptv", 165 #endif 166 #ifdef FEAT_CSCOPE 167 "+cscope", 168 #else 169 "-cscope", 170 #endif 171 "+cursorbind", 172 #ifdef CURSOR_SHAPE 173 "+cursorshape", 174 #else 175 "-cursorshape", 176 #endif 177 #if defined(FEAT_CON_DIALOG) && defined(FEAT_GUI_DIALOG) 178 "+dialog_con_gui", 179 #else 180 # if defined(FEAT_CON_DIALOG) 181 "+dialog_con", 182 # else 183 # if defined(FEAT_GUI_DIALOG) 184 "+dialog_gui", 185 # else 186 "-dialog", 187 # endif 188 # endif 189 #endif 190 #ifdef FEAT_DIFF 191 "+diff", 192 #else 193 "-diff", 194 #endif 195 #ifdef FEAT_DIGRAPHS 196 "+digraphs", 197 #else 198 "-digraphs", 199 #endif 200 #ifdef FEAT_GUI_W32 201 # ifdef FEAT_DIRECTX 202 "+directx", 203 # else 204 "-directx", 205 # endif 206 #endif 207 #ifdef FEAT_DND 208 "+dnd", 209 #else 210 "-dnd", 211 #endif 212 #ifdef EBCDIC 213 "+ebcdic", 214 #else 215 "-ebcdic", 216 #endif 217 #ifdef FEAT_EMACS_TAGS 218 "+emacs_tags", 219 #else 220 "-emacs_tags", 221 #endif 222 #ifdef FEAT_EVAL 223 "+eval", 224 #else 225 "-eval", 226 #endif 227 "+ex_extra", 228 #ifdef FEAT_SEARCH_EXTRA 229 "+extra_search", 230 #else 231 "-extra_search", 232 #endif 233 #ifdef FEAT_FKMAP 234 "+farsi", 235 #else 236 "-farsi", 237 #endif 238 #ifdef FEAT_SEARCHPATH 239 "+file_in_path", 240 #else 241 "-file_in_path", 242 #endif 243 #ifdef FEAT_FIND_ID 244 "+find_in_path", 245 #else 246 "-find_in_path", 247 #endif 248 #ifdef FEAT_FLOAT 249 "+float", 250 #else 251 "-float", 252 #endif 253 #ifdef FEAT_FOLDING 254 "+folding", 255 #else 256 "-folding", 257 #endif 258 #ifdef FEAT_FOOTER 259 "+footer", 260 #else 261 "-footer", 262 #endif 263 /* only interesting on Unix systems */ 264 #if !defined(USE_SYSTEM) && defined(UNIX) 265 "+fork()", 266 #endif 267 #ifdef FEAT_GETTEXT 268 # ifdef DYNAMIC_GETTEXT 269 "+gettext/dyn", 270 # else 271 "+gettext", 272 # endif 273 #else 274 "-gettext", 275 #endif 276 #ifdef FEAT_HANGULIN 277 "+hangul_input", 278 #else 279 "-hangul_input", 280 #endif 281 #if (defined(HAVE_ICONV_H) && defined(USE_ICONV)) || defined(DYNAMIC_ICONV) 282 # ifdef DYNAMIC_ICONV 283 "+iconv/dyn", 284 # else 285 "+iconv", 286 # endif 287 #else 288 "-iconv", 289 #endif 290 #ifdef FEAT_INS_EXPAND 291 "+insert_expand", 292 #else 293 "-insert_expand", 294 #endif 295 #ifdef FEAT_JOB_CHANNEL 296 "+job", 297 #else 298 "-job", 299 #endif 300 #ifdef FEAT_JUMPLIST 301 "+jumplist", 302 #else 303 "-jumplist", 304 #endif 305 #ifdef FEAT_KEYMAP 306 "+keymap", 307 #else 308 "-keymap", 309 #endif 310 #ifdef FEAT_EVAL 311 "+lambda", 312 #else 313 "-lambda", 314 #endif 315 #ifdef FEAT_LANGMAP 316 "+langmap", 317 #else 318 "-langmap", 319 #endif 320 #ifdef FEAT_LIBCALL 321 "+libcall", 322 #else 323 "-libcall", 324 #endif 325 #ifdef FEAT_LINEBREAK 326 "+linebreak", 327 #else 328 "-linebreak", 329 #endif 330 #ifdef FEAT_LISP 331 "+lispindent", 332 #else 333 "-lispindent", 334 #endif 335 "+listcmds", 336 #ifdef FEAT_LOCALMAP 337 "+localmap", 338 #else 339 "-localmap", 340 #endif 341 #ifdef FEAT_LUA 342 # ifdef DYNAMIC_LUA 343 "+lua/dyn", 344 # else 345 "+lua", 346 # endif 347 #else 348 "-lua", 349 #endif 350 #ifdef FEAT_MENU 351 "+menu", 352 #else 353 "-menu", 354 #endif 355 #ifdef FEAT_SESSION 356 "+mksession", 357 #else 358 "-mksession", 359 #endif 360 #ifdef FEAT_MODIFY_FNAME 361 "+modify_fname", 362 #else 363 "-modify_fname", 364 #endif 365 #ifdef FEAT_MOUSE 366 "+mouse", 367 # ifdef FEAT_MOUSESHAPE 368 "+mouseshape", 369 # else 370 "-mouseshape", 371 # endif 372 # else 373 "-mouse", 374 #endif 375 376 #if defined(UNIX) || defined(VMS) 377 # ifdef FEAT_MOUSE_DEC 378 "+mouse_dec", 379 # else 380 "-mouse_dec", 381 # endif 382 # ifdef FEAT_MOUSE_GPM 383 "+mouse_gpm", 384 # else 385 "-mouse_gpm", 386 # endif 387 # ifdef FEAT_MOUSE_JSB 388 "+mouse_jsbterm", 389 # else 390 "-mouse_jsbterm", 391 # endif 392 # ifdef FEAT_MOUSE_NET 393 "+mouse_netterm", 394 # else 395 "-mouse_netterm", 396 # endif 397 #endif 398 399 #ifdef __QNX__ 400 # ifdef FEAT_MOUSE_PTERM 401 "+mouse_pterm", 402 # else 403 "-mouse_pterm", 404 # endif 405 #endif 406 407 #if defined(UNIX) || defined(VMS) 408 # ifdef FEAT_MOUSE_SGR 409 "+mouse_sgr", 410 # else 411 "-mouse_sgr", 412 # endif 413 # ifdef FEAT_SYSMOUSE 414 "+mouse_sysmouse", 415 # else 416 "-mouse_sysmouse", 417 # endif 418 # ifdef FEAT_MOUSE_URXVT 419 "+mouse_urxvt", 420 # else 421 "-mouse_urxvt", 422 # endif 423 # ifdef FEAT_MOUSE_XTERM 424 "+mouse_xterm", 425 # else 426 "-mouse_xterm", 427 # endif 428 #endif 429 430 #ifdef FEAT_MBYTE_IME 431 # ifdef DYNAMIC_IME 432 "+multi_byte_ime/dyn", 433 # else 434 "+multi_byte_ime", 435 # endif 436 #else 437 # ifdef FEAT_MBYTE 438 "+multi_byte", 439 # else 440 "-multi_byte", 441 # endif 442 #endif 443 #ifdef FEAT_MULTI_LANG 444 "+multi_lang", 445 #else 446 "-multi_lang", 447 #endif 448 #ifdef FEAT_MZSCHEME 449 # ifdef DYNAMIC_MZSCHEME 450 "+mzscheme/dyn", 451 # else 452 "+mzscheme", 453 # endif 454 #else 455 "-mzscheme", 456 #endif 457 #ifdef FEAT_NETBEANS_INTG 458 "+netbeans_intg", 459 #else 460 "-netbeans_intg", 461 #endif 462 #ifdef FEAT_NUM64 463 "+num64", 464 #else 465 "-num64", 466 #endif 467 #ifdef FEAT_GUI_W32 468 # ifdef FEAT_OLE 469 "+ole", 470 # else 471 "-ole", 472 # endif 473 #endif 474 "+packages", 475 #ifdef FEAT_PATH_EXTRA 476 "+path_extra", 477 #else 478 "-path_extra", 479 #endif 480 #ifdef FEAT_PERL 481 # ifdef DYNAMIC_PERL 482 "+perl/dyn", 483 # else 484 "+perl", 485 # endif 486 #else 487 "-perl", 488 #endif 489 #ifdef FEAT_PERSISTENT_UNDO 490 "+persistent_undo", 491 #else 492 "-persistent_undo", 493 #endif 494 #ifdef FEAT_PRINTER 495 # ifdef FEAT_POSTSCRIPT 496 "+postscript", 497 # else 498 "-postscript", 499 # endif 500 "+printer", 501 #else 502 "-printer", 503 #endif 504 #ifdef FEAT_PROFILE 505 "+profile", 506 #else 507 "-profile", 508 #endif 509 #ifdef FEAT_PYTHON 510 # ifdef DYNAMIC_PYTHON 511 "+python/dyn", 512 # else 513 "+python", 514 # endif 515 #else 516 "-python", 517 #endif 518 #ifdef FEAT_PYTHON3 519 # ifdef DYNAMIC_PYTHON3 520 "+python3/dyn", 521 # else 522 "+python3", 523 # endif 524 #else 525 "-python3", 526 #endif 527 #ifdef FEAT_QUICKFIX 528 "+quickfix", 529 #else 530 "-quickfix", 531 #endif 532 #ifdef FEAT_RELTIME 533 "+reltime", 534 #else 535 "-reltime", 536 #endif 537 #ifdef FEAT_RIGHTLEFT 538 "+rightleft", 539 #else 540 "-rightleft", 541 #endif 542 #ifdef FEAT_RUBY 543 # ifdef DYNAMIC_RUBY 544 "+ruby/dyn", 545 # else 546 "+ruby", 547 # endif 548 #else 549 "-ruby", 550 #endif 551 "+scrollbind", 552 #ifdef FEAT_SIGNS 553 "+signs", 554 #else 555 "-signs", 556 #endif 557 #ifdef FEAT_SMARTINDENT 558 "+smartindent", 559 #else 560 "-smartindent", 561 #endif 562 #ifdef STARTUPTIME 563 "+startuptime", 564 #else 565 "-startuptime", 566 #endif 567 #ifdef FEAT_STL_OPT 568 "+statusline", 569 #else 570 "-statusline", 571 #endif 572 #ifdef FEAT_SUN_WORKSHOP 573 "+sun_workshop", 574 #else 575 "-sun_workshop", 576 #endif 577 #ifdef FEAT_SYN_HL 578 "+syntax", 579 #else 580 "-syntax", 581 #endif 582 /* only interesting on Unix systems */ 583 #if defined(USE_SYSTEM) && defined(UNIX) 584 "+system()", 585 #endif 586 #ifdef FEAT_TAG_BINS 587 "+tag_binary", 588 #else 589 "-tag_binary", 590 #endif 591 #ifdef FEAT_TAG_OLDSTATIC 592 "+tag_old_static", 593 #else 594 "-tag_old_static", 595 #endif 596 #ifdef FEAT_TAG_ANYWHITE 597 "+tag_any_white", 598 #else 599 "-tag_any_white", 600 #endif 601 #ifdef FEAT_TCL 602 # ifdef DYNAMIC_TCL 603 "+tcl/dyn", 604 # else 605 "+tcl", 606 # endif 607 #else 608 "-tcl", 609 #endif 610 #ifdef FEAT_TERMGUICOLORS 611 "+termguicolors", 612 #else 613 "-termguicolors", 614 #endif 615 #ifdef FEAT_TERMINAL 616 "+terminal", 617 #else 618 "-terminal", 619 #endif 620 #if defined(UNIX) 621 /* only Unix can have terminfo instead of termcap */ 622 # ifdef TERMINFO 623 "+terminfo", 624 # else 625 "-terminfo", 626 # endif 627 #else /* unix always includes termcap support */ 628 # ifdef HAVE_TGETENT 629 "+tgetent", 630 # else 631 "-tgetent", 632 # endif 633 #endif 634 #ifdef FEAT_TERMRESPONSE 635 "+termresponse", 636 #else 637 "-termresponse", 638 #endif 639 #ifdef FEAT_TEXTOBJ 640 "+textobjects", 641 #else 642 "-textobjects", 643 #endif 644 #ifdef FEAT_TIMERS 645 "+timers", 646 #else 647 "-timers", 648 #endif 649 #ifdef FEAT_TITLE 650 "+title", 651 #else 652 "-title", 653 #endif 654 #ifdef FEAT_TOOLBAR 655 "+toolbar", 656 #else 657 "-toolbar", 658 #endif 659 #ifdef FEAT_USR_CMDS 660 "+user_commands", 661 #else 662 "-user_commands", 663 #endif 664 "+vertsplit", 665 #ifdef FEAT_VIRTUALEDIT 666 "+virtualedit", 667 #else 668 "-virtualedit", 669 #endif 670 "+visual", 671 #ifdef FEAT_VISUALEXTRA 672 "+visualextra", 673 #else 674 "-visualextra", 675 #endif 676 #ifdef FEAT_VIMINFO 677 "+viminfo", 678 #else 679 "-viminfo", 680 #endif 681 #ifdef FEAT_VREPLACE 682 "+vreplace", 683 #else 684 "-vreplace", 685 #endif 686 #ifdef WIN3264 687 # ifdef FEAT_VTP 688 "+vtp", 689 # else 690 "-vtp", 691 # endif 692 #endif 693 #ifdef FEAT_WILDIGN 694 "+wildignore", 695 #else 696 "-wildignore", 697 #endif 698 #ifdef FEAT_WILDMENU 699 "+wildmenu", 700 #else 701 "-wildmenu", 702 #endif 703 "+windows", 704 #ifdef FEAT_WRITEBACKUP 705 "+writebackup", 706 #else 707 "-writebackup", 708 #endif 709 #if defined(UNIX) || defined(VMS) 710 # ifdef FEAT_X11 711 "+X11", 712 # else 713 "-X11", 714 # endif 715 #endif 716 #ifdef FEAT_XFONTSET 717 "+xfontset", 718 #else 719 "-xfontset", 720 #endif 721 #ifdef FEAT_XIM 722 "+xim", 723 #else 724 "-xim", 725 #endif 726 #ifdef WIN3264 727 # ifdef FEAT_XPM_W32 728 "+xpm_w32", 729 # else 730 "-xpm_w32", 731 # endif 732 #else 733 # ifdef HAVE_XPM 734 "+xpm", 735 # else 736 "-xpm", 737 # endif 738 #endif 739 #if defined(UNIX) || defined(VMS) 740 # ifdef USE_XSMP_INTERACT 741 "+xsmp_interact", 742 # else 743 # ifdef USE_XSMP 744 "+xsmp", 745 # else 746 "-xsmp", 747 # endif 748 # endif 749 # ifdef FEAT_XCLIPBOARD 750 "+xterm_clipboard", 751 # else 752 "-xterm_clipboard", 753 # endif 754 #endif 755 #ifdef FEAT_XTERM_SAVE 756 "+xterm_save", 757 #else 758 "-xterm_save", 759 #endif 760 NULL 761 }; 762 763 static int included_patches[] = 764 { /* Add new patch number below this line */ 765 /**/ 766 1666, 767 /**/ 768 1665, 769 /**/ 770 1664, 771 /**/ 772 1663, 773 /**/ 774 1662, 775 /**/ 776 1661, 777 /**/ 778 1660, 779 /**/ 780 1659, 781 /**/ 782 1658, 783 /**/ 784 1657, 785 /**/ 786 1656, 787 /**/ 788 1655, 789 /**/ 790 1654, 791 /**/ 792 1653, 793 /**/ 794 1652, 795 /**/ 796 1651, 797 /**/ 798 1650, 799 /**/ 800 1649, 801 /**/ 802 1648, 803 /**/ 804 1647, 805 /**/ 806 1646, 807 /**/ 808 1645, 809 /**/ 810 1644, 811 /**/ 812 1643, 813 /**/ 814 1642, 815 /**/ 816 1641, 817 /**/ 818 1640, 819 /**/ 820 1639, 821 /**/ 822 1638, 823 /**/ 824 1637, 825 /**/ 826 1636, 827 /**/ 828 1635, 829 /**/ 830 1634, 831 /**/ 832 1633, 833 /**/ 834 1632, 835 /**/ 836 1631, 837 /**/ 838 1630, 839 /**/ 840 1629, 841 /**/ 842 1628, 843 /**/ 844 1627, 845 /**/ 846 1626, 847 /**/ 848 1625, 849 /**/ 850 1624, 851 /**/ 852 1623, 853 /**/ 854 1622, 855 /**/ 856 1621, 857 /**/ 858 1620, 859 /**/ 860 1619, 861 /**/ 862 1618, 863 /**/ 864 1617, 865 /**/ 866 1616, 867 /**/ 868 1615, 869 /**/ 870 1614, 871 /**/ 872 1613, 873 /**/ 874 1612, 875 /**/ 876 1611, 877 /**/ 878 1610, 879 /**/ 880 1609, 881 /**/ 882 1608, 883 /**/ 884 1607, 885 /**/ 886 1606, 887 /**/ 888 1605, 889 /**/ 890 1604, 891 /**/ 892 1603, 893 /**/ 894 1602, 895 /**/ 896 1601, 897 /**/ 898 1600, 899 /**/ 900 1599, 901 /**/ 902 1598, 903 /**/ 904 1597, 905 /**/ 906 1596, 907 /**/ 908 1595, 909 /**/ 910 1594, 911 /**/ 912 1593, 913 /**/ 914 1592, 915 /**/ 916 1591, 917 /**/ 918 1590, 919 /**/ 920 1589, 921 /**/ 922 1588, 923 /**/ 924 1587, 925 /**/ 926 1586, 927 /**/ 928 1585, 929 /**/ 930 1584, 931 /**/ 932 1583, 933 /**/ 934 1582, 935 /**/ 936 1581, 937 /**/ 938 1580, 939 /**/ 940 1579, 941 /**/ 942 1578, 943 /**/ 944 1577, 945 /**/ 946 1576, 947 /**/ 948 1575, 949 /**/ 950 1574, 951 /**/ 952 1573, 953 /**/ 954 1572, 955 /**/ 956 1571, 957 /**/ 958 1570, 959 /**/ 960 1569, 961 /**/ 962 1568, 963 /**/ 964 1567, 965 /**/ 966 1566, 967 /**/ 968 1565, 969 /**/ 970 1564, 971 /**/ 972 1563, 973 /**/ 974 1562, 975 /**/ 976 1561, 977 /**/ 978 1560, 979 /**/ 980 1559, 981 /**/ 982 1558, 983 /**/ 984 1557, 985 /**/ 986 1556, 987 /**/ 988 1555, 989 /**/ 990 1554, 991 /**/ 992 1553, 993 /**/ 994 1552, 995 /**/ 996 1551, 997 /**/ 998 1550, 999 /**/ 1000 1549, 1001 /**/ 1002 1548, 1003 /**/ 1004 1547, 1005 /**/ 1006 1546, 1007 /**/ 1008 1545, 1009 /**/ 1010 1544, 1011 /**/ 1012 1543, 1013 /**/ 1014 1542, 1015 /**/ 1016 1541, 1017 /**/ 1018 1540, 1019 /**/ 1020 1539, 1021 /**/ 1022 1538, 1023 /**/ 1024 1537, 1025 /**/ 1026 1536, 1027 /**/ 1028 1535, 1029 /**/ 1030 1534, 1031 /**/ 1032 1533, 1033 /**/ 1034 1532, 1035 /**/ 1036 1531, 1037 /**/ 1038 1530, 1039 /**/ 1040 1529, 1041 /**/ 1042 1528, 1043 /**/ 1044 1527, 1045 /**/ 1046 1526, 1047 /**/ 1048 1525, 1049 /**/ 1050 1524, 1051 /**/ 1052 1523, 1053 /**/ 1054 1522, 1055 /**/ 1056 1521, 1057 /**/ 1058 1520, 1059 /**/ 1060 1519, 1061 /**/ 1062 1518, 1063 /**/ 1064 1517, 1065 /**/ 1066 1516, 1067 /**/ 1068 1515, 1069 /**/ 1070 1514, 1071 /**/ 1072 1513, 1073 /**/ 1074 1512, 1075 /**/ 1076 1511, 1077 /**/ 1078 1510, 1079 /**/ 1080 1509, 1081 /**/ 1082 1508, 1083 /**/ 1084 1507, 1085 /**/ 1086 1506, 1087 /**/ 1088 1505, 1089 /**/ 1090 1504, 1091 /**/ 1092 1503, 1093 /**/ 1094 1502, 1095 /**/ 1096 1501, 1097 /**/ 1098 1500, 1099 /**/ 1100 1499, 1101 /**/ 1102 1498, 1103 /**/ 1104 1497, 1105 /**/ 1106 1496, 1107 /**/ 1108 1495, 1109 /**/ 1110 1494, 1111 /**/ 1112 1493, 1113 /**/ 1114 1492, 1115 /**/ 1116 1491, 1117 /**/ 1118 1490, 1119 /**/ 1120 1489, 1121 /**/ 1122 1488, 1123 /**/ 1124 1487, 1125 /**/ 1126 1486, 1127 /**/ 1128 1485, 1129 /**/ 1130 1484, 1131 /**/ 1132 1483, 1133 /**/ 1134 1482, 1135 /**/ 1136 1481, 1137 /**/ 1138 1480, 1139 /**/ 1140 1479, 1141 /**/ 1142 1478, 1143 /**/ 1144 1477, 1145 /**/ 1146 1476, 1147 /**/ 1148 1475, 1149 /**/ 1150 1474, 1151 /**/ 1152 1473, 1153 /**/ 1154 1472, 1155 /**/ 1156 1471, 1157 /**/ 1158 1470, 1159 /**/ 1160 1469, 1161 /**/ 1162 1468, 1163 /**/ 1164 1467, 1165 /**/ 1166 1466, 1167 /**/ 1168 1465, 1169 /**/ 1170 1464, 1171 /**/ 1172 1463, 1173 /**/ 1174 1462, 1175 /**/ 1176 1461, 1177 /**/ 1178 1460, 1179 /**/ 1180 1459, 1181 /**/ 1182 1458, 1183 /**/ 1184 1457, 1185 /**/ 1186 1456, 1187 /**/ 1188 1455, 1189 /**/ 1190 1454, 1191 /**/ 1192 1453, 1193 /**/ 1194 1452, 1195 /**/ 1196 1451, 1197 /**/ 1198 1450, 1199 /**/ 1200 1449, 1201 /**/ 1202 1448, 1203 /**/ 1204 1447, 1205 /**/ 1206 1446, 1207 /**/ 1208 1445, 1209 /**/ 1210 1444, 1211 /**/ 1212 1443, 1213 /**/ 1214 1442, 1215 /**/ 1216 1441, 1217 /**/ 1218 1440, 1219 /**/ 1220 1439, 1221 /**/ 1222 1438, 1223 /**/ 1224 1437, 1225 /**/ 1226 1436, 1227 /**/ 1228 1435, 1229 /**/ 1230 1434, 1231 /**/ 1232 1433, 1233 /**/ 1234 1432, 1235 /**/ 1236 1431, 1237 /**/ 1238 1430, 1239 /**/ 1240 1429, 1241 /**/ 1242 1428, 1243 /**/ 1244 1427, 1245 /**/ 1246 1426, 1247 /**/ 1248 1425, 1249 /**/ 1250 1424, 1251 /**/ 1252 1423, 1253 /**/ 1254 1422, 1255 /**/ 1256 1421, 1257 /**/ 1258 1420, 1259 /**/ 1260 1419, 1261 /**/ 1262 1418, 1263 /**/ 1264 1417, 1265 /**/ 1266 1416, 1267 /**/ 1268 1415, 1269 /**/ 1270 1414, 1271 /**/ 1272 1413, 1273 /**/ 1274 1412, 1275 /**/ 1276 1411, 1277 /**/ 1278 1410, 1279 /**/ 1280 1409, 1281 /**/ 1282 1408, 1283 /**/ 1284 1407, 1285 /**/ 1286 1406, 1287 /**/ 1288 1405, 1289 /**/ 1290 1404, 1291 /**/ 1292 1403, 1293 /**/ 1294 1402, 1295 /**/ 1296 1401, 1297 /**/ 1298 1400, 1299 /**/ 1300 1399, 1301 /**/ 1302 1398, 1303 /**/ 1304 1397, 1305 /**/ 1306 1396, 1307 /**/ 1308 1395, 1309 /**/ 1310 1394, 1311 /**/ 1312 1393, 1313 /**/ 1314 1392, 1315 /**/ 1316 1391, 1317 /**/ 1318 1390, 1319 /**/ 1320 1389, 1321 /**/ 1322 1388, 1323 /**/ 1324 1387, 1325 /**/ 1326 1386, 1327 /**/ 1328 1385, 1329 /**/ 1330 1384, 1331 /**/ 1332 1383, 1333 /**/ 1334 1382, 1335 /**/ 1336 1381, 1337 /**/ 1338 1380, 1339 /**/ 1340 1379, 1341 /**/ 1342 1378, 1343 /**/ 1344 1377, 1345 /**/ 1346 1376, 1347 /**/ 1348 1375, 1349 /**/ 1350 1374, 1351 /**/ 1352 1373, 1353 /**/ 1354 1372, 1355 /**/ 1356 1371, 1357 /**/ 1358 1370, 1359 /**/ 1360 1369, 1361 /**/ 1362 1368, 1363 /**/ 1364 1367, 1365 /**/ 1366 1366, 1367 /**/ 1368 1365, 1369 /**/ 1370 1364, 1371 /**/ 1372 1363, 1373 /**/ 1374 1362, 1375 /**/ 1376 1361, 1377 /**/ 1378 1360, 1379 /**/ 1380 1359, 1381 /**/ 1382 1358, 1383 /**/ 1384 1357, 1385 /**/ 1386 1356, 1387 /**/ 1388 1355, 1389 /**/ 1390 1354, 1391 /**/ 1392 1353, 1393 /**/ 1394 1352, 1395 /**/ 1396 1351, 1397 /**/ 1398 1350, 1399 /**/ 1400 1349, 1401 /**/ 1402 1348, 1403 /**/ 1404 1347, 1405 /**/ 1406 1346, 1407 /**/ 1408 1345, 1409 /**/ 1410 1344, 1411 /**/ 1412 1343, 1413 /**/ 1414 1342, 1415 /**/ 1416 1341, 1417 /**/ 1418 1340, 1419 /**/ 1420 1339, 1421 /**/ 1422 1338, 1423 /**/ 1424 1337, 1425 /**/ 1426 1336, 1427 /**/ 1428 1335, 1429 /**/ 1430 1334, 1431 /**/ 1432 1333, 1433 /**/ 1434 1332, 1435 /**/ 1436 1331, 1437 /**/ 1438 1330, 1439 /**/ 1440 1329, 1441 /**/ 1442 1328, 1443 /**/ 1444 1327, 1445 /**/ 1446 1326, 1447 /**/ 1448 1325, 1449 /**/ 1450 1324, 1451 /**/ 1452 1323, 1453 /**/ 1454 1322, 1455 /**/ 1456 1321, 1457 /**/ 1458 1320, 1459 /**/ 1460 1319, 1461 /**/ 1462 1318, 1463 /**/ 1464 1317, 1465 /**/ 1466 1316, 1467 /**/ 1468 1315, 1469 /**/ 1470 1314, 1471 /**/ 1472 1313, 1473 /**/ 1474 1312, 1475 /**/ 1476 1311, 1477 /**/ 1478 1310, 1479 /**/ 1480 1309, 1481 /**/ 1482 1308, 1483 /**/ 1484 1307, 1485 /**/ 1486 1306, 1487 /**/ 1488 1305, 1489 /**/ 1490 1304, 1491 /**/ 1492 1303, 1493 /**/ 1494 1302, 1495 /**/ 1496 1301, 1497 /**/ 1498 1300, 1499 /**/ 1500 1299, 1501 /**/ 1502 1298, 1503 /**/ 1504 1297, 1505 /**/ 1506 1296, 1507 /**/ 1508 1295, 1509 /**/ 1510 1294, 1511 /**/ 1512 1293, 1513 /**/ 1514 1292, 1515 /**/ 1516 1291, 1517 /**/ 1518 1290, 1519 /**/ 1520 1289, 1521 /**/ 1522 1288, 1523 /**/ 1524 1287, 1525 /**/ 1526 1286, 1527 /**/ 1528 1285, 1529 /**/ 1530 1284, 1531 /**/ 1532 1283, 1533 /**/ 1534 1282, 1535 /**/ 1536 1281, 1537 /**/ 1538 1280, 1539 /**/ 1540 1279, 1541 /**/ 1542 1278, 1543 /**/ 1544 1277, 1545 /**/ 1546 1276, 1547 /**/ 1548 1275, 1549 /**/ 1550 1274, 1551 /**/ 1552 1273, 1553 /**/ 1554 1272, 1555 /**/ 1556 1271, 1557 /**/ 1558 1270, 1559 /**/ 1560 1269, 1561 /**/ 1562 1268, 1563 /**/ 1564 1267, 1565 /**/ 1566 1266, 1567 /**/ 1568 1265, 1569 /**/ 1570 1264, 1571 /**/ 1572 1263, 1573 /**/ 1574 1262, 1575 /**/ 1576 1261, 1577 /**/ 1578 1260, 1579 /**/ 1580 1259, 1581 /**/ 1582 1258, 1583 /**/ 1584 1257, 1585 /**/ 1586 1256, 1587 /**/ 1588 1255, 1589 /**/ 1590 1254, 1591 /**/ 1592 1253, 1593 /**/ 1594 1252, 1595 /**/ 1596 1251, 1597 /**/ 1598 1250, 1599 /**/ 1600 1249, 1601 /**/ 1602 1248, 1603 /**/ 1604 1247, 1605 /**/ 1606 1246, 1607 /**/ 1608 1245, 1609 /**/ 1610 1244, 1611 /**/ 1612 1243, 1613 /**/ 1614 1242, 1615 /**/ 1616 1241, 1617 /**/ 1618 1240, 1619 /**/ 1620 1239, 1621 /**/ 1622 1238, 1623 /**/ 1624 1237, 1625 /**/ 1626 1236, 1627 /**/ 1628 1235, 1629 /**/ 1630 1234, 1631 /**/ 1632 1233, 1633 /**/ 1634 1232, 1635 /**/ 1636 1231, 1637 /**/ 1638 1230, 1639 /**/ 1640 1229, 1641 /**/ 1642 1228, 1643 /**/ 1644 1227, 1645 /**/ 1646 1226, 1647 /**/ 1648 1225, 1649 /**/ 1650 1224, 1651 /**/ 1652 1223, 1653 /**/ 1654 1222, 1655 /**/ 1656 1221, 1657 /**/ 1658 1220, 1659 /**/ 1660 1219, 1661 /**/ 1662 1218, 1663 /**/ 1664 1217, 1665 /**/ 1666 1216, 1667 /**/ 1668 1215, 1669 /**/ 1670 1214, 1671 /**/ 1672 1213, 1673 /**/ 1674 1212, 1675 /**/ 1676 1211, 1677 /**/ 1678 1210, 1679 /**/ 1680 1209, 1681 /**/ 1682 1208, 1683 /**/ 1684 1207, 1685 /**/ 1686 1206, 1687 /**/ 1688 1205, 1689 /**/ 1690 1204, 1691 /**/ 1692 1203, 1693 /**/ 1694 1202, 1695 /**/ 1696 1201, 1697 /**/ 1698 1200, 1699 /**/ 1700 1199, 1701 /**/ 1702 1198, 1703 /**/ 1704 1197, 1705 /**/ 1706 1196, 1707 /**/ 1708 1195, 1709 /**/ 1710 1194, 1711 /**/ 1712 1193, 1713 /**/ 1714 1192, 1715 /**/ 1716 1191, 1717 /**/ 1718 1190, 1719 /**/ 1720 1189, 1721 /**/ 1722 1188, 1723 /**/ 1724 1187, 1725 /**/ 1726 1186, 1727 /**/ 1728 1185, 1729 /**/ 1730 1184, 1731 /**/ 1732 1183, 1733 /**/ 1734 1182, 1735 /**/ 1736 1181, 1737 /**/ 1738 1180, 1739 /**/ 1740 1179, 1741 /**/ 1742 1178, 1743 /**/ 1744 1177, 1745 /**/ 1746 1176, 1747 /**/ 1748 1175, 1749 /**/ 1750 1174, 1751 /**/ 1752 1173, 1753 /**/ 1754 1172, 1755 /**/ 1756 1171, 1757 /**/ 1758 1170, 1759 /**/ 1760 1169, 1761 /**/ 1762 1168, 1763 /**/ 1764 1167, 1765 /**/ 1766 1166, 1767 /**/ 1768 1165, 1769 /**/ 1770 1164, 1771 /**/ 1772 1163, 1773 /**/ 1774 1162, 1775 /**/ 1776 1161, 1777 /**/ 1778 1160, 1779 /**/ 1780 1159, 1781 /**/ 1782 1158, 1783 /**/ 1784 1157, 1785 /**/ 1786 1156, 1787 /**/ 1788 1155, 1789 /**/ 1790 1154, 1791 /**/ 1792 1153, 1793 /**/ 1794 1152, 1795 /**/ 1796 1151, 1797 /**/ 1798 1150, 1799 /**/ 1800 1149, 1801 /**/ 1802 1148, 1803 /**/ 1804 1147, 1805 /**/ 1806 1146, 1807 /**/ 1808 1145, 1809 /**/ 1810 1144, 1811 /**/ 1812 1143, 1813 /**/ 1814 1142, 1815 /**/ 1816 1141, 1817 /**/ 1818 1140, 1819 /**/ 1820 1139, 1821 /**/ 1822 1138, 1823 /**/ 1824 1137, 1825 /**/ 1826 1136, 1827 /**/ 1828 1135, 1829 /**/ 1830 1134, 1831 /**/ 1832 1133, 1833 /**/ 1834 1132, 1835 /**/ 1836 1131, 1837 /**/ 1838 1130, 1839 /**/ 1840 1129, 1841 /**/ 1842 1128, 1843 /**/ 1844 1127, 1845 /**/ 1846 1126, 1847 /**/ 1848 1125, 1849 /**/ 1850 1124, 1851 /**/ 1852 1123, 1853 /**/ 1854 1122, 1855 /**/ 1856 1121, 1857 /**/ 1858 1120, 1859 /**/ 1860 1119, 1861 /**/ 1862 1118, 1863 /**/ 1864 1117, 1865 /**/ 1866 1116, 1867 /**/ 1868 1115, 1869 /**/ 1870 1114, 1871 /**/ 1872 1113, 1873 /**/ 1874 1112, 1875 /**/ 1876 1111, 1877 /**/ 1878 1110, 1879 /**/ 1880 1109, 1881 /**/ 1882 1108, 1883 /**/ 1884 1107, 1885 /**/ 1886 1106, 1887 /**/ 1888 1105, 1889 /**/ 1890 1104, 1891 /**/ 1892 1103, 1893 /**/ 1894 1102, 1895 /**/ 1896 1101, 1897 /**/ 1898 1100, 1899 /**/ 1900 1099, 1901 /**/ 1902 1098, 1903 /**/ 1904 1097, 1905 /**/ 1906 1096, 1907 /**/ 1908 1095, 1909 /**/ 1910 1094, 1911 /**/ 1912 1093, 1913 /**/ 1914 1092, 1915 /**/ 1916 1091, 1917 /**/ 1918 1090, 1919 /**/ 1920 1089, 1921 /**/ 1922 1088, 1923 /**/ 1924 1087, 1925 /**/ 1926 1086, 1927 /**/ 1928 1085, 1929 /**/ 1930 1084, 1931 /**/ 1932 1083, 1933 /**/ 1934 1082, 1935 /**/ 1936 1081, 1937 /**/ 1938 1080, 1939 /**/ 1940 1079, 1941 /**/ 1942 1078, 1943 /**/ 1944 1077, 1945 /**/ 1946 1076, 1947 /**/ 1948 1075, 1949 /**/ 1950 1074, 1951 /**/ 1952 1073, 1953 /**/ 1954 1072, 1955 /**/ 1956 1071, 1957 /**/ 1958 1070, 1959 /**/ 1960 1069, 1961 /**/ 1962 1068, 1963 /**/ 1964 1067, 1965 /**/ 1966 1066, 1967 /**/ 1968 1065, 1969 /**/ 1970 1064, 1971 /**/ 1972 1063, 1973 /**/ 1974 1062, 1975 /**/ 1976 1061, 1977 /**/ 1978 1060, 1979 /**/ 1980 1059, 1981 /**/ 1982 1058, 1983 /**/ 1984 1057, 1985 /**/ 1986 1056, 1987 /**/ 1988 1055, 1989 /**/ 1990 1054, 1991 /**/ 1992 1053, 1993 /**/ 1994 1052, 1995 /**/ 1996 1051, 1997 /**/ 1998 1050, 1999 /**/ 2000 1049, 2001 /**/ 2002 1048, 2003 /**/ 2004 1047, 2005 /**/ 2006 1046, 2007 /**/ 2008 1045, 2009 /**/ 2010 1044, 2011 /**/ 2012 1043, 2013 /**/ 2014 1042, 2015 /**/ 2016 1041, 2017 /**/ 2018 1040, 2019 /**/ 2020 1039, 2021 /**/ 2022 1038, 2023 /**/ 2024 1037, 2025 /**/ 2026 1036, 2027 /**/ 2028 1035, 2029 /**/ 2030 1034, 2031 /**/ 2032 1033, 2033 /**/ 2034 1032, 2035 /**/ 2036 1031, 2037 /**/ 2038 1030, 2039 /**/ 2040 1029, 2041 /**/ 2042 1028, 2043 /**/ 2044 1027, 2045 /**/ 2046 1026, 2047 /**/ 2048 1025, 2049 /**/ 2050 1024, 2051 /**/ 2052 1023, 2053 /**/ 2054 1022, 2055 /**/ 2056 1021, 2057 /**/ 2058 1020, 2059 /**/ 2060 1019, 2061 /**/ 2062 1018, 2063 /**/ 2064 1017, 2065 /**/ 2066 1016, 2067 /**/ 2068 1015, 2069 /**/ 2070 1014, 2071 /**/ 2072 1013, 2073 /**/ 2074 1012, 2075 /**/ 2076 1011, 2077 /**/ 2078 1010, 2079 /**/ 2080 1009, 2081 /**/ 2082 1008, 2083 /**/ 2084 1007, 2085 /**/ 2086 1006, 2087 /**/ 2088 1005, 2089 /**/ 2090 1004, 2091 /**/ 2092 1003, 2093 /**/ 2094 1002, 2095 /**/ 2096 1001, 2097 /**/ 2098 1000, 2099 /**/ 2100 999, 2101 /**/ 2102 998, 2103 /**/ 2104 997, 2105 /**/ 2106 996, 2107 /**/ 2108 995, 2109 /**/ 2110 994, 2111 /**/ 2112 993, 2113 /**/ 2114 992, 2115 /**/ 2116 991, 2117 /**/ 2118 990, 2119 /**/ 2120 989, 2121 /**/ 2122 988, 2123 /**/ 2124 987, 2125 /**/ 2126 986, 2127 /**/ 2128 985, 2129 /**/ 2130 984, 2131 /**/ 2132 983, 2133 /**/ 2134 982, 2135 /**/ 2136 981, 2137 /**/ 2138 980, 2139 /**/ 2140 979, 2141 /**/ 2142 978, 2143 /**/ 2144 977, 2145 /**/ 2146 976, 2147 /**/ 2148 975, 2149 /**/ 2150 974, 2151 /**/ 2152 973, 2153 /**/ 2154 972, 2155 /**/ 2156 971, 2157 /**/ 2158 970, 2159 /**/ 2160 969, 2161 /**/ 2162 968, 2163 /**/ 2164 967, 2165 /**/ 2166 966, 2167 /**/ 2168 965, 2169 /**/ 2170 964, 2171 /**/ 2172 963, 2173 /**/ 2174 962, 2175 /**/ 2176 961, 2177 /**/ 2178 960, 2179 /**/ 2180 959, 2181 /**/ 2182 958, 2183 /**/ 2184 957, 2185 /**/ 2186 956, 2187 /**/ 2188 955, 2189 /**/ 2190 954, 2191 /**/ 2192 953, 2193 /**/ 2194 952, 2195 /**/ 2196 951, 2197 /**/ 2198 950, 2199 /**/ 2200 949, 2201 /**/ 2202 948, 2203 /**/ 2204 947, 2205 /**/ 2206 946, 2207 /**/ 2208 945, 2209 /**/ 2210 944, 2211 /**/ 2212 943, 2213 /**/ 2214 942, 2215 /**/ 2216 941, 2217 /**/ 2218 940, 2219 /**/ 2220 939, 2221 /**/ 2222 938, 2223 /**/ 2224 937, 2225 /**/ 2226 936, 2227 /**/ 2228 935, 2229 /**/ 2230 934, 2231 /**/ 2232 933, 2233 /**/ 2234 932, 2235 /**/ 2236 931, 2237 /**/ 2238 930, 2239 /**/ 2240 929, 2241 /**/ 2242 928, 2243 /**/ 2244 927, 2245 /**/ 2246 926, 2247 /**/ 2248 925, 2249 /**/ 2250 924, 2251 /**/ 2252 923, 2253 /**/ 2254 922, 2255 /**/ 2256 921, 2257 /**/ 2258 920, 2259 /**/ 2260 919, 2261 /**/ 2262 918, 2263 /**/ 2264 917, 2265 /**/ 2266 916, 2267 /**/ 2268 915, 2269 /**/ 2270 914, 2271 /**/ 2272 913, 2273 /**/ 2274 912, 2275 /**/ 2276 911, 2277 /**/ 2278 910, 2279 /**/ 2280 909, 2281 /**/ 2282 908, 2283 /**/ 2284 907, 2285 /**/ 2286 906, 2287 /**/ 2288 905, 2289 /**/ 2290 904, 2291 /**/ 2292 903, 2293 /**/ 2294 902, 2295 /**/ 2296 901, 2297 /**/ 2298 900, 2299 /**/ 2300 899, 2301 /**/ 2302 898, 2303 /**/ 2304 897, 2305 /**/ 2306 896, 2307 /**/ 2308 895, 2309 /**/ 2310 894, 2311 /**/ 2312 893, 2313 /**/ 2314 892, 2315 /**/ 2316 891, 2317 /**/ 2318 890, 2319 /**/ 2320 889, 2321 /**/ 2322 888, 2323 /**/ 2324 887, 2325 /**/ 2326 886, 2327 /**/ 2328 885, 2329 /**/ 2330 884, 2331 /**/ 2332 883, 2333 /**/ 2334 882, 2335 /**/ 2336 881, 2337 /**/ 2338 880, 2339 /**/ 2340 879, 2341 /**/ 2342 878, 2343 /**/ 2344 877, 2345 /**/ 2346 876, 2347 /**/ 2348 875, 2349 /**/ 2350 874, 2351 /**/ 2352 873, 2353 /**/ 2354 872, 2355 /**/ 2356 871, 2357 /**/ 2358 870, 2359 /**/ 2360 869, 2361 /**/ 2362 868, 2363 /**/ 2364 867, 2365 /**/ 2366 866, 2367 /**/ 2368 865, 2369 /**/ 2370 864, 2371 /**/ 2372 863, 2373 /**/ 2374 862, 2375 /**/ 2376 861, 2377 /**/ 2378 860, 2379 /**/ 2380 859, 2381 /**/ 2382 858, 2383 /**/ 2384 857, 2385 /**/ 2386 856, 2387 /**/ 2388 855, 2389 /**/ 2390 854, 2391 /**/ 2392 853, 2393 /**/ 2394 852, 2395 /**/ 2396 851, 2397 /**/ 2398 850, 2399 /**/ 2400 849, 2401 /**/ 2402 848, 2403 /**/ 2404 847, 2405 /**/ 2406 846, 2407 /**/ 2408 845, 2409 /**/ 2410 844, 2411 /**/ 2412 843, 2413 /**/ 2414 842, 2415 /**/ 2416 841, 2417 /**/ 2418 840, 2419 /**/ 2420 839, 2421 /**/ 2422 838, 2423 /**/ 2424 837, 2425 /**/ 2426 836, 2427 /**/ 2428 835, 2429 /**/ 2430 834, 2431 /**/ 2432 833, 2433 /**/ 2434 832, 2435 /**/ 2436 831, 2437 /**/ 2438 830, 2439 /**/ 2440 829, 2441 /**/ 2442 828, 2443 /**/ 2444 827, 2445 /**/ 2446 826, 2447 /**/ 2448 825, 2449 /**/ 2450 824, 2451 /**/ 2452 823, 2453 /**/ 2454 822, 2455 /**/ 2456 821, 2457 /**/ 2458 820, 2459 /**/ 2460 819, 2461 /**/ 2462 818, 2463 /**/ 2464 817, 2465 /**/ 2466 816, 2467 /**/ 2468 815, 2469 /**/ 2470 814, 2471 /**/ 2472 813, 2473 /**/ 2474 812, 2475 /**/ 2476 811, 2477 /**/ 2478 810, 2479 /**/ 2480 809, 2481 /**/ 2482 808, 2483 /**/ 2484 807, 2485 /**/ 2486 806, 2487 /**/ 2488 805, 2489 /**/ 2490 804, 2491 /**/ 2492 803, 2493 /**/ 2494 802, 2495 /**/ 2496 801, 2497 /**/ 2498 800, 2499 /**/ 2500 799, 2501 /**/ 2502 798, 2503 /**/ 2504 797, 2505 /**/ 2506 796, 2507 /**/ 2508 795, 2509 /**/ 2510 794, 2511 /**/ 2512 793, 2513 /**/ 2514 792, 2515 /**/ 2516 791, 2517 /**/ 2518 790, 2519 /**/ 2520 789, 2521 /**/ 2522 788, 2523 /**/ 2524 787, 2525 /**/ 2526 786, 2527 /**/ 2528 785, 2529 /**/ 2530 784, 2531 /**/ 2532 783, 2533 /**/ 2534 782, 2535 /**/ 2536 781, 2537 /**/ 2538 780, 2539 /**/ 2540 779, 2541 /**/ 2542 778, 2543 /**/ 2544 777, 2545 /**/ 2546 776, 2547 /**/ 2548 775, 2549 /**/ 2550 774, 2551 /**/ 2552 773, 2553 /**/ 2554 772, 2555 /**/ 2556 771, 2557 /**/ 2558 770, 2559 /**/ 2560 769, 2561 /**/ 2562 768, 2563 /**/ 2564 767, 2565 /**/ 2566 766, 2567 /**/ 2568 765, 2569 /**/ 2570 764, 2571 /**/ 2572 763, 2573 /**/ 2574 762, 2575 /**/ 2576 761, 2577 /**/ 2578 760, 2579 /**/ 2580 759, 2581 /**/ 2582 758, 2583 /**/ 2584 757, 2585 /**/ 2586 756, 2587 /**/ 2588 755, 2589 /**/ 2590 754, 2591 /**/ 2592 753, 2593 /**/ 2594 752, 2595 /**/ 2596 751, 2597 /**/ 2598 750, 2599 /**/ 2600 749, 2601 /**/ 2602 748, 2603 /**/ 2604 747, 2605 /**/ 2606 746, 2607 /**/ 2608 745, 2609 /**/ 2610 744, 2611 /**/ 2612 743, 2613 /**/ 2614 742, 2615 /**/ 2616 741, 2617 /**/ 2618 740, 2619 /**/ 2620 739, 2621 /**/ 2622 738, 2623 /**/ 2624 737, 2625 /**/ 2626 736, 2627 /**/ 2628 735, 2629 /**/ 2630 734, 2631 /**/ 2632 733, 2633 /**/ 2634 732, 2635 /**/ 2636 731, 2637 /**/ 2638 730, 2639 /**/ 2640 729, 2641 /**/ 2642 728, 2643 /**/ 2644 727, 2645 /**/ 2646 726, 2647 /**/ 2648 725, 2649 /**/ 2650 724, 2651 /**/ 2652 723, 2653 /**/ 2654 722, 2655 /**/ 2656 721, 2657 /**/ 2658 720, 2659 /**/ 2660 719, 2661 /**/ 2662 718, 2663 /**/ 2664 717, 2665 /**/ 2666 716, 2667 /**/ 2668 715, 2669 /**/ 2670 714, 2671 /**/ 2672 713, 2673 /**/ 2674 712, 2675 /**/ 2676 711, 2677 /**/ 2678 710, 2679 /**/ 2680 709, 2681 /**/ 2682 708, 2683 /**/ 2684 707, 2685 /**/ 2686 706, 2687 /**/ 2688 705, 2689 /**/ 2690 704, 2691 /**/ 2692 703, 2693 /**/ 2694 702, 2695 /**/ 2696 701, 2697 /**/ 2698 700, 2699 /**/ 2700 699, 2701 /**/ 2702 698, 2703 /**/ 2704 697, 2705 /**/ 2706 696, 2707 /**/ 2708 695, 2709 /**/ 2710 694, 2711 /**/ 2712 693, 2713 /**/ 2714 692, 2715 /**/ 2716 691, 2717 /**/ 2718 690, 2719 /**/ 2720 689, 2721 /**/ 2722 688, 2723 /**/ 2724 687, 2725 /**/ 2726 686, 2727 /**/ 2728 685, 2729 /**/ 2730 684, 2731 /**/ 2732 683, 2733 /**/ 2734 682, 2735 /**/ 2736 681, 2737 /**/ 2738 680, 2739 /**/ 2740 679, 2741 /**/ 2742 678, 2743 /**/ 2744 677, 2745 /**/ 2746 676, 2747 /**/ 2748 675, 2749 /**/ 2750 674, 2751 /**/ 2752 673, 2753 /**/ 2754 672, 2755 /**/ 2756 671, 2757 /**/ 2758 670, 2759 /**/ 2760 669, 2761 /**/ 2762 668, 2763 /**/ 2764 667, 2765 /**/ 2766 666, 2767 /**/ 2768 665, 2769 /**/ 2770 664, 2771 /**/ 2772 663, 2773 /**/ 2774 662, 2775 /**/ 2776 661, 2777 /**/ 2778 660, 2779 /**/ 2780 659, 2781 /**/ 2782 658, 2783 /**/ 2784 657, 2785 /**/ 2786 656, 2787 /**/ 2788 655, 2789 /**/ 2790 654, 2791 /**/ 2792 653, 2793 /**/ 2794 652, 2795 /**/ 2796 651, 2797 /**/ 2798 650, 2799 /**/ 2800 649, 2801 /**/ 2802 648, 2803 /**/ 2804 647, 2805 /**/ 2806 646, 2807 /**/ 2808 645, 2809 /**/ 2810 644, 2811 /**/ 2812 643, 2813 /**/ 2814 642, 2815 /**/ 2816 641, 2817 /**/ 2818 640, 2819 /**/ 2820 639, 2821 /**/ 2822 638, 2823 /**/ 2824 637, 2825 /**/ 2826 636, 2827 /**/ 2828 635, 2829 /**/ 2830 634, 2831 /**/ 2832 633, 2833 /**/ 2834 632, 2835 /**/ 2836 631, 2837 /**/ 2838 630, 2839 /**/ 2840 629, 2841 /**/ 2842 628, 2843 /**/ 2844 627, 2845 /**/ 2846 626, 2847 /**/ 2848 625, 2849 /**/ 2850 624, 2851 /**/ 2852 623, 2853 /**/ 2854 622, 2855 /**/ 2856 621, 2857 /**/ 2858 620, 2859 /**/ 2860 619, 2861 /**/ 2862 618, 2863 /**/ 2864 617, 2865 /**/ 2866 616, 2867 /**/ 2868 615, 2869 /**/ 2870 614, 2871 /**/ 2872 613, 2873 /**/ 2874 612, 2875 /**/ 2876 611, 2877 /**/ 2878 610, 2879 /**/ 2880 609, 2881 /**/ 2882 608, 2883 /**/ 2884 607, 2885 /**/ 2886 606, 2887 /**/ 2888 605, 2889 /**/ 2890 604, 2891 /**/ 2892 603, 2893 /**/ 2894 602, 2895 /**/ 2896 601, 2897 /**/ 2898 600, 2899 /**/ 2900 599, 2901 /**/ 2902 598, 2903 /**/ 2904 597, 2905 /**/ 2906 596, 2907 /**/ 2908 595, 2909 /**/ 2910 594, 2911 /**/ 2912 593, 2913 /**/ 2914 592, 2915 /**/ 2916 591, 2917 /**/ 2918 590, 2919 /**/ 2920 589, 2921 /**/ 2922 588, 2923 /**/ 2924 587, 2925 /**/ 2926 586, 2927 /**/ 2928 585, 2929 /**/ 2930 584, 2931 /**/ 2932 583, 2933 /**/ 2934 582, 2935 /**/ 2936 581, 2937 /**/ 2938 580, 2939 /**/ 2940 579, 2941 /**/ 2942 578, 2943 /**/ 2944 577, 2945 /**/ 2946 576, 2947 /**/ 2948 575, 2949 /**/ 2950 574, 2951 /**/ 2952 573, 2953 /**/ 2954 572, 2955 /**/ 2956 571, 2957 /**/ 2958 570, 2959 /**/ 2960 569, 2961 /**/ 2962 568, 2963 /**/ 2964 567, 2965 /**/ 2966 566, 2967 /**/ 2968 565, 2969 /**/ 2970 564, 2971 /**/ 2972 563, 2973 /**/ 2974 562, 2975 /**/ 2976 561, 2977 /**/ 2978 560, 2979 /**/ 2980 559, 2981 /**/ 2982 558, 2983 /**/ 2984 557, 2985 /**/ 2986 556, 2987 /**/ 2988 555, 2989 /**/ 2990 554, 2991 /**/ 2992 553, 2993 /**/ 2994 552, 2995 /**/ 2996 551, 2997 /**/ 2998 550, 2999 /**/ 3000 549, 3001 /**/ 3002 548, 3003 /**/ 3004 547, 3005 /**/ 3006 546, 3007 /**/ 3008 545, 3009 /**/ 3010 544, 3011 /**/ 3012 543, 3013 /**/ 3014 542, 3015 /**/ 3016 541, 3017 /**/ 3018 540, 3019 /**/ 3020 539, 3021 /**/ 3022 538, 3023 /**/ 3024 537, 3025 /**/ 3026 536, 3027 /**/ 3028 535, 3029 /**/ 3030 534, 3031 /**/ 3032 533, 3033 /**/ 3034 532, 3035 /**/ 3036 531, 3037 /**/ 3038 530, 3039 /**/ 3040 529, 3041 /**/ 3042 528, 3043 /**/ 3044 527, 3045 /**/ 3046 526, 3047 /**/ 3048 525, 3049 /**/ 3050 524, 3051 /**/ 3052 523, 3053 /**/ 3054 522, 3055 /**/ 3056 521, 3057 /**/ 3058 520, 3059 /**/ 3060 519, 3061 /**/ 3062 518, 3063 /**/ 3064 517, 3065 /**/ 3066 516, 3067 /**/ 3068 515, 3069 /**/ 3070 514, 3071 /**/ 3072 513, 3073 /**/ 3074 512, 3075 /**/ 3076 511, 3077 /**/ 3078 510, 3079 /**/ 3080 509, 3081 /**/ 3082 508, 3083 /**/ 3084 507, 3085 /**/ 3086 506, 3087 /**/ 3088 505, 3089 /**/ 3090 504, 3091 /**/ 3092 503, 3093 /**/ 3094 502, 3095 /**/ 3096 501, 3097 /**/ 3098 500, 3099 /**/ 3100 499, 3101 /**/ 3102 498, 3103 /**/ 3104 497, 3105 /**/ 3106 496, 3107 /**/ 3108 495, 3109 /**/ 3110 494, 3111 /**/ 3112 493, 3113 /**/ 3114 492, 3115 /**/ 3116 491, 3117 /**/ 3118 490, 3119 /**/ 3120 489, 3121 /**/ 3122 488, 3123 /**/ 3124 487, 3125 /**/ 3126 486, 3127 /**/ 3128 485, 3129 /**/ 3130 484, 3131 /**/ 3132 483, 3133 /**/ 3134 482, 3135 /**/ 3136 481, 3137 /**/ 3138 480, 3139 /**/ 3140 479, 3141 /**/ 3142 478, 3143 /**/ 3144 477, 3145 /**/ 3146 476, 3147 /**/ 3148 475, 3149 /**/ 3150 474, 3151 /**/ 3152 473, 3153 /**/ 3154 472, 3155 /**/ 3156 471, 3157 /**/ 3158 470, 3159 /**/ 3160 469, 3161 /**/ 3162 468, 3163 /**/ 3164 467, 3165 /**/ 3166 466, 3167 /**/ 3168 465, 3169 /**/ 3170 464, 3171 /**/ 3172 463, 3173 /**/ 3174 462, 3175 /**/ 3176 461, 3177 /**/ 3178 460, 3179 /**/ 3180 459, 3181 /**/ 3182 458, 3183 /**/ 3184 457, 3185 /**/ 3186 456, 3187 /**/ 3188 455, 3189 /**/ 3190 454, 3191 /**/ 3192 453, 3193 /**/ 3194 452, 3195 /**/ 3196 451, 3197 /**/ 3198 450, 3199 /**/ 3200 449, 3201 /**/ 3202 448, 3203 /**/ 3204 447, 3205 /**/ 3206 446, 3207 /**/ 3208 445, 3209 /**/ 3210 444, 3211 /**/ 3212 443, 3213 /**/ 3214 442, 3215 /**/ 3216 441, 3217 /**/ 3218 440, 3219 /**/ 3220 439, 3221 /**/ 3222 438, 3223 /**/ 3224 437, 3225 /**/ 3226 436, 3227 /**/ 3228 435, 3229 /**/ 3230 434, 3231 /**/ 3232 433, 3233 /**/ 3234 432, 3235 /**/ 3236 431, 3237 /**/ 3238 430, 3239 /**/ 3240 429, 3241 /**/ 3242 428, 3243 /**/ 3244 427, 3245 /**/ 3246 426, 3247 /**/ 3248 425, 3249 /**/ 3250 424, 3251 /**/ 3252 423, 3253 /**/ 3254 422, 3255 /**/ 3256 421, 3257 /**/ 3258 420, 3259 /**/ 3260 419, 3261 /**/ 3262 418, 3263 /**/ 3264 417, 3265 /**/ 3266 416, 3267 /**/ 3268 415, 3269 /**/ 3270 414, 3271 /**/ 3272 413, 3273 /**/ 3274 412, 3275 /**/ 3276 411, 3277 /**/ 3278 410, 3279 /**/ 3280 409, 3281 /**/ 3282 408, 3283 /**/ 3284 407, 3285 /**/ 3286 406, 3287 /**/ 3288 405, 3289 /**/ 3290 404, 3291 /**/ 3292 403, 3293 /**/ 3294 402, 3295 /**/ 3296 401, 3297 /**/ 3298 400, 3299 /**/ 3300 399, 3301 /**/ 3302 398, 3303 /**/ 3304 397, 3305 /**/ 3306 396, 3307 /**/ 3308 395, 3309 /**/ 3310 394, 3311 /**/ 3312 393, 3313 /**/ 3314 392, 3315 /**/ 3316 391, 3317 /**/ 3318 390, 3319 /**/ 3320 389, 3321 /**/ 3322 388, 3323 /**/ 3324 387, 3325 /**/ 3326 386, 3327 /**/ 3328 385, 3329 /**/ 3330 384, 3331 /**/ 3332 383, 3333 /**/ 3334 382, 3335 /**/ 3336 381, 3337 /**/ 3338 380, 3339 /**/ 3340 379, 3341 /**/ 3342 378, 3343 /**/ 3344 377, 3345 /**/ 3346 376, 3347 /**/ 3348 375, 3349 /**/ 3350 374, 3351 /**/ 3352 373, 3353 /**/ 3354 372, 3355 /**/ 3356 371, 3357 /**/ 3358 370, 3359 /**/ 3360 369, 3361 /**/ 3362 368, 3363 /**/ 3364 367, 3365 /**/ 3366 366, 3367 /**/ 3368 365, 3369 /**/ 3370 364, 3371 /**/ 3372 363, 3373 /**/ 3374 362, 3375 /**/ 3376 361, 3377 /**/ 3378 360, 3379 /**/ 3380 359, 3381 /**/ 3382 358, 3383 /**/ 3384 357, 3385 /**/ 3386 356, 3387 /**/ 3388 355, 3389 /**/ 3390 354, 3391 /**/ 3392 353, 3393 /**/ 3394 352, 3395 /**/ 3396 351, 3397 /**/ 3398 350, 3399 /**/ 3400 349, 3401 /**/ 3402 348, 3403 /**/ 3404 347, 3405 /**/ 3406 346, 3407 /**/ 3408 345, 3409 /**/ 3410 344, 3411 /**/ 3412 343, 3413 /**/ 3414 342, 3415 /**/ 3416 341, 3417 /**/ 3418 340, 3419 /**/ 3420 339, 3421 /**/ 3422 338, 3423 /**/ 3424 337, 3425 /**/ 3426 336, 3427 /**/ 3428 335, 3429 /**/ 3430 334, 3431 /**/ 3432 333, 3433 /**/ 3434 332, 3435 /**/ 3436 331, 3437 /**/ 3438 330, 3439 /**/ 3440 329, 3441 /**/ 3442 328, 3443 /**/ 3444 327, 3445 /**/ 3446 326, 3447 /**/ 3448 325, 3449 /**/ 3450 324, 3451 /**/ 3452 323, 3453 /**/ 3454 322, 3455 /**/ 3456 321, 3457 /**/ 3458 320, 3459 /**/ 3460 319, 3461 /**/ 3462 318, 3463 /**/ 3464 317, 3465 /**/ 3466 316, 3467 /**/ 3468 315, 3469 /**/ 3470 314, 3471 /**/ 3472 313, 3473 /**/ 3474 312, 3475 /**/ 3476 311, 3477 /**/ 3478 310, 3479 /**/ 3480 309, 3481 /**/ 3482 308, 3483 /**/ 3484 307, 3485 /**/ 3486 306, 3487 /**/ 3488 305, 3489 /**/ 3490 304, 3491 /**/ 3492 303, 3493 /**/ 3494 302, 3495 /**/ 3496 301, 3497 /**/ 3498 300, 3499 /**/ 3500 299, 3501 /**/ 3502 298, 3503 /**/ 3504 297, 3505 /**/ 3506 296, 3507 /**/ 3508 295, 3509 /**/ 3510 294, 3511 /**/ 3512 293, 3513 /**/ 3514 292, 3515 /**/ 3516 291, 3517 /**/ 3518 290, 3519 /**/ 3520 289, 3521 /**/ 3522 288, 3523 /**/ 3524 287, 3525 /**/ 3526 286, 3527 /**/ 3528 285, 3529 /**/ 3530 284, 3531 /**/ 3532 283, 3533 /**/ 3534 282, 3535 /**/ 3536 281, 3537 /**/ 3538 280, 3539 /**/ 3540 279, 3541 /**/ 3542 278, 3543 /**/ 3544 277, 3545 /**/ 3546 276, 3547 /**/ 3548 275, 3549 /**/ 3550 274, 3551 /**/ 3552 273, 3553 /**/ 3554 272, 3555 /**/ 3556 271, 3557 /**/ 3558 270, 3559 /**/ 3560 269, 3561 /**/ 3562 268, 3563 /**/ 3564 267, 3565 /**/ 3566 266, 3567 /**/ 3568 265, 3569 /**/ 3570 264, 3571 /**/ 3572 263, 3573 /**/ 3574 262, 3575 /**/ 3576 261, 3577 /**/ 3578 260, 3579 /**/ 3580 259, 3581 /**/ 3582 258, 3583 /**/ 3584 257, 3585 /**/ 3586 256, 3587 /**/ 3588 255, 3589 /**/ 3590 254, 3591 /**/ 3592 253, 3593 /**/ 3594 252, 3595 /**/ 3596 251, 3597 /**/ 3598 250, 3599 /**/ 3600 249, 3601 /**/ 3602 248, 3603 /**/ 3604 247, 3605 /**/ 3606 246, 3607 /**/ 3608 245, 3609 /**/ 3610 244, 3611 /**/ 3612 243, 3613 /**/ 3614 242, 3615 /**/ 3616 241, 3617 /**/ 3618 240, 3619 /**/ 3620 239, 3621 /**/ 3622 238, 3623 /**/ 3624 237, 3625 /**/ 3626 236, 3627 /**/ 3628 235, 3629 /**/ 3630 234, 3631 /**/ 3632 233, 3633 /**/ 3634 232, 3635 /**/ 3636 231, 3637 /**/ 3638 230, 3639 /**/ 3640 229, 3641 /**/ 3642 228, 3643 /**/ 3644 227, 3645 /**/ 3646 226, 3647 /**/ 3648 225, 3649 /**/ 3650 224, 3651 /**/ 3652 223, 3653 /**/ 3654 222, 3655 /**/ 3656 221, 3657 /**/ 3658 220, 3659 /**/ 3660 219, 3661 /**/ 3662 218, 3663 /**/ 3664 217, 3665 /**/ 3666 216, 3667 /**/ 3668 215, 3669 /**/ 3670 214, 3671 /**/ 3672 213, 3673 /**/ 3674 212, 3675 /**/ 3676 211, 3677 /**/ 3678 210, 3679 /**/ 3680 209, 3681 /**/ 3682 208, 3683 /**/ 3684 207, 3685 /**/ 3686 206, 3687 /**/ 3688 205, 3689 /**/ 3690 204, 3691 /**/ 3692 203, 3693 /**/ 3694 202, 3695 /**/ 3696 201, 3697 /**/ 3698 200, 3699 /**/ 3700 199, 3701 /**/ 3702 198, 3703 /**/ 3704 197, 3705 /**/ 3706 196, 3707 /**/ 3708 195, 3709 /**/ 3710 194, 3711 /**/ 3712 193, 3713 /**/ 3714 192, 3715 /**/ 3716 191, 3717 /**/ 3718 190, 3719 /**/ 3720 189, 3721 /**/ 3722 188, 3723 /**/ 3724 187, 3725 /**/ 3726 186, 3727 /**/ 3728 185, 3729 /**/ 3730 184, 3731 /**/ 3732 183, 3733 /**/ 3734 182, 3735 /**/ 3736 181, 3737 /**/ 3738 180, 3739 /**/ 3740 179, 3741 /**/ 3742 178, 3743 /**/ 3744 177, 3745 /**/ 3746 176, 3747 /**/ 3748 175, 3749 /**/ 3750 174, 3751 /**/ 3752 173, 3753 /**/ 3754 172, 3755 /**/ 3756 171, 3757 /**/ 3758 170, 3759 /**/ 3760 169, 3761 /**/ 3762 168, 3763 /**/ 3764 167, 3765 /**/ 3766 166, 3767 /**/ 3768 165, 3769 /**/ 3770 164, 3771 /**/ 3772 163, 3773 /**/ 3774 162, 3775 /**/ 3776 161, 3777 /**/ 3778 160, 3779 /**/ 3780 159, 3781 /**/ 3782 158, 3783 /**/ 3784 157, 3785 /**/ 3786 156, 3787 /**/ 3788 155, 3789 /**/ 3790 154, 3791 /**/ 3792 153, 3793 /**/ 3794 152, 3795 /**/ 3796 151, 3797 /**/ 3798 150, 3799 /**/ 3800 149, 3801 /**/ 3802 148, 3803 /**/ 3804 147, 3805 /**/ 3806 146, 3807 /**/ 3808 145, 3809 /**/ 3810 144, 3811 /**/ 3812 143, 3813 /**/ 3814 142, 3815 /**/ 3816 141, 3817 /**/ 3818 140, 3819 /**/ 3820 139, 3821 /**/ 3822 138, 3823 /**/ 3824 137, 3825 /**/ 3826 136, 3827 /**/ 3828 135, 3829 /**/ 3830 134, 3831 /**/ 3832 133, 3833 /**/ 3834 132, 3835 /**/ 3836 131, 3837 /**/ 3838 130, 3839 /**/ 3840 129, 3841 /**/ 3842 128, 3843 /**/ 3844 127, 3845 /**/ 3846 126, 3847 /**/ 3848 125, 3849 /**/ 3850 124, 3851 /**/ 3852 123, 3853 /**/ 3854 122, 3855 /**/ 3856 121, 3857 /**/ 3858 120, 3859 /**/ 3860 119, 3861 /**/ 3862 118, 3863 /**/ 3864 117, 3865 /**/ 3866 116, 3867 /**/ 3868 115, 3869 /**/ 3870 114, 3871 /**/ 3872 113, 3873 /**/ 3874 112, 3875 /**/ 3876 111, 3877 /**/ 3878 110, 3879 /**/ 3880 109, 3881 /**/ 3882 108, 3883 /**/ 3884 107, 3885 /**/ 3886 106, 3887 /**/ 3888 105, 3889 /**/ 3890 104, 3891 /**/ 3892 103, 3893 /**/ 3894 102, 3895 /**/ 3896 101, 3897 /**/ 3898 100, 3899 /**/ 3900 99, 3901 /**/ 3902 98, 3903 /**/ 3904 97, 3905 /**/ 3906 96, 3907 /**/ 3908 95, 3909 /**/ 3910 94, 3911 /**/ 3912 93, 3913 /**/ 3914 92, 3915 /**/ 3916 91, 3917 /**/ 3918 90, 3919 /**/ 3920 89, 3921 /**/ 3922 88, 3923 /**/ 3924 87, 3925 /**/ 3926 86, 3927 /**/ 3928 85, 3929 /**/ 3930 84, 3931 /**/ 3932 83, 3933 /**/ 3934 82, 3935 /**/ 3936 81, 3937 /**/ 3938 80, 3939 /**/ 3940 79, 3941 /**/ 3942 78, 3943 /**/ 3944 77, 3945 /**/ 3946 76, 3947 /**/ 3948 75, 3949 /**/ 3950 74, 3951 /**/ 3952 73, 3953 /**/ 3954 72, 3955 /**/ 3956 71, 3957 /**/ 3958 70, 3959 /**/ 3960 69, 3961 /**/ 3962 68, 3963 /**/ 3964 67, 3965 /**/ 3966 66, 3967 /**/ 3968 65, 3969 /**/ 3970 64, 3971 /**/ 3972 63, 3973 /**/ 3974 62, 3975 /**/ 3976 61, 3977 /**/ 3978 60, 3979 /**/ 3980 59, 3981 /**/ 3982 58, 3983 /**/ 3984 57, 3985 /**/ 3986 56, 3987 /**/ 3988 55, 3989 /**/ 3990 54, 3991 /**/ 3992 53, 3993 /**/ 3994 52, 3995 /**/ 3996 51, 3997 /**/ 3998 50, 3999 /**/ 4000 49, 4001 /**/ 4002 48, 4003 /**/ 4004 47, 4005 /**/ 4006 46, 4007 /**/ 4008 45, 4009 /**/ 4010 44, 4011 /**/ 4012 43, 4013 /**/ 4014 42, 4015 /**/ 4016 41, 4017 /**/ 4018 40, 4019 /**/ 4020 39, 4021 /**/ 4022 38, 4023 /**/ 4024 37, 4025 /**/ 4026 36, 4027 /**/ 4028 35, 4029 /**/ 4030 34, 4031 /**/ 4032 33, 4033 /**/ 4034 32, 4035 /**/ 4036 31, 4037 /**/ 4038 30, 4039 /**/ 4040 29, 4041 /**/ 4042 28, 4043 /**/ 4044 27, 4045 /**/ 4046 26, 4047 /**/ 4048 25, 4049 /**/ 4050 24, 4051 /**/ 4052 23, 4053 /**/ 4054 22, 4055 /**/ 4056 21, 4057 /**/ 4058 20, 4059 /**/ 4060 19, 4061 /**/ 4062 18, 4063 /**/ 4064 17, 4065 /**/ 4066 16, 4067 /**/ 4068 15, 4069 /**/ 4070 14, 4071 /**/ 4072 13, 4073 /**/ 4074 12, 4075 /**/ 4076 11, 4077 /**/ 4078 10, 4079 /**/ 4080 9, 4081 /**/ 4082 8, 4083 /**/ 4084 7, 4085 /**/ 4086 6, 4087 /**/ 4088 5, 4089 /**/ 4090 4, 4091 /**/ 4092 3, 4093 /**/ 4094 2, 4095 /**/ 4096 1, 4097 /**/ 4098 0 4099 }; 4100 4101 /* 4102 * Place to put a short description when adding a feature with a patch. 4103 * Keep it short, e.g.,: "relative numbers", "persistent undo". 4104 * Also add a comment marker to separate the lines. 4105 * See the official Vim patches for the diff format: It must use a context of 4106 * one line only. Create it by hand or use "diff -C2" and edit the patch. 4107 */ 4108 static char *(extra_patches[]) = 4109 { /* Add your patch description below this line */ 4110 /**/ 4111 NULL 4112 }; 4113 4114 int 4115 highest_patch(void) 4116 { 4117 int i; 4118 int h = 0; 4119 4120 for (i = 0; included_patches[i] != 0; ++i) 4121 if (included_patches[i] > h) 4122 h = included_patches[i]; 4123 return h; 4124 } 4125 4126 #if defined(FEAT_EVAL) || defined(PROTO) 4127 /* 4128 * Return TRUE if patch "n" has been included. 4129 */ 4130 int 4131 has_patch(int n) 4132 { 4133 int i; 4134 4135 for (i = 0; included_patches[i] != 0; ++i) 4136 if (included_patches[i] == n) 4137 return TRUE; 4138 return FALSE; 4139 } 4140 #endif 4141 4142 void 4143 ex_version(exarg_T *eap) 4144 { 4145 /* 4146 * Ignore a ":version 9.99" command. 4147 */ 4148 if (*eap->arg == NUL) 4149 { 4150 msg_putchar('\n'); 4151 list_version(); 4152 } 4153 } 4154 4155 /* 4156 * List all features aligned in columns, dictionary style. 4157 */ 4158 static void 4159 list_features(void) 4160 { 4161 int i; 4162 int ncol; 4163 int nrow; 4164 int nfeat = 0; 4165 int width = 0; 4166 4167 /* Find the length of the longest feature name, use that + 1 as the column 4168 * width */ 4169 for (i = 0; features[i] != NULL; ++i) 4170 { 4171 int l = (int)STRLEN(features[i]); 4172 4173 if (l > width) 4174 width = l; 4175 ++nfeat; 4176 } 4177 width += 1; 4178 4179 if (Columns < width) 4180 { 4181 /* Not enough screen columns - show one per line */ 4182 for (i = 0; features[i] != NULL; ++i) 4183 { 4184 version_msg(features[i]); 4185 if (msg_col > 0) 4186 msg_putchar('\n'); 4187 } 4188 return; 4189 } 4190 4191 /* The rightmost column doesn't need a separator. 4192 * Sacrifice it to fit in one more column if possible. */ 4193 ncol = (int) (Columns + 1) / width; 4194 nrow = nfeat / ncol + (nfeat % ncol ? 1 : 0); 4195 4196 /* i counts columns then rows. idx counts rows then columns. */ 4197 for (i = 0; !got_int && i < nrow * ncol; ++i) 4198 { 4199 int idx = (i / ncol) + (i % ncol) * nrow; 4200 4201 if (idx < nfeat) 4202 { 4203 int last_col = (i + 1) % ncol == 0; 4204 4205 msg_puts((char_u *)features[idx]); 4206 if (last_col) 4207 { 4208 if (msg_col > 0) 4209 msg_putchar('\n'); 4210 } 4211 else 4212 { 4213 while (msg_col % width) 4214 msg_putchar(' '); 4215 } 4216 } 4217 else 4218 { 4219 if (msg_col > 0) 4220 msg_putchar('\n'); 4221 } 4222 } 4223 } 4224 4225 void 4226 list_version(void) 4227 { 4228 int i; 4229 int first; 4230 char *s = ""; 4231 4232 /* 4233 * When adding features here, don't forget to update the list of 4234 * internal variables in eval.c! 4235 */ 4236 MSG(longVersion); 4237 #ifdef WIN3264 4238 # ifdef FEAT_GUI_W32 4239 # ifdef _WIN64 4240 MSG_PUTS(_("\nMS-Windows 64-bit GUI version")); 4241 # else 4242 MSG_PUTS(_("\nMS-Windows 32-bit GUI version")); 4243 # endif 4244 # ifdef FEAT_OLE 4245 MSG_PUTS(_(" with OLE support")); 4246 # endif 4247 # else 4248 # ifdef _WIN64 4249 MSG_PUTS(_("\nMS-Windows 64-bit console version")); 4250 # else 4251 MSG_PUTS(_("\nMS-Windows 32-bit console version")); 4252 # endif 4253 # endif 4254 #endif 4255 #if defined(MACOS_X) 4256 # if defined(MACOS_X_DARWIN) 4257 MSG_PUTS(_("\nmacOS version")); 4258 # else 4259 MSG_PUTS(_("\nmacOS version w/o darwin feat.")); 4260 # endif 4261 #endif 4262 4263 #ifdef VMS 4264 MSG_PUTS(_("\nOpenVMS version")); 4265 # ifdef HAVE_PATHDEF 4266 if (*compiled_arch != NUL) 4267 { 4268 MSG_PUTS(" - "); 4269 MSG_PUTS(compiled_arch); 4270 } 4271 # endif 4272 4273 #endif 4274 4275 /* Print the list of patch numbers if there is at least one. */ 4276 /* Print a range when patches are consecutive: "1-10, 12, 15-40, 42-45" */ 4277 if (included_patches[0] != 0) 4278 { 4279 MSG_PUTS(_("\nIncluded patches: ")); 4280 first = -1; 4281 /* find last one */ 4282 for (i = 0; included_patches[i] != 0; ++i) 4283 ; 4284 while (--i >= 0) 4285 { 4286 if (first < 0) 4287 first = included_patches[i]; 4288 if (i == 0 || included_patches[i - 1] != included_patches[i] + 1) 4289 { 4290 MSG_PUTS(s); 4291 s = ", "; 4292 msg_outnum((long)first); 4293 if (first != included_patches[i]) 4294 { 4295 MSG_PUTS("-"); 4296 msg_outnum((long)included_patches[i]); 4297 } 4298 first = -1; 4299 } 4300 } 4301 } 4302 4303 /* Print the list of extra patch descriptions if there is at least one. */ 4304 if (extra_patches[0] != NULL) 4305 { 4306 MSG_PUTS(_("\nExtra patches: ")); 4307 s = ""; 4308 for (i = 0; extra_patches[i] != NULL; ++i) 4309 { 4310 MSG_PUTS(s); 4311 s = ", "; 4312 MSG_PUTS(extra_patches[i]); 4313 } 4314 } 4315 4316 #ifdef MODIFIED_BY 4317 MSG_PUTS("\n"); 4318 MSG_PUTS(_("Modified by ")); 4319 MSG_PUTS(MODIFIED_BY); 4320 #endif 4321 4322 #ifdef HAVE_PATHDEF 4323 if (*compiled_user != NUL || *compiled_sys != NUL) 4324 { 4325 MSG_PUTS(_("\nCompiled ")); 4326 if (*compiled_user != NUL) 4327 { 4328 MSG_PUTS(_("by ")); 4329 MSG_PUTS(compiled_user); 4330 } 4331 if (*compiled_sys != NUL) 4332 { 4333 MSG_PUTS("@"); 4334 MSG_PUTS(compiled_sys); 4335 } 4336 } 4337 #endif 4338 4339 #ifdef FEAT_HUGE 4340 MSG_PUTS(_("\nHuge version ")); 4341 #else 4342 # ifdef FEAT_BIG 4343 MSG_PUTS(_("\nBig version ")); 4344 # else 4345 # ifdef FEAT_NORMAL 4346 MSG_PUTS(_("\nNormal version ")); 4347 # else 4348 # ifdef FEAT_SMALL 4349 MSG_PUTS(_("\nSmall version ")); 4350 # else 4351 MSG_PUTS(_("\nTiny version ")); 4352 # endif 4353 # endif 4354 # endif 4355 #endif 4356 #ifndef FEAT_GUI 4357 MSG_PUTS(_("without GUI.")); 4358 #else 4359 # ifdef FEAT_GUI_GTK 4360 # ifdef USE_GTK3 4361 MSG_PUTS(_("with GTK3 GUI.")); 4362 # else 4363 # ifdef FEAT_GUI_GNOME 4364 MSG_PUTS(_("with GTK2-GNOME GUI.")); 4365 # else 4366 MSG_PUTS(_("with GTK2 GUI.")); 4367 # endif 4368 # endif 4369 # else 4370 # ifdef FEAT_GUI_MOTIF 4371 MSG_PUTS(_("with X11-Motif GUI.")); 4372 # else 4373 # ifdef FEAT_GUI_ATHENA 4374 # ifdef FEAT_GUI_NEXTAW 4375 MSG_PUTS(_("with X11-neXtaw GUI.")); 4376 # else 4377 MSG_PUTS(_("with X11-Athena GUI.")); 4378 # endif 4379 # else 4380 # ifdef FEAT_GUI_PHOTON 4381 MSG_PUTS(_("with Photon GUI.")); 4382 # else 4383 # if defined(MSWIN) 4384 MSG_PUTS(_("with GUI.")); 4385 # else 4386 # if defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON 4387 MSG_PUTS(_("with Carbon GUI.")); 4388 # else 4389 # if defined(TARGET_API_MAC_OSX) && TARGET_API_MAC_OSX 4390 MSG_PUTS(_("with Cocoa GUI.")); 4391 # else 4392 # endif 4393 # endif 4394 # endif 4395 # endif 4396 # endif 4397 # endif 4398 # endif 4399 #endif 4400 version_msg(_(" Features included (+) or not (-):\n")); 4401 4402 list_features(); 4403 4404 #ifdef SYS_VIMRC_FILE 4405 version_msg(_(" system vimrc file: \"")); 4406 version_msg(SYS_VIMRC_FILE); 4407 version_msg("\"\n"); 4408 #endif 4409 #ifdef USR_VIMRC_FILE 4410 version_msg(_(" user vimrc file: \"")); 4411 version_msg(USR_VIMRC_FILE); 4412 version_msg("\"\n"); 4413 #endif 4414 #ifdef USR_VIMRC_FILE2 4415 version_msg(_(" 2nd user vimrc file: \"")); 4416 version_msg(USR_VIMRC_FILE2); 4417 version_msg("\"\n"); 4418 #endif 4419 #ifdef USR_VIMRC_FILE3 4420 version_msg(_(" 3rd user vimrc file: \"")); 4421 version_msg(USR_VIMRC_FILE3); 4422 version_msg("\"\n"); 4423 #endif 4424 #ifdef USR_EXRC_FILE 4425 version_msg(_(" user exrc file: \"")); 4426 version_msg(USR_EXRC_FILE); 4427 version_msg("\"\n"); 4428 #endif 4429 #ifdef USR_EXRC_FILE2 4430 version_msg(_(" 2nd user exrc file: \"")); 4431 version_msg(USR_EXRC_FILE2); 4432 version_msg("\"\n"); 4433 #endif 4434 #ifdef FEAT_GUI 4435 # ifdef SYS_GVIMRC_FILE 4436 version_msg(_(" system gvimrc file: \"")); 4437 version_msg(SYS_GVIMRC_FILE); 4438 version_msg("\"\n"); 4439 # endif 4440 version_msg(_(" user gvimrc file: \"")); 4441 version_msg(USR_GVIMRC_FILE); 4442 version_msg("\"\n"); 4443 # ifdef USR_GVIMRC_FILE2 4444 version_msg(_("2nd user gvimrc file: \"")); 4445 version_msg(USR_GVIMRC_FILE2); 4446 version_msg("\"\n"); 4447 # endif 4448 # ifdef USR_GVIMRC_FILE3 4449 version_msg(_("3rd user gvimrc file: \"")); 4450 version_msg(USR_GVIMRC_FILE3); 4451 version_msg("\"\n"); 4452 # endif 4453 #endif 4454 version_msg(_(" defaults file: \"")); 4455 version_msg(VIM_DEFAULTS_FILE); 4456 version_msg("\"\n"); 4457 #ifdef FEAT_GUI 4458 # ifdef SYS_MENU_FILE 4459 version_msg(_(" system menu file: \"")); 4460 version_msg(SYS_MENU_FILE); 4461 version_msg("\"\n"); 4462 # endif 4463 #endif 4464 #ifdef HAVE_PATHDEF 4465 if (*default_vim_dir != NUL) 4466 { 4467 version_msg(_(" fall-back for $VIM: \"")); 4468 version_msg((char *)default_vim_dir); 4469 version_msg("\"\n"); 4470 } 4471 if (*default_vimruntime_dir != NUL) 4472 { 4473 version_msg(_(" f-b for $VIMRUNTIME: \"")); 4474 version_msg((char *)default_vimruntime_dir); 4475 version_msg("\"\n"); 4476 } 4477 version_msg(_("Compilation: ")); 4478 version_msg((char *)all_cflags); 4479 version_msg("\n"); 4480 #ifdef VMS 4481 if (*compiler_version != NUL) 4482 { 4483 version_msg(_("Compiler: ")); 4484 version_msg((char *)compiler_version); 4485 version_msg("\n"); 4486 } 4487 #endif 4488 version_msg(_("Linking: ")); 4489 version_msg((char *)all_lflags); 4490 #endif 4491 #ifdef DEBUG 4492 version_msg("\n"); 4493 version_msg(_(" DEBUG BUILD")); 4494 #endif 4495 } 4496 4497 /* 4498 * Output a string for the version message. If it's going to wrap, output a 4499 * newline, unless the message is too long to fit on the screen anyway. 4500 */ 4501 static void 4502 version_msg(char *s) 4503 { 4504 int len = (int)STRLEN(s); 4505 4506 if (!got_int && len < (int)Columns && msg_col + len >= (int)Columns 4507 && *s != '\n') 4508 msg_putchar('\n'); 4509 if (!got_int) 4510 MSG_PUTS(s); 4511 } 4512 4513 static void do_intro_line(int row, char_u *mesg, int add_version, int attr); 4514 4515 /* 4516 * Show the intro message when not editing a file. 4517 */ 4518 void 4519 maybe_intro_message(void) 4520 { 4521 if (BUFEMPTY() 4522 && curbuf->b_fname == NULL 4523 && firstwin->w_next == NULL 4524 && vim_strchr(p_shm, SHM_INTRO) == NULL) 4525 intro_message(FALSE); 4526 } 4527 4528 /* 4529 * Give an introductory message about Vim. 4530 * Only used when starting Vim on an empty file, without a file name. 4531 * Or with the ":intro" command (for Sven :-). 4532 */ 4533 void 4534 intro_message( 4535 int colon) /* TRUE for ":intro" */ 4536 { 4537 int i; 4538 int row; 4539 int blanklines; 4540 int sponsor; 4541 char *p; 4542 static char *(lines[]) = 4543 { 4544 N_("VIM - Vi IMproved"), 4545 "", 4546 N_("version "), 4547 N_("by Bram Moolenaar et al."), 4548 #ifdef MODIFIED_BY 4549 " ", 4550 #endif 4551 N_("Vim is open source and freely distributable"), 4552 "", 4553 N_("Help poor children in Uganda!"), 4554 N_("type :help iccf<Enter> for information "), 4555 "", 4556 N_("type :q<Enter> to exit "), 4557 N_("type :help<Enter> or <F1> for on-line help"), 4558 N_("type :help version8<Enter> for version info"), 4559 NULL, 4560 "", 4561 N_("Running in Vi compatible mode"), 4562 N_("type :set nocp<Enter> for Vim defaults"), 4563 N_("type :help cp-default<Enter> for info on this"), 4564 }; 4565 #ifdef FEAT_GUI 4566 static char *(gui_lines[]) = 4567 { 4568 NULL, 4569 NULL, 4570 NULL, 4571 NULL, 4572 #ifdef MODIFIED_BY 4573 NULL, 4574 #endif 4575 NULL, 4576 NULL, 4577 NULL, 4578 N_("menu Help->Orphans for information "), 4579 NULL, 4580 N_("Running modeless, typed text is inserted"), 4581 N_("menu Edit->Global Settings->Toggle Insert Mode "), 4582 N_(" for two modes "), 4583 NULL, 4584 NULL, 4585 NULL, 4586 N_("menu Edit->Global Settings->Toggle Vi Compatible"), 4587 N_(" for Vim defaults "), 4588 }; 4589 #endif 4590 4591 /* blanklines = screen height - # message lines */ 4592 blanklines = (int)Rows - ((sizeof(lines) / sizeof(char *)) - 1); 4593 if (!p_cp) 4594 blanklines += 4; /* add 4 for not showing "Vi compatible" message */ 4595 4596 /* Don't overwrite a statusline. Depends on 'cmdheight'. */ 4597 if (p_ls > 1) 4598 blanklines -= Rows - topframe->fr_height; 4599 if (blanklines < 0) 4600 blanklines = 0; 4601 4602 /* Show the sponsor and register message one out of four times, the Uganda 4603 * message two out of four times. */ 4604 sponsor = (int)time(NULL); 4605 sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0); 4606 4607 /* start displaying the message lines after half of the blank lines */ 4608 row = blanklines / 2; 4609 if ((row >= 2 && Columns >= 50) || colon) 4610 { 4611 for (i = 0; i < (int)(sizeof(lines) / sizeof(char *)); ++i) 4612 { 4613 p = lines[i]; 4614 #ifdef FEAT_GUI 4615 if (p_im && gui.in_use && gui_lines[i] != NULL) 4616 p = gui_lines[i]; 4617 #endif 4618 if (p == NULL) 4619 { 4620 if (!p_cp) 4621 break; 4622 continue; 4623 } 4624 if (sponsor != 0) 4625 { 4626 if (strstr(p, "children") != NULL) 4627 p = sponsor < 0 4628 ? N_("Sponsor Vim development!") 4629 : N_("Become a registered Vim user!"); 4630 else if (strstr(p, "iccf") != NULL) 4631 p = sponsor < 0 4632 ? N_("type :help sponsor<Enter> for information ") 4633 : N_("type :help register<Enter> for information "); 4634 else if (strstr(p, "Orphans") != NULL) 4635 p = N_("menu Help->Sponsor/Register for information "); 4636 } 4637 if (*p != NUL) 4638 do_intro_line(row, (char_u *)_(p), i == 2, 0); 4639 ++row; 4640 } 4641 } 4642 4643 /* Make the wait-return message appear just below the text. */ 4644 if (colon) 4645 msg_row = row; 4646 } 4647 4648 static void 4649 do_intro_line( 4650 int row, 4651 char_u *mesg, 4652 int add_version, 4653 int attr) 4654 { 4655 char_u vers[20]; 4656 int col; 4657 char_u *p; 4658 int l; 4659 int clen; 4660 #ifdef MODIFIED_BY 4661 # define MODBY_LEN 150 4662 char_u modby[MODBY_LEN]; 4663 4664 if (*mesg == ' ') 4665 { 4666 vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1); 4667 l = (int)STRLEN(modby); 4668 vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1); 4669 mesg = modby; 4670 } 4671 #endif 4672 4673 /* Center the message horizontally. */ 4674 col = vim_strsize(mesg); 4675 if (add_version) 4676 { 4677 STRCPY(vers, mediumVersion); 4678 if (highest_patch()) 4679 { 4680 /* Check for 9.9x or 9.9xx, alpha/beta version */ 4681 if (isalpha((int)vers[3])) 4682 { 4683 int len = (isalpha((int)vers[4])) ? 5 : 4; 4684 sprintf((char *)vers + len, ".%d%s", highest_patch(), 4685 mediumVersion + len); 4686 } 4687 else 4688 sprintf((char *)vers + 3, ".%d", highest_patch()); 4689 } 4690 col += (int)STRLEN(vers); 4691 } 4692 col = (Columns - col) / 2; 4693 if (col < 0) 4694 col = 0; 4695 4696 /* Split up in parts to highlight <> items differently. */ 4697 for (p = mesg; *p != NUL; p += l) 4698 { 4699 clen = 0; 4700 for (l = 0; p[l] != NUL 4701 && (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l) 4702 { 4703 #ifdef FEAT_MBYTE 4704 if (has_mbyte) 4705 { 4706 clen += ptr2cells(p + l); 4707 l += (*mb_ptr2len)(p + l) - 1; 4708 } 4709 else 4710 #endif 4711 clen += byte2cells(p[l]); 4712 } 4713 screen_puts_len(p, l, row, col, *p == '<' ? HL_ATTR(HLF_8) : attr); 4714 col += clen; 4715 } 4716 4717 /* Add the version number to the version line. */ 4718 if (add_version) 4719 screen_puts(vers, row, col, 0); 4720 } 4721 4722 /* 4723 * ":intro": clear screen, display intro screen and wait for return. 4724 */ 4725 void 4726 ex_intro(exarg_T *eap UNUSED) 4727 { 4728 screenclear(); 4729 intro_message(TRUE); 4730 wait_return(TRUE); 4731 } 4732