xref: /vim-8.2.3635/src/version.c (revision a0122dcd)
1 /* vi:set ts=8 sts=4 sw=4 noet:
2  *
3  * VIM - Vi IMproved		by Bram Moolenaar
4  *
5  * Do ":help uganda"  in Vim to read copying and usage conditions.
6  * Do ":help credits" in Vim to see a list of people who contributed.
7  * See README.txt for an overview of the Vim source code.
8  */
9 
10 #include "vim.h"
11 
12 /*
13  * Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred)
14  * It has been changed beyond recognition since then.
15  *
16  * Differences between version 7.4 and 8.x can be found with ":help version8".
17  * Differences between version 6.4 and 7.x can be found with ":help version7".
18  * Differences between version 5.8 and 6.x can be found with ":help version6".
19  * Differences between version 4.x and 5.x can be found with ":help version5".
20  * Differences between version 3.0 and 4.x can be found with ":help version4".
21  * All the remarks about older versions have been removed, they are not very
22  * interesting.
23  */
24 
25 #include "version.h"
26 
27 char		*Version = VIM_VERSION_SHORT;
28 static char	*mediumVersion = VIM_VERSION_MEDIUM;
29 
30 #if defined(HAVE_DATE_TIME) || defined(PROTO)
31 # if (defined(VMS) && defined(VAXC)) || defined(PROTO)
32 char	longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__)
33 						      + sizeof(__TIME__) + 3];
34 
35     void
36 init_longVersion(void)
37 {
38     /*
39      * Construct the long version string.  Necessary because
40      * VAX C can't concatenate strings in the preprocessor.
41      */
42     strcpy(longVersion, VIM_VERSION_LONG_DATE);
43 #ifdef BUILD_DATE
44     strcat(longVersion, BUILD_DATE);
45 #else
46     strcat(longVersion, __DATE__);
47     strcat(longVersion, " ");
48     strcat(longVersion, __TIME__);
49 #endif
50     strcat(longVersion, ")");
51 }
52 
53 # else
54     void
55 init_longVersion(void)
56 {
57     if (longVersion == NULL)
58     {
59 #ifdef BUILD_DATE
60 	char *date_time = BUILD_DATE;
61 #else
62 	char *date_time = __DATE__ " " __TIME__;
63 #endif
64 	char *msg = _("%s (%s, compiled %s)");
65 	size_t len = strlen(msg)
66 		    + strlen(VIM_VERSION_LONG_ONLY)
67 		    + strlen(VIM_VERSION_DATE_ONLY)
68 		    + strlen(date_time);
69 
70 	longVersion = alloc(len);
71 	if (longVersion == NULL)
72 	    longVersion = VIM_VERSION_LONG;
73 	else
74 	    vim_snprintf(longVersion, len, msg,
75 			  VIM_VERSION_LONG_ONLY, VIM_VERSION_DATE_ONLY, date_time);
76     }
77 }
78 # endif
79 #else
80 char	*longVersion = VIM_VERSION_LONG;
81 
82     void
83 init_longVersion(void)
84 {
85     // nothing to do
86 }
87 #endif
88 
89 static char *(features[]) =
90 {
91 #ifdef HAVE_ACL
92 	"+acl",
93 #else
94 	"-acl",
95 #endif
96 #ifdef AMIGA		// only for Amiga systems
97 # ifdef FEAT_ARP
98 	"+ARP",
99 # else
100 	"-ARP",
101 # endif
102 #endif
103 #ifdef FEAT_ARABIC
104 	"+arabic",
105 #else
106 	"-arabic",
107 #endif
108 	"+autocmd",
109 #ifdef FEAT_AUTOCHDIR
110        "+autochdir",
111 #else
112        "-autochdir",
113 #endif
114 #ifdef FEAT_AUTOSERVERNAME
115 	"+autoservername",
116 #else
117 	"-autoservername",
118 #endif
119 #ifdef FEAT_BEVAL_GUI
120 	"+balloon_eval",
121 #else
122 	"-balloon_eval",
123 #endif
124 #ifdef FEAT_BEVAL_TERM
125 	"+balloon_eval_term",
126 #else
127 	"-balloon_eval_term",
128 #endif
129 #ifdef FEAT_BROWSE
130 	"+browse",
131 #else
132 	"-browse",
133 #endif
134 #ifdef NO_BUILTIN_TCAPS
135 	"-builtin_terms",
136 #endif
137 #ifdef SOME_BUILTIN_TCAPS
138 	"+builtin_terms",
139 #endif
140 #ifdef ALL_BUILTIN_TCAPS
141 	"++builtin_terms",
142 #endif
143 #ifdef FEAT_BYTEOFF
144 	"+byte_offset",
145 #else
146 	"-byte_offset",
147 #endif
148 #ifdef FEAT_JOB_CHANNEL
149 	"+channel",
150 #else
151 	"-channel",
152 #endif
153 #ifdef FEAT_CINDENT
154 	"+cindent",
155 #else
156 	"-cindent",
157 #endif
158 #ifdef FEAT_CLIENTSERVER
159 	"+clientserver",
160 #else
161 	"-clientserver",
162 #endif
163 #ifdef FEAT_CLIPBOARD
164 	"+clipboard",
165 #else
166 	"-clipboard",
167 #endif
168 	"+cmdline_compl",
169 	"+cmdline_hist",
170 #ifdef FEAT_CMDL_INFO
171 	"+cmdline_info",
172 #else
173 	"-cmdline_info",
174 #endif
175 	"+comments",
176 #ifdef FEAT_CONCEAL
177 	"+conceal",
178 #else
179 	"-conceal",
180 #endif
181 #ifdef FEAT_CRYPT
182 	"+cryptv",
183 #else
184 	"-cryptv",
185 #endif
186 #ifdef FEAT_CSCOPE
187 	"+cscope",
188 #else
189 	"-cscope",
190 #endif
191 	"+cursorbind",
192 #ifdef CURSOR_SHAPE
193 	"+cursorshape",
194 #else
195 	"-cursorshape",
196 #endif
197 #if defined(FEAT_CON_DIALOG) && defined(FEAT_GUI_DIALOG)
198 	"+dialog_con_gui",
199 #else
200 # if defined(FEAT_CON_DIALOG)
201 	"+dialog_con",
202 # else
203 #  if defined(FEAT_GUI_DIALOG)
204 	"+dialog_gui",
205 #  else
206 	"-dialog",
207 #  endif
208 # endif
209 #endif
210 #ifdef FEAT_DIFF
211 	"+diff",
212 #else
213 	"-diff",
214 #endif
215 #ifdef FEAT_DIGRAPHS
216 	"+digraphs",
217 #else
218 	"-digraphs",
219 #endif
220 #ifdef FEAT_GUI_MSWIN
221 # ifdef FEAT_DIRECTX
222 	"+directx",
223 # else
224 	"-directx",
225 # endif
226 #endif
227 #ifdef FEAT_DND
228 	"+dnd",
229 #else
230 	"-dnd",
231 #endif
232 #ifdef EBCDIC
233 	"+ebcdic",
234 #else
235 	"-ebcdic",
236 #endif
237 #ifdef FEAT_EMACS_TAGS
238 	"+emacs_tags",
239 #else
240 	"-emacs_tags",
241 #endif
242 #ifdef FEAT_EVAL
243 	"+eval",
244 #else
245 	"-eval",
246 #endif
247 	"+ex_extra",
248 #ifdef FEAT_SEARCH_EXTRA
249 	"+extra_search",
250 #else
251 	"-extra_search",
252 #endif
253 	"-farsi",
254 #ifdef FEAT_SEARCHPATH
255 	"+file_in_path",
256 #else
257 	"-file_in_path",
258 #endif
259 #ifdef FEAT_FIND_ID
260 	"+find_in_path",
261 #else
262 	"-find_in_path",
263 #endif
264 #ifdef FEAT_FLOAT
265 	"+float",
266 #else
267 	"-float",
268 #endif
269 #ifdef FEAT_FOLDING
270 	"+folding",
271 #else
272 	"-folding",
273 #endif
274 #ifdef FEAT_FOOTER
275 	"+footer",
276 #else
277 	"-footer",
278 #endif
279 	    // only interesting on Unix systems
280 #if !defined(USE_SYSTEM) && defined(UNIX)
281 	"+fork()",
282 #endif
283 #ifdef FEAT_GETTEXT
284 # ifdef DYNAMIC_GETTEXT
285 	"+gettext/dyn",
286 # else
287 	"+gettext",
288 # endif
289 #else
290 	"-gettext",
291 #endif
292 	"-hangul_input",
293 #if (defined(HAVE_ICONV_H) && defined(USE_ICONV)) || defined(DYNAMIC_ICONV)
294 # ifdef DYNAMIC_ICONV
295 	"+iconv/dyn",
296 # else
297 	"+iconv",
298 # endif
299 #else
300 	"-iconv",
301 #endif
302 	"+insert_expand",
303 #ifdef FEAT_IPV6
304 	"+ipv6",
305 #else
306 	"-ipv6",
307 #endif
308 #ifdef FEAT_JOB_CHANNEL
309 	"+job",
310 #else
311 	"-job",
312 #endif
313 #ifdef FEAT_JUMPLIST
314 	"+jumplist",
315 #else
316 	"-jumplist",
317 #endif
318 #ifdef FEAT_KEYMAP
319 	"+keymap",
320 #else
321 	"-keymap",
322 #endif
323 #ifdef FEAT_EVAL
324 	"+lambda",
325 #else
326 	"-lambda",
327 #endif
328 #ifdef FEAT_LANGMAP
329 	"+langmap",
330 #else
331 	"-langmap",
332 #endif
333 #ifdef FEAT_LIBCALL
334 	"+libcall",
335 #else
336 	"-libcall",
337 #endif
338 #ifdef FEAT_LINEBREAK
339 	"+linebreak",
340 #else
341 	"-linebreak",
342 #endif
343 #ifdef FEAT_LISP
344 	"+lispindent",
345 #else
346 	"-lispindent",
347 #endif
348 	"+listcmds",
349 	"+localmap",
350 #ifdef FEAT_LUA
351 # ifdef DYNAMIC_LUA
352 	"+lua/dyn",
353 # else
354 	"+lua",
355 # endif
356 #else
357 	"-lua",
358 #endif
359 #ifdef FEAT_MENU
360 	"+menu",
361 #else
362 	"-menu",
363 #endif
364 #ifdef FEAT_SESSION
365 	"+mksession",
366 #else
367 	"-mksession",
368 #endif
369 	"+modify_fname",
370 	"+mouse",
371 #ifdef FEAT_MOUSESHAPE
372 	"+mouseshape",
373 #else
374 	"-mouseshape",
375 #endif
376 
377 #if defined(UNIX) || defined(VMS)
378 # ifdef FEAT_MOUSE_DEC
379 	"+mouse_dec",
380 # else
381 	"-mouse_dec",
382 # endif
383 # ifdef FEAT_MOUSE_GPM
384 	"+mouse_gpm",
385 # else
386 	"-mouse_gpm",
387 # endif
388 # ifdef FEAT_MOUSE_JSB
389 	"+mouse_jsbterm",
390 # else
391 	"-mouse_jsbterm",
392 # endif
393 # ifdef FEAT_MOUSE_NET
394 	"+mouse_netterm",
395 # else
396 	"-mouse_netterm",
397 # endif
398 #endif
399 
400 #ifdef __QNX__
401 # ifdef FEAT_MOUSE_PTERM
402 	"+mouse_pterm",
403 # else
404 	"-mouse_pterm",
405 # endif
406 #endif
407 
408 #if defined(UNIX) || defined(VMS)
409 	"+mouse_sgr",
410 # ifdef FEAT_SYSMOUSE
411 	"+mouse_sysmouse",
412 # else
413 	"-mouse_sysmouse",
414 # endif
415 # ifdef FEAT_MOUSE_URXVT
416 	"+mouse_urxvt",
417 # else
418 	"-mouse_urxvt",
419 # endif
420 	"+mouse_xterm",
421 #endif
422 
423 #ifdef FEAT_MBYTE_IME
424 # ifdef DYNAMIC_IME
425 	"+multi_byte_ime/dyn",
426 # else
427 	"+multi_byte_ime",
428 # endif
429 #else
430 	"+multi_byte",
431 #endif
432 #ifdef FEAT_MULTI_LANG
433 	"+multi_lang",
434 #else
435 	"-multi_lang",
436 #endif
437 #ifdef FEAT_MZSCHEME
438 # ifdef DYNAMIC_MZSCHEME
439 	"+mzscheme/dyn",
440 # else
441 	"+mzscheme",
442 # endif
443 #else
444 	"-mzscheme",
445 #endif
446 #ifdef FEAT_NETBEANS_INTG
447 	"+netbeans_intg",
448 #else
449 	"-netbeans_intg",
450 #endif
451 	"+num64",
452 #ifdef FEAT_GUI_MSWIN
453 # ifdef FEAT_OLE
454 	"+ole",
455 # else
456 	"-ole",
457 # endif
458 #endif
459 #ifdef FEAT_EVAL
460 	"+packages",
461 #else
462 	"-packages",
463 #endif
464 #ifdef FEAT_PATH_EXTRA
465 	"+path_extra",
466 #else
467 	"-path_extra",
468 #endif
469 #ifdef FEAT_PERL
470 # ifdef DYNAMIC_PERL
471 	"+perl/dyn",
472 # else
473 	"+perl",
474 # endif
475 #else
476 	"-perl",
477 #endif
478 #ifdef FEAT_PERSISTENT_UNDO
479 	"+persistent_undo",
480 #else
481 	"-persistent_undo",
482 #endif
483 #ifdef FEAT_PROP_POPUP
484 	"+popupwin",
485 #else
486 	"-popupwin",
487 #endif
488 #ifdef FEAT_PRINTER
489 # ifdef FEAT_POSTSCRIPT
490 	"+postscript",
491 # else
492 	"-postscript",
493 # endif
494 	"+printer",
495 #else
496 	"-printer",
497 #endif
498 #ifdef FEAT_PROFILE
499 	"+profile",
500 #else
501 	"-profile",
502 #endif
503 #ifdef FEAT_PYTHON
504 # ifdef DYNAMIC_PYTHON
505 	"+python/dyn",
506 # else
507 	"+python",
508 # endif
509 #else
510 	"-python",
511 #endif
512 #ifdef FEAT_PYTHON3
513 # ifdef DYNAMIC_PYTHON3
514 	"+python3/dyn",
515 # else
516 	"+python3",
517 # endif
518 #else
519 	"-python3",
520 #endif
521 #ifdef FEAT_QUICKFIX
522 	"+quickfix",
523 #else
524 	"-quickfix",
525 #endif
526 #ifdef FEAT_RELTIME
527 	"+reltime",
528 #else
529 	"-reltime",
530 #endif
531 #ifdef FEAT_RIGHTLEFT
532 	"+rightleft",
533 #else
534 	"-rightleft",
535 #endif
536 #ifdef FEAT_RUBY
537 # ifdef DYNAMIC_RUBY
538 	"+ruby/dyn",
539 # else
540 	"+ruby",
541 # endif
542 #else
543 	"-ruby",
544 #endif
545 	"+scrollbind",
546 #ifdef FEAT_SIGNS
547 	"+signs",
548 #else
549 	"-signs",
550 #endif
551 #ifdef FEAT_SMARTINDENT
552 	"+smartindent",
553 #else
554 	"-smartindent",
555 #endif
556 #ifdef FEAT_SOUND
557 	"+sound",
558 #else
559 	"-sound",
560 #endif
561 #ifdef FEAT_SPELL
562 	"+spell",
563 #else
564 	"-spell",
565 #endif
566 #ifdef STARTUPTIME
567 	"+startuptime",
568 #else
569 	"-startuptime",
570 #endif
571 #ifdef FEAT_STL_OPT
572 	"+statusline",
573 #else
574 	"-statusline",
575 #endif
576 	"-sun_workshop",
577 #ifdef FEAT_SYN_HL
578 	"+syntax",
579 #else
580 	"-syntax",
581 #endif
582 	    // only interesting on Unix systems
583 #if defined(USE_SYSTEM) && defined(UNIX)
584 	"+system()",
585 #endif
586 #ifdef FEAT_TAG_BINS
587 	"+tag_binary",
588 #else
589 	"-tag_binary",
590 #endif
591 	"-tag_old_static",
592 	"-tag_any_white",
593 #ifdef FEAT_TCL
594 # ifdef DYNAMIC_TCL
595 	"+tcl/dyn",
596 # else
597 	"+tcl",
598 # endif
599 #else
600 	"-tcl",
601 #endif
602 #ifdef FEAT_TERMGUICOLORS
603 	"+termguicolors",
604 #else
605 	"-termguicolors",
606 #endif
607 #ifdef FEAT_TERMINAL
608 	"+terminal",
609 #else
610 	"-terminal",
611 #endif
612 #if defined(UNIX)
613 // only Unix can have terminfo instead of termcap
614 # ifdef TERMINFO
615 	"+terminfo",
616 # else
617 	"-terminfo",
618 # endif
619 #endif
620 #ifdef FEAT_TERMRESPONSE
621 	"+termresponse",
622 #else
623 	"-termresponse",
624 #endif
625 #ifdef FEAT_TEXTOBJ
626 	"+textobjects",
627 #else
628 	"-textobjects",
629 #endif
630 #ifdef FEAT_PROP_POPUP
631 	"+textprop",
632 #else
633 	"-textprop",
634 #endif
635 #if !defined(UNIX)
636 // unix always includes termcap support
637 # ifdef HAVE_TGETENT
638 	"+tgetent",
639 # else
640 	"-tgetent",
641 # endif
642 #endif
643 #ifdef FEAT_TIMERS
644 	"+timers",
645 #else
646 	"-timers",
647 #endif
648 #ifdef FEAT_TITLE
649 	"+title",
650 #else
651 	"-title",
652 #endif
653 #ifdef FEAT_TOOLBAR
654 	"+toolbar",
655 #else
656 	"-toolbar",
657 #endif
658 	"+user_commands",
659 #ifdef FEAT_VARTABS
660 	"+vartabs",
661 #else
662 	"-vartabs",
663 #endif
664 	"+vertsplit",
665 	"+virtualedit",
666 	"+visual",
667 	"+visualextra",
668 #ifdef FEAT_VIMINFO
669 	"+viminfo",
670 #else
671 	"-viminfo",
672 #endif
673 	"+vreplace",
674 #ifdef MSWIN
675 # ifdef FEAT_VTP
676 	"+vtp",
677 # else
678 	"-vtp",
679 # endif
680 #endif
681 #ifdef FEAT_WILDIGN
682 	"+wildignore",
683 #else
684 	"-wildignore",
685 #endif
686 #ifdef FEAT_WILDMENU
687 	"+wildmenu",
688 #else
689 	"-wildmenu",
690 #endif
691 	"+windows",
692 #ifdef FEAT_WRITEBACKUP
693 	"+writebackup",
694 #else
695 	"-writebackup",
696 #endif
697 #if defined(UNIX) || defined(VMS)
698 # ifdef FEAT_X11
699 	"+X11",
700 # else
701 	"-X11",
702 # endif
703 #endif
704 #ifdef FEAT_XFONTSET
705 	"+xfontset",
706 #else
707 	"-xfontset",
708 #endif
709 #ifdef FEAT_XIM
710 	"+xim",
711 #else
712 	"-xim",
713 #endif
714 #ifdef MSWIN
715 # ifdef FEAT_XPM_W32
716 	"+xpm_w32",
717 # else
718 	"-xpm_w32",
719 # endif
720 #else
721 # ifdef HAVE_XPM
722 	"+xpm",
723 # else
724 	"-xpm",
725 # endif
726 #endif
727 #if defined(UNIX) || defined(VMS)
728 # ifdef USE_XSMP_INTERACT
729 	"+xsmp_interact",
730 # else
731 #  ifdef USE_XSMP
732 	"+xsmp",
733 #  else
734 	"-xsmp",
735 #  endif
736 # endif
737 # ifdef FEAT_XCLIPBOARD
738 	"+xterm_clipboard",
739 # else
740 	"-xterm_clipboard",
741 # endif
742 #endif
743 #ifdef FEAT_XTERM_SAVE
744 	"+xterm_save",
745 #else
746 	"-xterm_save",
747 #endif
748 	NULL
749 };
750 
751 static int included_patches[] =
752 {   /* Add new patch number below this line */
753 /**/
754     2334,
755 /**/
756     2333,
757 /**/
758     2332,
759 /**/
760     2331,
761 /**/
762     2330,
763 /**/
764     2329,
765 /**/
766     2328,
767 /**/
768     2327,
769 /**/
770     2326,
771 /**/
772     2325,
773 /**/
774     2324,
775 /**/
776     2323,
777 /**/
778     2322,
779 /**/
780     2321,
781 /**/
782     2320,
783 /**/
784     2319,
785 /**/
786     2318,
787 /**/
788     2317,
789 /**/
790     2316,
791 /**/
792     2315,
793 /**/
794     2314,
795 /**/
796     2313,
797 /**/
798     2312,
799 /**/
800     2311,
801 /**/
802     2310,
803 /**/
804     2309,
805 /**/
806     2308,
807 /**/
808     2307,
809 /**/
810     2306,
811 /**/
812     2305,
813 /**/
814     2304,
815 /**/
816     2303,
817 /**/
818     2302,
819 /**/
820     2301,
821 /**/
822     2300,
823 /**/
824     2299,
825 /**/
826     2298,
827 /**/
828     2297,
829 /**/
830     2296,
831 /**/
832     2295,
833 /**/
834     2294,
835 /**/
836     2293,
837 /**/
838     2292,
839 /**/
840     2291,
841 /**/
842     2290,
843 /**/
844     2289,
845 /**/
846     2288,
847 /**/
848     2287,
849 /**/
850     2286,
851 /**/
852     2285,
853 /**/
854     2284,
855 /**/
856     2283,
857 /**/
858     2282,
859 /**/
860     2281,
861 /**/
862     2280,
863 /**/
864     2279,
865 /**/
866     2278,
867 /**/
868     2277,
869 /**/
870     2276,
871 /**/
872     2275,
873 /**/
874     2274,
875 /**/
876     2273,
877 /**/
878     2272,
879 /**/
880     2271,
881 /**/
882     2270,
883 /**/
884     2269,
885 /**/
886     2268,
887 /**/
888     2267,
889 /**/
890     2266,
891 /**/
892     2265,
893 /**/
894     2264,
895 /**/
896     2263,
897 /**/
898     2262,
899 /**/
900     2261,
901 /**/
902     2260,
903 /**/
904     2259,
905 /**/
906     2258,
907 /**/
908     2257,
909 /**/
910     2256,
911 /**/
912     2255,
913 /**/
914     2254,
915 /**/
916     2253,
917 /**/
918     2252,
919 /**/
920     2251,
921 /**/
922     2250,
923 /**/
924     2249,
925 /**/
926     2248,
927 /**/
928     2247,
929 /**/
930     2246,
931 /**/
932     2245,
933 /**/
934     2244,
935 /**/
936     2243,
937 /**/
938     2242,
939 /**/
940     2241,
941 /**/
942     2240,
943 /**/
944     2239,
945 /**/
946     2238,
947 /**/
948     2237,
949 /**/
950     2236,
951 /**/
952     2235,
953 /**/
954     2234,
955 /**/
956     2233,
957 /**/
958     2232,
959 /**/
960     2231,
961 /**/
962     2230,
963 /**/
964     2229,
965 /**/
966     2228,
967 /**/
968     2227,
969 /**/
970     2226,
971 /**/
972     2225,
973 /**/
974     2224,
975 /**/
976     2223,
977 /**/
978     2222,
979 /**/
980     2221,
981 /**/
982     2220,
983 /**/
984     2219,
985 /**/
986     2218,
987 /**/
988     2217,
989 /**/
990     2216,
991 /**/
992     2215,
993 /**/
994     2214,
995 /**/
996     2213,
997 /**/
998     2212,
999 /**/
1000     2211,
1001 /**/
1002     2210,
1003 /**/
1004     2209,
1005 /**/
1006     2208,
1007 /**/
1008     2207,
1009 /**/
1010     2206,
1011 /**/
1012     2205,
1013 /**/
1014     2204,
1015 /**/
1016     2203,
1017 /**/
1018     2202,
1019 /**/
1020     2201,
1021 /**/
1022     2200,
1023 /**/
1024     2199,
1025 /**/
1026     2198,
1027 /**/
1028     2197,
1029 /**/
1030     2196,
1031 /**/
1032     2195,
1033 /**/
1034     2194,
1035 /**/
1036     2193,
1037 /**/
1038     2192,
1039 /**/
1040     2191,
1041 /**/
1042     2190,
1043 /**/
1044     2189,
1045 /**/
1046     2188,
1047 /**/
1048     2187,
1049 /**/
1050     2186,
1051 /**/
1052     2185,
1053 /**/
1054     2184,
1055 /**/
1056     2183,
1057 /**/
1058     2182,
1059 /**/
1060     2181,
1061 /**/
1062     2180,
1063 /**/
1064     2179,
1065 /**/
1066     2178,
1067 /**/
1068     2177,
1069 /**/
1070     2176,
1071 /**/
1072     2175,
1073 /**/
1074     2174,
1075 /**/
1076     2173,
1077 /**/
1078     2172,
1079 /**/
1080     2171,
1081 /**/
1082     2170,
1083 /**/
1084     2169,
1085 /**/
1086     2168,
1087 /**/
1088     2167,
1089 /**/
1090     2166,
1091 /**/
1092     2165,
1093 /**/
1094     2164,
1095 /**/
1096     2163,
1097 /**/
1098     2162,
1099 /**/
1100     2161,
1101 /**/
1102     2160,
1103 /**/
1104     2159,
1105 /**/
1106     2158,
1107 /**/
1108     2157,
1109 /**/
1110     2156,
1111 /**/
1112     2155,
1113 /**/
1114     2154,
1115 /**/
1116     2153,
1117 /**/
1118     2152,
1119 /**/
1120     2151,
1121 /**/
1122     2150,
1123 /**/
1124     2149,
1125 /**/
1126     2148,
1127 /**/
1128     2147,
1129 /**/
1130     2146,
1131 /**/
1132     2145,
1133 /**/
1134     2144,
1135 /**/
1136     2143,
1137 /**/
1138     2142,
1139 /**/
1140     2141,
1141 /**/
1142     2140,
1143 /**/
1144     2139,
1145 /**/
1146     2138,
1147 /**/
1148     2137,
1149 /**/
1150     2136,
1151 /**/
1152     2135,
1153 /**/
1154     2134,
1155 /**/
1156     2133,
1157 /**/
1158     2132,
1159 /**/
1160     2131,
1161 /**/
1162     2130,
1163 /**/
1164     2129,
1165 /**/
1166     2128,
1167 /**/
1168     2127,
1169 /**/
1170     2126,
1171 /**/
1172     2125,
1173 /**/
1174     2124,
1175 /**/
1176     2123,
1177 /**/
1178     2122,
1179 /**/
1180     2121,
1181 /**/
1182     2120,
1183 /**/
1184     2119,
1185 /**/
1186     2118,
1187 /**/
1188     2117,
1189 /**/
1190     2116,
1191 /**/
1192     2115,
1193 /**/
1194     2114,
1195 /**/
1196     2113,
1197 /**/
1198     2112,
1199 /**/
1200     2111,
1201 /**/
1202     2110,
1203 /**/
1204     2109,
1205 /**/
1206     2108,
1207 /**/
1208     2107,
1209 /**/
1210     2106,
1211 /**/
1212     2105,
1213 /**/
1214     2104,
1215 /**/
1216     2103,
1217 /**/
1218     2102,
1219 /**/
1220     2101,
1221 /**/
1222     2100,
1223 /**/
1224     2099,
1225 /**/
1226     2098,
1227 /**/
1228     2097,
1229 /**/
1230     2096,
1231 /**/
1232     2095,
1233 /**/
1234     2094,
1235 /**/
1236     2093,
1237 /**/
1238     2092,
1239 /**/
1240     2091,
1241 /**/
1242     2090,
1243 /**/
1244     2089,
1245 /**/
1246     2088,
1247 /**/
1248     2087,
1249 /**/
1250     2086,
1251 /**/
1252     2085,
1253 /**/
1254     2084,
1255 /**/
1256     2083,
1257 /**/
1258     2082,
1259 /**/
1260     2081,
1261 /**/
1262     2080,
1263 /**/
1264     2079,
1265 /**/
1266     2078,
1267 /**/
1268     2077,
1269 /**/
1270     2076,
1271 /**/
1272     2075,
1273 /**/
1274     2074,
1275 /**/
1276     2073,
1277 /**/
1278     2072,
1279 /**/
1280     2071,
1281 /**/
1282     2070,
1283 /**/
1284     2069,
1285 /**/
1286     2068,
1287 /**/
1288     2067,
1289 /**/
1290     2066,
1291 /**/
1292     2065,
1293 /**/
1294     2064,
1295 /**/
1296     2063,
1297 /**/
1298     2062,
1299 /**/
1300     2061,
1301 /**/
1302     2060,
1303 /**/
1304     2059,
1305 /**/
1306     2058,
1307 /**/
1308     2057,
1309 /**/
1310     2056,
1311 /**/
1312     2055,
1313 /**/
1314     2054,
1315 /**/
1316     2053,
1317 /**/
1318     2052,
1319 /**/
1320     2051,
1321 /**/
1322     2050,
1323 /**/
1324     2049,
1325 /**/
1326     2048,
1327 /**/
1328     2047,
1329 /**/
1330     2046,
1331 /**/
1332     2045,
1333 /**/
1334     2044,
1335 /**/
1336     2043,
1337 /**/
1338     2042,
1339 /**/
1340     2041,
1341 /**/
1342     2040,
1343 /**/
1344     2039,
1345 /**/
1346     2038,
1347 /**/
1348     2037,
1349 /**/
1350     2036,
1351 /**/
1352     2035,
1353 /**/
1354     2034,
1355 /**/
1356     2033,
1357 /**/
1358     2032,
1359 /**/
1360     2031,
1361 /**/
1362     2030,
1363 /**/
1364     2029,
1365 /**/
1366     2028,
1367 /**/
1368     2027,
1369 /**/
1370     2026,
1371 /**/
1372     2025,
1373 /**/
1374     2024,
1375 /**/
1376     2023,
1377 /**/
1378     2022,
1379 /**/
1380     2021,
1381 /**/
1382     2020,
1383 /**/
1384     2019,
1385 /**/
1386     2018,
1387 /**/
1388     2017,
1389 /**/
1390     2016,
1391 /**/
1392     2015,
1393 /**/
1394     2014,
1395 /**/
1396     2013,
1397 /**/
1398     2012,
1399 /**/
1400     2011,
1401 /**/
1402     2010,
1403 /**/
1404     2009,
1405 /**/
1406     2008,
1407 /**/
1408     2007,
1409 /**/
1410     2006,
1411 /**/
1412     2005,
1413 /**/
1414     2004,
1415 /**/
1416     2003,
1417 /**/
1418     2002,
1419 /**/
1420     2001,
1421 /**/
1422     2000,
1423 /**/
1424     1999,
1425 /**/
1426     1998,
1427 /**/
1428     1997,
1429 /**/
1430     1996,
1431 /**/
1432     1995,
1433 /**/
1434     1994,
1435 /**/
1436     1993,
1437 /**/
1438     1992,
1439 /**/
1440     1991,
1441 /**/
1442     1990,
1443 /**/
1444     1989,
1445 /**/
1446     1988,
1447 /**/
1448     1987,
1449 /**/
1450     1986,
1451 /**/
1452     1985,
1453 /**/
1454     1984,
1455 /**/
1456     1983,
1457 /**/
1458     1982,
1459 /**/
1460     1981,
1461 /**/
1462     1980,
1463 /**/
1464     1979,
1465 /**/
1466     1978,
1467 /**/
1468     1977,
1469 /**/
1470     1976,
1471 /**/
1472     1975,
1473 /**/
1474     1974,
1475 /**/
1476     1973,
1477 /**/
1478     1972,
1479 /**/
1480     1971,
1481 /**/
1482     1970,
1483 /**/
1484     1969,
1485 /**/
1486     1968,
1487 /**/
1488     1967,
1489 /**/
1490     1966,
1491 /**/
1492     1965,
1493 /**/
1494     1964,
1495 /**/
1496     1963,
1497 /**/
1498     1962,
1499 /**/
1500     1961,
1501 /**/
1502     1960,
1503 /**/
1504     1959,
1505 /**/
1506     1958,
1507 /**/
1508     1957,
1509 /**/
1510     1956,
1511 /**/
1512     1955,
1513 /**/
1514     1954,
1515 /**/
1516     1953,
1517 /**/
1518     1952,
1519 /**/
1520     1951,
1521 /**/
1522     1950,
1523 /**/
1524     1949,
1525 /**/
1526     1948,
1527 /**/
1528     1947,
1529 /**/
1530     1946,
1531 /**/
1532     1945,
1533 /**/
1534     1944,
1535 /**/
1536     1943,
1537 /**/
1538     1942,
1539 /**/
1540     1941,
1541 /**/
1542     1940,
1543 /**/
1544     1939,
1545 /**/
1546     1938,
1547 /**/
1548     1937,
1549 /**/
1550     1936,
1551 /**/
1552     1935,
1553 /**/
1554     1934,
1555 /**/
1556     1933,
1557 /**/
1558     1932,
1559 /**/
1560     1931,
1561 /**/
1562     1930,
1563 /**/
1564     1929,
1565 /**/
1566     1928,
1567 /**/
1568     1927,
1569 /**/
1570     1926,
1571 /**/
1572     1925,
1573 /**/
1574     1924,
1575 /**/
1576     1923,
1577 /**/
1578     1922,
1579 /**/
1580     1921,
1581 /**/
1582     1920,
1583 /**/
1584     1919,
1585 /**/
1586     1918,
1587 /**/
1588     1917,
1589 /**/
1590     1916,
1591 /**/
1592     1915,
1593 /**/
1594     1914,
1595 /**/
1596     1913,
1597 /**/
1598     1912,
1599 /**/
1600     1911,
1601 /**/
1602     1910,
1603 /**/
1604     1909,
1605 /**/
1606     1908,
1607 /**/
1608     1907,
1609 /**/
1610     1906,
1611 /**/
1612     1905,
1613 /**/
1614     1904,
1615 /**/
1616     1903,
1617 /**/
1618     1902,
1619 /**/
1620     1901,
1621 /**/
1622     1900,
1623 /**/
1624     1899,
1625 /**/
1626     1898,
1627 /**/
1628     1897,
1629 /**/
1630     1896,
1631 /**/
1632     1895,
1633 /**/
1634     1894,
1635 /**/
1636     1893,
1637 /**/
1638     1892,
1639 /**/
1640     1891,
1641 /**/
1642     1890,
1643 /**/
1644     1889,
1645 /**/
1646     1888,
1647 /**/
1648     1887,
1649 /**/
1650     1886,
1651 /**/
1652     1885,
1653 /**/
1654     1884,
1655 /**/
1656     1883,
1657 /**/
1658     1882,
1659 /**/
1660     1881,
1661 /**/
1662     1880,
1663 /**/
1664     1879,
1665 /**/
1666     1878,
1667 /**/
1668     1877,
1669 /**/
1670     1876,
1671 /**/
1672     1875,
1673 /**/
1674     1874,
1675 /**/
1676     1873,
1677 /**/
1678     1872,
1679 /**/
1680     1871,
1681 /**/
1682     1870,
1683 /**/
1684     1869,
1685 /**/
1686     1868,
1687 /**/
1688     1867,
1689 /**/
1690     1866,
1691 /**/
1692     1865,
1693 /**/
1694     1864,
1695 /**/
1696     1863,
1697 /**/
1698     1862,
1699 /**/
1700     1861,
1701 /**/
1702     1860,
1703 /**/
1704     1859,
1705 /**/
1706     1858,
1707 /**/
1708     1857,
1709 /**/
1710     1856,
1711 /**/
1712     1855,
1713 /**/
1714     1854,
1715 /**/
1716     1853,
1717 /**/
1718     1852,
1719 /**/
1720     1851,
1721 /**/
1722     1850,
1723 /**/
1724     1849,
1725 /**/
1726     1848,
1727 /**/
1728     1847,
1729 /**/
1730     1846,
1731 /**/
1732     1845,
1733 /**/
1734     1844,
1735 /**/
1736     1843,
1737 /**/
1738     1842,
1739 /**/
1740     1841,
1741 /**/
1742     1840,
1743 /**/
1744     1839,
1745 /**/
1746     1838,
1747 /**/
1748     1837,
1749 /**/
1750     1836,
1751 /**/
1752     1835,
1753 /**/
1754     1834,
1755 /**/
1756     1833,
1757 /**/
1758     1832,
1759 /**/
1760     1831,
1761 /**/
1762     1830,
1763 /**/
1764     1829,
1765 /**/
1766     1828,
1767 /**/
1768     1827,
1769 /**/
1770     1826,
1771 /**/
1772     1825,
1773 /**/
1774     1824,
1775 /**/
1776     1823,
1777 /**/
1778     1822,
1779 /**/
1780     1821,
1781 /**/
1782     1820,
1783 /**/
1784     1819,
1785 /**/
1786     1818,
1787 /**/
1788     1817,
1789 /**/
1790     1816,
1791 /**/
1792     1815,
1793 /**/
1794     1814,
1795 /**/
1796     1813,
1797 /**/
1798     1812,
1799 /**/
1800     1811,
1801 /**/
1802     1810,
1803 /**/
1804     1809,
1805 /**/
1806     1808,
1807 /**/
1808     1807,
1809 /**/
1810     1806,
1811 /**/
1812     1805,
1813 /**/
1814     1804,
1815 /**/
1816     1803,
1817 /**/
1818     1802,
1819 /**/
1820     1801,
1821 /**/
1822     1800,
1823 /**/
1824     1799,
1825 /**/
1826     1798,
1827 /**/
1828     1797,
1829 /**/
1830     1796,
1831 /**/
1832     1795,
1833 /**/
1834     1794,
1835 /**/
1836     1793,
1837 /**/
1838     1792,
1839 /**/
1840     1791,
1841 /**/
1842     1790,
1843 /**/
1844     1789,
1845 /**/
1846     1788,
1847 /**/
1848     1787,
1849 /**/
1850     1786,
1851 /**/
1852     1785,
1853 /**/
1854     1784,
1855 /**/
1856     1783,
1857 /**/
1858     1782,
1859 /**/
1860     1781,
1861 /**/
1862     1780,
1863 /**/
1864     1779,
1865 /**/
1866     1778,
1867 /**/
1868     1777,
1869 /**/
1870     1776,
1871 /**/
1872     1775,
1873 /**/
1874     1774,
1875 /**/
1876     1773,
1877 /**/
1878     1772,
1879 /**/
1880     1771,
1881 /**/
1882     1770,
1883 /**/
1884     1769,
1885 /**/
1886     1768,
1887 /**/
1888     1767,
1889 /**/
1890     1766,
1891 /**/
1892     1765,
1893 /**/
1894     1764,
1895 /**/
1896     1763,
1897 /**/
1898     1762,
1899 /**/
1900     1761,
1901 /**/
1902     1760,
1903 /**/
1904     1759,
1905 /**/
1906     1758,
1907 /**/
1908     1757,
1909 /**/
1910     1756,
1911 /**/
1912     1755,
1913 /**/
1914     1754,
1915 /**/
1916     1753,
1917 /**/
1918     1752,
1919 /**/
1920     1751,
1921 /**/
1922     1750,
1923 /**/
1924     1749,
1925 /**/
1926     1748,
1927 /**/
1928     1747,
1929 /**/
1930     1746,
1931 /**/
1932     1745,
1933 /**/
1934     1744,
1935 /**/
1936     1743,
1937 /**/
1938     1742,
1939 /**/
1940     1741,
1941 /**/
1942     1740,
1943 /**/
1944     1739,
1945 /**/
1946     1738,
1947 /**/
1948     1737,
1949 /**/
1950     1736,
1951 /**/
1952     1735,
1953 /**/
1954     1734,
1955 /**/
1956     1733,
1957 /**/
1958     1732,
1959 /**/
1960     1731,
1961 /**/
1962     1730,
1963 /**/
1964     1729,
1965 /**/
1966     1728,
1967 /**/
1968     1727,
1969 /**/
1970     1726,
1971 /**/
1972     1725,
1973 /**/
1974     1724,
1975 /**/
1976     1723,
1977 /**/
1978     1722,
1979 /**/
1980     1721,
1981 /**/
1982     1720,
1983 /**/
1984     1719,
1985 /**/
1986     1718,
1987 /**/
1988     1717,
1989 /**/
1990     1716,
1991 /**/
1992     1715,
1993 /**/
1994     1714,
1995 /**/
1996     1713,
1997 /**/
1998     1712,
1999 /**/
2000     1711,
2001 /**/
2002     1710,
2003 /**/
2004     1709,
2005 /**/
2006     1708,
2007 /**/
2008     1707,
2009 /**/
2010     1706,
2011 /**/
2012     1705,
2013 /**/
2014     1704,
2015 /**/
2016     1703,
2017 /**/
2018     1702,
2019 /**/
2020     1701,
2021 /**/
2022     1700,
2023 /**/
2024     1699,
2025 /**/
2026     1698,
2027 /**/
2028     1697,
2029 /**/
2030     1696,
2031 /**/
2032     1695,
2033 /**/
2034     1694,
2035 /**/
2036     1693,
2037 /**/
2038     1692,
2039 /**/
2040     1691,
2041 /**/
2042     1690,
2043 /**/
2044     1689,
2045 /**/
2046     1688,
2047 /**/
2048     1687,
2049 /**/
2050     1686,
2051 /**/
2052     1685,
2053 /**/
2054     1684,
2055 /**/
2056     1683,
2057 /**/
2058     1682,
2059 /**/
2060     1681,
2061 /**/
2062     1680,
2063 /**/
2064     1679,
2065 /**/
2066     1678,
2067 /**/
2068     1677,
2069 /**/
2070     1676,
2071 /**/
2072     1675,
2073 /**/
2074     1674,
2075 /**/
2076     1673,
2077 /**/
2078     1672,
2079 /**/
2080     1671,
2081 /**/
2082     1670,
2083 /**/
2084     1669,
2085 /**/
2086     1668,
2087 /**/
2088     1667,
2089 /**/
2090     1666,
2091 /**/
2092     1665,
2093 /**/
2094     1664,
2095 /**/
2096     1663,
2097 /**/
2098     1662,
2099 /**/
2100     1661,
2101 /**/
2102     1660,
2103 /**/
2104     1659,
2105 /**/
2106     1658,
2107 /**/
2108     1657,
2109 /**/
2110     1656,
2111 /**/
2112     1655,
2113 /**/
2114     1654,
2115 /**/
2116     1653,
2117 /**/
2118     1652,
2119 /**/
2120     1651,
2121 /**/
2122     1650,
2123 /**/
2124     1649,
2125 /**/
2126     1648,
2127 /**/
2128     1647,
2129 /**/
2130     1646,
2131 /**/
2132     1645,
2133 /**/
2134     1644,
2135 /**/
2136     1643,
2137 /**/
2138     1642,
2139 /**/
2140     1641,
2141 /**/
2142     1640,
2143 /**/
2144     1639,
2145 /**/
2146     1638,
2147 /**/
2148     1637,
2149 /**/
2150     1636,
2151 /**/
2152     1635,
2153 /**/
2154     1634,
2155 /**/
2156     1633,
2157 /**/
2158     1632,
2159 /**/
2160     1631,
2161 /**/
2162     1630,
2163 /**/
2164     1629,
2165 /**/
2166     1628,
2167 /**/
2168     1627,
2169 /**/
2170     1626,
2171 /**/
2172     1625,
2173 /**/
2174     1624,
2175 /**/
2176     1623,
2177 /**/
2178     1622,
2179 /**/
2180     1621,
2181 /**/
2182     1620,
2183 /**/
2184     1619,
2185 /**/
2186     1618,
2187 /**/
2188     1617,
2189 /**/
2190     1616,
2191 /**/
2192     1615,
2193 /**/
2194     1614,
2195 /**/
2196     1613,
2197 /**/
2198     1612,
2199 /**/
2200     1611,
2201 /**/
2202     1610,
2203 /**/
2204     1609,
2205 /**/
2206     1608,
2207 /**/
2208     1607,
2209 /**/
2210     1606,
2211 /**/
2212     1605,
2213 /**/
2214     1604,
2215 /**/
2216     1603,
2217 /**/
2218     1602,
2219 /**/
2220     1601,
2221 /**/
2222     1600,
2223 /**/
2224     1599,
2225 /**/
2226     1598,
2227 /**/
2228     1597,
2229 /**/
2230     1596,
2231 /**/
2232     1595,
2233 /**/
2234     1594,
2235 /**/
2236     1593,
2237 /**/
2238     1592,
2239 /**/
2240     1591,
2241 /**/
2242     1590,
2243 /**/
2244     1589,
2245 /**/
2246     1588,
2247 /**/
2248     1587,
2249 /**/
2250     1586,
2251 /**/
2252     1585,
2253 /**/
2254     1584,
2255 /**/
2256     1583,
2257 /**/
2258     1582,
2259 /**/
2260     1581,
2261 /**/
2262     1580,
2263 /**/
2264     1579,
2265 /**/
2266     1578,
2267 /**/
2268     1577,
2269 /**/
2270     1576,
2271 /**/
2272     1575,
2273 /**/
2274     1574,
2275 /**/
2276     1573,
2277 /**/
2278     1572,
2279 /**/
2280     1571,
2281 /**/
2282     1570,
2283 /**/
2284     1569,
2285 /**/
2286     1568,
2287 /**/
2288     1567,
2289 /**/
2290     1566,
2291 /**/
2292     1565,
2293 /**/
2294     1564,
2295 /**/
2296     1563,
2297 /**/
2298     1562,
2299 /**/
2300     1561,
2301 /**/
2302     1560,
2303 /**/
2304     1559,
2305 /**/
2306     1558,
2307 /**/
2308     1557,
2309 /**/
2310     1556,
2311 /**/
2312     1555,
2313 /**/
2314     1554,
2315 /**/
2316     1553,
2317 /**/
2318     1552,
2319 /**/
2320     1551,
2321 /**/
2322     1550,
2323 /**/
2324     1549,
2325 /**/
2326     1548,
2327 /**/
2328     1547,
2329 /**/
2330     1546,
2331 /**/
2332     1545,
2333 /**/
2334     1544,
2335 /**/
2336     1543,
2337 /**/
2338     1542,
2339 /**/
2340     1541,
2341 /**/
2342     1540,
2343 /**/
2344     1539,
2345 /**/
2346     1538,
2347 /**/
2348     1537,
2349 /**/
2350     1536,
2351 /**/
2352     1535,
2353 /**/
2354     1534,
2355 /**/
2356     1533,
2357 /**/
2358     1532,
2359 /**/
2360     1531,
2361 /**/
2362     1530,
2363 /**/
2364     1529,
2365 /**/
2366     1528,
2367 /**/
2368     1527,
2369 /**/
2370     1526,
2371 /**/
2372     1525,
2373 /**/
2374     1524,
2375 /**/
2376     1523,
2377 /**/
2378     1522,
2379 /**/
2380     1521,
2381 /**/
2382     1520,
2383 /**/
2384     1519,
2385 /**/
2386     1518,
2387 /**/
2388     1517,
2389 /**/
2390     1516,
2391 /**/
2392     1515,
2393 /**/
2394     1514,
2395 /**/
2396     1513,
2397 /**/
2398     1512,
2399 /**/
2400     1511,
2401 /**/
2402     1510,
2403 /**/
2404     1509,
2405 /**/
2406     1508,
2407 /**/
2408     1507,
2409 /**/
2410     1506,
2411 /**/
2412     1505,
2413 /**/
2414     1504,
2415 /**/
2416     1503,
2417 /**/
2418     1502,
2419 /**/
2420     1501,
2421 /**/
2422     1500,
2423 /**/
2424     1499,
2425 /**/
2426     1498,
2427 /**/
2428     1497,
2429 /**/
2430     1496,
2431 /**/
2432     1495,
2433 /**/
2434     1494,
2435 /**/
2436     1493,
2437 /**/
2438     1492,
2439 /**/
2440     1491,
2441 /**/
2442     1490,
2443 /**/
2444     1489,
2445 /**/
2446     1488,
2447 /**/
2448     1487,
2449 /**/
2450     1486,
2451 /**/
2452     1485,
2453 /**/
2454     1484,
2455 /**/
2456     1483,
2457 /**/
2458     1482,
2459 /**/
2460     1481,
2461 /**/
2462     1480,
2463 /**/
2464     1479,
2465 /**/
2466     1478,
2467 /**/
2468     1477,
2469 /**/
2470     1476,
2471 /**/
2472     1475,
2473 /**/
2474     1474,
2475 /**/
2476     1473,
2477 /**/
2478     1472,
2479 /**/
2480     1471,
2481 /**/
2482     1470,
2483 /**/
2484     1469,
2485 /**/
2486     1468,
2487 /**/
2488     1467,
2489 /**/
2490     1466,
2491 /**/
2492     1465,
2493 /**/
2494     1464,
2495 /**/
2496     1463,
2497 /**/
2498     1462,
2499 /**/
2500     1461,
2501 /**/
2502     1460,
2503 /**/
2504     1459,
2505 /**/
2506     1458,
2507 /**/
2508     1457,
2509 /**/
2510     1456,
2511 /**/
2512     1455,
2513 /**/
2514     1454,
2515 /**/
2516     1453,
2517 /**/
2518     1452,
2519 /**/
2520     1451,
2521 /**/
2522     1450,
2523 /**/
2524     1449,
2525 /**/
2526     1448,
2527 /**/
2528     1447,
2529 /**/
2530     1446,
2531 /**/
2532     1445,
2533 /**/
2534     1444,
2535 /**/
2536     1443,
2537 /**/
2538     1442,
2539 /**/
2540     1441,
2541 /**/
2542     1440,
2543 /**/
2544     1439,
2545 /**/
2546     1438,
2547 /**/
2548     1437,
2549 /**/
2550     1436,
2551 /**/
2552     1435,
2553 /**/
2554     1434,
2555 /**/
2556     1433,
2557 /**/
2558     1432,
2559 /**/
2560     1431,
2561 /**/
2562     1430,
2563 /**/
2564     1429,
2565 /**/
2566     1428,
2567 /**/
2568     1427,
2569 /**/
2570     1426,
2571 /**/
2572     1425,
2573 /**/
2574     1424,
2575 /**/
2576     1423,
2577 /**/
2578     1422,
2579 /**/
2580     1421,
2581 /**/
2582     1420,
2583 /**/
2584     1419,
2585 /**/
2586     1418,
2587 /**/
2588     1417,
2589 /**/
2590     1416,
2591 /**/
2592     1415,
2593 /**/
2594     1414,
2595 /**/
2596     1413,
2597 /**/
2598     1412,
2599 /**/
2600     1411,
2601 /**/
2602     1410,
2603 /**/
2604     1409,
2605 /**/
2606     1408,
2607 /**/
2608     1407,
2609 /**/
2610     1406,
2611 /**/
2612     1405,
2613 /**/
2614     1404,
2615 /**/
2616     1403,
2617 /**/
2618     1402,
2619 /**/
2620     1401,
2621 /**/
2622     1400,
2623 /**/
2624     1399,
2625 /**/
2626     1398,
2627 /**/
2628     1397,
2629 /**/
2630     1396,
2631 /**/
2632     1395,
2633 /**/
2634     1394,
2635 /**/
2636     1393,
2637 /**/
2638     1392,
2639 /**/
2640     1391,
2641 /**/
2642     1390,
2643 /**/
2644     1389,
2645 /**/
2646     1388,
2647 /**/
2648     1387,
2649 /**/
2650     1386,
2651 /**/
2652     1385,
2653 /**/
2654     1384,
2655 /**/
2656     1383,
2657 /**/
2658     1382,
2659 /**/
2660     1381,
2661 /**/
2662     1380,
2663 /**/
2664     1379,
2665 /**/
2666     1378,
2667 /**/
2668     1377,
2669 /**/
2670     1376,
2671 /**/
2672     1375,
2673 /**/
2674     1374,
2675 /**/
2676     1373,
2677 /**/
2678     1372,
2679 /**/
2680     1371,
2681 /**/
2682     1370,
2683 /**/
2684     1369,
2685 /**/
2686     1368,
2687 /**/
2688     1367,
2689 /**/
2690     1366,
2691 /**/
2692     1365,
2693 /**/
2694     1364,
2695 /**/
2696     1363,
2697 /**/
2698     1362,
2699 /**/
2700     1361,
2701 /**/
2702     1360,
2703 /**/
2704     1359,
2705 /**/
2706     1358,
2707 /**/
2708     1357,
2709 /**/
2710     1356,
2711 /**/
2712     1355,
2713 /**/
2714     1354,
2715 /**/
2716     1353,
2717 /**/
2718     1352,
2719 /**/
2720     1351,
2721 /**/
2722     1350,
2723 /**/
2724     1349,
2725 /**/
2726     1348,
2727 /**/
2728     1347,
2729 /**/
2730     1346,
2731 /**/
2732     1345,
2733 /**/
2734     1344,
2735 /**/
2736     1343,
2737 /**/
2738     1342,
2739 /**/
2740     1341,
2741 /**/
2742     1340,
2743 /**/
2744     1339,
2745 /**/
2746     1338,
2747 /**/
2748     1337,
2749 /**/
2750     1336,
2751 /**/
2752     1335,
2753 /**/
2754     1334,
2755 /**/
2756     1333,
2757 /**/
2758     1332,
2759 /**/
2760     1331,
2761 /**/
2762     1330,
2763 /**/
2764     1329,
2765 /**/
2766     1328,
2767 /**/
2768     1327,
2769 /**/
2770     1326,
2771 /**/
2772     1325,
2773 /**/
2774     1324,
2775 /**/
2776     1323,
2777 /**/
2778     1322,
2779 /**/
2780     1321,
2781 /**/
2782     1320,
2783 /**/
2784     1319,
2785 /**/
2786     1318,
2787 /**/
2788     1317,
2789 /**/
2790     1316,
2791 /**/
2792     1315,
2793 /**/
2794     1314,
2795 /**/
2796     1313,
2797 /**/
2798     1312,
2799 /**/
2800     1311,
2801 /**/
2802     1310,
2803 /**/
2804     1309,
2805 /**/
2806     1308,
2807 /**/
2808     1307,
2809 /**/
2810     1306,
2811 /**/
2812     1305,
2813 /**/
2814     1304,
2815 /**/
2816     1303,
2817 /**/
2818     1302,
2819 /**/
2820     1301,
2821 /**/
2822     1300,
2823 /**/
2824     1299,
2825 /**/
2826     1298,
2827 /**/
2828     1297,
2829 /**/
2830     1296,
2831 /**/
2832     1295,
2833 /**/
2834     1294,
2835 /**/
2836     1293,
2837 /**/
2838     1292,
2839 /**/
2840     1291,
2841 /**/
2842     1290,
2843 /**/
2844     1289,
2845 /**/
2846     1288,
2847 /**/
2848     1287,
2849 /**/
2850     1286,
2851 /**/
2852     1285,
2853 /**/
2854     1284,
2855 /**/
2856     1283,
2857 /**/
2858     1282,
2859 /**/
2860     1281,
2861 /**/
2862     1280,
2863 /**/
2864     1279,
2865 /**/
2866     1278,
2867 /**/
2868     1277,
2869 /**/
2870     1276,
2871 /**/
2872     1275,
2873 /**/
2874     1274,
2875 /**/
2876     1273,
2877 /**/
2878     1272,
2879 /**/
2880     1271,
2881 /**/
2882     1270,
2883 /**/
2884     1269,
2885 /**/
2886     1268,
2887 /**/
2888     1267,
2889 /**/
2890     1266,
2891 /**/
2892     1265,
2893 /**/
2894     1264,
2895 /**/
2896     1263,
2897 /**/
2898     1262,
2899 /**/
2900     1261,
2901 /**/
2902     1260,
2903 /**/
2904     1259,
2905 /**/
2906     1258,
2907 /**/
2908     1257,
2909 /**/
2910     1256,
2911 /**/
2912     1255,
2913 /**/
2914     1254,
2915 /**/
2916     1253,
2917 /**/
2918     1252,
2919 /**/
2920     1251,
2921 /**/
2922     1250,
2923 /**/
2924     1249,
2925 /**/
2926     1248,
2927 /**/
2928     1247,
2929 /**/
2930     1246,
2931 /**/
2932     1245,
2933 /**/
2934     1244,
2935 /**/
2936     1243,
2937 /**/
2938     1242,
2939 /**/
2940     1241,
2941 /**/
2942     1240,
2943 /**/
2944     1239,
2945 /**/
2946     1238,
2947 /**/
2948     1237,
2949 /**/
2950     1236,
2951 /**/
2952     1235,
2953 /**/
2954     1234,
2955 /**/
2956     1233,
2957 /**/
2958     1232,
2959 /**/
2960     1231,
2961 /**/
2962     1230,
2963 /**/
2964     1229,
2965 /**/
2966     1228,
2967 /**/
2968     1227,
2969 /**/
2970     1226,
2971 /**/
2972     1225,
2973 /**/
2974     1224,
2975 /**/
2976     1223,
2977 /**/
2978     1222,
2979 /**/
2980     1221,
2981 /**/
2982     1220,
2983 /**/
2984     1219,
2985 /**/
2986     1218,
2987 /**/
2988     1217,
2989 /**/
2990     1216,
2991 /**/
2992     1215,
2993 /**/
2994     1214,
2995 /**/
2996     1213,
2997 /**/
2998     1212,
2999 /**/
3000     1211,
3001 /**/
3002     1210,
3003 /**/
3004     1209,
3005 /**/
3006     1208,
3007 /**/
3008     1207,
3009 /**/
3010     1206,
3011 /**/
3012     1205,
3013 /**/
3014     1204,
3015 /**/
3016     1203,
3017 /**/
3018     1202,
3019 /**/
3020     1201,
3021 /**/
3022     1200,
3023 /**/
3024     1199,
3025 /**/
3026     1198,
3027 /**/
3028     1197,
3029 /**/
3030     1196,
3031 /**/
3032     1195,
3033 /**/
3034     1194,
3035 /**/
3036     1193,
3037 /**/
3038     1192,
3039 /**/
3040     1191,
3041 /**/
3042     1190,
3043 /**/
3044     1189,
3045 /**/
3046     1188,
3047 /**/
3048     1187,
3049 /**/
3050     1186,
3051 /**/
3052     1185,
3053 /**/
3054     1184,
3055 /**/
3056     1183,
3057 /**/
3058     1182,
3059 /**/
3060     1181,
3061 /**/
3062     1180,
3063 /**/
3064     1179,
3065 /**/
3066     1178,
3067 /**/
3068     1177,
3069 /**/
3070     1176,
3071 /**/
3072     1175,
3073 /**/
3074     1174,
3075 /**/
3076     1173,
3077 /**/
3078     1172,
3079 /**/
3080     1171,
3081 /**/
3082     1170,
3083 /**/
3084     1169,
3085 /**/
3086     1168,
3087 /**/
3088     1167,
3089 /**/
3090     1166,
3091 /**/
3092     1165,
3093 /**/
3094     1164,
3095 /**/
3096     1163,
3097 /**/
3098     1162,
3099 /**/
3100     1161,
3101 /**/
3102     1160,
3103 /**/
3104     1159,
3105 /**/
3106     1158,
3107 /**/
3108     1157,
3109 /**/
3110     1156,
3111 /**/
3112     1155,
3113 /**/
3114     1154,
3115 /**/
3116     1153,
3117 /**/
3118     1152,
3119 /**/
3120     1151,
3121 /**/
3122     1150,
3123 /**/
3124     1149,
3125 /**/
3126     1148,
3127 /**/
3128     1147,
3129 /**/
3130     1146,
3131 /**/
3132     1145,
3133 /**/
3134     1144,
3135 /**/
3136     1143,
3137 /**/
3138     1142,
3139 /**/
3140     1141,
3141 /**/
3142     1140,
3143 /**/
3144     1139,
3145 /**/
3146     1138,
3147 /**/
3148     1137,
3149 /**/
3150     1136,
3151 /**/
3152     1135,
3153 /**/
3154     1134,
3155 /**/
3156     1133,
3157 /**/
3158     1132,
3159 /**/
3160     1131,
3161 /**/
3162     1130,
3163 /**/
3164     1129,
3165 /**/
3166     1128,
3167 /**/
3168     1127,
3169 /**/
3170     1126,
3171 /**/
3172     1125,
3173 /**/
3174     1124,
3175 /**/
3176     1123,
3177 /**/
3178     1122,
3179 /**/
3180     1121,
3181 /**/
3182     1120,
3183 /**/
3184     1119,
3185 /**/
3186     1118,
3187 /**/
3188     1117,
3189 /**/
3190     1116,
3191 /**/
3192     1115,
3193 /**/
3194     1114,
3195 /**/
3196     1113,
3197 /**/
3198     1112,
3199 /**/
3200     1111,
3201 /**/
3202     1110,
3203 /**/
3204     1109,
3205 /**/
3206     1108,
3207 /**/
3208     1107,
3209 /**/
3210     1106,
3211 /**/
3212     1105,
3213 /**/
3214     1104,
3215 /**/
3216     1103,
3217 /**/
3218     1102,
3219 /**/
3220     1101,
3221 /**/
3222     1100,
3223 /**/
3224     1099,
3225 /**/
3226     1098,
3227 /**/
3228     1097,
3229 /**/
3230     1096,
3231 /**/
3232     1095,
3233 /**/
3234     1094,
3235 /**/
3236     1093,
3237 /**/
3238     1092,
3239 /**/
3240     1091,
3241 /**/
3242     1090,
3243 /**/
3244     1089,
3245 /**/
3246     1088,
3247 /**/
3248     1087,
3249 /**/
3250     1086,
3251 /**/
3252     1085,
3253 /**/
3254     1084,
3255 /**/
3256     1083,
3257 /**/
3258     1082,
3259 /**/
3260     1081,
3261 /**/
3262     1080,
3263 /**/
3264     1079,
3265 /**/
3266     1078,
3267 /**/
3268     1077,
3269 /**/
3270     1076,
3271 /**/
3272     1075,
3273 /**/
3274     1074,
3275 /**/
3276     1073,
3277 /**/
3278     1072,
3279 /**/
3280     1071,
3281 /**/
3282     1070,
3283 /**/
3284     1069,
3285 /**/
3286     1068,
3287 /**/
3288     1067,
3289 /**/
3290     1066,
3291 /**/
3292     1065,
3293 /**/
3294     1064,
3295 /**/
3296     1063,
3297 /**/
3298     1062,
3299 /**/
3300     1061,
3301 /**/
3302     1060,
3303 /**/
3304     1059,
3305 /**/
3306     1058,
3307 /**/
3308     1057,
3309 /**/
3310     1056,
3311 /**/
3312     1055,
3313 /**/
3314     1054,
3315 /**/
3316     1053,
3317 /**/
3318     1052,
3319 /**/
3320     1051,
3321 /**/
3322     1050,
3323 /**/
3324     1049,
3325 /**/
3326     1048,
3327 /**/
3328     1047,
3329 /**/
3330     1046,
3331 /**/
3332     1045,
3333 /**/
3334     1044,
3335 /**/
3336     1043,
3337 /**/
3338     1042,
3339 /**/
3340     1041,
3341 /**/
3342     1040,
3343 /**/
3344     1039,
3345 /**/
3346     1038,
3347 /**/
3348     1037,
3349 /**/
3350     1036,
3351 /**/
3352     1035,
3353 /**/
3354     1034,
3355 /**/
3356     1033,
3357 /**/
3358     1032,
3359 /**/
3360     1031,
3361 /**/
3362     1030,
3363 /**/
3364     1029,
3365 /**/
3366     1028,
3367 /**/
3368     1027,
3369 /**/
3370     1026,
3371 /**/
3372     1025,
3373 /**/
3374     1024,
3375 /**/
3376     1023,
3377 /**/
3378     1022,
3379 /**/
3380     1021,
3381 /**/
3382     1020,
3383 /**/
3384     1019,
3385 /**/
3386     1018,
3387 /**/
3388     1017,
3389 /**/
3390     1016,
3391 /**/
3392     1015,
3393 /**/
3394     1014,
3395 /**/
3396     1013,
3397 /**/
3398     1012,
3399 /**/
3400     1011,
3401 /**/
3402     1010,
3403 /**/
3404     1009,
3405 /**/
3406     1008,
3407 /**/
3408     1007,
3409 /**/
3410     1006,
3411 /**/
3412     1005,
3413 /**/
3414     1004,
3415 /**/
3416     1003,
3417 /**/
3418     1002,
3419 /**/
3420     1001,
3421 /**/
3422     1000,
3423 /**/
3424     999,
3425 /**/
3426     998,
3427 /**/
3428     997,
3429 /**/
3430     996,
3431 /**/
3432     995,
3433 /**/
3434     994,
3435 /**/
3436     993,
3437 /**/
3438     992,
3439 /**/
3440     991,
3441 /**/
3442     990,
3443 /**/
3444     989,
3445 /**/
3446     988,
3447 /**/
3448     987,
3449 /**/
3450     986,
3451 /**/
3452     985,
3453 /**/
3454     984,
3455 /**/
3456     983,
3457 /**/
3458     982,
3459 /**/
3460     981,
3461 /**/
3462     980,
3463 /**/
3464     979,
3465 /**/
3466     978,
3467 /**/
3468     977,
3469 /**/
3470     976,
3471 /**/
3472     975,
3473 /**/
3474     974,
3475 /**/
3476     973,
3477 /**/
3478     972,
3479 /**/
3480     971,
3481 /**/
3482     970,
3483 /**/
3484     969,
3485 /**/
3486     968,
3487 /**/
3488     967,
3489 /**/
3490     966,
3491 /**/
3492     965,
3493 /**/
3494     964,
3495 /**/
3496     963,
3497 /**/
3498     962,
3499 /**/
3500     961,
3501 /**/
3502     960,
3503 /**/
3504     959,
3505 /**/
3506     958,
3507 /**/
3508     957,
3509 /**/
3510     956,
3511 /**/
3512     955,
3513 /**/
3514     954,
3515 /**/
3516     953,
3517 /**/
3518     952,
3519 /**/
3520     951,
3521 /**/
3522     950,
3523 /**/
3524     949,
3525 /**/
3526     948,
3527 /**/
3528     947,
3529 /**/
3530     946,
3531 /**/
3532     945,
3533 /**/
3534     944,
3535 /**/
3536     943,
3537 /**/
3538     942,
3539 /**/
3540     941,
3541 /**/
3542     940,
3543 /**/
3544     939,
3545 /**/
3546     938,
3547 /**/
3548     937,
3549 /**/
3550     936,
3551 /**/
3552     935,
3553 /**/
3554     934,
3555 /**/
3556     933,
3557 /**/
3558     932,
3559 /**/
3560     931,
3561 /**/
3562     930,
3563 /**/
3564     929,
3565 /**/
3566     928,
3567 /**/
3568     927,
3569 /**/
3570     926,
3571 /**/
3572     925,
3573 /**/
3574     924,
3575 /**/
3576     923,
3577 /**/
3578     922,
3579 /**/
3580     921,
3581 /**/
3582     920,
3583 /**/
3584     919,
3585 /**/
3586     918,
3587 /**/
3588     917,
3589 /**/
3590     916,
3591 /**/
3592     915,
3593 /**/
3594     914,
3595 /**/
3596     913,
3597 /**/
3598     912,
3599 /**/
3600     911,
3601 /**/
3602     910,
3603 /**/
3604     909,
3605 /**/
3606     908,
3607 /**/
3608     907,
3609 /**/
3610     906,
3611 /**/
3612     905,
3613 /**/
3614     904,
3615 /**/
3616     903,
3617 /**/
3618     902,
3619 /**/
3620     901,
3621 /**/
3622     900,
3623 /**/
3624     899,
3625 /**/
3626     898,
3627 /**/
3628     897,
3629 /**/
3630     896,
3631 /**/
3632     895,
3633 /**/
3634     894,
3635 /**/
3636     893,
3637 /**/
3638     892,
3639 /**/
3640     891,
3641 /**/
3642     890,
3643 /**/
3644     889,
3645 /**/
3646     888,
3647 /**/
3648     887,
3649 /**/
3650     886,
3651 /**/
3652     885,
3653 /**/
3654     884,
3655 /**/
3656     883,
3657 /**/
3658     882,
3659 /**/
3660     881,
3661 /**/
3662     880,
3663 /**/
3664     879,
3665 /**/
3666     878,
3667 /**/
3668     877,
3669 /**/
3670     876,
3671 /**/
3672     875,
3673 /**/
3674     874,
3675 /**/
3676     873,
3677 /**/
3678     872,
3679 /**/
3680     871,
3681 /**/
3682     870,
3683 /**/
3684     869,
3685 /**/
3686     868,
3687 /**/
3688     867,
3689 /**/
3690     866,
3691 /**/
3692     865,
3693 /**/
3694     864,
3695 /**/
3696     863,
3697 /**/
3698     862,
3699 /**/
3700     861,
3701 /**/
3702     860,
3703 /**/
3704     859,
3705 /**/
3706     858,
3707 /**/
3708     857,
3709 /**/
3710     856,
3711 /**/
3712     855,
3713 /**/
3714     854,
3715 /**/
3716     853,
3717 /**/
3718     852,
3719 /**/
3720     851,
3721 /**/
3722     850,
3723 /**/
3724     849,
3725 /**/
3726     848,
3727 /**/
3728     847,
3729 /**/
3730     846,
3731 /**/
3732     845,
3733 /**/
3734     844,
3735 /**/
3736     843,
3737 /**/
3738     842,
3739 /**/
3740     841,
3741 /**/
3742     840,
3743 /**/
3744     839,
3745 /**/
3746     838,
3747 /**/
3748     837,
3749 /**/
3750     836,
3751 /**/
3752     835,
3753 /**/
3754     834,
3755 /**/
3756     833,
3757 /**/
3758     832,
3759 /**/
3760     831,
3761 /**/
3762     830,
3763 /**/
3764     829,
3765 /**/
3766     828,
3767 /**/
3768     827,
3769 /**/
3770     826,
3771 /**/
3772     825,
3773 /**/
3774     824,
3775 /**/
3776     823,
3777 /**/
3778     822,
3779 /**/
3780     821,
3781 /**/
3782     820,
3783 /**/
3784     819,
3785 /**/
3786     818,
3787 /**/
3788     817,
3789 /**/
3790     816,
3791 /**/
3792     815,
3793 /**/
3794     814,
3795 /**/
3796     813,
3797 /**/
3798     812,
3799 /**/
3800     811,
3801 /**/
3802     810,
3803 /**/
3804     809,
3805 /**/
3806     808,
3807 /**/
3808     807,
3809 /**/
3810     806,
3811 /**/
3812     805,
3813 /**/
3814     804,
3815 /**/
3816     803,
3817 /**/
3818     802,
3819 /**/
3820     801,
3821 /**/
3822     800,
3823 /**/
3824     799,
3825 /**/
3826     798,
3827 /**/
3828     797,
3829 /**/
3830     796,
3831 /**/
3832     795,
3833 /**/
3834     794,
3835 /**/
3836     793,
3837 /**/
3838     792,
3839 /**/
3840     791,
3841 /**/
3842     790,
3843 /**/
3844     789,
3845 /**/
3846     788,
3847 /**/
3848     787,
3849 /**/
3850     786,
3851 /**/
3852     785,
3853 /**/
3854     784,
3855 /**/
3856     783,
3857 /**/
3858     782,
3859 /**/
3860     781,
3861 /**/
3862     780,
3863 /**/
3864     779,
3865 /**/
3866     778,
3867 /**/
3868     777,
3869 /**/
3870     776,
3871 /**/
3872     775,
3873 /**/
3874     774,
3875 /**/
3876     773,
3877 /**/
3878     772,
3879 /**/
3880     771,
3881 /**/
3882     770,
3883 /**/
3884     769,
3885 /**/
3886     768,
3887 /**/
3888     767,
3889 /**/
3890     766,
3891 /**/
3892     765,
3893 /**/
3894     764,
3895 /**/
3896     763,
3897 /**/
3898     762,
3899 /**/
3900     761,
3901 /**/
3902     760,
3903 /**/
3904     759,
3905 /**/
3906     758,
3907 /**/
3908     757,
3909 /**/
3910     756,
3911 /**/
3912     755,
3913 /**/
3914     754,
3915 /**/
3916     753,
3917 /**/
3918     752,
3919 /**/
3920     751,
3921 /**/
3922     750,
3923 /**/
3924     749,
3925 /**/
3926     748,
3927 /**/
3928     747,
3929 /**/
3930     746,
3931 /**/
3932     745,
3933 /**/
3934     744,
3935 /**/
3936     743,
3937 /**/
3938     742,
3939 /**/
3940     741,
3941 /**/
3942     740,
3943 /**/
3944     739,
3945 /**/
3946     738,
3947 /**/
3948     737,
3949 /**/
3950     736,
3951 /**/
3952     735,
3953 /**/
3954     734,
3955 /**/
3956     733,
3957 /**/
3958     732,
3959 /**/
3960     731,
3961 /**/
3962     730,
3963 /**/
3964     729,
3965 /**/
3966     728,
3967 /**/
3968     727,
3969 /**/
3970     726,
3971 /**/
3972     725,
3973 /**/
3974     724,
3975 /**/
3976     723,
3977 /**/
3978     722,
3979 /**/
3980     721,
3981 /**/
3982     720,
3983 /**/
3984     719,
3985 /**/
3986     718,
3987 /**/
3988     717,
3989 /**/
3990     716,
3991 /**/
3992     715,
3993 /**/
3994     714,
3995 /**/
3996     713,
3997 /**/
3998     712,
3999 /**/
4000     711,
4001 /**/
4002     710,
4003 /**/
4004     709,
4005 /**/
4006     708,
4007 /**/
4008     707,
4009 /**/
4010     706,
4011 /**/
4012     705,
4013 /**/
4014     704,
4015 /**/
4016     703,
4017 /**/
4018     702,
4019 /**/
4020     701,
4021 /**/
4022     700,
4023 /**/
4024     699,
4025 /**/
4026     698,
4027 /**/
4028     697,
4029 /**/
4030     696,
4031 /**/
4032     695,
4033 /**/
4034     694,
4035 /**/
4036     693,
4037 /**/
4038     692,
4039 /**/
4040     691,
4041 /**/
4042     690,
4043 /**/
4044     689,
4045 /**/
4046     688,
4047 /**/
4048     687,
4049 /**/
4050     686,
4051 /**/
4052     685,
4053 /**/
4054     684,
4055 /**/
4056     683,
4057 /**/
4058     682,
4059 /**/
4060     681,
4061 /**/
4062     680,
4063 /**/
4064     679,
4065 /**/
4066     678,
4067 /**/
4068     677,
4069 /**/
4070     676,
4071 /**/
4072     675,
4073 /**/
4074     674,
4075 /**/
4076     673,
4077 /**/
4078     672,
4079 /**/
4080     671,
4081 /**/
4082     670,
4083 /**/
4084     669,
4085 /**/
4086     668,
4087 /**/
4088     667,
4089 /**/
4090     666,
4091 /**/
4092     665,
4093 /**/
4094     664,
4095 /**/
4096     663,
4097 /**/
4098     662,
4099 /**/
4100     661,
4101 /**/
4102     660,
4103 /**/
4104     659,
4105 /**/
4106     658,
4107 /**/
4108     657,
4109 /**/
4110     656,
4111 /**/
4112     655,
4113 /**/
4114     654,
4115 /**/
4116     653,
4117 /**/
4118     652,
4119 /**/
4120     651,
4121 /**/
4122     650,
4123 /**/
4124     649,
4125 /**/
4126     648,
4127 /**/
4128     647,
4129 /**/
4130     646,
4131 /**/
4132     645,
4133 /**/
4134     644,
4135 /**/
4136     643,
4137 /**/
4138     642,
4139 /**/
4140     641,
4141 /**/
4142     640,
4143 /**/
4144     639,
4145 /**/
4146     638,
4147 /**/
4148     637,
4149 /**/
4150     636,
4151 /**/
4152     635,
4153 /**/
4154     634,
4155 /**/
4156     633,
4157 /**/
4158     632,
4159 /**/
4160     631,
4161 /**/
4162     630,
4163 /**/
4164     629,
4165 /**/
4166     628,
4167 /**/
4168     627,
4169 /**/
4170     626,
4171 /**/
4172     625,
4173 /**/
4174     624,
4175 /**/
4176     623,
4177 /**/
4178     622,
4179 /**/
4180     621,
4181 /**/
4182     620,
4183 /**/
4184     619,
4185 /**/
4186     618,
4187 /**/
4188     617,
4189 /**/
4190     616,
4191 /**/
4192     615,
4193 /**/
4194     614,
4195 /**/
4196     613,
4197 /**/
4198     612,
4199 /**/
4200     611,
4201 /**/
4202     610,
4203 /**/
4204     609,
4205 /**/
4206     608,
4207 /**/
4208     607,
4209 /**/
4210     606,
4211 /**/
4212     605,
4213 /**/
4214     604,
4215 /**/
4216     603,
4217 /**/
4218     602,
4219 /**/
4220     601,
4221 /**/
4222     600,
4223 /**/
4224     599,
4225 /**/
4226     598,
4227 /**/
4228     597,
4229 /**/
4230     596,
4231 /**/
4232     595,
4233 /**/
4234     594,
4235 /**/
4236     593,
4237 /**/
4238     592,
4239 /**/
4240     591,
4241 /**/
4242     590,
4243 /**/
4244     589,
4245 /**/
4246     588,
4247 /**/
4248     587,
4249 /**/
4250     586,
4251 /**/
4252     585,
4253 /**/
4254     584,
4255 /**/
4256     583,
4257 /**/
4258     582,
4259 /**/
4260     581,
4261 /**/
4262     580,
4263 /**/
4264     579,
4265 /**/
4266     578,
4267 /**/
4268     577,
4269 /**/
4270     576,
4271 /**/
4272     575,
4273 /**/
4274     574,
4275 /**/
4276     573,
4277 /**/
4278     572,
4279 /**/
4280     571,
4281 /**/
4282     570,
4283 /**/
4284     569,
4285 /**/
4286     568,
4287 /**/
4288     567,
4289 /**/
4290     566,
4291 /**/
4292     565,
4293 /**/
4294     564,
4295 /**/
4296     563,
4297 /**/
4298     562,
4299 /**/
4300     561,
4301 /**/
4302     560,
4303 /**/
4304     559,
4305 /**/
4306     558,
4307 /**/
4308     557,
4309 /**/
4310     556,
4311 /**/
4312     555,
4313 /**/
4314     554,
4315 /**/
4316     553,
4317 /**/
4318     552,
4319 /**/
4320     551,
4321 /**/
4322     550,
4323 /**/
4324     549,
4325 /**/
4326     548,
4327 /**/
4328     547,
4329 /**/
4330     546,
4331 /**/
4332     545,
4333 /**/
4334     544,
4335 /**/
4336     543,
4337 /**/
4338     542,
4339 /**/
4340     541,
4341 /**/
4342     540,
4343 /**/
4344     539,
4345 /**/
4346     538,
4347 /**/
4348     537,
4349 /**/
4350     536,
4351 /**/
4352     535,
4353 /**/
4354     534,
4355 /**/
4356     533,
4357 /**/
4358     532,
4359 /**/
4360     531,
4361 /**/
4362     530,
4363 /**/
4364     529,
4365 /**/
4366     528,
4367 /**/
4368     527,
4369 /**/
4370     526,
4371 /**/
4372     525,
4373 /**/
4374     524,
4375 /**/
4376     523,
4377 /**/
4378     522,
4379 /**/
4380     521,
4381 /**/
4382     520,
4383 /**/
4384     519,
4385 /**/
4386     518,
4387 /**/
4388     517,
4389 /**/
4390     516,
4391 /**/
4392     515,
4393 /**/
4394     514,
4395 /**/
4396     513,
4397 /**/
4398     512,
4399 /**/
4400     511,
4401 /**/
4402     510,
4403 /**/
4404     509,
4405 /**/
4406     508,
4407 /**/
4408     507,
4409 /**/
4410     506,
4411 /**/
4412     505,
4413 /**/
4414     504,
4415 /**/
4416     503,
4417 /**/
4418     502,
4419 /**/
4420     501,
4421 /**/
4422     500,
4423 /**/
4424     499,
4425 /**/
4426     498,
4427 /**/
4428     497,
4429 /**/
4430     496,
4431 /**/
4432     495,
4433 /**/
4434     494,
4435 /**/
4436     493,
4437 /**/
4438     492,
4439 /**/
4440     491,
4441 /**/
4442     490,
4443 /**/
4444     489,
4445 /**/
4446     488,
4447 /**/
4448     487,
4449 /**/
4450     486,
4451 /**/
4452     485,
4453 /**/
4454     484,
4455 /**/
4456     483,
4457 /**/
4458     482,
4459 /**/
4460     481,
4461 /**/
4462     480,
4463 /**/
4464     479,
4465 /**/
4466     478,
4467 /**/
4468     477,
4469 /**/
4470     476,
4471 /**/
4472     475,
4473 /**/
4474     474,
4475 /**/
4476     473,
4477 /**/
4478     472,
4479 /**/
4480     471,
4481 /**/
4482     470,
4483 /**/
4484     469,
4485 /**/
4486     468,
4487 /**/
4488     467,
4489 /**/
4490     466,
4491 /**/
4492     465,
4493 /**/
4494     464,
4495 /**/
4496     463,
4497 /**/
4498     462,
4499 /**/
4500     461,
4501 /**/
4502     460,
4503 /**/
4504     459,
4505 /**/
4506     458,
4507 /**/
4508     457,
4509 /**/
4510     456,
4511 /**/
4512     455,
4513 /**/
4514     454,
4515 /**/
4516     453,
4517 /**/
4518     452,
4519 /**/
4520     451,
4521 /**/
4522     450,
4523 /**/
4524     449,
4525 /**/
4526     448,
4527 /**/
4528     447,
4529 /**/
4530     446,
4531 /**/
4532     445,
4533 /**/
4534     444,
4535 /**/
4536     443,
4537 /**/
4538     442,
4539 /**/
4540     441,
4541 /**/
4542     440,
4543 /**/
4544     439,
4545 /**/
4546     438,
4547 /**/
4548     437,
4549 /**/
4550     436,
4551 /**/
4552     435,
4553 /**/
4554     434,
4555 /**/
4556     433,
4557 /**/
4558     432,
4559 /**/
4560     431,
4561 /**/
4562     430,
4563 /**/
4564     429,
4565 /**/
4566     428,
4567 /**/
4568     427,
4569 /**/
4570     426,
4571 /**/
4572     425,
4573 /**/
4574     424,
4575 /**/
4576     423,
4577 /**/
4578     422,
4579 /**/
4580     421,
4581 /**/
4582     420,
4583 /**/
4584     419,
4585 /**/
4586     418,
4587 /**/
4588     417,
4589 /**/
4590     416,
4591 /**/
4592     415,
4593 /**/
4594     414,
4595 /**/
4596     413,
4597 /**/
4598     412,
4599 /**/
4600     411,
4601 /**/
4602     410,
4603 /**/
4604     409,
4605 /**/
4606     408,
4607 /**/
4608     407,
4609 /**/
4610     406,
4611 /**/
4612     405,
4613 /**/
4614     404,
4615 /**/
4616     403,
4617 /**/
4618     402,
4619 /**/
4620     401,
4621 /**/
4622     400,
4623 /**/
4624     399,
4625 /**/
4626     398,
4627 /**/
4628     397,
4629 /**/
4630     396,
4631 /**/
4632     395,
4633 /**/
4634     394,
4635 /**/
4636     393,
4637 /**/
4638     392,
4639 /**/
4640     391,
4641 /**/
4642     390,
4643 /**/
4644     389,
4645 /**/
4646     388,
4647 /**/
4648     387,
4649 /**/
4650     386,
4651 /**/
4652     385,
4653 /**/
4654     384,
4655 /**/
4656     383,
4657 /**/
4658     382,
4659 /**/
4660     381,
4661 /**/
4662     380,
4663 /**/
4664     379,
4665 /**/
4666     378,
4667 /**/
4668     377,
4669 /**/
4670     376,
4671 /**/
4672     375,
4673 /**/
4674     374,
4675 /**/
4676     373,
4677 /**/
4678     372,
4679 /**/
4680     371,
4681 /**/
4682     370,
4683 /**/
4684     369,
4685 /**/
4686     368,
4687 /**/
4688     367,
4689 /**/
4690     366,
4691 /**/
4692     365,
4693 /**/
4694     364,
4695 /**/
4696     363,
4697 /**/
4698     362,
4699 /**/
4700     361,
4701 /**/
4702     360,
4703 /**/
4704     359,
4705 /**/
4706     358,
4707 /**/
4708     357,
4709 /**/
4710     356,
4711 /**/
4712     355,
4713 /**/
4714     354,
4715 /**/
4716     353,
4717 /**/
4718     352,
4719 /**/
4720     351,
4721 /**/
4722     350,
4723 /**/
4724     349,
4725 /**/
4726     348,
4727 /**/
4728     347,
4729 /**/
4730     346,
4731 /**/
4732     345,
4733 /**/
4734     344,
4735 /**/
4736     343,
4737 /**/
4738     342,
4739 /**/
4740     341,
4741 /**/
4742     340,
4743 /**/
4744     339,
4745 /**/
4746     338,
4747 /**/
4748     337,
4749 /**/
4750     336,
4751 /**/
4752     335,
4753 /**/
4754     334,
4755 /**/
4756     333,
4757 /**/
4758     332,
4759 /**/
4760     331,
4761 /**/
4762     330,
4763 /**/
4764     329,
4765 /**/
4766     328,
4767 /**/
4768     327,
4769 /**/
4770     326,
4771 /**/
4772     325,
4773 /**/
4774     324,
4775 /**/
4776     323,
4777 /**/
4778     322,
4779 /**/
4780     321,
4781 /**/
4782     320,
4783 /**/
4784     319,
4785 /**/
4786     318,
4787 /**/
4788     317,
4789 /**/
4790     316,
4791 /**/
4792     315,
4793 /**/
4794     314,
4795 /**/
4796     313,
4797 /**/
4798     312,
4799 /**/
4800     311,
4801 /**/
4802     310,
4803 /**/
4804     309,
4805 /**/
4806     308,
4807 /**/
4808     307,
4809 /**/
4810     306,
4811 /**/
4812     305,
4813 /**/
4814     304,
4815 /**/
4816     303,
4817 /**/
4818     302,
4819 /**/
4820     301,
4821 /**/
4822     300,
4823 /**/
4824     299,
4825 /**/
4826     298,
4827 /**/
4828     297,
4829 /**/
4830     296,
4831 /**/
4832     295,
4833 /**/
4834     294,
4835 /**/
4836     293,
4837 /**/
4838     292,
4839 /**/
4840     291,
4841 /**/
4842     290,
4843 /**/
4844     289,
4845 /**/
4846     288,
4847 /**/
4848     287,
4849 /**/
4850     286,
4851 /**/
4852     285,
4853 /**/
4854     284,
4855 /**/
4856     283,
4857 /**/
4858     282,
4859 /**/
4860     281,
4861 /**/
4862     280,
4863 /**/
4864     279,
4865 /**/
4866     278,
4867 /**/
4868     277,
4869 /**/
4870     276,
4871 /**/
4872     275,
4873 /**/
4874     274,
4875 /**/
4876     273,
4877 /**/
4878     272,
4879 /**/
4880     271,
4881 /**/
4882     270,
4883 /**/
4884     269,
4885 /**/
4886     268,
4887 /**/
4888     267,
4889 /**/
4890     266,
4891 /**/
4892     265,
4893 /**/
4894     264,
4895 /**/
4896     263,
4897 /**/
4898     262,
4899 /**/
4900     261,
4901 /**/
4902     260,
4903 /**/
4904     259,
4905 /**/
4906     258,
4907 /**/
4908     257,
4909 /**/
4910     256,
4911 /**/
4912     255,
4913 /**/
4914     254,
4915 /**/
4916     253,
4917 /**/
4918     252,
4919 /**/
4920     251,
4921 /**/
4922     250,
4923 /**/
4924     249,
4925 /**/
4926     248,
4927 /**/
4928     247,
4929 /**/
4930     246,
4931 /**/
4932     245,
4933 /**/
4934     244,
4935 /**/
4936     243,
4937 /**/
4938     242,
4939 /**/
4940     241,
4941 /**/
4942     240,
4943 /**/
4944     239,
4945 /**/
4946     238,
4947 /**/
4948     237,
4949 /**/
4950     236,
4951 /**/
4952     235,
4953 /**/
4954     234,
4955 /**/
4956     233,
4957 /**/
4958     232,
4959 /**/
4960     231,
4961 /**/
4962     230,
4963 /**/
4964     229,
4965 /**/
4966     228,
4967 /**/
4968     227,
4969 /**/
4970     226,
4971 /**/
4972     225,
4973 /**/
4974     224,
4975 /**/
4976     223,
4977 /**/
4978     222,
4979 /**/
4980     221,
4981 /**/
4982     220,
4983 /**/
4984     219,
4985 /**/
4986     218,
4987 /**/
4988     217,
4989 /**/
4990     216,
4991 /**/
4992     215,
4993 /**/
4994     214,
4995 /**/
4996     213,
4997 /**/
4998     212,
4999 /**/
5000     211,
5001 /**/
5002     210,
5003 /**/
5004     209,
5005 /**/
5006     208,
5007 /**/
5008     207,
5009 /**/
5010     206,
5011 /**/
5012     205,
5013 /**/
5014     204,
5015 /**/
5016     203,
5017 /**/
5018     202,
5019 /**/
5020     201,
5021 /**/
5022     200,
5023 /**/
5024     199,
5025 /**/
5026     198,
5027 /**/
5028     197,
5029 /**/
5030     196,
5031 /**/
5032     195,
5033 /**/
5034     194,
5035 /**/
5036     193,
5037 /**/
5038     192,
5039 /**/
5040     191,
5041 /**/
5042     190,
5043 /**/
5044     189,
5045 /**/
5046     188,
5047 /**/
5048     187,
5049 /**/
5050     186,
5051 /**/
5052     185,
5053 /**/
5054     184,
5055 /**/
5056     183,
5057 /**/
5058     182,
5059 /**/
5060     181,
5061 /**/
5062     180,
5063 /**/
5064     179,
5065 /**/
5066     178,
5067 /**/
5068     177,
5069 /**/
5070     176,
5071 /**/
5072     175,
5073 /**/
5074     174,
5075 /**/
5076     173,
5077 /**/
5078     172,
5079 /**/
5080     171,
5081 /**/
5082     170,
5083 /**/
5084     169,
5085 /**/
5086     168,
5087 /**/
5088     167,
5089 /**/
5090     166,
5091 /**/
5092     165,
5093 /**/
5094     164,
5095 /**/
5096     163,
5097 /**/
5098     162,
5099 /**/
5100     161,
5101 /**/
5102     160,
5103 /**/
5104     159,
5105 /**/
5106     158,
5107 /**/
5108     157,
5109 /**/
5110     156,
5111 /**/
5112     155,
5113 /**/
5114     154,
5115 /**/
5116     153,
5117 /**/
5118     152,
5119 /**/
5120     151,
5121 /**/
5122     150,
5123 /**/
5124     149,
5125 /**/
5126     148,
5127 /**/
5128     147,
5129 /**/
5130     146,
5131 /**/
5132     145,
5133 /**/
5134     144,
5135 /**/
5136     143,
5137 /**/
5138     142,
5139 /**/
5140     141,
5141 /**/
5142     140,
5143 /**/
5144     139,
5145 /**/
5146     138,
5147 /**/
5148     137,
5149 /**/
5150     136,
5151 /**/
5152     135,
5153 /**/
5154     134,
5155 /**/
5156     133,
5157 /**/
5158     132,
5159 /**/
5160     131,
5161 /**/
5162     130,
5163 /**/
5164     129,
5165 /**/
5166     128,
5167 /**/
5168     127,
5169 /**/
5170     126,
5171 /**/
5172     125,
5173 /**/
5174     124,
5175 /**/
5176     123,
5177 /**/
5178     122,
5179 /**/
5180     121,
5181 /**/
5182     120,
5183 /**/
5184     119,
5185 /**/
5186     118,
5187 /**/
5188     117,
5189 /**/
5190     116,
5191 /**/
5192     115,
5193 /**/
5194     114,
5195 /**/
5196     113,
5197 /**/
5198     112,
5199 /**/
5200     111,
5201 /**/
5202     110,
5203 /**/
5204     109,
5205 /**/
5206     108,
5207 /**/
5208     107,
5209 /**/
5210     106,
5211 /**/
5212     105,
5213 /**/
5214     104,
5215 /**/
5216     103,
5217 /**/
5218     102,
5219 /**/
5220     101,
5221 /**/
5222     100,
5223 /**/
5224     99,
5225 /**/
5226     98,
5227 /**/
5228     97,
5229 /**/
5230     96,
5231 /**/
5232     95,
5233 /**/
5234     94,
5235 /**/
5236     93,
5237 /**/
5238     92,
5239 /**/
5240     91,
5241 /**/
5242     90,
5243 /**/
5244     89,
5245 /**/
5246     88,
5247 /**/
5248     87,
5249 /**/
5250     86,
5251 /**/
5252     85,
5253 /**/
5254     84,
5255 /**/
5256     83,
5257 /**/
5258     82,
5259 /**/
5260     81,
5261 /**/
5262     80,
5263 /**/
5264     79,
5265 /**/
5266     78,
5267 /**/
5268     77,
5269 /**/
5270     76,
5271 /**/
5272     75,
5273 /**/
5274     74,
5275 /**/
5276     73,
5277 /**/
5278     72,
5279 /**/
5280     71,
5281 /**/
5282     70,
5283 /**/
5284     69,
5285 /**/
5286     68,
5287 /**/
5288     67,
5289 /**/
5290     66,
5291 /**/
5292     65,
5293 /**/
5294     64,
5295 /**/
5296     63,
5297 /**/
5298     62,
5299 /**/
5300     61,
5301 /**/
5302     60,
5303 /**/
5304     59,
5305 /**/
5306     58,
5307 /**/
5308     57,
5309 /**/
5310     56,
5311 /**/
5312     55,
5313 /**/
5314     54,
5315 /**/
5316     53,
5317 /**/
5318     52,
5319 /**/
5320     51,
5321 /**/
5322     50,
5323 /**/
5324     49,
5325 /**/
5326     48,
5327 /**/
5328     47,
5329 /**/
5330     46,
5331 /**/
5332     45,
5333 /**/
5334     44,
5335 /**/
5336     43,
5337 /**/
5338     42,
5339 /**/
5340     41,
5341 /**/
5342     40,
5343 /**/
5344     39,
5345 /**/
5346     38,
5347 /**/
5348     37,
5349 /**/
5350     36,
5351 /**/
5352     35,
5353 /**/
5354     34,
5355 /**/
5356     33,
5357 /**/
5358     32,
5359 /**/
5360     31,
5361 /**/
5362     30,
5363 /**/
5364     29,
5365 /**/
5366     28,
5367 /**/
5368     27,
5369 /**/
5370     26,
5371 /**/
5372     25,
5373 /**/
5374     24,
5375 /**/
5376     23,
5377 /**/
5378     22,
5379 /**/
5380     21,
5381 /**/
5382     20,
5383 /**/
5384     19,
5385 /**/
5386     18,
5387 /**/
5388     17,
5389 /**/
5390     16,
5391 /**/
5392     15,
5393 /**/
5394     14,
5395 /**/
5396     13,
5397 /**/
5398     12,
5399 /**/
5400     11,
5401 /**/
5402     10,
5403 /**/
5404     9,
5405 /**/
5406     8,
5407 /**/
5408     7,
5409 /**/
5410     6,
5411 /**/
5412     5,
5413 /**/
5414     4,
5415 /**/
5416     3,
5417 /**/
5418     2,
5419 /**/
5420     1,
5421 /**/
5422     0
5423 };
5424 
5425 /*
5426  * Place to put a short description when adding a feature with a patch.
5427  * Keep it short, e.g.,: "relative numbers", "persistent undo".
5428  * Also add a comment marker to separate the lines.
5429  * See the official Vim patches for the diff format: It must use a context of
5430  * one line only.  Create it by hand or use "diff -C2" and edit the patch.
5431  */
5432 static char *(extra_patches[]) =
5433 {   /* Add your patch description below this line */
5434 /**/
5435     NULL
5436 };
5437 
5438     int
5439 highest_patch(void)
5440 {
5441     // this relies on the highest patch number to be the first entry
5442     return included_patches[0];
5443 }
5444 
5445 #if defined(FEAT_EVAL) || defined(PROTO)
5446 /*
5447  * Return TRUE if patch "n" has been included.
5448  */
5449     int
5450 has_patch(int n)
5451 {
5452     int		h, m, l;
5453 
5454     // Perform a binary search.
5455     l = 0;
5456     h = (int)(sizeof(included_patches) / sizeof(included_patches[0])) - 1;
5457     while (l < h)
5458     {
5459 	m = (l + h) / 2;
5460 	if (included_patches[m] == n)
5461 	    return TRUE;
5462 	if (included_patches[m] < n)
5463 	    h = m;
5464 	else
5465 	    l = m + 1;
5466     }
5467     return FALSE;
5468 }
5469 #endif
5470 
5471     void
5472 ex_version(exarg_T *eap)
5473 {
5474     /*
5475      * Ignore a ":version 9.99" command.
5476      */
5477     if (*eap->arg == NUL)
5478     {
5479 	msg_putchar('\n');
5480 	list_version();
5481     }
5482 }
5483 
5484 /*
5485  * Output a string for the version message.  If it's going to wrap, output a
5486  * newline, unless the message is too long to fit on the screen anyway.
5487  * When "wrap" is TRUE wrap the string in [].
5488  */
5489     static void
5490 version_msg_wrap(char_u *s, int wrap)
5491 {
5492     int		len = (int)vim_strsize(s) + (wrap ? 2 : 0);
5493 
5494     if (!got_int && len < (int)Columns && msg_col + len >= (int)Columns
5495 								&& *s != '\n')
5496 	msg_putchar('\n');
5497     if (!got_int)
5498     {
5499 	if (wrap)
5500 	    msg_puts("[");
5501 	msg_puts((char *)s);
5502 	if (wrap)
5503 	    msg_puts("]");
5504     }
5505 }
5506 
5507     static void
5508 version_msg(char *s)
5509 {
5510     version_msg_wrap((char_u *)s, FALSE);
5511 }
5512 
5513 /*
5514  * List all features aligned in columns, dictionary style.
5515  */
5516     static void
5517 list_features(void)
5518 {
5519     list_in_columns((char_u **)features, -1, -1);
5520 }
5521 
5522 /*
5523  * List string items nicely aligned in columns.
5524  * When "size" is < 0 then the last entry is marked with NULL.
5525  * The entry with index "current" is inclosed in [].
5526  */
5527     void
5528 list_in_columns(char_u **items, int size, int current)
5529 {
5530     int		i;
5531     int		ncol;
5532     int		nrow;
5533     int		cur_row = 1;
5534     int		item_count = 0;
5535     int		width = 0;
5536 #ifdef FEAT_SYN_HL
5537     int		use_highlight = (items == (char_u **)features);
5538 #endif
5539 
5540     // Find the length of the longest item, use that + 1 as the column
5541     // width.
5542     for (i = 0; size < 0 ? items[i] != NULL : i < size; ++i)
5543     {
5544 	int l = (int)vim_strsize(items[i]) + (i == current ? 2 : 0);
5545 
5546 	if (l > width)
5547 	    width = l;
5548 	++item_count;
5549     }
5550     width += 1;
5551 
5552     if (Columns < width)
5553     {
5554 	// Not enough screen columns - show one per line
5555 	for (i = 0; i < item_count; ++i)
5556 	{
5557 	    version_msg_wrap(items[i], i == current);
5558 	    if (msg_col > 0 && i < item_count - 1)
5559 		msg_putchar('\n');
5560 	}
5561 	return;
5562     }
5563 
5564     // The rightmost column doesn't need a separator.
5565     // Sacrifice it to fit in one more column if possible.
5566     ncol = (int) (Columns + 1) / width;
5567     nrow = item_count / ncol + (item_count % ncol ? 1 : 0);
5568 
5569     // "i" counts columns then rows.  "idx" counts rows then columns.
5570     for (i = 0; !got_int && i < nrow * ncol; ++i)
5571     {
5572 	int idx = (i / ncol) + (i % ncol) * nrow;
5573 
5574 	if (idx < item_count)
5575 	{
5576 	    int last_col = (i + 1) % ncol == 0;
5577 
5578 	    if (idx == current)
5579 		msg_putchar('[');
5580 #ifdef FEAT_SYN_HL
5581 	    if (use_highlight && items[idx][0] == '-')
5582 		msg_puts_attr((char *)items[idx], HL_ATTR(HLF_W));
5583 	    else
5584 #endif
5585 		msg_puts((char *)items[idx]);
5586 	    if (idx == current)
5587 		msg_putchar(']');
5588 	    if (last_col)
5589 	    {
5590 		if (msg_col > 0 && cur_row < nrow)
5591 		    msg_putchar('\n');
5592 		++cur_row;
5593 	    }
5594 	    else
5595 	    {
5596 		while (msg_col % width)
5597 		    msg_putchar(' ');
5598 	    }
5599 	}
5600 	else
5601 	{
5602 	    // this row is out of items, thus at the end of the row
5603 	    if (msg_col > 0)
5604 	    {
5605 		if (cur_row < nrow)
5606 		    msg_putchar('\n');
5607 		++cur_row;
5608 	    }
5609 	}
5610     }
5611 }
5612 
5613     void
5614 list_version(void)
5615 {
5616     int		i;
5617     int		first;
5618     char	*s = "";
5619 
5620     /*
5621      * When adding features here, don't forget to update the list of
5622      * internal variables in eval.c!
5623      */
5624     init_longVersion();
5625     msg(longVersion);
5626 #ifdef MSWIN
5627 # ifdef FEAT_GUI_MSWIN
5628 #  ifdef VIMDLL
5629 #   ifdef _WIN64
5630     msg_puts(_("\nMS-Windows 64-bit GUI/console version"));
5631 #   else
5632     msg_puts(_("\nMS-Windows 32-bit GUI/console version"));
5633 #   endif
5634 #  else
5635 #   ifdef _WIN64
5636     msg_puts(_("\nMS-Windows 64-bit GUI version"));
5637 #   else
5638     msg_puts(_("\nMS-Windows 32-bit GUI version"));
5639 #   endif
5640 #  endif
5641 #  ifdef FEAT_OLE
5642     msg_puts(_(" with OLE support"));
5643 #  endif
5644 # else
5645 #  ifdef _WIN64
5646     msg_puts(_("\nMS-Windows 64-bit console version"));
5647 #  else
5648     msg_puts(_("\nMS-Windows 32-bit console version"));
5649 #  endif
5650 # endif
5651 #endif
5652 #if defined(MACOS_X)
5653 # if defined(MACOS_X_DARWIN)
5654     msg_puts(_("\nmacOS version"));
5655 # else
5656     msg_puts(_("\nmacOS version w/o darwin feat."));
5657 # endif
5658 # if defined(__arm64__)
5659     msg_puts(" - arm64");
5660 # elif defined(__x86_64__)
5661     msg_puts(" - x86_64");
5662 # endif
5663 #endif
5664 
5665 #ifdef VMS
5666     msg_puts(_("\nOpenVMS version"));
5667 # ifdef HAVE_PATHDEF
5668     if (*compiled_arch != NUL)
5669     {
5670 	msg_puts(" - ");
5671 	msg_puts((char *)compiled_arch);
5672     }
5673 # endif
5674 
5675 #endif
5676 
5677     // Print the list of patch numbers if there is at least one.
5678     // Print a range when patches are consecutive: "1-10, 12, 15-40, 42-45"
5679     if (included_patches[0] != 0)
5680     {
5681 	msg_puts(_("\nIncluded patches: "));
5682 	first = -1;
5683 	i = (int)(sizeof(included_patches) / sizeof(included_patches[0])) - 1;
5684 	while (--i >= 0)
5685 	{
5686 	    if (first < 0)
5687 		first = included_patches[i];
5688 	    if (i == 0 || included_patches[i - 1] != included_patches[i] + 1)
5689 	    {
5690 		msg_puts(s);
5691 		s = ", ";
5692 		msg_outnum((long)first);
5693 		if (first != included_patches[i])
5694 		{
5695 		    msg_puts("-");
5696 		    msg_outnum((long)included_patches[i]);
5697 		}
5698 		first = -1;
5699 	    }
5700 	}
5701     }
5702 
5703     // Print the list of extra patch descriptions if there is at least one.
5704     if (extra_patches[0] != NULL)
5705     {
5706 	msg_puts(_("\nExtra patches: "));
5707 	s = "";
5708 	for (i = 0; extra_patches[i] != NULL; ++i)
5709 	{
5710 	    msg_puts(s);
5711 	    s = ", ";
5712 	    msg_puts(extra_patches[i]);
5713 	}
5714     }
5715 
5716 #ifdef MODIFIED_BY
5717     msg_puts("\n");
5718     msg_puts(_("Modified by "));
5719     msg_puts(MODIFIED_BY);
5720 #endif
5721 
5722 #ifdef HAVE_PATHDEF
5723     if (*compiled_user != NUL || *compiled_sys != NUL)
5724     {
5725 	msg_puts(_("\nCompiled "));
5726 	if (*compiled_user != NUL)
5727 	{
5728 	    msg_puts(_("by "));
5729 	    msg_puts((char *)compiled_user);
5730 	}
5731 	if (*compiled_sys != NUL)
5732 	{
5733 	    msg_puts("@");
5734 	    msg_puts((char *)compiled_sys);
5735 	}
5736     }
5737 #endif
5738 
5739 #ifdef FEAT_HUGE
5740     msg_puts(_("\nHuge version "));
5741 #else
5742 # ifdef FEAT_BIG
5743     msg_puts(_("\nBig version "));
5744 # else
5745 #  ifdef FEAT_NORMAL
5746     msg_puts(_("\nNormal version "));
5747 #  else
5748 #   ifdef FEAT_SMALL
5749     msg_puts(_("\nSmall version "));
5750 #   else
5751     msg_puts(_("\nTiny version "));
5752 #   endif
5753 #  endif
5754 # endif
5755 #endif
5756 #ifndef FEAT_GUI
5757     msg_puts(_("without GUI."));
5758 #else
5759 # ifdef FEAT_GUI_GTK
5760 #  ifdef USE_GTK3
5761     msg_puts(_("with GTK3 GUI."));
5762 #  else
5763 #   ifdef FEAT_GUI_GNOME
5764      msg_puts(_("with GTK2-GNOME GUI."));
5765 #   else
5766      msg_puts(_("with GTK2 GUI."));
5767 #   endif
5768 # endif
5769 # else
5770 #  ifdef FEAT_GUI_MOTIF
5771     msg_puts(_("with X11-Motif GUI."));
5772 #  else
5773 #   ifdef FEAT_GUI_ATHENA
5774 #    ifdef FEAT_GUI_NEXTAW
5775     msg_puts(_("with X11-neXtaw GUI."));
5776 #    else
5777     msg_puts(_("with X11-Athena GUI."));
5778 #    endif
5779 #   else
5780 #    ifdef FEAT_GUI_HAIKU
5781     msg_puts(_("with Haiku GUI."));
5782 #    else
5783 #     ifdef FEAT_GUI_PHOTON
5784     msg_puts(_("with Photon GUI."));
5785 #     else
5786 #      if defined(MSWIN)
5787     msg_puts(_("with GUI."));
5788 #      endif
5789 #     endif
5790 #    endif
5791 #   endif
5792 #  endif
5793 # endif
5794 #endif
5795     version_msg(_("  Features included (+) or not (-):\n"));
5796 
5797     list_features();
5798     if (msg_col > 0)
5799 	msg_putchar('\n');
5800 
5801 #ifdef SYS_VIMRC_FILE
5802     version_msg(_("   system vimrc file: \""));
5803     version_msg(SYS_VIMRC_FILE);
5804     version_msg("\"\n");
5805 #endif
5806 #ifdef USR_VIMRC_FILE
5807     version_msg(_("     user vimrc file: \""));
5808     version_msg(USR_VIMRC_FILE);
5809     version_msg("\"\n");
5810 #endif
5811 #ifdef USR_VIMRC_FILE2
5812     version_msg(_(" 2nd user vimrc file: \""));
5813     version_msg(USR_VIMRC_FILE2);
5814     version_msg("\"\n");
5815 #endif
5816 #ifdef USR_VIMRC_FILE3
5817     version_msg(_(" 3rd user vimrc file: \""));
5818     version_msg(USR_VIMRC_FILE3);
5819     version_msg("\"\n");
5820 #endif
5821 #ifdef USR_EXRC_FILE
5822     version_msg(_("      user exrc file: \""));
5823     version_msg(USR_EXRC_FILE);
5824     version_msg("\"\n");
5825 #endif
5826 #ifdef USR_EXRC_FILE2
5827     version_msg(_("  2nd user exrc file: \""));
5828     version_msg(USR_EXRC_FILE2);
5829     version_msg("\"\n");
5830 #endif
5831 #ifdef FEAT_GUI
5832 # ifdef SYS_GVIMRC_FILE
5833     version_msg(_("  system gvimrc file: \""));
5834     version_msg(SYS_GVIMRC_FILE);
5835     version_msg("\"\n");
5836 # endif
5837     version_msg(_("    user gvimrc file: \""));
5838     version_msg(USR_GVIMRC_FILE);
5839     version_msg("\"\n");
5840 # ifdef USR_GVIMRC_FILE2
5841     version_msg(_("2nd user gvimrc file: \""));
5842     version_msg(USR_GVIMRC_FILE2);
5843     version_msg("\"\n");
5844 # endif
5845 # ifdef USR_GVIMRC_FILE3
5846     version_msg(_("3rd user gvimrc file: \""));
5847     version_msg(USR_GVIMRC_FILE3);
5848     version_msg("\"\n");
5849 # endif
5850 #endif
5851     version_msg(_("       defaults file: \""));
5852     version_msg(VIM_DEFAULTS_FILE);
5853     version_msg("\"\n");
5854 #ifdef FEAT_GUI
5855 # ifdef SYS_MENU_FILE
5856     version_msg(_("    system menu file: \""));
5857     version_msg(SYS_MENU_FILE);
5858     version_msg("\"\n");
5859 # endif
5860 #endif
5861 #ifdef HAVE_PATHDEF
5862     if (*default_vim_dir != NUL)
5863     {
5864 	version_msg(_("  fall-back for $VIM: \""));
5865 	version_msg((char *)default_vim_dir);
5866 	version_msg("\"\n");
5867     }
5868     if (*default_vimruntime_dir != NUL)
5869     {
5870 	version_msg(_(" f-b for $VIMRUNTIME: \""));
5871 	version_msg((char *)default_vimruntime_dir);
5872 	version_msg("\"\n");
5873     }
5874     version_msg(_("Compilation: "));
5875     version_msg((char *)all_cflags);
5876     version_msg("\n");
5877 #ifdef VMS
5878     if (*compiler_version != NUL)
5879     {
5880 	version_msg(_("Compiler: "));
5881 	version_msg((char *)compiler_version);
5882 	version_msg("\n");
5883     }
5884 #endif
5885     version_msg(_("Linking: "));
5886     version_msg((char *)all_lflags);
5887 #endif
5888 #ifdef DEBUG
5889     version_msg("\n");
5890     version_msg(_("  DEBUG BUILD"));
5891 #endif
5892 }
5893 
5894 static void do_intro_line(int row, char_u *mesg, int add_version, int attr);
5895 static void intro_message(int colon);
5896 
5897 /*
5898  * Show the intro message when not editing a file.
5899  */
5900     void
5901 maybe_intro_message(void)
5902 {
5903     if (BUFEMPTY()
5904 	    && curbuf->b_fname == NULL
5905 	    && firstwin->w_next == NULL
5906 	    && vim_strchr(p_shm, SHM_INTRO) == NULL)
5907 	intro_message(FALSE);
5908 }
5909 
5910 /*
5911  * Give an introductory message about Vim.
5912  * Only used when starting Vim on an empty file, without a file name.
5913  * Or with the ":intro" command (for Sven :-).
5914  */
5915     static void
5916 intro_message(
5917     int		colon)		// TRUE for ":intro"
5918 {
5919     int		i;
5920     int		row;
5921     int		blanklines;
5922     int		sponsor;
5923     char	*p;
5924     static char	*(lines[]) =
5925     {
5926 	N_("VIM - Vi IMproved"),
5927 	"",
5928 	N_("version "),
5929 	N_("by Bram Moolenaar et al."),
5930 #ifdef MODIFIED_BY
5931 	" ",
5932 #endif
5933 	N_("Vim is open source and freely distributable"),
5934 	"",
5935 	N_("Help poor children in Uganda!"),
5936 	N_("type  :help iccf<Enter>       for information "),
5937 	"",
5938 	N_("type  :q<Enter>               to exit         "),
5939 	N_("type  :help<Enter>  or  <F1>  for on-line help"),
5940 	N_("type  :help version8<Enter>   for version info"),
5941 	NULL,
5942 	"",
5943 	N_("Running in Vi compatible mode"),
5944 	N_("type  :set nocp<Enter>        for Vim defaults"),
5945 	N_("type  :help cp-default<Enter> for info on this"),
5946     };
5947 #ifdef FEAT_GUI
5948     static char	*(gui_lines[]) =
5949     {
5950 	NULL,
5951 	NULL,
5952 	NULL,
5953 	NULL,
5954 #ifdef MODIFIED_BY
5955 	NULL,
5956 #endif
5957 	NULL,
5958 	NULL,
5959 	NULL,
5960 	N_("menu  Help->Orphans           for information    "),
5961 	NULL,
5962 	N_("Running modeless, typed text is inserted"),
5963 	N_("menu  Edit->Global Settings->Toggle Insert Mode  "),
5964 	N_("                              for two modes      "),
5965 	NULL,
5966 	NULL,
5967 	NULL,
5968 	N_("menu  Edit->Global Settings->Toggle Vi Compatible"),
5969 	N_("                              for Vim defaults   "),
5970     };
5971 #endif
5972 
5973     // blanklines = screen height - # message lines
5974     blanklines = (int)Rows - ((sizeof(lines) / sizeof(char *)) - 1);
5975     if (!p_cp)
5976 	blanklines += 4;  // add 4 for not showing "Vi compatible" message
5977 
5978     // Don't overwrite a statusline.  Depends on 'cmdheight'.
5979     if (p_ls > 1)
5980 	blanklines -= Rows - topframe->fr_height;
5981     if (blanklines < 0)
5982 	blanklines = 0;
5983 
5984     // Show the sponsor and register message one out of four times, the Uganda
5985     // message two out of four times.
5986     sponsor = (int)time(NULL);
5987     sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0);
5988 
5989     // start displaying the message lines after half of the blank lines
5990     row = blanklines / 2;
5991     if ((row >= 2 && Columns >= 50) || colon)
5992     {
5993 	for (i = 0; i < (int)(sizeof(lines) / sizeof(char *)); ++i)
5994 	{
5995 	    p = lines[i];
5996 #ifdef FEAT_GUI
5997 	    if (p_im && gui.in_use && gui_lines[i] != NULL)
5998 		p = gui_lines[i];
5999 #endif
6000 	    if (p == NULL)
6001 	    {
6002 		if (!p_cp)
6003 		    break;
6004 		continue;
6005 	    }
6006 	    if (sponsor != 0)
6007 	    {
6008 		if (strstr(p, "children") != NULL)
6009 		    p = sponsor < 0
6010 			? N_("Sponsor Vim development!")
6011 			: N_("Become a registered Vim user!");
6012 		else if (strstr(p, "iccf") != NULL)
6013 		    p = sponsor < 0
6014 			? N_("type  :help sponsor<Enter>    for information ")
6015 			: N_("type  :help register<Enter>   for information ");
6016 		else if (strstr(p, "Orphans") != NULL)
6017 		    p = N_("menu  Help->Sponsor/Register  for information    ");
6018 	    }
6019 	    if (*p != NUL)
6020 		do_intro_line(row, (char_u *)_(p), i == 2, 0);
6021 	    ++row;
6022 	}
6023     }
6024 
6025     // Make the wait-return message appear just below the text.
6026     if (colon)
6027 	msg_row = row;
6028 }
6029 
6030     static void
6031 do_intro_line(
6032     int		row,
6033     char_u	*mesg,
6034     int		add_version,
6035     int		attr)
6036 {
6037     char_u	vers[20];
6038     int		col;
6039     char_u	*p;
6040     int		l;
6041     int		clen;
6042 #ifdef MODIFIED_BY
6043 # define MODBY_LEN 150
6044     char_u	modby[MODBY_LEN];
6045 
6046     if (*mesg == ' ')
6047     {
6048 	vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1);
6049 	l = (int)STRLEN(modby);
6050 	vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1);
6051 	mesg = modby;
6052     }
6053 #endif
6054 
6055     // Center the message horizontally.
6056     col = vim_strsize(mesg);
6057     if (add_version)
6058     {
6059 	STRCPY(vers, mediumVersion);
6060 	if (highest_patch())
6061 	{
6062 	    // Check for 9.9x or 9.9xx, alpha/beta version
6063 	    if (isalpha((int)vers[3]))
6064 	    {
6065 		int len = (isalpha((int)vers[4])) ? 5 : 4;
6066 		sprintf((char *)vers + len, ".%d%s", highest_patch(),
6067 							 mediumVersion + len);
6068 	    }
6069 	    else
6070 		sprintf((char *)vers + 3, ".%d", highest_patch());
6071 	}
6072 	col += (int)STRLEN(vers);
6073     }
6074     col = (Columns - col) / 2;
6075     if (col < 0)
6076 	col = 0;
6077 
6078     // Split up in parts to highlight <> items differently.
6079     for (p = mesg; *p != NUL; p += l)
6080     {
6081 	clen = 0;
6082 	for (l = 0; p[l] != NUL
6083 			 && (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l)
6084 	{
6085 	    if (has_mbyte)
6086 	    {
6087 		clen += ptr2cells(p + l);
6088 		l += (*mb_ptr2len)(p + l) - 1;
6089 	    }
6090 	    else
6091 		clen += byte2cells(p[l]);
6092 	}
6093 	screen_puts_len(p, l, row, col, *p == '<' ? HL_ATTR(HLF_8) : attr);
6094 	col += clen;
6095     }
6096 
6097     // Add the version number to the version line.
6098     if (add_version)
6099 	screen_puts(vers, row, col, 0);
6100 }
6101 
6102 /*
6103  * ":intro": clear screen, display intro screen and wait for return.
6104  */
6105     void
6106 ex_intro(exarg_T *eap UNUSED)
6107 {
6108     screenclear();
6109     intro_message(TRUE);
6110     wait_return(TRUE);
6111 }
6112