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