xref: /vim-8.2.3635/src/version.c (revision aedfcbe1)
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