From 0ed7309fdbbaf6669bf95589d23fee7565959ef2 Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Sun, 10 Dec 2023 07:28:01 -0800 Subject: [PATCH] Add ncurses 6.4 --- Makefile | 1 + third_party/BUILD.mk | 1 + third_party/ncurses/BUILD.mk | 132 + third_party/ncurses/LICENSE | 29 + third_party/ncurses/README.cosmo | 15 + third_party/ncurses/SigAction.h | 110 + third_party/ncurses/access.c | 260 ++ third_party/ncurses/add_tries.c | 123 + third_party/ncurses/alloc_entry.c | 405 ++ third_party/ncurses/alloc_ttype.c | 702 +++ third_party/ncurses/build.priv.h | 108 + third_party/ncurses/capdefaults.inc | 87 + third_party/ncurses/captoinfo.c | 1059 +++++ third_party/ncurses/charable.c | 85 + third_party/ncurses/codes.c | 675 +++ third_party/ncurses/comp_captab.c | 3424 +++++++++++++++ third_party/ncurses/comp_error.c | 168 + third_party/ncurses/comp_expand.c | 228 + third_party/ncurses/comp_hash.c | 150 + third_party/ncurses/comp_parse.c | 771 ++++ third_party/ncurses/comp_scan.c | 1060 +++++ third_party/ncurses/comp_userdefs.c | 1225 ++++++ third_party/ncurses/curses.h | 2114 +++++++++ third_party/ncurses/curses.priv.h | 2579 +++++++++++ third_party/ncurses/db_iterator.c | 457 ++ third_party/ncurses/define_key.c | 86 + third_party/ncurses/doalloc.c | 62 + third_party/ncurses/entries.c | 194 + third_party/ncurses/eti.h | 55 + third_party/ncurses/expanded.c | 61 + third_party/ncurses/fallback.c | 34 + third_party/ncurses/fifo_defs.h | 86 + third_party/ncurses/form.h | 460 ++ third_party/ncurses/free_ttype.c | 108 + third_party/ncurses/getenv_num.c | 76 + third_party/ncurses/hardscroll.c | 373 ++ third_party/ncurses/hashed_db.c | 342 ++ third_party/ncurses/hashed_db.h | 72 + third_party/ncurses/hashmap.c | 592 +++ third_party/ncurses/hashsize.h | 6 + third_party/ncurses/home_terminfo.c | 67 + third_party/ncurses/init_keytry.c | 112 + third_party/ncurses/init_keytry.h | 164 + third_party/ncurses/key_defined.c | 87 + third_party/ncurses/keybound.c | 64 + third_party/ncurses/keyok.c | 103 + third_party/ncurses/legacy_coding.c | 58 + third_party/ncurses/lib_acs.c | 326 ++ third_party/ncurses/lib_add_wch.c | 444 ++ third_party/ncurses/lib_addch.c | 602 +++ third_party/ncurses/lib_addstr.c | 255 ++ third_party/ncurses/lib_baudrate.c | 317 ++ third_party/ncurses/lib_beep.c | 91 + third_party/ncurses/lib_bkgd.c | 273 ++ third_party/ncurses/lib_box.c | 140 + third_party/ncurses/lib_box_set.c | 114 + third_party/ncurses/lib_cchar.c | 158 + third_party/ncurses/lib_chgat.c | 80 + third_party/ncurses/lib_clear.c | 57 + third_party/ncurses/lib_clearok.c | 56 + third_party/ncurses/lib_clrbot.c | 77 + third_party/ncurses/lib_clreol.c | 92 + third_party/ncurses/lib_color.c | 1166 +++++ third_party/ncurses/lib_colorset.c | 65 + third_party/ncurses/lib_cur_term.c | 200 + third_party/ncurses/lib_data.c | 406 ++ third_party/ncurses/lib_delch.c | 70 + third_party/ncurses/lib_delwin.c | 102 + third_party/ncurses/lib_dft_fgbg.c | 104 + third_party/ncurses/lib_echo.c | 84 + third_party/ncurses/lib_endwin.c | 80 + third_party/ncurses/lib_erase.c | 97 + third_party/ncurses/lib_erasewchar.c | 96 + third_party/ncurses/lib_flash.c | 88 + third_party/ncurses/lib_freeall.c | 201 + third_party/ncurses/lib_gen.c | 1170 +++++ third_party/ncurses/lib_get_wch.c | 121 + third_party/ncurses/lib_get_wstr.c | 233 + third_party/ncurses/lib_getch.c | 802 ++++ third_party/ncurses/lib_getstr.c | 227 + third_party/ncurses/lib_has_cap.c | 95 + third_party/ncurses/lib_hline.c | 89 + third_party/ncurses/lib_hline_set.c | 78 + third_party/ncurses/lib_immedok.c | 55 + third_party/ncurses/lib_in_wch.c | 65 + third_party/ncurses/lib_in_wchnstr.c | 77 + third_party/ncurses/lib_inchstr.c | 69 + third_party/ncurses/lib_initscr.c | 110 + third_party/ncurses/lib_ins_wch.c | 150 + third_party/ncurses/lib_insch.c | 165 + third_party/ncurses/lib_insdel.c | 64 + third_party/ncurses/lib_insnstr.c | 96 + third_party/ncurses/lib_instr.c | 122 + third_party/ncurses/lib_inwstr.c | 114 + third_party/ncurses/lib_isendwin.c | 62 + third_party/ncurses/lib_kernel.c | 195 + third_party/ncurses/lib_key_name.c | 62 + third_party/ncurses/lib_keyname.c | 421 ++ third_party/ncurses/lib_leaveok.c | 56 + third_party/ncurses/lib_longname.c | 104 + third_party/ncurses/lib_mouse.c | 2056 +++++++++ third_party/ncurses/lib_move.c | 61 + third_party/ncurses/lib_mvcur.c | 1416 ++++++ third_party/ncurses/lib_mvwin.c | 121 + third_party/ncurses/lib_napms.c | 94 + third_party/ncurses/lib_newterm.c | 375 ++ third_party/ncurses/lib_newwin.c | 406 ++ third_party/ncurses/lib_nl.c | 96 + third_party/ncurses/lib_options.c | 378 ++ third_party/ncurses/lib_overlay.c | 223 + third_party/ncurses/lib_pad.c | 349 ++ third_party/ncurses/lib_pecho_wchar.c | 58 + third_party/ncurses/lib_print.c | 113 + third_party/ncurses/lib_printw.c | 167 + third_party/ncurses/lib_raw.c | 397 ++ third_party/ncurses/lib_redrawln.c | 88 + third_party/ncurses/lib_refresh.c | 307 ++ third_party/ncurses/lib_restart.c | 118 + third_party/ncurses/lib_scanw.c | 126 + third_party/ncurses/lib_screen.c | 1082 +++++ third_party/ncurses/lib_scroll.c | 153 + third_party/ncurses/lib_scrollok.c | 56 + third_party/ncurses/lib_scrreg.c | 61 + third_party/ncurses/lib_set_term.c | 872 ++++ third_party/ncurses/lib_setup.c | 1021 +++++ third_party/ncurses/lib_slk.c | 254 ++ third_party/ncurses/lib_slk_wset.c | 78 + third_party/ncurses/lib_slkatr_set.c | 81 + third_party/ncurses/lib_slkatrof.c | 67 + third_party/ncurses/lib_slkatron.c | 67 + third_party/ncurses/lib_slkatrset.c | 62 + third_party/ncurses/lib_slkattr.c | 65 + third_party/ncurses/lib_slkclear.c | 75 + third_party/ncurses/lib_slkcolor.c | 91 + third_party/ncurses/lib_slkinit.c | 89 + third_party/ncurses/lib_slklab.c | 62 + third_party/ncurses/lib_slkrefr.c | 188 + third_party/ncurses/lib_slkset.c | 157 + third_party/ncurses/lib_slktouch.c | 62 + third_party/ncurses/lib_termcap.c | 429 ++ third_party/ncurses/lib_termname.c | 59 + third_party/ncurses/lib_tgoto.c | 212 + third_party/ncurses/lib_ti.c | 188 + third_party/ncurses/lib_touch.c | 98 + third_party/ncurses/lib_tparm.c | 1219 ++++++ third_party/ncurses/lib_tputs.c | 455 ++ third_party/ncurses/lib_trace.c | 464 ++ third_party/ncurses/lib_traceatr.c | 417 ++ third_party/ncurses/lib_tracebits.c | 303 ++ third_party/ncurses/lib_tracechr.c | 88 + third_party/ncurses/lib_tracedmp.c | 187 + third_party/ncurses/lib_tracemse.c | 158 + third_party/ncurses/lib_tstp.c | 428 ++ third_party/ncurses/lib_ttyflags.c | 330 ++ third_party/ncurses/lib_twait.c | 518 +++ third_party/ncurses/lib_unget_wch.c | 115 + third_party/ncurses/lib_ungetch.c | 94 + third_party/ncurses/lib_vid_attr.c | 367 ++ third_party/ncurses/lib_vidattr.c | 431 ++ third_party/ncurses/lib_vline.c | 89 + third_party/ncurses/lib_vline_set.c | 78 + third_party/ncurses/lib_wacs.c | 149 + third_party/ncurses/lib_wattroff.c | 65 + third_party/ncurses/lib_wattron.c | 67 + third_party/ncurses/lib_winch.c | 55 + third_party/ncurses/lib_window.c | 254 ++ third_party/ncurses/lib_wunctrl.c | 71 + third_party/ncurses/menu.h | 281 ++ third_party/ncurses/mf_common.h | 98 + third_party/ncurses/name_match.c | 126 + third_party/ncurses/names.c | 1379 ++++++ third_party/ncurses/nc_access.h | 80 + third_party/ncurses/nc_alloc.h | 127 + third_party/ncurses/nc_mingw.h | 89 + third_party/ncurses/nc_panel.c | 54 + third_party/ncurses/nc_panel.h | 80 + third_party/ncurses/nc_string.h | 90 + third_party/ncurses/nc_termios.h | 168 + third_party/ncurses/nc_tparm.h | 92 + third_party/ncurses/nc_win32.h | 183 + third_party/ncurses/ncurses_cfg.h | 244 ++ third_party/ncurses/ncurses_def.h | 948 ++++ third_party/ncurses/ncurses_dll.h | 99 + third_party/ncurses/ncurses_mingw.h | 82 + third_party/ncurses/new_pair.c | 393 ++ third_party/ncurses/new_pair.h | 139 + third_party/ncurses/obsolete.c | 240 ++ third_party/ncurses/panel.h | 100 + third_party/ncurses/parametrized.h | 429 ++ third_party/ncurses/parse_entry.c | 1149 +++++ third_party/ncurses/read_entry.c | 905 ++++ third_party/ncurses/read_termcap.c | 4055 ++++++++++++++++++ third_party/ncurses/resizeterm.c | 540 +++ third_party/ncurses/safe_sprintf.c | 293 ++ third_party/ncurses/strings.c | 144 + third_party/ncurses/term.h | 893 ++++ third_party/ncurses/term.priv.h | 335 ++ third_party/ncurses/term_entry.h | 239 ++ third_party/ncurses/termcap.h | 73 + third_party/ncurses/tic.h | 396 ++ third_party/ncurses/trace_buf.c | 121 + third_party/ncurses/trace_tries.c | 82 + third_party/ncurses/trace_xnames.c | 79 + third_party/ncurses/tries.c | 146 + third_party/ncurses/trim_sgr0.c | 336 ++ third_party/ncurses/tty_update.c | 2291 ++++++++++ third_party/ncurses/unctrl.c | 147 + third_party/ncurses/unctrl.h | 68 + third_party/ncurses/use_screen.c | 63 + third_party/ncurses/use_window.c | 54 + third_party/ncurses/varargs.c | 192 + third_party/ncurses/version.c | 43 + third_party/ncurses/visbuf.c | 378 ++ third_party/ncurses/vsscanf.c | 357 ++ third_party/ncurses/wcwidth.h | 328 ++ third_party/ncurses/win32_curses.h | 75 + third_party/ncurses/wresize.c | 277 ++ third_party/ncurses/write_entry.c | 945 ++++ third_party/pcre/BUILD.mk | 2 +- usr/share/terminfo/1/1178 | Bin 0 -> 437 bytes usr/share/terminfo/1/1730-lm | Bin 0 -> 411 bytes usr/share/terminfo/2/2621 | Bin 0 -> 622 bytes usr/share/terminfo/2/2621-wl | Bin 0 -> 622 bytes usr/share/terminfo/2/2621A | Bin 0 -> 622 bytes usr/share/terminfo/2/2621a | Bin 0 -> 622 bytes usr/share/terminfo/3/386at | Bin 0 -> 1420 bytes usr/share/terminfo/3/3b1 | Bin 0 -> 1011 bytes usr/share/terminfo/4/4025ex | Bin 0 -> 681 bytes usr/share/terminfo/4/4027ex | Bin 0 -> 681 bytes usr/share/terminfo/4/4410-w | Bin 0 -> 1152 bytes usr/share/terminfo/5/5051 | Bin 0 -> 399 bytes usr/share/terminfo/5/5410-w | Bin 0 -> 1152 bytes usr/share/terminfo/5/5620 | Bin 0 -> 630 bytes usr/share/terminfo/5/5630-24 | Bin 0 -> 1186 bytes usr/share/terminfo/5/5630DMD-24 | Bin 0 -> 1186 bytes usr/share/terminfo/6/6053 | Bin 0 -> 816 bytes usr/share/terminfo/6/6053-dg | Bin 0 -> 816 bytes usr/share/terminfo/6/605x | Bin 0 -> 816 bytes usr/share/terminfo/6/605x-dg | Bin 0 -> 816 bytes usr/share/terminfo/6/630-lm | Bin 0 -> 411 bytes usr/share/terminfo/6/630MTG-24 | Bin 0 -> 1186 bytes usr/share/terminfo/7/730MTG-24 | Bin 0 -> 1898 bytes usr/share/terminfo/7/730MTG-41 | Bin 0 -> 1898 bytes usr/share/terminfo/7/730MTG-41r | Bin 0 -> 1913 bytes usr/share/terminfo/7/730MTGr | Bin 0 -> 1903 bytes usr/share/terminfo/7/730MTGr-24 | Bin 0 -> 1913 bytes usr/share/terminfo/8/8510 | Bin 0 -> 431 bytes usr/share/terminfo/9/955-hb | Bin 0 -> 1052 bytes usr/share/terminfo/9/955-w | Bin 0 -> 1048 bytes usr/share/terminfo/9/9term | Bin 0 -> 850 bytes usr/share/terminfo/A/Apple_Terminal | Bin 0 -> 1958 bytes usr/share/terminfo/E/Eterm | Bin 0 -> 2224 bytes usr/share/terminfo/E/Eterm-256color | Bin 0 -> 2402 bytes usr/share/terminfo/E/Eterm-88color | Bin 0 -> 2394 bytes usr/share/terminfo/E/Eterm-color | Bin 0 -> 2224 bytes usr/share/terminfo/L/LFT-PC850 | Bin 0 -> 1295 bytes usr/share/terminfo/M/MtxOrb | Bin 0 -> 187 bytes usr/share/terminfo/M/MtxOrb162 | Bin 0 -> 193 bytes usr/share/terminfo/M/MtxOrb204 | Bin 0 -> 193 bytes usr/share/terminfo/N/NCR260VT300WPP | Bin 0 -> 1850 bytes usr/share/terminfo/N/NCRVT100WPP | Bin 0 -> 1509 bytes usr/share/terminfo/P/P12 | Bin 0 -> 1149 bytes usr/share/terminfo/P/P12-M | Bin 0 -> 666 bytes usr/share/terminfo/P/P12-M-W | Bin 0 -> 694 bytes usr/share/terminfo/P/P12-W | Bin 0 -> 1140 bytes usr/share/terminfo/P/P14 | Bin 0 -> 1149 bytes usr/share/terminfo/P/P14-M | Bin 0 -> 666 bytes usr/share/terminfo/P/P14-M-W | Bin 0 -> 694 bytes usr/share/terminfo/P/P14-W | Bin 0 -> 1140 bytes usr/share/terminfo/P/P4 | Bin 0 -> 743 bytes usr/share/terminfo/P/P5 | Bin 0 -> 743 bytes usr/share/terminfo/P/P7 | Bin 0 -> 553 bytes usr/share/terminfo/P/P8 | Bin 0 -> 582 bytes usr/share/terminfo/P/P8-W | Bin 0 -> 614 bytes usr/share/terminfo/P/P9 | Bin 0 -> 1145 bytes usr/share/terminfo/P/P9-8 | Bin 0 -> 652 bytes usr/share/terminfo/P/P9-8-W | Bin 0 -> 694 bytes usr/share/terminfo/P/P9-W | Bin 0 -> 1136 bytes usr/share/terminfo/Q/Q306-8-pc | Bin 0 -> 1529 bytes usr/share/terminfo/Q/Q310-vip-H | Bin 0 -> 1299 bytes usr/share/terminfo/Q/Q310-vip-H-am | Bin 0 -> 1299 bytes usr/share/terminfo/Q/Q310-vip-Hw | Bin 0 -> 1293 bytes usr/share/terminfo/Q/Q310-vip-w | Bin 0 -> 1295 bytes usr/share/terminfo/Q/Q310-vip-w-am | Bin 0 -> 1295 bytes usr/share/terminfo/X/X-hpterm | Bin 0 -> 1387 bytes usr/share/terminfo/X/X-hpterm-color2 | Bin 0 -> 1787 bytes usr/share/terminfo/a/a210 | Bin 0 -> 571 bytes usr/share/terminfo/a/a80 | Bin 0 -> 481 bytes usr/share/terminfo/a/a980 | Bin 0 -> 444 bytes usr/share/terminfo/a/aa4080 | Bin 0 -> 473 bytes usr/share/terminfo/a/aaa | Bin 0 -> 1289 bytes usr/share/terminfo/a/aaa+dec | Bin 0 -> 526 bytes usr/share/terminfo/a/aaa+rv | Bin 0 -> 477 bytes usr/share/terminfo/a/aaa+unk | Bin 0 -> 1238 bytes usr/share/terminfo/a/aaa-18 | Bin 0 -> 1257 bytes usr/share/terminfo/a/aaa-18-rv | Bin 0 -> 1303 bytes usr/share/terminfo/a/aaa-20 | Bin 0 -> 1257 bytes usr/share/terminfo/a/aaa-22 | Bin 0 -> 1257 bytes usr/share/terminfo/a/aaa-24 | Bin 0 -> 1257 bytes usr/share/terminfo/a/aaa-24-rv | Bin 0 -> 1303 bytes usr/share/terminfo/a/aaa-26 | Bin 0 -> 1269 bytes usr/share/terminfo/a/aaa-28 | Bin 0 -> 1269 bytes usr/share/terminfo/a/aaa-30 | Bin 0 -> 1289 bytes usr/share/terminfo/a/aaa-30-ctxt | Bin 0 -> 1287 bytes usr/share/terminfo/a/aaa-30-rv | Bin 0 -> 1325 bytes usr/share/terminfo/a/aaa-30-rv-ctxt | Bin 0 -> 1337 bytes usr/share/terminfo/a/aaa-30-s | Bin 0 -> 1362 bytes usr/share/terminfo/a/aaa-30-s-ctxt | Bin 0 -> 1372 bytes usr/share/terminfo/a/aaa-30-s-rv | Bin 0 -> 1410 bytes usr/share/terminfo/a/aaa-30-s-rv-ct | Bin 0 -> 1420 bytes usr/share/terminfo/a/aaa-36 | Bin 0 -> 1269 bytes usr/share/terminfo/a/aaa-36-rv | Bin 0 -> 1315 bytes usr/share/terminfo/a/aaa-40 | Bin 0 -> 1269 bytes usr/share/terminfo/a/aaa-40-rv | Bin 0 -> 1315 bytes usr/share/terminfo/a/aaa-48 | Bin 0 -> 1269 bytes usr/share/terminfo/a/aaa-48-rv | Bin 0 -> 1315 bytes usr/share/terminfo/a/aaa-60 | Bin 0 -> 1237 bytes usr/share/terminfo/a/aaa-60-dec-rv | Bin 0 -> 1432 bytes usr/share/terminfo/a/aaa-60-rv | Bin 0 -> 1283 bytes usr/share/terminfo/a/aaa-60-s | Bin 0 -> 1296 bytes usr/share/terminfo/a/aaa-60-s-rv | Bin 0 -> 1344 bytes usr/share/terminfo/a/aaa-ctxt | Bin 0 -> 1287 bytes usr/share/terminfo/a/aaa-db | Bin 0 -> 1268 bytes usr/share/terminfo/a/aaa-rv | Bin 0 -> 1325 bytes usr/share/terminfo/a/aaa-rv-ctxt | Bin 0 -> 1337 bytes usr/share/terminfo/a/aaa-rv-unk | Bin 0 -> 484 bytes usr/share/terminfo/a/aaa-s | Bin 0 -> 1362 bytes usr/share/terminfo/a/aaa-s-ctxt | Bin 0 -> 1372 bytes usr/share/terminfo/a/aaa-s-rv | Bin 0 -> 1410 bytes usr/share/terminfo/a/aaa-s-rv-ctxt | Bin 0 -> 1420 bytes usr/share/terminfo/a/aaa-unk | Bin 0 -> 1238 bytes usr/share/terminfo/a/aas1901 | Bin 0 -> 359 bytes usr/share/terminfo/a/abm80 | Bin 0 -> 253 bytes usr/share/terminfo/a/abm85 | Bin 0 -> 484 bytes usr/share/terminfo/a/abm85e | Bin 0 -> 524 bytes usr/share/terminfo/a/abm85h | Bin 0 -> 560 bytes usr/share/terminfo/a/abm85h-old | Bin 0 -> 551 bytes usr/share/terminfo/a/absolute | Bin 0 -> 2669 bytes usr/share/terminfo/a/act4 | Bin 0 -> 473 bytes usr/share/terminfo/a/act5 | Bin 0 -> 498 bytes usr/share/terminfo/a/addrinfo | Bin 0 -> 351 bytes usr/share/terminfo/a/adds200 | Bin 0 -> 728 bytes usr/share/terminfo/a/adds980 | Bin 0 -> 444 bytes usr/share/terminfo/a/addsviewpoint | Bin 0 -> 471 bytes usr/share/terminfo/a/addsvp60 | Bin 0 -> 520 bytes usr/share/terminfo/a/adm+sgr | Bin 0 -> 172 bytes usr/share/terminfo/a/adm1 | Bin 0 -> 350 bytes usr/share/terminfo/a/adm11 | Bin 0 -> 1083 bytes usr/share/terminfo/a/adm1178 | Bin 0 -> 437 bytes usr/share/terminfo/a/adm12 | Bin 0 -> 636 bytes usr/share/terminfo/a/adm1a | Bin 0 -> 350 bytes usr/share/terminfo/a/adm2 | Bin 0 -> 402 bytes usr/share/terminfo/a/adm20 | Bin 0 -> 441 bytes usr/share/terminfo/a/adm21 | Bin 0 -> 1007 bytes usr/share/terminfo/a/adm22 | Bin 0 -> 502 bytes usr/share/terminfo/a/adm3 | Bin 0 -> 342 bytes usr/share/terminfo/a/adm31 | Bin 0 -> 502 bytes usr/share/terminfo/a/adm31-old | Bin 0 -> 470 bytes usr/share/terminfo/a/adm36 | Bin 0 -> 1160 bytes usr/share/terminfo/a/adm3a | Bin 0 -> 935 bytes usr/share/terminfo/a/adm3a+ | Bin 0 -> 939 bytes usr/share/terminfo/a/adm42 | Bin 0 -> 459 bytes usr/share/terminfo/a/adm42-ns | Bin 0 -> 521 bytes usr/share/terminfo/a/adm5 | Bin 0 -> 953 bytes usr/share/terminfo/a/aepro | Bin 0 -> 199 bytes usr/share/terminfo/a/aixterm | Bin 0 -> 1862 bytes usr/share/terminfo/a/aixterm+sl | Bin 0 -> 356 bytes usr/share/terminfo/a/aixterm-16color | Bin 0 -> 1889 bytes usr/share/terminfo/a/aixterm-m | Bin 0 -> 1538 bytes usr/share/terminfo/a/aixterm-m-old | Bin 0 -> 1530 bytes usr/share/terminfo/a/aj | Bin 0 -> 357 bytes usr/share/terminfo/a/aj510 | Bin 0 -> 404 bytes usr/share/terminfo/a/aj830 | Bin 0 -> 357 bytes usr/share/terminfo/a/aj832 | Bin 0 -> 357 bytes usr/share/terminfo/a/alacritty | Bin 0 -> 3683 bytes usr/share/terminfo/a/alacritty+common | Bin 0 -> 3617 bytes usr/share/terminfo/a/alacritty-direct | Bin 0 -> 3639 bytes usr/share/terminfo/a/alt2 | Bin 0 -> 857 bytes usr/share/terminfo/a/alt3 | Bin 0 -> 891 bytes usr/share/terminfo/a/alt4 | Bin 0 -> 1195 bytes usr/share/terminfo/a/alt5 | Bin 0 -> 891 bytes usr/share/terminfo/a/alt7 | Bin 0 -> 864 bytes usr/share/terminfo/a/alt7pc | Bin 0 -> 875 bytes usr/share/terminfo/a/alto-h19 | Bin 0 -> 641 bytes usr/share/terminfo/a/alto-heath | Bin 0 -> 641 bytes usr/share/terminfo/a/altoh19 | Bin 0 -> 641 bytes usr/share/terminfo/a/altoheath | Bin 0 -> 641 bytes usr/share/terminfo/a/altos-2 | Bin 0 -> 857 bytes usr/share/terminfo/a/altos-3 | Bin 0 -> 891 bytes usr/share/terminfo/a/altos-4 | Bin 0 -> 1195 bytes usr/share/terminfo/a/altos-5 | Bin 0 -> 891 bytes usr/share/terminfo/a/altos2 | Bin 0 -> 857 bytes usr/share/terminfo/a/altos3 | Bin 0 -> 891 bytes usr/share/terminfo/a/altos4 | Bin 0 -> 1195 bytes usr/share/terminfo/a/altos5 | Bin 0 -> 891 bytes usr/share/terminfo/a/altos7 | Bin 0 -> 864 bytes usr/share/terminfo/a/altos7pc | Bin 0 -> 875 bytes usr/share/terminfo/a/ambas | Bin 0 -> 1289 bytes usr/share/terminfo/a/ambassador | Bin 0 -> 1289 bytes usr/share/terminfo/a/amiga | Bin 0 -> 682 bytes usr/share/terminfo/a/amiga-8bit | Bin 0 -> 719 bytes usr/share/terminfo/a/amiga-h | Bin 0 -> 655 bytes usr/share/terminfo/a/amiga-vnc | Bin 0 -> 1456 bytes usr/share/terminfo/a/amp219 | Bin 0 -> 709 bytes usr/share/terminfo/a/amp219w | Bin 0 -> 696 bytes usr/share/terminfo/a/ampex-219 | Bin 0 -> 709 bytes usr/share/terminfo/a/ampex-219w | Bin 0 -> 696 bytes usr/share/terminfo/a/ampex-232 | Bin 0 -> 502 bytes usr/share/terminfo/a/ampex175 | Bin 0 -> 412 bytes usr/share/terminfo/a/ampex175-b | Bin 0 -> 444 bytes usr/share/terminfo/a/ampex210 | Bin 0 -> 571 bytes usr/share/terminfo/a/ampex219 | Bin 0 -> 709 bytes usr/share/terminfo/a/ampex219w | Bin 0 -> 696 bytes usr/share/terminfo/a/ampex232 | Bin 0 -> 502 bytes usr/share/terminfo/a/ampex232w | Bin 0 -> 508 bytes usr/share/terminfo/a/ampex80 | Bin 0 -> 481 bytes usr/share/terminfo/a/annarbor4080 | Bin 0 -> 473 bytes usr/share/terminfo/a/ansi | Bin 0 -> 1481 bytes usr/share/terminfo/a/ansi+arrows | Bin 0 -> 260 bytes usr/share/terminfo/a/ansi+cpr | Bin 0 -> 658 bytes usr/share/terminfo/a/ansi+csr | Bin 0 -> 349 bytes usr/share/terminfo/a/ansi+cup | Bin 0 -> 101 bytes usr/share/terminfo/a/ansi+enq | Bin 0 -> 685 bytes usr/share/terminfo/a/ansi+erase | Bin 0 -> 77 bytes usr/share/terminfo/a/ansi+idc | Bin 0 -> 306 bytes usr/share/terminfo/a/ansi+idc1 | Bin 0 -> 180 bytes usr/share/terminfo/a/ansi+idl | Bin 0 -> 294 bytes usr/share/terminfo/a/ansi+idl1 | Bin 0 -> 166 bytes usr/share/terminfo/a/ansi+inittabs | Bin 0 -> 338 bytes usr/share/terminfo/a/ansi+local | Bin 0 -> 348 bytes usr/share/terminfo/a/ansi+local1 | Bin 0 -> 110 bytes usr/share/terminfo/a/ansi+pp | Bin 0 -> 318 bytes usr/share/terminfo/a/ansi+rca | Bin 0 -> 350 bytes usr/share/terminfo/a/ansi+rca2 | Bin 0 -> 332 bytes usr/share/terminfo/a/ansi+rep | Bin 0 -> 308 bytes usr/share/terminfo/a/ansi+sgr | Bin 0 -> 368 bytes usr/share/terminfo/a/ansi+sgrbold | Bin 0 -> 463 bytes usr/share/terminfo/a/ansi+sgrdim | Bin 0 -> 463 bytes usr/share/terminfo/a/ansi+sgrso | Bin 0 -> 139 bytes usr/share/terminfo/a/ansi+sgrul | Bin 0 -> 143 bytes usr/share/terminfo/a/ansi+tabs | Bin 0 -> 322 bytes usr/share/terminfo/a/ansi-color-2-emx | Bin 0 -> 1716 bytes usr/share/terminfo/a/ansi-color-3-emx | Bin 0 -> 1713 bytes usr/share/terminfo/a/ansi-emx | Bin 0 -> 1718 bytes usr/share/terminfo/a/ansi-generic | Bin 0 -> 756 bytes usr/share/terminfo/a/ansi-m | Bin 0 -> 1370 bytes usr/share/terminfo/a/ansi-mini | Bin 0 -> 418 bytes usr/share/terminfo/a/ansi-mono | Bin 0 -> 1370 bytes usr/share/terminfo/a/ansi-mr | Bin 0 -> 377 bytes usr/share/terminfo/a/ansi-mtabs | Bin 0 -> 464 bytes usr/share/terminfo/a/ansi-nt | Bin 0 -> 476 bytes usr/share/terminfo/a/ansi.sys | Bin 0 -> 1570 bytes usr/share/terminfo/a/ansi.sys-old | Bin 0 -> 1256 bytes usr/share/terminfo/a/ansi.sysk | Bin 0 -> 1831 bytes usr/share/terminfo/a/ansi43m | Bin 0 -> 735 bytes usr/share/terminfo/a/ansi77 | Bin 0 -> 543 bytes usr/share/terminfo/a/ansi80x25 | Bin 0 -> 1502 bytes usr/share/terminfo/a/ansi80x25-mono | Bin 0 -> 1478 bytes usr/share/terminfo/a/ansi80x25-raw | Bin 0 -> 1459 bytes usr/share/terminfo/a/ansi80x30 | Bin 0 -> 1496 bytes usr/share/terminfo/a/ansi80x30-mono | Bin 0 -> 1252 bytes usr/share/terminfo/a/ansi80x43 | Bin 0 -> 1496 bytes usr/share/terminfo/a/ansi80x43-mono | Bin 0 -> 1252 bytes usr/share/terminfo/a/ansi80x50 | Bin 0 -> 1502 bytes usr/share/terminfo/a/ansi80x50-mono | Bin 0 -> 1264 bytes usr/share/terminfo/a/ansi80x60 | Bin 0 -> 1496 bytes usr/share/terminfo/a/ansi80x60-mono | Bin 0 -> 1252 bytes usr/share/terminfo/a/ansil | Bin 0 -> 1502 bytes usr/share/terminfo/a/ansil-mono | Bin 0 -> 1264 bytes usr/share/terminfo/a/ansis | Bin 0 -> 1502 bytes usr/share/terminfo/a/ansis-mono | Bin 0 -> 1478 bytes usr/share/terminfo/a/ansisysk | Bin 0 -> 1831 bytes usr/share/terminfo/a/ansiterm | Bin 0 -> 756 bytes usr/share/terminfo/a/ansiw | Bin 0 -> 1459 bytes usr/share/terminfo/a/ap-vm80 | Bin 0 -> 203 bytes usr/share/terminfo/a/apl | Bin 0 -> 424 bytes usr/share/terminfo/a/apollo | Bin 0 -> 431 bytes usr/share/terminfo/a/apollo+vt132 | Bin 0 -> 1318 bytes usr/share/terminfo/a/apollo_15P | Bin 0 -> 1308 bytes usr/share/terminfo/a/apollo_19L | Bin 0 -> 1308 bytes usr/share/terminfo/a/apollo_color | Bin 0 -> 1308 bytes usr/share/terminfo/a/apple-80 | Bin 0 -> 207 bytes usr/share/terminfo/a/apple-ae | Bin 0 -> 421 bytes usr/share/terminfo/a/apple-soroc | Bin 0 -> 382 bytes usr/share/terminfo/a/apple-uterm | Bin 0 -> 438 bytes usr/share/terminfo/a/apple-uterm-vb | Bin 0 -> 498 bytes usr/share/terminfo/a/apple-videx | Bin 0 -> 466 bytes usr/share/terminfo/a/apple-videx2 | Bin 0 -> 452 bytes usr/share/terminfo/a/apple-videx3 | Bin 0 -> 370 bytes usr/share/terminfo/a/apple-vm80 | Bin 0 -> 203 bytes usr/share/terminfo/a/apple2e | Bin 0 -> 395 bytes usr/share/terminfo/a/apple2e-p | Bin 0 -> 431 bytes usr/share/terminfo/a/apple80p | Bin 0 -> 262 bytes usr/share/terminfo/a/appleII | Bin 0 -> 428 bytes usr/share/terminfo/a/appleIIc | Bin 0 -> 461 bytes usr/share/terminfo/a/appleIIe | Bin 0 -> 461 bytes usr/share/terminfo/a/appleIIgs | Bin 0 -> 461 bytes usr/share/terminfo/a/arm100 | Bin 0 -> 1474 bytes usr/share/terminfo/a/arm100-am | Bin 0 -> 1474 bytes usr/share/terminfo/a/arm100-w | Bin 0 -> 1478 bytes usr/share/terminfo/a/arm100-wam | Bin 0 -> 1478 bytes usr/share/terminfo/a/at | Bin 0 -> 856 bytes usr/share/terminfo/a/at-color | Bin 0 -> 1966 bytes usr/share/terminfo/a/at-m | Bin 0 -> 856 bytes usr/share/terminfo/a/at386 | Bin 0 -> 1420 bytes usr/share/terminfo/a/atari | Bin 0 -> 856 bytes usr/share/terminfo/a/atari-color | Bin 0 -> 1966 bytes usr/share/terminfo/a/atari-m | Bin 0 -> 856 bytes usr/share/terminfo/a/atari-old | Bin 0 -> 426 bytes usr/share/terminfo/a/atari_st | Bin 0 -> 856 bytes usr/share/terminfo/a/atari_st-color | Bin 0 -> 1966 bytes usr/share/terminfo/a/atarist-m | Bin 0 -> 856 bytes usr/share/terminfo/a/aterm | Bin 0 -> 2192 bytes usr/share/terminfo/a/att2300 | Bin 0 -> 1031 bytes usr/share/terminfo/a/att2350 | Bin 0 -> 1012 bytes usr/share/terminfo/a/att4410 | Bin 0 -> 1136 bytes usr/share/terminfo/a/att4410-w | Bin 0 -> 1152 bytes usr/share/terminfo/a/att4410v1 | Bin 0 -> 1129 bytes usr/share/terminfo/a/att4410v1-w | Bin 0 -> 1135 bytes usr/share/terminfo/a/att4415 | Bin 0 -> 1384 bytes usr/share/terminfo/a/att4415+nl | Bin 0 -> 471 bytes usr/share/terminfo/a/att4415-nl | Bin 0 -> 1380 bytes usr/share/terminfo/a/att4415-rv | Bin 0 -> 1396 bytes usr/share/terminfo/a/att4415-rv-nl | Bin 0 -> 1404 bytes usr/share/terminfo/a/att4415-w | Bin 0 -> 1390 bytes usr/share/terminfo/a/att4415-w-nl | Bin 0 -> 1396 bytes usr/share/terminfo/a/att4415-w-rv | Bin 0 -> 1402 bytes usr/share/terminfo/a/att4415-w-rv-n | Bin 0 -> 1410 bytes usr/share/terminfo/a/att4418 | Bin 0 -> 906 bytes usr/share/terminfo/a/att4418-w | Bin 0 -> 910 bytes usr/share/terminfo/a/att4420 | Bin 0 -> 543 bytes usr/share/terminfo/a/att4424 | Bin 0 -> 775 bytes usr/share/terminfo/a/att4424-1 | Bin 0 -> 796 bytes usr/share/terminfo/a/att4424m | Bin 0 -> 486 bytes usr/share/terminfo/a/att4425 | Bin 0 -> 1606 bytes usr/share/terminfo/a/att4425-nl | Bin 0 -> 1634 bytes usr/share/terminfo/a/att4425-w | Bin 0 -> 1634 bytes usr/share/terminfo/a/att4426 | Bin 0 -> 807 bytes usr/share/terminfo/a/att500 | Bin 0 -> 1892 bytes usr/share/terminfo/a/att505 | Bin 0 -> 1183 bytes usr/share/terminfo/a/att505-22 | Bin 0 -> 1179 bytes usr/share/terminfo/a/att505-24 | Bin 0 -> 1147 bytes usr/share/terminfo/a/att510a | Bin 0 -> 1247 bytes usr/share/terminfo/a/att510d | Bin 0 -> 1386 bytes usr/share/terminfo/a/att513 | Bin 0 -> 1892 bytes usr/share/terminfo/a/att5310 | Bin 0 -> 1865 bytes usr/share/terminfo/a/att5320 | Bin 0 -> 1865 bytes usr/share/terminfo/a/att5410 | Bin 0 -> 1136 bytes usr/share/terminfo/a/att5410-w | Bin 0 -> 1152 bytes usr/share/terminfo/a/att5410v1 | Bin 0 -> 1129 bytes usr/share/terminfo/a/att5410v1-w | Bin 0 -> 1135 bytes usr/share/terminfo/a/att5418 | Bin 0 -> 906 bytes usr/share/terminfo/a/att5418-w | Bin 0 -> 910 bytes usr/share/terminfo/a/att5420 | Bin 0 -> 1384 bytes usr/share/terminfo/a/att5420+nl | Bin 0 -> 471 bytes usr/share/terminfo/a/att5420-nl | Bin 0 -> 1380 bytes usr/share/terminfo/a/att5420-rv | Bin 0 -> 1396 bytes usr/share/terminfo/a/att5420-rv-nl | Bin 0 -> 1404 bytes usr/share/terminfo/a/att5420-w | Bin 0 -> 1390 bytes usr/share/terminfo/a/att5420-w-nl | Bin 0 -> 1396 bytes usr/share/terminfo/a/att5420-w-rv | Bin 0 -> 1402 bytes usr/share/terminfo/a/att5420-w-rv-n | Bin 0 -> 1410 bytes usr/share/terminfo/a/att5420_2 | Bin 0 -> 1638 bytes usr/share/terminfo/a/att5420_2-w | Bin 0 -> 1650 bytes usr/share/terminfo/a/att5425 | Bin 0 -> 1606 bytes usr/share/terminfo/a/att5425-nl | Bin 0 -> 1634 bytes usr/share/terminfo/a/att5425-w | Bin 0 -> 1634 bytes usr/share/terminfo/a/att5430 | Bin 0 -> 1183 bytes usr/share/terminfo/a/att5620 | Bin 0 -> 630 bytes usr/share/terminfo/a/att5620-1 | Bin 0 -> 547 bytes usr/share/terminfo/a/att5620-24 | Bin 0 -> 632 bytes usr/share/terminfo/a/att5620-34 | Bin 0 -> 632 bytes usr/share/terminfo/a/att5620-s | Bin 0 -> 470 bytes usr/share/terminfo/a/att605 | Bin 0 -> 1353 bytes usr/share/terminfo/a/att605-pc | Bin 0 -> 1529 bytes usr/share/terminfo/a/att605-w | Bin 0 -> 1379 bytes usr/share/terminfo/a/att610 | Bin 0 -> 1479 bytes usr/share/terminfo/a/att610+cvis | Bin 0 -> 134 bytes usr/share/terminfo/a/att610+cvis0 | Bin 0 -> 106 bytes usr/share/terminfo/a/att610-103k | Bin 0 -> 1697 bytes usr/share/terminfo/a/att610-103k-w | Bin 0 -> 1695 bytes usr/share/terminfo/a/att610-w | Bin 0 -> 1477 bytes usr/share/terminfo/a/att615 | Bin 0 -> 1607 bytes usr/share/terminfo/a/att615-103k | Bin 0 -> 1697 bytes usr/share/terminfo/a/att615-103k-w | Bin 0 -> 1695 bytes usr/share/terminfo/a/att615-w | Bin 0 -> 1605 bytes usr/share/terminfo/a/att620 | Bin 0 -> 1616 bytes usr/share/terminfo/a/att620-103k | Bin 0 -> 1706 bytes usr/share/terminfo/a/att620-103k-w | Bin 0 -> 1710 bytes usr/share/terminfo/a/att620-w | Bin 0 -> 1620 bytes usr/share/terminfo/a/att630 | Bin 0 -> 1146 bytes usr/share/terminfo/a/att630-24 | Bin 0 -> 1186 bytes usr/share/terminfo/a/att6386 | Bin 0 -> 1420 bytes usr/share/terminfo/a/att700 | Bin 0 -> 1716 bytes usr/share/terminfo/a/att730 | Bin 0 -> 1882 bytes usr/share/terminfo/a/att730-24 | Bin 0 -> 1898 bytes usr/share/terminfo/a/att730-41 | Bin 0 -> 1898 bytes usr/share/terminfo/a/att7300 | Bin 0 -> 1011 bytes usr/share/terminfo/a/att730r | Bin 0 -> 1903 bytes usr/share/terminfo/a/att730r-24 | Bin 0 -> 1913 bytes usr/share/terminfo/a/att730r-41 | Bin 0 -> 1913 bytes usr/share/terminfo/a/avatar | Bin 0 -> 697 bytes usr/share/terminfo/a/avatar0 | Bin 0 -> 645 bytes usr/share/terminfo/a/avatar0+ | Bin 0 -> 660 bytes usr/share/terminfo/a/avatar1 | Bin 0 -> 697 bytes usr/share/terminfo/a/avt | Bin 0 -> 1226 bytes usr/share/terminfo/a/avt+s | Bin 0 -> 441 bytes usr/share/terminfo/a/avt-ns | Bin 0 -> 1143 bytes usr/share/terminfo/a/avt-rv | Bin 0 -> 1247 bytes usr/share/terminfo/a/avt-rv-ns | Bin 0 -> 1190 bytes usr/share/terminfo/a/avt-rv-s | Bin 0 -> 1247 bytes usr/share/terminfo/a/avt-s | Bin 0 -> 1226 bytes usr/share/terminfo/a/avt-w | Bin 0 -> 1226 bytes usr/share/terminfo/a/avt-w-ns | Bin 0 -> 1166 bytes usr/share/terminfo/a/avt-w-rv | Bin 0 -> 1253 bytes usr/share/terminfo/a/avt-w-rv-ns | Bin 0 -> 1203 bytes usr/share/terminfo/a/avt-w-rv-s | Bin 0 -> 1253 bytes usr/share/terminfo/a/avt-w-s | Bin 0 -> 1226 bytes usr/share/terminfo/a/aws | Bin 0 -> 1071 bytes usr/share/terminfo/a/awsc | Bin 0 -> 1017 bytes usr/share/terminfo/b/b-128 | Bin 0 -> 1032 bytes usr/share/terminfo/b/bantam | Bin 0 -> 421 bytes usr/share/terminfo/b/basic4 | Bin 0 -> 606 bytes usr/share/terminfo/b/basis | Bin 0 -> 1011 bytes usr/share/terminfo/b/bct510a | Bin 0 -> 1247 bytes usr/share/terminfo/b/bct510d | Bin 0 -> 1386 bytes usr/share/terminfo/b/beacon | Bin 0 -> 592 bytes usr/share/terminfo/b/bee | Bin 0 -> 509 bytes usr/share/terminfo/b/beehive | Bin 0 -> 509 bytes usr/share/terminfo/b/beehive3 | Bin 0 -> 422 bytes usr/share/terminfo/b/beehive4 | Bin 0 -> 333 bytes usr/share/terminfo/b/beehiveIIIm | Bin 0 -> 422 bytes usr/share/terminfo/b/beterm | Bin 0 -> 1282 bytes usr/share/terminfo/b/bg1.25 | Bin 0 -> 523 bytes usr/share/terminfo/b/bg1.25nv | Bin 0 -> 570 bytes usr/share/terminfo/b/bg1.25rv | Bin 0 -> 572 bytes usr/share/terminfo/b/bg2.0 | Bin 0 -> 560 bytes usr/share/terminfo/b/bg2.0nv | Bin 0 -> 609 bytes usr/share/terminfo/b/bg2.0rv | Bin 0 -> 591 bytes usr/share/terminfo/b/bg3.10 | Bin 0 -> 560 bytes usr/share/terminfo/b/bg3.10nv | Bin 0 -> 609 bytes usr/share/terminfo/b/bg3.10rv | Bin 0 -> 591 bytes usr/share/terminfo/b/bh3m | Bin 0 -> 422 bytes usr/share/terminfo/b/bh4 | Bin 0 -> 333 bytes usr/share/terminfo/b/bitgraph | Bin 0 -> 609 bytes usr/share/terminfo/b/blit | Bin 0 -> 490 bytes usr/share/terminfo/b/bobcat | Bin 0 -> 516 bytes usr/share/terminfo/b/bq300 | Bin 0 -> 1685 bytes usr/share/terminfo/b/bq300-8 | Bin 0 -> 1548 bytes usr/share/terminfo/b/bq300-8-pc | Bin 0 -> 1529 bytes usr/share/terminfo/b/bq300-8-pc-rv | Bin 0 -> 1533 bytes usr/share/terminfo/b/bq300-8-pc-w | Bin 0 -> 1519 bytes usr/share/terminfo/b/bq300-8-pc-w-rv | Bin 0 -> 1531 bytes usr/share/terminfo/b/bq300-8rv | Bin 0 -> 1556 bytes usr/share/terminfo/b/bq300-8w | Bin 0 -> 1543 bytes usr/share/terminfo/b/bq300-pc | Bin 0 -> 1635 bytes usr/share/terminfo/b/bq300-pc-rv | Bin 0 -> 1639 bytes usr/share/terminfo/b/bq300-pc-w | Bin 0 -> 1635 bytes usr/share/terminfo/b/bq300-pc-w-rv | Bin 0 -> 1643 bytes usr/share/terminfo/b/bq300-rv | Bin 0 -> 1675 bytes usr/share/terminfo/b/bq300-w | Bin 0 -> 1667 bytes usr/share/terminfo/b/bq300-w-8rv | Bin 0 -> 1559 bytes usr/share/terminfo/b/bq300-w-rv | Bin 0 -> 1683 bytes usr/share/terminfo/b/bracketed+paste | Bin 0 -> 120 bytes usr/share/terminfo/b/bsdos-pc | Bin 0 -> 1285 bytes usr/share/terminfo/b/bsdos-pc-m | Bin 0 -> 1249 bytes usr/share/terminfo/b/bsdos-pc-mono | Bin 0 -> 1249 bytes usr/share/terminfo/b/bsdos-pc-nobold | Bin 0 -> 1300 bytes usr/share/terminfo/b/bsdos-ppc | Bin 0 -> 1287 bytes usr/share/terminfo/b/bsdos-sparc | Bin 0 -> 984 bytes usr/share/terminfo/b/bterm | Bin 0 -> 1155 bytes usr/share/terminfo/c/c100 | Bin 0 -> 832 bytes usr/share/terminfo/c/c100-1p | Bin 0 -> 810 bytes usr/share/terminfo/c/c100-4p | Bin 0 -> 832 bytes usr/share/terminfo/c/c100-rv | Bin 0 -> 838 bytes usr/share/terminfo/c/c100-rv-4p | Bin 0 -> 838 bytes usr/share/terminfo/c/c104 | Bin 0 -> 832 bytes usr/share/terminfo/c/c108 | Bin 0 -> 950 bytes usr/share/terminfo/c/c108-4p | Bin 0 -> 933 bytes usr/share/terminfo/c/c108-8p | Bin 0 -> 950 bytes usr/share/terminfo/c/c108-rv | Bin 0 -> 940 bytes usr/share/terminfo/c/c108-rv-4p | Bin 0 -> 950 bytes usr/share/terminfo/c/c108-rv-8p | Bin 0 -> 940 bytes usr/share/terminfo/c/c108-w | Bin 0 -> 970 bytes usr/share/terminfo/c/c108-w-8p | Bin 0 -> 970 bytes usr/share/terminfo/c/c300 | Bin 0 -> 560 bytes usr/share/terminfo/c/c301 | Bin 0 -> 551 bytes usr/share/terminfo/c/c321 | Bin 0 -> 551 bytes usr/share/terminfo/c/ca22851 | Bin 0 -> 362 bytes usr/share/terminfo/c/cad68-2 | Bin 0 -> 338 bytes usr/share/terminfo/c/cad68-3 | Bin 0 -> 170 bytes usr/share/terminfo/c/cbblit | Bin 0 -> 554 bytes usr/share/terminfo/c/cbunix | Bin 0 -> 431 bytes usr/share/terminfo/c/cci | Bin 0 -> 527 bytes usr/share/terminfo/c/cci1 | Bin 0 -> 527 bytes usr/share/terminfo/c/cdc456 | Bin 0 -> 394 bytes usr/share/terminfo/c/cdc721 | Bin 0 -> 294 bytes usr/share/terminfo/c/cdc721-esc | Bin 0 -> 655 bytes usr/share/terminfo/c/cdc721ll | Bin 0 -> 312 bytes usr/share/terminfo/c/cdc752 | Bin 0 -> 395 bytes usr/share/terminfo/c/cdc756 | Bin 0 -> 570 bytes usr/share/terminfo/c/cg7900 | Bin 0 -> 523 bytes usr/share/terminfo/c/cgc2 | Bin 0 -> 338 bytes usr/share/terminfo/c/cgc3 | Bin 0 -> 170 bytes usr/share/terminfo/c/chromatics | Bin 0 -> 523 bytes usr/share/terminfo/c/ci8510 | Bin 0 -> 431 bytes usr/share/terminfo/c/cit-80 | Bin 0 -> 424 bytes usr/share/terminfo/c/cit101 | Bin 0 -> 592 bytes usr/share/terminfo/c/cit101e | Bin 0 -> 602 bytes usr/share/terminfo/c/cit101e-132 | Bin 0 -> 610 bytes usr/share/terminfo/c/cit101e-n | Bin 0 -> 602 bytes usr/share/terminfo/c/cit101e-n132 | Bin 0 -> 618 bytes usr/share/terminfo/c/cit101e-rv | Bin 0 -> 1352 bytes usr/share/terminfo/c/cit500 | Bin 0 -> 887 bytes usr/share/terminfo/c/cit80 | Bin 0 -> 424 bytes usr/share/terminfo/c/citc | Bin 0 -> 592 bytes usr/share/terminfo/c/citoh | Bin 0 -> 431 bytes usr/share/terminfo/c/citoh-6lpi | Bin 0 -> 444 bytes usr/share/terminfo/c/citoh-8lpi | Bin 0 -> 444 bytes usr/share/terminfo/c/citoh-comp | Bin 0 -> 462 bytes usr/share/terminfo/c/citoh-elite | Bin 0 -> 438 bytes usr/share/terminfo/c/citoh-pica | Bin 0 -> 428 bytes usr/share/terminfo/c/citoh-prop | Bin 0 -> 462 bytes usr/share/terminfo/c/citoh-ps | Bin 0 -> 462 bytes usr/share/terminfo/c/coco3 | Bin 0 -> 377 bytes usr/share/terminfo/c/coherent | Bin 0 -> 456 bytes usr/share/terminfo/c/color_xterm | Bin 0 -> 1608 bytes usr/share/terminfo/c/colorscan | Bin 0 -> 440 bytes usr/share/terminfo/c/commodore | Bin 0 -> 1032 bytes usr/share/terminfo/c/concept | Bin 0 -> 832 bytes usr/share/terminfo/c/concept-avt | Bin 0 -> 1226 bytes usr/share/terminfo/c/concept100 | Bin 0 -> 832 bytes usr/share/terminfo/c/concept100-rv | Bin 0 -> 838 bytes usr/share/terminfo/c/concept108 | Bin 0 -> 950 bytes usr/share/terminfo/c/concept108-4p | Bin 0 -> 933 bytes usr/share/terminfo/c/concept108-8p | Bin 0 -> 950 bytes usr/share/terminfo/c/concept108-w-8 | Bin 0 -> 970 bytes usr/share/terminfo/c/concept108-w8p | Bin 0 -> 970 bytes usr/share/terminfo/c/concept108rv4p | Bin 0 -> 950 bytes usr/share/terminfo/c/cons25 | Bin 0 -> 1502 bytes usr/share/terminfo/c/cons25-debian | Bin 0 -> 1519 bytes usr/share/terminfo/c/cons25-iso-m | Bin 0 -> 1476 bytes usr/share/terminfo/c/cons25-iso8859 | Bin 0 -> 1510 bytes usr/share/terminfo/c/cons25-koi8-r | Bin 0 -> 1510 bytes usr/share/terminfo/c/cons25-koi8r-m | Bin 0 -> 1524 bytes usr/share/terminfo/c/cons25-m | Bin 0 -> 1478 bytes usr/share/terminfo/c/cons25l1 | Bin 0 -> 1510 bytes usr/share/terminfo/c/cons25l1-m | Bin 0 -> 1476 bytes usr/share/terminfo/c/cons25r | Bin 0 -> 1510 bytes usr/share/terminfo/c/cons25r-m | Bin 0 -> 1524 bytes usr/share/terminfo/c/cons25w | Bin 0 -> 1459 bytes usr/share/terminfo/c/cons30 | Bin 0 -> 1496 bytes usr/share/terminfo/c/cons30-m | Bin 0 -> 1252 bytes usr/share/terminfo/c/cons43 | Bin 0 -> 1496 bytes usr/share/terminfo/c/cons43-m | Bin 0 -> 1252 bytes usr/share/terminfo/c/cons50 | Bin 0 -> 1502 bytes usr/share/terminfo/c/cons50-iso-m | Bin 0 -> 1270 bytes usr/share/terminfo/c/cons50-iso8859 | Bin 0 -> 1522 bytes usr/share/terminfo/c/cons50-koi8r | Bin 0 -> 1508 bytes usr/share/terminfo/c/cons50-koi8r-m | Bin 0 -> 1298 bytes usr/share/terminfo/c/cons50-m | Bin 0 -> 1264 bytes usr/share/terminfo/c/cons50l1 | Bin 0 -> 1522 bytes usr/share/terminfo/c/cons50l1-m | Bin 0 -> 1270 bytes usr/share/terminfo/c/cons50r | Bin 0 -> 1508 bytes usr/share/terminfo/c/cons50r-m | Bin 0 -> 1298 bytes usr/share/terminfo/c/cons60 | Bin 0 -> 1496 bytes usr/share/terminfo/c/cons60-iso | Bin 0 -> 1518 bytes usr/share/terminfo/c/cons60-iso-m | Bin 0 -> 1270 bytes usr/share/terminfo/c/cons60-koi8r | Bin 0 -> 1508 bytes usr/share/terminfo/c/cons60-koi8r-m | Bin 0 -> 1298 bytes usr/share/terminfo/c/cons60-m | Bin 0 -> 1252 bytes usr/share/terminfo/c/cons60l1 | Bin 0 -> 1518 bytes usr/share/terminfo/c/cons60l1-m | Bin 0 -> 1270 bytes usr/share/terminfo/c/cons60r | Bin 0 -> 1508 bytes usr/share/terminfo/c/cons60r-m | Bin 0 -> 1298 bytes usr/share/terminfo/c/contel300 | Bin 0 -> 560 bytes usr/share/terminfo/c/contel301 | Bin 0 -> 551 bytes usr/share/terminfo/c/contel320 | Bin 0 -> 560 bytes usr/share/terminfo/c/contel321 | Bin 0 -> 551 bytes usr/share/terminfo/c/cops | Bin 0 -> 370 bytes usr/share/terminfo/c/cops-10 | Bin 0 -> 370 bytes usr/share/terminfo/c/cops10 | Bin 0 -> 370 bytes usr/share/terminfo/c/crt | Bin 0 -> 1575 bytes usr/share/terminfo/c/crt-vt220 | Bin 0 -> 1575 bytes usr/share/terminfo/c/cs10 | Bin 0 -> 440 bytes usr/share/terminfo/c/cs10-w | Bin 0 -> 450 bytes usr/share/terminfo/c/ct82 | Bin 0 -> 400 bytes usr/share/terminfo/c/ct8500 | Bin 0 -> 417 bytes usr/share/terminfo/c/ctrm | Bin 0 -> 1513 bytes usr/share/terminfo/c/cx | Bin 0 -> 1608 bytes usr/share/terminfo/c/cx100 | Bin 0 -> 1608 bytes usr/share/terminfo/c/cyb110 | Bin 0 -> 476 bytes usr/share/terminfo/c/cyb83 | Bin 0 -> 414 bytes usr/share/terminfo/c/cygwin | Bin 0 -> 1518 bytes usr/share/terminfo/c/cygwinB19 | Bin 0 -> 1625 bytes usr/share/terminfo/c/cygwinDBG | Bin 0 -> 1530 bytes usr/share/terminfo/d/d132 | Bin 0 -> 405 bytes usr/share/terminfo/d/d2 | Bin 0 -> 816 bytes usr/share/terminfo/d/d2-dg | Bin 0 -> 816 bytes usr/share/terminfo/d/d200 | Bin 0 -> 960 bytes usr/share/terminfo/d/d200-dg | Bin 0 -> 960 bytes usr/share/terminfo/d/d210 | Bin 0 -> 1333 bytes usr/share/terminfo/d/d210-dg | Bin 0 -> 990 bytes usr/share/terminfo/d/d211 | Bin 0 -> 1283 bytes usr/share/terminfo/d/d211-7b | Bin 0 -> 1372 bytes usr/share/terminfo/d/d211-dg | Bin 0 -> 1005 bytes usr/share/terminfo/d/d214 | Bin 0 -> 1333 bytes usr/share/terminfo/d/d214-dg | Bin 0 -> 990 bytes usr/share/terminfo/d/d215 | Bin 0 -> 1283 bytes usr/share/terminfo/d/d215-7b | Bin 0 -> 1372 bytes usr/share/terminfo/d/d215-dg | Bin 0 -> 1005 bytes usr/share/terminfo/d/d216+ | Bin 0 -> 1170 bytes usr/share/terminfo/d/d216+25 | Bin 0 -> 1170 bytes usr/share/terminfo/d/d216+dg | Bin 0 -> 1031 bytes usr/share/terminfo/d/d216-dg | Bin 0 -> 1031 bytes usr/share/terminfo/d/d216-unix | Bin 0 -> 1170 bytes usr/share/terminfo/d/d216-unix-25 | Bin 0 -> 1170 bytes usr/share/terminfo/d/d216e+ | Bin 0 -> 1170 bytes usr/share/terminfo/d/d216e+dg | Bin 0 -> 1031 bytes usr/share/terminfo/d/d216e-dg | Bin 0 -> 1031 bytes usr/share/terminfo/d/d216e-unix | Bin 0 -> 1170 bytes usr/share/terminfo/d/d217-dg | Bin 0 -> 1031 bytes usr/share/terminfo/d/d217-unix | Bin 0 -> 1144 bytes usr/share/terminfo/d/d217-unix-25 | Bin 0 -> 1162 bytes usr/share/terminfo/d/d220 | Bin 0 -> 1981 bytes usr/share/terminfo/d/d220-7b | Bin 0 -> 2054 bytes usr/share/terminfo/d/d220-dg | Bin 0 -> 1486 bytes usr/share/terminfo/d/d230 | Bin 0 -> 2146 bytes usr/share/terminfo/d/d230-dg | Bin 0 -> 1482 bytes usr/share/terminfo/d/d230c | Bin 0 -> 2146 bytes usr/share/terminfo/d/d230c-dg | Bin 0 -> 1482 bytes usr/share/terminfo/d/d400 | Bin 0 -> 1154 bytes usr/share/terminfo/d/d400-dg | Bin 0 -> 1154 bytes usr/share/terminfo/d/d410 | Bin 0 -> 1502 bytes usr/share/terminfo/d/d410-7b | Bin 0 -> 1575 bytes usr/share/terminfo/d/d410-7b-w | Bin 0 -> 1606 bytes usr/share/terminfo/d/d410-dg | Bin 0 -> 1175 bytes usr/share/terminfo/d/d410-w | Bin 0 -> 1541 bytes usr/share/terminfo/d/d411 | Bin 0 -> 1502 bytes usr/share/terminfo/d/d411-7b | Bin 0 -> 1575 bytes usr/share/terminfo/d/d411-7b-w | Bin 0 -> 1606 bytes usr/share/terminfo/d/d411-dg | Bin 0 -> 1175 bytes usr/share/terminfo/d/d411-w | Bin 0 -> 1541 bytes usr/share/terminfo/d/d412+ | Bin 0 -> 1347 bytes usr/share/terminfo/d/d412+25 | Bin 0 -> 1371 bytes usr/share/terminfo/d/d412+dg | Bin 0 -> 1199 bytes usr/share/terminfo/d/d412+s | Bin 0 -> 1423 bytes usr/share/terminfo/d/d412+sr | Bin 0 -> 1417 bytes usr/share/terminfo/d/d412+w | Bin 0 -> 1367 bytes usr/share/terminfo/d/d412-dg | Bin 0 -> 1199 bytes usr/share/terminfo/d/d412-unix | Bin 0 -> 1347 bytes usr/share/terminfo/d/d412-unix-25 | Bin 0 -> 1371 bytes usr/share/terminfo/d/d412-unix-s | Bin 0 -> 1423 bytes usr/share/terminfo/d/d412-unix-sr | Bin 0 -> 1417 bytes usr/share/terminfo/d/d412-unix-w | Bin 0 -> 1367 bytes usr/share/terminfo/d/d413-dg | Bin 0 -> 1199 bytes usr/share/terminfo/d/d413-unix | Bin 0 -> 1335 bytes usr/share/terminfo/d/d413-unix-25 | Bin 0 -> 1355 bytes usr/share/terminfo/d/d413-unix-s | Bin 0 -> 1409 bytes usr/share/terminfo/d/d413-unix-sr | Bin 0 -> 1403 bytes usr/share/terminfo/d/d413-unix-w | Bin 0 -> 1355 bytes usr/share/terminfo/d/d414-unix | Bin 0 -> 1321 bytes usr/share/terminfo/d/d414-unix-25 | Bin 0 -> 1341 bytes usr/share/terminfo/d/d414-unix-s | Bin 0 -> 1403 bytes usr/share/terminfo/d/d414-unix-sr | Bin 0 -> 1395 bytes usr/share/terminfo/d/d414-unix-w | Bin 0 -> 1341 bytes usr/share/terminfo/d/d430-dg | Bin 0 -> 1552 bytes usr/share/terminfo/d/d430-dg-ccc | Bin 0 -> 1821 bytes usr/share/terminfo/d/d430-unix | Bin 0 -> 1730 bytes usr/share/terminfo/d/d430-unix-25 | Bin 0 -> 1750 bytes usr/share/terminfo/d/d430-unix-25-ccc | Bin 0 -> 1749 bytes usr/share/terminfo/d/d430-unix-ccc | Bin 0 -> 1729 bytes usr/share/terminfo/d/d430-unix-s | Bin 0 -> 1810 bytes usr/share/terminfo/d/d430-unix-s-ccc | Bin 0 -> 1809 bytes usr/share/terminfo/d/d430-unix-sr | Bin 0 -> 1804 bytes usr/share/terminfo/d/d430-unix-sr-ccc | Bin 0 -> 1803 bytes usr/share/terminfo/d/d430-unix-w | Bin 0 -> 1748 bytes usr/share/terminfo/d/d430-unix-w-ccc | Bin 0 -> 1749 bytes usr/share/terminfo/d/d430c-dg | Bin 0 -> 1552 bytes usr/share/terminfo/d/d430c-dg-ccc | Bin 0 -> 1821 bytes usr/share/terminfo/d/d430c-unix | Bin 0 -> 1730 bytes usr/share/terminfo/d/d430c-unix-25 | Bin 0 -> 1750 bytes usr/share/terminfo/d/d430c-unix-25-ccc | Bin 0 -> 1749 bytes usr/share/terminfo/d/d430c-unix-ccc | Bin 0 -> 1729 bytes usr/share/terminfo/d/d430c-unix-s | Bin 0 -> 1810 bytes usr/share/terminfo/d/d430c-unix-s-ccc | Bin 0 -> 1809 bytes usr/share/terminfo/d/d430c-unix-sr | Bin 0 -> 1804 bytes usr/share/terminfo/d/d430c-unix-sr-ccc | Bin 0 -> 1803 bytes usr/share/terminfo/d/d430c-unix-w | Bin 0 -> 1748 bytes usr/share/terminfo/d/d430c-unix-w-ccc | Bin 0 -> 1749 bytes usr/share/terminfo/d/d450 | Bin 0 -> 1154 bytes usr/share/terminfo/d/d450-dg | Bin 0 -> 1154 bytes usr/share/terminfo/d/d460 | Bin 0 -> 1502 bytes usr/share/terminfo/d/d460-7b | Bin 0 -> 1575 bytes usr/share/terminfo/d/d460-7b-w | Bin 0 -> 1606 bytes usr/share/terminfo/d/d460-dg | Bin 0 -> 1175 bytes usr/share/terminfo/d/d460-w | Bin 0 -> 1541 bytes usr/share/terminfo/d/d461 | Bin 0 -> 1502 bytes usr/share/terminfo/d/d461-7b | Bin 0 -> 1575 bytes usr/share/terminfo/d/d461-7b-w | Bin 0 -> 1606 bytes usr/share/terminfo/d/d461-dg | Bin 0 -> 1175 bytes usr/share/terminfo/d/d461-w | Bin 0 -> 1541 bytes usr/share/terminfo/d/d462+ | Bin 0 -> 1347 bytes usr/share/terminfo/d/d462+25 | Bin 0 -> 1371 bytes usr/share/terminfo/d/d462+dg | Bin 0 -> 1199 bytes usr/share/terminfo/d/d462+s | Bin 0 -> 1423 bytes usr/share/terminfo/d/d462+sr | Bin 0 -> 1417 bytes usr/share/terminfo/d/d462+w | Bin 0 -> 1367 bytes usr/share/terminfo/d/d462-dg | Bin 0 -> 1199 bytes usr/share/terminfo/d/d462-unix | Bin 0 -> 1347 bytes usr/share/terminfo/d/d462-unix-25 | Bin 0 -> 1371 bytes usr/share/terminfo/d/d462-unix-s | Bin 0 -> 1423 bytes usr/share/terminfo/d/d462-unix-sr | Bin 0 -> 1417 bytes usr/share/terminfo/d/d462-unix-w | Bin 0 -> 1367 bytes usr/share/terminfo/d/d462e-dg | Bin 0 -> 1199 bytes usr/share/terminfo/d/d463-dg | Bin 0 -> 1199 bytes usr/share/terminfo/d/d463-unix | Bin 0 -> 1335 bytes usr/share/terminfo/d/d463-unix-25 | Bin 0 -> 1355 bytes usr/share/terminfo/d/d463-unix-s | Bin 0 -> 1409 bytes usr/share/terminfo/d/d463-unix-sr | Bin 0 -> 1403 bytes usr/share/terminfo/d/d463-unix-w | Bin 0 -> 1355 bytes usr/share/terminfo/d/d464-unix | Bin 0 -> 1321 bytes usr/share/terminfo/d/d464-unix-25 | Bin 0 -> 1341 bytes usr/share/terminfo/d/d464-unix-s | Bin 0 -> 1403 bytes usr/share/terminfo/d/d464-unix-sr | Bin 0 -> 1395 bytes usr/share/terminfo/d/d464-unix-w | Bin 0 -> 1341 bytes usr/share/terminfo/d/d470 | Bin 0 -> 2220 bytes usr/share/terminfo/d/d470-7b | Bin 0 -> 2297 bytes usr/share/terminfo/d/d470-dg | Bin 0 -> 1557 bytes usr/share/terminfo/d/d470c | Bin 0 -> 2220 bytes usr/share/terminfo/d/d470c-7b | Bin 0 -> 2297 bytes usr/share/terminfo/d/d470c-dg | Bin 0 -> 1557 bytes usr/share/terminfo/d/d555 | Bin 0 -> 1476 bytes usr/share/terminfo/d/d555-7b | Bin 0 -> 1539 bytes usr/share/terminfo/d/d555-7b-w | Bin 0 -> 1564 bytes usr/share/terminfo/d/d555-dg | Bin 0 -> 1145 bytes usr/share/terminfo/d/d555-w | Bin 0 -> 1507 bytes usr/share/terminfo/d/d577 | Bin 0 -> 1476 bytes usr/share/terminfo/d/d577-7b | Bin 0 -> 1539 bytes usr/share/terminfo/d/d577-7b-w | Bin 0 -> 1564 bytes usr/share/terminfo/d/d577-dg | Bin 0 -> 1159 bytes usr/share/terminfo/d/d577-w | Bin 0 -> 1507 bytes usr/share/terminfo/d/d578 | Bin 0 -> 1470 bytes usr/share/terminfo/d/d578-7b | Bin 0 -> 1533 bytes usr/share/terminfo/d/d578-dg | Bin 0 -> 1159 bytes usr/share/terminfo/d/d80 | Bin 0 -> 481 bytes usr/share/terminfo/d/d800 | Bin 0 -> 574 bytes usr/share/terminfo/d/darwin | Bin 0 -> 1195 bytes usr/share/terminfo/d/darwin-100x37 | Bin 0 -> 1217 bytes usr/share/terminfo/d/darwin-100x37-m | Bin 0 -> 987 bytes usr/share/terminfo/d/darwin-112x37 | Bin 0 -> 1217 bytes usr/share/terminfo/d/darwin-112x37-m | Bin 0 -> 987 bytes usr/share/terminfo/d/darwin-128x40 | Bin 0 -> 1217 bytes usr/share/terminfo/d/darwin-128x40-m | Bin 0 -> 987 bytes usr/share/terminfo/d/darwin-128x48 | Bin 0 -> 1217 bytes usr/share/terminfo/d/darwin-128x48-m | Bin 0 -> 987 bytes usr/share/terminfo/d/darwin-144x48 | Bin 0 -> 1217 bytes usr/share/terminfo/d/darwin-144x48-m | Bin 0 -> 987 bytes usr/share/terminfo/d/darwin-160x64 | Bin 0 -> 1217 bytes usr/share/terminfo/d/darwin-160x64-m | Bin 0 -> 987 bytes usr/share/terminfo/d/darwin-200x64 | Bin 0 -> 1217 bytes usr/share/terminfo/d/darwin-200x64-m | Bin 0 -> 987 bytes usr/share/terminfo/d/darwin-200x75 | Bin 0 -> 1217 bytes usr/share/terminfo/d/darwin-200x75-m | Bin 0 -> 987 bytes usr/share/terminfo/d/darwin-256x96 | Bin 0 -> 1217 bytes usr/share/terminfo/d/darwin-256x96-m | Bin 0 -> 987 bytes usr/share/terminfo/d/darwin-80x25 | Bin 0 -> 1213 bytes usr/share/terminfo/d/darwin-80x25-m | Bin 0 -> 985 bytes usr/share/terminfo/d/darwin-80x30 | Bin 0 -> 1213 bytes usr/share/terminfo/d/darwin-80x30-m | Bin 0 -> 985 bytes usr/share/terminfo/d/darwin-90x30 | Bin 0 -> 1213 bytes usr/share/terminfo/d/darwin-90x30-m | Bin 0 -> 985 bytes usr/share/terminfo/d/darwin-b | Bin 0 -> 1215 bytes usr/share/terminfo/d/darwin-f | Bin 0 -> 1227 bytes usr/share/terminfo/d/darwin-f2 | Bin 0 -> 1235 bytes usr/share/terminfo/d/darwin-m | Bin 0 -> 965 bytes usr/share/terminfo/d/darwin-m-b | Bin 0 -> 1011 bytes usr/share/terminfo/d/darwin-m-f | Bin 0 -> 1025 bytes usr/share/terminfo/d/darwin-m-f2 | Bin 0 -> 1033 bytes usr/share/terminfo/d/datagraphix | Bin 0 -> 405 bytes usr/share/terminfo/d/datamedia2500 | Bin 0 -> 467 bytes usr/share/terminfo/d/datapoint | Bin 0 -> 371 bytes usr/share/terminfo/d/dataspeed40 | Bin 0 -> 524 bytes usr/share/terminfo/d/dd5000 | Bin 0 -> 430 bytes usr/share/terminfo/d/ddr | Bin 0 -> 738 bytes usr/share/terminfo/d/ddr3180 | Bin 0 -> 738 bytes usr/share/terminfo/d/dec+pp | Bin 0 -> 298 bytes usr/share/terminfo/d/dec+sl | Bin 0 -> 363 bytes usr/share/terminfo/d/dec-vt100 | Bin 0 -> 1278 bytes usr/share/terminfo/d/dec-vt220 | Bin 0 -> 1409 bytes usr/share/terminfo/d/dec-vt330 | Bin 0 -> 1055 bytes usr/share/terminfo/d/dec-vt340 | Bin 0 -> 1055 bytes usr/share/terminfo/d/dec-vt400 | Bin 0 -> 1065 bytes usr/share/terminfo/d/decansi | Bin 0 -> 1523 bytes usr/share/terminfo/d/decid+cpr | Bin 0 -> 682 bytes usr/share/terminfo/d/decpro | Bin 0 -> 543 bytes usr/share/terminfo/d/decwriter | Bin 0 -> 354 bytes usr/share/terminfo/d/delta | Bin 0 -> 430 bytes usr/share/terminfo/d/dg+ccc | Bin 0 -> 1284 bytes usr/share/terminfo/d/dg+color | Bin 0 -> 1396 bytes usr/share/terminfo/d/dg+color8 | Bin 0 -> 1232 bytes usr/share/terminfo/d/dg+fixed | Bin 0 -> 1045 bytes usr/share/terminfo/d/dg-ansi | Bin 0 -> 957 bytes usr/share/terminfo/d/dg-generic | Bin 0 -> 792 bytes usr/share/terminfo/d/dg100 | Bin 0 -> 992 bytes usr/share/terminfo/d/dg200 | Bin 0 -> 434 bytes usr/share/terminfo/d/dg210 | Bin 0 -> 957 bytes usr/share/terminfo/d/dg211 | Bin 0 -> 427 bytes usr/share/terminfo/d/dg450 | Bin 0 -> 434 bytes usr/share/terminfo/d/dg460-ansi | Bin 0 -> 1245 bytes usr/share/terminfo/d/dg6053 | Bin 0 -> 816 bytes usr/share/terminfo/d/dg6053-old | Bin 0 -> 992 bytes usr/share/terminfo/d/dg605x | Bin 0 -> 816 bytes usr/share/terminfo/d/dg6134 | Bin 0 -> 434 bytes usr/share/terminfo/d/dgkeys+11 | Bin 0 -> 733 bytes usr/share/terminfo/d/dgkeys+15 | Bin 0 -> 806 bytes usr/share/terminfo/d/dgkeys+7b | Bin 0 -> 1101 bytes usr/share/terminfo/d/dgkeys+8b | Bin 0 -> 1029 bytes usr/share/terminfo/d/dgmode+color | Bin 0 -> 1053 bytes usr/share/terminfo/d/dgmode+color8 | Bin 0 -> 1029 bytes usr/share/terminfo/d/dgunix+ccc | Bin 0 -> 1026 bytes usr/share/terminfo/d/dgunix+fixed | Bin 0 -> 1053 bytes usr/share/terminfo/d/diablo | Bin 0 -> 429 bytes usr/share/terminfo/d/diablo-lm | Bin 0 -> 425 bytes usr/share/terminfo/d/diablo1620 | Bin 0 -> 391 bytes usr/share/terminfo/d/diablo1620-m8 | Bin 0 -> 417 bytes usr/share/terminfo/d/diablo1640 | Bin 0 -> 429 bytes usr/share/terminfo/d/diablo1640-lm | Bin 0 -> 425 bytes usr/share/terminfo/d/diablo1640-m8 | Bin 0 -> 417 bytes usr/share/terminfo/d/diablo1720 | Bin 0 -> 391 bytes usr/share/terminfo/d/diablo1730 | Bin 0 -> 429 bytes usr/share/terminfo/d/diablo1740 | Bin 0 -> 429 bytes usr/share/terminfo/d/diablo1740-lm | Bin 0 -> 411 bytes usr/share/terminfo/d/diablo450 | Bin 0 -> 391 bytes usr/share/terminfo/d/diablo630 | Bin 0 -> 429 bytes usr/share/terminfo/d/dialogue | Bin 0 -> 481 bytes usr/share/terminfo/d/dialogue80 | Bin 0 -> 481 bytes usr/share/terminfo/d/digilog | Bin 0 -> 354 bytes usr/share/terminfo/d/djgpp | Bin 0 -> 1378 bytes usr/share/terminfo/d/djgpp203 | Bin 0 -> 377 bytes usr/share/terminfo/d/djgpp204 | Bin 0 -> 1227 bytes usr/share/terminfo/d/dku7003 | Bin 0 -> 470 bytes usr/share/terminfo/d/dku7003-dumb | Bin 0 -> 402 bytes usr/share/terminfo/d/dku7102 | Bin 0 -> 1466 bytes usr/share/terminfo/d/dku7102-old | Bin 0 -> 1449 bytes usr/share/terminfo/d/dku7102-sna | Bin 0 -> 1441 bytes usr/share/terminfo/d/dku7103-sna | Bin 0 -> 1439 bytes usr/share/terminfo/d/dku7202 | Bin 0 -> 1500 bytes usr/share/terminfo/d/dm1520 | Bin 0 -> 414 bytes usr/share/terminfo/d/dm1521 | Bin 0 -> 414 bytes usr/share/terminfo/d/dm2500 | Bin 0 -> 467 bytes usr/share/terminfo/d/dm3025 | Bin 0 -> 476 bytes usr/share/terminfo/d/dm3045 | Bin 0 -> 487 bytes usr/share/terminfo/d/dm80 | Bin 0 -> 974 bytes usr/share/terminfo/d/dm80w | Bin 0 -> 1024 bytes usr/share/terminfo/d/dmchat | Bin 0 -> 471 bytes usr/share/terminfo/d/dmd | Bin 0 -> 630 bytes usr/share/terminfo/d/dmd-24 | Bin 0 -> 632 bytes usr/share/terminfo/d/dmd-34 | Bin 0 -> 632 bytes usr/share/terminfo/d/dmd1 | Bin 0 -> 547 bytes usr/share/terminfo/d/dmdt80 | Bin 0 -> 974 bytes usr/share/terminfo/d/dmdt80w | Bin 0 -> 1024 bytes usr/share/terminfo/d/dmterm | Bin 0 -> 488 bytes usr/share/terminfo/d/domterm | Bin 0 -> 3309 bytes usr/share/terminfo/d/dp3360 | Bin 0 -> 371 bytes usr/share/terminfo/d/dp8242 | Bin 0 -> 547 bytes usr/share/terminfo/d/ds40 | Bin 0 -> 524 bytes usr/share/terminfo/d/ds40-2 | Bin 0 -> 524 bytes usr/share/terminfo/d/dt-100 | Bin 0 -> 654 bytes usr/share/terminfo/d/dt-100w | Bin 0 -> 668 bytes usr/share/terminfo/d/dt100 | Bin 0 -> 654 bytes usr/share/terminfo/d/dt100w | Bin 0 -> 668 bytes usr/share/terminfo/d/dt110 | Bin 0 -> 710 bytes usr/share/terminfo/d/dt80 | Bin 0 -> 974 bytes usr/share/terminfo/d/dt80-sas | Bin 0 -> 580 bytes usr/share/terminfo/d/dt80w | Bin 0 -> 1024 bytes usr/share/terminfo/d/dtc300s | Bin 0 -> 354 bytes usr/share/terminfo/d/dtc382 | Bin 0 -> 396 bytes usr/share/terminfo/d/dtterm | Bin 0 -> 1557 bytes usr/share/terminfo/d/dumb | Bin 0 -> 308 bytes usr/share/terminfo/d/dumb-emacs-ansi | Bin 0 -> 898 bytes usr/share/terminfo/d/dvtm | Bin 0 -> 1715 bytes usr/share/terminfo/d/dvtm-256color | Bin 0 -> 1845 bytes usr/share/terminfo/d/dw | Bin 0 -> 354 bytes usr/share/terminfo/d/dw1 | Bin 0 -> 338 bytes usr/share/terminfo/d/dw2 | Bin 0 -> 354 bytes usr/share/terminfo/d/dw3 | Bin 0 -> 473 bytes usr/share/terminfo/d/dw4 | Bin 0 -> 373 bytes usr/share/terminfo/d/dwk | Bin 0 -> 542 bytes usr/share/terminfo/d/dwk-vt | Bin 0 -> 542 bytes usr/share/terminfo/e/ecma+color | Bin 0 -> 871 bytes usr/share/terminfo/e/ecma+index | Bin 0 -> 292 bytes usr/share/terminfo/e/ecma+italics | Bin 0 -> 697 bytes usr/share/terminfo/e/ecma+sgr | Bin 0 -> 1057 bytes usr/share/terminfo/e/ecma+strikeout | Bin 0 -> 97 bytes usr/share/terminfo/e/elks | Bin 0 -> 417 bytes usr/share/terminfo/e/elks-ansi | Bin 0 -> 429 bytes usr/share/terminfo/e/elks-glasstty | Bin 0 -> 385 bytes usr/share/terminfo/e/elks-vt52 | Bin 0 -> 419 bytes usr/share/terminfo/e/emots | Bin 0 -> 1142 bytes usr/share/terminfo/e/emu | Bin 0 -> 1323 bytes usr/share/terminfo/e/emu-220 | Bin 0 -> 1292 bytes usr/share/terminfo/e/emx-base | Bin 0 -> 1556 bytes usr/share/terminfo/e/env230 | Bin 0 -> 1008 bytes usr/share/terminfo/e/envision230 | Bin 0 -> 1008 bytes usr/share/terminfo/e/ep40 | Bin 0 -> 370 bytes usr/share/terminfo/e/ep4000 | Bin 0 -> 370 bytes usr/share/terminfo/e/ep4080 | Bin 0 -> 370 bytes usr/share/terminfo/e/ep48 | Bin 0 -> 370 bytes usr/share/terminfo/e/ergo4000 | Bin 0 -> 638 bytes usr/share/terminfo/e/esprit | Bin 0 -> 482 bytes usr/share/terminfo/e/esprit-am | Bin 0 -> 496 bytes usr/share/terminfo/e/eterm | Bin 0 -> 908 bytes usr/share/terminfo/e/eterm-color | Bin 0 -> 1271 bytes usr/share/terminfo/e/ex155 | Bin 0 -> 554 bytes usr/share/terminfo/e/excel62 | Bin 0 -> 1004 bytes usr/share/terminfo/e/excel62-rv | Bin 0 -> 1043 bytes usr/share/terminfo/e/excel62-w | Bin 0 -> 1056 bytes usr/share/terminfo/e/excel64 | Bin 0 -> 1004 bytes usr/share/terminfo/e/excel64-rv | Bin 0 -> 1043 bytes usr/share/terminfo/e/excel64-w | Bin 0 -> 1056 bytes usr/share/terminfo/e/exec80 | Bin 0 -> 1223 bytes usr/share/terminfo/f/f100 | Bin 0 -> 653 bytes usr/share/terminfo/f/f100-rv | Bin 0 -> 659 bytes usr/share/terminfo/f/f110 | Bin 0 -> 668 bytes usr/share/terminfo/f/f110-14 | Bin 0 -> 665 bytes usr/share/terminfo/f/f110-14w | Bin 0 -> 673 bytes usr/share/terminfo/f/f110-w | Bin 0 -> 670 bytes usr/share/terminfo/f/f1720 | Bin 0 -> 423 bytes usr/share/terminfo/f/f1720a | Bin 0 -> 423 bytes usr/share/terminfo/f/f200 | Bin 0 -> 679 bytes usr/share/terminfo/f/f200-w | Bin 0 -> 681 bytes usr/share/terminfo/f/f200vi | Bin 0 -> 677 bytes usr/share/terminfo/f/f200vi-w | Bin 0 -> 691 bytes usr/share/terminfo/f/falco | Bin 0 -> 460 bytes usr/share/terminfo/f/falco-p | Bin 0 -> 513 bytes usr/share/terminfo/f/fbterm | Bin 0 -> 1720 bytes usr/share/terminfo/f/fenix | Bin 0 -> 615 bytes usr/share/terminfo/f/fenixw | Bin 0 -> 631 bytes usr/share/terminfo/f/fixterm | Bin 0 -> 554 bytes usr/share/terminfo/f/foot | Bin 0 -> 3486 bytes usr/share/terminfo/f/foot+base | Bin 0 -> 3232 bytes usr/share/terminfo/f/foot-direct | Bin 0 -> 3465 bytes usr/share/terminfo/f/fortune | Bin 0 -> 650 bytes usr/share/terminfo/f/fos | Bin 0 -> 650 bytes usr/share/terminfo/f/fox | Bin 0 -> 445 bytes usr/share/terminfo/f/freedom | Bin 0 -> 653 bytes usr/share/terminfo/f/freedom-rv | Bin 0 -> 659 bytes usr/share/terminfo/f/freedom100 | Bin 0 -> 653 bytes usr/share/terminfo/f/freedom110 | Bin 0 -> 668 bytes usr/share/terminfo/f/freedom200 | Bin 0 -> 679 bytes usr/share/terminfo/g/gator | Bin 0 -> 544 bytes usr/share/terminfo/g/gator-52 | Bin 0 -> 409 bytes usr/share/terminfo/g/gator-52t | Bin 0 -> 421 bytes usr/share/terminfo/g/gator-t | Bin 0 -> 558 bytes usr/share/terminfo/g/gigi | Bin 0 -> 615 bytes usr/share/terminfo/g/glasstty | Bin 0 -> 407 bytes usr/share/terminfo/g/gnome | Bin 0 -> 3029 bytes usr/share/terminfo/g/gnome+pcfkeys | Bin 0 -> 2064 bytes usr/share/terminfo/g/gnome-2007 | Bin 0 -> 2979 bytes usr/share/terminfo/g/gnome-2008 | Bin 0 -> 3017 bytes usr/share/terminfo/g/gnome-2012 | Bin 0 -> 3039 bytes usr/share/terminfo/g/gnome-256color | Bin 0 -> 3267 bytes usr/share/terminfo/g/gnome-fc5 | Bin 0 -> 2927 bytes usr/share/terminfo/g/gnome-rh62 | Bin 0 -> 1524 bytes usr/share/terminfo/g/gnome-rh72 | Bin 0 -> 1618 bytes usr/share/terminfo/g/gnome-rh80 | Bin 0 -> 1653 bytes usr/share/terminfo/g/gnome-rh90 | Bin 0 -> 2939 bytes usr/share/terminfo/g/go-225 | Bin 0 -> 699 bytes usr/share/terminfo/g/go140 | Bin 0 -> 617 bytes usr/share/terminfo/g/go140w | Bin 0 -> 637 bytes usr/share/terminfo/g/go225 | Bin 0 -> 699 bytes usr/share/terminfo/g/graphos | Bin 0 -> 577 bytes usr/share/terminfo/g/graphos-30 | Bin 0 -> 595 bytes usr/share/terminfo/g/gs5430 | Bin 0 -> 1183 bytes usr/share/terminfo/g/gs5430-22 | Bin 0 -> 1179 bytes usr/share/terminfo/g/gs5430-24 | Bin 0 -> 1147 bytes usr/share/terminfo/g/gs6300 | Bin 0 -> 1142 bytes usr/share/terminfo/g/gsi | Bin 0 -> 352 bytes usr/share/terminfo/g/gt100 | Bin 0 -> 456 bytes usr/share/terminfo/g/gt100a | Bin 0 -> 456 bytes usr/share/terminfo/g/gt40 | Bin 0 -> 108 bytes usr/share/terminfo/g/gt42 | Bin 0 -> 108 bytes usr/share/terminfo/g/guru | Bin 0 -> 1274 bytes usr/share/terminfo/g/guru+rv | Bin 0 -> 180 bytes usr/share/terminfo/g/guru+s | Bin 0 -> 402 bytes usr/share/terminfo/g/guru+unk | Bin 0 -> 1274 bytes usr/share/terminfo/g/guru-24 | Bin 0 -> 1252 bytes usr/share/terminfo/g/guru-33 | Bin 0 -> 1274 bytes usr/share/terminfo/g/guru-33-rv | Bin 0 -> 1278 bytes usr/share/terminfo/g/guru-33-s | Bin 0 -> 1343 bytes usr/share/terminfo/g/guru-44 | Bin 0 -> 1253 bytes usr/share/terminfo/g/guru-44-s | Bin 0 -> 1337 bytes usr/share/terminfo/g/guru-76 | Bin 0 -> 1259 bytes usr/share/terminfo/g/guru-76-lp | Bin 0 -> 1282 bytes usr/share/terminfo/g/guru-76-s | Bin 0 -> 1338 bytes usr/share/terminfo/g/guru-76-w | Bin 0 -> 1258 bytes usr/share/terminfo/g/guru-76-w-s | Bin 0 -> 1345 bytes usr/share/terminfo/g/guru-76-wm | Bin 0 -> 1280 bytes usr/share/terminfo/g/guru-lp | Bin 0 -> 1282 bytes usr/share/terminfo/g/guru-nctxt | Bin 0 -> 1281 bytes usr/share/terminfo/g/guru-rv | Bin 0 -> 1278 bytes usr/share/terminfo/g/guru-s | Bin 0 -> 1343 bytes usr/share/terminfo/h/h-100 | Bin 0 -> 707 bytes usr/share/terminfo/h/h-100bw | Bin 0 -> 689 bytes usr/share/terminfo/h/h100 | Bin 0 -> 707 bytes usr/share/terminfo/h/h100bw | Bin 0 -> 689 bytes usr/share/terminfo/h/h19 | Bin 0 -> 627 bytes usr/share/terminfo/h/h19-a | Bin 0 -> 671 bytes usr/share/terminfo/h/h19-b | Bin 0 -> 627 bytes usr/share/terminfo/h/h19-bs | Bin 0 -> 609 bytes usr/share/terminfo/h/h19-g | Bin 0 -> 601 bytes usr/share/terminfo/h/h19-smul | Bin 0 -> 633 bytes usr/share/terminfo/h/h19-u | Bin 0 -> 599 bytes usr/share/terminfo/h/h19-us | Bin 0 -> 633 bytes usr/share/terminfo/h/h19a | Bin 0 -> 671 bytes usr/share/terminfo/h/h19g | Bin 0 -> 601 bytes usr/share/terminfo/h/h19k | Bin 0 -> 629 bytes usr/share/terminfo/h/h19kermit | Bin 0 -> 629 bytes usr/share/terminfo/h/h19us | Bin 0 -> 633 bytes usr/share/terminfo/h/h29a-kc-bc | Bin 0 -> 1413 bytes usr/share/terminfo/h/h29a-kc-uc | Bin 0 -> 1432 bytes usr/share/terminfo/h/h29a-nkc-bc | Bin 0 -> 1435 bytes usr/share/terminfo/h/h29a-nkc-uc | Bin 0 -> 1441 bytes usr/share/terminfo/h/h80 | Bin 0 -> 1223 bytes usr/share/terminfo/h/ha8675 | Bin 0 -> 709 bytes usr/share/terminfo/h/ha8686 | Bin 0 -> 873 bytes usr/share/terminfo/h/hazel | Bin 0 -> 1223 bytes usr/share/terminfo/h/hds200 | Bin 0 -> 1649 bytes usr/share/terminfo/h/he80 | Bin 0 -> 1223 bytes usr/share/terminfo/h/heath | Bin 0 -> 627 bytes usr/share/terminfo/h/heath-19 | Bin 0 -> 627 bytes usr/share/terminfo/h/heath-ansi | Bin 0 -> 671 bytes usr/share/terminfo/h/heathkit | Bin 0 -> 627 bytes usr/share/terminfo/h/heathkit-a | Bin 0 -> 671 bytes usr/share/terminfo/h/hft | Bin 0 -> 1806 bytes usr/share/terminfo/h/hft-c | Bin 0 -> 1800 bytes usr/share/terminfo/h/hft-c-old | Bin 0 -> 1789 bytes usr/share/terminfo/h/hft-old | Bin 0 -> 1214 bytes usr/share/terminfo/h/hirez100 | Bin 0 -> 806 bytes usr/share/terminfo/h/hirez100-w | Bin 0 -> 828 bytes usr/share/terminfo/h/hmod1 | Bin 0 -> 414 bytes usr/share/terminfo/h/hp | Bin 0 -> 534 bytes usr/share/terminfo/h/hp+arrows | Bin 0 -> 244 bytes usr/share/terminfo/h/hp+color | Bin 0 -> 965 bytes usr/share/terminfo/h/hp+labels | Bin 0 -> 489 bytes usr/share/terminfo/h/hp+pfk+arrows | Bin 0 -> 266 bytes usr/share/terminfo/h/hp+pfk+cr | Bin 0 -> 230 bytes usr/share/terminfo/h/hp+pfk-cr | Bin 0 -> 220 bytes usr/share/terminfo/h/hp+printer | Bin 0 -> 333 bytes usr/share/terminfo/h/hp110 | Bin 0 -> 528 bytes usr/share/terminfo/h/hp150 | Bin 0 -> 1221 bytes usr/share/terminfo/h/hp2 | Bin 0 -> 1365 bytes usr/share/terminfo/h/hp236 | Bin 0 -> 271 bytes usr/share/terminfo/h/hp2382 | Bin 0 -> 1115 bytes usr/share/terminfo/h/hp2382a | Bin 0 -> 1115 bytes usr/share/terminfo/h/hp2392 | Bin 0 -> 548 bytes usr/share/terminfo/h/hp2397 | Bin 0 -> 1779 bytes usr/share/terminfo/h/hp2397a | Bin 0 -> 1779 bytes usr/share/terminfo/h/hp2621 | Bin 0 -> 622 bytes usr/share/terminfo/h/hp2621-48 | Bin 0 -> 577 bytes usr/share/terminfo/h/hp2621-a | Bin 0 -> 592 bytes usr/share/terminfo/h/hp2621-ba | Bin 0 -> 606 bytes usr/share/terminfo/h/hp2621-fl | Bin 0 -> 566 bytes usr/share/terminfo/h/hp2621-k45 | Bin 0 -> 615 bytes usr/share/terminfo/h/hp2621-nl | Bin 0 -> 570 bytes usr/share/terminfo/h/hp2621-nt | Bin 0 -> 570 bytes usr/share/terminfo/h/hp2621-wl | Bin 0 -> 622 bytes usr/share/terminfo/h/hp2621A | Bin 0 -> 622 bytes usr/share/terminfo/h/hp2621a | Bin 0 -> 622 bytes usr/share/terminfo/h/hp2621a-a | Bin 0 -> 592 bytes usr/share/terminfo/h/hp2621b | Bin 0 -> 716 bytes usr/share/terminfo/h/hp2621b-kx | Bin 0 -> 742 bytes usr/share/terminfo/h/hp2621b-kx-p | Bin 0 -> 781 bytes usr/share/terminfo/h/hp2621b-p | Bin 0 -> 739 bytes usr/share/terminfo/h/hp2621k45 | Bin 0 -> 615 bytes usr/share/terminfo/h/hp2621p | Bin 0 -> 590 bytes usr/share/terminfo/h/hp2621p-a | Bin 0 -> 598 bytes usr/share/terminfo/h/hp2622 | Bin 0 -> 1195 bytes usr/share/terminfo/h/hp2622a | Bin 0 -> 1195 bytes usr/share/terminfo/h/hp2623 | Bin 0 -> 1195 bytes usr/share/terminfo/h/hp2623a | Bin 0 -> 1195 bytes usr/share/terminfo/h/hp2624 | Bin 0 -> 1265 bytes usr/share/terminfo/h/hp2624-10p | Bin 0 -> 1289 bytes usr/share/terminfo/h/hp2624a | Bin 0 -> 1265 bytes usr/share/terminfo/h/hp2624a-10p | Bin 0 -> 1289 bytes usr/share/terminfo/h/hp2624b | Bin 0 -> 1265 bytes usr/share/terminfo/h/hp2624b-10p | Bin 0 -> 1289 bytes usr/share/terminfo/h/hp2624b-10p-p | Bin 0 -> 1302 bytes usr/share/terminfo/h/hp2624b-4p | Bin 0 -> 1265 bytes usr/share/terminfo/h/hp2624b-4p-p | Bin 0 -> 1298 bytes usr/share/terminfo/h/hp2624b-p | Bin 0 -> 1298 bytes usr/share/terminfo/h/hp2626 | Bin 0 -> 1232 bytes usr/share/terminfo/h/hp2626-12 | Bin 0 -> 1242 bytes usr/share/terminfo/h/hp2626-12-s | Bin 0 -> 1376 bytes usr/share/terminfo/h/hp2626-12x40 | Bin 0 -> 1256 bytes usr/share/terminfo/h/hp2626-ns | Bin 0 -> 1298 bytes usr/share/terminfo/h/hp2626-s | Bin 0 -> 1358 bytes usr/share/terminfo/h/hp2626-x40 | Bin 0 -> 1244 bytes usr/share/terminfo/h/hp2626a | Bin 0 -> 1232 bytes usr/share/terminfo/h/hp2626p | Bin 0 -> 1232 bytes usr/share/terminfo/h/hp2627a | Bin 0 -> 633 bytes usr/share/terminfo/h/hp2627a-rev | Bin 0 -> 635 bytes usr/share/terminfo/h/hp2627c | Bin 0 -> 639 bytes usr/share/terminfo/h/hp262x | Bin 0 -> 506 bytes usr/share/terminfo/h/hp2640a | Bin 0 -> 658 bytes usr/share/terminfo/h/hp2640b | Bin 0 -> 692 bytes usr/share/terminfo/h/hp2641a | Bin 0 -> 487 bytes usr/share/terminfo/h/hp2644a | Bin 0 -> 692 bytes usr/share/terminfo/h/hp2645 | Bin 0 -> 700 bytes usr/share/terminfo/h/hp2645a | Bin 0 -> 487 bytes usr/share/terminfo/h/hp2647a | Bin 0 -> 487 bytes usr/share/terminfo/h/hp2648 | Bin 0 -> 731 bytes usr/share/terminfo/h/hp2648a | Bin 0 -> 731 bytes usr/share/terminfo/h/hp300h | Bin 0 -> 527 bytes usr/share/terminfo/h/hp45 | Bin 0 -> 700 bytes usr/share/terminfo/h/hp700 | Bin 0 -> 1211 bytes usr/share/terminfo/h/hp700-wy | Bin 0 -> 626 bytes usr/share/terminfo/h/hp70092 | Bin 0 -> 678 bytes usr/share/terminfo/h/hp70092A | Bin 0 -> 678 bytes usr/share/terminfo/h/hp70092a | Bin 0 -> 678 bytes usr/share/terminfo/h/hp9837 | Bin 0 -> 562 bytes usr/share/terminfo/h/hp9845 | Bin 0 -> 959 bytes usr/share/terminfo/h/hp98550 | Bin 0 -> 679 bytes usr/share/terminfo/h/hp98550-color | Bin 0 -> 1802 bytes usr/share/terminfo/h/hp98550a | Bin 0 -> 679 bytes usr/share/terminfo/h/hp98550a-color | Bin 0 -> 1802 bytes usr/share/terminfo/h/hp98720 | Bin 0 -> 562 bytes usr/share/terminfo/h/hp98721 | Bin 0 -> 562 bytes usr/share/terminfo/h/hpansi | Bin 0 -> 1211 bytes usr/share/terminfo/h/hpex | Bin 0 -> 513 bytes usr/share/terminfo/h/hpex2 | Bin 0 -> 1365 bytes usr/share/terminfo/h/hpgeneric | Bin 0 -> 534 bytes usr/share/terminfo/h/hpsub | Bin 0 -> 481 bytes usr/share/terminfo/h/hpterm | Bin 0 -> 1387 bytes usr/share/terminfo/h/hpterm-color | Bin 0 -> 1475 bytes usr/share/terminfo/h/hpterm-color2 | Bin 0 -> 1787 bytes usr/share/terminfo/h/hterm | Bin 0 -> 3631 bytes usr/share/terminfo/h/hterm-256color | Bin 0 -> 3861 bytes usr/share/terminfo/h/htx11 | Bin 0 -> 549 bytes usr/share/terminfo/h/hurd | Bin 0 -> 1587 bytes usr/share/terminfo/h/hz1000 | Bin 0 -> 354 bytes usr/share/terminfo/h/hz1420 | Bin 0 -> 405 bytes usr/share/terminfo/h/hz1500 | Bin 0 -> 452 bytes usr/share/terminfo/h/hz1510 | Bin 0 -> 382 bytes usr/share/terminfo/h/hz1520 | Bin 0 -> 435 bytes usr/share/terminfo/h/hz1520-noesc | Bin 0 -> 395 bytes usr/share/terminfo/h/hz1552 | Bin 0 -> 867 bytes usr/share/terminfo/h/hz1552-rv | Bin 0 -> 891 bytes usr/share/terminfo/h/hz2000 | Bin 0 -> 387 bytes usr/share/terminfo/i/i100 | Bin 0 -> 456 bytes usr/share/terminfo/i/i3101 | Bin 0 -> 422 bytes usr/share/terminfo/i/i3164 | Bin 0 -> 1345 bytes usr/share/terminfo/i/i400 | Bin 0 -> 426 bytes usr/share/terminfo/i/iTerm.app | Bin 0 -> 1827 bytes usr/share/terminfo/i/iTerm2.app | Bin 0 -> 2515 bytes usr/share/terminfo/i/ibcs2 | Bin 0 -> 1020 bytes usr/share/terminfo/i/ibm+16color | Bin 0 -> 1098 bytes usr/share/terminfo/i/ibm+color | Bin 0 -> 962 bytes usr/share/terminfo/i/ibm-apl | Bin 0 -> 424 bytes usr/share/terminfo/i/ibm-pc | Bin 0 -> 399 bytes usr/share/terminfo/i/ibm-system1 | Bin 0 -> 376 bytes usr/share/terminfo/i/ibm3101 | Bin 0 -> 422 bytes usr/share/terminfo/i/ibm3151 | Bin 0 -> 1286 bytes usr/share/terminfo/i/ibm3161 | Bin 0 -> 1016 bytes usr/share/terminfo/i/ibm3161-C | Bin 0 -> 1286 bytes usr/share/terminfo/i/ibm3162 | Bin 0 -> 1267 bytes usr/share/terminfo/i/ibm3163 | Bin 0 -> 1016 bytes usr/share/terminfo/i/ibm3164 | Bin 0 -> 1345 bytes usr/share/terminfo/i/ibm327x | Bin 0 -> 85 bytes usr/share/terminfo/i/ibm5051 | Bin 0 -> 399 bytes usr/share/terminfo/i/ibm5081 | Bin 0 -> 1806 bytes usr/share/terminfo/i/ibm5081-c | Bin 0 -> 615 bytes usr/share/terminfo/i/ibm5151 | Bin 0 -> 1251 bytes usr/share/terminfo/i/ibm5154 | Bin 0 -> 1784 bytes usr/share/terminfo/i/ibm5154-c | Bin 0 -> 609 bytes usr/share/terminfo/i/ibm6153 | Bin 0 -> 1492 bytes usr/share/terminfo/i/ibm6153-40 | Bin 0 -> 1239 bytes usr/share/terminfo/i/ibm6153-90 | Bin 0 -> 1239 bytes usr/share/terminfo/i/ibm6154 | Bin 0 -> 1808 bytes usr/share/terminfo/i/ibm6154-c | Bin 0 -> 604 bytes usr/share/terminfo/i/ibm6155 | Bin 0 -> 1225 bytes usr/share/terminfo/i/ibm8503 | Bin 0 -> 1830 bytes usr/share/terminfo/i/ibm8507 | Bin 0 -> 1830 bytes usr/share/terminfo/i/ibm8512 | Bin 0 -> 1905 bytes usr/share/terminfo/i/ibm8513 | Bin 0 -> 1905 bytes usr/share/terminfo/i/ibm8514 | Bin 0 -> 1829 bytes usr/share/terminfo/i/ibm8514-c | Bin 0 -> 597 bytes usr/share/terminfo/i/ibm8604 | Bin 0 -> 1830 bytes usr/share/terminfo/i/ibmaed | Bin 0 -> 448 bytes usr/share/terminfo/i/ibmapa16 | Bin 0 -> 587 bytes usr/share/terminfo/i/ibmapa8 | Bin 0 -> 579 bytes usr/share/terminfo/i/ibmapa8c | Bin 0 -> 579 bytes usr/share/terminfo/i/ibmapa8c-c | Bin 0 -> 604 bytes usr/share/terminfo/i/ibmega | Bin 0 -> 561 bytes usr/share/terminfo/i/ibmega-c | Bin 0 -> 609 bytes usr/share/terminfo/i/ibmmono | Bin 0 -> 563 bytes usr/share/terminfo/i/ibmmpel-c | Bin 0 -> 615 bytes usr/share/terminfo/i/ibmpc | Bin 0 -> 804 bytes usr/share/terminfo/i/ibmpc3 | Bin 0 -> 1325 bytes usr/share/terminfo/i/ibmpc3r | Bin 0 -> 1510 bytes usr/share/terminfo/i/ibmpc3r-mono | Bin 0 -> 1524 bytes usr/share/terminfo/i/ibmpcx | Bin 0 -> 1194 bytes usr/share/terminfo/i/ibmvga | Bin 0 -> 551 bytes usr/share/terminfo/i/ibmvga-c | Bin 0 -> 575 bytes usr/share/terminfo/i/ibmx | Bin 0 -> 1194 bytes usr/share/terminfo/i/icl6402 | Bin 0 -> 719 bytes usr/share/terminfo/i/icl6404 | Bin 0 -> 719 bytes usr/share/terminfo/i/icl6404-w | Bin 0 -> 717 bytes usr/share/terminfo/i/ifmr | Bin 0 -> 403 bytes usr/share/terminfo/i/ims-ansi | Bin 0 -> 521 bytes usr/share/terminfo/i/ims950 | Bin 0 -> 932 bytes usr/share/terminfo/i/ims950-b | Bin 0 -> 862 bytes usr/share/terminfo/i/ims950-rv | Bin 0 -> 926 bytes usr/share/terminfo/i/infoton | Bin 0 -> 325 bytes usr/share/terminfo/i/infoton2 | Bin 0 -> 362 bytes usr/share/terminfo/i/interix | Bin 0 -> 1486 bytes usr/share/terminfo/i/interix-nti | Bin 0 -> 1470 bytes usr/share/terminfo/i/intertec | Bin 0 -> 410 bytes usr/share/terminfo/i/intertube | Bin 0 -> 410 bytes usr/share/terminfo/i/intertube2 | Bin 0 -> 474 bytes usr/share/terminfo/i/intext | Bin 0 -> 563 bytes usr/share/terminfo/i/intext2 | Bin 0 -> 644 bytes usr/share/terminfo/i/intextii | Bin 0 -> 644 bytes usr/share/terminfo/i/ips | Bin 0 -> 462 bytes usr/share/terminfo/i/ipsi | Bin 0 -> 391 bytes usr/share/terminfo/i/iq120 | Bin 0 -> 959 bytes usr/share/terminfo/i/iq140 | Bin 0 -> 486 bytes usr/share/terminfo/i/iris-ansi | Bin 0 -> 1128 bytes usr/share/terminfo/i/iris-ansi-ap | Bin 0 -> 1087 bytes usr/share/terminfo/i/iris-ansi-net | Bin 0 -> 1128 bytes usr/share/terminfo/i/iris-color | Bin 0 -> 1433 bytes usr/share/terminfo/i/iris40 | Bin 0 -> 1175 bytes usr/share/terminfo/i/iterm | Bin 0 -> 1827 bytes usr/share/terminfo/i/iterm2 | Bin 0 -> 2515 bytes usr/share/terminfo/i/iterm2-direct | Bin 0 -> 2570 bytes usr/share/terminfo/j/jaixterm | Bin 0 -> 1811 bytes usr/share/terminfo/j/jaixterm-m | Bin 0 -> 1495 bytes usr/share/terminfo/j/jerq | Bin 0 -> 490 bytes usr/share/terminfo/j/jfbterm | Bin 0 -> 1620 bytes usr/share/terminfo/k/k45 | Bin 0 -> 615 bytes usr/share/terminfo/k/kaypro | Bin 0 -> 404 bytes usr/share/terminfo/k/kaypro2 | Bin 0 -> 404 bytes usr/share/terminfo/k/kds6402 | Bin 0 -> 719 bytes usr/share/terminfo/k/kds7372 | Bin 0 -> 719 bytes usr/share/terminfo/k/kds7372-w | Bin 0 -> 717 bytes usr/share/terminfo/k/kermit | Bin 0 -> 343 bytes usr/share/terminfo/k/kermit-am | Bin 0 -> 377 bytes usr/share/terminfo/k/kitty | Bin 0 -> 3409 bytes usr/share/terminfo/k/kitty+common | Bin 0 -> 3171 bytes usr/share/terminfo/k/kitty+setal | Bin 0 -> 141 bytes usr/share/terminfo/k/kitty-direct | Bin 0 -> 3396 bytes usr/share/terminfo/k/klone+acs | Bin 0 -> 437 bytes usr/share/terminfo/k/klone+color | Bin 0 -> 867 bytes usr/share/terminfo/k/klone+koi8acs | Bin 0 -> 461 bytes usr/share/terminfo/k/klone+sgr | Bin 0 -> 1027 bytes usr/share/terminfo/k/klone+sgr-dumb | Bin 0 -> 585 bytes usr/share/terminfo/k/klone+sgr8 | Bin 0 -> 1055 bytes usr/share/terminfo/k/kon | Bin 0 -> 1615 bytes usr/share/terminfo/k/kon2 | Bin 0 -> 1615 bytes usr/share/terminfo/k/konsole | Bin 0 -> 3194 bytes usr/share/terminfo/k/konsole+pcfkeys | Bin 0 -> 1988 bytes usr/share/terminfo/k/konsole-16color | Bin 0 -> 3480 bytes usr/share/terminfo/k/konsole-256color | Bin 0 -> 3332 bytes usr/share/terminfo/k/konsole-base | Bin 0 -> 1864 bytes usr/share/terminfo/k/konsole-direct | Bin 0 -> 3370 bytes usr/share/terminfo/k/konsole-linux | Bin 0 -> 1940 bytes usr/share/terminfo/k/konsole-solaris | Bin 0 -> 1950 bytes usr/share/terminfo/k/konsole-vt100 | Bin 0 -> 1950 bytes usr/share/terminfo/k/konsole-vt420pc | Bin 0 -> 1944 bytes usr/share/terminfo/k/konsole-xf3x | Bin 0 -> 1960 bytes usr/share/terminfo/k/konsole-xf4x | Bin 0 -> 3234 bytes usr/share/terminfo/k/kt7 | Bin 0 -> 573 bytes usr/share/terminfo/k/kt7ix | Bin 0 -> 877 bytes usr/share/terminfo/k/kterm | Bin 0 -> 1691 bytes usr/share/terminfo/k/kterm-co | Bin 0 -> 1681 bytes usr/share/terminfo/k/kterm-color | Bin 0 -> 1681 bytes usr/share/terminfo/k/ktm | Bin 0 -> 161 bytes usr/share/terminfo/k/kvt | Bin 0 -> 1532 bytes usr/share/terminfo/l/la120 | Bin 0 -> 473 bytes usr/share/terminfo/l/layer | Bin 0 -> 470 bytes usr/share/terminfo/l/lft | Bin 0 -> 1295 bytes usr/share/terminfo/l/lft-pc850 | Bin 0 -> 1295 bytes usr/share/terminfo/l/linux | Bin 0 -> 1740 bytes usr/share/terminfo/l/linux+decid | Bin 0 -> 685 bytes usr/share/terminfo/l/linux+sfkeys | Bin 0 -> 566 bytes usr/share/terminfo/l/linux-16color | Bin 0 -> 1818 bytes usr/share/terminfo/l/linux-basic | Bin 0 -> 1614 bytes usr/share/terminfo/l/linux-c | Bin 0 -> 2062 bytes usr/share/terminfo/l/linux-c-nc | Bin 0 -> 1708 bytes usr/share/terminfo/l/linux-koi8 | Bin 0 -> 1768 bytes usr/share/terminfo/l/linux-koi8r | Bin 0 -> 1774 bytes usr/share/terminfo/l/linux-lat | Bin 0 -> 1782 bytes usr/share/terminfo/l/linux-m | Bin 0 -> 1730 bytes usr/share/terminfo/l/linux-m1 | Bin 0 -> 1793 bytes usr/share/terminfo/l/linux-m1b | Bin 0 -> 1767 bytes usr/share/terminfo/l/linux-m2 | Bin 0 -> 1897 bytes usr/share/terminfo/l/linux-nic | Bin 0 -> 1772 bytes usr/share/terminfo/l/linux-s | Bin 0 -> 1956 bytes usr/share/terminfo/l/linux-vt | Bin 0 -> 1674 bytes usr/share/terminfo/l/linux2.2 | Bin 0 -> 1730 bytes usr/share/terminfo/l/linux2.6 | Bin 0 -> 1724 bytes usr/share/terminfo/l/linux2.6.26 | Bin 0 -> 1728 bytes usr/share/terminfo/l/linux3.0 | Bin 0 -> 1746 bytes usr/share/terminfo/l/lisa | Bin 0 -> 555 bytes usr/share/terminfo/l/lisaterm | Bin 0 -> 732 bytes usr/share/terminfo/l/lisaterm-w | Bin 0 -> 720 bytes usr/share/terminfo/l/liswb | Bin 0 -> 563 bytes usr/share/terminfo/l/ln03 | Bin 0 -> 375 bytes usr/share/terminfo/l/ln03-w | Bin 0 -> 393 bytes usr/share/terminfo/l/lpr | Bin 0 -> 354 bytes usr/share/terminfo/l/luna | Bin 0 -> 396 bytes usr/share/terminfo/l/luna68k | Bin 0 -> 396 bytes usr/share/terminfo/m/m2-nam | Bin 0 -> 1201 bytes usr/share/terminfo/m/mac | Bin 0 -> 629 bytes usr/share/terminfo/m/mac-w | Bin 0 -> 659 bytes usr/share/terminfo/m/mach | Bin 0 -> 635 bytes usr/share/terminfo/m/mach-bold | Bin 0 -> 669 bytes usr/share/terminfo/m/mach-color | Bin 0 -> 1113 bytes usr/share/terminfo/m/mach-gnu | Bin 0 -> 1073 bytes usr/share/terminfo/m/mach-gnu-color | Bin 0 -> 1339 bytes usr/share/terminfo/m/macintosh | Bin 0 -> 629 bytes usr/share/terminfo/m/macterminal-w | Bin 0 -> 659 bytes usr/share/terminfo/m/mai | Bin 0 -> 606 bytes usr/share/terminfo/m/masscomp | Bin 0 -> 478 bytes usr/share/terminfo/m/masscomp1 | Bin 0 -> 482 bytes usr/share/terminfo/m/masscomp2 | Bin 0 -> 482 bytes usr/share/terminfo/m/mdl110 | Bin 0 -> 476 bytes usr/share/terminfo/m/megatek | Bin 0 -> 80 bytes usr/share/terminfo/m/memhp | Bin 0 -> 1080 bytes usr/share/terminfo/m/mgr | Bin 0 -> 603 bytes usr/share/terminfo/m/mgr-linux | Bin 0 -> 834 bytes usr/share/terminfo/m/mgr-sun | Bin 0 -> 900 bytes usr/share/terminfo/m/mgt | Bin 0 -> 1980 bytes usr/share/terminfo/m/mgterm | Bin 0 -> 1138 bytes usr/share/terminfo/m/microb | Bin 0 -> 475 bytes usr/share/terminfo/m/microbee | Bin 0 -> 475 bytes usr/share/terminfo/m/microterm | Bin 0 -> 473 bytes usr/share/terminfo/m/microterm5 | Bin 0 -> 498 bytes usr/share/terminfo/m/mime | Bin 0 -> 493 bytes usr/share/terminfo/m/mime-3ax | Bin 0 -> 989 bytes usr/share/terminfo/m/mime-fb | Bin 0 -> 476 bytes usr/share/terminfo/m/mime-hb | Bin 0 -> 476 bytes usr/share/terminfo/m/mime1 | Bin 0 -> 493 bytes usr/share/terminfo/m/mime2 | Bin 0 -> 493 bytes usr/share/terminfo/m/mime2a | Bin 0 -> 505 bytes usr/share/terminfo/m/mime2a-s | Bin 0 -> 492 bytes usr/share/terminfo/m/mime2a-v | Bin 0 -> 505 bytes usr/share/terminfo/m/mime314 | Bin 0 -> 360 bytes usr/share/terminfo/m/mime340 | Bin 0 -> 422 bytes usr/share/terminfo/m/mime3a | Bin 0 -> 945 bytes usr/share/terminfo/m/mime3ax | Bin 0 -> 989 bytes usr/share/terminfo/m/mimei | Bin 0 -> 493 bytes usr/share/terminfo/m/mimeii | Bin 0 -> 493 bytes usr/share/terminfo/m/minitel | Bin 0 -> 1201 bytes usr/share/terminfo/m/minitel-2 | Bin 0 -> 1201 bytes usr/share/terminfo/m/minitel-2-nam | Bin 0 -> 1201 bytes usr/share/terminfo/m/minitel1 | Bin 0 -> 1677 bytes usr/share/terminfo/m/minitel1-nb | Bin 0 -> 1625 bytes usr/share/terminfo/m/minitel12-80 | Bin 0 -> 1833 bytes usr/share/terminfo/m/minitel1b | Bin 0 -> 1977 bytes usr/share/terminfo/m/minitel1b-80 | Bin 0 -> 1929 bytes usr/share/terminfo/m/minitel1b-nb | Bin 0 -> 1917 bytes usr/share/terminfo/m/minitel2-80 | Bin 0 -> 1930 bytes usr/share/terminfo/m/minix | Bin 0 -> 1460 bytes usr/share/terminfo/m/minix-1.5 | Bin 0 -> 607 bytes usr/share/terminfo/m/minix-1.7 | Bin 0 -> 893 bytes usr/share/terminfo/m/minix-3.0 | Bin 0 -> 1136 bytes usr/share/terminfo/m/minix-old | Bin 0 -> 607 bytes usr/share/terminfo/m/minix-old-am | Bin 0 -> 607 bytes usr/share/terminfo/m/mintty | Bin 0 -> 3847 bytes usr/share/terminfo/m/mintty+common | Bin 0 -> 3781 bytes usr/share/terminfo/m/mintty-direct | Bin 0 -> 3873 bytes usr/share/terminfo/m/mlterm | Bin 0 -> 3186 bytes usr/share/terminfo/m/mlterm+pcfkeys | Bin 0 -> 982 bytes usr/share/terminfo/m/mlterm-256color | Bin 0 -> 3404 bytes usr/share/terminfo/m/mlterm-direct | Bin 0 -> 3359 bytes usr/share/terminfo/m/mlterm2 | Bin 0 -> 2509 bytes usr/share/terminfo/m/mlterm3 | Bin 0 -> 3192 bytes usr/share/terminfo/m/mm314 | Bin 0 -> 360 bytes usr/share/terminfo/m/mm340 | Bin 0 -> 422 bytes usr/share/terminfo/m/mod | Bin 0 -> 1136 bytes usr/share/terminfo/m/mod24 | Bin 0 -> 1141 bytes usr/share/terminfo/m/modgraph | Bin 0 -> 1141 bytes usr/share/terminfo/m/modgraph2 | Bin 0 -> 598 bytes usr/share/terminfo/m/modgraph48 | Bin 0 -> 1136 bytes usr/share/terminfo/m/mono-emx | Bin 0 -> 508 bytes usr/share/terminfo/m/morphos | Bin 0 -> 836 bytes usr/share/terminfo/m/mosh | Bin 0 -> 3414 bytes usr/share/terminfo/m/mosh-256color | Bin 0 -> 3500 bytes usr/share/terminfo/m/mouse-sun | Bin 0 -> 393 bytes usr/share/terminfo/m/mrxvt | Bin 0 -> 3044 bytes usr/share/terminfo/m/mrxvt-256color | Bin 0 -> 3276 bytes usr/share/terminfo/m/ms-terminal | Bin 0 -> 3511 bytes usr/share/terminfo/m/ms-vt-utf8 | Bin 0 -> 1653 bytes usr/share/terminfo/m/ms-vt100 | Bin 0 -> 1207 bytes usr/share/terminfo/m/ms-vt100+ | Bin 0 -> 1653 bytes usr/share/terminfo/m/ms-vt100-color | Bin 0 -> 1421 bytes usr/share/terminfo/m/msk227 | Bin 0 -> 531 bytes usr/share/terminfo/m/msk22714 | Bin 0 -> 603 bytes usr/share/terminfo/m/msk227am | Bin 0 -> 554 bytes usr/share/terminfo/m/mskermit227 | Bin 0 -> 531 bytes usr/share/terminfo/m/mskermit22714 | Bin 0 -> 603 bytes usr/share/terminfo/m/mskermit227am | Bin 0 -> 554 bytes usr/share/terminfo/m/mt-70 | Bin 0 -> 842 bytes usr/share/terminfo/m/mt4520-rv | Bin 0 -> 825 bytes usr/share/terminfo/m/mt70 | Bin 0 -> 842 bytes usr/share/terminfo/m/mterm | Bin 0 -> 393 bytes usr/share/terminfo/m/mterm-ansi | Bin 0 -> 761 bytes usr/share/terminfo/m/mvterm | Bin 0 -> 1419 bytes usr/share/terminfo/n/n7900 | Bin 0 -> 500 bytes usr/share/terminfo/n/nansi.sys | Bin 0 -> 1632 bytes usr/share/terminfo/n/nansi.sysk | Bin 0 -> 1876 bytes usr/share/terminfo/n/nansisys | Bin 0 -> 1632 bytes usr/share/terminfo/n/nansisysk | Bin 0 -> 1876 bytes usr/share/terminfo/n/ncr160vppp | Bin 0 -> 1172 bytes usr/share/terminfo/n/ncr160vpwpp | Bin 0 -> 1175 bytes usr/share/terminfo/n/ncr160vt100an | Bin 0 -> 1590 bytes usr/share/terminfo/n/ncr160vt100pp | Bin 0 -> 1606 bytes usr/share/terminfo/n/ncr160vt100wan | Bin 0 -> 1596 bytes usr/share/terminfo/n/ncr160vt100wpp | Bin 0 -> 1612 bytes usr/share/terminfo/n/ncr160vt200an | Bin 0 -> 1802 bytes usr/share/terminfo/n/ncr160vt200pp | Bin 0 -> 1816 bytes usr/share/terminfo/n/ncr160vt200wan | Bin 0 -> 1800 bytes usr/share/terminfo/n/ncr160vt200wpp | Bin 0 -> 1822 bytes usr/share/terminfo/n/ncr160vt300an | Bin 0 -> 1816 bytes usr/share/terminfo/n/ncr160vt300pp | Bin 0 -> 1828 bytes usr/share/terminfo/n/ncr160vt300wan | Bin 0 -> 1814 bytes usr/share/terminfo/n/ncr160vt300wpp | Bin 0 -> 1836 bytes usr/share/terminfo/n/ncr160wy50+pp | Bin 0 -> 1204 bytes usr/share/terminfo/n/ncr160wy50+wpp | Bin 0 -> 1206 bytes usr/share/terminfo/n/ncr160wy60pp | Bin 0 -> 1216 bytes usr/share/terminfo/n/ncr160wy60wpp | Bin 0 -> 1218 bytes usr/share/terminfo/n/ncr260intan | Bin 0 -> 2002 bytes usr/share/terminfo/n/ncr260intpp | Bin 0 -> 2016 bytes usr/share/terminfo/n/ncr260intwan | Bin 0 -> 2008 bytes usr/share/terminfo/n/ncr260intwpp | Bin 0 -> 2030 bytes usr/share/terminfo/n/ncr260vp+sl | Bin 0 -> 355 bytes usr/share/terminfo/n/ncr260vppp | Bin 0 -> 1172 bytes usr/share/terminfo/n/ncr260vpwpp | Bin 0 -> 1175 bytes usr/share/terminfo/n/ncr260vt+sl | Bin 0 -> 366 bytes usr/share/terminfo/n/ncr260vt100an | Bin 0 -> 1590 bytes usr/share/terminfo/n/ncr260vt100pp | Bin 0 -> 1604 bytes usr/share/terminfo/n/ncr260vt100wan | Bin 0 -> 1596 bytes usr/share/terminfo/n/ncr260vt100wpp | Bin 0 -> 1612 bytes usr/share/terminfo/n/ncr260vt200an | Bin 0 -> 1802 bytes usr/share/terminfo/n/ncr260vt200pp | Bin 0 -> 1814 bytes usr/share/terminfo/n/ncr260vt200wan | Bin 0 -> 1800 bytes usr/share/terminfo/n/ncr260vt200wpp | Bin 0 -> 1822 bytes usr/share/terminfo/n/ncr260vt300an | Bin 0 -> 1816 bytes usr/share/terminfo/n/ncr260vt300pp | Bin 0 -> 1828 bytes usr/share/terminfo/n/ncr260vt300wan | Bin 0 -> 1814 bytes usr/share/terminfo/n/ncr260vt300wpp | Bin 0 -> 1850 bytes usr/share/terminfo/n/ncr260wy325pp | Bin 0 -> 1619 bytes usr/share/terminfo/n/ncr260wy325wpp | Bin 0 -> 1621 bytes usr/share/terminfo/n/ncr260wy350pp | Bin 0 -> 1612 bytes usr/share/terminfo/n/ncr260wy350wpp | Bin 0 -> 1614 bytes usr/share/terminfo/n/ncr260wy50+pp | Bin 0 -> 1204 bytes usr/share/terminfo/n/ncr260wy50+wpp | Bin 0 -> 1206 bytes usr/share/terminfo/n/ncr260wy60pp | Bin 0 -> 1216 bytes usr/share/terminfo/n/ncr260wy60wpp | Bin 0 -> 1218 bytes usr/share/terminfo/n/ncr7900 | Bin 0 -> 500 bytes usr/share/terminfo/n/ncr7900i | Bin 0 -> 500 bytes usr/share/terminfo/n/ncr7900iv | Bin 0 -> 475 bytes usr/share/terminfo/n/ncr7901 | Bin 0 -> 534 bytes usr/share/terminfo/n/ncrvt100an | Bin 0 -> 1488 bytes usr/share/terminfo/n/ncrvt100pp | Bin 0 -> 1488 bytes usr/share/terminfo/n/ncrvt100wan | Bin 0 -> 1509 bytes usr/share/terminfo/n/ncrvt100wpp | Bin 0 -> 1509 bytes usr/share/terminfo/n/ncsa | Bin 0 -> 1624 bytes usr/share/terminfo/n/ncsa-m | Bin 0 -> 1442 bytes usr/share/terminfo/n/ncsa-m-ns | Bin 0 -> 1436 bytes usr/share/terminfo/n/ncsa-ns | Bin 0 -> 1630 bytes usr/share/terminfo/n/ncsa-vt220 | Bin 0 -> 1648 bytes usr/share/terminfo/n/ncsa-vt220-8 | Bin 0 -> 1442 bytes usr/share/terminfo/n/nd9500 | Bin 0 -> 963 bytes usr/share/terminfo/n/ndr9500 | Bin 0 -> 963 bytes usr/share/terminfo/n/ndr9500-25 | Bin 0 -> 973 bytes usr/share/terminfo/n/ndr9500-25-mc | Bin 0 -> 1070 bytes usr/share/terminfo/n/ndr9500-25-mc-nl | Bin 0 -> 1064 bytes usr/share/terminfo/n/ndr9500-25-nl | Bin 0 -> 955 bytes usr/share/terminfo/n/ndr9500-mc | Bin 0 -> 1108 bytes usr/share/terminfo/n/ndr9500-mc-nl | Bin 0 -> 1054 bytes usr/share/terminfo/n/ndr9500-nl | Bin 0 -> 949 bytes usr/share/terminfo/n/nec | Bin 0 -> 382 bytes usr/share/terminfo/n/nec5520 | Bin 0 -> 382 bytes usr/share/terminfo/n/netbsd6 | Bin 0 -> 1597 bytes usr/share/terminfo/n/newhp | Bin 0 -> 967 bytes usr/share/terminfo/n/newhpkeyboard | Bin 0 -> 459 bytes usr/share/terminfo/n/news | Bin 0 -> 1245 bytes usr/share/terminfo/n/news-29 | Bin 0 -> 1197 bytes usr/share/terminfo/n/news-29-euc | Bin 0 -> 1209 bytes usr/share/terminfo/n/news-29-sjis | Bin 0 -> 1211 bytes usr/share/terminfo/n/news-33 | Bin 0 -> 1189 bytes usr/share/terminfo/n/news-33-euc | Bin 0 -> 1201 bytes usr/share/terminfo/n/news-33-sjis | Bin 0 -> 1203 bytes usr/share/terminfo/n/news-42 | Bin 0 -> 1189 bytes usr/share/terminfo/n/news-42-euc | Bin 0 -> 1201 bytes usr/share/terminfo/n/news-42-sjis | Bin 0 -> 1203 bytes usr/share/terminfo/n/news-a | Bin 0 -> 1186 bytes usr/share/terminfo/n/news-o | Bin 0 -> 1245 bytes usr/share/terminfo/n/news-old-unk | Bin 0 -> 1141 bytes usr/share/terminfo/n/news-unk | Bin 0 -> 1193 bytes usr/share/terminfo/n/news28 | Bin 0 -> 1173 bytes usr/share/terminfo/n/news28-a | Bin 0 -> 1181 bytes usr/share/terminfo/n/news29 | Bin 0 -> 1181 bytes usr/share/terminfo/n/news31 | Bin 0 -> 1257 bytes usr/share/terminfo/n/news31-a | Bin 0 -> 1237 bytes usr/share/terminfo/n/news31-o | Bin 0 -> 1257 bytes usr/share/terminfo/n/news33 | Bin 0 -> 1237 bytes usr/share/terminfo/n/news40 | Bin 0 -> 1245 bytes usr/share/terminfo/n/news40-a | Bin 0 -> 1186 bytes usr/share/terminfo/n/news40-o | Bin 0 -> 1245 bytes usr/share/terminfo/n/news42 | Bin 0 -> 1186 bytes usr/share/terminfo/n/newscbm | Bin 0 -> 1257 bytes usr/share/terminfo/n/newscbm-a | Bin 0 -> 1237 bytes usr/share/terminfo/n/newscbm-o | Bin 0 -> 1257 bytes usr/share/terminfo/n/newscbm33 | Bin 0 -> 1237 bytes usr/share/terminfo/n/next | Bin 0 -> 398 bytes usr/share/terminfo/n/nextshell | Bin 0 -> 339 bytes usr/share/terminfo/n/no+brackets | Bin 0 -> 86 bytes usr/share/terminfo/n/northstar | Bin 0 -> 181 bytes usr/share/terminfo/n/nsterm | Bin 0 -> 1958 bytes usr/share/terminfo/n/nsterm+7 | Bin 0 -> 1124 bytes usr/share/terminfo/n/nsterm+acs | Bin 0 -> 1212 bytes usr/share/terminfo/n/nsterm+c | Bin 0 -> 1137 bytes usr/share/terminfo/n/nsterm+c41 | Bin 0 -> 841 bytes usr/share/terminfo/n/nsterm+mac | Bin 0 -> 1230 bytes usr/share/terminfo/n/nsterm+s | Bin 0 -> 418 bytes usr/share/terminfo/n/nsterm-16color | Bin 0 -> 1952 bytes usr/share/terminfo/n/nsterm-256color | Bin 0 -> 1958 bytes usr/share/terminfo/n/nsterm-7 | Bin 0 -> 1293 bytes usr/share/terminfo/n/nsterm-7-c | Bin 0 -> 1581 bytes usr/share/terminfo/n/nsterm-7-c-s | Bin 0 -> 1632 bytes usr/share/terminfo/n/nsterm-7-m | Bin 0 -> 1132 bytes usr/share/terminfo/n/nsterm-7-m-s | Bin 0 -> 1194 bytes usr/share/terminfo/n/nsterm-7-s | Bin 0 -> 1354 bytes usr/share/terminfo/n/nsterm-acs | Bin 0 -> 1381 bytes usr/share/terminfo/n/nsterm-acs-c | Bin 0 -> 1671 bytes usr/share/terminfo/n/nsterm-acs-c-s | Bin 0 -> 1722 bytes usr/share/terminfo/n/nsterm-acs-m | Bin 0 -> 1222 bytes usr/share/terminfo/n/nsterm-acs-m-s | Bin 0 -> 1284 bytes usr/share/terminfo/n/nsterm-acs-s | Bin 0 -> 1444 bytes usr/share/terminfo/n/nsterm-bce | Bin 0 -> 1970 bytes usr/share/terminfo/n/nsterm-build309 | Bin 0 -> 1766 bytes usr/share/terminfo/n/nsterm-build326 | Bin 0 -> 1838 bytes usr/share/terminfo/n/nsterm-build343 | Bin 0 -> 1838 bytes usr/share/terminfo/n/nsterm-build361 | Bin 0 -> 1849 bytes usr/share/terminfo/n/nsterm-build400 | Bin 0 -> 1946 bytes usr/share/terminfo/n/nsterm-build440 | Bin 0 -> 1944 bytes usr/share/terminfo/n/nsterm-c | Bin 0 -> 1661 bytes usr/share/terminfo/n/nsterm-c-7 | Bin 0 -> 1581 bytes usr/share/terminfo/n/nsterm-c-acs | Bin 0 -> 1671 bytes usr/share/terminfo/n/nsterm-c-s | Bin 0 -> 1710 bytes usr/share/terminfo/n/nsterm-c-s-7 | Bin 0 -> 1632 bytes usr/share/terminfo/n/nsterm-c-s-acs | Bin 0 -> 1722 bytes usr/share/terminfo/n/nsterm-direct | Bin 0 -> 1994 bytes usr/share/terminfo/n/nsterm-m | Bin 0 -> 1212 bytes usr/share/terminfo/n/nsterm-m-7 | Bin 0 -> 1132 bytes usr/share/terminfo/n/nsterm-m-acs | Bin 0 -> 1222 bytes usr/share/terminfo/n/nsterm-m-s | Bin 0 -> 1272 bytes usr/share/terminfo/n/nsterm-m-s-7 | Bin 0 -> 1194 bytes usr/share/terminfo/n/nsterm-m-s-acs | Bin 0 -> 1284 bytes usr/share/terminfo/n/nsterm-old | Bin 0 -> 1387 bytes usr/share/terminfo/n/nsterm-s | Bin 0 -> 1434 bytes usr/share/terminfo/n/nsterm-s-7 | Bin 0 -> 1354 bytes usr/share/terminfo/n/nsterm-s-acs | Bin 0 -> 1444 bytes usr/share/terminfo/n/ntconsole | Bin 0 -> 1486 bytes usr/share/terminfo/n/ntconsole-100 | Bin 0 -> 1466 bytes usr/share/terminfo/n/ntconsole-100-nti | Bin 0 -> 1458 bytes usr/share/terminfo/n/ntconsole-25 | Bin 0 -> 1486 bytes usr/share/terminfo/n/ntconsole-25-nti | Bin 0 -> 1470 bytes usr/share/terminfo/n/ntconsole-25-w | Bin 0 -> 1484 bytes usr/share/terminfo/n/ntconsole-25-w-vt | Bin 0 -> 1498 bytes usr/share/terminfo/n/ntconsole-35 | Bin 0 -> 1462 bytes usr/share/terminfo/n/ntconsole-35-nti | Bin 0 -> 1454 bytes usr/share/terminfo/n/ntconsole-35-w | Bin 0 -> 1468 bytes usr/share/terminfo/n/ntconsole-50 | Bin 0 -> 1462 bytes usr/share/terminfo/n/ntconsole-50-nti | Bin 0 -> 1454 bytes usr/share/terminfo/n/ntconsole-50-w | Bin 0 -> 1468 bytes usr/share/terminfo/n/ntconsole-60 | Bin 0 -> 1462 bytes usr/share/terminfo/n/ntconsole-60-nti | Bin 0 -> 1454 bytes usr/share/terminfo/n/ntconsole-60-w | Bin 0 -> 1468 bytes usr/share/terminfo/n/ntconsole-w | Bin 0 -> 1484 bytes usr/share/terminfo/n/ntconsole-w-vt | Bin 0 -> 1498 bytes usr/share/terminfo/n/nwe501 | Bin 0 -> 1257 bytes usr/share/terminfo/n/nwe501-a | Bin 0 -> 1237 bytes usr/share/terminfo/n/nwe501-o | Bin 0 -> 1257 bytes usr/share/terminfo/n/nwp-511 | Bin 0 -> 599 bytes usr/share/terminfo/n/nwp-517 | Bin 0 -> 1641 bytes usr/share/terminfo/n/nwp-517-w | Bin 0 -> 1673 bytes usr/share/terminfo/n/nwp251-a | Bin 0 -> 1237 bytes usr/share/terminfo/n/nwp251-o | Bin 0 -> 1257 bytes usr/share/terminfo/n/nwp511 | Bin 0 -> 599 bytes usr/share/terminfo/n/nwp512 | Bin 0 -> 1245 bytes usr/share/terminfo/n/nwp512-a | Bin 0 -> 1186 bytes usr/share/terminfo/n/nwp512-o | Bin 0 -> 1245 bytes usr/share/terminfo/n/nwp513 | Bin 0 -> 1257 bytes usr/share/terminfo/n/nwp513-a | Bin 0 -> 1237 bytes usr/share/terminfo/n/nwp513-o | Bin 0 -> 1257 bytes usr/share/terminfo/n/nwp514 | Bin 0 -> 1245 bytes usr/share/terminfo/n/nwp514-a | Bin 0 -> 1186 bytes usr/share/terminfo/n/nwp514-o | Bin 0 -> 1245 bytes usr/share/terminfo/n/nwp517 | Bin 0 -> 1641 bytes usr/share/terminfo/n/nwp517-w | Bin 0 -> 1673 bytes usr/share/terminfo/n/nwp518 | Bin 0 -> 1257 bytes usr/share/terminfo/n/nwp518-a | Bin 0 -> 1237 bytes usr/share/terminfo/n/nwp518-o | Bin 0 -> 1257 bytes usr/share/terminfo/n/nxterm | Bin 0 -> 1551 bytes usr/share/terminfo/o/o31 | Bin 0 -> 470 bytes usr/share/terminfo/o/o4112-nd | Bin 0 -> 381 bytes usr/share/terminfo/o/o85h | Bin 0 -> 551 bytes usr/share/terminfo/o/oabm85h | Bin 0 -> 551 bytes usr/share/terminfo/o/oblit | Bin 0 -> 448 bytes usr/share/terminfo/o/oc100 | Bin 0 -> 810 bytes usr/share/terminfo/o/oconcept | Bin 0 -> 810 bytes usr/share/terminfo/o/ofcons | Bin 0 -> 625 bytes usr/share/terminfo/o/ojerq | Bin 0 -> 448 bytes usr/share/terminfo/o/old-st | Bin 0 -> 1301 bytes usr/share/terminfo/o/oldibmpc3 | Bin 0 -> 447 bytes usr/share/terminfo/o/oldpc3 | Bin 0 -> 447 bytes usr/share/terminfo/o/oldsun | Bin 0 -> 525 bytes usr/share/terminfo/o/omron | Bin 0 -> 388 bytes usr/share/terminfo/o/opennt | Bin 0 -> 1486 bytes usr/share/terminfo/o/opennt-100 | Bin 0 -> 1466 bytes usr/share/terminfo/o/opennt-100-nti | Bin 0 -> 1458 bytes usr/share/terminfo/o/opennt-25 | Bin 0 -> 1486 bytes usr/share/terminfo/o/opennt-25-nti | Bin 0 -> 1470 bytes usr/share/terminfo/o/opennt-25-w | Bin 0 -> 1484 bytes usr/share/terminfo/o/opennt-25-w-vt | Bin 0 -> 1498 bytes usr/share/terminfo/o/opennt-35 | Bin 0 -> 1462 bytes usr/share/terminfo/o/opennt-35-nti | Bin 0 -> 1454 bytes usr/share/terminfo/o/opennt-35-w | Bin 0 -> 1468 bytes usr/share/terminfo/o/opennt-50 | Bin 0 -> 1462 bytes usr/share/terminfo/o/opennt-50-nti | Bin 0 -> 1454 bytes usr/share/terminfo/o/opennt-50-w | Bin 0 -> 1468 bytes usr/share/terminfo/o/opennt-60 | Bin 0 -> 1462 bytes usr/share/terminfo/o/opennt-60-nti | Bin 0 -> 1454 bytes usr/share/terminfo/o/opennt-60-w | Bin 0 -> 1468 bytes usr/share/terminfo/o/opennt-nti | Bin 0 -> 1470 bytes usr/share/terminfo/o/opennt-w | Bin 0 -> 1484 bytes usr/share/terminfo/o/opennt-w-vt | Bin 0 -> 1498 bytes usr/share/terminfo/o/opus3n1+ | Bin 0 -> 1321 bytes usr/share/terminfo/o/origibmpc3 | Bin 0 -> 564 bytes usr/share/terminfo/o/origpc3 | Bin 0 -> 564 bytes usr/share/terminfo/o/os9LII | Bin 0 -> 377 bytes usr/share/terminfo/o/osborne | Bin 0 -> 430 bytes usr/share/terminfo/o/osborne-w | Bin 0 -> 424 bytes usr/share/terminfo/o/osborne1 | Bin 0 -> 430 bytes usr/share/terminfo/o/osborne1-w | Bin 0 -> 424 bytes usr/share/terminfo/o/osexec | Bin 0 -> 1081 bytes usr/share/terminfo/o/otek4112 | Bin 0 -> 381 bytes usr/share/terminfo/o/otek4113 | Bin 0 -> 381 bytes usr/share/terminfo/o/otek4114 | Bin 0 -> 381 bytes usr/share/terminfo/o/otek4115 | Bin 0 -> 693 bytes usr/share/terminfo/o/owl | Bin 0 -> 546 bytes usr/share/terminfo/p/p12 | Bin 0 -> 1149 bytes usr/share/terminfo/p/p12-m | Bin 0 -> 666 bytes usr/share/terminfo/p/p12-m-w | Bin 0 -> 694 bytes usr/share/terminfo/p/p12-w | Bin 0 -> 1140 bytes usr/share/terminfo/p/p14 | Bin 0 -> 1149 bytes usr/share/terminfo/p/p14-m | Bin 0 -> 666 bytes usr/share/terminfo/p/p14-m-w | Bin 0 -> 694 bytes usr/share/terminfo/p/p14-w | Bin 0 -> 1140 bytes usr/share/terminfo/p/p19 | Bin 0 -> 611 bytes usr/share/terminfo/p/p4 | Bin 0 -> 743 bytes usr/share/terminfo/p/p5 | Bin 0 -> 743 bytes usr/share/terminfo/p/p7 | Bin 0 -> 553 bytes usr/share/terminfo/p/p8 | Bin 0 -> 582 bytes usr/share/terminfo/p/p8-w | Bin 0 -> 614 bytes usr/share/terminfo/p/p8gl | Bin 0 -> 754 bytes usr/share/terminfo/p/p9 | Bin 0 -> 1145 bytes usr/share/terminfo/p/p9-8 | Bin 0 -> 652 bytes usr/share/terminfo/p/p9-8-w | Bin 0 -> 694 bytes usr/share/terminfo/p/p9-w | Bin 0 -> 1136 bytes usr/share/terminfo/p/pc-coherent | Bin 0 -> 456 bytes usr/share/terminfo/p/pc-minix | Bin 0 -> 1218 bytes usr/share/terminfo/p/pc-venix | Bin 0 -> 412 bytes usr/share/terminfo/p/pc3 | Bin 0 -> 1286 bytes usr/share/terminfo/p/pc3-bold | Bin 0 -> 1325 bytes usr/share/terminfo/p/pc3r | Bin 0 -> 1510 bytes usr/share/terminfo/p/pc3r-m | Bin 0 -> 1524 bytes usr/share/terminfo/p/pc6300plus | Bin 0 -> 556 bytes usr/share/terminfo/p/pc7300 | Bin 0 -> 1011 bytes usr/share/terminfo/p/pcansi | Bin 0 -> 1198 bytes usr/share/terminfo/p/pcansi-25 | Bin 0 -> 1204 bytes usr/share/terminfo/p/pcansi-25-m | Bin 0 -> 737 bytes usr/share/terminfo/p/pcansi-33 | Bin 0 -> 1204 bytes usr/share/terminfo/p/pcansi-33-m | Bin 0 -> 737 bytes usr/share/terminfo/p/pcansi-43 | Bin 0 -> 1204 bytes usr/share/terminfo/p/pcansi-43-m | Bin 0 -> 735 bytes usr/share/terminfo/p/pcansi-m | Bin 0 -> 741 bytes usr/share/terminfo/p/pcansi-mono | Bin 0 -> 741 bytes usr/share/terminfo/p/pcansi25 | Bin 0 -> 1204 bytes usr/share/terminfo/p/pcansi25m | Bin 0 -> 737 bytes usr/share/terminfo/p/pcansi33 | Bin 0 -> 1204 bytes usr/share/terminfo/p/pcansi33m | Bin 0 -> 737 bytes usr/share/terminfo/p/pcansi43 | Bin 0 -> 1204 bytes usr/share/terminfo/p/pccon | Bin 0 -> 1467 bytes usr/share/terminfo/p/pccon+base | Bin 0 -> 920 bytes usr/share/terminfo/p/pccon+colors | Bin 0 -> 873 bytes usr/share/terminfo/p/pccon+keys | Bin 0 -> 704 bytes usr/share/terminfo/p/pccon+sgr+acs | Bin 0 -> 549 bytes usr/share/terminfo/p/pccon+sgr+acs0 | Bin 0 -> 511 bytes usr/share/terminfo/p/pccon-m | Bin 0 -> 1298 bytes usr/share/terminfo/p/pccon0 | Bin 0 -> 1444 bytes usr/share/terminfo/p/pccon0-m | Bin 0 -> 1273 bytes usr/share/terminfo/p/pccons | Bin 0 -> 486 bytes usr/share/terminfo/p/pcconsole | Bin 0 -> 486 bytes usr/share/terminfo/p/pcix | Bin 0 -> 204 bytes usr/share/terminfo/p/pckermit | Bin 0 -> 362 bytes usr/share/terminfo/p/pckermit12 | Bin 0 -> 362 bytes usr/share/terminfo/p/pckermit120 | Bin 0 -> 490 bytes usr/share/terminfo/p/pcmw | Bin 0 -> 649 bytes usr/share/terminfo/p/pcplot | Bin 0 -> 1014 bytes usr/share/terminfo/p/pcvt25 | Bin 0 -> 1270 bytes usr/share/terminfo/p/pcvt25-color | Bin 0 -> 1543 bytes usr/share/terminfo/p/pcvt25w | Bin 0 -> 1284 bytes usr/share/terminfo/p/pcvt28 | Bin 0 -> 1270 bytes usr/share/terminfo/p/pcvt28w | Bin 0 -> 1284 bytes usr/share/terminfo/p/pcvt35 | Bin 0 -> 1270 bytes usr/share/terminfo/p/pcvt35w | Bin 0 -> 1284 bytes usr/share/terminfo/p/pcvt40 | Bin 0 -> 1270 bytes usr/share/terminfo/p/pcvt40w | Bin 0 -> 1284 bytes usr/share/terminfo/p/pcvt43 | Bin 0 -> 1270 bytes usr/share/terminfo/p/pcvt43w | Bin 0 -> 1284 bytes usr/share/terminfo/p/pcvt50 | Bin 0 -> 1270 bytes usr/share/terminfo/p/pcvt50w | Bin 0 -> 1284 bytes usr/share/terminfo/p/pcvtXX | Bin 0 -> 1253 bytes usr/share/terminfo/p/pcz19 | Bin 0 -> 456 bytes usr/share/terminfo/p/pe1100 | Bin 0 -> 445 bytes usr/share/terminfo/p/pe1200 | Bin 0 -> 546 bytes usr/share/terminfo/p/pe1251 | Bin 0 -> 459 bytes usr/share/terminfo/p/pe550 | Bin 0 -> 421 bytes usr/share/terminfo/p/pe6100 | Bin 0 -> 421 bytes usr/share/terminfo/p/pe6300 | Bin 0 -> 459 bytes usr/share/terminfo/p/pe6312 | Bin 0 -> 459 bytes usr/share/terminfo/p/pe7000c | Bin 0 -> 502 bytes usr/share/terminfo/p/pe7000m | Bin 0 -> 484 bytes usr/share/terminfo/p/pilot | Bin 0 -> 454 bytes usr/share/terminfo/p/pmcons | Bin 0 -> 368 bytes usr/share/terminfo/p/pmconsole | Bin 0 -> 368 bytes usr/share/terminfo/p/printer | Bin 0 -> 354 bytes usr/share/terminfo/p/prism12 | Bin 0 -> 1149 bytes usr/share/terminfo/p/prism12-m | Bin 0 -> 666 bytes usr/share/terminfo/p/prism12-m-w | Bin 0 -> 694 bytes usr/share/terminfo/p/prism12-w | Bin 0 -> 1140 bytes usr/share/terminfo/p/prism14 | Bin 0 -> 1149 bytes usr/share/terminfo/p/prism14-m | Bin 0 -> 666 bytes usr/share/terminfo/p/prism14-m-w | Bin 0 -> 694 bytes usr/share/terminfo/p/prism14-w | Bin 0 -> 1140 bytes usr/share/terminfo/p/prism2 | Bin 0 -> 552 bytes usr/share/terminfo/p/prism4 | Bin 0 -> 743 bytes usr/share/terminfo/p/prism5 | Bin 0 -> 743 bytes usr/share/terminfo/p/prism7 | Bin 0 -> 553 bytes usr/share/terminfo/p/prism8 | Bin 0 -> 582 bytes usr/share/terminfo/p/prism8-w | Bin 0 -> 614 bytes usr/share/terminfo/p/prism8gl | Bin 0 -> 754 bytes usr/share/terminfo/p/prism9 | Bin 0 -> 1145 bytes usr/share/terminfo/p/prism9-8 | Bin 0 -> 652 bytes usr/share/terminfo/p/prism9-8-w | Bin 0 -> 694 bytes usr/share/terminfo/p/prism9-w | Bin 0 -> 1136 bytes usr/share/terminfo/p/pro350 | Bin 0 -> 543 bytes usr/share/terminfo/p/ps300 | Bin 0 -> 964 bytes usr/share/terminfo/p/psterm | Bin 0 -> 521 bytes usr/share/terminfo/p/psterm-80x24 | Bin 0 -> 515 bytes usr/share/terminfo/p/psterm-90x28 | Bin 0 -> 515 bytes usr/share/terminfo/p/psterm-96x48 | Bin 0 -> 515 bytes usr/share/terminfo/p/psterm-basic | Bin 0 -> 521 bytes usr/share/terminfo/p/psterm-fast | Bin 0 -> 509 bytes usr/share/terminfo/p/psx_ansi | Bin 0 -> 476 bytes usr/share/terminfo/p/pt100 | Bin 0 -> 615 bytes usr/share/terminfo/p/pt100w | Bin 0 -> 631 bytes usr/share/terminfo/p/pt200 | Bin 0 -> 615 bytes usr/share/terminfo/p/pt200w | Bin 0 -> 631 bytes usr/share/terminfo/p/pt210 | Bin 0 -> 336 bytes usr/share/terminfo/p/pt250 | Bin 0 -> 582 bytes usr/share/terminfo/p/pt250w | Bin 0 -> 594 bytes usr/share/terminfo/p/pt505 | Bin 0 -> 1183 bytes usr/share/terminfo/p/pt505-22 | Bin 0 -> 1179 bytes usr/share/terminfo/p/pt505-24 | Bin 0 -> 1147 bytes usr/share/terminfo/p/pty | Bin 0 -> 437 bytes usr/share/terminfo/p/putty | Bin 0 -> 2447 bytes usr/share/terminfo/p/putty+fnkeys | Bin 0 -> 616 bytes usr/share/terminfo/p/putty+fnkeys+esc | Bin 0 -> 626 bytes usr/share/terminfo/p/putty+fnkeys+linux | Bin 0 -> 623 bytes usr/share/terminfo/p/putty+fnkeys+sco | Bin 0 -> 794 bytes usr/share/terminfo/p/putty+fnkeys+vt100 | Bin 0 -> 604 bytes usr/share/terminfo/p/putty+fnkeys+vt400 | Bin 0 -> 628 bytes usr/share/terminfo/p/putty+fnkeys+xterm | Bin 0 -> 622 bytes usr/share/terminfo/p/putty+keypad | Bin 0 -> 262 bytes usr/share/terminfo/p/putty+screen | Bin 0 -> 116 bytes usr/share/terminfo/p/putty-256color | Bin 0 -> 2491 bytes usr/share/terminfo/p/putty-m1 | Bin 0 -> 1895 bytes usr/share/terminfo/p/putty-m1b | Bin 0 -> 1837 bytes usr/share/terminfo/p/putty-m2 | Bin 0 -> 1955 bytes usr/share/terminfo/p/putty-noapp | Bin 0 -> 2465 bytes usr/share/terminfo/p/putty-sco | Bin 0 -> 2523 bytes usr/share/terminfo/p/putty-screen | Bin 0 -> 2517 bytes usr/share/terminfo/p/putty-vt100 | Bin 0 -> 2427 bytes usr/share/terminfo/q/qansi | Bin 0 -> 2007 bytes usr/share/terminfo/q/qansi-g | Bin 0 -> 1977 bytes usr/share/terminfo/q/qansi-m | Bin 0 -> 2160 bytes usr/share/terminfo/q/qansi-t | Bin 0 -> 2013 bytes usr/share/terminfo/q/qansi-w | Bin 0 -> 2162 bytes usr/share/terminfo/q/qdcons | Bin 0 -> 152 bytes usr/share/terminfo/q/qdss | Bin 0 -> 152 bytes usr/share/terminfo/q/qnx | Bin 0 -> 1365 bytes usr/share/terminfo/q/qnx4 | Bin 0 -> 1365 bytes usr/share/terminfo/q/qnxm | Bin 0 -> 1474 bytes usr/share/terminfo/q/qnxt | Bin 0 -> 1369 bytes usr/share/terminfo/q/qnxt2 | Bin 0 -> 1280 bytes usr/share/terminfo/q/qnxt4 | Bin 0 -> 1369 bytes usr/share/terminfo/q/qnxtmono | Bin 0 -> 1389 bytes usr/share/terminfo/q/qnxw | Bin 0 -> 1464 bytes usr/share/terminfo/q/qume | Bin 0 -> 364 bytes usr/share/terminfo/q/qume5 | Bin 0 -> 364 bytes usr/share/terminfo/q/qvt101 | Bin 0 -> 584 bytes usr/share/terminfo/q/qvt101+ | Bin 0 -> 586 bytes usr/share/terminfo/q/qvt101p | Bin 0 -> 586 bytes usr/share/terminfo/q/qvt102 | Bin 0 -> 563 bytes usr/share/terminfo/q/qvt103 | Bin 0 -> 753 bytes usr/share/terminfo/q/qvt103-w | Bin 0 -> 758 bytes usr/share/terminfo/q/qvt108 | Bin 0 -> 584 bytes usr/share/terminfo/q/qvt119 | Bin 0 -> 585 bytes usr/share/terminfo/q/qvt119+ | Bin 0 -> 585 bytes usr/share/terminfo/q/qvt119+-25 | Bin 0 -> 581 bytes usr/share/terminfo/q/qvt119+-25-w | Bin 0 -> 595 bytes usr/share/terminfo/q/qvt119+-w | Bin 0 -> 598 bytes usr/share/terminfo/q/qvt119-25-w | Bin 0 -> 595 bytes usr/share/terminfo/q/qvt119-w | Bin 0 -> 598 bytes usr/share/terminfo/q/qvt119p | Bin 0 -> 585 bytes usr/share/terminfo/q/qvt119p-25 | Bin 0 -> 581 bytes usr/share/terminfo/q/qvt119p-25-w | Bin 0 -> 595 bytes usr/share/terminfo/q/qvt119p-w | Bin 0 -> 598 bytes usr/share/terminfo/q/qvt203 | Bin 0 -> 855 bytes usr/share/terminfo/q/qvt203+ | Bin 0 -> 855 bytes usr/share/terminfo/q/qvt203-25 | Bin 0 -> 883 bytes usr/share/terminfo/q/qvt203-25-w | Bin 0 -> 855 bytes usr/share/terminfo/q/qvt203-w | Bin 0 -> 888 bytes usr/share/terminfo/q/qvt203-w-am | Bin 0 -> 888 bytes usr/share/terminfo/r/rbcomm | Bin 0 -> 592 bytes usr/share/terminfo/r/rbcomm-nam | Bin 0 -> 588 bytes usr/share/terminfo/r/rbcomm-w | Bin 0 -> 588 bytes usr/share/terminfo/r/rca | Bin 0 -> 209 bytes usr/share/terminfo/r/rcons | Bin 0 -> 972 bytes usr/share/terminfo/r/rcons-color | Bin 0 -> 1184 bytes usr/share/terminfo/r/rebus3180 | Bin 0 -> 738 bytes usr/share/terminfo/r/regent | Bin 0 -> 365 bytes usr/share/terminfo/r/regent100 | Bin 0 -> 490 bytes usr/share/terminfo/r/regent20 | Bin 0 -> 394 bytes usr/share/terminfo/r/regent200 | Bin 0 -> 728 bytes usr/share/terminfo/r/regent25 | Bin 0 -> 404 bytes usr/share/terminfo/r/regent40 | Bin 0 -> 500 bytes usr/share/terminfo/r/regent40+ | Bin 0 -> 505 bytes usr/share/terminfo/r/regent60 | Bin 0 -> 728 bytes usr/share/terminfo/r/rt6221 | Bin 0 -> 816 bytes usr/share/terminfo/r/rt6221-w | Bin 0 -> 820 bytes usr/share/terminfo/r/rtpc | Bin 0 -> 587 bytes usr/share/terminfo/r/rxvt | Bin 0 -> 2234 bytes usr/share/terminfo/r/rxvt+pcfkeys | Bin 0 -> 1194 bytes usr/share/terminfo/r/rxvt-16color | Bin 0 -> 2494 bytes usr/share/terminfo/r/rxvt-256color | Bin 0 -> 2430 bytes usr/share/terminfo/r/rxvt-88color | Bin 0 -> 2428 bytes usr/share/terminfo/r/rxvt-basic | Bin 0 -> 2137 bytes usr/share/terminfo/r/rxvt-color | Bin 0 -> 2234 bytes usr/share/terminfo/r/rxvt-cygwin | Bin 0 -> 2248 bytes usr/share/terminfo/r/rxvt-cygwin-native | Bin 0 -> 2266 bytes usr/share/terminfo/r/rxvt-xpm | Bin 0 -> 2234 bytes usr/share/terminfo/s/s4 | Bin 0 -> 1011 bytes usr/share/terminfo/s/sb1 | Bin 0 -> 705 bytes usr/share/terminfo/s/sb2 | Bin 0 -> 628 bytes usr/share/terminfo/s/sb3 | Bin 0 -> 628 bytes usr/share/terminfo/s/sbi | Bin 0 -> 648 bytes usr/share/terminfo/s/sbobcat | Bin 0 -> 516 bytes usr/share/terminfo/s/sc410 | Bin 0 -> 467 bytes usr/share/terminfo/s/sc415 | Bin 0 -> 467 bytes usr/share/terminfo/s/scanset | Bin 0 -> 467 bytes usr/share/terminfo/s/scoansi | Bin 0 -> 1575 bytes usr/share/terminfo/s/scoansi-new | Bin 0 -> 1821 bytes usr/share/terminfo/s/scoansi-old | Bin 0 -> 1587 bytes usr/share/terminfo/s/screen | Bin 0 -> 1607 bytes usr/share/terminfo/s/screen+fkeys | Bin 0 -> 474 bytes usr/share/terminfo/s/screen+italics | Bin 0 -> 702 bytes usr/share/terminfo/s/screen-16color | Bin 0 -> 1877 bytes usr/share/terminfo/s/screen-16color-bce | Bin 0 -> 1889 bytes usr/share/terminfo/s/screen-16color-bce-s | Bin 0 -> 1921 bytes usr/share/terminfo/s/screen-16color-s | Bin 0 -> 1907 bytes usr/share/terminfo/s/screen-256color | Bin 0 -> 1715 bytes usr/share/terminfo/s/screen-256color-bce | Bin 0 -> 1727 bytes usr/share/terminfo/s/screen-256color-bce-s | Bin 0 -> 1757 bytes usr/share/terminfo/s/screen-256color-s | Bin 0 -> 1743 bytes usr/share/terminfo/s/screen-base | Bin 0 -> 1613 bytes usr/share/terminfo/s/screen-bce | Bin 0 -> 1619 bytes usr/share/terminfo/s/screen-bce.Eterm | Bin 0 -> 2261 bytes usr/share/terminfo/s/screen-bce.gnome | Bin 0 -> 3154 bytes usr/share/terminfo/s/screen-bce.konsole | Bin 0 -> 3186 bytes usr/share/terminfo/s/screen-bce.linux | Bin 0 -> 1754 bytes usr/share/terminfo/s/screen-bce.mrxvt | Bin 0 -> 3139 bytes usr/share/terminfo/s/screen-bce.rxvt | Bin 0 -> 2267 bytes usr/share/terminfo/s/screen-bce.xterm-new | Bin 0 -> 3603 bytes usr/share/terminfo/s/screen-s | Bin 0 -> 1641 bytes usr/share/terminfo/s/screen-w | Bin 0 -> 1623 bytes usr/share/terminfo/s/screen.Eterm | Bin 0 -> 2255 bytes usr/share/terminfo/s/screen.gnome | Bin 0 -> 3146 bytes usr/share/terminfo/s/screen.konsole | Bin 0 -> 3180 bytes usr/share/terminfo/s/screen.konsole-256color | Bin 0 -> 3308 bytes usr/share/terminfo/s/screen.linux | Bin 0 -> 1754 bytes usr/share/terminfo/s/screen.linux-m1 | Bin 0 -> 1971 bytes usr/share/terminfo/s/screen.linux-m1b | Bin 0 -> 1941 bytes usr/share/terminfo/s/screen.linux-m2 | Bin 0 -> 1913 bytes usr/share/terminfo/s/screen.linux-s | Bin 0 -> 1754 bytes usr/share/terminfo/s/screen.minitel1 | Bin 0 -> 1674 bytes usr/share/terminfo/s/screen.minitel1-nb | Bin 0 -> 1656 bytes usr/share/terminfo/s/screen.minitel12-80 | Bin 0 -> 1758 bytes usr/share/terminfo/s/screen.minitel1b | Bin 0 -> 1736 bytes usr/share/terminfo/s/screen.minitel1b-80 | Bin 0 -> 1758 bytes usr/share/terminfo/s/screen.minitel1b-nb | Bin 0 -> 1720 bytes usr/share/terminfo/s/screen.minitel2-80 | Bin 0 -> 1758 bytes usr/share/terminfo/s/screen.mlterm | Bin 0 -> 3148 bytes usr/share/terminfo/s/screen.mlterm-256color | Bin 0 -> 3288 bytes usr/share/terminfo/s/screen.mrxvt | Bin 0 -> 3125 bytes usr/share/terminfo/s/screen.putty | Bin 0 -> 2415 bytes usr/share/terminfo/s/screen.putty-256color | Bin 0 -> 2473 bytes usr/share/terminfo/s/screen.putty-m1 | Bin 0 -> 1765 bytes usr/share/terminfo/s/screen.putty-m1b | Bin 0 -> 1737 bytes usr/share/terminfo/s/screen.putty-m2 | Bin 0 -> 1709 bytes usr/share/terminfo/s/screen.rxvt | Bin 0 -> 2251 bytes usr/share/terminfo/s/screen.teraterm | Bin 0 -> 1700 bytes usr/share/terminfo/s/screen.vte | Bin 0 -> 3508 bytes usr/share/terminfo/s/screen.vte-256color | Bin 0 -> 3630 bytes usr/share/terminfo/s/screen.xterm-256color | Bin 0 -> 3585 bytes usr/share/terminfo/s/screen.xterm-new | Bin 0 -> 3717 bytes usr/share/terminfo/s/screen.xterm-r6 | Bin 0 -> 1607 bytes usr/share/terminfo/s/screen.xterm-xfree86 | Bin 0 -> 3717 bytes usr/share/terminfo/s/screen2 | Bin 0 -> 591 bytes usr/share/terminfo/s/screen3 | Bin 0 -> 634 bytes usr/share/terminfo/s/screen4 | Bin 0 -> 1613 bytes usr/share/terminfo/s/screen5 | Bin 0 -> 1623 bytes usr/share/terminfo/s/screwpoint | Bin 0 -> 456 bytes usr/share/terminfo/s/scrhp | Bin 0 -> 1095 bytes usr/share/terminfo/s/scrt | Bin 0 -> 3438 bytes usr/share/terminfo/s/securecrt | Bin 0 -> 3438 bytes usr/share/terminfo/s/sibo | Bin 0 -> 415 bytes usr/share/terminfo/s/simpleterm | Bin 0 -> 1301 bytes usr/share/terminfo/s/simterm | Bin 0 -> 398 bytes usr/share/terminfo/s/soroc | Bin 0 -> 959 bytes usr/share/terminfo/s/soroc120 | Bin 0 -> 959 bytes usr/share/terminfo/s/soroc140 | Bin 0 -> 486 bytes usr/share/terminfo/s/spinwriter | Bin 0 -> 382 bytes usr/share/terminfo/s/st | Bin 0 -> 2639 bytes usr/share/terminfo/s/st-0.6 | Bin 0 -> 2412 bytes usr/share/terminfo/s/st-0.7 | Bin 0 -> 2731 bytes usr/share/terminfo/s/st-0.8 | Bin 0 -> 2637 bytes usr/share/terminfo/s/st-16color | Bin 0 -> 2799 bytes usr/share/terminfo/s/st-256color | Bin 0 -> 2729 bytes usr/share/terminfo/s/st-direct | Bin 0 -> 2675 bytes usr/share/terminfo/s/st52 | Bin 0 -> 856 bytes usr/share/terminfo/s/st52-color | Bin 0 -> 1966 bytes usr/share/terminfo/s/st52-m | Bin 0 -> 856 bytes usr/share/terminfo/s/st52-old | Bin 0 -> 562 bytes usr/share/terminfo/s/stterm | Bin 0 -> 2639 bytes usr/share/terminfo/s/stterm-16color | Bin 0 -> 2799 bytes usr/share/terminfo/s/stterm-256color | Bin 0 -> 2729 bytes usr/share/terminfo/s/stv52 | Bin 0 -> 916 bytes usr/share/terminfo/s/stv52pc | Bin 0 -> 848 bytes usr/share/terminfo/s/sun | Bin 0 -> 1004 bytes usr/share/terminfo/s/sun+sl | Bin 0 -> 349 bytes usr/share/terminfo/s/sun-1 | Bin 0 -> 994 bytes usr/share/terminfo/s/sun-12 | Bin 0 -> 974 bytes usr/share/terminfo/s/sun-17 | Bin 0 -> 974 bytes usr/share/terminfo/s/sun-24 | Bin 0 -> 974 bytes usr/share/terminfo/s/sun-34 | Bin 0 -> 974 bytes usr/share/terminfo/s/sun-48 | Bin 0 -> 974 bytes usr/share/terminfo/s/sun-c | Bin 0 -> 1034 bytes usr/share/terminfo/s/sun-cgsix | Bin 0 -> 979 bytes usr/share/terminfo/s/sun-cmd | Bin 0 -> 1034 bytes usr/share/terminfo/s/sun-color | Bin 0 -> 1401 bytes usr/share/terminfo/s/sun-e | Bin 0 -> 1016 bytes usr/share/terminfo/s/sun-e-s | Bin 0 -> 1031 bytes usr/share/terminfo/s/sun-il | Bin 0 -> 1004 bytes usr/share/terminfo/s/sun-nic | Bin 0 -> 1016 bytes usr/share/terminfo/s/sun-s | Bin 0 -> 1019 bytes usr/share/terminfo/s/sun-s-e | Bin 0 -> 1031 bytes usr/share/terminfo/s/sun-ss5 | Bin 0 -> 979 bytes usr/share/terminfo/s/sun-type4 | Bin 0 -> 1014 bytes usr/share/terminfo/s/sun1 | Bin 0 -> 1004 bytes usr/share/terminfo/s/sun2 | Bin 0 -> 1004 bytes usr/share/terminfo/s/sune | Bin 0 -> 1016 bytes usr/share/terminfo/s/superbee | Bin 0 -> 648 bytes usr/share/terminfo/s/superbee-xsb | Bin 0 -> 508 bytes usr/share/terminfo/s/superbeeic | Bin 0 -> 511 bytes usr/share/terminfo/s/superbrain | Bin 0 -> 969 bytes usr/share/terminfo/s/sv80 | Bin 0 -> 1031 bytes usr/share/terminfo/s/swtp | Bin 0 -> 400 bytes usr/share/terminfo/s/synertek | Bin 0 -> 161 bytes usr/share/terminfo/s/synertek380 | Bin 0 -> 161 bytes usr/share/terminfo/s/system1 | Bin 0 -> 376 bytes usr/share/terminfo/t/t10 | Bin 0 -> 446 bytes usr/share/terminfo/t/t1061 | Bin 0 -> 566 bytes usr/share/terminfo/t/t1061f | Bin 0 -> 556 bytes usr/share/terminfo/t/t16 | Bin 0 -> 488 bytes usr/share/terminfo/t/t3700 | Bin 0 -> 352 bytes usr/share/terminfo/t/t3800 | Bin 0 -> 410 bytes usr/share/terminfo/t/t653x | Bin 0 -> 467 bytes usr/share/terminfo/t/tab | Bin 0 -> 1196 bytes usr/share/terminfo/t/tab132 | Bin 0 -> 1196 bytes usr/share/terminfo/t/tab132-15 | Bin 0 -> 1196 bytes usr/share/terminfo/t/tab132-rv | Bin 0 -> 1138 bytes usr/share/terminfo/t/tab132-w | Bin 0 -> 1128 bytes usr/share/terminfo/t/tab132-w-rv | Bin 0 -> 1146 bytes usr/share/terminfo/t/tandem6510 | Bin 0 -> 957 bytes usr/share/terminfo/t/tandem653 | Bin 0 -> 467 bytes usr/share/terminfo/t/tek | Bin 0 -> 214 bytes usr/share/terminfo/t/tek4012 | Bin 0 -> 214 bytes usr/share/terminfo/t/tek4013 | Bin 0 -> 411 bytes usr/share/terminfo/t/tek4014 | Bin 0 -> 212 bytes usr/share/terminfo/t/tek4014-sm | Bin 0 -> 228 bytes usr/share/terminfo/t/tek4015 | Bin 0 -> 413 bytes usr/share/terminfo/t/tek4015-sm | Bin 0 -> 429 bytes usr/share/terminfo/t/tek4023 | Bin 0 -> 992 bytes usr/share/terminfo/t/tek4024 | Bin 0 -> 669 bytes usr/share/terminfo/t/tek4025 | Bin 0 -> 669 bytes usr/share/terminfo/t/tek4025-17 | Bin 0 -> 661 bytes usr/share/terminfo/t/tek4025-17-ws | Bin 0 -> 725 bytes usr/share/terminfo/t/tek4025-cr | Bin 0 -> 474 bytes usr/share/terminfo/t/tek4025-ex | Bin 0 -> 683 bytes usr/share/terminfo/t/tek4025a | Bin 0 -> 649 bytes usr/share/terminfo/t/tek4025ex | Bin 0 -> 681 bytes usr/share/terminfo/t/tek4027 | Bin 0 -> 669 bytes usr/share/terminfo/t/tek4027-ex | Bin 0 -> 683 bytes usr/share/terminfo/t/tek4105 | Bin 0 -> 640 bytes usr/share/terminfo/t/tek4105-30 | Bin 0 -> 1155 bytes usr/share/terminfo/t/tek4105a | Bin 0 -> 969 bytes usr/share/terminfo/t/tek4106brl | Bin 0 -> 920 bytes usr/share/terminfo/t/tek4107 | Bin 0 -> 691 bytes usr/share/terminfo/t/tek4107brl | Bin 0 -> 920 bytes usr/share/terminfo/t/tek4109 | Bin 0 -> 691 bytes usr/share/terminfo/t/tek4109brl | Bin 0 -> 920 bytes usr/share/terminfo/t/tek4112 | Bin 0 -> 482 bytes usr/share/terminfo/t/tek4112-5 | Bin 0 -> 492 bytes usr/share/terminfo/t/tek4112-nd | Bin 0 -> 489 bytes usr/share/terminfo/t/tek4113 | Bin 0 -> 493 bytes usr/share/terminfo/t/tek4113-34 | Bin 0 -> 498 bytes usr/share/terminfo/t/tek4113-nd | Bin 0 -> 523 bytes usr/share/terminfo/t/tek4114 | Bin 0 -> 482 bytes usr/share/terminfo/t/tek4115 | Bin 0 -> 751 bytes usr/share/terminfo/t/tek4125 | Bin 0 -> 1099 bytes usr/share/terminfo/t/tek4205 | Bin 0 -> 1885 bytes usr/share/terminfo/t/tek4207 | Bin 0 -> 657 bytes usr/share/terminfo/t/tek4207-s | Bin 0 -> 846 bytes usr/share/terminfo/t/tek4404 | Bin 0 -> 556 bytes usr/share/terminfo/t/teken | Bin 0 -> 1447 bytes usr/share/terminfo/t/teken-16color | Bin 0 -> 1719 bytes usr/share/terminfo/t/teken-2018 | Bin 0 -> 1525 bytes usr/share/terminfo/t/teken-2022 | Bin 0 -> 1254 bytes usr/share/terminfo/t/teken-sc | Bin 0 -> 1324 bytes usr/share/terminfo/t/teken-sc+fkeys | Bin 0 -> 562 bytes usr/share/terminfo/t/teken-vt | Bin 0 -> 1447 bytes usr/share/terminfo/t/teken-vt+fkeys | Bin 0 -> 582 bytes usr/share/terminfo/t/teleray | Bin 0 -> 566 bytes usr/share/terminfo/t/teletec | Bin 0 -> 362 bytes usr/share/terminfo/t/teraterm | Bin 0 -> 1683 bytes usr/share/terminfo/t/teraterm-256color | Bin 0 -> 1821 bytes usr/share/terminfo/t/teraterm2.3 | Bin 0 -> 1596 bytes usr/share/terminfo/t/teraterm4.59 | Bin 0 -> 1588 bytes usr/share/terminfo/t/teraterm4.97 | Bin 0 -> 1695 bytes usr/share/terminfo/t/terminator | Bin 0 -> 1772 bytes usr/share/terminfo/t/terminet | Bin 0 -> 384 bytes usr/share/terminfo/t/terminet1200 | Bin 0 -> 384 bytes usr/share/terminfo/t/terminet300 | Bin 0 -> 384 bytes usr/share/terminfo/t/terminology | Bin 0 -> 3394 bytes usr/share/terminfo/t/terminology-0.6.1 | Bin 0 -> 2362 bytes usr/share/terminfo/t/terminology-1.0.0 | Bin 0 -> 3155 bytes usr/share/terminfo/t/terminology-1.8.1 | Bin 0 -> 3408 bytes usr/share/terminfo/t/termite | Bin 0 -> 3149 bytes usr/share/terminfo/t/tgtelnet | Bin 0 -> 454 bytes usr/share/terminfo/t/ti700 | Bin 0 -> 412 bytes usr/share/terminfo/t/ti703 | Bin 0 -> 386 bytes usr/share/terminfo/t/ti703-w | Bin 0 -> 402 bytes usr/share/terminfo/t/ti707 | Bin 0 -> 386 bytes usr/share/terminfo/t/ti707-w | Bin 0 -> 402 bytes usr/share/terminfo/t/ti733 | Bin 0 -> 412 bytes usr/share/terminfo/t/ti735 | Bin 0 -> 412 bytes usr/share/terminfo/t/ti745 | Bin 0 -> 412 bytes usr/share/terminfo/t/ti800 | Bin 0 -> 412 bytes usr/share/terminfo/t/ti916 | Bin 0 -> 1465 bytes usr/share/terminfo/t/ti916-132 | Bin 0 -> 1445 bytes usr/share/terminfo/t/ti916-220-7 | Bin 0 -> 1465 bytes usr/share/terminfo/t/ti916-220-8 | Bin 0 -> 1445 bytes usr/share/terminfo/t/ti916-8 | Bin 0 -> 1445 bytes usr/share/terminfo/t/ti916-8-132 | Bin 0 -> 1431 bytes usr/share/terminfo/t/ti924 | Bin 0 -> 610 bytes usr/share/terminfo/t/ti924-8 | Bin 0 -> 585 bytes usr/share/terminfo/t/ti924-8w | Bin 0 -> 591 bytes usr/share/terminfo/t/ti924w | Bin 0 -> 618 bytes usr/share/terminfo/t/ti926 | Bin 0 -> 597 bytes usr/share/terminfo/t/ti926-8 | Bin 0 -> 570 bytes usr/share/terminfo/t/ti928 | Bin 0 -> 1150 bytes usr/share/terminfo/t/ti928-8 | Bin 0 -> 1129 bytes usr/share/terminfo/t/ti931 | Bin 0 -> 533 bytes usr/share/terminfo/t/ti_ansi | Bin 0 -> 1061 bytes usr/share/terminfo/t/tkterm | Bin 0 -> 424 bytes usr/share/terminfo/t/tmux | Bin 0 -> 3171 bytes usr/share/terminfo/t/tmux-256color | Bin 0 -> 3281 bytes usr/share/terminfo/t/tmux-direct | Bin 0 -> 3419 bytes usr/share/terminfo/t/tn1200 | Bin 0 -> 384 bytes usr/share/terminfo/t/tn300 | Bin 0 -> 384 bytes usr/share/terminfo/t/trs16 | Bin 0 -> 556 bytes usr/share/terminfo/t/trs2 | Bin 0 -> 451 bytes usr/share/terminfo/t/trs80II | Bin 0 -> 451 bytes usr/share/terminfo/t/trsII | Bin 0 -> 451 bytes usr/share/terminfo/t/ts-1 | Bin 0 -> 460 bytes usr/share/terminfo/t/ts-1p | Bin 0 -> 513 bytes usr/share/terminfo/t/ts1 | Bin 0 -> 460 bytes usr/share/terminfo/t/ts100 | Bin 0 -> 1251 bytes usr/share/terminfo/t/ts100-ctxt | Bin 0 -> 1273 bytes usr/share/terminfo/t/ts100-sp | Bin 0 -> 1251 bytes usr/share/terminfo/t/ts1p | Bin 0 -> 513 bytes usr/share/terminfo/t/tt | Bin 0 -> 424 bytes usr/share/terminfo/t/tt52 | Bin 0 -> 1940 bytes usr/share/terminfo/t/tty33 | Bin 0 -> 340 bytes usr/share/terminfo/t/tty35 | Bin 0 -> 340 bytes usr/share/terminfo/t/tty37 | Bin 0 -> 369 bytes usr/share/terminfo/t/tty40 | Bin 0 -> 524 bytes usr/share/terminfo/t/tty43 | Bin 0 -> 348 bytes usr/share/terminfo/t/tty4420 | Bin 0 -> 543 bytes usr/share/terminfo/t/tty4424 | Bin 0 -> 775 bytes usr/share/terminfo/t/tty4424-1 | Bin 0 -> 796 bytes usr/share/terminfo/t/tty4424m | Bin 0 -> 486 bytes usr/share/terminfo/t/tty4426 | Bin 0 -> 807 bytes usr/share/terminfo/t/tty5410 | Bin 0 -> 1136 bytes usr/share/terminfo/t/tty5410-w | Bin 0 -> 1152 bytes usr/share/terminfo/t/tty5410v1 | Bin 0 -> 1129 bytes usr/share/terminfo/t/tty5410v1-w | Bin 0 -> 1135 bytes usr/share/terminfo/t/tty5420 | Bin 0 -> 1384 bytes usr/share/terminfo/t/tty5420+nl | Bin 0 -> 471 bytes usr/share/terminfo/t/tty5420-nl | Bin 0 -> 1380 bytes usr/share/terminfo/t/tty5420-rv | Bin 0 -> 1396 bytes usr/share/terminfo/t/tty5420-rv-nl | Bin 0 -> 1404 bytes usr/share/terminfo/t/tty5420-w | Bin 0 -> 1390 bytes usr/share/terminfo/t/tty5420-w-nl | Bin 0 -> 1396 bytes usr/share/terminfo/t/tty5420-w-rv | Bin 0 -> 1402 bytes usr/share/terminfo/t/tty5420-w-rv-n | Bin 0 -> 1410 bytes usr/share/terminfo/t/tty5425 | Bin 0 -> 1606 bytes usr/share/terminfo/t/tty5425-nl | Bin 0 -> 1634 bytes usr/share/terminfo/t/tty5425-w | Bin 0 -> 1634 bytes usr/share/terminfo/t/tty5620 | Bin 0 -> 630 bytes usr/share/terminfo/t/tty5620-1 | Bin 0 -> 547 bytes usr/share/terminfo/t/tty5620-24 | Bin 0 -> 632 bytes usr/share/terminfo/t/tty5620-34 | Bin 0 -> 632 bytes usr/share/terminfo/t/tty5620-s | Bin 0 -> 470 bytes usr/share/terminfo/t/ttydmd | Bin 0 -> 630 bytes usr/share/terminfo/t/tvi803 | Bin 0 -> 984 bytes usr/share/terminfo/t/tvi9065 | Bin 0 -> 1538 bytes usr/share/terminfo/t/tvi910 | Bin 0 -> 544 bytes usr/share/terminfo/t/tvi910+ | Bin 0 -> 566 bytes usr/share/terminfo/t/tvi912 | Bin 0 -> 565 bytes usr/share/terminfo/t/tvi912b | Bin 0 -> 972 bytes usr/share/terminfo/t/tvi912b+2p | Bin 0 -> 249 bytes usr/share/terminfo/t/tvi912b+dim | Bin 0 -> 418 bytes usr/share/terminfo/t/tvi912b+mc | Bin 0 -> 507 bytes usr/share/terminfo/t/tvi912b+printer | Bin 0 -> 339 bytes usr/share/terminfo/t/tvi912b+vb | Bin 0 -> 274 bytes usr/share/terminfo/t/tvi912b-2p | Bin 0 -> 1053 bytes usr/share/terminfo/t/tvi912b-2p-mc | Bin 0 -> 1172 bytes usr/share/terminfo/t/tvi912b-2p-p | Bin 0 -> 1056 bytes usr/share/terminfo/t/tvi912b-2p-unk | Bin 0 -> 1049 bytes usr/share/terminfo/t/tvi912b-mc | Bin 0 -> 1061 bytes usr/share/terminfo/t/tvi912b-mc-2p | Bin 0 -> 1172 bytes usr/share/terminfo/t/tvi912b-mc-vb | Bin 0 -> 1195 bytes usr/share/terminfo/t/tvi912b-p | Bin 0 -> 947 bytes usr/share/terminfo/t/tvi912b-p-2p | Bin 0 -> 1056 bytes usr/share/terminfo/t/tvi912b-p-vb | Bin 0 -> 1079 bytes usr/share/terminfo/t/tvi912b-unk | Bin 0 -> 936 bytes usr/share/terminfo/t/tvi912b-unk-2p | Bin 0 -> 1049 bytes usr/share/terminfo/t/tvi912b-unk-vb | Bin 0 -> 1072 bytes usr/share/terminfo/t/tvi912b-vb | Bin 0 -> 1078 bytes usr/share/terminfo/t/tvi912b-vb-mc | Bin 0 -> 1195 bytes usr/share/terminfo/t/tvi912b-vb-p | Bin 0 -> 1079 bytes usr/share/terminfo/t/tvi912b-vb-unk | Bin 0 -> 1072 bytes usr/share/terminfo/t/tvi912c | Bin 0 -> 972 bytes usr/share/terminfo/t/tvi912c-2p | Bin 0 -> 1053 bytes usr/share/terminfo/t/tvi912c-2p-mc | Bin 0 -> 1172 bytes usr/share/terminfo/t/tvi912c-2p-p | Bin 0 -> 1056 bytes usr/share/terminfo/t/tvi912c-2p-unk | Bin 0 -> 1049 bytes usr/share/terminfo/t/tvi912c-mc | Bin 0 -> 1061 bytes usr/share/terminfo/t/tvi912c-mc-2p | Bin 0 -> 1172 bytes usr/share/terminfo/t/tvi912c-mc-vb | Bin 0 -> 1195 bytes usr/share/terminfo/t/tvi912c-p | Bin 0 -> 947 bytes usr/share/terminfo/t/tvi912c-p-2p | Bin 0 -> 1056 bytes usr/share/terminfo/t/tvi912c-p-vb | Bin 0 -> 1079 bytes usr/share/terminfo/t/tvi912c-unk | Bin 0 -> 936 bytes usr/share/terminfo/t/tvi912c-unk-2p | Bin 0 -> 1049 bytes usr/share/terminfo/t/tvi912c-unk-vb | Bin 0 -> 1072 bytes usr/share/terminfo/t/tvi912c-vb | Bin 0 -> 1078 bytes usr/share/terminfo/t/tvi912c-vb-mc | Bin 0 -> 1195 bytes usr/share/terminfo/t/tvi912c-vb-p | Bin 0 -> 1079 bytes usr/share/terminfo/t/tvi912c-vb-unk | Bin 0 -> 1072 bytes usr/share/terminfo/t/tvi912cc | Bin 0 -> 907 bytes usr/share/terminfo/t/tvi914 | Bin 0 -> 565 bytes usr/share/terminfo/t/tvi920 | Bin 0 -> 565 bytes usr/share/terminfo/t/tvi920b | Bin 0 -> 1060 bytes usr/share/terminfo/t/tvi920b+fn | Bin 0 -> 620 bytes usr/share/terminfo/t/tvi920b-2p | Bin 0 -> 1141 bytes usr/share/terminfo/t/tvi920b-2p-mc | Bin 0 -> 1260 bytes usr/share/terminfo/t/tvi920b-2p-p | Bin 0 -> 1144 bytes usr/share/terminfo/t/tvi920b-2p-unk | Bin 0 -> 1137 bytes usr/share/terminfo/t/tvi920b-mc | Bin 0 -> 1149 bytes usr/share/terminfo/t/tvi920b-mc-2p | Bin 0 -> 1260 bytes usr/share/terminfo/t/tvi920b-mc-vb | Bin 0 -> 1283 bytes usr/share/terminfo/t/tvi920b-p | Bin 0 -> 1035 bytes usr/share/terminfo/t/tvi920b-p-2p | Bin 0 -> 1144 bytes usr/share/terminfo/t/tvi920b-p-vb | Bin 0 -> 1167 bytes usr/share/terminfo/t/tvi920b-unk | Bin 0 -> 1024 bytes usr/share/terminfo/t/tvi920b-unk-2p | Bin 0 -> 1137 bytes usr/share/terminfo/t/tvi920b-unk-vb | Bin 0 -> 1160 bytes usr/share/terminfo/t/tvi920b-vb | Bin 0 -> 1166 bytes usr/share/terminfo/t/tvi920b-vb-mc | Bin 0 -> 1283 bytes usr/share/terminfo/t/tvi920b-vb-p | Bin 0 -> 1167 bytes usr/share/terminfo/t/tvi920b-vb-unk | Bin 0 -> 1160 bytes usr/share/terminfo/t/tvi920c | Bin 0 -> 1060 bytes usr/share/terminfo/t/tvi920c-2p | Bin 0 -> 1141 bytes usr/share/terminfo/t/tvi920c-2p-mc | Bin 0 -> 1260 bytes usr/share/terminfo/t/tvi920c-2p-p | Bin 0 -> 1144 bytes usr/share/terminfo/t/tvi920c-2p-unk | Bin 0 -> 1137 bytes usr/share/terminfo/t/tvi920c-mc | Bin 0 -> 1149 bytes usr/share/terminfo/t/tvi920c-mc-2p | Bin 0 -> 1260 bytes usr/share/terminfo/t/tvi920c-mc-vb | Bin 0 -> 1283 bytes usr/share/terminfo/t/tvi920c-p | Bin 0 -> 1035 bytes usr/share/terminfo/t/tvi920c-p-2p | Bin 0 -> 1144 bytes usr/share/terminfo/t/tvi920c-p-vb | Bin 0 -> 1167 bytes usr/share/terminfo/t/tvi920c-unk | Bin 0 -> 1024 bytes usr/share/terminfo/t/tvi920c-unk-2p | Bin 0 -> 1137 bytes usr/share/terminfo/t/tvi920c-unk-vb | Bin 0 -> 1160 bytes usr/share/terminfo/t/tvi920c-vb | Bin 0 -> 1166 bytes usr/share/terminfo/t/tvi920c-vb-mc | Bin 0 -> 1283 bytes usr/share/terminfo/t/tvi920c-vb-p | Bin 0 -> 1167 bytes usr/share/terminfo/t/tvi920c-vb-unk | Bin 0 -> 1160 bytes usr/share/terminfo/t/tvi921 | Bin 0 -> 641 bytes usr/share/terminfo/t/tvi924 | Bin 0 -> 887 bytes usr/share/terminfo/t/tvi925 | Bin 0 -> 561 bytes usr/share/terminfo/t/tvi925-hi | Bin 0 -> 601 bytes usr/share/terminfo/t/tvi92B | Bin 0 -> 629 bytes usr/share/terminfo/t/tvi92D | Bin 0 -> 617 bytes usr/share/terminfo/t/tvi950 | Bin 0 -> 978 bytes usr/share/terminfo/t/tvi950-2p | Bin 0 -> 1020 bytes usr/share/terminfo/t/tvi950-4p | Bin 0 -> 1020 bytes usr/share/terminfo/t/tvi950-rv | Bin 0 -> 988 bytes usr/share/terminfo/t/tvi950-rv-2p | Bin 0 -> 1034 bytes usr/share/terminfo/t/tvi950-rv-4p | Bin 0 -> 1032 bytes usr/share/terminfo/t/tvi955 | Bin 0 -> 1034 bytes usr/share/terminfo/t/tvi955-hb | Bin 0 -> 1052 bytes usr/share/terminfo/t/tvi955-w | Bin 0 -> 1048 bytes usr/share/terminfo/t/tvi970 | Bin 0 -> 685 bytes usr/share/terminfo/t/tvi970-2p | Bin 0 -> 729 bytes usr/share/terminfo/t/tvi970-vb | Bin 0 -> 714 bytes usr/share/terminfo/t/tvipt | Bin 0 -> 466 bytes usr/share/terminfo/t/tw100 | Bin 0 -> 1430 bytes usr/share/terminfo/t/tw52 | Bin 0 -> 1347 bytes usr/share/terminfo/t/tw52-color | Bin 0 -> 1347 bytes usr/share/terminfo/t/tw52-m | Bin 0 -> 897 bytes usr/share/terminfo/t/tws-generic | Bin 0 -> 1466 bytes usr/share/terminfo/t/tws2102-sna | Bin 0 -> 1441 bytes usr/share/terminfo/t/tws2103 | Bin 0 -> 1452 bytes usr/share/terminfo/t/tws2103-sna | Bin 0 -> 1439 bytes usr/share/terminfo/u/ultima2 | Bin 0 -> 521 bytes usr/share/terminfo/u/ultimaII | Bin 0 -> 521 bytes usr/share/terminfo/u/uniterm | Bin 0 -> 1431 bytes usr/share/terminfo/u/uniterm49 | Bin 0 -> 1431 bytes usr/share/terminfo/u/unixpc | Bin 0 -> 1011 bytes usr/share/terminfo/u/unknown | Bin 0 -> 320 bytes usr/share/terminfo/u/uts30 | Bin 0 -> 775 bytes usr/share/terminfo/u/uwin | Bin 0 -> 1253 bytes usr/share/terminfo/v/v200-nam | Bin 0 -> 1457 bytes usr/share/terminfo/v/v320n | Bin 0 -> 1451 bytes usr/share/terminfo/v/v3220 | Bin 0 -> 610 bytes usr/share/terminfo/v/v5410 | Bin 0 -> 1211 bytes usr/share/terminfo/v/vanilla | Bin 0 -> 336 bytes usr/share/terminfo/v/vapple | Bin 0 -> 370 bytes usr/share/terminfo/v/vc103 | Bin 0 -> 309 bytes usr/share/terminfo/v/vc203 | Bin 0 -> 309 bytes usr/share/terminfo/v/vc303 | Bin 0 -> 309 bytes usr/share/terminfo/v/vc303a | Bin 0 -> 309 bytes usr/share/terminfo/v/vc403a | Bin 0 -> 309 bytes usr/share/terminfo/v/vc404 | Bin 0 -> 414 bytes usr/share/terminfo/v/vc404-s | Bin 0 -> 436 bytes usr/share/terminfo/v/vc414 | Bin 0 -> 452 bytes usr/share/terminfo/v/vc414h | Bin 0 -> 452 bytes usr/share/terminfo/v/vc415 | Bin 0 -> 409 bytes usr/share/terminfo/v/venix | Bin 0 -> 412 bytes usr/share/terminfo/v/versaterm | Bin 0 -> 677 bytes usr/share/terminfo/v/vi200 | Bin 0 -> 704 bytes usr/share/terminfo/v/vi200-f | Bin 0 -> 735 bytes usr/share/terminfo/v/vi200-rv | Bin 0 -> 713 bytes usr/share/terminfo/v/vi300 | Bin 0 -> 612 bytes usr/share/terminfo/v/vi300-old | Bin 0 -> 650 bytes usr/share/terminfo/v/vi50 | Bin 0 -> 1018 bytes usr/share/terminfo/v/vi500 | Bin 0 -> 551 bytes usr/share/terminfo/v/vi50adm | Bin 0 -> 417 bytes usr/share/terminfo/v/vi55 | Bin 0 -> 470 bytes usr/share/terminfo/v/vi550 | Bin 0 -> 613 bytes usr/share/terminfo/v/vi603 | Bin 0 -> 1121 bytes usr/share/terminfo/v/viewdata | Bin 0 -> 597 bytes usr/share/terminfo/v/viewdata-o | Bin 0 -> 864 bytes usr/share/terminfo/v/viewdata-rv | Bin 0 -> 880 bytes usr/share/terminfo/v/viewpoint | Bin 0 -> 471 bytes usr/share/terminfo/v/viewpoint3a+ | Bin 0 -> 585 bytes usr/share/terminfo/v/viewpoint60 | Bin 0 -> 520 bytes usr/share/terminfo/v/viewpoint90 | Bin 0 -> 561 bytes usr/share/terminfo/v/vip | Bin 0 -> 1255 bytes usr/share/terminfo/v/vip-H | Bin 0 -> 1299 bytes usr/share/terminfo/v/vip-Hw | Bin 0 -> 1293 bytes usr/share/terminfo/v/vip-w | Bin 0 -> 1295 bytes usr/share/terminfo/v/vip7800-H | Bin 0 -> 1299 bytes usr/share/terminfo/v/vip7800-Hw | Bin 0 -> 1293 bytes usr/share/terminfo/v/vip7800-w | Bin 0 -> 1295 bytes usr/share/terminfo/v/visa50 | Bin 0 -> 979 bytes usr/share/terminfo/v/visual603 | Bin 0 -> 1121 bytes usr/share/terminfo/v/vitty | Bin 0 -> 470 bytes usr/share/terminfo/v/vk100 | Bin 0 -> 615 bytes usr/share/terminfo/v/vp3a+ | Bin 0 -> 585 bytes usr/share/terminfo/v/vp60 | Bin 0 -> 520 bytes usr/share/terminfo/v/vp90 | Bin 0 -> 561 bytes usr/share/terminfo/v/vremote | Bin 0 -> 431 bytes usr/share/terminfo/v/vs100 | Bin 0 -> 1533 bytes usr/share/terminfo/v/vs100-x10 | Bin 0 -> 657 bytes usr/share/terminfo/v/vsc | Bin 0 -> 427 bytes usr/share/terminfo/v/vscode | Bin 0 -> 3403 bytes usr/share/terminfo/v/vscode-direct | Bin 0 -> 3441 bytes usr/share/terminfo/v/vt-61 | Bin 0 -> 432 bytes usr/share/terminfo/v/vt-utf8 | Bin 0 -> 1653 bytes usr/share/terminfo/v/vt100 | Bin 0 -> 1282 bytes usr/share/terminfo/v/vt100+ | Bin 0 -> 1653 bytes usr/share/terminfo/v/vt100+4bsd | Bin 0 -> 1004 bytes usr/share/terminfo/v/vt100+enq | Bin 0 -> 682 bytes usr/share/terminfo/v/vt100+fnkeys | Bin 0 -> 462 bytes usr/share/terminfo/v/vt100+keypad | Bin 0 -> 368 bytes usr/share/terminfo/v/vt100+pfkeys | Bin 0 -> 432 bytes usr/share/terminfo/v/vt100-am | Bin 0 -> 1282 bytes usr/share/terminfo/v/vt100-bm | Bin 0 -> 1245 bytes usr/share/terminfo/v/vt100-bm-o | Bin 0 -> 1245 bytes usr/share/terminfo/v/vt100-bot-s | Bin 0 -> 1344 bytes usr/share/terminfo/v/vt100-nam | Bin 0 -> 1282 bytes usr/share/terminfo/v/vt100-nam-w | Bin 0 -> 1313 bytes usr/share/terminfo/v/vt100-nav | Bin 0 -> 1147 bytes usr/share/terminfo/v/vt100-nav-w | Bin 0 -> 1181 bytes usr/share/terminfo/v/vt100-putty | Bin 0 -> 1291 bytes usr/share/terminfo/v/vt100-s | Bin 0 -> 1360 bytes usr/share/terminfo/v/vt100-s-bot | Bin 0 -> 1344 bytes usr/share/terminfo/v/vt100-s-top | Bin 0 -> 1360 bytes usr/share/terminfo/v/vt100-top-s | Bin 0 -> 1360 bytes usr/share/terminfo/v/vt100-vb | Bin 0 -> 1302 bytes usr/share/terminfo/v/vt100-w | Bin 0 -> 1295 bytes usr/share/terminfo/v/vt100-w-am | Bin 0 -> 1295 bytes usr/share/terminfo/v/vt100-w-nam | Bin 0 -> 1313 bytes usr/share/terminfo/v/vt100-w-nav | Bin 0 -> 1181 bytes usr/share/terminfo/v/vt100nam | Bin 0 -> 1282 bytes usr/share/terminfo/v/vt102 | Bin 0 -> 1276 bytes usr/share/terminfo/v/vt102+enq | Bin 0 -> 680 bytes usr/share/terminfo/v/vt102-nsgr | Bin 0 -> 1255 bytes usr/share/terminfo/v/vt102-w | Bin 0 -> 1298 bytes usr/share/terminfo/v/vt125 | Bin 0 -> 1278 bytes usr/share/terminfo/v/vt131 | Bin 0 -> 690 bytes usr/share/terminfo/v/vt132 | Bin 0 -> 1300 bytes usr/share/terminfo/v/vt200 | Bin 0 -> 1391 bytes usr/share/terminfo/v/vt200-8 | Bin 0 -> 1265 bytes usr/share/terminfo/v/vt200-8bit | Bin 0 -> 1265 bytes usr/share/terminfo/v/vt200-js | Bin 0 -> 667 bytes usr/share/terminfo/v/vt200-old | Bin 0 -> 1475 bytes usr/share/terminfo/v/vt200-w | Bin 0 -> 1415 bytes usr/share/terminfo/v/vt220 | Bin 0 -> 1391 bytes usr/share/terminfo/v/vt220+cvis | Bin 0 -> 104 bytes usr/share/terminfo/v/vt220+cvis8 | Bin 0 -> 108 bytes usr/share/terminfo/v/vt220+keypad | Bin 0 -> 480 bytes usr/share/terminfo/v/vt220+pcedit | Bin 0 -> 428 bytes usr/share/terminfo/v/vt220+vtedit | Bin 0 -> 488 bytes usr/share/terminfo/v/vt220-8 | Bin 0 -> 1265 bytes usr/share/terminfo/v/vt220-8bit | Bin 0 -> 1265 bytes usr/share/terminfo/v/vt220-base | Bin 0 -> 1389 bytes usr/share/terminfo/v/vt220-js | Bin 0 -> 667 bytes usr/share/terminfo/v/vt220-nam | Bin 0 -> 1457 bytes usr/share/terminfo/v/vt220-old | Bin 0 -> 1475 bytes usr/share/terminfo/v/vt220-w | Bin 0 -> 1415 bytes usr/share/terminfo/v/vt220d | Bin 0 -> 1537 bytes usr/share/terminfo/v/vt300 | Bin 0 -> 1538 bytes usr/share/terminfo/v/vt300-nam | Bin 0 -> 1576 bytes usr/share/terminfo/v/vt300-w | Bin 0 -> 1548 bytes usr/share/terminfo/v/vt300-w-nam | Bin 0 -> 1566 bytes usr/share/terminfo/v/vt320 | Bin 0 -> 1538 bytes usr/share/terminfo/v/vt320-k3 | Bin 0 -> 1027 bytes usr/share/terminfo/v/vt320-k311 | Bin 0 -> 948 bytes usr/share/terminfo/v/vt320-nam | Bin 0 -> 1576 bytes usr/share/terminfo/v/vt320-w | Bin 0 -> 1548 bytes usr/share/terminfo/v/vt320-w-nam | Bin 0 -> 1566 bytes usr/share/terminfo/v/vt320nam | Bin 0 -> 1451 bytes usr/share/terminfo/v/vt330 | Bin 0 -> 1055 bytes usr/share/terminfo/v/vt340 | Bin 0 -> 1055 bytes usr/share/terminfo/v/vt400 | Bin 0 -> 1065 bytes usr/share/terminfo/v/vt400-24 | Bin 0 -> 1065 bytes usr/share/terminfo/v/vt420 | Bin 0 -> 1689 bytes usr/share/terminfo/v/vt420+lrmm | Bin 0 -> 851 bytes usr/share/terminfo/v/vt420f | Bin 0 -> 1820 bytes usr/share/terminfo/v/vt420pc | Bin 0 -> 2138 bytes usr/share/terminfo/v/vt420pcdos | Bin 0 -> 2119 bytes usr/share/terminfo/v/vt50 | Bin 0 -> 700 bytes usr/share/terminfo/v/vt50h | Bin 0 -> 797 bytes usr/share/terminfo/v/vt510 | Bin 0 -> 1689 bytes usr/share/terminfo/v/vt510pc | Bin 0 -> 2138 bytes usr/share/terminfo/v/vt510pcdos | Bin 0 -> 2117 bytes usr/share/terminfo/v/vt52 | Bin 0 -> 839 bytes usr/share/terminfo/v/vt52+keypad | Bin 0 -> 391 bytes usr/share/terminfo/v/vt52-basic | Bin 0 -> 397 bytes usr/share/terminfo/v/vt520 | Bin 0 -> 1723 bytes usr/share/terminfo/v/vt520ansi | Bin 0 -> 1904 bytes usr/share/terminfo/v/vt525 | Bin 0 -> 1723 bytes usr/share/terminfo/v/vt61 | Bin 0 -> 432 bytes usr/share/terminfo/v/vt61.5 | Bin 0 -> 432 bytes usr/share/terminfo/v/vte | Bin 0 -> 3534 bytes usr/share/terminfo/v/vte+pcfkeys | Bin 0 -> 2050 bytes usr/share/terminfo/v/vte-2007 | Bin 0 -> 2985 bytes usr/share/terminfo/v/vte-2008 | Bin 0 -> 3023 bytes usr/share/terminfo/v/vte-2012 | Bin 0 -> 3027 bytes usr/share/terminfo/v/vte-2014 | Bin 0 -> 3228 bytes usr/share/terminfo/v/vte-2017 | Bin 0 -> 3255 bytes usr/share/terminfo/v/vte-2018 | Bin 0 -> 3526 bytes usr/share/terminfo/v/vte-256color | Bin 0 -> 3754 bytes usr/share/terminfo/v/vte-direct | Bin 0 -> 3702 bytes usr/share/terminfo/v/vtnt | Bin 0 -> 1421 bytes usr/share/terminfo/v/vv100 | Bin 0 -> 1419 bytes usr/share/terminfo/v/vwmterm | Bin 0 -> 1304 bytes usr/share/terminfo/w/wren | Bin 0 -> 615 bytes usr/share/terminfo/w/wrenw | Bin 0 -> 631 bytes usr/share/terminfo/w/wsiris | Bin 0 -> 1175 bytes usr/share/terminfo/w/wsvt25 | Bin 0 -> 1597 bytes usr/share/terminfo/w/wsvt25m | Bin 0 -> 1607 bytes usr/share/terminfo/w/wy-75ap | Bin 0 -> 1756 bytes usr/share/terminfo/w/wy-99fgt | Bin 0 -> 1271 bytes usr/share/terminfo/w/wy-99fgta | Bin 0 -> 1277 bytes usr/share/terminfo/w/wy100 | Bin 0 -> 471 bytes usr/share/terminfo/w/wy100q | Bin 0 -> 466 bytes usr/share/terminfo/w/wy120 | Bin 0 -> 1257 bytes usr/share/terminfo/w/wy120-25 | Bin 0 -> 1269 bytes usr/share/terminfo/w/wy120-25-w | Bin 0 -> 1267 bytes usr/share/terminfo/w/wy120-vb | Bin 0 -> 1281 bytes usr/share/terminfo/w/wy120-w | Bin 0 -> 1267 bytes usr/share/terminfo/w/wy120-w-vb | Bin 0 -> 1299 bytes usr/share/terminfo/w/wy120-wvb | Bin 0 -> 1299 bytes usr/share/terminfo/w/wy150 | Bin 0 -> 1257 bytes usr/share/terminfo/w/wy150-25 | Bin 0 -> 1269 bytes usr/share/terminfo/w/wy150-25-w | Bin 0 -> 1267 bytes usr/share/terminfo/w/wy150-vb | Bin 0 -> 1281 bytes usr/share/terminfo/w/wy150-w | Bin 0 -> 1267 bytes usr/share/terminfo/w/wy150-w-vb | Bin 0 -> 1299 bytes usr/share/terminfo/w/wy160 | Bin 0 -> 1350 bytes usr/share/terminfo/w/wy160-25 | Bin 0 -> 1356 bytes usr/share/terminfo/w/wy160-25-w | Bin 0 -> 1361 bytes usr/share/terminfo/w/wy160-42 | Bin 0 -> 1373 bytes usr/share/terminfo/w/wy160-42-w | Bin 0 -> 1378 bytes usr/share/terminfo/w/wy160-43 | Bin 0 -> 1353 bytes usr/share/terminfo/w/wy160-43-w | Bin 0 -> 1358 bytes usr/share/terminfo/w/wy160-tek | Bin 0 -> 965 bytes usr/share/terminfo/w/wy160-vb | Bin 0 -> 1368 bytes usr/share/terminfo/w/wy160-w | Bin 0 -> 1367 bytes usr/share/terminfo/w/wy160-w-vb | Bin 0 -> 1393 bytes usr/share/terminfo/w/wy160-wvb | Bin 0 -> 1393 bytes usr/share/terminfo/w/wy185 | Bin 0 -> 1710 bytes usr/share/terminfo/w/wy185-24 | Bin 0 -> 1700 bytes usr/share/terminfo/w/wy185-vb | Bin 0 -> 1720 bytes usr/share/terminfo/w/wy185-w | Bin 0 -> 1734 bytes usr/share/terminfo/w/wy185-wvb | Bin 0 -> 1732 bytes usr/share/terminfo/w/wy30 | Bin 0 -> 896 bytes usr/share/terminfo/w/wy30-mc | Bin 0 -> 1041 bytes usr/share/terminfo/w/wy30-vb | Bin 0 -> 912 bytes usr/share/terminfo/w/wy325 | Bin 0 -> 1211 bytes usr/share/terminfo/w/wy325-25 | Bin 0 -> 1225 bytes usr/share/terminfo/w/wy325-25w | Bin 0 -> 1201 bytes usr/share/terminfo/w/wy325-42 | Bin 0 -> 1207 bytes usr/share/terminfo/w/wy325-42w | Bin 0 -> 1209 bytes usr/share/terminfo/w/wy325-42w-vb | Bin 0 -> 1241 bytes usr/share/terminfo/w/wy325-42wvb | Bin 0 -> 1241 bytes usr/share/terminfo/w/wy325-43 | Bin 0 -> 1207 bytes usr/share/terminfo/w/wy325-43w | Bin 0 -> 1209 bytes usr/share/terminfo/w/wy325-43w-vb | Bin 0 -> 1241 bytes usr/share/terminfo/w/wy325-43wvb | Bin 0 -> 1241 bytes usr/share/terminfo/w/wy325-80 | Bin 0 -> 1225 bytes usr/share/terminfo/w/wy325-vb | Bin 0 -> 1233 bytes usr/share/terminfo/w/wy325-w | Bin 0 -> 1229 bytes usr/share/terminfo/w/wy325-w-vb | Bin 0 -> 1243 bytes usr/share/terminfo/w/wy325-wvb | Bin 0 -> 1243 bytes usr/share/terminfo/w/wy325w-24 | Bin 0 -> 1229 bytes usr/share/terminfo/w/wy350 | Bin 0 -> 1469 bytes usr/share/terminfo/w/wy350-vb | Bin 0 -> 1487 bytes usr/share/terminfo/w/wy350-w | Bin 0 -> 1477 bytes usr/share/terminfo/w/wy350-wvb | Bin 0 -> 1491 bytes usr/share/terminfo/w/wy370 | Bin 0 -> 2082 bytes usr/share/terminfo/w/wy370-101k | Bin 0 -> 2082 bytes usr/share/terminfo/w/wy370-105k | Bin 0 -> 2188 bytes usr/share/terminfo/w/wy370-EPC | Bin 0 -> 2033 bytes usr/share/terminfo/w/wy370-nk | Bin 0 -> 1921 bytes usr/share/terminfo/w/wy370-rv | Bin 0 -> 2063 bytes usr/share/terminfo/w/wy370-tek | Bin 0 -> 947 bytes usr/share/terminfo/w/wy370-vb | Bin 0 -> 2060 bytes usr/share/terminfo/w/wy370-w | Bin 0 -> 2063 bytes usr/share/terminfo/w/wy370-wvb | Bin 0 -> 2077 bytes usr/share/terminfo/w/wy50 | Bin 0 -> 1187 bytes usr/share/terminfo/w/wy50-mc | Bin 0 -> 1315 bytes usr/share/terminfo/w/wy50-vb | Bin 0 -> 1203 bytes usr/share/terminfo/w/wy50-w | Bin 0 -> 1193 bytes usr/share/terminfo/w/wy50-wvb | Bin 0 -> 1209 bytes usr/share/terminfo/w/wy520 | Bin 0 -> 1692 bytes usr/share/terminfo/w/wy520-24 | Bin 0 -> 1688 bytes usr/share/terminfo/w/wy520-36 | Bin 0 -> 1694 bytes usr/share/terminfo/w/wy520-36pc | Bin 0 -> 1734 bytes usr/share/terminfo/w/wy520-36w | Bin 0 -> 1714 bytes usr/share/terminfo/w/wy520-36wpc | Bin 0 -> 1752 bytes usr/share/terminfo/w/wy520-48 | Bin 0 -> 1694 bytes usr/share/terminfo/w/wy520-48pc | Bin 0 -> 1734 bytes usr/share/terminfo/w/wy520-48w | Bin 0 -> 1710 bytes usr/share/terminfo/w/wy520-48wpc | Bin 0 -> 1752 bytes usr/share/terminfo/w/wy520-epc | Bin 0 -> 1738 bytes usr/share/terminfo/w/wy520-epc-24 | Bin 0 -> 1732 bytes usr/share/terminfo/w/wy520-epc-vb | Bin 0 -> 1780 bytes usr/share/terminfo/w/wy520-epc-w | Bin 0 -> 1760 bytes usr/share/terminfo/w/wy520-epc-wvb | Bin 0 -> 1792 bytes usr/share/terminfo/w/wy520-vb | Bin 0 -> 1736 bytes usr/share/terminfo/w/wy520-w | Bin 0 -> 1714 bytes usr/share/terminfo/w/wy520-wvb | Bin 0 -> 1748 bytes usr/share/terminfo/w/wy60 | Bin 0 -> 1565 bytes usr/share/terminfo/w/wy60-25 | Bin 0 -> 1569 bytes usr/share/terminfo/w/wy60-25-w | Bin 0 -> 1575 bytes usr/share/terminfo/w/wy60-316X | Bin 0 -> 1016 bytes usr/share/terminfo/w/wy60-42 | Bin 0 -> 1593 bytes usr/share/terminfo/w/wy60-42-w | Bin 0 -> 1603 bytes usr/share/terminfo/w/wy60-43 | Bin 0 -> 1573 bytes usr/share/terminfo/w/wy60-43-w | Bin 0 -> 1583 bytes usr/share/terminfo/w/wy60-AT | Bin 0 -> 1251 bytes usr/share/terminfo/w/wy60-PC | Bin 0 -> 804 bytes usr/share/terminfo/w/wy60-vb | Bin 0 -> 1581 bytes usr/share/terminfo/w/wy60-w | Bin 0 -> 1579 bytes usr/share/terminfo/w/wy60-w-vb | Bin 0 -> 1605 bytes usr/share/terminfo/w/wy60-wvb | Bin 0 -> 1605 bytes usr/share/terminfo/w/wy75 | Bin 0 -> 1662 bytes usr/share/terminfo/w/wy75-mc | Bin 0 -> 1706 bytes usr/share/terminfo/w/wy75-vb | Bin 0 -> 1684 bytes usr/share/terminfo/w/wy75-w | Bin 0 -> 1684 bytes usr/share/terminfo/w/wy75-wvb | Bin 0 -> 1698 bytes usr/share/terminfo/w/wy75ap | Bin 0 -> 1756 bytes usr/share/terminfo/w/wy85 | Bin 0 -> 1652 bytes usr/share/terminfo/w/wy85-8bit | Bin 0 -> 1592 bytes usr/share/terminfo/w/wy85-vb | Bin 0 -> 1674 bytes usr/share/terminfo/w/wy85-w | Bin 0 -> 1676 bytes usr/share/terminfo/w/wy85-wvb | Bin 0 -> 1690 bytes usr/share/terminfo/w/wy99-ansi | Bin 0 -> 1517 bytes usr/share/terminfo/w/wy99a-ansi | Bin 0 -> 1535 bytes usr/share/terminfo/w/wy99f | Bin 0 -> 1271 bytes usr/share/terminfo/w/wy99fa | Bin 0 -> 1277 bytes usr/share/terminfo/w/wy99fgt | Bin 0 -> 1271 bytes usr/share/terminfo/w/wy99fgta | Bin 0 -> 1277 bytes usr/share/terminfo/w/wy99gt | Bin 0 -> 1599 bytes usr/share/terminfo/w/wy99gt-25 | Bin 0 -> 1603 bytes usr/share/terminfo/w/wy99gt-25-w | Bin 0 -> 1605 bytes usr/share/terminfo/w/wy99gt-tek | Bin 0 -> 967 bytes usr/share/terminfo/w/wy99gt-vb | Bin 0 -> 1615 bytes usr/share/terminfo/w/wy99gt-w | Bin 0 -> 1609 bytes usr/share/terminfo/w/wy99gt-w-vb | Bin 0 -> 1637 bytes usr/share/terminfo/w/wy99gt-wvb | Bin 0 -> 1637 bytes usr/share/terminfo/w/wyse+sl | Bin 0 -> 359 bytes usr/share/terminfo/w/wyse-325 | Bin 0 -> 1225 bytes usr/share/terminfo/w/wyse-75ap | Bin 0 -> 1756 bytes usr/share/terminfo/w/wyse-vp | Bin 0 -> 508 bytes usr/share/terminfo/w/wyse120 | Bin 0 -> 1257 bytes usr/share/terminfo/w/wyse120-25 | Bin 0 -> 1269 bytes usr/share/terminfo/w/wyse120-25-w | Bin 0 -> 1267 bytes usr/share/terminfo/w/wyse120-vb | Bin 0 -> 1281 bytes usr/share/terminfo/w/wyse120-w | Bin 0 -> 1267 bytes usr/share/terminfo/w/wyse120-wvb | Bin 0 -> 1299 bytes usr/share/terminfo/w/wyse150 | Bin 0 -> 1257 bytes usr/share/terminfo/w/wyse150-25 | Bin 0 -> 1269 bytes usr/share/terminfo/w/wyse150-25-w | Bin 0 -> 1267 bytes usr/share/terminfo/w/wyse150-vb | Bin 0 -> 1281 bytes usr/share/terminfo/w/wyse150-w | Bin 0 -> 1267 bytes usr/share/terminfo/w/wyse150-w-vb | Bin 0 -> 1299 bytes usr/share/terminfo/w/wyse160 | Bin 0 -> 1350 bytes usr/share/terminfo/w/wyse160-25 | Bin 0 -> 1356 bytes usr/share/terminfo/w/wyse160-25-w | Bin 0 -> 1361 bytes usr/share/terminfo/w/wyse160-42 | Bin 0 -> 1373 bytes usr/share/terminfo/w/wyse160-42-w | Bin 0 -> 1378 bytes usr/share/terminfo/w/wyse160-43 | Bin 0 -> 1353 bytes usr/share/terminfo/w/wyse160-43-w | Bin 0 -> 1358 bytes usr/share/terminfo/w/wyse160-vb | Bin 0 -> 1368 bytes usr/share/terminfo/w/wyse160-w | Bin 0 -> 1367 bytes usr/share/terminfo/w/wyse160-wvb | Bin 0 -> 1393 bytes usr/share/terminfo/w/wyse185 | Bin 0 -> 1710 bytes usr/share/terminfo/w/wyse185-24 | Bin 0 -> 1700 bytes usr/share/terminfo/w/wyse185-vb | Bin 0 -> 1720 bytes usr/share/terminfo/w/wyse185-w | Bin 0 -> 1734 bytes usr/share/terminfo/w/wyse185-wvb | Bin 0 -> 1732 bytes usr/share/terminfo/w/wyse30 | Bin 0 -> 896 bytes usr/share/terminfo/w/wyse30-mc | Bin 0 -> 1041 bytes usr/share/terminfo/w/wyse30-vb | Bin 0 -> 912 bytes usr/share/terminfo/w/wyse325 | Bin 0 -> 1211 bytes usr/share/terminfo/w/wyse325-25 | Bin 0 -> 1225 bytes usr/share/terminfo/w/wyse325-25w | Bin 0 -> 1201 bytes usr/share/terminfo/w/wyse325-42 | Bin 0 -> 1207 bytes usr/share/terminfo/w/wyse325-42w | Bin 0 -> 1209 bytes usr/share/terminfo/w/wyse325-43 | Bin 0 -> 1207 bytes usr/share/terminfo/w/wyse325-43w | Bin 0 -> 1209 bytes usr/share/terminfo/w/wyse325-vb | Bin 0 -> 1233 bytes usr/share/terminfo/w/wyse325-w | Bin 0 -> 1229 bytes usr/share/terminfo/w/wyse325-wvb | Bin 0 -> 1243 bytes usr/share/terminfo/w/wyse350 | Bin 0 -> 1469 bytes usr/share/terminfo/w/wyse350-vb | Bin 0 -> 1487 bytes usr/share/terminfo/w/wyse350-w | Bin 0 -> 1477 bytes usr/share/terminfo/w/wyse350-wvb | Bin 0 -> 1491 bytes usr/share/terminfo/w/wyse370 | Bin 0 -> 2082 bytes usr/share/terminfo/w/wyse50 | Bin 0 -> 1187 bytes usr/share/terminfo/w/wyse50-mc | Bin 0 -> 1315 bytes usr/share/terminfo/w/wyse50-vb | Bin 0 -> 1203 bytes usr/share/terminfo/w/wyse50-w | Bin 0 -> 1193 bytes usr/share/terminfo/w/wyse50-wvb | Bin 0 -> 1209 bytes usr/share/terminfo/w/wyse520 | Bin 0 -> 1692 bytes usr/share/terminfo/w/wyse520-24 | Bin 0 -> 1688 bytes usr/share/terminfo/w/wyse520-36 | Bin 0 -> 1694 bytes usr/share/terminfo/w/wyse520-36pc | Bin 0 -> 1734 bytes usr/share/terminfo/w/wyse520-36w | Bin 0 -> 1714 bytes usr/share/terminfo/w/wyse520-36wpc | Bin 0 -> 1752 bytes usr/share/terminfo/w/wyse520-48 | Bin 0 -> 1694 bytes usr/share/terminfo/w/wyse520-48pc | Bin 0 -> 1734 bytes usr/share/terminfo/w/wyse520-48w | Bin 0 -> 1710 bytes usr/share/terminfo/w/wyse520-48wpc | Bin 0 -> 1752 bytes usr/share/terminfo/w/wyse520-epc | Bin 0 -> 1738 bytes usr/share/terminfo/w/wyse520-epc-w | Bin 0 -> 1760 bytes usr/share/terminfo/w/wyse520-p-wvb | Bin 0 -> 1792 bytes usr/share/terminfo/w/wyse520-pc-24 | Bin 0 -> 1732 bytes usr/share/terminfo/w/wyse520-pc-vb | Bin 0 -> 1780 bytes usr/share/terminfo/w/wyse520-vb | Bin 0 -> 1736 bytes usr/share/terminfo/w/wyse520-w | Bin 0 -> 1714 bytes usr/share/terminfo/w/wyse520-wvb | Bin 0 -> 1748 bytes usr/share/terminfo/w/wyse60 | Bin 0 -> 1565 bytes usr/share/terminfo/w/wyse60-25 | Bin 0 -> 1569 bytes usr/share/terminfo/w/wyse60-25-w | Bin 0 -> 1575 bytes usr/share/terminfo/w/wyse60-316X | Bin 0 -> 1016 bytes usr/share/terminfo/w/wyse60-42 | Bin 0 -> 1593 bytes usr/share/terminfo/w/wyse60-42-w | Bin 0 -> 1603 bytes usr/share/terminfo/w/wyse60-43 | Bin 0 -> 1573 bytes usr/share/terminfo/w/wyse60-43-w | Bin 0 -> 1583 bytes usr/share/terminfo/w/wyse60-AT | Bin 0 -> 1251 bytes usr/share/terminfo/w/wyse60-PC | Bin 0 -> 804 bytes usr/share/terminfo/w/wyse60-vb | Bin 0 -> 1581 bytes usr/share/terminfo/w/wyse60-w | Bin 0 -> 1579 bytes usr/share/terminfo/w/wyse60-wvb | Bin 0 -> 1605 bytes usr/share/terminfo/w/wyse75 | Bin 0 -> 1662 bytes usr/share/terminfo/w/wyse75-mc | Bin 0 -> 1706 bytes usr/share/terminfo/w/wyse75-vb | Bin 0 -> 1684 bytes usr/share/terminfo/w/wyse75-w | Bin 0 -> 1684 bytes usr/share/terminfo/w/wyse75-wvb | Bin 0 -> 1698 bytes usr/share/terminfo/w/wyse75ap | Bin 0 -> 1756 bytes usr/share/terminfo/w/wyse85 | Bin 0 -> 1652 bytes usr/share/terminfo/w/wyse85-8bit | Bin 0 -> 1592 bytes usr/share/terminfo/w/wyse85-vb | Bin 0 -> 1674 bytes usr/share/terminfo/w/wyse85-w | Bin 0 -> 1676 bytes usr/share/terminfo/w/wyse85-wvb | Bin 0 -> 1690 bytes usr/share/terminfo/w/wyse99gt | Bin 0 -> 1599 bytes usr/share/terminfo/w/wyse99gt-25 | Bin 0 -> 1603 bytes usr/share/terminfo/w/wyse99gt-25-w | Bin 0 -> 1605 bytes usr/share/terminfo/w/wyse99gt-vb | Bin 0 -> 1615 bytes usr/share/terminfo/w/wyse99gt-w | Bin 0 -> 1609 bytes usr/share/terminfo/w/wyse99gt-wvb | Bin 0 -> 1637 bytes usr/share/terminfo/x/x10term | Bin 0 -> 657 bytes usr/share/terminfo/x/x10term+sl | Bin 0 -> 387 bytes usr/share/terminfo/x/x1700 | Bin 0 -> 429 bytes usr/share/terminfo/x/x1700-lm | Bin 0 -> 411 bytes usr/share/terminfo/x/x1720 | Bin 0 -> 356 bytes usr/share/terminfo/x/x1750 | Bin 0 -> 356 bytes usr/share/terminfo/x/x68k | Bin 0 -> 1390 bytes usr/share/terminfo/x/x68k-ite | Bin 0 -> 1390 bytes usr/share/terminfo/x/x820 | Bin 0 -> 355 bytes usr/share/terminfo/x/xdku | Bin 0 -> 1452 bytes usr/share/terminfo/x/xenix | Bin 0 -> 1194 bytes usr/share/terminfo/x/xerox | Bin 0 -> 429 bytes usr/share/terminfo/x/xerox-lm | Bin 0 -> 425 bytes usr/share/terminfo/x/xerox1720 | Bin 0 -> 356 bytes usr/share/terminfo/x/xerox820 | Bin 0 -> 355 bytes usr/share/terminfo/x/xfce | Bin 0 -> 2995 bytes usr/share/terminfo/x/xgterm | Bin 0 -> 1566 bytes usr/share/terminfo/x/xiterm | Bin 0 -> 1566 bytes usr/share/terminfo/x/xl83 | Bin 0 -> 414 bytes usr/share/terminfo/x/xnuppc | Bin 0 -> 1195 bytes usr/share/terminfo/x/xnuppc+100x37 | Bin 0 -> 88 bytes usr/share/terminfo/x/xnuppc+112x37 | Bin 0 -> 88 bytes usr/share/terminfo/x/xnuppc+128x40 | Bin 0 -> 88 bytes usr/share/terminfo/x/xnuppc+128x48 | Bin 0 -> 88 bytes usr/share/terminfo/x/xnuppc+144x48 | Bin 0 -> 88 bytes usr/share/terminfo/x/xnuppc+160x64 | Bin 0 -> 90 bytes usr/share/terminfo/x/xnuppc+200x64 | Bin 0 -> 90 bytes usr/share/terminfo/x/xnuppc+200x75 | Bin 0 -> 90 bytes usr/share/terminfo/x/xnuppc+256x96 | Bin 0 -> 90 bytes usr/share/terminfo/x/xnuppc+80x25 | Bin 0 -> 86 bytes usr/share/terminfo/x/xnuppc+80x30 | Bin 0 -> 86 bytes usr/share/terminfo/x/xnuppc+90x30 | Bin 0 -> 86 bytes usr/share/terminfo/x/xnuppc+b | Bin 0 -> 991 bytes usr/share/terminfo/x/xnuppc+basic | Bin 0 -> 965 bytes usr/share/terminfo/x/xnuppc+c | Bin 0 -> 847 bytes usr/share/terminfo/x/xnuppc+f | Bin 0 -> 1013 bytes usr/share/terminfo/x/xnuppc+f2 | Bin 0 -> 1019 bytes usr/share/terminfo/x/xnuppc-100x37 | Bin 0 -> 1217 bytes usr/share/terminfo/x/xnuppc-100x37-m | Bin 0 -> 987 bytes usr/share/terminfo/x/xnuppc-112x37 | Bin 0 -> 1217 bytes usr/share/terminfo/x/xnuppc-112x37-m | Bin 0 -> 987 bytes usr/share/terminfo/x/xnuppc-128x40 | Bin 0 -> 1217 bytes usr/share/terminfo/x/xnuppc-128x40-m | Bin 0 -> 987 bytes usr/share/terminfo/x/xnuppc-128x48 | Bin 0 -> 1217 bytes usr/share/terminfo/x/xnuppc-128x48-m | Bin 0 -> 987 bytes usr/share/terminfo/x/xnuppc-144x48 | Bin 0 -> 1217 bytes usr/share/terminfo/x/xnuppc-144x48-m | Bin 0 -> 987 bytes usr/share/terminfo/x/xnuppc-160x64 | Bin 0 -> 1217 bytes usr/share/terminfo/x/xnuppc-160x64-m | Bin 0 -> 987 bytes usr/share/terminfo/x/xnuppc-200x64 | Bin 0 -> 1217 bytes usr/share/terminfo/x/xnuppc-200x64-m | Bin 0 -> 987 bytes usr/share/terminfo/x/xnuppc-200x75 | Bin 0 -> 1217 bytes usr/share/terminfo/x/xnuppc-200x75-m | Bin 0 -> 987 bytes usr/share/terminfo/x/xnuppc-256x96 | Bin 0 -> 1217 bytes usr/share/terminfo/x/xnuppc-256x96-m | Bin 0 -> 987 bytes usr/share/terminfo/x/xnuppc-80x25 | Bin 0 -> 1213 bytes usr/share/terminfo/x/xnuppc-80x25-m | Bin 0 -> 985 bytes usr/share/terminfo/x/xnuppc-80x30 | Bin 0 -> 1213 bytes usr/share/terminfo/x/xnuppc-80x30-m | Bin 0 -> 985 bytes usr/share/terminfo/x/xnuppc-90x30 | Bin 0 -> 1213 bytes usr/share/terminfo/x/xnuppc-90x30-m | Bin 0 -> 985 bytes usr/share/terminfo/x/xnuppc-b | Bin 0 -> 1215 bytes usr/share/terminfo/x/xnuppc-f | Bin 0 -> 1227 bytes usr/share/terminfo/x/xnuppc-f2 | Bin 0 -> 1235 bytes usr/share/terminfo/x/xnuppc-m | Bin 0 -> 965 bytes usr/share/terminfo/x/xnuppc-m-b | Bin 0 -> 1011 bytes usr/share/terminfo/x/xnuppc-m-f | Bin 0 -> 1025 bytes usr/share/terminfo/x/xnuppc-m-f2 | Bin 0 -> 1033 bytes usr/share/terminfo/x/xtalk | Bin 0 -> 1033 bytes usr/share/terminfo/x/xterm | Bin 0 -> 3818 bytes usr/share/terminfo/x/xterm+256color | Bin 0 -> 1068 bytes usr/share/terminfo/x/xterm+256color2 | Bin 0 -> 1060 bytes usr/share/terminfo/x/xterm+256setaf | Bin 0 -> 942 bytes usr/share/terminfo/x/xterm+88color | Bin 0 -> 1066 bytes usr/share/terminfo/x/xterm+88color2 | Bin 0 -> 1058 bytes usr/share/terminfo/x/xterm+acs | Bin 0 -> 445 bytes usr/share/terminfo/x/xterm+alt+title | Bin 0 -> 182 bytes usr/share/terminfo/x/xterm+alt1049 | Bin 0 -> 144 bytes usr/share/terminfo/x/xterm+alt47 | Bin 0 -> 152 bytes usr/share/terminfo/x/xterm+app | Bin 0 -> 422 bytes usr/share/terminfo/x/xterm+direct | Bin 0 -> 1031 bytes usr/share/terminfo/x/xterm+direct16 | Bin 0 -> 1099 bytes usr/share/terminfo/x/xterm+direct2 | Bin 0 -> 1033 bytes usr/share/terminfo/x/xterm+direct256 | Bin 0 -> 1153 bytes usr/share/terminfo/x/xterm+edit | Bin 0 -> 418 bytes usr/share/terminfo/x/xterm+focus | Bin 0 -> 93 bytes usr/share/terminfo/x/xterm+indirect | Bin 0 -> 1034 bytes usr/share/terminfo/x/xterm+kbs | Bin 0 -> 164 bytes usr/share/terminfo/x/xterm+keypad | Bin 0 -> 612 bytes usr/share/terminfo/x/xterm+meta | Bin 0 -> 276 bytes usr/share/terminfo/x/xterm+noalt | Bin 0 -> 130 bytes usr/share/terminfo/x/xterm+noapp | Bin 0 -> 420 bytes usr/share/terminfo/x/xterm+nofkeys | Bin 0 -> 2354 bytes usr/share/terminfo/x/xterm+nopcfkeys | Bin 0 -> 808 bytes usr/share/terminfo/x/xterm+osc104 | Bin 0 -> 660 bytes usr/share/terminfo/x/xterm+pc+edit | Bin 0 -> 404 bytes usr/share/terminfo/x/xterm+pcc0 | Bin 0 -> 824 bytes usr/share/terminfo/x/xterm+pcc1 | Bin 0 -> 824 bytes usr/share/terminfo/x/xterm+pcc2 | Bin 0 -> 876 bytes usr/share/terminfo/x/xterm+pcc3 | Bin 0 -> 902 bytes usr/share/terminfo/x/xterm+pce2 | Bin 0 -> 1066 bytes usr/share/terminfo/x/xterm+pcf0 | Bin 0 -> 1011 bytes usr/share/terminfo/x/xterm+pcf2 | Bin 0 -> 1049 bytes usr/share/terminfo/x/xterm+pcfkeys | Bin 0 -> 2036 bytes usr/share/terminfo/x/xterm+r6f2 | Bin 0 -> 1094 bytes usr/share/terminfo/x/xterm+sl | Bin 0 -> 374 bytes usr/share/terminfo/x/xterm+sl-alt | Bin 0 -> 376 bytes usr/share/terminfo/x/xterm+sl-twm | Bin 0 -> 402 bytes usr/share/terminfo/x/xterm+sm+1002 | Bin 0 -> 891 bytes usr/share/terminfo/x/xterm+sm+1003 | Bin 0 -> 889 bytes usr/share/terminfo/x/xterm+sm+1005 | Bin 0 -> 883 bytes usr/share/terminfo/x/xterm+sm+1006 | Bin 0 -> 869 bytes usr/share/terminfo/x/xterm+titlestack | Bin 0 -> 150 bytes usr/share/terminfo/x/xterm+tmux | Bin 0 -> 176 bytes usr/share/terminfo/x/xterm+tmux2 | Bin 0 -> 162 bytes usr/share/terminfo/x/xterm+vt+edit | Bin 0 -> 464 bytes usr/share/terminfo/x/xterm+x10mouse | Bin 0 -> 853 bytes usr/share/terminfo/x/xterm+x11hilite | Bin 0 -> 903 bytes usr/share/terminfo/x/xterm+x11mouse | Bin 0 -> 871 bytes usr/share/terminfo/x/xterm-1002 | Bin 0 -> 3848 bytes usr/share/terminfo/x/xterm-1003 | Bin 0 -> 3846 bytes usr/share/terminfo/x/xterm-1005 | Bin 0 -> 3812 bytes usr/share/terminfo/x/xterm-1006 | Bin 0 -> 3798 bytes usr/share/terminfo/x/xterm-16color | Bin 0 -> 4058 bytes usr/share/terminfo/x/xterm-24 | Bin 0 -> 1533 bytes usr/share/terminfo/x/xterm-256color | Bin 0 -> 3882 bytes usr/share/terminfo/x/xterm-88color | Bin 0 -> 3880 bytes usr/share/terminfo/x/xterm-8bit | Bin 0 -> 1913 bytes usr/share/terminfo/x/xterm-basic | Bin 0 -> 1828 bytes usr/share/terminfo/x/xterm-bold | Bin 0 -> 1592 bytes usr/share/terminfo/x/xterm-color | Bin 0 -> 1551 bytes usr/share/terminfo/x/xterm-direct | Bin 0 -> 3839 bytes usr/share/terminfo/x/xterm-direct16 | Bin 0 -> 3915 bytes usr/share/terminfo/x/xterm-direct2 | Bin 0 -> 3829 bytes usr/share/terminfo/x/xterm-direct256 | Bin 0 -> 3969 bytes usr/share/terminfo/x/xterm-hp | Bin 0 -> 2586 bytes usr/share/terminfo/x/xterm-kitty | Bin 0 -> 3711 bytes usr/share/terminfo/x/xterm-mono | Bin 0 -> 1489 bytes usr/share/terminfo/x/xterm-new | Bin 0 -> 3812 bytes usr/share/terminfo/x/xterm-nic | Bin 0 -> 3828 bytes usr/share/terminfo/x/xterm-noapp | Bin 0 -> 3774 bytes usr/share/terminfo/x/xterm-old | Bin 0 -> 1493 bytes usr/share/terminfo/x/xterm-p370 | Bin 0 -> 3798 bytes usr/share/terminfo/x/xterm-p371 | Bin 0 -> 3832 bytes usr/share/terminfo/x/xterm-pcolor | Bin 0 -> 1658 bytes usr/share/terminfo/x/xterm-r5 | Bin 0 -> 1301 bytes usr/share/terminfo/x/xterm-r6 | Bin 0 -> 1491 bytes usr/share/terminfo/x/xterm-sco | Bin 0 -> 2554 bytes usr/share/terminfo/x/xterm-sun | Bin 0 -> 2718 bytes usr/share/terminfo/x/xterm-utf8 | Bin 0 -> 3835 bytes usr/share/terminfo/x/xterm-vt220 | Bin 0 -> 2410 bytes usr/share/terminfo/x/xterm-vt52 | Bin 0 -> 537 bytes usr/share/terminfo/x/xterm-x10mouse | Bin 0 -> 3794 bytes usr/share/terminfo/x/xterm-x11hilite | Bin 0 -> 3822 bytes usr/share/terminfo/x/xterm-x11mouse | Bin 0 -> 3806 bytes usr/share/terminfo/x/xterm-xf86-v32 | Bin 0 -> 2006 bytes usr/share/terminfo/x/xterm-xf86-v33 | Bin 0 -> 1996 bytes usr/share/terminfo/x/xterm-xf86-v333 | Bin 0 -> 2006 bytes usr/share/terminfo/x/xterm-xf86-v40 | Bin 0 -> 2212 bytes usr/share/terminfo/x/xterm-xf86-v43 | Bin 0 -> 2226 bytes usr/share/terminfo/x/xterm-xf86-v44 | Bin 0 -> 2260 bytes usr/share/terminfo/x/xterm-xfree86 | Bin 0 -> 2240 bytes usr/share/terminfo/x/xterm-xi | Bin 0 -> 1986 bytes usr/share/terminfo/x/xterm.js | Bin 0 -> 3403 bytes usr/share/terminfo/x/xterm1 | Bin 0 -> 3802 bytes usr/share/terminfo/x/xtermc | Bin 0 -> 1644 bytes usr/share/terminfo/x/xtermm | Bin 0 -> 1477 bytes usr/share/terminfo/x/xterms | Bin 0 -> 1533 bytes usr/share/terminfo/x/xterms-sun | Bin 0 -> 2734 bytes usr/share/terminfo/x/xwsh | Bin 0 -> 1433 bytes usr/share/terminfo/z/z-100 | Bin 0 -> 707 bytes usr/share/terminfo/z/z-100bw | Bin 0 -> 689 bytes usr/share/terminfo/z/z100 | Bin 0 -> 707 bytes usr/share/terminfo/z/z100bw | Bin 0 -> 689 bytes usr/share/terminfo/z/z110 | Bin 0 -> 707 bytes usr/share/terminfo/z/z110bw | Bin 0 -> 689 bytes usr/share/terminfo/z/z19 | Bin 0 -> 627 bytes usr/share/terminfo/z/z29 | Bin 0 -> 1219 bytes usr/share/terminfo/z/z29a | Bin 0 -> 1413 bytes usr/share/terminfo/z/z29a-kc-bc | Bin 0 -> 1413 bytes usr/share/terminfo/z/z29a-kc-uc | Bin 0 -> 1432 bytes usr/share/terminfo/z/z29a-nkc-bc | Bin 0 -> 1435 bytes usr/share/terminfo/z/z29a-nkc-uc | Bin 0 -> 1441 bytes usr/share/terminfo/z/z29b | Bin 0 -> 1219 bytes usr/share/terminfo/z/z30 | Bin 0 -> 446 bytes usr/share/terminfo/z/z340 | Bin 0 -> 1550 bytes usr/share/terminfo/z/z340-nam | Bin 0 -> 1578 bytes usr/share/terminfo/z/z39-a | Bin 0 -> 1124 bytes usr/share/terminfo/z/z39a | Bin 0 -> 1124 bytes usr/share/terminfo/z/z50 | Bin 0 -> 336 bytes usr/share/terminfo/z/z8001 | Bin 0 -> 527 bytes usr/share/terminfo/z/zen30 | Bin 0 -> 446 bytes usr/share/terminfo/z/zen50 | Bin 0 -> 336 bytes usr/share/terminfo/z/zen8001 | Bin 0 -> 527 bytes usr/share/terminfo/z/zenith | Bin 0 -> 627 bytes usr/share/terminfo/z/zenith29 | Bin 0 -> 1219 bytes usr/share/terminfo/z/zenith39-a | Bin 0 -> 1124 bytes usr/share/terminfo/z/zenith39-ansi | Bin 0 -> 1124 bytes usr/share/terminfo/z/zt-1 | Bin 0 -> 549 bytes usr/share/terminfo/z/ztx | Bin 0 -> 549 bytes usr/share/terminfo/z/ztx-1-a | Bin 0 -> 549 bytes usr/share/terminfo/z/ztx11 | Bin 0 -> 549 bytes 3071 files changed, 69379 insertions(+), 1 deletion(-) create mode 100644 third_party/ncurses/BUILD.mk create mode 100644 third_party/ncurses/LICENSE create mode 100644 third_party/ncurses/README.cosmo create mode 100644 third_party/ncurses/SigAction.h create mode 100644 third_party/ncurses/access.c create mode 100644 third_party/ncurses/add_tries.c create mode 100644 third_party/ncurses/alloc_entry.c create mode 100644 third_party/ncurses/alloc_ttype.c create mode 100644 third_party/ncurses/build.priv.h create mode 100644 third_party/ncurses/capdefaults.inc create mode 100644 third_party/ncurses/captoinfo.c create mode 100644 third_party/ncurses/charable.c create mode 100644 third_party/ncurses/codes.c create mode 100644 third_party/ncurses/comp_captab.c create mode 100644 third_party/ncurses/comp_error.c create mode 100644 third_party/ncurses/comp_expand.c create mode 100644 third_party/ncurses/comp_hash.c create mode 100644 third_party/ncurses/comp_parse.c create mode 100644 third_party/ncurses/comp_scan.c create mode 100644 third_party/ncurses/comp_userdefs.c create mode 100644 third_party/ncurses/curses.h create mode 100644 third_party/ncurses/curses.priv.h create mode 100644 third_party/ncurses/db_iterator.c create mode 100644 third_party/ncurses/define_key.c create mode 100644 third_party/ncurses/doalloc.c create mode 100644 third_party/ncurses/entries.c create mode 100644 third_party/ncurses/eti.h create mode 100644 third_party/ncurses/expanded.c create mode 100644 third_party/ncurses/fallback.c create mode 100644 third_party/ncurses/fifo_defs.h create mode 100644 third_party/ncurses/form.h create mode 100644 third_party/ncurses/free_ttype.c create mode 100644 third_party/ncurses/getenv_num.c create mode 100644 third_party/ncurses/hardscroll.c create mode 100644 third_party/ncurses/hashed_db.c create mode 100644 third_party/ncurses/hashed_db.h create mode 100644 third_party/ncurses/hashmap.c create mode 100644 third_party/ncurses/hashsize.h create mode 100644 third_party/ncurses/home_terminfo.c create mode 100644 third_party/ncurses/init_keytry.c create mode 100644 third_party/ncurses/init_keytry.h create mode 100644 third_party/ncurses/key_defined.c create mode 100644 third_party/ncurses/keybound.c create mode 100644 third_party/ncurses/keyok.c create mode 100644 third_party/ncurses/legacy_coding.c create mode 100644 third_party/ncurses/lib_acs.c create mode 100644 third_party/ncurses/lib_add_wch.c create mode 100644 third_party/ncurses/lib_addch.c create mode 100644 third_party/ncurses/lib_addstr.c create mode 100644 third_party/ncurses/lib_baudrate.c create mode 100644 third_party/ncurses/lib_beep.c create mode 100644 third_party/ncurses/lib_bkgd.c create mode 100644 third_party/ncurses/lib_box.c create mode 100644 third_party/ncurses/lib_box_set.c create mode 100644 third_party/ncurses/lib_cchar.c create mode 100644 third_party/ncurses/lib_chgat.c create mode 100644 third_party/ncurses/lib_clear.c create mode 100644 third_party/ncurses/lib_clearok.c create mode 100644 third_party/ncurses/lib_clrbot.c create mode 100644 third_party/ncurses/lib_clreol.c create mode 100644 third_party/ncurses/lib_color.c create mode 100644 third_party/ncurses/lib_colorset.c create mode 100644 third_party/ncurses/lib_cur_term.c create mode 100644 third_party/ncurses/lib_data.c create mode 100644 third_party/ncurses/lib_delch.c create mode 100644 third_party/ncurses/lib_delwin.c create mode 100644 third_party/ncurses/lib_dft_fgbg.c create mode 100644 third_party/ncurses/lib_echo.c create mode 100644 third_party/ncurses/lib_endwin.c create mode 100644 third_party/ncurses/lib_erase.c create mode 100644 third_party/ncurses/lib_erasewchar.c create mode 100644 third_party/ncurses/lib_flash.c create mode 100644 third_party/ncurses/lib_freeall.c create mode 100644 third_party/ncurses/lib_gen.c create mode 100644 third_party/ncurses/lib_get_wch.c create mode 100644 third_party/ncurses/lib_get_wstr.c create mode 100644 third_party/ncurses/lib_getch.c create mode 100644 third_party/ncurses/lib_getstr.c create mode 100644 third_party/ncurses/lib_has_cap.c create mode 100644 third_party/ncurses/lib_hline.c create mode 100644 third_party/ncurses/lib_hline_set.c create mode 100644 third_party/ncurses/lib_immedok.c create mode 100644 third_party/ncurses/lib_in_wch.c create mode 100644 third_party/ncurses/lib_in_wchnstr.c create mode 100644 third_party/ncurses/lib_inchstr.c create mode 100644 third_party/ncurses/lib_initscr.c create mode 100644 third_party/ncurses/lib_ins_wch.c create mode 100644 third_party/ncurses/lib_insch.c create mode 100644 third_party/ncurses/lib_insdel.c create mode 100644 third_party/ncurses/lib_insnstr.c create mode 100644 third_party/ncurses/lib_instr.c create mode 100644 third_party/ncurses/lib_inwstr.c create mode 100644 third_party/ncurses/lib_isendwin.c create mode 100644 third_party/ncurses/lib_kernel.c create mode 100644 third_party/ncurses/lib_key_name.c create mode 100644 third_party/ncurses/lib_keyname.c create mode 100644 third_party/ncurses/lib_leaveok.c create mode 100644 third_party/ncurses/lib_longname.c create mode 100644 third_party/ncurses/lib_mouse.c create mode 100644 third_party/ncurses/lib_move.c create mode 100644 third_party/ncurses/lib_mvcur.c create mode 100644 third_party/ncurses/lib_mvwin.c create mode 100644 third_party/ncurses/lib_napms.c create mode 100644 third_party/ncurses/lib_newterm.c create mode 100644 third_party/ncurses/lib_newwin.c create mode 100644 third_party/ncurses/lib_nl.c create mode 100644 third_party/ncurses/lib_options.c create mode 100644 third_party/ncurses/lib_overlay.c create mode 100644 third_party/ncurses/lib_pad.c create mode 100644 third_party/ncurses/lib_pecho_wchar.c create mode 100644 third_party/ncurses/lib_print.c create mode 100644 third_party/ncurses/lib_printw.c create mode 100644 third_party/ncurses/lib_raw.c create mode 100644 third_party/ncurses/lib_redrawln.c create mode 100644 third_party/ncurses/lib_refresh.c create mode 100644 third_party/ncurses/lib_restart.c create mode 100644 third_party/ncurses/lib_scanw.c create mode 100644 third_party/ncurses/lib_screen.c create mode 100644 third_party/ncurses/lib_scroll.c create mode 100644 third_party/ncurses/lib_scrollok.c create mode 100644 third_party/ncurses/lib_scrreg.c create mode 100644 third_party/ncurses/lib_set_term.c create mode 100644 third_party/ncurses/lib_setup.c create mode 100644 third_party/ncurses/lib_slk.c create mode 100644 third_party/ncurses/lib_slk_wset.c create mode 100644 third_party/ncurses/lib_slkatr_set.c create mode 100644 third_party/ncurses/lib_slkatrof.c create mode 100644 third_party/ncurses/lib_slkatron.c create mode 100644 third_party/ncurses/lib_slkatrset.c create mode 100644 third_party/ncurses/lib_slkattr.c create mode 100644 third_party/ncurses/lib_slkclear.c create mode 100644 third_party/ncurses/lib_slkcolor.c create mode 100644 third_party/ncurses/lib_slkinit.c create mode 100644 third_party/ncurses/lib_slklab.c create mode 100644 third_party/ncurses/lib_slkrefr.c create mode 100644 third_party/ncurses/lib_slkset.c create mode 100644 third_party/ncurses/lib_slktouch.c create mode 100644 third_party/ncurses/lib_termcap.c create mode 100644 third_party/ncurses/lib_termname.c create mode 100644 third_party/ncurses/lib_tgoto.c create mode 100644 third_party/ncurses/lib_ti.c create mode 100644 third_party/ncurses/lib_touch.c create mode 100644 third_party/ncurses/lib_tparm.c create mode 100644 third_party/ncurses/lib_tputs.c create mode 100644 third_party/ncurses/lib_trace.c create mode 100644 third_party/ncurses/lib_traceatr.c create mode 100644 third_party/ncurses/lib_tracebits.c create mode 100644 third_party/ncurses/lib_tracechr.c create mode 100644 third_party/ncurses/lib_tracedmp.c create mode 100644 third_party/ncurses/lib_tracemse.c create mode 100644 third_party/ncurses/lib_tstp.c create mode 100644 third_party/ncurses/lib_ttyflags.c create mode 100644 third_party/ncurses/lib_twait.c create mode 100644 third_party/ncurses/lib_unget_wch.c create mode 100644 third_party/ncurses/lib_ungetch.c create mode 100644 third_party/ncurses/lib_vid_attr.c create mode 100644 third_party/ncurses/lib_vidattr.c create mode 100644 third_party/ncurses/lib_vline.c create mode 100644 third_party/ncurses/lib_vline_set.c create mode 100644 third_party/ncurses/lib_wacs.c create mode 100644 third_party/ncurses/lib_wattroff.c create mode 100644 third_party/ncurses/lib_wattron.c create mode 100644 third_party/ncurses/lib_winch.c create mode 100644 third_party/ncurses/lib_window.c create mode 100644 third_party/ncurses/lib_wunctrl.c create mode 100644 third_party/ncurses/menu.h create mode 100644 third_party/ncurses/mf_common.h create mode 100644 third_party/ncurses/name_match.c create mode 100644 third_party/ncurses/names.c create mode 100644 third_party/ncurses/nc_access.h create mode 100644 third_party/ncurses/nc_alloc.h create mode 100644 third_party/ncurses/nc_mingw.h create mode 100644 third_party/ncurses/nc_panel.c create mode 100644 third_party/ncurses/nc_panel.h create mode 100644 third_party/ncurses/nc_string.h create mode 100644 third_party/ncurses/nc_termios.h create mode 100644 third_party/ncurses/nc_tparm.h create mode 100644 third_party/ncurses/nc_win32.h create mode 100644 third_party/ncurses/ncurses_cfg.h create mode 100644 third_party/ncurses/ncurses_def.h create mode 100644 third_party/ncurses/ncurses_dll.h create mode 100644 third_party/ncurses/ncurses_mingw.h create mode 100644 third_party/ncurses/new_pair.c create mode 100644 third_party/ncurses/new_pair.h create mode 100644 third_party/ncurses/obsolete.c create mode 100644 third_party/ncurses/panel.h create mode 100644 third_party/ncurses/parametrized.h create mode 100644 third_party/ncurses/parse_entry.c create mode 100644 third_party/ncurses/read_entry.c create mode 100644 third_party/ncurses/read_termcap.c create mode 100644 third_party/ncurses/resizeterm.c create mode 100644 third_party/ncurses/safe_sprintf.c create mode 100644 third_party/ncurses/strings.c create mode 100644 third_party/ncurses/term.h create mode 100644 third_party/ncurses/term.priv.h create mode 100644 third_party/ncurses/term_entry.h create mode 100644 third_party/ncurses/termcap.h create mode 100644 third_party/ncurses/tic.h create mode 100644 third_party/ncurses/trace_buf.c create mode 100644 third_party/ncurses/trace_tries.c create mode 100644 third_party/ncurses/trace_xnames.c create mode 100644 third_party/ncurses/tries.c create mode 100644 third_party/ncurses/trim_sgr0.c create mode 100644 third_party/ncurses/tty_update.c create mode 100644 third_party/ncurses/unctrl.c create mode 100644 third_party/ncurses/unctrl.h create mode 100644 third_party/ncurses/use_screen.c create mode 100644 third_party/ncurses/use_window.c create mode 100644 third_party/ncurses/varargs.c create mode 100644 third_party/ncurses/version.c create mode 100644 third_party/ncurses/visbuf.c create mode 100644 third_party/ncurses/vsscanf.c create mode 100644 third_party/ncurses/wcwidth.h create mode 100644 third_party/ncurses/win32_curses.h create mode 100644 third_party/ncurses/wresize.c create mode 100644 third_party/ncurses/write_entry.c create mode 100644 usr/share/terminfo/1/1178 create mode 100644 usr/share/terminfo/1/1730-lm create mode 100644 usr/share/terminfo/2/2621 create mode 100644 usr/share/terminfo/2/2621-wl create mode 100644 usr/share/terminfo/2/2621A create mode 100644 usr/share/terminfo/2/2621a create mode 100644 usr/share/terminfo/3/386at create mode 100644 usr/share/terminfo/3/3b1 create mode 100644 usr/share/terminfo/4/4025ex create mode 100644 usr/share/terminfo/4/4027ex create mode 100644 usr/share/terminfo/4/4410-w create mode 100644 usr/share/terminfo/5/5051 create mode 100644 usr/share/terminfo/5/5410-w create mode 100644 usr/share/terminfo/5/5620 create mode 100644 usr/share/terminfo/5/5630-24 create mode 100644 usr/share/terminfo/5/5630DMD-24 create mode 100644 usr/share/terminfo/6/6053 create mode 100644 usr/share/terminfo/6/6053-dg create mode 100644 usr/share/terminfo/6/605x create mode 100644 usr/share/terminfo/6/605x-dg create mode 100644 usr/share/terminfo/6/630-lm create mode 100644 usr/share/terminfo/6/630MTG-24 create mode 100644 usr/share/terminfo/7/730MTG-24 create mode 100644 usr/share/terminfo/7/730MTG-41 create mode 100644 usr/share/terminfo/7/730MTG-41r create mode 100644 usr/share/terminfo/7/730MTGr create mode 100644 usr/share/terminfo/7/730MTGr-24 create mode 100644 usr/share/terminfo/8/8510 create mode 100644 usr/share/terminfo/9/955-hb create mode 100644 usr/share/terminfo/9/955-w create mode 100644 usr/share/terminfo/9/9term create mode 100644 usr/share/terminfo/A/Apple_Terminal create mode 100644 usr/share/terminfo/E/Eterm create mode 100644 usr/share/terminfo/E/Eterm-256color create mode 100644 usr/share/terminfo/E/Eterm-88color create mode 100644 usr/share/terminfo/E/Eterm-color create mode 100644 usr/share/terminfo/L/LFT-PC850 create mode 100644 usr/share/terminfo/M/MtxOrb create mode 100644 usr/share/terminfo/M/MtxOrb162 create mode 100644 usr/share/terminfo/M/MtxOrb204 create mode 100644 usr/share/terminfo/N/NCR260VT300WPP create mode 100644 usr/share/terminfo/N/NCRVT100WPP create mode 100644 usr/share/terminfo/P/P12 create mode 100644 usr/share/terminfo/P/P12-M create mode 100644 usr/share/terminfo/P/P12-M-W create mode 100644 usr/share/terminfo/P/P12-W create mode 100644 usr/share/terminfo/P/P14 create mode 100644 usr/share/terminfo/P/P14-M create mode 100644 usr/share/terminfo/P/P14-M-W create mode 100644 usr/share/terminfo/P/P14-W create mode 100644 usr/share/terminfo/P/P4 create mode 100644 usr/share/terminfo/P/P5 create mode 100644 usr/share/terminfo/P/P7 create mode 100644 usr/share/terminfo/P/P8 create mode 100644 usr/share/terminfo/P/P8-W create mode 100644 usr/share/terminfo/P/P9 create mode 100644 usr/share/terminfo/P/P9-8 create mode 100644 usr/share/terminfo/P/P9-8-W create mode 100644 usr/share/terminfo/P/P9-W create mode 100644 usr/share/terminfo/Q/Q306-8-pc create mode 100644 usr/share/terminfo/Q/Q310-vip-H create mode 100644 usr/share/terminfo/Q/Q310-vip-H-am create mode 100644 usr/share/terminfo/Q/Q310-vip-Hw create mode 100644 usr/share/terminfo/Q/Q310-vip-w create mode 100644 usr/share/terminfo/Q/Q310-vip-w-am create mode 100644 usr/share/terminfo/X/X-hpterm create mode 100644 usr/share/terminfo/X/X-hpterm-color2 create mode 100644 usr/share/terminfo/a/a210 create mode 100644 usr/share/terminfo/a/a80 create mode 100644 usr/share/terminfo/a/a980 create mode 100644 usr/share/terminfo/a/aa4080 create mode 100644 usr/share/terminfo/a/aaa create mode 100644 usr/share/terminfo/a/aaa+dec create mode 100644 usr/share/terminfo/a/aaa+rv create mode 100644 usr/share/terminfo/a/aaa+unk create mode 100644 usr/share/terminfo/a/aaa-18 create mode 100644 usr/share/terminfo/a/aaa-18-rv create mode 100644 usr/share/terminfo/a/aaa-20 create mode 100644 usr/share/terminfo/a/aaa-22 create mode 100644 usr/share/terminfo/a/aaa-24 create mode 100644 usr/share/terminfo/a/aaa-24-rv create mode 100644 usr/share/terminfo/a/aaa-26 create mode 100644 usr/share/terminfo/a/aaa-28 create mode 100644 usr/share/terminfo/a/aaa-30 create mode 100644 usr/share/terminfo/a/aaa-30-ctxt create mode 100644 usr/share/terminfo/a/aaa-30-rv create mode 100644 usr/share/terminfo/a/aaa-30-rv-ctxt create mode 100644 usr/share/terminfo/a/aaa-30-s create mode 100644 usr/share/terminfo/a/aaa-30-s-ctxt create mode 100644 usr/share/terminfo/a/aaa-30-s-rv create mode 100644 usr/share/terminfo/a/aaa-30-s-rv-ct create mode 100644 usr/share/terminfo/a/aaa-36 create mode 100644 usr/share/terminfo/a/aaa-36-rv create mode 100644 usr/share/terminfo/a/aaa-40 create mode 100644 usr/share/terminfo/a/aaa-40-rv create mode 100644 usr/share/terminfo/a/aaa-48 create mode 100644 usr/share/terminfo/a/aaa-48-rv create mode 100644 usr/share/terminfo/a/aaa-60 create mode 100644 usr/share/terminfo/a/aaa-60-dec-rv create mode 100644 usr/share/terminfo/a/aaa-60-rv create mode 100644 usr/share/terminfo/a/aaa-60-s create mode 100644 usr/share/terminfo/a/aaa-60-s-rv create mode 100644 usr/share/terminfo/a/aaa-ctxt create mode 100644 usr/share/terminfo/a/aaa-db create mode 100644 usr/share/terminfo/a/aaa-rv create mode 100644 usr/share/terminfo/a/aaa-rv-ctxt create mode 100644 usr/share/terminfo/a/aaa-rv-unk create mode 100644 usr/share/terminfo/a/aaa-s create mode 100644 usr/share/terminfo/a/aaa-s-ctxt create mode 100644 usr/share/terminfo/a/aaa-s-rv create mode 100644 usr/share/terminfo/a/aaa-s-rv-ctxt create mode 100644 usr/share/terminfo/a/aaa-unk create mode 100644 usr/share/terminfo/a/aas1901 create mode 100644 usr/share/terminfo/a/abm80 create mode 100644 usr/share/terminfo/a/abm85 create mode 100644 usr/share/terminfo/a/abm85e create mode 100644 usr/share/terminfo/a/abm85h create mode 100644 usr/share/terminfo/a/abm85h-old create mode 100644 usr/share/terminfo/a/absolute create mode 100644 usr/share/terminfo/a/act4 create mode 100644 usr/share/terminfo/a/act5 create mode 100644 usr/share/terminfo/a/addrinfo create mode 100644 usr/share/terminfo/a/adds200 create mode 100644 usr/share/terminfo/a/adds980 create mode 100644 usr/share/terminfo/a/addsviewpoint create mode 100644 usr/share/terminfo/a/addsvp60 create mode 100644 usr/share/terminfo/a/adm+sgr create mode 100644 usr/share/terminfo/a/adm1 create mode 100644 usr/share/terminfo/a/adm11 create mode 100644 usr/share/terminfo/a/adm1178 create mode 100644 usr/share/terminfo/a/adm12 create mode 100644 usr/share/terminfo/a/adm1a create mode 100644 usr/share/terminfo/a/adm2 create mode 100644 usr/share/terminfo/a/adm20 create mode 100644 usr/share/terminfo/a/adm21 create mode 100644 usr/share/terminfo/a/adm22 create mode 100644 usr/share/terminfo/a/adm3 create mode 100644 usr/share/terminfo/a/adm31 create mode 100644 usr/share/terminfo/a/adm31-old create mode 100644 usr/share/terminfo/a/adm36 create mode 100644 usr/share/terminfo/a/adm3a create mode 100644 usr/share/terminfo/a/adm3a+ create mode 100644 usr/share/terminfo/a/adm42 create mode 100644 usr/share/terminfo/a/adm42-ns create mode 100644 usr/share/terminfo/a/adm5 create mode 100644 usr/share/terminfo/a/aepro create mode 100644 usr/share/terminfo/a/aixterm create mode 100644 usr/share/terminfo/a/aixterm+sl create mode 100644 usr/share/terminfo/a/aixterm-16color create mode 100644 usr/share/terminfo/a/aixterm-m create mode 100644 usr/share/terminfo/a/aixterm-m-old create mode 100644 usr/share/terminfo/a/aj create mode 100644 usr/share/terminfo/a/aj510 create mode 100644 usr/share/terminfo/a/aj830 create mode 100644 usr/share/terminfo/a/aj832 create mode 100644 usr/share/terminfo/a/alacritty create mode 100644 usr/share/terminfo/a/alacritty+common create mode 100644 usr/share/terminfo/a/alacritty-direct create mode 100644 usr/share/terminfo/a/alt2 create mode 100644 usr/share/terminfo/a/alt3 create mode 100644 usr/share/terminfo/a/alt4 create mode 100644 usr/share/terminfo/a/alt5 create mode 100644 usr/share/terminfo/a/alt7 create mode 100644 usr/share/terminfo/a/alt7pc create mode 100644 usr/share/terminfo/a/alto-h19 create mode 100644 usr/share/terminfo/a/alto-heath create mode 100644 usr/share/terminfo/a/altoh19 create mode 100644 usr/share/terminfo/a/altoheath create mode 100644 usr/share/terminfo/a/altos-2 create mode 100644 usr/share/terminfo/a/altos-3 create mode 100644 usr/share/terminfo/a/altos-4 create mode 100644 usr/share/terminfo/a/altos-5 create mode 100644 usr/share/terminfo/a/altos2 create mode 100644 usr/share/terminfo/a/altos3 create mode 100644 usr/share/terminfo/a/altos4 create mode 100644 usr/share/terminfo/a/altos5 create mode 100644 usr/share/terminfo/a/altos7 create mode 100644 usr/share/terminfo/a/altos7pc create mode 100644 usr/share/terminfo/a/ambas create mode 100644 usr/share/terminfo/a/ambassador create mode 100644 usr/share/terminfo/a/amiga create mode 100644 usr/share/terminfo/a/amiga-8bit create mode 100644 usr/share/terminfo/a/amiga-h create mode 100644 usr/share/terminfo/a/amiga-vnc create mode 100644 usr/share/terminfo/a/amp219 create mode 100644 usr/share/terminfo/a/amp219w create mode 100644 usr/share/terminfo/a/ampex-219 create mode 100644 usr/share/terminfo/a/ampex-219w create mode 100644 usr/share/terminfo/a/ampex-232 create mode 100644 usr/share/terminfo/a/ampex175 create mode 100644 usr/share/terminfo/a/ampex175-b create mode 100644 usr/share/terminfo/a/ampex210 create mode 100644 usr/share/terminfo/a/ampex219 create mode 100644 usr/share/terminfo/a/ampex219w create mode 100644 usr/share/terminfo/a/ampex232 create mode 100644 usr/share/terminfo/a/ampex232w create mode 100644 usr/share/terminfo/a/ampex80 create mode 100644 usr/share/terminfo/a/annarbor4080 create mode 100644 usr/share/terminfo/a/ansi create mode 100644 usr/share/terminfo/a/ansi+arrows create mode 100644 usr/share/terminfo/a/ansi+cpr create mode 100644 usr/share/terminfo/a/ansi+csr create mode 100644 usr/share/terminfo/a/ansi+cup create mode 100644 usr/share/terminfo/a/ansi+enq create mode 100644 usr/share/terminfo/a/ansi+erase create mode 100644 usr/share/terminfo/a/ansi+idc create mode 100644 usr/share/terminfo/a/ansi+idc1 create mode 100644 usr/share/terminfo/a/ansi+idl create mode 100644 usr/share/terminfo/a/ansi+idl1 create mode 100644 usr/share/terminfo/a/ansi+inittabs create mode 100644 usr/share/terminfo/a/ansi+local create mode 100644 usr/share/terminfo/a/ansi+local1 create mode 100644 usr/share/terminfo/a/ansi+pp create mode 100644 usr/share/terminfo/a/ansi+rca create mode 100644 usr/share/terminfo/a/ansi+rca2 create mode 100644 usr/share/terminfo/a/ansi+rep create mode 100644 usr/share/terminfo/a/ansi+sgr create mode 100644 usr/share/terminfo/a/ansi+sgrbold create mode 100644 usr/share/terminfo/a/ansi+sgrdim create mode 100644 usr/share/terminfo/a/ansi+sgrso create mode 100644 usr/share/terminfo/a/ansi+sgrul create mode 100644 usr/share/terminfo/a/ansi+tabs create mode 100644 usr/share/terminfo/a/ansi-color-2-emx create mode 100644 usr/share/terminfo/a/ansi-color-3-emx create mode 100644 usr/share/terminfo/a/ansi-emx create mode 100644 usr/share/terminfo/a/ansi-generic create mode 100644 usr/share/terminfo/a/ansi-m create mode 100644 usr/share/terminfo/a/ansi-mini create mode 100644 usr/share/terminfo/a/ansi-mono create mode 100644 usr/share/terminfo/a/ansi-mr create mode 100644 usr/share/terminfo/a/ansi-mtabs create mode 100644 usr/share/terminfo/a/ansi-nt create mode 100644 usr/share/terminfo/a/ansi.sys create mode 100644 usr/share/terminfo/a/ansi.sys-old create mode 100644 usr/share/terminfo/a/ansi.sysk create mode 100644 usr/share/terminfo/a/ansi43m create mode 100644 usr/share/terminfo/a/ansi77 create mode 100644 usr/share/terminfo/a/ansi80x25 create mode 100644 usr/share/terminfo/a/ansi80x25-mono create mode 100644 usr/share/terminfo/a/ansi80x25-raw create mode 100644 usr/share/terminfo/a/ansi80x30 create mode 100644 usr/share/terminfo/a/ansi80x30-mono create mode 100644 usr/share/terminfo/a/ansi80x43 create mode 100644 usr/share/terminfo/a/ansi80x43-mono create mode 100644 usr/share/terminfo/a/ansi80x50 create mode 100644 usr/share/terminfo/a/ansi80x50-mono create mode 100644 usr/share/terminfo/a/ansi80x60 create mode 100644 usr/share/terminfo/a/ansi80x60-mono create mode 100644 usr/share/terminfo/a/ansil create mode 100644 usr/share/terminfo/a/ansil-mono create mode 100644 usr/share/terminfo/a/ansis create mode 100644 usr/share/terminfo/a/ansis-mono create mode 100644 usr/share/terminfo/a/ansisysk create mode 100644 usr/share/terminfo/a/ansiterm create mode 100644 usr/share/terminfo/a/ansiw create mode 100644 usr/share/terminfo/a/ap-vm80 create mode 100644 usr/share/terminfo/a/apl create mode 100644 usr/share/terminfo/a/apollo create mode 100644 usr/share/terminfo/a/apollo+vt132 create mode 100644 usr/share/terminfo/a/apollo_15P create mode 100644 usr/share/terminfo/a/apollo_19L create mode 100644 usr/share/terminfo/a/apollo_color create mode 100644 usr/share/terminfo/a/apple-80 create mode 100644 usr/share/terminfo/a/apple-ae create mode 100644 usr/share/terminfo/a/apple-soroc create mode 100644 usr/share/terminfo/a/apple-uterm create mode 100644 usr/share/terminfo/a/apple-uterm-vb create mode 100644 usr/share/terminfo/a/apple-videx create mode 100644 usr/share/terminfo/a/apple-videx2 create mode 100644 usr/share/terminfo/a/apple-videx3 create mode 100644 usr/share/terminfo/a/apple-vm80 create mode 100644 usr/share/terminfo/a/apple2e create mode 100644 usr/share/terminfo/a/apple2e-p create mode 100644 usr/share/terminfo/a/apple80p create mode 100644 usr/share/terminfo/a/appleII create mode 100644 usr/share/terminfo/a/appleIIc create mode 100644 usr/share/terminfo/a/appleIIe create mode 100644 usr/share/terminfo/a/appleIIgs create mode 100644 usr/share/terminfo/a/arm100 create mode 100644 usr/share/terminfo/a/arm100-am create mode 100644 usr/share/terminfo/a/arm100-w create mode 100644 usr/share/terminfo/a/arm100-wam create mode 100644 usr/share/terminfo/a/at create mode 100644 usr/share/terminfo/a/at-color create mode 100644 usr/share/terminfo/a/at-m create mode 100644 usr/share/terminfo/a/at386 create mode 100644 usr/share/terminfo/a/atari create mode 100644 usr/share/terminfo/a/atari-color create mode 100644 usr/share/terminfo/a/atari-m create mode 100644 usr/share/terminfo/a/atari-old create mode 100644 usr/share/terminfo/a/atari_st create mode 100644 usr/share/terminfo/a/atari_st-color create mode 100644 usr/share/terminfo/a/atarist-m create mode 100644 usr/share/terminfo/a/aterm create mode 100644 usr/share/terminfo/a/att2300 create mode 100644 usr/share/terminfo/a/att2350 create mode 100644 usr/share/terminfo/a/att4410 create mode 100644 usr/share/terminfo/a/att4410-w create mode 100644 usr/share/terminfo/a/att4410v1 create mode 100644 usr/share/terminfo/a/att4410v1-w create mode 100644 usr/share/terminfo/a/att4415 create mode 100644 usr/share/terminfo/a/att4415+nl create mode 100644 usr/share/terminfo/a/att4415-nl create mode 100644 usr/share/terminfo/a/att4415-rv create mode 100644 usr/share/terminfo/a/att4415-rv-nl create mode 100644 usr/share/terminfo/a/att4415-w create mode 100644 usr/share/terminfo/a/att4415-w-nl create mode 100644 usr/share/terminfo/a/att4415-w-rv create mode 100644 usr/share/terminfo/a/att4415-w-rv-n create mode 100644 usr/share/terminfo/a/att4418 create mode 100644 usr/share/terminfo/a/att4418-w create mode 100644 usr/share/terminfo/a/att4420 create mode 100644 usr/share/terminfo/a/att4424 create mode 100644 usr/share/terminfo/a/att4424-1 create mode 100644 usr/share/terminfo/a/att4424m create mode 100644 usr/share/terminfo/a/att4425 create mode 100644 usr/share/terminfo/a/att4425-nl create mode 100644 usr/share/terminfo/a/att4425-w create mode 100644 usr/share/terminfo/a/att4426 create mode 100644 usr/share/terminfo/a/att500 create mode 100644 usr/share/terminfo/a/att505 create mode 100644 usr/share/terminfo/a/att505-22 create mode 100644 usr/share/terminfo/a/att505-24 create mode 100644 usr/share/terminfo/a/att510a create mode 100644 usr/share/terminfo/a/att510d create mode 100644 usr/share/terminfo/a/att513 create mode 100644 usr/share/terminfo/a/att5310 create mode 100644 usr/share/terminfo/a/att5320 create mode 100644 usr/share/terminfo/a/att5410 create mode 100644 usr/share/terminfo/a/att5410-w create mode 100644 usr/share/terminfo/a/att5410v1 create mode 100644 usr/share/terminfo/a/att5410v1-w create mode 100644 usr/share/terminfo/a/att5418 create mode 100644 usr/share/terminfo/a/att5418-w create mode 100644 usr/share/terminfo/a/att5420 create mode 100644 usr/share/terminfo/a/att5420+nl create mode 100644 usr/share/terminfo/a/att5420-nl create mode 100644 usr/share/terminfo/a/att5420-rv create mode 100644 usr/share/terminfo/a/att5420-rv-nl create mode 100644 usr/share/terminfo/a/att5420-w create mode 100644 usr/share/terminfo/a/att5420-w-nl create mode 100644 usr/share/terminfo/a/att5420-w-rv create mode 100644 usr/share/terminfo/a/att5420-w-rv-n create mode 100644 usr/share/terminfo/a/att5420_2 create mode 100644 usr/share/terminfo/a/att5420_2-w create mode 100644 usr/share/terminfo/a/att5425 create mode 100644 usr/share/terminfo/a/att5425-nl create mode 100644 usr/share/terminfo/a/att5425-w create mode 100644 usr/share/terminfo/a/att5430 create mode 100644 usr/share/terminfo/a/att5620 create mode 100644 usr/share/terminfo/a/att5620-1 create mode 100644 usr/share/terminfo/a/att5620-24 create mode 100644 usr/share/terminfo/a/att5620-34 create mode 100644 usr/share/terminfo/a/att5620-s create mode 100644 usr/share/terminfo/a/att605 create mode 100644 usr/share/terminfo/a/att605-pc create mode 100644 usr/share/terminfo/a/att605-w create mode 100644 usr/share/terminfo/a/att610 create mode 100644 usr/share/terminfo/a/att610+cvis create mode 100644 usr/share/terminfo/a/att610+cvis0 create mode 100644 usr/share/terminfo/a/att610-103k create mode 100644 usr/share/terminfo/a/att610-103k-w create mode 100644 usr/share/terminfo/a/att610-w create mode 100644 usr/share/terminfo/a/att615 create mode 100644 usr/share/terminfo/a/att615-103k create mode 100644 usr/share/terminfo/a/att615-103k-w create mode 100644 usr/share/terminfo/a/att615-w create mode 100644 usr/share/terminfo/a/att620 create mode 100644 usr/share/terminfo/a/att620-103k create mode 100644 usr/share/terminfo/a/att620-103k-w create mode 100644 usr/share/terminfo/a/att620-w create mode 100644 usr/share/terminfo/a/att630 create mode 100644 usr/share/terminfo/a/att630-24 create mode 100644 usr/share/terminfo/a/att6386 create mode 100644 usr/share/terminfo/a/att700 create mode 100644 usr/share/terminfo/a/att730 create mode 100644 usr/share/terminfo/a/att730-24 create mode 100644 usr/share/terminfo/a/att730-41 create mode 100644 usr/share/terminfo/a/att7300 create mode 100644 usr/share/terminfo/a/att730r create mode 100644 usr/share/terminfo/a/att730r-24 create mode 100644 usr/share/terminfo/a/att730r-41 create mode 100644 usr/share/terminfo/a/avatar create mode 100644 usr/share/terminfo/a/avatar0 create mode 100644 usr/share/terminfo/a/avatar0+ create mode 100644 usr/share/terminfo/a/avatar1 create mode 100644 usr/share/terminfo/a/avt create mode 100644 usr/share/terminfo/a/avt+s create mode 100644 usr/share/terminfo/a/avt-ns create mode 100644 usr/share/terminfo/a/avt-rv create mode 100644 usr/share/terminfo/a/avt-rv-ns create mode 100644 usr/share/terminfo/a/avt-rv-s create mode 100644 usr/share/terminfo/a/avt-s create mode 100644 usr/share/terminfo/a/avt-w create mode 100644 usr/share/terminfo/a/avt-w-ns create mode 100644 usr/share/terminfo/a/avt-w-rv create mode 100644 usr/share/terminfo/a/avt-w-rv-ns create mode 100644 usr/share/terminfo/a/avt-w-rv-s create mode 100644 usr/share/terminfo/a/avt-w-s create mode 100644 usr/share/terminfo/a/aws create mode 100644 usr/share/terminfo/a/awsc create mode 100644 usr/share/terminfo/b/b-128 create mode 100644 usr/share/terminfo/b/bantam create mode 100644 usr/share/terminfo/b/basic4 create mode 100644 usr/share/terminfo/b/basis create mode 100644 usr/share/terminfo/b/bct510a create mode 100644 usr/share/terminfo/b/bct510d create mode 100644 usr/share/terminfo/b/beacon create mode 100644 usr/share/terminfo/b/bee create mode 100644 usr/share/terminfo/b/beehive create mode 100644 usr/share/terminfo/b/beehive3 create mode 100644 usr/share/terminfo/b/beehive4 create mode 100644 usr/share/terminfo/b/beehiveIIIm create mode 100644 usr/share/terminfo/b/beterm create mode 100644 usr/share/terminfo/b/bg1.25 create mode 100644 usr/share/terminfo/b/bg1.25nv create mode 100644 usr/share/terminfo/b/bg1.25rv create mode 100644 usr/share/terminfo/b/bg2.0 create mode 100644 usr/share/terminfo/b/bg2.0nv create mode 100644 usr/share/terminfo/b/bg2.0rv create mode 100644 usr/share/terminfo/b/bg3.10 create mode 100644 usr/share/terminfo/b/bg3.10nv create mode 100644 usr/share/terminfo/b/bg3.10rv create mode 100644 usr/share/terminfo/b/bh3m create mode 100644 usr/share/terminfo/b/bh4 create mode 100644 usr/share/terminfo/b/bitgraph create mode 100644 usr/share/terminfo/b/blit create mode 100644 usr/share/terminfo/b/bobcat create mode 100644 usr/share/terminfo/b/bq300 create mode 100644 usr/share/terminfo/b/bq300-8 create mode 100644 usr/share/terminfo/b/bq300-8-pc create mode 100644 usr/share/terminfo/b/bq300-8-pc-rv create mode 100644 usr/share/terminfo/b/bq300-8-pc-w create mode 100644 usr/share/terminfo/b/bq300-8-pc-w-rv create mode 100644 usr/share/terminfo/b/bq300-8rv create mode 100644 usr/share/terminfo/b/bq300-8w create mode 100644 usr/share/terminfo/b/bq300-pc create mode 100644 usr/share/terminfo/b/bq300-pc-rv create mode 100644 usr/share/terminfo/b/bq300-pc-w create mode 100644 usr/share/terminfo/b/bq300-pc-w-rv create mode 100644 usr/share/terminfo/b/bq300-rv create mode 100644 usr/share/terminfo/b/bq300-w create mode 100644 usr/share/terminfo/b/bq300-w-8rv create mode 100644 usr/share/terminfo/b/bq300-w-rv create mode 100644 usr/share/terminfo/b/bracketed+paste create mode 100644 usr/share/terminfo/b/bsdos-pc create mode 100644 usr/share/terminfo/b/bsdos-pc-m create mode 100644 usr/share/terminfo/b/bsdos-pc-mono create mode 100644 usr/share/terminfo/b/bsdos-pc-nobold create mode 100644 usr/share/terminfo/b/bsdos-ppc create mode 100644 usr/share/terminfo/b/bsdos-sparc create mode 100644 usr/share/terminfo/b/bterm create mode 100644 usr/share/terminfo/c/c100 create mode 100644 usr/share/terminfo/c/c100-1p create mode 100644 usr/share/terminfo/c/c100-4p create mode 100644 usr/share/terminfo/c/c100-rv create mode 100644 usr/share/terminfo/c/c100-rv-4p create mode 100644 usr/share/terminfo/c/c104 create mode 100644 usr/share/terminfo/c/c108 create mode 100644 usr/share/terminfo/c/c108-4p create mode 100644 usr/share/terminfo/c/c108-8p create mode 100644 usr/share/terminfo/c/c108-rv create mode 100644 usr/share/terminfo/c/c108-rv-4p create mode 100644 usr/share/terminfo/c/c108-rv-8p create mode 100644 usr/share/terminfo/c/c108-w create mode 100644 usr/share/terminfo/c/c108-w-8p create mode 100644 usr/share/terminfo/c/c300 create mode 100644 usr/share/terminfo/c/c301 create mode 100644 usr/share/terminfo/c/c321 create mode 100644 usr/share/terminfo/c/ca22851 create mode 100644 usr/share/terminfo/c/cad68-2 create mode 100644 usr/share/terminfo/c/cad68-3 create mode 100644 usr/share/terminfo/c/cbblit create mode 100644 usr/share/terminfo/c/cbunix create mode 100644 usr/share/terminfo/c/cci create mode 100644 usr/share/terminfo/c/cci1 create mode 100644 usr/share/terminfo/c/cdc456 create mode 100644 usr/share/terminfo/c/cdc721 create mode 100644 usr/share/terminfo/c/cdc721-esc create mode 100644 usr/share/terminfo/c/cdc721ll create mode 100644 usr/share/terminfo/c/cdc752 create mode 100644 usr/share/terminfo/c/cdc756 create mode 100644 usr/share/terminfo/c/cg7900 create mode 100644 usr/share/terminfo/c/cgc2 create mode 100644 usr/share/terminfo/c/cgc3 create mode 100644 usr/share/terminfo/c/chromatics create mode 100644 usr/share/terminfo/c/ci8510 create mode 100644 usr/share/terminfo/c/cit-80 create mode 100644 usr/share/terminfo/c/cit101 create mode 100644 usr/share/terminfo/c/cit101e create mode 100644 usr/share/terminfo/c/cit101e-132 create mode 100644 usr/share/terminfo/c/cit101e-n create mode 100644 usr/share/terminfo/c/cit101e-n132 create mode 100644 usr/share/terminfo/c/cit101e-rv create mode 100644 usr/share/terminfo/c/cit500 create mode 100644 usr/share/terminfo/c/cit80 create mode 100644 usr/share/terminfo/c/citc create mode 100644 usr/share/terminfo/c/citoh create mode 100644 usr/share/terminfo/c/citoh-6lpi create mode 100644 usr/share/terminfo/c/citoh-8lpi create mode 100644 usr/share/terminfo/c/citoh-comp create mode 100644 usr/share/terminfo/c/citoh-elite create mode 100644 usr/share/terminfo/c/citoh-pica create mode 100644 usr/share/terminfo/c/citoh-prop create mode 100644 usr/share/terminfo/c/citoh-ps create mode 100644 usr/share/terminfo/c/coco3 create mode 100644 usr/share/terminfo/c/coherent create mode 100644 usr/share/terminfo/c/color_xterm create mode 100644 usr/share/terminfo/c/colorscan create mode 100644 usr/share/terminfo/c/commodore create mode 100644 usr/share/terminfo/c/concept create mode 100644 usr/share/terminfo/c/concept-avt create mode 100644 usr/share/terminfo/c/concept100 create mode 100644 usr/share/terminfo/c/concept100-rv create mode 100644 usr/share/terminfo/c/concept108 create mode 100644 usr/share/terminfo/c/concept108-4p create mode 100644 usr/share/terminfo/c/concept108-8p create mode 100644 usr/share/terminfo/c/concept108-w-8 create mode 100644 usr/share/terminfo/c/concept108-w8p create mode 100644 usr/share/terminfo/c/concept108rv4p create mode 100644 usr/share/terminfo/c/cons25 create mode 100644 usr/share/terminfo/c/cons25-debian create mode 100644 usr/share/terminfo/c/cons25-iso-m create mode 100644 usr/share/terminfo/c/cons25-iso8859 create mode 100644 usr/share/terminfo/c/cons25-koi8-r create mode 100644 usr/share/terminfo/c/cons25-koi8r-m create mode 100644 usr/share/terminfo/c/cons25-m create mode 100644 usr/share/terminfo/c/cons25l1 create mode 100644 usr/share/terminfo/c/cons25l1-m create mode 100644 usr/share/terminfo/c/cons25r create mode 100644 usr/share/terminfo/c/cons25r-m create mode 100644 usr/share/terminfo/c/cons25w create mode 100644 usr/share/terminfo/c/cons30 create mode 100644 usr/share/terminfo/c/cons30-m create mode 100644 usr/share/terminfo/c/cons43 create mode 100644 usr/share/terminfo/c/cons43-m create mode 100644 usr/share/terminfo/c/cons50 create mode 100644 usr/share/terminfo/c/cons50-iso-m create mode 100644 usr/share/terminfo/c/cons50-iso8859 create mode 100644 usr/share/terminfo/c/cons50-koi8r create mode 100644 usr/share/terminfo/c/cons50-koi8r-m create mode 100644 usr/share/terminfo/c/cons50-m create mode 100644 usr/share/terminfo/c/cons50l1 create mode 100644 usr/share/terminfo/c/cons50l1-m create mode 100644 usr/share/terminfo/c/cons50r create mode 100644 usr/share/terminfo/c/cons50r-m create mode 100644 usr/share/terminfo/c/cons60 create mode 100644 usr/share/terminfo/c/cons60-iso create mode 100644 usr/share/terminfo/c/cons60-iso-m create mode 100644 usr/share/terminfo/c/cons60-koi8r create mode 100644 usr/share/terminfo/c/cons60-koi8r-m create mode 100644 usr/share/terminfo/c/cons60-m create mode 100644 usr/share/terminfo/c/cons60l1 create mode 100644 usr/share/terminfo/c/cons60l1-m create mode 100644 usr/share/terminfo/c/cons60r create mode 100644 usr/share/terminfo/c/cons60r-m create mode 100644 usr/share/terminfo/c/contel300 create mode 100644 usr/share/terminfo/c/contel301 create mode 100644 usr/share/terminfo/c/contel320 create mode 100644 usr/share/terminfo/c/contel321 create mode 100644 usr/share/terminfo/c/cops create mode 100644 usr/share/terminfo/c/cops-10 create mode 100644 usr/share/terminfo/c/cops10 create mode 100644 usr/share/terminfo/c/crt create mode 100644 usr/share/terminfo/c/crt-vt220 create mode 100644 usr/share/terminfo/c/cs10 create mode 100644 usr/share/terminfo/c/cs10-w create mode 100644 usr/share/terminfo/c/ct82 create mode 100644 usr/share/terminfo/c/ct8500 create mode 100644 usr/share/terminfo/c/ctrm create mode 100644 usr/share/terminfo/c/cx create mode 100644 usr/share/terminfo/c/cx100 create mode 100644 usr/share/terminfo/c/cyb110 create mode 100644 usr/share/terminfo/c/cyb83 create mode 100644 usr/share/terminfo/c/cygwin create mode 100644 usr/share/terminfo/c/cygwinB19 create mode 100644 usr/share/terminfo/c/cygwinDBG create mode 100644 usr/share/terminfo/d/d132 create mode 100644 usr/share/terminfo/d/d2 create mode 100644 usr/share/terminfo/d/d2-dg create mode 100644 usr/share/terminfo/d/d200 create mode 100644 usr/share/terminfo/d/d200-dg create mode 100644 usr/share/terminfo/d/d210 create mode 100644 usr/share/terminfo/d/d210-dg create mode 100644 usr/share/terminfo/d/d211 create mode 100644 usr/share/terminfo/d/d211-7b create mode 100644 usr/share/terminfo/d/d211-dg create mode 100644 usr/share/terminfo/d/d214 create mode 100644 usr/share/terminfo/d/d214-dg create mode 100644 usr/share/terminfo/d/d215 create mode 100644 usr/share/terminfo/d/d215-7b create mode 100644 usr/share/terminfo/d/d215-dg create mode 100644 usr/share/terminfo/d/d216+ create mode 100644 usr/share/terminfo/d/d216+25 create mode 100644 usr/share/terminfo/d/d216+dg create mode 100644 usr/share/terminfo/d/d216-dg create mode 100644 usr/share/terminfo/d/d216-unix create mode 100644 usr/share/terminfo/d/d216-unix-25 create mode 100644 usr/share/terminfo/d/d216e+ create mode 100644 usr/share/terminfo/d/d216e+dg create mode 100644 usr/share/terminfo/d/d216e-dg create mode 100644 usr/share/terminfo/d/d216e-unix create mode 100644 usr/share/terminfo/d/d217-dg create mode 100644 usr/share/terminfo/d/d217-unix create mode 100644 usr/share/terminfo/d/d217-unix-25 create mode 100644 usr/share/terminfo/d/d220 create mode 100644 usr/share/terminfo/d/d220-7b create mode 100644 usr/share/terminfo/d/d220-dg create mode 100644 usr/share/terminfo/d/d230 create mode 100644 usr/share/terminfo/d/d230-dg create mode 100644 usr/share/terminfo/d/d230c create mode 100644 usr/share/terminfo/d/d230c-dg create mode 100644 usr/share/terminfo/d/d400 create mode 100644 usr/share/terminfo/d/d400-dg create mode 100644 usr/share/terminfo/d/d410 create mode 100644 usr/share/terminfo/d/d410-7b create mode 100644 usr/share/terminfo/d/d410-7b-w create mode 100644 usr/share/terminfo/d/d410-dg create mode 100644 usr/share/terminfo/d/d410-w create mode 100644 usr/share/terminfo/d/d411 create mode 100644 usr/share/terminfo/d/d411-7b create mode 100644 usr/share/terminfo/d/d411-7b-w create mode 100644 usr/share/terminfo/d/d411-dg create mode 100644 usr/share/terminfo/d/d411-w create mode 100644 usr/share/terminfo/d/d412+ create mode 100644 usr/share/terminfo/d/d412+25 create mode 100644 usr/share/terminfo/d/d412+dg create mode 100644 usr/share/terminfo/d/d412+s create mode 100644 usr/share/terminfo/d/d412+sr create mode 100644 usr/share/terminfo/d/d412+w create mode 100644 usr/share/terminfo/d/d412-dg create mode 100644 usr/share/terminfo/d/d412-unix create mode 100644 usr/share/terminfo/d/d412-unix-25 create mode 100644 usr/share/terminfo/d/d412-unix-s create mode 100644 usr/share/terminfo/d/d412-unix-sr create mode 100644 usr/share/terminfo/d/d412-unix-w create mode 100644 usr/share/terminfo/d/d413-dg create mode 100644 usr/share/terminfo/d/d413-unix create mode 100644 usr/share/terminfo/d/d413-unix-25 create mode 100644 usr/share/terminfo/d/d413-unix-s create mode 100644 usr/share/terminfo/d/d413-unix-sr create mode 100644 usr/share/terminfo/d/d413-unix-w create mode 100644 usr/share/terminfo/d/d414-unix create mode 100644 usr/share/terminfo/d/d414-unix-25 create mode 100644 usr/share/terminfo/d/d414-unix-s create mode 100644 usr/share/terminfo/d/d414-unix-sr create mode 100644 usr/share/terminfo/d/d414-unix-w create mode 100644 usr/share/terminfo/d/d430-dg create mode 100644 usr/share/terminfo/d/d430-dg-ccc create mode 100644 usr/share/terminfo/d/d430-unix create mode 100644 usr/share/terminfo/d/d430-unix-25 create mode 100644 usr/share/terminfo/d/d430-unix-25-ccc create mode 100644 usr/share/terminfo/d/d430-unix-ccc create mode 100644 usr/share/terminfo/d/d430-unix-s create mode 100644 usr/share/terminfo/d/d430-unix-s-ccc create mode 100644 usr/share/terminfo/d/d430-unix-sr create mode 100644 usr/share/terminfo/d/d430-unix-sr-ccc create mode 100644 usr/share/terminfo/d/d430-unix-w create mode 100644 usr/share/terminfo/d/d430-unix-w-ccc create mode 100644 usr/share/terminfo/d/d430c-dg create mode 100644 usr/share/terminfo/d/d430c-dg-ccc create mode 100644 usr/share/terminfo/d/d430c-unix create mode 100644 usr/share/terminfo/d/d430c-unix-25 create mode 100644 usr/share/terminfo/d/d430c-unix-25-ccc create mode 100644 usr/share/terminfo/d/d430c-unix-ccc create mode 100644 usr/share/terminfo/d/d430c-unix-s create mode 100644 usr/share/terminfo/d/d430c-unix-s-ccc create mode 100644 usr/share/terminfo/d/d430c-unix-sr create mode 100644 usr/share/terminfo/d/d430c-unix-sr-ccc create mode 100644 usr/share/terminfo/d/d430c-unix-w create mode 100644 usr/share/terminfo/d/d430c-unix-w-ccc create mode 100644 usr/share/terminfo/d/d450 create mode 100644 usr/share/terminfo/d/d450-dg create mode 100644 usr/share/terminfo/d/d460 create mode 100644 usr/share/terminfo/d/d460-7b create mode 100644 usr/share/terminfo/d/d460-7b-w create mode 100644 usr/share/terminfo/d/d460-dg create mode 100644 usr/share/terminfo/d/d460-w create mode 100644 usr/share/terminfo/d/d461 create mode 100644 usr/share/terminfo/d/d461-7b create mode 100644 usr/share/terminfo/d/d461-7b-w create mode 100644 usr/share/terminfo/d/d461-dg create mode 100644 usr/share/terminfo/d/d461-w create mode 100644 usr/share/terminfo/d/d462+ create mode 100644 usr/share/terminfo/d/d462+25 create mode 100644 usr/share/terminfo/d/d462+dg create mode 100644 usr/share/terminfo/d/d462+s create mode 100644 usr/share/terminfo/d/d462+sr create mode 100644 usr/share/terminfo/d/d462+w create mode 100644 usr/share/terminfo/d/d462-dg create mode 100644 usr/share/terminfo/d/d462-unix create mode 100644 usr/share/terminfo/d/d462-unix-25 create mode 100644 usr/share/terminfo/d/d462-unix-s create mode 100644 usr/share/terminfo/d/d462-unix-sr create mode 100644 usr/share/terminfo/d/d462-unix-w create mode 100644 usr/share/terminfo/d/d462e-dg create mode 100644 usr/share/terminfo/d/d463-dg create mode 100644 usr/share/terminfo/d/d463-unix create mode 100644 usr/share/terminfo/d/d463-unix-25 create mode 100644 usr/share/terminfo/d/d463-unix-s create mode 100644 usr/share/terminfo/d/d463-unix-sr create mode 100644 usr/share/terminfo/d/d463-unix-w create mode 100644 usr/share/terminfo/d/d464-unix create mode 100644 usr/share/terminfo/d/d464-unix-25 create mode 100644 usr/share/terminfo/d/d464-unix-s create mode 100644 usr/share/terminfo/d/d464-unix-sr create mode 100644 usr/share/terminfo/d/d464-unix-w create mode 100644 usr/share/terminfo/d/d470 create mode 100644 usr/share/terminfo/d/d470-7b create mode 100644 usr/share/terminfo/d/d470-dg create mode 100644 usr/share/terminfo/d/d470c create mode 100644 usr/share/terminfo/d/d470c-7b create mode 100644 usr/share/terminfo/d/d470c-dg create mode 100644 usr/share/terminfo/d/d555 create mode 100644 usr/share/terminfo/d/d555-7b create mode 100644 usr/share/terminfo/d/d555-7b-w create mode 100644 usr/share/terminfo/d/d555-dg create mode 100644 usr/share/terminfo/d/d555-w create mode 100644 usr/share/terminfo/d/d577 create mode 100644 usr/share/terminfo/d/d577-7b create mode 100644 usr/share/terminfo/d/d577-7b-w create mode 100644 usr/share/terminfo/d/d577-dg create mode 100644 usr/share/terminfo/d/d577-w create mode 100644 usr/share/terminfo/d/d578 create mode 100644 usr/share/terminfo/d/d578-7b create mode 100644 usr/share/terminfo/d/d578-dg create mode 100644 usr/share/terminfo/d/d80 create mode 100644 usr/share/terminfo/d/d800 create mode 100644 usr/share/terminfo/d/darwin create mode 100644 usr/share/terminfo/d/darwin-100x37 create mode 100644 usr/share/terminfo/d/darwin-100x37-m create mode 100644 usr/share/terminfo/d/darwin-112x37 create mode 100644 usr/share/terminfo/d/darwin-112x37-m create mode 100644 usr/share/terminfo/d/darwin-128x40 create mode 100644 usr/share/terminfo/d/darwin-128x40-m create mode 100644 usr/share/terminfo/d/darwin-128x48 create mode 100644 usr/share/terminfo/d/darwin-128x48-m create mode 100644 usr/share/terminfo/d/darwin-144x48 create mode 100644 usr/share/terminfo/d/darwin-144x48-m create mode 100644 usr/share/terminfo/d/darwin-160x64 create mode 100644 usr/share/terminfo/d/darwin-160x64-m create mode 100644 usr/share/terminfo/d/darwin-200x64 create mode 100644 usr/share/terminfo/d/darwin-200x64-m create mode 100644 usr/share/terminfo/d/darwin-200x75 create mode 100644 usr/share/terminfo/d/darwin-200x75-m create mode 100644 usr/share/terminfo/d/darwin-256x96 create mode 100644 usr/share/terminfo/d/darwin-256x96-m create mode 100644 usr/share/terminfo/d/darwin-80x25 create mode 100644 usr/share/terminfo/d/darwin-80x25-m create mode 100644 usr/share/terminfo/d/darwin-80x30 create mode 100644 usr/share/terminfo/d/darwin-80x30-m create mode 100644 usr/share/terminfo/d/darwin-90x30 create mode 100644 usr/share/terminfo/d/darwin-90x30-m create mode 100644 usr/share/terminfo/d/darwin-b create mode 100644 usr/share/terminfo/d/darwin-f create mode 100644 usr/share/terminfo/d/darwin-f2 create mode 100644 usr/share/terminfo/d/darwin-m create mode 100644 usr/share/terminfo/d/darwin-m-b create mode 100644 usr/share/terminfo/d/darwin-m-f create mode 100644 usr/share/terminfo/d/darwin-m-f2 create mode 100644 usr/share/terminfo/d/datagraphix create mode 100644 usr/share/terminfo/d/datamedia2500 create mode 100644 usr/share/terminfo/d/datapoint create mode 100644 usr/share/terminfo/d/dataspeed40 create mode 100644 usr/share/terminfo/d/dd5000 create mode 100644 usr/share/terminfo/d/ddr create mode 100644 usr/share/terminfo/d/ddr3180 create mode 100644 usr/share/terminfo/d/dec+pp create mode 100644 usr/share/terminfo/d/dec+sl create mode 100644 usr/share/terminfo/d/dec-vt100 create mode 100644 usr/share/terminfo/d/dec-vt220 create mode 100644 usr/share/terminfo/d/dec-vt330 create mode 100644 usr/share/terminfo/d/dec-vt340 create mode 100644 usr/share/terminfo/d/dec-vt400 create mode 100644 usr/share/terminfo/d/decansi create mode 100644 usr/share/terminfo/d/decid+cpr create mode 100644 usr/share/terminfo/d/decpro create mode 100644 usr/share/terminfo/d/decwriter create mode 100644 usr/share/terminfo/d/delta create mode 100644 usr/share/terminfo/d/dg+ccc create mode 100644 usr/share/terminfo/d/dg+color create mode 100644 usr/share/terminfo/d/dg+color8 create mode 100644 usr/share/terminfo/d/dg+fixed create mode 100644 usr/share/terminfo/d/dg-ansi create mode 100644 usr/share/terminfo/d/dg-generic create mode 100644 usr/share/terminfo/d/dg100 create mode 100644 usr/share/terminfo/d/dg200 create mode 100644 usr/share/terminfo/d/dg210 create mode 100644 usr/share/terminfo/d/dg211 create mode 100644 usr/share/terminfo/d/dg450 create mode 100644 usr/share/terminfo/d/dg460-ansi create mode 100644 usr/share/terminfo/d/dg6053 create mode 100644 usr/share/terminfo/d/dg6053-old create mode 100644 usr/share/terminfo/d/dg605x create mode 100644 usr/share/terminfo/d/dg6134 create mode 100644 usr/share/terminfo/d/dgkeys+11 create mode 100644 usr/share/terminfo/d/dgkeys+15 create mode 100644 usr/share/terminfo/d/dgkeys+7b create mode 100644 usr/share/terminfo/d/dgkeys+8b create mode 100644 usr/share/terminfo/d/dgmode+color create mode 100644 usr/share/terminfo/d/dgmode+color8 create mode 100644 usr/share/terminfo/d/dgunix+ccc create mode 100644 usr/share/terminfo/d/dgunix+fixed create mode 100644 usr/share/terminfo/d/diablo create mode 100644 usr/share/terminfo/d/diablo-lm create mode 100644 usr/share/terminfo/d/diablo1620 create mode 100644 usr/share/terminfo/d/diablo1620-m8 create mode 100644 usr/share/terminfo/d/diablo1640 create mode 100644 usr/share/terminfo/d/diablo1640-lm create mode 100644 usr/share/terminfo/d/diablo1640-m8 create mode 100644 usr/share/terminfo/d/diablo1720 create mode 100644 usr/share/terminfo/d/diablo1730 create mode 100644 usr/share/terminfo/d/diablo1740 create mode 100644 usr/share/terminfo/d/diablo1740-lm create mode 100644 usr/share/terminfo/d/diablo450 create mode 100644 usr/share/terminfo/d/diablo630 create mode 100644 usr/share/terminfo/d/dialogue create mode 100644 usr/share/terminfo/d/dialogue80 create mode 100644 usr/share/terminfo/d/digilog create mode 100644 usr/share/terminfo/d/djgpp create mode 100644 usr/share/terminfo/d/djgpp203 create mode 100644 usr/share/terminfo/d/djgpp204 create mode 100644 usr/share/terminfo/d/dku7003 create mode 100644 usr/share/terminfo/d/dku7003-dumb create mode 100644 usr/share/terminfo/d/dku7102 create mode 100644 usr/share/terminfo/d/dku7102-old create mode 100644 usr/share/terminfo/d/dku7102-sna create mode 100644 usr/share/terminfo/d/dku7103-sna create mode 100644 usr/share/terminfo/d/dku7202 create mode 100644 usr/share/terminfo/d/dm1520 create mode 100644 usr/share/terminfo/d/dm1521 create mode 100644 usr/share/terminfo/d/dm2500 create mode 100644 usr/share/terminfo/d/dm3025 create mode 100644 usr/share/terminfo/d/dm3045 create mode 100644 usr/share/terminfo/d/dm80 create mode 100644 usr/share/terminfo/d/dm80w create mode 100644 usr/share/terminfo/d/dmchat create mode 100644 usr/share/terminfo/d/dmd create mode 100644 usr/share/terminfo/d/dmd-24 create mode 100644 usr/share/terminfo/d/dmd-34 create mode 100644 usr/share/terminfo/d/dmd1 create mode 100644 usr/share/terminfo/d/dmdt80 create mode 100644 usr/share/terminfo/d/dmdt80w create mode 100644 usr/share/terminfo/d/dmterm create mode 100644 usr/share/terminfo/d/domterm create mode 100644 usr/share/terminfo/d/dp3360 create mode 100644 usr/share/terminfo/d/dp8242 create mode 100644 usr/share/terminfo/d/ds40 create mode 100644 usr/share/terminfo/d/ds40-2 create mode 100644 usr/share/terminfo/d/dt-100 create mode 100644 usr/share/terminfo/d/dt-100w create mode 100644 usr/share/terminfo/d/dt100 create mode 100644 usr/share/terminfo/d/dt100w create mode 100644 usr/share/terminfo/d/dt110 create mode 100644 usr/share/terminfo/d/dt80 create mode 100644 usr/share/terminfo/d/dt80-sas create mode 100644 usr/share/terminfo/d/dt80w create mode 100644 usr/share/terminfo/d/dtc300s create mode 100644 usr/share/terminfo/d/dtc382 create mode 100644 usr/share/terminfo/d/dtterm create mode 100644 usr/share/terminfo/d/dumb create mode 100644 usr/share/terminfo/d/dumb-emacs-ansi create mode 100644 usr/share/terminfo/d/dvtm create mode 100644 usr/share/terminfo/d/dvtm-256color create mode 100644 usr/share/terminfo/d/dw create mode 100644 usr/share/terminfo/d/dw1 create mode 100644 usr/share/terminfo/d/dw2 create mode 100644 usr/share/terminfo/d/dw3 create mode 100644 usr/share/terminfo/d/dw4 create mode 100644 usr/share/terminfo/d/dwk create mode 100644 usr/share/terminfo/d/dwk-vt create mode 100644 usr/share/terminfo/e/ecma+color create mode 100644 usr/share/terminfo/e/ecma+index create mode 100644 usr/share/terminfo/e/ecma+italics create mode 100644 usr/share/terminfo/e/ecma+sgr create mode 100644 usr/share/terminfo/e/ecma+strikeout create mode 100644 usr/share/terminfo/e/elks create mode 100644 usr/share/terminfo/e/elks-ansi create mode 100644 usr/share/terminfo/e/elks-glasstty create mode 100644 usr/share/terminfo/e/elks-vt52 create mode 100644 usr/share/terminfo/e/emots create mode 100644 usr/share/terminfo/e/emu create mode 100644 usr/share/terminfo/e/emu-220 create mode 100644 usr/share/terminfo/e/emx-base create mode 100644 usr/share/terminfo/e/env230 create mode 100644 usr/share/terminfo/e/envision230 create mode 100644 usr/share/terminfo/e/ep40 create mode 100644 usr/share/terminfo/e/ep4000 create mode 100644 usr/share/terminfo/e/ep4080 create mode 100644 usr/share/terminfo/e/ep48 create mode 100644 usr/share/terminfo/e/ergo4000 create mode 100644 usr/share/terminfo/e/esprit create mode 100644 usr/share/terminfo/e/esprit-am create mode 100644 usr/share/terminfo/e/eterm create mode 100644 usr/share/terminfo/e/eterm-color create mode 100644 usr/share/terminfo/e/ex155 create mode 100644 usr/share/terminfo/e/excel62 create mode 100644 usr/share/terminfo/e/excel62-rv create mode 100644 usr/share/terminfo/e/excel62-w create mode 100644 usr/share/terminfo/e/excel64 create mode 100644 usr/share/terminfo/e/excel64-rv create mode 100644 usr/share/terminfo/e/excel64-w create mode 100644 usr/share/terminfo/e/exec80 create mode 100644 usr/share/terminfo/f/f100 create mode 100644 usr/share/terminfo/f/f100-rv create mode 100644 usr/share/terminfo/f/f110 create mode 100644 usr/share/terminfo/f/f110-14 create mode 100644 usr/share/terminfo/f/f110-14w create mode 100644 usr/share/terminfo/f/f110-w create mode 100644 usr/share/terminfo/f/f1720 create mode 100644 usr/share/terminfo/f/f1720a create mode 100644 usr/share/terminfo/f/f200 create mode 100644 usr/share/terminfo/f/f200-w create mode 100644 usr/share/terminfo/f/f200vi create mode 100644 usr/share/terminfo/f/f200vi-w create mode 100644 usr/share/terminfo/f/falco create mode 100644 usr/share/terminfo/f/falco-p create mode 100644 usr/share/terminfo/f/fbterm create mode 100644 usr/share/terminfo/f/fenix create mode 100644 usr/share/terminfo/f/fenixw create mode 100644 usr/share/terminfo/f/fixterm create mode 100644 usr/share/terminfo/f/foot create mode 100644 usr/share/terminfo/f/foot+base create mode 100644 usr/share/terminfo/f/foot-direct create mode 100644 usr/share/terminfo/f/fortune create mode 100644 usr/share/terminfo/f/fos create mode 100644 usr/share/terminfo/f/fox create mode 100644 usr/share/terminfo/f/freedom create mode 100644 usr/share/terminfo/f/freedom-rv create mode 100644 usr/share/terminfo/f/freedom100 create mode 100644 usr/share/terminfo/f/freedom110 create mode 100644 usr/share/terminfo/f/freedom200 create mode 100644 usr/share/terminfo/g/gator create mode 100644 usr/share/terminfo/g/gator-52 create mode 100644 usr/share/terminfo/g/gator-52t create mode 100644 usr/share/terminfo/g/gator-t create mode 100644 usr/share/terminfo/g/gigi create mode 100644 usr/share/terminfo/g/glasstty create mode 100644 usr/share/terminfo/g/gnome create mode 100644 usr/share/terminfo/g/gnome+pcfkeys create mode 100644 usr/share/terminfo/g/gnome-2007 create mode 100644 usr/share/terminfo/g/gnome-2008 create mode 100644 usr/share/terminfo/g/gnome-2012 create mode 100644 usr/share/terminfo/g/gnome-256color create mode 100644 usr/share/terminfo/g/gnome-fc5 create mode 100644 usr/share/terminfo/g/gnome-rh62 create mode 100644 usr/share/terminfo/g/gnome-rh72 create mode 100644 usr/share/terminfo/g/gnome-rh80 create mode 100644 usr/share/terminfo/g/gnome-rh90 create mode 100644 usr/share/terminfo/g/go-225 create mode 100644 usr/share/terminfo/g/go140 create mode 100644 usr/share/terminfo/g/go140w create mode 100644 usr/share/terminfo/g/go225 create mode 100644 usr/share/terminfo/g/graphos create mode 100644 usr/share/terminfo/g/graphos-30 create mode 100644 usr/share/terminfo/g/gs5430 create mode 100644 usr/share/terminfo/g/gs5430-22 create mode 100644 usr/share/terminfo/g/gs5430-24 create mode 100644 usr/share/terminfo/g/gs6300 create mode 100644 usr/share/terminfo/g/gsi create mode 100644 usr/share/terminfo/g/gt100 create mode 100644 usr/share/terminfo/g/gt100a create mode 100644 usr/share/terminfo/g/gt40 create mode 100644 usr/share/terminfo/g/gt42 create mode 100644 usr/share/terminfo/g/guru create mode 100644 usr/share/terminfo/g/guru+rv create mode 100644 usr/share/terminfo/g/guru+s create mode 100644 usr/share/terminfo/g/guru+unk create mode 100644 usr/share/terminfo/g/guru-24 create mode 100644 usr/share/terminfo/g/guru-33 create mode 100644 usr/share/terminfo/g/guru-33-rv create mode 100644 usr/share/terminfo/g/guru-33-s create mode 100644 usr/share/terminfo/g/guru-44 create mode 100644 usr/share/terminfo/g/guru-44-s create mode 100644 usr/share/terminfo/g/guru-76 create mode 100644 usr/share/terminfo/g/guru-76-lp create mode 100644 usr/share/terminfo/g/guru-76-s create mode 100644 usr/share/terminfo/g/guru-76-w create mode 100644 usr/share/terminfo/g/guru-76-w-s create mode 100644 usr/share/terminfo/g/guru-76-wm create mode 100644 usr/share/terminfo/g/guru-lp create mode 100644 usr/share/terminfo/g/guru-nctxt create mode 100644 usr/share/terminfo/g/guru-rv create mode 100644 usr/share/terminfo/g/guru-s create mode 100644 usr/share/terminfo/h/h-100 create mode 100644 usr/share/terminfo/h/h-100bw create mode 100644 usr/share/terminfo/h/h100 create mode 100644 usr/share/terminfo/h/h100bw create mode 100644 usr/share/terminfo/h/h19 create mode 100644 usr/share/terminfo/h/h19-a create mode 100644 usr/share/terminfo/h/h19-b create mode 100644 usr/share/terminfo/h/h19-bs create mode 100644 usr/share/terminfo/h/h19-g create mode 100644 usr/share/terminfo/h/h19-smul create mode 100644 usr/share/terminfo/h/h19-u create mode 100644 usr/share/terminfo/h/h19-us create mode 100644 usr/share/terminfo/h/h19a create mode 100644 usr/share/terminfo/h/h19g create mode 100644 usr/share/terminfo/h/h19k create mode 100644 usr/share/terminfo/h/h19kermit create mode 100644 usr/share/terminfo/h/h19us create mode 100644 usr/share/terminfo/h/h29a-kc-bc create mode 100644 usr/share/terminfo/h/h29a-kc-uc create mode 100644 usr/share/terminfo/h/h29a-nkc-bc create mode 100644 usr/share/terminfo/h/h29a-nkc-uc create mode 100644 usr/share/terminfo/h/h80 create mode 100644 usr/share/terminfo/h/ha8675 create mode 100644 usr/share/terminfo/h/ha8686 create mode 100644 usr/share/terminfo/h/hazel create mode 100644 usr/share/terminfo/h/hds200 create mode 100644 usr/share/terminfo/h/he80 create mode 100644 usr/share/terminfo/h/heath create mode 100644 usr/share/terminfo/h/heath-19 create mode 100644 usr/share/terminfo/h/heath-ansi create mode 100644 usr/share/terminfo/h/heathkit create mode 100644 usr/share/terminfo/h/heathkit-a create mode 100644 usr/share/terminfo/h/hft create mode 100644 usr/share/terminfo/h/hft-c create mode 100644 usr/share/terminfo/h/hft-c-old create mode 100644 usr/share/terminfo/h/hft-old create mode 100644 usr/share/terminfo/h/hirez100 create mode 100644 usr/share/terminfo/h/hirez100-w create mode 100644 usr/share/terminfo/h/hmod1 create mode 100644 usr/share/terminfo/h/hp create mode 100644 usr/share/terminfo/h/hp+arrows create mode 100644 usr/share/terminfo/h/hp+color create mode 100644 usr/share/terminfo/h/hp+labels create mode 100644 usr/share/terminfo/h/hp+pfk+arrows create mode 100644 usr/share/terminfo/h/hp+pfk+cr create mode 100644 usr/share/terminfo/h/hp+pfk-cr create mode 100644 usr/share/terminfo/h/hp+printer create mode 100644 usr/share/terminfo/h/hp110 create mode 100644 usr/share/terminfo/h/hp150 create mode 100644 usr/share/terminfo/h/hp2 create mode 100644 usr/share/terminfo/h/hp236 create mode 100644 usr/share/terminfo/h/hp2382 create mode 100644 usr/share/terminfo/h/hp2382a create mode 100644 usr/share/terminfo/h/hp2392 create mode 100644 usr/share/terminfo/h/hp2397 create mode 100644 usr/share/terminfo/h/hp2397a create mode 100644 usr/share/terminfo/h/hp2621 create mode 100644 usr/share/terminfo/h/hp2621-48 create mode 100644 usr/share/terminfo/h/hp2621-a create mode 100644 usr/share/terminfo/h/hp2621-ba create mode 100644 usr/share/terminfo/h/hp2621-fl create mode 100644 usr/share/terminfo/h/hp2621-k45 create mode 100644 usr/share/terminfo/h/hp2621-nl create mode 100644 usr/share/terminfo/h/hp2621-nt create mode 100644 usr/share/terminfo/h/hp2621-wl create mode 100644 usr/share/terminfo/h/hp2621A create mode 100644 usr/share/terminfo/h/hp2621a create mode 100644 usr/share/terminfo/h/hp2621a-a create mode 100644 usr/share/terminfo/h/hp2621b create mode 100644 usr/share/terminfo/h/hp2621b-kx create mode 100644 usr/share/terminfo/h/hp2621b-kx-p create mode 100644 usr/share/terminfo/h/hp2621b-p create mode 100644 usr/share/terminfo/h/hp2621k45 create mode 100644 usr/share/terminfo/h/hp2621p create mode 100644 usr/share/terminfo/h/hp2621p-a create mode 100644 usr/share/terminfo/h/hp2622 create mode 100644 usr/share/terminfo/h/hp2622a create mode 100644 usr/share/terminfo/h/hp2623 create mode 100644 usr/share/terminfo/h/hp2623a create mode 100644 usr/share/terminfo/h/hp2624 create mode 100644 usr/share/terminfo/h/hp2624-10p create mode 100644 usr/share/terminfo/h/hp2624a create mode 100644 usr/share/terminfo/h/hp2624a-10p create mode 100644 usr/share/terminfo/h/hp2624b create mode 100644 usr/share/terminfo/h/hp2624b-10p create mode 100644 usr/share/terminfo/h/hp2624b-10p-p create mode 100644 usr/share/terminfo/h/hp2624b-4p create mode 100644 usr/share/terminfo/h/hp2624b-4p-p create mode 100644 usr/share/terminfo/h/hp2624b-p create mode 100644 usr/share/terminfo/h/hp2626 create mode 100644 usr/share/terminfo/h/hp2626-12 create mode 100644 usr/share/terminfo/h/hp2626-12-s create mode 100644 usr/share/terminfo/h/hp2626-12x40 create mode 100644 usr/share/terminfo/h/hp2626-ns create mode 100644 usr/share/terminfo/h/hp2626-s create mode 100644 usr/share/terminfo/h/hp2626-x40 create mode 100644 usr/share/terminfo/h/hp2626a create mode 100644 usr/share/terminfo/h/hp2626p create mode 100644 usr/share/terminfo/h/hp2627a create mode 100644 usr/share/terminfo/h/hp2627a-rev create mode 100644 usr/share/terminfo/h/hp2627c create mode 100644 usr/share/terminfo/h/hp262x create mode 100644 usr/share/terminfo/h/hp2640a create mode 100644 usr/share/terminfo/h/hp2640b create mode 100644 usr/share/terminfo/h/hp2641a create mode 100644 usr/share/terminfo/h/hp2644a create mode 100644 usr/share/terminfo/h/hp2645 create mode 100644 usr/share/terminfo/h/hp2645a create mode 100644 usr/share/terminfo/h/hp2647a create mode 100644 usr/share/terminfo/h/hp2648 create mode 100644 usr/share/terminfo/h/hp2648a create mode 100644 usr/share/terminfo/h/hp300h create mode 100644 usr/share/terminfo/h/hp45 create mode 100644 usr/share/terminfo/h/hp700 create mode 100644 usr/share/terminfo/h/hp700-wy create mode 100644 usr/share/terminfo/h/hp70092 create mode 100644 usr/share/terminfo/h/hp70092A create mode 100644 usr/share/terminfo/h/hp70092a create mode 100644 usr/share/terminfo/h/hp9837 create mode 100644 usr/share/terminfo/h/hp9845 create mode 100644 usr/share/terminfo/h/hp98550 create mode 100644 usr/share/terminfo/h/hp98550-color create mode 100644 usr/share/terminfo/h/hp98550a create mode 100644 usr/share/terminfo/h/hp98550a-color create mode 100644 usr/share/terminfo/h/hp98720 create mode 100644 usr/share/terminfo/h/hp98721 create mode 100644 usr/share/terminfo/h/hpansi create mode 100644 usr/share/terminfo/h/hpex create mode 100644 usr/share/terminfo/h/hpex2 create mode 100644 usr/share/terminfo/h/hpgeneric create mode 100644 usr/share/terminfo/h/hpsub create mode 100644 usr/share/terminfo/h/hpterm create mode 100644 usr/share/terminfo/h/hpterm-color create mode 100644 usr/share/terminfo/h/hpterm-color2 create mode 100644 usr/share/terminfo/h/hterm create mode 100644 usr/share/terminfo/h/hterm-256color create mode 100644 usr/share/terminfo/h/htx11 create mode 100644 usr/share/terminfo/h/hurd create mode 100644 usr/share/terminfo/h/hz1000 create mode 100644 usr/share/terminfo/h/hz1420 create mode 100644 usr/share/terminfo/h/hz1500 create mode 100644 usr/share/terminfo/h/hz1510 create mode 100644 usr/share/terminfo/h/hz1520 create mode 100644 usr/share/terminfo/h/hz1520-noesc create mode 100644 usr/share/terminfo/h/hz1552 create mode 100644 usr/share/terminfo/h/hz1552-rv create mode 100644 usr/share/terminfo/h/hz2000 create mode 100644 usr/share/terminfo/i/i100 create mode 100644 usr/share/terminfo/i/i3101 create mode 100644 usr/share/terminfo/i/i3164 create mode 100644 usr/share/terminfo/i/i400 create mode 100644 usr/share/terminfo/i/iTerm.app create mode 100644 usr/share/terminfo/i/iTerm2.app create mode 100644 usr/share/terminfo/i/ibcs2 create mode 100644 usr/share/terminfo/i/ibm+16color create mode 100644 usr/share/terminfo/i/ibm+color create mode 100644 usr/share/terminfo/i/ibm-apl create mode 100644 usr/share/terminfo/i/ibm-pc create mode 100644 usr/share/terminfo/i/ibm-system1 create mode 100644 usr/share/terminfo/i/ibm3101 create mode 100644 usr/share/terminfo/i/ibm3151 create mode 100644 usr/share/terminfo/i/ibm3161 create mode 100644 usr/share/terminfo/i/ibm3161-C create mode 100644 usr/share/terminfo/i/ibm3162 create mode 100644 usr/share/terminfo/i/ibm3163 create mode 100644 usr/share/terminfo/i/ibm3164 create mode 100644 usr/share/terminfo/i/ibm327x create mode 100644 usr/share/terminfo/i/ibm5051 create mode 100644 usr/share/terminfo/i/ibm5081 create mode 100644 usr/share/terminfo/i/ibm5081-c create mode 100644 usr/share/terminfo/i/ibm5151 create mode 100644 usr/share/terminfo/i/ibm5154 create mode 100644 usr/share/terminfo/i/ibm5154-c create mode 100644 usr/share/terminfo/i/ibm6153 create mode 100644 usr/share/terminfo/i/ibm6153-40 create mode 100644 usr/share/terminfo/i/ibm6153-90 create mode 100644 usr/share/terminfo/i/ibm6154 create mode 100644 usr/share/terminfo/i/ibm6154-c create mode 100644 usr/share/terminfo/i/ibm6155 create mode 100644 usr/share/terminfo/i/ibm8503 create mode 100644 usr/share/terminfo/i/ibm8507 create mode 100644 usr/share/terminfo/i/ibm8512 create mode 100644 usr/share/terminfo/i/ibm8513 create mode 100644 usr/share/terminfo/i/ibm8514 create mode 100644 usr/share/terminfo/i/ibm8514-c create mode 100644 usr/share/terminfo/i/ibm8604 create mode 100644 usr/share/terminfo/i/ibmaed create mode 100644 usr/share/terminfo/i/ibmapa16 create mode 100644 usr/share/terminfo/i/ibmapa8 create mode 100644 usr/share/terminfo/i/ibmapa8c create mode 100644 usr/share/terminfo/i/ibmapa8c-c create mode 100644 usr/share/terminfo/i/ibmega create mode 100644 usr/share/terminfo/i/ibmega-c create mode 100644 usr/share/terminfo/i/ibmmono create mode 100644 usr/share/terminfo/i/ibmmpel-c create mode 100644 usr/share/terminfo/i/ibmpc create mode 100644 usr/share/terminfo/i/ibmpc3 create mode 100644 usr/share/terminfo/i/ibmpc3r create mode 100644 usr/share/terminfo/i/ibmpc3r-mono create mode 100644 usr/share/terminfo/i/ibmpcx create mode 100644 usr/share/terminfo/i/ibmvga create mode 100644 usr/share/terminfo/i/ibmvga-c create mode 100644 usr/share/terminfo/i/ibmx create mode 100644 usr/share/terminfo/i/icl6402 create mode 100644 usr/share/terminfo/i/icl6404 create mode 100644 usr/share/terminfo/i/icl6404-w create mode 100644 usr/share/terminfo/i/ifmr create mode 100644 usr/share/terminfo/i/ims-ansi create mode 100644 usr/share/terminfo/i/ims950 create mode 100644 usr/share/terminfo/i/ims950-b create mode 100644 usr/share/terminfo/i/ims950-rv create mode 100644 usr/share/terminfo/i/infoton create mode 100644 usr/share/terminfo/i/infoton2 create mode 100644 usr/share/terminfo/i/interix create mode 100644 usr/share/terminfo/i/interix-nti create mode 100644 usr/share/terminfo/i/intertec create mode 100644 usr/share/terminfo/i/intertube create mode 100644 usr/share/terminfo/i/intertube2 create mode 100644 usr/share/terminfo/i/intext create mode 100644 usr/share/terminfo/i/intext2 create mode 100644 usr/share/terminfo/i/intextii create mode 100644 usr/share/terminfo/i/ips create mode 100644 usr/share/terminfo/i/ipsi create mode 100644 usr/share/terminfo/i/iq120 create mode 100644 usr/share/terminfo/i/iq140 create mode 100644 usr/share/terminfo/i/iris-ansi create mode 100644 usr/share/terminfo/i/iris-ansi-ap create mode 100644 usr/share/terminfo/i/iris-ansi-net create mode 100644 usr/share/terminfo/i/iris-color create mode 100644 usr/share/terminfo/i/iris40 create mode 100644 usr/share/terminfo/i/iterm create mode 100644 usr/share/terminfo/i/iterm2 create mode 100644 usr/share/terminfo/i/iterm2-direct create mode 100644 usr/share/terminfo/j/jaixterm create mode 100644 usr/share/terminfo/j/jaixterm-m create mode 100644 usr/share/terminfo/j/jerq create mode 100644 usr/share/terminfo/j/jfbterm create mode 100644 usr/share/terminfo/k/k45 create mode 100644 usr/share/terminfo/k/kaypro create mode 100644 usr/share/terminfo/k/kaypro2 create mode 100644 usr/share/terminfo/k/kds6402 create mode 100644 usr/share/terminfo/k/kds7372 create mode 100644 usr/share/terminfo/k/kds7372-w create mode 100644 usr/share/terminfo/k/kermit create mode 100644 usr/share/terminfo/k/kermit-am create mode 100644 usr/share/terminfo/k/kitty create mode 100644 usr/share/terminfo/k/kitty+common create mode 100644 usr/share/terminfo/k/kitty+setal create mode 100644 usr/share/terminfo/k/kitty-direct create mode 100644 usr/share/terminfo/k/klone+acs create mode 100644 usr/share/terminfo/k/klone+color create mode 100644 usr/share/terminfo/k/klone+koi8acs create mode 100644 usr/share/terminfo/k/klone+sgr create mode 100644 usr/share/terminfo/k/klone+sgr-dumb create mode 100644 usr/share/terminfo/k/klone+sgr8 create mode 100644 usr/share/terminfo/k/kon create mode 100644 usr/share/terminfo/k/kon2 create mode 100644 usr/share/terminfo/k/konsole create mode 100644 usr/share/terminfo/k/konsole+pcfkeys create mode 100644 usr/share/terminfo/k/konsole-16color create mode 100644 usr/share/terminfo/k/konsole-256color create mode 100644 usr/share/terminfo/k/konsole-base create mode 100644 usr/share/terminfo/k/konsole-direct create mode 100644 usr/share/terminfo/k/konsole-linux create mode 100644 usr/share/terminfo/k/konsole-solaris create mode 100644 usr/share/terminfo/k/konsole-vt100 create mode 100644 usr/share/terminfo/k/konsole-vt420pc create mode 100644 usr/share/terminfo/k/konsole-xf3x create mode 100644 usr/share/terminfo/k/konsole-xf4x create mode 100644 usr/share/terminfo/k/kt7 create mode 100644 usr/share/terminfo/k/kt7ix create mode 100644 usr/share/terminfo/k/kterm create mode 100644 usr/share/terminfo/k/kterm-co create mode 100644 usr/share/terminfo/k/kterm-color create mode 100644 usr/share/terminfo/k/ktm create mode 100644 usr/share/terminfo/k/kvt create mode 100644 usr/share/terminfo/l/la120 create mode 100644 usr/share/terminfo/l/layer create mode 100644 usr/share/terminfo/l/lft create mode 100644 usr/share/terminfo/l/lft-pc850 create mode 100644 usr/share/terminfo/l/linux create mode 100644 usr/share/terminfo/l/linux+decid create mode 100644 usr/share/terminfo/l/linux+sfkeys create mode 100644 usr/share/terminfo/l/linux-16color create mode 100644 usr/share/terminfo/l/linux-basic create mode 100644 usr/share/terminfo/l/linux-c create mode 100644 usr/share/terminfo/l/linux-c-nc create mode 100644 usr/share/terminfo/l/linux-koi8 create mode 100644 usr/share/terminfo/l/linux-koi8r create mode 100644 usr/share/terminfo/l/linux-lat create mode 100644 usr/share/terminfo/l/linux-m create mode 100644 usr/share/terminfo/l/linux-m1 create mode 100644 usr/share/terminfo/l/linux-m1b create mode 100644 usr/share/terminfo/l/linux-m2 create mode 100644 usr/share/terminfo/l/linux-nic create mode 100644 usr/share/terminfo/l/linux-s create mode 100644 usr/share/terminfo/l/linux-vt create mode 100644 usr/share/terminfo/l/linux2.2 create mode 100644 usr/share/terminfo/l/linux2.6 create mode 100644 usr/share/terminfo/l/linux2.6.26 create mode 100644 usr/share/terminfo/l/linux3.0 create mode 100644 usr/share/terminfo/l/lisa create mode 100644 usr/share/terminfo/l/lisaterm create mode 100644 usr/share/terminfo/l/lisaterm-w create mode 100644 usr/share/terminfo/l/liswb create mode 100644 usr/share/terminfo/l/ln03 create mode 100644 usr/share/terminfo/l/ln03-w create mode 100644 usr/share/terminfo/l/lpr create mode 100644 usr/share/terminfo/l/luna create mode 100644 usr/share/terminfo/l/luna68k create mode 100644 usr/share/terminfo/m/m2-nam create mode 100644 usr/share/terminfo/m/mac create mode 100644 usr/share/terminfo/m/mac-w create mode 100644 usr/share/terminfo/m/mach create mode 100644 usr/share/terminfo/m/mach-bold create mode 100644 usr/share/terminfo/m/mach-color create mode 100644 usr/share/terminfo/m/mach-gnu create mode 100644 usr/share/terminfo/m/mach-gnu-color create mode 100644 usr/share/terminfo/m/macintosh create mode 100644 usr/share/terminfo/m/macterminal-w create mode 100644 usr/share/terminfo/m/mai create mode 100644 usr/share/terminfo/m/masscomp create mode 100644 usr/share/terminfo/m/masscomp1 create mode 100644 usr/share/terminfo/m/masscomp2 create mode 100644 usr/share/terminfo/m/mdl110 create mode 100644 usr/share/terminfo/m/megatek create mode 100644 usr/share/terminfo/m/memhp create mode 100644 usr/share/terminfo/m/mgr create mode 100644 usr/share/terminfo/m/mgr-linux create mode 100644 usr/share/terminfo/m/mgr-sun create mode 100644 usr/share/terminfo/m/mgt create mode 100644 usr/share/terminfo/m/mgterm create mode 100644 usr/share/terminfo/m/microb create mode 100644 usr/share/terminfo/m/microbee create mode 100644 usr/share/terminfo/m/microterm create mode 100644 usr/share/terminfo/m/microterm5 create mode 100644 usr/share/terminfo/m/mime create mode 100644 usr/share/terminfo/m/mime-3ax create mode 100644 usr/share/terminfo/m/mime-fb create mode 100644 usr/share/terminfo/m/mime-hb create mode 100644 usr/share/terminfo/m/mime1 create mode 100644 usr/share/terminfo/m/mime2 create mode 100644 usr/share/terminfo/m/mime2a create mode 100644 usr/share/terminfo/m/mime2a-s create mode 100644 usr/share/terminfo/m/mime2a-v create mode 100644 usr/share/terminfo/m/mime314 create mode 100644 usr/share/terminfo/m/mime340 create mode 100644 usr/share/terminfo/m/mime3a create mode 100644 usr/share/terminfo/m/mime3ax create mode 100644 usr/share/terminfo/m/mimei create mode 100644 usr/share/terminfo/m/mimeii create mode 100644 usr/share/terminfo/m/minitel create mode 100644 usr/share/terminfo/m/minitel-2 create mode 100644 usr/share/terminfo/m/minitel-2-nam create mode 100644 usr/share/terminfo/m/minitel1 create mode 100644 usr/share/terminfo/m/minitel1-nb create mode 100644 usr/share/terminfo/m/minitel12-80 create mode 100644 usr/share/terminfo/m/minitel1b create mode 100644 usr/share/terminfo/m/minitel1b-80 create mode 100644 usr/share/terminfo/m/minitel1b-nb create mode 100644 usr/share/terminfo/m/minitel2-80 create mode 100644 usr/share/terminfo/m/minix create mode 100644 usr/share/terminfo/m/minix-1.5 create mode 100644 usr/share/terminfo/m/minix-1.7 create mode 100644 usr/share/terminfo/m/minix-3.0 create mode 100644 usr/share/terminfo/m/minix-old create mode 100644 usr/share/terminfo/m/minix-old-am create mode 100644 usr/share/terminfo/m/mintty create mode 100644 usr/share/terminfo/m/mintty+common create mode 100644 usr/share/terminfo/m/mintty-direct create mode 100644 usr/share/terminfo/m/mlterm create mode 100644 usr/share/terminfo/m/mlterm+pcfkeys create mode 100644 usr/share/terminfo/m/mlterm-256color create mode 100644 usr/share/terminfo/m/mlterm-direct create mode 100644 usr/share/terminfo/m/mlterm2 create mode 100644 usr/share/terminfo/m/mlterm3 create mode 100644 usr/share/terminfo/m/mm314 create mode 100644 usr/share/terminfo/m/mm340 create mode 100644 usr/share/terminfo/m/mod create mode 100644 usr/share/terminfo/m/mod24 create mode 100644 usr/share/terminfo/m/modgraph create mode 100644 usr/share/terminfo/m/modgraph2 create mode 100644 usr/share/terminfo/m/modgraph48 create mode 100644 usr/share/terminfo/m/mono-emx create mode 100644 usr/share/terminfo/m/morphos create mode 100644 usr/share/terminfo/m/mosh create mode 100644 usr/share/terminfo/m/mosh-256color create mode 100644 usr/share/terminfo/m/mouse-sun create mode 100644 usr/share/terminfo/m/mrxvt create mode 100644 usr/share/terminfo/m/mrxvt-256color create mode 100644 usr/share/terminfo/m/ms-terminal create mode 100644 usr/share/terminfo/m/ms-vt-utf8 create mode 100644 usr/share/terminfo/m/ms-vt100 create mode 100644 usr/share/terminfo/m/ms-vt100+ create mode 100644 usr/share/terminfo/m/ms-vt100-color create mode 100644 usr/share/terminfo/m/msk227 create mode 100644 usr/share/terminfo/m/msk22714 create mode 100644 usr/share/terminfo/m/msk227am create mode 100644 usr/share/terminfo/m/mskermit227 create mode 100644 usr/share/terminfo/m/mskermit22714 create mode 100644 usr/share/terminfo/m/mskermit227am create mode 100644 usr/share/terminfo/m/mt-70 create mode 100644 usr/share/terminfo/m/mt4520-rv create mode 100644 usr/share/terminfo/m/mt70 create mode 100644 usr/share/terminfo/m/mterm create mode 100644 usr/share/terminfo/m/mterm-ansi create mode 100644 usr/share/terminfo/m/mvterm create mode 100644 usr/share/terminfo/n/n7900 create mode 100644 usr/share/terminfo/n/nansi.sys create mode 100644 usr/share/terminfo/n/nansi.sysk create mode 100644 usr/share/terminfo/n/nansisys create mode 100644 usr/share/terminfo/n/nansisysk create mode 100644 usr/share/terminfo/n/ncr160vppp create mode 100644 usr/share/terminfo/n/ncr160vpwpp create mode 100644 usr/share/terminfo/n/ncr160vt100an create mode 100644 usr/share/terminfo/n/ncr160vt100pp create mode 100644 usr/share/terminfo/n/ncr160vt100wan create mode 100644 usr/share/terminfo/n/ncr160vt100wpp create mode 100644 usr/share/terminfo/n/ncr160vt200an create mode 100644 usr/share/terminfo/n/ncr160vt200pp create mode 100644 usr/share/terminfo/n/ncr160vt200wan create mode 100644 usr/share/terminfo/n/ncr160vt200wpp create mode 100644 usr/share/terminfo/n/ncr160vt300an create mode 100644 usr/share/terminfo/n/ncr160vt300pp create mode 100644 usr/share/terminfo/n/ncr160vt300wan create mode 100644 usr/share/terminfo/n/ncr160vt300wpp create mode 100644 usr/share/terminfo/n/ncr160wy50+pp create mode 100644 usr/share/terminfo/n/ncr160wy50+wpp create mode 100644 usr/share/terminfo/n/ncr160wy60pp create mode 100644 usr/share/terminfo/n/ncr160wy60wpp create mode 100644 usr/share/terminfo/n/ncr260intan create mode 100644 usr/share/terminfo/n/ncr260intpp create mode 100644 usr/share/terminfo/n/ncr260intwan create mode 100644 usr/share/terminfo/n/ncr260intwpp create mode 100644 usr/share/terminfo/n/ncr260vp+sl create mode 100644 usr/share/terminfo/n/ncr260vppp create mode 100644 usr/share/terminfo/n/ncr260vpwpp create mode 100644 usr/share/terminfo/n/ncr260vt+sl create mode 100644 usr/share/terminfo/n/ncr260vt100an create mode 100644 usr/share/terminfo/n/ncr260vt100pp create mode 100644 usr/share/terminfo/n/ncr260vt100wan create mode 100644 usr/share/terminfo/n/ncr260vt100wpp create mode 100644 usr/share/terminfo/n/ncr260vt200an create mode 100644 usr/share/terminfo/n/ncr260vt200pp create mode 100644 usr/share/terminfo/n/ncr260vt200wan create mode 100644 usr/share/terminfo/n/ncr260vt200wpp create mode 100644 usr/share/terminfo/n/ncr260vt300an create mode 100644 usr/share/terminfo/n/ncr260vt300pp create mode 100644 usr/share/terminfo/n/ncr260vt300wan create mode 100644 usr/share/terminfo/n/ncr260vt300wpp create mode 100644 usr/share/terminfo/n/ncr260wy325pp create mode 100644 usr/share/terminfo/n/ncr260wy325wpp create mode 100644 usr/share/terminfo/n/ncr260wy350pp create mode 100644 usr/share/terminfo/n/ncr260wy350wpp create mode 100644 usr/share/terminfo/n/ncr260wy50+pp create mode 100644 usr/share/terminfo/n/ncr260wy50+wpp create mode 100644 usr/share/terminfo/n/ncr260wy60pp create mode 100644 usr/share/terminfo/n/ncr260wy60wpp create mode 100644 usr/share/terminfo/n/ncr7900 create mode 100644 usr/share/terminfo/n/ncr7900i create mode 100644 usr/share/terminfo/n/ncr7900iv create mode 100644 usr/share/terminfo/n/ncr7901 create mode 100644 usr/share/terminfo/n/ncrvt100an create mode 100644 usr/share/terminfo/n/ncrvt100pp create mode 100644 usr/share/terminfo/n/ncrvt100wan create mode 100644 usr/share/terminfo/n/ncrvt100wpp create mode 100644 usr/share/terminfo/n/ncsa create mode 100644 usr/share/terminfo/n/ncsa-m create mode 100644 usr/share/terminfo/n/ncsa-m-ns create mode 100644 usr/share/terminfo/n/ncsa-ns create mode 100644 usr/share/terminfo/n/ncsa-vt220 create mode 100644 usr/share/terminfo/n/ncsa-vt220-8 create mode 100644 usr/share/terminfo/n/nd9500 create mode 100644 usr/share/terminfo/n/ndr9500 create mode 100644 usr/share/terminfo/n/ndr9500-25 create mode 100644 usr/share/terminfo/n/ndr9500-25-mc create mode 100644 usr/share/terminfo/n/ndr9500-25-mc-nl create mode 100644 usr/share/terminfo/n/ndr9500-25-nl create mode 100644 usr/share/terminfo/n/ndr9500-mc create mode 100644 usr/share/terminfo/n/ndr9500-mc-nl create mode 100644 usr/share/terminfo/n/ndr9500-nl create mode 100644 usr/share/terminfo/n/nec create mode 100644 usr/share/terminfo/n/nec5520 create mode 100644 usr/share/terminfo/n/netbsd6 create mode 100644 usr/share/terminfo/n/newhp create mode 100644 usr/share/terminfo/n/newhpkeyboard create mode 100644 usr/share/terminfo/n/news create mode 100644 usr/share/terminfo/n/news-29 create mode 100644 usr/share/terminfo/n/news-29-euc create mode 100644 usr/share/terminfo/n/news-29-sjis create mode 100644 usr/share/terminfo/n/news-33 create mode 100644 usr/share/terminfo/n/news-33-euc create mode 100644 usr/share/terminfo/n/news-33-sjis create mode 100644 usr/share/terminfo/n/news-42 create mode 100644 usr/share/terminfo/n/news-42-euc create mode 100644 usr/share/terminfo/n/news-42-sjis create mode 100644 usr/share/terminfo/n/news-a create mode 100644 usr/share/terminfo/n/news-o create mode 100644 usr/share/terminfo/n/news-old-unk create mode 100644 usr/share/terminfo/n/news-unk create mode 100644 usr/share/terminfo/n/news28 create mode 100644 usr/share/terminfo/n/news28-a create mode 100644 usr/share/terminfo/n/news29 create mode 100644 usr/share/terminfo/n/news31 create mode 100644 usr/share/terminfo/n/news31-a create mode 100644 usr/share/terminfo/n/news31-o create mode 100644 usr/share/terminfo/n/news33 create mode 100644 usr/share/terminfo/n/news40 create mode 100644 usr/share/terminfo/n/news40-a create mode 100644 usr/share/terminfo/n/news40-o create mode 100644 usr/share/terminfo/n/news42 create mode 100644 usr/share/terminfo/n/newscbm create mode 100644 usr/share/terminfo/n/newscbm-a create mode 100644 usr/share/terminfo/n/newscbm-o create mode 100644 usr/share/terminfo/n/newscbm33 create mode 100644 usr/share/terminfo/n/next create mode 100644 usr/share/terminfo/n/nextshell create mode 100644 usr/share/terminfo/n/no+brackets create mode 100644 usr/share/terminfo/n/northstar create mode 100644 usr/share/terminfo/n/nsterm create mode 100644 usr/share/terminfo/n/nsterm+7 create mode 100644 usr/share/terminfo/n/nsterm+acs create mode 100644 usr/share/terminfo/n/nsterm+c create mode 100644 usr/share/terminfo/n/nsterm+c41 create mode 100644 usr/share/terminfo/n/nsterm+mac create mode 100644 usr/share/terminfo/n/nsterm+s create mode 100644 usr/share/terminfo/n/nsterm-16color create mode 100644 usr/share/terminfo/n/nsterm-256color create mode 100644 usr/share/terminfo/n/nsterm-7 create mode 100644 usr/share/terminfo/n/nsterm-7-c create mode 100644 usr/share/terminfo/n/nsterm-7-c-s create mode 100644 usr/share/terminfo/n/nsterm-7-m create mode 100644 usr/share/terminfo/n/nsterm-7-m-s create mode 100644 usr/share/terminfo/n/nsterm-7-s create mode 100644 usr/share/terminfo/n/nsterm-acs create mode 100644 usr/share/terminfo/n/nsterm-acs-c create mode 100644 usr/share/terminfo/n/nsterm-acs-c-s create mode 100644 usr/share/terminfo/n/nsterm-acs-m create mode 100644 usr/share/terminfo/n/nsterm-acs-m-s create mode 100644 usr/share/terminfo/n/nsterm-acs-s create mode 100644 usr/share/terminfo/n/nsterm-bce create mode 100644 usr/share/terminfo/n/nsterm-build309 create mode 100644 usr/share/terminfo/n/nsterm-build326 create mode 100644 usr/share/terminfo/n/nsterm-build343 create mode 100644 usr/share/terminfo/n/nsterm-build361 create mode 100644 usr/share/terminfo/n/nsterm-build400 create mode 100644 usr/share/terminfo/n/nsterm-build440 create mode 100644 usr/share/terminfo/n/nsterm-c create mode 100644 usr/share/terminfo/n/nsterm-c-7 create mode 100644 usr/share/terminfo/n/nsterm-c-acs create mode 100644 usr/share/terminfo/n/nsterm-c-s create mode 100644 usr/share/terminfo/n/nsterm-c-s-7 create mode 100644 usr/share/terminfo/n/nsterm-c-s-acs create mode 100644 usr/share/terminfo/n/nsterm-direct create mode 100644 usr/share/terminfo/n/nsterm-m create mode 100644 usr/share/terminfo/n/nsterm-m-7 create mode 100644 usr/share/terminfo/n/nsterm-m-acs create mode 100644 usr/share/terminfo/n/nsterm-m-s create mode 100644 usr/share/terminfo/n/nsterm-m-s-7 create mode 100644 usr/share/terminfo/n/nsterm-m-s-acs create mode 100644 usr/share/terminfo/n/nsterm-old create mode 100644 usr/share/terminfo/n/nsterm-s create mode 100644 usr/share/terminfo/n/nsterm-s-7 create mode 100644 usr/share/terminfo/n/nsterm-s-acs create mode 100644 usr/share/terminfo/n/ntconsole create mode 100644 usr/share/terminfo/n/ntconsole-100 create mode 100644 usr/share/terminfo/n/ntconsole-100-nti create mode 100644 usr/share/terminfo/n/ntconsole-25 create mode 100644 usr/share/terminfo/n/ntconsole-25-nti create mode 100644 usr/share/terminfo/n/ntconsole-25-w create mode 100644 usr/share/terminfo/n/ntconsole-25-w-vt create mode 100644 usr/share/terminfo/n/ntconsole-35 create mode 100644 usr/share/terminfo/n/ntconsole-35-nti create mode 100644 usr/share/terminfo/n/ntconsole-35-w create mode 100644 usr/share/terminfo/n/ntconsole-50 create mode 100644 usr/share/terminfo/n/ntconsole-50-nti create mode 100644 usr/share/terminfo/n/ntconsole-50-w create mode 100644 usr/share/terminfo/n/ntconsole-60 create mode 100644 usr/share/terminfo/n/ntconsole-60-nti create mode 100644 usr/share/terminfo/n/ntconsole-60-w create mode 100644 usr/share/terminfo/n/ntconsole-w create mode 100644 usr/share/terminfo/n/ntconsole-w-vt create mode 100644 usr/share/terminfo/n/nwe501 create mode 100644 usr/share/terminfo/n/nwe501-a create mode 100644 usr/share/terminfo/n/nwe501-o create mode 100644 usr/share/terminfo/n/nwp-511 create mode 100644 usr/share/terminfo/n/nwp-517 create mode 100644 usr/share/terminfo/n/nwp-517-w create mode 100644 usr/share/terminfo/n/nwp251-a create mode 100644 usr/share/terminfo/n/nwp251-o create mode 100644 usr/share/terminfo/n/nwp511 create mode 100644 usr/share/terminfo/n/nwp512 create mode 100644 usr/share/terminfo/n/nwp512-a create mode 100644 usr/share/terminfo/n/nwp512-o create mode 100644 usr/share/terminfo/n/nwp513 create mode 100644 usr/share/terminfo/n/nwp513-a create mode 100644 usr/share/terminfo/n/nwp513-o create mode 100644 usr/share/terminfo/n/nwp514 create mode 100644 usr/share/terminfo/n/nwp514-a create mode 100644 usr/share/terminfo/n/nwp514-o create mode 100644 usr/share/terminfo/n/nwp517 create mode 100644 usr/share/terminfo/n/nwp517-w create mode 100644 usr/share/terminfo/n/nwp518 create mode 100644 usr/share/terminfo/n/nwp518-a create mode 100644 usr/share/terminfo/n/nwp518-o create mode 100644 usr/share/terminfo/n/nxterm create mode 100644 usr/share/terminfo/o/o31 create mode 100644 usr/share/terminfo/o/o4112-nd create mode 100644 usr/share/terminfo/o/o85h create mode 100644 usr/share/terminfo/o/oabm85h create mode 100644 usr/share/terminfo/o/oblit create mode 100644 usr/share/terminfo/o/oc100 create mode 100644 usr/share/terminfo/o/oconcept create mode 100644 usr/share/terminfo/o/ofcons create mode 100644 usr/share/terminfo/o/ojerq create mode 100644 usr/share/terminfo/o/old-st create mode 100644 usr/share/terminfo/o/oldibmpc3 create mode 100644 usr/share/terminfo/o/oldpc3 create mode 100644 usr/share/terminfo/o/oldsun create mode 100644 usr/share/terminfo/o/omron create mode 100644 usr/share/terminfo/o/opennt create mode 100644 usr/share/terminfo/o/opennt-100 create mode 100644 usr/share/terminfo/o/opennt-100-nti create mode 100644 usr/share/terminfo/o/opennt-25 create mode 100644 usr/share/terminfo/o/opennt-25-nti create mode 100644 usr/share/terminfo/o/opennt-25-w create mode 100644 usr/share/terminfo/o/opennt-25-w-vt create mode 100644 usr/share/terminfo/o/opennt-35 create mode 100644 usr/share/terminfo/o/opennt-35-nti create mode 100644 usr/share/terminfo/o/opennt-35-w create mode 100644 usr/share/terminfo/o/opennt-50 create mode 100644 usr/share/terminfo/o/opennt-50-nti create mode 100644 usr/share/terminfo/o/opennt-50-w create mode 100644 usr/share/terminfo/o/opennt-60 create mode 100644 usr/share/terminfo/o/opennt-60-nti create mode 100644 usr/share/terminfo/o/opennt-60-w create mode 100644 usr/share/terminfo/o/opennt-nti create mode 100644 usr/share/terminfo/o/opennt-w create mode 100644 usr/share/terminfo/o/opennt-w-vt create mode 100644 usr/share/terminfo/o/opus3n1+ create mode 100644 usr/share/terminfo/o/origibmpc3 create mode 100644 usr/share/terminfo/o/origpc3 create mode 100644 usr/share/terminfo/o/os9LII create mode 100644 usr/share/terminfo/o/osborne create mode 100644 usr/share/terminfo/o/osborne-w create mode 100644 usr/share/terminfo/o/osborne1 create mode 100644 usr/share/terminfo/o/osborne1-w create mode 100644 usr/share/terminfo/o/osexec create mode 100644 usr/share/terminfo/o/otek4112 create mode 100644 usr/share/terminfo/o/otek4113 create mode 100644 usr/share/terminfo/o/otek4114 create mode 100644 usr/share/terminfo/o/otek4115 create mode 100644 usr/share/terminfo/o/owl create mode 100644 usr/share/terminfo/p/p12 create mode 100644 usr/share/terminfo/p/p12-m create mode 100644 usr/share/terminfo/p/p12-m-w create mode 100644 usr/share/terminfo/p/p12-w create mode 100644 usr/share/terminfo/p/p14 create mode 100644 usr/share/terminfo/p/p14-m create mode 100644 usr/share/terminfo/p/p14-m-w create mode 100644 usr/share/terminfo/p/p14-w create mode 100644 usr/share/terminfo/p/p19 create mode 100644 usr/share/terminfo/p/p4 create mode 100644 usr/share/terminfo/p/p5 create mode 100644 usr/share/terminfo/p/p7 create mode 100644 usr/share/terminfo/p/p8 create mode 100644 usr/share/terminfo/p/p8-w create mode 100644 usr/share/terminfo/p/p8gl create mode 100644 usr/share/terminfo/p/p9 create mode 100644 usr/share/terminfo/p/p9-8 create mode 100644 usr/share/terminfo/p/p9-8-w create mode 100644 usr/share/terminfo/p/p9-w create mode 100644 usr/share/terminfo/p/pc-coherent create mode 100644 usr/share/terminfo/p/pc-minix create mode 100644 usr/share/terminfo/p/pc-venix create mode 100644 usr/share/terminfo/p/pc3 create mode 100644 usr/share/terminfo/p/pc3-bold create mode 100644 usr/share/terminfo/p/pc3r create mode 100644 usr/share/terminfo/p/pc3r-m create mode 100644 usr/share/terminfo/p/pc6300plus create mode 100644 usr/share/terminfo/p/pc7300 create mode 100644 usr/share/terminfo/p/pcansi create mode 100644 usr/share/terminfo/p/pcansi-25 create mode 100644 usr/share/terminfo/p/pcansi-25-m create mode 100644 usr/share/terminfo/p/pcansi-33 create mode 100644 usr/share/terminfo/p/pcansi-33-m create mode 100644 usr/share/terminfo/p/pcansi-43 create mode 100644 usr/share/terminfo/p/pcansi-43-m create mode 100644 usr/share/terminfo/p/pcansi-m create mode 100644 usr/share/terminfo/p/pcansi-mono create mode 100644 usr/share/terminfo/p/pcansi25 create mode 100644 usr/share/terminfo/p/pcansi25m create mode 100644 usr/share/terminfo/p/pcansi33 create mode 100644 usr/share/terminfo/p/pcansi33m create mode 100644 usr/share/terminfo/p/pcansi43 create mode 100644 usr/share/terminfo/p/pccon create mode 100644 usr/share/terminfo/p/pccon+base create mode 100644 usr/share/terminfo/p/pccon+colors create mode 100644 usr/share/terminfo/p/pccon+keys create mode 100644 usr/share/terminfo/p/pccon+sgr+acs create mode 100644 usr/share/terminfo/p/pccon+sgr+acs0 create mode 100644 usr/share/terminfo/p/pccon-m create mode 100644 usr/share/terminfo/p/pccon0 create mode 100644 usr/share/terminfo/p/pccon0-m create mode 100644 usr/share/terminfo/p/pccons create mode 100644 usr/share/terminfo/p/pcconsole create mode 100644 usr/share/terminfo/p/pcix create mode 100644 usr/share/terminfo/p/pckermit create mode 100644 usr/share/terminfo/p/pckermit12 create mode 100644 usr/share/terminfo/p/pckermit120 create mode 100644 usr/share/terminfo/p/pcmw create mode 100644 usr/share/terminfo/p/pcplot create mode 100644 usr/share/terminfo/p/pcvt25 create mode 100644 usr/share/terminfo/p/pcvt25-color create mode 100644 usr/share/terminfo/p/pcvt25w create mode 100644 usr/share/terminfo/p/pcvt28 create mode 100644 usr/share/terminfo/p/pcvt28w create mode 100644 usr/share/terminfo/p/pcvt35 create mode 100644 usr/share/terminfo/p/pcvt35w create mode 100644 usr/share/terminfo/p/pcvt40 create mode 100644 usr/share/terminfo/p/pcvt40w create mode 100644 usr/share/terminfo/p/pcvt43 create mode 100644 usr/share/terminfo/p/pcvt43w create mode 100644 usr/share/terminfo/p/pcvt50 create mode 100644 usr/share/terminfo/p/pcvt50w create mode 100644 usr/share/terminfo/p/pcvtXX create mode 100644 usr/share/terminfo/p/pcz19 create mode 100644 usr/share/terminfo/p/pe1100 create mode 100644 usr/share/terminfo/p/pe1200 create mode 100644 usr/share/terminfo/p/pe1251 create mode 100644 usr/share/terminfo/p/pe550 create mode 100644 usr/share/terminfo/p/pe6100 create mode 100644 usr/share/terminfo/p/pe6300 create mode 100644 usr/share/terminfo/p/pe6312 create mode 100644 usr/share/terminfo/p/pe7000c create mode 100644 usr/share/terminfo/p/pe7000m create mode 100644 usr/share/terminfo/p/pilot create mode 100644 usr/share/terminfo/p/pmcons create mode 100644 usr/share/terminfo/p/pmconsole create mode 100644 usr/share/terminfo/p/printer create mode 100644 usr/share/terminfo/p/prism12 create mode 100644 usr/share/terminfo/p/prism12-m create mode 100644 usr/share/terminfo/p/prism12-m-w create mode 100644 usr/share/terminfo/p/prism12-w create mode 100644 usr/share/terminfo/p/prism14 create mode 100644 usr/share/terminfo/p/prism14-m create mode 100644 usr/share/terminfo/p/prism14-m-w create mode 100644 usr/share/terminfo/p/prism14-w create mode 100644 usr/share/terminfo/p/prism2 create mode 100644 usr/share/terminfo/p/prism4 create mode 100644 usr/share/terminfo/p/prism5 create mode 100644 usr/share/terminfo/p/prism7 create mode 100644 usr/share/terminfo/p/prism8 create mode 100644 usr/share/terminfo/p/prism8-w create mode 100644 usr/share/terminfo/p/prism8gl create mode 100644 usr/share/terminfo/p/prism9 create mode 100644 usr/share/terminfo/p/prism9-8 create mode 100644 usr/share/terminfo/p/prism9-8-w create mode 100644 usr/share/terminfo/p/prism9-w create mode 100644 usr/share/terminfo/p/pro350 create mode 100644 usr/share/terminfo/p/ps300 create mode 100644 usr/share/terminfo/p/psterm create mode 100644 usr/share/terminfo/p/psterm-80x24 create mode 100644 usr/share/terminfo/p/psterm-90x28 create mode 100644 usr/share/terminfo/p/psterm-96x48 create mode 100644 usr/share/terminfo/p/psterm-basic create mode 100644 usr/share/terminfo/p/psterm-fast create mode 100644 usr/share/terminfo/p/psx_ansi create mode 100644 usr/share/terminfo/p/pt100 create mode 100644 usr/share/terminfo/p/pt100w create mode 100644 usr/share/terminfo/p/pt200 create mode 100644 usr/share/terminfo/p/pt200w create mode 100644 usr/share/terminfo/p/pt210 create mode 100644 usr/share/terminfo/p/pt250 create mode 100644 usr/share/terminfo/p/pt250w create mode 100644 usr/share/terminfo/p/pt505 create mode 100644 usr/share/terminfo/p/pt505-22 create mode 100644 usr/share/terminfo/p/pt505-24 create mode 100644 usr/share/terminfo/p/pty create mode 100644 usr/share/terminfo/p/putty create mode 100644 usr/share/terminfo/p/putty+fnkeys create mode 100644 usr/share/terminfo/p/putty+fnkeys+esc create mode 100644 usr/share/terminfo/p/putty+fnkeys+linux create mode 100644 usr/share/terminfo/p/putty+fnkeys+sco create mode 100644 usr/share/terminfo/p/putty+fnkeys+vt100 create mode 100644 usr/share/terminfo/p/putty+fnkeys+vt400 create mode 100644 usr/share/terminfo/p/putty+fnkeys+xterm create mode 100644 usr/share/terminfo/p/putty+keypad create mode 100644 usr/share/terminfo/p/putty+screen create mode 100644 usr/share/terminfo/p/putty-256color create mode 100644 usr/share/terminfo/p/putty-m1 create mode 100644 usr/share/terminfo/p/putty-m1b create mode 100644 usr/share/terminfo/p/putty-m2 create mode 100644 usr/share/terminfo/p/putty-noapp create mode 100644 usr/share/terminfo/p/putty-sco create mode 100644 usr/share/terminfo/p/putty-screen create mode 100644 usr/share/terminfo/p/putty-vt100 create mode 100644 usr/share/terminfo/q/qansi create mode 100644 usr/share/terminfo/q/qansi-g create mode 100644 usr/share/terminfo/q/qansi-m create mode 100644 usr/share/terminfo/q/qansi-t create mode 100644 usr/share/terminfo/q/qansi-w create mode 100644 usr/share/terminfo/q/qdcons create mode 100644 usr/share/terminfo/q/qdss create mode 100644 usr/share/terminfo/q/qnx create mode 100644 usr/share/terminfo/q/qnx4 create mode 100644 usr/share/terminfo/q/qnxm create mode 100644 usr/share/terminfo/q/qnxt create mode 100644 usr/share/terminfo/q/qnxt2 create mode 100644 usr/share/terminfo/q/qnxt4 create mode 100644 usr/share/terminfo/q/qnxtmono create mode 100644 usr/share/terminfo/q/qnxw create mode 100644 usr/share/terminfo/q/qume create mode 100644 usr/share/terminfo/q/qume5 create mode 100644 usr/share/terminfo/q/qvt101 create mode 100644 usr/share/terminfo/q/qvt101+ create mode 100644 usr/share/terminfo/q/qvt101p create mode 100644 usr/share/terminfo/q/qvt102 create mode 100644 usr/share/terminfo/q/qvt103 create mode 100644 usr/share/terminfo/q/qvt103-w create mode 100644 usr/share/terminfo/q/qvt108 create mode 100644 usr/share/terminfo/q/qvt119 create mode 100644 usr/share/terminfo/q/qvt119+ create mode 100644 usr/share/terminfo/q/qvt119+-25 create mode 100644 usr/share/terminfo/q/qvt119+-25-w create mode 100644 usr/share/terminfo/q/qvt119+-w create mode 100644 usr/share/terminfo/q/qvt119-25-w create mode 100644 usr/share/terminfo/q/qvt119-w create mode 100644 usr/share/terminfo/q/qvt119p create mode 100644 usr/share/terminfo/q/qvt119p-25 create mode 100644 usr/share/terminfo/q/qvt119p-25-w create mode 100644 usr/share/terminfo/q/qvt119p-w create mode 100644 usr/share/terminfo/q/qvt203 create mode 100644 usr/share/terminfo/q/qvt203+ create mode 100644 usr/share/terminfo/q/qvt203-25 create mode 100644 usr/share/terminfo/q/qvt203-25-w create mode 100644 usr/share/terminfo/q/qvt203-w create mode 100644 usr/share/terminfo/q/qvt203-w-am create mode 100644 usr/share/terminfo/r/rbcomm create mode 100644 usr/share/terminfo/r/rbcomm-nam create mode 100644 usr/share/terminfo/r/rbcomm-w create mode 100644 usr/share/terminfo/r/rca create mode 100644 usr/share/terminfo/r/rcons create mode 100644 usr/share/terminfo/r/rcons-color create mode 100644 usr/share/terminfo/r/rebus3180 create mode 100644 usr/share/terminfo/r/regent create mode 100644 usr/share/terminfo/r/regent100 create mode 100644 usr/share/terminfo/r/regent20 create mode 100644 usr/share/terminfo/r/regent200 create mode 100644 usr/share/terminfo/r/regent25 create mode 100644 usr/share/terminfo/r/regent40 create mode 100644 usr/share/terminfo/r/regent40+ create mode 100644 usr/share/terminfo/r/regent60 create mode 100644 usr/share/terminfo/r/rt6221 create mode 100644 usr/share/terminfo/r/rt6221-w create mode 100644 usr/share/terminfo/r/rtpc create mode 100644 usr/share/terminfo/r/rxvt create mode 100644 usr/share/terminfo/r/rxvt+pcfkeys create mode 100644 usr/share/terminfo/r/rxvt-16color create mode 100644 usr/share/terminfo/r/rxvt-256color create mode 100644 usr/share/terminfo/r/rxvt-88color create mode 100644 usr/share/terminfo/r/rxvt-basic create mode 100644 usr/share/terminfo/r/rxvt-color create mode 100644 usr/share/terminfo/r/rxvt-cygwin create mode 100644 usr/share/terminfo/r/rxvt-cygwin-native create mode 100644 usr/share/terminfo/r/rxvt-xpm create mode 100644 usr/share/terminfo/s/s4 create mode 100644 usr/share/terminfo/s/sb1 create mode 100644 usr/share/terminfo/s/sb2 create mode 100644 usr/share/terminfo/s/sb3 create mode 100644 usr/share/terminfo/s/sbi create mode 100644 usr/share/terminfo/s/sbobcat create mode 100644 usr/share/terminfo/s/sc410 create mode 100644 usr/share/terminfo/s/sc415 create mode 100644 usr/share/terminfo/s/scanset create mode 100644 usr/share/terminfo/s/scoansi create mode 100644 usr/share/terminfo/s/scoansi-new create mode 100644 usr/share/terminfo/s/scoansi-old create mode 100644 usr/share/terminfo/s/screen create mode 100644 usr/share/terminfo/s/screen+fkeys create mode 100644 usr/share/terminfo/s/screen+italics create mode 100644 usr/share/terminfo/s/screen-16color create mode 100644 usr/share/terminfo/s/screen-16color-bce create mode 100644 usr/share/terminfo/s/screen-16color-bce-s create mode 100644 usr/share/terminfo/s/screen-16color-s create mode 100644 usr/share/terminfo/s/screen-256color create mode 100644 usr/share/terminfo/s/screen-256color-bce create mode 100644 usr/share/terminfo/s/screen-256color-bce-s create mode 100644 usr/share/terminfo/s/screen-256color-s create mode 100644 usr/share/terminfo/s/screen-base create mode 100644 usr/share/terminfo/s/screen-bce create mode 100644 usr/share/terminfo/s/screen-bce.Eterm create mode 100644 usr/share/terminfo/s/screen-bce.gnome create mode 100644 usr/share/terminfo/s/screen-bce.konsole create mode 100644 usr/share/terminfo/s/screen-bce.linux create mode 100644 usr/share/terminfo/s/screen-bce.mrxvt create mode 100644 usr/share/terminfo/s/screen-bce.rxvt create mode 100644 usr/share/terminfo/s/screen-bce.xterm-new create mode 100644 usr/share/terminfo/s/screen-s create mode 100644 usr/share/terminfo/s/screen-w create mode 100644 usr/share/terminfo/s/screen.Eterm create mode 100644 usr/share/terminfo/s/screen.gnome create mode 100644 usr/share/terminfo/s/screen.konsole create mode 100644 usr/share/terminfo/s/screen.konsole-256color create mode 100644 usr/share/terminfo/s/screen.linux create mode 100644 usr/share/terminfo/s/screen.linux-m1 create mode 100644 usr/share/terminfo/s/screen.linux-m1b create mode 100644 usr/share/terminfo/s/screen.linux-m2 create mode 100644 usr/share/terminfo/s/screen.linux-s create mode 100644 usr/share/terminfo/s/screen.minitel1 create mode 100644 usr/share/terminfo/s/screen.minitel1-nb create mode 100644 usr/share/terminfo/s/screen.minitel12-80 create mode 100644 usr/share/terminfo/s/screen.minitel1b create mode 100644 usr/share/terminfo/s/screen.minitel1b-80 create mode 100644 usr/share/terminfo/s/screen.minitel1b-nb create mode 100644 usr/share/terminfo/s/screen.minitel2-80 create mode 100644 usr/share/terminfo/s/screen.mlterm create mode 100644 usr/share/terminfo/s/screen.mlterm-256color create mode 100644 usr/share/terminfo/s/screen.mrxvt create mode 100644 usr/share/terminfo/s/screen.putty create mode 100644 usr/share/terminfo/s/screen.putty-256color create mode 100644 usr/share/terminfo/s/screen.putty-m1 create mode 100644 usr/share/terminfo/s/screen.putty-m1b create mode 100644 usr/share/terminfo/s/screen.putty-m2 create mode 100644 usr/share/terminfo/s/screen.rxvt create mode 100644 usr/share/terminfo/s/screen.teraterm create mode 100644 usr/share/terminfo/s/screen.vte create mode 100644 usr/share/terminfo/s/screen.vte-256color create mode 100644 usr/share/terminfo/s/screen.xterm-256color create mode 100644 usr/share/terminfo/s/screen.xterm-new create mode 100644 usr/share/terminfo/s/screen.xterm-r6 create mode 100644 usr/share/terminfo/s/screen.xterm-xfree86 create mode 100644 usr/share/terminfo/s/screen2 create mode 100644 usr/share/terminfo/s/screen3 create mode 100644 usr/share/terminfo/s/screen4 create mode 100644 usr/share/terminfo/s/screen5 create mode 100644 usr/share/terminfo/s/screwpoint create mode 100644 usr/share/terminfo/s/scrhp create mode 100644 usr/share/terminfo/s/scrt create mode 100644 usr/share/terminfo/s/securecrt create mode 100644 usr/share/terminfo/s/sibo create mode 100644 usr/share/terminfo/s/simpleterm create mode 100644 usr/share/terminfo/s/simterm create mode 100644 usr/share/terminfo/s/soroc create mode 100644 usr/share/terminfo/s/soroc120 create mode 100644 usr/share/terminfo/s/soroc140 create mode 100644 usr/share/terminfo/s/spinwriter create mode 100644 usr/share/terminfo/s/st create mode 100644 usr/share/terminfo/s/st-0.6 create mode 100644 usr/share/terminfo/s/st-0.7 create mode 100644 usr/share/terminfo/s/st-0.8 create mode 100644 usr/share/terminfo/s/st-16color create mode 100644 usr/share/terminfo/s/st-256color create mode 100644 usr/share/terminfo/s/st-direct create mode 100644 usr/share/terminfo/s/st52 create mode 100644 usr/share/terminfo/s/st52-color create mode 100644 usr/share/terminfo/s/st52-m create mode 100644 usr/share/terminfo/s/st52-old create mode 100644 usr/share/terminfo/s/stterm create mode 100644 usr/share/terminfo/s/stterm-16color create mode 100644 usr/share/terminfo/s/stterm-256color create mode 100644 usr/share/terminfo/s/stv52 create mode 100644 usr/share/terminfo/s/stv52pc create mode 100644 usr/share/terminfo/s/sun create mode 100644 usr/share/terminfo/s/sun+sl create mode 100644 usr/share/terminfo/s/sun-1 create mode 100644 usr/share/terminfo/s/sun-12 create mode 100644 usr/share/terminfo/s/sun-17 create mode 100644 usr/share/terminfo/s/sun-24 create mode 100644 usr/share/terminfo/s/sun-34 create mode 100644 usr/share/terminfo/s/sun-48 create mode 100644 usr/share/terminfo/s/sun-c create mode 100644 usr/share/terminfo/s/sun-cgsix create mode 100644 usr/share/terminfo/s/sun-cmd create mode 100644 usr/share/terminfo/s/sun-color create mode 100644 usr/share/terminfo/s/sun-e create mode 100644 usr/share/terminfo/s/sun-e-s create mode 100644 usr/share/terminfo/s/sun-il create mode 100644 usr/share/terminfo/s/sun-nic create mode 100644 usr/share/terminfo/s/sun-s create mode 100644 usr/share/terminfo/s/sun-s-e create mode 100644 usr/share/terminfo/s/sun-ss5 create mode 100644 usr/share/terminfo/s/sun-type4 create mode 100644 usr/share/terminfo/s/sun1 create mode 100644 usr/share/terminfo/s/sun2 create mode 100644 usr/share/terminfo/s/sune create mode 100644 usr/share/terminfo/s/superbee create mode 100644 usr/share/terminfo/s/superbee-xsb create mode 100644 usr/share/terminfo/s/superbeeic create mode 100644 usr/share/terminfo/s/superbrain create mode 100644 usr/share/terminfo/s/sv80 create mode 100644 usr/share/terminfo/s/swtp create mode 100644 usr/share/terminfo/s/synertek create mode 100644 usr/share/terminfo/s/synertek380 create mode 100644 usr/share/terminfo/s/system1 create mode 100644 usr/share/terminfo/t/t10 create mode 100644 usr/share/terminfo/t/t1061 create mode 100644 usr/share/terminfo/t/t1061f create mode 100644 usr/share/terminfo/t/t16 create mode 100644 usr/share/terminfo/t/t3700 create mode 100644 usr/share/terminfo/t/t3800 create mode 100644 usr/share/terminfo/t/t653x create mode 100644 usr/share/terminfo/t/tab create mode 100644 usr/share/terminfo/t/tab132 create mode 100644 usr/share/terminfo/t/tab132-15 create mode 100644 usr/share/terminfo/t/tab132-rv create mode 100644 usr/share/terminfo/t/tab132-w create mode 100644 usr/share/terminfo/t/tab132-w-rv create mode 100644 usr/share/terminfo/t/tandem6510 create mode 100644 usr/share/terminfo/t/tandem653 create mode 100644 usr/share/terminfo/t/tek create mode 100644 usr/share/terminfo/t/tek4012 create mode 100644 usr/share/terminfo/t/tek4013 create mode 100644 usr/share/terminfo/t/tek4014 create mode 100644 usr/share/terminfo/t/tek4014-sm create mode 100644 usr/share/terminfo/t/tek4015 create mode 100644 usr/share/terminfo/t/tek4015-sm create mode 100644 usr/share/terminfo/t/tek4023 create mode 100644 usr/share/terminfo/t/tek4024 create mode 100644 usr/share/terminfo/t/tek4025 create mode 100644 usr/share/terminfo/t/tek4025-17 create mode 100644 usr/share/terminfo/t/tek4025-17-ws create mode 100644 usr/share/terminfo/t/tek4025-cr create mode 100644 usr/share/terminfo/t/tek4025-ex create mode 100644 usr/share/terminfo/t/tek4025a create mode 100644 usr/share/terminfo/t/tek4025ex create mode 100644 usr/share/terminfo/t/tek4027 create mode 100644 usr/share/terminfo/t/tek4027-ex create mode 100644 usr/share/terminfo/t/tek4105 create mode 100644 usr/share/terminfo/t/tek4105-30 create mode 100644 usr/share/terminfo/t/tek4105a create mode 100644 usr/share/terminfo/t/tek4106brl create mode 100644 usr/share/terminfo/t/tek4107 create mode 100644 usr/share/terminfo/t/tek4107brl create mode 100644 usr/share/terminfo/t/tek4109 create mode 100644 usr/share/terminfo/t/tek4109brl create mode 100644 usr/share/terminfo/t/tek4112 create mode 100644 usr/share/terminfo/t/tek4112-5 create mode 100644 usr/share/terminfo/t/tek4112-nd create mode 100644 usr/share/terminfo/t/tek4113 create mode 100644 usr/share/terminfo/t/tek4113-34 create mode 100644 usr/share/terminfo/t/tek4113-nd create mode 100644 usr/share/terminfo/t/tek4114 create mode 100644 usr/share/terminfo/t/tek4115 create mode 100644 usr/share/terminfo/t/tek4125 create mode 100644 usr/share/terminfo/t/tek4205 create mode 100644 usr/share/terminfo/t/tek4207 create mode 100644 usr/share/terminfo/t/tek4207-s create mode 100644 usr/share/terminfo/t/tek4404 create mode 100644 usr/share/terminfo/t/teken create mode 100644 usr/share/terminfo/t/teken-16color create mode 100644 usr/share/terminfo/t/teken-2018 create mode 100644 usr/share/terminfo/t/teken-2022 create mode 100644 usr/share/terminfo/t/teken-sc create mode 100644 usr/share/terminfo/t/teken-sc+fkeys create mode 100644 usr/share/terminfo/t/teken-vt create mode 100644 usr/share/terminfo/t/teken-vt+fkeys create mode 100644 usr/share/terminfo/t/teleray create mode 100644 usr/share/terminfo/t/teletec create mode 100644 usr/share/terminfo/t/teraterm create mode 100644 usr/share/terminfo/t/teraterm-256color create mode 100644 usr/share/terminfo/t/teraterm2.3 create mode 100644 usr/share/terminfo/t/teraterm4.59 create mode 100644 usr/share/terminfo/t/teraterm4.97 create mode 100644 usr/share/terminfo/t/terminator create mode 100644 usr/share/terminfo/t/terminet create mode 100644 usr/share/terminfo/t/terminet1200 create mode 100644 usr/share/terminfo/t/terminet300 create mode 100644 usr/share/terminfo/t/terminology create mode 100644 usr/share/terminfo/t/terminology-0.6.1 create mode 100644 usr/share/terminfo/t/terminology-1.0.0 create mode 100644 usr/share/terminfo/t/terminology-1.8.1 create mode 100644 usr/share/terminfo/t/termite create mode 100644 usr/share/terminfo/t/tgtelnet create mode 100644 usr/share/terminfo/t/ti700 create mode 100644 usr/share/terminfo/t/ti703 create mode 100644 usr/share/terminfo/t/ti703-w create mode 100644 usr/share/terminfo/t/ti707 create mode 100644 usr/share/terminfo/t/ti707-w create mode 100644 usr/share/terminfo/t/ti733 create mode 100644 usr/share/terminfo/t/ti735 create mode 100644 usr/share/terminfo/t/ti745 create mode 100644 usr/share/terminfo/t/ti800 create mode 100644 usr/share/terminfo/t/ti916 create mode 100644 usr/share/terminfo/t/ti916-132 create mode 100644 usr/share/terminfo/t/ti916-220-7 create mode 100644 usr/share/terminfo/t/ti916-220-8 create mode 100644 usr/share/terminfo/t/ti916-8 create mode 100644 usr/share/terminfo/t/ti916-8-132 create mode 100644 usr/share/terminfo/t/ti924 create mode 100644 usr/share/terminfo/t/ti924-8 create mode 100644 usr/share/terminfo/t/ti924-8w create mode 100644 usr/share/terminfo/t/ti924w create mode 100644 usr/share/terminfo/t/ti926 create mode 100644 usr/share/terminfo/t/ti926-8 create mode 100644 usr/share/terminfo/t/ti928 create mode 100644 usr/share/terminfo/t/ti928-8 create mode 100644 usr/share/terminfo/t/ti931 create mode 100644 usr/share/terminfo/t/ti_ansi create mode 100644 usr/share/terminfo/t/tkterm create mode 100644 usr/share/terminfo/t/tmux create mode 100644 usr/share/terminfo/t/tmux-256color create mode 100644 usr/share/terminfo/t/tmux-direct create mode 100644 usr/share/terminfo/t/tn1200 create mode 100644 usr/share/terminfo/t/tn300 create mode 100644 usr/share/terminfo/t/trs16 create mode 100644 usr/share/terminfo/t/trs2 create mode 100644 usr/share/terminfo/t/trs80II create mode 100644 usr/share/terminfo/t/trsII create mode 100644 usr/share/terminfo/t/ts-1 create mode 100644 usr/share/terminfo/t/ts-1p create mode 100644 usr/share/terminfo/t/ts1 create mode 100644 usr/share/terminfo/t/ts100 create mode 100644 usr/share/terminfo/t/ts100-ctxt create mode 100644 usr/share/terminfo/t/ts100-sp create mode 100644 usr/share/terminfo/t/ts1p create mode 100644 usr/share/terminfo/t/tt create mode 100644 usr/share/terminfo/t/tt52 create mode 100644 usr/share/terminfo/t/tty33 create mode 100644 usr/share/terminfo/t/tty35 create mode 100644 usr/share/terminfo/t/tty37 create mode 100644 usr/share/terminfo/t/tty40 create mode 100644 usr/share/terminfo/t/tty43 create mode 100644 usr/share/terminfo/t/tty4420 create mode 100644 usr/share/terminfo/t/tty4424 create mode 100644 usr/share/terminfo/t/tty4424-1 create mode 100644 usr/share/terminfo/t/tty4424m create mode 100644 usr/share/terminfo/t/tty4426 create mode 100644 usr/share/terminfo/t/tty5410 create mode 100644 usr/share/terminfo/t/tty5410-w create mode 100644 usr/share/terminfo/t/tty5410v1 create mode 100644 usr/share/terminfo/t/tty5410v1-w create mode 100644 usr/share/terminfo/t/tty5420 create mode 100644 usr/share/terminfo/t/tty5420+nl create mode 100644 usr/share/terminfo/t/tty5420-nl create mode 100644 usr/share/terminfo/t/tty5420-rv create mode 100644 usr/share/terminfo/t/tty5420-rv-nl create mode 100644 usr/share/terminfo/t/tty5420-w create mode 100644 usr/share/terminfo/t/tty5420-w-nl create mode 100644 usr/share/terminfo/t/tty5420-w-rv create mode 100644 usr/share/terminfo/t/tty5420-w-rv-n create mode 100644 usr/share/terminfo/t/tty5425 create mode 100644 usr/share/terminfo/t/tty5425-nl create mode 100644 usr/share/terminfo/t/tty5425-w create mode 100644 usr/share/terminfo/t/tty5620 create mode 100644 usr/share/terminfo/t/tty5620-1 create mode 100644 usr/share/terminfo/t/tty5620-24 create mode 100644 usr/share/terminfo/t/tty5620-34 create mode 100644 usr/share/terminfo/t/tty5620-s create mode 100644 usr/share/terminfo/t/ttydmd create mode 100644 usr/share/terminfo/t/tvi803 create mode 100644 usr/share/terminfo/t/tvi9065 create mode 100644 usr/share/terminfo/t/tvi910 create mode 100644 usr/share/terminfo/t/tvi910+ create mode 100644 usr/share/terminfo/t/tvi912 create mode 100644 usr/share/terminfo/t/tvi912b create mode 100644 usr/share/terminfo/t/tvi912b+2p create mode 100644 usr/share/terminfo/t/tvi912b+dim create mode 100644 usr/share/terminfo/t/tvi912b+mc create mode 100644 usr/share/terminfo/t/tvi912b+printer create mode 100644 usr/share/terminfo/t/tvi912b+vb create mode 100644 usr/share/terminfo/t/tvi912b-2p create mode 100644 usr/share/terminfo/t/tvi912b-2p-mc create mode 100644 usr/share/terminfo/t/tvi912b-2p-p create mode 100644 usr/share/terminfo/t/tvi912b-2p-unk create mode 100644 usr/share/terminfo/t/tvi912b-mc create mode 100644 usr/share/terminfo/t/tvi912b-mc-2p create mode 100644 usr/share/terminfo/t/tvi912b-mc-vb create mode 100644 usr/share/terminfo/t/tvi912b-p create mode 100644 usr/share/terminfo/t/tvi912b-p-2p create mode 100644 usr/share/terminfo/t/tvi912b-p-vb create mode 100644 usr/share/terminfo/t/tvi912b-unk create mode 100644 usr/share/terminfo/t/tvi912b-unk-2p create mode 100644 usr/share/terminfo/t/tvi912b-unk-vb create mode 100644 usr/share/terminfo/t/tvi912b-vb create mode 100644 usr/share/terminfo/t/tvi912b-vb-mc create mode 100644 usr/share/terminfo/t/tvi912b-vb-p create mode 100644 usr/share/terminfo/t/tvi912b-vb-unk create mode 100644 usr/share/terminfo/t/tvi912c create mode 100644 usr/share/terminfo/t/tvi912c-2p create mode 100644 usr/share/terminfo/t/tvi912c-2p-mc create mode 100644 usr/share/terminfo/t/tvi912c-2p-p create mode 100644 usr/share/terminfo/t/tvi912c-2p-unk create mode 100644 usr/share/terminfo/t/tvi912c-mc create mode 100644 usr/share/terminfo/t/tvi912c-mc-2p create mode 100644 usr/share/terminfo/t/tvi912c-mc-vb create mode 100644 usr/share/terminfo/t/tvi912c-p create mode 100644 usr/share/terminfo/t/tvi912c-p-2p create mode 100644 usr/share/terminfo/t/tvi912c-p-vb create mode 100644 usr/share/terminfo/t/tvi912c-unk create mode 100644 usr/share/terminfo/t/tvi912c-unk-2p create mode 100644 usr/share/terminfo/t/tvi912c-unk-vb create mode 100644 usr/share/terminfo/t/tvi912c-vb create mode 100644 usr/share/terminfo/t/tvi912c-vb-mc create mode 100644 usr/share/terminfo/t/tvi912c-vb-p create mode 100644 usr/share/terminfo/t/tvi912c-vb-unk create mode 100644 usr/share/terminfo/t/tvi912cc create mode 100644 usr/share/terminfo/t/tvi914 create mode 100644 usr/share/terminfo/t/tvi920 create mode 100644 usr/share/terminfo/t/tvi920b create mode 100644 usr/share/terminfo/t/tvi920b+fn create mode 100644 usr/share/terminfo/t/tvi920b-2p create mode 100644 usr/share/terminfo/t/tvi920b-2p-mc create mode 100644 usr/share/terminfo/t/tvi920b-2p-p create mode 100644 usr/share/terminfo/t/tvi920b-2p-unk create mode 100644 usr/share/terminfo/t/tvi920b-mc create mode 100644 usr/share/terminfo/t/tvi920b-mc-2p create mode 100644 usr/share/terminfo/t/tvi920b-mc-vb create mode 100644 usr/share/terminfo/t/tvi920b-p create mode 100644 usr/share/terminfo/t/tvi920b-p-2p create mode 100644 usr/share/terminfo/t/tvi920b-p-vb create mode 100644 usr/share/terminfo/t/tvi920b-unk create mode 100644 usr/share/terminfo/t/tvi920b-unk-2p create mode 100644 usr/share/terminfo/t/tvi920b-unk-vb create mode 100644 usr/share/terminfo/t/tvi920b-vb create mode 100644 usr/share/terminfo/t/tvi920b-vb-mc create mode 100644 usr/share/terminfo/t/tvi920b-vb-p create mode 100644 usr/share/terminfo/t/tvi920b-vb-unk create mode 100644 usr/share/terminfo/t/tvi920c create mode 100644 usr/share/terminfo/t/tvi920c-2p create mode 100644 usr/share/terminfo/t/tvi920c-2p-mc create mode 100644 usr/share/terminfo/t/tvi920c-2p-p create mode 100644 usr/share/terminfo/t/tvi920c-2p-unk create mode 100644 usr/share/terminfo/t/tvi920c-mc create mode 100644 usr/share/terminfo/t/tvi920c-mc-2p create mode 100644 usr/share/terminfo/t/tvi920c-mc-vb create mode 100644 usr/share/terminfo/t/tvi920c-p create mode 100644 usr/share/terminfo/t/tvi920c-p-2p create mode 100644 usr/share/terminfo/t/tvi920c-p-vb create mode 100644 usr/share/terminfo/t/tvi920c-unk create mode 100644 usr/share/terminfo/t/tvi920c-unk-2p create mode 100644 usr/share/terminfo/t/tvi920c-unk-vb create mode 100644 usr/share/terminfo/t/tvi920c-vb create mode 100644 usr/share/terminfo/t/tvi920c-vb-mc create mode 100644 usr/share/terminfo/t/tvi920c-vb-p create mode 100644 usr/share/terminfo/t/tvi920c-vb-unk create mode 100644 usr/share/terminfo/t/tvi921 create mode 100644 usr/share/terminfo/t/tvi924 create mode 100644 usr/share/terminfo/t/tvi925 create mode 100644 usr/share/terminfo/t/tvi925-hi create mode 100644 usr/share/terminfo/t/tvi92B create mode 100644 usr/share/terminfo/t/tvi92D create mode 100644 usr/share/terminfo/t/tvi950 create mode 100644 usr/share/terminfo/t/tvi950-2p create mode 100644 usr/share/terminfo/t/tvi950-4p create mode 100644 usr/share/terminfo/t/tvi950-rv create mode 100644 usr/share/terminfo/t/tvi950-rv-2p create mode 100644 usr/share/terminfo/t/tvi950-rv-4p create mode 100644 usr/share/terminfo/t/tvi955 create mode 100644 usr/share/terminfo/t/tvi955-hb create mode 100644 usr/share/terminfo/t/tvi955-w create mode 100644 usr/share/terminfo/t/tvi970 create mode 100644 usr/share/terminfo/t/tvi970-2p create mode 100644 usr/share/terminfo/t/tvi970-vb create mode 100644 usr/share/terminfo/t/tvipt create mode 100644 usr/share/terminfo/t/tw100 create mode 100644 usr/share/terminfo/t/tw52 create mode 100644 usr/share/terminfo/t/tw52-color create mode 100644 usr/share/terminfo/t/tw52-m create mode 100644 usr/share/terminfo/t/tws-generic create mode 100644 usr/share/terminfo/t/tws2102-sna create mode 100644 usr/share/terminfo/t/tws2103 create mode 100644 usr/share/terminfo/t/tws2103-sna create mode 100644 usr/share/terminfo/u/ultima2 create mode 100644 usr/share/terminfo/u/ultimaII create mode 100644 usr/share/terminfo/u/uniterm create mode 100644 usr/share/terminfo/u/uniterm49 create mode 100644 usr/share/terminfo/u/unixpc create mode 100644 usr/share/terminfo/u/unknown create mode 100644 usr/share/terminfo/u/uts30 create mode 100644 usr/share/terminfo/u/uwin create mode 100644 usr/share/terminfo/v/v200-nam create mode 100644 usr/share/terminfo/v/v320n create mode 100644 usr/share/terminfo/v/v3220 create mode 100644 usr/share/terminfo/v/v5410 create mode 100644 usr/share/terminfo/v/vanilla create mode 100644 usr/share/terminfo/v/vapple create mode 100644 usr/share/terminfo/v/vc103 create mode 100644 usr/share/terminfo/v/vc203 create mode 100644 usr/share/terminfo/v/vc303 create mode 100644 usr/share/terminfo/v/vc303a create mode 100644 usr/share/terminfo/v/vc403a create mode 100644 usr/share/terminfo/v/vc404 create mode 100644 usr/share/terminfo/v/vc404-s create mode 100644 usr/share/terminfo/v/vc414 create mode 100644 usr/share/terminfo/v/vc414h create mode 100644 usr/share/terminfo/v/vc415 create mode 100644 usr/share/terminfo/v/venix create mode 100644 usr/share/terminfo/v/versaterm create mode 100644 usr/share/terminfo/v/vi200 create mode 100644 usr/share/terminfo/v/vi200-f create mode 100644 usr/share/terminfo/v/vi200-rv create mode 100644 usr/share/terminfo/v/vi300 create mode 100644 usr/share/terminfo/v/vi300-old create mode 100644 usr/share/terminfo/v/vi50 create mode 100644 usr/share/terminfo/v/vi500 create mode 100644 usr/share/terminfo/v/vi50adm create mode 100644 usr/share/terminfo/v/vi55 create mode 100644 usr/share/terminfo/v/vi550 create mode 100644 usr/share/terminfo/v/vi603 create mode 100644 usr/share/terminfo/v/viewdata create mode 100644 usr/share/terminfo/v/viewdata-o create mode 100644 usr/share/terminfo/v/viewdata-rv create mode 100644 usr/share/terminfo/v/viewpoint create mode 100644 usr/share/terminfo/v/viewpoint3a+ create mode 100644 usr/share/terminfo/v/viewpoint60 create mode 100644 usr/share/terminfo/v/viewpoint90 create mode 100644 usr/share/terminfo/v/vip create mode 100644 usr/share/terminfo/v/vip-H create mode 100644 usr/share/terminfo/v/vip-Hw create mode 100644 usr/share/terminfo/v/vip-w create mode 100644 usr/share/terminfo/v/vip7800-H create mode 100644 usr/share/terminfo/v/vip7800-Hw create mode 100644 usr/share/terminfo/v/vip7800-w create mode 100644 usr/share/terminfo/v/visa50 create mode 100644 usr/share/terminfo/v/visual603 create mode 100644 usr/share/terminfo/v/vitty create mode 100644 usr/share/terminfo/v/vk100 create mode 100644 usr/share/terminfo/v/vp3a+ create mode 100644 usr/share/terminfo/v/vp60 create mode 100644 usr/share/terminfo/v/vp90 create mode 100644 usr/share/terminfo/v/vremote create mode 100644 usr/share/terminfo/v/vs100 create mode 100644 usr/share/terminfo/v/vs100-x10 create mode 100644 usr/share/terminfo/v/vsc create mode 100644 usr/share/terminfo/v/vscode create mode 100644 usr/share/terminfo/v/vscode-direct create mode 100644 usr/share/terminfo/v/vt-61 create mode 100644 usr/share/terminfo/v/vt-utf8 create mode 100644 usr/share/terminfo/v/vt100 create mode 100644 usr/share/terminfo/v/vt100+ create mode 100644 usr/share/terminfo/v/vt100+4bsd create mode 100644 usr/share/terminfo/v/vt100+enq create mode 100644 usr/share/terminfo/v/vt100+fnkeys create mode 100644 usr/share/terminfo/v/vt100+keypad create mode 100644 usr/share/terminfo/v/vt100+pfkeys create mode 100644 usr/share/terminfo/v/vt100-am create mode 100644 usr/share/terminfo/v/vt100-bm create mode 100644 usr/share/terminfo/v/vt100-bm-o create mode 100644 usr/share/terminfo/v/vt100-bot-s create mode 100644 usr/share/terminfo/v/vt100-nam create mode 100644 usr/share/terminfo/v/vt100-nam-w create mode 100644 usr/share/terminfo/v/vt100-nav create mode 100644 usr/share/terminfo/v/vt100-nav-w create mode 100644 usr/share/terminfo/v/vt100-putty create mode 100644 usr/share/terminfo/v/vt100-s create mode 100644 usr/share/terminfo/v/vt100-s-bot create mode 100644 usr/share/terminfo/v/vt100-s-top create mode 100644 usr/share/terminfo/v/vt100-top-s create mode 100644 usr/share/terminfo/v/vt100-vb create mode 100644 usr/share/terminfo/v/vt100-w create mode 100644 usr/share/terminfo/v/vt100-w-am create mode 100644 usr/share/terminfo/v/vt100-w-nam create mode 100644 usr/share/terminfo/v/vt100-w-nav create mode 100644 usr/share/terminfo/v/vt100nam create mode 100644 usr/share/terminfo/v/vt102 create mode 100644 usr/share/terminfo/v/vt102+enq create mode 100644 usr/share/terminfo/v/vt102-nsgr create mode 100644 usr/share/terminfo/v/vt102-w create mode 100644 usr/share/terminfo/v/vt125 create mode 100644 usr/share/terminfo/v/vt131 create mode 100644 usr/share/terminfo/v/vt132 create mode 100644 usr/share/terminfo/v/vt200 create mode 100644 usr/share/terminfo/v/vt200-8 create mode 100644 usr/share/terminfo/v/vt200-8bit create mode 100644 usr/share/terminfo/v/vt200-js create mode 100644 usr/share/terminfo/v/vt200-old create mode 100644 usr/share/terminfo/v/vt200-w create mode 100644 usr/share/terminfo/v/vt220 create mode 100644 usr/share/terminfo/v/vt220+cvis create mode 100644 usr/share/terminfo/v/vt220+cvis8 create mode 100644 usr/share/terminfo/v/vt220+keypad create mode 100644 usr/share/terminfo/v/vt220+pcedit create mode 100644 usr/share/terminfo/v/vt220+vtedit create mode 100644 usr/share/terminfo/v/vt220-8 create mode 100644 usr/share/terminfo/v/vt220-8bit create mode 100644 usr/share/terminfo/v/vt220-base create mode 100644 usr/share/terminfo/v/vt220-js create mode 100644 usr/share/terminfo/v/vt220-nam create mode 100644 usr/share/terminfo/v/vt220-old create mode 100644 usr/share/terminfo/v/vt220-w create mode 100644 usr/share/terminfo/v/vt220d create mode 100644 usr/share/terminfo/v/vt300 create mode 100644 usr/share/terminfo/v/vt300-nam create mode 100644 usr/share/terminfo/v/vt300-w create mode 100644 usr/share/terminfo/v/vt300-w-nam create mode 100644 usr/share/terminfo/v/vt320 create mode 100644 usr/share/terminfo/v/vt320-k3 create mode 100644 usr/share/terminfo/v/vt320-k311 create mode 100644 usr/share/terminfo/v/vt320-nam create mode 100644 usr/share/terminfo/v/vt320-w create mode 100644 usr/share/terminfo/v/vt320-w-nam create mode 100644 usr/share/terminfo/v/vt320nam create mode 100644 usr/share/terminfo/v/vt330 create mode 100644 usr/share/terminfo/v/vt340 create mode 100644 usr/share/terminfo/v/vt400 create mode 100644 usr/share/terminfo/v/vt400-24 create mode 100644 usr/share/terminfo/v/vt420 create mode 100644 usr/share/terminfo/v/vt420+lrmm create mode 100644 usr/share/terminfo/v/vt420f create mode 100644 usr/share/terminfo/v/vt420pc create mode 100644 usr/share/terminfo/v/vt420pcdos create mode 100644 usr/share/terminfo/v/vt50 create mode 100644 usr/share/terminfo/v/vt50h create mode 100644 usr/share/terminfo/v/vt510 create mode 100644 usr/share/terminfo/v/vt510pc create mode 100644 usr/share/terminfo/v/vt510pcdos create mode 100644 usr/share/terminfo/v/vt52 create mode 100644 usr/share/terminfo/v/vt52+keypad create mode 100644 usr/share/terminfo/v/vt52-basic create mode 100644 usr/share/terminfo/v/vt520 create mode 100644 usr/share/terminfo/v/vt520ansi create mode 100644 usr/share/terminfo/v/vt525 create mode 100644 usr/share/terminfo/v/vt61 create mode 100644 usr/share/terminfo/v/vt61.5 create mode 100644 usr/share/terminfo/v/vte create mode 100644 usr/share/terminfo/v/vte+pcfkeys create mode 100644 usr/share/terminfo/v/vte-2007 create mode 100644 usr/share/terminfo/v/vte-2008 create mode 100644 usr/share/terminfo/v/vte-2012 create mode 100644 usr/share/terminfo/v/vte-2014 create mode 100644 usr/share/terminfo/v/vte-2017 create mode 100644 usr/share/terminfo/v/vte-2018 create mode 100644 usr/share/terminfo/v/vte-256color create mode 100644 usr/share/terminfo/v/vte-direct create mode 100644 usr/share/terminfo/v/vtnt create mode 100644 usr/share/terminfo/v/vv100 create mode 100644 usr/share/terminfo/v/vwmterm create mode 100644 usr/share/terminfo/w/wren create mode 100644 usr/share/terminfo/w/wrenw create mode 100644 usr/share/terminfo/w/wsiris create mode 100644 usr/share/terminfo/w/wsvt25 create mode 100644 usr/share/terminfo/w/wsvt25m create mode 100644 usr/share/terminfo/w/wy-75ap create mode 100644 usr/share/terminfo/w/wy-99fgt create mode 100644 usr/share/terminfo/w/wy-99fgta create mode 100644 usr/share/terminfo/w/wy100 create mode 100644 usr/share/terminfo/w/wy100q create mode 100644 usr/share/terminfo/w/wy120 create mode 100644 usr/share/terminfo/w/wy120-25 create mode 100644 usr/share/terminfo/w/wy120-25-w create mode 100644 usr/share/terminfo/w/wy120-vb create mode 100644 usr/share/terminfo/w/wy120-w create mode 100644 usr/share/terminfo/w/wy120-w-vb create mode 100644 usr/share/terminfo/w/wy120-wvb create mode 100644 usr/share/terminfo/w/wy150 create mode 100644 usr/share/terminfo/w/wy150-25 create mode 100644 usr/share/terminfo/w/wy150-25-w create mode 100644 usr/share/terminfo/w/wy150-vb create mode 100644 usr/share/terminfo/w/wy150-w create mode 100644 usr/share/terminfo/w/wy150-w-vb create mode 100644 usr/share/terminfo/w/wy160 create mode 100644 usr/share/terminfo/w/wy160-25 create mode 100644 usr/share/terminfo/w/wy160-25-w create mode 100644 usr/share/terminfo/w/wy160-42 create mode 100644 usr/share/terminfo/w/wy160-42-w create mode 100644 usr/share/terminfo/w/wy160-43 create mode 100644 usr/share/terminfo/w/wy160-43-w create mode 100644 usr/share/terminfo/w/wy160-tek create mode 100644 usr/share/terminfo/w/wy160-vb create mode 100644 usr/share/terminfo/w/wy160-w create mode 100644 usr/share/terminfo/w/wy160-w-vb create mode 100644 usr/share/terminfo/w/wy160-wvb create mode 100644 usr/share/terminfo/w/wy185 create mode 100644 usr/share/terminfo/w/wy185-24 create mode 100644 usr/share/terminfo/w/wy185-vb create mode 100644 usr/share/terminfo/w/wy185-w create mode 100644 usr/share/terminfo/w/wy185-wvb create mode 100644 usr/share/terminfo/w/wy30 create mode 100644 usr/share/terminfo/w/wy30-mc create mode 100644 usr/share/terminfo/w/wy30-vb create mode 100644 usr/share/terminfo/w/wy325 create mode 100644 usr/share/terminfo/w/wy325-25 create mode 100644 usr/share/terminfo/w/wy325-25w create mode 100644 usr/share/terminfo/w/wy325-42 create mode 100644 usr/share/terminfo/w/wy325-42w create mode 100644 usr/share/terminfo/w/wy325-42w-vb create mode 100644 usr/share/terminfo/w/wy325-42wvb create mode 100644 usr/share/terminfo/w/wy325-43 create mode 100644 usr/share/terminfo/w/wy325-43w create mode 100644 usr/share/terminfo/w/wy325-43w-vb create mode 100644 usr/share/terminfo/w/wy325-43wvb create mode 100644 usr/share/terminfo/w/wy325-80 create mode 100644 usr/share/terminfo/w/wy325-vb create mode 100644 usr/share/terminfo/w/wy325-w create mode 100644 usr/share/terminfo/w/wy325-w-vb create mode 100644 usr/share/terminfo/w/wy325-wvb create mode 100644 usr/share/terminfo/w/wy325w-24 create mode 100644 usr/share/terminfo/w/wy350 create mode 100644 usr/share/terminfo/w/wy350-vb create mode 100644 usr/share/terminfo/w/wy350-w create mode 100644 usr/share/terminfo/w/wy350-wvb create mode 100644 usr/share/terminfo/w/wy370 create mode 100644 usr/share/terminfo/w/wy370-101k create mode 100644 usr/share/terminfo/w/wy370-105k create mode 100644 usr/share/terminfo/w/wy370-EPC create mode 100644 usr/share/terminfo/w/wy370-nk create mode 100644 usr/share/terminfo/w/wy370-rv create mode 100644 usr/share/terminfo/w/wy370-tek create mode 100644 usr/share/terminfo/w/wy370-vb create mode 100644 usr/share/terminfo/w/wy370-w create mode 100644 usr/share/terminfo/w/wy370-wvb create mode 100644 usr/share/terminfo/w/wy50 create mode 100644 usr/share/terminfo/w/wy50-mc create mode 100644 usr/share/terminfo/w/wy50-vb create mode 100644 usr/share/terminfo/w/wy50-w create mode 100644 usr/share/terminfo/w/wy50-wvb create mode 100644 usr/share/terminfo/w/wy520 create mode 100644 usr/share/terminfo/w/wy520-24 create mode 100644 usr/share/terminfo/w/wy520-36 create mode 100644 usr/share/terminfo/w/wy520-36pc create mode 100644 usr/share/terminfo/w/wy520-36w create mode 100644 usr/share/terminfo/w/wy520-36wpc create mode 100644 usr/share/terminfo/w/wy520-48 create mode 100644 usr/share/terminfo/w/wy520-48pc create mode 100644 usr/share/terminfo/w/wy520-48w create mode 100644 usr/share/terminfo/w/wy520-48wpc create mode 100644 usr/share/terminfo/w/wy520-epc create mode 100644 usr/share/terminfo/w/wy520-epc-24 create mode 100644 usr/share/terminfo/w/wy520-epc-vb create mode 100644 usr/share/terminfo/w/wy520-epc-w create mode 100644 usr/share/terminfo/w/wy520-epc-wvb create mode 100644 usr/share/terminfo/w/wy520-vb create mode 100644 usr/share/terminfo/w/wy520-w create mode 100644 usr/share/terminfo/w/wy520-wvb create mode 100644 usr/share/terminfo/w/wy60 create mode 100644 usr/share/terminfo/w/wy60-25 create mode 100644 usr/share/terminfo/w/wy60-25-w create mode 100644 usr/share/terminfo/w/wy60-316X create mode 100644 usr/share/terminfo/w/wy60-42 create mode 100644 usr/share/terminfo/w/wy60-42-w create mode 100644 usr/share/terminfo/w/wy60-43 create mode 100644 usr/share/terminfo/w/wy60-43-w create mode 100644 usr/share/terminfo/w/wy60-AT create mode 100644 usr/share/terminfo/w/wy60-PC create mode 100644 usr/share/terminfo/w/wy60-vb create mode 100644 usr/share/terminfo/w/wy60-w create mode 100644 usr/share/terminfo/w/wy60-w-vb create mode 100644 usr/share/terminfo/w/wy60-wvb create mode 100644 usr/share/terminfo/w/wy75 create mode 100644 usr/share/terminfo/w/wy75-mc create mode 100644 usr/share/terminfo/w/wy75-vb create mode 100644 usr/share/terminfo/w/wy75-w create mode 100644 usr/share/terminfo/w/wy75-wvb create mode 100644 usr/share/terminfo/w/wy75ap create mode 100644 usr/share/terminfo/w/wy85 create mode 100644 usr/share/terminfo/w/wy85-8bit create mode 100644 usr/share/terminfo/w/wy85-vb create mode 100644 usr/share/terminfo/w/wy85-w create mode 100644 usr/share/terminfo/w/wy85-wvb create mode 100644 usr/share/terminfo/w/wy99-ansi create mode 100644 usr/share/terminfo/w/wy99a-ansi create mode 100644 usr/share/terminfo/w/wy99f create mode 100644 usr/share/terminfo/w/wy99fa create mode 100644 usr/share/terminfo/w/wy99fgt create mode 100644 usr/share/terminfo/w/wy99fgta create mode 100644 usr/share/terminfo/w/wy99gt create mode 100644 usr/share/terminfo/w/wy99gt-25 create mode 100644 usr/share/terminfo/w/wy99gt-25-w create mode 100644 usr/share/terminfo/w/wy99gt-tek create mode 100644 usr/share/terminfo/w/wy99gt-vb create mode 100644 usr/share/terminfo/w/wy99gt-w create mode 100644 usr/share/terminfo/w/wy99gt-w-vb create mode 100644 usr/share/terminfo/w/wy99gt-wvb create mode 100644 usr/share/terminfo/w/wyse+sl create mode 100644 usr/share/terminfo/w/wyse-325 create mode 100644 usr/share/terminfo/w/wyse-75ap create mode 100644 usr/share/terminfo/w/wyse-vp create mode 100644 usr/share/terminfo/w/wyse120 create mode 100644 usr/share/terminfo/w/wyse120-25 create mode 100644 usr/share/terminfo/w/wyse120-25-w create mode 100644 usr/share/terminfo/w/wyse120-vb create mode 100644 usr/share/terminfo/w/wyse120-w create mode 100644 usr/share/terminfo/w/wyse120-wvb create mode 100644 usr/share/terminfo/w/wyse150 create mode 100644 usr/share/terminfo/w/wyse150-25 create mode 100644 usr/share/terminfo/w/wyse150-25-w create mode 100644 usr/share/terminfo/w/wyse150-vb create mode 100644 usr/share/terminfo/w/wyse150-w create mode 100644 usr/share/terminfo/w/wyse150-w-vb create mode 100644 usr/share/terminfo/w/wyse160 create mode 100644 usr/share/terminfo/w/wyse160-25 create mode 100644 usr/share/terminfo/w/wyse160-25-w create mode 100644 usr/share/terminfo/w/wyse160-42 create mode 100644 usr/share/terminfo/w/wyse160-42-w create mode 100644 usr/share/terminfo/w/wyse160-43 create mode 100644 usr/share/terminfo/w/wyse160-43-w create mode 100644 usr/share/terminfo/w/wyse160-vb create mode 100644 usr/share/terminfo/w/wyse160-w create mode 100644 usr/share/terminfo/w/wyse160-wvb create mode 100644 usr/share/terminfo/w/wyse185 create mode 100644 usr/share/terminfo/w/wyse185-24 create mode 100644 usr/share/terminfo/w/wyse185-vb create mode 100644 usr/share/terminfo/w/wyse185-w create mode 100644 usr/share/terminfo/w/wyse185-wvb create mode 100644 usr/share/terminfo/w/wyse30 create mode 100644 usr/share/terminfo/w/wyse30-mc create mode 100644 usr/share/terminfo/w/wyse30-vb create mode 100644 usr/share/terminfo/w/wyse325 create mode 100644 usr/share/terminfo/w/wyse325-25 create mode 100644 usr/share/terminfo/w/wyse325-25w create mode 100644 usr/share/terminfo/w/wyse325-42 create mode 100644 usr/share/terminfo/w/wyse325-42w create mode 100644 usr/share/terminfo/w/wyse325-43 create mode 100644 usr/share/terminfo/w/wyse325-43w create mode 100644 usr/share/terminfo/w/wyse325-vb create mode 100644 usr/share/terminfo/w/wyse325-w create mode 100644 usr/share/terminfo/w/wyse325-wvb create mode 100644 usr/share/terminfo/w/wyse350 create mode 100644 usr/share/terminfo/w/wyse350-vb create mode 100644 usr/share/terminfo/w/wyse350-w create mode 100644 usr/share/terminfo/w/wyse350-wvb create mode 100644 usr/share/terminfo/w/wyse370 create mode 100644 usr/share/terminfo/w/wyse50 create mode 100644 usr/share/terminfo/w/wyse50-mc create mode 100644 usr/share/terminfo/w/wyse50-vb create mode 100644 usr/share/terminfo/w/wyse50-w create mode 100644 usr/share/terminfo/w/wyse50-wvb create mode 100644 usr/share/terminfo/w/wyse520 create mode 100644 usr/share/terminfo/w/wyse520-24 create mode 100644 usr/share/terminfo/w/wyse520-36 create mode 100644 usr/share/terminfo/w/wyse520-36pc create mode 100644 usr/share/terminfo/w/wyse520-36w create mode 100644 usr/share/terminfo/w/wyse520-36wpc create mode 100644 usr/share/terminfo/w/wyse520-48 create mode 100644 usr/share/terminfo/w/wyse520-48pc create mode 100644 usr/share/terminfo/w/wyse520-48w create mode 100644 usr/share/terminfo/w/wyse520-48wpc create mode 100644 usr/share/terminfo/w/wyse520-epc create mode 100644 usr/share/terminfo/w/wyse520-epc-w create mode 100644 usr/share/terminfo/w/wyse520-p-wvb create mode 100644 usr/share/terminfo/w/wyse520-pc-24 create mode 100644 usr/share/terminfo/w/wyse520-pc-vb create mode 100644 usr/share/terminfo/w/wyse520-vb create mode 100644 usr/share/terminfo/w/wyse520-w create mode 100644 usr/share/terminfo/w/wyse520-wvb create mode 100644 usr/share/terminfo/w/wyse60 create mode 100644 usr/share/terminfo/w/wyse60-25 create mode 100644 usr/share/terminfo/w/wyse60-25-w create mode 100644 usr/share/terminfo/w/wyse60-316X create mode 100644 usr/share/terminfo/w/wyse60-42 create mode 100644 usr/share/terminfo/w/wyse60-42-w create mode 100644 usr/share/terminfo/w/wyse60-43 create mode 100644 usr/share/terminfo/w/wyse60-43-w create mode 100644 usr/share/terminfo/w/wyse60-AT create mode 100644 usr/share/terminfo/w/wyse60-PC create mode 100644 usr/share/terminfo/w/wyse60-vb create mode 100644 usr/share/terminfo/w/wyse60-w create mode 100644 usr/share/terminfo/w/wyse60-wvb create mode 100644 usr/share/terminfo/w/wyse75 create mode 100644 usr/share/terminfo/w/wyse75-mc create mode 100644 usr/share/terminfo/w/wyse75-vb create mode 100644 usr/share/terminfo/w/wyse75-w create mode 100644 usr/share/terminfo/w/wyse75-wvb create mode 100644 usr/share/terminfo/w/wyse75ap create mode 100644 usr/share/terminfo/w/wyse85 create mode 100644 usr/share/terminfo/w/wyse85-8bit create mode 100644 usr/share/terminfo/w/wyse85-vb create mode 100644 usr/share/terminfo/w/wyse85-w create mode 100644 usr/share/terminfo/w/wyse85-wvb create mode 100644 usr/share/terminfo/w/wyse99gt create mode 100644 usr/share/terminfo/w/wyse99gt-25 create mode 100644 usr/share/terminfo/w/wyse99gt-25-w create mode 100644 usr/share/terminfo/w/wyse99gt-vb create mode 100644 usr/share/terminfo/w/wyse99gt-w create mode 100644 usr/share/terminfo/w/wyse99gt-wvb create mode 100644 usr/share/terminfo/x/x10term create mode 100644 usr/share/terminfo/x/x10term+sl create mode 100644 usr/share/terminfo/x/x1700 create mode 100644 usr/share/terminfo/x/x1700-lm create mode 100644 usr/share/terminfo/x/x1720 create mode 100644 usr/share/terminfo/x/x1750 create mode 100644 usr/share/terminfo/x/x68k create mode 100644 usr/share/terminfo/x/x68k-ite create mode 100644 usr/share/terminfo/x/x820 create mode 100644 usr/share/terminfo/x/xdku create mode 100644 usr/share/terminfo/x/xenix create mode 100644 usr/share/terminfo/x/xerox create mode 100644 usr/share/terminfo/x/xerox-lm create mode 100644 usr/share/terminfo/x/xerox1720 create mode 100644 usr/share/terminfo/x/xerox820 create mode 100644 usr/share/terminfo/x/xfce create mode 100644 usr/share/terminfo/x/xgterm create mode 100644 usr/share/terminfo/x/xiterm create mode 100644 usr/share/terminfo/x/xl83 create mode 100644 usr/share/terminfo/x/xnuppc create mode 100644 usr/share/terminfo/x/xnuppc+100x37 create mode 100644 usr/share/terminfo/x/xnuppc+112x37 create mode 100644 usr/share/terminfo/x/xnuppc+128x40 create mode 100644 usr/share/terminfo/x/xnuppc+128x48 create mode 100644 usr/share/terminfo/x/xnuppc+144x48 create mode 100644 usr/share/terminfo/x/xnuppc+160x64 create mode 100644 usr/share/terminfo/x/xnuppc+200x64 create mode 100644 usr/share/terminfo/x/xnuppc+200x75 create mode 100644 usr/share/terminfo/x/xnuppc+256x96 create mode 100644 usr/share/terminfo/x/xnuppc+80x25 create mode 100644 usr/share/terminfo/x/xnuppc+80x30 create mode 100644 usr/share/terminfo/x/xnuppc+90x30 create mode 100644 usr/share/terminfo/x/xnuppc+b create mode 100644 usr/share/terminfo/x/xnuppc+basic create mode 100644 usr/share/terminfo/x/xnuppc+c create mode 100644 usr/share/terminfo/x/xnuppc+f create mode 100644 usr/share/terminfo/x/xnuppc+f2 create mode 100644 usr/share/terminfo/x/xnuppc-100x37 create mode 100644 usr/share/terminfo/x/xnuppc-100x37-m create mode 100644 usr/share/terminfo/x/xnuppc-112x37 create mode 100644 usr/share/terminfo/x/xnuppc-112x37-m create mode 100644 usr/share/terminfo/x/xnuppc-128x40 create mode 100644 usr/share/terminfo/x/xnuppc-128x40-m create mode 100644 usr/share/terminfo/x/xnuppc-128x48 create mode 100644 usr/share/terminfo/x/xnuppc-128x48-m create mode 100644 usr/share/terminfo/x/xnuppc-144x48 create mode 100644 usr/share/terminfo/x/xnuppc-144x48-m create mode 100644 usr/share/terminfo/x/xnuppc-160x64 create mode 100644 usr/share/terminfo/x/xnuppc-160x64-m create mode 100644 usr/share/terminfo/x/xnuppc-200x64 create mode 100644 usr/share/terminfo/x/xnuppc-200x64-m create mode 100644 usr/share/terminfo/x/xnuppc-200x75 create mode 100644 usr/share/terminfo/x/xnuppc-200x75-m create mode 100644 usr/share/terminfo/x/xnuppc-256x96 create mode 100644 usr/share/terminfo/x/xnuppc-256x96-m create mode 100644 usr/share/terminfo/x/xnuppc-80x25 create mode 100644 usr/share/terminfo/x/xnuppc-80x25-m create mode 100644 usr/share/terminfo/x/xnuppc-80x30 create mode 100644 usr/share/terminfo/x/xnuppc-80x30-m create mode 100644 usr/share/terminfo/x/xnuppc-90x30 create mode 100644 usr/share/terminfo/x/xnuppc-90x30-m create mode 100644 usr/share/terminfo/x/xnuppc-b create mode 100644 usr/share/terminfo/x/xnuppc-f create mode 100644 usr/share/terminfo/x/xnuppc-f2 create mode 100644 usr/share/terminfo/x/xnuppc-m create mode 100644 usr/share/terminfo/x/xnuppc-m-b create mode 100644 usr/share/terminfo/x/xnuppc-m-f create mode 100644 usr/share/terminfo/x/xnuppc-m-f2 create mode 100644 usr/share/terminfo/x/xtalk create mode 100644 usr/share/terminfo/x/xterm create mode 100644 usr/share/terminfo/x/xterm+256color create mode 100644 usr/share/terminfo/x/xterm+256color2 create mode 100644 usr/share/terminfo/x/xterm+256setaf create mode 100644 usr/share/terminfo/x/xterm+88color create mode 100644 usr/share/terminfo/x/xterm+88color2 create mode 100644 usr/share/terminfo/x/xterm+acs create mode 100644 usr/share/terminfo/x/xterm+alt+title create mode 100644 usr/share/terminfo/x/xterm+alt1049 create mode 100644 usr/share/terminfo/x/xterm+alt47 create mode 100644 usr/share/terminfo/x/xterm+app create mode 100644 usr/share/terminfo/x/xterm+direct create mode 100644 usr/share/terminfo/x/xterm+direct16 create mode 100644 usr/share/terminfo/x/xterm+direct2 create mode 100644 usr/share/terminfo/x/xterm+direct256 create mode 100644 usr/share/terminfo/x/xterm+edit create mode 100644 usr/share/terminfo/x/xterm+focus create mode 100644 usr/share/terminfo/x/xterm+indirect create mode 100644 usr/share/terminfo/x/xterm+kbs create mode 100644 usr/share/terminfo/x/xterm+keypad create mode 100644 usr/share/terminfo/x/xterm+meta create mode 100644 usr/share/terminfo/x/xterm+noalt create mode 100644 usr/share/terminfo/x/xterm+noapp create mode 100644 usr/share/terminfo/x/xterm+nofkeys create mode 100644 usr/share/terminfo/x/xterm+nopcfkeys create mode 100644 usr/share/terminfo/x/xterm+osc104 create mode 100644 usr/share/terminfo/x/xterm+pc+edit create mode 100644 usr/share/terminfo/x/xterm+pcc0 create mode 100644 usr/share/terminfo/x/xterm+pcc1 create mode 100644 usr/share/terminfo/x/xterm+pcc2 create mode 100644 usr/share/terminfo/x/xterm+pcc3 create mode 100644 usr/share/terminfo/x/xterm+pce2 create mode 100644 usr/share/terminfo/x/xterm+pcf0 create mode 100644 usr/share/terminfo/x/xterm+pcf2 create mode 100644 usr/share/terminfo/x/xterm+pcfkeys create mode 100644 usr/share/terminfo/x/xterm+r6f2 create mode 100644 usr/share/terminfo/x/xterm+sl create mode 100644 usr/share/terminfo/x/xterm+sl-alt create mode 100644 usr/share/terminfo/x/xterm+sl-twm create mode 100644 usr/share/terminfo/x/xterm+sm+1002 create mode 100644 usr/share/terminfo/x/xterm+sm+1003 create mode 100644 usr/share/terminfo/x/xterm+sm+1005 create mode 100644 usr/share/terminfo/x/xterm+sm+1006 create mode 100644 usr/share/terminfo/x/xterm+titlestack create mode 100644 usr/share/terminfo/x/xterm+tmux create mode 100644 usr/share/terminfo/x/xterm+tmux2 create mode 100644 usr/share/terminfo/x/xterm+vt+edit create mode 100644 usr/share/terminfo/x/xterm+x10mouse create mode 100644 usr/share/terminfo/x/xterm+x11hilite create mode 100644 usr/share/terminfo/x/xterm+x11mouse create mode 100644 usr/share/terminfo/x/xterm-1002 create mode 100644 usr/share/terminfo/x/xterm-1003 create mode 100644 usr/share/terminfo/x/xterm-1005 create mode 100644 usr/share/terminfo/x/xterm-1006 create mode 100644 usr/share/terminfo/x/xterm-16color create mode 100644 usr/share/terminfo/x/xterm-24 create mode 100644 usr/share/terminfo/x/xterm-256color create mode 100644 usr/share/terminfo/x/xterm-88color create mode 100644 usr/share/terminfo/x/xterm-8bit create mode 100644 usr/share/terminfo/x/xterm-basic create mode 100644 usr/share/terminfo/x/xterm-bold create mode 100644 usr/share/terminfo/x/xterm-color create mode 100644 usr/share/terminfo/x/xterm-direct create mode 100644 usr/share/terminfo/x/xterm-direct16 create mode 100644 usr/share/terminfo/x/xterm-direct2 create mode 100644 usr/share/terminfo/x/xterm-direct256 create mode 100644 usr/share/terminfo/x/xterm-hp create mode 100644 usr/share/terminfo/x/xterm-kitty create mode 100644 usr/share/terminfo/x/xterm-mono create mode 100644 usr/share/terminfo/x/xterm-new create mode 100644 usr/share/terminfo/x/xterm-nic create mode 100644 usr/share/terminfo/x/xterm-noapp create mode 100644 usr/share/terminfo/x/xterm-old create mode 100644 usr/share/terminfo/x/xterm-p370 create mode 100644 usr/share/terminfo/x/xterm-p371 create mode 100644 usr/share/terminfo/x/xterm-pcolor create mode 100644 usr/share/terminfo/x/xterm-r5 create mode 100644 usr/share/terminfo/x/xterm-r6 create mode 100644 usr/share/terminfo/x/xterm-sco create mode 100644 usr/share/terminfo/x/xterm-sun create mode 100644 usr/share/terminfo/x/xterm-utf8 create mode 100644 usr/share/terminfo/x/xterm-vt220 create mode 100644 usr/share/terminfo/x/xterm-vt52 create mode 100644 usr/share/terminfo/x/xterm-x10mouse create mode 100644 usr/share/terminfo/x/xterm-x11hilite create mode 100644 usr/share/terminfo/x/xterm-x11mouse create mode 100644 usr/share/terminfo/x/xterm-xf86-v32 create mode 100644 usr/share/terminfo/x/xterm-xf86-v33 create mode 100644 usr/share/terminfo/x/xterm-xf86-v333 create mode 100644 usr/share/terminfo/x/xterm-xf86-v40 create mode 100644 usr/share/terminfo/x/xterm-xf86-v43 create mode 100644 usr/share/terminfo/x/xterm-xf86-v44 create mode 100644 usr/share/terminfo/x/xterm-xfree86 create mode 100644 usr/share/terminfo/x/xterm-xi create mode 100644 usr/share/terminfo/x/xterm.js create mode 100644 usr/share/terminfo/x/xterm1 create mode 100644 usr/share/terminfo/x/xtermc create mode 100644 usr/share/terminfo/x/xtermm create mode 100644 usr/share/terminfo/x/xterms create mode 100644 usr/share/terminfo/x/xterms-sun create mode 100644 usr/share/terminfo/x/xwsh create mode 100644 usr/share/terminfo/z/z-100 create mode 100644 usr/share/terminfo/z/z-100bw create mode 100644 usr/share/terminfo/z/z100 create mode 100644 usr/share/terminfo/z/z100bw create mode 100644 usr/share/terminfo/z/z110 create mode 100644 usr/share/terminfo/z/z110bw create mode 100644 usr/share/terminfo/z/z19 create mode 100644 usr/share/terminfo/z/z29 create mode 100644 usr/share/terminfo/z/z29a create mode 100644 usr/share/terminfo/z/z29a-kc-bc create mode 100644 usr/share/terminfo/z/z29a-kc-uc create mode 100644 usr/share/terminfo/z/z29a-nkc-bc create mode 100644 usr/share/terminfo/z/z29a-nkc-uc create mode 100644 usr/share/terminfo/z/z29b create mode 100644 usr/share/terminfo/z/z30 create mode 100644 usr/share/terminfo/z/z340 create mode 100644 usr/share/terminfo/z/z340-nam create mode 100644 usr/share/terminfo/z/z39-a create mode 100644 usr/share/terminfo/z/z39a create mode 100644 usr/share/terminfo/z/z50 create mode 100644 usr/share/terminfo/z/z8001 create mode 100644 usr/share/terminfo/z/zen30 create mode 100644 usr/share/terminfo/z/zen50 create mode 100644 usr/share/terminfo/z/zen8001 create mode 100644 usr/share/terminfo/z/zenith create mode 100644 usr/share/terminfo/z/zenith29 create mode 100644 usr/share/terminfo/z/zenith39-a create mode 100644 usr/share/terminfo/z/zenith39-ansi create mode 100644 usr/share/terminfo/z/zt-1 create mode 100644 usr/share/terminfo/z/ztx create mode 100644 usr/share/terminfo/z/ztx-1-a create mode 100644 usr/share/terminfo/z/ztx11 diff --git a/Makefile b/Makefile index 674ba6159..45efc3b3f 100644 --- a/Makefile +++ b/Makefile @@ -223,6 +223,7 @@ include dsp/tty/BUILD.mk # │ include dsp/BUILD.mk # │ include third_party/stb/BUILD.mk # │ include third_party/mbedtls/BUILD.mk # │ +include third_party/ncurses/BUILD.mk # │ include third_party/libcxx/BUILD.mk # │ include third_party/pcre/BUILD.mk # │ include net/https/BUILD.mk # │ diff --git a/third_party/BUILD.mk b/third_party/BUILD.mk index 5764d87b7..95d481df7 100644 --- a/third_party/BUILD.mk +++ b/third_party/BUILD.mk @@ -22,6 +22,7 @@ o/$(MODE)/third_party: \ o/$(MODE)/third_party/maxmind \ o/$(MODE)/third_party/mbedtls \ o/$(MODE)/third_party/musl \ + o/$(MODE)/third_party/ncurses \ o/$(MODE)/third_party/nsync \ o/$(MODE)/third_party/pcre \ o/$(MODE)/third_party/puff \ diff --git a/third_party/ncurses/BUILD.mk b/third_party/ncurses/BUILD.mk new file mode 100644 index 000000000..2b87ec414 --- /dev/null +++ b/third_party/ncurses/BUILD.mk @@ -0,0 +1,132 @@ +#-*-mode:makefile-gmake;indent-tabs-mode:t;tab-width:8;coding:utf-8-*-┐ +#───vi: set et ft=make ts=8 tw=8 fenc=utf-8 :vi───────────────────────┘ + +PKGS += THIRD_PARTY_NCURSES + +THIRD_PARTY_NCURSES_ARTIFACTS += THIRD_PARTY_NCURSES_A +THIRD_PARTY_NCURSES = $(THIRD_PARTY_NCURSES_A_DEPS) $(THIRD_PARTY_NCURSES_A) +THIRD_PARTY_NCURSES_A = o/$(MODE)/third_party/ncurses/ncurses.a +THIRD_PARTY_NCURSES_A_FILES := $(wildcard third_party/ncurses/*) +THIRD_PARTY_NCURSES_A_HDRS = $(filter %.h,$(THIRD_PARTY_NCURSES_A_FILES)) +THIRD_PARTY_NCURSES_A_INCS = $(filter %.inc,$(THIRD_PARTY_NCURSES_A_FILES)) +THIRD_PARTY_NCURSES_A_SRCS = $(filter %.c,$(THIRD_PARTY_NCURSES_A_FILES)) +THIRD_PARTY_NCURSES_A_TERM := $(wildcard usr/share/terminfo/*/*) +THIRD_PARTY_NCURSES_A_SRCOBJS = $(THIRD_PARTY_NCURSES_A_SRCS:%.c=o/$(MODE)/%.o) + +THIRD_PARTY_NCURSES_A_OBJS = \ + $(THIRD_PARTY_NCURSES_A_SRCOBJS) \ + $(THIRD_PARTY_NCURSES_A_TERM:%=o/$(MODE)/%.zip.o) + +THIRD_PARTY_NCURSES_A_CHECKS = \ + $(THIRD_PARTY_NCURSES_A).pkg + +THIRD_PARTY_NCURSES_A_DIRECTDEPS = \ + LIBC_CALLS \ + LIBC_FMT \ + LIBC_INTRIN \ + LIBC_MEM \ + LIBC_NEXGEN32E \ + LIBC_PROC \ + LIBC_RUNTIME \ + LIBC_STDIO \ + LIBC_STR \ + LIBC_SYSV \ + THIRD_PARTY_MUSL + +THIRD_PARTY_NCURSES_A_DEPS := \ + $(call uniq,$(foreach x,$(THIRD_PARTY_NCURSES_A_DIRECTDEPS),$($(x)))) + +$(THIRD_PARTY_NCURSES_A): \ + third_party/ncurses/ \ + $(THIRD_PARTY_NCURSES_A).pkg \ + $(THIRD_PARTY_NCURSES_A_OBJS) + +$(THIRD_PARTY_NCURSES_A).pkg: \ + $(THIRD_PARTY_NCURSES_A_OBJS) \ + $(foreach x,$(THIRD_PARTY_NCURSES_A_DIRECTDEPS),$($(x)_A).pkg) + +$(THIRD_PARTY_NCURSES_A_SRCOBJS): private \ + CFLAGS += \ + -fportcosmo \ + --param max-inline-insns-single=1200 + +$(THIRD_PARTY_NCURSES_A_SRCOBJS): private \ + CPPFLAGS += \ + -DNDEBUG \ + --param max-inline-insns-single=1200 + +o/$(MODE)/third_party/ncurses/define_key.o \ +o/$(MODE)/third_party/ncurses/key_defined.o \ +o/$(MODE)/third_party/ncurses/keybound.o \ +o/$(MODE)/third_party/ncurses/keyok.o \ +o/$(MODE)/third_party/ncurses/tries.o \ +o/$(MODE)/third_party/ncurses/version.o \ +o/$(MODE)/third_party/ncurses/access.o \ +o/$(MODE)/third_party/ncurses/add_tries.o \ +o/$(MODE)/third_party/ncurses/alloc_ttype.o \ +o/$(MODE)/third_party/ncurses/comp_error.o \ +o/$(MODE)/third_party/ncurses/comp_hash.o \ +o/$(MODE)/third_party/ncurses/db_iterator.o \ +o/$(MODE)/third_party/ncurses/doalloc.o \ +o/$(MODE)/third_party/ncurses/entries.o \ +o/$(MODE)/third_party/ncurses/free_ttype.o \ +o/$(MODE)/third_party/ncurses/getenv_num.o \ +o/$(MODE)/third_party/ncurses/hashed_db.o \ +o/$(MODE)/third_party/ncurses/home_terminfo.o \ +o/$(MODE)/third_party/ncurses/init_keytry.o \ +o/$(MODE)/third_party/ncurses/lib_acs.o \ +o/$(MODE)/third_party/ncurses/lib_baudrate.o \ +o/$(MODE)/third_party/ncurses/lib_cur_term.o \ +o/$(MODE)/third_party/ncurses/lib_data.o \ +o/$(MODE)/third_party/ncurses/lib_has_cap.o \ +o/$(MODE)/third_party/ncurses/lib_kernel.o \ +o/$(MODE)/third_party/ncurses/lib_longname.o \ +o/$(MODE)/third_party/ncurses/lib_napms.o \ +o/$(MODE)/third_party/ncurses/lib_options.o \ +o/$(MODE)/third_party/ncurses/lib_raw.o \ +o/$(MODE)/third_party/ncurses/lib_setup.o \ +o/$(MODE)/third_party/ncurses/lib_termcap.o \ +o/$(MODE)/third_party/ncurses/lib_termname.o \ +o/$(MODE)/third_party/ncurses/lib_tgoto.o \ +o/$(MODE)/third_party/ncurses/lib_ti.o \ +o/$(MODE)/third_party/ncurses/lib_tparm.o \ +o/$(MODE)/third_party/ncurses/lib_tputs.o \ +o/$(MODE)/third_party/ncurses/lib_ttyflags.o \ +o/$(MODE)/third_party/ncurses/name_match.o \ +o/$(MODE)/third_party/ncurses/obsolete.o \ +o/$(MODE)/third_party/ncurses/read_entry.o \ +o/$(MODE)/third_party/ncurses/read_termcap.o \ +o/$(MODE)/third_party/ncurses/strings.o \ +o/$(MODE)/third_party/ncurses/trim_sgr0.o \ +o/$(MODE)/third_party/ncurses/lib_trace.o \ +o/$(MODE)/third_party/ncurses/lib_traceatr.o \ +o/$(MODE)/third_party/ncurses/lib_tracebits.o \ +o/$(MODE)/third_party/ncurses/lib_tracechr.o \ +o/$(MODE)/third_party/ncurses/trace_buf.o \ +o/$(MODE)/third_party/ncurses/trace_tries.o \ +o/$(MODE)/third_party/ncurses/visbuf.o \ +o/$(MODE)/third_party/ncurses/lib_twait.o \ +o/$(MODE)/third_party/ncurses/codes.o \ +o/$(MODE)/third_party/ncurses/comp_captab.o \ +o/$(MODE)/third_party/ncurses/comp_userdefs.o \ +o/$(MODE)/third_party/ncurses/fallback.o \ +o/$(MODE)/third_party/ncurses/lib_keyname.o \ +o/$(MODE)/third_party/ncurses/names.o \ +o/$(MODE)/third_party/ncurses/unctrl.o: private \ + CPPFLAGS += \ + -DUSE_TERMLIB + +THIRD_PARTY_NCURSES_BINS = $(THIRD_PARTY_NCURSES_COMS) $(THIRD_PARTY_NCURSES_COMS:%=%.dbg) +THIRD_PARTY_NCURSES_LIBS = $(foreach x,$(THIRD_PARTY_NCURSES_ARTIFACTS),$($(x))) +THIRD_PARTY_NCURSES_SRCS = $(foreach x,$(THIRD_PARTY_NCURSES_ARTIFACTS),$($(x)_SRCS)) +THIRD_PARTY_NCURSES_HDRS = $(foreach x,$(THIRD_PARTY_NCURSES_ARTIFACTS),$($(x)_HDRS)) +THIRD_PARTY_NCURSES_INCS = $(foreach x,$(THIRD_PARTY_NCURSES_ARTIFACTS),$($(x)_INCS)) +THIRD_PARTY_NCURSES_CHECKS = $(foreach x,$(THIRD_PARTY_NCURSES_ARTIFACTS),$($(x)_CHECKS)) +THIRD_PARTY_NCURSES_OBJS = $(foreach x,$(THIRD_PARTY_NCURSES_ARTIFACTS),$($(x)_OBJS)) +$(THIRD_PARTY_NCURSES_A_SRCOBJS): $(BUILD_FILES) third_party/ncurses/BUILD.mk + +.PHONY: o/$(MODE)/third_party/ncurses +o/$(MODE)/third_party/ncurses: \ + $(THIRD_PARTY_NCURSES_A) \ + $(THIRD_PARTY_NCURSES_BINS) \ + $(THIRD_PARTY_NCURSES_CHECKS) diff --git a/third_party/ncurses/LICENSE b/third_party/ncurses/LICENSE new file mode 100644 index 000000000..57b2be479 --- /dev/null +++ b/third_party/ncurses/LICENSE @@ -0,0 +1,29 @@ +Copyright 2018-2021,2022 Thomas E. Dickey +Copyright 1998-2017,2018 Free Software Foundation, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, distribute with modifications, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name(s) of the above copyright +holders shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization. + +-- vile:txtmode fc=72 +-- $Id: COPYING,v 1.11 2022/01/01 11:47:50 tom Exp $ diff --git a/third_party/ncurses/README.cosmo b/third_party/ncurses/README.cosmo new file mode 100644 index 000000000..34c016fb3 --- /dev/null +++ b/third_party/ncurses/README.cosmo @@ -0,0 +1,15 @@ +DESCRIPTION + + ncurses is a teletypewriter abstraction library + +LICENSE + + ncurses license + +ORIGIN + + https://ftp.gnu.org/gnu/ncurses/ncurses-6.4.tar.gz + +LOCAL CHANGES + + None. diff --git a/third_party/ncurses/SigAction.h b/third_party/ncurses/SigAction.h new file mode 100644 index 000000000..30f2474b7 --- /dev/null +++ b/third_party/ncurses/SigAction.h @@ -0,0 +1,110 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2003,2005 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* + * $Id: SigAction.h,v 1.10 2020/02/02 23:34:34 tom Exp $ + * + * This file exists to handle non-POSIX systems which don't have , + * and usually no sigaction() nor + */ + +#ifndef _SIGACTION_H +#define _SIGACTION_H + +#ifndef HAVE_SIGACTION +#define HAVE_SIGACTION 0 +#endif + +#ifndef HAVE_SIGVEC +#define HAVE_SIGVEC 0 +#endif + +#if HAVE_SIGACTION + +#if !HAVE_TYPE_SIGACTION +typedef struct sigaction sigaction_t; +#endif + +#else /* !HAVE_SIGACTION */ + +#if HAVE_SIGVEC + +#undef SIG_BLOCK +#define SIG_BLOCK 00 + +#undef SIG_UNBLOCK +#define SIG_UNBLOCK 01 + +#undef SIG_SETMASK +#define SIG_SETMASK 02 + + /* + * is in the Linux 1.2.8 + gcc 2.7.0 configuration, + * and is useful for testing this header file. + */ +#if HAVE_BSD_SIGNAL_H +#include +#endif + +typedef struct sigvec sigaction_t; + +#define sigset_t _nc_sigset_t +typedef unsigned long sigset_t; + +#undef sa_mask +#define sa_mask sv_mask +#undef sa_handler +#define sa_handler sv_handler +#undef sa_flags +#define sa_flags sv_flags + +#undef sigaction +#define sigaction _nc_sigaction +#undef sigprocmask +#define sigprocmask _nc_sigprocmask +#undef sigemptyset +#define sigemptyset _nc_sigemptyset +#undef sigsuspend +#define sigsuspend _nc_sigsuspend +#undef sigdelset +#define sigdelset _nc_sigdelset +#undef sigaddset +#define sigaddset _nc_sigaddset + +/* tty/lib_tstp.c is the only user */ +#include + +#endif /* HAVE_SIGVEC */ +#endif /* HAVE_SIGACTION */ +#endif /* !defined(_SIGACTION_H) */ diff --git a/third_party/ncurses/access.c b/third_party/ncurses/access.c new file mode 100644 index 000000000..15b98dc10 --- /dev/null +++ b/third_party/ncurses/access.c @@ -0,0 +1,260 @@ +/**************************************************************************** + * Copyright 2019-2020,2021 Thomas E. Dickey * + * Copyright 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +#include "curses.priv.h" + +#include + +#ifndef USE_ROOT_ACCESS +#if HAVE_SETFSUID +#include +#else +#include +#endif +#endif + +#include "tic.h" + +MODULE_ID("$Id: access.c,v 1.31 2021/08/29 10:35:17 tom Exp $") + +#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c)) + +#ifdef _NC_MSC +# define ACCESS(FN, MODE) access((FN), (MODE)&(R_OK|W_OK)) +#else +# define ACCESS access +#endif + +NCURSES_EXPORT(char *) +_nc_rootname(char *path) +{ + char *result = _nc_basename(path); +#if !MIXEDCASE_FILENAMES || defined(PROG_EXT) + static char *temp; + char *s; + + temp = strdup(result); + result = temp; +#if !MIXEDCASE_FILENAMES + for (s = result; *s != '\0'; ++s) { + *s = (char) LOWERCASE(*s); + } +#endif +#if defined(PROG_EXT) + if ((s = strrchr(result, '.')) != 0) { + if (!strcmp(s, PROG_EXT)) + *s = '\0'; + } +#endif +#endif + return result; +} + +/* + * Check if a string appears to be an absolute pathname. + */ +NCURSES_EXPORT(bool) +_nc_is_abs_path(const char *path) +{ +#if defined(__EMX__) || defined(__DJGPP__) +#define is_pathname(s) ((((s) != 0) && ((s)[0] == '/')) \ + || (((s)[0] != 0) && ((s)[1] == ':'))) +#else +#define is_pathname(s) ((s) != 0 && (s)[0] == '/') +#endif + return is_pathname(path); +} + +/* + * Return index of the basename + */ +NCURSES_EXPORT(unsigned) +_nc_pathlast(const char *path) +{ + const char *test = strrchr(path, '/'); +#ifdef __EMX__ + if (test == 0) + test = strrchr(path, '\\'); +#endif + if (test == 0) + test = path; + else + test++; + return (unsigned) (test - path); +} + +NCURSES_EXPORT(char *) +_nc_basename(char *path) +{ + return path + _nc_pathlast(path); +} + +NCURSES_EXPORT(int) +_nc_access(const char *path, int mode) +{ + int result; + + if (path == 0) { + result = -1; + } else if (ACCESS(path, mode) < 0) { + if ((mode & W_OK) != 0 + && errno == ENOENT + && strlen(path) < PATH_MAX) { + char head[PATH_MAX]; + char *leaf; + + _nc_STRCPY(head, path, sizeof(head)); + leaf = _nc_basename(head); + if (leaf == 0) + leaf = head; + *leaf = '\0'; + if (head == leaf) + _nc_STRCPY(head, ".", sizeof(head)); + + result = ACCESS(head, R_OK | W_OK | X_OK); + } else { + result = -1; + } + } else { + result = 0; + } + return result; +} + +NCURSES_EXPORT(bool) +_nc_is_dir_path(const char *path) +{ + bool result = FALSE; + struct stat sb; + + if (stat(path, &sb) == 0 + && S_ISDIR(sb.st_mode)) { + result = TRUE; + } + return result; +} + +NCURSES_EXPORT(bool) +_nc_is_file_path(const char *path) +{ + bool result = FALSE; + struct stat sb; + + if (stat(path, &sb) == 0 + && S_ISREG(sb.st_mode)) { + result = TRUE; + } + return result; +} + +#if HAVE_ISSETUGID +#define is_elevated() issetugid() +#elif HAVE_GETEUID && HAVE_GETEGID +#define is_elevated() \ + (getuid() != geteuid() \ + || getgid() != getegid()) +#else +#define is_elevated() FALSE +#endif + +#if HAVE_SETFSUID +#define lower_privileges() \ + int save_err = errno; \ + setfsuid(getuid()); \ + setfsgid(getgid()); \ + errno = save_err +#define resume_elevation() \ + save_err = errno; \ + setfsuid(geteuid()); \ + setfsgid(getegid()); \ + errno = save_err +#else +#define lower_privileges() /* nothing */ +#define resume_elevation() /* nothing */ +#endif + +#ifndef USE_ROOT_ENVIRON +/* + * Returns true if we allow application to use environment variables that are + * used for searching lists of directories, etc. + */ +NCURSES_EXPORT(int) +_nc_env_access(void) +{ + int result = TRUE; + + if (is_elevated()) { + result = FALSE; + } else if ((getuid() == ROOT_UID) || (geteuid() == ROOT_UID)) { + result = FALSE; + } + return result; +} +#endif /* USE_ROOT_ENVIRON */ + +#ifndef USE_ROOT_ACCESS +/* + * Limit privileges if possible; otherwise disallow access for updating files. + */ +NCURSES_EXPORT(FILE *) +_nc_safe_fopen(const char *path, const char *mode) +{ + FILE *result = NULL; +#if HAVE_SETFSUID + lower_privileges(); + result = fopen(path, mode); + resume_elevation(); +#else + if (!is_elevated() || *mode == 'r') { + result = fopen(path, mode); + } +#endif + return result; +} + +NCURSES_EXPORT(int) +_nc_safe_open3(const char *path, int flags, mode_t mode) +{ + int result = -1; +#if HAVE_SETFSUID + lower_privileges(); + result = open(path, flags, mode); + resume_elevation(); +#else + if (!is_elevated() || (flags & O_RDONLY)) { + result = open(path, flags, mode); + } +#endif + return result; +} +#endif /* USE_ROOT_ENVIRON */ diff --git a/third_party/ncurses/add_tries.c b/third_party/ncurses/add_tries.c new file mode 100644 index 000000000..3d9bb4bab --- /dev/null +++ b/third_party/ncurses/add_tries.c @@ -0,0 +1,123 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1998-on * + ****************************************************************************/ + +/* +** add_tries.c +** +** Add keycode/string to tries-tree. +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: add_tries.c,v 1.12 2020/02/02 23:34:34 tom Exp $") + +#define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0' +#define CMP_TRY(a,b) ((a)? (a == b) : (b == 128)) + +NCURSES_EXPORT(int) +_nc_add_to_try(TRIES ** tree, const char *str, unsigned code) +{ + TRIES *ptr, *savedptr; + unsigned const char *txt = (unsigned const char *) str; + + T((T_CALLED("_nc_add_to_try(%p, %s, %u)"), + (void *) *tree, _nc_visbuf(str), code)); + if (txt == 0 || *txt == '\0' || code == 0) + returnCode(ERR); + + if ((*tree) != 0) { + ptr = savedptr = (*tree); + + for (;;) { + unsigned char cmp = *txt; + + while (!CMP_TRY(ptr->ch, cmp) + && ptr->sibling != 0) + ptr = ptr->sibling; + + if (CMP_TRY(ptr->ch, cmp)) { + if (*(++txt) == '\0') { + ptr->value = (unsigned short) code; + returnCode(OK); + } + if (ptr->child != 0) + ptr = ptr->child; + else + break; + } else { + if ((ptr->sibling = typeCalloc(TRIES, 1)) == 0) { + returnCode(ERR); + } + + savedptr = ptr = ptr->sibling; + SET_TRY(ptr, txt); + ptr->value = 0; + + break; + } + } /* end for (;;) */ + } else { /* (*tree) == 0 :: First sequence to be added */ + savedptr = ptr = (*tree) = typeCalloc(TRIES, 1); + + if (ptr == 0) { + returnCode(ERR); + } + + SET_TRY(ptr, txt); + ptr->value = 0; + } + + /* at this point, we are adding to the try. ptr->child == 0 */ + + while (*txt) { + ptr->child = typeCalloc(TRIES, 1); + + ptr = ptr->child; + + if (ptr == 0) { + while ((ptr = savedptr) != 0) { + savedptr = ptr->child; + free(ptr); + } + *tree = NULL; + returnCode(ERR); + } + + SET_TRY(ptr, txt); + ptr->value = 0; + } + + ptr->value = (unsigned short) code; + returnCode(OK); +} diff --git a/third_party/ncurses/alloc_entry.c b/third_party/ncurses/alloc_entry.c new file mode 100644 index 000000000..69db1393f --- /dev/null +++ b/third_party/ncurses/alloc_entry.c @@ -0,0 +1,405 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2013,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * alloc_entry.c -- allocation functions for terminfo entries + * + * _nc_copy_entry() + * _nc_init_entry() + * _nc_merge_entry() + * _nc_save_str() + * _nc_wrap_entry() + * + */ + +#include "curses.priv.h" + +#include "tic.h" + +MODULE_ID("$Id: alloc_entry.c,v 1.77 2022/10/15 19:37:33 tom Exp $") + +#define ABSENT_OFFSET -1 +#define CANCELLED_OFFSET -2 + +static char *stringbuf; /* buffer for string capabilities */ +static size_t next_free; /* next free character in stringbuf */ + +NCURSES_EXPORT(void) +_nc_init_entry(ENTRY * const tp) +/* initialize a terminal type data block */ +{ + DEBUG(2, (T_CALLED("_nc_init_entry(tp=%p)"), (void *) tp)); + + if (tp == NULL) { +#if NO_LEAKS + if (stringbuf != NULL) { + FreeAndNull(stringbuf); + } + return; +#else + _nc_err_abort("_nc_init_entry called without initialization"); +#endif + } + + if (stringbuf == NULL) + TYPE_CALLOC(char, (size_t) MAX_ENTRY_SIZE, stringbuf); + + next_free = 0; + + _nc_init_termtype(&(tp->tterm)); + + DEBUG(2, (T_RETURN(""))); +} + +NCURSES_EXPORT(ENTRY *) +_nc_copy_entry(ENTRY * oldp) +{ + ENTRY *newp; + + DEBUG(2, (T_CALLED("_nc_copy_entry(oldp=%p)"), (void *) oldp)); + + newp = typeCalloc(ENTRY, 1); + if (newp != NULL) { + *newp = *oldp; + _nc_copy_termtype2(&(newp->tterm), &(oldp->tterm)); + } + + DEBUG(2, (T_RETURN("%p"), (void *) newp)); + return (newp); +} + +/* save a copy of string in the string buffer */ +NCURSES_EXPORT(char *) +_nc_save_str(const char *string) +{ + char *result = 0; + size_t old_next_free = next_free; + + if (stringbuf != NULL) { + size_t len; + + if (!VALID_STRING(string)) + string = ""; + len = strlen(string) + 1; + + if (len == 1 && next_free != 0) { + /* + * Cheat a little by making an empty string point to the end of the + * previous string. + */ + if (next_free < MAX_ENTRY_SIZE) { + result = (stringbuf + next_free - 1); + } + } else if (next_free + len < MAX_ENTRY_SIZE) { + _nc_STRCPY(&stringbuf[next_free], string, MAX_ENTRY_SIZE); + DEBUG(7, ("Saved string %s", _nc_visbuf(string))); + DEBUG(7, ("at location %d", (int) next_free)); + next_free += len; + result = (stringbuf + old_next_free); + } else { + _nc_warning("Too much data, some is lost: %s", string); + } + } + return result; +} + +NCURSES_EXPORT(void) +_nc_wrap_entry(ENTRY * const ep, bool copy_strings) +/* copy the string parts to allocated storage, preserving pointers to it */ +{ + int offsets[MAX_ENTRY_SIZE / sizeof(short)]; + int useoffsets[MAX_USES]; + unsigned i, n; + unsigned nuses; + TERMTYPE2 *tp; + + DEBUG(2, (T_CALLED("_nc_wrap_entry(ep=%p, copy_strings=%d)"), (void *) + ep, copy_strings)); + if (ep == NULL || stringbuf == NULL) + _nc_err_abort("_nc_wrap_entry called without initialization"); + + nuses = ep->nuses; + tp = &(ep->tterm); + if (copy_strings) { + next_free = 0; /* clear static storage */ + + /* copy term_names, Strings, uses */ + tp->term_names = _nc_save_str(tp->term_names); + for_each_string(i, tp) { + if (tp->Strings[i] != ABSENT_STRING && + tp->Strings[i] != CANCELLED_STRING) { + tp->Strings[i] = _nc_save_str(tp->Strings[i]); + } + } + + for (i = 0; i < nuses; i++) { + if (ep->uses[i].name == 0) { + ep->uses[i].name = _nc_save_str(ep->uses[i].name); + } + } + + free(tp->str_table); + } + + assert(tp->term_names >= stringbuf); + n = (unsigned) (tp->term_names - stringbuf); + for_each_string(i, &(ep->tterm)) { + if (i < SIZEOF(offsets)) { + if (tp->Strings[i] == ABSENT_STRING) { + offsets[i] = ABSENT_OFFSET; + } else if (tp->Strings[i] == CANCELLED_STRING) { + offsets[i] = CANCELLED_OFFSET; + } else { + offsets[i] = (int) (tp->Strings[i] - stringbuf); + } + } + } + + for (i = 0; i < nuses; i++) { + if (ep->uses[i].name == 0) + useoffsets[i] = ABSENT_OFFSET; + else + useoffsets[i] = (int) (ep->uses[i].name - stringbuf); + } + + TYPE_MALLOC(char, next_free, tp->str_table); + (void) memcpy(tp->str_table, stringbuf, next_free); + + tp->term_names = tp->str_table + n; + for_each_string(i, &(ep->tterm)) { + if (i < SIZEOF(offsets)) { + if (offsets[i] == ABSENT_OFFSET) { + tp->Strings[i] = ABSENT_STRING; + } else if (offsets[i] == CANCELLED_OFFSET) { + tp->Strings[i] = CANCELLED_STRING; + } else { + tp->Strings[i] = tp->str_table + offsets[i]; + } + } + } + +#if NCURSES_XNAMES + if (!copy_strings) { + if ((n = (unsigned) NUM_EXT_NAMES(tp)) != 0) { + if (n < SIZEOF(offsets)) { + size_t length = 0; + size_t offset; + for (i = 0; i < n; i++) { + length += strlen(tp->ext_Names[i]) + 1; + offsets[i] = (int) (tp->ext_Names[i] - stringbuf); + } + TYPE_MALLOC(char, length, tp->ext_str_table); + for (i = 0, offset = 0; i < n; i++) { + tp->ext_Names[i] = tp->ext_str_table + offset; + _nc_STRCPY(tp->ext_Names[i], + stringbuf + offsets[i], + length - offset); + offset += strlen(tp->ext_Names[i]) + 1; + } + } + } + } +#endif + + for (i = 0; i < nuses; i++) { + if (useoffsets[i] == ABSENT_OFFSET) { + ep->uses[i].name = 0; + } else { + ep->uses[i].name = strdup(tp->str_table + useoffsets[i]); + } + } + DEBUG(2, (T_RETURN(""))); +} + +NCURSES_EXPORT(void) +_nc_merge_entry(ENTRY * const target, ENTRY * const source) +/* merge capabilities from `from' entry into `to' entry */ +{ + TERMTYPE2 *to = &(target->tterm); + TERMTYPE2 *from = &(source->tterm); +#if NCURSES_XNAMES + TERMTYPE2 copy; + size_t str_size; + char *str_table; +#endif + unsigned i; + + if (source == 0 || from == 0 || target == 0 || to == 0) + return; + +#if NCURSES_XNAMES + _nc_copy_termtype2(©, from); + from = © + _nc_align_termtype(to, from); + /* + * compute the maximum size of the string-table. + */ + str_size = strlen(to->term_names) + 1; + for_each_string(i, from) { + if (VALID_STRING(from->Strings[i])) + str_size += strlen(from->Strings[i]) + 1; + } + for_each_string(i, to) { + if (VALID_STRING(to->Strings[i])) + str_size += strlen(to->Strings[i]) + 1; + } + /* allocate a string-table large enough for both source/target, and + * copy all of the strings into that table. In the merge, we will + * select from the original source/target lists to construct a new + * target list. + */ + if (str_size != 0) { + char *str_copied; + if ((str_table = malloc(str_size)) == NULL) + _nc_err_abort(MSG_NO_MEMORY); + str_copied = str_table; + strcpy(str_copied, to->term_names); + to->term_names = str_copied; + str_copied += strlen(str_copied) + 1; + for_each_string(i, from) { + if (VALID_STRING(from->Strings[i])) { + strcpy(str_copied, from->Strings[i]); + from->Strings[i] = str_copied; + str_copied += strlen(str_copied) + 1; + } + } + for_each_string(i, to) { + if (VALID_STRING(to->Strings[i])) { + strcpy(str_copied, to->Strings[i]); + to->Strings[i] = str_copied; + str_copied += strlen(str_copied) + 1; + } + } + free(to->str_table); + to->str_table = str_table; + free(from->str_table); + } + /* + * Do the same for the extended-strings (i.e., lists of capabilities). + */ + str_size = 0; + for (i = 0; i < NUM_EXT_NAMES(from); ++i) { + if (VALID_STRING(from->ext_Names[i])) + str_size += strlen(from->ext_Names[i]) + 1; + } + for (i = 0; i < NUM_EXT_NAMES(to); ++i) { + if (VALID_STRING(to->ext_Names[i])) + str_size += strlen(to->ext_Names[i]) + 1; + } + /* allocate a string-table large enough for both source/target, and + * copy all of the strings into that table. In the merge, we will + * select from the original source/target lists to construct a new + * target list. + */ + if (str_size != 0) { + char *str_copied; + if ((str_table = malloc(str_size)) == NULL) + _nc_err_abort(MSG_NO_MEMORY); + str_copied = str_table; + for (i = 0; i < NUM_EXT_NAMES(from); ++i) { + if (VALID_STRING(from->ext_Names[i])) { + strcpy(str_copied, from->ext_Names[i]); + from->ext_Names[i] = str_copied; + str_copied += strlen(str_copied) + 1; + } + } + for (i = 0; i < NUM_EXT_NAMES(to); ++i) { + if (VALID_STRING(to->ext_Names[i])) { + strcpy(str_copied, to->ext_Names[i]); + to->ext_Names[i] = str_copied; + str_copied += strlen(str_copied) + 1; + } + } + free(to->ext_str_table); + to->ext_str_table = str_table; + free(from->ext_str_table); + } +#endif + for_each_boolean(i, from) { + if (to->Booleans[i] != (NCURSES_SBOOL) CANCELLED_BOOLEAN) { + int mergebool = from->Booleans[i]; + + if (mergebool == CANCELLED_BOOLEAN) + to->Booleans[i] = FALSE; + else if (mergebool == TRUE) + to->Booleans[i] = (NCURSES_SBOOL) mergebool; + } + } + + for_each_number(i, from) { + if (to->Numbers[i] != CANCELLED_NUMERIC) { + int mergenum = from->Numbers[i]; + + if (mergenum == CANCELLED_NUMERIC) + to->Numbers[i] = ABSENT_NUMERIC; + else if (mergenum != ABSENT_NUMERIC) + to->Numbers[i] = (NCURSES_INT2) mergenum; + } + } + + /* + * Note: the copies of strings this makes don't have their own + * storage. This is OK right now, but will be a problem if we + * we ever want to deallocate entries. + */ + for_each_string(i, from) { + if (to->Strings[i] != CANCELLED_STRING) { + char *mergestring = from->Strings[i]; + + if (mergestring == CANCELLED_STRING) + to->Strings[i] = ABSENT_STRING; + else if (mergestring != ABSENT_STRING) + to->Strings[i] = mergestring; + } + } +#if NCURSES_XNAMES + /* cleanup */ + free(copy.Booleans); + free(copy.Numbers); + free(copy.Strings); + free(copy.ext_Names); +#endif +} + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_alloc_entry_leaks(void) +{ + if (stringbuf != NULL) { + FreeAndNull(stringbuf); + } + next_free = 0; +} +#endif diff --git a/third_party/ncurses/alloc_ttype.c b/third_party/ncurses/alloc_ttype.c new file mode 100644 index 000000000..ef06dd451 --- /dev/null +++ b/third_party/ncurses/alloc_ttype.c @@ -0,0 +1,702 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1999-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1999-on * + ****************************************************************************/ + +/* + * align_ttype.c -- functions for TERMTYPE + * + * _nc_align_termtype() + * _nc_copy_termtype() + * + */ + +#include "curses.priv.h" + +#include "tic.h" + +MODULE_ID("$Id: alloc_ttype.c,v 1.46 2022/09/17 21:44:35 tom Exp $") + +#if NCURSES_XNAMES +/* + * Merge the a/b lists into dst. Both a/b are sorted (see _nc_extend_names()), + * so we do not have to worry about order dependencies. + */ +static int +merge_names(char **dst, char **a, int na, char **b, int nb) +{ + int n = 0; + while (na > 0 && nb > 0) { + int cmp = strcmp(*a, *b); + if (cmp < 0) { + dst[n++] = *a++; + na--; + } else if (cmp > 0) { + dst[n++] = *b++; + nb--; + } else { + dst[n++] = *a; + a++, b++; + na--, nb--; + } + } + while (na-- > 0) { + dst[n++] = *a++; + } + while (nb-- > 0) { + dst[n++] = *b++; + } + DEBUG(4, ("merge_names -> %d", n)); + return n; +} + +static bool +find_name(char **table, int item, int length, const char *name) +{ + int n; + int result = -1; + + for (n = item; n < length; ++n) { + if (!strcmp(table[n], name)) { + DEBUG(4, ("found name '%s' @%d", name, n)); + result = n; + break; + } + } + if (result < 0) { + DEBUG(4, ("did not find name '%s'", name)); + } + return (result >= 0); +} + +#define EXTEND_NUM(num, ext) \ + DEBUG(4, ("extending " #num " from %d to %d", \ + to->num, (unsigned short) (to->num + (ext - to->ext)))); \ + to->num = (unsigned short) (to->num + (ext - to->ext)) + +static void +realign_data(TERMTYPE2 *to, char **ext_Names, + int ext_Booleans, + int ext_Numbers, + int ext_Strings) +{ + int n, m, base; + int to_Booleans = to->ext_Booleans; + int to_Numbers = to->ext_Numbers; + int to_Strings = to->ext_Strings; + int to1, to2, from; + + DEBUG(4, ("realign_data %d/%d/%d vs %d/%d/%d", + ext_Booleans, + ext_Numbers, + ext_Strings, + to->ext_Booleans, + to->ext_Numbers, + to->ext_Strings)); + + if (to->ext_Booleans != ext_Booleans) { + to1 = 0; + to2 = to_Booleans + to1; + from = 0; + EXTEND_NUM(num_Booleans, ext_Booleans); + TYPE_REALLOC(NCURSES_SBOOL, to->num_Booleans, to->Booleans); + for (n = to->ext_Booleans - 1, + m = ext_Booleans - 1, + base = to->num_Booleans - (m + 1); m >= 0; m--) { + if (find_name(to->ext_Names, to1, to2, ext_Names[m + from])) { + to->Booleans[base + m] = to->Booleans[base + n--]; + } else { + to->Booleans[base + m] = FALSE; + } + } + to->ext_Booleans = UShort(ext_Booleans); + } + + if (to->ext_Numbers != ext_Numbers) { + to1 = to_Booleans; + to2 = to_Numbers + to1; + from = ext_Booleans; + EXTEND_NUM(num_Numbers, ext_Numbers); + TYPE_REALLOC(NCURSES_INT2, to->num_Numbers, to->Numbers); + for (n = to->ext_Numbers - 1, + m = ext_Numbers - 1, + base = to->num_Numbers - (m + 1); m >= 0; m--) { + if (find_name(to->ext_Names, to1, to2, ext_Names[m + from])) { + to->Numbers[base + m] = to->Numbers[base + n--]; + } else { + to->Numbers[base + m] = ABSENT_NUMERIC; + } + } + to->ext_Numbers = UShort(ext_Numbers); + } + + if (to->ext_Strings != ext_Strings) { + to1 = to_Booleans + to_Numbers; + to2 = to_Strings + to1; + from = ext_Booleans + ext_Numbers; + EXTEND_NUM(num_Strings, ext_Strings); + TYPE_REALLOC(char *, to->num_Strings, to->Strings); + for (n = to->ext_Strings - 1, + m = ext_Strings - 1, + base = to->num_Strings - (m + 1); m >= 0; m--) { + if (find_name(to->ext_Names, to1, to2, ext_Names[m + from])) { + to->Strings[base + m] = to->Strings[base + n--]; + } else { + to->Strings[base + m] = ABSENT_STRING; + } + } + to->ext_Strings = UShort(ext_Strings); + } +} + +/* + * Returns the first index in ext_Names[] for the given token-type + */ +static unsigned +_nc_first_ext_name(TERMTYPE2 *tp, int token_type) +{ + unsigned first; + + switch (token_type) { + case BOOLEAN: + first = 0; + break; + case NUMBER: + first = tp->ext_Booleans; + break; + case STRING: + first = (unsigned) (tp->ext_Booleans + tp->ext_Numbers); + break; + default: + first = 0; + break; + } + return first; +} + +/* + * Returns the last index in ext_Names[] for the given token-type + */ +static unsigned +_nc_last_ext_name(TERMTYPE2 *tp, int token_type) +{ + unsigned last; + + switch (token_type) { + case BOOLEAN: + last = tp->ext_Booleans; + break; + case NUMBER: + last = (unsigned) (tp->ext_Booleans + tp->ext_Numbers); + break; + default: + case STRING: + last = NUM_EXT_NAMES(tp); + break; + } + return last; +} + +/* + * Lookup an entry from extended-names, returning -1 if not found + */ +static int +_nc_find_ext_name(TERMTYPE2 *tp, char *name, int token_type) +{ + unsigned j; + unsigned first = _nc_first_ext_name(tp, token_type); + unsigned last = _nc_last_ext_name(tp, token_type); + + for (j = first; j < last; j++) { + if (!strcmp(name, tp->ext_Names[j])) { + return (int) j; + } + } + return -1; +} + +/* + * Translate an index into ext_Names[] into the corresponding index into data + * (e.g., Booleans[]). + */ +static int +_nc_ext_data_index(TERMTYPE2 *tp, int n, int token_type) +{ + switch (token_type) { + case BOOLEAN: + n += (tp->num_Booleans - tp->ext_Booleans); + break; + case NUMBER: + n += (tp->num_Numbers - tp->ext_Numbers) + - (tp->ext_Booleans); + break; + default: + case STRING: + n += (tp->num_Strings - tp->ext_Strings) + - (tp->ext_Booleans + tp->ext_Numbers); + } + return n; +} + +/* + * Adjust tables to remove (not free) an extended name and its corresponding + * data. + */ +static bool +_nc_del_ext_name(TERMTYPE2 *tp, char *name, int token_type) +{ + int first; + + if ((first = _nc_find_ext_name(tp, name, token_type)) >= 0) { + int j; + int last = (int) NUM_EXT_NAMES(tp) - 1; + + for (j = first; j < last; j++) { + tp->ext_Names[j] = tp->ext_Names[j + 1]; + } + first = _nc_ext_data_index(tp, first, token_type); + switch (token_type) { + case BOOLEAN: + last = tp->num_Booleans - 1; + for (j = first; j < last; j++) + tp->Booleans[j] = tp->Booleans[j + 1]; + tp->ext_Booleans--; + tp->num_Booleans--; + break; + case NUMBER: + last = tp->num_Numbers - 1; + for (j = first; j < last; j++) + tp->Numbers[j] = tp->Numbers[j + 1]; + tp->ext_Numbers--; + tp->num_Numbers--; + break; + case STRING: + last = tp->num_Strings - 1; + for (j = first; j < last; j++) + tp->Strings[j] = tp->Strings[j + 1]; + tp->ext_Strings--; + tp->num_Strings--; + break; + } + return TRUE; + } + return FALSE; +} + +/* + * Adjust tables to insert an extended name, making room for new data. The + * index into the corresponding data array is returned. + */ +static int +_nc_ins_ext_name(TERMTYPE2 *tp, char *name, int token_type) +{ + unsigned first = _nc_first_ext_name(tp, token_type); + unsigned last = _nc_last_ext_name(tp, token_type); + unsigned total = NUM_EXT_NAMES(tp) + 1; + unsigned j, k; + + for (j = first; j < last; j++) { + int cmp = strcmp(name, tp->ext_Names[j]); + if (cmp == 0) + /* already present */ + return _nc_ext_data_index(tp, (int) j, token_type); + if (cmp < 0) { + break; + } + } + + TYPE_REALLOC(char *, total, tp->ext_Names); + for (k = total - 1; k > j; k--) + tp->ext_Names[k] = tp->ext_Names[k - 1]; + tp->ext_Names[j] = name; + j = (unsigned) _nc_ext_data_index(tp, (int) j, token_type); + + switch (token_type) { + case BOOLEAN: + tp->ext_Booleans++; + tp->num_Booleans++; + TYPE_REALLOC(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans); + for (k = (unsigned) (tp->num_Booleans - 1); k > j; k--) + tp->Booleans[k] = tp->Booleans[k - 1]; + break; + case NUMBER: + tp->ext_Numbers++; + tp->num_Numbers++; + TYPE_REALLOC(NCURSES_INT2, tp->num_Numbers, tp->Numbers); + for (k = (unsigned) (tp->num_Numbers - 1); k > j; k--) + tp->Numbers[k] = tp->Numbers[k - 1]; + break; + case STRING: + tp->ext_Strings++; + tp->num_Strings++; + TYPE_REALLOC(char *, tp->num_Strings, tp->Strings); + for (k = (unsigned) (tp->num_Strings - 1); k > j; k--) + tp->Strings[k] = tp->Strings[k - 1]; + break; + } + return (int) j; +} + +/* + * Look for strings that are marked cancelled, which happen to be the same name + * as a boolean or number. We'll get this as a special case when we get a + * cancellation of a name that is inherited from another entry. + */ +static void +adjust_cancels(TERMTYPE2 *to, TERMTYPE2 *from) +{ + int first = to->ext_Booleans + to->ext_Numbers; + int last = first + to->ext_Strings; + int j, k; + + DEBUG(3, (T_CALLED("adjust_cancels(%s), from(%s)"), + to ? NonNull(to->term_names) : "?", + from ? NonNull(from->term_names) : "?")); + for (j = first; j < last;) { + char *name = to->ext_Names[j]; + int j_str = to->num_Strings - first - to->ext_Strings; + + if (to->Strings[j + j_str] == CANCELLED_STRING) { + if (_nc_find_ext_name(from, to->ext_Names[j], BOOLEAN) >= 0) { + if (_nc_del_ext_name(to, name, STRING) + || _nc_del_ext_name(to, name, NUMBER)) { + k = _nc_ins_ext_name(to, name, BOOLEAN); + to->Booleans[k] = FALSE; + } else { + j++; + } + } else if (_nc_find_ext_name(from, to->ext_Names[j], NUMBER) >= 0) { + if (_nc_del_ext_name(to, name, STRING) + || _nc_del_ext_name(to, name, BOOLEAN)) { + k = _nc_ins_ext_name(to, name, NUMBER); + to->Numbers[k] = CANCELLED_NUMERIC; + } else { + j++; + } + } else if (_nc_find_ext_name(from, to->ext_Names[j], STRING) >= 0) { + if (_nc_del_ext_name(to, name, NUMBER) + || _nc_del_ext_name(to, name, BOOLEAN)) { + k = _nc_ins_ext_name(to, name, STRING); + to->Strings[k] = CANCELLED_STRING; + } else { + j++; + } + } else { + j++; + } + } else { + j++; + } + } + DEBUG(3, (T_RETURN(""))); +} + +NCURSES_EXPORT(void) +_nc_align_termtype(TERMTYPE2 *to, TERMTYPE2 *from) +{ + int na; + int nb; + char **ext_Names; + + na = to ? ((int) NUM_EXT_NAMES(to)) : 0; + nb = from ? ((int) NUM_EXT_NAMES(from)) : 0; + + DEBUG(2, (T_CALLED("_nc_align_termtype to(%d:%s), from(%d:%s)"), + na, to ? NonNull(to->term_names) : "?", + nb, from ? NonNull(from->term_names) : "?")); + + if (to != NULL && from != NULL && (na != 0 || nb != 0)) { + int ext_Booleans, ext_Numbers, ext_Strings; + bool used_ext_Names = FALSE; + + if ((na == nb) /* check if the arrays are equivalent */ + &&(to->ext_Booleans == from->ext_Booleans) + && (to->ext_Numbers == from->ext_Numbers) + && (to->ext_Strings == from->ext_Strings)) { + int n; + bool same; + + for (n = 0, same = TRUE; n < na; n++) { + if (strcmp(to->ext_Names[n], from->ext_Names[n])) { + same = FALSE; + break; + } + } + if (same) { + DEBUG(2, (T_RETURN(""))); + return; + } + } + /* + * This is where we pay for having a simple extension representation. + * Allocate a new ext_Names array and merge the two ext_Names arrays + * into it, updating to's counts for booleans, etc. Fortunately we do + * this only for the terminfo compiler (tic) and comparer (infocmp). + */ + TYPE_MALLOC(char *, (size_t)(na + nb), ext_Names); + + if (to->ext_Strings && (from->ext_Booleans + from->ext_Numbers)) + adjust_cancels(to, from); + + if (from->ext_Strings && (to->ext_Booleans + to->ext_Numbers)) + adjust_cancels(from, to); + + ext_Booleans = merge_names(ext_Names, + to->ext_Names, + to->ext_Booleans, + from->ext_Names, + from->ext_Booleans); + ext_Numbers = merge_names(ext_Names + ext_Booleans, + to->ext_Names + + to->ext_Booleans, + to->ext_Numbers, + from->ext_Names + + from->ext_Booleans, + from->ext_Numbers); + ext_Strings = merge_names(ext_Names + ext_Numbers + ext_Booleans, + to->ext_Names + + to->ext_Booleans + + to->ext_Numbers, + to->ext_Strings, + from->ext_Names + + from->ext_Booleans + + from->ext_Numbers, + from->ext_Strings); + /* + * Now we must reallocate the Booleans, etc., to allow the data to be + * overlaid. + */ + if (na != (ext_Booleans + ext_Numbers + ext_Strings)) { + realign_data(to, ext_Names, ext_Booleans, ext_Numbers, ext_Strings); + FreeIfNeeded(to->ext_Names); + to->ext_Names = ext_Names; + DEBUG(2, ("realigned %d extended names for '%s' (to)", + NUM_EXT_NAMES(to), to->term_names)); + used_ext_Names = TRUE; + } + if (nb != (ext_Booleans + ext_Numbers + ext_Strings)) { + nb = (ext_Booleans + ext_Numbers + ext_Strings); + realign_data(from, ext_Names, ext_Booleans, ext_Numbers, ext_Strings); + TYPE_REALLOC(char *, (size_t) nb, from->ext_Names); + memcpy(from->ext_Names, ext_Names, sizeof(char *) * (size_t) nb); + DEBUG(2, ("realigned %d extended names for '%s' (from)", + NUM_EXT_NAMES(from), from->term_names)); + } + if (!used_ext_Names) + free(ext_Names); + } + DEBUG(2, (T_RETURN(""))); +} +#endif + +#define srcINT 1 +#define dstINT 2 + +/* + * TERMTYPE and TERMTYPE2 differ only with regard to the values in Numbers. + * Use 'mode' to decide which to use. + */ +static void +copy_termtype(TERMTYPE2 *dst, const TERMTYPE2 *src, int mode) +{ + unsigned i; + int pass; + char *new_table; +#if NCURSES_EXT_NUMBERS + short *oldptr = 0; + int *newptr = 0; +#endif + + DEBUG(2, (T_CALLED("copy_termtype(dst=%p, src=%p, mode=%d)"), (void *) + dst, (const void *) src, mode)); + *dst = *src; /* ...to copy the sizes and string-tables */ + + TYPE_MALLOC(NCURSES_SBOOL, NUM_BOOLEANS(dst), dst->Booleans); + TYPE_MALLOC(char *, NUM_STRINGS(dst), dst->Strings); + + memcpy(dst->Booleans, + src->Booleans, + NUM_BOOLEANS(dst) * sizeof(dst->Booleans[0])); + memcpy(dst->Strings, + src->Strings, + NUM_STRINGS(dst) * sizeof(dst->Strings[0])); + + new_table = NULL; + for (pass = 0; pass < 2; ++pass) { + size_t str_size = 0; + if (src->term_names != NULL) { + if (pass) { + dst->term_names = new_table + str_size; + strcpy(dst->term_names + str_size, src->term_names); + } + str_size += strlen(src->term_names) + 1; + } + for_each_string(i, src) { + if (VALID_STRING(src->Strings[i])) { + if (pass) { + strcpy(new_table + str_size, src->Strings[i]); + dst->Strings[i] = new_table + str_size; + } + str_size += strlen(src->Strings[i]) + 1; + } + } + if (pass) { + dst->str_table = new_table; + } else { + ++str_size; + if ((new_table = malloc(str_size)) == NULL) + _nc_err_abort(MSG_NO_MEMORY); + } + } + +#if NCURSES_EXT_NUMBERS + if ((mode & dstINT) == 0) { + DEBUG(2, ("...convert int ->short")); + TYPE_MALLOC(short, NUM_NUMBERS(dst), oldptr); + ((TERMTYPE *) dst)->Numbers = oldptr; + } else { + DEBUG(2, ("...copy without changing size")); + TYPE_MALLOC(int, NUM_NUMBERS(dst), newptr); + dst->Numbers = newptr; + } + if ((mode == srcINT) && (oldptr != 0)) { + DEBUG(2, ("...copy int ->short")); + for (i = 0; i < NUM_NUMBERS(dst); ++i) { + if (src->Numbers[i] > MAX_OF_TYPE(short)) { + oldptr[i] = MAX_OF_TYPE(short); + } else { + oldptr[i] = (short) src->Numbers[i]; + } + } + } else if ((mode == dstINT) && (newptr != 0)) { + DEBUG(2, ("...copy short ->int")); + for (i = 0; i < NUM_NUMBERS(dst); ++i) { + newptr[i] = ((const short *) (src->Numbers))[i]; + } + } else { + DEBUG(2, ("...copy %s without change", + (mode & dstINT) + ? "int" + : "short")); + memcpy(dst->Numbers, + src->Numbers, + NUM_NUMBERS(dst) * ((mode & dstINT) + ? sizeof(int) + : sizeof(short))); + } +#else + (void) mode; + TYPE_MALLOC(short, NUM_NUMBERS(dst), dst->Numbers); + memcpy(dst->Numbers, + src->Numbers, + NUM_NUMBERS(dst) * sizeof(dst->Numbers[0])); +#endif + +#if NCURSES_XNAMES + if ((i = NUM_EXT_NAMES(src)) != 0) { + TYPE_MALLOC(char *, i, dst->ext_Names); + memcpy(dst->ext_Names, src->ext_Names, i * sizeof(char *)); + + new_table = NULL; + for (pass = 0; pass < 2; ++pass) { + size_t str_size = 0; + char *raw_data = src->ext_str_table; + if (raw_data != NULL) { + for (i = 0; i < src->ext_Strings; ++i) { + size_t skip = strlen(raw_data) + 1; + if (skip != 1) { + if (pass) { + strcpy(new_table + str_size, raw_data); + } + str_size += skip; + raw_data += skip; + } + } + } + for (i = 0; i < NUM_EXT_NAMES(dst); ++i) { + if (VALID_STRING(src->ext_Names[i])) { + if (pass) { + strcpy(new_table + str_size, src->ext_Names[i]); + dst->ext_Names[i] = new_table + str_size; + } + str_size += strlen(src->ext_Names[i]) + 1; + } + } + if (pass) { + dst->ext_str_table = new_table; + } else { + ++str_size; + if ((new_table = calloc(str_size, 1)) == NULL) + _nc_err_abort(MSG_NO_MEMORY); + } + } + } else { + dst->ext_Names = 0; + } +#endif + DEBUG(2, (T_RETURN(""))); +} + +/* + * This entrypoint is used by tack 1.07 + */ +NCURSES_EXPORT(void) +_nc_copy_termtype(TERMTYPE *dst, const TERMTYPE *src) +{ + DEBUG(2, (T_CALLED("_nc_copy_termtype(dst=%p, src=%p)"), (void *) dst, + (const void *) src)); + copy_termtype((TERMTYPE2 *) dst, (const TERMTYPE2 *) src, 0); + DEBUG(2, (T_RETURN(""))); +} + +#if NCURSES_EXT_NUMBERS +NCURSES_EXPORT(void) +_nc_copy_termtype2(TERMTYPE2 *dst, const TERMTYPE2 *src) +{ + DEBUG(2, (T_CALLED("_nc_copy_termtype2(dst=%p, src=%p)"), (void *) dst, + (const void *) src)); + copy_termtype(dst, src, srcINT | dstINT); + DEBUG(2, (T_RETURN(""))); +} + +/* + * Use this for exporting the internal TERMTYPE2 to the legacy format used via + * the CUR macro by applications. + */ +NCURSES_EXPORT(void) +_nc_export_termtype2(TERMTYPE *dst, const TERMTYPE2 *src) +{ + DEBUG(2, (T_CALLED("_nc_export_termtype2(dst=%p, src=%p)"), (void *) + dst, (const void *) src)); + copy_termtype((TERMTYPE2 *) dst, src, srcINT); + DEBUG(2, (T_RETURN(""))); +} +#endif /* NCURSES_EXT_NUMBERS */ diff --git a/third_party/ncurses/build.priv.h b/third_party/ncurses/build.priv.h new file mode 100644 index 000000000..5ca053164 --- /dev/null +++ b/third_party/ncurses/build.priv.h @@ -0,0 +1,108 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 2010,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2010 * + ****************************************************************************/ + +/* + * $Id: build.priv.h,v 1.12 2020/02/02 23:34:34 tom Exp $ + * + * build.priv.h + * + * This is a reduced version of curses.priv.h, for build-time utilities. + * Because it has fewer dependencies, this simplifies cross-compiling. + * + */ + +#ifndef CURSES_PRIV_H +#define CURSES_PRIV_H 1 + +#include "ncurses_dll.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ncurses_cfg.h" + +#if USE_RCS_IDS +#define MODULE_ID(id) static const char Ident[] = id; +#else +#define MODULE_ID(id) /*nothing */ +#endif + +#include +#include +#include + +#include +#include + +#include + +#include "curses.h" /* we'll use -Ipath directive to get the right one! */ + +/* usually in */ +#ifndef EXIT_SUCCESS +#define EXIT_SUCCESS 0 +#endif + +#ifndef EXIT_FAILURE +#define EXIT_FAILURE 1 +#endif + +#define FreeAndNull(p) do { free(p); p = 0; } while (0) +#define UChar(c) ((unsigned char)(c)) +#define SIZEOF(v) (sizeof(v) / sizeof(v[0])) + +#include "nc_alloc.h" +#include "nc_string.h" + +/* declare these, to avoid needing term.h */ +#if BROKEN_LINKER || USE_REENTRANT +#define NCURSES_ARRAY(name) \ + NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, name) + + NCURSES_ARRAY(boolnames); + NCURSES_ARRAY(boolfnames); + NCURSES_ARRAY(numnames); + NCURSES_ARRAY(numfnames); + NCURSES_ARRAY(strnames); + NCURSES_ARRAY(strfnames); +#endif + +#if NO_LEAKS + NCURSES_EXPORT(void) _nc_names_leaks(void); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* CURSES_PRIV_H */ diff --git a/third_party/ncurses/capdefaults.inc b/third_party/ncurses/capdefaults.inc new file mode 100644 index 000000000..0bdda14de --- /dev/null +++ b/third_party/ncurses/capdefaults.inc @@ -0,0 +1,87 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2000,2008 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* $Id: capdefaults.c,v 1.16 2021/09/04 10:52:55 tom Exp $ */ + + /* + * Compute obsolete capabilities. The reason this is an include file is + * that the two places where it is needed require the macros to generate + * offsets to different structures. See the file Caps for explanations of + * these conversions. + * + * Note: This code is the functional inverse of the first part of + * postprocess_termcap(). + */ +{ + char *strp; + short capval; + +#define EXTRACT_DELAY(str) \ + (short) (strp = strchr(str, '*'), strp ? atoi(strp+1) : 0) + + /* current (4.4BSD) capabilities marked obsolete */ + if (VALID_STRING(carriage_return) + && (capval = EXTRACT_DELAY(carriage_return))) + carriage_return_delay = capval; + if (VALID_STRING(newline) && (capval = EXTRACT_DELAY(newline))) + new_line_delay = capval; + + /* current (4.4BSD) capabilities not obsolete */ + if (!VALID_STRING(termcap_init2) && VALID_STRING(init_3string)) { + termcap_init2 = init_3string; + init_3string = ABSENT_STRING; + } + if (!VALID_STRING(termcap_reset) + && VALID_STRING(reset_2string) + && !VALID_STRING(reset_1string) + && !VALID_STRING(reset_3string)) { + termcap_reset = reset_2string; + reset_2string = ABSENT_STRING; + } + if (magic_cookie_glitch_ul == ABSENT_NUMERIC + && magic_cookie_glitch != ABSENT_NUMERIC + && VALID_STRING(enter_underline_mode)) + magic_cookie_glitch_ul = magic_cookie_glitch; + + /* totally obsolete capabilities */ + linefeed_is_newline = (char) (VALID_STRING(newline) + && (strcmp("\n", newline) == 0)); + if (VALID_STRING(cursor_left) + && (capval = EXTRACT_DELAY(cursor_left))) + backspace_delay = capval; + if (VALID_STRING(tab) && (capval = EXTRACT_DELAY(tab))) + horizontal_tab_delay = capval; +#undef EXTRACT_DELAY +} diff --git a/third_party/ncurses/captoinfo.c b/third_party/ncurses/captoinfo.c new file mode 100644 index 000000000..d55f3ebed --- /dev/null +++ b/third_party/ncurses/captoinfo.c @@ -0,0 +1,1059 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * captoinfo.c + * + * Provide conversion in both directions between termcap and terminfo. + * + * cap-to-info --- conversion between termcap and terminfo formats + * + * The captoinfo() code was swiped from Ross Ridge's mytinfo package, + * adapted to fit ncurses by Eric S. Raymond . + * + * It has just one entry point: + * + * char *_nc_captoinfo(n, s, parameterized) + * + * Convert value s for termcap string capability named n into terminfo + * format. + * + * This code recognizes all the standard 4.4BSD %-escapes: + * + * %% output `%' + * %d output value as in printf %d + * %2 output value as in printf %2d + * %3 output value as in printf %3d + * %. output value as in printf %c + * %+x add x to value, then do %. + * %>xy if value > x then add y, no output + * %r reverse order of two parameters, no output + * %i increment by one, no output + * %n exclusive-or all parameters with 0140 (Datamedia 2500) + * %B BCD (16*(value/10)) + (value%10), no output + * %D Reverse coding (value - 2*(value%16)), no output (Delta Data). + * + * Also, %02 and %03 are accepted as synonyms for %2 and %3. + * + * Besides all the standard termcap escapes, this translator understands + * the following extended escapes: + * + * used by GNU Emacs termcap libraries + * %a[+*-/=][cp]x GNU arithmetic. + * %m xor the first two parameters by 0177 + * %b backup to previous parameter + * %f skip this parameter + * + * used by the University of Waterloo (MFCF) termcap libraries + * %-x subtract parameter FROM char x and output it as a char + * %ax add the character x to parameter + * + * If #define WATERLOO is on, also enable these translations: + * + * %sx subtract parameter FROM the character x + * + * By default, this Waterloo translations are not compiled in, because + * the Waterloo %s conflicts with the way terminfo uses %s in strings for + * function programming. + * + * Note the two definitions of %a: the GNU definition is translated if the + * characters after the 'a' are valid for it, otherwise the UW definition + * is translated. + */ + +#include "curses.priv.h" + +#include +#include "tic.h" + +MODULE_ID("$Id: captoinfo.c,v 1.102 2021/09/04 10:29:15 tom Exp $") + +#if 0 +#define DEBUG_THIS(p) DEBUG(9, p) +#else +#define DEBUG_THIS(p) /* nothing */ +#endif + +#define MAX_PUSHED 16 /* max # args we can push onto the stack */ + +static int stack[MAX_PUSHED]; /* the stack */ +static int stackptr; /* the next empty place on the stack */ +static int onstack; /* the top of stack */ +static int seenm; /* seen a %m */ +static int seenn; /* seen a %n */ +static int seenr; /* seen a %r */ +static int param; /* current parameter */ +static char *dp; /* pointer to end of the converted string */ + +static char *my_string; +static size_t my_length; + +static char * +init_string(void) +/* initialize 'my_string', 'my_length' */ +{ + if (my_string == 0) + TYPE_MALLOC(char, my_length = 256, my_string); + + *my_string = '\0'; + return my_string; +} + +static char * +save_string(char *d, const char *const s) +{ + size_t have = (size_t) (d - my_string); + size_t need = have + strlen(s) + 2; + if (need > my_length) { + my_string = (char *) _nc_doalloc(my_string, my_length = (need + need)); + if (my_string == 0) + _nc_err_abort(MSG_NO_MEMORY); + d = my_string + have; + } + _nc_STRCPY(d, s, my_length - have); + return d + strlen(d); +} + +static NCURSES_INLINE char * +save_char(char *s, int c) +{ + static char temp[2]; + temp[0] = (char) c; + return save_string(s, temp); +} + +static void +push(void) +/* push onstack on to the stack */ +{ + if (stackptr >= MAX_PUSHED) + _nc_warning("string too complex to convert"); + else + stack[stackptr++] = onstack; +} + +static void +pop(void) +/* pop the top of the stack into onstack */ +{ + if (stackptr == 0) { + if (onstack == 0) + _nc_warning("I'm confused"); + else + onstack = 0; + } else + onstack = stack[--stackptr]; + param++; +} + +static int +cvtchar(register const char *sp) +/* convert a character to a terminfo push */ +{ + unsigned char c = 0; + int len; + + switch (*sp) { + case '\\': + switch (*++sp) { + case '\'': + case '$': + case '\\': + case '%': + c = UChar(*sp); + len = 2; + break; + case '\0': + c = '\\'; + len = 1; + break; + case '0': + case '1': + case '2': + case '3': + len = 1; + while (isdigit(UChar(*sp))) { + c = UChar(8 * c + (*sp++ - '0')); + len++; + } + break; + default: + c = UChar(*sp); + len = (c != '\0') ? 2 : 1; + break; + } + break; + case '^': + len = 2; + c = UChar(*++sp); + if (c == '?') { + c = 127; + } else if (c == '\0') { + len = 1; + } else { + c &= 0x1f; + } + break; + default: + c = UChar(*sp); + len = (c != '\0') ? 1 : 0; + } + if (isgraph(c) && c != ',' && c != '\'' && c != '\\' && c != ':') { + dp = save_string(dp, "%\'"); + dp = save_char(dp, c); + dp = save_char(dp, '\''); + } else if (c != '\0') { + dp = save_string(dp, "%{"); + if (c > 99) + dp = save_char(dp, c / 100 + '0'); + if (c > 9) + dp = save_char(dp, ((int) (c / 10)) % 10 + '0'); + dp = save_char(dp, c % 10 + '0'); + dp = save_char(dp, '}'); + } + return len; +} + +static void +getparm(int parm, int n) +/* push n copies of param on the terminfo stack if not already there */ +{ + int nn; + + if (seenr) { + if (parm == 1) + parm = 2; + else if (parm == 2) + parm = 1; + } + + for (nn = 0; nn < n; ++nn) { + dp = save_string(dp, "%p"); + dp = save_char(dp, '0' + parm); + } + + if (onstack == parm) { + if (n > 1) { + _nc_warning("string may not be optimal"); + dp = save_string(dp, "%Pa"); + while (n-- > 0) { + dp = save_string(dp, "%ga"); + } + } + return; + } + if (onstack != 0) + push(); + + onstack = parm; + + if (seenn && parm < 3) { + dp = save_string(dp, "%{96}%^"); + } + + if (seenm && parm < 3) { + dp = save_string(dp, "%{127}%^"); + } +} + +/* + * Convert a termcap string to terminfo format. + * 'cap' is the relevant terminfo capability index. + * 's' is the string value of the capability. + * 'parameterized' tells what type of translations to do: + * % translations if 1 + * pad translations if >=0 + */ +NCURSES_EXPORT(char *) +_nc_captoinfo(const char *cap, const char *s, int const parameterized) +{ + const char *capstart; + + stackptr = 0; + onstack = 0; + seenm = 0; + seenn = 0; + seenr = 0; + param = 1; + + DEBUG_THIS(("_nc_captoinfo params %d, %s", parameterized, s)); + + dp = init_string(); + + /* skip the initial padding (if we haven't been told not to) */ + capstart = 0; + if (s == 0) + s = ""; + if (parameterized >= 0 && isdigit(UChar(*s))) + for (capstart = s; *s != '\0'; s++) + if (!(isdigit(UChar(*s)) || *s == '*' || *s == '.')) + break; + + while (*s != '\0') { + switch (*s) { + case '%': + s++; + if (parameterized < 1) { + dp = save_char(dp, '%'); + break; + } + switch (*s++) { + case '%': + dp = save_string(dp, "%%"); + break; + case 'r': + if (seenr++ == 1) { + _nc_warning("saw %%r twice in %s", cap); + } + break; + case 'm': + if (seenm++ == 1) { + _nc_warning("saw %%m twice in %s", cap); + } + break; + case 'n': + if (seenn++ == 1) { + _nc_warning("saw %%n twice in %s", cap); + } + break; + case 'i': + dp = save_string(dp, "%i"); + break; + case '6': + case 'B': + getparm(param, 1); + dp = save_string(dp, "%{10}%/%{16}%*"); + getparm(param, 1); + dp = save_string(dp, "%{10}%m%+"); + break; + case '8': + case 'D': + getparm(param, 2); + dp = save_string(dp, "%{2}%*%-"); + break; + case '>': + /* %?%{x}%>%t%{y}%+%; */ + if (s[0] && s[1]) { + getparm(param, 2); + dp = save_string(dp, "%?"); + s += cvtchar(s); + dp = save_string(dp, "%>%t"); + s += cvtchar(s); + dp = save_string(dp, "%+%;"); + } else { + _nc_warning("expected two characters after %%>"); + dp = save_string(dp, "%>"); + } + break; + case 'a': + if ((*s == '=' || *s == '+' || *s == '-' + || *s == '*' || *s == '/') + && (s[1] == 'p' || s[1] == 'c') + && s[2] != '\0') { + int l; + l = 2; + if (*s != '=') + getparm(param, 1); + if (s[1] == 'p') { + getparm(param + s[2] - '@', 1); + if (param != onstack) { + pop(); + param--; + } + l++; + } else + l += cvtchar(s + 2); + switch (*s) { + case '+': + dp = save_string(dp, "%+"); + break; + case '-': + dp = save_string(dp, "%-"); + break; + case '*': + dp = save_string(dp, "%*"); + break; + case '/': + dp = save_string(dp, "%/"); + break; + case '=': + if (seenr) { + if (param == 1) + onstack = 2; + else if (param == 2) + onstack = 1; + else + onstack = param; + } else + onstack = param; + break; + } + s += l; + break; + } + getparm(param, 1); + s += cvtchar(s); + dp = save_string(dp, "%+"); + break; + case '+': + getparm(param, 1); + s += cvtchar(s); + dp = save_string(dp, "%+%c"); + pop(); + break; + case 's': +#ifdef WATERLOO + s += cvtchar(s); + getparm(param, 1); + dp = save_string(dp, "%-"); +#else + getparm(param, 1); + dp = save_string(dp, "%s"); + pop(); +#endif /* WATERLOO */ + break; + case '-': + s += cvtchar(s); + getparm(param, 1); + dp = save_string(dp, "%-%c"); + pop(); + break; + case '.': + getparm(param, 1); + dp = save_string(dp, "%c"); + pop(); + break; + case '0': /* not clear any of the historical termcaps did this */ + if (*s == '3') { + ++s; + goto see03; + } + if (*s == '2') { + ++s; + goto see02; + } + goto invalid; + case '2': + see02: + getparm(param, 1); + dp = save_string(dp, "%2d"); + pop(); + break; + case '3': + see03: + getparm(param, 1); + dp = save_string(dp, "%3d"); + pop(); + break; + case 'd': + getparm(param, 1); + dp = save_string(dp, "%d"); + pop(); + break; + case 'f': + param++; + break; + case 'b': + param--; + break; + case '\\': + dp = save_string(dp, "%\\"); + break; + default: + invalid: + dp = save_char(dp, '%'); + s--; + _nc_warning("unknown %% code %s (%#x) in %s", + unctrl((chtype) *s), UChar(*s), cap); + break; + } + break; + default: + if (*s != '\0') + dp = save_char(dp, *s++); + break; + } + } + + /* + * Now, if we stripped off some leading padding, add it at the end + * of the string as mandatory padding. + */ + if (capstart) { + dp = save_string(dp, "$<"); + for (s = capstart; *s != '\0'; s++) + if (isdigit(UChar(*s)) || *s == '*' || *s == '.') + dp = save_char(dp, *s); + else + break; + dp = save_string(dp, "/>"); + } + + (void) save_char(dp, '\0'); + + DEBUG_THIS(("... _nc_captoinfo %s", NonNull(my_string))); + + return (my_string); +} + +/* + * Check for an expression that corresponds to "%B" (BCD): + * (parameter / 10) * 16 + (parameter % 10) + */ +static int +bcd_expression(const char *str) +{ + /* leave this non-const for HPUX */ + static char fmt[] = "%%p%c%%{10}%%/%%{16}%%*%%p%c%%{10}%%m%%+"; + int len = 0; + char ch1, ch2; + + if (sscanf(str, fmt, &ch1, &ch2) == 2 + && isdigit(UChar(ch1)) + && isdigit(UChar(ch2)) + && (ch1 == ch2)) { + len = 28; +#ifndef NDEBUG + { + char buffer[80]; + int tst; + _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) fmt, ch1, ch2); + tst = strlen(buffer) - 1; + assert(len == tst); + } +#endif + } + return len; +} + +static char * +save_tc_char(char *bufptr, int c1) +{ + if (is7bits(c1) && isprint(c1)) { + if (c1 == ':' || c1 == '\\') + bufptr = save_char(bufptr, '\\'); + bufptr = save_char(bufptr, c1); + } else { + char temp[80]; + + if (c1 == (c1 & 0x1f)) { /* iscntrl() returns T on 255 */ + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "%.20s", unctrl((chtype) c1)); + } else { + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "\\%03o", c1); + } + bufptr = save_string(bufptr, temp); + } + return bufptr; +} + +static char * +save_tc_inequality(char *bufptr, int c1, int c2) +{ + bufptr = save_string(bufptr, "%>"); + bufptr = save_tc_char(bufptr, c1); + bufptr = save_tc_char(bufptr, c2); + return bufptr; +} + +/* + * info-to-cap --- conversion between terminfo and termcap formats + * + * Here are the capabilities infotocap assumes it can translate to: + * + * %% output `%' + * %d output value as in printf %d + * %2 output value as in printf %2d + * %3 output value as in printf %3d + * %. output value as in printf %c + * %+c add character c to value, then do %. + * %>xy if value > x then add y, no output + * %r reverse order of two parameters, no output + * %i increment by one, no output + * %n exclusive-or all parameters with 0140 (Datamedia 2500) + * %B BCD (16*(value/10)) + (value%10), no output + * %D Reverse coding (value - 2*(value%16)), no output (Delta Data). + * %m exclusive-or all parameters with 0177 (not in 4.4BSD) + */ + +#define octal_fixup(n, c) fixups[n].ch = ((fixups[n].ch << 3) | ((c) - '0')) + +/* + * Convert a terminfo string to termcap format. Parameters are as in + * _nc_captoinfo(). + */ +NCURSES_EXPORT(char *) +_nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameterized) +{ + int seenone = 0, seentwo = 0, saw_m = 0, saw_n = 0; + const char *padding; + const char *trimmed = 0; + int in0, in1, in2; + char ch1 = 0, ch2 = 0; + char *bufptr = init_string(); + char octal[4]; + int len; + int digits; + bool syntax_error = FALSE; + int myfix = 0; + struct { + int ch; + int offset; + } fixups[MAX_TC_FIXUPS]; + + DEBUG_THIS(("_nc_infotocap %s params %d, %s", + _nc_strict_bsd ? "strict" : "loose", + parameterized, + _nc_visbuf(str))); + + /* we may have to move some trailing mandatory padding up front */ + padding = str + strlen(str) - 1; + if (padding > str && *padding == '>') { + if (padding > (str + 1) && *--padding == '/') + --padding; + while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*') + padding--; + if (padding > str && *padding == '<' && *--padding == '$') + trimmed = padding; + padding += 2; + + while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*') + bufptr = save_char(bufptr, *padding++); + } + + for (; !syntax_error && + *str && + ((trimmed == 0) || (str < trimmed)); str++) { + int c1, c2; + char *cp = 0; + + if (str[0] == '^') { + if (str[1] == '\0' || (str + 1) == trimmed) { + bufptr = save_string(bufptr, "\\136"); + ++str; + } else if (str[1] == '?') { + /* + * Although the 4.3BSD termcap file has an instance of "kb=^?", + * that appears to be just cut/paste since neither 4.3BSD nor + * 4.4BSD termcap interprets "^?" as DEL. + */ + bufptr = save_string(bufptr, "\\177"); + ++str; + } else { + bufptr = save_char(bufptr, *str++); + bufptr = save_char(bufptr, *str); + } + } else if (str[0] == ':') { + bufptr = save_char(bufptr, '\\'); + bufptr = save_char(bufptr, '0'); + bufptr = save_char(bufptr, '7'); + bufptr = save_char(bufptr, '2'); + } else if (str[0] == '\\') { + if (str[1] == '\0' || (str + 1) == trimmed) { + bufptr = save_string(bufptr, "\\134"); + ++str; + } else if (str[1] == '^') { + bufptr = save_string(bufptr, "\\136"); + ++str; + } else if (str[1] == ',') { + bufptr = save_char(bufptr, *++str); + } else { + int xx1; + + bufptr = save_char(bufptr, *str++); + xx1 = *str; + if (_nc_strict_bsd) { + + if (isoctal(UChar(xx1))) { + int pad = 0; + int xx2; + int fix = 0; + + if (!isoctal(UChar(str[1]))) + pad = 2; + else if (str[1] && !isoctal(UChar(str[2]))) + pad = 1; + + /* + * Test for "\0", "\00" or "\000" and transform those + * into "\200". + */ + if (xx1 == '0' + && ((pad == 2) || (str[1] == '0')) + && ((pad >= 1) || (str[2] == '0'))) { + xx2 = '2'; + } else { + xx2 = '0'; + pad = 0; /* FIXME - optionally pad to 3 digits */ + } + if (myfix < MAX_TC_FIXUPS) { + fix = 3 - pad; + fixups[myfix].ch = 0; + fixups[myfix].offset = (int) (bufptr + - my_string + - 1); + } + while (pad-- > 0) { + bufptr = save_char(bufptr, xx2); + if (myfix < MAX_TC_FIXUPS) { + fixups[myfix].ch <<= 3; + fixups[myfix].ch |= (xx2 - '0'); + } + xx2 = '0'; + } + if (myfix < MAX_TC_FIXUPS) { + int n; + for (n = 0; n < fix; ++n) { + fixups[myfix].ch <<= 3; + fixups[myfix].ch |= (str[n] - '0'); + } + if (fixups[myfix].ch < 32) { + ++myfix; + } + } + } else if (strchr("E\\nrtbf", xx1) == 0) { + switch (xx1) { + case 'e': + xx1 = 'E'; + break; + case 'l': + xx1 = 'n'; + break; + case 's': + bufptr = save_char(bufptr, '0'); + bufptr = save_char(bufptr, '4'); + xx1 = '0'; + break; + case ':': + /* + * Note: termcap documentation claims that ":" + * must be escaped as "\072", however the + * documentation is incorrect - read the code. + * The replacement does not work reliably, + * so the advice is not helpful. + */ + bufptr = save_char(bufptr, '0'); + bufptr = save_char(bufptr, '7'); + xx1 = '2'; + break; + default: + /* should not happen, but handle this anyway */ + _nc_SPRINTF(octal, _nc_SLIMIT(sizeof(octal)) + "%03o", UChar(xx1)); + bufptr = save_char(bufptr, octal[0]); + bufptr = save_char(bufptr, octal[1]); + xx1 = octal[2]; + break; + } + } + } else { + if (myfix < MAX_TC_FIXUPS && isoctal(UChar(xx1))) { + bool will_fix = TRUE; + int n; + + fixups[myfix].ch = 0; + fixups[myfix].offset = (int) (bufptr - my_string - 1); + for (n = 0; n < 3; ++n) { + if (isoctal(str[n])) { + octal_fixup(myfix, str[n]); + } else { + will_fix = FALSE; + break; + } + } + if (will_fix && (fixups[myfix].ch < 32)) + ++myfix; + } + } + bufptr = save_char(bufptr, xx1); + } + } else if (str[0] == '$' && str[1] == '<') { /* discard padding */ + str += 2; + while (isdigit(UChar(*str)) + || *str == '.' + || *str == '*' + || *str == '/' + || *str == '>') + str++; + --str; + } else if (sscanf(str, + "[%%?%%p1%%{8}%%<%%t%d%%p1%%d%%e%%p1%%{16}%%<%%t%d%%p1%%{8}%%-%%d%%e%d;5;%%p1%%d%%;m", + &in0, &in1, &in2) == 3 + && ((in0 == 4 && in1 == 10 && in2 == 48) + || (in0 == 3 && in1 == 9 && in2 == 38))) { + /* dumb-down an optimized case from xterm-256color for termcap */ + if ((str = strstr(str, ";m")) == 0) + break; /* cannot happen */ + ++str; + if (in2 == 48) { + bufptr = save_string(bufptr, "[48;5;%dm"); + } else { + bufptr = save_string(bufptr, "[38;5;%dm"); + } + } else if (str[0] == '%' && str[1] == '%') { /* escaped '%' */ + bufptr = save_string(bufptr, "%%"); + ++str; + } else if (*str != '%' || (parameterized < 1)) { + bufptr = save_char(bufptr, *str); + } else if (sscanf(str, "%%?%%{%d}%%>%%t%%{%d}%%+%%;", &c1, &c2) == 2) { + str = strchr(str, ';'); + bufptr = save_tc_inequality(bufptr, c1, c2); + } else if (sscanf(str, "%%?%%{%d}%%>%%t%%'%c'%%+%%;", &c1, &ch2) == 2) { + str = strchr(str, ';'); + bufptr = save_tc_inequality(bufptr, c1, ch2); + } else if (sscanf(str, "%%?%%'%c'%%>%%t%%{%d}%%+%%;", &ch1, &c2) == 2) { + str = strchr(str, ';'); + bufptr = save_tc_inequality(bufptr, ch1, c2); + } else if (sscanf(str, "%%?%%'%c'%%>%%t%%'%c'%%+%%;", &ch1, &ch2) == 2) { + str = strchr(str, ';'); + bufptr = save_tc_inequality(bufptr, ch1, ch2); + } else if ((len = bcd_expression(str)) != 0) { + str += len; + bufptr = save_string(bufptr, "%B"); + } else if ((sscanf(str, "%%{%d}%%+%%%c", &c1, &ch2) == 2 + || sscanf(str, "%%'%c'%%+%%%c", &ch1, &ch2) == 2) + && ch2 == 'c' + && (cp = strchr(str, '+'))) { + str = cp + 2; + bufptr = save_string(bufptr, "%+"); + + if (ch1) + c1 = ch1; + bufptr = save_tc_char(bufptr, c1); + } + /* FIXME: this "works" for 'delta' */ + else if (strncmp(str, "%{2}%*%-", (size_t) 8) == 0) { + str += 7; + bufptr = save_string(bufptr, "%D"); + } else if (strncmp(str, "%{96}%^", (size_t) 7) == 0) { + str += 6; + if (saw_m++ == 0) { + bufptr = save_string(bufptr, "%n"); + } + } else if (strncmp(str, "%{127}%^", (size_t) 8) == 0) { + str += 7; + if (saw_n++ == 0) { + bufptr = save_string(bufptr, "%m"); + } + } else { /* cm-style format element */ + str++; + switch (*str) { + case '%': + bufptr = save_char(bufptr, '%'); + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + bufptr = save_char(bufptr, '%'); + ch1 = 0; + ch2 = 0; + digits = 0; + while (isdigit(UChar(*str))) { + if (++digits > 2) { + syntax_error = TRUE; + break; + } + ch2 = ch1; + ch1 = *str++; + if (digits == 2 && ch2 != '0') { + syntax_error = TRUE; + break; + } else if (_nc_strict_bsd) { + if (ch1 > '3') { + syntax_error = TRUE; + break; + } + } else { + bufptr = save_char(bufptr, ch1); + } + } + if (syntax_error) + break; + /* + * Convert %02 to %2 and %03 to %3 + */ + if (ch2 == '0' && !_nc_strict_bsd) { + ch2 = 0; + bufptr[-2] = bufptr[-1]; + *--bufptr = 0; + } + if (_nc_strict_bsd) { + if (ch2 != 0 && ch2 != '0') { + syntax_error = TRUE; + } else if (ch1 < '2') { + ch1 = 'd'; + } + bufptr = save_char(bufptr, ch1); + } + if (strchr("oxX.", *str)) { + syntax_error = TRUE; /* termcap doesn't have octal, hex */ + } + break; + + case 'd': + bufptr = save_string(bufptr, "%d"); + break; + + case 'c': + bufptr = save_string(bufptr, "%."); + break; + + /* + * %s isn't in termcap, but it is convenient to pass it through + * so we can represent things like terminfo pfkey strings in + * termcap notation. + */ + case 's': + if (_nc_strict_bsd) { + syntax_error = TRUE; + } else { + bufptr = save_string(bufptr, "%s"); + } + break; + + case 'p': + str++; + if (*str == '1') + seenone = 1; + else if (*str == '2') { + if (!seenone && !seentwo) { + bufptr = save_string(bufptr, "%r"); + seentwo++; + } + } else if (*str >= '3') { + syntax_error = TRUE; + } + break; + + case 'i': + bufptr = save_string(bufptr, "%i"); + break; + + default: + bufptr = save_char(bufptr, *str); + syntax_error = TRUE; + break; + } /* endswitch (*str) */ + } /* endelse (*str == '%') */ + + /* + * 'str' always points to the end of what was scanned in this step, + * but that may not be the end of the string. + */ + assert(str != 0); + if (str == 0 || *str == '\0') + break; + + } /* endwhile (*str) */ + + if (!syntax_error && + myfix > 0 && + ((int) strlen(my_string) - (4 * myfix)) < MIN_TC_FIXUPS) { + while (--myfix >= 0) { + char *p = fixups[myfix].offset + my_string; + *p++ = '^'; + *p++ = (char) (fixups[myfix].ch | '@'); + while ((p[0] = p[2]) != '\0') { + ++p; + } + } + } + + DEBUG_THIS(("... _nc_infotocap %s", + syntax_error + ? "" + : _nc_visbuf(my_string))); + + return (syntax_error ? NULL : my_string); +} + +#ifdef MAIN + +int curr_line; + +int +main(int argc, char *argv[]) +{ + int c, tc = FALSE; + + while ((c = getopt(argc, argv, "c")) != EOF) + switch (c) { + case 'c': + tc = TRUE; + break; + } + + curr_line = 0; + for (;;) { + char buf[BUFSIZ]; + + ++curr_line; + if (fgets(buf, sizeof(buf), stdin) == 0) + break; + buf[strlen(buf) - 1] = '\0'; + _nc_set_source(buf); + + if (tc) { + char *cp = _nc_infotocap("to termcap", buf, 1); + + if (cp) + (void) fputs(cp, stdout); + } else + (void) fputs(_nc_captoinfo("to terminfo", buf, 1), stdout); + (void) putchar('\n'); + } + return (0); +} +#endif /* MAIN */ + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_captoinfo_leaks(void) +{ + if (my_string != 0) { + FreeAndNull(my_string); + } + my_length = 0; +} +#endif diff --git a/third_party/ncurses/charable.c b/third_party/ncurses/charable.c new file mode 100644 index 000000000..53c0743f7 --- /dev/null +++ b/third_party/ncurses/charable.c @@ -0,0 +1,85 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2003-2005,2008 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* +** Support functions for wide/narrow conversion. +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: charable.c,v 1.8 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(bool) _nc_is_charable(wchar_t ch) +{ + bool result; +#if HAVE_WCTOB + result = (wctob((wint_t) ch) == (int) ch); +#else + result = (_nc_to_char(ch) >= 0); +#endif + return result; +} + +NCURSES_EXPORT(int) _nc_to_char(wint_t ch) +{ + int result; +#if HAVE_WCTOB + result = wctob(ch); +#elif HAVE_WCTOMB + char temp[MB_LEN_MAX]; + result = wctomb(temp, ch); + if (strlen(temp) == 1) + result = UChar(temp[0]); + else + result = -1; +#else +#error expected either wctob/wctomb +#endif + return result; +} + +NCURSES_EXPORT(wint_t) _nc_to_widechar(int ch) +{ + wint_t result; +#if HAVE_BTOWC + result = btowc(ch); +#elif HAVE_MBTOWC + wchar_t convert; + char temp[2]; + temp[0] = ch; + temp[1] = '\0'; + if (mbtowc(&convert, temp, 1) >= 0) + result = convert; + else + result = WEOF; +#else +#error expected either btowc/mbtowc +#endif + return result; +} diff --git a/third_party/ncurses/codes.c b/third_party/ncurses/codes.c new file mode 100644 index 000000000..ef9806c9a --- /dev/null +++ b/third_party/ncurses/codes.c @@ -0,0 +1,675 @@ +/* This file was generated by MKcodes.awk */ + +#include "curses.priv.h" + +#define IT NCURSES_CONST char * const + + +#if BROKEN_LINKER || USE_REENTRANT + +static const char _nc_code_blob[] = +"bw\0" "am\0" "xb\0" "xs\0" "xn\0" "eo\0" "gn\0" "hc\0" "km\0" "hs\0" "in\0" \ +"da\0" "db\0" "mi\0" "ms\0" "os\0" "es\0" "xt\0" "hz\0" "ul\0" "xo\0" "nx\0" \ +"5i\0" "HC\0" "NR\0" "NP\0" "ND\0" "cc\0" "ut\0" "hl\0" "YA\0" "YB\0" "YC\0" \ +"YD\0" "YE\0" "YF\0" "YG\0" "co\0" "it\0" "li\0" "lm\0" "sg\0" "pb\0" "vt\0" \ +"ws\0" "Nl\0" "lh\0" "lw\0" "ma\0" "MW\0" "Co\0" "pa\0" "NC\0" "Ya\0" "Yb\0" \ +"Yc\0" "Yd\0" "Ye\0" "Yf\0" "Yg\0" "Yh\0" "Yi\0" "Yj\0" "Yk\0" "Yl\0" "Ym\0" \ +"Yn\0" "BT\0" "Yo\0" "Yp\0" "bt\0" "bl\0" "cr\0" "cs\0" "ct\0" "cl\0" "ce\0" \ +"cd\0" "ch\0" "CC\0" "cm\0" "do\0" "ho\0" "vi\0" "le\0" "CM\0" "ve\0" "nd\0" \ +"ll\0" "up\0" "vs\0" "dc\0" "dl\0" "ds\0" "hd\0" "as\0" "mb\0" "md\0" "ti\0" \ +"dm\0" "mh\0" "im\0" "mk\0" "mp\0" "mr\0" "so\0" "us\0" "ec\0" "ae\0" "me\0" \ +"te\0" "ed\0" "ei\0" "se\0" "ue\0" "vb\0" "ff\0" "fs\0" "i1\0" "is\0" "i3\0" \ +"if\0" "ic\0" "al\0" "ip\0" "kb\0" "ka\0" "kC\0" "kt\0" "kD\0" "kL\0" "kd\0" \ +"kM\0" "kE\0" "kS\0" "k0\0" "k1\0" "k;\0" "k2\0" "k3\0" "k4\0" "k5\0" "k6\0" \ +"k7\0" "k8\0" "k9\0" "kh\0" "kI\0" "kA\0" "kl\0" "kH\0" "kN\0" "kP\0" "kr\0" \ +"kF\0" "kR\0" "kT\0" "ku\0" "ke\0" "ks\0" "l0\0" "l1\0" "la\0" "l2\0" "l3\0" \ +"l4\0" "l5\0" "l6\0" "l7\0" "l8\0" "l9\0" "mo\0" "mm\0" "nw\0" "pc\0" "DC\0" \ +"DL\0" "DO\0" "IC\0" "SF\0" "AL\0" "LE\0" "RI\0" "SR\0" "UP\0" "pk\0" "pl\0" \ +"px\0" "ps\0" "pf\0" "po\0" "rp\0" "r1\0" "r2\0" "r3\0" "rf\0" "rc\0" "cv\0" \ +"sc\0" "sf\0" "sr\0" "sa\0" "st\0" "wi\0" "ta\0" "ts\0" "uc\0" "hu\0" "iP\0" \ +"K1\0" "K3\0" "K2\0" "K4\0" "K5\0" "pO\0" "rP\0" "ac\0" "pn\0" "kB\0" "SX\0" \ +"RX\0" "SA\0" "RA\0" "XN\0" "XF\0" "eA\0" "LO\0" "LF\0" "@1\0" "@2\0" "@3\0" \ +"@4\0" "@5\0" "@6\0" "@7\0" "@8\0" "@9\0" "@0\0" "%1\0" "%2\0" "%3\0" "%4\0" \ +"%5\0" "%6\0" "%7\0" "%8\0" "%9\0" "%0\0" "&1\0" "&2\0" "&3\0" "&4\0" "&5\0" \ +"&6\0" "&7\0" "&8\0" "&9\0" "&0\0" "*1\0" "*2\0" "*3\0" "*4\0" "*5\0" "*6\0" \ +"*7\0" "*8\0" "*9\0" "*0\0" "#1\0" "#2\0" "#3\0" "#4\0" "%a\0" "%b\0" "%c\0" \ +"%d\0" "%e\0" "%f\0" "%g\0" "%h\0" "%i\0" "%j\0" "!1\0" "!2\0" "!3\0" "RF\0" \ +"F1\0" "F2\0" "F3\0" "F4\0" "F5\0" "F6\0" "F7\0" "F8\0" "F9\0" "FA\0" "FB\0" \ +"FC\0" "FD\0" "FE\0" "FF\0" "FG\0" "FH\0" "FI\0" "FJ\0" "FK\0" "FL\0" "FM\0" \ +"FN\0" "FO\0" "FP\0" "FQ\0" "FR\0" "FS\0" "FT\0" "FU\0" "FV\0" "FW\0" "FX\0" \ +"FY\0" "FZ\0" "Fa\0" "Fb\0" "Fc\0" "Fd\0" "Fe\0" "Ff\0" "Fg\0" "Fh\0" "Fi\0" \ +"Fj\0" "Fk\0" "Fl\0" "Fm\0" "Fn\0" "Fo\0" "Fp\0" "Fq\0" "Fr\0" "cb\0" "MC\0" \ +"ML\0" "MR\0" "Lf\0" "SC\0" "DK\0" "RC\0" "CW\0" "WG\0" "HU\0" "DI\0" "QD\0" \ +"TO\0" "PU\0" "fh\0" "PA\0" "WA\0" "u0\0" "u1\0" "u2\0" "u3\0" "u4\0" "u5\0" \ +"u6\0" "u7\0" "u8\0" "u9\0" "op\0" "oc\0" "Ic\0" "Ip\0" "sp\0" "Sf\0" "Sb\0" \ +"ZA\0" "ZB\0" "ZC\0" "ZD\0" "ZE\0" "ZF\0" "ZG\0" "ZH\0" "ZI\0" "ZJ\0" "ZK\0" \ +"ZL\0" "ZM\0" "ZN\0" "ZO\0" "ZP\0" "ZQ\0" "ZR\0" "ZS\0" "ZT\0" "ZU\0" "ZV\0" \ +"ZW\0" "ZX\0" "ZY\0" "ZZ\0" "Za\0" "Zb\0" "Zc\0" "Zd\0" "Ze\0" "Zf\0" "Zg\0" \ +"Zh\0" "Zi\0" "Zj\0" "Zk\0" "Zl\0" "Zm\0" "Zn\0" "Zo\0" "Zp\0" "Zq\0" "Zr\0" \ +"Zs\0" "Zt\0" "Zu\0" "Zv\0" "Zw\0" "Zx\0" "Zy\0" "Km\0" "Mi\0" "RQ\0" "Gm\0" \ +"AF\0" "AB\0" "xl\0" "dv\0" "ci\0" "s0\0" "s1\0" "s2\0" "s3\0" "ML\0" "MT\0" \ +"Xy\0" "Zz\0" "Yv\0" "Yw\0" "Yx\0" "Yy\0" "Yz\0" "YZ\0" "S1\0" "S2\0" "S3\0" \ +"S4\0" "S5\0" "S6\0" "S7\0" "S8\0" "Xh\0" "Xl\0" "Xo\0" "Xr\0" "Xt\0" "Xv\0" \ +"sA\0" "YI\0" "i2\0" "rs\0" "ug\0" "bs\0" "ns\0" "nc\0" "dC\0" "dN\0" "nl\0" \ +"bc\0" "MT\0" "NL\0" "dB\0" "dT\0" "kn\0" "ko\0" "ma\0" "pt\0" "xr\0" "G2\0" \ +"G3\0" "G1\0" "G4\0" "GR\0" "GL\0" "GU\0" "GD\0" "GH\0" "GV\0" "GC\0" "ml\0" \ +"mu\0" "bx\0" ; +static const short _nc_offset_boolcodes[] = { +0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, +45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, +90, 93, 96, 99, 102, 105, 108, 1401, 1404, 1407, 1422, 1425, 1443, 1446, }; + +static NCURSES_CONST char ** ptr_boolcodes = 0; + +static const short _nc_offset_numcodes[] = { +111, 114, 117, 120, 123, 126, +129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 159, 162, +165, 168, 171, 174, 177, 180, 183, 186, 189, 192, 195, 198, +201, 204, 207, 1398, 1410, 1413, 1428, 1431, 1434, }; + +static NCURSES_CONST char ** ptr_numcodes = 0; + +static const short _nc_offset_strcodes[] = { +210, 213, 216, 219, 222, 225, 228, 231, 234, +237, 240, 243, 246, 249, 252, 255, 258, 261, 264, 267, 270, +273, 276, 279, 282, 285, 288, 291, 294, 297, 300, 303, 306, +309, 312, 315, 318, 321, 324, 327, 330, 333, 336, 339, 342, +345, 348, 351, 354, 357, 360, 363, 366, 369, 372, 375, 378, +381, 384, 387, 390, 393, 396, 399, 402, 405, 408, 411, 414, +417, 420, 423, 426, 429, 432, 435, 438, 441, 444, 447, 450, +453, 456, 459, 462, 465, 468, 471, 474, 477, 480, 483, 486, +489, 492, 495, 498, 501, 504, 507, 510, 513, 516, 519, 522, +525, 528, 531, 534, 537, 540, 543, 546, 549, 552, 555, 558, +561, 564, 567, 570, 573, 576, 579, 582, 585, 588, 591, 594, +597, 600, 603, 606, 609, 612, 615, 618, 621, 624, 627, 630, +633, 636, 639, 642, 645, 648, 651, 654, 657, 660, 663, 666, +669, 672, 675, 678, 681, 684, 687, 690, 693, 696, 699, 702, +705, 708, 711, 714, 717, 720, 723, 726, 729, 732, 735, 738, +741, 744, 747, 750, 753, 756, 759, 762, 765, 768, 771, 774, +777, 780, 783, 786, 789, 792, 795, 798, 801, 804, 807, 810, +813, 816, 819, 822, 825, 828, 831, 834, 837, 840, 843, 846, +849, 852, 855, 858, 861, 864, 867, 870, 873, 876, 879, 882, +885, 888, 891, 894, 897, 900, 903, 906, 909, 912, 915, 918, +921, 924, 927, 930, 933, 936, 939, 942, 945, 948, 951, 954, +957, 960, 963, 966, 969, 972, 975, 978, 981, 984, 987, 990, +993, 996, 999, 1002, 1005, 1008, 1011, 1014, 1017, 1020, 1023, +1026, 1029, 1032, 1035, 1038, 1041, 1044, 1047, 1050, 1053, 1056, +1059, 1062, 1065, 1068, 1071, 1074, 1077, 1080, 1083, 1086, 1089, +1092, 1095, 1098, 1101, 1104, 1107, 1110, 1113, 1116, 1119, 1122, +1125, 1128, 1131, 1134, 1137, 1140, 1143, 1146, 1149, 1152, 1155, +1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 1185, 1188, +1191, 1194, 1197, 1200, 1203, 1206, 1209, 1212, 1215, 1218, 1221, +1224, 1227, 1230, 1233, 1236, 1239, 1242, 1245, 1248, 1251, 1254, +1257, 1260, 1263, 1266, 1269, 1272, 1275, 1278, 1281, 1284, 1287, +1290, 1293, 1296, 1299, 1302, 1305, 1308, 1311, 1314, 1317, 1320, +1323, 1326, 1329, 1332, 1335, 1338, 1341, 1344, 1347, 1350, 1353, +1356, 1359, 1362, 1365, 1368, 1371, 1374, 1377, 1380, 1383, 1386, +1389, 1392, 1395, 1416, 1419, +1437, 1440, 1449, 1452, +1455, 1458, 1461, 1464, 1467, 1470, 1473, 1476, 1479, 1482, 1485, +1488, }; + +static NCURSES_CONST char ** ptr_strcodes = 0; + + +static IT * +alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size) +{ + if (*value == 0) { + if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) { + unsigned n; + for (n = 0; n < size; ++n) { + (*value)[n] = (NCURSES_CONST char *) _nc_code_blob + offsets[n]; + } + } + } + return *value; +} + +#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API NCURSES_PUBLIC_VAR(it)(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); } + +/* remove public definition which conflicts with FIX() */ +#undef boolcodes +#undef numcodes +#undef strcodes + +/* add local definition */ +FIX(boolcodes) +FIX(numcodes) +FIX(strcodes) + +/* restore the public definition */ + +#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); } +#define boolcodes NCURSES_PUBLIC_VAR(boolcodes()) +#define numcodes NCURSES_PUBLIC_VAR(numcodes()) +#define strcodes NCURSES_PUBLIC_VAR(strcodes()) + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_codes_leaks(void) +{ +FREE_FIX(boolcodes) +FREE_FIX(numcodes) +FREE_FIX(strcodes) +} +#endif + +#else + +#define DCL(it) NCURSES_EXPORT_VAR(IT) it[] + +DCL(boolcodes) = { + "bw", + "am", + "xb", + "xs", + "xn", + "eo", + "gn", + "hc", + "km", + "hs", + "in", + "da", + "db", + "mi", + "ms", + "os", + "es", + "xt", + "hz", + "ul", + "xo", + "nx", + "5i", + "HC", + "NR", + "NP", + "ND", + "cc", + "ut", + "hl", + "YA", + "YB", + "YC", + "YD", + "YE", + "YF", + "YG", + "bs", + "ns", + "nc", + "MT", + "NL", + "pt", + "xr", + + (NCURSES_CONST char *)0, +}; + +DCL(numcodes) = { + "co", + "it", + "li", + "lm", + "sg", + "pb", + "vt", + "ws", + "Nl", + "lh", + "lw", + "ma", + "MW", + "Co", + "pa", + "NC", + "Ya", + "Yb", + "Yc", + "Yd", + "Ye", + "Yf", + "Yg", + "Yh", + "Yi", + "Yj", + "Yk", + "Yl", + "Ym", + "Yn", + "BT", + "Yo", + "Yp", + "ug", + "dC", + "dN", + "dB", + "dT", + "kn", + + (NCURSES_CONST char *)0, +}; + +DCL(strcodes) = { + "bt", + "bl", + "cr", + "cs", + "ct", + "cl", + "ce", + "cd", + "ch", + "CC", + "cm", + "do", + "ho", + "vi", + "le", + "CM", + "ve", + "nd", + "ll", + "up", + "vs", + "dc", + "dl", + "ds", + "hd", + "as", + "mb", + "md", + "ti", + "dm", + "mh", + "im", + "mk", + "mp", + "mr", + "so", + "us", + "ec", + "ae", + "me", + "te", + "ed", + "ei", + "se", + "ue", + "vb", + "ff", + "fs", + "i1", + "is", + "i3", + "if", + "ic", + "al", + "ip", + "kb", + "ka", + "kC", + "kt", + "kD", + "kL", + "kd", + "kM", + "kE", + "kS", + "k0", + "k1", + "k;", + "k2", + "k3", + "k4", + "k5", + "k6", + "k7", + "k8", + "k9", + "kh", + "kI", + "kA", + "kl", + "kH", + "kN", + "kP", + "kr", + "kF", + "kR", + "kT", + "ku", + "ke", + "ks", + "l0", + "l1", + "la", + "l2", + "l3", + "l4", + "l5", + "l6", + "l7", + "l8", + "l9", + "mo", + "mm", + "nw", + "pc", + "DC", + "DL", + "DO", + "IC", + "SF", + "AL", + "LE", + "RI", + "SR", + "UP", + "pk", + "pl", + "px", + "ps", + "pf", + "po", + "rp", + "r1", + "r2", + "r3", + "rf", + "rc", + "cv", + "sc", + "sf", + "sr", + "sa", + "st", + "wi", + "ta", + "ts", + "uc", + "hu", + "iP", + "K1", + "K3", + "K2", + "K4", + "K5", + "pO", + "rP", + "ac", + "pn", + "kB", + "SX", + "RX", + "SA", + "RA", + "XN", + "XF", + "eA", + "LO", + "LF", + "@1", + "@2", + "@3", + "@4", + "@5", + "@6", + "@7", + "@8", + "@9", + "@0", + "%1", + "%2", + "%3", + "%4", + "%5", + "%6", + "%7", + "%8", + "%9", + "%0", + "&1", + "&2", + "&3", + "&4", + "&5", + "&6", + "&7", + "&8", + "&9", + "&0", + "*1", + "*2", + "*3", + "*4", + "*5", + "*6", + "*7", + "*8", + "*9", + "*0", + "#1", + "#2", + "#3", + "#4", + "%a", + "%b", + "%c", + "%d", + "%e", + "%f", + "%g", + "%h", + "%i", + "%j", + "!1", + "!2", + "!3", + "RF", + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "FA", + "FB", + "FC", + "FD", + "FE", + "FF", + "FG", + "FH", + "FI", + "FJ", + "FK", + "FL", + "FM", + "FN", + "FO", + "FP", + "FQ", + "FR", + "FS", + "FT", + "FU", + "FV", + "FW", + "FX", + "FY", + "FZ", + "Fa", + "Fb", + "Fc", + "Fd", + "Fe", + "Ff", + "Fg", + "Fh", + "Fi", + "Fj", + "Fk", + "Fl", + "Fm", + "Fn", + "Fo", + "Fp", + "Fq", + "Fr", + "cb", + "MC", + "ML", + "MR", + "Lf", + "SC", + "DK", + "RC", + "CW", + "WG", + "HU", + "DI", + "QD", + "TO", + "PU", + "fh", + "PA", + "WA", + "u0", + "u1", + "u2", + "u3", + "u4", + "u5", + "u6", + "u7", + "u8", + "u9", + "op", + "oc", + "Ic", + "Ip", + "sp", + "Sf", + "Sb", + "ZA", + "ZB", + "ZC", + "ZD", + "ZE", + "ZF", + "ZG", + "ZH", + "ZI", + "ZJ", + "ZK", + "ZL", + "ZM", + "ZN", + "ZO", + "ZP", + "ZQ", + "ZR", + "ZS", + "ZT", + "ZU", + "ZV", + "ZW", + "ZX", + "ZY", + "ZZ", + "Za", + "Zb", + "Zc", + "Zd", + "Ze", + "Zf", + "Zg", + "Zh", + "Zi", + "Zj", + "Zk", + "Zl", + "Zm", + "Zn", + "Zo", + "Zp", + "Zq", + "Zr", + "Zs", + "Zt", + "Zu", + "Zv", + "Zw", + "Zx", + "Zy", + "Km", + "Mi", + "RQ", + "Gm", + "AF", + "AB", + "xl", + "dv", + "ci", + "s0", + "s1", + "s2", + "s3", + "ML", + "MT", + "Xy", + "Zz", + "Yv", + "Yw", + "Yx", + "Yy", + "Yz", + "YZ", + "S1", + "S2", + "S3", + "S4", + "S5", + "S6", + "S7", + "S8", + "Xh", + "Xl", + "Xo", + "Xr", + "Xt", + "Xv", + "sA", + "YI", + "i2", + "rs", + "nl", + "bc", + "ko", + "ma", + "G2", + "G3", + "G1", + "G4", + "GR", + "GL", + "GU", + "GD", + "GH", + "GV", + "GC", + "ml", + "mu", + "bx", + + (NCURSES_CONST char *)0, +}; + + +#endif /* BROKEN_LINKER */ diff --git a/third_party/ncurses/comp_captab.c b/third_party/ncurses/comp_captab.c new file mode 100644 index 000000000..a6d876eec --- /dev/null +++ b/third_party/ncurses/comp_captab.c @@ -0,0 +1,3424 @@ +/* + * generated by ./tinfo/MKcaptab.sh + */ + +/* + * comp_captab.c -- The names of the capabilities indexed via a hash + * table for the compiler. + * + */ + +#include "curses.priv.h" +#include "tic.h" +#include "hashsize.h" + +/* *INDENT-OFF* */ +/* 147 collisions out of 497 entries */ +static const char info_names_text[] = \ +"bw\0" "am\0" "xsb\0" "xhp\0" "xenl\0" "eo\0" "gn\0" "hc\0" "km\0" \ +"hs\0" "in\0" "da\0" "db\0" "mir\0" "msgr\0" "os\0" "eslok\0" "xt\0" \ +"hz\0" "ul\0" "xon\0" "nxon\0" "mc5i\0" "chts\0" "nrrmc\0" "npc\0" \ +"ndscr\0" "ccc\0" "bce\0" "hls\0" "xhpa\0" "crxm\0" "daisy\0" "xvpa\0" \ +"sam\0" "cpix\0" "lpix\0" "cols\0" "it\0" "lines\0" "lm\0" "xmc\0" \ +"pb\0" "vt\0" "wsl\0" "nlab\0" "lh\0" "lw\0" "ma\0" "wnum\0" "colors\0" \ +"pairs\0" "ncv\0" "bufsz\0" "spinv\0" "spinh\0" "maddr\0" "mjump\0" \ +"mcs\0" "mls\0" "npins\0" "orc\0" "orl\0" "orhi\0" "orvi\0" "cps\0" \ +"widcs\0" "btns\0" "bitwin\0" "bitype\0" "cbt\0" "bel\0" "cr\0" "csr\0" \ +"tbc\0" "clear\0" "el\0" "ed\0" "hpa\0" "cmdch\0" "cup\0" "cud1\0" \ +"home\0" "civis\0" "cub1\0" "mrcup\0" "cnorm\0" "cuf1\0" "ll\0" \ +"cuu1\0" "cvvis\0" "dch1\0" "dl1\0" "dsl\0" "hd\0" "smacs\0" "blink\0" \ +"bold\0" "smcup\0" "smdc\0" "dim\0" "smir\0" "invis\0" "prot\0" "rev\0" \ +"smso\0" "smul\0" "ech\0" "rmacs\0" "sgr0\0" "rmcup\0" "rmdc\0" \ +"rmir\0" "rmso\0" "rmul\0" "flash\0" "ff\0" "fsl\0" "is1\0" "is2\0" \ +"is3\0" "if\0" "ich1\0" "il1\0" "ip\0" "kbs\0" "ktbc\0" "kclr\0" \ +"kctab\0" "kdch1\0" "kdl1\0" "kcud1\0" "krmir\0" "kel\0" "ked\0" \ +"kf0\0" "kf1\0" "kf10\0" "kf2\0" "kf3\0" "kf4\0" "kf5\0" "kf6\0" \ +"kf7\0" "kf8\0" "kf9\0" "khome\0" "kich1\0" "kil1\0" "kcub1\0" "kll\0" \ +"knp\0" "kpp\0" "kcuf1\0" "kind\0" "kri\0" "khts\0" "kcuu1\0" "rmkx\0" \ +"smkx\0" "lf0\0" "lf1\0" "lf10\0" "lf2\0" "lf3\0" "lf4\0" "lf5\0" \ +"lf6\0" "lf7\0" "lf8\0" "lf9\0" "rmm\0" "smm\0" "nel\0" "pad\0" "dch\0" \ +"dl\0" "cud\0" "ich\0" "indn\0" "il\0" "cub\0" "cuf\0" "rin\0" "cuu\0" \ +"pfkey\0" "pfloc\0" "pfx\0" "mc0\0" "mc4\0" "mc5\0" "rep\0" "rs1\0" \ +"rs2\0" "rs3\0" "rf\0" "rc\0" "vpa\0" "sc\0" "ind\0" "ri\0" "sgr\0" \ +"hts\0" "wind\0" "ht\0" "tsl\0" "uc\0" "hu\0" "iprog\0" "ka1\0" "ka3\0" \ +"kb2\0" "kc1\0" "kc3\0" "mc5p\0" "rmp\0" "acsc\0" "pln\0" "kcbt\0" \ +"smxon\0" "rmxon\0" "smam\0" "rmam\0" "xonc\0" "xoffc\0" "enacs\0" \ +"smln\0" "rmln\0" "kbeg\0" "kcan\0" "kclo\0" "kcmd\0" "kcpy\0" "kcrt\0" \ +"kend\0" "kent\0" "kext\0" "kfnd\0" "khlp\0" "kmrk\0" "kmsg\0" "kmov\0" \ +"knxt\0" "kopn\0" "kopt\0" "kprv\0" "kprt\0" "krdo\0" "kref\0" "krfr\0" \ +"krpl\0" "krst\0" "kres\0" "ksav\0" "kspd\0" "kund\0" "kBEG\0" "kCAN\0" \ +"kCMD\0" "kCPY\0" "kCRT\0" "kDC\0" "kDL\0" "kslt\0" "kEND\0" "kEOL\0" \ +"kEXT\0" "kFND\0" "kHLP\0" "kHOM\0" "kIC\0" "kLFT\0" "kMSG\0" "kMOV\0" \ +"kNXT\0" "kOPT\0" "kPRV\0" "kPRT\0" "kRDO\0" "kRPL\0" "kRIT\0" "kRES\0" \ +"kSAV\0" "kSPD\0" "kUND\0" "rfi\0" "kf11\0" "kf12\0" "kf13\0" "kf14\0" \ +"kf15\0" "kf16\0" "kf17\0" "kf18\0" "kf19\0" "kf20\0" "kf21\0" "kf22\0" \ +"kf23\0" "kf24\0" "kf25\0" "kf26\0" "kf27\0" "kf28\0" "kf29\0" "kf30\0" \ +"kf31\0" "kf32\0" "kf33\0" "kf34\0" "kf35\0" "kf36\0" "kf37\0" "kf38\0" \ +"kf39\0" "kf40\0" "kf41\0" "kf42\0" "kf43\0" "kf44\0" "kf45\0" "kf46\0" \ +"kf47\0" "kf48\0" "kf49\0" "kf50\0" "kf51\0" "kf52\0" "kf53\0" "kf54\0" \ +"kf55\0" "kf56\0" "kf57\0" "kf58\0" "kf59\0" "kf60\0" "kf61\0" "kf62\0" \ +"kf63\0" "el1\0" "mgc\0" "smgl\0" "smgr\0" "fln\0" "sclk\0" "dclk\0" \ +"rmclk\0" "cwin\0" "wingo\0" "hup\0" "dial\0" "qdial\0" "tone\0" \ +"pulse\0" "hook\0" "pause\0" "wait\0" "u0\0" "u1\0" "u2\0" "u3\0" \ +"u4\0" "u5\0" "u6\0" "u7\0" "u8\0" "u9\0" "op\0" "oc\0" "initc\0" \ +"initp\0" "scp\0" "setf\0" "setb\0" "cpi\0" "lpi\0" "chr\0" "cvr\0" \ +"defc\0" "swidm\0" "sdrfq\0" "sitm\0" "slm\0" "smicm\0" "snlq\0" \ +"snrmq\0" "sshm\0" "ssubm\0" "ssupm\0" "sum\0" "rwidm\0" "ritm\0" \ +"rlm\0" "rmicm\0" "rshm\0" "rsubm\0" "rsupm\0" "rum\0" "mhpa\0" \ +"mcud1\0" "mcub1\0" "mcuf1\0" "mvpa\0" "mcuu1\0" "porder\0" "mcud\0" \ +"mcub\0" "mcuf\0" "mcuu\0" "scs\0" "smgb\0" "smgbp\0" "smglp\0" \ +"smgrp\0" "smgt\0" "smgtp\0" "sbim\0" "scsd\0" "rbim\0" "rcsd\0" \ +"subcs\0" "supcs\0" "docr\0" "zerom\0" "csnm\0" "kmous\0" "minfo\0" \ +"reqmp\0" "getm\0" "setaf\0" "setab\0" "pfxl\0" "devt\0" "csin\0" \ +"s0ds\0" "s1ds\0" "s2ds\0" "s3ds\0" "smglr\0" "smgtb\0" "birep\0" \ +"binel\0" "bicr\0" "colornm\0" "defbi\0" "endbi\0" "setcolor\0" \ +"slines\0" "dispc\0" "smpch\0" "rmpch\0" "smsc\0" "rmsc\0" "pctrm\0" \ +"scesc\0" "scesa\0" "ehhlm\0" "elhlm\0" "elohlm\0" "erhlm\0" "ethlm\0" \ +"evhlm\0" "sgr1\0" "slength\0" "OTi2\0" "OTrs\0" "OTug\0" "OTbs\0" \ +"OTns\0" "OTnc\0" "OTdC\0" "OTdN\0" "OTnl\0" "OTbc\0" "OTMT\0" "OTNL\0" \ +"OTdB\0" "OTdT\0" "OTkn\0" "OTko\0" "OTma\0" "OTpt\0" "OTxr\0" "OTG2\0" \ +"OTG3\0" "OTG1\0" "OTG4\0" "OTGR\0" "OTGL\0" "OTGU\0" "OTGD\0" "OTGH\0" \ +"OTGV\0" "OTGC\0" "meml\0" "memu\0" "box1\0" ; + +static name_table_data const info_names_data[] = +{ + { 0, BOOLEAN, 0, -1 }, + { 3, BOOLEAN, 1, -1 }, + { 6, BOOLEAN, 2, -1 }, + { 10, BOOLEAN, 3, -1 }, + { 14, BOOLEAN, 4, -1 }, + { 19, BOOLEAN, 5, -1 }, + { 22, BOOLEAN, 6, -1 }, + { 25, BOOLEAN, 7, -1 }, + { 28, BOOLEAN, 8, -1 }, + { 31, BOOLEAN, 9, -1 }, + { 34, BOOLEAN, 10, -1 }, + { 37, BOOLEAN, 11, -1 }, + { 40, BOOLEAN, 12, -1 }, + { 43, BOOLEAN, 13, -1 }, + { 47, BOOLEAN, 14, -1 }, + { 52, BOOLEAN, 15, -1 }, + { 55, BOOLEAN, 16, -1 }, + { 61, BOOLEAN, 17, -1 }, + { 64, BOOLEAN, 18, -1 }, + { 67, BOOLEAN, 19, -1 }, + { 70, BOOLEAN, 20, -1 }, + { 74, BOOLEAN, 21, -1 }, + { 79, BOOLEAN, 22, -1 }, + { 84, BOOLEAN, 23, -1 }, + { 89, BOOLEAN, 24, -1 }, + { 95, BOOLEAN, 25, -1 }, + { 99, BOOLEAN, 26, -1 }, + { 105, BOOLEAN, 27, -1 }, + { 109, BOOLEAN, 28, -1 }, + { 113, BOOLEAN, 29, -1 }, + { 117, BOOLEAN, 30, -1 }, + { 122, BOOLEAN, 31, -1 }, + { 127, BOOLEAN, 32, -1 }, + { 133, BOOLEAN, 33, -1 }, + { 138, BOOLEAN, 34, -1 }, + { 142, BOOLEAN, 35, -1 }, + { 147, BOOLEAN, 36, -1 }, + { 152, NUMBER, 0, -1 }, + { 157, NUMBER, 1, -1 }, + { 160, NUMBER, 2, 6 }, + { 166, NUMBER, 3, -1 }, + { 169, NUMBER, 4, -1 }, + { 173, NUMBER, 5, -1 }, + { 176, NUMBER, 6, -1 }, + { 179, NUMBER, 7, -1 }, + { 183, NUMBER, 8, -1 }, + { 188, NUMBER, 9, -1 }, + { 191, NUMBER, 10, -1 }, + { 194, NUMBER, 11, -1 }, + { 197, NUMBER, 12, -1 }, + { 202, NUMBER, 13, -1 }, + { 209, NUMBER, 14, -1 }, + { 215, NUMBER, 15, -1 }, + { 219, NUMBER, 16, 46 }, + { 225, NUMBER, 17, -1 }, + { 231, NUMBER, 18, -1 }, + { 237, NUMBER, 19, -1 }, + { 243, NUMBER, 20, -1 }, + { 249, NUMBER, 21, -1 }, + { 253, NUMBER, 22, -1 }, + { 257, NUMBER, 23, -1 }, + { 263, NUMBER, 24, -1 }, + { 267, NUMBER, 25, -1 }, + { 271, NUMBER, 26, -1 }, + { 276, NUMBER, 27, -1 }, + { 281, NUMBER, 28, -1 }, + { 285, NUMBER, 29, -1 }, + { 291, NUMBER, 30, -1 }, + { 296, NUMBER, 31, -1 }, + { 303, NUMBER, 32, 68 }, + { 310, STRING, 0, -1 }, + { 314, STRING, 1, -1 }, + { 318, STRING, 2, -1 }, + { 321, STRING, 3, -1 }, + { 325, STRING, 4, -1 }, + { 329, STRING, 5, -1 }, + { 335, STRING, 6, -1 }, + { 338, STRING, 7, -1 }, + { 341, STRING, 8, -1 }, + { 345, STRING, 9, -1 }, + { 351, STRING, 10, 73 }, + { 355, STRING, 11, -1 }, + { 360, STRING, 12, -1 }, + { 365, STRING, 13, -1 }, + { 371, STRING, 14, -1 }, + { 376, STRING, 15, -1 }, + { 382, STRING, 16, -1 }, + { 388, STRING, 17, -1 }, + { 393, STRING, 18, -1 }, + { 396, STRING, 19, -1 }, + { 401, STRING, 20, -1 }, + { 407, STRING, 21, -1 }, + { 412, STRING, 22, -1 }, + { 416, STRING, 23, -1 }, + { 420, STRING, 24, -1 }, + { 423, STRING, 25, -1 }, + { 429, STRING, 26, -1 }, + { 435, STRING, 27, -1 }, + { 440, STRING, 28, -1 }, + { 446, STRING, 29, -1 }, + { 451, STRING, 30, -1 }, + { 455, STRING, 31, -1 }, + { 460, STRING, 32, -1 }, + { 466, STRING, 33, -1 }, + { 471, STRING, 34, -1 }, + { 475, STRING, 35, -1 }, + { 480, STRING, 36, -1 }, + { 485, STRING, 37, -1 }, + { 489, STRING, 38, -1 }, + { 495, STRING, 39, -1 }, + { 500, STRING, 40, -1 }, + { 506, STRING, 41, -1 }, + { 511, STRING, 42, -1 }, + { 516, STRING, 43, -1 }, + { 521, STRING, 44, -1 }, + { 526, STRING, 45, -1 }, + { 532, STRING, 46, -1 }, + { 535, STRING, 47, -1 }, + { 539, STRING, 48, -1 }, + { 543, STRING, 49, 59 }, + { 547, STRING, 50, 76 }, + { 551, STRING, 51, -1 }, + { 554, STRING, 52, 20 }, + { 559, STRING, 53, -1 }, + { 563, STRING, 54, -1 }, + { 566, STRING, 55, -1 }, + { 570, STRING, 56, -1 }, + { 575, STRING, 57, 98 }, + { 580, STRING, 58, -1 }, + { 586, STRING, 59, -1 }, + { 592, STRING, 60, -1 }, + { 597, STRING, 61, -1 }, + { 603, STRING, 62, -1 }, + { 609, STRING, 63, -1 }, + { 613, STRING, 64, -1 }, + { 617, STRING, 65, -1 }, + { 621, STRING, 66, -1 }, + { 625, STRING, 67, -1 }, + { 630, STRING, 68, -1 }, + { 634, STRING, 69, -1 }, + { 638, STRING, 70, -1 }, + { 642, STRING, 71, 61 }, + { 646, STRING, 72, -1 }, + { 650, STRING, 73, -1 }, + { 654, STRING, 74, -1 }, + { 658, STRING, 75, -1 }, + { 662, STRING, 76, -1 }, + { 668, STRING, 77, -1 }, + { 674, STRING, 78, -1 }, + { 679, STRING, 79, -1 }, + { 685, STRING, 80, -1 }, + { 689, STRING, 81, -1 }, + { 693, STRING, 82, -1 }, + { 697, STRING, 83, -1 }, + { 703, STRING, 84, 55 }, + { 708, STRING, 85, 105 }, + { 712, STRING, 86, -1 }, + { 717, STRING, 87, 81 }, + { 723, STRING, 88, -1 }, + { 728, STRING, 89, -1 }, + { 733, STRING, 90, -1 }, + { 737, STRING, 91, -1 }, + { 741, STRING, 92, -1 }, + { 746, STRING, 93, -1 }, + { 750, STRING, 94, 33 }, + { 754, STRING, 95, -1 }, + { 758, STRING, 96, -1 }, + { 762, STRING, 97, -1 }, + { 766, STRING, 98, 7 }, + { 770, STRING, 99, 94 }, + { 774, STRING, 100, -1 }, + { 778, STRING, 101, 131 }, + { 782, STRING, 102, -1 }, + { 786, STRING, 103, -1 }, + { 790, STRING, 104, 30 }, + { 794, STRING, 105, -1 }, + { 798, STRING, 106, -1 }, + { 801, STRING, 107, -1 }, + { 805, STRING, 108, -1 }, + { 809, STRING, 109, -1 }, + { 814, STRING, 110, -1 }, + { 817, STRING, 111, -1 }, + { 821, STRING, 112, 156 }, + { 825, STRING, 113, -1 }, + { 829, STRING, 114, -1 }, + { 833, STRING, 115, 51 }, + { 839, STRING, 116, -1 }, + { 845, STRING, 117, -1 }, + { 849, STRING, 118, -1 }, + { 853, STRING, 119, -1 }, + { 857, STRING, 120, -1 }, + { 861, STRING, 121, -1 }, + { 865, STRING, 122, -1 }, + { 869, STRING, 123, -1 }, + { 873, STRING, 124, 126 }, + { 877, STRING, 125, -1 }, + { 880, STRING, 126, -1 }, + { 883, STRING, 127, -1 }, + { 887, STRING, 128, -1 }, + { 890, STRING, 129, -1 }, + { 894, STRING, 130, -1 }, + { 897, STRING, 131, -1 }, + { 901, STRING, 132, -1 }, + { 905, STRING, 133, -1 }, + { 910, STRING, 134, -1 }, + { 913, STRING, 135, -1 }, + { 917, STRING, 136, 23 }, + { 920, STRING, 137, -1 }, + { 923, STRING, 138, -1 }, + { 929, STRING, 139, -1 }, + { 933, STRING, 140, -1 }, + { 937, STRING, 141, 210 }, + { 941, STRING, 142, 211 }, + { 945, STRING, 143, 135 }, + { 949, STRING, 144, -1 }, + { 954, STRING, 145, -1 }, + { 958, STRING, 146, 176 }, + { 963, STRING, 147, -1 }, + { 967, STRING, 148, 194 }, + { 972, STRING, 149, -1 }, + { 978, STRING, 150, -1 }, + { 984, STRING, 151, 137 }, + { 989, STRING, 152, -1 }, + { 994, STRING, 153, -1 }, + { 999, STRING, 154, -1 }, + { 1005, STRING, 155, -1 }, + { 1011, STRING, 156, -1 }, + { 1016, STRING, 157, -1 }, + { 1021, STRING, 158, -1 }, + { 1026, STRING, 159, -1 }, + { 1031, STRING, 160, -1 }, + { 1036, STRING, 161, -1 }, + { 1041, STRING, 162, -1 }, + { 1046, STRING, 163, 54 }, + { 1051, STRING, 164, 192 }, + { 1056, STRING, 165, -1 }, + { 1061, STRING, 166, -1 }, + { 1066, STRING, 167, 193 }, + { 1071, STRING, 168, -1 }, + { 1076, STRING, 169, 70 }, + { 1081, STRING, 170, 235 }, + { 1086, STRING, 171, -1 }, + { 1091, STRING, 172, -1 }, + { 1096, STRING, 173, 177 }, + { 1101, STRING, 174, -1 }, + { 1106, STRING, 175, -1 }, + { 1111, STRING, 176, -1 }, + { 1116, STRING, 177, -1 }, + { 1121, STRING, 178, -1 }, + { 1126, STRING, 179, 239 }, + { 1131, STRING, 180, 219 }, + { 1136, STRING, 181, 80 }, + { 1141, STRING, 182, 249 }, + { 1146, STRING, 183, 252 }, + { 1151, STRING, 184, 240 }, + { 1156, STRING, 185, 254 }, + { 1161, STRING, 186, -1 }, + { 1166, STRING, 187, -1 }, + { 1171, STRING, 188, 101 }, + { 1176, STRING, 189, -1 }, + { 1181, STRING, 190, -1 }, + { 1186, STRING, 191, -1 }, + { 1190, STRING, 192, -1 }, + { 1194, STRING, 193, 244 }, + { 1199, STRING, 194, -1 }, + { 1204, STRING, 195, 152 }, + { 1209, STRING, 196, -1 }, + { 1214, STRING, 197, 150 }, + { 1219, STRING, 198, -1 }, + { 1224, STRING, 199, 268 }, + { 1229, STRING, 200, -1 }, + { 1233, STRING, 201, 72 }, + { 1238, STRING, 202, -1 }, + { 1243, STRING, 203, -1 }, + { 1248, STRING, 204, -1 }, + { 1253, STRING, 205, -1 }, + { 1258, STRING, 206, -1 }, + { 1263, STRING, 207, 196 }, + { 1268, STRING, 208, -1 }, + { 1273, STRING, 209, -1 }, + { 1278, STRING, 210, -1 }, + { 1283, STRING, 211, -1 }, + { 1288, STRING, 212, 281 }, + { 1293, STRING, 213, 272 }, + { 1298, STRING, 214, 283 }, + { 1303, STRING, 215, -1 }, + { 1307, STRING, 216, -1 }, + { 1312, STRING, 217, 134 }, + { 1317, STRING, 218, -1 }, + { 1322, STRING, 219, -1 }, + { 1327, STRING, 220, -1 }, + { 1332, STRING, 221, 43 }, + { 1337, STRING, 222, 256 }, + { 1342, STRING, 223, -1 }, + { 1347, STRING, 224, -1 }, + { 1352, STRING, 225, 286 }, + { 1357, STRING, 226, 287 }, + { 1362, STRING, 227, 288 }, + { 1367, STRING, 228, 289 }, + { 1372, STRING, 229, 290 }, + { 1377, STRING, 230, 291 }, + { 1382, STRING, 231, 292 }, + { 1387, STRING, 232, 293 }, + { 1392, STRING, 233, 294 }, + { 1397, STRING, 234, 133 }, + { 1402, STRING, 235, 296 }, + { 1407, STRING, 236, 297 }, + { 1412, STRING, 237, 298 }, + { 1417, STRING, 238, 299 }, + { 1422, STRING, 239, 300 }, + { 1427, STRING, 240, 301 }, + { 1432, STRING, 241, 302 }, + { 1437, STRING, 242, 303 }, + { 1442, STRING, 243, 304 }, + { 1447, STRING, 244, 257 }, + { 1452, STRING, 245, 306 }, + { 1457, STRING, 246, 307 }, + { 1462, STRING, 247, 308 }, + { 1467, STRING, 248, 309 }, + { 1472, STRING, 249, 310 }, + { 1477, STRING, 250, 311 }, + { 1482, STRING, 251, 312 }, + { 1487, STRING, 252, 313 }, + { 1492, STRING, 253, 314 }, + { 1497, STRING, 254, 226 }, + { 1502, STRING, 255, 316 }, + { 1507, STRING, 256, 317 }, + { 1512, STRING, 257, 318 }, + { 1517, STRING, 258, 319 }, + { 1522, STRING, 259, 320 }, + { 1527, STRING, 260, 321 }, + { 1532, STRING, 261, 322 }, + { 1537, STRING, 262, 323 }, + { 1542, STRING, 263, 324 }, + { 1547, STRING, 264, 258 }, + { 1552, STRING, 265, 326 }, + { 1557, STRING, 266, 327 }, + { 1562, STRING, 267, 328 }, + { 1567, STRING, 268, 329 }, + { 1572, STRING, 269, -1 }, + { 1576, STRING, 270, -1 }, + { 1580, STRING, 271, 335 }, + { 1585, STRING, 272, 332 }, + { 1590, STRING, 273, -1 }, + { 1594, STRING, 274, -1 }, + { 1599, STRING, 275, -1 }, + { 1604, STRING, 276, -1 }, + { 1610, STRING, 277, 37 }, + { 1615, STRING, 278, -1 }, + { 1621, STRING, 279, -1 }, + { 1625, STRING, 280, -1 }, + { 1630, STRING, 281, -1 }, + { 1636, STRING, 282, -1 }, + { 1641, STRING, 283, -1 }, + { 1647, STRING, 284, -1 }, + { 1652, STRING, 285, 8 }, + { 1658, STRING, 286, 262 }, + { 1663, STRING, 287, -1 }, + { 1666, STRING, 288, -1 }, + { 1669, STRING, 289, -1 }, + { 1672, STRING, 290, -1 }, + { 1675, STRING, 291, -1 }, + { 1678, STRING, 292, -1 }, + { 1681, STRING, 293, -1 }, + { 1684, STRING, 294, -1 }, + { 1687, STRING, 295, -1 }, + { 1690, STRING, 296, -1 }, + { 1693, STRING, 297, -1 }, + { 1696, STRING, 298, -1 }, + { 1699, STRING, 299, -1 }, + { 1705, STRING, 300, -1 }, + { 1711, STRING, 301, -1 }, + { 1715, STRING, 302, 325 }, + { 1720, STRING, 303, 221 }, + { 1725, STRING, 304, 243 }, + { 1729, STRING, 305, -1 }, + { 1733, STRING, 306, 250 }, + { 1737, STRING, 307, -1 }, + { 1741, STRING, 308, 141 }, + { 1746, STRING, 309, 248 }, + { 1752, STRING, 310, 218 }, + { 1758, STRING, 311, -1 }, + { 1763, STRING, 312, 201 }, + { 1767, STRING, 313, 229 }, + { 1773, STRING, 314, 264 }, + { 1778, STRING, 315, 253 }, + { 1784, STRING, 316, 334 }, + { 1789, STRING, 317, -1 }, + { 1795, STRING, 318, 236 }, + { 1801, STRING, 319, 185 }, + { 1805, STRING, 320, -1 }, + { 1811, STRING, 321, -1 }, + { 1816, STRING, 322, -1 }, + { 1820, STRING, 323, -1 }, + { 1826, STRING, 324, 112 }, + { 1831, STRING, 325, -1 }, + { 1837, STRING, 326, -1 }, + { 1843, STRING, 327, -1 }, + { 1847, STRING, 328, -1 }, + { 1852, STRING, 329, -1 }, + { 1858, STRING, 330, -1 }, + { 1864, STRING, 331, 53 }, + { 1870, STRING, 332, -1 }, + { 1875, STRING, 333, 47 }, + { 1881, STRING, 334, 155 }, + { 1888, STRING, 335, -1 }, + { 1893, STRING, 336, -1 }, + { 1898, STRING, 337, -1 }, + { 1903, STRING, 338, -1 }, + { 1908, STRING, 339, -1 }, + { 1912, STRING, 340, -1 }, + { 1917, STRING, 341, 383 }, + { 1923, STRING, 342, -1 }, + { 1929, STRING, 343, -1 }, + { 1935, STRING, 344, 386 }, + { 1940, STRING, 345, 238 }, + { 1946, STRING, 346, -1 }, + { 1951, STRING, 347, 344 }, + { 1956, STRING, 348, 31 }, + { 1961, STRING, 349, -1 }, + { 1966, STRING, 350, 380 }, + { 1972, STRING, 351, 255 }, + { 1978, STRING, 352, -1 }, + { 1983, STRING, 353, -1 }, + { 1989, STRING, 354, 347 }, + { 1994, STRING, 355, -1 }, + { 2000, STRING, 356, -1 }, + { 2006, STRING, 357, -1 }, + { 2012, STRING, 358, 87 }, + { 2017, STRING, 359, -1 }, + { 2023, STRING, 360, -1 }, + { 2029, STRING, 361, -1 }, + { 2034, STRING, 362, -1 }, + { 2039, STRING, 363, -1 }, + { 2044, STRING, 364, -1 }, + { 2049, STRING, 365, 212 }, + { 2054, STRING, 366, 109 }, + { 2059, STRING, 367, 213 }, + { 2064, STRING, 368, 230 }, + { 2070, STRING, 369, -1 }, + { 2076, STRING, 370, -1 }, + { 2082, STRING, 371, -1 }, + { 2088, STRING, 372, -1 }, + { 2093, STRING, 373, -1 }, + { 2101, STRING, 374, -1 }, + { 2107, STRING, 375, -1 }, + { 2113, STRING, 376, -1 }, + { 2122, STRING, 377, 116 }, + { 2129, STRING, 378, -1 }, + { 2135, STRING, 379, 231 }, + { 2141, STRING, 380, -1 }, + { 2147, STRING, 381, 338 }, + { 2152, STRING, 382, -1 }, + { 2157, STRING, 383, -1 }, + { 2163, STRING, 384, 197 }, + { 2169, STRING, 385, 430 }, + { 2175, STRING, 386, -1 }, + { 2181, STRING, 387, -1 }, + { 2187, STRING, 388, -1 }, + { 2194, STRING, 389, -1 }, + { 2200, STRING, 390, -1 }, + { 2206, STRING, 391, -1 }, + { 2212, STRING, 392, 437 }, + { 2217, STRING, 393, -1 }, + { 2225, STRING, 394, -1 }, + { 2230, STRING, 395, -1 }, + { 2235, NUMBER, 33, -1 }, + { 2240, BOOLEAN, 37, -1 }, + { 2245, BOOLEAN, 38, -1 }, + { 2250, BOOLEAN, 39, -1 }, + { 2255, NUMBER, 34, -1 }, + { 2260, NUMBER, 35, -1 }, + { 2265, STRING, 396, -1 }, + { 2270, STRING, 397, 13 }, + { 2275, BOOLEAN, 40, -1 }, + { 2280, BOOLEAN, 41, 446 }, + { 2285, NUMBER, 36, -1 }, + { 2290, NUMBER, 37, -1 }, + { 2295, NUMBER, 38, -1 }, + { 2300, STRING, 398, 472 }, + { 2305, STRING, 399, -1 }, + { 2310, BOOLEAN, 42, -1 }, + { 2315, BOOLEAN, 43, -1 }, + { 2320, STRING, 400, -1 }, + { 2325, STRING, 401, -1 }, + { 2330, STRING, 402, -1 }, + { 2335, STRING, 403, -1 }, + { 2340, STRING, 404, -1 }, + { 2345, STRING, 405, -1 }, + { 2350, STRING, 406, -1 }, + { 2355, STRING, 407, -1 }, + { 2360, STRING, 408, 26 }, + { 2365, STRING, 409, 60 }, + { 2370, STRING, 410, 121 }, + { 2375, STRING, 411, 407 }, + { 2380, STRING, 412, 402 }, + { 2385, STRING, 413, -1 } +}; + +static struct name_table_entry *_nc_info_table = 0; + +static const HashValue _nc_info_hash_table[995] = +{ + -1, + -1, + -1, + -1, + -1, + -1, + 465, + -1, + -1, + -1, + -1, + -1, + 261, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 457, + -1, + -1, + 265, + 216, + 120, + -1, + -1, + -1, + 180, + -1, + -1, + 88, + -1, + 420, + -1, + 398, + -1, + 348, + -1, + -1, + 19, + -1, + -1, + -1, + 359, + -1, + 174, + -1, + 245, + -1, + 74, + -1, + -1, + -1, + -1, + -1, + 269, + -1, + 480, + -1, + -1, + -1, + 124, + -1, + -1, + -1, + 390, + 379, + 367, + -1, + -1, + 444, + -1, + -1, + -1, + 305, + -1, + -1, + 363, + -1, + -1, + 483, + 377, + -1, + -1, + -1, + -1, + 460, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 204, + 38, + -1, + 82, + -1, + 110, + 127, + -1, + -1, + 463, + -1, + -1, + -1, + -1, + 336, + -1, + 17, + 128, + 434, + -1, + 188, + 129, + -1, + 351, + -1, + -1, + 16, + -1, + -1, + 259, + -1, + -1, + -1, + -1, + -1, + 489, + -1, + 353, + -1, + 71, + 247, + -1, + -1, + -1, + -1, + 78, + -1, + -1, + 331, + -1, + -1, + 173, + 136, + 161, + 189, + -1, + -1, + -1, + -1, + 454, + -1, + -1, + -1, + -1, + 224, + 479, + -1, + -1, + -1, + -1, + -1, + 354, + -1, + -1, + 233, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 125, + 11, + -1, + -1, + 378, + 166, + -1, + 191, + -1, + -1, + 48, + 228, + -1, + 2, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 374, + -1, + 408, + -1, + -1, + -1, + -1, + -1, + -1, + 375, + -1, + 52, + 145, + 170, + -1, + 392, + 382, + -1, + 393, + 411, + -1, + -1, + -1, + 276, + -1, + -1, + 35, + -1, + -1, + -1, + -1, + -1, + -1, + 396, + 388, + 36, + -1, + -1, + 64, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 350, + -1, + -1, + 215, + 91, + -1, + -1, + 439, + -1, + 122, + -1, + 200, + -1, + 67, + -1, + 410, + -1, + -1, + 89, + -1, + -1, + -1, + -1, + -1, + 96, + 21, + -1, + 103, + 1, + -1, + -1, + 369, + -1, + -1, + 345, + -1, + -1, + -1, + 355, + 40, + -1, + 27, + -1, + 406, + -1, + -1, + -1, + 482, + 419, + 417, + -1, + -1, + 360, + 270, + -1, + -1, + 251, + -1, + -1, + -1, + -1, + 349, + -1, + -1, + 278, + -1, + 442, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 438, + -1, + 494, + -1, + -1, + -1, + -1, + -1, + 315, + -1, + 340, + 364, + 356, + -1, + 484, + -1, + -1, + -1, + -1, + 32, + -1, + -1, + -1, + 260, + -1, + -1, + -1, + -1, + 207, + 487, + 84, + 453, + -1, + -1, + 413, + -1, + -1, + -1, + -1, + -1, + 214, + -1, + 337, + 352, + 477, + -1, + 435, + 56, + -1, + -1, + 34, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 132, + -1, + 85, + 492, + 428, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 199, + -1, + 342, + -1, + -1, + -1, + 138, + 163, + 190, + 147, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 266, + -1, + -1, + 433, + -1, + -1, + 474, + -1, + -1, + -1, + -1, + 385, + 100, + -1, + -1, + -1, + 431, + -1, + 391, + 381, + 12, + 58, + -1, + 142, + 167, + -1, + -1, + 409, + -1, + -1, + -1, + -1, + 42, + 45, + 66, + -1, + -1, + 424, + -1, + -1, + -1, + -1, + -1, + -1, + 220, + 376, + -1, + -1, + 343, + -1, + -1, + -1, + 114, + 106, + -1, + -1, + 447, + -1, + 217, + 493, + 171, + 172, + 399, + 346, + -1, + -1, + -1, + -1, + 195, + -1, + -1, + -1, + -1, + -1, + 496, + -1, + -1, + -1, + -1, + 241, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 151, + -1, + 118, + -1, + 62, + 187, + -1, + -1, + -1, + -1, + -1, + 234, + -1, + 443, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 357, + -1, + -1, + -1, + 246, + -1, + -1, + -1, + 448, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 39, + -1, + 10, + 397, + 389, + -1, + -1, + 154, + -1, + -1, + -1, + 130, + -1, + 22, + 222, + 373, + 162, + -1, + 361, + 203, + -1, + -1, + 242, + -1, + -1, + -1, + -1, + 459, + -1, + -1, + 271, + -1, + 97, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 427, + -1, + 175, + 107, + -1, + -1, + -1, + 178, + 423, + 372, + 69, + -1, + 365, + -1, + 4, + 486, + 184, + -1, + -1, + -1, + -1, + 461, + -1, + -1, + 282, + -1, + -1, + -1, + -1, + -1, + 475, + -1, + -1, + -1, + 395, + 387, + -1, + -1, + 79, + 63, + -1, + -1, + 452, + 451, + -1, + 50, + -1, + 436, + -1, + -1, + 285, + -1, + -1, + 83, + 455, + -1, + -1, + -1, + 279, + 370, + -1, + -1, + -1, + 18, + -1, + -1, + -1, + -1, + -1, + 421, + -1, + 495, + -1, + -1, + -1, + -1, + 227, + 333, + -1, + -1, + 25, + 139, + 164, + -1, + -1, + 371, + -1, + -1, + 429, + -1, + -1, + -1, + 273, + -1, + 466, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 181, + -1, + -1, + 75, + -1, + 92, + 339, + -1, + 384, + -1, + 123, + -1, + 143, + 168, + -1, + 183, + 186, + -1, + 108, + 95, + 368, + -1, + -1, + 277, + 198, + -1, + 206, + 432, + -1, + 476, + -1, + 458, + -1, + -1, + 182, + -1, + 441, + -1, + -1, + -1, + 115, + 113, + 404, + -1, + 473, + -1, + -1, + -1, + 490, + 104, + -1, + -1, + 450, + 449, + -1, + -1, + -1, + 274, + -1, + 481, + 111, + 99, + -1, + -1, + -1, + -1, + -1, + -1, + 263, + 93, + -1, + 117, + -1, + 29, + -1, + -1, + -1, + -1, + 119, + -1, + -1, + 426, + 491, + -1, + -1, + 205, + -1, + 237, + 44, + -1, + -1, + -1, + -1, + -1, + 418, + 416, + -1, + -1, + 358, + -1, + -1, + -1, + 65, + -1, + 440, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 5, + -1, + -1, + -1, + 488, + -1, + -1, + -1, + 28, + 412, + -1, + 405, + -1, + -1, + -1, + -1, + -1, + 295, + -1, + 471, + 362, + -1, + -1, + 485, + -1, + -1, + -1, + -1, + -1, + 202, + -1, + -1, + 284, + -1, + 469, + -1, + -1, + 9, + 24, + -1, + -1, + 179, + -1, + -1, + 15, + -1, + -1, + 148, + -1, + -1, + -1, + 341, + -1, + -1, + 366, + 209, + 223, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + -1, + 208, + 467, + -1, + 422, + -1, + 464, + 157, + -1, + 403, + -1, + 415, + -1, + -1, + -1, + -1, + 445, + -1, + -1, + 330, + -1, + -1, + -1, + 462, + 160, + -1, + -1, + -1, + -1, + 86, + -1, + -1, + 41, + -1, + 280, + -1, + 478, + -1, + -1, + 57, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 394, + 414, + -1, + -1, + -1, + 140, + 165, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 275, + 102, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 232, + -1, + 14, + -1, + -1, + 225, + -1, + -1, + 267, + -1, + 77, + -1, + 144, + 169, + -1, + 149, + -1, + 400, + -1, + -1, + -1, + 3, + -1, + -1, + -1, + 468, + 425, + -1, + -1, + 470, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 456, + -1, + 158, + 159, + -1, + -1, + 146, + 49, + -1, + -1, + 153, + -1, + 401, + 90, + 0 /* base-of-table */ +}; + +#if (BOOLCOUNT!=44)||(NUMCOUNT!=39)||(STRCOUNT!=414) +#error --> term.h and comp_captab.c disagree about the <-- +#error --> numbers of booleans, numbers and/or strings <-- +#endif + +/* 103 collisions out of 497 entries */ +static const char cap_names_text[] = \ +"bw\0" "am\0" "xb\0" "xs\0" "xn\0" "eo\0" "gn\0" "hc\0" "km\0" "hs\0" \ +"in\0" "da\0" "db\0" "mi\0" "ms\0" "os\0" "es\0" "xt\0" "hz\0" "ul\0" \ +"xo\0" "nx\0" "5i\0" "HC\0" "NR\0" "NP\0" "ND\0" "cc\0" "ut\0" "hl\0" \ +"YA\0" "YB\0" "YC\0" "YD\0" "YE\0" "YF\0" "YG\0" "co\0" "it\0" "li\0" \ +"lm\0" "sg\0" "pb\0" "vt\0" "ws\0" "Nl\0" "lh\0" "lw\0" "ma\0" "MW\0" \ +"Co\0" "pa\0" "NC\0" "Ya\0" "Yb\0" "Yc\0" "Yd\0" "Ye\0" "Yf\0" "Yg\0" \ +"Yh\0" "Yi\0" "Yj\0" "Yk\0" "Yl\0" "Ym\0" "Yn\0" "BT\0" "Yo\0" "Yp\0" \ +"bt\0" "bl\0" "cr\0" "cs\0" "ct\0" "cl\0" "ce\0" "cd\0" "ch\0" "CC\0" \ +"cm\0" "do\0" "ho\0" "vi\0" "le\0" "CM\0" "ve\0" "nd\0" "ll\0" "up\0" \ +"vs\0" "dc\0" "dl\0" "ds\0" "hd\0" "as\0" "mb\0" "md\0" "ti\0" "dm\0" \ +"mh\0" "im\0" "mk\0" "mp\0" "mr\0" "so\0" "us\0" "ec\0" "ae\0" "me\0" \ +"te\0" "ed\0" "ei\0" "se\0" "ue\0" "vb\0" "ff\0" "fs\0" "i1\0" "is\0" \ +"i3\0" "if\0" "ic\0" "al\0" "ip\0" "kb\0" "ka\0" "kC\0" "kt\0" "kD\0" \ +"kL\0" "kd\0" "kM\0" "kE\0" "kS\0" "k0\0" "k1\0" "k;\0" "k2\0" "k3\0" \ +"k4\0" "k5\0" "k6\0" "k7\0" "k8\0" "k9\0" "kh\0" "kI\0" "kA\0" "kl\0" \ +"kH\0" "kN\0" "kP\0" "kr\0" "kF\0" "kR\0" "kT\0" "ku\0" "ke\0" "ks\0" \ +"l0\0" "l1\0" "la\0" "l2\0" "l3\0" "l4\0" "l5\0" "l6\0" "l7\0" "l8\0" \ +"l9\0" "mo\0" "mm\0" "nw\0" "pc\0" "DC\0" "DL\0" "DO\0" "IC\0" "SF\0" \ +"AL\0" "LE\0" "RI\0" "SR\0" "UP\0" "pk\0" "pl\0" "px\0" "ps\0" "pf\0" \ +"po\0" "rp\0" "r1\0" "r2\0" "r3\0" "rf\0" "rc\0" "cv\0" "sc\0" "sf\0" \ +"sr\0" "sa\0" "st\0" "wi\0" "ta\0" "ts\0" "uc\0" "hu\0" "iP\0" "K1\0" \ +"K3\0" "K2\0" "K4\0" "K5\0" "pO\0" "rP\0" "ac\0" "pn\0" "kB\0" "SX\0" \ +"RX\0" "SA\0" "RA\0" "XN\0" "XF\0" "eA\0" "LO\0" "LF\0" "@1\0" "@2\0" \ +"@3\0" "@4\0" "@5\0" "@6\0" "@7\0" "@8\0" "@9\0" "@0\0" "%1\0" "%2\0" \ +"%3\0" "%4\0" "%5\0" "%6\0" "%7\0" "%8\0" "%9\0" "%0\0" "&1\0" "&2\0" \ +"&3\0" "&4\0" "&5\0" "&6\0" "&7\0" "&8\0" "&9\0" "&0\0" "*1\0" "*2\0" \ +"*3\0" "*4\0" "*5\0" "*6\0" "*7\0" "*8\0" "*9\0" "*0\0" "#1\0" "#2\0" \ +"#3\0" "#4\0" "%a\0" "%b\0" "%c\0" "%d\0" "%e\0" "%f\0" "%g\0" "%h\0" \ +"%i\0" "%j\0" "!1\0" "!2\0" "!3\0" "RF\0" "F1\0" "F2\0" "F3\0" "F4\0" \ +"F5\0" "F6\0" "F7\0" "F8\0" "F9\0" "FA\0" "FB\0" "FC\0" "FD\0" "FE\0" \ +"FF\0" "FG\0" "FH\0" "FI\0" "FJ\0" "FK\0" "FL\0" "FM\0" "FN\0" "FO\0" \ +"FP\0" "FQ\0" "FR\0" "FS\0" "FT\0" "FU\0" "FV\0" "FW\0" "FX\0" "FY\0" \ +"FZ\0" "Fa\0" "Fb\0" "Fc\0" "Fd\0" "Fe\0" "Ff\0" "Fg\0" "Fh\0" "Fi\0" \ +"Fj\0" "Fk\0" "Fl\0" "Fm\0" "Fn\0" "Fo\0" "Fp\0" "Fq\0" "Fr\0" "cb\0" \ +"MC\0" "ML\0" "MR\0" "Lf\0" "SC\0" "DK\0" "RC\0" "CW\0" "WG\0" "HU\0" \ +"DI\0" "QD\0" "TO\0" "PU\0" "fh\0" "PA\0" "WA\0" "u0\0" "u1\0" "u2\0" \ +"u3\0" "u4\0" "u5\0" "u6\0" "u7\0" "u8\0" "u9\0" "op\0" "oc\0" "Ic\0" \ +"Ip\0" "sp\0" "Sf\0" "Sb\0" "ZA\0" "ZB\0" "ZC\0" "ZD\0" "ZE\0" "ZF\0" \ +"ZG\0" "ZH\0" "ZI\0" "ZJ\0" "ZK\0" "ZL\0" "ZM\0" "ZN\0" "ZO\0" "ZP\0" \ +"ZQ\0" "ZR\0" "ZS\0" "ZT\0" "ZU\0" "ZV\0" "ZW\0" "ZX\0" "ZY\0" "ZZ\0" \ +"Za\0" "Zb\0" "Zc\0" "Zd\0" "Ze\0" "Zf\0" "Zg\0" "Zh\0" "Zi\0" "Zj\0" \ +"Zk\0" "Zl\0" "Zm\0" "Zn\0" "Zo\0" "Zp\0" "Zq\0" "Zr\0" "Zs\0" "Zt\0" \ +"Zu\0" "Zv\0" "Zw\0" "Zx\0" "Zy\0" "Km\0" "Mi\0" "RQ\0" "Gm\0" "AF\0" \ +"AB\0" "xl\0" "dv\0" "ci\0" "s0\0" "s1\0" "s2\0" "s3\0" "ML\0" "MT\0" \ +"Xy\0" "Zz\0" "Yv\0" "Yw\0" "Yx\0" "Yy\0" "Yz\0" "YZ\0" "S1\0" "S2\0" \ +"S3\0" "S4\0" "S5\0" "S6\0" "S7\0" "S8\0" "Xh\0" "Xl\0" "Xo\0" "Xr\0" \ +"Xt\0" "Xv\0" "sA\0" "YI\0" "i2\0" "rs\0" "ug\0" "bs\0" "ns\0" "nc\0" \ +"dC\0" "dN\0" "nl\0" "bc\0" "MT\0" "NL\0" "dB\0" "dT\0" "kn\0" "ko\0" \ +"ma\0" "pt\0" "xr\0" "G2\0" "G3\0" "G1\0" "G4\0" "GR\0" "GL\0" "GU\0" \ +"GD\0" "GH\0" "GV\0" "GC\0" "ml\0" "mu\0" "bx\0" ; + +static name_table_data const cap_names_data[] = +{ + { 0, BOOLEAN, 0, -1 }, + { 3, BOOLEAN, 1, -1 }, + { 6, BOOLEAN, 2, -1 }, + { 9, BOOLEAN, 3, -1 }, + { 12, BOOLEAN, 4, -1 }, + { 15, BOOLEAN, 5, -1 }, + { 18, BOOLEAN, 6, -1 }, + { 21, BOOLEAN, 7, -1 }, + { 24, BOOLEAN, 8, -1 }, + { 27, BOOLEAN, 9, -1 }, + { 30, BOOLEAN, 10, -1 }, + { 33, BOOLEAN, 11, -1 }, + { 36, BOOLEAN, 12, -1 }, + { 39, BOOLEAN, 13, -1 }, + { 42, BOOLEAN, 14, -1 }, + { 45, BOOLEAN, 15, -1 }, + { 48, BOOLEAN, 16, -1 }, + { 51, BOOLEAN, 17, -1 }, + { 54, BOOLEAN, 18, -1 }, + { 57, BOOLEAN, 19, -1 }, + { 60, BOOLEAN, 20, -1 }, + { 63, BOOLEAN, 21, -1 }, + { 66, BOOLEAN, 22, -1 }, + { 69, BOOLEAN, 23, -1 }, + { 72, BOOLEAN, 24, 1 }, + { 75, BOOLEAN, 25, -1 }, + { 78, BOOLEAN, 26, -1 }, + { 81, BOOLEAN, 27, -1 }, + { 84, BOOLEAN, 28, -1 }, + { 87, BOOLEAN, 29, -1 }, + { 90, BOOLEAN, 30, -1 }, + { 93, BOOLEAN, 31, -1 }, + { 96, BOOLEAN, 32, -1 }, + { 99, BOOLEAN, 33, -1 }, + { 102, BOOLEAN, 34, -1 }, + { 105, BOOLEAN, 35, -1 }, + { 108, BOOLEAN, 36, -1 }, + { 111, NUMBER, 0, -1 }, + { 114, NUMBER, 1, -1 }, + { 117, NUMBER, 2, -1 }, + { 120, NUMBER, 3, -1 }, + { 123, NUMBER, 4, -1 }, + { 126, NUMBER, 5, -1 }, + { 129, NUMBER, 6, -1 }, + { 132, NUMBER, 7, -1 }, + { 135, NUMBER, 8, -1 }, + { 138, NUMBER, 9, -1 }, + { 141, NUMBER, 10, -1 }, + { 144, NUMBER, 11, -1 }, + { 147, NUMBER, 12, -1 }, + { 150, NUMBER, 13, -1 }, + { 153, NUMBER, 14, -1 }, + { 156, NUMBER, 15, -1 }, + { 159, NUMBER, 16, -1 }, + { 162, NUMBER, 17, -1 }, + { 165, NUMBER, 18, -1 }, + { 168, NUMBER, 19, -1 }, + { 171, NUMBER, 20, -1 }, + { 174, NUMBER, 21, -1 }, + { 177, NUMBER, 22, -1 }, + { 180, NUMBER, 23, -1 }, + { 183, NUMBER, 24, -1 }, + { 186, NUMBER, 25, -1 }, + { 189, NUMBER, 26, -1 }, + { 192, NUMBER, 27, -1 }, + { 195, NUMBER, 28, -1 }, + { 198, NUMBER, 29, -1 }, + { 201, NUMBER, 30, -1 }, + { 204, NUMBER, 31, -1 }, + { 207, NUMBER, 32, -1 }, + { 210, STRING, 0, -1 }, + { 213, STRING, 1, -1 }, + { 216, STRING, 2, -1 }, + { 219, STRING, 3, -1 }, + { 222, STRING, 4, -1 }, + { 225, STRING, 5, -1 }, + { 228, STRING, 6, -1 }, + { 231, STRING, 7, -1 }, + { 234, STRING, 8, -1 }, + { 237, STRING, 9, -1 }, + { 240, STRING, 10, -1 }, + { 243, STRING, 11, -1 }, + { 246, STRING, 12, -1 }, + { 249, STRING, 13, -1 }, + { 252, STRING, 14, -1 }, + { 255, STRING, 15, -1 }, + { 258, STRING, 16, -1 }, + { 261, STRING, 17, -1 }, + { 264, STRING, 18, -1 }, + { 267, STRING, 19, -1 }, + { 270, STRING, 20, -1 }, + { 273, STRING, 21, -1 }, + { 276, STRING, 22, -1 }, + { 279, STRING, 23, -1 }, + { 282, STRING, 24, -1 }, + { 285, STRING, 25, -1 }, + { 288, STRING, 26, -1 }, + { 291, STRING, 27, -1 }, + { 294, STRING, 28, -1 }, + { 297, STRING, 29, -1 }, + { 300, STRING, 30, -1 }, + { 303, STRING, 31, -1 }, + { 306, STRING, 32, -1 }, + { 309, STRING, 33, -1 }, + { 312, STRING, 34, -1 }, + { 315, STRING, 35, -1 }, + { 318, STRING, 36, -1 }, + { 321, STRING, 37, -1 }, + { 324, STRING, 38, -1 }, + { 327, STRING, 39, -1 }, + { 330, STRING, 40, -1 }, + { 333, STRING, 41, -1 }, + { 336, STRING, 42, -1 }, + { 339, STRING, 43, -1 }, + { 342, STRING, 44, -1 }, + { 345, STRING, 45, -1 }, + { 348, STRING, 46, -1 }, + { 351, STRING, 47, -1 }, + { 354, STRING, 48, 102 }, + { 357, STRING, 49, -1 }, + { 360, STRING, 50, -1 }, + { 363, STRING, 51, -1 }, + { 366, STRING, 52, -1 }, + { 369, STRING, 53, -1 }, + { 372, STRING, 54, -1 }, + { 375, STRING, 55, -1 }, + { 378, STRING, 56, -1 }, + { 381, STRING, 57, -1 }, + { 384, STRING, 58, -1 }, + { 387, STRING, 59, -1 }, + { 390, STRING, 60, -1 }, + { 393, STRING, 61, -1 }, + { 396, STRING, 62, -1 }, + { 399, STRING, 63, -1 }, + { 402, STRING, 64, -1 }, + { 405, STRING, 65, -1 }, + { 408, STRING, 66, -1 }, + { 411, STRING, 67, -1 }, + { 414, STRING, 68, -1 }, + { 417, STRING, 69, -1 }, + { 420, STRING, 70, -1 }, + { 423, STRING, 71, -1 }, + { 426, STRING, 72, -1 }, + { 429, STRING, 73, -1 }, + { 432, STRING, 74, -1 }, + { 435, STRING, 75, 15 }, + { 438, STRING, 76, -1 }, + { 441, STRING, 77, -1 }, + { 444, STRING, 78, -1 }, + { 447, STRING, 79, -1 }, + { 450, STRING, 80, -1 }, + { 453, STRING, 81, -1 }, + { 456, STRING, 82, -1 }, + { 459, STRING, 83, -1 }, + { 462, STRING, 84, -1 }, + { 465, STRING, 85, -1 }, + { 468, STRING, 86, -1 }, + { 471, STRING, 87, -1 }, + { 474, STRING, 88, -1 }, + { 477, STRING, 89, -1 }, + { 480, STRING, 90, -1 }, + { 483, STRING, 91, -1 }, + { 486, STRING, 92, 35 }, + { 489, STRING, 93, -1 }, + { 492, STRING, 94, -1 }, + { 495, STRING, 95, -1 }, + { 498, STRING, 96, -1 }, + { 501, STRING, 97, -1 }, + { 504, STRING, 98, -1 }, + { 507, STRING, 99, -1 }, + { 510, STRING, 100, -1 }, + { 513, STRING, 101, -1 }, + { 516, STRING, 102, 120 }, + { 519, STRING, 103, -1 }, + { 522, STRING, 104, -1 }, + { 525, STRING, 105, -1 }, + { 528, STRING, 106, -1 }, + { 531, STRING, 107, -1 }, + { 534, STRING, 108, -1 }, + { 537, STRING, 109, -1 }, + { 540, STRING, 110, -1 }, + { 543, STRING, 111, -1 }, + { 546, STRING, 112, 111 }, + { 549, STRING, 113, -1 }, + { 552, STRING, 114, -1 }, + { 555, STRING, 115, 161 }, + { 558, STRING, 116, 163 }, + { 561, STRING, 117, -1 }, + { 564, STRING, 118, 170 }, + { 567, STRING, 119, -1 }, + { 570, STRING, 120, 166 }, + { 573, STRING, 121, -1 }, + { 576, STRING, 122, -1 }, + { 579, STRING, 123, -1 }, + { 582, STRING, 124, -1 }, + { 585, STRING, 125, -1 }, + { 588, STRING, 126, -1 }, + { 591, STRING, 127, -1 }, + { 594, STRING, 128, -1 }, + { 597, STRING, 129, -1 }, + { 600, STRING, 130, -1 }, + { 603, STRING, 131, -1 }, + { 606, STRING, 132, -1 }, + { 609, STRING, 133, -1 }, + { 612, STRING, 134, -1 }, + { 615, STRING, 135, -1 }, + { 618, STRING, 136, -1 }, + { 621, STRING, 137, -1 }, + { 624, STRING, 138, -1 }, + { 627, STRING, 139, -1 }, + { 630, STRING, 140, -1 }, + { 633, STRING, 141, -1 }, + { 636, STRING, 142, -1 }, + { 639, STRING, 143, -1 }, + { 642, STRING, 144, -1 }, + { 645, STRING, 145, 37 }, + { 648, STRING, 146, -1 }, + { 651, STRING, 147, 165 }, + { 654, STRING, 148, -1 }, + { 657, STRING, 149, 117 }, + { 660, STRING, 150, 16 }, + { 663, STRING, 151, -1 }, + { 666, STRING, 152, -1 }, + { 669, STRING, 153, -1 }, + { 672, STRING, 154, 126 }, + { 675, STRING, 155, -1 }, + { 678, STRING, 156, -1 }, + { 681, STRING, 157, -1 }, + { 684, STRING, 158, -1 }, + { 687, STRING, 159, -1 }, + { 690, STRING, 160, -1 }, + { 693, STRING, 161, -1 }, + { 696, STRING, 162, -1 }, + { 699, STRING, 163, -1 }, + { 702, STRING, 164, 183 }, + { 705, STRING, 165, -1 }, + { 708, STRING, 166, -1 }, + { 711, STRING, 167, 116 }, + { 714, STRING, 168, -1 }, + { 717, STRING, 169, 97 }, + { 720, STRING, 170, 109 }, + { 723, STRING, 171, -1 }, + { 726, STRING, 172, -1 }, + { 729, STRING, 173, 100 }, + { 732, STRING, 174, 13 }, + { 735, STRING, 175, -1 }, + { 738, STRING, 176, 118 }, + { 741, STRING, 177, 96 }, + { 744, STRING, 178, -1 }, + { 747, STRING, 179, 87 }, + { 750, STRING, 180, -1 }, + { 753, STRING, 181, -1 }, + { 756, STRING, 182, -1 }, + { 759, STRING, 183, -1 }, + { 762, STRING, 184, -1 }, + { 765, STRING, 185, -1 }, + { 768, STRING, 186, -1 }, + { 771, STRING, 187, -1 }, + { 774, STRING, 188, 196 }, + { 777, STRING, 189, -1 }, + { 780, STRING, 190, -1 }, + { 783, STRING, 191, 195 }, + { 786, STRING, 192, -1 }, + { 789, STRING, 193, -1 }, + { 792, STRING, 194, -1 }, + { 795, STRING, 195, -1 }, + { 798, STRING, 196, -1 }, + { 801, STRING, 197, -1 }, + { 804, STRING, 198, -1 }, + { 807, STRING, 199, 131 }, + { 810, STRING, 200, 158 }, + { 813, STRING, 201, -1 }, + { 816, STRING, 202, -1 }, + { 819, STRING, 203, -1 }, + { 822, STRING, 204, -1 }, + { 825, STRING, 205, -1 }, + { 828, STRING, 206, -1 }, + { 831, STRING, 207, -1 }, + { 834, STRING, 208, -1 }, + { 837, STRING, 209, -1 }, + { 840, STRING, 210, -1 }, + { 843, STRING, 211, -1 }, + { 846, STRING, 212, 122 }, + { 849, STRING, 213, -1 }, + { 852, STRING, 214, -1 }, + { 855, STRING, 215, -1 }, + { 858, STRING, 216, -1 }, + { 861, STRING, 217, 46 }, + { 864, STRING, 218, 39 }, + { 867, STRING, 219, -1 }, + { 870, STRING, 220, -1 }, + { 873, STRING, 221, 88 }, + { 876, STRING, 222, 40 }, + { 879, STRING, 223, -1 }, + { 882, STRING, 224, -1 }, + { 885, STRING, 225, 47 }, + { 888, STRING, 226, -1 }, + { 891, STRING, 227, -1 }, + { 894, STRING, 228, -1 }, + { 897, STRING, 229, -1 }, + { 900, STRING, 230, 53 }, + { 903, STRING, 231, 54 }, + { 906, STRING, 232, 55 }, + { 909, STRING, 233, 56 }, + { 912, STRING, 234, 57 }, + { 915, STRING, 235, 58 }, + { 918, STRING, 236, 59 }, + { 921, STRING, 237, 60 }, + { 924, STRING, 238, 61 }, + { 927, STRING, 239, 62 }, + { 930, STRING, 240, 63 }, + { 933, STRING, 241, 64 }, + { 936, STRING, 242, 65 }, + { 939, STRING, 243, 66 }, + { 942, STRING, 244, 68 }, + { 945, STRING, 245, 69 }, + { 948, STRING, 246, -1 }, + { 951, STRING, 247, -1 }, + { 954, STRING, 248, -1 }, + { 957, STRING, 249, -1 }, + { 960, STRING, 250, -1 }, + { 963, STRING, 251, -1 }, + { 966, STRING, 252, -1 }, + { 969, STRING, 253, -1 }, + { 972, STRING, 254, -1 }, + { 975, STRING, 255, -1 }, + { 978, STRING, 256, -1 }, + { 981, STRING, 257, 7 }, + { 984, STRING, 258, 94 }, + { 987, STRING, 259, -1 }, + { 990, STRING, 260, -1 }, + { 993, STRING, 261, -1 }, + { 996, STRING, 262, -1 }, + { 999, STRING, 263, -1 }, + { 1002, STRING, 264, -1 }, + { 1005, STRING, 265, 184 }, + { 1008, STRING, 266, 29 }, + { 1011, STRING, 267, -1 }, + { 1014, STRING, 268, -1 }, + { 1017, STRING, 269, -1 }, + { 1020, STRING, 270, -1 }, + { 1023, STRING, 271, -1 }, + { 1026, STRING, 272, -1 }, + { 1029, STRING, 273, 257 }, + { 1032, STRING, 274, -1 }, + { 1035, STRING, 275, -1 }, + { 1038, STRING, 276, -1 }, + { 1041, STRING, 277, 4 }, + { 1044, STRING, 278, -1 }, + { 1047, STRING, 279, -1 }, + { 1050, STRING, 280, -1 }, + { 1053, STRING, 281, -1 }, + { 1056, STRING, 282, -1 }, + { 1059, STRING, 283, -1 }, + { 1062, STRING, 284, 229 }, + { 1065, STRING, 285, -1 }, + { 1068, STRING, 286, -1 }, + { 1071, STRING, 287, -1 }, + { 1074, STRING, 288, -1 }, + { 1077, STRING, 289, -1 }, + { 1080, STRING, 290, -1 }, + { 1083, STRING, 291, -1 }, + { 1086, STRING, 292, -1 }, + { 1089, STRING, 293, -1 }, + { 1092, STRING, 294, -1 }, + { 1095, STRING, 295, -1 }, + { 1098, STRING, 296, -1 }, + { 1101, STRING, 297, 142 }, + { 1104, STRING, 298, -1 }, + { 1107, STRING, 299, -1 }, + { 1110, STRING, 300, 149 }, + { 1113, STRING, 301, -1 }, + { 1116, STRING, 302, -1 }, + { 1119, STRING, 303, -1 }, + { 1122, STRING, 304, -1 }, + { 1125, STRING, 305, -1 }, + { 1128, STRING, 306, -1 }, + { 1131, STRING, 307, -1 }, + { 1134, STRING, 308, -1 }, + { 1137, STRING, 309, 48 }, + { 1140, STRING, 310, 247 }, + { 1143, STRING, 311, 238 }, + { 1146, STRING, 312, 239 }, + { 1149, STRING, 313, 240 }, + { 1152, STRING, 314, 241 }, + { 1155, STRING, 315, 242 }, + { 1158, STRING, 316, 243 }, + { 1161, STRING, 317, 244 }, + { 1164, STRING, 318, 245 }, + { 1167, STRING, 319, 246 }, + { 1170, STRING, 320, -1 }, + { 1173, STRING, 321, 172 }, + { 1176, STRING, 322, -1 }, + { 1179, STRING, 323, 171 }, + { 1182, STRING, 324, 103 }, + { 1185, STRING, 325, -1 }, + { 1188, STRING, 326, 104 }, + { 1191, STRING, 327, 14 }, + { 1194, STRING, 328, -1 }, + { 1197, STRING, 329, -1 }, + { 1200, STRING, 330, -1 }, + { 1203, STRING, 331, -1 }, + { 1206, STRING, 332, -1 }, + { 1209, STRING, 333, -1 }, + { 1212, STRING, 334, -1 }, + { 1215, STRING, 335, -1 }, + { 1218, STRING, 336, -1 }, + { 1221, STRING, 337, -1 }, + { 1224, STRING, 338, -1 }, + { 1227, STRING, 339, -1 }, + { 1230, STRING, 340, -1 }, + { 1233, STRING, 341, -1 }, + { 1236, STRING, 342, -1 }, + { 1239, STRING, 343, -1 }, + { 1242, STRING, 344, 208 }, + { 1245, STRING, 345, -1 }, + { 1248, STRING, 346, -1 }, + { 1251, STRING, 347, -1 }, + { 1254, STRING, 348, -1 }, + { 1257, STRING, 349, -1 }, + { 1260, STRING, 350, -1 }, + { 1263, STRING, 351, -1 }, + { 1266, STRING, 352, -1 }, + { 1269, STRING, 353, 272 }, + { 1272, STRING, 354, 273 }, + { 1275, STRING, 355, 387 }, + { 1278, STRING, 356, -1 }, + { 1281, STRING, 357, -1 }, + { 1284, STRING, 358, -1 }, + { 1287, STRING, 359, -1 }, + { 1290, STRING, 360, -1 }, + { 1293, STRING, 361, -1 }, + { 1296, STRING, 362, -1 }, + { 1299, STRING, 363, -1 }, + { 1302, STRING, 364, -1 }, + { 1305, STRING, 365, 67 }, + { 1308, STRING, 366, -1 }, + { 1311, STRING, 367, -1 }, + { 1314, STRING, 368, 341 }, + { 1317, STRING, 369, -1 }, + { 1320, STRING, 370, -1 }, + { 1323, STRING, 371, 274 }, + { 1326, STRING, 372, -1 }, + { 1329, STRING, 373, -1 }, + { 1332, STRING, 374, -1 }, + { 1335, STRING, 375, -1 }, + { 1338, STRING, 376, -1 }, + { 1341, STRING, 377, -1 }, + { 1344, STRING, 378, -1 }, + { 1347, STRING, 379, -1 }, + { 1350, STRING, 380, -1 }, + { 1353, STRING, 381, 357 }, + { 1356, STRING, 382, 358 }, + { 1359, STRING, 383, 359 }, + { 1362, STRING, 384, 360 }, + { 1365, STRING, 385, 361 }, + { 1368, STRING, 386, -1 }, + { 1371, STRING, 387, -1 }, + { 1374, STRING, 388, -1 }, + { 1377, STRING, 389, -1 }, + { 1380, STRING, 390, -1 }, + { 1383, STRING, 391, -1 }, + { 1386, STRING, 392, -1 }, + { 1389, STRING, 393, -1 }, + { 1392, STRING, 394, 390 }, + { 1395, STRING, 395, -1 }, + { 1398, NUMBER, 33, -1 }, + { 1401, BOOLEAN, 37, -1 }, + { 1404, BOOLEAN, 38, -1 }, + { 1407, BOOLEAN, 39, 248 }, + { 1410, NUMBER, 34, -1 }, + { 1413, NUMBER, 35, 203 }, + { 1416, STRING, 396, -1 }, + { 1419, STRING, 397, -1 }, + { 1422, BOOLEAN, 40, 439 }, + { 1425, BOOLEAN, 41, -1 }, + { 1428, NUMBER, 36, -1 }, + { 1431, NUMBER, 37, -1 }, + { 1434, NUMBER, 38, -1 }, + { 1437, STRING, 398, -1 }, + { 1440, STRING, 399, 379 }, + { 1443, BOOLEAN, 42, -1 }, + { 1446, BOOLEAN, 43, -1 }, + { 1449, STRING, 400, 386 }, + { 1452, STRING, 401, 425 }, + { 1455, STRING, 402, 385 }, + { 1458, STRING, 403, 388 }, + { 1461, STRING, 404, 412 }, + { 1464, STRING, 405, 406 }, + { 1467, STRING, 406, 415 }, + { 1470, STRING, 407, -1 }, + { 1473, STRING, 408, 402 }, + { 1476, STRING, 409, 416 }, + { 1479, STRING, 410, -1 }, + { 1482, STRING, 411, 464 }, + { 1485, STRING, 412, 399 }, + { 1488, STRING, 413, -1 } +}; + +static struct name_table_entry *_nc_cap_table = 0; + +static const HashValue _nc_cap_hash_table[995] = +{ + 253, + -1, + 45, + 211, + 263, + -1, + -1, + -1, + -1, + -1, + -1, + 449, + 457, + 311, + 411, + -1, + 132, + -1, + -1, + -1, + -1, + 123, + 71, + 75, + 92, + 427, + 233, + -1, + 336, + -1, + -1, + 370, + 291, + 494, + 472, + 138, + 186, + -1, + -1, + -1, + -1, + 19, + 193, + 436, + 431, + 453, + -1, + 315, + 489, + 349, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 353, + -1, + -1, + -1, + -1, + -1, + 124, + -1, + -1, + -1, + 394, + -1, + 367, + 167, + -1, + 191, + 371, + -1, + 89, + -1, + -1, + -1, + 363, + 460, + 319, + 419, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 70, + 74, + -1, + -1, + -1, + -1, + -1, + 38, + -1, + 128, + -1, + 398, + -1, + -1, + 481, + -1, + -1, + 202, + -1, + 28, + 43, + -1, + 17, + -1, + -1, + 444, + 423, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 496, + -1, + -1, + -1, + -1, + 430, + -1, + -1, + -1, + -1, + 296, + -1, + 21, + -1, + 187, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 321, + 276, + -1, + -1, + 31, + 375, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 429, + 476, + -1, + -1, + -1, + 300, + 400, + -1, + 218, + -1, + -1, + 227, + -1, + -1, + -1, + -1, + 11, + 285, + 179, + -1, + 325, + 280, + -1, + 224, + 162, + 480, + -1, + -1, + 51, + -1, + -1, + 201, + 204, + -1, + -1, + -1, + -1, + 22, + -1, + 304, + 404, + -1, + 154, + -1, + -1, + -1, + -1, + 108, + -1, + 76, + -1, + -1, + -1, + -1, + 329, + 284, + -1, + 270, + 84, + 383, + 250, + 426, + -1, + -1, + 260, + 113, + 110, + 114, + 86, + -1, + -1, + -1, + -1, + 308, + 408, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 433, + -1, + 112, + 230, + -1, + 333, + 428, + -1, + 223, + 288, + 484, + 254, + -1, + -1, + 210, + 264, + -1, + 98, + -1, + 83, + 471, + -1, + 450, + -1, + 312, + 487, + -1, + 151, + -1, + -1, + -1, + 342, + 24, + -1, + 80, + 99, + -1, + 234, + -1, + 337, + 101, + -1, + 8, + 292, + 391, + -1, + 139, + 164, + -1, + -1, + -1, + -1, + -1, + 194, + 437, + -1, + 454, + -1, + 316, + 492, + -1, + 155, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 395, + -1, + 143, + 168, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 364, + -1, + 320, + 420, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 207, + -1, + -1, + 157, + 447, + 495, + -1, + 137, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 440, + 445, + 424, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 79, + 175, + -1, + 297, + 493, + 23, + 178, + -1, + -1, + -1, + 340, + 52, + -1, + -1, + -1, + 346, + 344, + -1, + 322, + 277, + -1, + -1, + 32, + 376, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 373, + -1, + 470, + -1, + -1, + -1, + 301, + 401, + -1, + 127, + -1, + -1, + -1, + -1, + -1, + -1, + 339, + 12, + -1, + -1, + -1, + 326, + 281, + 348, + 125, + 36, + 380, + 343, + -1, + 42, + -1, + 267, + -1, + -1, + 372, + 115, + -1, + 2, + 345, + -1, + 305, + 405, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 237, + -1, + 330, + 121, + -1, + 271, + -1, + 384, + 251, + -1, + 189, + -1, + 261, + 199, + -1, + -1, + -1, + -1, + -1, + 177, + -1, + 309, + 409, + -1, + -1, + -1, + -1, + 226, + -1, + -1, + -1, + -1, + -1, + -1, + 231, + 352, + 334, + -1, + -1, + -1, + 289, + 486, + 255, + 135, + 160, + 212, + 265, + -1, + -1, + -1, + -1, + 434, + -1, + 451, + -1, + 313, + 413, + -1, + -1, + -1, + -1, + -1, + -1, + 214, + -1, + -1, + -1, + -1, + 235, + 6, + 338, + 10, + -1, + 478, + 293, + 392, + -1, + 140, + 217, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 347, + 455, + 459, + 317, + 417, + -1, + 134, + -1, + -1, + -1, + 49, + -1, + -1, + 72, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 153, + -1, + 396, + -1, + 144, + 169, + -1, + -1, + 200, + -1, + -1, + -1, + -1, + 482, + 365, + 461, + 442, + 421, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 197, + 432, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 446, + 441, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 18, + -1, + -1, + -1, + 298, + 490, + -1, + -1, + -1, + -1, + -1, + -1, + 26, + -1, + -1, + 351, + -1, + -1, + -1, + 323, + 278, + -1, + 369, + 33, + 377, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 302, + 491, + -1, + 129, + -1, + -1, + -1, + -1, + 216, + 473, + 27, + 91, + 107, + -1, + -1, + 327, + 282, + -1, + 268, + -1, + 381, + 469, + 368, + 174, + -1, + 258, + 198, + -1, + 206, + 180, + -1, + -1, + 176, + -1, + 306, + 488, + -1, + 150, + -1, + -1, + -1, + 438, + 475, + -1, + -1, + -1, + -1, + 228, + -1, + 331, + -1, + -1, + -1, + 286, + 485, + 252, + -1, + -1, + 209, + 262, + 41, + -1, + 466, + -1, + -1, + -1, + 448, + -1, + 310, + 410, + -1, + 130, + -1, + -1, + -1, + -1, + 25, + -1, + -1, + -1, + 50, + 232, + -1, + 335, + -1, + -1, + -1, + 290, + 389, + 256, + 136, + 185, + 213, + 266, + -1, + -1, + -1, + 192, + 435, + -1, + 452, + 458, + 314, + 414, + -1, + 152, + -1, + -1, + -1, + 474, + -1, + -1, + 215, + 81, + 5, + 236, + -1, + 82, + -1, + -1, + 479, + 294, + 393, + -1, + 141, + 190, + -1, + -1, + 105, + -1, + -1, + -1, + 477, + 20, + 362, + -1, + 318, + 418, + -1, + 156, + -1, + -1, + -1, + -1, + 95, + 467, + 73, + 93, + 220, + 219, + -1, + 9, + 119, + -1, + 159, + -1, + 397, + 468, + 145, + 188, + -1, + 465, + -1, + 205, + 106, + 90, + 44, + 3, + 366, + -1, + 443, + 422, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 295, + -1, + 173, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 355, + -1, + 222, + 221, + -1, + -1, + 275, + 356, + -1, + 30, + 374, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 225, + -1, + -1, + 299, + -1, + -1, + 148, + -1, + -1, + 181, + -1, + -1, + -1, + -1, + 462, + -1, + -1, + -1, + 324, + 279, + -1, + -1, + 34, + 378, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 350, + -1, + 303, + 403, + -1, + 133, + -1, + -1, + -1, + -1, + -1, + -1, + 77, + -1, + 182, + -1, + -1, + 328, + 283, + -1, + 269, + 463, + 382, + 249, + -1, + -1, + -1, + 259, + -1, + -1, + -1, + -1, + -1, + 85, + -1, + 456, + 307, + 407, + -1, + 147, + -1, + -1, + -1, + -1, + -1, + -1, + 78, + -1, + -1, + 354, + -1, + 332, + -1, + -1, + 146, + 287, + 483, + 0 /* base-of-table */ +}; + +#if (BOOLCOUNT!=44)||(NUMCOUNT!=39)||(STRCOUNT!=414) +#error --> term.h and comp_captab.c disagree about the <-- +#error --> numbers of booleans, numbers and/or strings <-- +#endif + +/* generated by MKcaptab.awk capalias(1) */ + +static struct alias *_nc_capalias_table = 0; + +static const char capalias_text[] = "\ +sb\0sr\0BSD\0\ +BO\0mr\0AT&T\0\ +CI\0vi\0AT&T\0\ +CV\0ve\0AT&T\0\ +DS\0mh\0AT&T\0\ +FE\0LF\0AT&T\0\ +FL\0LO\0AT&T\0\ +XS\0mk\0AT&T\0\ +EE\0mh\0XENIX\0\ +GE\0ae\0XENIX\0\ +GS\0as\0XENIX\0\ +CF\0vi\0XENIX\0\ +CO\0ve\0XENIX\0\ +EN\0@7\0XENIX\0\ +HM\0kh\0XENIX\0\ +LD\0kL\0XENIX\0\ +PD\0kN\0XENIX\0\ +PN\0po\0XENIX\0\ +PS\0pf\0XENIX\0\ +PU\0kP\0XENIX\0\ +RT\0@8\0XENIX\0\ +UP\0ku\0XENIX\0\ +G6\0XENIX\0\ +G7\0XENIX\0\ +G5\0XENIX\0\ +G8\0XENIX\0\ +Gr\0XENIX\0\ +Gr\0XENIX\0\ +Gu\0XENIX\0\ +Gd\0XENIX\0\ +Gh\0XENIX\0\ +Gv\0XENIX\0\ +Gc\0XENIX\0\ +GG\0XENIX\0\ +kq\0%1\0IBM\0\ +HS\0mh\0IRIS\0\ +KA\0k;\0Tek\0\ +KB\0F1\0Tek\0\ +KC\0F2\0Tek\0\ +KD\0F3\0Tek\0\ +KE\0F4\0Tek\0\ +KF\0F5\0Tek\0\ +BC\0Sb\0Tek\0\ +FC\0Sf\0Tek\0\ +"; + +static const alias_table_data capalias_data[] = { + { 0, 3, 6}, /* scroll */ + { 10, 13, 16}, /* enter_reverse_mode */ + { 21, 24, 27}, /* cursor_invisible */ + { 32, 35, 38}, /* cursor_normal */ + { 43, 46, 49}, /* enter_dim_mode */ + { 54, 57, 60}, /* label_on */ + { 65, 68, 71}, /* label_off */ + { 76, 79, 82}, /* enter_secure_mode */ + { 87, 90, 93}, /* exit_attribute_mode */ + { 99, 102, 105}, /* exit_alt_charset_mode */ + { 111, 114, 117}, /* enter_alt_charset_mode */ + { 123, 126, 129}, /* cursor_invis */ + { 135, 138, 141}, /* cursor_normal */ + { 147, 150, 153}, /* key_end */ + { 159, 162, 165}, /* key_home */ + { 171, 174, 177}, /* key_dl */ + { 183, 186, 189}, /* key_npage */ + { 195, 198, 201}, /* prtr_off */ + { 207, 210, 213}, /* prtr_on */ + { 219, 222, 225}, /* key_ppage */ + { 231, 234, 237}, /* kent */ + { 243, 246, 249}, /* kcuu1 */ + { 255, -1, 258}, /* double-ACS_ULCORNER */ + { 264, -1, 267}, /* double-ACS_LLCORNER */ + { 273, -1, 276}, /* double-ACS_URCORNER */ + { 282, -1, 285}, /* double-ACS_LRCORNER */ + { 291, -1, 294}, /* double-ACS_LTEE */ + { 300, -1, 303}, /* double-ACS_RTEE */ + { 309, -1, 312}, /* double-ACS_BTEE */ + { 318, -1, 321}, /* double */ + { 327, -1, 330}, /* double-ACS_HLINE */ + { 336, -1, 339}, /* double-ACS_VLINE */ + { 345, -1, 348}, /* double-ACS_PLUS */ + { 354, -1, 357}, /* acs-glitch */ + { 363, 366, 369}, /* key_help */ + { 373, 376, 379}, /* enter_dim_mode */ + { 384, 387, 390}, /* key_f10 */ + { 394, 397, 400}, /* key_f11 */ + { 404, 407, 410}, /* key_f12 */ + { 414, 417, 420}, /* key_f13 */ + { 424, 427, 430}, /* key_f14 */ + { 434, 437, 440}, /* key_f15 */ + { 444, 447, 450}, /* set_background */ + { 454, 457, 460}, /* set_foreground */ +}; + +/* generated by MKcaptab.awk infoalias(1) */ + +static struct alias *_nc_infoalias_table = 0; + +static const char infoalias_text[] = "\ +font0\0s0ds\0IBM\0\ +font1\0s1ds\0IBM\0\ +font2\0s2ds\0IBM\0\ +font3\0s3ds\0IBM\0\ +kbtab\0kcbt\0IBM\0\ +ksel\0kslt\0IBM\0\ +"; + +static const alias_table_data infoalias_data[] = { + { 0, 6, 11}, /* set0_des_seq */ + { 15, 21, 26}, /* set1_des_seq */ + { 30, 36, 41}, /* set2_des_seq */ + { 45, 51, 56}, /* set3_des_seq */ + { 60, 66, 71}, /* key_backtab */ + { 75, 80, 85}, /* key_select */ +}; + +/* *INDENT-ON* */ + +#if 1 +static void +next_string(const char *strings, unsigned *offset) +{ + *offset += (unsigned) strlen(strings + *offset) + 1; +} + +static const struct name_table_entry * +_nc_build_names(struct name_table_entry **actual, + const name_table_data * source, + const char *strings) +{ + if (*actual == 0) { + *actual = typeCalloc(struct name_table_entry, CAPTABSIZE); + if (*actual != 0) { + unsigned n; + unsigned len = 0; + for (n = 0; n < CAPTABSIZE; ++n) { + (*actual)[n].nte_name = strings + len; + (*actual)[n].nte_type = source[n].nte_type; + (*actual)[n].nte_index = source[n].nte_index; + (*actual)[n].nte_link = source[n].nte_link; + next_string(strings, &len); + } + } + } + return *actual; +} + +#define add_alias(field) \ + if (source[n].field >= 0) { \ + (*actual)[n].field = strings + source[n].field; \ + } + +static const struct alias * +_nc_build_alias(struct alias **actual, + const alias_table_data * source, + const char *strings, + size_t tablesize) +{ + if (*actual == 0) { + *actual = typeCalloc(struct alias, tablesize + 1); + if (*actual != 0) { + size_t n; + for (n = 0; n < tablesize; ++n) { + add_alias(from); + add_alias(to); + add_alias(source); + } + } + } + return *actual; +} + +#define build_names(root) _nc_build_names(&_nc_##root##_table, \ + root##_names_data, \ + root##_names_text) +#define build_alias(root) _nc_build_alias(&_nc_##root##alias_table, \ + root##alias_data, \ + root##alias_text, \ + SIZEOF(root##alias_data)) +#else +#define build_names(root) _nc_ ## root ## _table +#define build_alias(root) _nc_ ## root ## alias_table +#endif + +NCURSES_EXPORT(const struct name_table_entry *) +_nc_get_table(bool termcap) +{ + return termcap ? build_names(cap) : build_names(info); +} + +/* entrypoint used by tack 1.07 */ +NCURSES_EXPORT(const HashValue *) +_nc_get_hash_table(bool termcap) +{ + return termcap ? _nc_cap_hash_table : _nc_info_hash_table; +} + +NCURSES_EXPORT(const struct alias *) +_nc_get_alias_table(bool termcap) +{ + return termcap ? build_alias(cap) : build_alias(info); +} + +static HashValue +info_hash(const char *string) +{ + long sum = 0; + + DEBUG(9, ("hashing %s", string)); + while (*string) { + sum += (long) (UChar(*string) + (UChar(*(string + 1)) << 8)); + string++; + } + + DEBUG(9, ("sum is %ld", sum)); + return (HashValue) (sum % HASHTABSIZE); +} + +#define TCAP_LEN 2 /* only 1- or 2-character names are used */ + +static HashValue +tcap_hash(const char *string) +{ + char temp[TCAP_LEN + 1]; + int limit = 0; + + while (*string) { + temp[limit++] = *string++; + if (limit >= TCAP_LEN) + break; + } + temp[limit] = '\0'; + return info_hash(temp); +} + +static int +compare_tcap_names(const char *a, const char *b) +{ + return !strncmp(a, b, (size_t) TCAP_LEN); +} + +static int +compare_info_names(const char *a, const char *b) +{ + return !strcmp(a, b); +} + +static const HashData hash_data[2] = +{ + {HASHTABSIZE, _nc_info_hash_table, info_hash, compare_info_names}, + {HASHTABSIZE, _nc_cap_hash_table, tcap_hash, compare_tcap_names} +}; + +NCURSES_EXPORT(const HashData *) +_nc_get_hash_info(bool termcap) +{ + return &hash_data[(termcap != FALSE)]; +} + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_comp_captab_leaks(void) +{ +#if 1 + FreeIfNeeded(_nc_cap_table); + FreeIfNeeded(_nc_info_table); + FreeIfNeeded(_nc_capalias_table); + FreeIfNeeded(_nc_infoalias_table); +#endif +} +#endif /* NO_LEAKS */ diff --git a/third_party/ncurses/comp_error.c b/third_party/ncurses/comp_error.c new file mode 100644 index 000000000..19c710235 --- /dev/null +++ b/third_party/ncurses/comp_error.c @@ -0,0 +1,168 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 1998-2012,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * comp_error.c -- Error message routines + * + */ + +#include "curses.priv.h" + +#include "tic.h" + +MODULE_ID("$Id: comp_error.c,v 1.40 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE; +NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */ +NCURSES_EXPORT_VAR(int) _nc_curr_col = 0; /* current column # in input */ + +#define SourceName _nc_globals.comp_sourcename +#define TermType _nc_globals.comp_termtype + +NCURSES_EXPORT(const char *) +_nc_get_source(void) +{ + return SourceName; +} + +NCURSES_EXPORT(void) +_nc_set_source(const char *const name) +{ + FreeIfNeeded(SourceName); + SourceName = strdup(name); +} + +NCURSES_EXPORT(void) +_nc_set_type(const char *const name) +{ +#define MY_SIZE (size_t) MAX_NAME_SIZE + if (TermType == 0) + TermType = typeMalloc(char, MY_SIZE + 1); + if (TermType != 0) { + TermType[0] = '\0'; + if (name) { + _nc_STRNCAT(TermType, name, MY_SIZE, MY_SIZE); + } + } +} + +NCURSES_EXPORT(void) +_nc_get_type(char *name) +{ +#if NO_LEAKS + if (name == 0 && TermType != 0) { + FreeAndNull(TermType); + return; + } +#endif + if (name != 0) + _nc_STRCPY(name, TermType != 0 ? TermType : "", MAX_NAME_SIZE); +} + +static NCURSES_INLINE void +where_is_problem(void) +{ + fprintf(stderr, "\"%s\"", SourceName ? SourceName : "?"); + if (_nc_curr_line >= 0) + fprintf(stderr, ", line %d", _nc_curr_line); + if (_nc_curr_col >= 0) + fprintf(stderr, ", col %d", _nc_curr_col); + if (TermType != 0 && TermType[0] != '\0') + fprintf(stderr, ", terminal '%s'", TermType); + fputc(':', stderr); + fputc(' ', stderr); +} + +NCURSES_EXPORT(void) +_nc_warning(const char *const fmt, ...) +{ + va_list argp; + + if (_nc_suppress_warnings) + return; + + where_is_problem(); + va_start(argp, fmt); + vfprintf(stderr, fmt, argp); + fprintf(stderr, "\n"); + va_end(argp); +} + +NCURSES_EXPORT(void) +_nc_err_abort(const char *const fmt, ...) +{ + va_list argp; + + where_is_problem(); + va_start(argp, fmt); + vfprintf(stderr, fmt, argp); + fprintf(stderr, "\n"); + va_end(argp); + exit(EXIT_FAILURE); +} + +NCURSES_EXPORT(void) +_nc_syserr_abort(const char *const fmt, ...) +{ + va_list argp; + + where_is_problem(); + va_start(argp, fmt); + vfprintf(stderr, fmt, argp); + fprintf(stderr, "\n"); + va_end(argp); + +#if defined(TRACE) || !defined(NDEBUG) + /* If we're debugging, try to show where the problem occurred - this + * will dump core. + */ +#ifndef USE_ROOT_ENVIRON + if (getuid() != ROOT_UID) +#endif + abort(); +#endif + /* Dumping core in production code is not a good idea. + */ + exit(EXIT_FAILURE); +} + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_comp_error_leaks(void) +{ + FreeAndNull(SourceName); + FreeAndNull(TermType); +} +#endif diff --git a/third_party/ncurses/comp_expand.c b/third_party/ncurses/comp_expand.c new file mode 100644 index 000000000..7ad9d3137 --- /dev/null +++ b/third_party/ncurses/comp_expand.c @@ -0,0 +1,228 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1998 * + ****************************************************************************/ + +#include "curses.priv.h" + +#include +#include "tic.h" + +MODULE_ID("$Id: comp_expand.c,v 1.34 2021/09/04 10:29:15 tom Exp $") + +#if 0 +#define DEBUG_THIS(p) DEBUG(9, p) +#else +#define DEBUG_THIS(p) /* nothing */ +#endif + +static int +trailing_spaces(const char *src) +{ + while (*src == ' ') + src++; + return *src == 0; +} + +/* this deals with differences over whether 0x7f and 0x80..0x9f are controls */ +#define REALPRINT(s) (UChar(*(s)) < 127 && isprint(UChar(*(s)))) + +#define P_LIMIT(p) (length - (size_t)(p)) + +NCURSES_EXPORT(char *) +_nc_tic_expand(const char *srcp, bool tic_format, int numbers) +{ + static char *buffer; + static size_t length; + + int bufp; + const char *str = VALID_STRING(srcp) ? srcp : "\0\0"; + size_t need = (2 + strlen(str)) * 4; + int ch; + int octals = 0; + struct { + int ch; + int offset; + } fixups[MAX_TC_FIXUPS]; + + if (srcp == 0) { +#if NO_LEAKS + if (buffer != 0) { + FreeAndNull(buffer); + length = 0; + } +#endif + return 0; + } + if (buffer == 0 || need > length) { + if ((buffer = typeRealloc(char, length = need, buffer)) == 0) + return 0; + } + + DEBUG_THIS(("_nc_tic_expand %s:%s:%s", + tic_format ? "ti" : "tc", + numbers ? "#" : "", + _nc_visbuf(srcp))); + bufp = 0; + while ((ch = UChar(*str)) != 0) { + if (ch == '%' && REALPRINT(str + 1)) { + buffer[bufp++] = *str++; + /* + * Though the character literals are more compact, most + * terminal descriptions use numbers and are not easy + * to read in character-literal form. + */ + switch (numbers) { + case -1: + if (str[0] == S_QUOTE + && str[1] != '\\' + && REALPRINT(str + 1) + && str[2] == S_QUOTE) { + _nc_SPRINTF(buffer + bufp, _nc_SLIMIT(P_LIMIT(bufp)) + "{%d}", str[1]); + bufp += (int) strlen(buffer + bufp); + str += 2; + } else { + buffer[bufp++] = *str; + } + break; + /* + * If we have a "%{number}", try to translate it into + * a "%'char'" form, since that will run a little faster + * when we're interpreting it. Also, having one form + * for the constant makes it simpler to compare terminal + * descriptions. + */ + case 1: + if (str[0] == L_BRACE + && isdigit(UChar(str[1]))) { + char *dst = 0; + long value = strtol(str + 1, &dst, 0); + if (dst != 0 + && *dst == R_BRACE + && value < 127 + && value != '\\' /* FIXME */ + && isprint((int) value)) { + ch = (int) value; + buffer[bufp++] = S_QUOTE; + if (ch == '\\' + || ch == S_QUOTE) + buffer[bufp++] = '\\'; + buffer[bufp++] = (char) ch; + buffer[bufp++] = S_QUOTE; + str = dst; + } else { + buffer[bufp++] = *str; + } + } else { + buffer[bufp++] = *str; + } + break; + default: + if (*str == ',') /* minitel1 uses this */ + buffer[bufp++] = '\\'; + buffer[bufp++] = *str; + break; + } + } else if (ch == 128) { + buffer[bufp++] = '\\'; + buffer[bufp++] = '0'; + } else if (ch == '\033') { + buffer[bufp++] = '\\'; + buffer[bufp++] = 'E'; + } else if (ch == '\\' && tic_format && (str == srcp || str[-1] != '^')) { + buffer[bufp++] = '\\'; + buffer[bufp++] = '\\'; + } else if (ch == ' ' && tic_format && (str == srcp || + trailing_spaces(str))) { + buffer[bufp++] = '\\'; + buffer[bufp++] = 's'; + } else if ((ch == ',' || ch == '^') && tic_format) { + buffer[bufp++] = '\\'; + buffer[bufp++] = (char) ch; + } else if (REALPRINT(str) + && (ch != ',' + && !(ch == ':' && !tic_format) + && !(ch == '!' && !tic_format) + && ch != '^')) + buffer[bufp++] = (char) ch; + else if (ch == '\r') { + buffer[bufp++] = '\\'; + buffer[bufp++] = 'r'; + } else if (ch == '\n') { + buffer[bufp++] = '\\'; + buffer[bufp++] = 'n'; + } +#define UnCtl(c) ((c) + '@') + else if (UChar(ch) < 32 + && isdigit(UChar(str[1]))) { + _nc_SPRINTF(&buffer[bufp], _nc_SLIMIT(P_LIMIT(bufp)) + "^%c", UnCtl(ch)); + bufp += 2; + } else { + _nc_SPRINTF(&buffer[bufp], _nc_SLIMIT(P_LIMIT(bufp)) + "\\%03o", ch); + if ((octals < MAX_TC_FIXUPS) && + ((tic_format && (ch == 127)) || ch < 32)) { + fixups[octals].ch = UChar(ch); + fixups[octals].offset = bufp; + ++octals; + } + bufp += 4; + } + + str++; + } + + buffer[bufp] = '\0'; + + /* + * If most of a short string is ASCII control characters, reformat the + * string to show those in up-arrow format. For longer strings, it is + * more likely that the characters are just binary coding. + * + * If we're formatting termcap, just use the shorter format (up-arrows). + */ + if (octals != 0 && (!tic_format || (bufp - (4 * octals)) < MIN_TC_FIXUPS)) { + while (--octals >= 0) { + char *p = buffer + fixups[octals].offset; + *p++ = '^'; + *p++ = (char) ((fixups[octals].ch == 127) + ? '?' + : (fixups[octals].ch + (int) '@')); + while ((p[0] = p[2]) != 0) { + ++p; + } + } + } + DEBUG_THIS(("... %s", _nc_visbuf(buffer))); + return (buffer); +} diff --git a/third_party/ncurses/comp_hash.c b/third_party/ncurses/comp_hash.c new file mode 100644 index 000000000..b4c2de579 --- /dev/null +++ b/third_party/ncurses/comp_hash.c @@ -0,0 +1,150 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 1998-2008,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * comp_hash.c --- Routines to deal with the hashtable of capability + * names. + * + */ + +#define USE_TERMLIB 1 +#include "curses.priv.h" + +#include "tic.h" +#include "hashsize.h" + +MODULE_ID("$Id: comp_hash.c,v 1.53 2020/02/02 23:34:34 tom Exp $") + +/* + * Finds the entry for the given string in the hash table if present. + * Returns a pointer to the entry in the table or 0 if not found. + */ +/* entrypoint used by tack 1.07 */ +NCURSES_EXPORT(struct name_table_entry const *) +_nc_find_entry(const char *string, + const HashValue * hash_table) +{ + bool termcap = (hash_table != _nc_get_hash_table(FALSE)); + const HashData *data = _nc_get_hash_info(termcap); + int hashvalue; + struct name_table_entry const *ptr = 0; + struct name_table_entry const *real_table; + + hashvalue = data->hash_of(string); + + if (hashvalue >= 0 + && (unsigned) hashvalue < data->table_size + && data->table_data[hashvalue] >= 0) { + + real_table = _nc_get_table(termcap); + ptr = real_table + data->table_data[hashvalue]; + while (!data->compare_names(ptr->nte_name, string)) { + if (ptr->nte_link < 0) { + ptr = 0; + break; + } + ptr = real_table + (ptr->nte_link + + data->table_data[data->table_size]); + } + } + + return (ptr); +} + +/* + * Finds the entry for the given name with the given type in the given table if + * present (as distinct from _nc_find_entry, which finds the last entry + * regardless of type). + * + * Returns a pointer to the entry in the table or 0 if not found. + */ +NCURSES_EXPORT(struct name_table_entry const *) +_nc_find_type_entry(const char *string, + int type, + bool termcap) +{ + struct name_table_entry const *ptr = NULL; + const HashData *data = _nc_get_hash_info(termcap); + int hashvalue = data->hash_of(string); + + if (hashvalue >= 0 + && (unsigned) hashvalue < data->table_size + && data->table_data[hashvalue] >= 0) { + const struct name_table_entry *const table = _nc_get_table(termcap); + + ptr = table + data->table_data[hashvalue]; + while (ptr->nte_type != type + || !data->compare_names(ptr->nte_name, string)) { + if (ptr->nte_link < 0) { + ptr = 0; + break; + } + ptr = table + (ptr->nte_link + data->table_data[data->table_size]); + } + } + + return ptr; +} + +#if NCURSES_XNAMES +NCURSES_EXPORT(struct user_table_entry const *) +_nc_find_user_entry(const char *string) +{ + const HashData *data = _nc_get_hash_user(); + int hashvalue; + struct user_table_entry const *ptr = 0; + struct user_table_entry const *real_table; + + hashvalue = data->hash_of(string); + + if (hashvalue >= 0 + && (unsigned) hashvalue < data->table_size + && data->table_data[hashvalue] >= 0) { + + real_table = _nc_get_userdefs_table(); + ptr = real_table + data->table_data[hashvalue]; + while (!data->compare_names(ptr->ute_name, string)) { + if (ptr->ute_link < 0) { + ptr = 0; + break; + } + ptr = real_table + (ptr->ute_link + + data->table_data[data->table_size]); + } + } + + return (ptr); +} +#endif /* NCURSES_XNAMES */ diff --git a/third_party/ncurses/comp_parse.c b/third_party/ncurses/comp_parse.c new file mode 100644 index 000000000..ab6a219e6 --- /dev/null +++ b/third_party/ncurses/comp_parse.c @@ -0,0 +1,771 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * comp_parse.c -- parser driver loop and use handling. + * + * Use this code by calling _nc_read_entry_source() on as many source + * files as you like (either terminfo or termcap syntax). If you + * want use-resolution, call _nc_resolve_uses2(). To free the list + * storage, do _nc_free_entries(). + */ + +#include "curses.priv.h" + +#include + +#include "tic.h" + +MODULE_ID("$Id: comp_parse.c,v 1.131 2022/10/23 13:15:58 tom Exp $") + +static void sanity_check2(TERMTYPE2 *, bool); +NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2; + +static void fixup_acsc(TERMTYPE2 *, int); + +static void +enqueue(ENTRY * ep) +/* add an entry to the in-core list */ +{ + ENTRY *newp; + + DEBUG(2, (T_CALLED("enqueue(ep=%p)"), (void *) ep)); + + newp = _nc_copy_entry(ep); + if (newp == 0) + _nc_err_abort(MSG_NO_MEMORY); + + newp->last = _nc_tail; + _nc_tail = newp; + + newp->next = 0; + if (newp->last) + newp->last->next = newp; + DEBUG(2, (T_RETURN(""))); +} + +#define NAMEBUFFER_SIZE (MAX_NAME_SIZE + 2) + +static char * +force_bar(char *dst, char *src) +{ + if (strchr(src, '|') == 0) { + size_t len = strlen(src); + if (len > MAX_NAME_SIZE) + len = MAX_NAME_SIZE; + _nc_STRNCPY(dst, src, MAX_NAME_SIZE); + _nc_STRCPY(dst + len, "|", NAMEBUFFER_SIZE - len); + src = dst; + } + return src; +} +#define ForceBar(dst, src) ((strchr(src, '|') == 0) ? force_bar(dst, src) : src) + +#if NCURSES_USE_TERMCAP && NCURSES_XNAMES +static char * +skip_index(char *name) +{ + char *bar = strchr(name, '|'); + + if (bar != 0 && (bar - name) == 2) + name = bar + 1; + + return name; +} +#endif + +static bool +check_collisions(char *n1, char *n2, int counter) +{ + char *pstart, *qstart, *pend, *qend; + char nc1[NAMEBUFFER_SIZE]; + char nc2[NAMEBUFFER_SIZE]; + + n1 = ForceBar(nc1, n1); + n2 = ForceBar(nc2, n2); + +#if NCURSES_USE_TERMCAP && NCURSES_XNAMES + if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) { + n1 = skip_index(n1); + n2 = skip_index(n2); + } +#endif + + for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1) { + for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1) { + if ((pend - pstart == qend - qstart) + && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) { + if (counter > 0) + (void) fprintf(stderr, "Name collision '%.*s' between\n", + (int) (pend - pstart), pstart); + return (TRUE); + } + } + } + + return (FALSE); +} + +static char * +next_name(char *name) +{ + if (*name != '\0') + ++name; + return name; +} + +static char * +name_ending(char *name) +{ + if (*name == '\0') { + name = 0; + } else { + while (*name != '\0' && *name != '|') + ++name; + } + return name; +} + +/* + * Essentially, find the conflict reported in check_collisions() and remove + * it from the second name, unless that happens to be the last alias. + */ +static bool +remove_collision(char *n1, char *n2) +{ + char *p2 = n2; + char *pstart, *qstart, *pend, *qend; + bool removed = FALSE; + +#if NCURSES_USE_TERMCAP && NCURSES_XNAMES + if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) { + n1 = skip_index(n1); + p2 = n2 = skip_index(n2); + } +#endif + + for (pstart = n1; (pend = name_ending(pstart)); pstart = next_name(pend)) { + for (qstart = n2; (qend = name_ending(qstart)); qstart = next_name(qend)) { + if ((pend - pstart == qend - qstart) + && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) { + if (qstart != p2 || *qend == '|') { + if (*qend == '|') + ++qend; + while ((*qstart++ = *qend++) != '\0') ; + fprintf(stderr, "...now\t%s\n", p2); + removed = TRUE; + } else { + fprintf(stderr, "Cannot remove alias '%.*s'\n", + (int) (qend - qstart), qstart); + } + break; + } + } + } + + return removed; +} + +/* do any of the aliases in a pair of terminal names match? */ +NCURSES_EXPORT(bool) +_nc_entry_match(char *n1, char *n2) +{ + return check_collisions(n1, n2, 0); +} + +/**************************************************************************** + * + * Entry compiler and resolution logic + * + ****************************************************************************/ + +NCURSES_EXPORT(void) +_nc_read_entry_source(FILE *fp, char *buf, + int literal, bool silent, + bool(*hook) (ENTRY *)) +/* slurp all entries in the given file into core */ +{ + ENTRY thisentry; + bool oldsuppress = _nc_suppress_warnings; + int immediate = 0; + + DEBUG(2, + (T_CALLED("_nc_read_entry_source(" + "file=%p, buf=%p, literal=%d, silent=%d, hook=%#" + PRIxPTR ")"), + (void *) fp, buf, literal, silent, (intptr_t) hook)); + + if (silent) + _nc_suppress_warnings = TRUE; /* shut the lexer up, too */ + + _nc_reset_input(fp, buf); + for (;;) { + memset(&thisentry, 0, sizeof(thisentry)); + if (_nc_parse_entry(&thisentry, literal, silent) == ERR) + break; + if (!isalnum(UChar(thisentry.tterm.term_names[0]))) + _nc_err_abort("terminal names must start with letter or digit"); + + /* + * This can be used for immediate compilation of entries with no "use=" + * references to disk. That avoids consuming a lot of memory when the + * resolution code could fetch entries off disk. + */ + if (hook != NULLHOOK && (*hook) (&thisentry)) { + immediate++; + } else { + enqueue(&thisentry); + /* + * The enqueued entry is copied with _nc_copy_termtype(), so we can + * free some of the data from thisentry, i.e., the arrays. + */ + FreeIfNeeded(thisentry.tterm.Booleans); + FreeIfNeeded(thisentry.tterm.Numbers); + FreeIfNeeded(thisentry.tterm.Strings); + FreeIfNeeded(thisentry.tterm.str_table); +#if NCURSES_XNAMES + FreeIfNeeded(thisentry.tterm.ext_Names); + FreeIfNeeded(thisentry.tterm.ext_str_table); +#endif + } + } + + if (_nc_tail) { + /* set up the head pointer */ + for (_nc_head = _nc_tail; _nc_head->last; _nc_head = _nc_head->last) + continue; + + DEBUG(2, ("head = %s", _nc_head->tterm.term_names)); + DEBUG(2, ("tail = %s", _nc_tail->tterm.term_names)); + } +#ifdef TRACE + else if (!immediate) + DEBUG(2, ("no entries parsed")); +#endif + + _nc_suppress_warnings = oldsuppress; + DEBUG(2, (T_RETURN(""))); +} + +#if 0 && NCURSES_XNAMES +static unsigned +find_capname(TERMTYPE2 *p, const char *name) +{ + unsigned num_names = NUM_EXT_NAMES(p); + unsigned n; + if (name != 0) { + for (n = 0; n < num_names; ++n) { + if (!strcmp(p->ext_Names[n], name)) + break; + } + } else { + n = num_names + 1; + } + return n; +} + +static int +extended_captype(TERMTYPE2 *p, unsigned which) +{ + int result = UNDEF; + unsigned limit = 0; + limit += p->ext_Booleans; + if (limit != 0 && which < limit) { + result = BOOLEAN; + } else { + limit += p->ext_Numbers; + if (limit != 0 && which < limit) { + result = NUMBER; + } else { + limit += p->ext_Strings; + if (limit != 0 && which < limit) { + result = ((p->Strings[STRCOUNT + which] != CANCELLED_STRING) + ? STRING + : CANCEL); + } else if (which >= limit) { + result = CANCEL; + } + } + } + return result; +} + +static const char * +name_of_captype(int which) +{ + const char *result = "?"; + switch (which) { + case BOOLEAN: + result = "boolean"; + break; + case NUMBER: + result = "number"; + break; + case STRING: + result = "string"; + break; + } + return result; +} + +#define valid_TERMTYPE2(p) \ + ((p) != 0 && \ + (p)->term_names != 0 && \ + (p)->ext_Names != 0) + +/* + * Disallow changing the type of an extended capability when doing a "use" + * if one or the other is a string. + */ +static int +invalid_merge(TERMTYPE2 *to, TERMTYPE2 *from) +{ + int rc = FALSE; + if (valid_TERMTYPE2(to) + && valid_TERMTYPE2(from)) { + char *to_name = _nc_first_name(to->term_names); + char *from_name = strdup(_nc_first_name(from->term_names)); + unsigned num_names = NUM_EXT_NAMES(from); + unsigned n; + + for (n = 0; n < num_names; ++n) { + const char *capname = from->ext_Names[n]; + int tt = extended_captype(to, find_capname(to, capname)); + int tf = extended_captype(from, n); + + if (tt <= STRING + && tf <= STRING + && (tt == STRING) != (tf == STRING)) { + if (from_name != 0 && strcmp(to_name, from_name)) { + _nc_warning("merge of %s to %s changes type of %s from %s to %s", + from_name, + to_name, + from->ext_Names[n], + name_of_captype(tf), + name_of_captype(tt)); + } else { + _nc_warning("merge of %s changes type of %s from %s to %s", + to_name, + from->ext_Names[n], + name_of_captype(tf), + name_of_captype(tt)); + } + rc = TRUE; + } + } + free(from_name); + } + return rc; +} +#define validate_merge(p, q) \ + if (invalid_merge(&((p)->tterm), &((q)->tterm))) \ + return FALSE +#else +#define validate_merge(p, q) /* nothing */ +#endif + +NCURSES_EXPORT(int) +_nc_resolve_uses2(bool fullresolve, bool literal) +/* try to resolve all use capabilities */ +{ + ENTRY *qp, *rp, *lastread = 0; + bool keepgoing; + unsigned i, j; + int unresolved, total_unresolved, multiples; + + DEBUG(2, (T_CALLED("_nc_resolve_uses2"))); + + /* + * Check for multiple occurrences of the same name. + */ + multiples = 0; + for_entry_list(qp) { + int matchcount = 0; + + for_entry_list2(rp, qp->next) { + if (qp > rp + && check_collisions(qp->tterm.term_names, + rp->tterm.term_names, + matchcount + 1)) { + if (!matchcount++) { + (void) fprintf(stderr, "\t%s\n", rp->tterm.term_names); + } + (void) fprintf(stderr, "and\t%s\n", qp->tterm.term_names); + if (!remove_collision(rp->tterm.term_names, + qp->tterm.term_names)) { + ++multiples; + } + } + } + } + if (multiples > 0) { + DEBUG(2, (T_RETURN("false"))); + return (FALSE); + } + + DEBUG(2, ("NO MULTIPLE NAME OCCURRENCES")); + + /* + * First resolution stage: compute link pointers corresponding to names. + */ + total_unresolved = 0; + _nc_curr_col = -1; + for_entry_list(qp) { + unresolved = 0; + for (i = 0; i < qp->nuses; i++) { + bool foundit; + char *child = _nc_first_name(qp->tterm.term_names); + char *lookfor = qp->uses[i].name; + long lookline = qp->uses[i].line; + + if (lookfor == 0) + continue; + + foundit = FALSE; + + _nc_set_type(child); + + /* first, try to resolve from in-core records */ + for_entry_list(rp) { + if (rp != qp + && _nc_name_match(rp->tterm.term_names, lookfor, "|")) { + DEBUG(2, ("%s: resolving use=%s %p (in core)", + child, lookfor, lookfor)); + + qp->uses[i].link = rp; + foundit = TRUE; + + /* verify that there are no earlier uses */ + for (j = 0; j < i; ++j) { + if (qp->uses[j].link != NULL + && !strcmp(qp->uses[j].link->tterm.term_names, + rp->tterm.term_names)) { + _nc_warning("duplicate use=%s", lookfor); + break; + } + } + } + } + + /* if that didn't work, try to merge in a compiled entry */ + if (!foundit) { + TERMTYPE2 thisterm; + char filename[PATH_MAX]; + + memset(&thisterm, 0, sizeof(thisterm)); + if (_nc_read_entry2(lookfor, filename, &thisterm) == 1) { + DEBUG(2, ("%s: resolving use=%s (compiled)", + child, lookfor)); + + TYPE_MALLOC(ENTRY, 1, rp); + rp->tterm = thisterm; + rp->nuses = 0; + rp->next = lastread; + lastread = rp; + + qp->uses[i].link = rp; + foundit = TRUE; + + /* verify that there are no earlier uses */ + for (j = 0; j < i; ++j) { + if (qp->uses[j].link != NULL + && !strcmp(qp->uses[j].link->tterm.term_names, + rp->tterm.term_names)) { + _nc_warning("duplicate use=%s", lookfor); + break; + } + } + } + } + + /* no good, mark this one unresolvable and complain */ + if (!foundit) { + unresolved++; + total_unresolved++; + + _nc_curr_line = (int) lookline; + _nc_warning("resolution of use=%s failed", lookfor); + qp->uses[i].link = 0; + } + } + } + if (total_unresolved) { + /* free entries read in off disk */ + _nc_free_entries(lastread); + DEBUG(2, (T_RETURN("false"))); + return (FALSE); + } + + DEBUG(2, ("NAME RESOLUTION COMPLETED OK")); + + /* + * OK, at this point all (char *) references in `name' members + * have been successfully converted to (ENTRY *) pointers in + * `link' members. Time to do the actual merges. + */ + if (fullresolve) { + do { + ENTRY merged; + + keepgoing = FALSE; + + for_entry_list(qp) { + if (qp->nuses > 0) { + DEBUG(2, ("%s: attempting merge of %d entries", + _nc_first_name(qp->tterm.term_names), + qp->nuses)); + /* + * If any of the use entries we're looking for is + * incomplete, punt. We'll catch this entry on a + * subsequent pass. + */ + for (i = 0; i < qp->nuses; i++) { + if (qp->uses[i].link + && qp->uses[i].link->nuses) { + DEBUG(2, ("%s: use entry %d unresolved", + _nc_first_name(qp->tterm.term_names), i)); + goto incomplete; + } + } + + /* + * First, make sure there is no garbage in the + * merge block. As a side effect, copy into + * the merged entry the name field and string + * table pointer. + */ + _nc_copy_termtype2(&(merged.tterm), &(qp->tterm)); + + /* + * Now merge in each use entry in the proper + * (reverse) order. + */ + for (; qp->nuses; qp->nuses--) { + int n = (int) (qp->nuses - 1); + validate_merge(&merged, qp->uses[n].link); + _nc_merge_entry(&merged, qp->uses[n].link); + free(qp->uses[n].name); + } + + /* + * Now merge in the original entry. + */ + validate_merge(&merged, qp); + _nc_merge_entry(&merged, qp); + + /* + * Replace the original entry with the merged one. + */ + FreeIfNeeded(qp->tterm.Booleans); + FreeIfNeeded(qp->tterm.Numbers); + FreeIfNeeded(qp->tterm.Strings); + FreeIfNeeded(qp->tterm.str_table); +#if NCURSES_XNAMES + FreeIfNeeded(qp->tterm.ext_Names); + FreeIfNeeded(qp->tterm.ext_str_table); +#endif + qp->tterm = merged.tterm; + _nc_wrap_entry(qp, TRUE); + + /* + * We know every entry is resolvable because name resolution + * didn't bomb. So go back for another pass. + */ + /* FALLTHRU */ + incomplete: + keepgoing = TRUE; + } + } + } while + (keepgoing); + + DEBUG(2, ("MERGES COMPLETED OK")); + } + + DEBUG(2, ("RESOLUTION FINISHED")); + + if (fullresolve) { + _nc_curr_col = -1; + for_entry_list(qp) { + _nc_curr_line = (int) qp->startline; + _nc_set_type(_nc_first_name(qp->tterm.term_names)); + /* + * tic overrides this function pointer to provide more verbose + * checking. + */ + if (_nc_check_termtype2 != sanity_check2) { + SCREEN *save_SP = SP; + SCREEN fake_sp; + TERMINAL fake_tm; + TERMINAL *save_tm = cur_term; + + /* + * Setup so that tic can use ordinary terminfo interface to + * obtain capability information. + */ + memset(&fake_sp, 0, sizeof(fake_sp)); + memset(&fake_tm, 0, sizeof(fake_tm)); + fake_sp._term = &fake_tm; + TerminalType(&fake_tm) = qp->tterm; + _nc_set_screen(&fake_sp); + set_curterm(&fake_tm); + + _nc_check_termtype2(&qp->tterm, literal); + + /* + * Checking calls tparm, which can allocate memory. Fix leaks. + */ +#define TPS(name) fake_tm.tparm_state.name + FreeAndNull(TPS(out_buff)); + FreeAndNull(TPS(fmt_buff)); +#undef TPS + + _nc_set_screen(save_SP); + set_curterm(save_tm); + } else { + fixup_acsc(&qp->tterm, literal); + } + } + DEBUG(2, ("SANITY CHECK FINISHED")); + } + + DEBUG(2, (T_RETURN("true"))); + return (TRUE); +} + +/* + * This bit of legerdemain turns all the terminfo variable names into + * references to locations in the arrays Booleans, Numbers, and Strings --- + * precisely what's needed. + */ + +#undef CUR +#define CUR tp-> + +static void +fixup_acsc(TERMTYPE2 *tp, int literal) +{ + if (!literal) { + if (acs_chars == ABSENT_STRING + && PRESENT(enter_alt_charset_mode) + && PRESENT(exit_alt_charset_mode)) + acs_chars = strdup(VT_ACSC); + } +} + +static void +sanity_check2(TERMTYPE2 *tp, bool literal) +{ + if (!PRESENT(exit_attribute_mode)) { +#ifdef __UNUSED__ /* this casts too wide a net */ + bool terminal_entry = !strchr(tp->term_names, '+'); + if (terminal_entry && + (PRESENT(set_attributes) + || PRESENT(enter_standout_mode) + || PRESENT(enter_underline_mode) + || PRESENT(enter_blink_mode) + || PRESENT(enter_bold_mode) + || PRESENT(enter_dim_mode) + || PRESENT(enter_secure_mode) + || PRESENT(enter_protected_mode) + || PRESENT(enter_reverse_mode))) + _nc_warning("no exit_attribute_mode"); +#endif /* __UNUSED__ */ + PAIRED(enter_standout_mode, exit_standout_mode); + PAIRED(enter_underline_mode, exit_underline_mode); +#if defined(enter_italics_mode) && defined(exit_italics_mode) + PAIRED(enter_italics_mode, exit_italics_mode); +#endif + } + + /* we do this check/fix in postprocess_termcap(), but some packagers + * prefer to bypass it... + */ + if (!literal) { + fixup_acsc(tp, literal); + ANDMISSING(enter_alt_charset_mode, acs_chars); + ANDMISSING(exit_alt_charset_mode, acs_chars); + } + + /* listed in structure-member order of first argument */ + PAIRED(enter_alt_charset_mode, exit_alt_charset_mode); + ANDMISSING(enter_blink_mode, exit_attribute_mode); + ANDMISSING(enter_bold_mode, exit_attribute_mode); + PAIRED(exit_ca_mode, enter_ca_mode); + PAIRED(enter_delete_mode, exit_delete_mode); + ANDMISSING(enter_dim_mode, exit_attribute_mode); + PAIRED(enter_insert_mode, exit_insert_mode); + ANDMISSING(enter_secure_mode, exit_attribute_mode); + ANDMISSING(enter_protected_mode, exit_attribute_mode); + ANDMISSING(enter_reverse_mode, exit_attribute_mode); + PAIRED(from_status_line, to_status_line); + PAIRED(meta_off, meta_on); + + PAIRED(prtr_on, prtr_off); + PAIRED(save_cursor, restore_cursor); + PAIRED(enter_xon_mode, exit_xon_mode); + PAIRED(enter_am_mode, exit_am_mode); + ANDMISSING(label_off, label_on); +#if defined(display_clock) && defined(remove_clock) + PAIRED(display_clock, remove_clock); +#endif + ANDMISSING(set_color_pair, initialize_pair); +} + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_leaks_tic(void) +{ + T((T_CALLED("_nc_leaks_tic()"))); + _nc_globals.leak_checking = TRUE; + _nc_alloc_entry_leaks(); + _nc_captoinfo_leaks(); + _nc_comp_scan_leaks(); +#if BROKEN_LINKER || USE_REENTRANT + _nc_names_leaks(); + _nc_codes_leaks(); +#endif + _nc_tic_expand(0, FALSE, 0); + T((T_RETURN(""))); +} + +NCURSES_EXPORT(void) +_nc_free_tic(int code) +{ + T((T_CALLED("_nc_free_tic(%d)"), code)); + _nc_leaks_tic(); + exit_terminfo(code); +} +#endif diff --git a/third_party/ncurses/comp_scan.c b/third_party/ncurses/comp_scan.c new file mode 100644 index 000000000..3106ca6c7 --- /dev/null +++ b/third_party/ncurses/comp_scan.c @@ -0,0 +1,1060 @@ +/**************************************************************************** +,* Copyright 2020-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996 on * + ****************************************************************************/ + +/* + * comp_scan.c --- Lexical scanner for terminfo compiler. + * + * _nc_reset_input() + * _nc_get_token() + * _nc_panic_mode() + * int _nc_syntax; + * int _nc_curr_line; + * long _nc_curr_file_pos; + * long _nc_comment_start; + * long _nc_comment_end; + */ + +#include "curses.priv.h" + +#include +#include "tic.h" + +MODULE_ID("$Id: comp_scan.c,v 1.119 2022/08/07 00:20:26 tom Exp $") + +/* + * Maximum length of string capability we'll accept before raising an error. + * Yes, there is a real capability in /etc/termcap this long, an "is". + */ +#define MAXCAPLEN 600 + +#define iswhite(ch) (ch == ' ' || ch == '\t') + +NCURSES_EXPORT_VAR (int) _nc_syntax = 0; /* termcap or terminfo? */ +NCURSES_EXPORT_VAR (int) _nc_strict_bsd = 1; /* ncurses extended termcap? */ +NCURSES_EXPORT_VAR (long) _nc_curr_file_pos = 0; /* file offset of current line */ +NCURSES_EXPORT_VAR (long) _nc_comment_start = 0; /* start of comment range before name */ +NCURSES_EXPORT_VAR (long) _nc_comment_end = 0; /* end of comment range before name */ +NCURSES_EXPORT_VAR (long) _nc_start_line = 0; /* start line of current entry */ + +NCURSES_EXPORT_VAR (struct token) _nc_curr_token = +{ + 0, 0, 0 +}; + +/***************************************************************************** + * + * Token-grabbing machinery + * + *****************************************************************************/ + +static bool first_column; /* See 'next_char()' below */ +static bool had_newline; +static char separator; /* capability separator */ +static int pushtype; /* type of pushback token */ +static char *pushname; + +#if NCURSES_EXT_FUNCS +NCURSES_EXPORT_VAR (bool) _nc_disable_period = FALSE; /* used by tic -a option */ +#endif + +/***************************************************************************** + * + * Character-stream handling + * + *****************************************************************************/ + +#define LEXBUFSIZ 1024 + +static char *bufptr; /* otherwise, the input buffer pointer */ +static char *bufstart; /* start of buffer so we can compute offsets */ +static FILE *yyin; /* scanner's input file descriptor */ + +/* + * _nc_reset_input() + * + * Resets the input-reading routines. Used on initialization, + * or after a seek has been done. Exactly one argument must be + * non-null. + */ + +NCURSES_EXPORT(void) +_nc_reset_input(FILE *fp, char *buf) +{ + TR(TRACE_DATABASE, + (T_CALLED("_nc_reset_input(fp=%p, buf=%p)"), (void *) fp, buf)); + + pushtype = NO_PUSHBACK; + if (pushname != 0) + pushname[0] = '\0'; + yyin = fp; + bufstart = bufptr = buf; + _nc_curr_file_pos = 0L; + if (fp != 0) + _nc_curr_line = 0; + _nc_curr_col = 0; + + returnVoidDB; +} + +/* + * int last_char() + * + * Returns the final nonblank character on the current input buffer + */ +static int +last_char(int from_end) +{ + size_t len = strlen(bufptr); + int result = 0; + + while (len--) { + if (!isspace(UChar(bufptr[len]))) { + if (from_end <= (int) len) + result = bufptr[(int) len - from_end]; + break; + } + } + return result; +} + +/* + * Read, like fgets(), but error-out if the input contains nulls. + */ +static int +get_text(char *buffer, int length) +{ + int count = 0; + int limit = length - 1; + + while (limit-- > 0) { + int ch = fgetc(yyin); + + if (ch == '\0') { + _nc_err_abort("This is not a text-file"); + } else if (ch == EOF) { + break; + } + ++count; + *buffer++ = (char) ch; + if (ch == '\n') + break; + } + *buffer = '\0'; + return count; +} + +/* + * int next_char() + * + * Returns the next character in the input stream. Comments and leading + * white space are stripped. + * + * The global state variable 'firstcolumn' is set TRUE if the character + * returned is from the first column of the input line. + * + * The global variable _nc_curr_line is incremented for each new line. + * The global variable _nc_curr_file_pos is set to the file offset of the + * beginning of each line. + */ + +static int +next_char(void) +{ + static char *result; + static size_t allocated; + int the_char; + + if (!yyin) { + if (result != 0) { + FreeAndNull(result); + FreeAndNull(pushname); + bufptr = 0; + bufstart = 0; + allocated = 0; + } + /* + * An string with an embedded null will truncate the input. This is + * intentional (we don't read binary files here). + */ + if (bufptr == 0 || *bufptr == '\0') + return (EOF); + if (*bufptr == '\n') { + _nc_curr_line++; + _nc_curr_col = 0; + } else if (*bufptr == '\t') { + _nc_curr_col = (_nc_curr_col | 7); + } + } else if (!bufptr || !*bufptr) { + /* + * In theory this could be recoded to do its I/O one character at a + * time, saving the buffer space. In practice, this turns out to be + * quite hard to get completely right. Try it and see. If you + * succeed, don't forget to hack push_back() correspondingly. + */ + size_t len; + + do { + size_t used = 0; + bufstart = 0; + do { + if (used + (LEXBUFSIZ / 4) >= allocated) { + allocated += (allocated + LEXBUFSIZ); + result = typeRealloc(char, allocated, result); + if (result == 0) + return (EOF); + if (bufstart) + bufstart = result; + } + if (used == 0) + _nc_curr_file_pos = ftell(yyin); + + if (get_text(result + used, (int) (allocated - used))) { + bufstart = result; + if (used == 0) { + if (_nc_curr_line == 0 + && IS_TIC_MAGIC(result)) { + _nc_err_abort("This is a compiled terminal description, not a source"); + } + _nc_curr_line++; + _nc_curr_col = 0; + } + } else { + if (used != 0) + _nc_STRCAT(result, "\n", allocated); + } + if ((bufptr = bufstart) != 0) { + used = strlen(bufptr); + if (used == 0) + return (EOF); + while (iswhite(*bufptr)) { + if (*bufptr == '\t') { + _nc_curr_col = (_nc_curr_col | 7) + 1; + } else { + _nc_curr_col++; + } + bufptr++; + } + + /* + * Treat a trailing the same as a so we + * can read files on OS/2, etc. + */ + if ((len = strlen(bufptr)) > 1) { + if (bufptr[len - 1] == '\n' + && bufptr[len - 2] == '\r') { + len--; + bufptr[len - 1] = '\n'; + bufptr[len] = '\0'; + } + } + } else { + return (EOF); + } + } while (bufptr[len - 1] != '\n'); /* complete a line */ + } while (result[0] == '#'); /* ignore comments */ + } else if (*bufptr == '\t') { + _nc_curr_col = (_nc_curr_col | 7); + } + + first_column = (bufptr == bufstart); + if (first_column) + had_newline = FALSE; + + _nc_curr_col++; + the_char = *bufptr++; + return UChar(the_char); +} + +static void +push_back(int c) +/* push a character back onto the input stream */ +{ + if (bufptr == bufstart) + _nc_syserr_abort("Can't backspace off beginning of line"); + *--bufptr = (char) c; + _nc_curr_col--; +} + +static long +stream_pos(void) +/* return our current character position in the input stream */ +{ + return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0)); +} + +static bool +end_of_stream(void) +/* are we at end of input? */ +{ + return ((yyin + ? (feof(yyin) && (bufptr == NULL || *bufptr == '\0')) + : (bufptr && *bufptr == '\0')) + ? TRUE : FALSE); +} + +/* Assume we may be looking at a termcap-style continuation */ +static NCURSES_INLINE int +eat_escaped_newline(int ch) +{ + if (ch == '\\') + while ((ch = next_char()) == '\n' || iswhite(ch)) + continue; + return ch; +} + +#define TOK_BUF_SIZE MAX_ENTRY_SIZE + +#define OkToAdd() \ + ((tok_ptr - tok_buf) < (TOK_BUF_SIZE - 2)) + +#define AddCh(ch) \ + *tok_ptr++ = (char) ch; \ + *tok_ptr = '\0' + +static char *tok_buf; + +/* + * int + * get_token() + * + * Scans the input for the next token, storing the specifics in the + * global structure 'curr_token' and returning one of the following: + * + * NAMES A line beginning in column 1. 'name' + * will be set to point to everything up to but + * not including the first separator on the line. + * BOOLEAN An entry consisting of a name followed by + * a separator. 'name' will be set to point to + * the name of the capability. + * NUMBER An entry of the form + * name#digits, + * 'name' will be set to point to the capability + * name and 'valnumber' to the number given. + * STRING An entry of the form + * name=characters, + * 'name' is set to the capability name and + * 'valstring' to the string of characters, with + * input translations done. + * CANCEL An entry of the form + * name@, + * 'name' is set to the capability name and + * 'valnumber' to -1. + * EOF The end of the file has been reached. + * + * A `separator' is either a comma or a semicolon, depending on whether + * we are in termcap or terminfo mode. + * + */ + +NCURSES_EXPORT(int) +_nc_get_token(bool silent) +{ + static const char terminfo_punct[] = "@%&*!#"; + + char *after_name; /* after primary name */ + char *after_list; /* after primary and alias list */ + char *numchk; + char *tok_ptr; + char *s; + char numbuf[80]; + int ch, c0, c1; + int dot_flag = FALSE; + int type; + long number; + long token_start; + unsigned found; +#ifdef TRACE + int old_line; + int old_col; +#endif + + DEBUG(3, (T_CALLED("_nc_get_token(silent=%d)"), silent)); + + if (pushtype != NO_PUSHBACK) { + int retval = pushtype; + + _nc_set_type(pushname != 0 ? pushname : ""); + DEBUG(3, ("pushed-back token: `%s', class %d", + _nc_curr_token.tk_name, pushtype)); + + pushtype = NO_PUSHBACK; + if (pushname != 0) + pushname[0] = '\0'; + + /* currtok wasn't altered by _nc_push_token() */ + DEBUG(3, (T_RETURN("%d"), retval)); + return (retval); + } + + if (end_of_stream()) { + yyin = 0; + (void) next_char(); /* frees its allocated memory */ + if (tok_buf != 0) { + if (_nc_curr_token.tk_name == tok_buf) + _nc_curr_token.tk_name = 0; + } + DEBUG(3, (T_RETURN("%d"), EOF)); + return (EOF); + } + + start_token: + token_start = stream_pos(); + while ((ch = next_char()) == '\n' || iswhite(ch)) { + if (ch == '\n') + had_newline = TRUE; + continue; + } + + ch = eat_escaped_newline(ch); + _nc_curr_token.tk_valstring = 0; + +#ifdef TRACE + old_line = _nc_curr_line; + old_col = _nc_curr_col; +#endif + if (ch == EOF) + type = EOF; + else { + /* if this is a termcap entry, skip a leading separator */ + if (separator == ':' && ch == ':') + ch = next_char(); + + if (ch == '.' +#if NCURSES_EXT_FUNCS + && !_nc_disable_period +#endif + ) { + dot_flag = TRUE; + DEBUG(8, ("dot-flag set")); + + while ((ch = next_char()) == '.' || iswhite(ch)) + continue; + } + + if (ch == EOF) { + type = EOF; + goto end_of_token; + } + + /* have to make some punctuation chars legal for terminfo */ + if (!isalnum(UChar(ch)) +#if NCURSES_EXT_FUNCS + && !(ch == '.' && _nc_disable_period) +#endif + && ((strchr) (terminfo_punct, (char) ch) == 0)) { + if (!silent) + _nc_warning("Illegal character (expected alphanumeric or %s) - '%s'", + terminfo_punct, unctrl(UChar(ch))); + _nc_panic_mode(separator); + goto start_token; + } + + if (tok_buf == 0) + tok_buf = typeMalloc(char, TOK_BUF_SIZE); + +#ifdef TRACE + old_line = _nc_curr_line; + old_col = _nc_curr_col; +#endif + tok_ptr = tok_buf; + AddCh(ch); + + if (first_column) { + _nc_comment_start = token_start; + _nc_comment_end = _nc_curr_file_pos; + _nc_start_line = _nc_curr_line; + + _nc_syntax = ERR; + after_name = 0; + after_list = 0; + while ((ch = next_char()) != '\n') { + if (ch == EOF) { + _nc_err_abort(MSG_NO_INPUTS); + } else if (ch == '|') { + after_list = tok_ptr; + if (after_name == 0) + after_name = tok_ptr; + } else if (ch == ':' && last_char(0) != ',') { + _nc_syntax = SYN_TERMCAP; + separator = ':'; + break; + } else if (ch == ',') { + _nc_syntax = SYN_TERMINFO; + separator = ','; + /* + * If we did not see a '|', then we found a name with no + * aliases or description. + */ + if (after_name == 0) + break; + /* + * We saw a comma, but are not entirely sure this is + * terminfo format, since we can still be parsing the + * description field (for either syntax). + * + * A properly formatted termcap line ends with either a + * colon, or a backslash after a colon. It is possible + * to have a backslash in the middle of a capability, but + * then there would be no leading whitespace on the next + * line - something we want to discourage. + */ + c0 = last_char(0); + c1 = last_char(1); + if (c1 != ':' && c0 != '\\' && c0 != ':') { + bool capability = FALSE; + + /* + * Since it is not termcap, assume the line is terminfo + * format. However, the comma can be embedded in a + * description field. It also can be a separator + * between a description field and a capability. + * + * Improve the guess by checking if the next word after + * the comma does not look like a capability. In that + * case, extend the description past the comma. + */ + for (s = bufptr; isspace(UChar(*s)); ++s) { + ; + } + if (islower(UChar(*s))) { + char *name = s; + while (isalnum(UChar(*s))) { + ++s; + } + if (*s == '#' || *s == '=' || *s == '@') { + /* + * Checking solely with syntax allows us to + * support extended capabilities with string + * values. + */ + capability = TRUE; + } else if (*s == ',') { + c0 = *s; + *s = '\0'; + /* + * Otherwise, we can handle predefined boolean + * capabilities, still aided by syntax. + */ + if (_nc_find_entry(name, + _nc_get_hash_table(FALSE))) { + capability = TRUE; + } + *s = (char) c0; + } + } + if (capability) { + break; + } + } + } else + ch = eat_escaped_newline(ch); + + if (OkToAdd()) { + AddCh(ch); + } else { + break; + } + } + *tok_ptr = '\0'; + if (_nc_syntax == ERR) { + /* + * Grrr...what we ought to do here is barf, complaining that + * the entry is malformed. But because a couple of name fields + * in the 8.2 termcap file end with |\, we just have to assume + * it is termcap syntax. + */ + _nc_syntax = SYN_TERMCAP; + separator = ':'; + } else if (_nc_syntax == SYN_TERMINFO) { + /* throw away trailing /, *$/ */ + for (--tok_ptr; + iswhite(*tok_ptr) || *tok_ptr == ','; + tok_ptr--) + continue; + tok_ptr[1] = '\0'; + } + + /* + * This is the soonest we have the terminal name fetched. Set up + * for following warning messages. If there's no '|', then there + * is no description. + */ + if (after_name != 0) { + ch = *after_name; + *after_name = '\0'; + _nc_set_type(tok_buf); + *after_name = (char) ch; + } + + /* + * Compute the boundary between the aliases and the description + * field for syntax-checking purposes. + */ + if (after_list != 0) { + if (!silent) { + if (*after_list == '\0' || strchr("|", after_list[1]) != NULL) { + _nc_warning("empty longname field"); + } else if (strchr(after_list, ' ') == 0) { + _nc_warning("older tic versions may treat the description field as an alias"); + } + } + } else { + after_list = tok_buf + strlen(tok_buf); + DEBUG(2, ("missing description")); + } + + /* + * Whitespace in a name field other than the long name can confuse + * rdist and some termcap tools. Slashes are a no-no. Other + * special characters can be dangerous due to shell expansion. + */ + for (s = tok_buf; s < after_list; ++s) { + if (isspace(UChar(*s))) { + if (!silent) + _nc_warning("whitespace in name or alias field"); + break; + } else if (*s == '/') { + if (!silent) + _nc_warning("slashes aren't allowed in names or aliases"); + break; + } else if (strchr("$[]!*?", *s)) { + if (!silent) + _nc_warning("dubious character `%c' in name or alias field", *s); + break; + } + } + + _nc_curr_token.tk_name = tok_buf; + type = NAMES; + } else { + if (had_newline && _nc_syntax == SYN_TERMCAP) { + _nc_warning("Missing backslash before newline"); + had_newline = FALSE; + } + while ((ch = next_char()) != EOF) { + if (!isalnum(UChar(ch))) { + if (_nc_syntax == SYN_TERMINFO) { + if (ch != '_') + break; + } else { /* allow ';' for "k;" */ + if (ch != ';') + break; + } + } + if (OkToAdd()) { + AddCh(ch); + } else { + ch = EOF; + break; + } + } + + *tok_ptr++ = '\0'; /* separate name/value in buffer */ + switch (ch) { + case ',': + case ':': + if (ch != separator) + _nc_err_abort("Separator inconsistent with syntax"); + _nc_curr_token.tk_name = tok_buf; + type = BOOLEAN; + break; + case '@': + if ((ch = next_char()) != separator && !silent) + _nc_warning("Missing separator after `%s', have %s", + tok_buf, unctrl(UChar(ch))); + _nc_curr_token.tk_name = tok_buf; + type = CANCEL; + break; + + case '#': + found = 0; + while (isalnum(ch = next_char())) { + numbuf[found++] = (char) ch; + if (found >= sizeof(numbuf) - 1) + break; + } + numbuf[found] = '\0'; + number = strtol(numbuf, &numchk, 0); + if (!silent) { + if (numchk == numbuf) + _nc_warning("no value given for `%s'", tok_buf); + if ((*numchk != '\0') || (ch != separator)) + _nc_warning("Missing separator for `%s'", tok_buf); + if (number < 0) + _nc_warning("value of `%s' cannot be negative", tok_buf); + if (number > MAX_OF_TYPE(NCURSES_INT2)) { + _nc_warning("limiting value of `%s' from %#lx to %#x", + tok_buf, + number, MAX_OF_TYPE(NCURSES_INT2)); + number = MAX_OF_TYPE(NCURSES_INT2); + } + } + _nc_curr_token.tk_name = tok_buf; + _nc_curr_token.tk_valnumber = (int) number; + type = NUMBER; + break; + + case '=': + ch = _nc_trans_string(tok_ptr, tok_buf + TOK_BUF_SIZE); + if (!silent && ch != separator) + _nc_warning("Missing separator"); + _nc_curr_token.tk_name = tok_buf; + _nc_curr_token.tk_valstring = tok_ptr; + type = STRING; + break; + + case EOF: + type = EOF; + break; + default: + /* just to get rid of the compiler warning */ + type = UNDEF; + if (!silent) + _nc_warning("Illegal character - '%s'", unctrl(UChar(ch))); + } + } /* end else (first_column == FALSE) */ + } /* end else (ch != EOF) */ + + end_of_token: + +#ifdef TRACE + if (dot_flag == TRUE) + DEBUG(8, ("Commented out ")); + + if (_nc_tracing >= DEBUG_LEVEL(8)) { + _tracef("parsed %d.%d to %d.%d", + old_line, old_col, + _nc_curr_line, _nc_curr_col); + } + if (_nc_tracing >= DEBUG_LEVEL(7)) { + switch (type) { + case BOOLEAN: + _tracef("Token: Boolean; name='%s'", + _nc_curr_token.tk_name); + break; + + case NUMBER: + _tracef("Token: Number; name='%s', value=%d", + _nc_curr_token.tk_name, + _nc_curr_token.tk_valnumber); + break; + + case STRING: + _tracef("Token: String; name='%s', value=%s", + _nc_curr_token.tk_name, + _nc_visbuf(_nc_curr_token.tk_valstring)); + break; + + case CANCEL: + _tracef("Token: Cancel; name='%s'", + _nc_curr_token.tk_name); + break; + + case NAMES: + + _tracef("Token: Names; value='%s'", + _nc_curr_token.tk_name); + break; + + case EOF: + _tracef("Token: End of file"); + break; + + default: + _nc_warning("Bad token type"); + } + } +#endif + + if (dot_flag == TRUE) /* if commented out, use the next one */ + type = _nc_get_token(silent); + + DEBUG(3, ("token: `%s', class %d", + ((_nc_curr_token.tk_name != 0) + ? _nc_curr_token.tk_name + : ""), + type)); + + DEBUG(3, (T_RETURN("%d"), type)); + return (type); +} + +/* + * char + * trans_string(ptr) + * + * Reads characters using next_char() until encountering a separator, nl, + * or end-of-file. The returned value is the character which caused + * reading to stop. The following translations are done on the input: + * + * ^X goes to ctrl-X (i.e. X & 037) + * {\E,\n,\r,\b,\t,\f} go to + * {ESCAPE,newline,carriage-return,backspace,tab,formfeed} + * {\^,\\} go to {carat,backslash} + * \ddd (for ddd = up to three octal digits) goes to the character ddd + * + * \e == \E + * \0 == \200 + * + */ + +NCURSES_EXPORT(int) +_nc_trans_string(char *ptr, char *last) +{ + int count = 0; + int number = 0; + int i, c; + int last_ch = '\0'; + bool ignored = FALSE; + bool long_warning = FALSE; + + while ((c = next_char()) != separator && c != EOF) { + if (ptr >= (last - 1)) { + if (c != EOF) { + while ((c = next_char()) != separator && c != EOF) { + ; + } + } + break; + } + if ((_nc_syntax == SYN_TERMCAP) && c == '\n') + break; + if (c == '^' && last_ch != '%') { + c = next_char(); + if (c == EOF) + _nc_err_abort(MSG_NO_INPUTS); + + if (!(is7bits(c) && isprint(c))) { + _nc_warning("Illegal ^ character - '%s'", unctrl(UChar(c))); + } + if (c == '?' && (_nc_syntax != SYN_TERMCAP)) { + *(ptr++) = '\177'; + } else { + if ((c &= 037) == 0) + c = 128; + *(ptr++) = (char) (c); + } + } else if (c == '\\') { + bool strict_bsd = ((_nc_syntax == SYN_TERMCAP) && _nc_strict_bsd); + + c = next_char(); + if (c == EOF) + _nc_err_abort(MSG_NO_INPUTS); + + if (isoctal(c) || (strict_bsd && isdigit(c))) { + number = c - '0'; + for (i = 0; i < 2; i++) { + c = next_char(); + if (c == EOF) + _nc_err_abort(MSG_NO_INPUTS); + + if (!isoctal(c)) { + if (isdigit(c)) { + if (!strict_bsd) { + _nc_warning("Non-octal digit `%c' in \\ sequence", c); + /* allow the digit; it'll do less harm */ + } + } else { + push_back(c); + break; + } + } + + number = number * 8 + c - '0'; + } + + number = UChar(number); + if (number == 0 && !strict_bsd) + number = 0200; + *(ptr++) = (char) number; + } else { + switch (c) { + case 'E': + *(ptr++) = '\033'; + break; + + case 'n': + *(ptr++) = '\n'; + break; + + case 'r': + *(ptr++) = '\r'; + break; + + case 'b': + *(ptr++) = '\010'; + break; + + case 'f': + *(ptr++) = '\014'; + break; + + case 't': + *(ptr++) = '\t'; + break; + + case '\\': + *(ptr++) = '\\'; + break; + + case '^': + *(ptr++) = '^'; + break; + + case ',': + *(ptr++) = ','; + break; + + case '\n': + continue; + + default: + if ((_nc_syntax == SYN_TERMINFO) || !_nc_strict_bsd) { + switch (c) { + case 'a': + c = '\007'; + break; + case 'e': + c = '\033'; + break; + case 'l': + c = '\n'; + break; + case 's': + c = ' '; + break; + case ':': + c = ':'; + break; + default: + _nc_warning("Illegal character '%s' in \\ sequence", + unctrl(UChar(c))); + break; + } + } + /* FALLTHRU */ + case '|': + *(ptr++) = (char) c; + } /* endswitch (c) */ + } /* endelse (c < '0' || c > '7') */ + } + /* end else if (c == '\\') */ + else if (c == '\n' && (_nc_syntax == SYN_TERMINFO)) { + /* + * Newlines embedded in a terminfo string are ignored, provided + * that the next line begins with whitespace. + */ + ignored = TRUE; + } else { + *(ptr++) = (char) c; + } + + if (!ignored) { + if (_nc_curr_col <= 1) { + push_back(c); + c = '\n'; + break; + } + last_ch = c; + count++; + } + ignored = FALSE; + + if (count > MAXCAPLEN && !long_warning) { + _nc_warning("Very long string found. Missing separator?"); + long_warning = TRUE; + } + } /* end while */ + + *ptr = '\0'; + + return (c); +} + +/* + * _nc_push_token() + * + * Push a token of given type so that it will be reread by the next + * get_token() call. + */ + +NCURSES_EXPORT(void) +_nc_push_token(int tokclass) +{ + /* + * This implementation is kind of bogus, it will fail if we ever do more + * than one pushback at a time between get_token() calls. It relies on the + * fact that _nc_curr_token is static storage that nothing but + * _nc_get_token() touches. + */ + pushtype = tokclass; + if (pushname == 0) + pushname = typeMalloc(char, MAX_NAME_SIZE + 1); + _nc_get_type(pushname); + + DEBUG(3, ("pushing token: `%s', class %d", + ((_nc_curr_token.tk_name != 0) + ? _nc_curr_token.tk_name + : ""), + pushtype)); +} + +/* + * Panic mode error recovery - skip everything until a "ch" is found. + */ +NCURSES_EXPORT(void) +_nc_panic_mode(char ch) +{ + for (;;) { + int c = next_char(); + if (c == ch) + return; + if (c == EOF) + return; + } +} + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_comp_scan_leaks(void) +{ + if (pushname != 0) { + FreeAndNull(pushname); + } + if (tok_buf != 0) { + FreeAndNull(tok_buf); + } +} +#endif diff --git a/third_party/ncurses/comp_userdefs.c b/third_party/ncurses/comp_userdefs.c new file mode 100644 index 000000000..9ddefaec8 --- /dev/null +++ b/third_party/ncurses/comp_userdefs.c @@ -0,0 +1,1225 @@ +/* + * generated by ./tinfo/MKuserdefs.sh + */ + +/* + * comp_userdefs.c -- The names of widely used user-defined capabilities + * indexed via a hash table for the compiler. + * + */ + +#include "curses.priv.h" +#include "tic.h" +#include "hashsize.h" + +#if NCURSES_XNAMES +/* 11 collisions out of 100 entries */ +static const char user_names_text[] = \ +"CO\0" "E3\0" "NQ\0" "RGB\0" "TS\0" "U8\0" "XM\0" "grbom\0" "gsbom\0" \ +"xm\0" "Rmol\0" "Smol\0" "blink2\0" "norm\0" "opaq\0" "setal\0" \ +"smul2\0" "AN\0" "AX\0" "C0\0" "C8\0" "CE\0" "CS\0" "E0\0" "G0\0" \ +"KJ\0" "OL\0" "S0\0" "TF\0" "WS\0" "XC\0" "XT\0" "Z0\0" "Z1\0" "Cr\0" \ +"Cs\0" "Csr\0" "Ms\0" "Se\0" "Smulx\0" "Ss\0" "rmxx\0" "smxx\0" "csl\0" \ +"kDC3\0" "kDC4\0" "kDC5\0" "kDC6\0" "kDC7\0" "kDN\0" "kDN3\0" "kDN4\0" \ +"kDN5\0" "kDN6\0" "kDN7\0" "kEND3\0" "kEND4\0" "kEND5\0" "kEND6\0" \ +"kEND7\0" "kHOM3\0" "kHOM4\0" "kHOM5\0" "kHOM6\0" "kHOM7\0" "kIC3\0" \ +"kIC4\0" "kIC5\0" "kIC6\0" "kIC7\0" "kLFT3\0" "kLFT4\0" "kLFT5\0" \ +"kLFT6\0" "kLFT7\0" "kNXT3\0" "kNXT4\0" "kNXT5\0" "kNXT6\0" "kNXT7\0" \ +"kPRV3\0" "kPRV4\0" "kPRV5\0" "kPRV6\0" "kPRV7\0" "kRIT3\0" "kRIT4\0" \ +"kRIT5\0" "kRIT6\0" "kRIT7\0" "kUP\0" "kUP3\0" "kUP4\0" "kUP5\0" \ +"kUP6\0" "kUP7\0" "ka2\0" "kb1\0" "kb3\0" "kc2\0" ; + +static user_table_data const user_names_data[] = +{ + { 0, (1< 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* $Id: curses.h.in,v 1.277 2021/09/24 16:07:37 tom Exp $ */ + +#ifndef __NCURSES_H +#define __NCURSES_H + +/* + The symbols beginning NCURSES_ or USE_ are configuration choices. + A few of the former can be overridden by applications at compile-time. + Most of the others correspond to configure-script options (or checks + by the configure-script for features of the system on which it is built). + + These symbols can be overridden by applications at compile-time: + NCURSES_NOMACROS suppresses macro definitions in favor of functions + NCURSES_WATTR_MACROS suppresses wattr_* macro definitions + NCURSES_WIDECHAR is an alternative for declaring wide-character functions. + + These symbols are used only when building ncurses: + NCURSES_ATTR_T + NCURSES_FIELD_INTERNALS + NCURSES_INTERNALS + + These symbols are set by the configure script: + NCURSES_ENABLE_STDBOOL_H + NCURSES_EXPANDED + NCURSES_EXT_COLORS + NCURSES_EXT_FUNCS + NCURSES_EXT_PUTWIN + NCURSES_NO_PADDING + NCURSES_OSPEED_COMPAT + NCURSES_PATHSEP + NCURSES_REENTRANT + */ + +#define CURSES 1 +#define CURSES_H 1 + +/* These are defined only in curses.h, and are used for conditional compiles */ +#define NCURSES_VERSION_MAJOR 6 +#define NCURSES_VERSION_MINOR 4 +#define NCURSES_VERSION_PATCH 20221231 + +/* This is defined in more than one ncurses header, for identification */ +#undef NCURSES_VERSION +#define NCURSES_VERSION "6.4" + +/* + * Identify the mouse encoding version. + */ +#define NCURSES_MOUSE_VERSION 2 + +/* + * Definitions to facilitate DLL's. + */ +#include "ncurses_dll.h" + +/* + * Extra headers. + */ +#if 1 +#include +#endif + +#ifdef __cplusplus +#else +#if 0 +#include +#undef GCC_NORETURN +#define GCC_NORETURN _Noreturn +#endif +#endif + +/* + * User-definable tweak to disable the include of . + */ +#ifndef NCURSES_ENABLE_STDBOOL_H +#define NCURSES_ENABLE_STDBOOL_H 1 +#endif + +/* + * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses + * configured using --disable-macros. + */ +#ifndef NCURSES_ATTR_T +#define NCURSES_ATTR_T int +#endif + +/* + * Expands to 'const' if ncurses is configured using --enable-const. Note that + * doing so makes it incompatible with other implementations of X/Open Curses. + */ +#undef NCURSES_CONST +#define NCURSES_CONST const + +#undef NCURSES_INLINE +#define NCURSES_INLINE inline + +/* + * The standard type used for color values, and for color-pairs. The latter + * allows the curses library to enumerate the combinations of foreground and + * background colors used by an application, and is normally the product of the + * total foreground and background colors. + * + * X/Open uses "short" for both of these types, ultimately because they are + * numbers from the SVr4 terminal database, which uses 16-bit signed values. + */ +#undef NCURSES_COLOR_T +#define NCURSES_COLOR_T short + +#undef NCURSES_PAIRS_T +#define NCURSES_PAIRS_T short + +/* + * Definitions used to make WINDOW and similar structs opaque. + */ +#ifndef NCURSES_INTERNALS +#define NCURSES_OPAQUE 0 +#define NCURSES_OPAQUE_FORM 0 +#define NCURSES_OPAQUE_MENU 0 +#define NCURSES_OPAQUE_PANEL 0 +#endif + +/* + * Definition used to optionally suppress wattr* macros to help with the + * transition from ncurses5 to ncurses6 by allowing the header files to + * be shared across development packages for ncursesw in both ABIs. + */ +#ifndef NCURSES_WATTR_MACROS +#define NCURSES_WATTR_MACROS 0 +#endif + +/* + * The reentrant code relies on the opaque setting, but adds features. + */ +#ifndef NCURSES_REENTRANT +#define NCURSES_REENTRANT 0 +#endif + +/* + * In certain environments, we must work around linker problems for data + */ +#undef NCURSES_BROKEN_LINKER +#if 0 +#define NCURSES_BROKEN_LINKER 1 +#endif + +/* + * Control whether bindings for interop support are added. + */ +#undef NCURSES_INTEROP_FUNCS +#define NCURSES_INTEROP_FUNCS 1 + +/* + * The internal type used for window dimensions. + */ +#undef NCURSES_SIZE_T +#define NCURSES_SIZE_T short + +/* + * Control whether tparm() supports varargs or fixed-parameter list. + */ +#undef NCURSES_TPARM_VARARGS +#define NCURSES_TPARM_VARARGS 1 + +/* + * Control type used for tparm's arguments. While X/Open equates long and + * char* values, this is not always workable for 64-bit platforms. + */ +#undef NCURSES_TPARM_ARG +#define NCURSES_TPARM_ARG intptr_t + +/* + * Control whether ncurses uses wcwidth() for checking width of line-drawing + * characters. + */ +#undef NCURSES_WCWIDTH_GRAPHICS +#define NCURSES_WCWIDTH_GRAPHICS 1 + +/* + * NCURSES_CH_T is used in building the library, but not used otherwise in + * this header file, since that would make the normal/wide-character versions + * of the header incompatible. + */ +#undef NCURSES_CH_T +#define NCURSES_CH_T cchar_t + +#if 1 && defined(_LP64) +typedef unsigned chtype; +typedef unsigned mmask_t; +#else +typedef uint32_t chtype; +typedef uint32_t mmask_t; +#endif + +/* + * We need FILE, etc. Include this before checking any feature symbols. + */ +#include + +/* + * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or + * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is + * not already defined, e.g., if the platform relies upon nonstandard feature + * test macros, define it at this point if the standard feature test macros + * indicate that it should be defined. + */ +#ifndef NCURSES_WIDECHAR +#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) +#define NCURSES_WIDECHAR 1 +#else +#define NCURSES_WIDECHAR 0 +#endif +#endif /* NCURSES_WIDECHAR */ + +#include /* we need va_list */ +#if NCURSES_WIDECHAR +#include /* we want wchar_t */ +#endif + +/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also + * implement it. If so, we must use the C++ compiler's type to avoid conflict + * with other interfaces. + * + * A further complication is that may declare 'bool' to be a + * different type, such as an enum which is not necessarily compatible with + * C++. If we have , make 'bool' a macro, so users may #undef it. + * Otherwise, let it remain a typedef to avoid conflicts with other #define's. + * In either case, make a typedef for NCURSES_BOOL which can be used if needed + * from either C or C++. + */ + +#undef TRUE +#define TRUE 1 + +#undef FALSE +#define FALSE 0 + +typedef unsigned char NCURSES_BOOL; + +#if defined(__cplusplus) /* __cplusplus, etc. */ + +/* use the C++ compiler's bool type */ +#define NCURSES_BOOL bool + +#else /* c89, c99, etc. */ + +#if NCURSES_ENABLE_STDBOOL_H +#include +/* use whatever the C compiler decides bool really is */ +#define NCURSES_BOOL bool +#else +/* there is no predefined bool - use our own */ +#undef bool +#define bool NCURSES_BOOL +#endif + +#endif /* !__cplusplus, etc. */ + +#ifdef __cplusplus +extern "C" { +#define NCURSES_CAST(type,value) static_cast(value) +#else +#define NCURSES_CAST(type,value) (type)(value) +#endif + +#define NCURSES_OK_ADDR(p) (0 != NCURSES_CAST(const void *, (p))) + +/* + * X/Open attributes. In the ncurses implementation, they are identical to the + * A_ attributes. + */ +#define WA_ATTRIBUTES A_ATTRIBUTES +#define WA_NORMAL A_NORMAL +#define WA_STANDOUT A_STANDOUT +#define WA_UNDERLINE A_UNDERLINE +#define WA_REVERSE A_REVERSE +#define WA_BLINK A_BLINK +#define WA_DIM A_DIM +#define WA_BOLD A_BOLD +#define WA_ALTCHARSET A_ALTCHARSET +#define WA_INVIS A_INVIS +#define WA_PROTECT A_PROTECT +#define WA_HORIZONTAL A_HORIZONTAL +#define WA_LEFT A_LEFT +#define WA_LOW A_LOW +#define WA_RIGHT A_RIGHT +#define WA_TOP A_TOP +#define WA_VERTICAL A_VERTICAL + +#if 1 +#define WA_ITALIC A_ITALIC /* ncurses extension */ +#endif + +/* colors */ +#define COLOR_BLACK 0 +#define COLOR_RED 1 +#define COLOR_GREEN 2 +#define COLOR_YELLOW 3 +#define COLOR_BLUE 4 +#define COLOR_MAGENTA 5 +#define COLOR_CYAN 6 +#define COLOR_WHITE 7 + +/* line graphics */ + +#if 0 || NCURSES_REENTRANT +NCURSES_WRAPPED_VAR(chtype*, acs_map); +#define acs_map NCURSES_PUBLIC_VAR(acs_map()) +#else +extern NCURSES_EXPORT_VAR(chtype) acs_map[]; +#endif + +#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))]) + +/* VT100 symbols begin here */ +#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ +#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */ +#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */ +#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */ +#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */ +#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */ +#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */ +#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */ +#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */ +#define ACS_VLINE NCURSES_ACS('x') /* vertical line */ +#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */ +#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */ +#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */ +#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */ +#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */ +#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */ +#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */ +#define ACS_BULLET NCURSES_ACS('~') /* bullet */ +/* Teletype 5410v1 symbols begin here */ +#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */ +#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */ +#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */ +#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */ +#define ACS_BOARD NCURSES_ACS('h') /* board of squares */ +#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */ +#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */ +/* + * These aren't documented, but a lot of System Vs have them anyway + * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings). + * The ACS_names may not match AT&T's, our source didn't know them. + */ +#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */ +#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */ +#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */ +#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */ +#define ACS_PI NCURSES_ACS('{') /* Pi */ +#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */ +#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */ + +/* + * Line drawing ACS names are of the form ACS_trbl, where t is the top, r + * is the right, b is the bottom, and l is the left. t, r, b, and l might + * be B (blank), S (single), D (double), or T (thick). The subset defined + * here only uses B and S. + */ +#define ACS_BSSB ACS_ULCORNER +#define ACS_SSBB ACS_LLCORNER +#define ACS_BBSS ACS_URCORNER +#define ACS_SBBS ACS_LRCORNER +#define ACS_SBSS ACS_RTEE +#define ACS_SSSB ACS_LTEE +#define ACS_SSBS ACS_BTEE +#define ACS_BSSS ACS_TTEE +#define ACS_BSBS ACS_HLINE +#define ACS_SBSB ACS_VLINE +#define ACS_SSSS ACS_PLUS + +#undef ERR +#define ERR (-1) + +#undef OK +#define OK (0) + +/* values for the _flags member */ +#define _SUBWIN 0x01 /* is this a sub-window? */ +#define _ENDLINE 0x02 /* is the window flush right? */ +#define _FULLWIN 0x04 /* is the window full-screen? */ +#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */ +#define _ISPAD 0x10 /* is this window a pad? */ +#define _HASMOVED 0x20 /* has cursor moved since last refresh? */ +#define _WRAPPED 0x40 /* cursor was just wrappped */ + +/* + * this value is used in the firstchar and lastchar fields to mark + * unchanged lines + */ +#define _NOCHANGE -1 + +/* + * this value is used in the oldindex field to mark lines created by insertions + * and scrolls. + */ +#define _NEWINDEX -1 + +#ifdef NCURSES_INTERNALS +#undef SCREEN +#define SCREEN struct screen +SCREEN; +#else +typedef struct screen SCREEN; +#endif + +typedef struct _win_st WINDOW; + +typedef chtype attr_t; /* ...must be at least as wide as chtype */ + +#if NCURSES_WIDECHAR + +#if 0 +#ifdef mblen /* libutf8.h defines it w/o undefining first */ +#undef mblen +#endif +#include +#endif + +#if 0 +#include /* ...to get mbstate_t, etc. */ +#endif + +#if 0 +typedef unsigned short wchar_t1; +#endif + +#if 0 +typedef unsigned int wint_t1; +#endif + +/* + * cchar_t stores an array of CCHARW_MAX wide characters. The first is + * normally a spacing character. The others are non-spacing. If those + * (spacing and nonspacing) do not fill the array, a null L'\0' follows. + * Otherwise, a null is assumed to follow when extracting via getcchar(). + */ +#define CCHARW_MAX 5 +typedef struct +{ + attr_t attr; + wchar_t chars[CCHARW_MAX]; +#if 1 +#undef NCURSES_EXT_COLORS +#define NCURSES_EXT_COLORS 20221231 + int ext_color; /* color pair, must be more than 16-bits */ +#endif +} +cchar_t; + +#endif /* NCURSES_WIDECHAR */ + +#if !NCURSES_OPAQUE +struct ldat; + +struct _win_st +{ + NCURSES_SIZE_T _cury, _curx; /* current cursor position */ + + /* window location and size */ + NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */ + NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */ + + short _flags; /* window state flags */ + + /* attribute tracking */ + attr_t _attrs; /* current attribute for non-space character */ + chtype _bkgd; /* current background char/attribute pair */ + + /* option values set by user */ + bool _notimeout; /* no time out on function-key entry? */ + bool _clear; /* consider all data in the window invalid? */ + bool _leaveok; /* OK to not reset cursor on exit? */ + bool _scroll; /* OK to scroll this window? */ + bool _idlok; /* OK to use insert/delete line? */ + bool _idcok; /* OK to use insert/delete char? */ + bool _immed; /* window in immed mode? (not yet used) */ + bool _sync; /* window in sync mode? */ + bool _use_keypad; /* process function keys into KEY_ symbols? */ + int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ + + struct ldat *_line; /* the actual line data */ + + /* global screen state */ + NCURSES_SIZE_T _regtop; /* top line of scrolling region */ + NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */ + + /* these are used only if this is a sub-window */ + int _parx; /* x coordinate of this window in parent */ + int _pary; /* y coordinate of this window in parent */ + WINDOW *_parent; /* pointer to parent if a sub-window */ + + /* these are used only if this is a pad */ + struct pdat + { + NCURSES_SIZE_T _pad_y, _pad_x; + NCURSES_SIZE_T _pad_top, _pad_left; + NCURSES_SIZE_T _pad_bottom, _pad_right; + } _pad; + + NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ + +#if NCURSES_WIDECHAR + cchar_t _bkgrnd; /* current background char/attribute pair */ +#if 1 + int _color; /* current color-pair for non-space character */ +#endif +#endif +}; +#endif /* NCURSES_OPAQUE */ + +/* + * GCC (and some other compilers) define '__attribute__'; we're using this + * macro to alert the compiler to flag inconsistencies in printf/scanf-like + * function calls. Just in case '__attribute__' isn't defined, make a dummy. + * Old versions of G++ do not accept it anyway, at least not consistently with + * GCC. + */ +#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__)) +#define __attribute__(p) /* nothing */ +#endif + +/* + * We cannot define these in ncurses_cfg.h, since they require parameters to be + * passed (that is non-portable). + */ +#ifndef GCC_PRINTFLIKE +#ifndef printf +#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) +#else +#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ +#endif +#endif + +#ifndef GCC_SCANFLIKE +#ifndef scanf +#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) +#else +#define GCC_SCANFLIKE(fmt,var) /*nothing*/ +#endif +#endif + +#ifndef GCC_NORETURN +#define GCC_NORETURN /* nothing */ +#endif + +#ifndef GCC_UNUSED +#define GCC_UNUSED /* nothing */ +#endif + +#undef GCC_DEPRECATED +#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS) +#define GCC_DEPRECATED(msg) __attribute__((deprecated)) +#else +#define GCC_DEPRECATED(msg) /* nothing */ +#endif + +/* + * Curses uses a helper function. Define our type for this to simplify + * extending it for the sp-funcs feature. + */ +typedef int (*NCURSES_OUTC)(int); + +/* + * Function prototypes. This is the complete X/Open Curses list of required + * functions. Those marked `generated' will have sources generated from the + * macro definitions later in this file, in order to satisfy XPG4.2 + * requirements. + */ + +extern NCURSES_EXPORT(int) addch (const chtype); /* generated */ +extern NCURSES_EXPORT(int) addchnstr (const chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) addchstr (const chtype *); /* generated */ +extern NCURSES_EXPORT(int) addnstr (const char *, int); /* generated */ +extern NCURSES_EXPORT(int) addstr (const char *); /* generated */ +extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ +extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ +extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ +extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ +extern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ +extern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ +extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */ +extern NCURSES_EXPORT(int) baudrate (void); /* implemented */ +extern NCURSES_EXPORT(int) beep (void); /* implemented */ +extern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ +extern NCURSES_EXPORT(void) bkgdset (chtype); /* generated */ +extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */ +extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ +extern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ +extern NCURSES_EXPORT(int) cbreak (void); /* implemented */ +extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ +extern NCURSES_EXPORT(int) clear (void); /* generated */ +extern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) clrtobot (void); /* generated */ +extern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ +extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ +extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */ +extern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ +extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) curs_set (int); /* implemented */ +extern NCURSES_EXPORT(int) def_prog_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) def_shell_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) delay_output (int); /* implemented */ +extern NCURSES_EXPORT(int) delch (void); /* generated */ +extern NCURSES_EXPORT(void) delscreen (SCREEN *); /* implemented */ +extern NCURSES_EXPORT(int) delwin (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) deleteln (void); /* generated */ +extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) doupdate (void); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) echo (void); /* implemented */ +extern NCURSES_EXPORT(int) echochar (const chtype); /* generated */ +extern NCURSES_EXPORT(int) erase (void); /* generated */ +extern NCURSES_EXPORT(int) endwin (void); /* implemented */ +extern NCURSES_EXPORT(char) erasechar (void); /* implemented */ +extern NCURSES_EXPORT(void) filter (void); /* implemented */ +extern NCURSES_EXPORT(int) flash (void); /* implemented */ +extern NCURSES_EXPORT(int) flushinp (void); /* implemented */ +extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getch (void); /* generated */ +extern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */ +extern NCURSES_EXPORT(int) getstr (char *); /* generated */ +extern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */ +extern NCURSES_EXPORT(int) halfdelay (int); /* implemented */ +extern NCURSES_EXPORT(bool) has_colors (void); /* implemented */ +extern NCURSES_EXPORT(bool) has_ic (void); /* implemented */ +extern NCURSES_EXPORT(bool) has_il (void); /* implemented */ +extern NCURSES_EXPORT(int) hline (chtype, int); /* generated */ +extern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(chtype) inch (void); /* generated */ +extern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ +extern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ +extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ +extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ +extern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ +extern NCURSES_EXPORT(int) insch (chtype); /* generated */ +extern NCURSES_EXPORT(int) insdelln (int); /* generated */ +extern NCURSES_EXPORT(int) insertln (void); /* generated */ +extern NCURSES_EXPORT(int) insnstr (const char *, int); /* generated */ +extern NCURSES_EXPORT(int) insstr (const char *); /* generated */ +extern NCURSES_EXPORT(int) instr (char *); /* generated */ +extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(bool) isendwin (void); /* implemented */ +extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int); /* implemented */ +extern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(char) killchar (void); /* implemented */ +extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(char *) longname (void); /* implemented */ +extern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) move (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype); /* generated */ +extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ +extern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ +extern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(chtype) mvinch (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvinsch (int, int, chtype); /* generated */ +extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */ + GCC_PRINTFLIKE(3,4); +extern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...) /* implemented */ + GCC_SCANFLIKE(3,4); +extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype); /* generated */ +extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */ +extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */ +extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype); /* generated */ +extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */ + GCC_PRINTFLIKE(4,5); +extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...) /* implemented */ + GCC_SCANFLIKE(4,5); +extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(int) napms (int); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) newpad (int,int); /* implemented */ +extern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) nl (void); /* implemented */ +extern NCURSES_EXPORT(int) nocbreak (void); /* implemented */ +extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) noecho (void); /* implemented */ +extern NCURSES_EXPORT(int) nonl (void); /* implemented */ +extern NCURSES_EXPORT(void) noqiflush (void); /* implemented */ +extern NCURSES_EXPORT(int) noraw (void); /* implemented */ +extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ +extern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ +extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ +extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ +extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */ + GCC_PRINTFLIKE(1,2); +extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */ +extern NCURSES_EXPORT(void) qiflush (void); /* implemented */ +extern NCURSES_EXPORT(int) raw (void); /* implemented */ +extern NCURSES_EXPORT(int) redrawwin (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) refresh (void); /* generated */ +extern NCURSES_EXPORT(int) resetty (void); /* implemented */ +extern NCURSES_EXPORT(int) reset_prog_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) reset_shell_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int)); /* implemented */ +extern NCURSES_EXPORT(int) savetty (void); /* implemented */ +extern NCURSES_EXPORT(int) scanw (const char *,...) /* implemented */ + GCC_SCANFLIKE(1,2); +extern NCURSES_EXPORT(int) scr_dump (const char *); /* implemented */ +extern NCURSES_EXPORT(int) scr_init (const char *); /* implemented */ +extern NCURSES_EXPORT(int) scrl (int); /* generated */ +extern NCURSES_EXPORT(int) scroll (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) scr_restore (const char *); /* implemented */ +extern NCURSES_EXPORT(int) scr_set (const char *); /* implemented */ +extern NCURSES_EXPORT(int) setscrreg (int,int); /* generated */ +extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *); /* implemented */ +extern NCURSES_EXPORT(int) slk_attroff (const chtype); /* implemented */ +extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) slk_attron (const chtype); /* implemented */ +extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ +extern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */ +extern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */ +extern NCURSES_EXPORT(int) slk_init (int); /* implemented */ +extern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ +extern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_refresh (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_restore (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_set (int,const char *,int); /* implemented */ +extern NCURSES_EXPORT(int) slk_touch (void); /* implemented */ +extern NCURSES_EXPORT(int) standout (void); /* generated */ +extern NCURSES_EXPORT(int) standend (void); /* generated */ +extern NCURSES_EXPORT(int) start_color (void); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */ +extern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */ +extern NCURSES_EXPORT(char *) termname (void); /* implemented */ +extern NCURSES_EXPORT(void) timeout (int); /* generated */ +extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) typeahead (int); /* implemented */ +extern NCURSES_EXPORT(int) ungetch (int); /* implemented */ +extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ +extern NCURSES_EXPORT(void) use_env (bool); /* implemented */ +extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */ +extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ +extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */ +extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ +extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */ + GCC_PRINTFLIKE(2,0); +extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */ + GCC_PRINTFLIKE(2,0); +extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */ + GCC_SCANFLIKE(2,0); +extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */ + GCC_SCANFLIKE(2,0); +extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */ +extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */ +extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */ +extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */ +extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */ +extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ +extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ +extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ +extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ +extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ +extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ +extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */ +extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ +extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ +extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ +extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */ +extern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */ +extern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype); /* implemented */ +extern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */ +extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */ +extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */ +extern NCURSES_EXPORT(chtype) winch (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int); /* implemented */ +extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *); /* generated */ +extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int); /* implemented */ +extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype); /* implemented */ +extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(int) winsertln (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int); /* implemented */ +extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *); /* generated */ +extern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */ +extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */ + GCC_PRINTFLIKE(2,3); +extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...) /* implemented */ + GCC_SCANFLIKE(2,3); +extern NCURSES_EXPORT(int) wscrl (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wstandout (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wstandend (WINDOW *); /* generated */ +extern NCURSES_EXPORT(void) wsyncdown (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(void) wsyncup (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */ + +/* + * These are also declared in "term.h": + */ +extern NCURSES_EXPORT(int) tigetflag (const char *); /* implemented */ +extern NCURSES_EXPORT(int) tigetnum (const char *); /* implemented */ +extern NCURSES_EXPORT(char *) tigetstr (const char *); /* implemented */ +extern NCURSES_EXPORT(int) putp (const char *); /* implemented */ + +#if NCURSES_TPARM_VARARGS +extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ +#else +extern NCURSES_EXPORT(char *) tparm (const char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */ +#endif + +extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ + +/* + * These functions are not in X/Open, but we use them in macro definitions: + */ +extern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getbegy (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */ + +/* + * vid_attr() was implemented originally based on a draft of X/Open curses. + */ +#if !NCURSES_WIDECHAR +#define vid_attr(a,pair,opts) vidattr(a) +#endif + +/* + * These functions are extensions - not in X/Open Curses. + */ +#if 1 +#undef NCURSES_EXT_FUNCS +#define NCURSES_EXT_FUNCS 20221231 +typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *); +typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *); +extern NCURSES_EXPORT(bool) is_term_resized (int, int); +extern NCURSES_EXPORT(char *) keybound (int, int); +extern NCURSES_EXPORT(const char *) curses_version (void); +extern NCURSES_EXPORT(int) alloc_pair (int, int); +extern NCURSES_EXPORT(int) assume_default_colors (int, int); +extern NCURSES_EXPORT(int) define_key (const char *, int); +extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *); +extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *); +extern NCURSES_EXPORT(int) extended_slk_color(int); +extern NCURSES_EXPORT(int) find_pair (int, int); +extern NCURSES_EXPORT(int) free_pair (int); +extern NCURSES_EXPORT(int) get_escdelay (void); +extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int); +extern NCURSES_EXPORT(int) init_extended_pair(int, int, int); +extern NCURSES_EXPORT(int) key_defined (const char *); +extern NCURSES_EXPORT(int) keyok (int, bool); +extern NCURSES_EXPORT(void) reset_color_pairs (void); +extern NCURSES_EXPORT(int) resize_term (int, int); +extern NCURSES_EXPORT(int) resizeterm (int, int); +extern NCURSES_EXPORT(int) set_escdelay (int); +extern NCURSES_EXPORT(int) set_tabsize (int); +extern NCURSES_EXPORT(int) use_default_colors (void); +extern NCURSES_EXPORT(int) use_extended_names (bool); +extern NCURSES_EXPORT(int) use_legacy_coding (int); +extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *); +extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *); +extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int); +extern NCURSES_EXPORT(void) nofilter(void); + +/* + * These extensions provide access to information stored in the WINDOW even + * when NCURSES_OPAQUE is set: + */ +extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_pad (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_subwin (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wgetdelay (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */ + +#else +#define curses_version() NCURSES_VERSION +#endif + +/* + * Extra extension-functions, which pass a SCREEN pointer rather than using + * a global variable SP. + */ +#if 1 +#undef NCURSES_SP_FUNCS +#define NCURSES_SP_FUNCS 20221231 +#define NCURSES_SP_NAME(name) name##_sp + +/* Define the sp-funcs helper function */ +#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) +typedef int (*NCURSES_SP_OUTC)(SCREEN*, int); + +extern NCURSES_EXPORT(SCREEN *) new_prescr (void); /* implemented:SP_FUNC */ + +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);/* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int)); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ +#if 1 +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +#endif +#else +#undef NCURSES_SP_FUNCS +#define NCURSES_SP_FUNCS 0 +#define NCURSES_SP_NAME(name) name +#define NCURSES_SP_OUTC NCURSES_OUTC +#endif + +/* attributes */ + +#define NCURSES_ATTR_SHIFT 8 +#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT)) + +#define A_NORMAL (1U - 1U) +#define A_ATTRIBUTES NCURSES_BITS(~(1U - 1U),0) +#define A_CHARTEXT (NCURSES_BITS(1U,0) - 1U) +#define A_COLOR NCURSES_BITS(((1U) << 8) - 1U,0) +#define A_STANDOUT NCURSES_BITS(1U,8) +#define A_UNDERLINE NCURSES_BITS(1U,9) +#define A_REVERSE NCURSES_BITS(1U,10) +#define A_BLINK NCURSES_BITS(1U,11) +#define A_DIM NCURSES_BITS(1U,12) +#define A_BOLD NCURSES_BITS(1U,13) +#define A_ALTCHARSET NCURSES_BITS(1U,14) +#define A_INVIS NCURSES_BITS(1U,15) +#define A_PROTECT NCURSES_BITS(1U,16) +#define A_HORIZONTAL NCURSES_BITS(1U,17) +#define A_LEFT NCURSES_BITS(1U,18) +#define A_LOW NCURSES_BITS(1U,19) +#define A_RIGHT NCURSES_BITS(1U,20) +#define A_TOP NCURSES_BITS(1U,21) +#define A_VERTICAL NCURSES_BITS(1U,22) + +#if 1 +#define A_ITALIC NCURSES_BITS(1U,23) /* ncurses extension */ +#endif + +/* + * Most of the pseudo functions are macros that either provide compatibility + * with older versions of curses, or provide inline functionality to improve + * performance. + */ + +/* + * These pseudo functions are always implemented as macros: + */ + +#define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) +#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) +#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) +#define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) + +#define getsyx(y,x) do { if (newscr) { \ + if (is_leaveok(newscr)) \ + (y) = (x) = -1; \ + else \ + getyx(newscr,(y), (x)); \ + } \ + } while(0) + +#define setsyx(y,x) do { if (newscr) { \ + if ((y) == -1 && (x) == -1) \ + leaveok(newscr, TRUE); \ + else { \ + leaveok(newscr, FALSE); \ + wmove(newscr, (y), (x)); \ + } \ + } \ + } while(0) + +#ifndef NCURSES_NOMACROS + +/* + * These miscellaneous pseudo functions are provided for compatibility: + */ + +#define wgetstr(w, s) wgetnstr(w, s, -1) +#define getnstr(s, n) wgetnstr(stdscr, s, (n)) + +#define setterm(term) setupterm(term, 1, (int *)0) + +#define fixterm() reset_prog_mode() +#define resetterm() reset_shell_mode() +#define saveterm() def_prog_mode() +#define crmode() cbreak() +#define nocrmode() nocbreak() +#define gettmode() + +/* It seems older SYSV curses versions define these */ +#if !NCURSES_OPAQUE +#define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL) +#define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR) +#define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR) +#define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR) +#define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR) +#define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR) +#define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR) +#define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR) +#define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR) +#endif /* NCURSES_OPAQUE */ + +#define wstandout(win) (wattrset(win,A_STANDOUT)) +#define wstandend(win) (wattrset(win,A_NORMAL)) + +#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL) +#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) + +#if !NCURSES_OPAQUE +#if NCURSES_WATTR_MACROS +#if NCURSES_WIDECHAR && 1 +#define wattrset(win,at) \ + (NCURSES_OK_ADDR(win) \ + ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \ + (win)->_attrs = NCURSES_CAST(attr_t, at), \ + OK) \ + : ERR) +#else +#define wattrset(win,at) \ + (NCURSES_OK_ADDR(win) \ + ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \ + OK) \ + : ERR) +#endif +#endif /* NCURSES_WATTR_MACROS */ +#endif /* NCURSES_OPAQUE */ + +#define scroll(win) wscrl(win,1) + +#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) +#define touchline(win, s, c) wtouchln((win), s, c, 1) +#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) + +#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) +#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) +#define hline(ch, n) whline(stdscr, ch, (n)) +#define vline(ch, n) wvline(stdscr, ch, (n)) + +#define winstr(w, s) winnstr(w, s, -1) +#define winchstr(w, s) winchnstr(w, s, -1) +#define winsstr(w, s) winsnstr(w, s, -1) + +#if !NCURSES_OPAQUE +#define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1)) +#endif /* NCURSES_OPAQUE */ + +#define waddstr(win,str) waddnstr(win,str,-1) +#define waddchstr(win,str) waddchnstr(win,str,-1) + +/* + * These apply to the first 256 color pairs. + */ +#define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR) +#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT))) + +/* + * pseudo functions for standard screen + */ + +#define addch(ch) waddch(stdscr,(ch)) +#define addchnstr(str,n) waddchnstr(stdscr,(str),(n)) +#define addchstr(str) waddchstr(stdscr,(str)) +#define addnstr(str,n) waddnstr(stdscr,(str),(n)) +#define addstr(str) waddnstr(stdscr,(str),-1) +#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) +#define attr_off(a,o) wattr_off(stdscr,(a),(o)) +#define attr_on(a,o) wattr_on(stdscr,(a),(o)) +#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o)) +#define attroff(at) wattroff(stdscr,(at)) +#define attron(at) wattron(stdscr,(at)) +#define attrset(at) wattrset(stdscr,(at)) +#define bkgd(ch) wbkgd(stdscr,(ch)) +#define bkgdset(ch) wbkgdset(stdscr,(ch)) +#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o)) +#define clear() wclear(stdscr) +#define clrtobot() wclrtobot(stdscr) +#define clrtoeol() wclrtoeol(stdscr) +#define color_set(c,o) wcolor_set(stdscr,(c),(o)) +#define delch() wdelch(stdscr) +#define deleteln() winsdelln(stdscr,-1) +#define echochar(c) wechochar(stdscr,(c)) +#define erase() werase(stdscr) +#define getch() wgetch(stdscr) +#define getstr(str) wgetstr(stdscr,(str)) +#define inch() winch(stdscr) +#define inchnstr(s,n) winchnstr(stdscr,(s),(n)) +#define inchstr(s) winchstr(stdscr,(s)) +#define innstr(s,n) winnstr(stdscr,(s),(n)) +#define insch(c) winsch(stdscr,(c)) +#define insdelln(n) winsdelln(stdscr,(n)) +#define insertln() winsdelln(stdscr,1) +#define insnstr(s,n) winsnstr(stdscr,(s),(n)) +#define insstr(s) winsstr(stdscr,(s)) +#define instr(s) winstr(stdscr,(s)) +#define move(y,x) wmove(stdscr,(y),(x)) +#define refresh() wrefresh(stdscr) +#define scrl(n) wscrl(stdscr,(n)) +#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b)) +#define standend() wstandend(stdscr) +#define standout() wstandout(stdscr) +#define timeout(delay) wtimeout(stdscr,(delay)) +#define wdeleteln(win) winsdelln(win,-1) +#define winsertln(win) winsdelln(win,1) + +/* + * mv functions + */ + +#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch))) +#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n))) +#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1)) +#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n))) +#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1)) +#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o))) +#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win)) +#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win)) +#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n))) +#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str))) +#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n))) +#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) +#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n))) +#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s))) +#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n))) +#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c))) +#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n))) +#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s))) +#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s))) +#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n))) + +#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch)) +#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n)) +#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str)) +#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n)) +#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str)) +#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o)) +#define mvdelch(y,x) mvwdelch(stdscr,(y),(x)) +#define mvgetch(y,x) mvwgetch(stdscr,(y),(x)) +#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n)) +#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str)) +#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n)) +#define mvinch(y,x) mvwinch(stdscr,(y),(x)) +#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n)) +#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s)) +#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n)) +#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c)) +#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n)) +#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s)) +#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s)) +#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n)) + +/* + * Some wide-character functions can be implemented without the extensions. + */ +#if !NCURSES_OPAQUE +#define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0) +#endif /* NCURSES_OPAQUE */ + +#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) +#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) + +#if !NCURSES_OPAQUE +#if NCURSES_WATTR_MACROS +#if NCURSES_WIDECHAR && 1 +#define wattr_set(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \ + (win)->_color = (opts) ? *(int *)(opts) : (p)), \ + OK) \ + : ERR) +#define wattr_get(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)(NCURSES_OK_ADDR(a) \ + ? (*(a) = (win)->_attrs) \ + : OK), \ + (void)(NCURSES_OK_ADDR(p) \ + ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \ + : OK), \ + (void)(NCURSES_OK_ADDR(opts) \ + ? (*(int *)(opts) = (win)->_color) \ + : OK), \ + OK) \ + : ERR) +#else /* !(NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ +#define wattr_set(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \ + (attr_t)COLOR_PAIR(p))), \ + OK) \ + : ERR) +#define wattr_get(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)(NCURSES_OK_ADDR(a) \ + ? (*(a) = (win)->_attrs) \ + : OK), \ + (void)(NCURSES_OK_ADDR(p) \ + ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \ + : OK), \ + OK) \ + : ERR) +#endif /* (NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ +#endif /* NCURSES_WATTR_MACROS */ +#endif /* NCURSES_OPAQUE */ + +/* + * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use + * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to + * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already + * use stdarg.h, so... + */ +/* define vw_printw vwprintw */ +/* define vw_scanw vwscanw */ + +/* + * Export fallback function for use in C++ binding. + */ +#if !1 +#define vsscanf(a,b,c) _nc_vsscanf(a,b,c) +NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list); +#endif + +/* + * These macros are extensions - not in X/Open Curses. + */ +#if 1 +#if !NCURSES_OPAQUE +#define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE) +#define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE) +#define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE) +#define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE) +#define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE) +#define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE) +#define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE) +#define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE) +#define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) +#define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE) +#define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) +#define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE) +#define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0) +#define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0) +#define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) +#endif +#endif + +/* + * X/Open says this returns a bool; SVr4 also checked for out-of-range line. + * The macro provides compatibility: + */ +#define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l))) + +#endif /* NCURSES_NOMACROS */ + +/* + * Public variables. + * + * Notes: + * a. ESCDELAY was an undocumented feature under AIX curses. + * It gives the ESC expire time in milliseconds. + * b. ttytype is needed for backward compatibility + */ +#if NCURSES_REENTRANT + +NCURSES_WRAPPED_VAR(WINDOW *, curscr); +NCURSES_WRAPPED_VAR(WINDOW *, newscr); +NCURSES_WRAPPED_VAR(WINDOW *, stdscr); +NCURSES_WRAPPED_VAR(char *, ttytype); +NCURSES_WRAPPED_VAR(int, COLORS); +NCURSES_WRAPPED_VAR(int, COLOR_PAIRS); +NCURSES_WRAPPED_VAR(int, COLS); +NCURSES_WRAPPED_VAR(int, ESCDELAY); +NCURSES_WRAPPED_VAR(int, LINES); +NCURSES_WRAPPED_VAR(int, TABSIZE); + +#define curscr NCURSES_PUBLIC_VAR(curscr()) +#define newscr NCURSES_PUBLIC_VAR(newscr()) +#define stdscr NCURSES_PUBLIC_VAR(stdscr()) +#define ttytype NCURSES_PUBLIC_VAR(ttytype()) +#define COLORS NCURSES_PUBLIC_VAR(COLORS()) +#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS()) +#define COLS NCURSES_PUBLIC_VAR(COLS()) +#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY()) +#define LINES NCURSES_PUBLIC_VAR(LINES()) +#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE()) + +#else + +extern NCURSES_EXPORT_VAR(WINDOW *) curscr; +extern NCURSES_EXPORT_VAR(WINDOW *) newscr; +extern NCURSES_EXPORT_VAR(WINDOW *) stdscr; +extern NCURSES_EXPORT_VAR(char) ttytype[]; +extern NCURSES_EXPORT_VAR(int) COLORS; +extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS; +extern NCURSES_EXPORT_VAR(int) COLS; +extern NCURSES_EXPORT_VAR(int) ESCDELAY; +extern NCURSES_EXPORT_VAR(int) LINES; +extern NCURSES_EXPORT_VAR(int) TABSIZE; + +#endif + +/* + * Pseudo-character tokens outside ASCII range. The curses wgetch() function + * will return any given one of these only if the corresponding k- capability + * is defined in your terminal's terminfo entry. + * + * Some keys (KEY_A1, etc) are arranged like this: + * a1 up a3 + * left b2 right + * c1 down c3 + * + * A few key codes do not depend upon the terminfo entry. + */ +#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */ +#define KEY_MIN 0401 /* Minimum curses key */ +#define KEY_BREAK 0401 /* Break key (unreliable) */ +#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */ +#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */ +/* + * These definitions were generated by ./MKkey_defs.sh ./Caps ./Caps-ncurses + */ +#define KEY_DOWN 0402 /* down-arrow key */ +#define KEY_UP 0403 /* up-arrow key */ +#define KEY_LEFT 0404 /* left-arrow key */ +#define KEY_RIGHT 0405 /* right-arrow key */ +#define KEY_HOME 0406 /* home key */ +#define KEY_BACKSPACE 0407 /* backspace key */ +#define KEY_F0 0410 /* Function keys. Space for 64 */ +#define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */ +#define KEY_DL 0510 /* delete-line key */ +#define KEY_IL 0511 /* insert-line key */ +#define KEY_DC 0512 /* delete-character key */ +#define KEY_IC 0513 /* insert-character key */ +#define KEY_EIC 0514 /* sent by rmir or smir in insert mode */ +#define KEY_CLEAR 0515 /* clear-screen or erase key */ +#define KEY_EOS 0516 /* clear-to-end-of-screen key */ +#define KEY_EOL 0517 /* clear-to-end-of-line key */ +#define KEY_SF 0520 /* scroll-forward key */ +#define KEY_SR 0521 /* scroll-backward key */ +#define KEY_NPAGE 0522 /* next-page key */ +#define KEY_PPAGE 0523 /* previous-page key */ +#define KEY_STAB 0524 /* set-tab key */ +#define KEY_CTAB 0525 /* clear-tab key */ +#define KEY_CATAB 0526 /* clear-all-tabs key */ +#define KEY_ENTER 0527 /* enter/send key */ +#define KEY_PRINT 0532 /* print key */ +#define KEY_LL 0533 /* lower-left key (home down) */ +#define KEY_A1 0534 /* upper left of keypad */ +#define KEY_A3 0535 /* upper right of keypad */ +#define KEY_B2 0536 /* center of keypad */ +#define KEY_C1 0537 /* lower left of keypad */ +#define KEY_C3 0540 /* lower right of keypad */ +#define KEY_BTAB 0541 /* back-tab key */ +#define KEY_BEG 0542 /* begin key */ +#define KEY_CANCEL 0543 /* cancel key */ +#define KEY_CLOSE 0544 /* close key */ +#define KEY_COMMAND 0545 /* command key */ +#define KEY_COPY 0546 /* copy key */ +#define KEY_CREATE 0547 /* create key */ +#define KEY_END 0550 /* end key */ +#define KEY_EXIT 0551 /* exit key */ +#define KEY_FIND 0552 /* find key */ +#define KEY_HELP 0553 /* help key */ +#define KEY_MARK 0554 /* mark key */ +#define KEY_MESSAGE 0555 /* message key */ +#define KEY_MOVE 0556 /* move key */ +#define KEY_NEXT 0557 /* next key */ +#define KEY_OPEN 0560 /* open key */ +#define KEY_OPTIONS 0561 /* options key */ +#define KEY_PREVIOUS 0562 /* previous key */ +#define KEY_REDO 0563 /* redo key */ +#define KEY_REFERENCE 0564 /* reference key */ +#define KEY_REFRESH 0565 /* refresh key */ +#define KEY_REPLACE 0566 /* replace key */ +#define KEY_RESTART 0567 /* restart key */ +#define KEY_RESUME 0570 /* resume key */ +#define KEY_SAVE 0571 /* save key */ +#define KEY_SBEG 0572 /* shifted begin key */ +#define KEY_SCANCEL 0573 /* shifted cancel key */ +#define KEY_SCOMMAND 0574 /* shifted command key */ +#define KEY_SCOPY 0575 /* shifted copy key */ +#define KEY_SCREATE 0576 /* shifted create key */ +#define KEY_SDC 0577 /* shifted delete-character key */ +#define KEY_SDL 0600 /* shifted delete-line key */ +#define KEY_SELECT 0601 /* select key */ +#define KEY_SEND 0602 /* shifted end key */ +#define KEY_SEOL 0603 /* shifted clear-to-end-of-line key */ +#define KEY_SEXIT 0604 /* shifted exit key */ +#define KEY_SFIND 0605 /* shifted find key */ +#define KEY_SHELP 0606 /* shifted help key */ +#define KEY_SHOME 0607 /* shifted home key */ +#define KEY_SIC 0610 /* shifted insert-character key */ +#define KEY_SLEFT 0611 /* shifted left-arrow key */ +#define KEY_SMESSAGE 0612 /* shifted message key */ +#define KEY_SMOVE 0613 /* shifted move key */ +#define KEY_SNEXT 0614 /* shifted next key */ +#define KEY_SOPTIONS 0615 /* shifted options key */ +#define KEY_SPREVIOUS 0616 /* shifted previous key */ +#define KEY_SPRINT 0617 /* shifted print key */ +#define KEY_SREDO 0620 /* shifted redo key */ +#define KEY_SREPLACE 0621 /* shifted replace key */ +#define KEY_SRIGHT 0622 /* shifted right-arrow key */ +#define KEY_SRSUME 0623 /* shifted resume key */ +#define KEY_SSAVE 0624 /* shifted save key */ +#define KEY_SSUSPEND 0625 /* shifted suspend key */ +#define KEY_SUNDO 0626 /* shifted undo key */ +#define KEY_SUSPEND 0627 /* suspend key */ +#define KEY_UNDO 0630 /* undo key */ +#define KEY_MOUSE 0631 /* Mouse event has occurred */ + +#ifdef NCURSES_EXT_FUNCS +#define KEY_RESIZE 0632 /* Terminal resize event */ +#endif + +#define KEY_MAX 0777 /* Maximum key value is 0632 */ +/* $Id: curses.wide,v 1.51 2021/05/22 20:28:29 tom Exp $ */ +/* + * vile:cmode: + * This file is part of ncurses, designed to be appended after curses.h.in + * (see that file for the relevant copyright). + */ +#define _XOPEN_CURSES 1 + +#if NCURSES_WIDECHAR + +extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs; + +#define NCURSES_WACS(c) (&_nc_wacs[NCURSES_CAST(unsigned char,(c))]) + +#define WACS_BSSB NCURSES_WACS('l') +#define WACS_SSBB NCURSES_WACS('m') +#define WACS_BBSS NCURSES_WACS('k') +#define WACS_SBBS NCURSES_WACS('j') +#define WACS_SBSS NCURSES_WACS('u') +#define WACS_SSSB NCURSES_WACS('t') +#define WACS_SSBS NCURSES_WACS('v') +#define WACS_BSSS NCURSES_WACS('w') +#define WACS_BSBS NCURSES_WACS('q') +#define WACS_SBSB NCURSES_WACS('x') +#define WACS_SSSS NCURSES_WACS('n') + +#define WACS_ULCORNER WACS_BSSB +#define WACS_LLCORNER WACS_SSBB +#define WACS_URCORNER WACS_BBSS +#define WACS_LRCORNER WACS_SBBS +#define WACS_RTEE WACS_SBSS +#define WACS_LTEE WACS_SSSB +#define WACS_BTEE WACS_SSBS +#define WACS_TTEE WACS_BSSS +#define WACS_HLINE WACS_BSBS +#define WACS_VLINE WACS_SBSB +#define WACS_PLUS WACS_SSSS + +#define WACS_S1 NCURSES_WACS('o') /* scan line 1 */ +#define WACS_S9 NCURSES_WACS('s') /* scan line 9 */ +#define WACS_DIAMOND NCURSES_WACS('`') /* diamond */ +#define WACS_CKBOARD NCURSES_WACS('a') /* checker board */ +#define WACS_DEGREE NCURSES_WACS('f') /* degree symbol */ +#define WACS_PLMINUS NCURSES_WACS('g') /* plus/minus */ +#define WACS_BULLET NCURSES_WACS('~') /* bullet */ + + /* Teletype 5410v1 symbols */ +#define WACS_LARROW NCURSES_WACS(',') /* arrow left */ +#define WACS_RARROW NCURSES_WACS('+') /* arrow right */ +#define WACS_DARROW NCURSES_WACS('.') /* arrow down */ +#define WACS_UARROW NCURSES_WACS('-') /* arrow up */ +#define WACS_BOARD NCURSES_WACS('h') /* board of squares */ +#define WACS_LANTERN NCURSES_WACS('i') /* lantern symbol */ +#define WACS_BLOCK NCURSES_WACS('0') /* solid square block */ + + /* ncurses extensions */ +#define WACS_S3 NCURSES_WACS('p') /* scan line 3 */ +#define WACS_S7 NCURSES_WACS('r') /* scan line 7 */ +#define WACS_LEQUAL NCURSES_WACS('y') /* less/equal */ +#define WACS_GEQUAL NCURSES_WACS('z') /* greater/equal */ +#define WACS_PI NCURSES_WACS('{') /* Pi */ +#define WACS_NEQUAL NCURSES_WACS('|') /* not equal */ +#define WACS_STERLING NCURSES_WACS('}') /* UK pound sign */ + + /* double lines */ +#define WACS_BDDB NCURSES_WACS('C') +#define WACS_DDBB NCURSES_WACS('D') +#define WACS_BBDD NCURSES_WACS('B') +#define WACS_DBBD NCURSES_WACS('A') +#define WACS_DBDD NCURSES_WACS('G') +#define WACS_DDDB NCURSES_WACS('F') +#define WACS_DDBD NCURSES_WACS('H') +#define WACS_BDDD NCURSES_WACS('I') +#define WACS_BDBD NCURSES_WACS('R') +#define WACS_DBDB NCURSES_WACS('Y') +#define WACS_DDDD NCURSES_WACS('E') + +#define WACS_D_ULCORNER WACS_BDDB +#define WACS_D_LLCORNER WACS_DDBB +#define WACS_D_URCORNER WACS_BBDD +#define WACS_D_LRCORNER WACS_DBBD +#define WACS_D_RTEE WACS_DBDD +#define WACS_D_LTEE WACS_DDDB +#define WACS_D_BTEE WACS_DDBD +#define WACS_D_TTEE WACS_BDDD +#define WACS_D_HLINE WACS_BDBD +#define WACS_D_VLINE WACS_DBDB +#define WACS_D_PLUS WACS_DDDD + + /* thick lines */ +#define WACS_BTTB NCURSES_WACS('L') +#define WACS_TTBB NCURSES_WACS('M') +#define WACS_BBTT NCURSES_WACS('K') +#define WACS_TBBT NCURSES_WACS('J') +#define WACS_TBTT NCURSES_WACS('U') +#define WACS_TTTB NCURSES_WACS('T') +#define WACS_TTBT NCURSES_WACS('V') +#define WACS_BTTT NCURSES_WACS('W') +#define WACS_BTBT NCURSES_WACS('Q') +#define WACS_TBTB NCURSES_WACS('X') +#define WACS_TTTT NCURSES_WACS('N') + +#define WACS_T_ULCORNER WACS_BTTB +#define WACS_T_LLCORNER WACS_TTBB +#define WACS_T_URCORNER WACS_BBTT +#define WACS_T_LRCORNER WACS_TBBT +#define WACS_T_RTEE WACS_TBTT +#define WACS_T_LTEE WACS_TTTB +#define WACS_T_BTEE WACS_TTBT +#define WACS_T_TTEE WACS_BTTT +#define WACS_T_HLINE WACS_BTBT +#define WACS_T_VLINE WACS_TBTB +#define WACS_T_PLUS WACS_TTTT + +/* + * Function prototypes for wide-character operations. + * + * "generated" comments should include ":WIDEC" to make the corresponding + * functions ifdef'd in lib_gen.c + * + * "implemented" comments do not need this marker. + */ + +extern NCURSES_EXPORT(int) add_wch (const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) addwstr (const wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) border_set (const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) erasewchar (wchar_t*); /* implemented */ +extern NCURSES_EXPORT(int) get_wch (wint_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) get_wstr (wint_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, NCURSES_PAIRS_T*, void*); /* implemented */ +extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) in_wch (cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) in_wchstr (cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) innwstr (wchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) ins_wch (const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) inwstr (wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t); /* implemented */ +extern NCURSES_EXPORT(int) killwchar (wchar_t *); /* implemented */ +extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);/* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);/* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);/* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);/* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *); /* implemented */ +extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, NCURSES_PAIRS_T, const void *); /* implemented */ +extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int); /* implemented */ +extern NCURSES_EXPORT(attr_t) term_attrs (void); /* implemented */ +extern NCURSES_EXPORT(int) unget_wch (const wchar_t); /* implemented */ +extern NCURSES_EXPORT(int) vid_attr (attr_t, NCURSES_PAIRS_T, void *); /* implemented */ +extern NCURSES_EXPORT(int) vid_puts (attr_t, NCURSES_PAIRS_T, void *, NCURSES_OUTC); /* implemented */ +extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *); /* implemented */ +extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int); /* implemented */ +extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int); /* implemented */ +extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *); /* implemented */ +extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *); /* implemented */ +extern NCURSES_EXPORT(int) wborder_set (WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* implemented */ +extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *); /* implemented */ +extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *); /* implemented */ +extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *, wint_t *, int); /* implemented */ +extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int); /* implemented */ +extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *); /* implemented */ +extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int); /* implemented */ +extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int); /* implemented */ +extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int); /* implemented */ +extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *); /* implemented */ +extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *); /* implemented */ +extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *); /* implemented */ +extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int); /* implemented */ + +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(term_attrs) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(erasewchar) (SCREEN*, wchar_t *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(killwchar) (SCREEN*, wchar_t *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(unget_wch) (SCREEN*, const wchar_t); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *); /* implemented:SP_FUNC */ +#endif + +#ifndef NCURSES_NOMACROS + +/* + * XSI curses macros for XPG4 conformance. + */ +#define add_wch(c) wadd_wch(stdscr,(c)) +#define add_wchnstr(str,n) wadd_wchnstr(stdscr,(str),(n)) +#define add_wchstr(str) wadd_wchstr(stdscr,(str)) +#define addnwstr(wstr,n) waddnwstr(stdscr,(wstr),(n)) +#define addwstr(wstr) waddwstr(stdscr,(wstr)) +#define bkgrnd(c) wbkgrnd(stdscr,(c)) +#define bkgrndset(c) wbkgrndset(stdscr,(c)) +#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,(l),(r),(t),(b),tl,tr,bl,br) +#define box_set(w,v,h) wborder_set((w),(v),(v),(h),(h),0,0,0,0) +#define echo_wchar(c) wecho_wchar(stdscr,(c)) +#define get_wch(c) wget_wch(stdscr,(c)) +#define get_wstr(t) wget_wstr(stdscr,(t)) +#define getbkgrnd(wch) wgetbkgrnd(stdscr,(wch)) +#define getn_wstr(t,n) wgetn_wstr(stdscr,(t),(n)) +#define hline_set(c,n) whline_set(stdscr,(c),(n)) +#define in_wch(c) win_wch(stdscr,(c)) +#define in_wchnstr(c,n) win_wchnstr(stdscr,(c),(n)) +#define in_wchstr(c) win_wchstr(stdscr,(c)) +#define innwstr(c,n) winnwstr(stdscr,(c),(n)) +#define ins_nwstr(t,n) wins_nwstr(stdscr,(t),(n)) +#define ins_wch(c) wins_wch(stdscr,(c)) +#define ins_wstr(t) wins_wstr(stdscr,(t)) +#define inwstr(c) winwstr(stdscr,(c)) +#define vline_set(c,n) wvline_set(stdscr,(c),(n)) +#define wadd_wchstr(win,str) wadd_wchnstr((win),(str),-1) +#define waddwstr(win,wstr) waddnwstr((win),(wstr),-1) +#define wget_wstr(w,t) wgetn_wstr((w),(t),-1) +#define win_wchstr(w,c) win_wchnstr((w),(c),-1) +#define wins_wstr(w,t) wins_nwstr((w),(t),-1) + +#if !NCURSES_OPAQUE +#define wgetbkgrnd(win,wch) (NCURSES_OK_ADDR(wch) ? ((win) ? (*(wch) = (win)->_bkgrnd) : *(wch), OK) : ERR) +#endif + +#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,(y),(x),(c)) +#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,(y),(x),(s),(n)) +#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,(y),(x),(s)) +#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,(y),(x),(wstr),(n)) +#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,(y),(x),(wstr)) +#define mvget_wch(y,x,c) mvwget_wch(stdscr,(y),(x),(c)) +#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,(y),(x),(t)) +#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,(y),(x),(t),(n)) +#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,(y),(x),(c),(n)) +#define mvin_wch(y,x,c) mvwin_wch(stdscr,(y),(x),(c)) +#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,(y),(x),(c),(n)) +#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,(y),(x),(c)) +#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,(y),(x),(c),(n)) +#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,(y),(x),(t),(n)) +#define mvins_wch(y,x,c) mvwins_wch(stdscr,(y),(x),(c)) +#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,(y),(x),(t)) +#define mvinwstr(y,x,c) mvwinwstr(stdscr,(y),(x),(c)) +#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,(y),(x),(c),(n)) + +#define mvwadd_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wch((win),(c))) +#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchnstr((win),(s),(n))) +#define mvwadd_wchstr(win,y,x,s) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchstr((win),(s))) +#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,(y),(x)) == ERR ? ERR : waddnwstr((win),(wstr),(n))) +#define mvwaddwstr(win,y,x,wstr) (wmove(win,(y),(x)) == ERR ? ERR : waddwstr((win),(wstr))) +#define mvwget_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wget_wch((win),(c))) +#define mvwget_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wget_wstr((win),(t))) +#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wgetn_wstr((win),(t),(n))) +#define mvwhline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : whline_set((win),(c),(n))) +#define mvwin_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wch((win),(c))) +#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : win_wchnstr((win),(c),(n))) +#define mvwin_wchstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wchstr((win),(c))) +#define mvwinnwstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : winnwstr((win),(c),(n))) +#define mvwins_nwstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wins_nwstr((win),(t),(n))) +#define mvwins_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wins_wch((win),(c))) +#define mvwins_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wins_wstr((win),(t))) +#define mvwinwstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : winwstr((win),(c))) +#define mvwvline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : wvline_set((win),(c),(n))) + +#endif /* NCURSES_NOMACROS */ + +#if defined(TRACE) || defined(NCURSES_TEST) +extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *); +extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *); +#endif + +#endif /* NCURSES_WIDECHAR */ +/* $Id: curses.tail,v 1.26 2021/03/20 15:49:25 tom Exp $ */ +/* + * vile:cmode: + * This file is part of ncurses, designed to be appended after curses.h.in + * (see that file for the relevant copyright). + */ + +/* mouse interface */ + +#if NCURSES_MOUSE_VERSION > 1 +#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5)) +#else +#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6)) +#endif + +#define NCURSES_BUTTON_RELEASED 001L +#define NCURSES_BUTTON_PRESSED 002L +#define NCURSES_BUTTON_CLICKED 004L +#define NCURSES_DOUBLE_CLICKED 010L +#define NCURSES_TRIPLE_CLICKED 020L +#define NCURSES_RESERVED_EVENT 040L + +/* event masks */ +#define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED) +#define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED) +#define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED) +#define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED) +#define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED) + +#define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED) +#define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED) +#define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED) +#define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED) +#define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED) + +#define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED) +#define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED) +#define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED) +#define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED) +#define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED) + +#define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED) +#define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED) +#define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED) +#define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED) +#define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED) + +/* + * In 32 bits the version-1 scheme does not provide enough space for a 5th + * button, unless we choose to change the ABI by omitting the reserved-events. + */ +#if NCURSES_MOUSE_VERSION > 1 + +#define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED) +#define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED) +#define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED) +#define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED) +#define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED) + +#define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L) +#define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L) +#define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L) +#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L) + +#else + +#define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT) +#define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT) +#define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT) +#define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT) + +#define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L) +#define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L) +#define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L) +#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L) + +#endif + +#define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1) + +/* macros to extract single event-bits from masks */ +#define BUTTON_RELEASE(e, x) ((e) & NCURSES_MOUSE_MASK(x, 001)) +#define BUTTON_PRESS(e, x) ((e) & NCURSES_MOUSE_MASK(x, 002)) +#define BUTTON_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 004)) +#define BUTTON_DOUBLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 010)) +#define BUTTON_TRIPLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 020)) +#define BUTTON_RESERVED_EVENT(e, x) ((e) & NCURSES_MOUSE_MASK(x, 040)) + +typedef struct +{ + short id; /* ID to distinguish multiple devices */ + int x, y, z; /* event coordinates (character-cell) */ + mmask_t bstate; /* button state bits */ +} +MEVENT; + +extern NCURSES_EXPORT(bool) has_mouse(void); +extern NCURSES_EXPORT(int) getmouse (MEVENT *); +extern NCURSES_EXPORT(int) ungetmouse (MEVENT *); +extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *); +extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int); +extern NCURSES_EXPORT(int) mouseinterval (int); +extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool); +extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */ + +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_mouse) (SCREEN*); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(getmouse) (SCREEN*, MEVENT *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetmouse) (SCREEN*,MEVENT *); +extern NCURSES_EXPORT(mmask_t) NCURSES_SP_NAME(mousemask) (SCREEN*, mmask_t, mmask_t *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mouseinterval) (SCREEN*, int); +#endif + +#ifndef NCURSES_NOMACROS +#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) +#endif + +/* other non-XSI functions */ + +extern NCURSES_EXPORT(int) mcprint (char *, int); /* direct data to printer */ +extern NCURSES_EXPORT(int) has_key (int); /* do we have given key? */ + +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN*, int); /* do we have given key? */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mcprint) (SCREEN*, char *, int); /* direct data to printer */ +#endif + +/* Debugging : use with libncurses_g.a */ + +extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2); +extern NCURSES_EXPORT(char *) _traceattr (attr_t); +extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype); +extern NCURSES_EXPORT(char *) _tracechar (int); +extern NCURSES_EXPORT(char *) _tracechtype (chtype); +extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype); +#if NCURSES_WIDECHAR +#define _tracech_t _tracecchar_t +extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *); +#define _tracech_t2 _tracecchar_t2 +extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *); +#else +#define _tracech_t _tracechtype +#define _tracech_t2 _tracechtype2 +#endif +extern NCURSES_EXPORT(void) trace (const unsigned) GCC_DEPRECATED("use curses_trace"); +extern NCURSES_EXPORT(unsigned) curses_trace (const unsigned); + +/* trace masks */ +#define TRACE_DISABLE 0x0000 /* turn off tracing */ +#define TRACE_TIMES 0x0001 /* trace user and system times of updates */ +#define TRACE_TPUTS 0x0002 /* trace tputs calls */ +#define TRACE_UPDATE 0x0004 /* trace update actions, old & new screens */ +#define TRACE_MOVE 0x0008 /* trace cursor moves and scrolls */ +#define TRACE_CHARPUT 0x0010 /* trace all character outputs */ +#define TRACE_ORDINARY 0x001F /* trace all update actions */ +#define TRACE_CALLS 0x0020 /* trace all curses calls */ +#define TRACE_VIRTPUT 0x0040 /* trace virtual character puts */ +#define TRACE_IEVENT 0x0080 /* trace low-level input processing */ +#define TRACE_BITS 0x0100 /* trace state of TTY control bits */ +#define TRACE_ICALLS 0x0200 /* trace internal/nested calls */ +#define TRACE_CCALLS 0x0400 /* trace per-character calls */ +#define TRACE_DATABASE 0x0800 /* trace read/write of terminfo/termcap data */ +#define TRACE_ATTRS 0x1000 /* trace attribute updates */ + +#define TRACE_SHIFT 13 /* number of bits in the trace masks */ +#define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) /* maximum trace level */ + +#if defined(TRACE) || defined(NCURSES_TEST) +extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */ +extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *); +#define OPTIMIZE_MVCUR 0x01 /* cursor movement optimization */ +#define OPTIMIZE_HASHMAP 0x02 /* diff hashing to detect scrolls */ +#define OPTIMIZE_SCROLL 0x04 /* scroll optimization */ +#define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */ +#endif + +extern GCC_NORETURN NCURSES_EXPORT(void) exit_curses (int); + +#include "unctrl.h" + +#ifdef __cplusplus + +#ifndef NCURSES_NOMACROS + +/* these names conflict with STL */ +#undef box +#undef clear +#undef erase +#undef move +#undef refresh + +#endif /* NCURSES_NOMACROS */ + +} +#endif + +#endif /* __NCURSES_H */ diff --git a/third_party/ncurses/curses.priv.h b/third_party/ncurses/curses.priv.h new file mode 100644 index 000000000..566202870 --- /dev/null +++ b/third_party/ncurses/curses.priv.h @@ -0,0 +1,2579 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2017,2018 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * + ****************************************************************************/ + +/* + * $Id: curses.priv.h,v 1.653 2022/10/23 13:29:26 tom Exp $ + * + * curses.priv.h + * + * Header file for curses library objects which are private to + * the library. + * + */ + +#ifndef CURSES_PRIV_H +#define CURSES_PRIV_H 1 +/* *INDENT-OFF* */ + +#include "libc/str/unicode.h" +#include "ncurses_dll.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ncurses_cfg.h" + +#if USE_RCS_IDS +#define MODULE_ID(id) static const char Ident[] = id; +#else +#define MODULE_ID(id) /*nothing*/ +#endif + +#include /* for offsetof */ +#include +#include +#include +#include + +#if HAVE_UNISTD_H +#include +#endif + +#if HAVE_LIMITS_H +# include +#elif HAVE_SYS_PARAM_H +# include +#endif + +#include +#include + +#include + +#if defined __hpux +# ifndef EILSEQ +# define EILSEQ 47 +# endif +#endif + +#ifndef PATH_MAX +# if defined(_POSIX_PATH_MAX) +# define PATH_MAX _POSIX_PATH_MAX +# elif defined(MAXPATHLEN) +# define PATH_MAX MAXPATHLEN +# else +# define PATH_MAX 255 /* the Posix minimum path-size */ +# endif +#endif + +#if DECL_ERRNO +extern int errno; +#endif + +/* Some Windows related defines */ +#undef _NC_WINDOWS +#if (defined(_WIN32) || defined(_WIN64)) +#define _NC_WINDOWS +#else +#undef EXP_WIN32_DRIVER +#endif + +#undef _NC_MINGW +#if (defined(__MINGW32__) || defined(__MINGW64__)) +#define _NC_MINGW +#endif + +#undef _NC_MSC +#ifdef _MSC_VER +#define _NC_MSC +#endif + +/* Some systems have a broken 'select()', but workable 'poll()'. Use that */ +#if HAVE_WORKING_POLL +#define USE_FUNC_POLL 1 +#if HAVE_POLL_H +#include +#else +#include +#endif +#else +#define USE_FUNC_POLL 0 +#endif + +#if HAVE_INTTYPES_H +# include +#else +# if HAVE_STDINT_H +# include +# endif +#endif + +#ifndef PRIxPTR +# define PRIxPTR "lx" +#endif + +/* include signal.h before curses.h to work-around defect in glibc 2.1.3 */ +#include + +/* Alessandro Rubini's GPM (general-purpose mouse) */ +#if HAVE_LIBGPM && HAVE_GPM_H +#define USE_GPM_SUPPORT 1 +#else +#define USE_GPM_SUPPORT 0 +#endif + +/* QNX mouse support */ +#if defined(__QNX__) && !defined(__QNXNTO__) +#define USE_QNX_MOUSE 1 +#else +#define USE_QNX_MOUSE 0 +#endif + +/* EMX mouse support */ +#ifdef __EMX__ +#define USE_EMX_MOUSE 1 +#else +#define USE_EMX_MOUSE 0 +#endif + +/* kLIBC keyboard/mouse support */ +#if defined(__OS2__) && defined(__KLIBC__) +#define USE_KLIBC_KBD 1 +#define USE_KLIBC_MOUSE 1 +#else +#define USE_KLIBC_KBD 0 +#define USE_KLIBC_MOUSE 0 +#endif + +#define DEFAULT_MAXCLICK 166 +#define EV_MAX 8 /* size of mouse circular event queue */ + +/* + * If we don't have signals to support it, don't add a sigwinch handler. + * In any case, resizing is an extended feature. Use it if we've got it. + */ +#if !NCURSES_EXT_FUNCS +#undef HAVE_SIZECHANGE +#define HAVE_SIZECHANGE 0 +#endif + +#if HAVE_SIZECHANGE && USE_SIGWINCH && defined(SIGWINCH) +#define USE_SIZECHANGE 1 +#else +#define USE_SIZECHANGE 0 +#undef USE_SIGWINCH +#define USE_SIGWINCH 0 +#endif + +/* + * When building in the MSYS2 environment, the automatic discovery of + * the path separator in configure doesn't work properly. So, if building + * for MinGW, we enforce the correct Windows PATH separator + */ +#if defined(_NC_WINDOWS) +# ifdef NCURSES_PATHSEP +# undef NCURSES_PATHSEP +# endif +# define NCURSES_PATHSEP ';' +#endif + +/* + * Not all platforms have memmove; some have an equivalent bcopy. (Some may + * have neither). + */ +#if USE_OK_BCOPY +#define memmove(d,s,n) bcopy(s,d,n) +#elif USE_MY_MEMMOVE +#define memmove(d,s,n) _nc_memmove(d,s,n) +extern NCURSES_EXPORT(void *) _nc_memmove (void *, const void *, size_t); +#endif + +/* + * If we have va_copy(), use it for assigning va_list's. + */ +#if defined(HAVE___VA_COPY) +#define begin_va_copy(dst,src) __va_copy(dst, src) +#define end_va_copy(dst) va_end(dst) +#elif defined(va_copy) || defined(HAVE_VA_COPY) +#define begin_va_copy(dst,src) va_copy(dst, src) +#define end_va_copy(dst) va_end(dst) +#else +#define begin_va_copy(dst,src) (dst) = (src) +#define end_va_copy(dst) /* nothing */ +#endif + +/* + * Either/both S_ISxxx and/or S_IFxxx are defined in sys/types.h; some systems + * lack one or the other. + */ +#ifndef S_ISDIR +#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR) +#endif + +#ifndef S_ISREG +#define S_ISREG(mode) ((mode & S_IFMT) == S_IFREG) +#endif + +/* + * POSIX ignores the "b", which c89 specified. Some very old systems do not + * accept it. + */ +#if USE_FOPEN_BIN_R +#define BIN_R "rb" +#define BIN_W "wb" +#else +#define BIN_R "r" +#define BIN_W "w" +#endif + +/* + * Scroll hints are useless when hashmap is used + */ +#if !USE_SCROLL_HINTS +#if !USE_HASHMAP +#define USE_SCROLL_HINTS 1 +#else +#define USE_SCROLL_HINTS 0 +#endif +#endif + +#if USE_SCROLL_HINTS +#define if_USE_SCROLL_HINTS(stmt) stmt +#else +#define if_USE_SCROLL_HINTS(stmt) /*nothing*/ +#endif + +#include "nc_string.h" + +/* + * Options for terminal drivers, etc... + */ +#ifdef USE_TERM_DRIVER +#define NO_TERMINAL "unknown" +#define USE_SP_RIPOFF 1 +#define USE_SP_TERMTYPE 1 +#define USE_SP_WINDOWLIST 1 +#else +#define NO_TERMINAL 0 +#endif + +#define VALID_TERM_ENV(term_env, no_terminal) \ + (term_env = (NonEmpty(term_env) \ + ? term_env \ + : no_terminal), \ + NonEmpty(term_env)) + +/* + * Note: ht/cbt expansion flakes out randomly under Linux 1.1.47, but only + * when we're throwing control codes at the screen at high volume. To see + * this, re-enable USE_HARD_TABS and run worm for a while. Other systems + * probably don't want to define this either due to uncertainties about tab + * delays and expansion in raw mode. + */ + +#define TRIES struct tries +typedef TRIES { + TRIES *child; /* ptr to child. NULL if none */ + TRIES *sibling; /* ptr to sibling. NULL if none */ + unsigned char ch; /* character at this node */ + unsigned short value; /* code of string so far. 0 if none. */ +#undef TRIES +} TRIES; + +/* + * Common/troublesome character definitions + */ +#define StringOf(ch) {ch, 0} + +#define L_BRACE '{' +#define R_BRACE '}' +#define S_QUOTE '\'' +#define D_QUOTE '"' + +#define VT_ACSC "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~" + +/* + * Structure for palette tables + */ + +#define MAXCOLUMNS 135 +#define MAXLINES 66 +#define FIFO_SIZE MAXCOLUMNS+2 /* for nocbreak mode input */ + +#define ACS_LEN 128 + +#define WINDOWLIST struct _win_list + +#if USE_WIDEC_SUPPORT +#define _nc_bkgd _bkgrnd +#else +#undef _XOPEN_SOURCE_EXTENDED +#undef _XPG5 +#define _nc_bkgd _bkgd +#define wgetbkgrnd(win, wch) ((*wch = win->_bkgd) != 0 ? OK : ERR) +#define wbkgrnd wbkgd +#endif + +#undef NCURSES_OPAQUE +#define NCURSES_INTERNALS 1 +#define NCURSES_OPAQUE 0 + +#include "curses.h" /* we'll use -Ipath directive to get the right one! */ + +#if !(defined(NCURSES_WGETCH_EVENTS) && defined(NEED_KEY_EVENT)) +#undef KEY_EVENT /* reduce compiler-warnings with Visual C++ */ +#endif + +typedef struct +{ + int red, green, blue; /* what color_content() returns */ + int r, g, b; /* params to init_color() */ + int init; /* true if we called init_color() */ +} +color_t; + +typedef union { + struct { + unsigned char red; + unsigned char green; + unsigned char blue; + } bits; /* bits per color-value in RGB */ + unsigned value; +} rgb_bits_t; + +/* + * If curses.h did not expose the SCREEN-functions, then we do not need the + * parameter in the corresponding unextended functions. + */ + +#define USE_SP_FUNC_SUPPORT NCURSES_SP_FUNCS +#define USE_EXT_SP_FUNC_SUPPORT (NCURSES_SP_FUNCS && NCURSES_EXT_FUNCS) + +#if NCURSES_SP_FUNCS +#define SP_PARM sp /* use parameter */ +#define NCURSES_SP_ARG SP_PARM +#define NCURSES_SP_DCL SCREEN *NCURSES_SP_ARG +#define NCURSES_SP_DCL0 NCURSES_SP_DCL +#define NCURSES_SP_ARGx NCURSES_SP_ARG, +#define NCURSES_SP_DCLx SCREEN *NCURSES_SP_ARGx +#else +#define SP_PARM SP /* use global variable */ +#define NCURSES_SP_ARG +#define NCURSES_SP_DCL +#define NCURSES_SP_DCL0 void +#define NCURSES_SP_ARGx +#define NCURSES_SP_DCLx +#endif + +#include "nc_panel.h" + +#include "term.priv.h" +#include "nc_termios.h" + +#define IsPreScreen(sp) (((sp) != 0) && sp->_prescreen) +#define HasTerminal(sp) (((sp) != 0) && (0 != ((sp)->_term))) +#define IsValidScreen(sp) (HasTerminal(sp) && !IsPreScreen(sp)) + +#if USE_REENTRANT +#define CurTerm _nc_prescreen._cur_term +#else +#define CurTerm cur_term +#endif + +#if NCURSES_SP_FUNCS +#define TerminalOf(sp) ((sp) ? ((sp)->_term ? (sp)->_term : CurTerm) : CurTerm) +#else +#define TerminalOf(sp) CurTerm +#endif + +/* + * The legacy layout for TERMTYPE uses "short" for all of the numbers. Moving + * past that, numeric capabilities can be "int" by using a TERMTYPE2 structure + * in TERMINAL, and doing most of the internal work using TERMTYPE2. There are + * a few places (mostly to expose the legacy layout) where the distinction + * needs attention. + */ +#if NCURSES_EXT_COLORS && HAVE_INIT_EXTENDED_COLOR +#define NCURSES_EXT_NUMBERS 1 +#define NCURSES_INT2 int +#define SIZEOF_INT2 4 +#define TerminalType(tp) (tp)->type2 +#else +#define NCURSES_EXT_NUMBERS 0 +#define NCURSES_INT2 short +#define SIZEOF_INT2 2 +#define TerminalType(tp) (tp)->type +#endif + +#define SIZEOF_SHORT 2 + +#ifdef CUR +#undef CUR +#define CUR TerminalType(cur_term). +#endif + +/* + * Reduce dependency on cur_term global by using terminfo data from SCREEN's + * pointer to this data. + */ +#ifdef USE_SP_TERMTYPE +#undef CUR +#endif + +#define SP_TERMTYPE TerminalType(TerminalOf(sp)). + +#include "term_entry.h" + +#include "nc_tparm.h" + +/* + * Simplify ifdef's for the "*_ATTR" macros in case italics are not configured. + */ +#if defined(A_ITALIC) && defined(exit_italics_mode) +#define USE_ITALIC 1 +#else +#define USE_ITALIC 0 +#undef A_ITALIC +#define A_ITALIC 0 +#endif + +/* + * Use these macros internally, to make tracing less verbose. But leave the + * option for compiling the tracing into the library. + */ +#if 1 +#define ColorPair(n) (NCURSES_BITS(n, 0) & A_COLOR) +#define PairNumber(a) (NCURSES_CAST(int,(((unsigned long)(a) & A_COLOR) >> NCURSES_ATTR_SHIFT))) +#else +#define ColorPair(pair) COLOR_PAIR(pair) +#define PairNumber(attr) PAIR_NUMBER(attr) +#endif + +#define unColor(n) unColor2(AttrOf(n)) +#define unColor2(a) ((a) & ALL_BUT_COLOR) + +/* + * Extended-colors stores the color pair in a separate struct-member than the + * attributes. But for compatibility, we handle most cases where a program + * written for non-extended colors stores the color in the attributes by + * checking for a color pair in both places. + */ +#if NCURSES_EXT_COLORS +#define if_EXT_COLORS(stmt) stmt +#define SetPair(value,p) SetPair2((value).ext_color, AttrOf(value), p) +#define SetPair2(c,a,p) c = (p), \ + a = (unColor2(a) | ColorPair(oldColor(c))) +#define GetPair(value) GetPair2((value).ext_color, AttrOf(value)) +#define GetPair2(c,a) ((c) ? (c) : PairNumber(a)) +#define oldColor(p) (((p) > 255) ? 255 : (p)) +#define GET_WINDOW_PAIR(w) GetPair2((w)->_color, (w)->_attrs) +#define SET_WINDOW_PAIR(w,p) (w)->_color = (p) +#define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b) && GetPair(a) == GetPair(b)) + +#define VIDPUTS(sp,attr,pair) do { \ + int vid_pair = pair; \ + NCURSES_SP_NAME(vid_puts)( \ + NCURSES_SP_ARGx attr, \ + (NCURSES_PAIRS_T) pair, \ + &vid_pair, \ + NCURSES_OUTC_FUNC); \ + } while (0) + +#else /* !NCURSES_EXT_COLORS */ + +#define if_EXT_COLORS(stmt) /* nothing */ +#define SetPair(value,p) RemAttr(value, A_COLOR), \ + SetAttr(value, AttrOf(value) | ColorPair(p)) +#define GetPair(value) PairNumber(AttrOf(value)) +#define GET_WINDOW_PAIR(w) PairNumber(WINDOW_ATTRS(w)) +#define SET_WINDOW_PAIR(w,p) WINDOW_ATTRS(w) &= ALL_BUT_COLOR, \ + WINDOW_ATTRS(w) |= ColorPair(p) +#define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b)) + +#define VIDPUTS(sp,attr,pair) NCURSES_SP_NAME(vidputs)(NCURSES_SP_ARGx attr, NCURSES_OUTC_FUNC) + +#endif /* NCURSES_EXT_COLORS */ + +#define NCURSES_OUTC_FUNC NCURSES_SP_NAME(_nc_outch) +#define NCURSES_PUTP2(name,value) NCURSES_SP_NAME(_nc_putp)(NCURSES_SP_ARGx name, value) +#define NCURSES_PUTP2_FLUSH(name,value) NCURSES_SP_NAME(_nc_putp_flush)(NCURSES_SP_ARGx name, value) + +#if NCURSES_NO_PADDING +#define GetNoPadding(sp) ((sp) ? (sp)->_no_padding : _nc_prescreen._no_padding) +#define SetNoPadding(sp) _nc_set_no_padding(sp) +extern NCURSES_EXPORT(void) _nc_set_no_padding(SCREEN *); +#else +#define GetNoPadding(sp) FALSE +#define SetNoPadding(sp) /*nothing*/ +#endif + +#define WINDOW_ATTRS(w) ((w)->_attrs) + +#define SCREEN_ATTRS(s) (*((s)->_current_attr)) +#define GET_SCREEN_PAIR(s) GetPair(SCREEN_ATTRS(s)) +#define SET_SCREEN_PAIR(s,p) SetPair(SCREEN_ATTRS(s), p) + +#if USE_REENTRANT || NCURSES_SP_FUNCS +NCURSES_EXPORT(int *) _nc_ptr_Lines (SCREEN *); +NCURSES_EXPORT(int *) _nc_ptr_Cols (SCREEN *); +NCURSES_EXPORT(int *) _nc_ptr_Tabsize (SCREEN *); +NCURSES_EXPORT(int *) _nc_ptr_Escdelay (SCREEN *); +#endif + +#if USE_REENTRANT + +#define ptrLines(sp) (sp ? &(sp->_LINES) : &(_nc_prescreen._LINES)) +#define ptrCols(sp) (sp ? &(sp->_COLS) : &(_nc_prescreen._COLS)) +#define ptrTabsize(sp) (sp ? &(sp->_TABSIZE) : &(_nc_prescreen._TABSIZE)) +#define ptrEscdelay(sp) (sp ? &(sp->_ESCDELAY) : &(_nc_prescreen._ESCDELAY)) + +#define SET_LINES(value) *_nc_ptr_Lines(SP_PARM) = value +#define SET_COLS(value) *_nc_ptr_Cols(SP_PARM) = value +#define SET_TABSIZE(value) *_nc_ptr_Tabsize(SP_PARM) = value +#define SET_ESCDELAY(value) *_nc_ptr_Escdelay(SP_PARM) = value + +#else + +#define ptrLines(sp) &LINES +#define ptrCols(sp) &COLS +#define ptrTabsize(sp) &TABSIZE +#define ptrEscdelay(sp) &ESCDELAY + +#define SET_LINES(value) LINES = value +#define SET_COLS(value) COLS = value +#define SET_TABSIZE(value) TABSIZE = value +#define SET_ESCDELAY(value) ESCDELAY = value + +#endif + +#define IS_SUBWIN(w) ((w)->_flags & _SUBWIN) +#define IS_PAD(w) ((w)->_flags & _ISPAD) +#define IS_WRAPPED(w) ((w)->_flags & _WRAPPED) + +#define HasHardTabs() (NonEmpty(clear_all_tabs) && NonEmpty(set_tab)) + +#define TR_MUTEX(data) _tracef("%s@%d: me:%08lX COUNT:%2u/%2d/%6d/%2d/%s%9u: " #data, \ + __FILE__, __LINE__, \ + (unsigned long) (pthread_self()), \ + data.__data.__lock, \ + data.__data.__count, \ + data.__data.__owner, \ + data.__data.__kind, \ + (data.__data.__nusers > 5) ? " OOPS " : "", \ + data.__data.__nusers) +#define TR_GLOBAL_MUTEX(name) TR_MUTEX(_nc_globals.mutex_##name) + +#if USE_WEAK_SYMBOLS +#if defined(__GNUC__) +# if defined __USE_ISOC99 +# define _cat_pragma(exp) _Pragma(#exp) +# define _weak_pragma(exp) _cat_pragma(weak name) +# else +# define _weak_pragma(exp) +# endif +# define _declare(name) __extension__ extern __typeof__(name) name +# define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak)) +#else +# undef USE_WEAK_SYMBOLS +# define USE_WEAK_SYMBOLS 0 +#endif +#endif + +#ifdef USE_PTHREADS + +#if USE_REENTRANT +#include +extern NCURSES_EXPORT(void) _nc_init_pthreads(void); +extern NCURSES_EXPORT(void) _nc_mutex_init(pthread_mutex_t *); +extern NCURSES_EXPORT(int) _nc_mutex_lock(pthread_mutex_t *); +extern NCURSES_EXPORT(int) _nc_mutex_trylock(pthread_mutex_t *); +extern NCURSES_EXPORT(int) _nc_mutex_unlock(pthread_mutex_t *); +#define _nc_lock_global(name) _nc_mutex_lock(&_nc_globals.mutex_##name) +#define _nc_try_global(name) _nc_mutex_trylock(&_nc_globals.mutex_##name) +#define _nc_unlock_global(name) _nc_mutex_unlock(&_nc_globals.mutex_##name) + +#else +#error POSIX threads requires --enable-reentrant option +#endif + +#ifdef USE_PTHREADS +# if USE_WEAK_SYMBOLS +weak_symbol(pthread_sigmask); +weak_symbol(pthread_kill); +weak_symbol(pthread_self); +weak_symbol(pthread_equal); +weak_symbol(pthread_mutex_init); +weak_symbol(pthread_mutex_lock); +weak_symbol(pthread_mutex_unlock); +weak_symbol(pthread_mutex_trylock); +weak_symbol(pthread_mutexattr_settype); +weak_symbol(pthread_mutexattr_init); +extern NCURSES_EXPORT(int) _nc_sigprocmask(int, const sigset_t *, sigset_t *); +# undef sigprocmask +# define sigprocmask(a, b, c) _nc_sigprocmask(a, b, c) +# define GetThreadID() (((pthread_self)) ? pthread_self() : (pthread_t) getpid()) +# else +# define GetThreadID() pthread_self() +# endif +#endif + +#if HAVE_NANOSLEEP +#undef HAVE_NANOSLEEP +#define HAVE_NANOSLEEP 0 /* nanosleep suspends all threads */ +#endif + +#else /* !USE_PTHREADS */ + +#if USE_PTHREADS_EINTR +# if USE_WEAK_SYMBOLS +#include +weak_symbol(pthread_sigmask); +weak_symbol(pthread_kill); +weak_symbol(pthread_self); +weak_symbol(pthread_equal); +extern NCURSES_EXPORT(int) _nc_sigprocmask(int, const sigset_t *, sigset_t *); +# undef sigprocmask +# define sigprocmask(a, b, c) _nc_sigprocmask(a, b, c) +# endif +#endif /* USE_PTHREADS_EINTR */ + +#define _nc_init_pthreads() /* nothing */ +#define _nc_mutex_init(obj) /* nothing */ + +#define _nc_lock_global(name) /* nothing */ +#define _nc_try_global(name) 0 +#define _nc_unlock_global(name) /* nothing */ +#endif /* USE_PTHREADS */ + +#if USE_PTHREADS_EINTR +extern NCURSES_EXPORT(void) _nc_set_read_thread(bool); +#else +#define _nc_set_read_thread(enable) /* nothing */ +#endif + +/* + * When using sp-funcs, locks are targeted to SCREEN-level granularity. + * So the locking is done in the non-sp-func (which calls the sp-func) rather + * than in the sp-func itself. + * + * Use the _nc_nonsp_XXX functions in the function using "NCURSES_SP_NAME()". + * Use the _nc_sp_XXX functions in the function using "#if NCURSES_SP_FUNCS". + */ +#if NCURSES_SP_FUNCS + +#define _nc_nonsp_lock_global(name) /* nothing */ +#define _nc_nonsp_try_global(name) 0 +#define _nc_nonsp_unlock_global(name) /* nothing */ + +#define _nc_sp_lock_global(name) _nc_lock_global(name) +#define _nc_sp_try_global(name) _nc_try_global(name) +#define _nc_sp_unlock_global(name) _nc_unlock_global(name) + +#else + +#define _nc_nonsp_lock_global(name) _nc_lock_global(name) +#define _nc_nonsp_try_global(name) _nc_try_global(name) +#define _nc_nonsp_unlock_global(name) _nc_unlock_global(name) + +#define _nc_sp_lock_global(name) /* nothing */ +#define _nc_sp_try_global(name) 0 +#define _nc_sp_unlock_global(name) /* nothing */ + +#endif + +#if HAVE_GETTIMEOFDAY +# define PRECISE_GETTIME 1 +# define TimeType struct timeval +#else +# define PRECISE_GETTIME 0 +# define TimeType time_t +#endif + +/* + * Definitions for color pairs + */ + +#define MAX_OF_TYPE(t) (int)(((unsigned t)(~0))>>1) + +#include "new_pair.h" + +#define isDefaultColor(c) ((c) < 0) +#define COLOR_DEFAULT -1 + +#if defined(USE_BUILD_CC) || (defined(USE_TERMLIB) && !defined(NEED_NCURSES_CH_T)) + +#undef NCURSES_CH_T /* this is not a termlib feature */ +#define NCURSES_CH_T void /* ...but we need a pointer in SCREEN */ + +#endif /* USE_TERMLIB */ + +#ifndef USE_TERMLIB +struct ldat +{ + NCURSES_CH_T *text; /* text of the line */ + NCURSES_SIZE_T firstchar; /* first changed character in the line */ + NCURSES_SIZE_T lastchar; /* last changed character in the line */ + NCURSES_SIZE_T oldindex; /* index of the line at last update */ +}; +#endif /* USE_TERMLIB */ + +typedef enum { + M_XTERM = -1 /* use xterm's mouse tracking? */ + ,M_NONE = 0 /* no mouse device */ +#if USE_GPM_SUPPORT + ,M_GPM /* use GPM */ +#endif +#if USE_SYSMOUSE + ,M_SYSMOUSE /* FreeBSD sysmouse on console */ +#endif +#ifdef USE_TERM_DRIVER + ,M_TERM_DRIVER /* Win32 console, etc */ +#endif +} MouseType; + +typedef enum { + MF_X10 = 0 /* conventional 3-byte format */ + , MF_SGR1006 /* xterm private mode 1006, SGR-style */ +#ifdef EXP_XTERM_1005 + , MF_XTERM_1005 /* xterm UTF-8 private mode 1005 */ +#endif +} MouseFormat; + +/* + * Structures for scrolling. + */ + +typedef struct { + unsigned long hashval; + int oldcount, newcount; + int oldindex, newindex; +} HASHMAP; + +/* + * Structures for soft labels. + */ + +struct _SLK; + +#if !(defined(USE_TERMLIB) || defined(USE_BUILD_CC)) + +typedef struct +{ + char *ent_text; /* text for the label */ + char *form_text; /* formatted text (left/center/...) */ + int ent_x; /* x coordinate of this field */ + char dirty; /* this label has changed */ + char visible; /* field is visible */ +} slk_ent; + +typedef struct _SLK { + bool dirty; /* all labels have changed */ + bool hidden; /* soft labels are hidden */ + WINDOW *win; + slk_ent *ent; + short maxlab; /* number of available labels */ + short labcnt; /* number of allocated labels */ + short maxlen; /* length of labels */ + NCURSES_CH_T attr; /* soft label attribute */ +} SLK; + +#endif /* USE_TERMLIB */ + +#if USE_GPM_SUPPORT +#undef buttons /* term.h defines this, and gpm uses it! */ +#include +#if USE_WEAK_SYMBOLS +weak_symbol(Gpm_Wgetch); +#endif + +#ifdef HAVE_LIBDL +/* link dynamically to GPM */ +typedef int *TYPE_gpm_fd; +typedef int (*TYPE_Gpm_Open) (Gpm_Connect *, int); +typedef int (*TYPE_Gpm_Close) (void); +typedef int (*TYPE_Gpm_GetEvent) (Gpm_Event *); + +#define my_gpm_fd SP_PARM->_mouse_gpm_fd +#define my_Gpm_Open SP_PARM->_mouse_Gpm_Open +#define my_Gpm_Close SP_PARM->_mouse_Gpm_Close +#define my_Gpm_GetEvent SP_PARM->_mouse_Gpm_GetEvent +#else +/* link statically to GPM */ +#define my_gpm_fd &gpm_fd +#define my_Gpm_Open Gpm_Open +#define my_Gpm_Close Gpm_Close +#define my_Gpm_GetEvent Gpm_GetEvent +#endif /* HAVE_LIBDL */ +#endif /* USE_GPM_SUPPORT */ + +/* + * When converting from terminfo to termcap, check for cases where we can trim + * octal escapes down to 2-character form. It is useful for terminfo format + * also, but not as important. + */ +#define MAX_TC_FIXUPS 10 +#define MIN_TC_FIXUPS 4 + +#define isoctal(c) ((c) >= '0' && (c) <= '7') + +/* + * The filesystem database normally uses a single-letter for the lower level + * of directories. Use a hexadecimal code for filesystems which do not + * preserve mixed-case names. + */ +#if MIXEDCASE_FILENAMES +#define LEAF_FMT "%c" +#define LEAF_LEN 1 +#else +#define LEAF_FMT "%02x" +#define LEAF_LEN 2 +#endif + +/* + * TRACEMSE_FMT is no longer than 80 columns, there are 5 numbers that + * could at most have 10 digits, and the mask contains no more than 32 bits + * with each bit representing less than 15 characters. Usually the whole + * string is less than 80 columns, but this buffer size is an absolute + * limit. + */ +#define TRACEMSE_MAX (80 + (5 * 10) + (32 * 15)) +#define TRACEMSE_FMT "id %2d at (%2d, %2d, %2d) state %4lx = {" /* } */ + +#ifdef USE_TERM_DRIVER +struct DriverTCB; /* Terminal Control Block forward declaration */ +#define INIT_TERM_DRIVER() _nc_globals.term_driver = _nc_get_driver +#else +#define INIT_TERM_DRIVER() /* nothing */ +#endif + +extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals; + +/* The limit reserves one byte for a terminating NUL */ +#define my_getstr_limit (_nc_globals.getstr_limit - 1) +#define _nc_getstr_limit(n) \ + (((n) < 0) \ + ? my_getstr_limit \ + : (((n) > my_getstr_limit) \ + ? my_getstr_limit \ + : (n))) + +/* + * Use screen-specific ripoff data (for softkeys) rather than global. + */ +#ifdef USE_SP_RIPOFF +#define safe_ripoff_sp (sp)->rsp +#define safe_ripoff_stack (sp)->rippedoff +#else +#define safe_ripoff_sp _nc_prescreen.rsp +#define safe_ripoff_stack _nc_prescreen.rippedoff +#endif + +extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen; + +typedef enum { + ewInitial = 0, + ewRunning, + ewSuspend +} ENDWIN; + +/* + * The SCREEN structure. + */ +typedef struct screen { + int _ifd; /* input file descriptor for screen */ + int _ofd; /* output file descriptor for screen */ + FILE *_ofp; /* output file ptr for screen */ + char *out_buffer; /* output buffer */ + size_t out_limit; /* output buffer size */ + size_t out_inuse; /* output buffer current use */ + bool _filtered; /* filter() was called */ + bool _prescreen; /* is in prescreen phase */ + bool _use_env; /* LINES & COLS from environment? */ + int _checkfd; /* filedesc for typeahead check */ + TERMINAL *_term; /* terminal type information */ + TTY _saved_tty; /* savetty/resetty information */ + NCURSES_SIZE_T _lines; /* screen lines */ + NCURSES_SIZE_T _columns; /* screen columns */ + + NCURSES_SIZE_T _lines_avail; /* lines available for stdscr */ + NCURSES_SIZE_T _topstolen; /* lines stolen from top */ + + WINDOW *_curscr; /* current screen */ + WINDOW *_newscr; /* virtual screen to be updated to */ + WINDOW *_stdscr; /* screen's full-window context */ + +#define CurScreen(sp) (sp)->_curscr +#define NewScreen(sp) (sp)->_newscr +#define StdScreen(sp) (sp)->_stdscr + + TRIES *_keytry; /* "Try" for use with keypad mode */ + TRIES *_key_ok; /* Disabled keys via keyok(,FALSE) */ + bool _tried; /* keypad mode was initialized */ + bool _keypad_on; /* keypad mode is currently on */ + + bool _called_wgetch; /* check for recursion in wgetch() */ + int _fifo[FIFO_SIZE]; /* input push-back buffer */ + short _fifohead, /* head of fifo queue */ + _fifotail, /* tail of fifo queue */ + _fifopeek, /* where to peek for next char */ + _fifohold; /* set if breakout marked */ + + int _endwin; /* are we out of window mode? */ + NCURSES_CH_T *_current_attr; /* holds current attributes set */ + int _coloron; /* is color enabled? */ + int _color_defs; /* are colors modified */ + int _cursor; /* visibility of the cursor */ + int _cursrow; /* physical cursor row */ + int _curscol; /* physical cursor column */ + bool _notty; /* true if we cannot switch non-tty */ + int _nl; /* True if NL -> CR/NL is on */ + int _raw; /* True if in raw mode */ + int _cbreak; /* 1 if in cbreak mode */ + /* > 1 if in halfdelay mode */ + int _echo; /* True if echo on */ + int _use_meta; /* use the meta key? */ + struct _SLK *_slk; /* ptr to soft key struct / NULL */ + int slk_format; /* selected format for this screen */ + /* cursor movement costs; units are 10ths of milliseconds */ + int _char_padding; /* cost of character put */ + int _cr_cost; /* cost of (carriage_return) */ + int _cup_cost; /* cost of (cursor_address) */ + int _home_cost; /* cost of (cursor_home) */ + int _ll_cost; /* cost of (cursor_to_ll) */ + int _cub1_cost; /* cost of (cursor_left) */ + int _cuf1_cost; /* cost of (cursor_right) */ + int _cud1_cost; /* cost of (cursor_down) */ + int _cuu1_cost; /* cost of (cursor_up) */ + int _cub_cost; /* cost of (parm_cursor_left) */ + int _cuf_cost; /* cost of (parm_cursor_right) */ + int _cud_cost; /* cost of (parm_cursor_down) */ + int _cuu_cost; /* cost of (parm_cursor_up) */ + int _hpa_cost; /* cost of (column_address) */ + int _vpa_cost; /* cost of (row_address) */ + /* used in tty_update.c, must be chars */ + int _ed_cost; /* cost of (clr_eos) */ + int _el_cost; /* cost of (clr_eol) */ + int _el1_cost; /* cost of (clr_bol) */ + int _dch1_cost; /* cost of (delete_character) */ + int _ich1_cost; /* cost of (insert_character) */ + int _dch_cost; /* cost of (parm_dch) */ + int _ich_cost; /* cost of (parm_ich) */ + int _ech_cost; /* cost of (erase_chars) */ + int _rep_cost; /* cost of (repeat_char) */ + int _hpa_ch_cost; /* cost of (column_address) */ + int _cup_ch_cost; /* cost of (cursor_address) */ + int _cuf_ch_cost; /* cost of (parm_cursor_right) */ + int _inline_cost; /* cost of inline-move */ + int _smir_cost; /* cost of (enter_insert_mode) */ + int _rmir_cost; /* cost of (exit_insert_mode) */ + int _ip_cost; /* cost of (insert_padding) */ + /* used in lib_mvcur.c */ + char * _address_cursor; + /* used in tty_update.c */ + int _scrolling; /* 1 if terminal's smart enough to */ + + /* used in lib_color.c */ + rgb_bits_t _direct_color; /* RGB overrides color-table */ + color_t *_color_table; /* screen's color palette */ + int _color_count; /* count of colors in palette */ + colorpair_t *_color_pairs; /* screen's color pair list */ + int _pair_count; /* same as COLOR_PAIRS */ + int _pair_limit; /* actual limit of color-pairs */ + int _pair_alloc; /* current table-size of color-pairs */ + chtype _ok_attributes; /* valid attributes for terminal */ + chtype _xmc_suppress; /* attributes to suppress if xmc */ + chtype _xmc_triggers; /* attributes to process if xmc */ + chtype * _acs_map; /* the real alternate-charset map */ + bool * _screen_acs_map; + + + /* used in lib_vidattr.c */ + bool _use_rmso; /* true if we may use 'rmso' */ + bool _use_rmul; /* true if we may use 'rmul' */ + + /* + * These data correspond to the state of the idcok() and idlok() + * functions. A caveat is in order here: the XSI and SVr4 + * documentation specify that these functions apply to the window which + * is given as an argument. However, ncurses implements this logic + * only for the newscr/curscr update process, _not_ per-window. + */ + bool _nc_sp_idlok; + bool _nc_sp_idcok; + + /* + * These are the data that support the mouse interface. + */ + bool _mouse_initialized; + MouseType _mouse_type; + int _maxclick; + bool (*_mouse_event) (SCREEN *); + bool (*_mouse_inline)(SCREEN *); + bool (*_mouse_parse) (SCREEN *, int); + void (*_mouse_resume)(SCREEN *); + void (*_mouse_wrap) (SCREEN *); + int _mouse_fd; /* file-descriptor, if any */ + bool _mouse_active; /* true if initialized */ + mmask_t _mouse_mask; /* set via mousemask() */ + mmask_t _mouse_mask2; /* OR's in press/release bits */ + mmask_t _mouse_bstate; + MouseFormat _mouse_format; /* type of xterm mouse protocol */ + NCURSES_CONST char *_mouse_xtermcap; /* string to enable/disable mouse */ + MEVENT _mouse_events[EV_MAX]; /* hold the last mouse event seen */ + MEVENT *_mouse_eventp; /* next free slot in event queue */ + + /* + * These are data that support the proper handling of the panel stack on an + * per screen basis. + */ + struct panelhook _panelHook; + + bool _sig_winch; + SCREEN *_next_screen; + + /* hashes for old and new lines */ + unsigned long *oldhash, *newhash; + HASHMAP *hashtab; + int hashtab_len; + int *_oldnum_list; + int _oldnum_size; + + NCURSES_SP_OUTC _outch; /* output handler if not putc */ + NCURSES_OUTC jump; + + ripoff_t rippedoff[N_RIPS]; + ripoff_t *rsp; + + int _legacy_coding; /* see use_legacy_coding() */ + +#if NCURSES_NO_PADDING + bool _no_padding; /* flag to set if padding disabled */ +#endif + +#if USE_HARD_TABS + int _ht_cost; /* cost of (tab) */ + int _cbt_cost; /* cost of (backtab) */ +#endif /* USE_HARD_TABS */ + + /* used in lib_vidattr.c */ +#if USE_ITALIC + bool _use_ritm; /* true if we may use 'ritm' */ +#endif + + /* used in getch/twait */ +#if USE_KLIBC_KBD + bool _extended_key; /* true if an extended key */ +#endif + + /* used in lib_color.c */ +#if NCURSES_EXT_FUNCS + bool _assumed_color; /* use assumed colors */ + bool _default_color; /* use default colors */ + bool _has_sgr_39_49; /* has ECMA default color support */ + int _default_fg; /* assumed default foreground */ + int _default_bg; /* assumed default background */ + int _default_pairs; /* count pairs using default color */ +#endif + + /* system-dependent mouse data */ +#if USE_GPM_SUPPORT + bool _mouse_gpm_loaded; + bool _mouse_gpm_found; +#ifdef HAVE_LIBDL + void *_dlopen_gpm; + TYPE_gpm_fd _mouse_gpm_fd; + TYPE_Gpm_Open _mouse_Gpm_Open; + TYPE_Gpm_Close _mouse_Gpm_Close; + TYPE_Gpm_GetEvent _mouse_Gpm_GetEvent; +#endif + Gpm_Connect _mouse_gpm_connect; +#endif /* USE_GPM_SUPPORT */ + +#if USE_EMX_MOUSE + int _emxmouse_wfd; + int _emxmouse_thread; + int _emxmouse_activated; + char _emxmouse_buttons[4]; +#endif + +#if USE_SYSMOUSE + MEVENT _sysmouse_fifo[FIFO_SIZE]; + int _sysmouse_head; + int _sysmouse_tail; + int _sysmouse_char_width; /* character width */ + int _sysmouse_char_height; /* character height */ + int _sysmouse_old_buttons; + int _sysmouse_new_buttons; +#endif + +#if defined(USE_TERM_DRIVER) || defined(EXP_WIN32_DRIVER) + MEVENT _drv_mouse_fifo[FIFO_SIZE]; + int _drv_mouse_head; + int _drv_mouse_tail; + int _drv_mouse_old_buttons; + int _drv_mouse_new_buttons; +#endif + /* + * This supports automatic resizing + */ +#if USE_SIZECHANGE + int (*_resize)(NCURSES_SP_DCLx int y, int x); + int (*_ungetch)(SCREEN *, int); +#endif + +#ifdef USE_SP_WINDOWLIST + WINDOWLIST* _windowlist; +#define WindowList(sp) (sp)->_windowlist +#endif + +#if USE_REENTRANT + char _ttytype[NAMESIZE]; + int _ESCDELAY; + int _TABSIZE; + int _LINES; + int _COLS; +#endif + +#if NCURSES_SP_FUNCS + bool use_tioctl; +#endif + + /* + * ncurses/ncursesw are the same up to this point. + */ +#if USE_WIDEC_SUPPORT + /* recent versions of 'screen' have partially-working support for + * UTF-8, but do not permit ACS at the same time (see tty_update.c). + */ + bool _screen_acs_fix; + bool _screen_unicode; +#endif + +#if NCURSES_EXT_FUNCS && NCURSES_EXT_COLORS + void *_ordered_pairs; /* index used by alloc_pair() */ + int _pairs_used; /* actual number of color-pairs used */ + int _recent_pair; /* number for most recent free-pair */ +#endif + +#ifdef TRACE + char tracechr_buf[40]; + char tracemse_buf[TRACEMSE_MAX]; +#if USE_REENTRANT + long _outchars; + const char *_tputs_trace; +#endif +#endif +#undef SCREEN +} SCREEN; + +extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain; +extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch; + + WINDOWLIST { + WINDOWLIST *next; + SCREEN *screen; /* screen containing the window */ + WINDOW win; /* WINDOW_EXT() needs to account for offset */ +#if NCURSES_WIDECHAR + char addch_work[(MB_LEN_MAX * 9) + 1]; + unsigned addch_used; /* number of bytes in addch_work[] */ + int addch_x; /* x-position for addch_work[] */ + int addch_y; /* y-position for addch_work[] */ +#endif +}; + +#define WINDOW_EXT(w,m) (((WINDOWLIST *)((void *)((char *)(w) - offsetof(WINDOWLIST, win))))->m) + +#ifdef USE_SP_WINDOWLIST +#define SP_INIT_WINDOWLIST(sp) WindowList(sp) = 0 +#else +#define SP_INIT_WINDOWLIST(sp) /* nothing */ +#endif + +#define SP_PRE_INIT(sp) \ + sp->_cursrow = -1; \ + sp->_curscol = -1; \ + sp->_nl = TRUE; \ + sp->_raw = FALSE; \ + sp->_cbreak = 0; \ + sp->_echo = TRUE; \ + sp->_fifohead = -1; \ + sp->_endwin = ewSuspend; \ + sp->_cursor = -1; \ + SP_INIT_WINDOWLIST(sp); \ + sp->_outch = NCURSES_OUTC_FUNC; \ + sp->jump = 0 \ + +/* usually in */ +#ifndef UCHAR_MAX +#define UCHAR_MAX 255 +#endif + +/* The terminfo source is assumed to be 7-bit ASCII */ +#define is7bits(c) ((unsigned)(c) < 128) + +/* Checks for isprint() should be done on 8-bit characters (non-wide) */ +#define is8bits(c) ((unsigned)(c) <= UCHAR_MAX) + +#ifndef min +#define min(a,b) ((a) > (b) ? (b) : (a)) +#endif + +#ifndef max +#define max(a,b) ((a) < (b) ? (b) : (a)) +#endif + +/* usually in */ +#ifndef STDIN_FILENO +#define STDIN_FILENO 0 +#endif + +#ifndef STDOUT_FILENO +#define STDOUT_FILENO 1 +#endif + +#ifndef STDERR_FILENO +#define STDERR_FILENO 2 +#endif + +#ifndef EXIT_SUCCESS +#define EXIT_SUCCESS 0 +#endif + +#ifndef EXIT_FAILURE +#define EXIT_FAILURE 1 +#endif + +#ifndef R_OK +#define R_OK 4 /* Test for read permission. */ +#endif +#ifndef W_OK +#define W_OK 2 /* Test for write permission. */ +#endif +#ifndef X_OK +#define X_OK 1 /* Test for execute permission. */ +#endif +#ifndef F_OK +#define F_OK 0 /* Test for existence. */ +#endif + +#if HAVE_FCNTL_H +#include /* may define O_BINARY */ +#endif + +#ifndef O_BINARY +#define O_BINARY 0 +#endif + +#ifdef TRACE +#if USE_REENTRANT +#define COUNT_OUTCHARS(n) _nc_count_outchars(n); +#else +#define COUNT_OUTCHARS(n) _nc_outchars += (n); +#endif +#else +#define COUNT_OUTCHARS(n) /* nothing */ +#endif + +#define RESET_OUTCHARS() COUNT_OUTCHARS(-_nc_outchars) + +#define UChar(c) ((unsigned char)(c)) +#define UShort(c) ((unsigned short)(c)) +#define ChCharOf(c) ((chtype)(c) & (chtype)A_CHARTEXT) +#define ChAttrOf(c) ((chtype)(c) & (chtype)A_ATTRIBUTES) + +#define TR_PUTC(c) TR(TRACE_CHARPUT, ("PUTC %#x", UChar(c))) + +#ifndef MB_LEN_MAX +#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */ +#endif + +#if USE_WIDEC_SUPPORT /* { */ +#define isEILSEQ(status) (((size_t)status == (size_t)-1) && (errno == EILSEQ)) + +#define init_mb(state) memset(&(state), 0, sizeof(state)) + +#if NCURSES_EXT_COLORS +#define NulColor , 0 +#else +#define NulColor /* nothing */ +#endif + +#define NulChar 0,0,0,0 /* FIXME: see CCHARW_MAX */ +#define CharOf(c) ((c).chars[0]) +#define AttrOf(c) ((c).attr) + +#define AddAttr(c,a) AttrOf(c) |= ((a) & A_ATTRIBUTES) +#define RemAttr(c,a) AttrOf(c) &= ~((a) & A_ATTRIBUTES) +#define SetAttr(c,a) AttrOf(c) = ((a) & A_ATTRIBUTES) | WidecExt(c) + +#define NewChar2(c,a) { a, { c, NulChar } NulColor } +#define NewChar(ch) NewChar2(ChCharOf(ch), ChAttrOf(ch)) + +#if CCHARW_MAX == 5 +#define CharEq(a,b) (((a).attr == (b).attr) \ + && (a).chars[0] == (b).chars[0] \ + && (a).chars[1] == (b).chars[1] \ + && (a).chars[2] == (b).chars[2] \ + && (a).chars[3] == (b).chars[3] \ + && (a).chars[4] == (b).chars[4] \ + if_EXT_COLORS(&& (a).ext_color == (b).ext_color)) +#elif CCHARW_MAX > 0 +#error Inconsistent values for CCHARW_MAX +#else +#define CharEq(a,b) (!memcmp(&(a), &(b), sizeof(a))) +#endif + +#define SetChar(ch,c,a) do { \ + NCURSES_CH_T *_cp = &(ch); \ + memset(_cp, 0, sizeof(ch)); \ + _cp->chars[0] = (wchar_t) (c); \ + _cp->attr = (a); \ + if_EXT_COLORS(SetPair(ch, PairNumber(a))); \ + } while (0) +#define CHREF(wch) (&(wch)) +#define CHDEREF(wch) (*(wch)) +#define ARG_CH_T NCURSES_CH_T * +#define CARG_CH_T const NCURSES_CH_T * +#define PUTC_DATA char PUTC_buf[MB_LEN_MAX]; int PUTC_i, PUTC_n; \ + mbstate_t PUT_st; wchar_t PUTC_ch +#define PUTC_INIT init_mb (PUT_st) +#define PUTC(ch) do { if(!isWidecExt(ch)) { \ + if (Charable(ch)) { \ + TR_PUTC(CharOf(ch)); \ + NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \ + COUNT_OUTCHARS(1); \ + } else { \ + for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) { \ + PUTC_ch = (ch).chars[PUTC_i]; \ + if (PUTC_ch == L'\0') \ + break; \ + PUTC_INIT; \ + PUTC_n = (int) wcrtomb(PUTC_buf, \ + (ch).chars[PUTC_i], &PUT_st); \ + if (PUTC_n <= 0) { \ + if (PUTC_ch && is8bits(PUTC_ch) && PUTC_i == 0) { \ + TR_PUTC(CharOf(ch)); \ + NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \ + } \ + break; \ + } else { \ + int PUTC_j; \ + for (PUTC_j = 0; PUTC_j < PUTC_n; ++PUTC_j) { \ + TR_PUTC(PUTC_buf[PUTC_j]); \ + NCURSES_OUTC_FUNC (NCURSES_SP_ARGx PUTC_buf[PUTC_j]); \ + } \ + } \ + } \ + COUNT_OUTCHARS(PUTC_i); \ + } } } while (0) + +#define BLANK NewChar2(' ', WA_NORMAL) +#define ZEROS NewChar2('\0', WA_NORMAL) +#define ISBLANK(ch) ((ch).chars[0] == L' ' && (ch).chars[1] == L'\0') + + /* + * Wide characters cannot be represented in the A_CHARTEXT mask of + * attr_t's but an application might have set a narrow character there. + * But even in that case, it would only be a printable character, or + * zero. Otherwise we can use those bits to tell if a cell is the + * first or extension part of a wide character. + */ +#define WidecExt(ch) (int) (AttrOf(ch) & A_CHARTEXT) +#define isWidecBase(ch) (WidecExt(ch) == 1) +#define isWidecExt(ch) (WidecExt(ch) > 1 && WidecExt(ch) < 32) +#define SetWidecExt(dst, ext) AttrOf(dst) &= ~A_CHARTEXT, \ + AttrOf(dst) |= (attr_t) (ext + 1) + +#define if_WIDEC(code) code +#define Charable(ch) (((SP_PARM->_legacy_coding) \ + || (AttrOf(ch) & A_ALTCHARSET) \ + || (!isWidecExt(ch))) && \ + (ch).chars[1] == L'\0' && \ + _nc_is_charable(CharOf(ch))) + +#define L(ch) L ## ch +#else /* }{ */ +#define CharOf(c) ChCharOf(c) +#define AttrOf(c) ChAttrOf(c) +#define AddAttr(c,a) c |= (a) +#define RemAttr(c,a) c &= ~((a) & A_ATTRIBUTES) +#define SetAttr(c,a) c = ((c) & ~A_ATTRIBUTES) | (a) +#define NewChar(ch) (ch) +#define NewChar2(c,a) ((c) | (a)) +#define CharEq(a,b) ((a) == (b)) +#define SetChar(ch,c,a) ch = (c) | (a) +#define CHREF(wch) wch +#define CHDEREF(wch) wch +#define ARG_CH_T NCURSES_CH_T +#define CARG_CH_T NCURSES_CH_T +#define PUTC_DATA /* nothing */ +#define PUTC(ch) { \ + TR_PUTC(ch); \ + NCURSES_OUTC_FUNC (NCURSES_SP_ARGx (int) ch); \ + } + +#define BLANK (' '|A_NORMAL) +#define ZEROS ('\0'|A_NORMAL) +#define ISBLANK(ch) (CharOf(ch) == ' ') + +#define isWidecExt(ch) (0) +#define if_WIDEC(code) /* nothing */ + +#define Charable(ch) ((ch) >= ' ' && (ch) <= '~') +#define L(ch) ch +#endif /* } */ + +#define AttrOfD(ch) AttrOf(CHDEREF(ch)) +#define CharOfD(ch) CharOf(CHDEREF(ch)) +#define SetChar2(wch,ch) SetChar(wch,ChCharOf(ch),ChAttrOf(ch)) + +#define BLANK_ATTR A_NORMAL +#define BLANK_TEXT L(' ') + +#define CHANGED -1 + +#define LEGALYX(w, y, x) \ + ((w) != 0 && \ + ((x) >= 0 && (x) <= (w)->_maxx && \ + (y) >= 0 && (y) <= (w)->_maxy)) + +#define CHANGED_CELL(line,col) \ + if (line->firstchar == _NOCHANGE) \ + line->firstchar = line->lastchar = (NCURSES_SIZE_T) (col); \ + else if ((col) < line->firstchar) \ + line->firstchar = (NCURSES_SIZE_T) (col); \ + else if ((col) > line->lastchar) \ + line->lastchar = (NCURSES_SIZE_T) (col) + +#define CHANGED_RANGE(line,start,end) \ + if (line->firstchar == _NOCHANGE \ + || line->firstchar > (start)) \ + line->firstchar = (NCURSES_SIZE_T) (start); \ + if (line->lastchar == _NOCHANGE \ + || line->lastchar < (end)) \ + line->lastchar = (NCURSES_SIZE_T) (end) + +#define CHANGED_TO_EOL(line,start,end) \ + if (line->firstchar == _NOCHANGE \ + || line->firstchar > (start)) \ + line->firstchar = (NCURSES_SIZE_T) (start); \ + line->lastchar = (NCURSES_SIZE_T) (end) + +#define SIZEOF(v) (sizeof(v)/sizeof(v[0])) + +#define FreeIfNeeded(p) if ((p) != 0) free(p) + +/* FreeAndNull() is not a comma-separated expression because some compilers + * do not accept a mixture of void with values. + */ +#define FreeAndNull(p) do { free(p); p = 0; } while (0) + +#include "nc_alloc.h" +#include "nc_access.h" + +/* + * Use these for tic/infocmp malloc failures. Generally the ncurses library + * tries to limp along after a failure. + */ +#define TYPE_MALLOC(type, size, name) \ + do { \ + name = typeMalloc(type, size); \ + if (name == 0) \ + _nc_err_abort(MSG_NO_MEMORY); \ + } while (0) + +#define TYPE_CALLOC(type, size, name) \ + do { \ + name = typeCalloc(type, size); \ + if (name == 0) \ + _nc_err_abort(MSG_NO_MEMORY); \ + } while (0) + +#define TYPE_REALLOC(type, size, name) \ + do { \ + name = typeRealloc(type, size, name); \ + if (name == 0) \ + _nc_err_abort(MSG_NO_MEMORY); \ + } while (0) + +/* + * TTY bit definition for converting tabs to spaces. + */ +#ifdef TAB3 +# define OFLAGS_TABS TAB3 /* POSIX specifies TAB3 */ +#else +# ifdef XTABS +# define OFLAGS_TABS XTABS /* XTABS is usually the "same" */ +# else +# ifdef OXTABS +# define OFLAGS_TABS OXTABS /* the traditional BSD equivalent */ +# else +# define OFLAGS_TABS 0 +# endif +# endif +#endif + +#ifdef __TANDEM +#define ROOT_UID 65535 +#endif + +#ifndef ROOT_UID +#define ROOT_UID 0 +#endif + +/* + * Standardize/simplify common loops + */ +#define each_screen(p) p = _nc_screen_chain; p != 0; p = (p)->_next_screen +#define each_window(sp,p) p = WindowList(sp); p != 0; p = (p)->next +#define each_ripoff(p) p = safe_ripoff_stack; (p - safe_ripoff_stack) < N_RIPS; ++p + +/* + * Prefixes for call/return points of library function traces. We use these to + * instrument the public functions so that the traces can be easily transformed + * into regression scripts. + */ +#define T_CALLED(fmt) "called {" fmt +#define T_CREATE(fmt) "create :" fmt +#define T_RETURN(fmt) "return }" fmt + +#define NonNull(s) ((s) != 0 ? s : "") +#define NonEmpty(s) ((s) != 0 && *(s) != '\0') + +#ifdef TRACE + +#if USE_REENTRANT +#define TPUTS_TRACE(s) _nc_set_tputs_trace(s); +#else +#define TPUTS_TRACE(s) _nc_tputs_trace = s; +#endif + +#ifdef HAVE_CONSISTENT_GETENV +#define START_TRACE() \ + if ((_nc_tracing & TRACE_MAXIMUM) == 0) { \ + int t = _nc_getenv_num("NCURSES_TRACE"); \ + if (t >= 0) \ + curses_trace((unsigned) t); \ + } +#else +#define START_TRACE() /* nothing */ +#endif + +/* + * Many of the _tracef() calls use static buffers; lock the trace state before + * trying to fill them. + */ +#if USE_REENTRANT +#define USE_TRACEF(mask) _nc_use_tracef(mask) +extern NCURSES_EXPORT(int) _nc_use_tracef (unsigned); +extern NCURSES_EXPORT(void) _nc_locked_tracef (const char *, ...) GCC_PRINTFLIKE(1,2); +#else +#define USE_TRACEF(mask) (_nc_tracing & (mask)) +#define _nc_locked_tracef _tracef +#endif + +#define TR(n, a) if (USE_TRACEF(n)) _nc_locked_tracef a +#define T(a) TR(TRACE_CALLS, a) +#define TRACE_RETURN(value,type) return _nc_retrace_##type((type)(value)) +#define TRACE_RETURN1(value,dst) return _nc_retrace_##dst(value) +#define TRACE_RETURN2(value,dst,src) return _nc_retrace_##dst##_##src(value) +#define TRACE_RETURN_SP(value,type) return _nc_retrace_##type(SP_PARM, value) + +typedef void VoidFunc(void); + +#define TR_FUNC_LEN ((sizeof(void *) + sizeof(void (*)(void))) * 2 + 4) +#define TR_FUNC_BFR(max) char tr_func_data[max][TR_FUNC_LEN] +#define TR_FUNC_ARG(num,func) _nc_fmt_funcptr(&tr_func_data[num][0], (const char *)&(func), sizeof((func))) + +#define returnAttr(code) TRACE_RETURN(code,attr_t) +#define returnBits(code) TRACE_RETURN(code,unsigned) +#define returnBool(code) TRACE_RETURN(code,bool) +#define returnCPtr(code) TRACE_RETURN1(code,cptr) +#define returnCVoidPtr(code) TRACE_RETURN1(code,cvoid_ptr) +#define returnChar(code) TRACE_RETURN(code,char) +#define returnChtype(code) TRACE_RETURN(code,chtype) +#define returnCode(code) TRACE_RETURN(code,int) +#define returnIntAttr(code) TRACE_RETURN2(code,int,attr_t) +#define returnMMask(code) TRACE_RETURN_SP(code,mmask_t) +#define returnPtr(code) TRACE_RETURN1(code,ptr) +#define returnSP(code) TRACE_RETURN1(code,sp) +#define returnVoid T((T_RETURN(""))); return +#define returnVoidPtr(code) TRACE_RETURN1(code,void_ptr) +#define returnWin(code) TRACE_RETURN1(code,win) + +#define returnDB(rc) do { TR(TRACE_DATABASE,(T_RETURN("code %d"), (rc))); return (rc); } while (0) +#define returnPtrDB(rc) do { TR(TRACE_DATABASE,(T_RETURN("%p"), (rc))); return (rc); } while (0) +#define returnVoidDB do { TR(TRACE_DATABASE,(T_RETURN(""))); return; } while (0) + +extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (int); +extern NCURSES_EXPORT(NCURSES_CONST void *) _nc_retrace_cvoid_ptr (NCURSES_CONST void *); +extern NCURSES_EXPORT(SCREEN *) _nc_retrace_sp (SCREEN *); +extern NCURSES_EXPORT(WINDOW *) _nc_retrace_win (WINDOW *); +extern NCURSES_EXPORT(attr_t) _nc_retrace_attr_t (attr_t); +extern NCURSES_EXPORT(char *) _nc_retrace_ptr (char *); +extern NCURSES_EXPORT(char *) _nc_trace_ttymode(const TTY *tty); +extern NCURSES_EXPORT(char *) _nc_varargs (const char *, va_list); +extern NCURSES_EXPORT(chtype) _nc_retrace_chtype (chtype); +extern NCURSES_EXPORT(const char *) _nc_altcharset_name(attr_t, chtype); +extern NCURSES_EXPORT(const char *) _nc_retrace_cptr (const char *); +extern NCURSES_EXPORT(char) _nc_retrace_char (int); +extern NCURSES_EXPORT(int) _nc_retrace_int (int); +extern NCURSES_EXPORT(int) _nc_retrace_int_attr_t (attr_t); +extern NCURSES_EXPORT(mmask_t) _nc_retrace_mmask_t (SCREEN *, mmask_t); +extern NCURSES_EXPORT(unsigned) _nc_retrace_unsigned (unsigned); +extern NCURSES_EXPORT(void *) _nc_retrace_void_ptr (void *); +extern NCURSES_EXPORT(void) _nc_fifo_dump (SCREEN *); + +extern NCURSES_EXPORT(char *) _nc_fmt_funcptr(char *, const char *, size_t); + +#if USE_REENTRANT +NCURSES_WRAPPED_VAR(long, _nc_outchars); +NCURSES_WRAPPED_VAR(const char *, _nc_tputs_trace); +#define _nc_outchars NCURSES_PUBLIC_VAR(_nc_outchars()) +#define _nc_tputs_trace NCURSES_PUBLIC_VAR(_nc_tputs_trace()) +extern NCURSES_EXPORT(void) _nc_set_tputs_trace (const char *); +extern NCURSES_EXPORT(void) _nc_count_outchars (long); +#else +extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace; +extern NCURSES_EXPORT_VAR(long) _nc_outchars; +#endif + +extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing; + +extern NCURSES_EXPORT(char *) _nc_tracebits (void); +extern NCURSES_EXPORT(char *) _tracemouse (const MEVENT *); +extern NCURSES_EXPORT(void) _tracedump (const char *, WINDOW *); + +#if USE_WIDEC_SUPPORT +extern NCURSES_EXPORT(const char *) _nc_viswbuf2 (int, const wchar_t *); +extern NCURSES_EXPORT(const char *) _nc_viswbufn (const wchar_t *, int); +#endif + +extern NCURSES_EXPORT(const char *) _nc_viscbuf2 (int, const NCURSES_CH_T *, int); +extern NCURSES_EXPORT(const char *) _nc_viscbuf (const NCURSES_CH_T *, int); + +#else /* !TRACE */ + +#define START_TRACE() /* nothing */ + +#define T(a) +#define TR(n, a) +#define TPUTS_TRACE(s) +#define TR_FUNC_BFR(max) + +#define returnAttr(code) return code +#define returnBits(code) return code +#define returnBool(code) return code +#define returnCPtr(code) return code +#define returnCVoidPtr(code) return code +#define returnChar(code) return ((char) code) +#define returnChtype(code) return code +#define returnCode(code) return code +#define returnIntAttr(code) return code +#define returnMMask(code) return code +#define returnPtr(code) return code +#define returnSP(code) return code +#define returnVoid return +#define returnVoidPtr(code) return code +#define returnWin(code) return code + +#define returnDB(code) return code +#define returnPtrDB(rc) return rc +#define returnVoidDB return + +#endif /* TRACE/!TRACE */ + +/* + * Workaround for defective implementation of gcc attribute warn_unused_result + */ +#if defined(__GNUC__) && defined(_FORTIFY_SOURCE) +#define IGNORE_RC(func) errno = (int) func +#else +#define IGNORE_RC(func) (void) func +#endif /* gcc workarounds */ + +/* + * Return-codes for tgetent() and friends. + */ +#define TGETENT_YES 1 /* entry is found */ +#define TGETENT_NO 0 /* entry is not found */ +#define TGETENT_ERR -1 /* an error occurred */ + +extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *); +extern NCURSES_EXPORT(const char *) _nc_visbufn (const char *, int); + +#define EMPTY_MODULE(name) \ +extern NCURSES_EXPORT(void) name (void); \ + NCURSES_EXPORT(void) name (void) { } + +#define ALL_BUT_COLOR ((chtype)~(A_COLOR)) +#define NONBLANK_ATTR (A_BOLD | A_DIM | A_BLINK | A_ITALIC) +#define TPARM_ATTR (A_STANDOUT | A_UNDERLINE | A_REVERSE | A_BLINK | A_DIM | A_BOLD | A_ALTCHARSET | A_INVIS | A_PROTECT) +#define XMC_CONFLICT (A_STANDOUT | A_UNDERLINE | A_REVERSE | A_BLINK | A_DIM | A_BOLD | A_INVIS | A_PROTECT | A_ITALIC) +#define XMC_CHANGES(c) ((c) & SP_PARM->_xmc_suppress) + +#define toggle_attr_on(S,at) {\ + if (PairNumber(at) > 0) {\ + (S) = ((S) & ALL_BUT_COLOR) | (attr_t) (at);\ + } else {\ + (S) |= (attr_t) (at);\ + }\ + TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));} + + +#define toggle_attr_off(S,at) {\ + if (PairNumber(at) > 0) {\ + (S) &= ~(at|A_COLOR);\ + } else {\ + (S) &= ~(at);\ + }\ + TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));} + +#define DelCharCost(sp,count) \ + ((parm_dch != 0) \ + ? sp->_dch_cost \ + : ((delete_character != 0) \ + ? (sp->_dch1_cost * count) \ + : INFINITY)) + +#define InsCharCost(sp,count) \ + ((parm_ich != 0) \ + ? sp->_ich_cost \ + : ((enter_insert_mode && exit_insert_mode) \ + ? sp->_smir_cost + sp->_rmir_cost + (sp->_ip_cost * count) \ + : ((insert_character != 0) \ + ? ((sp->_ich1_cost + sp->_ip_cost) * count) \ + : INFINITY))) + +#if USE_XMC_SUPPORT +#define UpdateAttrs(sp,c) if (!SameAttrOf(SCREEN_ATTRS(sp), c)) { \ + attr_t chg = AttrOf(SCREEN_ATTRS(sp)); \ + VIDPUTS(sp, AttrOf(c), GetPair(c)); \ + if (magic_cookie_glitch > 0 \ + && XMC_CHANGES((chg ^ AttrOf(SCREEN_ATTRS(sp))))) { \ + T(("%s @%d before glitch %d,%d", \ + __FILE__, __LINE__, \ + sp->_cursrow, \ + sp->_curscol)); \ + NCURSES_SP_NAME(_nc_do_xmc_glitch)(NCURSES_SP_ARGx chg); \ + } \ + } +#else +#define UpdateAttrs(sp,c) if (!SameAttrOf(SCREEN_ATTRS(sp), c)) { \ + VIDPUTS(sp, AttrOf(c), GetPair(c)); \ + } +#endif + +/* + * Macros to make additional parameter to implement wgetch_events() + */ +#ifdef NCURSES_WGETCH_EVENTS +#define EVENTLIST_0th(param) param +#define EVENTLIST_1st(param) param +#define EVENTLIST_2nd(param) , param +#define TWAIT_MASK (TW_ANY | TW_EVENT) +#else +#define EVENTLIST_0th(param) void +#define EVENTLIST_1st(param) /* nothing */ +#define EVENTLIST_2nd(param) /* nothing */ +#define TWAIT_MASK TW_ANY +#endif + +#if NCURSES_EXPANDED && NCURSES_EXT_FUNCS + +#undef toggle_attr_on +#define toggle_attr_on(S,at) _nc_toggle_attr_on(&(S), at) +extern NCURSES_EXPORT(void) _nc_toggle_attr_on (attr_t *, attr_t); + +#undef toggle_attr_off +#define toggle_attr_off(S,at) _nc_toggle_attr_off(&(S), at) +extern NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *, attr_t); + +#undef DelCharCost +#define DelCharCost(sp, count) NCURSES_SP_NAME(_nc_DelCharCost)(NCURSES_SP_ARGx count) + +#undef InsCharCost +#define InsCharCost(sp, count) NCURSES_SP_NAME(_nc_InsCharCost)(NCURSES_SP_ARGx count) + +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_DelCharCost) (NCURSES_SP_DCLx int _c); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_InsCharCost) (NCURSES_SP_DCLx int _c); + +#undef UpdateAttrs +#define UpdateAttrs(sp,c) NCURSES_SP_NAME(_nc_UpdateAttrs)(NCURSES_SP_ARGx CHREF(c)) + +#if USE_WIDEC_SUPPORT || defined(NEED_NCURSES_CH_T) +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_UpdateAttrs) (NCURSES_SP_DCLx CARG_CH_T _c); +#else +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_UpdateAttrs) (NCURSES_SP_DCLx chtype c); +#endif + +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(int) _nc_DelCharCost (int); +extern NCURSES_EXPORT(int) _nc_InsCharCost (int); +extern NCURSES_EXPORT(void) _nc_UpdateAttrs (CARG_CH_T); +#endif /* NCURSES_SP_FUNCS */ + +#else + +extern NCURSES_EXPORT(void) _nc_expanded (void); + +#endif + +#if !NCURSES_EXT_FUNCS +#define set_escdelay(value) ESCDELAY = value +#endif + +#if !HAVE_GETCWD +#define getcwd(buf,len) getwd(buf) +#endif + +#define save_ttytype(termp) \ + if (TerminalType(termp).term_names != 0) { \ + _nc_STRNCPY(ttytype, \ + TerminalType(termp).term_names, \ + NAMESIZE - 1); \ + ttytype[NAMESIZE - 1] = '\0'; \ + } + +#if !NCURSES_WCWIDTH_GRAPHICS +extern NCURSES_EXPORT(int) _nc_wacs_width(unsigned); +#else +#define _nc_wacs_width(ch) wcwidth(ch) +#endif + +/* charable.c */ +#if USE_WIDEC_SUPPORT +extern NCURSES_EXPORT(bool) _nc_is_charable(wchar_t); +extern NCURSES_EXPORT(int) _nc_to_char(wint_t); +extern NCURSES_EXPORT(wint_t) _nc_to_widechar(int); +#endif + +/* comp_captab.c */ +typedef struct { + short nte_name; /* offset of name to hash on */ + int nte_type; /* BOOLEAN, NUMBER or STRING */ + short nte_index; /* index of associated variable in its array */ + short nte_link; /* index in table of next hash, or -1 */ +} name_table_data; + +typedef struct +{ + short from; + short to; + short source; +} alias_table_data; + +/* comp_userdefs.c */ +typedef struct { + short ute_name; /* offset of name to hash on */ + unsigned ute_type; /* mask (BOOLEAN, NUMBER, STRING) */ + unsigned ute_argc; /* number of parameters */ + unsigned ute_args; /* bit-mask for string parameters */ + short ute_index; /* index of associated variable in its array */ + short ute_link; /* index in table of next hash, or -1 */ +} user_table_data; + +/* doupdate.c */ +#if USE_XMC_SUPPORT +extern NCURSES_EXPORT(void) _nc_do_xmc_glitch (attr_t); +#endif + +/* hardscroll.c */ +#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG) +extern NCURSES_EXPORT(void) _nc_linedump (void); +#endif + +/* lib_acs.c */ +extern NCURSES_EXPORT(void) _nc_init_acs (void); /* corresponds to traditional 'init_acs()' */ +extern NCURSES_EXPORT(int) _nc_msec_cost (const char *const, int); /* used by 'tack' program */ + +/* lib_addch.c */ +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) _nc_build_wch(WINDOW *win, ARG_CH_T ch); +#endif + +/* lib_addstr.c */ +#if USE_WIDEC_SUPPORT && !(defined(USE_TERMLIB) || defined(USE_BUILD_CC)) +extern NCURSES_EXPORT(int) _nc_wchstrlen(const cchar_t *); +#endif + +/* lib_color.c */ +extern NCURSES_EXPORT(int) _nc_init_color(SCREEN *, int, int, int, int); +extern NCURSES_EXPORT(int) _nc_init_pair(SCREEN *, int, int, int); +extern NCURSES_EXPORT(int) _nc_pair_content(SCREEN *, int, int *, int *); +extern NCURSES_EXPORT(bool) _nc_reset_colors(void); +extern NCURSES_EXPORT(void) _nc_reserve_pairs(SCREEN *, int); +extern NCURSES_EXPORT(void) _nc_change_pair(SCREEN *, int); + +#define ReservePairs(sp,want) \ + if ((sp->_color_pairs == 0) || (want >= sp->_pair_alloc)) \ + _nc_reserve_pairs(sp, want) + +/* lib_getch.c */ +extern NCURSES_EXPORT(int) _nc_wgetch(WINDOW *, int *, int EVENTLIST_2nd(_nc_eventlist *)); + +/* lib_insch.c */ +extern NCURSES_EXPORT(int) _nc_insert_ch(SCREEN *, WINDOW *, chtype); + +/* lib_mvcur.c */ +#define INFINITY 1000000 /* cost: too high to use */ + +extern NCURSES_EXPORT(int) _nc_mvcur(int yold, int xold, int ynew, int xnew); + +extern NCURSES_EXPORT(void) _nc_mvcur_init (void); +extern NCURSES_EXPORT(void) _nc_mvcur_resume (void); +extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void); + +extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int); + +extern NCURSES_EXPORT(void) _nc_screen_init (void); +extern NCURSES_EXPORT(void) _nc_screen_resume (void); +extern NCURSES_EXPORT(void) _nc_screen_wrap (void); + +/* lib_mouse.c */ +extern NCURSES_EXPORT(bool) _nc_has_mouse (SCREEN *); + +/* lib_mvcur.c */ +#define INFINITY 1000000 /* cost: too high to use */ +#define BAUDBYTE 9 /* 9 = 7 bits + 1 parity + 1 stop */ + +/* lib_setup.c */ +extern NCURSES_EXPORT(char *) _nc_get_locale(void); +extern NCURSES_EXPORT(int) _nc_unicode_locale(void); +extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(TERMINAL *); +extern NCURSES_EXPORT(int) _nc_setupterm(const char *, int, int *, int); +extern NCURSES_EXPORT(void) _nc_tinfo_cmdch(TERMINAL *, int); + +#ifdef USE_PTHREADS +extern NCURSES_EXPORT(SCREEN *) _nc_find_prescr(void); +extern NCURSES_EXPORT(void) _nc_forget_prescr(void); +#else +#define _nc_find_prescr() _nc_prescreen.allocated +#define _nc_forget_prescr() _nc_prescreen.allocated = 0 +#endif + +/* lib_set_term.c */ +extern NCURSES_EXPORT(int) _nc_ripoffline(int, int(*)(WINDOW*, int)); + +/* lib_setup.c */ +#define ExitTerminfo(code) exit_terminfo(code) + +#define SETUP_FAIL ERR + +#define ret_error(rc, fmt, p, q) if (errret) {\ + *errret = rc;\ + q;\ + returnCode(SETUP_FAIL);\ + } else {\ + fprintf(stderr, fmt, p);\ + q;\ + ExitTerminfo(EXIT_FAILURE);\ + } + +#define ret_error1(rc, fmt, p, q) ret_error(rc, "'%s': " fmt, p, q) + +#define ret_error0(rc, msg) if (errret) {\ + *errret = rc;\ + returnCode(SETUP_FAIL);\ + } else {\ + fprintf(stderr, msg);\ + ExitTerminfo(EXIT_FAILURE);\ + } + +/* lib_tstp.c */ +#if USE_SIGWINCH +extern NCURSES_EXPORT(int) _nc_handle_sigwinch(SCREEN *); +#else +#define _nc_handle_sigwinch(a) /* nothing */ +#endif + +/* lib_wacs.c */ +#if USE_WIDEC_SUPPORT +extern NCURSES_EXPORT(void) _nc_init_wacs(void); +#endif + +typedef struct { + char *s_head; /* beginning of the string (may be null) */ + char *s_tail; /* end of the string (may be null) */ + size_t s_size; /* current remaining size available */ + size_t s_init; /* total size available */ +} string_desc; + +/* strings.c */ +extern NCURSES_EXPORT(string_desc *) _nc_str_init (string_desc *, char *, size_t); +extern NCURSES_EXPORT(string_desc *) _nc_str_null (string_desc *, size_t); +extern NCURSES_EXPORT(string_desc *) _nc_str_copy (string_desc *, string_desc *); +extern NCURSES_EXPORT(bool) _nc_safe_strcat (string_desc *, const char *); +extern NCURSES_EXPORT(bool) _nc_safe_strcpy (string_desc *, const char *); + +#if !HAVE_STRSTR +#define strstr _nc_strstr +extern NCURSES_EXPORT(char *) _nc_strstr (const char *, const char *); +#endif + +/* safe_sprintf.c */ +extern NCURSES_EXPORT(char *) _nc_printf_string (const char *, va_list); + +/* tries.c */ +extern NCURSES_EXPORT(int) _nc_add_to_try (TRIES **, const char *, unsigned); +extern NCURSES_EXPORT(char *) _nc_expand_try (TRIES *, unsigned, int *, size_t); +extern NCURSES_EXPORT(int) _nc_remove_key (TRIES **, unsigned); +extern NCURSES_EXPORT(int) _nc_remove_string (TRIES **, const char *); + +/* elsewhere ... */ +extern NCURSES_EXPORT(SCREEN *) _nc_screen_of (WINDOW *); +extern NCURSES_EXPORT(TERMINAL*) _nc_get_cur_term (void); +extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int); +extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t); +extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *); +extern NCURSES_EXPORT(char *) _nc_tracechar (SCREEN *, int); +extern NCURSES_EXPORT(char *) _nc_tracemouse (SCREEN *, MEVENT const *); +extern NCURSES_EXPORT(char *) _nc_trace_mmask_t (SCREEN *, mmask_t); +extern NCURSES_EXPORT(int) _nc_access (const char *, int); +extern NCURSES_EXPORT(int) _nc_baudrate (int); +extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *); +extern NCURSES_EXPORT(int) _nc_getenv_num (const char *); +extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, int); +extern NCURSES_EXPORT(int) _nc_ospeed (int); +extern NCURSES_EXPORT(int) _nc_outch (int); +extern NCURSES_EXPORT(int) _nc_putchar (int); +extern NCURSES_EXPORT(int) _nc_putp(const char *, const char *); +extern NCURSES_EXPORT(int) _nc_putp_flush(const char *, const char *); +extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE2 *const); +extern NCURSES_EXPORT(int) _nc_setup_tinfo(const char *, TERMTYPE2 *); +extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, int, int); +extern NCURSES_EXPORT(int) _nc_timed_wait (SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *)); +extern NCURSES_EXPORT(void) _nc_init_termtype (TERMTYPE2 *const); +extern NCURSES_EXPORT(void) _nc_do_color (int, int, int, NCURSES_OUTC); +extern NCURSES_EXPORT(void) _nc_flush (void); +extern NCURSES_EXPORT(void) _nc_free_entry (ENTRY *, TERMTYPE2 *); +extern NCURSES_EXPORT(void) _nc_freeall (void); +extern NCURSES_EXPORT(void) _nc_hash_map (void); +extern NCURSES_EXPORT(void) _nc_init_keytry (SCREEN *); +extern NCURSES_EXPORT(void) _nc_keep_tic_dir (const char *); +extern NCURSES_EXPORT(void) _nc_make_oldhash (int i); +extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot); +extern NCURSES_EXPORT(void) _nc_scroll_optimize (void); +extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, int); +extern NCURSES_EXPORT(void) _nc_setenv_num (const char *, int); +extern NCURSES_EXPORT(void) _nc_signal_handler (int); +extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *); +extern NCURSES_EXPORT(void) _nc_trace_tries (TRIES *); + +#if NCURSES_EXT_NUMBERS +extern NCURSES_EXPORT(const TERMTYPE2 *) _nc_fallback2 (const char *); +#else +#define _nc_fallback2(tp) _nc_fallback(tp) +#endif + +#if NCURSES_EXT_NUMBERS +extern NCURSES_EXPORT(void) _nc_copy_termtype2 (TERMTYPE2 *, const TERMTYPE2 *); +extern NCURSES_EXPORT(void) _nc_export_termtype2(TERMTYPE *, const TERMTYPE2 *); +#else +#define _nc_copy_termtype2(dst,src) _nc_copy_termtype((dst),(src)) +#define _nc_export_termtype2(dst,src) /* nothing */ +#define _nc_free_termtype2(t) _nc_free_termtype(t) +/* also... */ +#define _nc_read_entry2 _nc_read_entry +#endif + +#if NO_LEAKS +extern NCURSES_EXPORT(void) _nc_alloc_entry_leaks(void); +extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void); +extern NCURSES_EXPORT(void) _nc_codes_leaks(void); +extern NCURSES_EXPORT(void) _nc_comp_captab_leaks(void); +extern NCURSES_EXPORT(void) _nc_comp_error_leaks(void); +extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void); +extern NCURSES_EXPORT(void) _nc_comp_userdefs_leaks(void); +extern NCURSES_EXPORT(void) _nc_db_iterator_leaks(void); +extern NCURSES_EXPORT(void) _nc_keyname_leaks(void); +extern NCURSES_EXPORT(void) _nc_names_leaks(void); +extern NCURSES_EXPORT(void) _nc_tgetent_leak(TERMINAL *); +extern NCURSES_EXPORT(void) _nc_tgetent_leaks(void); +#endif + +#if !(defined(USE_TERMLIB) || defined(USE_BUILD_CC)) +extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T); +extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T); +extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, int const, int const, NCURSES_CH_T); +#endif + +#if USE_WIDEC_SUPPORT +extern NCURSES_EXPORT(int) _nc_insert_wch(WINDOW *, const cchar_t *); +#endif + +#if USE_WIDEC_SUPPORT && !(defined(USE_TERMLIB) || defined(USE_BUILD_CC)) +extern NCURSES_EXPORT(size_t) _nc_wcrtomb (char *, wchar_t, mbstate_t *); +#endif + +#if USE_SIZECHANGE +extern NCURSES_EXPORT(void) _nc_update_screensize (SCREEN *); +#endif + +#if HAVE_RESIZETERM +extern NCURSES_EXPORT(void) _nc_resize_margins (WINDOW *); +#else +#define _nc_resize_margins(wp) /* nothing */ +#endif + +#ifdef NCURSES_WGETCH_EVENTS +extern NCURSES_EXPORT(int) _nc_eventlist_timeout(_nc_eventlist *); +#else +#define wgetch_events(win, evl) wgetch(win) +#define wgetnstr_events(win, str, maxlen, evl) wgetnstr(win, str, maxlen) +#endif + +/* + * Wide-character macros to hide some platform-differences. + */ +#if USE_WIDEC_SUPPORT + +#if defined(_NC_WINDOWS) && !defined(_NC_MSC) && !defined(EXP_WIN32_DRIVER) +/* + * MinGW has wide-character functions, but they do not work correctly. + */ +extern int __MINGW_NOTHROW _nc_wctomb(char *, wchar_t); +#define wctomb(s,wc) _nc_wctomb(s,wc) +#define wcrtomb(s,wc,n) _nc_wctomb(s,wc) + +extern int __MINGW_NOTHROW _nc_mbtowc(wchar_t *, const char *, size_t); +#define mbtowc(pwc,s,n) _nc_mbtowc(pwc,s,n) + +extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t); +#define mblen(s,n) _nc_mblen(s, n) + +#endif /* _NC_WINDOWS && !_NC_MSC */ + +#if HAVE_MBTOWC && HAVE_MBLEN +#define reset_mbytes(state) IGNORE_RC(mblen(NULL, (size_t) 0)), IGNORE_RC(mbtowc(NULL, NULL, (size_t) 0)) +#define count_mbytes(buffer,length,state) mblen(buffer,length) +#define check_mbytes(wch,buffer,length,state) \ + (int) mbtowc(&(wch), buffer, length) +#define state_unused +#elif HAVE_MBRTOWC && HAVE_MBRLEN +#define reset_mbytes(state) init_mb(state) +#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&(state)) +#define check_mbytes(wch,buffer,length,state) \ + (int) mbrtowc(&(wch), buffer, length, &(state)) +#else +make an error +#endif + +#endif /* USE_WIDEC_SUPPORT */ + +/* + * Not everyone has vsscanf(), but we'd like to use it for scanw(). + */ +#if !HAVE_VSSCANF +extern int vsscanf(const char *str, const char *format, va_list __arg); +#endif + +/* scroll indices */ +extern NCURSES_EXPORT_VAR(int *) _nc_oldnums; + +#define USE_SETBUF_0 0 + +#define NC_OUTPUT(sp) ((sp != 0 && sp->_ofp != 0) ? sp->_ofp : stdout) + +/* + * On systems with a broken linker, define 'SP' as a function to force the + * linker to pull in the data-only module with 'SP'. + */ +#define _nc_alloc_screen_sp() typeCalloc(SCREEN, 1) + +#if BROKEN_LINKER +#define SP _nc_screen() +extern NCURSES_EXPORT(SCREEN *) _nc_screen (void); +extern NCURSES_EXPORT(int) _nc_alloc_screen (void); +extern NCURSES_EXPORT(void) _nc_set_screen (SCREEN *); +#define CURRENT_SCREEN _nc_screen() +#else +/* current screen is private data; avoid possible linking conflicts too */ +extern NCURSES_EXPORT_VAR(SCREEN *) SP; +#define CURRENT_SCREEN SP +#define _nc_alloc_screen() ((SP = _nc_alloc_screen_sp()) != 0) +#define _nc_set_screen(sp) SP = sp +#endif + +#if NCURSES_SP_FUNCS +#define CURRENT_SCREEN_PRE (IsPreScreen(CURRENT_SCREEN) ? CURRENT_SCREEN : new_prescr()) +#else +#define CURRENT_SCREEN_PRE CURRENT_SCREEN +#endif + +/* + * We don't want to use the lines or columns capabilities internally, because + * if the application is running multiple screens under X, it is quite possible + * they could all have type xterm but have different sizes! So... + */ +#define screen_lines(sp) (sp)->_lines +#define screen_columns(sp) (sp)->_columns + +extern NCURSES_EXPORT(int) _nc_slk_initialize (WINDOW *, int); +extern NCURSES_EXPORT(int) _nc_format_slks (NCURSES_SP_DCLx int _c); + +/* + * Some constants related to SLK's + */ +#define MAX_SKEY_OLD 8 /* count of soft keys */ +#define MAX_SKEY_LEN_OLD 8 /* max length of soft key text */ +#define MAX_SKEY_PC 12 /* This is what most PC's have */ +#define MAX_SKEY_LEN_PC 5 + +/* Macro to check whether or not we use a standard format */ +#define SLK_STDFMT(fmt) (fmt < 3) +/* Macro to determine height of label window */ +#define SLK_LINES(fmt) (SLK_STDFMT(fmt) ? 1 : ((fmt) - 2)) + +#define MAX_SKEY(fmt) (SLK_STDFMT(fmt)? MAX_SKEY_OLD : MAX_SKEY_PC) +#define MAX_SKEY_LEN(fmt) (SLK_STDFMT(fmt)? MAX_SKEY_LEN_OLD : MAX_SKEY_LEN_PC) + +/* + * Common error messages + */ +#define MSG_NO_MEMORY "Out of memory" +#define MSG_NO_INPUTS "Premature EOF" + +extern NCURSES_EXPORT(int) _nc_set_tty_mode(TTY *); +extern NCURSES_EXPORT(int) _nc_get_tty_mode(TTY *); + +/* timed_wait flag definitions */ +#define TW_NONE 0 +#define TW_INPUT 1 +#define TW_MOUSE 2 +#define TW_ANY (TW_INPUT | TW_MOUSE) +#define TW_EVENT 4 + +#define SetSafeOutcWrapper(outc) \ + SCREEN* sp = CURRENT_SCREEN; \ + struct screen outc_wrapper; \ + if (sp==0) { \ + sp = &outc_wrapper; \ + memset(sp,0,sizeof(struct screen)); \ + sp->_outch = _nc_outc_wrapper; \ + }\ + sp->jump = outc + +#ifdef USE_TERM_DRIVER + +typedef struct _termInfo +{ + bool caninit; + + bool hascolor; + bool initcolor; + bool canchange; + + int tabsize; + + int maxcolors; + int maxpairs; + int nocolorvideo; + + int numbuttons; + int numlabels; + int labelwidth; + int labelheight; + + const color_t* defaultPalette; +} TerminalInfo; + +typedef struct term_driver { + bool isTerminfo; + const char* (*td_name)(struct DriverTCB*); + bool (*td_CanHandle)(struct DriverTCB*, const char*, int*); + void (*td_init)(struct DriverTCB*); + void (*td_release)(struct DriverTCB*); + int (*td_size)(struct DriverTCB*, int* Line, int *Cols); + int (*td_sgmode)(struct DriverTCB*, int setFlag, TTY*); + chtype (*td_conattr)(struct DriverTCB*); + int (*td_hwcur)(struct DriverTCB*, int yold, int xold, int y, int x); + int (*td_mode)(struct DriverTCB*, int progFlag, int defFlag); + bool (*td_rescol)(struct DriverTCB*); + bool (*td_rescolors)(struct DriverTCB*); + void (*td_color)(struct DriverTCB*, int fore, int color, int(*)(SCREEN*, int)); + int (*td_doBeepOrFlash)(struct DriverTCB*, int); + void (*td_initpair)(struct DriverTCB*, int, int, int); + void (*td_initcolor)(struct DriverTCB*, int, int, int, int); + void (*td_docolor)(struct DriverTCB*, int, int, int, int(*)(SCREEN*, int)); + void (*td_initmouse)(struct DriverTCB*); + int (*td_testmouse)(struct DriverTCB*, int EVENTLIST_2nd(_nc_eventlist*)); + void (*td_setfilter)(struct DriverTCB*); + void (*td_hwlabel)(struct DriverTCB*, int, char*); + void (*td_hwlabelOnOff)(struct DriverTCB*, int); + int (*td_update)(struct DriverTCB*); + int (*td_defaultcolors)(struct DriverTCB*, int, int); + int (*td_print)(struct DriverTCB*, char*, int); + int (*td_getsize)(struct DriverTCB*, int*, int*); + int (*td_setsize)(struct DriverTCB*, int, int); + void (*td_initacs)(struct DriverTCB*, chtype*, chtype*); + void (*td_scinit)(SCREEN *); + void (*td_scexit)(SCREEN *); + int (*td_twait)(struct DriverTCB*, int, int, int* EVENTLIST_2nd(_nc_eventlist*)); + int (*td_read)(struct DriverTCB*, int*); + int (*td_nap)(struct DriverTCB*, int); + int (*td_kpad)(struct DriverTCB*, int); + int (*td_kyOk)(struct DriverTCB*, int, int); + bool (*td_kyExist)(struct DriverTCB*, int); + int (*td_cursorSet)(struct DriverTCB*, int); +} TERM_DRIVER; + +typedef struct DriverTCB +{ + TERMINAL term; /* needs to be the first Element !!! */ + TERM_DRIVER* drv; /* The driver for that Terminal */ + SCREEN* csp; /* The screen that owns that Terminal */ + TerminalInfo info; /* Driver independent core capabilities of the Terminal */ + void* prop; /* Driver dependent property storage to be used by the Driver */ + long magic; +} TERMINAL_CONTROL_BLOCK; + +#define NCDRV_MAGIC(id) (0x47110000 | (id&0xffff)) +#define NCDRV_TINFO 0x01 +#define NCDRV_WINCONSOLE 0x02 + +#define TCBOf(sp) ((TERMINAL_CONTROL_BLOCK*)(TerminalOf(sp))) +#define InfoOf(sp) TCBOf(sp)->info +#define CallDriver(sp,method) TCBOf(sp)->drv->method(TCBOf(sp)) +#define CallDriver_1(sp,method,arg1) TCBOf(sp)->drv->method(TCBOf(sp),arg1) +#define CallDriver_2(sp,method,arg1,arg2) TCBOf(sp)->drv->method(TCBOf(sp),arg1,arg2) +#define CallDriver_3(sp,method,arg1,arg2,arg3) TCBOf(sp)->drv->method(TCBOf(sp),arg1,arg2,arg3) +#define CallDriver_4(sp,method,arg1,arg2,arg3,arg4) TCBOf(sp)->drv->method(TCBOf(sp),arg1,arg2,arg3,arg4) + +extern NCURSES_EXPORT_VAR(const color_t*) _nc_cga_palette; +extern NCURSES_EXPORT_VAR(const color_t*) _nc_hls_palette; + +extern NCURSES_EXPORT(int) _nc_get_driver(TERMINAL_CONTROL_BLOCK*, const char*, int*); +extern NCURSES_EXPORT(void) _nc_get_screensize_ex(SCREEN *, TERMINAL *, int *, int *); +#endif /* USE_TERM_DRIVER */ + +/* + * Entrypoints which are actually provided in the terminal driver, which would + * be an sp-name otherwise. + */ +#ifdef USE_TERM_DRIVER +#define TINFO_HAS_KEY _nc_tinfo_has_key +#define TINFO_DOUPDATE _nc_tinfo_doupdate +#define TINFO_MVCUR _nc_tinfo_mvcur +extern NCURSES_EXPORT(int) TINFO_HAS_KEY(SCREEN*, int); +extern NCURSES_EXPORT(int) TINFO_DOUPDATE(SCREEN *); +extern NCURSES_EXPORT(int) TINFO_MVCUR(SCREEN*, int, int, int, int); +#else +#define TINFO_HAS_KEY NCURSES_SP_NAME(has_key) +#define TINFO_DOUPDATE NCURSES_SP_NAME(doupdate) +#define TINFO_MVCUR NCURSES_SP_NAME(_nc_mvcur) +#endif + +#if defined(EXP_WIN32_DRIVER) +#include +#endif + +/* + * Entrypoints using an extra parameter with the terminal driver. + */ +#ifdef USE_TERM_DRIVER +extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, TERMINAL *, int *, int *); +extern NCURSES_EXPORT(int) _nc_setupterm_ex(TERMINAL **, const char *, int , int *, int); +#define TINFO_GET_SIZE(sp, tp, lp, cp) \ + _nc_get_screensize(sp, tp, lp, cp) +#define TINFO_SET_CURTERM(sp, tp) \ + NCURSES_SP_NAME(set_curterm)(sp, tp) +#define TINFO_SETUP_TERM(tpp, name, fd, err, reuse) \ + _nc_setupterm_ex(tpp, name, fd, err, reuse) +#else /* !USE_TERM_DRIVER */ +extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, int *, int *); +#define TINFO_GET_SIZE(sp, tp, lp, cp) \ + _nc_get_screensize(sp, lp, cp) +#define TINFO_SET_CURTERM(sp, tp) \ + set_curterm(tp) +#define TINFO_SETUP_TERM(tpp, name, fd, err, reuse) \ + _nc_setupterm(name, fd, err, reuse) +#endif /* !USE_TERM_DRIVER */ + +#ifdef EXP_WIN32_DRIVER +extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_TINFO_DRIVER; +#else +#ifdef USE_TERM_DRIVER +#if defined(USE_WIN32CON_DRIVER) +#include +extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER; +extern NCURSES_EXPORT(int) _nc_mingw_isatty(int fd); +extern NCURSES_EXPORT(int) _nc_mingw_isconsole(int fd); +extern NCURSES_EXPORT(int) _nc_mingw_console_read( + SCREEN *sp, + HANDLE fd, + int *buf); +extern NCURSES_EXPORT(int) _nc_mingw_testmouse( + SCREEN * sp, + HANDLE fd, + int delay EVENTLIST_2nd(_nc_eventlist*)); +#else +#endif +extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_TINFO_DRIVER; +#endif /* USE_TERM_DRIVER */ +#endif /* EXP_WIN32_DRIVER */ + +#if defined(USE_TERM_DRIVER) && defined(EXP_WIN32_DRIVER) +#define NC_ISATTY(fd) (0 != _nc_console_isatty(fd)) +#elif defined(USE_TERM_DRIVER) && defined(USE_WIN32CON_DRIVER) +#define NC_ISATTY(fd) _nc_mingw_isatty(fd) +#else +#define NC_ISATTY(fd) isatty(fd) +#endif + +#ifdef USE_TERM_DRIVER +# define IsTermInfo(sp) ((TCBOf(sp) != 0) && ((TCBOf(sp)->drv->isTerminfo))) +# define HasTInfoTerminal(sp) ((0 != TerminalOf(sp)) && IsTermInfo(sp)) +# if defined(EXP_WIN32_DRIVER) +# define IsTermInfoOnConsole(sp) (IsTermInfo(sp) && _nc_console_test(TerminalOf(sp)->Filedes)) +# elif defined(USE_WIN32CON_DRIVER) +# define IsTermInfoOnConsole(sp) (IsTermInfo(sp) && _nc_mingw_isconsole(TerminalOf(sp)->Filedes)) +# else +# define IsTermInfoOnConsole(sp) FALSE +# endif +#else +# define IsTermInfo(sp) TRUE +# define HasTInfoTerminal(sp) (0 != TerminalOf(sp)) +# if defined(EXP_WIN32_DRIVER) +# define IsTermInfoOnConsole(sp) _nc_console_test(TerminalOf(sp)->Filedes) +# else +# define IsTermInfoOnConsole(sp) FALSE +# endif +#endif + +#define IsValidTIScreen(sp) (HasTInfoTerminal(sp)) + +/* + * Exported entrypoints beyond the published API + */ +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(WINDOW *) _nc_curscr_of(SCREEN*); +extern NCURSES_EXPORT(WINDOW *) _nc_newscr_of(SCREEN*); +extern NCURSES_EXPORT(WINDOW *) _nc_stdscr_of(SCREEN*); +extern NCURSES_EXPORT(int) _nc_outc_wrapper(SCREEN*,int); + +#if USE_REENTRANT +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_TABSIZE)(SCREEN*); +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname)(SCREEN*); +#endif + +#if NCURSES_EXT_FUNCS +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_set_tabsize)(SCREEN*, int); +#endif + +/* + * We put the safe versions of various calls here as they are not published + * part of the API up to now + */ +extern NCURSES_EXPORT(TERMINAL*) NCURSES_SP_NAME(_nc_get_cur_term) (SCREEN *sp); +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(_nc_makenew) (SCREEN*, int, int, int, int, int); +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(_nc_reset_colors)(SCREEN*); +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(_nc_printf_string)(SCREEN*, const char *, va_list); +extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(_nc_acs_char)(SCREEN*,int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_get_tty_mode)(SCREEN*,TTY*); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_mcprint)(SCREEN*,char*, int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_msec_cost)(SCREEN*, const char *, int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_mvcur)(SCREEN*, int, int, int, int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_outch)(SCREEN*, int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putchar)(SCREEN*, int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putp)(SCREEN*, const char *, const char*); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putp_flush)(SCREEN*, const char *, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_ripoffline)(SCREEN*, int, int (*)(WINDOW *,int)); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_scrolln)(SCREEN*, int, int, int, int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_set_tty_mode)(SCREEN*, TTY*); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_setupscreen)(SCREEN**, int, int, FILE *, int, int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_tgetent)(SCREEN*,char*,const char *); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_color)(SCREEN*, int, int, int, NCURSES_SP_OUTC); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_xmc_glitch)(SCREEN*, attr_t); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_flush)(SCREEN*); +extern GCC_NORETURN NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_freeall)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_hash_map)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_init_acs)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_make_oldhash)(SCREEN*, int i); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_mvcur_init)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_mvcur_resume)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_mvcur_wrap)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_screen_init)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_screen_resume)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_screen_wrap)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_scroll_oldhash)(SCREEN*, int n, int top, int bot); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_scroll_optimize)(SCREEN*); +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_set_buffer)(SCREEN*, FILE *, int); + +extern NCURSES_EXPORT(void) _nc_cookie_init(SCREEN *sp); + +#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG) +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_linedump)(SCREEN*); +#endif + +#if USE_WIDEC_SUPPORT +extern NCURSES_EXPORT(wchar_t *) NCURSES_SP_NAME(_nc_wunctrl)(SCREEN*, cchar_t *); +#endif + +#endif /* NCURSES_SP_FUNCS */ + +#if NCURSES_SP_FUNCS + +#define safe_keyname NCURSES_SP_NAME(keyname) +#define safe_unctrl NCURSES_SP_NAME(unctrl) +#define safe_ungetch NCURSES_SP_NAME(ungetch) + +#else + +#define safe_keyname _nc_keyname +#define safe_unctrl _nc_unctrl +#define safe_ungetch _nc_ungetch + +extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *, int); +extern NCURSES_EXPORT(int) _nc_ungetch (SCREEN *, int); +extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *, chtype); + +#endif + +#ifdef EXP_XTERM_1005 +NCURSES_EXPORT(int) _nc_conv_to_utf8(unsigned char *, unsigned, unsigned); +NCURSES_EXPORT(int) _nc_conv_to_utf32(unsigned *, const char *, unsigned); +#endif + +#ifdef __cplusplus +} +#endif + +/* *INDENT-ON* */ + +#endif /* CURSES_PRIV_H */ diff --git a/third_party/ncurses/db_iterator.c b/third_party/ncurses/db_iterator.c new file mode 100644 index 000000000..395933f11 --- /dev/null +++ b/third_party/ncurses/db_iterator.c @@ -0,0 +1,457 @@ +/**************************************************************************** + * Copyright 2018-2020,2022 Thomas E. Dickey * + * Copyright 2006-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +/* + * Iterators for terminal databases. + */ + +#include "curses.priv.h" + +#include +#include "tic.h" + +#if USE_HASHED_DB +#include "hashed_db.h" +#endif + +MODULE_ID("$Id: db_iterator.c,v 1.49 2022/04/23 20:03:15 tom Exp $") + +#define HaveTicDirectory _nc_globals.have_tic_directory +#define KeepTicDirectory _nc_globals.keep_tic_directory +#define TicDirectory _nc_globals.tic_directory +#define my_blob _nc_globals.dbd_blob +#define my_list _nc_globals.dbd_list +#define my_size _nc_globals.dbd_size +#define my_time _nc_globals.dbd_time +#define my_vars _nc_globals.dbd_vars + +static void +add_to_blob(const char *text, size_t limit) +{ + (void) limit; + + if (*text != '\0') { + char *last = my_blob + strlen(my_blob); + if (last != my_blob) + *last++ = NCURSES_PATHSEP; + _nc_STRCPY(last, text, limit); + } +} + +static bool +check_existence(const char *name, struct stat *sb) +{ + bool result = FALSE; + + if (quick_prefix(name)) { + result = TRUE; + } else if (stat(name, sb) == 0 + && (S_ISDIR(sb->st_mode) + || (S_ISREG(sb->st_mode) && sb->st_size))) { + result = TRUE; + } +#if USE_HASHED_DB + else if (strlen(name) < PATH_MAX - sizeof(DBM_SUFFIX)) { + char temp[PATH_MAX]; + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "%s%s", name, DBM_SUFFIX); + if (stat(temp, sb) == 0 && S_ISREG(sb->st_mode) && sb->st_size) { + result = TRUE; + } + } +#endif + return result; +} + +/* + * Trim newlines (and backslashes preceding those) and tab characters to + * help simplify scripting of the quick-dump feature. Leave spaces and + * other backslashes alone. + */ +static void +trim_formatting(char *source) +{ + char *target = source; + char ch; + + while ((ch = *source++) != '\0') { + if (ch == '\\' && *source == '\n') + continue; + if (ch == '\n' || ch == '\t') + continue; + *target++ = ch; + } + *target = '\0'; +} + +/* + * Store the latest value of an environment variable in my_vars[] so we can + * detect if one changes, invalidating the cached search-list. + */ +static bool +update_getenv(const char *name, DBDIRS which) +{ + bool result = FALSE; + + if (which < dbdLAST) { + char *value; + char *cached_value = my_vars[which].value; + bool same_value; + + if ((value = getenv(name)) != 0) { + value = strdup(value); + } + same_value = ((value == 0 && cached_value == 0) || + (value != 0 && + cached_value != 0 && + strcmp(value, cached_value) == 0)); + + /* Set variable name to enable checks in cache_expired(). */ + my_vars[which].name = name; + + if (!same_value) { + FreeIfNeeded(my_vars[which].value); + my_vars[which].value = value; + result = TRUE; + } else { + free(value); + } + } + return result; +} + +#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP +static char * +cache_getenv(const char *name, DBDIRS which) +{ + char *result = 0; + + (void) update_getenv(name, which); + if (which < dbdLAST) { + result = my_vars[which].value; + } + return result; +} +#endif + +/* + * The cache expires if at least a second has passed since the initial lookup, + * or if one of the environment variables changed. + * + * Only a few applications use multiple lookups of terminal entries, seems that + * aside from bulk I/O such as tic and toe, that leaves interactive programs + * which should not be modifying the terminal databases in a way that would + * invalidate the search-list. + * + * The "1-second" is to allow for user-directed changes outside the program. + */ +static bool +cache_expired(void) +{ + bool result = FALSE; + time_t now = time((time_t *) 0); + + if (now > my_time) { + result = TRUE; + } else { + DBDIRS n; + for (n = (DBDIRS) 0; n < dbdLAST; ++n) { + if (my_vars[n].name != 0 + && update_getenv(my_vars[n].name, n)) { + result = TRUE; + break; + } + } + } + return result; +} + +static void +free_cache(void) +{ + FreeAndNull(my_blob); + FreeAndNull(my_list); +} + +static void +update_tic_dir(const char *update) +{ + free((char *) TicDirectory); + TicDirectory = update; +} + +/* + * Record the "official" location of the terminfo directory, according to + * the place where we're writing to, or the normal default, if not. + */ +NCURSES_EXPORT(const char *) +_nc_tic_dir(const char *path) +{ + T(("_nc_tic_dir %s", NonNull(path))); + if (!KeepTicDirectory) { + if (path != NULL) { + if (path != TicDirectory) + update_tic_dir(strdup(path)); + HaveTicDirectory = TRUE; + } else if (HaveTicDirectory == 0) { + if (use_terminfo_vars()) { + const char *envp; + if ((envp = getenv("TERMINFO")) != 0) + return _nc_tic_dir(envp); + } + } + } + return TicDirectory ? TicDirectory : TERMINFO; +} + +/* + * Special fix to prevent the terminfo directory from being moved after tic + * has chdir'd to it. If we let it be changed, then if $TERMINFO has a + * relative path, we'll lose track of the actual directory. + */ +NCURSES_EXPORT(void) +_nc_keep_tic_dir(const char *path) +{ + _nc_tic_dir(path); + KeepTicDirectory = TRUE; +} + +/* + * Cleanup. + */ +NCURSES_EXPORT(void) +_nc_last_db(void) +{ + if (my_blob != 0 && cache_expired()) { + free_cache(); + } +} + +/* + * This is a simple iterator which allows the caller to step through the + * possible locations for a terminfo directory. ncurses uses this to find + * terminfo files to read. + */ +NCURSES_EXPORT(const char *) +_nc_next_db(DBDIRS * state, int *offset) +{ + const char *result; + + (void) offset; + if ((int) *state < my_size + && my_list != 0 + && my_list[*state] != 0) { + result = my_list[*state]; + (*state)++; + } else { + result = 0; + } + if (result != 0) { + T(("_nc_next_db %d %s", *state, result)); + } + return result; +} + +NCURSES_EXPORT(void) +_nc_first_db(DBDIRS * state, int *offset) +{ + bool cache_has_expired = FALSE; + *state = dbdTIC; + *offset = 0; + + T((T_CALLED("_nc_first_db"))); + + /* build a blob containing all of the strings we will use for a lookup + * table. + */ + if (my_blob == 0 || (cache_has_expired = cache_expired())) { + size_t blobsize = 0; + const char *values[dbdLAST]; + struct stat *my_stat; + int j; + + if (cache_has_expired) + free_cache(); + + for (j = 0; j < dbdLAST; ++j) + values[j] = 0; + + /* + * This is the first item in the list, and is used only when tic is + * writing to the database, as a performance improvement. + */ + values[dbdTIC] = TicDirectory; + +#if NCURSES_USE_DATABASE +#ifdef TERMINFO_DIRS + values[dbdCfgList] = TERMINFO_DIRS; +#endif +#ifdef TERMINFO + values[dbdCfgOnce] = TERMINFO; +#endif +#endif + +#if NCURSES_USE_TERMCAP + values[dbdCfgList2] = TERMPATH; +#endif + + if (use_terminfo_vars()) { +#if NCURSES_USE_DATABASE + values[dbdEnvOnce] = cache_getenv("TERMINFO", dbdEnvOnce); + values[dbdHome] = _nc_home_terminfo(); + (void) cache_getenv("HOME", dbdHome); + values[dbdEnvList] = cache_getenv("TERMINFO_DIRS", dbdEnvList); + +#endif +#if NCURSES_USE_TERMCAP + values[dbdEnvOnce2] = cache_getenv("TERMCAP", dbdEnvOnce2); + /* only use $TERMCAP if it is an absolute path */ + if (values[dbdEnvOnce2] != 0 + && *values[dbdEnvOnce2] != '/') { + values[dbdEnvOnce2] = 0; + } + values[dbdEnvList2] = cache_getenv("TERMPATH", dbdEnvList2); +#endif /* NCURSES_USE_TERMCAP */ + } + + for (j = 0; j < dbdLAST; ++j) { + if (values[j] == 0) + values[j] = ""; + blobsize += 2 + strlen(values[j]); + } + + my_blob = malloc(blobsize); + if (my_blob != 0) { + *my_blob = '\0'; + for (j = 0; j < dbdLAST; ++j) { + add_to_blob(values[j], blobsize); + } + + /* Now, build an array which will be pointers to the distinct + * strings in the blob. + */ + blobsize = 2; + for (j = 0; my_blob[j] != '\0'; ++j) { + if (my_blob[j] == NCURSES_PATHSEP) + ++blobsize; + } + my_list = typeCalloc(char *, blobsize); + my_stat = typeCalloc(struct stat, blobsize); + if (my_list != 0 && my_stat != 0) { + int k = 0; + my_list[k++] = my_blob; + for (j = 0; my_blob[j] != '\0'; ++j) { + if (my_blob[j] == NCURSES_PATHSEP + && ((&my_blob[j] - my_list[k - 1]) != 3 + || !quick_prefix(my_list[k - 1]))) { + my_blob[j] = '\0'; + my_list[k++] = &my_blob[j + 1]; + } + } + + /* + * Eliminate duplicates from the list. + */ + for (j = 0; my_list[j] != 0; ++j) { +#ifdef TERMINFO + if (*my_list[j] == '\0') + my_list[j] = strdup(TERMINFO); +#endif + trim_formatting(my_list[j]); + for (k = 0; k < j; ++k) { + if (!strcmp(my_list[j], my_list[k])) { + T(("duplicate %s", my_list[j])); + k = j - 1; + while ((my_list[j] = my_list[j + 1]) != 0) { + ++j; + } + j = k; + break; + } + } + } + + /* + * Eliminate non-existent databases, and those that happen to + * be symlinked to another location. + */ + for (j = 0; my_list[j] != 0; ++j) { + bool found = check_existence(my_list[j], &my_stat[j]); +#if HAVE_LINK + if (found) { + for (k = 0; k < j; ++k) { + if (my_stat[j].st_dev == my_stat[k].st_dev + && my_stat[j].st_ino == my_stat[k].st_ino) { + found = FALSE; + break; + } + } + } +#endif + if (!found) { + T(("not found %s", my_list[j])); + k = j; + while ((my_list[k] = my_list[k + 1]) != 0) { + ++k; + } + --j; + } + } + my_size = j; + my_time = time((time_t *) 0); + } else { + FreeAndNull(my_blob); + } + free(my_stat); + } + } + returnVoid; +} + +#if NO_LEAKS +void +_nc_db_iterator_leaks(void) +{ + DBDIRS which; + + if (my_blob != 0) + FreeAndNull(my_blob); + if (my_list != 0) + FreeAndNull(my_list); + for (which = 0; (int) which < dbdLAST; ++which) { + my_vars[which].name = 0; + FreeIfNeeded(my_vars[which].value); + my_vars[which].value = 0; + } + update_tic_dir(NULL); +} +#endif diff --git a/third_party/ncurses/define_key.c b/third_party/ncurses/define_key.c new file mode 100644 index 000000000..c5d69bba5 --- /dev/null +++ b/third_party/ncurses/define_key.c @@ -0,0 +1,86 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: define_key.c,v 1.22 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(define_key) (NCURSES_SP_DCLx const char *str, int keycode) +{ + int code = ERR; + + T((T_CALLED("define_key(%p, %s,%d)"), (void *) SP_PARM, _nc_visbuf(str), keycode)); + if (SP_PARM == 0 || !HasTInfoTerminal(SP_PARM)) { + code = ERR; + } else if (keycode > 0) { + unsigned ukey = (unsigned) keycode; + +#ifdef USE_TERM_DRIVER +#define CallHasKey(keycode) CallDriver_1(SP_PARM, td_kyExist, keycode) +#else +#define CallHasKey(keycode) NCURSES_SP_NAME(has_key)(NCURSES_SP_ARGx keycode) +#endif + + if (str != 0) { + NCURSES_SP_NAME(define_key) (NCURSES_SP_ARGx str, 0); + } else if (CallHasKey(keycode)) { + while (_nc_remove_key(&(SP_PARM->_keytry), ukey)) + code = OK; + } + if (str != 0) { + if (NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx str) == 0) { + if (_nc_add_to_try(&(SP_PARM->_keytry), str, ukey) == OK) { + code = OK; + } else { + code = ERR; + } + } else { + code = ERR; + } + } + } else { + while (_nc_remove_string(&(SP_PARM->_keytry), str)) + code = OK; + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +define_key(const char *str, int keycode) +{ + return NCURSES_SP_NAME(define_key) (CURRENT_SCREEN, str, keycode); +} +#endif diff --git a/third_party/ncurses/doalloc.c b/third_party/ncurses/doalloc.c new file mode 100644 index 000000000..c10531a6a --- /dev/null +++ b/third_party/ncurses/doalloc.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2002,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1998 * + ****************************************************************************/ + +/* + * Wrapper for malloc/realloc. Standard implementations allow realloc with + * a null pointer, but older libraries may not (e.g., SunOS). + * + * Also if realloc fails, we discard the old memory to avoid leaks. + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: doalloc.c,v 1.14 2021/04/24 23:43:39 tom Exp $") + +void * +_nc_doalloc(void *oldp, size_t amount) +{ + void *newp; + + if (oldp != NULL) { + if (amount == 0) { + free(oldp); + newp = NULL; + } else if ((newp = realloc(oldp, amount)) == 0) { + free(oldp); + errno = ENOMEM; /* just in case 'free' reset */ + } + } else { + newp = malloc(amount); + } + return newp; +} diff --git a/third_party/ncurses/entries.c b/third_party/ncurses/entries.c new file mode 100644 index 000000000..5f1ffcd36 --- /dev/null +++ b/third_party/ncurses/entries.c @@ -0,0 +1,194 @@ +/**************************************************************************** + * Copyright 2019-2021,2022 Thomas E. Dickey * + * Copyright 2006-2012,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + * and: Juergen Pfeifer * + ****************************************************************************/ + +#include "curses.priv.h" + +#include + +#include "tic.h" + +MODULE_ID("$Id: entries.c,v 1.34 2022/08/13 16:57:35 tom Exp $") + +/**************************************************************************** + * + * Entry queue handling + * + ****************************************************************************/ +/* + * The entry list is a doubly linked list with NULLs terminating the lists: + * + * --------- --------- --------- + * | | | | | | offset + * |-------| |-------| |-------| + * | ----+-->| ----+-->| NULL | next + * |-------| |-------| |-------| + * | NULL |<--+---- |<--+---- | last + * --------- --------- --------- + * ^ ^ + * | | + * | | + * _nc_head _nc_tail + */ + +NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0; +NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0; + +static ENTRY * +_nc_delink_entry(ENTRY * headp, TERMTYPE2 *tterm) +/* delink the allocated storage for the given list entry */ +{ + ENTRY *ep, *last; + + for (last = 0, ep = headp; ep != 0; last = ep, ep = ep->next) { + if (&(ep->tterm) == tterm) { + if (last != 0) { + last->next = ep->next; + } + if (ep->next != 0) { + ep->next->last = last; + } + if (ep == _nc_head) { + _nc_head = ep->next; + } + if (ep == _nc_tail) { + _nc_tail = last; + } + break; + } + } + return ep; +} + +NCURSES_EXPORT(void) +_nc_free_entry(ENTRY * headp, TERMTYPE2 *tterm) +/* free the allocated storage consumed by the given list entry */ +{ + ENTRY *ep; + + if ((ep = _nc_delink_entry(headp, tterm)) != 0) { + free(ep); + } +} + +NCURSES_EXPORT(void) +_nc_free_entries(ENTRY * headp) +/* free the allocated storage consumed by list entries */ +{ + (void) headp; /* unused - _nc_head is altered here! */ + + while (_nc_head != 0) { + _nc_free_termtype2(&(_nc_head->tterm)); + } +} + +NCURSES_EXPORT(void) +_nc_leaks_tinfo(void) +{ +#if NO_LEAKS + char *s; +#endif + + T((T_CALLED("_nc_leaks_tinfo()"))); +#if NO_LEAKS + _nc_globals.leak_checking = TRUE; + _nc_free_tparm(cur_term); + _nc_tgetent_leaks(); + +#ifdef USE_PTHREADS + /* + * Discard any prescreen data which is not used for the current screen. + */ + _nc_lock_global(screen); + { + PRESCREEN_LIST *p; + pthread_t id = GetThreadID(); + for (p = _nc_prescreen.allocated; p != 0; p = p->next) { + if (p->id == id && p->sp != CURRENT_SCREEN) { + FreeAndNull(p->sp); + } + } + } + _nc_unlock_global(screen); +#endif + if (TerminalOf(CURRENT_SCREEN) != 0) { + del_curterm(TerminalOf(CURRENT_SCREEN)); + } + _nc_forget_prescr(); + + _nc_comp_captab_leaks(); + _nc_comp_userdefs_leaks(); + _nc_free_entries(_nc_head); + _nc_get_type(0); + _nc_first_name(0); + _nc_db_iterator_leaks(); + _nc_keyname_leaks(); +#if BROKEN_LINKER || USE_REENTRANT + _nc_names_leaks(); + _nc_codes_leaks(); + FreeIfNeeded(_nc_prescreen.real_acs_map); +#endif + _nc_comp_error_leaks(); + + if ((s = _nc_home_terminfo()) != 0) + free(s); + +#ifdef TRACE + T((T_RETURN(""))); + curses_trace(0); + _nc_trace_buf(-1, (size_t) 0); +#endif + +#endif /* NO_LEAKS */ + returnVoid; +} + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_free_tinfo(int code) +{ + T((T_CALLED("_nc_free_tinfo(%d)"), code)); + _nc_leaks_tinfo(); + exit(code); +} +#endif + +NCURSES_EXPORT(void) +exit_terminfo(int code) +{ + T((T_CALLED("exit_terminfo(%d)"), code)); +#if NO_LEAKS + _nc_leaks_tinfo(); +#endif + exit(code); +} diff --git a/third_party/ncurses/eti.h b/third_party/ncurses/eti.h new file mode 100644 index 000000000..3c3302d0f --- /dev/null +++ b/third_party/ncurses/eti.h @@ -0,0 +1,55 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2002,2003 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +/* $Id: eti.h,v 1.9 2020/02/02 23:34:34 tom Exp $ */ + +#ifndef NCURSES_ETI_H_incl +#define NCURSES_ETI_H_incl 1 + +#define E_OK (0) +#define E_SYSTEM_ERROR (-1) +#define E_BAD_ARGUMENT (-2) +#define E_POSTED (-3) +#define E_CONNECTED (-4) +#define E_BAD_STATE (-5) +#define E_NO_ROOM (-6) +#define E_NOT_POSTED (-7) +#define E_UNKNOWN_COMMAND (-8) +#define E_NO_MATCH (-9) +#define E_NOT_SELECTABLE (-10) +#define E_NOT_CONNECTED (-11) +#define E_REQUEST_DENIED (-12) +#define E_INVALID_FIELD (-13) +#define E_CURRENT (-14) + +#endif diff --git a/third_party/ncurses/expanded.c b/third_party/ncurses/expanded.c new file mode 100644 index 000000000..e915de93a --- /dev/null +++ b/third_party/ncurses/expanded.c @@ -0,0 +1,61 @@ +/* generated by MKexpanded.sh */ +#define NEED_NCURSES_CH_T 1 +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +#if NCURSES_EXPANDED + void +_nc_toggle_attr_on (attr_t *S, attr_t at) +{ + { if (((int)((((unsigned long)(at) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8))) > 0) { (*S) = ((*S) & ALL_BUT_COLOR) | (attr_t) (at); } else { (*S) |= (attr_t) (at); } ;}; +} + + void +_nc_toggle_attr_off (attr_t *S, attr_t at) +{ + { if (((int)((((unsigned long)(at) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8))) > 0) { (*S) &= ~(at|((chtype)((((1U) << 8) - 1U)) << ((0) + 8))); } else { (*S) &= ~(at); } ;}; +} + + int +_nc_DelCharCost_sp (SCREEN *sp, int count) +{ + return (((cur_term)->type2. Strings[105] != 0) ? sp->_dch_cost : (((cur_term)->type2. Strings[21] != 0) ? (sp->_dch1_cost * count) : 1000000)); +} + + int +_nc_InsCharCost_sp (SCREEN *sp, int count) +{ + return (((cur_term)->type2. Strings[108] != 0) ? sp->_ich_cost : (((cur_term)->type2. Strings[31] && (cur_term)->type2. Strings[42]) ? sp->_smir_cost + sp->_rmir_cost + (sp->_ip_cost * count) : (((cur_term)->type2. Strings[52] != 0) ? ((sp->_ich1_cost + sp->_ip_cost) * count) : 1000000))); +} + + void +_nc_UpdateAttrs_sp (SCREEN *sp, const cchar_t * c) +{ + if (!((((*((sp)->_current_attr))).attr) == (((*(c))).attr) && ((((*((sp)->_current_attr))).ext_color) ? (((*((sp)->_current_attr))).ext_color) : ((int)((((unsigned long)((((*((sp)->_current_attr))).attr)) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))) == ((((*(c))).ext_color) ? (((*(c))).ext_color) : ((int)((((unsigned long)((((*(c))).attr)) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))))) { do { int vid_pair = ((((*(c))).ext_color) ? (((*(c))).ext_color) : ((int)((((unsigned long)((((*(c))).attr)) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))); vid_puts_sp( sp, (((*(c))).attr), (short) ((((*(c))).ext_color) ? (((*(c))).ext_color) : ((int)((((unsigned long)((((*(c))).attr)) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))), &vid_pair, _nc_outch_sp); } while (0); }; +} + +#if NCURSES_SP_FUNCS + int +_nc_DelCharCost (int count) +{ + return _nc_DelCharCost_sp (SP, count); +} + + int +_nc_InsCharCost (int count) +{ + return _nc_InsCharCost_sp(SP, count); +} + + void +_nc_UpdateAttrs (const cchar_t * c) +{ + _nc_UpdateAttrs_sp(SP,c); +} +#endif +#else /* ! NCURSES_EXPANDED */ +NCURSES_EXPORT(void) _nc_expanded (void) { } +#endif /* NCURSES_EXPANDED */ diff --git a/third_party/ncurses/fallback.c b/third_party/ncurses/fallback.c new file mode 100644 index 000000000..3cb93828c --- /dev/null +++ b/third_party/ncurses/fallback.c @@ -0,0 +1,34 @@ +/* This file was generated by ./tinfo/MKfallback.sh */ + +/* + * DO NOT EDIT THIS FILE BY HAND! + */ + +#include "curses.priv.h" + +NCURSES_EXPORT(const TERMTYPE2 *) +_nc_fallback2 (const char *name GCC_UNUSED) +{ + /* the fallback list is empty */ + return((const TERMTYPE2 *)0); +} + +#if NCURSES_EXT_NUMBERS +#undef _nc_fallback + +/* + * This entrypoint is used by tack 1.07 + */ +NCURSES_EXPORT(const TERMTYPE *) +_nc_fallback (const char *name) +{ + const TERMTYPE2 *tp = _nc_fallback2(name); + const TERMTYPE *result = 0; + if (tp != 0) { + static TERMTYPE temp; + _nc_export_termtype2(&temp, tp); + result = &temp; + } + return result; +} +#endif diff --git a/third_party/ncurses/fifo_defs.h b/third_party/ncurses/fifo_defs.h new file mode 100644 index 000000000..ab9266d63 --- /dev/null +++ b/third_party/ncurses/fifo_defs.h @@ -0,0 +1,86 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2012,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* + * Common macros for lib_getch.c, lib_ungetch.c + * + * $Id: fifo_defs.h,v 1.9 2020/02/02 23:34:34 tom Exp $ + */ + +#ifndef FIFO_DEFS_H +#define FIFO_DEFS_H 1 + +#define head sp->_fifohead +#define tail sp->_fifotail +/* peek points to next uninterpreted character */ +#define peek sp->_fifopeek + +#define h_inc() { \ + (head >= FIFO_SIZE-1) \ + ? head = 0 \ + : head++; \ + if (head == tail) \ + head = -1, tail = 0; \ + } +#define h_dec() { \ + (head <= 0) \ + ? head = FIFO_SIZE-1 \ + : head--; \ + if (head == tail) \ + tail = -1; \ + } +#define t_inc() { \ + (tail >= FIFO_SIZE-1) \ + ? tail = 0 \ + : tail++; \ + if (tail == head) \ + tail = -1; \ + } +#define t_dec() { \ + (tail <= 0) \ + ? tail = FIFO_SIZE-1 \ + : tail--; \ + if (head == tail) \ + fifo_clear(sp); \ + } +#define p_inc() { \ + (peek >= FIFO_SIZE-1) \ + ? peek = 0 \ + : peek++; \ + } + +#define cooked_key_in_fifo() ((head >= 0) && (peek != head)) +#define raw_key_in_fifo() ((head >= 0) && (peek != tail)) + +#endif /* FIFO_DEFS_H */ diff --git a/third_party/ncurses/form.h b/third_party/ncurses/form.h new file mode 100644 index 000000000..cf0930df1 --- /dev/null +++ b/third_party/ncurses/form.h @@ -0,0 +1,460 @@ +/**************************************************************************** + * Copyright 2018-2019-2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +/* $Id: form.h,v 0.32 2021/06/17 21:26:02 tom Exp $ */ + +#ifndef FORM_H +#define FORM_H +/* *INDENT-OFF*/ + +#include "curses.h" +#include + +#ifdef __cplusplus + extern "C" { +#endif + +#if defined(BUILDING_FORM) +# define FORM_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT +#else +# define FORM_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT +#endif + +#define FORM_WRAPPED_VAR(type,name) extern FORM_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) + +#define FORM_EXPORT(type) FORM_IMPEXP type NCURSES_API +#define FORM_EXPORT_VAR(type) FORM_IMPEXP type + +#ifndef FORM_PRIV_H +typedef void *FIELD_CELL; +#endif + +#ifndef NCURSES_FIELD_INTERNALS +#define NCURSES_FIELD_INTERNALS /* nothing */ +#endif + +typedef int Form_Options; +typedef int Field_Options; + + /********** + * _PAGE * + **********/ + +typedef struct pagenode +#if !NCURSES_OPAQUE_FORM +{ + short pmin; /* index of first field on page */ + short pmax; /* index of last field on page */ + short smin; /* index of top leftmost field on page */ + short smax; /* index of bottom rightmost field on page */ +} +#endif /* !NCURSES_OPAQUE_FORM */ +_PAGE; + + /********** + * FIELD * + **********/ + +typedef struct fieldnode +#if 1 /* not yet: !NCURSES_OPAQUE_FORM */ +{ + unsigned short status; /* flags */ + short rows; /* size in rows */ + short cols; /* size in cols */ + short frow; /* first row */ + short fcol; /* first col */ + int drows; /* dynamic rows */ + int dcols; /* dynamic cols */ + int maxgrow; /* maximum field growth */ + int nrow; /* off-screen rows */ + short nbuf; /* additional buffers */ + short just; /* justification */ + short page; /* page on form */ + short index; /* into form -> field */ + int pad; /* pad character */ + chtype fore; /* foreground attribute */ + chtype back; /* background attribute */ + Field_Options opts; /* options */ + struct fieldnode * snext; /* sorted order pointer */ + struct fieldnode * sprev; /* sorted order pointer */ + struct fieldnode * link; /* linked field chain */ + struct formnode * form; /* containing form */ + struct typenode * type; /* field type */ + void * arg; /* argument for type */ + FIELD_CELL * buf; /* field buffers */ + void * usrptr; /* user pointer */ + /* + * The wide-character configuration requires extra information. Because + * there are existing applications that manipulate the members of FIELD + * directly, we cannot make the struct opaque, except by changing the ABI. + * Offsets of members up to this point are the same in the narrow- and + * wide-character configuration. But note that the type of buf depends on + * the configuration, and is made opaque for that reason. + */ + NCURSES_FIELD_INTERNALS +} +#endif /* NCURSES_OPAQUE_FORM */ +FIELD; + + + /********* + * FORM * + *********/ + +typedef struct formnode +#if 1 /* not yet: !NCURSES_OPAQUE_FORM */ +{ + unsigned short status; /* flags */ + short rows; /* size in rows */ + short cols; /* size in cols */ + int currow; /* current row in field window */ + int curcol; /* current col in field window */ + int toprow; /* in scrollable field window */ + int begincol; /* in horiz. scrollable field */ + short maxfield; /* number of fields */ + short maxpage; /* number of pages */ + short curpage; /* index into page */ + Form_Options opts; /* options */ + WINDOW * win; /* window */ + WINDOW * sub; /* subwindow */ + WINDOW * w; /* window for current field */ + FIELD ** field; /* field [maxfield] */ + FIELD * current; /* current field */ + _PAGE * page; /* page [maxpage] */ + void * usrptr; /* user pointer */ + + void (*forminit)(struct formnode *); + void (*formterm)(struct formnode *); + void (*fieldinit)(struct formnode *); + void (*fieldterm)(struct formnode *); + +} +#endif /* !NCURSES_OPAQUE_FORM */ +FORM; + + + /************** + * FIELDTYPE * + **************/ + +typedef struct typenode +#if !NCURSES_OPAQUE_FORM +{ + unsigned short status; /* flags */ + long ref; /* reference count */ + struct typenode * left; /* ptr to operand for | */ + struct typenode * right; /* ptr to operand for | */ + + void* (*makearg)(va_list *); /* make fieldtype arg */ + void* (*copyarg)(const void *); /* copy fieldtype arg */ + void (*freearg)(void *); /* free fieldtype arg */ + +#if NCURSES_INTEROP_FUNCS + union { + bool (*ofcheck)(FIELD *,const void *); /* field validation */ + bool (*gfcheck)(FORM*,FIELD *,const void*); /* generic field validation */ + } fieldcheck; + union { + bool (*occheck)(int,const void *); /* character validation */ + bool (*gccheck)(int,FORM*, + FIELD*,const void*); /* generic char validation */ + } charcheck; + union { + bool (*onext)(FIELD *,const void *); /* enumerate next value */ + bool (*gnext)(FORM*,FIELD*,const void*); /* generic enumerate next */ + } enum_next; + union { + bool (*oprev)(FIELD *,const void *); /* enumerate prev value */ + bool (*gprev)(FORM*,FIELD*,const void*); /* generic enumerate prev */ + } enum_prev; + void* (*genericarg)(void*); /* Alternate Arg method */ +#else + bool (*fcheck)(FIELD *,const void *); /* field validation */ + bool (*ccheck)(int,const void *); /* character validation */ + + bool (*next)(FIELD *,const void *); /* enumerate next value */ + bool (*prev)(FIELD *,const void *); /* enumerate prev value */ +#endif +} +#endif /* !NCURSES_OPAQUE_FORM */ +FIELDTYPE; + +typedef void (*Form_Hook)(FORM *); + + /*************************** + * miscellaneous #defines * + ***************************/ + +/* field justification */ +#define NO_JUSTIFICATION (0) +#define JUSTIFY_LEFT (1) +#define JUSTIFY_CENTER (2) +#define JUSTIFY_RIGHT (3) + +/* field options */ +#define O_VISIBLE (0x0001U) +#define O_ACTIVE (0x0002U) +#define O_PUBLIC (0x0004U) +#define O_EDIT (0x0008U) +#define O_WRAP (0x0010U) +#define O_BLANK (0x0020U) +#define O_AUTOSKIP (0x0040U) +#define O_NULLOK (0x0080U) +#define O_PASSOK (0x0100U) +#define O_STATIC (0x0200U) +#define O_DYNAMIC_JUSTIFY (0x0400U) /* ncurses extension */ +#define O_NO_LEFT_STRIP (0x0800U) /* ncurses extension */ +#define O_EDGE_INSERT_STAY (0x1000U) /* ncurses extension */ +#define O_INPUT_LIMIT (0x2000U) /* ncurses extension */ + +/* form options */ +#define O_NL_OVERLOAD (0x0001U) +#define O_BS_OVERLOAD (0x0002U) + +/* form driver commands */ +#define REQ_NEXT_PAGE (KEY_MAX + 1) /* move to next page */ +#define REQ_PREV_PAGE (KEY_MAX + 2) /* move to previous page */ +#define REQ_FIRST_PAGE (KEY_MAX + 3) /* move to first page */ +#define REQ_LAST_PAGE (KEY_MAX + 4) /* move to last page */ + +#define REQ_NEXT_FIELD (KEY_MAX + 5) /* move to next field */ +#define REQ_PREV_FIELD (KEY_MAX + 6) /* move to previous field */ +#define REQ_FIRST_FIELD (KEY_MAX + 7) /* move to first field */ +#define REQ_LAST_FIELD (KEY_MAX + 8) /* move to last field */ +#define REQ_SNEXT_FIELD (KEY_MAX + 9) /* move to sorted next field */ +#define REQ_SPREV_FIELD (KEY_MAX + 10) /* move to sorted prev field */ +#define REQ_SFIRST_FIELD (KEY_MAX + 11) /* move to sorted first field */ +#define REQ_SLAST_FIELD (KEY_MAX + 12) /* move to sorted last field */ +#define REQ_LEFT_FIELD (KEY_MAX + 13) /* move to left to field */ +#define REQ_RIGHT_FIELD (KEY_MAX + 14) /* move to right to field */ +#define REQ_UP_FIELD (KEY_MAX + 15) /* move to up to field */ +#define REQ_DOWN_FIELD (KEY_MAX + 16) /* move to down to field */ + +#define REQ_NEXT_CHAR (KEY_MAX + 17) /* move to next char in field */ +#define REQ_PREV_CHAR (KEY_MAX + 18) /* move to prev char in field */ +#define REQ_NEXT_LINE (KEY_MAX + 19) /* move to next line in field */ +#define REQ_PREV_LINE (KEY_MAX + 20) /* move to prev line in field */ +#define REQ_NEXT_WORD (KEY_MAX + 21) /* move to next word in field */ +#define REQ_PREV_WORD (KEY_MAX + 22) /* move to prev word in field */ +#define REQ_BEG_FIELD (KEY_MAX + 23) /* move to first char in field */ +#define REQ_END_FIELD (KEY_MAX + 24) /* move after last char in fld */ +#define REQ_BEG_LINE (KEY_MAX + 25) /* move to beginning of line */ +#define REQ_END_LINE (KEY_MAX + 26) /* move after last char in line */ +#define REQ_LEFT_CHAR (KEY_MAX + 27) /* move left in field */ +#define REQ_RIGHT_CHAR (KEY_MAX + 28) /* move right in field */ +#define REQ_UP_CHAR (KEY_MAX + 29) /* move up in field */ +#define REQ_DOWN_CHAR (KEY_MAX + 30) /* move down in field */ + +#define REQ_NEW_LINE (KEY_MAX + 31) /* insert/overlay new line */ +#define REQ_INS_CHAR (KEY_MAX + 32) /* insert blank char at cursor */ +#define REQ_INS_LINE (KEY_MAX + 33) /* insert blank line at cursor */ +#define REQ_DEL_CHAR (KEY_MAX + 34) /* delete char at cursor */ +#define REQ_DEL_PREV (KEY_MAX + 35) /* delete char before cursor */ +#define REQ_DEL_LINE (KEY_MAX + 36) /* delete line at cursor */ +#define REQ_DEL_WORD (KEY_MAX + 37) /* delete word at cursor */ +#define REQ_CLR_EOL (KEY_MAX + 38) /* clear to end of line */ +#define REQ_CLR_EOF (KEY_MAX + 39) /* clear to end of field */ +#define REQ_CLR_FIELD (KEY_MAX + 40) /* clear entire field */ +#define REQ_OVL_MODE (KEY_MAX + 41) /* begin overlay mode */ +#define REQ_INS_MODE (KEY_MAX + 42) /* begin insert mode */ +#define REQ_SCR_FLINE (KEY_MAX + 43) /* scroll field forward a line */ +#define REQ_SCR_BLINE (KEY_MAX + 44) /* scroll field backward a line */ +#define REQ_SCR_FPAGE (KEY_MAX + 45) /* scroll field forward a page */ +#define REQ_SCR_BPAGE (KEY_MAX + 46) /* scroll field backward a page */ +#define REQ_SCR_FHPAGE (KEY_MAX + 47) /* scroll field forward half page */ +#define REQ_SCR_BHPAGE (KEY_MAX + 48) /* scroll field backward half page */ +#define REQ_SCR_FCHAR (KEY_MAX + 49) /* horizontal scroll char */ +#define REQ_SCR_BCHAR (KEY_MAX + 50) /* horizontal scroll char */ +#define REQ_SCR_HFLINE (KEY_MAX + 51) /* horizontal scroll line */ +#define REQ_SCR_HBLINE (KEY_MAX + 52) /* horizontal scroll line */ +#define REQ_SCR_HFHALF (KEY_MAX + 53) /* horizontal scroll half line */ +#define REQ_SCR_HBHALF (KEY_MAX + 54) /* horizontal scroll half line */ + +#define REQ_VALIDATION (KEY_MAX + 55) /* validate field */ +#define REQ_NEXT_CHOICE (KEY_MAX + 56) /* display next field choice */ +#define REQ_PREV_CHOICE (KEY_MAX + 57) /* display prev field choice */ + +#define MIN_FORM_COMMAND (KEY_MAX + 1) /* used by form_driver */ +#define MAX_FORM_COMMAND (KEY_MAX + 57) /* used by form_driver */ + +#if defined(MAX_COMMAND) +# if (MAX_FORM_COMMAND > MAX_COMMAND) +# error Something is wrong -- MAX_FORM_COMMAND is greater than MAX_COMMAND +# elif (MAX_COMMAND != (KEY_MAX + 128)) +# error Something is wrong -- MAX_COMMAND is already inconsistently defined. +# endif +#else +# define MAX_COMMAND (KEY_MAX + 128) +#endif + + /************************* + * standard field types * + *************************/ +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP; + + /************************************ + * built-in additional field types * + * They are not defined in SVr4 * + ************************************/ +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */ + + /*********************** + * FIELDTYPE routines * + ***********************/ +extern FORM_EXPORT(FIELDTYPE *) new_fieldtype ( + bool (* const field_check)(FIELD *,const void *), + bool (* const char_check)(int,const void *)); +extern FORM_EXPORT(FIELDTYPE *) link_fieldtype( + FIELDTYPE *, FIELDTYPE *); + +extern FORM_EXPORT(int) free_fieldtype (FIELDTYPE *); +extern FORM_EXPORT(int) set_fieldtype_arg (FIELDTYPE *, + void * (* const make_arg)(va_list *), + void * (* const copy_arg)(const void *), + void (* const free_arg)(void *)); +extern FORM_EXPORT(int) set_fieldtype_choice (FIELDTYPE *, + bool (* const next_choice)(FIELD *,const void *), + bool (* const prev_choice)(FIELD *,const void *)); + + /******************* + * FIELD routines * + *******************/ +extern FORM_EXPORT(FIELD *) new_field (int,int,int,int,int,int); +extern FORM_EXPORT(FIELD *) dup_field (FIELD *,int,int); +extern FORM_EXPORT(FIELD *) link_field (FIELD *,int,int); + +extern FORM_EXPORT(int) free_field (FIELD *); +extern FORM_EXPORT(int) field_info (const FIELD *,int *,int *,int *,int *,int *,int *); +extern FORM_EXPORT(int) dynamic_field_info (const FIELD *,int *,int *,int *); +extern FORM_EXPORT(int) set_max_field ( FIELD *,int); +extern FORM_EXPORT(int) move_field (FIELD *,int,int); +extern FORM_EXPORT(int) set_field_type (FIELD *,FIELDTYPE *,...); +extern FORM_EXPORT(int) set_new_page (FIELD *,bool); +extern FORM_EXPORT(int) set_field_just (FIELD *,int); +extern FORM_EXPORT(int) field_just (const FIELD *); +extern FORM_EXPORT(int) set_field_fore (FIELD *,chtype); +extern FORM_EXPORT(int) set_field_back (FIELD *,chtype); +extern FORM_EXPORT(int) set_field_pad (FIELD *,int); +extern FORM_EXPORT(int) field_pad (const FIELD *); +extern FORM_EXPORT(int) set_field_buffer (FIELD *,int,const char *); +extern FORM_EXPORT(int) set_field_status (FIELD *,bool); +extern FORM_EXPORT(int) set_field_userptr (FIELD *, void *); +extern FORM_EXPORT(int) set_field_opts (FIELD *,Field_Options); +extern FORM_EXPORT(int) field_opts_on (FIELD *,Field_Options); +extern FORM_EXPORT(int) field_opts_off (FIELD *,Field_Options); + +extern FORM_EXPORT(chtype) field_fore (const FIELD *); +extern FORM_EXPORT(chtype) field_back (const FIELD *); + +extern FORM_EXPORT(bool) new_page (const FIELD *); +extern FORM_EXPORT(bool) field_status (const FIELD *); + +extern FORM_EXPORT(void *) field_arg (const FIELD *); + +extern FORM_EXPORT(void *) field_userptr (const FIELD *); + +extern FORM_EXPORT(FIELDTYPE *) field_type (const FIELD *); + +extern FORM_EXPORT(char *) field_buffer (const FIELD *,int); + +extern FORM_EXPORT(Field_Options) field_opts (const FIELD *); + + /****************** + * FORM routines * + ******************/ + +extern FORM_EXPORT(FORM *) new_form (FIELD **); + +extern FORM_EXPORT(FIELD **) form_fields (const FORM *); +extern FORM_EXPORT(FIELD *) current_field (const FORM *); + +extern FORM_EXPORT(WINDOW *) form_win (const FORM *); +extern FORM_EXPORT(WINDOW *) form_sub (const FORM *); + +extern FORM_EXPORT(Form_Hook) form_init (const FORM *); +extern FORM_EXPORT(Form_Hook) form_term (const FORM *); +extern FORM_EXPORT(Form_Hook) field_init (const FORM *); +extern FORM_EXPORT(Form_Hook) field_term (const FORM *); + +extern FORM_EXPORT(int) free_form (FORM *); +extern FORM_EXPORT(int) set_form_fields (FORM *,FIELD **); +extern FORM_EXPORT(int) field_count (const FORM *); +extern FORM_EXPORT(int) set_form_win (FORM *,WINDOW *); +extern FORM_EXPORT(int) set_form_sub (FORM *,WINDOW *); +extern FORM_EXPORT(int) set_current_field (FORM *,FIELD *); +extern FORM_EXPORT(int) unfocus_current_field (FORM *); +extern FORM_EXPORT(int) field_index (const FIELD *); +extern FORM_EXPORT(int) set_form_page (FORM *,int); +extern FORM_EXPORT(int) form_page (const FORM *); +extern FORM_EXPORT(int) scale_form (const FORM *,int *,int *); +extern FORM_EXPORT(int) set_form_init (FORM *,Form_Hook); +extern FORM_EXPORT(int) set_form_term (FORM *,Form_Hook); +extern FORM_EXPORT(int) set_field_init (FORM *,Form_Hook); +extern FORM_EXPORT(int) set_field_term (FORM *,Form_Hook); +extern FORM_EXPORT(int) post_form (FORM *); +extern FORM_EXPORT(int) unpost_form (FORM *); +extern FORM_EXPORT(int) pos_form_cursor (FORM *); +extern FORM_EXPORT(int) form_driver (FORM *,int); +# if NCURSES_WIDECHAR +extern FORM_EXPORT(int) form_driver_w (FORM *,int,wchar_t); +# endif +extern FORM_EXPORT(int) set_form_userptr (FORM *,void *); +extern FORM_EXPORT(int) set_form_opts (FORM *,Form_Options); +extern FORM_EXPORT(int) form_opts_on (FORM *,Form_Options); +extern FORM_EXPORT(int) form_opts_off (FORM *,Form_Options); +extern FORM_EXPORT(int) form_request_by_name (const char *); + +extern FORM_EXPORT(const char *) form_request_name (int); + +extern FORM_EXPORT(void *) form_userptr (const FORM *); + +extern FORM_EXPORT(Form_Options) form_opts (const FORM *); + +extern FORM_EXPORT(bool) data_ahead (const FORM *); +extern FORM_EXPORT(bool) data_behind (const FORM *); + +#if NCURSES_SP_FUNCS +extern FORM_EXPORT(FORM *) NCURSES_SP_NAME(new_form) (SCREEN*, FIELD **); +#endif + +#ifdef __cplusplus + } +#endif +/* *INDENT-ON*/ + +#endif /* FORM_H */ diff --git a/third_party/ncurses/free_ttype.c b/third_party/ncurses/free_ttype.c new file mode 100644 index 000000000..7ceeeaee1 --- /dev/null +++ b/third_party/ncurses/free_ttype.c @@ -0,0 +1,108 @@ +/**************************************************************************** + * Copyright 2020,2022 Thomas E. Dickey * + * Copyright 1999-2011,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1999-on * + ****************************************************************************/ + +/* + * free_ttype.c -- allocation functions for TERMTYPE + * + * _nc_free_termtype() + * use_extended_names() + * + */ + +#include "curses.priv.h" + +#include "tic.h" + +MODULE_ID("$Id: free_ttype.c,v 1.21 2022/05/28 18:02:33 tom Exp $") + +static void +really_free_termtype(TERMTYPE2 *ptr, bool freeStrings) +{ + T(("really_free_termtype(%s) %d", ptr->term_names, freeStrings)); + + if (freeStrings) { + FreeIfNeeded(ptr->str_table); + } + FreeIfNeeded(ptr->Booleans); + FreeIfNeeded(ptr->Numbers); + FreeIfNeeded(ptr->Strings); +#if NCURSES_XNAMES + if (freeStrings) { + FreeIfNeeded(ptr->ext_str_table); + } + FreeIfNeeded(ptr->ext_Names); +#endif + memset(ptr, 0, sizeof(TERMTYPE)); + _nc_free_entry(_nc_head, ptr); +} + +/* + * This entrypoint was used by tack 1.07; deprecated with ncurses 6.2 + */ +NCURSES_EXPORT(void) +_nc_free_termtype(TERMTYPE *ptr) +{ + really_free_termtype((TERMTYPE2 *) ptr, !NCURSES_EXT_NUMBERS); +} + +/* + * These similar entrypoints are not used outside of ncurses. + */ +NCURSES_EXPORT(void) +_nc_free_termtype1(TERMTYPE *ptr) +{ + really_free_termtype((TERMTYPE2 *) ptr, TRUE); +} + +#if NCURSES_EXT_NUMBERS +NCURSES_EXPORT(void) +_nc_free_termtype2(TERMTYPE2 *ptr) +{ + really_free_termtype(ptr, TRUE); +} +#endif + +#if NCURSES_XNAMES +NCURSES_EXPORT_VAR(bool) _nc_user_definable = TRUE; + +NCURSES_EXPORT(int) +use_extended_names(bool flag) +{ + int oldflag = _nc_user_definable; + + START_TRACE(); + T((T_CALLED("use_extended_names(%d)"), flag)); + _nc_user_definable = flag; + returnBool(oldflag); +} +#endif diff --git a/third_party/ncurses/getenv_num.c b/third_party/ncurses/getenv_num.c new file mode 100644 index 000000000..b13bc4c5d --- /dev/null +++ b/third_party/ncurses/getenv_num.c @@ -0,0 +1,76 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 1998-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1998 * + ****************************************************************************/ + +/* + * getenv_num.c -- obtain a number from the environment + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: getenv_num.c,v 1.8 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +_nc_getenv_num(const char *name) +{ + char *dst = 0; + char *src = getenv(name); + long value; + + if ((src == 0) + || (value = strtol(src, &dst, 0)) < 0 + || (dst == src) + || (*dst != '\0') + || (int) value < value) + value = -1; + + return (int) value; +} + +NCURSES_EXPORT(void) +_nc_setenv_num(const char *name, int value) +{ + if (name != 0 && value >= 0) { + char buffer[128]; +#if HAVE_SETENV + _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "%d", value); + setenv(name, buffer, 1); +#elif HAVE_PUTENV + char *s; + _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "%s=%d", name, value); + if ((s = strdup(buffer)) != 0) + putenv(s); +#else +#error expected setenv/putenv functions +#endif + } +} diff --git a/third_party/ncurses/hardscroll.c b/third_party/ncurses/hardscroll.c new file mode 100644 index 000000000..d6f9e4791 --- /dev/null +++ b/third_party/ncurses/hardscroll.c @@ -0,0 +1,373 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Alexander V Lukyanov 1997-1998 * + ****************************************************************************/ + +/****************************************************************************** + +NAME + hardscroll.c -- hardware-scrolling optimization for ncurses + +SYNOPSIS + void _nc_scroll_optimize(void) + +DESCRIPTION + OVERVIEW + +This algorithm for computes optimum hardware scrolling to transform an +old screen (curscr) into a new screen (newscr) via vertical line moves. + +Because the screen has a `grain' (there are insert/delete/scroll line +operations but no insert/delete/scroll column operations), it is efficient +break the update algorithm into two pieces: a first stage that does only line +moves, optimizing the end product of user-invoked insertions, deletions, and +scrolls; and a second phase (corresponding to the present doupdate code in +ncurses) that does only line transformations. + +The common case we want hardware scrolling for is to handle line insertions +and deletions in screen-oriented text-editors. This two-stage approach will +accomplish that at a low computation and code-size cost. + + LINE-MOVE COMPUTATION + +Now, to a discussion of the line-move computation. + +For expository purposes, consider the screen lines to be represented by +integers 0..23 (with the understanding that the value of 23 may vary). +Let a new line introduced by insertion, scrolling, or at the bottom of +the screen following a line delete be given the index -1. + +Assume that the real screen starts with lines 0..23. Now, we have +the following possible line-oriented operations on the screen: + +Insertion: inserts a line at a given screen row, forcing all lines below +to scroll forward. The last screen line is lost. For example, an insertion +at line 5 would produce: 0..4 -1 5..23. + +Deletion: deletes a line at a given screen row, forcing all lines below +to scroll forward. The last screen line is made new. For example, a deletion +at line 7 would produce: 0..6 8..23 -1. + +Scroll up: move a range of lines up 1. The bottom line of the range +becomes new. For example, scrolling up the region from 9 to 14 will +produce 0..8 10..14 -1 15..23. + +Scroll down: move a range of lines down 1. The top line of the range +becomes new. For example, scrolling down the region from 12 to 16 will produce +0..11 -1 12..15 17..23. + +Now, an obvious property of all these operations is that they preserve the +order of old lines, though not their position in the sequence. + +The key trick of this algorithm is that the original line indices described +above are actually maintained as _line[].oldindex fields in the window +structure, and stick to each line through scroll and insert/delete operations. + +Thus, it is possible at update time to look at the oldnum fields and compute +an optimal set of il/dl/scroll operations that will take the real screen +lines to the virtual screen lines. Once these vertical moves have been done, +we can hand off to the second stage of the update algorithm, which does line +transformations. + +Note that the move computation does not need to have the full generality +of a diff algorithm (which it superficially resembles) because lines cannot +be moved out of order. + + THE ALGORITHM + +The scrolling is done in two passes. The first pass is from top to bottom +scroling hunks UP. The second one is from bottom to top scrolling hunks DOWN. +Obviously enough, no lines to be scrolled will be destroyed. (lav) + +HOW TO TEST THIS: + +Use the following production: + +hardscroll: hardscroll.c + $(CC) -g -DSCROLLDEBUG hardscroll.c -o hardscroll + +Then just type scramble vectors and watch. The following test loads are +a representative sample of cases: + +----------------------------- CUT HERE ------------------------------------ +# No lines moved + 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 +# +# A scroll up + 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 -1 +# +# A scroll down +-1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 +# +# An insertion (after line 12) + 0 1 2 3 4 5 6 7 8 9 10 11 12 -1 13 14 15 16 17 18 19 20 21 22 +# +# A simple deletion (line 10) + 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 -1 +# +# A more complex case +-1 -1 -1 -1 -1 3 4 5 6 7 -1 -1 8 9 10 11 12 13 14 15 16 17 -1 -1 +----------------------------- CUT HERE ------------------------------------ + +AUTHOR + Eric S. Raymond , November 1994 + New algorithm by Alexander V. Lukyanov , Aug 1997 + +*****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: hardscroll.c,v 1.54 2020/02/02 23:34:34 tom Exp $") + +#if defined(SCROLLDEBUG) || defined(HASHDEBUG) + +# undef screen_lines +# define screen_lines(sp) MAXLINES +NCURSES_EXPORT_VAR (int) + oldnums[MAXLINES]; +# define OLDNUM(sp,n) oldnums[n] +# define _tracef printf +# undef TR +# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); } + +extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing; + +#else /* no debug */ + +/* OLDNUM(n) indicates which line will be shifted to the position n. + if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from + somewhere. */ +NCURSES_EXPORT_VAR (int *) + _nc_oldnums = 0; /* obsolete: keep for ABI compat */ + +# if USE_HASHMAP +# define oldnums(sp) (sp)->_oldnum_list +# define OLDNUM(sp,n) oldnums(sp)[n] +# else /* !USE_HASHMAP */ +# define OLDNUM(sp,n) NewScreen(sp)->_line[n].oldindex +# endif /* !USE_HASHMAP */ + +#define OLDNUM_SIZE(sp) (sp)->_oldnum_size + +#endif /* defined(SCROLLDEBUG) || defined(HASHDEBUG) */ + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_scroll_optimize) (NCURSES_SP_DCL0) +/* scroll optimization to transform curscr to newscr */ +{ + int i; + int start, end, shift; + + TR(TRACE_ICALLS, (T_CALLED("_nc_scroll_optimize(%p)"), (void *) SP_PARM)); + +#if !defined(SCROLLDEBUG) && !defined(HASHDEBUG) +#if USE_HASHMAP + /* get enough storage */ + assert(OLDNUM_SIZE(SP_PARM) >= 0); + assert(screen_lines(SP_PARM) > 0); + if ((oldnums(SP_PARM) == 0) + || (OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM))) { + int need_lines = ((OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM)) + ? screen_lines(SP_PARM) + : OLDNUM_SIZE(SP_PARM)); + int *new_oldnums = typeRealloc(int, + (size_t) need_lines, + oldnums(SP_PARM)); + if (!new_oldnums) + return; + oldnums(SP_PARM) = new_oldnums; + OLDNUM_SIZE(SP_PARM) = need_lines; + } + /* calculate the indices */ + NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_ARG); +#endif +#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */ + +#ifdef TRACE + if (USE_TRACEF(TRACE_UPDATE | TRACE_MOVE)) { + NCURSES_SP_NAME(_nc_linedump) (NCURSES_SP_ARG); + _nc_unlock_global(tracef); + } +#endif /* TRACE */ + + /* pass 1 - from top to bottom scrolling up */ + for (i = 0; i < screen_lines(SP_PARM);) { + while (i < screen_lines(SP_PARM) + && (OLDNUM(SP_PARM, i) == _NEWINDEX || OLDNUM(SP_PARM, i) <= i)) + i++; + if (i >= screen_lines(SP_PARM)) + break; + + shift = OLDNUM(SP_PARM, i) - i; /* shift > 0 */ + start = i; + + i++; + while (i < screen_lines(SP_PARM) + && OLDNUM(SP_PARM, i) != _NEWINDEX + && OLDNUM(SP_PARM, i) - i == shift) + i++; + end = i - 1 + shift; + + TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift)); +#if !defined(SCROLLDEBUG) && !defined(HASHDEBUG) + if (NCURSES_SP_NAME(_nc_scrolln) (NCURSES_SP_ARGx + shift, + start, + end, + screen_lines(SP_PARM) - 1) == ERR) { + TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll")); + continue; + } +#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */ + } + + /* pass 2 - from bottom to top scrolling down */ + for (i = screen_lines(SP_PARM) - 1; i >= 0;) { + while (i >= 0 + && (OLDNUM(SP_PARM, i) == _NEWINDEX + || OLDNUM(SP_PARM, i) >= i)) { + i--; + } + if (i < 0) + break; + + shift = OLDNUM(SP_PARM, i) - i; /* shift < 0 */ + end = i; + + i--; + while (i >= 0 + && OLDNUM(SP_PARM, i) != _NEWINDEX + && OLDNUM(SP_PARM, i) - i == shift) { + i--; + } + start = i + 1 - (-shift); + + TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift)); +#if !defined(SCROLLDEBUG) && !defined(HASHDEBUG) + if (NCURSES_SP_NAME(_nc_scrolln) (NCURSES_SP_ARGx + shift, + start, + end, + screen_lines(SP_PARM) - 1) == ERR) { + TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll")); + continue; + } +#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */ + } + TR(TRACE_ICALLS, (T_RETURN(""))); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_scroll_optimize(void) +{ + NCURSES_SP_NAME(_nc_scroll_optimize) (CURRENT_SCREEN); +} +#endif + +#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG) +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_linedump) (NCURSES_SP_DCL0) +/* dump the state of the real and virtual oldnum fields */ +{ + char *buf = 0; + size_t want = ((size_t) screen_lines(SP_PARM) + 1) * 4; + (void) SP_PARM; + + if ((buf = typeMalloc(char, want)) != 0) { + int n; + + *buf = '\0'; + for (n = 0; n < screen_lines(SP_PARM); n++) + _nc_SPRINTF(buf + strlen(buf), + _nc_SLIMIT(want - strlen(buf)) + " %02d", OLDNUM(SP_PARM, n)); + TR(TRACE_UPDATE | TRACE_MOVE, ("virt %s", buf)); + free(buf); + } +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_linedump(void) +{ + NCURSES_SP_NAME(_nc_linedump) (CURRENT_SCREEN); +} +#endif + +#endif /* defined(TRACE) || defined(SCROLLDEBUG) */ + +#ifdef SCROLLDEBUG + +int +main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) +{ + char line[BUFSIZ], *st; + +#ifdef TRACE + _nc_tracing = TRACE_MOVE; +#endif + for (;;) { + int n; + + for (n = 0; n < screen_lines(sp); n++) + oldnums[n] = _NEWINDEX; + + /* grab the test vector */ + if (fgets(line, sizeof(line), stdin) == (char *) NULL) + exit(EXIT_SUCCESS); + + /* parse it */ + n = 0; + if (line[0] == '#') { + (void) fputs(line, stderr); + continue; + } + st = strtok(line, " "); + do { + oldnums[n++] = atoi(st); + } while + ((st = strtok((char *) NULL, " ")) != 0); + + /* display it */ + (void) fputs("Initial input:\n", stderr); + _nc_linedump(); + + _nc_scroll_optimize(); + } +} + +#endif /* SCROLLDEBUG */ + +/* hardscroll.c ends here */ diff --git a/third_party/ncurses/hashed_db.c b/third_party/ncurses/hashed_db.c new file mode 100644 index 000000000..62acbec8b --- /dev/null +++ b/third_party/ncurses/hashed_db.c @@ -0,0 +1,342 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 2006-2011,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2006-on * + ****************************************************************************/ + +#include "curses.priv.h" +#include "tic.h" +#include "hashed_db.h" + +#if USE_HASHED_DB + +MODULE_ID("$Id: hashed_db.c,v 1.19 2020/02/02 23:34:34 tom Exp $") + +#if HASHED_DB_API >= 2 +static DBC *cursor; +#endif + +typedef struct _myconn { + struct _myconn *next; + DB *db; + char *path; + bool modify; +} MYCONN; + +static MYCONN *connections; + +static void +cleanup(void) +{ + while (connections != 0) { + _nc_db_close(connections->db); + } +} + +static DB * +find_connection(const char *path, bool modify) +{ + DB *result = 0; + MYCONN *p; + + for (p = connections; p != 0; p = p->next) { + if (!strcmp(p->path, path) && p->modify == modify) { + result = p->db; + break; + } + } + + return result; +} + +static void +drop_connection(DB * db) +{ + MYCONN *p, *q; + + for (p = connections, q = 0; p != 0; q = p, p = p->next) { + if (p->db == db) { + if (q != 0) + q->next = p->next; + else + connections = p->next; + free(p->path); + free(p); + break; + } + } +} + +static void +make_connection(DB * db, const char *path, bool modify) +{ + MYCONN *p = typeCalloc(MYCONN, 1); + + if (p != 0) { + p->db = db; + p->path = strdup(path); + p->modify = modify; + if (p->path != 0) { + p->next = connections; + connections = p; + } else { + free(p); + } + } +} + +/* + * Open the database. + */ +NCURSES_EXPORT(DB *) +_nc_db_open(const char *path, bool modify) +{ + DB *result = 0; + int code; + + if (connections == 0) + atexit(cleanup); + + if ((result = find_connection(path, modify)) == 0) { + +#if HASHED_DB_API >= 4 + db_create(&result, NULL, 0); + if ((code = result->open(result, + NULL, + path, + NULL, + DB_HASH, + modify ? DB_CREATE : DB_RDONLY, + 0644)) != 0) { + result = 0; + } +#elif HASHED_DB_API >= 3 + db_create(&result, NULL, 0); + if ((code = result->open(result, + path, + NULL, + DB_HASH, + modify ? DB_CREATE : DB_RDONLY, + 0644)) != 0) { + result = 0; + } +#elif HASHED_DB_API >= 2 + if ((code = db_open(path, + DB_HASH, + modify ? DB_CREATE : DB_RDONLY, + 0644, + (DB_ENV *) 0, + (DB_INFO *) 0, + &result)) != 0) { + result = 0; + } +#else + if ((result = dbopen(path, + modify ? (O_CREAT | O_RDWR) : O_RDONLY, + 0644, + DB_HASH, + NULL)) == 0) { + code = errno; + } +#endif + if (result != 0) { + make_connection(result, path, modify); + T(("opened %s", path)); + } else { + T(("cannot open %s: %s", path, strerror(code))); + } + } + return result; +} + +/* + * Close the database. Do not attempt to use the 'db' handle after this call. + */ +NCURSES_EXPORT(int) +_nc_db_close(DB * db) +{ + int result; + + drop_connection(db); +#if HASHED_DB_API >= 2 + result = db->close(db, 0); +#else + result = db->close(db); +#endif + return result; +} + +/* + * Write a record to the database. + * + * Returns 0 on success. + * + * FIXME: the FreeBSD cap_mkdb program assumes the database could have + * duplicates. There appears to be no good reason for that (review/fix). + */ +NCURSES_EXPORT(int) +_nc_db_put(DB * db, DBT * key, DBT * data) +{ + int result; +#if HASHED_DB_API >= 2 + /* remove any pre-existing value, since we do not want duplicates */ + (void) db->del(db, NULL, key, 0); + result = db->put(db, NULL, key, data, DB_NOOVERWRITE); +#else + result = db->put(db, key, data, R_NOOVERWRITE); +#endif + return result; +} + +/* + * Read a record from the database. + * + * Returns 0 on success. + */ +NCURSES_EXPORT(int) +_nc_db_get(DB * db, DBT * key, DBT * data) +{ + int result; + + memset(data, 0, sizeof(*data)); +#if HASHED_DB_API >= 2 + result = db->get(db, NULL, key, data, 0); +#else + result = db->get(db, key, data, 0); +#endif + return result; +} + +/* + * Read the first record from the database, ignoring order. + * + * Returns 0 on success. + */ +NCURSES_EXPORT(int) +_nc_db_first(DB * db, DBT * key, DBT * data) +{ + int result; + + memset(key, 0, sizeof(*key)); + memset(data, 0, sizeof(*data)); +#if HASHED_DB_API >= 2 + if ((result = db->cursor(db, NULL, &cursor, 0)) == 0) { + result = cursor->c_get(cursor, key, data, DB_FIRST); + } +#else + result = db->seq(db, key, data, 0); +#endif + return result; +} + +/* + * Read the next record from the database, ignoring order. + * + * Returns 0 on success. + */ +NCURSES_EXPORT(int) +_nc_db_next(DB * db, DBT * key, DBT * data) +{ + int result; + +#if HASHED_DB_API >= 2 + (void) db; + if (cursor != 0) { + result = cursor->c_get(cursor, key, data, DB_NEXT); + } else { + result = -1; + } +#else + result = db->seq(db, key, data, R_NEXT); +#endif + return result; +} + +/* + * Check if a record is a terminfo index record. Index records are those that + * contain only an alias pointing to a list of aliases. + */ +NCURSES_EXPORT(bool) +_nc_db_have_index(DBT * key, DBT * data, char **buffer, int *size) +{ + bool result = FALSE; + int used = (int) data->size - 1; + char *have = (char *) data->data; + + (void) key; + if (*have++ == 2) { + result = TRUE; + } + /* + * Update params in any case for consistency with _nc_db_have_data(). + */ + *buffer = have; + *size = used; + return result; +} + +/* + * Check if a record is the terminfo data record. Ignore index records, e.g., + * those that contain only an alias pointing to a list of aliases. + */ +NCURSES_EXPORT(bool) +_nc_db_have_data(DBT * key, DBT * data, char **buffer, int *size) +{ + bool result = FALSE; + int used = (int) data->size - 1; + char *have = (char *) data->data; + + if (*have++ == 0) { + if (data->size > key->size + && IS_TIC_MAGIC(have)) { + result = TRUE; + } + } + /* + * Update params in any case to make it simple to follow a index record + * to the data record. + */ + *buffer = have; + *size = used; + return result; +} + +#else + +extern +NCURSES_EXPORT(void) +_nc_hashed_db(void); + +NCURSES_EXPORT(void) +_nc_hashed_db(void) +{ +} + +#endif /* USE_HASHED_DB */ diff --git a/third_party/ncurses/hashed_db.h b/third_party/ncurses/hashed_db.h new file mode 100644 index 000000000..375e7a2a4 --- /dev/null +++ b/third_party/ncurses/hashed_db.h @@ -0,0 +1,72 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2006-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2006 * + ****************************************************************************/ + +/* + * $Id: hashed_db.h,v 1.9 2020/02/02 23:34:34 tom Exp $ + */ + +#ifndef HASHED_DB_H +#define HASHED_DB_H 1 + +#include "ncurses_cfg.h" + +#include "curses.h" + +#if USE_HASHED_DB + +#define DB_DBM_HSEARCH 0 /* quiet gcc -Wundef with db6 */ + +#include + +#ifndef DBM_SUFFIX +#define DBM_SUFFIX ".db" +#endif + +#ifdef DB_VERSION_MAJOR +#define HASHED_DB_API DB_VERSION_MAJOR +#else +#define HASHED_DB_API 1 /* e.g., db 1.8.5 */ +#endif + +extern NCURSES_EXPORT(DB *) _nc_db_open(const char * /* path */, bool /* modify */); +extern NCURSES_EXPORT(bool) _nc_db_have_data(DBT * /* key */, DBT * /* data */, char ** /* buffer */, int * /* size */); +extern NCURSES_EXPORT(bool) _nc_db_have_index(DBT * /* key */, DBT * /* data */, char ** /* buffer */, int * /* size */); +extern NCURSES_EXPORT(int) _nc_db_close(DB * /* db */); +extern NCURSES_EXPORT(int) _nc_db_first(DB * /* db */, DBT * /* key */, DBT * /* data */); +extern NCURSES_EXPORT(int) _nc_db_next(DB * /* db */, DBT * /* key */, DBT * /* data */); +extern NCURSES_EXPORT(int) _nc_db_get(DB * /* db */, DBT * /* key */, DBT * /* data */); +extern NCURSES_EXPORT(int) _nc_db_put(DB * /* db */, DBT * /* key */, DBT * /* data */); + +#endif + +#endif /* HASHED_DB_H */ diff --git a/third_party/ncurses/hashmap.c b/third_party/ncurses/hashmap.c new file mode 100644 index 000000000..dffdcf414 --- /dev/null +++ b/third_party/ncurses/hashmap.c @@ -0,0 +1,592 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 1998-2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/****************************************************************************** + +NAME + hashmap.c -- fill in scramble vector based on text hashes + +SYNOPSIS + void _nc_hash_map(void) + +DESCRIPTION: + This code attempts to recognize pairs of old and new lines in the physical +and virtual screens. When a line pair is recognized, the old line index is +placed in the oldindex member of the virtual screen line, to be used by the +vertical-motion optimizer portion of the update logic (see hardscroll.c). + + Line pairs are recognized by applying a modified Heckel's algorithm, +sped up by hashing. If a line hash is unique in both screens, those +lines must be a pair. Then if the lines just before or after the pair +are the same or similar, they are a pair too. + + We don't worry about false pairs produced by hash collisions, on the +assumption that such cases are rare and will only make the latter stages +of update less efficient, not introduce errors. + +HOW TO TEST THIS: + +Use the following production: + +hashmap: hashmap.c + $(CC) -g -DHASHDEBUG hashmap.c hardscroll.c ../objects/lib_trace.o -o hashmap + +AUTHOR + Eric S. Raymond , May 1996 + Bug fixes and improvements by Alexander V. Lukyanov , 1997 + +*****************************************************************************/ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: hashmap.c,v 1.69 2020/05/31 17:50:48 tom Exp $") + +#ifdef HASHDEBUG + +# define _tracef printf +# undef TR +# ifdef TRACE +# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); } +# else +# define TR(n, a) { _tracef a ; putchar('\n'); } +# endif +# undef screen_lines +# define screen_lines(sp) MAXLINES +# define TEXTWIDTH(sp) 1 +static int oldnums[MAXLINES], reallines[MAXLINES]; +static NCURSES_CH_T oldtext[MAXLINES][TEXTWIDTH(sp)]; +static NCURSES_CH_T newtext[MAXLINES][TEXTWIDTH(sp)]; +# define OLDNUM(sp,n) oldnums[n] +# define OLDTEXT(sp,n) oldtext[n] +# define NEWTEXT(sp,m) newtext[m] +# define PENDING(sp,n) 1 + +#else /* !HASHDEBUG */ + +# define OLDNUM(sp,n) (sp)->_oldnum_list[n] +# define OLDTEXT(sp,n) CurScreen(sp)->_line[n].text +# define NEWTEXT(sp,m) NewScreen(sp)->_line[m].text +# define TEXTWIDTH(sp) (CurScreen(sp)->_maxx + 1) +# define PENDING(sp,n) (NewScreen(sp)->_line[n].firstchar != _NOCHANGE) + +#endif /* !HASHDEBUG */ + +#define oldhash(sp) ((sp)->oldhash) +#define newhash(sp) ((sp)->newhash) +#define hashtab(sp) ((sp)->hashtab) +#define lines_alloc(sp) ((sp)->hashtab_len) + +#if USE_WIDEC_SUPPORT +#define HASH_VAL(ch) (ch.chars[0]) +#else +#define HASH_VAL(ch) (ch) +#endif + +static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT); + +static NCURSES_INLINE unsigned long +hash(SCREEN *sp, NCURSES_CH_T *text) +{ + int i; + NCURSES_CH_T ch; + unsigned long result = 0; + (void) sp; + + for (i = TEXTWIDTH(sp); i > 0; i--) { + ch = *text++; + result += (result << 5) + (unsigned long) HASH_VAL(ch); + } + return result; +} + +/* approximate update cost */ +static int +update_cost(SCREEN *sp, NCURSES_CH_T *from, NCURSES_CH_T *to) +{ + int cost = 0; + int i; + (void) sp; + + for (i = TEXTWIDTH(sp); i > 0; i--, from++, to++) + if (!(CharEq(*from, *to))) + cost++; + + return cost; +} + +static int +update_cost_from_blank(SCREEN *sp, NCURSES_CH_T *to) +{ + int cost = 0; + int i; + NCURSES_CH_T blank = blankchar; + (void) sp; + + if (back_color_erase) + SetPair(blank, GetPair(stdscr->_nc_bkgd)); + + for (i = TEXTWIDTH(sp); i > 0; i--, to++) + if (!(CharEq(blank, *to))) + cost++; + + return cost; +} + +/* + * Returns true when moving line 'from' to line 'to' seems to be cost + * effective. 'blank' indicates whether the line 'to' would become blank. + */ +static NCURSES_INLINE bool +cost_effective(SCREEN *sp, const int from, const int to, const int blank) +{ + int new_from; + + if (from == to) + return FALSE; + + new_from = OLDNUM(sp, from); + if (new_from == _NEWINDEX) + new_from = from; + + /* + * On the left side of >= is the cost before moving; + * on the right side -- cost after moving. + */ + return (((blank ? update_cost_from_blank(sp, NEWTEXT(sp, to)) + : update_cost(sp, OLDTEXT(sp, to), NEWTEXT(sp, to))) + + update_cost(sp, OLDTEXT(sp, new_from), NEWTEXT(sp, from))) + >= ((new_from == from ? update_cost_from_blank(sp, NEWTEXT(sp, from)) + : update_cost(sp, OLDTEXT(sp, new_from), NEWTEXT(sp, from))) + + update_cost(sp, OLDTEXT(sp, from), NEWTEXT(sp, to)))) + ? TRUE : FALSE; +} + +static void +grow_hunks(SCREEN *sp) +{ + int back_limit; /* limits for cells to fill */ + int back_ref_limit; /* limit for references */ + int i; + int next_hunk; + + /* + * This is tricky part. We have unique pairs to use as anchors. + * Use these to deduce the presence of spans of identical lines. + */ + back_limit = 0; + back_ref_limit = 0; + + i = 0; + while (i < screen_lines(sp) && OLDNUM(sp, i) == _NEWINDEX) + i++; + for (; i < screen_lines(sp); i = next_hunk) { + int forward_limit; + int forward_ref_limit; + int end; + int start = i; + int shift = OLDNUM(sp, i) - i; + + /* get forward limit */ + i = start + 1; + while (i < screen_lines(sp) + && OLDNUM(sp, i) != _NEWINDEX + && OLDNUM(sp, i) - i == shift) + i++; + end = i; + while (i < screen_lines(sp) && OLDNUM(sp, i) == _NEWINDEX) + i++; + next_hunk = i; + forward_limit = i; + if (i >= screen_lines(sp) || OLDNUM(sp, i) >= i) + forward_ref_limit = i; + else + forward_ref_limit = OLDNUM(sp, i); + + i = start - 1; + /* grow back */ + if (shift < 0) + back_limit = back_ref_limit + (-shift); + while (i >= back_limit) { + if (newhash(sp)[i] == oldhash(sp)[i + shift] + || cost_effective(sp, i + shift, i, shift < 0)) { + OLDNUM(sp, i) = i + shift; + TR(TRACE_UPDATE | TRACE_MOVE, + ("connected new line %d to old line %d (backward continuation)", + i, i + shift)); + } else { + TR(TRACE_UPDATE | TRACE_MOVE, + ("not connecting new line %d to old line %d (backward continuation)", + i, i + shift)); + break; + } + i--; + } + + i = end; + /* grow forward */ + if (shift > 0) + forward_limit = forward_ref_limit - shift; + while (i < forward_limit) { + if (newhash(sp)[i] == oldhash(sp)[i + shift] + || cost_effective(sp, i + shift, i, shift > 0)) { + OLDNUM(sp, i) = i + shift; + TR(TRACE_UPDATE | TRACE_MOVE, + ("connected new line %d to old line %d (forward continuation)", + i, i + shift)); + } else { + TR(TRACE_UPDATE | TRACE_MOVE, + ("not connecting new line %d to old line %d (forward continuation)", + i, i + shift)); + break; + } + i++; + } + + back_ref_limit = back_limit = i; + if (shift > 0) + back_ref_limit += shift; + } +} + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_DCL0) +{ + HASHMAP *hsp; + register int i; + + if (screen_lines(SP_PARM) > lines_alloc(SP_PARM)) { + if (hashtab(SP_PARM)) + free(hashtab(SP_PARM)); + hashtab(SP_PARM) = typeMalloc(HASHMAP, + ((size_t) screen_lines(SP_PARM) + 1) * 2); + if (!hashtab(SP_PARM)) { + if (oldhash(SP_PARM)) { + FreeAndNull(oldhash(SP_PARM)); + } + lines_alloc(SP_PARM) = 0; + return; + } + lines_alloc(SP_PARM) = screen_lines(SP_PARM); + } + + if (oldhash(SP_PARM) && newhash(SP_PARM)) { + /* re-hash only changed lines */ + for (i = 0; i < screen_lines(SP_PARM); i++) { + if (PENDING(SP_PARM, i)) + newhash(SP_PARM)[i] = hash(SP_PARM, NEWTEXT(SP_PARM, i)); + } + } else { + /* re-hash all */ + if (oldhash(SP_PARM) == 0) + oldhash(SP_PARM) = typeCalloc(unsigned long, + (size_t) screen_lines(SP_PARM)); + if (newhash(SP_PARM) == 0) + newhash(SP_PARM) = typeCalloc(unsigned long, + (size_t) screen_lines(SP_PARM)); + if (!oldhash(SP_PARM) || !newhash(SP_PARM)) + return; /* malloc failure */ + for (i = 0; i < screen_lines(SP_PARM); i++) { + newhash(SP_PARM)[i] = hash(SP_PARM, NEWTEXT(SP_PARM, i)); + oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i)); + } + } + +#ifdef HASH_VERIFY + for (i = 0; i < screen_lines(SP_PARM); i++) { + if (newhash(SP_PARM)[i] != hash(SP_PARM, NEWTEXT(SP_PARM, i))) + fprintf(stderr, "error in newhash[%d]\n", i); + if (oldhash(SP_PARM)[i] != hash(SP_PARM, OLDTEXT(SP_PARM, i))) + fprintf(stderr, "error in oldhash[%d]\n", i); + } +#endif + + /* + * Set up and count line-hash values. + */ + memset(hashtab(SP_PARM), '\0', + sizeof(*(hashtab(SP_PARM))) + * ((size_t) screen_lines(SP_PARM) + 1) * 2); + for (i = 0; i < screen_lines(SP_PARM); i++) { + unsigned long hashval = oldhash(SP_PARM)[i]; + + for (hsp = hashtab(SP_PARM); hsp->hashval; hsp++) + if (hsp->hashval == hashval) + break; + hsp->hashval = hashval; /* in case this is a new entry */ + hsp->oldcount++; + hsp->oldindex = i; + } + for (i = 0; i < screen_lines(SP_PARM); i++) { + unsigned long hashval = newhash(SP_PARM)[i]; + + for (hsp = hashtab(SP_PARM); hsp->hashval; hsp++) + if (hsp->hashval == hashval) + break; + hsp->hashval = hashval; /* in case this is a new entry */ + hsp->newcount++; + hsp->newindex = i; + + OLDNUM(SP_PARM, i) = _NEWINDEX; /* initialize old indices array */ + } + + /* + * Mark line pairs corresponding to unique hash pairs. + * + * We don't mark lines with offset 0, because it can make fail + * extending hunks by cost_effective. Otherwise, it does not + * have any side effects. + */ + for (hsp = hashtab(SP_PARM); hsp->hashval; hsp++) + if (hsp->oldcount == 1 && hsp->newcount == 1 + && hsp->oldindex != hsp->newindex) { + TR(TRACE_UPDATE | TRACE_MOVE, + ("new line %d is hash-identical to old line %d (unique)", + hsp->newindex, hsp->oldindex)); + OLDNUM(SP_PARM, hsp->newindex) = hsp->oldindex; + } + + grow_hunks(SP_PARM); + + /* + * Eliminate bad or impossible shifts -- this includes removing + * those hunks which could not grow because of conflicts, as well + * those which are to be moved too far, they are likely to destroy + * more than carry. + */ + for (i = 0; i < screen_lines(SP_PARM);) { + int start, shift, size; + + while (i < screen_lines(SP_PARM) && OLDNUM(SP_PARM, i) == _NEWINDEX) + i++; + if (i >= screen_lines(SP_PARM)) + break; + start = i; + shift = OLDNUM(SP_PARM, i) - i; + i++; + while (i < screen_lines(SP_PARM) + && OLDNUM(SP_PARM, i) != _NEWINDEX + && OLDNUM(SP_PARM, i) - i == shift) + i++; + size = i - start; + if (size < 3 || size + min(size / 8, 2) < abs(shift)) { + while (start < i) { + OLDNUM(SP_PARM, start) = _NEWINDEX; + start++; + } + } + } + + /* After clearing invalid hunks, try grow the rest. */ + grow_hunks(SP_PARM); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_hash_map(void) +{ + NCURSES_SP_NAME(_nc_hash_map) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_make_oldhash) (NCURSES_SP_DCLx int i) +{ + if (oldhash(SP_PARM)) + oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i)); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_make_oldhash(int i) +{ + NCURSES_SP_NAME(_nc_make_oldhash) (CURRENT_SCREEN, i); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_scroll_oldhash) (NCURSES_SP_DCLx int n, int top, int bot) +{ + size_t size; + int i; + + if (!oldhash(SP_PARM)) + return; + + size = sizeof(*(oldhash(SP_PARM))) * (size_t) (bot - top + 1 - abs(n)); + if (n > 0) { + memmove(oldhash(SP_PARM) + top, oldhash(SP_PARM) + top + n, size); + for (i = bot; i > bot - n; i--) + oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i)); + } else { + memmove(oldhash(SP_PARM) + top - n, oldhash(SP_PARM) + top, size); + for (i = top; i < top - n; i++) + oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i)); + } +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_scroll_oldhash(int n, int top, int bot) +{ + NCURSES_SP_NAME(_nc_scroll_oldhash) (CURRENT_SCREEN, n, top, bot); +} +#endif + +#ifdef HASHDEBUG +static void +usage(void) +{ + static const char *table[] = + { + "hashmap test-driver", + "", + "# comment", + "l get initial line number vector", + "n use following letters as text of new lines", + "o use following letters as text of old lines", + "d dump state of test arrays", + "h apply hash mapper and see scroll optimization", + "? this message" + }; + size_t n; + for (n = 0; n < sizeof(table) / sizeof(table[0]); n++) + fprintf(stderr, "%s\n", table[n]); +} + +int +main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) +{ + char line[BUFSIZ], *st; + int n; + + if (setupterm(NULL, fileno(stdout), (int *) 0) == ERR) + return EXIT_FAILURE; + (void) _nc_alloc_screen(); + + for (n = 0; n < screen_lines(sp); n++) { + reallines[n] = n; + oldnums[n] = _NEWINDEX; + CharOf(oldtext[n][0]) = CharOf(newtext[n][0]) = '.'; + } + + if (NC_ISATTY(fileno(stdin))) + usage(); + +#ifdef TRACE + _nc_tracing = TRACE_MOVE; +#endif + for (;;) { + /* grab a test command */ + if (fgets(line, sizeof(line), stdin) == (char *) NULL) + break; + + switch (line[0]) { + case '#': /* comment */ + (void) fputs(line, stderr); + break; + + case 'l': /* get initial line number vector */ + for (n = 0; n < screen_lines(sp); n++) { + reallines[n] = n; + oldnums[n] = _NEWINDEX; + } + n = 0; + st = strtok(line, " "); + do { + oldnums[n++] = atoi(st); + } while + ((st = strtok((char *) NULL, " ")) != 0); + break; + + case 'n': /* use following letters as text of new lines */ + for (n = 0; n < screen_lines(sp); n++) + CharOf(newtext[n][0]) = '.'; + for (n = 0; n < screen_lines(sp); n++) + if (line[n + 1] == '\n') + break; + else + CharOf(newtext[n][0]) = line[n + 1]; + break; + + case 'o': /* use following letters as text of old lines */ + for (n = 0; n < screen_lines(sp); n++) + CharOf(oldtext[n][0]) = '.'; + for (n = 0; n < screen_lines(sp); n++) + if (line[n + 1] == '\n') + break; + else + CharOf(oldtext[n][0]) = line[n + 1]; + break; + + case 'd': /* dump state of test arrays */ +#ifdef TRACE + _nc_linedump(); +#endif + (void) fputs("Old lines: [", stdout); + for (n = 0; n < screen_lines(sp); n++) + putchar(CharOf(oldtext[n][0])); + putchar(']'); + putchar('\n'); + (void) fputs("New lines: [", stdout); + for (n = 0; n < screen_lines(sp); n++) + putchar(CharOf(newtext[n][0])); + putchar(']'); + putchar('\n'); + break; + + case 'h': /* apply hash mapper and see scroll optimization */ + _nc_hash_map(); + (void) fputs("Result:\n", stderr); +#ifdef TRACE + _nc_linedump(); +#endif + _nc_scroll_optimize(); + (void) fputs("Done.\n", stderr); + break; + default: + case '?': + usage(); + break; + } + } + exit_curses(EXIT_SUCCESS); +} + +#endif /* HASHDEBUG */ + +/* hashmap.c ends here */ diff --git a/third_party/ncurses/hashsize.h b/third_party/ncurses/hashsize.h new file mode 100644 index 000000000..478fd5971 --- /dev/null +++ b/third_party/ncurses/hashsize.h @@ -0,0 +1,6 @@ +/* + * hashsize.h -- hash and token table constants + */ + +#define CAPTABSIZE 497 +#define HASHTABSIZE (497 * 2) diff --git a/third_party/ncurses/home_terminfo.c b/third_party/ncurses/home_terminfo.c new file mode 100644 index 000000000..3a0a77404 --- /dev/null +++ b/third_party/ncurses/home_terminfo.c @@ -0,0 +1,67 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2012,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +/* + * home_terminfo.c -- return the $HOME/.terminfo string, expanded + */ + +#include "curses.priv.h" +#include "tic.h" + +MODULE_ID("$Id: home_terminfo.c,v 1.17 2020/02/02 23:34:34 tom Exp $") + +/* ncurses extension...fall back on user's private directory */ + +#define MyBuffer _nc_globals.home_terminfo + +NCURSES_EXPORT(char *) +_nc_home_terminfo(void) +{ + char *result = 0; +#if USE_HOME_TERMINFO + if (use_terminfo_vars()) { + + if (MyBuffer == 0) { + char *home; + + if ((home = getenv("HOME")) != 0) { + size_t want = (strlen(home) + sizeof(PRIVATE_INFO)); + TYPE_MALLOC(char, want, MyBuffer); + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(want) PRIVATE_INFO, home); + } + } + result = MyBuffer; + } +#endif + return result; +} diff --git a/third_party/ncurses/init_keytry.c b/third_party/ncurses/init_keytry.c new file mode 100644 index 000000000..454b7f891 --- /dev/null +++ b/third_party/ncurses/init_keytry.c @@ -0,0 +1,112 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1999-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +#include "curses.priv.h" +#include "tic.h" /* struct tinfo_fkeys */ + +MODULE_ID("$Id: init_keytry.c,v 1.19 2020/02/02 23:34:34 tom Exp $") + +/* +** _nc_init_keytry() +** +** Construct the try for the current terminal's keypad keys. +** +*/ + +/* + * Internal entrypoints use SCREEN* parameter to obtain capabilities rather + * than cur_term. + */ +#undef CUR +#define CUR SP_TERMTYPE + +#if BROKEN_LINKER +#undef _nc_tinfo_fkeys +#endif + +/* LINT_PREPRO +#if 0*/ +#include "init_keytry.h" +/* LINT_PREPRO +#endif*/ + +#if BROKEN_LINKER +const struct tinfo_fkeys * +_nc_tinfo_fkeysf(void) +{ + return _nc_tinfo_fkeys; +} +#endif + +NCURSES_EXPORT(void) +_nc_init_keytry(SCREEN *sp) +{ + /* The sp->_keytry value is initialized in newterm(), where the sp + * structure is created, because we can not tell where keypad() or + * mouse_activate() (which will call keyok()) are first called. + */ + + if (sp != 0) { + unsigned n; + + for (n = 0; _nc_tinfo_fkeys[n].code; n++) { + if (_nc_tinfo_fkeys[n].offset < STRCOUNT) { + (void) _nc_add_to_try(&(sp->_keytry), + CUR Strings[_nc_tinfo_fkeys[n].offset], + _nc_tinfo_fkeys[n].code); + } + } +#if NCURSES_XNAMES + /* + * Add any of the extended strings to the tries if their name begins + * with 'k', i.e., they follow the convention of other terminfo key + * names. + */ + { + TERMTYPE *tp = &(sp->_term->type); + for (n = STRCOUNT; n < NUM_STRINGS(tp); ++n) { + const char *name = ExtStrname(tp, (int) n, strnames); + char *value = tp->Strings[n]; + if (name != 0 + && *name == 'k' + && value != 0 + && NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx + value) == 0) { + (void) _nc_add_to_try(&(sp->_keytry), + value, + n - STRCOUNT + KEY_MAX); + } + } + } +#endif +#ifdef TRACE + _nc_trace_tries(sp->_keytry); +#endif + } +} diff --git a/third_party/ncurses/init_keytry.h b/third_party/ncurses/init_keytry.h new file mode 100644 index 000000000..aaac30a39 --- /dev/null +++ b/third_party/ncurses/init_keytry.h @@ -0,0 +1,164 @@ +#ifndef _INIT_KEYTRY_H +#define _INIT_KEYTRY_H 1 + +/* This file was generated by MAKE_KEYS */ + +#include "tic.h" + +#if BROKEN_LINKER +static +#endif +const struct tinfo_fkeys _nc_tinfo_fkeys[] = { + { 139, KEY_A1 }, /* key_a1 */ + { 140, KEY_A3 }, /* key_a3 */ + { 141, KEY_B2 }, /* key_b2 */ + { 55, KEY_BACKSPACE }, /* key_backspace */ + { 158, KEY_BEG }, /* key_beg */ + { 148, KEY_BTAB }, /* key_btab */ + { 142, KEY_C1 }, /* key_c1 */ + { 143, KEY_C3 }, /* key_c3 */ + { 159, KEY_CANCEL }, /* key_cancel */ + { 56, KEY_CATAB }, /* key_catab */ + { 57, KEY_CLEAR }, /* key_clear */ + { 160, KEY_CLOSE }, /* key_close */ + { 161, KEY_COMMAND }, /* key_command */ + { 162, KEY_COPY }, /* key_copy */ + { 163, KEY_CREATE }, /* key_create */ + { 58, KEY_CTAB }, /* key_ctab */ + { 59, KEY_DC }, /* key_dc */ + { 60, KEY_DL }, /* key_dl */ + { 61, KEY_DOWN }, /* key_down */ + { 62, KEY_EIC }, /* key_eic */ + { 164, KEY_END }, /* key_end */ + { 165, KEY_ENTER }, /* key_enter */ + { 63, KEY_EOL }, /* key_eol */ + { 64, KEY_EOS }, /* key_eos */ + { 166, KEY_EXIT }, /* key_exit */ + { 65, KEY_F(0) }, /* key_f0 */ + { 66, KEY_F(1) }, /* key_f1 */ + { 67, KEY_F(10) }, /* key_f10 */ + { 216, KEY_F(11) }, /* key_f11 */ + { 217, KEY_F(12) }, /* key_f12 */ + { 218, KEY_F(13) }, /* key_f13 */ + { 219, KEY_F(14) }, /* key_f14 */ + { 220, KEY_F(15) }, /* key_f15 */ + { 221, KEY_F(16) }, /* key_f16 */ + { 222, KEY_F(17) }, /* key_f17 */ + { 223, KEY_F(18) }, /* key_f18 */ + { 224, KEY_F(19) }, /* key_f19 */ + { 68, KEY_F(2) }, /* key_f2 */ + { 225, KEY_F(20) }, /* key_f20 */ + { 226, KEY_F(21) }, /* key_f21 */ + { 227, KEY_F(22) }, /* key_f22 */ + { 228, KEY_F(23) }, /* key_f23 */ + { 229, KEY_F(24) }, /* key_f24 */ + { 230, KEY_F(25) }, /* key_f25 */ + { 231, KEY_F(26) }, /* key_f26 */ + { 232, KEY_F(27) }, /* key_f27 */ + { 233, KEY_F(28) }, /* key_f28 */ + { 234, KEY_F(29) }, /* key_f29 */ + { 69, KEY_F(3) }, /* key_f3 */ + { 235, KEY_F(30) }, /* key_f30 */ + { 236, KEY_F(31) }, /* key_f31 */ + { 237, KEY_F(32) }, /* key_f32 */ + { 238, KEY_F(33) }, /* key_f33 */ + { 239, KEY_F(34) }, /* key_f34 */ + { 240, KEY_F(35) }, /* key_f35 */ + { 241, KEY_F(36) }, /* key_f36 */ + { 242, KEY_F(37) }, /* key_f37 */ + { 243, KEY_F(38) }, /* key_f38 */ + { 244, KEY_F(39) }, /* key_f39 */ + { 70, KEY_F(4) }, /* key_f4 */ + { 245, KEY_F(40) }, /* key_f40 */ + { 246, KEY_F(41) }, /* key_f41 */ + { 247, KEY_F(42) }, /* key_f42 */ + { 248, KEY_F(43) }, /* key_f43 */ + { 249, KEY_F(44) }, /* key_f44 */ + { 250, KEY_F(45) }, /* key_f45 */ + { 251, KEY_F(46) }, /* key_f46 */ + { 252, KEY_F(47) }, /* key_f47 */ + { 253, KEY_F(48) }, /* key_f48 */ + { 254, KEY_F(49) }, /* key_f49 */ + { 71, KEY_F(5) }, /* key_f5 */ + { 255, KEY_F(50) }, /* key_f50 */ + { 256, KEY_F(51) }, /* key_f51 */ + { 257, KEY_F(52) }, /* key_f52 */ + { 258, KEY_F(53) }, /* key_f53 */ + { 259, KEY_F(54) }, /* key_f54 */ + { 260, KEY_F(55) }, /* key_f55 */ + { 261, KEY_F(56) }, /* key_f56 */ + { 262, KEY_F(57) }, /* key_f57 */ + { 263, KEY_F(58) }, /* key_f58 */ + { 264, KEY_F(59) }, /* key_f59 */ + { 72, KEY_F(6) }, /* key_f6 */ + { 265, KEY_F(60) }, /* key_f60 */ + { 266, KEY_F(61) }, /* key_f61 */ + { 267, KEY_F(62) }, /* key_f62 */ + { 268, KEY_F(63) }, /* key_f63 */ + { 73, KEY_F(7) }, /* key_f7 */ + { 74, KEY_F(8) }, /* key_f8 */ + { 75, KEY_F(9) }, /* key_f9 */ + { 167, KEY_FIND }, /* key_find */ + { 168, KEY_HELP }, /* key_help */ + { 76, KEY_HOME }, /* key_home */ + { 77, KEY_IC }, /* key_ic */ + { 78, KEY_IL }, /* key_il */ + { 79, KEY_LEFT }, /* key_left */ + { 80, KEY_LL }, /* key_ll */ + { 169, KEY_MARK }, /* key_mark */ + { 170, KEY_MESSAGE }, /* key_message */ + { 355, KEY_MOUSE }, /* key_mouse */ + { 171, KEY_MOVE }, /* key_move */ + { 172, KEY_NEXT }, /* key_next */ + { 81, KEY_NPAGE }, /* key_npage */ + { 173, KEY_OPEN }, /* key_open */ + { 174, KEY_OPTIONS }, /* key_options */ + { 82, KEY_PPAGE }, /* key_ppage */ + { 175, KEY_PREVIOUS }, /* key_previous */ + { 176, KEY_PRINT }, /* key_print */ + { 177, KEY_REDO }, /* key_redo */ + { 178, KEY_REFERENCE }, /* key_reference */ + { 179, KEY_REFRESH }, /* key_refresh */ + { 180, KEY_REPLACE }, /* key_replace */ + { 181, KEY_RESTART }, /* key_restart */ + { 182, KEY_RESUME }, /* key_resume */ + { 83, KEY_RIGHT }, /* key_right */ + { 183, KEY_SAVE }, /* key_save */ + { 186, KEY_SBEG }, /* key_sbeg */ + { 187, KEY_SCANCEL }, /* key_scancel */ + { 188, KEY_SCOMMAND }, /* key_scommand */ + { 189, KEY_SCOPY }, /* key_scopy */ + { 190, KEY_SCREATE }, /* key_screate */ + { 191, KEY_SDC }, /* key_sdc */ + { 192, KEY_SDL }, /* key_sdl */ + { 193, KEY_SELECT }, /* key_select */ + { 194, KEY_SEND }, /* key_send */ + { 195, KEY_SEOL }, /* key_seol */ + { 196, KEY_SEXIT }, /* key_sexit */ + { 84, KEY_SF }, /* key_sf */ + { 197, KEY_SFIND }, /* key_sfind */ + { 198, KEY_SHELP }, /* key_shelp */ + { 199, KEY_SHOME }, /* key_shome */ + { 200, KEY_SIC }, /* key_sic */ + { 201, KEY_SLEFT }, /* key_sleft */ + { 202, KEY_SMESSAGE }, /* key_smessage */ + { 203, KEY_SMOVE }, /* key_smove */ + { 204, KEY_SNEXT }, /* key_snext */ + { 205, KEY_SOPTIONS }, /* key_soptions */ + { 206, KEY_SPREVIOUS }, /* key_sprevious */ + { 207, KEY_SPRINT }, /* key_sprint */ + { 85, KEY_SR }, /* key_sr */ + { 208, KEY_SREDO }, /* key_sredo */ + { 209, KEY_SREPLACE }, /* key_sreplace */ + { 210, KEY_SRIGHT }, /* key_sright */ + { 211, KEY_SRSUME }, /* key_srsume */ + { 212, KEY_SSAVE }, /* key_ssave */ + { 213, KEY_SSUSPEND }, /* key_ssuspend */ + { 86, KEY_STAB }, /* key_stab */ + { 214, KEY_SUNDO }, /* key_sundo */ + { 184, KEY_SUSPEND }, /* key_suspend */ + { 185, KEY_UNDO }, /* key_undo */ + { 87, KEY_UP }, /* key_up */ + { 0, 0} }; + +#endif /* _INIT_KEYTRY_H */ diff --git a/third_party/ncurses/key_defined.c b/third_party/ncurses/key_defined.c new file mode 100644 index 000000000..3aefa5f15 --- /dev/null +++ b/third_party/ncurses/key_defined.c @@ -0,0 +1,87 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2003-2006,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey, 2003 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: key_defined.c,v 1.10 2020/02/02 23:34:34 tom Exp $") + +static int +find_definition(TRIES * tree, const char *str) +{ + TRIES *ptr; + int result = OK; + + if (str != 0 && *str != '\0') { + for (ptr = tree; ptr != 0; ptr = ptr->sibling) { + if (UChar(*str) == UChar(ptr->ch)) { + if (str[1] == '\0' && ptr->child != 0) { + result = ERR; + } else if ((result = find_definition(ptr->child, str + 1)) + == OK) { + result = ptr->value; + } else if (str[1] == '\0') { + result = ERR; + } + } + if (result != OK) + break; + } + } + return (result); +} + +/* + * Returns the keycode associated with the given string. If none is found, + * return OK. If the string is only a prefix to other strings, return ERR. + * Otherwise, return the keycode's value (neither OK/ERR). + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(key_defined) (NCURSES_SP_DCLx const char *str) +{ + int code = ERR; + + T((T_CALLED("key_defined(%p, %s)"), (void *) SP_PARM, _nc_visbuf(str))); + if (SP_PARM != 0 && str != 0) { + code = find_definition(SP_PARM->_keytry, str); + } + + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +key_defined(const char *str) +{ + return NCURSES_SP_NAME(key_defined) (CURRENT_SCREEN, str); +} +#endif diff --git a/third_party/ncurses/keybound.c b/third_party/ncurses/keybound.c new file mode 100644 index 000000000..e448c92d9 --- /dev/null +++ b/third_party/ncurses/keybound.c @@ -0,0 +1,64 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1999-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1999-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: keybound.c,v 1.12 2020/02/02 23:34:34 tom Exp $") + +/* + * Returns the count'th string definition which is associated with the + * given keycode. The result is malloc'd, must be freed by the caller. + */ +NCURSES_EXPORT(char *) +NCURSES_SP_NAME(keybound) (NCURSES_SP_DCLx int code, int count) +{ + char *result = 0; + + T((T_CALLED("keybound(%p, %d,%d)"), (void *) SP_PARM, code, count)); + if (SP_PARM != 0 && code >= 0) { + result = _nc_expand_try(SP_PARM->_keytry, + (unsigned) code, + &count, + (size_t) 0); + } + returnPtr(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char *) +keybound(int code, int count) +{ + return NCURSES_SP_NAME(keybound) (CURRENT_SCREEN, code, count); +} +#endif diff --git a/third_party/ncurses/keyok.c b/third_party/ncurses/keyok.c new file mode 100644 index 000000000..b2bbe8b25 --- /dev/null +++ b/third_party/ncurses/keyok.c @@ -0,0 +1,103 @@ +/**************************************************************************** + * Copyright 2019-2020,2021 Thomas E. Dickey * + * Copyright 1998-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: keyok.c,v 1.17 2021/06/17 21:26:02 tom Exp $") + +/* + * Enable (or disable) ncurses' interpretation of a keycode by adding (or + * removing) the corresponding 'tries' entry. + * + * Do this by storing a second tree of tries, which records the disabled keys. + * The simplest way to copy is to make a function that returns the string (with + * nulls set to 0200), then use that to reinsert the string into the + * corresponding tree. + */ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(keyok) (NCURSES_SP_DCLx int c, bool flag) +{ + int code = ERR; + + if (HasTerminal(SP_PARM)) { + T((T_CALLED("keyok(%p, %d,%d)"), (void *) SP_PARM, c, flag)); +#ifdef USE_TERM_DRIVER + code = CallDriver_2(sp, td_kyOk, c, flag); +#else + if (c >= 0) { + int count = 0; + char *s; + unsigned ch = (unsigned) c; + + if (flag) { + while ((s = _nc_expand_try(SP_PARM->_key_ok, + ch, &count, (size_t) 0)) != 0) { + if (_nc_remove_key(&(SP_PARM->_key_ok), ch)) { + code = _nc_add_to_try(&(SP_PARM->_keytry), s, ch); + free(s); + count = 0; + if (code != OK) + break; + } else { + free(s); + } + } + } else { + while ((s = _nc_expand_try(SP_PARM->_keytry, + ch, &count, (size_t) 0)) != 0) { + if (_nc_remove_key(&(SP_PARM->_keytry), ch)) { + code = _nc_add_to_try(&(SP_PARM->_key_ok), s, ch); + free(s); + count = 0; + if (code != OK) + break; + } else { + free(s); + } + } + } + } +#endif + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +keyok(int c, bool flag) +{ + return NCURSES_SP_NAME(keyok) (CURRENT_SCREEN, c, flag); +} +#endif diff --git a/third_party/ncurses/legacy_coding.c b/third_party/ncurses/legacy_coding.c new file mode 100644 index 000000000..8028c2690 --- /dev/null +++ b/third_party/ncurses/legacy_coding.c @@ -0,0 +1,58 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2005,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2005 * + * Juergen Pfeifer 2009 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: legacy_coding.c,v 1.6 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(use_legacy_coding) (NCURSES_SP_DCLx int level) +{ + int result = ERR; + + T((T_CALLED("use_legacy_coding(%p,%d)"), (void *) SP_PARM, level)); + if (level >= 0 && level <= 2 && SP_PARM != 0) { + result = SP_PARM->_legacy_coding; + SP_PARM->_legacy_coding = level; + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +use_legacy_coding(int level) +{ + return NCURSES_SP_NAME(use_legacy_coding) (CURRENT_SCREEN, level); +} +#endif diff --git a/third_party/ncurses/lib_acs.c b/third_party/ncurses/lib_acs.c new file mode 100644 index 000000000..1a9356c6a --- /dev/null +++ b/third_party/ncurses/lib_acs.c @@ -0,0 +1,326 @@ +/**************************************************************************** + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * + ****************************************************************************/ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_acs.c,v 1.50 2020/02/02 23:34:34 tom Exp $") + +#if BROKEN_LINKER || USE_REENTRANT +#define MyBuffer _nc_prescreen.real_acs_map +NCURSES_EXPORT(chtype *) +NCURSES_PUBLIC_VAR(acs_map) (void) +{ + if (MyBuffer == 0) + MyBuffer = typeCalloc(chtype, ACS_LEN); + return MyBuffer; +} +#undef MyBuffer +#else +NCURSES_EXPORT_VAR (chtype) acs_map[ACS_LEN] = +{ + 0 +}; +#endif + +#ifdef USE_TERM_DRIVER +NCURSES_EXPORT(chtype) +NCURSES_SP_NAME(_nc_acs_char) (NCURSES_SP_DCLx int c) +{ + chtype *map; + if (c < 0 || c >= ACS_LEN) + return (chtype) 0; + map = (SP_PARM != 0) ? SP_PARM->_acs_map : +#if BROKEN_LINKER || USE_REENTRANT + _nc_prescreen.real_acs_map +#else + acs_map +#endif + ; + return map[c]; +} +#endif /* USE_TERM_DRIVER */ + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_DCL0) +{ + chtype *fake_map = acs_map; + chtype *real_map = SP_PARM != 0 ? SP_PARM->_acs_map : fake_map; + int j; + + T(("initializing ACS map")); + + /* + * If we're using this from curses (rather than terminfo), we are storing + * the mapping information in the SCREEN struct so we can decide how to + * render it. + */ + if (real_map != fake_map) { + for (j = 1; j < ACS_LEN; ++j) { + real_map[j] = 0; + fake_map[j] = A_ALTCHARSET | (chtype) j; + if (SP_PARM) + SP_PARM->_screen_acs_map[j] = FALSE; + } + } else { + for (j = 1; j < ACS_LEN; ++j) { + real_map[j] = 0; + } + } + + /* + * Initializations for a UNIX-like multi-terminal environment. Use + * ASCII chars and count on the terminfo description to do better. + */ + real_map['l'] = '+'; /* should be upper left corner */ + real_map['m'] = '+'; /* should be lower left corner */ + real_map['k'] = '+'; /* should be upper right corner */ + real_map['j'] = '+'; /* should be lower right corner */ + real_map['u'] = '+'; /* should be tee pointing left */ + real_map['t'] = '+'; /* should be tee pointing right */ + real_map['v'] = '+'; /* should be tee pointing up */ + real_map['w'] = '+'; /* should be tee pointing down */ + real_map['q'] = '-'; /* should be horizontal line */ + real_map['x'] = '|'; /* should be vertical line */ + real_map['n'] = '+'; /* should be large plus or crossover */ + real_map['o'] = '~'; /* should be scan line 1 */ + real_map['s'] = '_'; /* should be scan line 9 */ + real_map['`'] = '+'; /* should be diamond */ + real_map['a'] = ':'; /* should be checker board (stipple) */ + real_map['f'] = '\''; /* should be degree symbol */ + real_map['g'] = '#'; /* should be plus/minus */ + real_map['~'] = 'o'; /* should be bullet */ + real_map[','] = '<'; /* should be arrow pointing left */ + real_map['+'] = '>'; /* should be arrow pointing right */ + real_map['.'] = 'v'; /* should be arrow pointing down */ + real_map['-'] = '^'; /* should be arrow pointing up */ + real_map['h'] = '#'; /* should be board of squares */ + real_map['i'] = '#'; /* should be lantern symbol */ + real_map['0'] = '#'; /* should be solid square block */ + /* these defaults were invented for ncurses */ + real_map['p'] = '-'; /* should be scan line 3 */ + real_map['r'] = '-'; /* should be scan line 7 */ + real_map['y'] = '<'; /* should be less-than-or-equal-to */ + real_map['z'] = '>'; /* should be greater-than-or-equal-to */ + real_map['{'] = '*'; /* should be greek pi */ + real_map['|'] = '!'; /* should be not-equal */ + real_map['}'] = 'f'; /* should be pound-sterling symbol */ + /* thick-line-drawing */ + real_map['L'] = '+'; /* upper left corner */ + real_map['M'] = '+'; /* lower left corner */ + real_map['K'] = '+'; /* upper right corner */ + real_map['J'] = '+'; /* lower right corner */ + real_map['T'] = '+'; /* tee pointing left */ + real_map['U'] = '+'; /* tee pointing right */ + real_map['V'] = '+'; /* tee pointing up */ + real_map['W'] = '+'; /* tee pointing down */ + real_map['Q'] = '-'; /* horizontal line */ + real_map['X'] = '|'; /* vertical line */ + real_map['N'] = '+'; /* large plus or crossover */ + /* double-line-drawing */ + real_map['C'] = '+'; /* upper left corner */ + real_map['D'] = '+'; /* lower left corner */ + real_map['B'] = '+'; /* upper right corner */ + real_map['A'] = '+'; /* lower right corner */ + real_map['G'] = '+'; /* tee pointing left */ + real_map['F'] = '+'; /* tee pointing right */ + real_map['H'] = '+'; /* tee pointing up */ + real_map['I'] = '+'; /* tee pointing down */ + real_map['R'] = '-'; /* horizontal line */ + real_map['Y'] = '|'; /* vertical line */ + real_map['E'] = '+'; /* large plus or crossover */ + +#ifdef USE_TERM_DRIVER + CallDriver_2(SP_PARM, td_initacs, real_map, fake_map); +#else + if (ena_acs != NULL) { + NCURSES_PUTP2("ena_acs", ena_acs); + } +#if NCURSES_EXT_FUNCS && defined(enter_pc_charset_mode) && defined(exit_pc_charset_mode) + /* + * Linux console "supports" the "PC ROM" character set by the coincidence + * that smpch/rmpch and smacs/rmacs have the same values. ncurses has + * no codepage support (see SCO Merge for an example). Outside of the + * values defined in acsc, there are no definitions for the "PC ROM" + * character set (assumed by some applications to be codepage 437), but we + * allow those applications to use those codepoints. + * + * test/blue.c uses this feature. + */ +#define PCH_KLUDGE(a,b) (a != 0 && b != 0 && !strcmp(a,b)) + if (PCH_KLUDGE(enter_pc_charset_mode, enter_alt_charset_mode) && + PCH_KLUDGE(exit_pc_charset_mode, exit_alt_charset_mode)) { + size_t i; + for (i = 1; i < ACS_LEN; ++i) { + if (real_map[i] == 0) { + real_map[i] = (chtype) i; + if (real_map != fake_map) { + if (SP != 0) + SP->_screen_acs_map[i] = TRUE; + } + } + } + } +#endif + + if (acs_chars != NULL) { + size_t i = 0; + size_t length = strlen(acs_chars); + + while (i + 1 < length) { + if (acs_chars[i] != 0 && UChar(acs_chars[i]) < ACS_LEN) { + real_map[UChar(acs_chars[i])] = UChar(acs_chars[i + 1]) | A_ALTCHARSET; + T(("#%d real_map[%s] = %s", + (int) i, + _tracechar(UChar(acs_chars[i])), + _tracechtype(real_map[UChar(acs_chars[i])]))); + if (SP != 0) { + SP->_screen_acs_map[UChar(acs_chars[i])] = TRUE; + } + } + i += 2; + } + } +#ifdef TRACE + /* Show the equivalent mapping, noting if it does not match the + * given attribute, whether by re-ordering or duplication. + */ + if (USE_TRACEF(TRACE_CALLS)) { + size_t n, m; + char show[ACS_LEN * 2 + 1]; + for (n = 1, m = 0; n < ACS_LEN; n++) { + if (real_map[n] != 0) { + show[m++] = (char) n; + show[m++] = (char) ChCharOf(real_map[n]); + } + } + show[m] = 0; + if (acs_chars == NULL || strcmp(acs_chars, show)) + _tracef("%s acs_chars %s", + (acs_chars == NULL) ? "NULL" : "READ", + _nc_visbuf(acs_chars)); + _tracef("%s acs_chars %s", + (acs_chars == NULL) + ? "NULL" + : (strcmp(acs_chars, show) + ? "DIFF" + : "SAME"), + _nc_visbuf(show)); + _nc_unlock_global(tracef); + } +#endif /* TRACE */ +#endif +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_init_acs(void) +{ + NCURSES_SP_NAME(_nc_init_acs) (CURRENT_SCREEN); +} +#endif + +#if !NCURSES_WCWIDTH_GRAPHICS +NCURSES_EXPORT(int) +_nc_wacs_width(unsigned ch) +{ + int result; + switch (ch) { + case 0x00a3: /* FALLTHRU - ncurses pound-sterling symbol */ + case 0x00b0: /* FALLTHRU - VT100 degree symbol */ + case 0x00b1: /* FALLTHRU - VT100 plus/minus */ + case 0x00b7: /* FALLTHRU - VT100 bullet */ + case 0x03c0: /* FALLTHRU - ncurses greek pi */ + case 0x2190: /* FALLTHRU - Teletype arrow pointing left */ + case 0x2191: /* FALLTHRU - Teletype arrow pointing up */ + case 0x2192: /* FALLTHRU - Teletype arrow pointing right */ + case 0x2193: /* FALLTHRU - Teletype arrow pointing down */ + case 0x2260: /* FALLTHRU - ncurses not-equal */ + case 0x2264: /* FALLTHRU - ncurses less-than-or-equal-to */ + case 0x2265: /* FALLTHRU - ncurses greater-than-or-equal-to */ + case 0x23ba: /* FALLTHRU - VT100 scan line 1 */ + case 0x23bb: /* FALLTHRU - ncurses scan line 3 */ + case 0x23bc: /* FALLTHRU - ncurses scan line 7 */ + case 0x23bd: /* FALLTHRU - VT100 scan line 9 */ + case 0x2500: /* FALLTHRU - VT100 horizontal line */ + case 0x2501: /* FALLTHRU - thick horizontal line */ + case 0x2502: /* FALLTHRU - VT100 vertical line */ + case 0x2503: /* FALLTHRU - thick vertical line */ + case 0x250c: /* FALLTHRU - VT100 upper left corner */ + case 0x250f: /* FALLTHRU - thick upper left corner */ + case 0x2510: /* FALLTHRU - VT100 upper right corner */ + case 0x2513: /* FALLTHRU - thick upper right corner */ + case 0x2514: /* FALLTHRU - VT100 lower left corner */ + case 0x2517: /* FALLTHRU - thick lower left corner */ + case 0x2518: /* FALLTHRU - VT100 lower right corner */ + case 0x251b: /* FALLTHRU - thick lower right corner */ + case 0x251c: /* FALLTHRU - VT100 tee pointing left */ + case 0x2523: /* FALLTHRU - thick tee pointing left */ + case 0x2524: /* FALLTHRU - VT100 tee pointing right */ + case 0x252b: /* FALLTHRU - thick tee pointing right */ + case 0x252c: /* FALLTHRU - VT100 tee pointing down */ + case 0x2533: /* FALLTHRU - thick tee pointing down */ + case 0x2534: /* FALLTHRU - VT100 tee pointing up */ + case 0x253b: /* FALLTHRU - thick tee pointing up */ + case 0x253c: /* FALLTHRU - VT100 large plus or crossover */ + case 0x254b: /* FALLTHRU - thick large plus or crossover */ + case 0x2550: /* FALLTHRU - double horizontal line */ + case 0x2551: /* FALLTHRU - double vertical line */ + case 0x2554: /* FALLTHRU - double upper left corner */ + case 0x2557: /* FALLTHRU - double upper right corner */ + case 0x255a: /* FALLTHRU - double lower left corner */ + case 0x255d: /* FALLTHRU - double lower right corner */ + case 0x2560: /* FALLTHRU - double tee pointing right */ + case 0x2563: /* FALLTHRU - double tee pointing left */ + case 0x2566: /* FALLTHRU - double tee pointing down */ + case 0x2569: /* FALLTHRU - double tee pointing up */ + case 0x256c: /* FALLTHRU - double large plus or crossover */ + case 0x2592: /* FALLTHRU - VT100 checker board (stipple) */ + case 0x25ae: /* FALLTHRU - Teletype solid square block */ + case 0x25c6: /* FALLTHRU - VT100 diamond */ + case 0x2603: /* FALLTHRU - Teletype lantern symbol */ + result = 1; + break; + default: + result = wcwidth(ch); + break; + } + return result; +} +#endif /* !NCURSES_WCWIDTH_GRAPHICS */ diff --git a/third_party/ncurses/lib_add_wch.c b/third_party/ncurses/lib_add_wch.c new file mode 100644 index 000000000..37632e8e0 --- /dev/null +++ b/third_party/ncurses/lib_add_wch.c @@ -0,0 +1,444 @@ +/**************************************************************************** + * Copyright 2019-2020,2021 Thomas E. Dickey * + * Copyright 2004-2011,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* +** lib_add_wch.c +** +** The routine wadd_wch(). +** +*/ + +#include "curses.priv.h" + +#if HAVE_WCTYPE_H +#include +#endif + +MODULE_ID("$Id: lib_add_wch.c,v 1.17 2021/06/17 21:26:02 tom Exp $") + +/* clone/adapt lib_addch.c */ +static const cchar_t blankchar = NewChar(BLANK_TEXT); + +/* + * Ugly microtweaking alert. Everything from here to end of module is + * likely to be speed-critical -- profiling data sure says it is! + * Most of the important screen-painting functions are shells around + * wadd_wch(). So we make every effort to reduce function-call overhead + * by inlining stuff, even at the cost of making wrapped copies for + * export. Also we supply some internal versions that don't call the + * window sync hook, for use by string-put functions. + */ + +/* Return bit mask for clearing color pair number if given ch has color */ +#define COLOR_MASK(ch) (~(attr_t)(((ch) & A_COLOR) ? A_COLOR : 0)) + +static NCURSES_INLINE cchar_t +render_char(WINDOW *win, cchar_t ch) +/* compute a rendition of the given char correct for the current context */ +{ + attr_t a = WINDOW_ATTRS(win); + int pair = GetPair(ch); + + if (ISBLANK(ch) + && AttrOf(ch) == A_NORMAL + && pair == 0) { + /* color/pair in attrs has precedence over bkgrnd */ + ch = win->_nc_bkgd; + SetAttr(ch, a | AttrOf(win->_nc_bkgd)); + if ((pair = GET_WINDOW_PAIR(win)) == 0) + pair = GetPair(win->_nc_bkgd); + SetPair(ch, pair); + } else { + /* color in attrs has precedence over bkgrnd */ + a |= AttrOf(win->_nc_bkgd) & COLOR_MASK(a); + /* color in ch has precedence */ + if (pair == 0) { + if ((pair = GET_WINDOW_PAIR(win)) == 0) + pair = GetPair(win->_nc_bkgd); + } + AddAttr(ch, (a & COLOR_MASK(AttrOf(ch)))); + SetPair(ch, pair); + } + + TR(TRACE_VIRTPUT, + ("render_char bkg %s (%d), attrs %s (%d) -> ch %s (%d)", + _tracech_t2(1, CHREF(win->_nc_bkgd)), + GetPair(win->_nc_bkgd), + _traceattr(WINDOW_ATTRS(win)), + GET_WINDOW_PAIR(win), + _tracech_t2(3, CHREF(ch)), + GetPair(ch))); + + return (ch); +} + +/* check if position is legal; if not, return error */ +#ifndef NDEBUG /* treat this like an assertion */ +#define CHECK_POSITION(win, x, y) \ + if (y > win->_maxy \ + || x > win->_maxx \ + || y < 0 \ + || x < 0) { \ + TR(TRACE_VIRTPUT, ("Alert! Win=%p _curx = %d, _cury = %d " \ + "(_maxx = %d, _maxy = %d)", win, x, y, \ + win->_maxx, win->_maxy)); \ + return(ERR); \ + } +#else +#define CHECK_POSITION(win, x, y) /* nothing */ +#endif + +static bool +newline_forces_scroll(WINDOW *win, NCURSES_SIZE_T *ypos) +{ + bool result = FALSE; + + if (*ypos >= win->_regtop && *ypos == win->_regbottom) { + *ypos = win->_regbottom; + result = TRUE; + } else { + *ypos = (NCURSES_SIZE_T) (*ypos + 1); + } + return result; +} + +/* + * The _WRAPPED flag is useful only for telling an application that we've just + * wrapped the cursor. We don't do anything with this flag except set it when + * wrapping, and clear it whenever we move the cursor. If we try to wrap at + * the lower-right corner of a window, we cannot move the cursor (since that + * wouldn't be legal). So we return an error (which is what SVr4 does). + * Unlike SVr4, we can successfully add a character to the lower-right corner + * (Solaris 2.6 does this also, however). + */ +static int +wrap_to_next_line(WINDOW *win) +{ + win->_flags |= _WRAPPED; + if (newline_forces_scroll(win, &(win->_cury))) { + win->_curx = win->_maxx; + if (!win->_scroll) + return (ERR); + scroll(win); + } + win->_curx = 0; + return (OK); +} + +static int wadd_wch_literal(WINDOW *, cchar_t); +/* + * Fill the given number of cells with blanks using the current background + * rendition. This saves/restores the current x-position. + */ +static void +fill_cells(WINDOW *win, int count) +{ + cchar_t blank = blankchar; + int save_x = win->_curx; + int save_y = win->_cury; + + while (count-- > 0) { + if (wadd_wch_literal(win, blank) == ERR) + break; + } + win->_curx = (NCURSES_SIZE_T) save_x; + win->_cury = (NCURSES_SIZE_T) save_y; +} + +static int +wadd_wch_literal(WINDOW *win, cchar_t ch) +{ + int x; + int y; + struct ldat *line; + + x = win->_curx; + y = win->_cury; + + CHECK_POSITION(win, x, y); + + ch = render_char(win, ch); + + line = win->_line + y; + + CHANGED_CELL(line, x); + + /* + * Non-spacing characters are added to the current cell. + * + * Spacing characters that are wider than one column require some display + * adjustments. + */ + { + int len = _nc_wacs_width(CharOf(ch)); + int i; + int j; + wchar_t *chars; + + if (len == 0) { /* non-spacing */ + if ((x > 0 && y >= 0) + || (win->_maxx >= 0 && win->_cury >= 1)) { + if (x > 0 && y >= 0) + chars = (win->_line[y].text[x - 1].chars); + else + chars = (win->_line[y - 1].text[win->_maxx].chars); + for (i = 0; i < CCHARW_MAX; ++i) { + if (chars[i] == 0) { + TR(TRACE_VIRTPUT, + ("added non-spacing %d: %x", + x, (int) CharOf(ch))); + chars[i] = CharOf(ch); + break; + } + } + } + goto testwrapping; + } else if (len > 1) { /* multi-column characters */ + /* + * Check if the character will fit on the current line. If it does + * not fit, fill in the remainder of the line with blanks. and + * move to the next line. + */ + if (len > win->_maxx + 1) { + TR(TRACE_VIRTPUT, ("character will not fit")); + return ERR; + } else if (x + len > win->_maxx + 1) { + int count = win->_maxx + 1 - x; + TR(TRACE_VIRTPUT, ("fill %d remaining cells", count)); + fill_cells(win, count); + if (wrap_to_next_line(win) == ERR) + return ERR; + x = win->_curx; + y = win->_cury; + line = win->_line + y; + } + /* + * Check for cells which are orphaned by adding this character, set + * those to blanks. + * + * FIXME: this actually could fill j-i cells, more complicated to + * setup though. + */ + for (i = 0; i < len; ++i) { + if (isWidecBase(win->_line[y].text[x + i])) { + break; + } else if (isWidecExt(win->_line[y].text[x + i])) { + for (j = i; x + j <= win->_maxx; ++j) { + if (!isWidecExt(win->_line[y].text[x + j])) { + TR(TRACE_VIRTPUT, ("fill %d orphan cells", j)); + fill_cells(win, j); + break; + } + } + break; + } + } + /* + * Finally, add the cells for this character. + */ + for (i = 0; i < len; ++i) { + cchar_t value = ch; + SetWidecExt(value, i); + TR(TRACE_VIRTPUT, ("multicolumn %d:%d (%d,%d)", + i + 1, len, + win->_begy + y, win->_begx + x)); + line->text[x] = value; + CHANGED_CELL(line, x); + ++x; + } + goto testwrapping; + } + } + + /* + * Single-column characters. + */ + line->text[x++] = ch; + /* + * This label is used only for wide-characters. + */ + testwrapping: + + TR(TRACE_VIRTPUT, ("cell (%ld, %ld..%d) = %s", + (long) win->_cury, (long) win->_curx, x - 1, + _tracech_t(CHREF(ch)))); + + if (x > win->_maxx) { + return wrap_to_next_line(win); + } + win->_curx = (NCURSES_SIZE_T) x; + return OK; +} + +static NCURSES_INLINE int +wadd_wch_nosync(WINDOW *win, cchar_t ch) +/* the workhorse function -- add a character to the given window */ +{ + NCURSES_SIZE_T x, y; + wchar_t *s; + int tabsize = 8; +#if USE_REENTRANT + SCREEN *sp = _nc_screen_of(win); +#endif + + /* + * If we are using the alternate character set, forget about locale. + * Otherwise, if the locale claims the code is printable, treat it that + * way. + */ + if ((AttrOf(ch) & A_ALTCHARSET) + || iswprint((wint_t) CharOf(ch))) + return wadd_wch_literal(win, ch); + + /* + * Handle carriage control and other codes that are not printable, or are + * known to expand to more than one character according to unctrl(). + */ + x = win->_curx; + y = win->_cury; + + switch (CharOf(ch)) { + case '\t': +#if USE_REENTRANT + tabsize = *ptrTabsize(sp); +#else + tabsize = TABSIZE; +#endif + x = (NCURSES_SIZE_T) (x + (tabsize - (x % tabsize))); + /* + * Space-fill the tab on the bottom line so that we'll get the + * "correct" cursor position. + */ + if ((!win->_scroll && (y == win->_regbottom)) + || (x <= win->_maxx)) { + cchar_t blank = blankchar; + AddAttr(blank, AttrOf(ch)); + while (win->_curx < x) { + if (wadd_wch_literal(win, blank) == ERR) + return (ERR); + } + break; + } else { + wclrtoeol(win); + win->_flags |= _WRAPPED; + if (newline_forces_scroll(win, &y)) { + x = win->_maxx; + if (win->_scroll) { + scroll(win); + x = 0; + } + } else { + x = 0; + } + } + break; + case '\n': + wclrtoeol(win); + if (newline_forces_scroll(win, &y)) { + if (win->_scroll) + scroll(win); + else + return (ERR); + } + /* FALLTHRU */ + case '\r': + x = 0; + win->_flags &= ~_WRAPPED; + break; + case '\b': + if (x == 0) + return (OK); + x--; + win->_flags &= ~_WRAPPED; + break; + default: + if ((s = wunctrl(&ch)) != 0) { + while (*s) { + cchar_t sch; + SetChar(sch, *s++, AttrOf(ch)); + if_EXT_COLORS(SetPair(sch, GetPair(ch))); + if (wadd_wch_literal(win, sch) == ERR) + return ERR; + } + return OK; + } + return ERR; + } + + win->_curx = x; + win->_cury = y; + + return OK; +} + +/* + * The versions below call _nc_synchook(). We wanted to avoid this in the + * version exported for string puts; they'll call _nc_synchook once at end + * of run. + */ + +/* These are actual entry points */ + +NCURSES_EXPORT(int) +wadd_wch(WINDOW *win, const cchar_t *wch) +{ + int code = ERR; + + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wadd_wch(%p, %s)"), + (void *) win, + _tracecchar_t(wch))); + + if (win && (wadd_wch_nosync(win, *wch) != ERR)) { + _nc_synchook(win); + code = OK; + } + + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); + return (code); +} + +NCURSES_EXPORT(int) +wecho_wchar(WINDOW *win, const cchar_t *wch) +{ + int code = ERR; + + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wechochar(%p, %s)"), + (void *) win, + _tracecchar_t(wch))); + + if (win && (wadd_wch_nosync(win, *wch) != ERR)) { + bool save_immed = win->_immed; + win->_immed = TRUE; + _nc_synchook(win); + win->_immed = save_immed; + code = OK; + } + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); + return (code); +} diff --git a/third_party/ncurses/lib_addch.c b/third_party/ncurses/lib_addch.c new file mode 100644 index 000000000..66c6610b4 --- /dev/null +++ b/third_party/ncurses/lib_addch.c @@ -0,0 +1,602 @@ +/**************************************************************************** + * Copyright 2019-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* +** lib_addch.c +** +** The routine waddch(). +** +*/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_addch.c,v 1.141 2022/06/12 15:16:41 tom Exp $") + +static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT); + +/* + * Ugly microtweaking alert. Everything from here to end of module is + * likely to be speed-critical -- profiling data sure says it is! + * Most of the important screen-painting functions are shells around + * waddch(). So we make every effort to reduce function-call overhead + * by inlining stuff, even at the cost of making wrapped copies for + * export. Also we supply some internal versions that don't call the + * window sync hook, for use by string-put functions. + */ + +/* Return bit mask for clearing color pair number if given ch has color */ +#define COLOR_MASK(ch) (~(attr_t)(((ch) & A_COLOR) ? A_COLOR : 0)) + +static NCURSES_INLINE NCURSES_CH_T +render_char(WINDOW *win, NCURSES_CH_T ch) +/* compute a rendition of the given char correct for the current context */ +{ + attr_t a = WINDOW_ATTRS(win); + int pair = GetPair(ch); + + if (ISBLANK(ch) + && AttrOf(ch) == A_NORMAL + && pair == 0) { + /* color/pair in attrs has precedence over bkgrnd */ + ch = win->_nc_bkgd; + SetAttr(ch, a | AttrOf(win->_nc_bkgd)); + if ((pair = GET_WINDOW_PAIR(win)) == 0) + pair = GetPair(win->_nc_bkgd); + SetPair(ch, pair); + } else { + /* color in attrs has precedence over bkgrnd */ + a |= AttrOf(win->_nc_bkgd) & COLOR_MASK(a); + /* color in ch has precedence */ + if (pair == 0) { + if ((pair = GET_WINDOW_PAIR(win)) == 0) + pair = GetPair(win->_nc_bkgd); + } + AddAttr(ch, (a & COLOR_MASK(AttrOf(ch)))); + SetPair(ch, pair); + } + + TR(TRACE_VIRTPUT, + ("render_char bkg %s (%d), attrs %s (%d) -> ch %s (%d)", + _tracech_t2(1, CHREF(win->_nc_bkgd)), + GetPair(win->_nc_bkgd), + _traceattr(WINDOW_ATTRS(win)), + GET_WINDOW_PAIR(win), + _tracech_t2(3, CHREF(ch)), + GetPair(ch))); + + return (ch); +} + +NCURSES_EXPORT(NCURSES_CH_T) +_nc_render(WINDOW *win, NCURSES_CH_T ch) +/* make render_char() visible while still allowing us to inline it below */ +{ + return render_char(win, ch); +} + +/* check if position is legal; if not, return error */ +#ifndef NDEBUG /* treat this like an assertion */ +#define CHECK_POSITION(win, x, y) \ + if (y > win->_maxy \ + || x > win->_maxx \ + || y < 0 \ + || x < 0) { \ + TR(TRACE_VIRTPUT, ("Alert! Win=%p _curx = %d, _cury = %d " \ + "(_maxx = %d, _maxy = %d)", win, x, y, \ + win->_maxx, win->_maxy)); \ + return(ERR); \ + } +#else +#define CHECK_POSITION(win, x, y) /* nothing */ +#endif + +static bool +newline_forces_scroll(WINDOW *win, NCURSES_SIZE_T *ypos) +{ + bool result = FALSE; + + if (*ypos >= win->_regtop && *ypos <= win->_regbottom) { + if (*ypos == win->_regbottom) { + *ypos = win->_regbottom; + result = TRUE; + } else if (*ypos < win->_maxy) { + *ypos = (NCURSES_SIZE_T) (*ypos + 1); + } + } else if (*ypos < win->_maxy) { + *ypos = (NCURSES_SIZE_T) (*ypos + 1); + } + return result; +} + +/* + * The _WRAPPED flag is useful only for telling an application that we've just + * wrapped the cursor. We don't do anything with this flag except set it when + * wrapping, and clear it whenever we move the cursor. If we try to wrap at + * the lower-right corner of a window, we cannot move the cursor (since that + * wouldn't be legal). So we return an error (which is what SVr4 does). + * Unlike SVr4, we can successfully add a character to the lower-right corner + * (Solaris 2.6 does this also, however). + */ +static int +wrap_to_next_line(WINDOW *win) +{ + win->_flags |= _WRAPPED; + if (newline_forces_scroll(win, &(win->_cury))) { + win->_curx = win->_maxx; + if (!win->_scroll) + return (ERR); + scroll(win); + } + win->_curx = 0; + return (OK); +} + +#if USE_WIDEC_SUPPORT +static int waddch_literal(WINDOW *, NCURSES_CH_T); +/* + * Fill the given number of cells with blanks using the current background + * rendition. This saves/restores the current x-position. + */ +static void +fill_cells(WINDOW *win, int count) +{ + NCURSES_CH_T blank = blankchar; + int save_x = win->_curx; + int save_y = win->_cury; + + while (count-- > 0) { + if (waddch_literal(win, blank) == ERR) + break; + } + win->_curx = (NCURSES_SIZE_T) save_x; + win->_cury = (NCURSES_SIZE_T) save_y; +} +#endif + +/* + * Build up the bytes for a multibyte character, returning the length when + * complete (a positive number), -1 for error and -2 for incomplete. + */ +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) +_nc_build_wch(WINDOW *win, ARG_CH_T ch) +{ + char *buffer = WINDOW_EXT(win, addch_work); + int len; + int x = win->_curx; + int y = win->_cury; + mbstate_t state; + wchar_t result; + + if ((WINDOW_EXT(win, addch_used) != 0) && + (WINDOW_EXT(win, addch_x) != x || + WINDOW_EXT(win, addch_y) != y)) { + /* discard the incomplete multibyte character */ + WINDOW_EXT(win, addch_used) = 0; + TR(TRACE_VIRTPUT, + ("Alert discarded multibyte on move (%d,%d) -> (%d,%d)", + WINDOW_EXT(win, addch_y), WINDOW_EXT(win, addch_x), + y, x)); + } + WINDOW_EXT(win, addch_x) = x; + WINDOW_EXT(win, addch_y) = y; + + /* + * If the background character is a wide-character, that may interfere with + * processing multibyte characters in this function. + */ + if (!is8bits(CharOf(CHDEREF(ch)))) { + if (WINDOW_EXT(win, addch_used) != 0) { + /* discard the incomplete multibyte character */ + WINDOW_EXT(win, addch_used) = 0; + TR(TRACE_VIRTPUT, + ("Alert discarded incomplete multibyte")); + } + return 1; + } + + init_mb(state); + buffer[WINDOW_EXT(win, addch_used)] = (char) CharOf(CHDEREF(ch)); + WINDOW_EXT(win, addch_used) += 1; + buffer[WINDOW_EXT(win, addch_used)] = '\0'; + if ((len = (int) mbrtowc(&result, + buffer, + (size_t) WINDOW_EXT(win, addch_used), + &state)) > 0) { + attr_t attrs = AttrOf(CHDEREF(ch)); + if_EXT_COLORS(int pair = GetPair(CHDEREF(ch))); + SetChar(CHDEREF(ch), result, attrs); + if_EXT_COLORS(SetPair(CHDEREF(ch), pair)); + WINDOW_EXT(win, addch_used) = 0; + } else if (len == -1) { + /* + * An error occurred. We could either discard everything, + * or assume that the error was in the previous input. + * Try the latter. + */ + TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error")); + /* handle this with unctrl() */ + WINDOW_EXT(win, addch_used) = 0; + } + return len; +} +#endif /* USE_WIDEC_SUPPORT */ + +static +#if !USE_WIDEC_SUPPORT /* cannot be inline if it is recursive */ +NCURSES_INLINE +#endif +int +waddch_literal(WINDOW *win, NCURSES_CH_T ch) +{ + int x; + int y; + struct ldat *line; + + x = win->_curx; + y = win->_cury; + + CHECK_POSITION(win, x, y); + + ch = render_char(win, ch); + + line = win->_line + y; + + CHANGED_CELL(line, x); + + /* + * Build up multibyte characters until we have a wide-character. + */ +#if NCURSES_SP_FUNCS +#define DeriveSP() SCREEN *sp = _nc_screen_of(win); +#else +#define DeriveSP() /*nothing */ +#endif + if_WIDEC({ + DeriveSP(); + if (WINDOW_EXT(win, addch_used) != 0 || !Charable(ch)) { + int len = _nc_build_wch(win, CHREF(ch)); + + if (len >= -1) { + attr_t attr = AttrOf(ch); + + /* handle EILSEQ (i.e., when len >= -1) */ + if (len == -1 && is8bits(CharOf(ch))) { + const char *s = NCURSES_SP_NAME(unctrl) + (NCURSES_SP_ARGx (chtype) CharOf(ch)); + + if (s[1] != '\0') { + int rc = OK; + while (*s != '\0') { + rc = waddch(win, UChar(*s) | attr); + if (rc != OK) + break; + ++s; + } + return rc; + } + } + if (len == -1) + return waddch(win, ' ' | attr); + } else { + return OK; + } + } + }); + + /* + * Non-spacing characters are added to the current cell. + * + * Spacing characters that are wider than one column require some display + * adjustments. + */ + if_WIDEC({ + int len = _nc_wacs_width(CharOf(ch)); + int i; + int j; + + if (len == 0) { /* non-spacing */ + if ((x > 0 && y >= 0) + || (win->_maxx >= 0 && win->_cury >= 1)) { + NCURSES_CH_T *dst; + wchar_t *chars; + if (x > 0 && y >= 0) { + for (j = x - 1; j >= 0; --j) { + if (!isWidecExt(win->_line[y].text[j])) { + win->_curx = (NCURSES_SIZE_T) j; + break; + } + } + dst = &(win->_line[y].text[j]); + } else { + dst = &(win->_line[y - 1].text[win->_maxx]); + } + chars = dst->chars; + for (i = 0; i < CCHARW_MAX; ++i) { + if (chars[i] == 0) { + TR(TRACE_VIRTPUT, + ("adding non-spacing %s (level %d)", + _tracech_t(CHREF(ch)), i)); + chars[i] = CharOf(ch); + break; + } + } + } + goto testwrapping; + } else if (len > 1) { /* multi-column characters */ + /* + * Check if the character will fit on the current line. If it does + * not fit, fill in the remainder of the line with blanks. and + * move to the next line. + */ + if (len > win->_maxx + 1) { + TR(TRACE_VIRTPUT, ("character will not fit")); + return ERR; + } else if (x + len > win->_maxx + 1) { + int count = win->_maxx + 1 - x; + TR(TRACE_VIRTPUT, ("fill %d remaining cells", count)); + fill_cells(win, count); + if (wrap_to_next_line(win) == ERR) + return ERR; + x = win->_curx; + y = win->_cury; + CHECK_POSITION(win, x, y); + line = win->_line + y; + } + /* + * Check for cells which are orphaned by adding this character, set + * those to blanks. + * + * FIXME: this actually could fill j-i cells, more complicated to + * setup though. + */ + for (i = 0; i < len; ++i) { + if (isWidecBase(win->_line[y].text[x + i])) { + break; + } else if (isWidecExt(win->_line[y].text[x + i])) { + for (j = i; x + j <= win->_maxx; ++j) { + if (!isWidecExt(win->_line[y].text[x + j])) { + TR(TRACE_VIRTPUT, ("fill %d orphan cells", j)); + fill_cells(win, j); + break; + } + } + break; + } + } + /* + * Finally, add the cells for this character. + */ + for (i = 0; i < len; ++i) { + NCURSES_CH_T value = ch; + SetWidecExt(value, i); + TR(TRACE_VIRTPUT, ("multicolumn %d:%d (%d,%d)", + i + 1, len, + win->_begy + y, win->_begx + x)); + line->text[x] = value; + CHANGED_CELL(line, x); + ++x; + } + goto testwrapping; + } + }); + + /* + * Single-column characters. + */ + line->text[x++] = ch; + /* + * This label is used only for wide-characters. + */ + if_WIDEC( + testwrapping: + ); + + TR(TRACE_VIRTPUT, ("cell (%d, %d..%d) = %s", + win->_cury, win->_curx, x - 1, + _tracech_t(CHREF(line->text[win->_curx])))); + + if (x > win->_maxx) { + return wrap_to_next_line(win); + } + win->_curx = (NCURSES_SIZE_T) x; + return OK; +} + +static NCURSES_INLINE int +waddch_nosync(WINDOW *win, const NCURSES_CH_T ch) +/* the workhorse function -- add a character to the given window */ +{ + NCURSES_SIZE_T x, y; + chtype t = (chtype) CharOf(ch); +#if USE_WIDEC_SUPPORT || NCURSES_SP_FUNCS || USE_REENTRANT + SCREEN *sp = _nc_screen_of(win); +#endif + const char *s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx t); + int tabsize = 8; + + /* + * If we are using the alternate character set, forget about locale. + * Otherwise, if unctrl() returns a single-character or the locale + * claims the code is printable (and not also a control character), + * treat it that way. + */ + if ((AttrOf(ch) & A_ALTCHARSET) + || ( +#if USE_WIDEC_SUPPORT + (sp != 0 && sp->_legacy_coding) && +#endif + s[1] == 0 + ) + || ( + (isprint((int) t) && !iscntrl((int) t)) +#if USE_WIDEC_SUPPORT + || ((sp == 0 || !sp->_legacy_coding) && + (WINDOW_EXT(win, addch_used) + || !_nc_is_charable(CharOf(ch)))) +#endif + )) { + return waddch_literal(win, ch); + } + + /* + * Handle carriage control and other codes that are not printable, or are + * known to expand to more than one character according to unctrl(). + */ + x = win->_curx; + y = win->_cury; + CHECK_POSITION(win, x, y); + + switch (t) { + case '\t': +#if USE_REENTRANT + tabsize = *ptrTabsize(sp); +#else + tabsize = TABSIZE; +#endif + x = (NCURSES_SIZE_T) (x + (tabsize - (x % tabsize))); + /* + * Space-fill the tab on the bottom line so that we'll get the + * "correct" cursor position. + */ + if ((!win->_scroll && (y == win->_regbottom)) + || (x <= win->_maxx)) { + NCURSES_CH_T blank = blankchar; + AddAttr(blank, AttrOf(ch)); + while (win->_curx < x) { + if (waddch_literal(win, blank) == ERR) + return (ERR); + } + break; + } else { + wclrtoeol(win); + win->_flags |= _WRAPPED; + if (newline_forces_scroll(win, &y)) { + x = win->_maxx; + if (win->_scroll) { + scroll(win); + x = 0; + } + } else { + x = 0; + } + } + break; + case '\n': + wclrtoeol(win); + if (newline_forces_scroll(win, &y)) { + if (win->_scroll) + scroll(win); + else + return (ERR); + } + /* FALLTHRU */ + case '\r': + x = 0; + win->_flags &= ~_WRAPPED; + break; + case '\b': + if (x == 0) + return (OK); + x--; + win->_flags &= ~_WRAPPED; + break; + default: + while (*s) { + NCURSES_CH_T sch; + SetChar(sch, UChar(*s++), AttrOf(ch)); + if_EXT_COLORS(SetPair(sch, GetPair(ch))); + if (waddch_literal(win, sch) == ERR) + return ERR; + } + return (OK); + } + + win->_curx = x; + win->_cury = y; + + return (OK); +} + +NCURSES_EXPORT(int) +_nc_waddch_nosync(WINDOW *win, const NCURSES_CH_T c) +/* export copy of waddch_nosync() so the string-put functions can use it */ +{ + return (waddch_nosync(win, c)); +} + +/* + * The versions below call _nc_synchook(). We wanted to avoid this in the + * version exported for string puts; they'll call _nc_synchook once at end + * of run. + */ + +/* These are actual entry points */ + +NCURSES_EXPORT(int) +waddch(WINDOW *win, const chtype ch) +{ + int code = ERR; + NCURSES_CH_T wch; + SetChar2(wch, ch); + + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("waddch(%p, %s)"), (void *) win, + _tracechtype(ch))); + + if (win && (waddch_nosync(win, wch) != ERR)) { + _nc_synchook(win); + code = OK; + } + + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); + return (code); +} + +NCURSES_EXPORT(int) +wechochar(WINDOW *win, const chtype ch) +{ + int code = ERR; + NCURSES_CH_T wch; + SetChar2(wch, ch); + + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wechochar(%p, %s)"), + (void *) win, + _tracechtype(ch))); + + if (win && (waddch_nosync(win, wch) != ERR)) { + bool save_immed = win->_immed; + win->_immed = TRUE; + _nc_synchook(win); + win->_immed = save_immed; + code = OK; + } + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); + return (code); +} diff --git a/third_party/ncurses/lib_addstr.c b/third_party/ncurses/lib_addstr.c new file mode 100644 index 000000000..f1c4136b5 --- /dev/null +++ b/third_party/ncurses/lib_addstr.c @@ -0,0 +1,255 @@ +/**************************************************************************** + * Copyright 2019-2020,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * * + * Rewritten 2001-2004 to support wide-characters by * + * Sven Verdoolaege * + * Thomas Dickey * + ****************************************************************************/ + +/* +** lib_addstr.c +* +** The routines waddnstr(), waddchnstr(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_addstr.c,v 1.58 2022/06/11 20:12:04 tom Exp $") + +NCURSES_EXPORT(int) +waddnstr(WINDOW *win, const char *astr, int n) +{ + const char *str = astr; + int code = ERR; + + T((T_CALLED("waddnstr(%p,%s,%d)"), (void *) win, _nc_visbufn(astr, n), n)); + + if (win && (str != 0)) { + TR(TRACE_VIRTPUT | TRACE_ATTRS, + ("... current %s", _traceattr(WINDOW_ATTRS(win)))); + code = OK; + + TR(TRACE_VIRTPUT, ("str is not null, length = %d", + ((n > 0) ? n : (int) strlen(str)))); + if (n < 0) + n = INT_MAX; + while ((*str != '\0') && (n-- > 0)) { + NCURSES_CH_T ch; + TR(TRACE_VIRTPUT, ("*str = %#o", UChar(*str))); + SetChar(ch, UChar(*str++), A_NORMAL); + if (_nc_waddch_nosync(win, ch) == ERR) { + code = ERR; + break; + } + } + _nc_synchook(win); + } + TR(TRACE_VIRTPUT, ("waddnstr returns %d", code)); + returnCode(code); +} + +NCURSES_EXPORT(int) +waddchnstr(WINDOW *win, const chtype *astr, int n) +{ + NCURSES_SIZE_T y, x; + int code = OK; + int i; + struct ldat *line; + + T((T_CALLED("waddchnstr(%p,%p,%d)"), (void *) win, (const void *) astr, n)); + + if (!win || !astr) + returnCode(ERR); + + y = win->_cury; + x = win->_curx; + if (n < 0) { + const chtype *str; + n = 0; + for (str = (const chtype *) astr; *str != 0; str++) + n++; + } + if (n > win->_maxx - x + 1) + n = win->_maxx - x + 1; + if (n == 0) + returnCode(code); + + line = &(win->_line[y]); + for (i = 0; i < n && ChCharOf(astr[i]) != '\0'; ++i) { + SetChar2(line->text[i + x], astr[i]); + } + CHANGED_RANGE(line, x, (NCURSES_SIZE_T) (x + n - 1)); + + _nc_synchook(win); + returnCode(code); +} + +#if USE_WIDEC_SUPPORT + +NCURSES_EXPORT(int) +_nc_wchstrlen(const cchar_t *s) +{ + int result = 0; + if (s != 0) { + while (CharOf(s[result]) != L'\0') { + result++; + } + } + return result; +} + +NCURSES_EXPORT(int) +wadd_wchnstr(WINDOW *win, const cchar_t *astr, int n) +{ + static const NCURSES_CH_T blank = NewChar(BLANK_TEXT); + NCURSES_SIZE_T y; + NCURSES_SIZE_T x; + int code = OK; + struct ldat *line; + int i, j, start, len, end; + + T((T_CALLED("wadd_wchnstr(%p,%s,%d)"), + (void *) win, + _nc_viscbuf(astr, n), + n)); + + if (!win) + returnCode(ERR); + + y = win->_cury; + x = win->_curx; + if (n < 0) { + n = _nc_wchstrlen(astr); + } + if (n > win->_maxx - x + 1) + n = win->_maxx - x + 1; + if (n == 0) + returnCode(code); + + line = &(win->_line[y]); + start = x; + end = x + n - 1; + + /* + * Reset orphaned cells of multi-column characters that extend up to the + * new string's location to blanks. + */ + if (x > 0 && isWidecExt(line->text[x])) { + for (i = 0; i <= x; ++i) { + if (!isWidecExt(line->text[x - i])) { + /* must be isWidecBase() */ + start -= i; + while (i > 0) { + line->text[x - i--] = _nc_render(win, blank); + } + break; + } + } + } + + /* + * Copy the new string to the window. + */ + for (i = 0; i < n && CharOf(astr[i]) != L'\0' && x <= win->_maxx; ++i) { + if (isWidecExt(astr[i])) + continue; + + len = _nc_wacs_width(CharOf(astr[i])); + + if (x + len - 1 <= win->_maxx) { + line->text[x] = _nc_render(win, astr[i]); + if (len > 1) { + for (j = 0; j < len; ++j) { + if (j != 0) { + line->text[x + j] = line->text[x]; + } + SetWidecExt(line->text[x + j], j); + } + } else { + len = 1; + } + x = (NCURSES_SIZE_T) (x + len); + end += len - 1; + } else { + break; + } + } + + /* + * Set orphaned cells of multi-column characters which lie after the new + * string to blanks. + */ + while (x <= win->_maxx && isWidecExt(line->text[x])) { + line->text[x] = _nc_render(win, blank); + ++end; + ++x; + } + CHANGED_RANGE(line, start, end); + + _nc_synchook(win); + returnCode(code); +} + +NCURSES_EXPORT(int) +waddnwstr(WINDOW *win, const wchar_t *str, int n) +{ + int code = ERR; + + T((T_CALLED("waddnwstr(%p,%s,%d)"), (void *) win, _nc_viswbufn(str, n), n)); + + if (win && (str != 0)) { + TR(TRACE_VIRTPUT | TRACE_ATTRS, + ("... current %s", _traceattr(WINDOW_ATTRS(win)))); + code = OK; + + TR(TRACE_VIRTPUT, ("str is not null, length = %d", + ((n > 0) ? n : (int) wcslen(str)))); + if (n < 0) + n = INT_MAX; + while ((*str != L('\0')) && (n-- > 0)) { + NCURSES_CH_T ch; + TR(TRACE_VIRTPUT, ("*str[0] = %#lx", (unsigned long) *str)); + SetChar(ch, *str++, A_NORMAL); + if (wadd_wch(win, &ch) == ERR) { + code = ERR; + break; + } + } + _nc_synchook(win); + } + TR(TRACE_VIRTPUT, ("waddnwstr returns %d", code)); + returnCode(code); +} + +#endif diff --git a/third_party/ncurses/lib_baudrate.c b/third_party/ncurses/lib_baudrate.c new file mode 100644 index 000000000..a0b0ae084 --- /dev/null +++ b/third_party/ncurses/lib_baudrate.c @@ -0,0 +1,317 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * lib_baudrate.c + * + */ + +#include "curses.priv.h" +#include "termcap.h" /* ospeed */ +#if defined(__FreeBSD__) || defined(__OpenBSD__) +#include +#endif + +/* + * These systems use similar header files, which define B1200 as 1200, etc., + * but can be overridden by defining USE_OLD_TTY so B1200 is 9, which makes all + * of the indices up to B115200 fit nicely in a 'short', allowing us to retain + * ospeed's type for compatibility. + */ +#if NCURSES_OSPEED_COMPAT && \ + ((defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || \ + defined(__NetBSD__) || \ + ((defined(__OpenBSD__) && OpenBSD < 201510)) || \ + defined(__APPLE__)) +#undef B0 +#undef B50 +#undef B75 +#undef B110 +#undef B134 +#undef B150 +#undef B200 +#undef B300 +#undef B600 +#undef B1200 +#undef B1800 +#undef B2400 +#undef B4800 +#undef B9600 +#undef B19200 +#undef EXTA +#undef B38400 +#undef EXTB +#undef B57600 +#undef B115200 +#undef B230400 +#undef B460800 +#undef B921600 +#define USE_OLD_TTY +#include +#else +#undef USE_OLD_TTY +#endif /* USE_OLD_TTY */ + +MODULE_ID("$Id: lib_baudrate.c,v 1.45 2020/09/05 21:15:32 tom Exp $") + +/* + * int + * baudrate() + * + * Returns the current terminal's baud rate. + * + */ + +struct speed { + int given_speed; /* values for 'ospeed' */ + int actual_speed; /* the actual speed */ +}; + +#if !defined(EXP_WIN32_DRIVER) +#define DATA(number) { B##number, number } + +static struct speed speeds[] = +{ + DATA(0), + DATA(50), + DATA(75), + DATA(110), + DATA(134), + DATA(150), + DATA(200), + DATA(300), + DATA(600), + DATA(1200), + DATA(1800), + DATA(2400), + DATA(4800), + DATA(9600), +#ifdef B19200 + DATA(19200), +#elif defined(EXTA) + {EXTA, 19200}, +#endif +#ifdef B28800 + DATA(28800), +#endif +#ifdef B38400 + DATA(38400), +#elif defined(EXTB) + {EXTB, 38400}, +#endif +#ifdef B57600 + DATA(57600), +#endif + /* ifdef to prevent overflow when OLD_TTY is not available */ +#if !(NCURSES_OSPEED_COMPAT && defined(__FreeBSD__) && (__FreeBSD_version > 700000)) +#ifdef B76800 + DATA(76800), +#endif +#ifdef B115200 + DATA(115200), +#endif +#ifdef B153600 + DATA(153600), +#endif +#ifdef B230400 + DATA(230400), +#endif +#ifdef B307200 + DATA(307200), +#endif +#ifdef B460800 + DATA(460800), +#endif +#ifdef B500000 + DATA(500000), +#endif +#ifdef B576000 + DATA(576000), +#endif +#ifdef B921600 + DATA(921600), +#endif +#ifdef B1000000 + DATA(1000000), +#endif +#ifdef B1152000 + DATA(1152000), +#endif +#ifdef B1500000 + DATA(1500000), +#endif +#ifdef B2000000 + DATA(2000000), +#endif +#ifdef B2500000 + DATA(2500000), +#endif +#ifdef B3000000 + DATA(3000000), +#endif +#ifdef B3500000 + DATA(3500000), +#endif +#ifdef B4000000 + DATA(4000000), +#endif +#endif +}; +#endif /* !EXP_WIN32_DRIVER */ + +NCURSES_EXPORT(int) +_nc_baudrate(int OSpeed) +{ +#if defined(EXP_WIN32_DRIVER) + /* On Windows this is a noop */ + (void) OSpeed; + return (OK); +#else +#if !USE_REENTRANT + static int last_OSpeed; + static int last_baudrate; +#endif + + int result = ERR; + + if (OSpeed < 0) + OSpeed = (NCURSES_OSPEED) OSpeed; + if (OSpeed < 0) + OSpeed = (unsigned short) OSpeed; +#if !USE_REENTRANT + if (OSpeed == last_OSpeed) { + result = last_baudrate; + } +#endif + if (result == ERR) { + if (OSpeed >= 0) { + unsigned i; + + for (i = 0; i < SIZEOF(speeds); i++) { + if (speeds[i].given_speed > OSpeed) { + break; + } + if (speeds[i].given_speed == OSpeed) { + result = speeds[i].actual_speed; + break; + } + } + } +#if !USE_REENTRANT + if (OSpeed != last_OSpeed) { + last_OSpeed = OSpeed; + last_baudrate = result; + } +#endif + } + return (result); +#endif /* !EXP_WIN32_DRIVER */ +} + +NCURSES_EXPORT(int) +_nc_ospeed(int BaudRate) +{ + int result = 1; +#if defined(EXP_WIN32_DRIVER) + (void) BaudRate; +#else + if (BaudRate >= 0) { + unsigned i; + + for (i = 0; i < SIZEOF(speeds); i++) { + if (speeds[i].actual_speed == BaudRate) { + result = speeds[i].given_speed; + break; + } + } + } +#endif + return (result); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(baudrate) (NCURSES_SP_DCL0) +{ + int result; + + T((T_CALLED("baudrate(%p)"), (void *) SP_PARM)); + +#if defined(EXP_WIN32_DRIVER) + result = OK; +#else + /* + * In debugging, allow the environment symbol to override when we're + * redirecting to a file, so we can construct repeatable test-cases + * that take into account costs that depend on baudrate. + */ +#ifdef TRACE + if (IsValidTIScreen(SP_PARM) + && !NC_ISATTY(fileno((SP_PARM && SP_PARM->_ofp) ? SP_PARM->_ofp : stdout)) + && getenv("BAUDRATE") != 0) { + int ret; + if ((ret = _nc_getenv_num("BAUDRATE")) <= 0) + ret = 9600; + ospeed = (NCURSES_OSPEED) _nc_ospeed(ret); + returnCode(ret); + } +#endif + + if (IsValidTIScreen(SP_PARM)) { +#ifdef USE_OLD_TTY + result = (int) cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb)); + ospeed = (NCURSES_OSPEED) _nc_ospeed(result); +#else /* !USE_OLD_TTY */ +#ifdef TERMIOS + ospeed = (NCURSES_OSPEED) cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb)); +#else + ospeed = (NCURSES_OSPEED) TerminalOf(SP_PARM)->Nttyb.sg_ospeed; +#endif + result = _nc_baudrate(ospeed); +#endif + TerminalOf(SP_PARM)->_baudrate = result; + } else { + result = ERR; + } +#endif /* !EXP_WIN32_DRIVER */ + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +baudrate(void) +{ + return NCURSES_SP_NAME(baudrate) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_beep.c b/third_party/ncurses/lib_beep.c new file mode 100644 index 000000000..5ebf326dc --- /dev/null +++ b/third_party/ncurses/lib_beep.c @@ -0,0 +1,91 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * beep.c + * + * The routine beep(). + * + */ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_beep.c,v 1.18 2020/02/02 23:34:34 tom Exp $") + +/* + * beep() + * + * Sound the current terminal's audible bell if it has one. If not, + * flash the screen if possible. + * + */ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(beep) (NCURSES_SP_DCL0) +{ + int res = ERR; + + T((T_CALLED("beep(%p)"), (void *) SP_PARM)); + +#ifdef USE_TERM_DRIVER + if (SP_PARM != 0) + res = CallDriver_1(SP_PARM, td_doBeepOrFlash, TRUE); +#else + /* FIXME: should make sure that we are not in altchar mode */ + if (cur_term == 0) { + res = ERR; + } else if (bell) { + res = NCURSES_PUTP2_FLUSH("bell", bell); + } else if (flash_screen) { + res = NCURSES_PUTP2_FLUSH("flash_screen", flash_screen); + _nc_flush(); + } +#endif + + returnCode(res); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +beep(void) +{ + return NCURSES_SP_NAME(beep) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_bkgd.c b/third_party/ncurses/lib_bkgd.c new file mode 100644 index 000000000..cdaff88bf --- /dev/null +++ b/third_party/ncurses/lib_bkgd.c @@ -0,0 +1,273 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2014,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Juergen Pfeifer 1997 * + * and: Sven Verdoolaege 2000 * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_bkgd.c,v 1.63 2021/05/08 14:58:12 tom Exp $") + +static const NCURSES_CH_T blank = NewChar(BLANK_TEXT); + +/* + * Set the window's background information. + */ +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(void) +#else +static NCURSES_INLINE void +#endif +wbkgrndset(WINDOW *win, const ARG_CH_T ch) +{ + T((T_CALLED("wbkgrndset(%p,%s)"), (void *) win, _tracech_t(ch))); + + if (win) { + attr_t off = AttrOf(win->_nc_bkgd); + attr_t on = AttrOf(CHDEREF(ch)); + + toggle_attr_off(WINDOW_ATTRS(win), off); + toggle_attr_on(WINDOW_ATTRS(win), on); + +#if NCURSES_EXT_COLORS + { + int pair; + + if (GetPair(win->_nc_bkgd) != 0) + SET_WINDOW_PAIR(win, 0); + if ((pair = GetPair(CHDEREF(ch))) != 0) + SET_WINDOW_PAIR(win, pair); + } +#endif + + if (CharOf(CHDEREF(ch)) == L('\0')) { + SetChar(win->_nc_bkgd, BLANK_TEXT, AttrOf(CHDEREF(ch))); + if_EXT_COLORS(SetPair(win->_nc_bkgd, GetPair(CHDEREF(ch)))); + } else { + win->_nc_bkgd = CHDEREF(ch); + } +#if USE_WIDEC_SUPPORT + /* + * If we're compiled for wide-character support, _bkgrnd is the + * preferred location for the background information since it stores + * more than _bkgd. Update _bkgd each time we modify _bkgrnd, so the + * macro getbkgd() will work. + */ + { + cchar_t wch; + int tmp; + + memset(&wch, 0, sizeof(wch)); + (void) wgetbkgrnd(win, &wch); + tmp = _nc_to_char((wint_t) CharOf(wch)); + + win->_bkgd = (((tmp == EOF) ? ' ' : (chtype) tmp) + | (AttrOf(wch) & ALL_BUT_COLOR) + | (chtype) ColorPair(GET_WINDOW_PAIR(win))); + } +#endif + } + returnVoid; +} + +NCURSES_EXPORT(void) +wbkgdset(WINDOW *win, chtype ch) +{ + NCURSES_CH_T wch; + T((T_CALLED("wbkgdset(%p,%s)"), (void *) win, _tracechtype(ch))); + SetChar2(wch, ch); + wbkgrndset(win, CHREF(wch)); + returnVoid; +} + +/* + * Set the window's background information and apply it to each cell. + */ +static NCURSES_INLINE int +_nc_background(WINDOW *win, const ARG_CH_T ch, bool narrow) +{ +#undef SP_PARM +#define SP_PARM SP /* to use Charable() */ + int code = ERR; + +#if USE_WIDEC_SUPPORT + T((T_CALLED("%s(%p,%s)"), + narrow ? "wbkgd" : "wbkgrnd", + (void *) win, + _tracecchar_t(ch))); +#define TraceChar(c) _tracecchar_t2(1, &(c)) +#else + T((T_CALLED("%s(%p,%s)"), + "wbkgd", + (void *) win, + _tracech_t(ch))); + (void) narrow; +#define TraceChar(c) _tracechar(CharOf(c)) +#endif + + if (SP == 0) { + ; + } else if (win) { + NCURSES_CH_T new_bkgd = CHDEREF(ch); + NCURSES_CH_T old_bkgd; + int y; + NCURSES_CH_T old_char; + attr_t old_attr; + int old_pair; + NCURSES_CH_T new_char; + attr_t new_attr; + int new_pair; + + /* SVr4 trims color info if non-color terminal */ + if (!SP->_pair_limit) { + RemAttr(new_bkgd, A_COLOR); + SetPair(new_bkgd, 0); + } + + /* avoid setting background-character to a null */ + if (CharOf(new_bkgd) == 0) { + NCURSES_CH_T tmp_bkgd = blank; + SetAttr(tmp_bkgd, AttrOf(new_bkgd)); + SetPair(tmp_bkgd, GetPair(new_bkgd)); + new_bkgd = tmp_bkgd; + } + + memset(&old_bkgd, 0, sizeof(old_bkgd)); + (void) wgetbkgrnd(win, &old_bkgd); + + if (!memcmp(&old_bkgd, &new_bkgd, sizeof(new_bkgd))) { + T(("...unchanged")); + returnCode(OK); + } + + old_char = old_bkgd; + RemAttr(old_char, ~A_CHARTEXT); + old_attr = AttrOf(old_bkgd); + old_pair = GetPair(old_bkgd); + + if (!(old_attr & A_COLOR)) { + old_pair = 0; + } + T(("... old background char %s, attr %s, pair %d", + TraceChar(old_char), _traceattr(old_attr), old_pair)); + + new_char = new_bkgd; + RemAttr(new_char, ~A_CHARTEXT); + new_attr = AttrOf(new_bkgd); + new_pair = GetPair(new_bkgd); + + /* SVr4 limits background character to printable 7-bits */ + if ( +#if USE_WIDEC_SUPPORT + narrow && +#endif + !Charable(new_bkgd)) { + new_char = old_char; + } + if (!(new_attr & A_COLOR)) { + new_pair = 0; + } + T(("... new background char %s, attr %s, pair %d", + TraceChar(new_char), _traceattr(new_attr), new_pair)); + + (void) wbkgrndset(win, CHREF(new_bkgd)); + + /* SVr4 updates color pair if old/new match, otherwise just attrs */ + if ((new_pair != 0) && (new_pair == old_pair)) { + WINDOW_ATTRS(win) = new_attr; + SET_WINDOW_PAIR(win, new_pair); + } else { + WINDOW_ATTRS(win) = new_attr; + } + + for (y = 0; y <= win->_maxy; y++) { + int x; + + for (x = 0; x <= win->_maxx; x++) { + NCURSES_CH_T *cp = &(win->_line[y].text[x]); + int tmp_pair = GetPair(*cp); + attr_t tmp_attr = AttrOf(*cp); + + if (CharEq(*cp, old_bkgd)) { +#if USE_WIDEC_SUPPORT + if (!narrow) { + if (Charable(new_bkgd)) { + SetChar2(*cp, CharOf(new_char)); + } else { + SetChar(*cp, L' ', AttrOf(new_char)); + } + memcpy(cp->chars, + new_char.chars, + CCHARW_MAX * sizeof(cp->chars[0])); + } else +#endif + SetChar2(*cp, CharOf(new_char)); + } + if (tmp_pair != 0) { + if (tmp_pair == old_pair) { + SetAttr(*cp, (tmp_attr & ~old_attr) | new_attr); + SetPair(*cp, new_pair); + } else { + SetAttr(*cp, + (tmp_attr & (~old_attr | A_COLOR)) + | (new_attr & ALL_BUT_COLOR)); + } + } else { + SetAttr(*cp, (tmp_attr & ~old_attr) | new_attr); + SetPair(*cp, new_pair); + } + } + } + touchwin(win); + _nc_synchook(win); + code = OK; + } + returnCode(code); +} + +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) +wbkgrnd(WINDOW *win, const ARG_CH_T ch) +{ + return _nc_background(win, ch, FALSE); +} +#endif + +NCURSES_EXPORT(int) +wbkgd(WINDOW *win, chtype ch) +{ + NCURSES_CH_T wch; + SetChar2(wch, ch); + return _nc_background(win, CHREF(wch), TRUE); +} diff --git a/third_party/ncurses/lib_box.c b/third_party/ncurses/lib_box.c new file mode 100644 index 000000000..3348bb2ac --- /dev/null +++ b/third_party/ncurses/lib_box.c @@ -0,0 +1,140 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2010,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Sven Verdoolaege 2001 * + ****************************************************************************/ + +/* +** lib_box.c +** +** The routine wborder(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_box.c,v 1.26 2020/02/02 23:34:34 tom Exp $") + +#if USE_WIDEC_SUPPORT +static NCURSES_INLINE chtype +_my_render(WINDOW *win, chtype ch) +{ + NCURSES_CH_T wch; + SetChar2(wch, ch); + wch = _nc_render(win, wch); + return ((attr_t) CharOf(wch)) | AttrOf(wch); +} + +#define RENDER_WITH_DEFAULT(ch,def) w ## ch = _my_render(win, (ch == 0) ? def : ch) +#else +#define RENDER_WITH_DEFAULT(ch,def) w ## ch = _nc_render(win, (ch == 0) ? def : ch) +#endif + +NCURSES_EXPORT(int) +wborder(WINDOW *win, + chtype ls, chtype rs, + chtype ts, chtype bs, + chtype tl, chtype tr, + chtype bl, chtype br) +{ + NCURSES_SIZE_T i; + NCURSES_SIZE_T endx, endy; + chtype wls, wrs, wts, wbs, wtl, wtr, wbl, wbr; + + T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"), + (void *) win, + _tracechtype2(1, ls), + _tracechtype2(2, rs), + _tracechtype2(3, ts), + _tracechtype2(4, bs), + _tracechtype2(5, tl), + _tracechtype2(6, tr), + _tracechtype2(7, bl), + _tracechtype2(8, br))); + + if (!win) + returnCode(ERR); + + RENDER_WITH_DEFAULT(ls, ACS_VLINE); + RENDER_WITH_DEFAULT(rs, ACS_VLINE); + RENDER_WITH_DEFAULT(ts, ACS_HLINE); + RENDER_WITH_DEFAULT(bs, ACS_HLINE); + RENDER_WITH_DEFAULT(tl, ACS_ULCORNER); + RENDER_WITH_DEFAULT(tr, ACS_URCORNER); + RENDER_WITH_DEFAULT(bl, ACS_LLCORNER); + RENDER_WITH_DEFAULT(br, ACS_LRCORNER); + + T(("using %s, %s, %s, %s, %s, %s, %s, %s", + _tracechtype2(1, wls), + _tracechtype2(2, wrs), + _tracechtype2(3, wts), + _tracechtype2(4, wbs), + _tracechtype2(5, wtl), + _tracechtype2(6, wtr), + _tracechtype2(7, wbl), + _tracechtype2(8, wbr))); + + endx = win->_maxx; + endy = win->_maxy; + + for (i = 0; i <= endx; i++) { + SetChar2(win->_line[0].text[i], wts); + SetChar2(win->_line[endy].text[i], wbs); + } + win->_line[endy].firstchar = win->_line[0].firstchar = 0; + win->_line[endy].lastchar = win->_line[0].lastchar = endx; + + for (i = 0; i <= endy; i++) { +#if USE_WIDEC_SUPPORT + if (endx > 0 && isWidecExt(win->_line[i].text[endx])) { + SetChar2(win->_line[i].text[endx - 1], ' '); + } +#endif + SetChar2(win->_line[i].text[0], wls); + SetChar2(win->_line[i].text[endx], wrs); + win->_line[i].firstchar = 0; + win->_line[i].lastchar = endx; +#if USE_WIDEC_SUPPORT + if (isWidecExt(win->_line[i].text[1])) { + SetChar2(win->_line[i].text[1], ' '); + } +#endif + } + SetChar2(win->_line[0].text[0], wtl); + SetChar2(win->_line[0].text[endx], wtr); + SetChar2(win->_line[endy].text[0], wbl); + SetChar2(win->_line[endy].text[endx], wbr); + + _nc_synchook(win); + returnCode(OK); +} diff --git a/third_party/ncurses/lib_box_set.c b/third_party/ncurses/lib_box_set.c new file mode 100644 index 000000000..21c39f51d --- /dev/null +++ b/third_party/ncurses/lib_box_set.c @@ -0,0 +1,114 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2002-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Authors: Sven Verdoolaege and Thomas Dickey 2001,2002 * + ****************************************************************************/ + +/* +** lib_box_set.c +** +** The routine wborder_set(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_box_set.c,v 1.7 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wborder_set(WINDOW *win, + const ARG_CH_T ls, const ARG_CH_T rs, + const ARG_CH_T ts, const ARG_CH_T bs, + const ARG_CH_T tl, const ARG_CH_T tr, + const ARG_CH_T bl, const ARG_CH_T br) +{ + NCURSES_SIZE_T i; + NCURSES_SIZE_T endx, endy; + NCURSES_CH_T wls, wrs, wts, wbs, wtl, wtr, wbl, wbr; + + T((T_CALLED("wborder_set(%p,%s,%s,%s,%s,%s,%s,%s,%s)"), + (void *) win, + _tracech_t2(1, ls), + _tracech_t2(2, rs), + _tracech_t2(3, ts), + _tracech_t2(4, bs), + _tracech_t2(5, tl), + _tracech_t2(6, tr), + _tracech_t2(7, bl), + _tracech_t2(8, br))); + + if (!win) + returnCode(ERR); + +#define RENDER_WITH_DEFAULT(ch,def) w ##ch = _nc_render(win, (ch == 0) ? *(const ARG_CH_T)def : *ch) + + RENDER_WITH_DEFAULT(ls, WACS_VLINE); + RENDER_WITH_DEFAULT(rs, WACS_VLINE); + RENDER_WITH_DEFAULT(ts, WACS_HLINE); + RENDER_WITH_DEFAULT(bs, WACS_HLINE); + RENDER_WITH_DEFAULT(tl, WACS_ULCORNER); + RENDER_WITH_DEFAULT(tr, WACS_URCORNER); + RENDER_WITH_DEFAULT(bl, WACS_LLCORNER); + RENDER_WITH_DEFAULT(br, WACS_LRCORNER); + + T(("using %s, %s, %s, %s, %s, %s, %s, %s", + _tracech_t2(1, CHREF(wls)), + _tracech_t2(2, CHREF(wrs)), + _tracech_t2(3, CHREF(wts)), + _tracech_t2(4, CHREF(wbs)), + _tracech_t2(5, CHREF(wtl)), + _tracech_t2(6, CHREF(wtr)), + _tracech_t2(7, CHREF(wbl)), + _tracech_t2(8, CHREF(wbr)))); + + endx = win->_maxx; + endy = win->_maxy; + + for (i = 0; i <= endx; i++) { + win->_line[0].text[i] = wts; + win->_line[endy].text[i] = wbs; + } + win->_line[endy].firstchar = win->_line[0].firstchar = 0; + win->_line[endy].lastchar = win->_line[0].lastchar = endx; + + for (i = 0; i <= endy; i++) { + win->_line[i].text[0] = wls; + win->_line[i].text[endx] = wrs; + win->_line[i].firstchar = 0; + win->_line[i].lastchar = endx; + } + win->_line[0].text[0] = wtl; + win->_line[0].text[endx] = wtr; + win->_line[endy].text[0] = wbl; + win->_line[endy].text[endx] = wbr; + + _nc_synchook(win); + returnCode(OK); +} diff --git a/third_party/ncurses/lib_cchar.c b/third_party/ncurses/lib_cchar.c new file mode 100644 index 000000000..9d5ac544b --- /dev/null +++ b/third_party/ncurses/lib_cchar.c @@ -0,0 +1,158 @@ +/**************************************************************************** + * Copyright 2019-2021,2022 Thomas E. Dickey * + * Copyright 2001-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* +** lib_cchar.c +** +** The routines setcchar() and getcchar(). +** +*/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_cchar.c,v 1.38 2022/07/27 08:03:16 tom Exp $") + +/* + * The SuSv2 description leaves some room for interpretation. We'll assume wch + * points to a string which is L'\0' terminated, contains at least one + * character with strictly positive width, which must be the first, and + * contains no characters of negative width. + */ +NCURSES_EXPORT(int) +setcchar(cchar_t *wcval, + const wchar_t *wch, + const attr_t attrs, + NCURSES_PAIRS_T pair_arg, + const void *opts) +{ + int code = OK; + int color_pair = pair_arg; + unsigned len; + + TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,attrs=%lu,pair=%d,%p)"), + (void *) wcval, _nc_viswbuf(wch), + (unsigned long) attrs, color_pair, opts)); + + set_extended_pair(opts, color_pair); + if (wch == NULL + || ((len = (unsigned) wcslen(wch)) > 1 && _nc_wacs_width(wch[0]) < 0) + || color_pair < 0) { + code = ERR; + } else { + unsigned i; + + if (len > CCHARW_MAX) + len = CCHARW_MAX; + + /* + * If we have a following spacing-character, stop at that point. We + * are only interested in adding non-spacing characters. + */ + for (i = 1; i < len; ++i) { + if (_nc_wacs_width(wch[i]) != 0) { + len = i; + break; + } + } + + memset(wcval, 0, sizeof(*wcval)); + + if (len != 0) { + SetAttr(*wcval, attrs); + SetPair(CHDEREF(wcval), color_pair); + memcpy(&wcval->chars, wch, len * sizeof(wchar_t)); + TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len, + _tracecchar_t(wcval))); + } + } + + TR(TRACE_CCALLS, (T_RETURN("%d"), code)); + return (code); +} + +NCURSES_EXPORT(int) +getcchar(const cchar_t *wcval, + wchar_t *wch, + attr_t *attrs, + NCURSES_PAIRS_T *pair_arg, + void *opts) +{ + int code = ERR; + + TR(TRACE_CCALLS, (T_CALLED("getcchar(%p,%p,%p,%p,%p)"), + (const void *) wcval, + (void *) wch, + (void *) attrs, + (void *) pair_arg, + opts)); + +#if !NCURSES_EXT_COLORS + if (opts != NULL) { + ; /* empty */ + } else +#endif + if (wcval != NULL) { + wchar_t *wp; + int len; + +#if HAVE_WMEMCHR + len = ((wp = wmemchr(wcval->chars, L'\0', (size_t) CCHARW_MAX)) + ? (int) (wp - wcval->chars) + : CCHARW_MAX); +#else + len = wcsnlen(wcval->chars, CCHARW_MAX); +#endif + if (wch == NULL) { + /* + * If the value is a null, set the length to 1. + * If the value is not a null, return the length plus 1 for null. + */ + code = (len < CCHARW_MAX) ? (len + 1) : CCHARW_MAX; + } else if (attrs == 0 || pair_arg == 0) { + code = ERR; + } else if (len >= 0) { + int color_pair; + + TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len, + _tracecchar_t(wcval))); + *attrs = AttrOf(*wcval) & A_ATTRIBUTES; + color_pair = GetPair(*wcval); + get_extended_pair(opts, color_pair); + *pair_arg = limit_PAIRS(color_pair); + wmemcpy(wch, wcval->chars, (size_t) len); + wch[len] = L'\0'; + if (*pair_arg >= 0) + code = OK; + } + } + + TR(TRACE_CCALLS, (T_RETURN("%d"), code)); + return (code); +} diff --git a/third_party/ncurses/lib_chgat.c b/third_party/ncurses/lib_chgat.c new file mode 100644 index 000000000..21883ffec --- /dev/null +++ b/third_party/ncurses/lib_chgat.c @@ -0,0 +1,80 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Sven Verdoolaege 2001 * + * and: Thomas E. Dickey 2005 * + ****************************************************************************/ + +/* +** lib_chgat.c +** +** The routine wchgat(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_chgat.c,v 1.13 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wchgat(WINDOW *win, + int n, + attr_t attr, + NCURSES_PAIRS_T pair_arg, + const void *opts GCC_UNUSED) +{ + int code = ERR; + int color_pair = pair_arg; + + T((T_CALLED("wchgat(%p,%d,%s,%d)"), + (void *) win, + n, + _traceattr(attr), + color_pair)); + + set_extended_pair(opts, color_pair); + if (win) { + struct ldat *line = &(win->_line[win->_cury]); + int i; + + toggle_attr_on(attr, ColorPair(color_pair)); + + for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++) { + SetAttr(line->text[i], attr); + SetPair(line->text[i], color_pair); + CHANGED_CELL(line, i); + } + + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_clear.c b/third_party/ncurses/lib_clear.c new file mode 100644 index 000000000..e991adf47 --- /dev/null +++ b/third_party/ncurses/lib_clear.c @@ -0,0 +1,57 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_clear.c +** +** The routine wclear(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_clear.c,v 1.9 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wclear(WINDOW *win) +{ + int code = ERR; + + T((T_CALLED("wclear(%p)"), (void *) win)); + + if ((code = werase(win)) != ERR) + win->_clear = TRUE; + + returnCode(code); +} diff --git a/third_party/ncurses/lib_clearok.c b/third_party/ncurses/lib_clearok.c new file mode 100644 index 000000000..f7dfb3c45 --- /dev/null +++ b/third_party/ncurses/lib_clearok.c @@ -0,0 +1,56 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_clearok.c +** +** The routine clearok. +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_clearok.c,v 1.6 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +clearok(WINDOW *win, bool flag) +{ + T((T_CALLED("clearok(%p,%d)"), (void *) win, flag)); + + if (win) { + win->_clear = flag; + returnCode(OK); + } else + returnCode(ERR); +} diff --git a/third_party/ncurses/lib_clrbot.c b/third_party/ncurses/lib_clrbot.c new file mode 100644 index 000000000..b9b666b4b --- /dev/null +++ b/third_party/ncurses/lib_clrbot.c @@ -0,0 +1,77 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2006,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_clrbot.c +** +** The routine wclrtobot(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_clrbot.c,v 1.22 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wclrtobot(WINDOW *win) +{ + int code = ERR; + + T((T_CALLED("wclrtobot(%p)"), (void *) win)); + + if (win) { + NCURSES_SIZE_T y; + NCURSES_SIZE_T startx = win->_curx; + NCURSES_CH_T blank = win->_nc_bkgd; + + T(("clearing from y = %ld to y = %ld with maxx = %ld", + (long) win->_cury, (long) win->_maxy, (long) win->_maxx)); + + for (y = win->_cury; y <= win->_maxy; y++) { + struct ldat *line = &(win->_line[y]); + NCURSES_CH_T *ptr = &(line->text[startx]); + NCURSES_CH_T *end = &(line->text[win->_maxx]); + + CHANGED_TO_EOL(line, startx, win->_maxx); + + while (ptr <= end) + *ptr++ = blank; + + startx = 0; + } + _nc_synchook(win); + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_clreol.c b/third_party/ncurses/lib_clreol.c new file mode 100644 index 000000000..6be52e925 --- /dev/null +++ b/third_party/ncurses/lib_clreol.c @@ -0,0 +1,92 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2001,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_clreol.c +** +** The routine wclrtoeol(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_clreol.c,v 1.24 2021/10/23 19:06:01 tom Exp $") + +NCURSES_EXPORT(int) +wclrtoeol(WINDOW *win) +{ + int code = ERR; + + T((T_CALLED("wclrtoeol(%p)"), (void *) win)); + + if (win) { + NCURSES_CH_T blank; + NCURSES_CH_T *ptr, *end; + struct ldat *line; + NCURSES_SIZE_T y = win->_cury; + NCURSES_SIZE_T x = win->_curx; + + /* + * If we have just wrapped the cursor, the clear applies to the + * new line, unless we are at the lower right corner. + */ + if (IS_WRAPPED(win) != 0 + && y < win->_maxy) { + win->_flags &= ~_WRAPPED; + } + + /* + * There's no point in clearing if we're not on a legal + * position, either. + */ + if (IS_WRAPPED(win) + || y > win->_maxy + || x > win->_maxx) + returnCode(ERR); + + blank = win->_nc_bkgd; + line = &win->_line[y]; + CHANGED_TO_EOL(line, x, win->_maxx); + + ptr = &(line->text[x]); + end = &(line->text[win->_maxx]); + + while (ptr <= end) + *ptr++ = blank; + + _nc_synchook(win); + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_color.c b/third_party/ncurses/lib_color.c new file mode 100644 index 000000000..7f6980a0d --- /dev/null +++ b/third_party/ncurses/lib_color.c @@ -0,0 +1,1166 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* lib_color.c + * + * Handles color emulation of SYS V curses + */ + +#define NEW_PAIR_INTERNAL 1 + +#include "curses.priv.h" +#include "new_pair.h" +#include "tic.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_color.c,v 1.149 2022/04/30 18:36:54 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define CanChange InfoOf(SP_PARM).canchange +#define DefaultPalette InfoOf(SP_PARM).defaultPalette +#define HasColor InfoOf(SP_PARM).hascolor +#define InitColor InfoOf(SP_PARM).initcolor +#define MaxColors InfoOf(SP_PARM).maxcolors +#define MaxPairs InfoOf(SP_PARM).maxpairs +#define UseHlsPalette (DefaultPalette == _nc_hls_palette) +#else +#define CanChange can_change +#define DefaultPalette (hue_lightness_saturation ? hls_palette : cga_palette) +#define HasColor has_color +#define InitColor initialize_color +#define MaxColors max_colors +#define MaxPairs max_pairs +#define UseHlsPalette (hue_lightness_saturation) +#endif + +#ifndef USE_TERM_DRIVER +/* + * These should be screen structure members. They need to be globals for + * historical reasons. So we assign them in start_color() and also in + * set_term()'s screen-switching logic. + */ +#if USE_REENTRANT +NCURSES_EXPORT(int) +NCURSES_PUBLIC_VAR(COLOR_PAIRS) (void) +{ + return SP ? SP->_pair_count : -1; +} +NCURSES_EXPORT(int) +NCURSES_PUBLIC_VAR(COLORS) (void) +{ + return SP ? SP->_color_count : -1; +} +#else +NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0; +NCURSES_EXPORT_VAR(int) COLORS = 0; +#endif +#endif /* !USE_TERM_DRIVER */ + +#define DATA(r,g,b) {r,g,b, 0,0,0, 0} + +#define MAX_PALETTE 8 + +#define OkColorHi(n) (((n) < COLORS) && ((n) < maxcolors)) +#define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE) + +/* + * Given a RGB range of 0..1000, we'll normally set the individual values + * to about 2/3 of the maximum, leaving full-range for bold/bright colors. + */ +#define RGB_ON 680 +#define RGB_OFF 0 +/* *INDENT-OFF* */ +static const color_t cga_palette[] = +{ + /* R G B */ + DATA(RGB_OFF, RGB_OFF, RGB_OFF), /* COLOR_BLACK */ + DATA(RGB_ON, RGB_OFF, RGB_OFF), /* COLOR_RED */ + DATA(RGB_OFF, RGB_ON, RGB_OFF), /* COLOR_GREEN */ + DATA(RGB_ON, RGB_ON, RGB_OFF), /* COLOR_YELLOW */ + DATA(RGB_OFF, RGB_OFF, RGB_ON), /* COLOR_BLUE */ + DATA(RGB_ON, RGB_OFF, RGB_ON), /* COLOR_MAGENTA */ + DATA(RGB_OFF, RGB_ON, RGB_ON), /* COLOR_CYAN */ + DATA(RGB_ON, RGB_ON, RGB_ON), /* COLOR_WHITE */ +}; + +static const color_t hls_palette[] = +{ + /* H L S */ + DATA( 0, 0, 0), /* COLOR_BLACK */ + DATA( 120, 50, 100), /* COLOR_RED */ + DATA( 240, 50, 100), /* COLOR_GREEN */ + DATA( 180, 50, 100), /* COLOR_YELLOW */ + DATA( 330, 50, 100), /* COLOR_BLUE */ + DATA( 60, 50, 100), /* COLOR_MAGENTA */ + DATA( 300, 50, 100), /* COLOR_CYAN */ + DATA( 0, 50, 100), /* COLOR_WHITE */ +}; + +#ifdef USE_TERM_DRIVER +NCURSES_EXPORT_VAR(const color_t*) _nc_cga_palette = cga_palette; +NCURSES_EXPORT_VAR(const color_t*) _nc_hls_palette = hls_palette; +#endif + +/* *INDENT-ON* */ +#if NCURSES_EXT_FUNCS +/* + * These are called from _nc_do_color(), which in turn is called from + * vidattr - so we have to assume that sp may be null. + */ +static int +default_fg(NCURSES_SP_DCL0) +{ + return (SP_PARM != 0) ? SP_PARM->_default_fg : COLOR_WHITE; +} + +static int +default_bg(NCURSES_SP_DCL0) +{ + return SP_PARM != 0 ? SP_PARM->_default_bg : COLOR_BLACK; +} +#else +#define default_fg(sp) COLOR_WHITE +#define default_bg(sp) COLOR_BLACK +#endif + +#ifndef USE_TERM_DRIVER +/* + * SVr4 curses is known to interchange color codes (1,4) and (3,6), possibly + * to maintain compatibility with a pre-ANSI scheme. The same scheme is + * also used in the FreeBSD syscons. + */ +static int +toggled_colors(int c) +{ + if (c < 16) { + static const int table[] = + {0, 4, 2, 6, 1, 5, 3, 7, + 8, 12, 10, 14, 9, 13, 11, 15}; + c = table[c]; + } + return c; +} +#endif + +static void +set_background_color(NCURSES_SP_DCLx int bg, NCURSES_SP_OUTC outc) +{ +#ifdef USE_TERM_DRIVER + CallDriver_3(SP_PARM, td_color, FALSE, bg, outc); +#else + if (set_a_background) { + TPUTS_TRACE("set_a_background"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(set_a_background, bg), + 1, outc); + } else { + TPUTS_TRACE("set_background"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(set_background, toggled_colors(bg)), + 1, outc); + } +#endif +} + +static void +set_foreground_color(NCURSES_SP_DCLx int fg, NCURSES_SP_OUTC outc) +{ +#ifdef USE_TERM_DRIVER + CallDriver_3(SP_PARM, td_color, TRUE, fg, outc); +#else + if (set_a_foreground) { + TPUTS_TRACE("set_a_foreground"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(set_a_foreground, fg), + 1, outc); + } else { + TPUTS_TRACE("set_foreground"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(set_foreground, toggled_colors(fg)), + 1, outc); + } +#endif +} + +static void +init_color_table(NCURSES_SP_DCL0) +{ + const color_t *tp = DefaultPalette; + int n; + + assert(tp != 0); + + for (n = 0; n < COLORS; n++) { + if (InPalette(n)) { + SP_PARM->_color_table[n] = tp[n]; + } else { + SP_PARM->_color_table[n] = tp[n % MAX_PALETTE]; + if (UseHlsPalette) { + SP_PARM->_color_table[n].green = 100; + } else { + if (SP_PARM->_color_table[n].red) + SP_PARM->_color_table[n].red = 1000; + if (SP_PARM->_color_table[n].green) + SP_PARM->_color_table[n].green = 1000; + if (SP_PARM->_color_table[n].blue) + SP_PARM->_color_table[n].blue = 1000; + } + } + } +} + +static bool +init_direct_colors(NCURSES_SP_DCL0) +{ + static NCURSES_CONST char name[] = "RGB"; + + rgb_bits_t *result = &(SP_PARM->_direct_color); + + result->value = 0; + + if (COLORS >= 8) { + int n; + const char *s; + int width; + + /* find the number of bits needed for the maximum color value */ + for (width = 0; (1 << width) - 1 < (COLORS - 1); ++width) { + ; + } + + if (tigetflag(name) > 0) { + n = (width + 2) / 3; + result->bits.red = UChar(n); + result->bits.green = UChar(n); + result->bits.blue = UChar(width - (2 * n)); + } else if ((n = tigetnum(name)) > 0) { + result->bits.red = UChar(n); + result->bits.green = UChar(n); + result->bits.blue = UChar(n); + } else if ((s = tigetstr(name)) != 0 && VALID_STRING(s)) { + int red = n; + int green = n; + int blue = width - (2 * n); + + switch (sscanf(s, "%d/%d/%d", &red, &green, &blue)) { + default: + blue = width - (2 * n); + /* FALLTHRU */ + case 1: + green = n; + /* FALLTHRU */ + case 2: + red = n; + /* FALLTHRU */ + case 3: + /* okay */ + break; + } + result->bits.red = UChar(red); + result->bits.green = UChar(green); + result->bits.blue = UChar(blue); + } + } + return (result->value != 0); +} + +/* + * Reset the color pair, e.g., to whatever color pair 0 is. + */ +static bool +reset_color_pair(NCURSES_SP_DCL0) +{ +#ifdef USE_TERM_DRIVER + return CallDriver(SP_PARM, td_rescol); +#else + bool result = FALSE; + + (void) SP_PARM; + if (orig_pair != 0) { + (void) NCURSES_PUTP2("orig_pair", orig_pair); + result = TRUE; + } + return result; +#endif +} + +/* + * Reset color pairs and definitions. Actually we do both more to accommodate + * badly-written terminal descriptions than for the relatively rare case where + * someone has changed the color definitions. + */ +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_DCL0) +{ + int result = FALSE; + + T((T_CALLED("_nc_reset_colors(%p)"), (void *) SP_PARM)); + if (SP_PARM->_color_defs > 0) + SP_PARM->_color_defs = -(SP_PARM->_color_defs); + if (reset_color_pair(NCURSES_SP_ARG)) + result = TRUE; + +#ifdef USE_TERM_DRIVER + result = CallDriver(SP_PARM, td_rescolors); +#else + if (orig_colors != 0) { + NCURSES_PUTP2("orig_colors", orig_colors); + result = TRUE; + } +#endif + returnBool(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(bool) +_nc_reset_colors(void) +{ + return NCURSES_SP_NAME(_nc_reset_colors) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(start_color) (NCURSES_SP_DCL0) +{ + int result = ERR; + + T((T_CALLED("start_color(%p)"), (void *) SP_PARM)); + + if (SP_PARM == 0) { + result = ERR; + } else if (SP_PARM->_coloron) { + result = OK; + } else { + int maxpairs = MaxPairs; + int maxcolors = MaxColors; + if (reset_color_pair(NCURSES_SP_ARG) != TRUE) { + set_foreground_color(NCURSES_SP_ARGx + default_fg(NCURSES_SP_ARG), + NCURSES_SP_NAME(_nc_outch)); + set_background_color(NCURSES_SP_ARGx + default_bg(NCURSES_SP_ARG), + NCURSES_SP_NAME(_nc_outch)); + } +#if !NCURSES_EXT_COLORS + /* + * Without ext-colors, we cannot represent more than 256 color pairs. + */ + if (maxpairs > 256) + maxpairs = 256; +#endif + + if (maxpairs > 0 && maxcolors > 0) { + SP_PARM->_pair_limit = maxpairs; + +#if NCURSES_EXT_FUNCS + /* + * If using default colors, allocate extra space in table to + * allow for default-color as a component of a color-pair. + */ + SP_PARM->_pair_limit += (1 + (2 * maxcolors)); +#if !NCURSES_EXT_COLORS + SP_PARM->_pair_limit = limit_PAIRS(SP_PARM->_pair_limit); +#endif +#endif /* NCURSES_EXT_FUNCS */ + SP_PARM->_pair_count = maxpairs; + SP_PARM->_color_count = maxcolors; +#if !USE_REENTRANT + COLOR_PAIRS = maxpairs; + COLORS = maxcolors; +#endif + + ReservePairs(SP_PARM, 16); + if (SP_PARM->_color_pairs != 0) { + if (init_direct_colors(NCURSES_SP_ARG)) { + result = OK; + } else { + TYPE_CALLOC(color_t, maxcolors, SP_PARM->_color_table); + if (SP_PARM->_color_table != 0) { + MakeColorPair(SP_PARM->_color_pairs[0], + default_fg(NCURSES_SP_ARG), + default_bg(NCURSES_SP_ARG)); + init_color_table(NCURSES_SP_ARG); + + result = OK; + } + } + if (result == OK) { + T(("started color: COLORS = %d, COLOR_PAIRS = %d", + COLORS, COLOR_PAIRS)); + + SP_PARM->_coloron = 1; + } else if (SP_PARM->_color_pairs != 0) { + FreeAndNull(SP_PARM->_color_pairs); + } + } + } else { + result = OK; + } + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +start_color(void) +{ + return NCURSES_SP_NAME(start_color) (CURRENT_SCREEN); +} +#endif + +/* This function was originally written by Daniel Weaver */ +static void +rgb2hls(int r, int g, int b, int *h, int *l, int *s) +/* convert RGB to HLS system */ +{ + int min, max, t; + + if ((min = g < r ? g : r) > b) + min = b; + if ((max = g > r ? g : r) < b) + max = b; + + /* calculate lightness */ + *l = ((min + max) / 20); + + if (min == max) { /* black, white and all shades of gray */ + *h = 0; + *s = 0; + return; + } + + /* calculate saturation */ + if (*l < 50) + *s = (((max - min) * 100) / (max + min)); + else + *s = (((max - min) * 100) / (2000 - max - min)); + + /* calculate hue */ + if (r == max) + t = (120 + ((g - b) * 60) / (max - min)); + else if (g == max) + t = (240 + ((b - r) * 60) / (max - min)); + else + t = (360 + ((r - g) * 60) / (max - min)); + + *h = (t % 360); +} + +/* + * Change all cells which use(d) a given color pair to force a repaint. + */ +NCURSES_EXPORT(void) +_nc_change_pair(SCREEN *sp, int pair) +{ + int y, x; + + if (CurScreen(sp)->_clear) + return; +#if NO_LEAKS + if (_nc_globals.leak_checking) + return; +#endif + + for (y = 0; y <= CurScreen(sp)->_maxy; y++) { + struct ldat *ptr = &(CurScreen(sp)->_line[y]); + bool changed = FALSE; + for (x = 0; x <= CurScreen(sp)->_maxx; x++) { + if (GetPair(ptr->text[x]) == pair) { + /* Set the old cell to zero to ensure it will be + updated on the next doupdate() */ + SetChar(ptr->text[x], 0, 0); + CHANGED_CELL(ptr, x); + changed = TRUE; + } + } + if (changed) + NCURSES_SP_NAME(_nc_make_oldhash) (NCURSES_SP_ARGx y); + } +} + +NCURSES_EXPORT(void) +_nc_reserve_pairs(SCREEN *sp, int want) +{ + int have = sp->_pair_alloc; + + if (have == 0) + have = 1; + while (have <= want) + have *= 2; + if (have > sp->_pair_limit) + have = sp->_pair_limit; + + if (sp->_color_pairs == 0) { + TYPE_CALLOC(colorpair_t, have, sp->_color_pairs); + } else if (have > sp->_pair_alloc) { +#if NCURSES_EXT_COLORS + colorpair_t *next; + + if ((next = typeCalloc(colorpair_t, have)) == 0) + _nc_err_abort(MSG_NO_MEMORY); + memcpy(next, sp->_color_pairs, (size_t) sp->_pair_alloc * sizeof(*next)); + _nc_copy_pairs(sp, next, sp->_color_pairs, sp->_pair_alloc); + free(sp->_color_pairs); + sp->_color_pairs = next; +#else + TYPE_REALLOC(colorpair_t, have, sp->_color_pairs); + if (sp->_color_pairs != 0) { + memset(sp->_color_pairs + sp->_pair_alloc, 0, + sizeof(colorpair_t) * (size_t) (have - sp->_pair_alloc)); + } +#endif + } + if (sp->_color_pairs != 0) { + sp->_pair_alloc = have; + } +} + +/* + * Extension (1997/1/18) - Allow negative f/b values to set default color + * values. + */ +NCURSES_EXPORT(int) +_nc_init_pair(SCREEN *sp, int pair, int f, int b) +{ + static colorpair_t null_pair; + colorpair_t result = null_pair; + colorpair_t previous; + int maxcolors; + + T((T_CALLED("init_pair(%p,%d,%d,%d)"), (void *) sp, pair, f, b)); + + if (!ValidPair(sp, pair)) + returnCode(ERR); + + maxcolors = MaxColors; + + ReservePairs(sp, pair); + previous = sp->_color_pairs[pair]; +#if NCURSES_EXT_FUNCS + if (sp->_default_color || sp->_assumed_color) { + bool isDefault = FALSE; + bool wasDefault = FALSE; + int default_pairs = sp->_default_pairs; + + /* + * Map caller's color number, e.g., -1, 0, 1, .., 7, etc., into + * internal unsigned values which we will store in the _color_pairs[] + * table. + */ + if (isDefaultColor(f)) { + f = COLOR_DEFAULT; + isDefault = TRUE; + } else if (!OkColorHi(f)) { + returnCode(ERR); + } + + if (isDefaultColor(b)) { + b = COLOR_DEFAULT; + isDefault = TRUE; + } else if (!OkColorHi(b)) { + returnCode(ERR); + } + + /* + * Check if the table entry that we are going to init/update used + * default colors. + */ + if (isDefaultColor(FORE_OF(previous)) + || isDefaultColor(BACK_OF(previous))) + wasDefault = TRUE; + + /* + * Keep track of the number of entries in the color pair table which + * used a default color. + */ + if (isDefault && !wasDefault) { + ++default_pairs; + } else if (wasDefault && !isDefault) { + --default_pairs; + } + + /* + * As an extension, ncurses allows the pair number to exceed the + * terminal's color_pairs value for pairs using a default color. + * + * Note that updating a pair which used a default color with one + * that does not will decrement the count - and possibly interfere + * with sequentially adding new pairs. + */ + if (pair > (sp->_pair_count + default_pairs)) { + returnCode(ERR); + } + sp->_default_pairs = default_pairs; + } else +#endif + { + if ((f < 0) || !OkColorHi(f) + || (b < 0) || !OkColorHi(b) + || (pair < 1)) { + returnCode(ERR); + } + } + + /* + * When a pair's content is changed, replace its colors (if pair was + * initialized before a screen update is performed replacing original + * pair colors with the new ones). + */ + MakeColorPair(result, f, b); + if ((FORE_OF(previous) != 0 + || BACK_OF(previous) != 0) + && !isSamePair(previous, result)) { + _nc_change_pair(sp, pair); + } + + _nc_reset_color_pair(sp, pair, &result); + sp->_color_pairs[pair] = result; + _nc_set_color_pair(sp, pair, cpINIT); + + if (GET_SCREEN_PAIR(sp) == pair) + SET_SCREEN_PAIR(sp, (int) (~0)); /* force attribute update */ + +#ifdef USE_TERM_DRIVER + CallDriver_3(sp, td_initpair, pair, f, b); +#else + if (initialize_pair && InPalette(f) && InPalette(b)) { + const color_t *tp = DefaultPalette; + + TR(TRACE_ATTRS, + ("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)", + (int) pair, + (int) tp[f].red, (int) tp[f].green, (int) tp[f].blue, + (int) tp[b].red, (int) tp[b].green, (int) tp[b].blue)); + + NCURSES_PUTP2("initialize_pair", + TIPARM_7(initialize_pair, + pair, + (int) tp[f].red, + (int) tp[f].green, + (int) tp[f].blue, + (int) tp[b].red, + (int) tp[b].green, + (int) tp[b].blue)); + } +#endif + + returnCode(OK); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx + NCURSES_PAIRS_T pair, + NCURSES_COLOR_T f, + NCURSES_COLOR_T b) +{ + return _nc_init_pair(SP_PARM, pair, f, b); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +init_pair(NCURSES_COLOR_T pair, NCURSES_COLOR_T f, NCURSES_COLOR_T b) +{ + return NCURSES_SP_NAME(init_pair) (CURRENT_SCREEN, pair, f, b); +} +#endif + +#define okRGB(n) ((n) >= 0 && (n) <= 1000) + +NCURSES_EXPORT(int) +_nc_init_color(SCREEN *sp, int color, int r, int g, int b) +{ + int result = ERR; + int maxcolors; + + T((T_CALLED("init_color(%p,%d,%d,%d,%d)"), + (void *) sp, + color, + r, g, b)); + + if (sp == 0 || sp->_direct_color.value) + returnCode(result); + + maxcolors = MaxColors; + + if (InitColor + && sp->_coloron + && (color >= 0 && OkColorHi(color)) + && (okRGB(r) && okRGB(g) && okRGB(b))) { + + sp->_color_table[color].init = 1; + sp->_color_table[color].r = r; + sp->_color_table[color].g = g; + sp->_color_table[color].b = b; + + if (UseHlsPalette) { + rgb2hls(r, g, b, + &sp->_color_table[color].red, + &sp->_color_table[color].green, + &sp->_color_table[color].blue); + } else { + sp->_color_table[color].red = r; + sp->_color_table[color].green = g; + sp->_color_table[color].blue = b; + } + +#ifdef USE_TERM_DRIVER + CallDriver_4(sp, td_initcolor, color, r, g, b); +#else + NCURSES_PUTP2("initialize_color", + TIPARM_4(initialize_color, color, r, g, b)); +#endif + sp->_color_defs = max(color + 1, sp->_color_defs); + + result = OK; + } + returnCode(result); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(init_color) (NCURSES_SP_DCLx + NCURSES_COLOR_T color, + NCURSES_COLOR_T r, + NCURSES_COLOR_T g, + NCURSES_COLOR_T b) +{ + return _nc_init_color(SP_PARM, color, r, g, b); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +init_color(NCURSES_COLOR_T color, + NCURSES_COLOR_T r, + NCURSES_COLOR_T g, + NCURSES_COLOR_T b) +{ + return NCURSES_SP_NAME(init_color) (CURRENT_SCREEN, color, r, g, b); +} +#endif + +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(can_change_color) (NCURSES_SP_DCL) +{ + int result = FALSE; + + T((T_CALLED("can_change_color(%p)"), (void *) SP_PARM)); + + if (HasTerminal(SP_PARM) && (CanChange != 0)) { + result = TRUE; + } + + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(bool) +can_change_color(void) +{ + return NCURSES_SP_NAME(can_change_color) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(has_colors) (NCURSES_SP_DCL0) +{ + int code = FALSE; + + (void) SP_PARM; + T((T_CALLED("has_colors(%p)"), (void *) SP_PARM)); + if (HasTerminal(SP_PARM)) { +#ifdef USE_TERM_DRIVER + code = HasColor; +#else + code = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs) + && (((set_foreground != NULL) + && (set_background != NULL)) + || ((set_a_foreground != NULL) + && (set_a_background != NULL)) + || set_color_pair)) ? TRUE : FALSE); +#endif + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(bool) +has_colors(void) +{ + return NCURSES_SP_NAME(has_colors) (CURRENT_SCREEN); +} +#endif + +static int +_nc_color_content(SCREEN *sp, int color, int *r, int *g, int *b) +{ + int result = ERR; + + T((T_CALLED("color_content(%p,%d,%p,%p,%p)"), + (void *) sp, + color, + (void *) r, + (void *) g, + (void *) b)); + + if (sp != 0) { + int maxcolors = MaxColors; + + if (color >= 0 && OkColorHi(color) && sp->_coloron) { + int c_r, c_g, c_b; + + if (sp->_direct_color.value) { + rgb_bits_t *work = &(sp->_direct_color); + +#define max_direct_color(name) ((1 << work->bits.name) - 1) +#define value_direct_color(max) (1000 * ((color >> bitoff) & max)) / max + + int max_r = max_direct_color(red); + int max_g = max_direct_color(green); + int max_b = max_direct_color(blue); + + int bitoff = 0; + + c_b = value_direct_color(max_b); + bitoff += work->bits.blue; + + c_g = value_direct_color(max_g); + bitoff += work->bits.green; + + c_r = value_direct_color(max_r); + + } else { + c_r = sp->_color_table[color].red; + c_g = sp->_color_table[color].green; + c_b = sp->_color_table[color].blue; + } + + if (r) + *r = c_r; + if (g) + *g = c_g; + if (b) + *b = c_b; + + TR(TRACE_ATTRS, ("...color_content(%d,%d,%d,%d)", + color, c_r, c_g, c_b)); + result = OK; + } + } + if (result != OK) { + if (r) + *r = 0; + if (g) + *g = 0; + if (b) + *b = 0; + } + returnCode(result); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(color_content) (NCURSES_SP_DCLx + NCURSES_COLOR_T color, + NCURSES_COLOR_T *r, + NCURSES_COLOR_T *g, + NCURSES_COLOR_T *b) +{ + int my_r, my_g, my_b; + int rc = _nc_color_content(SP_PARM, color, &my_r, &my_g, &my_b); + if (rc == OK) { + *r = limit_COLOR(my_r); + *g = limit_COLOR(my_g); + *b = limit_COLOR(my_b); + } + return rc; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +color_content(NCURSES_COLOR_T color, + NCURSES_COLOR_T *r, + NCURSES_COLOR_T *g, + NCURSES_COLOR_T *b) +{ + return NCURSES_SP_NAME(color_content) (CURRENT_SCREEN, color, r, g, b); +} +#endif + +NCURSES_EXPORT(int) +_nc_pair_content(SCREEN *sp, int pair, int *f, int *b) +{ + int result; + + T((T_CALLED("pair_content(%p,%d,%p,%p)"), + (void *) sp, + (int) pair, + (void *) f, + (void *) b)); + + if (!ValidPair(sp, pair)) { + result = ERR; + } else { + int fg; + int bg; + + ReservePairs(sp, pair); + fg = FORE_OF(sp->_color_pairs[pair]); + bg = BACK_OF(sp->_color_pairs[pair]); +#if NCURSES_EXT_FUNCS + if (isDefaultColor(fg)) + fg = -1; + if (isDefaultColor(bg)) + bg = -1; +#endif + + if (f) + *f = fg; + if (b) + *b = bg; + + TR(TRACE_ATTRS, ("...pair_content(%p,%d,%d,%d)", + (void *) sp, + (int) pair, + (int) fg, (int) bg)); + result = OK; + } + returnCode(result); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(pair_content) (NCURSES_SP_DCLx + NCURSES_PAIRS_T pair, + NCURSES_COLOR_T *f, + NCURSES_COLOR_T *b) +{ + int my_f, my_b; + int rc = _nc_pair_content(SP_PARM, pair, &my_f, &my_b); + if (rc == OK) { + *f = limit_COLOR(my_f); + *b = limit_COLOR(my_b); + } + return rc; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +pair_content(NCURSES_COLOR_T pair, NCURSES_COLOR_T *f, NCURSES_COLOR_T *b) +{ + return NCURSES_SP_NAME(pair_content) (CURRENT_SCREEN, pair, f, b); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_DCLx + int old_pair, + int pair, + int reverse, + NCURSES_SP_OUTC outc) +{ +#ifdef USE_TERM_DRIVER + CallDriver_4(SP_PARM, td_docolor, old_pair, pair, reverse, outc); +#else + int fg = COLOR_DEFAULT; + int bg = COLOR_DEFAULT; + int old_fg = -1; + int old_bg = -1; + + if (!ValidPair(SP_PARM, pair)) { + return; + } else if (pair != 0) { + if (set_color_pair) { + TPUTS_TRACE("set_color_pair"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(set_color_pair, pair), + 1, outc); + return; + } else if (SP_PARM != 0) { + if (_nc_pair_content(SP_PARM, pair, &fg, &bg) == ERR) + return; + } + } + + if (old_pair >= 0 + && SP_PARM != 0 + && _nc_pair_content(SP_PARM, old_pair, &old_fg, &old_bg) != ERR) { + if ((isDefaultColor(fg) && !isDefaultColor(old_fg)) + || (isDefaultColor(bg) && !isDefaultColor(old_bg))) { +#if NCURSES_EXT_FUNCS + /* + * A minor optimization - but extension. If "AX" is specified in + * the terminal description, treat it as screen's indicator of ECMA + * SGR 39 and SGR 49, and assume the two sequences are independent. + */ + if (SP_PARM->_has_sgr_39_49 + && isDefaultColor(old_bg) + && !isDefaultColor(old_fg)) { + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx "\033[39m", 1, outc); + } else if (SP_PARM->_has_sgr_39_49 + && isDefaultColor(old_fg) + && !isDefaultColor(old_bg)) { + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx "\033[49m", 1, outc); + } else +#endif + reset_color_pair(NCURSES_SP_ARG); + } + } else { + reset_color_pair(NCURSES_SP_ARG); + if (old_pair < 0 && pair <= 0) + return; + } + +#if NCURSES_EXT_FUNCS + if (isDefaultColor(fg)) + fg = default_fg(NCURSES_SP_ARG); + if (isDefaultColor(bg)) + bg = default_bg(NCURSES_SP_ARG); +#endif + + if (reverse) { + int xx = fg; + fg = bg; + bg = xx; + } + + TR(TRACE_ATTRS, ("setting colors: pair = %d, fg = %d, bg = %d", pair, + fg, bg)); + + if (!isDefaultColor(fg)) { + set_foreground_color(NCURSES_SP_ARGx fg, outc); + } + if (!isDefaultColor(bg)) { + set_background_color(NCURSES_SP_ARGx bg, outc); + } +#endif +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_do_color(int old_pair, int pair, int reverse, NCURSES_OUTC outc) +{ + SetSafeOutcWrapper(outc); + NCURSES_SP_NAME(_nc_do_color) (CURRENT_SCREEN, + old_pair, + pair, + reverse, + _nc_outc_wrapper); +} +#endif + +#if NCURSES_EXT_COLORS +NCURSES_EXPORT(int) +NCURSES_SP_NAME(init_extended_pair) (NCURSES_SP_DCLx int pair, int f, int b) +{ + return _nc_init_pair(SP_PARM, pair, f, b); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(init_extended_color) (NCURSES_SP_DCLx + int color, + int r, int g, int b) +{ + return _nc_init_color(SP_PARM, color, r, g, b); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(extended_color_content) (NCURSES_SP_DCLx + int color, + int *r, int *g, int *b) +{ + return _nc_color_content(SP_PARM, color, r, g, b); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(extended_pair_content) (NCURSES_SP_DCLx + int pair, + int *f, int *b) +{ + return _nc_pair_content(SP_PARM, pair, f, b); +} + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(reset_color_pairs) (NCURSES_SP_DCL0) +{ + if (SP_PARM != 0) { + if (SP_PARM->_color_pairs) { + _nc_free_ordered_pairs(SP_PARM); + free(SP_PARM->_color_pairs); + SP_PARM->_color_pairs = 0; + SP_PARM->_pair_alloc = 0; + ReservePairs(SP_PARM, 16); + clearok(CurScreen(SP_PARM), TRUE); + touchwin(StdScreen(SP_PARM)); + } + } +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +init_extended_pair(int pair, int f, int b) +{ + return NCURSES_SP_NAME(init_extended_pair) (CURRENT_SCREEN, pair, f, b); +} + +NCURSES_EXPORT(int) +init_extended_color(int color, int r, int g, int b) +{ + return NCURSES_SP_NAME(init_extended_color) (CURRENT_SCREEN, + color, + r, g, b); +} + +NCURSES_EXPORT(int) +extended_color_content(int color, int *r, int *g, int *b) +{ + return NCURSES_SP_NAME(extended_color_content) (CURRENT_SCREEN, + color, + r, g, b); +} + +NCURSES_EXPORT(int) +extended_pair_content(int pair, int *f, int *b) +{ + return NCURSES_SP_NAME(extended_pair_content) (CURRENT_SCREEN, pair, f, b); +} + +NCURSES_EXPORT(void) +reset_color_pairs(void) +{ + NCURSES_SP_NAME(reset_color_pairs) (CURRENT_SCREEN); +} +#endif /* NCURSES_SP_FUNCS */ +#endif /* NCURSES_EXT_COLORS */ diff --git a/third_party/ncurses/lib_colorset.c b/third_party/ncurses/lib_colorset.c new file mode 100644 index 000000000..70cf33d91 --- /dev/null +++ b/third_party/ncurses/lib_colorset.c @@ -0,0 +1,65 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1998 * + * and: Thomas E. Dickey, 2005-on * + ****************************************************************************/ + +/* +** lib_colorset.c +** +** The routine wcolor_set(). +** +*/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_colorset.c,v 1.16 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wcolor_set(WINDOW *win, NCURSES_PAIRS_T pair_arg, void *opts) +{ + int code = ERR; + int color_pair = pair_arg; + + T((T_CALLED("wcolor_set(%p,%d)"), (void *) win, color_pair)); + set_extended_pair(opts, color_pair); + if (win + && (SP != 0) + && (color_pair >= 0) + && (color_pair < SP->_pair_limit)) { + TR(TRACE_ATTRS, ("... current %ld", (long) GET_WINDOW_PAIR(win))); + SET_WINDOW_PAIR(win, color_pair); + if_EXT_COLORS(win->_color = color_pair); + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_cur_term.c b/third_party/ncurses/lib_cur_term.c new file mode 100644 index 000000000..10d157b74 --- /dev/null +++ b/third_party/ncurses/lib_cur_term.c @@ -0,0 +1,200 @@ +/**************************************************************************** +,* Copyright 2020-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997 * + ****************************************************************************/ +/* + * Module that "owns" the 'cur_term' variable: + * + * TERMINAL *set_curterm(TERMINAL *) + * int del_curterm(TERMINAL *) + */ + +#include "curses.priv.h" +#include "termcap.h" /* ospeed */ +#include "tic.h" /* VALID_STRING */ + +MODULE_ID("$Id: lib_cur_term.c,v 1.49 2022/05/28 17:56:55 tom Exp $") + +#undef CUR +#define CUR TerminalType(termp). + +#if USE_REENTRANT + +NCURSES_EXPORT(TERMINAL *) +NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_DCL0) +{ + return ((0 != TerminalOf(SP_PARM)) ? TerminalOf(SP_PARM) : CurTerm); +} + +#if NCURSES_SP_FUNCS + +NCURSES_EXPORT(TERMINAL *) +_nc_get_cur_term(void) +{ + return NCURSES_SP_NAME(_nc_get_cur_term) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(TERMINAL *) +NCURSES_PUBLIC_VAR(cur_term) (void) +{ +#if NCURSES_SP_FUNCS + return NCURSES_SP_NAME(_nc_get_cur_term) (CURRENT_SCREEN); +#else + return NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_ARG); +#endif +} + +#else +NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0; +#endif + +NCURSES_EXPORT(TERMINAL *) +NCURSES_SP_NAME(set_curterm) (NCURSES_SP_DCLx TERMINAL *termp) +{ + TERMINAL *oldterm; + + T((T_CALLED("set_curterm(%p)"), (void *) termp)); + + _nc_lock_global(curses); + oldterm = cur_term; + if (SP_PARM) + SP_PARM->_term = termp; +#if USE_REENTRANT + CurTerm = termp; +#else + cur_term = termp; +#endif + if (termp != 0) { +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp; + ospeed = (NCURSES_OSPEED) _nc_ospeed(termp->_baudrate); + if (TCB->drv && + TCB->drv->isTerminfo && + TerminalType(termp).Strings) { + PC = (char) (VALID_STRING(pad_char) ? pad_char[0] : 0); + } + TCB->csp = SP_PARM; +#else + ospeed = (NCURSES_OSPEED) _nc_ospeed(termp->_baudrate); + if (TerminalType(termp).Strings) { + PC = (char) (VALID_STRING(pad_char) ? pad_char[0] : 0); + } +#endif +#if !USE_REENTRANT + save_ttytype(termp); +#endif + } + _nc_unlock_global(curses); + + T((T_RETURN("%p"), (void *) oldterm)); + return (oldterm); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(TERMINAL *) +set_curterm(TERMINAL *termp) +{ + return NCURSES_SP_NAME(set_curterm) (CURRENT_SCREEN, termp); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL *termp) +{ + int rc = ERR; + + T((T_CALLED("del_curterm(%p, %p)"), (void *) SP_PARM, (void *) termp)); + + if (termp != 0) { +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp; +#endif + TERMINAL *cur = ( +#if USE_REENTRANT + NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_ARG) +#else + cur_term +#endif + ); + +#if NCURSES_EXT_NUMBERS +#if NCURSES_EXT_COLORS + _nc_free_termtype1(&termp->type); +#else + _nc_free_termtype2(&termp->type); +#endif +#endif + _nc_free_termtype2(&TerminalType(termp)); + if (termp == cur) + NCURSES_SP_NAME(set_curterm) (NCURSES_SP_ARGx 0); + + FreeIfNeeded(termp->_termname); +#if USE_HOME_TERMINFO + if (_nc_globals.home_terminfo != 0) { + FreeAndNull(_nc_globals.home_terminfo); + } +#endif +#ifdef USE_TERM_DRIVER + if (TCB->drv) + TCB->drv->td_release(TCB); +#endif +#if NO_LEAKS + /* discard memory used in tgetent's cache for this terminal */ + _nc_tgetent_leak(termp); +#endif + if (--_nc_globals.terminal_count == 0) { + _nc_free_tparm(termp); + } + + free(termp->tparm_state.fmt_buff); + free(termp->tparm_state.out_buff); + free(termp); + + rc = OK; + } + + returnCode(rc); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +del_curterm(TERMINAL *termp) +{ + int rc; + + _nc_lock_global(curses); + rc = NCURSES_SP_NAME(del_curterm) (CURRENT_SCREEN, termp); + _nc_unlock_global(curses); + + return (rc); +} +#endif diff --git a/third_party/ncurses/lib_data.c b/third_party/ncurses/lib_data.c new file mode 100644 index 000000000..ce9a092b1 --- /dev/null +++ b/third_party/ncurses/lib_data.c @@ -0,0 +1,406 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * + ****************************************************************************/ + +/* +** lib_data.c +** +** Common data that may/may not be allocated, but is referenced globally +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_data.c,v 1.87 2022/07/09 22:03:21 tom Exp $") + +/* + * OS/2's native linker complains if we don't initialize public data when + * constructing a dll (reported by J.J.G.Ripoll). + */ +#if USE_REENTRANT +NCURSES_EXPORT(WINDOW *) +NCURSES_PUBLIC_VAR(stdscr) (void) +{ + return CURRENT_SCREEN ? StdScreen(CURRENT_SCREEN) : 0; +} +NCURSES_EXPORT(WINDOW *) +NCURSES_PUBLIC_VAR(curscr) (void) +{ + return CURRENT_SCREEN ? CurScreen(CURRENT_SCREEN) : 0; +} +NCURSES_EXPORT(WINDOW *) +NCURSES_PUBLIC_VAR(newscr) (void) +{ + return CURRENT_SCREEN ? NewScreen(CURRENT_SCREEN) : 0; +} +#else +NCURSES_EXPORT_VAR(WINDOW *) stdscr = 0; +NCURSES_EXPORT_VAR(WINDOW *) curscr = 0; +NCURSES_EXPORT_VAR(WINDOW *) newscr = 0; +#endif + +NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0; + +/* + * The variable 'SP' will be defined as a function on systems that cannot link + * data-only modules, since it is used in a lot of places within ncurses and we + * cannot guarantee that any application will use any particular function. We + * put the WINDOW variables in this module, because it appears that any + * application that uses them will also use 'SP'. + * + * This module intentionally does not reference other ncurses modules, to avoid + * module coupling that increases the size of the executable. + */ +#if BROKEN_LINKER +static SCREEN *my_screen; + +NCURSES_EXPORT(SCREEN *) +_nc_screen(void) +{ + return my_screen; +} + +NCURSES_EXPORT(int) +_nc_alloc_screen(void) +{ + my_screen = _nc_alloc_screen_sp(); + T(("_nc_alloc_screen_sp %p", my_screen)); + return (my_screen != 0); +} + +NCURSES_EXPORT(void) +_nc_set_screen(SCREEN *sp) +{ + my_screen = sp; +} + +#else + +NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */ +#endif +/* *INDENT-OFF* */ +#define CHARS_0s { '\0' } + +#define TGETENT_0 { 0L, FALSE, NULL, NULL, NULL } +#define TGETENT_0s { TGETENT_0, TGETENT_0, TGETENT_0, TGETENT_0 } + +NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = { + 0, /* have_sigtstp */ + 0, /* have_sigwinch */ + 0, /* cleanup_nested */ + + FALSE, /* init_signals */ + FALSE, /* init_screen */ + + NULL, /* comp_sourcename */ + NULL, /* comp_termtype */ + + FALSE, /* have_tic_directory */ + FALSE, /* keep_tic_directory */ + 0, /* tic_directory */ + + NULL, /* dbi_list */ + 0, /* dbi_size */ + + NULL, /* first_name */ + NULL, /* keyname_table */ + 0, /* init_keyname */ + + 0, /* slk_format */ + + 2048, /* getstr_limit */ + + NULL, /* safeprint_buf */ + 0, /* safeprint_used */ + + TGETENT_0s, /* tgetent_cache */ + 0, /* tgetent_index */ + 0, /* tgetent_sequence */ + 0, /* terminal_count */ + + 0, /* dbd_blob */ + 0, /* dbd_list */ + 0, /* dbd_size */ + 0, /* dbd_time */ + { { 0, 0 } }, /* dbd_vars */ + +#if HAVE_TSEARCH + NULL, /* cached_tparm */ + 0, /* count_tparm */ +#endif /* HAVE_TSEARCH */ + +#ifdef USE_TERM_DRIVER + 0, /* term_driver */ +#endif + +#ifndef USE_SP_WINDOWLIST + 0, /* _nc_windowlist */ +#endif + +#if USE_HOME_TERMINFO + NULL, /* home_terminfo */ +#endif + +#if !USE_SAFE_SPRINTF + 0, /* safeprint_cols */ + 0, /* safeprint_rows */ +#endif + +#ifdef USE_PTHREADS + PTHREAD_MUTEX_INITIALIZER, /* mutex_curses */ + PTHREAD_MUTEX_INITIALIZER, /* mutex_prescreen */ + PTHREAD_MUTEX_INITIALIZER, /* mutex_screen */ + PTHREAD_MUTEX_INITIALIZER, /* mutex_update */ + PTHREAD_MUTEX_INITIALIZER, /* mutex_tst_tracef */ + PTHREAD_MUTEX_INITIALIZER, /* mutex_tracef */ + 0, /* nested_tracef */ + 0, /* use_pthreads */ +#if USE_PTHREADS_EINTR + 0, /* read_thread */ +#endif +#endif +#if USE_WIDEC_SUPPORT + CHARS_0s, /* key_name */ +#endif +#ifdef TRACE + FALSE, /* trace_opened */ + CHARS_0s, /* trace_fname */ + 0, /* trace_level */ + NULL, /* trace_fp */ + -1, /* trace_fd */ + + NULL, /* tracearg_buf */ + 0, /* tracearg_used */ + + NULL, /* tracebuf_ptr */ + 0, /* tracebuf_used */ + + CHARS_0s, /* tracechr_buf */ + + NULL, /* tracedmp_buf */ + 0, /* tracedmp_used */ + + NULL, /* tracetry_buf */ + 0, /* tracetry_used */ + + { CHARS_0s, CHARS_0s }, /* traceatr_color_buf */ + 0, /* traceatr_color_sel */ + -1, /* traceatr_color_last */ +#if !defined(USE_PTHREADS) && USE_REENTRANT + 0, /* nested_tracef */ +#endif +#endif /* TRACE */ +#if NO_LEAKS + FALSE, /* leak_checking */ +#endif +}; + +#define STACK_FRAME_0 { { 0 }, 0 } +#define STACK_FRAME_0s { STACK_FRAME_0 } +#define NUM_VARS_0s { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } + +#define RIPOFF_0 { 0,0,0 } +#define RIPOFF_0s { RIPOFF_0 } + +NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = { + NULL, /* allocated */ + TRUE, /* use_env */ + FALSE, /* filter_mode */ + A_NORMAL, /* previous_attr */ + { /* tparm_state */ + NULL, /* tparam_base */ + + STACK_FRAME_0s, /* stack */ + 0, /* stack_ptr */ + + NULL, /* out_buff */ + 0, /* out_size */ + 0, /* out_used */ + + NULL, /* fmt_buff */ + 0, /* fmt_size */ + + NUM_VARS_0s, /* static_vars */ +#ifdef TRACE + NULL, /* tname */ +#endif + }, + NULL, /* saved_tty */ + FALSE, /* use_tioctl */ + 0, /* _outch */ +#ifndef USE_SP_RIPOFF + RIPOFF_0s, /* ripoff */ + NULL, /* rsp */ +#endif +#if NCURSES_NO_PADDING + FALSE, /* flag to set if padding disabled */ +#endif +#if BROKEN_LINKER || USE_REENTRANT + NULL, /* real_acs_map */ + 0, /* LINES */ + 0, /* COLS */ + 8, /* TABSIZE */ + 1000, /* ESCDELAY */ + 0, /* cur_term */ +#endif +#ifdef TRACE +#if BROKEN_LINKER || USE_REENTRANT + 0L, /* _outchars */ + NULL, /* _tputs_trace */ +#endif +#endif +}; +/* *INDENT-ON* */ + +/* + * wgetch() and other functions with a WINDOW* parameter may use a SCREEN* + * internally, and it is useful to allow those to be invoked without switching + * SCREEN's, e.g., for multi-threaded applications. + */ +NCURSES_EXPORT(SCREEN *) +_nc_screen_of(WINDOW *win) +{ + SCREEN *sp = 0; + + if (win != 0) { + sp = WINDOW_EXT(win, screen); + } + return (sp); +} + +/******************************************************************************/ +#ifdef USE_PTHREADS +static void +init_global_mutexes(void) +{ + static bool initialized = FALSE; + + if (!initialized) { + initialized = TRUE; + _nc_mutex_init(&_nc_globals.mutex_curses); + _nc_mutex_init(&_nc_globals.mutex_prescreen); + _nc_mutex_init(&_nc_globals.mutex_screen); + _nc_mutex_init(&_nc_globals.mutex_update); + _nc_mutex_init(&_nc_globals.mutex_tst_tracef); + _nc_mutex_init(&_nc_globals.mutex_tracef); + } +} + +NCURSES_EXPORT(void) +_nc_init_pthreads(void) +{ + if (_nc_use_pthreads) + return; +# if USE_WEAK_SYMBOLS + if ((pthread_mutex_init) == 0) + return; + if ((pthread_mutex_lock) == 0) + return; + if ((pthread_mutex_unlock) == 0) + return; + if ((pthread_mutex_trylock) == 0) + return; + if ((pthread_mutexattr_settype) == 0) + return; +# endif + _nc_use_pthreads = 1; + init_global_mutexes(); +} + +/* + * Use recursive mutexes if we have them - they're part of Unix98. + * For the cases where we do not, _nc_mutex_trylock() is used to avoid a + * deadlock, at the expense of memory leaks and unexpected failures that + * may not be handled by typical clients. + * + * FIXME - need configure check for PTHREAD_MUTEX_RECURSIVE, define it to + * PTHREAD_MUTEX_NORMAL if not supported. + */ +NCURSES_EXPORT(void) +_nc_mutex_init(pthread_mutex_t * obj) +{ + pthread_mutexattr_t recattr; + + if (_nc_use_pthreads) { + pthread_mutexattr_init(&recattr); + pthread_mutexattr_settype(&recattr, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init(obj, &recattr); + } +} + +NCURSES_EXPORT(int) +_nc_mutex_lock(pthread_mutex_t * obj) +{ + int rc = 0; + if (_nc_use_pthreads != 0) + rc = pthread_mutex_lock(obj); + return rc; +} + +NCURSES_EXPORT(int) +_nc_mutex_trylock(pthread_mutex_t * obj) +{ + int rc = 0; + if (_nc_use_pthreads != 0) + rc = pthread_mutex_trylock(obj); + return rc; +} + +NCURSES_EXPORT(int) +_nc_mutex_unlock(pthread_mutex_t * obj) +{ + int rc = 0; + if (_nc_use_pthreads != 0) + rc = pthread_mutex_unlock(obj); + return rc; +} +#endif /* USE_PTHREADS */ + +#if defined(USE_PTHREADS) || USE_PTHREADS_EINTR +#if USE_WEAK_SYMBOLS +/* + * NB: sigprocmask(2) is global but pthread_sigmask(3p) + * only for the calling thread. + */ +NCURSES_EXPORT(int) +_nc_sigprocmask(int how, const sigset_t * newmask, sigset_t * oldmask) +{ + if ((pthread_sigmask)) + return pthread_sigmask(how, newmask, oldmask); + else + return (sigprocmask) (how, newmask, oldmask); +} +#endif +#endif /* USE_PTHREADS */ diff --git a/third_party/ncurses/lib_delch.c b/third_party/ncurses/lib_delch.c new file mode 100644 index 000000000..8c9945789 --- /dev/null +++ b/third_party/ncurses/lib_delch.c @@ -0,0 +1,70 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2001,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_delch.c +** +** The routine wdelch(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_delch.c,v 1.14 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wdelch(WINDOW *win) +{ + int code = ERR; + + T((T_CALLED("wdelch(%p)"), (void *) win)); + + if (win) { + NCURSES_CH_T blank = win->_nc_bkgd; + struct ldat *line = &(win->_line[win->_cury]); + NCURSES_CH_T *end = &(line->text[win->_maxx]); + NCURSES_CH_T *temp2 = &(line->text[win->_curx + 1]); + NCURSES_CH_T *temp1 = temp2 - 1; + + CHANGED_TO_EOL(line, win->_curx, win->_maxx); + while (temp1 < end) + *temp1++ = *temp2++; + + *temp1 = blank; + + _nc_synchook(win); + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_delwin.c b/third_party/ncurses/lib_delwin.c new file mode 100644 index 000000000..dc5a39be9 --- /dev/null +++ b/third_party/ncurses/lib_delwin.c @@ -0,0 +1,102 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2008,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * + ****************************************************************************/ + +/* +** lib_delwin.c +** +** The routine delwin(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_delwin.c,v 1.24 2021/12/11 23:56:25 tom Exp $") + +static bool +cannot_delete(WINDOW *win) +{ + bool result = TRUE; + + if (IS_PAD(win)) { + result = FALSE; + } else { + WINDOWLIST *p; +#ifdef USE_SP_WINDOWLIST + SCREEN *sp = _nc_screen_of(win); +#endif + + for (each_window(SP_PARM, p)) { + if (&(p->win) == win) { + result = FALSE; + } else if (IS_SUBWIN(&(p->win)) + && p->win._parent == win) { + result = TRUE; + break; + } + } + } + return result; +} + +NCURSES_EXPORT(int) +delwin(WINDOW *win) +{ + int result = ERR; + + T((T_CALLED("delwin(%p)"), (void *) win)); + + if (_nc_try_global(curses) == 0) { + if (win == 0 + || cannot_delete(win)) { + result = ERR; + } else if (IS_PAD(win)) { + win->_parent = NULL; + result = _nc_freewin(win); + } else { +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(win); +#endif + if (IS_SUBWIN(win)) { + touchwin(win->_parent); + } else if (CurScreen(SP_PARM) != 0) { + touchwin(CurScreen(SP_PARM)); + } + result = _nc_freewin(win); + } + _nc_unlock_global(curses); + } + returnCode(result); +} diff --git a/third_party/ncurses/lib_dft_fgbg.c b/third_party/ncurses/lib_dft_fgbg.c new file mode 100644 index 000000000..170c0dcce --- /dev/null +++ b/third_party/ncurses/lib_dft_fgbg.c @@ -0,0 +1,104 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1998-on * + * Juergen Pfeifer 2009 * + ****************************************************************************/ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_dft_fgbg.c,v 1.31 2021/04/03 22:27:18 tom Exp $") + +/* + * Modify the behavior of color-pair 0 so that the library doesn't assume that + * it is white on black. This is an extension to XSI curses. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(use_default_colors) (NCURSES_SP_DCL0) +{ + T((T_CALLED("use_default_colors(%p)"), (void *) SP_PARM)); + returnCode(NCURSES_SP_NAME(assume_default_colors) (NCURSES_SP_ARGx -1, -1)); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +use_default_colors(void) +{ + return NCURSES_SP_NAME(use_default_colors) (CURRENT_SCREEN); +} +#endif + +/* + * Modify the behavior of color-pair 0 so that the library assumes that it + * is something specific, possibly not white on black. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(assume_default_colors) (NCURSES_SP_DCLx int fg, int bg) +{ + int code = ERR; + + T((T_CALLED("assume_default_colors(%p,%d,%d)"), (void *) SP_PARM, fg, bg)); + if (SP_PARM != 0) { +#ifdef USE_TERM_DRIVER + code = CallDriver_2(SP_PARM, td_defaultcolors, fg, bg); +#else + if ((orig_pair || orig_colors) && !initialize_pair) { + + SP_PARM->_default_color = isDefaultColor(fg) || isDefaultColor(bg); + SP_PARM->_has_sgr_39_49 = (tigetflag("AX") == TRUE); + SP_PARM->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : fg; + SP_PARM->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : bg; + if (SP_PARM->_color_pairs != 0) { + bool save = SP_PARM->_default_color; + SP_PARM->_assumed_color = TRUE; + SP_PARM->_default_color = TRUE; + NCURSES_SP_NAME(init_pair) (NCURSES_SP_ARGx 0, + (short)fg, + (short)bg); + SP_PARM->_default_color = save; + } + code = OK; + } +#endif + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +assume_default_colors(int fg, int bg) +{ + return NCURSES_SP_NAME(assume_default_colors) (CURRENT_SCREEN, fg, bg); +} +#endif diff --git a/third_party/ncurses/lib_echo.c b/third_party/ncurses/lib_echo.c new file mode 100644 index 000000000..5d4ffbf77 --- /dev/null +++ b/third_party/ncurses/lib_echo.c @@ -0,0 +1,84 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * echo.c + * + * Routines: + * echo() + * noecho() + * + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_echo.c,v 1.9 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(echo) (NCURSES_SP_DCL0) +{ + T((T_CALLED("echo(%p)"), (void *) SP_PARM)); + if (0 == SP_PARM) + returnCode(ERR); + SP_PARM->_echo = TRUE; + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +echo(void) +{ + return NCURSES_SP_NAME(echo) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(noecho) (NCURSES_SP_DCL0) +{ + T((T_CALLED("noecho(%p)"), (void *) SP_PARM)); + if (0 == SP_PARM) + returnCode(ERR); + SP_PARM->_echo = FALSE; + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +noecho(void) +{ + return NCURSES_SP_NAME(noecho) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_endwin.c b/third_party/ncurses/lib_endwin.c new file mode 100644 index 000000000..58afa1391 --- /dev/null +++ b/third_party/ncurses/lib_endwin.c @@ -0,0 +1,80 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_endwin.c +** +** The routine endwin(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_endwin.c,v 1.25 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(endwin) (NCURSES_SP_DCL0) +{ + int code = ERR; + + T((T_CALLED("endwin(%p)"), (void *) SP_PARM)); + + if (SP_PARM) { +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = TCBOf(SP_PARM); + + SP_PARM->_endwin = ewSuspend; + if (TCB && TCB->drv && TCB->drv->td_scexit) + TCB->drv->td_scexit(SP_PARM); +#else + SP_PARM->_endwin = ewSuspend; + SP_PARM->_mouse_wrap(SP_PARM); + _nc_screen_wrap(); + _nc_mvcur_wrap(); /* wrap up cursor addressing */ +#endif + code = NCURSES_SP_NAME(reset_shell_mode) (NCURSES_SP_ARG); + } + + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +endwin(void) +{ + return NCURSES_SP_NAME(endwin) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_erase.c b/third_party/ncurses/lib_erase.c new file mode 100644 index 000000000..a7a996a9a --- /dev/null +++ b/third_party/ncurses/lib_erase.c @@ -0,0 +1,97 @@ +/**************************************************************************** + * Copyright 2020,2022 Thomas E. Dickey * + * Copyright 1998-2009,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* +** lib_erase.c +** +** The routine werase(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_erase.c,v 1.20 2022/09/03 21:40:27 tom Exp $") + +NCURSES_EXPORT(int) +werase(WINDOW *win) +{ + int code = ERR; + NCURSES_CH_T *start; + + T((T_CALLED("werase(%p)"), (void *) win)); + + if (win) { + NCURSES_CH_T blank; + NCURSES_CH_T *sp; + int y; + + blank = win->_nc_bkgd; + for (y = 0; y <= win->_maxy; y++) { + NCURSES_CH_T *end; + + start = win->_line[y].text; + end = &start[win->_maxx]; + + /* + * If this is a derived window, we have to handle the case where + * a multicolumn character extends into the window that we are + * erasing. + */ + if_WIDEC({ + if (isWidecExt(start[0])) { + int x = (win->_parent != 0) ? (win->_begx) : 0; + while (x-- > 0) { + if (isWidecBase(start[-1])) { + --start; + break; + } + --start; + } + } + }); + + for (sp = start; sp <= end; sp++) + *sp = blank; + + win->_line[y].firstchar = 0; + win->_line[y].lastchar = win->_maxx; + } + win->_curx = win->_cury = 0; + win->_flags &= ~_WRAPPED; + _nc_synchook(win); + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_erasewchar.c b/third_party/ncurses/lib_erasewchar.c new file mode 100644 index 000000000..3c0483f47 --- /dev/null +++ b/third_party/ncurses/lib_erasewchar.c @@ -0,0 +1,96 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 2002-2010,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2002 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_erasewchar.c,v 1.5 2021/05/22 23:51:14 tom Exp $") + +/* + * erasewchar() + * + * Return erase character as given in cur_term->Ottyb. + */ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(erasewchar) (NCURSES_SP_DCLx wchar_t *wch); +NCURSES_EXPORT(int) +NCURSES_SP_NAME(erasewchar) (NCURSES_SP_DCLx wchar_t *wch) +{ + int value; + int result = ERR; + + T((T_CALLED("erasewchar()"))); + if ((value = NCURSES_SP_NAME(erasechar) (NCURSES_SP_ARG)) != ERR) { + *wch = (wchar_t) value; + result = OK; + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +erasewchar(wchar_t *wch) +{ + return NCURSES_SP_NAME(erasewchar) (CURRENT_SCREEN, wch); +} +#endif + +/* + * killwchar() + * + * Return kill character as given in cur_term->Ottyb. + */ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(killwchar) (NCURSES_SP_DCLx wchar_t *wch); +NCURSES_EXPORT(int) +NCURSES_SP_NAME(killwchar) (NCURSES_SP_DCLx wchar_t *wch) +{ + int value; + int result = ERR; + + T((T_CALLED("killwchar()"))); + if ((value = NCURSES_SP_NAME(killchar) (NCURSES_SP_ARG)) != ERR) { + *wch = (wchar_t) value; + result = OK; + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +killwchar(wchar_t *wch) +{ + return NCURSES_SP_NAME(killwchar) (CURRENT_SCREEN, wch); +} +#endif diff --git a/third_party/ncurses/lib_flash.c b/third_party/ncurses/lib_flash.c new file mode 100644 index 000000000..abb049cc3 --- /dev/null +++ b/third_party/ncurses/lib_flash.c @@ -0,0 +1,88 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * flash.c + * + * The routine flash(). + * + */ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_flash.c,v 1.15 2020/02/02 23:34:34 tom Exp $") + +/* + * flash() + * + * Flash the current terminal's screen if possible. If not, + * sound the audible bell if one exists. + * + */ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(flash) (NCURSES_SP_DCL0) +{ + int res = ERR; + + T((T_CALLED("flash(%p)"), (void *) SP_PARM)); +#ifdef USE_TERM_DRIVER + if (SP_PARM != 0) + res = CallDriver_1(SP_PARM, td_doBeepOrFlash, FALSE); +#else + if (HasTerminal(SP_PARM)) { + /* FIXME: should make sure that we are not in altchar mode */ + if (flash_screen) { + res = NCURSES_PUTP2_FLUSH("flash_screen", flash_screen); + } else if (bell) { + res = NCURSES_PUTP2_FLUSH("bell", bell); + } + } +#endif + returnCode(res); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +flash(void) +{ + return NCURSES_SP_NAME(flash) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_freeall.c b/third_party/ncurses/lib_freeall.c new file mode 100644 index 000000000..b8b6a785f --- /dev/null +++ b/third_party/ncurses/lib_freeall.c @@ -0,0 +1,201 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +#include "curses.priv.h" +#include "tic.h" + +#if HAVE_NC_FREEALL + +#if HAVE_LIBDBMALLOC +extern int malloc_errfd; /* FIXME */ +#endif + +MODULE_ID("$Id: lib_freeall.c,v 1.76 2021/11/06 21:52:49 tom Exp $") + +/* + * Free all ncurses data. This is used for testing only (there's no practical + * use for it as an extension). + */ +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_DCL0) +{ + static va_list empty_va; + + T((T_CALLED("_nc_freeall()"))); +#if NO_LEAKS + _nc_globals.leak_checking = TRUE; + if (SP_PARM != 0) { + if (SP_PARM->_oldnum_list != 0) { + FreeAndNull(SP_PARM->_oldnum_list); + } + if (SP_PARM->_panelHook.destroy != 0) { + SP_PARM->_panelHook.destroy(SP_PARM->_panelHook.stdscr_pseudo_panel); + } +#if NCURSES_EXT_COLORS + _nc_new_pair_leaks(SP_PARM); +#endif + } +#endif + if (SP_PARM != 0) { + _nc_lock_global(curses); + + while (WindowList(SP_PARM) != 0) { + WINDOWLIST *p, *q; + bool deleted = FALSE; + + /* Delete only windows that're not a parent */ + for (each_window(SP_PARM, p)) { + WINDOW *p_win = &(p->win); + bool found = FALSE; + + if (IS_PAD(p_win)) + continue; + +#ifndef USE_SP_WINDOWLIST + if (p->screen != SP_PARM) + continue; +#endif + + for (each_window(SP_PARM, q)) { + WINDOW *q_win = &(q->win); + +#ifndef USE_SP_WINDOWLIST + if (q->screen != SP_PARM) + continue; +#endif + + if ((p != q) + && IS_SUBWIN(q_win) + && (p_win == q_win->_parent)) { + found = TRUE; + break; + } + } + + if (!found) { + if (delwin(p_win) != ERR) + deleted = TRUE; + break; + } + } + + /* + * Don't continue to loop if the list is trashed. + */ + if (!deleted) + break; + } + delscreen(SP_PARM); + _nc_unlock_global(curses); + } + + (void) _nc_printf_string(0, empty_va); +#ifdef TRACE + (void) _nc_trace_buf(-1, (size_t) 0); +#endif +#if USE_WIDEC_SUPPORT + FreeIfNeeded(_nc_wacs); +#endif + _nc_leaks_tinfo(); + +#if HAVE_LIBDBMALLOC + malloc_dump(malloc_errfd); +#elif HAVE_LIBDMALLOC +#elif HAVE_LIBMPATROL + __mp_summary(); +#elif HAVE_PURIFY + purify_all_inuse(); +#endif + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_freeall(void) +{ + NCURSES_SP_NAME(_nc_freeall) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code) +{ + T((T_CALLED("_nc_free_and_exit(%d)"), code)); + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_ARG); +#ifdef TRACE + curses_trace(0); /* close trace file, freeing its setbuf */ + { + static va_list fake; + free(_nc_varargs("?", fake)); + } +#endif + exit(code); +} + +#else /* !HAVE_NC_FREEALL */ +NCURSES_EXPORT(void) +_nc_freeall(void) +{ +} + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code) +{ + if (SP_PARM) { + delscreen(SP_PARM); + } + exit(code); +} +#endif /* HAVE_NC_FREEALL */ + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_free_and_exit(int code) +{ + NCURSES_SP_NAME(_nc_free_and_exit) (CURRENT_SCREEN, code); +} +#endif + +NCURSES_EXPORT(void) +exit_curses(int code) +{ +#if NO_LEAKS +#if NCURSES_SP_FUNCS + NCURSES_SP_NAME(_nc_free_and_exit) (CURRENT_SCREEN, code); +#else + _nc_free_and_exit(code); /* deprecated... */ +#endif +#endif + exit(code); +} diff --git a/third_party/ncurses/lib_gen.c b/third_party/ncurses/lib_gen.c new file mode 100644 index 000000000..1d7411f0c --- /dev/null +++ b/third_party/ncurses/lib_gen.c @@ -0,0 +1,1170 @@ +/* This file was generated by ./base/MKlib_gen.sh generated */ + +/* + * DO NOT EDIT THIS FILE BY HAND! + * + * This is a file of trivial functions generated from macro + * definitions in curses.h to satisfy the XSI Curses requirement + * that every macro also exist as a callable function. + * + * It will never be linked unless you call one of the entry + * points with its normal macro definition disabled. In that + * case, if you have no shared libraries, it will indirectly + * pull most of the rest of the library into your link image. + */ +#define NCURSES_ATTR_T int +#include "ncurses_cfg.h" + +#undef NCURSES_NOMACROS /* _this_ file uses macros */ +#define NCURSES_NOMACROS 1 + +#include "curses.priv.h" + +NCURSES_EXPORT(int) addch (const chtype z) +{ + T((T_CALLED("addch(%s)"), _tracechtype2(0,z))); + returnCode(waddch(stdscr,(z))); +} +NCURSES_EXPORT(int) addchnstr (const chtype * a1, int z) +{ + T((T_CALLED("addchnstr(%p,%d)"), (const void *)a1, z)); + returnCode(waddchnstr(stdscr,(a1),(z))); +} +NCURSES_EXPORT(int) addchstr (const chtype * z) +{ + T((T_CALLED("addchstr(%p)"), (const void *)z)); + returnCode(waddchnstr(stdscr,(z),-1)); +} +NCURSES_EXPORT(int) addnstr (const char * a1, int z) +{ + T((T_CALLED("addnstr(%s,%d)"), _nc_visbuf2(0,a1), z)); + returnCode(waddnstr(stdscr,(a1),(z))); +} +NCURSES_EXPORT(int) addstr (const char * z) +{ + T((T_CALLED("addstr(%s)"), _nc_visbuf2(0,z))); + returnCode(waddnstr(stdscr,(z),-1)); +} +NCURSES_EXPORT(int) attroff (int z) +{ + T((T_CALLED("attroff(%s)"), _traceattr2(0,(chtype)z))); + returnCode(wattr_off(stdscr, (attr_t)((z)), NULL)); +} +NCURSES_EXPORT(int) attron (int z) +{ + T((T_CALLED("attron(%s)"), _traceattr2(0,(chtype)z))); + returnCode(wattr_on(stdscr, (attr_t)((z)), NULL)); +} +NCURSES_EXPORT(int) attrset (int z) +{ + T((T_CALLED("attrset(%s)"), _traceattr2(0,(chtype)z))); + returnIntAttr((attr_t)((0 != (const void *)((stdscr))) ? ((stdscr)->_color = (int)(((int)((((unsigned long)(((z))) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))), (stdscr)->_attrs = (attr_t)((z)), (0)) : (-1))); +} +NCURSES_EXPORT(int) attr_get (attr_t * a1, short * a2, void * z GCC_UNUSED) +{ + T((T_CALLED("attr_get(%p,%p,%p)"), (const void *)a1, (const void *)a2, (const void *)z)); + returnCode(((0 != (const void *)((stdscr))) ? ((void)((0 != (const void *)(((a1)))) ? (*((a1)) = (stdscr)->_attrs) : (0)), (void)((0 != (const void *)(((a2)))) ? (*((a2)) = (short) (stdscr)->_color) : (0)), (void)((0 != (const void *)(((z)))) ? (*(int *)((z)) = (stdscr)->_color) : (0)), (0)) : (-1))); +} +NCURSES_EXPORT(int) attr_off (attr_t a1, void * z) +{ + T((T_CALLED("attr_off(%s,%p)"), _traceattr2(0,a1), (const void *)z)); + returnCode(wattr_off(stdscr,(a1),(z))); +} +NCURSES_EXPORT(int) attr_on (attr_t a1, void * z) +{ + T((T_CALLED("attr_on(%s,%p)"), _traceattr2(0,a1), (const void *)z)); + returnCode(wattr_on(stdscr,(a1),(z))); +} +NCURSES_EXPORT(int) attr_set (attr_t a1, short a2, void * z GCC_UNUSED) +{ + T((T_CALLED("attr_set(%s,%#lx,%p)"), _traceattr2(0,a1), (long)a2, (const void *)z)); + returnCode(((0 != (const void *)((stdscr))) ? ((void)((stdscr)->_attrs = (((a1)) & ~((chtype)((((1U) << 8) - 1U)) << ((0) + 8))), (stdscr)->_color = ((z)) ? *(int *)((z)) : ((a2))), (0)) : (-1))); +} +NCURSES_EXPORT(int) bkgd (chtype z) +{ + T((T_CALLED("bkgd(%s)"), _tracechtype2(0,z))); + returnCode(wbkgd(stdscr,(z))); +} +NCURSES_EXPORT(void) bkgdset (chtype z) +{ + T((T_CALLED("bkgdset(%s)"), _tracechtype2(0,z))); + wbkgdset(stdscr,(z)); + returnVoid; +} +NCURSES_EXPORT(int) border (chtype a1, chtype a2, chtype a3, chtype a4, chtype a5, chtype a6, chtype a7, chtype z) +{ + T((T_CALLED("border(%s,%s,%s,%s,%s,%s,%s,%s)"), _tracechtype2(0,a1), _tracechtype2(1,a2), _tracechtype2(2,a3), _tracechtype2(3,a4), _tracechtype2(4,a5), _tracechtype2(5,a6), _tracechtype2(6,a7), _tracechtype2(7,z))); + returnCode(wborder(stdscr, a1, a2, a3, a4, a5, a6, a7, z)); +} +NCURSES_EXPORT(int) box (WINDOW * a1, chtype a2, chtype z) +{ + T((T_CALLED("box(%p,%s,%s)"), (const void *)a1, _tracechtype2(1,a2), _tracechtype2(2,z))); + returnCode(wborder(a1, a2, a2, z, z, 0, 0, 0, 0)); +} +NCURSES_EXPORT(int) chgat (int a1, attr_t a2, short a3, const void * z) +{ + T((T_CALLED("chgat(%d,%s,%#lx,%p)"), a1, _traceattr2(1,a2), (long)a3, (const void *)z)); + returnCode(wchgat(stdscr,(a1),(a2),(a3),(z))); +} +NCURSES_EXPORT(int) clear (void) +{ + T((T_CALLED("clear()"))); + returnCode(wclear(stdscr)); +} +NCURSES_EXPORT(int) clrtobot (void) +{ + T((T_CALLED("clrtobot()"))); + returnCode(wclrtobot(stdscr)); +} +NCURSES_EXPORT(int) clrtoeol (void) +{ + T((T_CALLED("clrtoeol()"))); + returnCode(wclrtoeol(stdscr)); +} +NCURSES_EXPORT(int) color_set (short a1, void * z) +{ + T((T_CALLED("color_set(%#lx,%p)"), (long)a1, (const void *)z)); + returnCode(wcolor_set(stdscr,(a1),(z))); +} +NCURSES_EXPORT(int) COLOR_PAIR (int z) +{ + T((T_CALLED("COLOR_PAIR(%d)"), z)); + returnCode((((chtype)(((z))) << ((0) + 8)) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8)))); +} +NCURSES_EXPORT(int) delch (void) +{ + T((T_CALLED("delch()"))); + returnCode(wdelch(stdscr)); +} +NCURSES_EXPORT(int) deleteln (void) +{ + T((T_CALLED("deleteln()"))); + returnCode(winsdelln(stdscr,-1)); +} +NCURSES_EXPORT(int) echochar (const chtype z) +{ + T((T_CALLED("echochar(%s)"), _tracechtype2(0,z))); + returnCode(wechochar(stdscr,(z))); +} +NCURSES_EXPORT(int) erase (void) +{ + T((T_CALLED("erase()"))); + returnCode(werase(stdscr)); +} +NCURSES_EXPORT(chtype) getbkgd (WINDOW * z) +{ + T((T_CALLED("getbkgd(%p)"), (const void *)z)); + returnChtype(((0 != (const void *)((z))) ? ((z)->_bkgd) : 0)); +} +NCURSES_EXPORT(int) getch (void) +{ + T((T_CALLED("getch()"))); + returnCode(wgetch(stdscr)); +} +NCURSES_EXPORT(int) getnstr (char * a1, int z) +{ + T((T_CALLED("getnstr(%p,%d)"), _nc_visbuf2(0,a1), z)); + returnCode(wgetnstr(stdscr, a1, (z))); +} +NCURSES_EXPORT(int) getstr (char * z) +{ + T((T_CALLED("getstr(%p)"), _nc_visbuf2(0,z))); + returnCode(wgetnstr(stdscr, (z), -1)); +} +NCURSES_EXPORT(int) hline (chtype a1, int z) +{ + T((T_CALLED("hline(%s,%d)"), _tracechtype2(0,a1), z)); + returnCode(whline(stdscr, a1, (z))); +} +NCURSES_EXPORT(chtype) inch (void) +{ + T((T_CALLED("inch()"))); + returnChtype(winch(stdscr)); +} +NCURSES_EXPORT(int) inchnstr (chtype * a1, int z) +{ + T((T_CALLED("inchnstr(%p,%d)"), (const void *)a1, z)); + returnCode(winchnstr(stdscr,(a1),(z))); +} +NCURSES_EXPORT(int) inchstr (chtype * z) +{ + T((T_CALLED("inchstr(%p)"), (const void *)z)); + returnCode(winchnstr(stdscr, (z), -1)); +} +NCURSES_EXPORT(int) innstr (char * a1, int z) +{ + return winnstr(stdscr,(a1),(z)) ; +} +NCURSES_EXPORT(int) insch (chtype z) +{ + T((T_CALLED("insch(%s)"), _tracechtype2(0,z))); + returnCode(winsch(stdscr,(z))); +} +NCURSES_EXPORT(int) insdelln (int z) +{ + T((T_CALLED("insdelln(%d)"), z)); + returnCode(winsdelln(stdscr,(z))); +} +NCURSES_EXPORT(int) insertln (void) +{ + T((T_CALLED("insertln()"))); + returnCode(winsdelln(stdscr,1)); +} +NCURSES_EXPORT(int) insnstr (const char * a1, int z) +{ + T((T_CALLED("insnstr(%s,%d)"), _nc_visbuf2(0,a1), z)); + returnCode(winsnstr(stdscr,(a1),(z))); +} +NCURSES_EXPORT(int) insstr (const char * z) +{ + T((T_CALLED("insstr(%s)"), _nc_visbuf2(0,z))); + returnCode(winsnstr(stdscr, (z), -1)); +} +NCURSES_EXPORT(int) instr (char * z) +{ + T((T_CALLED("instr(%s)"), _nc_visbuf2(0,z))); + returnCode(winnstr(stdscr, (z), -1)); +} +NCURSES_EXPORT(int) move (int a1, int z) +{ + T((T_CALLED("move(%d,%d)"), a1, z)); + returnCode(wmove(stdscr,(a1),(z))); +} +NCURSES_EXPORT(int) mvaddch (int a1, int a2, const chtype z) +{ + T((T_CALLED("mvaddch(%d,%d,%s)"), a1, a2, _tracechtype2(2,z))); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : waddch((stdscr),((z))))); +} +NCURSES_EXPORT(int) mvaddchnstr (int a1, int a2, const chtype * a3, int z) +{ + T((T_CALLED("mvaddchnstr(%d,%d,%p,%d)"), a1, a2, (const void *)a3, z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : waddchnstr((stdscr),((a3)),((z))))); +} +NCURSES_EXPORT(int) mvaddchstr (int a1, int a2, const chtype * z) +{ + T((T_CALLED("mvaddchstr(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : waddchnstr((stdscr),((z)),-1))); +} +NCURSES_EXPORT(int) mvaddnstr (int a1, int a2, const char * a3, int z) +{ + T((T_CALLED("mvaddnstr(%d,%d,%s,%d)"), a1, a2, _nc_visbuf2(2,a3), z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : waddnstr((stdscr),((a3)),((z))))); +} +NCURSES_EXPORT(int) mvaddstr (int a1, int a2, const char * z) +{ + T((T_CALLED("mvaddstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : waddnstr((stdscr),((z)),-1))); +} +NCURSES_EXPORT(int) mvchgat (int a1, int a2, int a3, attr_t a4, short a5, const void * z) +{ + T((T_CALLED("mvchgat(%d,%d,%d,%s,%#lx,%p)"), a1, a2, a3, _traceattr2(3,a4), (long)a5, (const void *)z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : wchgat((stdscr),((a3)),((a4)),((a5)),((z))))); +} +NCURSES_EXPORT(int) mvdelch (int a1, int z) +{ + T((T_CALLED("mvdelch(%d,%d)"), a1, z)); + returnCode((wmove((stdscr),((a1)),((z))) == (-1) ? (-1) : wdelch(stdscr))); +} +NCURSES_EXPORT(int) mvgetch (int a1, int z) +{ + T((T_CALLED("mvgetch(%d,%d)"), a1, z)); + returnCode((wmove((stdscr),((a1)),((z))) == (-1) ? (-1) : wgetch(stdscr))); +} +NCURSES_EXPORT(int) mvgetnstr (int a1, int a2, char * a3, int z) +{ + T((T_CALLED("mvgetnstr(%d,%d,%p,%d)"), a1, a2, _nc_visbuf2(2,a3), z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : wgetnstr((stdscr),((a3)),((z))))); +} +NCURSES_EXPORT(int) mvgetstr (int a1, int a2, char * z) +{ + T((T_CALLED("mvgetstr(%d,%d,%p)"), a1, a2, _nc_visbuf2(2,z))); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : wgetnstr((stdscr), ((z)), -1))); +} +NCURSES_EXPORT(int) mvhline (int a1, int a2, chtype a3, int z) +{ + T((T_CALLED("mvhline(%d,%d,%s,%d)"), a1, a2, _tracechtype2(2,a3), z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : whline((stdscr),((a3)),((z))))); +} +NCURSES_EXPORT(chtype) mvinch (int a1, int z) +{ + T((T_CALLED("mvinch(%d,%d)"), a1, z)); + returnChtype((wmove((stdscr),((a1)),((z))) == (-1) ? (chtype)((-1)) : winch(stdscr))); +} +NCURSES_EXPORT(int) mvinchnstr (int a1, int a2, chtype * a3, int z) +{ + T((T_CALLED("mvinchnstr(%d,%d,%p,%d)"), a1, a2, (const void *)a3, z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : winchnstr((stdscr),((a3)),((z))))); +} +NCURSES_EXPORT(int) mvinchstr (int a1, int a2, chtype * z) +{ + T((T_CALLED("mvinchstr(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : winchnstr((stdscr), ((z)), -1))); +} +NCURSES_EXPORT(int) mvinnstr (int a1, int a2, char * a3, int z) +{ + return (wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : winnstr((stdscr),((a3)),((z)))) ; +} +NCURSES_EXPORT(int) mvinsch (int a1, int a2, chtype z) +{ + T((T_CALLED("mvinsch(%d,%d,%s)"), a1, a2, _tracechtype2(2,z))); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : winsch((stdscr),((z))))); +} +NCURSES_EXPORT(int) mvinsnstr (int a1, int a2, const char * a3, int z) +{ + T((T_CALLED("mvinsnstr(%d,%d,%s,%d)"), a1, a2, _nc_visbuf2(2,a3), z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : winsnstr((stdscr),((a3)),((z))))); +} +NCURSES_EXPORT(int) mvinsstr (int a1, int a2, const char * z) +{ + T((T_CALLED("mvinsstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : winsnstr((stdscr), ((z)), -1))); +} +NCURSES_EXPORT(int) mvinstr (int a1, int a2, char * z) +{ + T((T_CALLED("mvinstr(%d,%d,%s)"), a1, a2, _nc_visbuf2(2,z))); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : winnstr((stdscr), ((z)), -1))); +} +NCURSES_EXPORT(int) mvvline (int a1, int a2, chtype a3, int z) +{ + T((T_CALLED("mvvline(%d,%d,%s,%d)"), a1, a2, _tracechtype2(2,a3), z)); + returnCode((wmove((stdscr),((a1)),((a2))) == (-1) ? (-1) : wvline((stdscr),((a3)),((z))))); +} +NCURSES_EXPORT(int) mvwaddch (WINDOW * a1, int a2, int a3, const chtype z) +{ + T((T_CALLED("mvwaddch(%p,%d,%d,%s)"), (const void *)a1, a2, a3, _tracechtype2(3,z))); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : waddch((a1),(z)))); +} +NCURSES_EXPORT(int) mvwaddchnstr (WINDOW * a1, int a2, int a3, const chtype * a4, int z) +{ + T((T_CALLED("mvwaddchnstr(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, (const void *)a4, z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : waddchnstr((a1),(a4),(z)))); +} +NCURSES_EXPORT(int) mvwaddchstr (WINDOW * a1, int a2, int a3, const chtype * z) +{ + T((T_CALLED("mvwaddchstr(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : waddchnstr((a1),(z),-1))); +} +NCURSES_EXPORT(int) mvwaddnstr (WINDOW * a1, int a2, int a3, const char * a4, int z) +{ + T((T_CALLED("mvwaddnstr(%p,%d,%d,%s,%d)"), (const void *)a1, a2, a3, _nc_visbuf2(3,a4), z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : waddnstr((a1),(a4),(z)))); +} +NCURSES_EXPORT(int) mvwaddstr (WINDOW * a1, int a2, int a3, const char * z) +{ + T((T_CALLED("mvwaddstr(%p,%d,%d,%s)"), (const void *)a1, a2, a3, _nc_visbuf2(3,z))); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : waddnstr((a1),(z),-1))); +} +NCURSES_EXPORT(int) mvwchgat (WINDOW * a1, int a2, int a3, int a4, attr_t a5, short a6, const void * z) +{ + T((T_CALLED("mvwchgat(%p,%d,%d,%d,%s,%#lx,%p)"), (const void *)a1, a2, a3, a4, _traceattr2(4,a5), (long)a6, (const void *)z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : wchgat((a1),(a4),(a5),(a6),(z)))); +} +NCURSES_EXPORT(int) mvwdelch (WINDOW * a1, int a2, int z) +{ + T((T_CALLED("mvwdelch(%p,%d,%d)"), (const void *)a1, a2, z)); + returnCode((wmove((a1),(a2),(z)) == (-1) ? (-1) : wdelch(a1))); +} +NCURSES_EXPORT(int) mvwgetch (WINDOW * a1, int a2, int z) +{ + T((T_CALLED("mvwgetch(%p,%d,%d)"), (const void *)a1, a2, z)); + returnCode((wmove((a1),(a2),(z)) == (-1) ? (-1) : wgetch(a1))); +} +NCURSES_EXPORT(int) mvwgetnstr (WINDOW * a1, int a2, int a3, char * a4, int z) +{ + T((T_CALLED("mvwgetnstr(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, _nc_visbuf2(3,a4), z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : wgetnstr((a1),(a4),(z)))); +} +NCURSES_EXPORT(int) mvwgetstr (WINDOW * a1, int a2, int a3, char * z) +{ + T((T_CALLED("mvwgetstr(%p,%d,%d,%p)"), (const void *)a1, a2, a3, _nc_visbuf2(3,z))); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : wgetnstr((a1), (z), -1))); +} +NCURSES_EXPORT(int) mvwhline (WINDOW * a1, int a2, int a3, chtype a4, int z) +{ + T((T_CALLED("mvwhline(%p,%d,%d,%s,%d)"), (const void *)a1, a2, a3, _tracechtype2(3,a4), z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : whline((a1),(a4),(z)))); +} +NCURSES_EXPORT(chtype) mvwinch (WINDOW * a1, int a2, int z) +{ + T((T_CALLED("mvwinch(%p,%d,%d)"), (const void *)a1, a2, z)); + returnChtype((wmove((a1),(a2),(z)) == (-1) ? (chtype)((-1)) : winch(a1))); +} +NCURSES_EXPORT(int) mvwinchnstr (WINDOW * a1, int a2, int a3, chtype * a4, int z) +{ + T((T_CALLED("mvwinchnstr(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, (const void *)a4, z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : winchnstr((a1),(a4),(z)))); +} +NCURSES_EXPORT(int) mvwinchstr (WINDOW * a1, int a2, int a3, chtype * z) +{ + T((T_CALLED("mvwinchstr(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : winchnstr((a1), (z), -1))); +} +NCURSES_EXPORT(int) mvwinnstr (WINDOW * a1, int a2, int a3, char * a4, int z) +{ + return (wmove((a1),(a2),(a3)) == (-1) ? (-1) : winnstr((a1),(a4),(z))) ; +} +NCURSES_EXPORT(int) mvwinsch (WINDOW * a1, int a2, int a3, chtype z) +{ + T((T_CALLED("mvwinsch(%p,%d,%d,%s)"), (const void *)a1, a2, a3, _tracechtype2(3,z))); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : winsch((a1),(z)))); +} +NCURSES_EXPORT(int) mvwinsnstr (WINDOW * a1, int a2, int a3, const char * a4, int z) +{ + T((T_CALLED("mvwinsnstr(%p,%d,%d,%s,%d)"), (const void *)a1, a2, a3, _nc_visbuf2(3,a4), z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : winsnstr((a1),(a4),(z)))); +} +NCURSES_EXPORT(int) mvwinsstr (WINDOW * a1, int a2, int a3, const char * z) +{ + T((T_CALLED("mvwinsstr(%p,%d,%d,%s)"), (const void *)a1, a2, a3, _nc_visbuf2(3,z))); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : winsnstr((a1), (z), -1))); +} +NCURSES_EXPORT(int) mvwinstr (WINDOW * a1, int a2, int a3, char * z) +{ + T((T_CALLED("mvwinstr(%p,%d,%d,%s)"), (const void *)a1, a2, a3, _nc_visbuf2(3,z))); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : winnstr((a1), (z), -1))); +} +NCURSES_EXPORT(int) mvwvline (WINDOW * a1, int a2, int a3, chtype a4, int z) +{ + T((T_CALLED("mvwvline(%p,%d,%d,%s,%d)"), (const void *)a1, a2, a3, _tracechtype2(3,a4), z)); + returnCode((wmove((a1),(a2),(a3)) == (-1) ? (-1) : wvline((a1),(a4),(z)))); +} +NCURSES_EXPORT(int) PAIR_NUMBER (int z) +{ + T((T_CALLED("PAIR_NUMBER(%d)"), z)); + returnCode(((int)((((unsigned long)((z)) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))); +} +NCURSES_EXPORT(int) redrawwin (WINDOW * z) +{ + T((T_CALLED("redrawwin(%p)"), (const void *)z)); + returnCode(wredrawln(z, 0, ((0 != (const void *)((z))) ? (z)->_maxy+1 : -1))); +} +NCURSES_EXPORT(int) refresh (void) +{ + T((T_CALLED("refresh()"))); + returnCode(wrefresh(stdscr)); +} +NCURSES_EXPORT(int) scrl (int z) +{ + T((T_CALLED("scrl(%d)"), z)); + returnCode(wscrl(stdscr,(z))); +} +NCURSES_EXPORT(int) scroll (WINDOW * z) +{ + T((T_CALLED("scroll(%p)"), (const void *)z)); + returnCode(wscrl(z,1)); +} +NCURSES_EXPORT(int) setscrreg (int a1, int z) +{ + T((T_CALLED("setscrreg(%d,%d)"), a1, z)); + returnCode(wsetscrreg(stdscr,(a1),(z))); +} +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) slk_attr_off (const attr_t a1, void * z) +{ + T((T_CALLED("slk_attr_off(%s,%p)"), _traceattr2(0,a1), (const void *)z)); + returnCode(((z) ? (-1) : slk_attroff(a1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) slk_attr_on (attr_t a1, void * z) +{ + T((T_CALLED("slk_attr_on(%s,%p)"), _traceattr2(0,a1), (const void *)z)); + returnCode(((z) ? (-1) : slk_attron(a1))); +} +#endif +NCURSES_EXPORT(int) standout (void) +{ + T((T_CALLED("standout()"))); + returnIntAttr((attr_t)(((0 != (const void *)((stdscr))) ? ((stdscr)->_color = (int)(((int)((((unsigned long)((((chtype)((1U)) << ((8) + 8)))) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))), (stdscr)->_attrs = (attr_t)(((chtype)((1U)) << ((8) + 8))), (0)) : (-1)))); +} +NCURSES_EXPORT(int) standend (void) +{ + T((T_CALLED("standend()"))); + returnIntAttr((attr_t)(((0 != (const void *)((stdscr))) ? ((stdscr)->_color = (int)(((int)((((unsigned long)(((1U - 1U))) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))), (stdscr)->_attrs = (attr_t)((1U - 1U)), (0)) : (-1)))); +} +NCURSES_EXPORT(void) timeout (int z) +{ + T((T_CALLED("timeout(%d)"), z)); + wtimeout(stdscr,(z)); + returnVoid; +} +NCURSES_EXPORT(int) touchline (WINDOW * a1, int a2, int z) +{ + T((T_CALLED("touchline(%p,%d,%d)"), (const void *)a1, a2, z)); + returnCode(wtouchln((a1), a2, z, 1)); +} +NCURSES_EXPORT(int) touchwin (WINDOW * z) +{ + T((T_CALLED("touchwin(%p)"), (const void *)z)); + returnCode(wtouchln((z), 0, ((0 != (const void *)((z))) ? ((z)->_maxy + 1) : (-1)), 1)); +} +NCURSES_EXPORT(int) untouchwin (WINDOW * z) +{ + T((T_CALLED("untouchwin(%p)"), (const void *)z)); + returnCode(wtouchln((z), 0, ((0 != (const void *)((z))) ? ((z)->_maxy + 1) : (-1)), 0)); +} +NCURSES_EXPORT(int) vline (chtype a1, int z) +{ + T((T_CALLED("vline(%s,%d)"), _tracechtype2(0,a1), z)); + returnCode(wvline(stdscr, a1, (z))); +} +NCURSES_EXPORT(int) waddchstr (WINDOW * a1, const chtype * z) +{ + T((T_CALLED("waddchstr(%p,%p)"), (const void *)a1, (const void *)z)); + returnCode(waddchnstr(a1,z,-1)); +} +NCURSES_EXPORT(int) waddstr (WINDOW * a1, const char * z) +{ + T((T_CALLED("waddstr(%p,%s)"), (const void *)a1, _nc_visbuf2(1,z))); + returnCode(waddnstr(a1,z,-1)); +} +NCURSES_EXPORT(int) wattron (WINDOW * a1, int z) +{ + T((T_CALLED("wattron(%p,%d)"), (const void *)a1, z)); + returnCode(wattr_on(a1, (attr_t)(z), NULL)); +} +NCURSES_EXPORT(int) wattroff (WINDOW * a1, int z) +{ + T((T_CALLED("wattroff(%p,%d)"), (const void *)a1, z)); + returnCode(wattr_off(a1, (attr_t)(z), NULL)); +} +NCURSES_EXPORT(int) wattrset (WINDOW * a1, int z) +{ + T((T_CALLED("wattrset(%p,%d)"), (const void *)a1, z)); + returnIntAttr((attr_t)((0 != (const void *)((a1))) ? ((a1)->_color = (int)(((int)((((unsigned long)((z)) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))), (a1)->_attrs = (attr_t)(z), (0)) : (-1))); +} +NCURSES_EXPORT(int) wattr_get (WINDOW * a1, attr_t * a2, short * a3, void * z GCC_UNUSED) +{ + T((T_CALLED("wattr_get(%p,%p,%p,%p)"), (const void *)a1, (const void *)a2, (const void *)a3, (const void *)z)); + returnCode(((0 != (const void *)((a1))) ? ((void)((0 != (const void *)((a2))) ? (*(a2) = (a1)->_attrs) : (0)), (void)((0 != (const void *)((a3))) ? (*(a3) = (short) (a1)->_color) : (0)), (void)((0 != (const void *)((z))) ? (*(int *)(z) = (a1)->_color) : (0)), (0)) : (-1))); +} +NCURSES_EXPORT(int) wattr_set (WINDOW * a1, attr_t a2, short a3, void * z GCC_UNUSED) +{ + T((T_CALLED("wattr_set(%p,%s,%#lx,%p)"), (const void *)a1, _traceattr2(1,a2), (long)a3, (const void *)z)); + returnCode(((0 != (const void *)((a1))) ? ((void)((a1)->_attrs = ((a2) & ~((chtype)((((1U) << 8) - 1U)) << ((0) + 8))), (a1)->_color = (z) ? *(int *)(z) : (a3)), (0)) : (-1))); +} +NCURSES_EXPORT(int) wdeleteln (WINDOW * z) +{ + T((T_CALLED("wdeleteln(%p)"), (const void *)z)); + returnCode(winsdelln(z,-1)); +} +NCURSES_EXPORT(int) wgetstr (WINDOW * a1, char * z) +{ + T((T_CALLED("wgetstr(%p,%p)"), (const void *)a1, _nc_visbuf2(1,z))); + returnCode(wgetnstr(a1, z, -1)); +} +NCURSES_EXPORT(int) winchstr (WINDOW * a1, chtype * z) +{ + T((T_CALLED("winchstr(%p,%p)"), (const void *)a1, (const void *)z)); + returnCode(winchnstr(a1, z, -1)); +} +NCURSES_EXPORT(int) winsertln (WINDOW * z) +{ + T((T_CALLED("winsertln(%p)"), (const void *)z)); + returnCode(winsdelln(z,1)); +} +NCURSES_EXPORT(int) winsstr (WINDOW * a1, const char * z) +{ + T((T_CALLED("winsstr(%p,%s)"), (const void *)a1, _nc_visbuf2(1,z))); + returnCode(winsnstr(a1, z, -1)); +} +NCURSES_EXPORT(int) winstr (WINDOW * a1, char * z) +{ + T((T_CALLED("winstr(%p,%s)"), (const void *)a1, _nc_visbuf2(1,z))); + returnCode(winnstr(a1, z, -1)); +} +NCURSES_EXPORT(int) wstandout (WINDOW * z) +{ + T((T_CALLED("wstandout(%p)"), (const void *)z)); + returnIntAttr((attr_t)(((0 != (const void *)((z))) ? ((z)->_color = (int)(((int)((((unsigned long)((((chtype)((1U)) << ((8) + 8)))) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))), (z)->_attrs = (attr_t)(((chtype)((1U)) << ((8) + 8))), (0)) : (-1)))); +} +NCURSES_EXPORT(int) wstandend (WINDOW * z) +{ + T((T_CALLED("wstandend(%p)"), (const void *)z)); + returnIntAttr((attr_t)(((0 != (const void *)((z))) ? ((z)->_color = (int)(((int)((((unsigned long)(((1U - 1U))) & ((chtype)((((1U) << 8) - 1U)) << ((0) + 8))) >> 8)))), (z)->_attrs = (attr_t)((1U - 1U)), (0)) : (-1)))); +} +NCURSES_EXPORT(int) getattrs (const WINDOW * z) +{ + T((T_CALLED("getattrs(%p)"), (const void *)z)); + returnCode((int)((0 != (const void *)((z))) ? (z)->_attrs : (1U - 1U))); +} +NCURSES_EXPORT(int) getcurx (const WINDOW * z) +{ + T((T_CALLED("getcurx(%p)"), (const void *)z)); + returnCode(((0 != (const void *)((z))) ? (z)->_curx : (-1))); +} +NCURSES_EXPORT(int) getcury (const WINDOW * z) +{ + T((T_CALLED("getcury(%p)"), (const void *)z)); + returnCode(((0 != (const void *)((z))) ? (z)->_cury : (-1))); +} +NCURSES_EXPORT(int) getbegx (const WINDOW * z) +{ + T((T_CALLED("getbegx(%p)"), (const void *)z)); + returnCode(((0 != (const void *)((z))) ? (z)->_begx : (-1))); +} +NCURSES_EXPORT(int) getbegy (const WINDOW * z) +{ + T((T_CALLED("getbegy(%p)"), (const void *)z)); + returnCode(((0 != (const void *)((z))) ? (z)->_begy : (-1))); +} +NCURSES_EXPORT(int) getmaxx (const WINDOW * z) +{ + T((T_CALLED("getmaxx(%p)"), (const void *)z)); + returnCode(((0 != (const void *)((z))) ? ((z)->_maxx + 1) : (-1))); +} +NCURSES_EXPORT(int) getmaxy (const WINDOW * z) +{ + T((T_CALLED("getmaxy(%p)"), (const void *)z)); + returnCode(((0 != (const void *)((z))) ? ((z)->_maxy + 1) : (-1))); +} +NCURSES_EXPORT(int) getparx (const WINDOW * z) +{ + T((T_CALLED("getparx(%p)"), (const void *)z)); + returnCode(((0 != (const void *)((z))) ? (z)->_parx : (-1))); +} +NCURSES_EXPORT(int) getpary (const WINDOW * z) +{ + T((T_CALLED("getpary(%p)"), (const void *)z)); + returnCode(((0 != (const void *)((z))) ? (z)->_pary : (-1))); +} +NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW * z) +{ + T((T_CALLED("wgetparent(%p)"), (const void *)z)); + returnWin(((0 != (const void *)((z))) ? (z)->_parent : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_cleared (const WINDOW * z) +{ + T((T_CALLED("is_cleared(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? (z)->_clear : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_idcok (const WINDOW * z) +{ + T((T_CALLED("is_idcok(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? (z)->_idcok : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_idlok (const WINDOW * z) +{ + T((T_CALLED("is_idlok(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? (z)->_idlok : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_immedok (const WINDOW * z) +{ + T((T_CALLED("is_immedok(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? (z)->_immed : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_keypad (const WINDOW * z) +{ + T((T_CALLED("is_keypad(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? (z)->_use_keypad : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_leaveok (const WINDOW * z) +{ + T((T_CALLED("is_leaveok(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? (z)->_leaveok : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_nodelay (const WINDOW * z) +{ + T((T_CALLED("is_nodelay(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? ((z)->_delay == 0) : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_notimeout (const WINDOW * z) +{ + T((T_CALLED("is_notimeout(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? (z)->_notimeout : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_pad (const WINDOW * z) +{ + T((T_CALLED("is_pad(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? ((z)->_flags & 0x10) != 0 : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_scrollok (const WINDOW * z) +{ + T((T_CALLED("is_scrollok(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? (z)->_scroll : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_subwin (const WINDOW * z) +{ + T((T_CALLED("is_subwin(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? ((z)->_flags & 0x01) != 0 : 0)); +} +NCURSES_EXPORT(NCURSES_BOOL) is_syncok (const WINDOW * z) +{ + T((T_CALLED("is_syncok(%p)"), (const void *)z)); + returnBool(((0 != (const void *)((z))) ? (z)->_sync : 0)); +} +NCURSES_EXPORT(int) wgetdelay (const WINDOW * z) +{ + T((T_CALLED("wgetdelay(%p)"), (const void *)z)); + returnCode(((0 != (const void *)((z))) ? (z)->_delay : 0)); +} +NCURSES_EXPORT(int) wgetscrreg (const WINDOW * a1, int * a2, int * z) +{ + T((T_CALLED("wgetscrreg(%p,%p,%p)"), (const void *)a1, (const void *)a2, (const void *)z)); + returnCode(((0 != (const void *)((a1))) ? (*(a2) = (a1)->_regtop, *(z) = (a1)->_regbottom, (0)) : (-1))); +} +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) add_wch (const cchar_t * z) +{ + T((T_CALLED("add_wch(%p)"), (const void *)z)); + returnCode(wadd_wch(stdscr,(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) add_wchnstr (const cchar_t * a1, int z) +{ + T((T_CALLED("add_wchnstr(%p,%d)"), (const void *)a1, z)); + returnCode(wadd_wchnstr(stdscr,(a1),(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) add_wchstr (const cchar_t * z) +{ + T((T_CALLED("add_wchstr(%p)"), (const void *)z)); + returnCode(wadd_wchnstr((stdscr),((z)),-1)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) addnwstr (const wchar_t * a1, int z) +{ + T((T_CALLED("addnwstr(%p,%d)"), (const void *)a1, z)); + returnCode(waddnwstr(stdscr,(a1),(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) addwstr (const wchar_t * z) +{ + T((T_CALLED("addwstr(%p)"), (const void *)z)); + returnCode(waddnwstr((stdscr),((z)),-1)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) bkgrnd (const cchar_t * z) +{ + T((T_CALLED("bkgrnd(%p)"), (const void *)z)); + returnCode(wbkgrnd(stdscr,(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(void) bkgrndset (const cchar_t * z) +{ + T((T_CALLED("bkgrndset(%p)"), (const void *)z)); + wbkgrndset(stdscr,(z)); + returnVoid; +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) border_set (const cchar_t * a1, const cchar_t * a2, const cchar_t * a3, const cchar_t * a4, const cchar_t * a5, const cchar_t * a6, const cchar_t * a7, const cchar_t * z) +{ + T((T_CALLED("border_set(%p,%p,%p,%p,%p,%p,%p,%p)"), (const void *)a1, (const void *)a2, (const void *)a3, (const void *)a4, (const void *)a5, (const void *)a6, (const void *)a7, (const void *)z)); + returnCode(wborder_set(stdscr,(a1),(a2),(a3),(a4),a5,a6,a7,z)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) box_set (WINDOW * a1, const cchar_t * a2, const cchar_t * z) +{ + T((T_CALLED("box_set(%p,%p,%p)"), (const void *)a1, (const void *)a2, (const void *)z)); + returnCode(wborder_set((a1),(a2),(a2),(z),(z),0,0,0,0)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) echo_wchar (const cchar_t * z) +{ + T((T_CALLED("echo_wchar(%p)"), (const void *)z)); + returnCode(wecho_wchar(stdscr,(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) get_wch (wint_t * z) +{ + T((T_CALLED("get_wch(%p)"), (const void *)z)); + returnCode(wget_wch(stdscr,(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) get_wstr (wint_t * z) +{ + T((T_CALLED("get_wstr(%p)"), (const void *)z)); + returnCode(wgetn_wstr((stdscr),((z)),-1)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) getbkgrnd (cchar_t * z) +{ + T((T_CALLED("getbkgrnd(%p)"), (const void *)z)); + returnCode(((0 != (const void *)(((z)))) ? ((stdscr) ? (*((z)) = (stdscr)->_bkgrnd) : *((z)), (0)) : (-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) getn_wstr (wint_t * a1, int z) +{ + T((T_CALLED("getn_wstr(%p,%d)"), (const void *)a1, z)); + returnCode(wgetn_wstr(stdscr,(a1),(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) hline_set (const cchar_t * a1, int z) +{ + T((T_CALLED("hline_set(%p,%d)"), (const void *)a1, z)); + returnCode(whline_set(stdscr,(a1),(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) in_wch (cchar_t * z) +{ + T((T_CALLED("in_wch(%p)"), (const void *)z)); + returnCode(win_wch(stdscr,(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) in_wchnstr (cchar_t * a1, int z) +{ + T((T_CALLED("in_wchnstr(%p,%d)"), (const void *)a1, z)); + returnCode(win_wchnstr(stdscr,(a1),(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) in_wchstr (cchar_t * z) +{ + T((T_CALLED("in_wchstr(%p)"), (const void *)z)); + returnCode(win_wchnstr((stdscr),((z)),-1)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) innwstr (wchar_t * a1, int z) +{ + return winnwstr(stdscr,(a1),(z)) ; +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) ins_nwstr (const wchar_t * a1, int z) +{ + T((T_CALLED("ins_nwstr(%p,%d)"), (const void *)a1, z)); + returnCode(wins_nwstr(stdscr,(a1),(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) ins_wch (const cchar_t * z) +{ + T((T_CALLED("ins_wch(%p)"), (const void *)z)); + returnCode(wins_wch(stdscr,(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) ins_wstr (const wchar_t * z) +{ + T((T_CALLED("ins_wstr(%p)"), (const void *)z)); + returnCode(wins_nwstr((stdscr),((z)),-1)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) inwstr (wchar_t * z) +{ + T((T_CALLED("inwstr(%p)"), (const void *)z)); + returnCode(winwstr(stdscr,(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvadd_wch (int a1, int a2, const cchar_t * z) +{ + T((T_CALLED("mvadd_wch(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wadd_wch((stdscr),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvadd_wchnstr (int a1, int a2, const cchar_t * a3, int z) +{ + T((T_CALLED("mvadd_wchnstr(%d,%d,%p,%d)"), a1, a2, (const void *)a3, z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wadd_wchnstr((stdscr),((a3)),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvadd_wchstr (int a1, int a2, const cchar_t * z) +{ + T((T_CALLED("mvadd_wchstr(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wadd_wchnstr(((stdscr)),(((z))),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvaddnwstr (int a1, int a2, const wchar_t * a3, int z) +{ + T((T_CALLED("mvaddnwstr(%d,%d,%p,%d)"), a1, a2, (const void *)a3, z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : waddnwstr((stdscr),((a3)),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvaddwstr (int a1, int a2, const wchar_t * z) +{ + T((T_CALLED("mvaddwstr(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : waddnwstr(((stdscr)),(((z))),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvget_wch (int a1, int a2, wint_t * z) +{ + T((T_CALLED("mvget_wch(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wget_wch((stdscr),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvget_wstr (int a1, int a2, wint_t * z) +{ + T((T_CALLED("mvget_wstr(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wgetn_wstr(((stdscr)),(((z))),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvgetn_wstr (int a1, int a2, wint_t * a3, int z) +{ + T((T_CALLED("mvgetn_wstr(%d,%d,%p,%d)"), a1, a2, (const void *)a3, z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wgetn_wstr((stdscr),((a3)),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvhline_set (int a1, int a2, const cchar_t * a3, int z) +{ + T((T_CALLED("mvhline_set(%d,%d,%p,%d)"), a1, a2, (const void *)a3, z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : whline_set((stdscr),((a3)),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvin_wch (int a1, int a2, cchar_t * z) +{ + T((T_CALLED("mvin_wch(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : win_wch((stdscr),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvin_wchnstr (int a1, int a2, cchar_t * a3, int z) +{ + T((T_CALLED("mvin_wchnstr(%d,%d,%p,%d)"), a1, a2, (const void *)a3, z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : win_wchnstr((stdscr),((a3)),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvin_wchstr (int a1, int a2, cchar_t * z) +{ + T((T_CALLED("mvin_wchstr(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : win_wchnstr(((stdscr)),(((z))),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvinnwstr (int a1, int a2, wchar_t * a3, int z) +{ + return (wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : winnwstr((stdscr),((a3)),((z)))) ; +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvins_nwstr (int a1, int a2, const wchar_t * a3, int z) +{ + T((T_CALLED("mvins_nwstr(%d,%d,%p,%d)"), a1, a2, (const void *)a3, z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wins_nwstr((stdscr),((a3)),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvins_wch (int a1, int a2, const cchar_t * z) +{ + T((T_CALLED("mvins_wch(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wins_wch((stdscr),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvins_wstr (int a1, int a2, const wchar_t * z) +{ + T((T_CALLED("mvins_wstr(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wins_nwstr(((stdscr)),(((z))),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvinwstr (int a1, int a2, wchar_t * z) +{ + T((T_CALLED("mvinwstr(%d,%d,%p)"), a1, a2, (const void *)z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : winwstr((stdscr),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvvline_set (int a1, int a2, const cchar_t * a3, int z) +{ + T((T_CALLED("mvvline_set(%d,%d,%p,%d)"), a1, a2, (const void *)a3, z)); + returnCode((wmove(stdscr,((a1)),((a2))) == (-1) ? (-1) : wvline_set((stdscr),((a3)),((z))))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwadd_wch (WINDOW * a1, int a2, int a3, const cchar_t * z) +{ + T((T_CALLED("mvwadd_wch(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wadd_wch((a1),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW * a1, int a2, int a3, const cchar_t * a4, int z) +{ + T((T_CALLED("mvwadd_wchnstr(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, (const void *)a4, z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wadd_wchnstr((a1),(a4),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW * a1, int a2, int a3, const cchar_t * z) +{ + T((T_CALLED("mvwadd_wchstr(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wadd_wchnstr(((a1)),((z)),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwaddnwstr (WINDOW * a1, int a2, int a3, const wchar_t * a4, int z) +{ + T((T_CALLED("mvwaddnwstr(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, (const void *)a4, z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : waddnwstr((a1),(a4),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwaddwstr (WINDOW * a1, int a2, int a3, const wchar_t * z) +{ + T((T_CALLED("mvwaddwstr(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : waddnwstr(((a1)),((z)),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwget_wch (WINDOW * a1, int a2, int a3, wint_t * z) +{ + T((T_CALLED("mvwget_wch(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wget_wch((a1),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwget_wstr (WINDOW * a1, int a2, int a3, wint_t * z) +{ + T((T_CALLED("mvwget_wstr(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wgetn_wstr(((a1)),((z)),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW * a1, int a2, int a3, wint_t * a4, int z) +{ + T((T_CALLED("mvwgetn_wstr(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, (const void *)a4, z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wgetn_wstr((a1),(a4),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwhline_set (WINDOW * a1, int a2, int a3, const cchar_t * a4, int z) +{ + T((T_CALLED("mvwhline_set(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, (const void *)a4, z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : whline_set((a1),(a4),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwin_wch (WINDOW * a1, int a2, int a3, cchar_t * z) +{ + T((T_CALLED("mvwin_wch(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : win_wch((a1),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW * a1, int a2, int a3, cchar_t * a4, int z) +{ + T((T_CALLED("mvwin_wchnstr(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, (const void *)a4, z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : win_wchnstr((a1),(a4),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwin_wchstr (WINDOW * a1, int a2, int a3, cchar_t * z) +{ + T((T_CALLED("mvwin_wchstr(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : win_wchnstr(((a1)),((z)),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwinnwstr (WINDOW * a1, int a2, int a3, wchar_t * a4, int z) +{ + return (wmove(a1,(a2),(a3)) == (-1) ? (-1) : winnwstr((a1),(a4),(z))) ; +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwins_nwstr (WINDOW * a1, int a2, int a3, const wchar_t * a4, int z) +{ + T((T_CALLED("mvwins_nwstr(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, (const void *)a4, z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wins_nwstr((a1),(a4),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwins_wch (WINDOW * a1, int a2, int a3, const cchar_t * z) +{ + T((T_CALLED("mvwins_wch(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wins_wch((a1),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwins_wstr (WINDOW * a1, int a2, int a3, const wchar_t * z) +{ + T((T_CALLED("mvwins_wstr(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wins_nwstr(((a1)),((z)),-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwinwstr (WINDOW * a1, int a2, int a3, wchar_t * z) +{ + T((T_CALLED("mvwinwstr(%p,%d,%d,%p)"), (const void *)a1, a2, a3, (const void *)z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : winwstr((a1),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) mvwvline_set (WINDOW * a1, int a2, int a3, const cchar_t * a4, int z) +{ + T((T_CALLED("mvwvline_set(%p,%d,%d,%p,%d)"), (const void *)a1, a2, a3, (const void *)a4, z)); + returnCode((wmove(a1,(a2),(a3)) == (-1) ? (-1) : wvline_set((a1),(a4),(z)))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) vline_set (const cchar_t * a1, int z) +{ + T((T_CALLED("vline_set(%p,%d)"), (const void *)a1, z)); + returnCode(wvline_set(stdscr,(a1),(z))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) wadd_wchstr (WINDOW * a1, const cchar_t * z) +{ + T((T_CALLED("wadd_wchstr(%p,%p)"), (const void *)a1, (const void *)z)); + returnCode(wadd_wchnstr((a1),(z),-1)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) waddwstr (WINDOW * a1, const wchar_t * z) +{ + T((T_CALLED("waddwstr(%p,%p)"), (const void *)a1, (const void *)z)); + returnCode(waddnwstr((a1),(z),-1)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) wget_wstr (WINDOW * a1, wint_t * z) +{ + T((T_CALLED("wget_wstr(%p,%p)"), (const void *)a1, (const void *)z)); + returnCode(wgetn_wstr((a1),(z),-1)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) wgetbkgrnd (WINDOW * a1, cchar_t * z) +{ + T((T_CALLED("wgetbkgrnd(%p,%p)"), (const void *)a1, (const void *)z)); + returnCode(((0 != (const void *)((z))) ? ((a1) ? (*(z) = (a1)->_bkgrnd) : *(z), (0)) : (-1))); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) win_wchstr (WINDOW * a1, cchar_t * z) +{ + T((T_CALLED("win_wchstr(%p,%p)"), (const void *)a1, (const void *)z)); + returnCode(win_wchnstr((a1),(z),-1)); +} +#endif +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(int) wins_wstr (WINDOW * a1, const wchar_t * z) +{ + T((T_CALLED("wins_wstr(%p,%p)"), (const void *)a1, (const void *)z)); + returnCode(wins_nwstr((a1),(z),-1)); +} +#endif +NCURSES_EXPORT(NCURSES_BOOL) mouse_trafo (int * a1, int * a2, NCURSES_BOOL z) +{ + T((T_CALLED("mouse_trafo(%p,%p,%#lx)"), (const void *)a1, (const void *)a2, (long)z)); + returnBool(wmouse_trafo(stdscr,a1,a2,z)); +} diff --git a/third_party/ncurses/lib_get_wch.c b/third_party/ncurses/lib_get_wch.c new file mode 100644 index 000000000..406dfaf2f --- /dev/null +++ b/third_party/ncurses/lib_get_wch.c @@ -0,0 +1,121 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 2002-2011,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2002-on * + ****************************************************************************/ + +/* +** lib_get_wch.c +** +** The routine get_wch(). +** +*/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_get_wch.c,v 1.26 2021/04/17 16:12:54 tom Exp $") + +NCURSES_EXPORT(int) +wget_wch(WINDOW *win, wint_t *result) +{ + SCREEN *sp; + int code; + int value = 0; +#ifndef state_unused + mbstate_t state; +#endif + + T((T_CALLED("wget_wch(%p)"), (void *) win)); + + /* + * We can get a stream of single-byte characters and KEY_xxx codes from + * _nc_wgetch(), while we want to return a wide character or KEY_xxx code. + */ + _nc_lock_global(curses); + sp = _nc_screen_of(win); + + if (sp != 0) { + size_t count = 0; + + for (;;) { + char buffer[(MB_LEN_MAX * 9) + 1]; /* allow some redundant shifts */ + + T(("reading %d of %d", (int) count + 1, (int) sizeof(buffer))); + code = _nc_wgetch(win, &value, TRUE EVENTLIST_2nd((_nc_eventlist + *) 0)); + if (code == ERR) { + break; + } else if (code == KEY_CODE_YES) { + /* + * If we were processing an incomplete multibyte character, + * return an error since we have a KEY_xxx code which + * interrupts it. For some cases, we could improve this by + * writing a new version of lib_getch.c(!), but it is not clear + * whether the improvement would be worth the effort. + */ + if (count != 0) { + safe_ungetch(SP_PARM, value); + code = ERR; + } + break; + } else if (count + 1 >= sizeof(buffer)) { + safe_ungetch(SP_PARM, value); + code = ERR; + break; + } else { + int status; + + buffer[count++] = (char) UChar(value); + reset_mbytes(state); + status = count_mbytes(buffer, count, state); + if (status >= 0) { + wchar_t wch; + reset_mbytes(state); + if (check_mbytes(wch, buffer, count, state) != status) { + code = ERR; /* the two calls should match */ + safe_ungetch(SP_PARM, value); + } + value = wch; + break; + } + } + } + } else { + code = ERR; + } + + if (result != 0) + *result = (wint_t) value; + + _nc_unlock_global(curses); + T(("result %#o", value)); + returnCode(code); +} diff --git a/third_party/ncurses/lib_get_wstr.c b/third_party/ncurses/lib_get_wstr.c new file mode 100644 index 000000000..addaff135 --- /dev/null +++ b/third_party/ncurses/lib_get_wstr.c @@ -0,0 +1,233 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 2002-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +/* +** lib_get_wstr.c +** +** The routine wgetn_wstr(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_get_wstr.c,v 1.20 2021/10/23 19:02:59 tom Exp $") + +static int +wadd_wint(WINDOW *win, wint_t *src) +{ + cchar_t tmp; + wchar_t wch[2]; + + wch[0] = (wchar_t) (*src); + wch[1] = 0; + setcchar(&tmp, wch, A_NORMAL, (short) 0, NULL); + return wadd_wch(win, &tmp); +} + +/* + * This wipes out the last character, no matter whether it was a tab, control + * or other character, and handles reverse wraparound. + */ +static wint_t * +WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, int echoed) +{ + if (last > first) { + *--last = '\0'; + if (echoed) { + int y1 = win->_cury; + int x1 = win->_curx; + int n; + + wmove(win, y, x); + for (n = 0; first[n] != 0; ++n) { + wadd_wint(win, first + n); + } + getyx(win, y, x); + while (win->_cury < y1 + || (win->_cury == y1 && win->_curx < x1)) + waddch(win, (chtype) ' '); + + wmove(win, y, x); + } + } + return last; +} + +NCURSES_EXPORT(int) +wgetn_wstr(WINDOW *win, wint_t *str, int maxlen) +{ + SCREEN *sp = _nc_screen_of(win); + TTY buf; + bool oldnl, oldecho, oldraw, oldcbreak; + wchar_t erasec = 0; + wchar_t killc = 0; + wint_t *oldstr = str; + wint_t *tmpstr = str; + wint_t ch; + int y, x, code; + + T((T_CALLED("wgetn_wstr(%p,%p, %d)"), (void *) win, (void *) str, maxlen)); + + if (!win) + returnCode(ERR); + + maxlen = _nc_getstr_limit(maxlen); + + _nc_get_tty_mode(&buf); + + oldnl = sp->_nl; + oldecho = sp->_echo; + oldraw = sp->_raw; + oldcbreak = sp->_cbreak; + NCURSES_SP_NAME(nl) (NCURSES_SP_ARG); + NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG); + NCURSES_SP_NAME(raw) (NCURSES_SP_ARG); + + NCURSES_SP_NAME(erasewchar) (NCURSES_SP_ARGx &erasec); + NCURSES_SP_NAME(killwchar) (NCURSES_SP_ARGx &killc); + + getyx(win, y, x); + + if (is_wintouched(win) || (win->_flags & _HASMOVED)) + wrefresh(win); + + while ((code = wget_wch(win, &ch)) != ERR) { + /* + * Map special characters into key-codes. + */ + if (ch == '\r') + ch = '\n'; + if (ch == '\n') { + code = KEY_CODE_YES; + ch = KEY_ENTER; + } + if (ch != 0 && ch < KEY_MIN) { + if (ch == (wint_t) erasec) { + ch = KEY_BACKSPACE; + code = KEY_CODE_YES; + } + if (ch == (wint_t) killc) { + ch = KEY_EOL; + code = KEY_CODE_YES; + } + } + if (code == KEY_CODE_YES) { + /* + * Some terminals (the Wyse-50 is the most common) generate a \n + * from the down-arrow key. With this logic, it is the user's + * choice whether to set kcud=\n for wget_wch(); terminating + * *getn_wstr() with \n should work either way. + */ + if (ch == KEY_DOWN || ch == KEY_ENTER) { + if (oldecho == TRUE + && win->_cury == win->_maxy + && win->_scroll) + wechochar(win, (chtype) '\n'); + break; + } + if (ch == KEY_LEFT || ch == KEY_BACKSPACE) { + if (tmpstr > oldstr) { + tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho); + } + } else if (ch == KEY_EOL) { + while (tmpstr > oldstr) { + tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho); + } + } else { + beep(); + } + } else if (tmpstr - oldstr >= maxlen) { + beep(); + } else { + *tmpstr++ = ch; + *tmpstr = 0; + if (oldecho == TRUE) { + int oldy = win->_cury; + + if (wadd_wint(win, tmpstr - 1) == ERR) { + /* + * We can't really use the lower-right corner for input, + * since it'll mess up bookkeeping for erases. + */ + win->_flags &= ~_WRAPPED; + waddch(win, (chtype) ' '); + tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho); + continue; + } else if (IS_WRAPPED(win)) { + /* + * If the last waddch forced a wrap & scroll, adjust our + * reference point for erasures. + */ + if (win->_scroll + && oldy == win->_maxy + && win->_cury == win->_maxy) { + if (--y <= 0) { + y = 0; + } + } + win->_flags &= ~_WRAPPED; + } + wrefresh(win); + } + } + } + + win->_curx = 0; + win->_flags &= ~_WRAPPED; + if (win->_cury < win->_maxy) + win->_cury++; + wrefresh(win); + + /* Restore with a single I/O call, to fix minor asymmetry between + * raw/noraw, etc. + */ + sp->_nl = oldnl; + sp->_echo = oldecho; + sp->_raw = oldraw; + sp->_cbreak = oldcbreak; + + (void) _nc_set_tty_mode(&buf); + + *tmpstr = 0; + if (code == ERR) { + if (tmpstr == oldstr) { + *tmpstr++ = WEOF; + *tmpstr = 0; + } + returnCode(ERR); + } + + T(("wgetn_wstr returns %s", _nc_viswibuf(oldstr))); + + returnCode(OK); +} diff --git a/third_party/ncurses/lib_getch.c b/third_party/ncurses/lib_getch.c new file mode 100644 index 000000000..c43df1b71 --- /dev/null +++ b/third_party/ncurses/lib_getch.c @@ -0,0 +1,802 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_getch.c +** +** The routine getch(). +** +*/ + +#define NEED_KEY_EVENT +#include "curses.priv.h" + +MODULE_ID("$Id: lib_getch.c,v 1.145 2022/12/24 22:38:38 tom Exp $") + +#include "fifo_defs.h" + +#if USE_REENTRANT +#define GetEscdelay(sp) *_nc_ptr_Escdelay(sp) +NCURSES_EXPORT(int) +NCURSES_PUBLIC_VAR(ESCDELAY) (void) +{ + return *(_nc_ptr_Escdelay(CURRENT_SCREEN)); +} + +NCURSES_EXPORT(int *) +_nc_ptr_Escdelay(SCREEN *sp) +{ + return ptrEscdelay(sp); +} +#else +#define GetEscdelay(sp) ESCDELAY +NCURSES_EXPORT_VAR(int) ESCDELAY = 1000; +#endif + +#if NCURSES_EXT_FUNCS +NCURSES_EXPORT(int) +NCURSES_SP_NAME(set_escdelay) (NCURSES_SP_DCLx int value) +{ + int code = OK; + if (value < 0) { + code = ERR; + } else { +#if USE_REENTRANT + if (SP_PARM) { + SET_ESCDELAY(value); + } else { + code = ERR; + } +#else + (void) SP_PARM; + ESCDELAY = value; +#endif + } + return code; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +set_escdelay(int value) +{ + int code; + if (value < 0) { + code = ERR; + } else { +#if USE_REENTRANT + code = NCURSES_SP_NAME(set_escdelay) (CURRENT_SCREEN, value); +#else + ESCDELAY = value; + code = OK; +#endif + } + return code; +} +#endif +#endif /* NCURSES_EXT_FUNCS */ + +#if NCURSES_EXT_FUNCS +NCURSES_EXPORT(int) +NCURSES_SP_NAME(get_escdelay) (NCURSES_SP_DCL0) +{ +#if !USE_REENTRANT + (void) SP_PARM; +#endif + return GetEscdelay(SP_PARM); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +get_escdelay(void) +{ + return NCURSES_SP_NAME(get_escdelay) (CURRENT_SCREEN); +} +#endif +#endif /* NCURSES_EXT_FUNCS */ + +static int +_nc_use_meta(WINDOW *win) +{ + SCREEN *sp = _nc_screen_of(win); + return (sp ? sp->_use_meta : 0); +} + +#ifdef USE_TERM_DRIVER +# if defined(_NC_WINDOWS) && !defined(EXP_WIN32_DRIVER) +static HANDLE +_nc_get_handle(int fd) +{ + intptr_t value = _get_osfhandle(fd); + return (HANDLE) value; +} +# endif +#endif + +/* + * Check for mouse activity, returning nonzero if we find any. + */ +static int +check_mouse_activity(SCREEN *sp, int delay EVENTLIST_2nd(_nc_eventlist * evl)) +{ + int rc; + +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = TCBOf(sp); + rc = TCBOf(sp)->drv->td_testmouse(TCBOf(sp), delay EVENTLIST_2nd(evl)); +# if defined(EXP_WIN32_DRIVER) + /* if we emulate terminfo on console, we have to use the console routine */ + if (IsTermInfoOnConsole(sp)) { + rc = _nc_console_testmouse(sp, + _nc_console_handle(sp->_ifd), + delay EVENTLIST_2nd(evl)); + } else +# elif defined(_NC_WINDOWS) + /* if we emulate terminfo on console, we have to use the console routine */ + if (IsTermInfoOnConsole(sp)) { + HANDLE fd = _nc_get_handle(sp->_ifd); + rc = _nc_mingw_testmouse(sp, fd, delay EVENTLIST_2nd(evl)); + } else +# endif + rc = TCB->drv->td_testmouse(TCB, delay EVENTLIST_2nd(evl)); +#else /* !USE_TERM_DRIVER */ +# if USE_SYSMOUSE + if ((sp->_mouse_type == M_SYSMOUSE) + && (sp->_sysmouse_head < sp->_sysmouse_tail)) { + rc = TW_MOUSE; + } else +# endif + { +# if defined(EXP_WIN32_DRIVER) + rc = _nc_console_testmouse(sp, + _nc_console_handle(sp->_ifd), + delay + EVENTLIST_2nd(evl)); +# else + rc = _nc_timed_wait(sp, + TWAIT_MASK, + delay, + (int *) 0 + EVENTLIST_2nd(evl)); +# endif +# if USE_SYSMOUSE + if ((sp->_mouse_type == M_SYSMOUSE) + && (sp->_sysmouse_head < sp->_sysmouse_tail) + && (rc == 0) + && (errno == EINTR)) { + rc |= TW_MOUSE; + } +# endif + } +#endif /* USE_TERM_DRIVER */ + return rc; +} + +static NCURSES_INLINE int +fifo_peek(SCREEN *sp) +{ + int ch = (peek >= 0) ? sp->_fifo[peek] : ERR; + TR(TRACE_IEVENT, ("peeking at %d", peek)); + + p_inc(); + return ch; +} + +static NCURSES_INLINE int +fifo_pull(SCREEN *sp) +{ + int ch = (head >= 0) ? sp->_fifo[head] : ERR; + + TR(TRACE_IEVENT, ("pulling %s from %d", _nc_tracechar(sp, ch), head)); + + if (peek == head) { + h_inc(); + peek = head; + } else { + h_inc(); + } + +#ifdef TRACE + if (USE_TRACEF(TRACE_IEVENT)) { + _nc_fifo_dump(sp); + _nc_unlock_global(tracef); + } +#endif + return ch; +} + +static NCURSES_INLINE int +fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) +{ + int n; + int ch = 0; + int mask = 0; + + (void) mask; + if (tail < 0) + return ERR; + +#ifdef NCURSES_WGETCH_EVENTS + if (evl +#if USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE + || (sp->_mouse_fd >= 0) +#endif + ) { + mask = check_mouse_activity(sp, -1 EVENTLIST_2nd(evl)); + } else + mask = 0; + + if (mask & TW_EVENT) { + T(("fifo_push: ungetch KEY_EVENT")); + safe_ungetch(sp, KEY_EVENT); + return KEY_EVENT; + } +#elif USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE + if (sp->_mouse_fd >= 0) { + mask = check_mouse_activity(sp, -1 EVENTLIST_2nd(evl)); + } +#endif + +#if USE_GPM_SUPPORT || USE_EMX_MOUSE + if ((sp->_mouse_fd >= 0) && (mask & TW_MOUSE)) { + sp->_mouse_event(sp); + ch = KEY_MOUSE; + n = 1; + } else +#endif +#if USE_SYSMOUSE + if ((sp->_mouse_type == M_SYSMOUSE) + && (sp->_sysmouse_head < sp->_sysmouse_tail)) { + sp->_mouse_event(sp); + ch = KEY_MOUSE; + n = 1; + } else if ((sp->_mouse_type == M_SYSMOUSE) + && (mask <= 0) && errno == EINTR) { + sp->_mouse_event(sp); + ch = KEY_MOUSE; + n = 1; + } else +#endif +#ifdef USE_TERM_DRIVER + if ((sp->_mouse_type == M_TERM_DRIVER) + && (sp->_drv_mouse_head < sp->_drv_mouse_tail)) { + sp->_mouse_event(sp); + ch = KEY_MOUSE; + n = 1; + } else +#endif +#if USE_KLIBC_KBD + if (NC_ISATTY(sp->_ifd) && sp->_cbreak) { + ch = _read_kbd(0, 1, !sp->_raw); + n = (ch == -1) ? -1 : 1; + sp->_extended_key = (ch == 0); + } else +#endif + { /* Can block... */ +#if defined(USE_TERM_DRIVER) + int buf; +# if defined(EXP_WIN32_DRIVER) + if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && sp->_cbreak) { + _nc_set_read_thread(TRUE); + n = _nc_console_read(sp, + _nc_console_handle(sp->_ifd), + &buf); + _nc_set_read_thread(FALSE); + } else +# elif defined(_NC_WINDOWS) + if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && sp->_cbreak) + n = _nc_mingw_console_read(sp, + _nc_get_handle(sp->_ifd), + &buf); + else +# endif /* EXP_WIN32_DRIVER */ + n = CallDriver_1(sp, td_read, &buf); + ch = buf; +#else /* !USE_TERM_DRIVER */ +#if defined(EXP_WIN32_DRIVER) + int buf; +#endif + unsigned char c2 = 0; + + _nc_set_read_thread(TRUE); +#if defined(EXP_WIN32_DRIVER) + n = _nc_console_read(sp, + _nc_console_handle(sp->_ifd), + &buf); + c2 = buf; +#else + n = (int) read(sp->_ifd, &c2, (size_t) 1); +#endif + _nc_set_read_thread(FALSE); + ch = c2; +#endif /* USE_TERM_DRIVER */ + } + + if ((n == -1) || (n == 0)) { + TR(TRACE_IEVENT, ("read(%d,&ch,1)=%d, errno=%d", sp->_ifd, n, errno)); + ch = ERR; + } + TR(TRACE_IEVENT, ("read %d characters", n)); + + sp->_fifo[tail] = ch; + sp->_fifohold = 0; + if (head == -1) + head = peek = tail; + t_inc(); + TR(TRACE_IEVENT, ("pushed %s at %d", _nc_tracechar(sp, ch), tail)); +#ifdef TRACE + if (USE_TRACEF(TRACE_IEVENT)) { + _nc_fifo_dump(sp); + _nc_unlock_global(tracef); + } +#endif + return ch; +} + +static NCURSES_INLINE void +fifo_clear(SCREEN *sp) +{ + memset(sp->_fifo, 0, sizeof(sp->_fifo)); + head = -1; + tail = peek = 0; +} + +static int kgetch(SCREEN *, bool EVENTLIST_2nd(_nc_eventlist *)); + +static void +recur_wrefresh(WINDOW *win) +{ +#ifdef USE_PTHREADS + SCREEN *sp = _nc_screen_of(win); + bool same_sp; + + if (_nc_use_pthreads) { + _nc_lock_global(curses); + same_sp = (sp == CURRENT_SCREEN); + _nc_unlock_global(curses); + } else { + same_sp = (sp == CURRENT_SCREEN); + } + + if (_nc_use_pthreads && !same_sp) { + SCREEN *save_SP; + + /* temporarily switch to the window's screen to check/refresh */ + _nc_lock_global(curses); + save_SP = CURRENT_SCREEN; + _nc_set_screen(sp); + recur_wrefresh(win); + _nc_set_screen(save_SP); + _nc_unlock_global(curses); + } else +#endif + if ((is_wintouched(win) || (win->_flags & _HASMOVED)) + && !IS_PAD(win)) { + wrefresh(win); + } +} + +static int +recur_wgetnstr(WINDOW *win, char *buf) +{ + SCREEN *sp = _nc_screen_of(win); + int rc; + + if (sp != 0) { +#ifdef USE_PTHREADS + if (_nc_use_pthreads && sp != CURRENT_SCREEN) { + SCREEN *save_SP; + + /* temporarily switch to the window's screen to get cooked input */ + _nc_lock_global(curses); + save_SP = CURRENT_SCREEN; + _nc_set_screen(sp); + rc = recur_wgetnstr(win, buf); + _nc_set_screen(save_SP); + _nc_unlock_global(curses); + } else +#endif + { + sp->_called_wgetch = TRUE; + rc = wgetnstr(win, buf, MAXCOLUMNS); + sp->_called_wgetch = FALSE; + } + } else { + rc = ERR; + } + return rc; +} + +NCURSES_EXPORT(int) +_nc_wgetch(WINDOW *win, + int *result, + int use_meta + EVENTLIST_2nd(_nc_eventlist * evl)) +{ + SCREEN *sp; + int ch; + int rc = 0; +#ifdef NCURSES_WGETCH_EVENTS + int event_delay = -1; +#endif + + T((T_CALLED("_nc_wgetch(%p)"), (void *) win)); + + *result = 0; + + sp = _nc_screen_of(win); + if (win == 0 || sp == 0) { + returnCode(ERR); + } + + if (cooked_key_in_fifo()) { + recur_wrefresh(win); + *result = fifo_pull(sp); + returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK); + } +#ifdef NCURSES_WGETCH_EVENTS + if (evl && (evl->count == 0)) + evl = NULL; + event_delay = _nc_eventlist_timeout(evl); +#endif + + /* + * Handle cooked mode. Grab a string from the screen, + * stuff its contents in the FIFO queue, and pop off + * the first character to return it. + */ + if (head == -1 && + !sp->_notty && + !sp->_raw && + !sp->_cbreak && + !sp->_called_wgetch) { + char buf[MAXCOLUMNS], *bufp; + + TR(TRACE_IEVENT, ("filling queue in cooked mode")); + + /* ungetch in reverse order */ +#ifdef NCURSES_WGETCH_EVENTS + rc = recur_wgetnstr(win, buf); + if (rc != KEY_EVENT && rc != ERR) + safe_ungetch(sp, '\n'); +#else + if (recur_wgetnstr(win, buf) != ERR) + safe_ungetch(sp, '\n'); +#endif + for (bufp = buf + strlen(buf); bufp > buf; bufp--) + safe_ungetch(sp, bufp[-1]); + +#ifdef NCURSES_WGETCH_EVENTS + /* Return it first */ + if (rc == KEY_EVENT) { + *result = rc; + } else +#endif + *result = fifo_pull(sp); + returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK); + } + + if (win->_use_keypad != sp->_keypad_on) + _nc_keypad(sp, win->_use_keypad); + + recur_wrefresh(win); + + if (win->_notimeout || (win->_delay >= 0) || (sp->_cbreak > 1)) { + if (head == -1) { /* fifo is empty */ + int delay; + + TR(TRACE_IEVENT, ("timed delay in wgetch()")); + if (sp->_cbreak > 1) + delay = (sp->_cbreak - 1) * 100; + else + delay = win->_delay; + +#ifdef NCURSES_WGETCH_EVENTS + if (event_delay >= 0 && delay > event_delay) + delay = event_delay; +#endif + + TR(TRACE_IEVENT, ("delay is %d milliseconds", delay)); + + rc = check_mouse_activity(sp, delay EVENTLIST_2nd(evl)); + +#ifdef NCURSES_WGETCH_EVENTS + if (rc & TW_EVENT) { + *result = KEY_EVENT; + returnCode(KEY_CODE_YES); + } +#endif + if (!rc) { + goto check_sigwinch; + } + } + /* else go on to read data available */ + } + + if (win->_use_keypad) { + /* + * This is tricky. We only want to get special-key + * events one at a time. But we want to accumulate + * mouse events until either (a) the mouse logic tells + * us it has picked up a complete gesture, or (b) + * there's a detectable time lapse after one. + * + * Note: if the mouse code starts failing to compose + * press/release events into clicks, you should probably + * increase the wait with mouseinterval(). + */ + int runcount = 0; + + do { + ch = kgetch(sp, win->_notimeout EVENTLIST_2nd(evl)); + if (ch == KEY_MOUSE) { + ++runcount; + if (sp->_mouse_inline(sp)) + break; + } + if (sp->_maxclick < 0) + break; + } while + (ch == KEY_MOUSE + && (((rc = check_mouse_activity(sp, sp->_maxclick + EVENTLIST_2nd(evl))) != 0 + && !(rc & TW_EVENT)) + || !sp->_mouse_parse(sp, runcount))); +#ifdef NCURSES_WGETCH_EVENTS + if ((rc & TW_EVENT) && !(ch == KEY_EVENT)) { + safe_ungetch(sp, ch); + ch = KEY_EVENT; + } +#endif + if (runcount > 0 && ch != KEY_MOUSE) { +#ifdef NCURSES_WGETCH_EVENTS + /* mouse event sequence ended by an event, report event */ + if (ch == KEY_EVENT) { + safe_ungetch(sp, KEY_MOUSE); /* FIXME This interrupts a gesture... */ + } else +#endif + { + /* mouse event sequence ended by keystroke, store keystroke */ + safe_ungetch(sp, ch); + ch = KEY_MOUSE; + } + } + } else { + if (head == -1) + fifo_push(sp EVENTLIST_2nd(evl)); + ch = fifo_pull(sp); + } + + if (ch == ERR) { + check_sigwinch: +#if USE_SIZECHANGE + if (_nc_handle_sigwinch(sp)) { + _nc_update_screensize(sp); + /* resizeterm can push KEY_RESIZE */ + if (cooked_key_in_fifo()) { + *result = fifo_pull(sp); + /* + * Get the ERR from queue -- it is from WINCH, + * so we should take it out, the "error" is handled. + */ + if (fifo_peek(sp) == -1) + fifo_pull(sp); + returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK); + } + } +#endif + returnCode(ERR); + } + + /* + * If echo() is in effect, display the printable version of the + * key on the screen. Carriage return and backspace are treated + * specially by Solaris curses: + * + * If carriage return is defined as a function key in the + * terminfo, e.g., kent, then Solaris may return either ^J (or ^M + * if nonl() is set) or KEY_ENTER depending on the echo() mode. + * We echo before translating carriage return based on nonl(), + * since the visual result simply moves the cursor to column 0. + * + * Backspace is a different matter. Solaris curses does not + * translate it to KEY_BACKSPACE if kbs=^H. This does not depend + * on the stty modes, but appears to be a hardcoded special case. + * This is a difference from ncurses, which uses the terminfo entry. + * However, we provide the same visual result as Solaris, moving the + * cursor to the left. + */ + if (sp->_echo && !IS_PAD(win)) { + chtype backup = (chtype) ((ch == KEY_BACKSPACE) ? '\b' : ch); + if (backup < KEY_MIN) + wechochar(win, backup); + } + + /* + * Simulate ICRNL mode + */ + if ((ch == '\r') && sp->_nl) + ch = '\n'; + + /* Strip 8th-bit if so desired. We do this only for characters that + * are in the range 128-255, to provide compatibility with terminals + * that display only 7-bit characters. Note that 'ch' may be a + * function key at this point, so we mustn't strip _those_. + */ + if (!use_meta) + if ((ch < KEY_MIN) && (ch & 0x80)) + ch &= 0x7f; + + T(("wgetch returning : %s", _nc_tracechar(sp, ch))); + + *result = ch; + returnCode(ch >= KEY_MIN ? KEY_CODE_YES : OK); +} + +#ifdef NCURSES_WGETCH_EVENTS +NCURSES_EXPORT(int) +wgetch_events(WINDOW *win, _nc_eventlist * evl) +{ + int code; + int value; + + T((T_CALLED("wgetch_events(%p,%p)"), (void *) win, (void *) evl)); + code = _nc_wgetch(win, + &value, + _nc_use_meta(win) + EVENTLIST_2nd(evl)); + if (code != ERR) + code = value; + returnCode(code); +} +#endif + +NCURSES_EXPORT(int) +wgetch(WINDOW *win) +{ + int code; + int value; + + T((T_CALLED("wgetch(%p)"), (void *) win)); + code = _nc_wgetch(win, + &value, + _nc_use_meta(win) + EVENTLIST_2nd((_nc_eventlist *) 0)); + if (code != ERR) + code = value; + returnCode(code); +} + +/* +** int +** kgetch() +** +** Get an input character, but take care of keypad sequences, returning +** an appropriate code when one matches the input. After each character +** is received, set an alarm call based on ESCDELAY. If no more of the +** sequence is received by the time the alarm goes off, pass through +** the sequence gotten so far. +** +** This function must be called when there are no cooked keys in queue. +** (that is head==-1 || peek==head) +** +*/ + +static int +kgetch(SCREEN *sp, bool forever EVENTLIST_2nd(_nc_eventlist * evl)) +{ + TRIES *ptr; + int ch = 0; + int timeleft = forever ? 9999999 : GetEscdelay(sp); + + TR(TRACE_IEVENT, ("kgetch() called")); + + ptr = sp->_keytry; + + for (;;) { + if (cooked_key_in_fifo() && sp->_fifo[head] >= KEY_MIN) { + break; + } else if (!raw_key_in_fifo()) { + ch = fifo_push(sp EVENTLIST_2nd(evl)); + if (ch == ERR) { + peek = head; /* the keys stay uninterpreted */ + return ERR; + } +#ifdef NCURSES_WGETCH_EVENTS + else if (ch == KEY_EVENT) { + peek = head; /* the keys stay uninterpreted */ + return fifo_pull(sp); /* Remove KEY_EVENT from the queue */ + } +#endif + } + + ch = fifo_peek(sp); + if (ch >= KEY_MIN) { + /* If not first in queue, somebody put this key there on purpose in + * emergency. Consider it higher priority than the unfinished + * keysequence we are parsing. + */ + peek = head; + /* assume the key is the last in fifo */ + t_dec(); /* remove the key */ + return ch; + } + + TR(TRACE_IEVENT, ("ch: %s", _nc_tracechar(sp, (unsigned char) ch))); + while ((ptr != NULL) && (ptr->ch != (unsigned char) ch)) + ptr = ptr->sibling; + + if (ptr == NULL) { + TR(TRACE_IEVENT, ("ptr is null")); + break; + } + TR(TRACE_IEVENT, ("ptr=%p, ch=%d, value=%d", + (void *) ptr, ptr->ch, ptr->value)); + + if (ptr->value != 0) { /* sequence terminated */ + TR(TRACE_IEVENT, ("end of sequence")); + if (peek == tail) { + fifo_clear(sp); + } else { + head = peek; + } + return (ptr->value); + } + + ptr = ptr->child; + + if (!raw_key_in_fifo()) { + int rc; + + TR(TRACE_IEVENT, ("waiting for rest of sequence")); + rc = check_mouse_activity(sp, timeleft EVENTLIST_2nd(evl)); +#ifdef NCURSES_WGETCH_EVENTS + if (rc & TW_EVENT) { + TR(TRACE_IEVENT, ("interrupted by a user event")); + /* FIXME Should have preserved remainder timeleft for reuse... */ + peek = head; /* Restart interpreting later */ + return KEY_EVENT; + } +#endif + if (!rc) { + TR(TRACE_IEVENT, ("ran out of time")); + break; + } + } + } + ch = fifo_pull(sp); + peek = head; + return ch; +} diff --git a/third_party/ncurses/lib_getstr.c b/third_party/ncurses/lib_getstr.c new file mode 100644 index 000000000..5fa32a4bc --- /dev/null +++ b/third_party/ncurses/lib_getstr.c @@ -0,0 +1,227 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2011,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_getstr.c +** +** The routine wgetstr(). +** +*/ + +#define NEED_KEY_EVENT +#include "curses.priv.h" + +MODULE_ID("$Id: lib_getstr.c,v 1.38 2021/10/23 19:02:39 tom Exp $") + +/* + * This wipes out the last character, no matter whether it was a tab, control + * or other character, and handles reverse wraparound. + */ +static char * +WipeOut(WINDOW *win, int y, int x, char *first, char *last, int echoed) +{ + if (last > first) { + *--last = '\0'; + if (echoed) { + int y1 = win->_cury; + int x1 = win->_curx; + + wmove(win, y, x); + waddstr(win, first); + getyx(win, y, x); + while (win->_cury < y1 + || (win->_cury == y1 && win->_curx < x1)) + waddch(win, (chtype) ' '); + + wmove(win, y, x); + } + } + return last; +} + +NCURSES_EXPORT(int) +wgetnstr_events(WINDOW *win, + char *str, + int maxlen, + EVENTLIST_1st(_nc_eventlist * evl)) +{ + SCREEN *sp = _nc_screen_of(win); + TTY buf; + bool oldnl, oldecho, oldraw, oldcbreak; + char erasec; + char killc; + char *oldstr; + int ch; + int y, x; + + T((T_CALLED("wgetnstr(%p,%p,%d)"), (void *) win, (void *) str, maxlen)); + + if (!win || !str) + returnCode(ERR); + + maxlen = _nc_getstr_limit(maxlen); + + NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_ARGx &buf); + + oldnl = sp->_nl; + oldecho = sp->_echo; + oldraw = sp->_raw; + oldcbreak = sp->_cbreak; + NCURSES_SP_NAME(nl) (NCURSES_SP_ARG); + NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG); + NCURSES_SP_NAME(raw) (NCURSES_SP_ARG); + + erasec = NCURSES_SP_NAME(erasechar) (NCURSES_SP_ARG); + killc = NCURSES_SP_NAME(killchar) (NCURSES_SP_ARG); + + oldstr = str; + getyx(win, y, x); + + if (is_wintouched(win) || (win->_flags & _HASMOVED)) + wrefresh(win); + + while ((ch = wgetch_events(win, evl)) != ERR) { + /* + * Some terminals (the Wyse-50 is the most common) generate + * a \n from the down-arrow key. With this logic, it is the + * user's choice whether to set kcud=\n for wgetch(); + * terminating *getstr() with \n should work either way. + */ + if (ch == '\n' + || ch == '\r' + || ch == KEY_DOWN + || ch == KEY_ENTER) { + if (oldecho == TRUE + && win->_cury == win->_maxy + && win->_scroll) + wechochar(win, (chtype) '\n'); + break; + } +#ifdef KEY_EVENT + if (ch == KEY_EVENT) + break; +#endif +#ifdef KEY_RESIZE + if (ch == KEY_RESIZE) + break; +#endif + if (ch == erasec || ch == KEY_LEFT || ch == KEY_BACKSPACE) { + if (str > oldstr) { + str = WipeOut(win, y, x, oldstr, str, oldecho); + } + } else if (ch == killc) { + while (str > oldstr) { + str = WipeOut(win, y, x, oldstr, str, oldecho); + } + } else if (ch >= KEY_MIN + || (str - oldstr >= maxlen)) { + NCURSES_SP_NAME(beep) (NCURSES_SP_ARG); + } else { + *str++ = (char) ch; + if (oldecho == TRUE) { + int oldy = win->_cury; + if (waddch(win, (chtype) ch) == ERR) { + /* + * We can't really use the lower-right + * corner for input, since it'll mess + * up bookkeeping for erases. + */ + win->_flags &= ~_WRAPPED; + waddch(win, (chtype) ' '); + str = WipeOut(win, y, x, oldstr, str, oldecho); + continue; + } else if (IS_WRAPPED(win)) { + /* + * If the last waddch forced a wrap & + * scroll, adjust our reference point + * for erasures. + */ + if (win->_scroll + && oldy == win->_maxy + && win->_cury == win->_maxy) { + if (--y <= 0) { + y = 0; + } + } + win->_flags &= ~_WRAPPED; + } + wrefresh(win); + } + } + } + + win->_curx = 0; + win->_flags &= ~_WRAPPED; + if (win->_cury < win->_maxy) + win->_cury++; + wrefresh(win); + + /* Restore with a single I/O call, to fix minor asymmetry between + * raw/noraw, etc. + */ + sp->_nl = oldnl; + sp->_echo = oldecho; + sp->_raw = oldraw; + sp->_cbreak = oldcbreak; + + NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + + *str = '\0'; + if (ch == ERR) + returnCode(ch); + + T(("wgetnstr returns %s", _nc_visbuf(oldstr))); + +#ifdef KEY_EVENT + if (ch == KEY_EVENT) + returnCode(ch); +#endif +#ifdef KEY_RESIZE + if (ch == KEY_RESIZE) + returnCode(ch); +#endif + + returnCode(OK); +} + +#ifdef NCURSES_WGETCH_EVENTS +NCURSES_EXPORT(int) +wgetnstr(WINDOW *win, char *str, int maxlen) +{ + returnCode(wgetnstr_events(win, + str, + maxlen, + EVENTLIST_1st((_nc_eventlist *) 0))); +} +#endif diff --git a/third_party/ncurses/lib_has_cap.c b/third_party/ncurses/lib_has_cap.c new file mode 100644 index 000000000..b5dc22b01 --- /dev/null +++ b/third_party/ncurses/lib_has_cap.c @@ -0,0 +1,95 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-2003 * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_has_cap.c +** +** The routines to query terminal capabilities +** +*/ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_has_cap.c,v 1.11 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(has_ic) (NCURSES_SP_DCL0) +{ + bool code = FALSE; + + T((T_CALLED("has_ic(%p)"), (void *) SP_PARM)); + + if (HasTInfoTerminal(SP_PARM)) { + code = ((insert_character || parm_ich + || (enter_insert_mode && exit_insert_mode)) + && (delete_character || parm_dch)) ? TRUE : FALSE; + } + + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(bool) +has_ic(void) +{ + return NCURSES_SP_NAME(has_ic) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(has_il) (NCURSES_SP_DCL0) +{ + bool code = FALSE; + T((T_CALLED("has_il(%p)"), (void *) SP_PARM)); + if (HasTInfoTerminal(SP_PARM)) { + code = ((insert_line || parm_insert_line) + && (delete_line || parm_delete_line)) ? TRUE : FALSE; + } + + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(bool) +has_il(void) +{ + return NCURSES_SP_NAME(has_il) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_hline.c b/third_party/ncurses/lib_hline.c new file mode 100644 index 000000000..ed453304a --- /dev/null +++ b/third_party/ncurses/lib_hline.c @@ -0,0 +1,89 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Sven Verdoolaege 2001 * + ****************************************************************************/ + +/* +** lib_hline.c +** +** The routine whline(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_hline.c,v 1.16 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +whline(WINDOW *win, chtype ch, int n) +{ + int code = ERR; + + T((T_CALLED("whline(%p,%s,%d)"), (void *) win, _tracechtype(ch), n)); + + if (win) { + struct ldat *line = &(win->_line[win->_cury]); + NCURSES_CH_T wch; + int start = win->_curx; + int end = start + n - 1; + + if (end > win->_maxx) + end = win->_maxx; + + CHANGED_RANGE(line, start, end); + + if (ch == 0) + SetChar2(wch, ACS_HLINE); + else + SetChar2(wch, ch); + wch = _nc_render(win, wch); + +#if USE_WIDEC_SUPPORT + if (start > 0 && isWidecExt(line->text[start])) { + SetChar2(line->text[start - 1], ' '); + } + if (end < win->_maxx && isWidecExt(line->text[end + 1])) { + SetChar2(line->text[end + 1], ' '); + } +#endif + while (end >= start) { + line->text[end] = wch; + end--; + } + + _nc_synchook(win); + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_hline_set.c b/third_party/ncurses/lib_hline_set.c new file mode 100644 index 000000000..f391f62e6 --- /dev/null +++ b/third_party/ncurses/lib_hline_set.c @@ -0,0 +1,78 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2002-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey 2002 * + ****************************************************************************/ + +/* +** lib_hline_set.c +** +** The routine whline_set(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_hline_set.c,v 1.6 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +whline_set(WINDOW *win, const cchar_t *ch, int n) +{ + int code = ERR; + + T((T_CALLED("whline_set(%p,%s,%d)"), (void *) win, _tracecchar_t(ch), n)); + + if (win) { + struct ldat *line = &(win->_line[win->_cury]); + NCURSES_CH_T wch; + int start = win->_curx; + int end = start + n - 1; + + if (end > win->_maxx) + end = win->_maxx; + + CHANGED_RANGE(line, start, end); + + if (ch == 0) + wch = *WACS_HLINE; + else + wch = *ch; + wch = _nc_render(win, wch); + + while (end >= start) { + line->text[end] = wch; + end--; + } + + _nc_synchook(win); + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_immedok.c b/third_party/ncurses/lib_immedok.c new file mode 100644 index 000000000..72cb1f6fb --- /dev/null +++ b/third_party/ncurses/lib_immedok.c @@ -0,0 +1,55 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_immedok.c +** +** The routine immedok. +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_immedok.c,v 1.6 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(void) +immedok(WINDOW *win, bool flag) +{ + T((T_CALLED("immedok(%p,%d)"), (void *) win, flag)); + + if (win) + win->_immed = flag; + + returnVoid; +} diff --git a/third_party/ncurses/lib_in_wch.c b/third_party/ncurses/lib_in_wch.c new file mode 100644 index 000000000..c15bb8cf4 --- /dev/null +++ b/third_party/ncurses/lib_in_wch.c @@ -0,0 +1,65 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2002-2009,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey * + ****************************************************************************/ + +/* +** lib_in_wch.c +** +** The routine win_wch(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_in_wch.c,v 1.7 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +win_wch(WINDOW *win, cchar_t *wcval) +{ + int code = OK; + + TR(TRACE_CCALLS, (T_CALLED("win_wch(%p,%p)"), (void *) win, (void *) wcval)); + + if (win != 0 + && wcval != 0) { + int row, col; + + getyx(win, row, col); + + *wcval = win->_line[row].text[col]; + TR(TRACE_CCALLS, ("data %s", _tracecchar_t(wcval))); + } else { + code = ERR; + } + TR(TRACE_CCALLS, (T_RETURN("%d"), code)); + return (code); +} diff --git a/third_party/ncurses/lib_in_wchnstr.c b/third_party/ncurses/lib_in_wchnstr.c new file mode 100644 index 000000000..01cd3c880 --- /dev/null +++ b/third_party/ncurses/lib_in_wchnstr.c @@ -0,0 +1,77 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2002-2007,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey * + ****************************************************************************/ + +/* +** lib_in_wchnstr.c +** +** The routine win_wchnstr(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_in_wchnstr.c,v 1.9 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +win_wchnstr(WINDOW *win, cchar_t *wchstr, int n) +{ + int code = OK; + + T((T_CALLED("win_wchnstr(%p,%p,%d)"), (void *) win, (void *) wchstr, n)); + if (win != 0 + && wchstr != 0) { + NCURSES_CH_T *src; + int row, col; + int j, k, limit; + + getyx(win, row, col); + limit = getmaxx(win) - col; + src = &(win->_line[row].text[col]); + + if (n < 0) { + n = limit; + } else if (n > limit) { + n = limit; + } + for (j = k = 0; j < n; ++j) { + if (j == 0 || !WidecExt(src[j]) || isWidecBase(src[j])) { + wchstr[k++] = src[j]; + } + } + memset(&(wchstr[k]), 0, sizeof(*wchstr)); + T(("result = %s", _nc_viscbuf(wchstr, n))); + } else { + code = ERR; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_inchstr.c b/third_party/ncurses/lib_inchstr.c new file mode 100644 index 000000000..bcbfca56f --- /dev/null +++ b/third_party/ncurses/lib_inchstr.c @@ -0,0 +1,69 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2010,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* +** lib_inchstr.c +** +** The routine winchnstr(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_inchstr.c,v 1.17 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +winchnstr(WINDOW *win, chtype *str, int n) +{ + int i = 0; + + T((T_CALLED("winchnstr(%p,%p,%d)"), (void *) win, (void *) str, n)); + + if (!win || !str) { + i = ERR; + } else { + int row = win->_cury; + int col = win->_curx; + NCURSES_CH_T *text = win->_line[row].text; + + for (; (n < 0 || (i < n)) && (col + i <= win->_maxx); i++) { + str[i] = (((chtype) CharOf(text[col + i]) & A_CHARTEXT) | + AttrOf(text[col + i])); + } + str[i] = (chtype) 0; + } + + returnCode(i); +} diff --git a/third_party/ncurses/lib_initscr.c b/third_party/ncurses/lib_initscr.c new file mode 100644 index 000000000..6082dd5d0 --- /dev/null +++ b/third_party/ncurses/lib_initscr.c @@ -0,0 +1,110 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* +** lib_initscr.c +** +** The routines initscr(), and termname(). +** +*/ + +#include "curses.priv.h" + +#if HAVE_SYS_TERMIO_H +#include /* needed for ISC */ +#endif + +MODULE_ID("$Id: lib_initscr.c,v 1.48 2020/09/07 14:26:48 tom Exp $") + +NCURSES_EXPORT(WINDOW *) +initscr(void) +{ + WINDOW *result; + + START_TRACE(); + T((T_CALLED("initscr()"))); + + _nc_init_pthreads(); + _nc_lock_global(curses); + + /* Portable applications must not call initscr() more than once */ + if (!_nc_globals.init_screen) { + const char *env; + char *name; + + _nc_globals.init_screen = TRUE; + + env = getenv("TERM"); + (void) VALID_TERM_ENV(env, "unknown"); + + if ((name = strdup(env)) == NULL) { + fprintf(stderr, "Error opening allocating $TERM.\n"); + ExitProgram(EXIT_FAILURE); + } +#ifdef __CYGWIN__ + /* + * 2002/9/21 + * Work around a bug in Cygwin. Full-screen subprocesses run from + * bash, in turn spawned from another full-screen process, will dump + * core when attempting to write to stdout. Opening /dev/tty + * explicitly seems to fix the problem. + */ + if (NC_ISATTY(fileno(stdout))) { + FILE *fp = fopen("/dev/tty", "w"); + if (fp != 0 && NC_ISATTY(fileno(fp))) { + fclose(stdout); + dup2(fileno(fp), STDOUT_FILENO); + stdout = fdopen(STDOUT_FILENO, "w"); + } + } +#endif + if (newterm(name, stdout, stdin) == 0) { + fprintf(stderr, "Error opening terminal: %s.\n", name); + ExitProgram(EXIT_FAILURE); + } + + /* def_shell_mode - done in newterm/_nc_setupscreen */ +#if NCURSES_SP_FUNCS + NCURSES_SP_NAME(def_prog_mode) (CURRENT_SCREEN); +#else + def_prog_mode(); +#endif + free(name); + } + result = stdscr; + _nc_unlock_global(curses); + + returnWin(result); +} diff --git a/third_party/ncurses/lib_ins_wch.c b/third_party/ncurses/lib_ins_wch.c new file mode 100644 index 000000000..588e28adf --- /dev/null +++ b/third_party/ncurses/lib_ins_wch.c @@ -0,0 +1,150 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 2002-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey 2002 * + ****************************************************************************/ + +/* +** lib_ins_wch.c +** +** The routine wins_wch(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_ins_wch.c,v 1.25 2020/12/05 20:04:59 tom Exp $") + +/* + * Insert the given character, updating the current location to simplify + * inserting a string. + */ +NCURSES_EXPORT(int) +_nc_insert_wch(WINDOW *win, const cchar_t *wch) +{ + int cells = _nc_wacs_width(CharOf(CHDEREF(wch))); + int code = OK; + + if (cells < 0) { + code = winsch(win, (chtype) CharOf(CHDEREF(wch))); + } else { + if (cells == 0) + cells = 1; + + if (win->_curx <= win->_maxx) { + int cell; + struct ldat *line = &(win->_line[win->_cury]); + NCURSES_CH_T *end = &(line->text[win->_curx]); + NCURSES_CH_T *temp1 = &(line->text[win->_maxx]); + NCURSES_CH_T *temp2 = temp1 - cells; + + CHANGED_TO_EOL(line, win->_curx, win->_maxx); + while (temp1 > end) + *temp1-- = *temp2--; + + *temp1 = _nc_render(win, *wch); + for (cell = 1; cell < cells; ++cell) { + SetWidecExt(temp1[cell], cell); + } + + win->_curx = (NCURSES_SIZE_T) (win->_curx + cells); + } + } + return code; +} + +NCURSES_EXPORT(int) +wins_wch(WINDOW *win, const cchar_t *wch) +{ + int code = ERR; + + T((T_CALLED("wins_wch(%p, %s)"), (void *) win, _tracecchar_t(wch))); + + if (win != 0) { + NCURSES_SIZE_T oy = win->_cury; + NCURSES_SIZE_T ox = win->_curx; + + code = _nc_insert_wch(win, wch); + + win->_curx = ox; + win->_cury = oy; + _nc_synchook(win); + } + returnCode(code); +} + +NCURSES_EXPORT(int) +wins_nwstr(WINDOW *win, const wchar_t *wstr, int n) +{ + int code = ERR; + + T((T_CALLED("wins_nwstr(%p,%s,%d)"), + (void *) win, _nc_viswbufn(wstr, n), n)); + + if (win != 0 + && wstr != 0) { + if (n < 1) + n = INT_MAX; + code = OK; + + if (n > 0) { + const wchar_t *cp; + SCREEN *sp = _nc_screen_of(win); + NCURSES_SIZE_T oy = win->_cury; + NCURSES_SIZE_T ox = win->_curx; + + for (cp = wstr; (*cp != L'\0') && ((cp - wstr) < n); cp++) { + int len = _nc_wacs_width(*cp); + + if ((len >= 0 && len != 1) || !is7bits(*cp)) { + cchar_t tmp_cchar; + wchar_t tmp_wchar = *cp; + memset(&tmp_cchar, 0, sizeof(tmp_cchar)); + (void) setcchar(&tmp_cchar, + &tmp_wchar, + WA_NORMAL, + (short) 0, + (void *) 0); + code = _nc_insert_wch(win, &tmp_cchar); + } else { + /* tabs, other ASCII stuff */ + code = _nc_insert_ch(sp, win, (chtype) (*cp)); + } + if (code != OK) + break; + } + + win->_curx = ox; + win->_cury = oy; + _nc_synchook(win); + } + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_insch.c b/third_party/ncurses/lib_insch.c new file mode 100644 index 000000000..fb1fab044 --- /dev/null +++ b/third_party/ncurses/lib_insch.c @@ -0,0 +1,165 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2013,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Sven Verdoolaege * + * and: Thomas E. Dickey * + ****************************************************************************/ + +/* +** lib_insch.c +** +** The routine winsch(). +** +*/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_insch.c,v 1.37 2020/02/02 23:34:34 tom Exp $") + +/* + * Insert the given character, updating the current location to simplify + * inserting a string. + */ +NCURSES_EXPORT(int) +_nc_insert_ch(SCREEN *sp, WINDOW *win, chtype ch) +{ + int code = OK; + int ch8 = (int) ChCharOf(ch); + NCURSES_CH_T wch; + int count; + int tabsize = ( +#if USE_REENTRANT + sp->_TABSIZE +#else + TABSIZE +#endif + ); + + switch (ch) { + case '\t': + for (count = (tabsize - (win->_curx % tabsize)); count > 0; count--) { + if ((code = _nc_insert_ch(sp, win, ' ')) != OK) + break; + } + break; + case '\n': + case '\r': + case '\b': + SetChar2(wch, ch); + _nc_waddch_nosync(win, wch); + break; + default: + if ( +#if USE_WIDEC_SUPPORT + WINDOW_EXT(win, addch_used) == 0 && +#endif + (isprint(ch8) || + (ChAttrOf(ch) & A_ALTCHARSET) || + (sp != 0 && sp->_legacy_coding && !iscntrl(ch8)))) { + if (win->_curx <= win->_maxx) { + struct ldat *line = &(win->_line[win->_cury]); + NCURSES_CH_T *end = &(line->text[win->_curx]); + NCURSES_CH_T *temp1 = &(line->text[win->_maxx]); + NCURSES_CH_T *temp2 = temp1 - 1; + + SetChar2(wch, ch); + + CHANGED_TO_EOL(line, win->_curx, win->_maxx); + while (temp1 > end) + *temp1-- = *temp2--; + + *temp1 = _nc_render(win, wch); + win->_curx++; + } + } else if (iscntrl(ch8)) { + NCURSES_CONST char *s; + s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx (chtype) ch8); + while (*s != '\0') { + code = _nc_insert_ch(sp, win, ChAttrOf(ch) | UChar(*s)); + if (code != OK) + break; + ++s; + } + } +#if USE_WIDEC_SUPPORT + else { + /* + * Handle multibyte characters here + */ + SetChar2(wch, ch); + wch = _nc_render(win, wch); + count = _nc_build_wch(win, &wch); + if (count > 0) { + code = _nc_insert_wch(win, &wch); + } else if (count == -1) { + NCURSES_CONST char *s; + /* handle EILSEQ */ + s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx (chtype) ch8); + if (strlen(s) > 1) { + while (*s != '\0') { + code = _nc_insert_ch(sp, win, + ChAttrOf(ch) | UChar(*s)); + if (code != OK) + break; + ++s; + } + } else { + code = ERR; + } + } + } +#endif + break; + } + return code; +} + +NCURSES_EXPORT(int) +winsch(WINDOW *win, chtype c) +{ + int code = ERR; + + T((T_CALLED("winsch(%p, %s)"), (void *) win, _tracechtype(c))); + + if (win != 0) { + NCURSES_SIZE_T oy = win->_cury; + NCURSES_SIZE_T ox = win->_curx; + + code = _nc_insert_ch(_nc_screen_of(win), win, c); + + win->_curx = ox; + win->_cury = oy; + _nc_synchook(win); + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_insdel.c b/third_party/ncurses/lib_insdel.c new file mode 100644 index 000000000..634daefc9 --- /dev/null +++ b/third_party/ncurses/lib_insdel.c @@ -0,0 +1,64 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2003,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_insdel.c +** +** The routine winsdelln(win, n). +** positive n insert n lines above current line +** negative n delete n lines starting from current line +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_insdel.c,v 1.14 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +winsdelln(WINDOW *win, int n) +{ + int code = ERR; + + T((T_CALLED("winsdelln(%p,%d)"), (void *) win, n)); + + if (win) { + if (n != 0) { + _nc_scroll_window(win, -n, win->_cury, win->_maxy, + win->_nc_bkgd); + _nc_synchook(win); + } + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_insnstr.c b/third_party/ncurses/lib_insnstr.c new file mode 100644 index 000000000..8c9d42df3 --- /dev/null +++ b/third_party/ncurses/lib_insnstr.c @@ -0,0 +1,96 @@ +/**************************************************************************** + * Copyright 2018-2020,2022 Thomas E. Dickey * + * Copyright 2004-2009,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +/* +** lib_insnstr.c +** +** The routine winsnstr(). +** +*/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_insnstr.c,v 1.8 2022/05/21 17:35:15 tom Exp $") + +NCURSES_EXPORT(int) +winsnstr(WINDOW *win, const char *s, int n) +{ + int code = ERR; + const unsigned char *str = (const unsigned char *) s; + + T((T_CALLED("winsnstr(%p,%s,%d)"), (void *) win, _nc_visbufn(s, n), n)); + + if (win != 0 && str != 0) { + SCREEN *sp = _nc_screen_of(win); +#if USE_WIDEC_SUPPORT + /* + * If the output contains "wide" (multibyte) characters, we will not + * really know the width of a character until we get the last byte + * of the character. Since the preceding byte(s) may use more columns + * on the screen than the final character, it is best to route the + * call to the wins_nwstr() function. + */ + if (sp->_screen_unicode) { + size_t nn = (n > 0) ? (size_t) n : strlen(s); + wchar_t *buffer = typeMalloc(wchar_t, nn + 1); + if (buffer != 0) { + mbstate_t state; + size_t n3; + init_mb(state); + n3 = mbstowcs(buffer, s, nn); + if (n3 != (size_t) (-1)) { + buffer[n3] = '\0'; + code = wins_nwstr(win, buffer, (int) n3); + } + free(buffer); + } + } + if (code == ERR) +#endif + { + NCURSES_SIZE_T oy = win->_cury; + NCURSES_SIZE_T ox = win->_curx; + const unsigned char *cp; + + for (cp = str; (n <= 0 || (cp - str) < n) && *cp; cp++) { + _nc_insert_ch(sp, win, (chtype) UChar(*cp)); + } + win->_curx = ox; + win->_cury = oy; + _nc_synchook(win); + code = OK; + } + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_instr.c b/third_party/ncurses/lib_instr.c new file mode 100644 index 000000000..7403ba30e --- /dev/null +++ b/third_party/ncurses/lib_instr.c @@ -0,0 +1,122 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* +** lib_instr.c +** +** The routine winnstr(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_instr.c,v 1.25 2021/04/03 22:24:18 tom Exp $") + +NCURSES_EXPORT(int) +winnstr(WINDOW *win, char *str, int n) +{ + int i = 0; + + T((T_CALLED("winnstr(%p,%p,%d)"), (void *) win, str, n)); + + if (!win || !str) { + i = ERR; + } else { + int row = win->_cury; + int col = win->_curx; + NCURSES_CH_T *text = win->_line[row].text; + + if (n < 0) + n = win->_maxx - col + 1; + + for (; i < n;) { +#if USE_WIDEC_SUPPORT + cchar_t *cell = &(text[col]); + attr_t attrs; + NCURSES_PAIRS_T pair; + char *tmp; + + if (!isWidecExt(*cell)) { + wchar_t *wch; + int n2; + + n2 = getcchar(cell, 0, 0, 0, 0); + if (n2 > 0 + && (wch = typeCalloc(wchar_t, (unsigned) n2 + 1)) != 0) { + bool done = FALSE; + + if (getcchar(cell, wch, &attrs, &pair, 0) == OK) { + mbstate_t state; + size_t n3; + + init_mb(state); + n3 = wcstombs(0, wch, (size_t) 0); + if (!isEILSEQ(n3) && (n3 != 0)) { + size_t need = n3 + 10 + (size_t) i; + int have = (int) n3 + i; + + /* check for loop-done as well as overflow */ + if (have > n || (int) need <= 0) { + done = TRUE; + } else if ((tmp = typeCalloc(char, need)) == 0) { + done = TRUE; + } else { + size_t i3; + + init_mb(state); + wcstombs(tmp, wch, n3); + for (i3 = 0; i3 < n3; ++i3) + str[i++] = tmp[i3]; + free(tmp); + } + } + } + free(wch); + if (done) + break; + } + } +#else + str[i++] = (char) CharOf(text[col]); +#endif + if (++col > win->_maxx) { + break; + } + } + str[i] = '\0'; /* SVr4 does not seem to count the null */ + } + T(("winnstr returns %s", _nc_visbuf(str))); + returnCode(i); +} diff --git a/third_party/ncurses/lib_inwstr.c b/third_party/ncurses/lib_inwstr.c new file mode 100644 index 000000000..1e6b7456b --- /dev/null +++ b/third_party/ncurses/lib_inwstr.c @@ -0,0 +1,114 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2002-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey * + ****************************************************************************/ + +/* +** lib_inwstr.c +** +** The routines winnwstr() and winwstr(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_inwstr.c,v 1.9 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +winnwstr(WINDOW *win, wchar_t *wstr, int n) +{ + int count = 0; + cchar_t *text; + + T((T_CALLED("winnwstr(%p,%p,%d)"), (void *) win, (void *) wstr, n)); + if (wstr != 0) { + if (win) { + int row, col; + int last = 0; + bool done = FALSE; + + getyx(win, row, col); + + text = win->_line[row].text; + while (count < n && !done && count != ERR) { + + if (!isWidecExt(text[col])) { + int inx; + wchar_t wch; + + for (inx = 0; (inx < CCHARW_MAX) + && ((wch = text[col].chars[inx]) != 0); + ++inx) { + if (count + 1 > n) { + done = TRUE; + if (last == 0) { + count = ERR; /* error if we store nothing */ + } else { + count = last; /* only store complete chars */ + } + break; + } + wstr[count++] = wch; + } + } + last = count; + if (++col > win->_maxx) { + break; + } + } + } + if (count > 0) { + wstr[count] = '\0'; + T(("winnwstr returns %s", _nc_viswbuf(wstr))); + } + } + returnCode(count); +} + +/* + * X/Open says winwstr() returns OK if not ERR. If that is not a blunder, it + * must have a null termination on the string (see above). Unlike winnstr(), + * it does not define what happens for a negative count with winnwstr(). + */ +NCURSES_EXPORT(int) +winwstr(WINDOW *win, wchar_t *wstr) +{ + int result = OK; + + T((T_CALLED("winwstr(%p,%p)"), (void *) win, (void *) wstr)); + if (win == 0) { + result = ERR; + } else if (winnwstr(win, wstr, + CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR) { + result = ERR; + } + returnCode(result); +} diff --git a/third_party/ncurses/lib_isendwin.c b/third_party/ncurses/lib_isendwin.c new file mode 100644 index 000000000..fb539f8db --- /dev/null +++ b/third_party/ncurses/lib_isendwin.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_endwin.c +** +** The routine endwin(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_isendwin.c,v 1.9 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(isendwin) (NCURSES_SP_DCL0) +{ + if (SP_PARM == NULL) + return FALSE; + return (SP_PARM->_endwin == ewSuspend); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(bool) +isendwin(void) +{ + return NCURSES_SP_NAME(isendwin) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_kernel.c b/third_party/ncurses/lib_kernel.c new file mode 100644 index 000000000..6f102b9f5 --- /dev/null +++ b/third_party/ncurses/lib_kernel.c @@ -0,0 +1,195 @@ +/**************************************************************************** + * Copyright 2020,2022 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 2002 * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * lib_kernel.c + * + * Misc. low-level routines: + * erasechar() + * killchar() + * flushinp() + * + * The baudrate() and delay_output() functions could logically live here, + * but are in other modules to reduce the static-link size of programs + * that use only these facilities. + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_kernel.c,v 1.35 2022/07/28 20:14:51 tom Exp $") + +#ifdef TERMIOS +static int +_nc_vdisable(void) +{ + int value = -1; +#if defined(_POSIX_VDISABLE) && HAVE_UNISTD_H + value = _POSIX_VDISABLE; +#endif +#if defined(_PC_VDISABLE) && HAVE_FPATHCONF + if (value == -1) { + value = (int) fpathconf(0, _PC_VDISABLE); + if (value == -1) { + value = 0377; + } + } +#elif defined(VDISABLE) + if (value == -1) + value = VDISABLE; +#endif + return value; +} +#endif /* TERMIOS */ + +/* + * erasechar() + * + * Return erase character as given in cur_term->Ottyb. + * + */ + +NCURSES_EXPORT(char) +NCURSES_SP_NAME(erasechar) (NCURSES_SP_DCL0) +{ + int result = ERR; + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("erasechar(%p)"), (void *) SP_PARM)); + + if (termp != 0) { +#ifdef TERMIOS + result = termp->Ottyb.c_cc[VERASE]; + if (result == _nc_vdisable()) + result = ERR; +#elif defined(EXP_WIN32_DRIVER) + result = ERR; +#else + result = termp->Ottyb.sg_erase; +#endif + } + returnChar((char) result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char) +erasechar(void) +{ + return NCURSES_SP_NAME(erasechar) (CURRENT_SCREEN); +} +#endif + +/* + * killchar() + * + * Return kill character as given in cur_term->Ottyb. + * + */ + +NCURSES_EXPORT(char) +NCURSES_SP_NAME(killchar) (NCURSES_SP_DCL0) +{ + int result = ERR; + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("killchar(%p)"), (void *) SP_PARM)); + + if (termp != 0) { +#ifdef TERMIOS + result = termp->Ottyb.c_cc[VKILL]; + if (result == _nc_vdisable()) + result = ERR; +#elif defined(EXP_WIN32_DRIVER) + result = ERR; +#else + result = termp->Ottyb.sg_kill; +#endif + } + returnChar((char) result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char) +killchar(void) +{ + return NCURSES_SP_NAME(killchar) (CURRENT_SCREEN); +} +#endif + +/* + * flushinp() + * + * Flush any input on cur_term->Filedes + * + */ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(flushinp) (NCURSES_SP_DCL0) +{ + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("flushinp(%p)"), (void *) SP_PARM)); + + if (termp != 0) { +#ifdef TERMIOS + tcflush(termp->Filedes, TCIFLUSH); +#else + errno = 0; + do { +#if defined(EXP_WIN32_DRIVER) + _nc_console_flush(_nc_console_fd2handle(termp->Filedes)); +#else + ioctl(termp->Filedes, TIOCFLUSH, 0); +#endif + } while + (errno == EINTR); +#endif + if (SP_PARM) { + SP_PARM->_fifohead = -1; + SP_PARM->_fifotail = 0; + SP_PARM->_fifopeek = 0; + } + returnCode(OK); + } + returnCode(ERR); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +flushinp(void) +{ + return NCURSES_SP_NAME(flushinp) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_key_name.c b/third_party/ncurses/lib_key_name.c new file mode 100644 index 000000000..cd6fa6224 --- /dev/null +++ b/third_party/ncurses/lib_key_name.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2007-2008,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* +** lib_key_name.c +** +** The routine key_name(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_key_name.c,v 1.5 2020/02/02 23:34:34 tom Exp $") + +#define MyData _nc_globals.key_name + +NCURSES_EXPORT(NCURSES_CONST char *) +key_name(wchar_t c) +{ + cchar_t my_cchar; + wchar_t *my_wchars; + size_t len; + + memset(&my_cchar, 0, sizeof(my_cchar)); + my_cchar.chars[0] = c; + my_cchar.chars[1] = L'\0'; + + my_wchars = wunctrl(&my_cchar); + len = wcstombs(MyData, my_wchars, sizeof(MyData) - 1); + if (isEILSEQ(len) || (len == 0)) { + return 0; + } + + MyData[len] = '\0'; + return MyData; +} diff --git a/third_party/ncurses/lib_keyname.c b/third_party/ncurses/lib_keyname.c new file mode 100644 index 000000000..d5c1f0910 --- /dev/null +++ b/third_party/ncurses/lib_keyname.c @@ -0,0 +1,421 @@ +/* generated by MKkeyname.awk */ + +#include "curses.priv.h" +#include "tic.h" + +struct kn { short offset; int code; }; +static const struct kn _nc_key_names[] = { + { 0, KEY_A1 }, + { 7, KEY_A3 }, + { 14, KEY_B2 }, + { 21, KEY_BACKSPACE }, + { 35, KEY_BEG }, + { 43, KEY_BREAK }, + { 53, KEY_BTAB }, + { 62, KEY_C1 }, + { 69, KEY_C3 }, + { 76, KEY_CANCEL }, + { 87, KEY_CATAB }, + { 97, KEY_CLEAR }, + { 107, KEY_CLOSE }, + { 117, KEY_COMMAND }, + { 129, KEY_COPY }, + { 138, KEY_CREATE }, + { 149, KEY_CTAB }, + { 158, KEY_DC }, + { 165, KEY_DL }, + { 172, KEY_DOWN }, + { 181, KEY_EIC }, + { 189, KEY_END }, + { 197, KEY_ENTER }, + { 207, KEY_EOL }, + { 215, KEY_EOS }, + { 223, KEY_EXIT }, + { 232, KEY_F(0) }, + { 241, KEY_F(1) }, + { 250, KEY_F(10) }, + { 260, KEY_F(11) }, + { 270, KEY_F(12) }, + { 280, KEY_F(13) }, + { 290, KEY_F(14) }, + { 300, KEY_F(15) }, + { 310, KEY_F(16) }, + { 320, KEY_F(17) }, + { 330, KEY_F(18) }, + { 340, KEY_F(19) }, + { 350, KEY_F(2) }, + { 359, KEY_F(20) }, + { 369, KEY_F(21) }, + { 379, KEY_F(22) }, + { 389, KEY_F(23) }, + { 399, KEY_F(24) }, + { 409, KEY_F(25) }, + { 419, KEY_F(26) }, + { 429, KEY_F(27) }, + { 439, KEY_F(28) }, + { 449, KEY_F(29) }, + { 459, KEY_F(3) }, + { 468, KEY_F(30) }, + { 478, KEY_F(31) }, + { 488, KEY_F(32) }, + { 498, KEY_F(33) }, + { 508, KEY_F(34) }, + { 518, KEY_F(35) }, + { 528, KEY_F(36) }, + { 538, KEY_F(37) }, + { 548, KEY_F(38) }, + { 558, KEY_F(39) }, + { 568, KEY_F(4) }, + { 577, KEY_F(40) }, + { 587, KEY_F(41) }, + { 597, KEY_F(42) }, + { 607, KEY_F(43) }, + { 617, KEY_F(44) }, + { 627, KEY_F(45) }, + { 637, KEY_F(46) }, + { 647, KEY_F(47) }, + { 657, KEY_F(48) }, + { 667, KEY_F(49) }, + { 677, KEY_F(5) }, + { 686, KEY_F(50) }, + { 696, KEY_F(51) }, + { 706, KEY_F(52) }, + { 716, KEY_F(53) }, + { 726, KEY_F(54) }, + { 736, KEY_F(55) }, + { 746, KEY_F(56) }, + { 756, KEY_F(57) }, + { 766, KEY_F(58) }, + { 776, KEY_F(59) }, + { 786, KEY_F(6) }, + { 795, KEY_F(60) }, + { 805, KEY_F(61) }, + { 815, KEY_F(62) }, + { 825, KEY_F(63) }, + { 835, KEY_F(7) }, + { 844, KEY_F(8) }, + { 853, KEY_F(9) }, + { 862, KEY_FIND }, + { 871, KEY_HELP }, + { 880, KEY_HOME }, + { 889, KEY_IC }, + { 896, KEY_IL }, + { 903, KEY_LEFT }, + { 912, KEY_LL }, + { 919, KEY_MARK }, + { 928, KEY_MESSAGE }, + { 940, KEY_MOUSE }, + { 950, KEY_MOVE }, + { 959, KEY_NEXT }, + { 968, KEY_NPAGE }, + { 978, KEY_OPEN }, + { 987, KEY_OPTIONS }, + { 999, KEY_PPAGE }, + { 1009, KEY_PREVIOUS }, + { 1022, KEY_PRINT }, + { 1032, KEY_REDO }, + { 1041, KEY_REFERENCE }, + { 1055, KEY_REFRESH }, + { 1067, KEY_REPLACE }, + { 1079, KEY_RESET }, + { 1089, KEY_RESIZE }, + { 1100, KEY_RESTART }, + { 1112, KEY_RESUME }, + { 1123, KEY_RIGHT }, + { 1133, KEY_SAVE }, + { 1142, KEY_SBEG }, + { 1151, KEY_SCANCEL }, + { 1163, KEY_SCOMMAND }, + { 1176, KEY_SCOPY }, + { 1186, KEY_SCREATE }, + { 1198, KEY_SDC }, + { 1206, KEY_SDL }, + { 1214, KEY_SELECT }, + { 1225, KEY_SEND }, + { 1234, KEY_SEOL }, + { 1243, KEY_SEXIT }, + { 1253, KEY_SF }, + { 1260, KEY_SFIND }, + { 1270, KEY_SHELP }, + { 1280, KEY_SHOME }, + { 1290, KEY_SIC }, + { 1298, KEY_SLEFT }, + { 1308, KEY_SMESSAGE }, + { 1321, KEY_SMOVE }, + { 1331, KEY_SNEXT }, + { 1341, KEY_SOPTIONS }, + { 1354, KEY_SPREVIOUS }, + { 1368, KEY_SPRINT }, + { 1379, KEY_SR }, + { 1386, KEY_SREDO }, + { 1396, KEY_SREPLACE }, + { 1409, KEY_SRESET }, + { 1420, KEY_SRIGHT }, + { 1431, KEY_SRSUME }, + { 1442, KEY_SSAVE }, + { 1452, KEY_SSUSPEND }, + { 1465, KEY_STAB }, + { 1474, KEY_SUNDO }, + { 1484, KEY_SUSPEND }, + { 1496, KEY_UNDO }, + { 1505, KEY_UP }, + { -1, 0 }}; + +static const char key_names[] = + "KEY_A1\0" + "KEY_A3\0" + "KEY_B2\0" + "KEY_BACKSPACE\0" + "KEY_BEG\0" + "KEY_BREAK\0" + "KEY_BTAB\0" + "KEY_C1\0" + "KEY_C3\0" + "KEY_CANCEL\0" + "KEY_CATAB\0" + "KEY_CLEAR\0" + "KEY_CLOSE\0" + "KEY_COMMAND\0" + "KEY_COPY\0" + "KEY_CREATE\0" + "KEY_CTAB\0" + "KEY_DC\0" + "KEY_DL\0" + "KEY_DOWN\0" + "KEY_EIC\0" + "KEY_END\0" + "KEY_ENTER\0" + "KEY_EOL\0" + "KEY_EOS\0" + "KEY_EXIT\0" + "KEY_F(0)\0" + "KEY_F(1)\0" + "KEY_F(10)\0" + "KEY_F(11)\0" + "KEY_F(12)\0" + "KEY_F(13)\0" + "KEY_F(14)\0" + "KEY_F(15)\0" + "KEY_F(16)\0" + "KEY_F(17)\0" + "KEY_F(18)\0" + "KEY_F(19)\0" + "KEY_F(2)\0" + "KEY_F(20)\0" + "KEY_F(21)\0" + "KEY_F(22)\0" + "KEY_F(23)\0" + "KEY_F(24)\0" + "KEY_F(25)\0" + "KEY_F(26)\0" + "KEY_F(27)\0" + "KEY_F(28)\0" + "KEY_F(29)\0" + "KEY_F(3)\0" + "KEY_F(30)\0" + "KEY_F(31)\0" + "KEY_F(32)\0" + "KEY_F(33)\0" + "KEY_F(34)\0" + "KEY_F(35)\0" + "KEY_F(36)\0" + "KEY_F(37)\0" + "KEY_F(38)\0" + "KEY_F(39)\0" + "KEY_F(4)\0" + "KEY_F(40)\0" + "KEY_F(41)\0" + "KEY_F(42)\0" + "KEY_F(43)\0" + "KEY_F(44)\0" + "KEY_F(45)\0" + "KEY_F(46)\0" + "KEY_F(47)\0" + "KEY_F(48)\0" + "KEY_F(49)\0" + "KEY_F(5)\0" + "KEY_F(50)\0" + "KEY_F(51)\0" + "KEY_F(52)\0" + "KEY_F(53)\0" + "KEY_F(54)\0" + "KEY_F(55)\0" + "KEY_F(56)\0" + "KEY_F(57)\0" + "KEY_F(58)\0" + "KEY_F(59)\0" + "KEY_F(6)\0" + "KEY_F(60)\0" + "KEY_F(61)\0" + "KEY_F(62)\0" + "KEY_F(63)\0" + "KEY_F(7)\0" + "KEY_F(8)\0" + "KEY_F(9)\0" + "KEY_FIND\0" + "KEY_HELP\0" + "KEY_HOME\0" + "KEY_IC\0" + "KEY_IL\0" + "KEY_LEFT\0" + "KEY_LL\0" + "KEY_MARK\0" + "KEY_MESSAGE\0" + "KEY_MOUSE\0" + "KEY_MOVE\0" + "KEY_NEXT\0" + "KEY_NPAGE\0" + "KEY_OPEN\0" + "KEY_OPTIONS\0" + "KEY_PPAGE\0" + "KEY_PREVIOUS\0" + "KEY_PRINT\0" + "KEY_REDO\0" + "KEY_REFERENCE\0" + "KEY_REFRESH\0" + "KEY_REPLACE\0" + "KEY_RESET\0" + "KEY_RESIZE\0" + "KEY_RESTART\0" + "KEY_RESUME\0" + "KEY_RIGHT\0" + "KEY_SAVE\0" + "KEY_SBEG\0" + "KEY_SCANCEL\0" + "KEY_SCOMMAND\0" + "KEY_SCOPY\0" + "KEY_SCREATE\0" + "KEY_SDC\0" + "KEY_SDL\0" + "KEY_SELECT\0" + "KEY_SEND\0" + "KEY_SEOL\0" + "KEY_SEXIT\0" + "KEY_SF\0" + "KEY_SFIND\0" + "KEY_SHELP\0" + "KEY_SHOME\0" + "KEY_SIC\0" + "KEY_SLEFT\0" + "KEY_SMESSAGE\0" + "KEY_SMOVE\0" + "KEY_SNEXT\0" + "KEY_SOPTIONS\0" + "KEY_SPREVIOUS\0" + "KEY_SPRINT\0" + "KEY_SR\0" + "KEY_SREDO\0" + "KEY_SREPLACE\0" + "KEY_SRESET\0" + "KEY_SRIGHT\0" + "KEY_SRSUME\0" + "KEY_SSAVE\0" + "KEY_SSUSPEND\0" + "KEY_STAB\0" + "KEY_SUNDO\0" + "KEY_SUSPEND\0" + "KEY_UNDO\0" + "KEY_UP\0"; + +#define SIZEOF_TABLE 256 +#define MyTable _nc_globals.keyname_table +#define MyInit _nc_globals.init_keyname + +NCURSES_EXPORT(NCURSES_CONST char *) +safe_keyname (SCREEN *sp, int c) +{ + char name[20]; + NCURSES_CONST char *result = 0; + + if (c == -1) { + result = "-1"; + } else { + int i; + for (i = 0; _nc_key_names[i].offset != -1; i++) { + if (_nc_key_names[i].code == c) { + result = (NCURSES_CONST char *)key_names + _nc_key_names[i].offset; + break; + } + } + + if (result == 0 && (c >= 0 && c < SIZEOF_TABLE)) { + if (MyTable == 0) + MyTable = typeCalloc(char *, SIZEOF_TABLE); + + if (MyTable != 0) { + int m_prefix = (sp == 0 || sp->_use_meta); + + /* if sense of meta() changed, discard cached data */ + if (MyInit != (m_prefix + 1)) { + MyInit = m_prefix + 1; + for (i = 0; i < SIZEOF_TABLE; ++i) { + if (MyTable[i]) { + FreeAndNull(MyTable[i]); + } + } + } + + /* create and cache result as needed */ + if (MyTable[c] == 0) { + int cc = c; + char *p = name; +#define P_LIMIT (sizeof(name) - (size_t) (p - name)) + if (cc >= 128 && m_prefix) { + _nc_STRCPY(p, "M-", P_LIMIT); + p += 2; + cc -= 128; + } + if (cc < 32) + _nc_SPRINTF(p, _nc_SLIMIT(P_LIMIT) "^%c", cc + '@'); + else if (cc == 127) + _nc_STRCPY(p, "^?", P_LIMIT); + else + _nc_SPRINTF(p, _nc_SLIMIT(P_LIMIT) "%c", cc); + MyTable[c] = strdup(name); + } + result = MyTable[c]; + } +#if NCURSES_EXT_FUNCS && NCURSES_XNAMES + } else if (result == 0 && HasTerminal(sp)) { + int j, k; + char * bound; + TERMTYPE2 *tp = &TerminalType(TerminalOf(sp)); + unsigned save_trace = _nc_tracing; + + _nc_tracing = 0; /* prevent recursion via keybound() */ + for (j = 0; (bound = NCURSES_SP_NAME(keybound)(NCURSES_SP_ARGx c, j)) != 0; ++j) { + for(k = STRCOUNT; k < (int) NUM_STRINGS(tp); k++) { + if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) { + result = ExtStrname(tp, k, strnames); + break; + } + } + free(bound); + if (result != 0) + break; + } + _nc_tracing = save_trace; +#endif + } + } + return result; +} + +NCURSES_EXPORT(NCURSES_CONST char *) +keyname (int c) +{ + return safe_keyname (CURRENT_SCREEN, c); +} + +#if NO_LEAKS +void _nc_keyname_leaks(void) +{ + if (MyTable != 0) { + int j; + for (j = 0; j < SIZEOF_TABLE; ++j) { + FreeIfNeeded(MyTable[j]); + } + FreeAndNull(MyTable); + } +} +#endif /* NO_LEAKS */ diff --git a/third_party/ncurses/lib_leaveok.c b/third_party/ncurses/lib_leaveok.c new file mode 100644 index 000000000..c5873eb27 --- /dev/null +++ b/third_party/ncurses/lib_leaveok.c @@ -0,0 +1,56 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_leaveok.c +** +** The routine leaveok. +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_leaveok.c,v 1.7 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +leaveok(WINDOW *win, bool flag) +{ + T((T_CALLED("leaveok(%p,%d)"), (void *) win, flag)); + + if (win) { + win->_leaveok = flag; + returnCode(OK); + } else + returnCode(ERR); +} diff --git a/third_party/ncurses/lib_longname.c b/third_party/ncurses/lib_longname.c new file mode 100644 index 000000000..788843b83 --- /dev/null +++ b/third_party/ncurses/lib_longname.c @@ -0,0 +1,104 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2010,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_longname.c +** +** The routine longname(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_longname.c,v 1.15 2021/04/03 22:36:21 tom Exp $") + +#if USE_REENTRANT +NCURSES_EXPORT(char *) +NCURSES_SP_NAME(longname) (NCURSES_SP_DCL0) +{ + static char empty[] = + {'\0'}; + + T((T_CALLED("longname(%p)"), (void *) SP_PARM)); + + if (SP_PARM) { + char *ptr; + + for (ptr = SP_PARM->_ttytype + strlen(SP_PARM->_ttytype); + ptr > SP_PARM->_ttytype; + ptr--) + if (*ptr == '|') + returnPtr(ptr + 1); + returnPtr(SP_PARM->_ttytype); + } + return empty; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char *) +longname(void) +{ + return NCURSES_SP_NAME(longname) (CURRENT_SCREEN); +} +#endif + +#else + +/* a dummy entrypoint is simpler than generating a conditional in curses.h */ +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char *) +NCURSES_SP_NAME(longname) (NCURSES_SP_DCL0) +{ + (void) SP_PARM; + return longname(); +} +#endif + +NCURSES_EXPORT(char *) +longname(void) +{ + char *ptr; + + T((T_CALLED("longname()"))); + + for (ptr = ttytype + strlen(ttytype); + ptr > ttytype; + ptr--) + if (*ptr == '|') + returnPtr(ptr + 1); + returnPtr(ttytype); +} +#endif diff --git a/third_party/ncurses/lib_mouse.c b/third_party/ncurses/lib_mouse.c new file mode 100644 index 000000000..9537de2df --- /dev/null +++ b/third_party/ncurses/lib_mouse.c @@ -0,0 +1,2056 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * + ****************************************************************************/ + +/* + * This module is intended to encapsulate ncurses's interface to pointing + * devices. + * + * The primary method used is xterm's internal mouse-tracking facility. + * Additional methods depend on the platform: + * Alessandro Rubini's GPM server (Linux) + * sysmouse (FreeBSD) + * special-purpose mouse interface for OS/2 EMX. + * + * Notes for implementors of new mouse-interface methods: + * + * The code is logically split into a lower level that accepts event reports + * in a device-dependent format and an upper level that parses mouse gestures + * and filters events. The mediating data structure is a circular queue of + * MEVENT structures. + * + * Functionally, the lower level's job is to pick up primitive events and + * put them on the circular queue. This can happen in one of two ways: + * either (a) _nc_mouse_event() detects a series of incoming mouse reports + * and queues them, or (b) code in lib_getch.c detects the kmous prefix in + * the keyboard input stream and calls _nc_mouse_inline to queue up a series + * of adjacent mouse reports. + * + * In either case, _nc_mouse_parse() should be called after the series is + * accepted to parse the digested mouse reports (low-level MEVENTs) into + * a gesture (a high-level or composite MEVENT). + * + * Don't be too shy about adding new event types or modifiers, if you can find + * room for them in the 32-bit mask. The API is written so that users get + * feedback on which theoretical event types they won't see when they call + * mousemask. There's one bit per button (the RESERVED_EVENT bit) not being + * used yet, and a couple of bits open at the high end. + */ + +#ifdef __EMX__ +# include +# define INCL_DOS +# define INCL_VIO +# define INCL_KBD +# define INCL_MOU +# define INCL_DOSPROCESS +# include /* Need to include before the others */ +#endif + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_mouse.c,v 1.197 2022/08/13 14:13:12 tom Exp $") + +#include "tic.h" + +#if USE_GPM_SUPPORT +#include /* defines KG_* macros */ + +#ifdef HAVE_LIBDL +/* use dynamic loader to avoid linkage dependency */ +#include + +#ifdef RTLD_NOW +#define my_RTLD RTLD_NOW +#else +#ifdef RTLD_LAZY +#define my_RTLD RTLD_LAZY +#else +make an error +#endif +#endif /* RTLD_NOW */ +#endif /* HAVE_LIBDL */ + +#endif /* USE_GPM_SUPPORT */ + +#if USE_SYSMOUSE +#undef buttons /* symbol conflict in consio.h */ +#undef mouse_info /* symbol conflict in consio.h */ +#include +#if defined(__DragonFly_version) || (defined(__FreeBSD__) && (__FreeBSD_version >= 400017)) +#include +#include +#else +#include +#endif +#endif /* use_SYSMOUSE */ + +#if USE_KLIBC_MOUSE +#include +#define pipe(handles) socketpair(AF_LOCAL, SOCK_STREAM, 0, handles) +#define DosWrite(hfile, pbuffer, cbwrite, pcbactual) \ + write(hfile, pbuffer, cbwrite) +#define DosExit(action, result ) /* do nothing */ +#define DosCreateThread(ptid, pfn, param, flag, cbStack) \ + (*(ptid) = _beginthread(pfn, NULL, cbStack, \ + (void *)param), (*(ptid) == -1)) +#endif + +#define MY_TRACE TRACE_ICALLS|TRACE_IEVENT + +#define MASK_RELEASE(x) (mmask_t) NCURSES_MOUSE_MASK(x, 001) +#define MASK_PRESS(x) (mmask_t) NCURSES_MOUSE_MASK(x, 002) +#define MASK_CLICK(x) (mmask_t) NCURSES_MOUSE_MASK(x, 004) +#define MASK_DOUBLE_CLICK(x) (mmask_t) NCURSES_MOUSE_MASK(x, 010) +#define MASK_TRIPLE_CLICK(x) (mmask_t) NCURSES_MOUSE_MASK(x, 020) +#define MASK_RESERVED_EVENT(x) (mmask_t) NCURSES_MOUSE_MASK(x, 040) + +#if NCURSES_MOUSE_VERSION == 1 + +#define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED | BUTTON4_CLICKED) +#define BUTTON_PRESSED (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED | BUTTON4_PRESSED) +#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED | BUTTON4_RELEASED) +#define BUTTON_DOUBLE_CLICKED (BUTTON1_DOUBLE_CLICKED | BUTTON2_DOUBLE_CLICKED | BUTTON3_DOUBLE_CLICKED | BUTTON4_DOUBLE_CLICKED) +#define BUTTON_TRIPLE_CLICKED (BUTTON1_TRIPLE_CLICKED | BUTTON2_TRIPLE_CLICKED | BUTTON3_TRIPLE_CLICKED | BUTTON4_TRIPLE_CLICKED) + +#define MAX_BUTTONS 4 + +#else + +#define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED | BUTTON4_CLICKED | BUTTON5_CLICKED) +#define BUTTON_PRESSED (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED | BUTTON4_PRESSED | BUTTON5_PRESSED) +#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED | BUTTON4_RELEASED | BUTTON5_RELEASED) +#define BUTTON_DOUBLE_CLICKED (BUTTON1_DOUBLE_CLICKED | BUTTON2_DOUBLE_CLICKED | BUTTON3_DOUBLE_CLICKED | BUTTON4_DOUBLE_CLICKED | BUTTON5_DOUBLE_CLICKED) +#define BUTTON_TRIPLE_CLICKED (BUTTON1_TRIPLE_CLICKED | BUTTON2_TRIPLE_CLICKED | BUTTON3_TRIPLE_CLICKED | BUTTON4_TRIPLE_CLICKED | BUTTON5_TRIPLE_CLICKED) + +#if NCURSES_MOUSE_VERSION == 2 +#define MAX_BUTTONS 5 +#else +#define MAX_BUTTONS 11 +#endif + +#endif + +#define INVALID_EVENT -1 +#define NORMAL_EVENT 0 + +#define ValidEvent(ep) ((ep)->id != INVALID_EVENT) +#define Invalidate(ep) (ep)->id = INVALID_EVENT + +#if USE_GPM_SUPPORT + +#ifndef LIBGPM_SONAME +#define LIBGPM_SONAME "libgpm.so" +#endif + +#define GET_DLSYM(name) (my_##name = (TYPE_##name) dlsym(sp->_dlopen_gpm, #name)) + +#endif /* USE_GPM_SUPPORT */ + +static bool _nc_mouse_parse(SCREEN *, int); +static void _nc_mouse_resume(SCREEN *); +static void _nc_mouse_wrap(SCREEN *); + +/* maintain a circular list of mouse events */ + +#define FirstEV(sp) ((sp)->_mouse_events) +#define LastEV(sp) ((sp)->_mouse_events + EV_MAX - 1) + +#undef NEXT +#define NEXT(ep) ((ep >= LastEV(SP_PARM)) \ + ? FirstEV(SP_PARM) \ + : ep + 1) + +#undef PREV +#define PREV(ep) ((ep <= FirstEV(SP_PARM)) \ + ? LastEV(SP_PARM) \ + : ep - 1) + +#define IndexEV(sp, ep) (ep - FirstEV(sp)) + +#define RunParams(sp, eventp, runp) \ + (long) IndexEV(sp, runp), \ + (long) (IndexEV(sp, eventp) + (EV_MAX - 1)) % EV_MAX + +#ifdef TRACE +static void +_trace_slot(SCREEN *sp, const char *tag) +{ + MEVENT *ep; + + _tracef("%s", tag); + + for (ep = FirstEV(sp); ep <= LastEV(sp); ep++) + _tracef("mouse event queue slot %ld = %s", + (long) IndexEV(sp, ep), + _nc_tracemouse(sp, ep)); +} +#endif + +#if USE_EMX_MOUSE + +# define TOP_ROW 0 +# define LEFT_COL 0 + +# define M_FD(sp) sp->_mouse_fd + +static void +write_event(SCREEN *sp, int down, int button, int x, int y) +{ + char buf[6]; + unsigned long ignore; + + _nc_STRCPY(buf, "\033[M", sizeof(buf)); /* should be the same as key_mouse */ + buf[3] = ' ' + (button - 1) + (down ? 0 : 0x40); + buf[4] = ' ' + x - LEFT_COL + 1; + buf[5] = ' ' + y - TOP_ROW + 1; + DosWrite(sp->_emxmouse_wfd, buf, 6, &ignore); +} + +static void +#if USE_KLIBC_MOUSE +mouse_server(void *param) +#else +mouse_server(unsigned long param) +#endif +{ + SCREEN *sp = (SCREEN *) param; + unsigned short fWait = MOU_WAIT; + /* NOPTRRECT mourt = { 0,0,24,79 }; */ + MOUEVENTINFO mouev; + HMOU hmou; + unsigned short mask = MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN; + int nbuttons = 3; + int oldstate = 0; + char err[80]; + unsigned long rc; + + /* open the handle for the mouse */ + if (MouOpen(NULL, &hmou) == 0) { + rc = MouSetEventMask(&mask, hmou); + if (rc) { /* retry with 2 buttons */ + mask = MOUSE_BN1_DOWN | MOUSE_BN2_DOWN; + rc = MouSetEventMask(&mask, hmou); + nbuttons = 2; + } + if (rc == 0 && MouDrawPtr(hmou) == 0) { + for (;;) { + /* sit and wait on the event queue */ + rc = MouReadEventQue(&mouev, &fWait, hmou); + if (rc) { + _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err)) + "Error reading mouse queue, rc=%lu.\r\n", rc); + break; + } + if (!sp->_emxmouse_activated) + goto finish; + + /* + * OS/2 numbers a 3-button mouse inconsistently from other + * platforms: + * 1 = left + * 2 = right + * 3 = middle. + */ + if ((mouev.fs ^ oldstate) & MOUSE_BN1_DOWN) + write_event(sp, mouev.fs & MOUSE_BN1_DOWN, + sp->_emxmouse_buttons[1], mouev.col, mouev.row); + if ((mouev.fs ^ oldstate) & MOUSE_BN2_DOWN) + write_event(sp, mouev.fs & MOUSE_BN2_DOWN, + sp->_emxmouse_buttons[3], mouev.col, mouev.row); + if ((mouev.fs ^ oldstate) & MOUSE_BN3_DOWN) + write_event(sp, mouev.fs & MOUSE_BN3_DOWN, + sp->_emxmouse_buttons[2], mouev.col, mouev.row); + + finish: + oldstate = mouev.fs; + } + } else { + _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err)) + "Error setting event mask, buttons=%d, rc=%lu.\r\n", + nbuttons, rc); + } + + DosWrite(2, err, strlen(err), &rc); + MouClose(hmou); + } + DosExit(EXIT_THREAD, 0L); +} + +#endif /* USE_EMX_MOUSE */ + +#if USE_SYSMOUSE +static void +sysmouse_server(SCREEN *sp) +{ + struct mouse_info the_mouse; + MEVENT *work; + + the_mouse.operation = MOUSE_GETINFO; + if (sp != 0 + && sp->_mouse_fd >= 0 + && sp->_sysmouse_tail < FIFO_SIZE + && ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) { + + if (sp->_sysmouse_head > sp->_sysmouse_tail) { + sp->_sysmouse_tail = 0; + sp->_sysmouse_head = 0; + } + work = &(sp->_sysmouse_fifo[sp->_sysmouse_tail]); + memset(work, 0, sizeof(*work)); + work->id = NORMAL_EVENT; /* there's only one mouse... */ + + sp->_sysmouse_old_buttons = sp->_sysmouse_new_buttons; + sp->_sysmouse_new_buttons = the_mouse.u.data.buttons & 0x7; + + if (sp->_sysmouse_new_buttons) { + if (sp->_sysmouse_new_buttons & 1) + work->bstate |= BUTTON1_PRESSED; + if (sp->_sysmouse_new_buttons & 2) + work->bstate |= BUTTON2_PRESSED; + if (sp->_sysmouse_new_buttons & 4) + work->bstate |= BUTTON3_PRESSED; + } else { + if (sp->_sysmouse_old_buttons & 1) + work->bstate |= BUTTON1_RELEASED; + if (sp->_sysmouse_old_buttons & 2) + work->bstate |= BUTTON2_RELEASED; + if (sp->_sysmouse_old_buttons & 4) + work->bstate |= BUTTON3_RELEASED; + } + + /* for cosmetic bug in syscons.c on FreeBSD 3.[34] */ + the_mouse.operation = MOUSE_HIDE; + ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse); + the_mouse.operation = MOUSE_SHOW; + ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse); + + /* + * We're only interested if the button is pressed or released. + * FIXME: implement continuous event-tracking. + */ + if (sp->_sysmouse_new_buttons != sp->_sysmouse_old_buttons) { + sp->_sysmouse_tail += 1; + } + work->x = the_mouse.u.data.x / sp->_sysmouse_char_width; + work->y = the_mouse.u.data.y / sp->_sysmouse_char_height; + } +} + +static void +handle_sysmouse(int sig GCC_UNUSED) +{ + sysmouse_server(CURRENT_SCREEN); +} +#endif /* USE_SYSMOUSE */ + +#ifndef USE_TERM_DRIVER +#define xterm_kmous "\033[M" + +static void +init_xterm_mouse(SCREEN *sp) +{ + sp->_mouse_type = M_XTERM; + sp->_mouse_format = MF_X10; + sp->_mouse_xtermcap = tigetstr("XM"); + if (VALID_STRING(sp->_mouse_xtermcap)) { + char *code = strstr(sp->_mouse_xtermcap, "[?"); + if (code != 0) { + code += 2; + while ((*code >= '0') && (*code <= '9')) { + char *next = code; + while ((*next >= '0') && (*next <= '9')) { + ++next; + } + if (!strncmp(code, "1006", (size_t) (next - code))) { + sp->_mouse_format = MF_SGR1006; + } +#ifdef EXP_XTERM_1005 + if (!strncmp(code, "1005", (size_t) (next - code))) { + sp->_mouse_format = MF_XTERM_1005; + } +#endif + if (*next == ';') { + while (*next == ';') { + ++next; + } + code = next; + } else { + break; + } + } + } + } else { + int code = tigetnum("XM"); + switch (code) { +#ifdef EXP_XTERM_1005 + case 1005: + /* see "xterm+sm+1005" */ + sp->_mouse_xtermcap = "\033[?1005;1000%?%p1%{1}%=%th%el%;"; + sp->_mouse_format = MF_XTERM_1005; + break; +#endif + case 1006: + /* see "xterm+sm+1006" */ + sp->_mouse_xtermcap = "\033[?1006;1000%?%p1%{1}%=%th%el%;"; + sp->_mouse_format = MF_SGR1006; + break; + default: + sp->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;"; + break; + } + } +} +#endif + +static void +enable_xterm_mouse(SCREEN *sp, int enable) +{ +#if USE_EMX_MOUSE + sp->_emxmouse_activated = enable; +#else + NCURSES_PUTP2("xterm-mouse", TIPARM_1(sp->_mouse_xtermcap, enable)); +#endif + sp->_mouse_active = enable; +} + +#if USE_GPM_SUPPORT +static bool +allow_gpm_mouse(SCREEN *sp GCC_UNUSED) +{ + bool result = FALSE; + +#if USE_WEAK_SYMBOLS + /* Danger Robinson: do not use dlopen for libgpm if already loaded */ + if ((Gpm_Wgetch) != 0) { + if (!sp->_mouse_gpm_loaded) { + T(("GPM library was already dlopen'd, not by us")); + } + } else +#endif + /* GPM does printf's without checking if stdout is a terminal */ + if (NC_ISATTY(fileno(stdout))) { + const char *list = getenv("NCURSES_GPM_TERMS"); + const char *env = getenv("TERM"); + if (list != 0) { + if (env != 0) { + result = _nc_name_match(list, env, "|:"); + } + } else { + /* GPM checks the beginning of the $TERM variable to decide if it + * should pass xterm events through. There is no real advantage in + * allowing GPM to do this. Recent versions relax that check, and + * pretend that GPM can work with any terminal having the kmous + * capability. Perhaps that works for someone. If so, they can + * set the environment variable (above). + */ + if (env != 0 && strstr(env, "linux") != 0) { + result = TRUE; + } + } + } + return result; +} + +#ifdef HAVE_LIBDL +static void +unload_gpm_library(SCREEN *sp) +{ + if (sp->_dlopen_gpm != 0) { + T(("unload GPM library")); + sp->_mouse_gpm_loaded = FALSE; + sp->_mouse_fd = -1; + } +} + +static void +load_gpm_library(SCREEN *sp) +{ + sp->_mouse_gpm_found = FALSE; + + /* + * If we already had a successful dlopen, reuse it. + */ + if (sp->_dlopen_gpm != 0) { + sp->_mouse_gpm_found = TRUE; + sp->_mouse_gpm_loaded = TRUE; + } else if ((sp->_dlopen_gpm = dlopen(LIBGPM_SONAME, my_RTLD)) != 0) { +#if (defined(__GNUC__) && (__GNUC__ >= 5)) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpedantic" +#endif + if (GET_DLSYM(gpm_fd) == 0 || + GET_DLSYM(Gpm_Open) == 0 || + GET_DLSYM(Gpm_Close) == 0 || + GET_DLSYM(Gpm_GetEvent) == 0) { +#if (defined(__GNUC__) && (__GNUC__ >= 5)) || defined(__clang__) +#pragma GCC diagnostic pop +#endif + T(("GPM initialization failed: %s", dlerror())); + unload_gpm_library(sp); + dlclose(sp->_dlopen_gpm); + sp->_dlopen_gpm = 0; + } else { + sp->_mouse_gpm_found = TRUE; + sp->_mouse_gpm_loaded = TRUE; + } + } +} +#endif /* HAVE_LIBDL */ + +static bool +enable_gpm_mouse(SCREEN *sp, bool enable) +{ + bool result; + + T((T_CALLED("enable_gpm_mouse(%d)"), enable)); + + if (enable && !sp->_mouse_active) { +#ifdef HAVE_LIBDL + if (sp->_mouse_gpm_found && !sp->_mouse_gpm_loaded) { + load_gpm_library(sp); + } +#endif + if (sp->_mouse_gpm_loaded) { + int code; + + /* GPM: initialize connection to gpm server */ + sp->_mouse_gpm_connect.eventMask = GPM_DOWN | GPM_UP; + sp->_mouse_gpm_connect.defaultMask = + (unsigned short) (~(sp->_mouse_gpm_connect.eventMask | GPM_HARD)); + sp->_mouse_gpm_connect.minMod = 0; + sp->_mouse_gpm_connect.maxMod = + (unsigned short) (~((1 << KG_SHIFT) | + (1 << KG_SHIFTL) | + (1 << KG_SHIFTR))); + /* + * Note: GPM hardcodes \E[?1001s and \E[?1000h during its open. + * The former is recognized by wscons (SunOS), and the latter by + * xterm. Those will not show up in ncurses' traces. + */ + code = my_Gpm_Open(&sp->_mouse_gpm_connect, 0); + result = (code >= 0); + + /* + * GPM can return a -2 if it is trying to do something with xterm. + * Ignore that, since it conflicts with our use of stdin. + */ + if (code == -2) { + my_Gpm_Close(); + } + } else { + result = FALSE; + } + sp->_mouse_active = result; + T(("GPM open %s", result ? "succeeded" : "failed")); + } else { + if (!enable && sp->_mouse_active) { + /* GPM: close connection to gpm server */ + my_Gpm_Close(); + sp->_mouse_active = FALSE; + T(("GPM closed")); + } + result = enable; + } +#ifdef HAVE_LIBDL + if (!result) { + unload_gpm_library(sp); + } +#endif + returnBool(result); +} +#endif /* USE_GPM_SUPPORT */ + +static void +initialize_mousetype(SCREEN *sp) +{ + T((T_CALLED("initialize_mousetype()"))); + + /* Try gpm first, because gpm may be configured to run in xterm */ +#if USE_GPM_SUPPORT + if (allow_gpm_mouse(sp)) { + if (!sp->_mouse_gpm_loaded) { +#ifdef HAVE_LIBDL + load_gpm_library(sp); +#else /* !HAVE_LIBDL */ + sp->_mouse_gpm_found = TRUE; + sp->_mouse_gpm_loaded = TRUE; +#endif + } + + /* + * The gpm_fd file-descriptor may be negative (xterm). So we have to + * maintain our notion of whether the mouse connection is active + * without testing the file-descriptor. + */ + if (sp->_mouse_gpm_found && enable_gpm_mouse(sp, TRUE)) { + sp->_mouse_type = M_GPM; + sp->_mouse_fd = *(my_gpm_fd); + T(("GPM mouse_fd %d", sp->_mouse_fd)); + returnVoid; + } + } +#endif /* USE_GPM_SUPPORT */ + + /* OS/2 VIO */ +#if USE_EMX_MOUSE + if (!sp->_emxmouse_thread + && strstr(SP_TERMTYPE term_names, "xterm") == 0 + && NonEmpty(key_mouse)) { + int handles[2]; + + if (pipe(handles) < 0) { + perror("mouse pipe error"); + returnVoid; + } else { + int rc; + + if (!sp->_emxmouse_buttons[0]) { + const char *s = getenv("MOUSE_BUTTONS_123"); + + sp->_emxmouse_buttons[0] = 1; + if (s && strlen(s) >= 3) { + sp->_emxmouse_buttons[1] = s[0] - '0'; + sp->_emxmouse_buttons[2] = s[1] - '0'; + sp->_emxmouse_buttons[3] = s[2] - '0'; + } else { + sp->_emxmouse_buttons[1] = 1; + sp->_emxmouse_buttons[2] = 3; + sp->_emxmouse_buttons[3] = 2; + } + } + sp->_emxmouse_wfd = handles[1]; + M_FD(sp) = handles[0]; + /* Needed? */ + setmode(handles[0], O_BINARY); + setmode(handles[1], O_BINARY); + /* Do not use CRT functions, we may single-threaded. */ + rc = DosCreateThread((unsigned long *) &sp->_emxmouse_thread, + mouse_server, (long) sp, 0, 8192); + if (rc) { + printf("mouse thread error %d=%#x", rc, rc); + } else { + sp->_mouse_type = M_XTERM; + } + returnVoid; + } + } +#endif /* USE_EMX_MOUSE */ + +#if USE_SYSMOUSE + { + static char dev_tty[] = "/dev/tty"; + struct mouse_info the_mouse; + char *the_device = 0; + + if (NC_ISATTY(sp->_ifd)) + the_device = ttyname(sp->_ifd); + if (the_device == 0) + the_device = dev_tty; + + sp->_mouse_fd = open(the_device, O_RDWR); + + if (sp->_mouse_fd >= 0) { + /* + * sysmouse does not have a usable user interface for obtaining + * mouse events. The logical way to proceed (reading data on a + * stream) only works if one opens the device as root. Even in + * that mode, careful examination shows we lose events + * occasionally. The interface provided for user programs is to + * establish a signal handler. really. + * + * Take over SIGUSR2 for this purpose since SIGUSR1 is more + * likely to be used by an application. getch() will have to + * handle the misleading EINTR's. + */ + signal(SIGUSR2, SIG_IGN); + the_mouse.operation = MOUSE_MODE; + the_mouse.u.mode.mode = 0; + the_mouse.u.mode.signal = SIGUSR2; + if (ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) { + signal(SIGUSR2, handle_sysmouse); + the_mouse.operation = MOUSE_SHOW; + ioctl(sp->_mouse_fd, CONS_MOUSECTL, &the_mouse); + +#if defined(FBIO_MODEINFO) || defined(CONS_MODEINFO) /* FreeBSD > 2.x */ + { +#ifndef FBIO_GETMODE /* FreeBSD 3.x */ +#define FBIO_GETMODE CONS_GET +#define FBIO_MODEINFO CONS_MODEINFO +#endif /* FBIO_GETMODE */ + video_info_t the_video; + + if (ioctl(sp->_mouse_fd, + FBIO_GETMODE, + &the_video.vi_mode) != -1 + && ioctl(sp->_mouse_fd, + FBIO_MODEINFO, + &the_video) != -1) { + sp->_sysmouse_char_width = the_video.vi_cwidth; + sp->_sysmouse_char_height = the_video.vi_cheight; + } + } +#endif /* defined(FBIO_MODEINFO) || defined(CONS_MODEINFO) */ + + if (sp->_sysmouse_char_width <= 0) + sp->_sysmouse_char_width = 8; + if (sp->_sysmouse_char_height <= 0) + sp->_sysmouse_char_height = 16; + sp->_mouse_type = M_SYSMOUSE; + returnVoid; + } + } + } +#endif /* USE_SYSMOUSE */ + +#ifdef USE_TERM_DRIVER + CallDriver(sp, td_initmouse); +#else + /* we know how to recognize mouse events under "xterm" */ + if (NonEmpty(key_mouse)) { + init_xterm_mouse(sp); + } else if (strstr(SP_TERMTYPE term_names, "xterm") != 0) { + if (_nc_add_to_try(&(sp->_keytry), xterm_kmous, KEY_MOUSE) == OK) + init_xterm_mouse(sp); + } +#endif + + returnVoid; +} + +static bool +_nc_mouse_init(SCREEN *sp) +/* initialize the mouse */ +{ + bool result = FALSE; + + if (sp != 0) { + if (!sp->_mouse_initialized) { + int i; + + sp->_mouse_initialized = TRUE; + + TR(MY_TRACE, ("_nc_mouse_init() called")); + + sp->_mouse_eventp = FirstEV(sp); + for (i = 0; i < EV_MAX; i++) + Invalidate(sp->_mouse_events + i); + + initialize_mousetype(sp); + + T(("_nc_mouse_init() set mousetype to %d", sp->_mouse_type)); + } + result = sp->_mouse_initialized; + } + return result; +} + +/* + * Query to see if there is a pending mouse event. This is called from + * fifo_push() in lib_getch.c + */ +static bool +_nc_mouse_event(SCREEN *sp) +{ + MEVENT *eventp = sp->_mouse_eventp; + bool result = FALSE; + + (void) eventp; + + switch (sp->_mouse_type) { + case M_XTERM: + /* xterm: never have to query, mouse events are in the keyboard stream */ +#if USE_EMX_MOUSE + { + char kbuf[3]; + + int i, res = read(M_FD(sp), &kbuf, 3); /* Eat the prefix */ + if (res != 3) + printf("Got %d chars instead of 3 for prefix.\n", res); + for (i = 0; i < res; i++) { + if (kbuf[i] != key_mouse[i]) + printf("Got char %d instead of %d for prefix.\n", + (int) kbuf[i], (int) key_mouse[i]); + } + result = TRUE; + } +#endif /* USE_EMX_MOUSE */ + break; + +#if USE_GPM_SUPPORT + case M_GPM: + if (sp->_mouse_fd >= 0) { + /* query server for event, return TRUE if we find one */ + Gpm_Event ev; + + switch (my_Gpm_GetEvent(&ev)) { + case 0: + /* Connection closed, drop the mouse. */ + sp->_mouse_fd = -1; + break; + case 1: + /* there's only one mouse... */ + eventp->id = NORMAL_EVENT; + + eventp->bstate = 0; + switch (ev.type & 0x0f) { + case (GPM_DOWN): + if (ev.buttons & GPM_B_LEFT) + eventp->bstate |= BUTTON1_PRESSED; + if (ev.buttons & GPM_B_MIDDLE) + eventp->bstate |= BUTTON2_PRESSED; + if (ev.buttons & GPM_B_RIGHT) + eventp->bstate |= BUTTON3_PRESSED; + break; + case (GPM_UP): + if (ev.buttons & GPM_B_LEFT) + eventp->bstate |= BUTTON1_RELEASED; + if (ev.buttons & GPM_B_MIDDLE) + eventp->bstate |= BUTTON2_RELEASED; + if (ev.buttons & GPM_B_RIGHT) + eventp->bstate |= BUTTON3_RELEASED; + break; + default: + eventp->bstate |= REPORT_MOUSE_POSITION; + break; + } + + eventp->x = ev.x - 1; + eventp->y = ev.y - 1; + eventp->z = 0; + + /* bump the next-free pointer into the circular list */ + sp->_mouse_eventp = NEXT(eventp); + result = TRUE; + break; + } + } + break; +#endif + +#if USE_SYSMOUSE + case M_SYSMOUSE: + if (sp->_sysmouse_head < sp->_sysmouse_tail) { + *eventp = sp->_sysmouse_fifo[sp->_sysmouse_head]; + + /* + * Point the fifo-head to the next possible location. If there + * are none, reset the indices. This may be interrupted by the + * signal handler, doing essentially the same reset. + */ + sp->_sysmouse_head += 1; + if (sp->_sysmouse_head == sp->_sysmouse_tail) { + sp->_sysmouse_tail = 0; + sp->_sysmouse_head = 0; + } + + /* bump the next-free pointer into the circular list */ + sp->_mouse_eventp = eventp = NEXT(eventp); + result = TRUE; + } + break; +#endif /* USE_SYSMOUSE */ + +#ifdef USE_TERM_DRIVER + case M_TERM_DRIVER: + while (sp->_drv_mouse_head < sp->_drv_mouse_tail) { + *eventp = sp->_drv_mouse_fifo[sp->_drv_mouse_head]; + + /* + * Point the fifo-head to the next possible location. If there + * are none, reset the indices. + */ + sp->_drv_mouse_head += 1; + if (sp->_drv_mouse_head == sp->_drv_mouse_tail) { + sp->_drv_mouse_tail = 0; + sp->_drv_mouse_head = 0; + } + + /* bump the next-free pointer into the circular list */ + sp->_mouse_eventp = eventp = NEXT(eventp); + result = TRUE; + } + break; +#endif + + case M_NONE: + break; + } + + return result; /* true if we found an event */ +} + +#if USE_EMX_MOUSE +#define PRESS_POSITION(n) \ + do { \ + eventp->bstate = MASK_PRESS(n); \ + sp->_mouse_bstate |= MASK_PRESS(n); \ + if (button & 0x40) { \ + eventp->bstate = MASK_RELEASE(n); \ + sp->_mouse_bstate &= ~MASK_PRESS(n); \ + } \ + } while (0) +#else +#define PRESS_POSITION(n) \ + do { \ + eventp->bstate = (mmask_t) ((sp->_mouse_bstate & MASK_PRESS(n)) \ + ? REPORT_MOUSE_POSITION \ + : MASK_PRESS(n)); \ + sp->_mouse_bstate |= MASK_PRESS(n); \ + } while (0) +#endif + +static bool +handle_wheel(SCREEN *sp, MEVENT * eventp, int button, int wheel) +{ + bool result = TRUE; + + switch (button & 3) { + case 0: + if (wheel) { + eventp->bstate = MASK_PRESS(4); + /* Do not record in sp->_mouse_bstate; there will be no + * corresponding release event. + */ + } else { + PRESS_POSITION(1); + } + break; + case 1: + if (wheel) { +#if NCURSES_MOUSE_VERSION >= 2 + eventp->bstate = MASK_PRESS(5); + /* See comment above for button 4 */ +#else + /* Ignore this event as it is not a true press of the button */ + eventp->bstate = REPORT_MOUSE_POSITION; +#endif + } else { + PRESS_POSITION(2); + } + break; + case 2: + PRESS_POSITION(3); + break; + default: + /* + * case 3 is sent when the mouse buttons are released. + * + * If the terminal uses xterm mode 1003, a continuous series of + * button-release events is sent as the mouse moves around the screen, + * or as the wheel mouse is rotated. + * + * Return false in this case, so that when running in X10 mode, we will + * recalculate bstate. + */ + eventp->bstate = REPORT_MOUSE_POSITION; + result = FALSE; + break; + } + return result; +} + +static bool +decode_X10_bstate(SCREEN *sp, MEVENT * eventp, unsigned intro) +{ + bool result; + int button = 0; + int wheel = (intro & 96) == 96; + + eventp->bstate = 0; + + if (intro >= 96) { + if (intro >= 160) { + button = (int) (intro - 152); /* buttons 8-11 */ + } else { + button = (int) (intro - 92); /* buttons 4-7 */ + } + } else { + button = (intro & 3); + } + + if (button > MAX_BUTTONS) { + eventp->bstate = REPORT_MOUSE_POSITION; + } else if (!handle_wheel(sp, eventp, (int) intro, wheel)) { + + /* + * Release events aren't reported for individual buttons, just for + * the button set as a whole. However, because there are normally + * no mouse events under xterm that intervene between press and + * release, we can infer the button actually released by looking at + * the previous event. + */ + if (sp->_mouse_bstate & BUTTON_PRESSED) { + int b; + + eventp->bstate = BUTTON_RELEASED; + for (b = 1; b <= MAX_BUTTONS; ++b) { + if (!(sp->_mouse_bstate & MASK_PRESS(b))) + eventp->bstate &= ~MASK_RELEASE(b); + } + sp->_mouse_bstate = 0; + } else { + /* + * xterm will return a stream of release-events to let the + * application know where the mouse is going, if private mode + * 1002 or 1003 is enabled. + */ + eventp->bstate = REPORT_MOUSE_POSITION; + } + } + + if (intro & 4) { + eventp->bstate |= BUTTON_SHIFT; + } + if (intro & 8) { + eventp->bstate |= BUTTON_ALT; + } + if (intro & 16) { + eventp->bstate |= BUTTON_CTRL; + } + result = (eventp->bstate & REPORT_MOUSE_POSITION) ? TRUE : FALSE; + return result; +} + +/* This code requires that your xterm entry contain the kmous capability and + * that it be set to the \E[M documented in the Xterm Control Sequences + * reference. This is how we arrange for mouse events to be reported via a + * KEY_MOUSE return value from wgetch(). After this value is received, + * _nc_mouse_inline() gets called and is immediately responsible for parsing + * the mouse status information following the prefix. + * + * The following quotes from the ctlseqs.ms document in the XTerm distribution, + * describing the mouse tracking feature: + * + * Parameters for all mouse tracking escape sequences generated by xterm encode + * numeric parameters in a single character as value+040. For example, ! is + * 1. + * + * On button press or release, xterm sends ESC [ M CbCxCy. The low two bits of + * Cb encode button information: 0=MB1 pressed, 1=MB2 pressed, 2=MB3 pressed, + * 3=release. The upper bits encode what modifiers were down when the button + * was pressed and are added together. 4=Shift, 8=Meta, 16=Control. Cx and Cy + * are the x and y coordinates of the mouse event. The upper left corner is + * (1,1). + * + * (End quote) By the time we get here, we've eaten the key prefix. FYI, the + * loop below is necessary because mouse click info isn't guaranteed to present + * as a single clist item. + * + * Wheel mice may return buttons 4 and 5 when the wheel is turned. We encode + * those as button presses. + */ +static bool +decode_xterm_X10(SCREEN *sp, MEVENT * eventp) +{ +#define MAX_KBUF 3 + unsigned char kbuf[MAX_KBUF + 1]; + size_t grabbed; + int res; + bool result; + + _nc_set_read_thread(TRUE); + for (grabbed = 0; grabbed < MAX_KBUF; grabbed += (size_t) res) { + + /* For VIO mouse we add extra bit 64 to disambiguate button-up. */ + res = (int) read( +#if USE_EMX_MOUSE + (M_FD(sp) >= 0) ? M_FD(sp) : sp->_ifd, +#else + sp->_ifd, +#endif + kbuf + grabbed, (size_t) (MAX_KBUF - (int) grabbed)); + if (res == -1) + break; + } + _nc_set_read_thread(FALSE); + kbuf[MAX_KBUF] = '\0'; + + TR(TRACE_IEVENT, + ("_nc_mouse_inline sees the following xterm data: '%s'", kbuf)); + + /* there's only one mouse... */ + eventp->id = NORMAL_EVENT; + + result = decode_X10_bstate(sp, eventp, kbuf[0]); + + eventp->x = (kbuf[1] - ' ') - 1; + eventp->y = (kbuf[2] - ' ') - 1; + + return result; +} + +#ifdef EXP_XTERM_1005 +/* + * This is identical to X10/X11 responses except that there are two UTF-8 + * characters storing the ordinates instead of two bytes. + */ +static bool +decode_xterm_1005(SCREEN *sp, MEVENT * eventp) +{ + char kbuf[80]; + size_t grabbed; + size_t limit = (sizeof(kbuf) - 1); + unsigned coords[2]; + bool result; + + coords[0] = 0; + coords[1] = 0; + + _nc_set_read_thread(TRUE); + for (grabbed = 0; grabbed < limit;) { + int res; + + res = (int) read( +#if USE_EMX_MOUSE + (M_FD(sp) >= 0) ? M_FD(sp) : sp->_ifd, +#else + sp->_ifd, +#endif + (kbuf + grabbed), (size_t) 1); + if (res == -1) + break; + grabbed += (size_t) res; + if (grabbed > 1) { + size_t check = 1; + int n; + + for (n = 0; n < 2; ++n) { + int rc; + + if (check >= grabbed) + break; + rc = _nc_conv_to_utf32(&coords[n], kbuf + check, (unsigned) + (grabbed - check)); + if (!rc) + break; + check += (size_t) rc; + } + if (n >= 2) + break; + } + } + _nc_set_read_thread(FALSE); + + TR(TRACE_IEVENT, + ("_nc_mouse_inline sees the following xterm data: %s", + _nc_visbufn(kbuf, (int) grabbed))); + + /* there's only one mouse... */ + eventp->id = NORMAL_EVENT; + + result = decode_X10_bstate(sp, eventp, UChar(kbuf[0])); + + eventp->x = (int) (coords[0] - ' ') - 1; + eventp->y = (int) (coords[1] - ' ') - 1; + + return result; +} +#endif /* EXP_XTERM_1005 */ + +/* + * ECMA-48 section 5.4 + */ +#define isInter(c) ((c) >= 0x20 && (c) <= 0x2f) +#define isParam(c) ((c) >= 0x30 && (c) <= 0x3f) +#define isFinal(c) ((c) >= 0x40 && (c) <= 0x7e) + +#define MAX_PARAMS 9 + +typedef struct { + int nerror; /* nonzero if there are unexpected chars */ + int nparam; /* number of numeric parameters */ + int params[MAX_PARAMS]; + int final; /* the final-character */ +} SGR_DATA; + +static bool +read_SGR(SCREEN *sp, SGR_DATA * result) +{ + char kbuf[80]; /* bigger than any possible mouse response */ + int grabbed = 0; + int ch = 0; + int now = -1; + int marker = 1; + + memset(result, 0, sizeof(*result)); + _nc_set_read_thread(TRUE); + + do { + int res; + + res = (int) read( +#if USE_EMX_MOUSE + (M_FD(sp) >= 0) ? M_FD(sp) : sp->_ifd, +#else + sp->_ifd, +#endif + (kbuf + grabbed), (size_t) 1); + if (res == -1) + break; + if ((grabbed + MAX_KBUF) >= (int) sizeof(kbuf)) { + result->nerror++; + break; + } + ch = UChar(kbuf[grabbed]); + kbuf[grabbed + 1] = 0; + switch (ch) { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (marker) { + ++now; + result->nparam = (now + 1); + } + marker = 0; + result->params[now] = (result->params[now] * 10) + (ch - '0'); + break; + case ';': + if (marker) { + ++now; + result->nparam = (now + 1); + } + marker = 1; + break; + default: + if (ch < 32 || ch > 126) { + /* + * Technically other characters could be interspersed in the + * response. Ignore those for now. + */ + result->nerror++; + continue; + } else if (isFinal(ch)) { + if (marker) { + result->nparam++; + } + result->final = ch; + } else { + result->nerror++; + } + break; + } + ++grabbed; + } while (!isFinal(ch)); + _nc_set_read_thread(FALSE); + + kbuf[++grabbed] = 0; + TR(TRACE_IEVENT, + ("_nc_mouse_inline sees the following xterm data: '%s'", kbuf)); + return (grabbed > 0) && (result->nerror == 0); +} + +static bool +decode_xterm_SGR1006(SCREEN *sp, MEVENT * eventp) +{ + SGR_DATA data; + bool result = FALSE; + if (read_SGR(sp, &data)) { + int b = data.params[0]; + int b3 = 1 + (b & 3); + int wheel = ((b & 64) == 64); + + if (b >= 132) { + b3 = MAX_BUTTONS + 1; + } else if (b >= 128) { + b3 = (b - 120); /* buttons 8-11 */ + } else if (b >= 64) { + b3 = (b - 60); /* buttons 6-7 */ + } + + eventp->id = NORMAL_EVENT; + if (data.final == 'M') { + (void) handle_wheel(sp, eventp, b, wheel); + } else if (b3 > MAX_BUTTONS) { + eventp->bstate = REPORT_MOUSE_POSITION; + } else { + mmask_t pressed = (mmask_t) NCURSES_MOUSE_MASK(b3, NCURSES_BUTTON_PRESSED); + mmask_t release = (mmask_t) NCURSES_MOUSE_MASK(b3, NCURSES_BUTTON_RELEASED); + if (sp->_mouse_bstate & pressed) { + eventp->bstate = release; + sp->_mouse_bstate &= ~pressed; + } else { + eventp->bstate = REPORT_MOUSE_POSITION; + } + } + if (b & 4) { + eventp->bstate |= BUTTON_SHIFT; + } + if (b & 8) { + eventp->bstate |= BUTTON_ALT; + } + if (b & 16) { + eventp->bstate |= BUTTON_CTRL; + } + result = (eventp->bstate & REPORT_MOUSE_POSITION) ? TRUE : FALSE; + eventp->x = (data.params[1] ? (data.params[1] - 1) : 0); + eventp->y = (data.params[2] ? (data.params[2] - 1) : 0); + } + return result; +} + +static bool +_nc_mouse_inline(SCREEN *sp) +/* mouse report received in the keyboard stream -- parse its info */ +{ + bool result = FALSE; + MEVENT *eventp = sp->_mouse_eventp; + + TR(MY_TRACE, ("_nc_mouse_inline() called")); + + if (sp->_mouse_type == M_XTERM) { + switch (sp->_mouse_format) { + case MF_X10: + result = decode_xterm_X10(sp, eventp); + break; + case MF_SGR1006: + result = decode_xterm_SGR1006(sp, eventp); + break; +#ifdef EXP_XTERM_1005 + case MF_XTERM_1005: + result = decode_xterm_1005(sp, eventp); + break; +#endif + } + + TR(MY_TRACE, + ("_nc_mouse_inline: primitive mouse-event %s has slot %ld", + _nc_tracemouse(sp, eventp), + (long) IndexEV(sp, eventp))); + + /* bump the next-free pointer into the circular list */ + sp->_mouse_eventp = NEXT(eventp); + + if (!result) { + /* If this event is from a wheel-mouse, treat it like position + * reports and avoid waiting for the release-events which will + * never come. + */ + if (eventp->bstate & BUTTON_PRESSED) { + int b; + + for (b = 4; b <= MAX_BUTTONS; ++b) { + if ((eventp->bstate & MASK_PRESS(b))) { + result = TRUE; + break; + } + } + } + } + } + + return (result); +} + +static void +mouse_activate(SCREEN *sp, int on) +{ + if (!on && !sp->_mouse_initialized) + return; + + if (!_nc_mouse_init(sp)) + return; + + if (on) { + sp->_mouse_bstate = 0; + switch (sp->_mouse_type) { + case M_XTERM: +#if NCURSES_EXT_FUNCS + NCURSES_SP_NAME(keyok) (NCURSES_SP_ARGx KEY_MOUSE, on); +#endif + TPUTS_TRACE("xterm mouse initialization"); + enable_xterm_mouse(sp, 1); + break; +#if USE_GPM_SUPPORT + case M_GPM: + if (enable_gpm_mouse(sp, TRUE)) { + sp->_mouse_fd = *(my_gpm_fd); + T(("GPM mouse_fd %d", sp->_mouse_fd)); + } + break; +#endif +#if USE_SYSMOUSE + case M_SYSMOUSE: + signal(SIGUSR2, handle_sysmouse); + sp->_mouse_active = TRUE; + break; +#endif +#ifdef USE_TERM_DRIVER + case M_TERM_DRIVER: + sp->_mouse_active = TRUE; + break; +#endif + case M_NONE: + return; + } + /* Make runtime binding to cut down on object size of applications that + * do not use the mouse (e.g., 'clear'). + */ + sp->_mouse_event = _nc_mouse_event; + sp->_mouse_inline = _nc_mouse_inline; + sp->_mouse_parse = _nc_mouse_parse; + sp->_mouse_resume = _nc_mouse_resume; + sp->_mouse_wrap = _nc_mouse_wrap; + } else { + + switch (sp->_mouse_type) { + case M_XTERM: + TPUTS_TRACE("xterm mouse deinitialization"); + enable_xterm_mouse(sp, 0); + break; +#if USE_GPM_SUPPORT + case M_GPM: + enable_gpm_mouse(sp, FALSE); + break; +#endif +#if USE_SYSMOUSE + case M_SYSMOUSE: + signal(SIGUSR2, SIG_IGN); + sp->_mouse_active = FALSE; + break; +#endif +#ifdef USE_TERM_DRIVER + case M_TERM_DRIVER: + sp->_mouse_active = FALSE; + break; +#endif + case M_NONE: + return; + } + } + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); +} + +/************************************************************************** + * + * Device-independent code + * + **************************************************************************/ + +static bool +_nc_mouse_parse(SCREEN *sp, int runcount) +/* parse a run of atomic mouse events into a gesture */ +{ + MEVENT *eventp = sp->_mouse_eventp; + MEVENT *next, *ep; + MEVENT *first_valid = NULL; + MEVENT *first_invalid = NULL; + int n; + int b; + bool merge; + bool endLoop; + + TR(MY_TRACE, ("_nc_mouse_parse(%d) called", runcount)); + + /* + * When we enter this routine, the event list next-free pointer + * points just past a run of mouse events that we know were separated + * in time by less than the critical click interval. The job of this + * routine is to collapse this run into a single higher-level event + * or gesture. + * + * We accomplish this in two passes. The first pass merges press/release + * pairs into click events. The second merges runs of click events into + * double or triple-click events. + * + * It's possible that the run may not resolve to a single event (for + * example, if the user quadruple-clicks). If so, leading events + * in the run are ignored if user does not call getmouse in a loop (getting + * them from newest to older). + * + * Note that this routine is independent of the format of the specific + * format of the pointing-device's reports. We can use it to parse + * gestures on anything that reports press/release events on a per- + * button basis, as long as the device-dependent mouse code puts stuff + * on the queue in MEVENT format. + */ + + /* + * Reset all events that were not set, in case the user sometimes calls + * getmouse only once and other times until there are no more events in + * queue. + * + * This also allows reaching the beginning of the run. + */ + ep = eventp; + for (n = runcount; n < EV_MAX; n++) { + Invalidate(ep); + ep = NEXT(ep); + } + +#ifdef TRACE + if (USE_TRACEF(TRACE_IEVENT)) { + _trace_slot(sp, "before mouse press/release merge:"); + _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", + RunParams(sp, eventp, ep), + runcount); + _nc_unlock_global(tracef); + } +#endif /* TRACE */ + + /* first pass; merge press/release pairs */ + endLoop = FALSE; + while (!endLoop) { + next = NEXT(ep); + if (next == eventp) { + /* Will end the loop, but compact before */ + endLoop = TRUE; + } else { + +#define MASK_CHANGED(x) (!(ep->bstate & MASK_PRESS(x)) \ + == !(next->bstate & MASK_RELEASE(x))) + + if (ValidEvent(ep) && ValidEvent(next) + && ep->x == next->x && ep->y == next->y + && (ep->bstate & BUTTON_PRESSED) + && (!(next->bstate & BUTTON_PRESSED))) { + bool changed = TRUE; + + for (b = 1; b <= MAX_BUTTONS; ++b) { + if (!MASK_CHANGED(b)) { + changed = FALSE; + break; + } + } + + if (changed) { + merge = FALSE; + for (b = 1; b <= MAX_BUTTONS; ++b) { + if ((sp->_mouse_mask2 & MASK_CLICK(b)) + && (ep->bstate & MASK_PRESS(b))) { + next->bstate &= ~MASK_RELEASE(b); + next->bstate |= MASK_CLICK(b); + merge = TRUE; + } + } + if (merge) { + Invalidate(ep); + } + } + } + } + + /* Compact valid events */ + if (!ValidEvent(ep)) { + if ((first_valid != NULL) && (first_invalid == NULL)) { + first_invalid = ep; + } + } else { + if (first_valid == NULL) { + first_valid = ep; + } else if (first_invalid != NULL) { + *first_invalid = *ep; + Invalidate(ep); + first_invalid = NEXT(first_invalid); + } + } + + ep = next; + } + + if (first_invalid != NULL) { + eventp = first_invalid; + } +#ifdef TRACE + if (USE_TRACEF(TRACE_IEVENT)) { + _trace_slot(sp, "before mouse click merge:"); + if (first_valid == NULL) { + _tracef("_nc_mouse_parse: no valid event"); + } else { + _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", + RunParams(sp, eventp, first_valid), + runcount); + _nc_unlock_global(tracef); + } + } +#endif /* TRACE */ + + /* + * Second pass; merge click runs. We merge click events forward in the + * queue. For example, double click can be changed to triple click. + * + * NOTE: There is a problem with this design! If the application + * allows enough click events to pile up in the circular queue so + * they wrap around, it will cheerfully merge the newest forward + * into the oldest, creating a bogus doubleclick and confusing + * the queue-traversal logic rather badly. Generally this won't + * happen, because calling getmouse() marks old events invalid and + * ineligible for merges. The true solution to this problem would + * be to timestamp each MEVENT and perform the obvious sanity check, + * but the timer element would have to have sub-second resolution, + * which would get us into portability trouble. + */ + first_invalid = NULL; + endLoop = (first_valid == NULL); + ep = first_valid; + while (!endLoop) { + next = NEXT(ep); + + if (next == eventp) { + /* Will end the loop, but check event type and compact before */ + endLoop = TRUE; + } else if (!ValidEvent(next)) { + continue; + } else { + /* merge click events forward */ + if ((ep->bstate & BUTTON_CLICKED) + && (next->bstate & BUTTON_CLICKED)) { + merge = FALSE; + for (b = 1; b <= MAX_BUTTONS; ++b) { + if ((sp->_mouse_mask2 & MASK_DOUBLE_CLICK(b)) + && (ep->bstate & MASK_CLICK(b)) + && (next->bstate & MASK_CLICK(b))) { + next->bstate &= ~MASK_CLICK(b); + next->bstate |= MASK_DOUBLE_CLICK(b); + merge = TRUE; + } + } + if (merge) { + Invalidate(ep); + } + } + + /* merge double-click events forward */ + if ((ep->bstate & BUTTON_DOUBLE_CLICKED) + && (next->bstate & BUTTON_CLICKED)) { + merge = FALSE; + for (b = 1; b <= MAX_BUTTONS; ++b) { + if ((sp->_mouse_mask2 & MASK_TRIPLE_CLICK(b)) + && (ep->bstate & MASK_DOUBLE_CLICK(b)) + && (next->bstate & MASK_CLICK(b))) { + next->bstate &= ~MASK_CLICK(b); + next->bstate |= MASK_TRIPLE_CLICK(b); + merge = TRUE; + } + } + if (merge) { + Invalidate(ep); + } + } + } + + /* Discard event if it does not match event mask */ + if (!(ep->bstate & sp->_mouse_mask2)) { + Invalidate(ep); + } + + /* Compact valid events */ + if (!ValidEvent(ep)) { + if (ep == first_valid) { + first_valid = next; + } else if (first_invalid == NULL) { + first_invalid = ep; + } + } else if (first_invalid != NULL) { + *first_invalid = *ep; + Invalidate(ep); + first_invalid = NEXT(first_invalid); + } + + ep = next; + } + + if (first_invalid == NULL) { + first_invalid = eventp; + } + sp->_mouse_eventp = first_invalid; + +#ifdef TRACE + if (first_valid != NULL) { + if (USE_TRACEF(TRACE_IEVENT)) { + _trace_slot(sp, "after mouse event queue compaction:"); + _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", + RunParams(sp, first_invalid, first_valid), + runcount); + _nc_unlock_global(tracef); + } + for (ep = first_valid; ep != first_invalid; ep = NEXT(ep)) { + if (ValidEvent(ep)) + TR(MY_TRACE, + ("_nc_mouse_parse: returning composite mouse event %s at slot %ld", + _nc_tracemouse(sp, ep), + (long) IndexEV(sp, ep))); + } + } +#endif /* TRACE */ + + /* after all this, do we have a valid event? */ + ep = PREV(first_invalid); + return ValidEvent(ep) && ((ep->bstate & sp->_mouse_mask) != 0); +} + +static void +_nc_mouse_wrap(SCREEN *sp) +/* release mouse -- called by endwin() before shellout/exit */ +{ + TR(MY_TRACE, ("_nc_mouse_wrap() called")); + + switch (sp->_mouse_type) { + case M_XTERM: + if (sp->_mouse_mask) + mouse_activate(sp, FALSE); + break; +#if USE_GPM_SUPPORT + /* GPM: pass all mouse events to next client */ + case M_GPM: + if (sp->_mouse_mask) + mouse_activate(sp, FALSE); + break; +#endif +#if USE_SYSMOUSE + case M_SYSMOUSE: + mouse_activate(sp, FALSE); + break; +#endif +#ifdef USE_TERM_DRIVER + case M_TERM_DRIVER: + mouse_activate(sp, FALSE); + break; +#endif + case M_NONE: + break; + } +} + +static void +_nc_mouse_resume(SCREEN *sp) +/* re-connect to mouse -- called by doupdate() after shellout */ +{ + TR(MY_TRACE, ("_nc_mouse_resume() called")); + + switch (sp->_mouse_type) { + case M_XTERM: + /* xterm: re-enable reporting */ + if (sp->_mouse_mask) + mouse_activate(sp, TRUE); + break; + +#if USE_GPM_SUPPORT + case M_GPM: + /* GPM: reclaim our event set */ + if (sp->_mouse_mask) + mouse_activate(sp, TRUE); + break; +#endif + +#if USE_SYSMOUSE + case M_SYSMOUSE: + mouse_activate(sp, TRUE); + break; +#endif + +#ifdef USE_TERM_DRIVER + case M_TERM_DRIVER: + mouse_activate(sp, TRUE); + break; +#endif + + case M_NONE: + break; + } +} + +/************************************************************************** + * + * Mouse interface entry points for the API + * + **************************************************************************/ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(getmouse) (NCURSES_SP_DCLx MEVENT * aevent) +{ + int result = ERR; + MEVENT *eventp; + + T((T_CALLED("getmouse(%p,%p)"), (void *) SP_PARM, (void *) aevent)); + + if ((aevent != 0) && + (SP_PARM != 0) && + (SP_PARM->_mouse_type != M_NONE) && + (eventp = SP_PARM->_mouse_eventp) != 0) { + /* compute the current-event pointer */ + MEVENT *prev = PREV(eventp); + + /* + * Discard events not matching mask (there could be still some if + * _nc_mouse_parse was not called, e.g., when _nc_mouse_inline returns + * false). + */ + while (ValidEvent(prev) && (!(prev->bstate & SP_PARM->_mouse_mask2))) { + Invalidate(prev); + prev = PREV(prev); + } + if (ValidEvent(prev)) { + /* copy the event we find there */ + *aevent = *prev; + + TR(TRACE_IEVENT, ("getmouse: returning event %s from slot %ld", + _nc_tracemouse(SP_PARM, prev), + (long) IndexEV(SP_PARM, prev))); + + Invalidate(prev); /* so the queue slot becomes free */ + SP_PARM->_mouse_eventp = prev; + result = OK; + } else { + /* Reset the provided event */ + aevent->bstate = 0; + Invalidate(aevent); + aevent->x = 0; + aevent->y = 0; + aevent->z = 0; + } + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +/* grab a copy of the current mouse event */ +NCURSES_EXPORT(int) +getmouse(MEVENT * aevent) +{ + return NCURSES_SP_NAME(getmouse) (CURRENT_SCREEN, aevent); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(ungetmouse) (NCURSES_SP_DCLx MEVENT * aevent) +{ + int result = ERR; + MEVENT *eventp; + + T((T_CALLED("ungetmouse(%p,%p)"), (void *) SP_PARM, (void *) aevent)); + + if (aevent != 0 && + SP_PARM != 0 && + (eventp = SP_PARM->_mouse_eventp) != 0) { + + /* stick the given event in the next-free slot */ + *eventp = *aevent; + + /* bump the next-free pointer into the circular list */ + SP_PARM->_mouse_eventp = NEXT(eventp); + + /* push back the notification event on the keyboard queue */ + result = NCURSES_SP_NAME(ungetch) (NCURSES_SP_ARGx KEY_MOUSE); + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +/* enqueue a synthesized mouse event to be seen by the next wgetch() */ +NCURSES_EXPORT(int) +ungetmouse(MEVENT * aevent) +{ + return NCURSES_SP_NAME(ungetmouse) (CURRENT_SCREEN, aevent); +} +#endif + +NCURSES_EXPORT(mmask_t) +NCURSES_SP_NAME(mousemask) (NCURSES_SP_DCLx mmask_t newmask, mmask_t * oldmask) +/* set the mouse event mask */ +{ + mmask_t result = 0; + + T((T_CALLED("mousemask(%p,%#lx,%p)"), + (void *) SP_PARM, + (unsigned long) newmask, + (void *) oldmask)); + + if (SP_PARM != 0) { + if (oldmask) + *oldmask = SP_PARM->_mouse_mask; + + if (newmask || SP_PARM->_mouse_initialized) { + _nc_mouse_init(SP_PARM); + + if (SP_PARM->_mouse_type != M_NONE) { + int b; + + result = newmask & + (REPORT_MOUSE_POSITION + | BUTTON_ALT + | BUTTON_CTRL + | BUTTON_SHIFT + | BUTTON_PRESSED + | BUTTON_RELEASED + | BUTTON_CLICKED + | BUTTON_DOUBLE_CLICKED + | BUTTON_TRIPLE_CLICKED); + + mouse_activate(SP_PARM, (bool) (result != 0)); + + SP_PARM->_mouse_mask = result; + SP_PARM->_mouse_mask2 = result; + + /* + * Make a mask corresponding to the states we will need to + * retain (temporarily) while building up the state that the + * user asked for. + */ + for (b = 1; b <= MAX_BUTTONS; ++b) { + if (SP_PARM->_mouse_mask2 & MASK_TRIPLE_CLICK(b)) + SP_PARM->_mouse_mask2 |= MASK_DOUBLE_CLICK(b); + if (SP_PARM->_mouse_mask2 & MASK_DOUBLE_CLICK(b)) + SP_PARM->_mouse_mask2 |= MASK_CLICK(b); + if (SP_PARM->_mouse_mask2 & MASK_CLICK(b)) + SP_PARM->_mouse_mask2 |= (MASK_PRESS(b) | + MASK_RELEASE(b)); + } + } + } + } + returnMMask(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(mmask_t) +mousemask(mmask_t newmask, mmask_t * oldmask) +{ + return NCURSES_SP_NAME(mousemask) (CURRENT_SCREEN, newmask, oldmask); +} +#endif + +NCURSES_EXPORT(bool) +wenclose(const WINDOW *win, int y, int x) +/* check to see if given window encloses given screen location */ +{ + bool result = FALSE; + + T((T_CALLED("wenclose(%p,%d,%d)"), (const void *) win, y, x)); + + if (win != 0) { + y -= win->_yoffset; + result = ((win->_begy <= y && + win->_begx <= x && + (win->_begx + win->_maxx) >= x && + (win->_begy + win->_maxy) >= y) ? TRUE : FALSE); + } + returnBool(result); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(mouseinterval) (NCURSES_SP_DCLx int maxclick) +/* set the maximum mouse interval within which to recognize a click */ +{ + int oldval; + + T((T_CALLED("mouseinterval(%p,%d)"), (void *) SP_PARM, maxclick)); + + if (SP_PARM != 0) { + oldval = SP_PARM->_maxclick; + if (maxclick >= 0) + SP_PARM->_maxclick = maxclick; + } else { + oldval = DEFAULT_MAXCLICK; + } + + returnCode(oldval); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +mouseinterval(int maxclick) +{ + return NCURSES_SP_NAME(mouseinterval) (CURRENT_SCREEN, maxclick); +} +#endif + +/* This may be used by other routines to ask for the existence of mouse + support */ +NCURSES_EXPORT(bool) +_nc_has_mouse(SCREEN *sp) +{ + return (((0 == sp) || (sp->_mouse_type == M_NONE)) ? FALSE : TRUE); +} + +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(has_mouse) (NCURSES_SP_DCL0) +{ + return _nc_has_mouse(SP_PARM); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(bool) +has_mouse(void) +{ + return _nc_has_mouse(CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(bool) +wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen) +{ + bool result = FALSE; + + T((T_CALLED("wmouse_trafo(%p,%p,%p,%d)"), + (const void *) win, + (void *) pY, + (void *) pX, + to_screen)); + + if (win && pY && pX) { + int y = *pY; + int x = *pX; + + if (to_screen) { + y += win->_begy + win->_yoffset; + x += win->_begx; + if (wenclose(win, y, x)) + result = TRUE; + } else { + if (wenclose(win, y, x)) { + y -= (win->_begy + win->_yoffset); + x -= win->_begx; + result = TRUE; + } + } + if (result) { + *pX = x; + *pY = y; + } + } + returnBool(result); +} diff --git a/third_party/ncurses/lib_move.c b/third_party/ncurses/lib_move.c new file mode 100644 index 000000000..668aaa5e8 --- /dev/null +++ b/third_party/ncurses/lib_move.c @@ -0,0 +1,61 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2004,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* +** lib_move.c +** +** The routine wmove(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_move.c,v 1.14 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wmove(WINDOW *win, int y, int x) +{ + T((T_CALLED("wmove(%p,%d,%d)"), (void *) win, y, x)); + + if (LEGALYX(win, y, x)) { + win->_curx = (NCURSES_SIZE_T) x; + win->_cury = (NCURSES_SIZE_T) y; + + win->_flags &= ~_WRAPPED; + win->_flags |= _HASMOVED; + returnCode(OK); + } else + returnCode(ERR); +} diff --git a/third_party/ncurses/lib_mvcur.c b/third_party/ncurses/lib_mvcur.c new file mode 100644 index 000000000..8f451a853 --- /dev/null +++ b/third_party/ncurses/lib_mvcur.c @@ -0,0 +1,1416 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_mvcur.c +** +** The routines for moving the physical cursor and scrolling: +** +** void _nc_mvcur_init(void) +** +** void _nc_mvcur_resume(void) +** +** int mvcur(int old_y, int old_x, int new_y, int new_x) +** +** void _nc_mvcur_wrap(void) +** +** Comparisons with older movement optimizers: +** SVr3 curses mvcur() can't use cursor_to_ll or auto_left_margin. +** 4.4BSD curses can't use cuu/cud/cuf/cub/hpa/vpa/tab/cbt for local +** motions. It doesn't use tactics based on auto_left_margin. Weirdly +** enough, it doesn't use its own hardware-scrolling routine to scroll up +** destination lines for out-of-bounds addresses! +** old ncurses optimizer: less accurate cost computations (in fact, +** it was broken and had to be commented out!). +** +** Compile with -DMAIN to build an interactive tester/timer for the movement +** optimizer. You can use it to investigate the optimizer's behavior. +** You can also use it for tuning the formulas used to determine whether +** or not full optimization is attempted. +** +** This code has a nasty tendency to find bugs in terminfo entries, because it +** exercises the non-cup movement capabilities heavily. If you think you've +** found a bug, try deleting subsets of the following capabilities (arranged +** in decreasing order of suspiciousness): it, tab, cbt, hpa, vpa, cuu, cud, +** cuf, cub, cuu1, cud1, cuf1, cub1. It may be that one or more are wrong. +** +** Note: you should expect this code to look like a resource hog in a profile. +** That's because it does a lot of I/O, through the tputs() calls. The I/O +** cost swamps the computation overhead (and as machines get faster, this +** will become even more true). Comments in the test exerciser at the end +** go into detail about tuning and how you can gauge the optimizer's +** effectiveness. +**/ + +/**************************************************************************** + * + * Constants and macros for optimizer tuning. + * + ****************************************************************************/ + +/* + * The average overhead of a full optimization computation in character + * transmission times. If it is too high, the algorithm will be a bit + * over-biased toward using cup rather than local motions; if it is too + * low, the algorithm may spend more time than is strictly optimal + * looking for non-cup motions. Profile the optimizer using the `t' + * command of the exerciser (see below), and round to the nearest integer. + * + * Yes, I (esr) thought about computing expected overhead dynamically, say + * by derivation from a running average of optimizer times. But the + * whole point of this optimization is to *decrease* the frequency of + * system calls. :-) + */ +#define COMPUTE_OVERHEAD 1 /* I use a 90MHz Pentium @ 9.6Kbps */ + +/* + * LONG_DIST is the distance we consider to be just as costly to move over as a + * cup sequence is to emit. In other words, it is the length of a cup sequence + * adjusted for average computation overhead. The magic number is the length + * of "\033[yy;xxH", the typical cup sequence these days. + */ +#define LONG_DIST (8 - COMPUTE_OVERHEAD) + +/* + * Tell whether a motion is optimizable by local motions. Needs to be cheap to + * compute. In general, all the fast moves go to either the right or left edge + * of the screen. So any motion to a location that is (a) further away than + * LONG_DIST and (b) further inward from the right or left edge than LONG_DIST, + * we'll consider nonlocal. + */ +#define NOT_LOCAL(sp, fy, fx, ty, tx) ((tx > LONG_DIST) \ + && (tx < screen_columns(sp) - 1 - LONG_DIST) \ + && (abs(ty-fy) + abs(tx-fx) > LONG_DIST)) + +/**************************************************************************** + * + * External interfaces + * + ****************************************************************************/ + +/* + * For this code to work OK, the following components must live in the + * screen structure: + * + * int _char_padding; // cost of character put + * int _cr_cost; // cost of (carriage_return) + * int _cup_cost; // cost of (cursor_address) + * int _home_cost; // cost of (cursor_home) + * int _ll_cost; // cost of (cursor_to_ll) + *#if USE_HARD_TABS + * int _ht_cost; // cost of (tab) + * int _cbt_cost; // cost of (back_tab) + *#endif USE_HARD_TABS + * int _cub1_cost; // cost of (cursor_left) + * int _cuf1_cost; // cost of (cursor_right) + * int _cud1_cost; // cost of (cursor_down) + * int _cuu1_cost; // cost of (cursor_up) + * int _cub_cost; // cost of (parm_cursor_left) + * int _cuf_cost; // cost of (parm_cursor_right) + * int _cud_cost; // cost of (parm_cursor_down) + * int _cuu_cost; // cost of (parm_cursor_up) + * int _hpa_cost; // cost of (column_address) + * int _vpa_cost; // cost of (row_address) + * int _ech_cost; // cost of (erase_chars) + * int _rep_cost; // cost of (repeat_char) + * + * The USE_HARD_TABS switch controls whether it is reliable to use tab/backtabs + * for local motions. On many systems, it is not, due to uncertainties about + * tab delays and whether or not tabs will be expanded in raw mode. If you + * have parm_right_cursor, tab motions don't win you a lot anyhow. + */ + +#include "curses.priv.h" +#include + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_mvcur.c,v 1.157 2022/08/20 18:28:58 tom Exp $") + +#define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x] /* desired state */ + +#if NCURSES_SP_FUNCS +#define BAUDRATE(sp) sp->_term->_baudrate /* bits per second */ +#else +#define BAUDRATE(sp) cur_term->_baudrate /* bits per second */ +#endif + +#if defined(MAIN) || defined(NCURSES_TEST) +#include + +static bool profiling = FALSE; +static float diff; +#endif /* MAIN */ + +#undef NCURSES_OUTC_FUNC +#define NCURSES_OUTC_FUNC myOutCh + +#define OPT_SIZE 512 + +static int normalized_cost(NCURSES_SP_DCLx const char *const cap, int affcnt); + +/**************************************************************************** + * + * Initialization/wrapup (including cost pre-computation) + * + ****************************************************************************/ + +#ifdef TRACE +static int +trace_cost_of(NCURSES_SP_DCLx const char *capname, const char *cap, int affcnt) +{ + int result = NCURSES_SP_NAME(_nc_msec_cost) (NCURSES_SP_ARGx cap, affcnt); + TR(TRACE_CHARPUT | TRACE_MOVE, + ("CostOf %s %d %s", capname, result, _nc_visbuf(cap))); + return result; +} +#define CostOf(cap,affcnt) trace_cost_of(NCURSES_SP_ARGx #cap, cap, affcnt) + +static int +trace_normalized_cost(NCURSES_SP_DCLx const char *capname, const char *cap, int affcnt) +{ + int result = normalized_cost(NCURSES_SP_ARGx cap, affcnt); + TR(TRACE_CHARPUT | TRACE_MOVE, + ("NormalizedCost %s %d %s", capname, result, _nc_visbuf(cap))); + return result; +} +#define NormalizedCost(cap,affcnt) trace_normalized_cost(NCURSES_SP_ARGx #cap, cap, affcnt) + +#else + +#define CostOf(cap,affcnt) NCURSES_SP_NAME(_nc_msec_cost)(NCURSES_SP_ARGx cap, affcnt) +#define NormalizedCost(cap,affcnt) normalized_cost(NCURSES_SP_ARGx cap, affcnt) + +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_msec_cost) (NCURSES_SP_DCLx const char *const cap, int affcnt) +/* compute the cost of a given operation */ +{ + if (cap == 0) + return (INFINITY); + else { + const char *cp; + float cum_cost = 0.0; + + for (cp = cap; *cp; cp++) { + /* extract padding, either mandatory or required */ + if (cp[0] == '$' && cp[1] == '<' && strchr(cp, '>')) { + float number = 0.0; + + for (cp += 2; *cp != '>'; cp++) { + if (isdigit(UChar(*cp))) + number = number * 10 + (float) (*cp - '0'); + else if (*cp == '*') + number *= (float) affcnt; + else if (*cp == '.' && (*++cp != '>') && isdigit(UChar(*cp))) + number += (float) ((*cp - '0') / 10.0); + } + +#if NCURSES_NO_PADDING + if (!GetNoPadding(SP_PARM)) +#endif + cum_cost += number * 10; + } else if (SP_PARM) { + cum_cost += (float) SP_PARM->_char_padding; + } + } + + return ((int) cum_cost); + } +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_msec_cost(const char *const cap, int affcnt) +{ + return NCURSES_SP_NAME(_nc_msec_cost) (CURRENT_SCREEN, cap, affcnt); +} +#endif + +static int +normalized_cost(NCURSES_SP_DCLx const char *const cap, int affcnt) +/* compute the effective character-count for an operation (round up) */ +{ + int cost = NCURSES_SP_NAME(_nc_msec_cost) (NCURSES_SP_ARGx cap, affcnt); + if (cost != INFINITY) + cost = (cost + SP_PARM->_char_padding - 1) / SP_PARM->_char_padding; + return cost; +} + +static void +reset_scroll_region(NCURSES_SP_DCL0) +/* Set the scroll-region to a known state (the default) */ +{ + if (change_scroll_region) { + NCURSES_PUTP2("change_scroll_region", + TIPARM_2(change_scroll_region, + 0, screen_lines(SP_PARM) - 1)); + } +} + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_DCL0) +/* what to do at initialization time and after each shellout */ +{ + if (!SP_PARM || !IsTermInfo(SP_PARM)) + return; + + /* initialize screen for cursor access */ + if (enter_ca_mode) { + NCURSES_PUTP2("enter_ca_mode", enter_ca_mode); + } + + /* + * Doing this here rather than in _nc_mvcur_wrap() ensures that + * ncurses programs will see a reset scroll region even if a + * program that messed with it died ungracefully. + * + * This also undoes the effects of terminal init strings that assume + * they know the screen size. This is useful when you're running + * a vt100 emulation through xterm. + */ + reset_scroll_region(NCURSES_SP_ARG); + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + + /* restore cursor shape */ + if (SP_PARM->_cursor != -1) { + int cursor = SP_PARM->_cursor; + SP_PARM->_cursor = -1; + NCURSES_SP_NAME(curs_set) (NCURSES_SP_ARGx cursor); + } +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_mvcur_resume(void) +{ + NCURSES_SP_NAME(_nc_mvcur_resume) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_mvcur_init) (NCURSES_SP_DCL0) +/* initialize the cost structure */ +{ + if (SP_PARM->_ofp && NC_ISATTY(fileno(SP_PARM->_ofp))) { + SP_PARM->_char_padding = ((BAUDBYTE * 1000 * 10) + / (BAUDRATE(SP_PARM) > 0 + ? BAUDRATE(SP_PARM) + : 9600)); + } else { + SP_PARM->_char_padding = 1; /* must be nonzero */ + } + if (SP_PARM->_char_padding <= 0) + SP_PARM->_char_padding = 1; /* must be nonzero */ + TR(TRACE_CHARPUT | TRACE_MOVE, ("char_padding %d msecs", SP_PARM->_char_padding)); + + /* non-parameterized local-motion strings */ + SP_PARM->_cr_cost = CostOf(carriage_return, 0); + SP_PARM->_home_cost = CostOf(cursor_home, 0); + SP_PARM->_ll_cost = CostOf(cursor_to_ll, 0); +#if USE_HARD_TABS + if (getenv("NCURSES_NO_HARD_TABS") == 0 + && dest_tabs_magic_smso == 0 + && HasHardTabs()) { + SP_PARM->_ht_cost = CostOf(tab, 0); + SP_PARM->_cbt_cost = CostOf(back_tab, 0); + } else { + SP_PARM->_ht_cost = INFINITY; + SP_PARM->_cbt_cost = INFINITY; + } +#endif /* USE_HARD_TABS */ + SP_PARM->_cub1_cost = CostOf(cursor_left, 0); + SP_PARM->_cuf1_cost = CostOf(cursor_right, 0); + SP_PARM->_cud1_cost = CostOf(cursor_down, 0); + SP_PARM->_cuu1_cost = CostOf(cursor_up, 0); + + SP_PARM->_smir_cost = CostOf(enter_insert_mode, 0); + SP_PARM->_rmir_cost = CostOf(exit_insert_mode, 0); + SP_PARM->_ip_cost = 0; + if (insert_padding) { + SP_PARM->_ip_cost = CostOf(insert_padding, 0); + } + + /* + * Assumption: if the terminal has memory_relative addressing, the + * initialization strings or smcup will set single-page mode so we + * can treat it like absolute screen addressing. This seems to be true + * for all cursor_mem_address terminal types in the terminfo database. + */ + SP_PARM->_address_cursor = cursor_address ? cursor_address : cursor_mem_address; + + /* + * Parametrized local-motion strings. This static cost computation + * depends on the following assumptions: + * + * (1) They never have * padding. In the entire master terminfo database + * as of March 1995, only the obsolete Zenith Z-100 pc violates this. + * (Proportional padding is found mainly in insert, delete and scroll + * capabilities). + * + * (2) The average case of cup has two two-digit parameters. Strictly, + * the average case for a 24 * 80 screen has ((10*10*(1 + 1)) + + * (14*10*(1 + 2)) + (10*70*(2 + 1)) + (14*70*4)) / (24*80) = 3.458 + * digits of parameters. On a 25x80 screen the average is 3.6197. + * On larger screens the value gets much closer to 4. + * + * (3) The average case of cub/cuf/hpa/ech/rep has 2 digits of parameters + * (strictly, (((10 * 1) + (70 * 2)) / 80) = 1.8750). + * + * (4) The average case of cud/cuu/vpa has 2 digits of parameters + * (strictly, (((10 * 1) + (14 * 2)) / 24) = 1.5833). + * + * All these averages depend on the assumption that all parameter values + * are equally probable. + */ + SP_PARM->_cup_cost = CostOf(TIPARM_2(SP_PARM->_address_cursor, 23, 23), 1); + SP_PARM->_cub_cost = CostOf(TIPARM_1(parm_left_cursor, 23), 1); + SP_PARM->_cuf_cost = CostOf(TIPARM_1(parm_right_cursor, 23), 1); + SP_PARM->_cud_cost = CostOf(TIPARM_1(parm_down_cursor, 23), 1); + SP_PARM->_cuu_cost = CostOf(TIPARM_1(parm_up_cursor, 23), 1); + SP_PARM->_hpa_cost = CostOf(TIPARM_1(column_address, 23), 1); + SP_PARM->_vpa_cost = CostOf(TIPARM_1(row_address, 23), 1); + + /* non-parameterized screen-update strings */ + SP_PARM->_ed_cost = NormalizedCost(clr_eos, 1); + SP_PARM->_el_cost = NormalizedCost(clr_eol, 1); + SP_PARM->_el1_cost = NormalizedCost(clr_bol, 1); + SP_PARM->_dch1_cost = NormalizedCost(delete_character, 1); + SP_PARM->_ich1_cost = NormalizedCost(insert_character, 1); + + /* + * If this is a bce-terminal, we want to bias the choice so we use clr_eol + * rather than spaces at the end of a line. + */ + if (back_color_erase) + SP_PARM->_el_cost = 0; + + /* parameterized screen-update strings */ + SP_PARM->_dch_cost = NormalizedCost(TIPARM_1(parm_dch, 23), 1); + SP_PARM->_ich_cost = NormalizedCost(TIPARM_1(parm_ich, 23), 1); + SP_PARM->_ech_cost = NormalizedCost(TIPARM_1(erase_chars, 23), 1); + SP_PARM->_rep_cost = NormalizedCost(TIPARM_2(repeat_char, ' ', 23), 1); + + SP_PARM->_cup_ch_cost = NormalizedCost(TIPARM_2(SP_PARM->_address_cursor, + 23, 23), + 1); + SP_PARM->_hpa_ch_cost = NormalizedCost(TIPARM_1(column_address, 23), 1); + SP_PARM->_cuf_ch_cost = NormalizedCost(TIPARM_1(parm_right_cursor, 23), 1); + SP_PARM->_inline_cost = min(SP_PARM->_cup_ch_cost, + min(SP_PARM->_hpa_ch_cost, + SP_PARM->_cuf_ch_cost)); + + /* + * If save_cursor is used within enter_ca_mode, we should not use it for + * scrolling optimization, since the corresponding restore_cursor is not + * nested on the various terminals (vt100, xterm, etc.) which use this + * feature. + */ + if (save_cursor != 0 + && enter_ca_mode != 0 + && strstr(enter_ca_mode, save_cursor) != 0) { + T(("...suppressed sc/rc capability due to conflict with smcup/rmcup")); + save_cursor = 0; + restore_cursor = 0; + } + + /* + * A different, possibly better way to arrange this would be to set the + * SCREEN's _endwin at window initialization time and let this be called by + * doupdate's return-from-shellout code. + */ + NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_ARG); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_mvcur_init(void) +{ + NCURSES_SP_NAME(_nc_mvcur_init) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_mvcur_wrap) (NCURSES_SP_DCL0) +/* wrap up cursor-addressing mode */ +{ + if (!SP_PARM || !IsTermInfo(SP_PARM)) + return; + + /* leave cursor at screen bottom */ + TINFO_MVCUR(NCURSES_SP_ARGx -1, -1, screen_lines(SP_PARM) - 1, 0); + + /* set cursor to normal mode */ + if (SP_PARM->_cursor != -1) { + int cursor = SP_PARM->_cursor; + NCURSES_SP_NAME(curs_set) (NCURSES_SP_ARGx 1); + SP_PARM->_cursor = cursor; + } + + if (exit_ca_mode) { + NCURSES_PUTP2("exit_ca_mode", exit_ca_mode); + } + /* + * Reset terminal's tab counter. There's a long-time bug that + * if you exit a "curses" program such as vi or more, tab + * forward, and then backspace, the cursor doesn't go to the + * right place. The problem is that the kernel counts the + * escape sequences that reset things as column positions. + * Utter a \r to reset this invisibly. + */ + NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\r'); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_mvcur_wrap(void) +{ + NCURSES_SP_NAME(_nc_mvcur_wrap) (CURRENT_SCREEN); +} +#endif + +/**************************************************************************** + * + * Optimized cursor movement + * + ****************************************************************************/ + +/* + * Perform repeated-append, returning cost + */ +static NCURSES_INLINE int +repeated_append(string_desc * target, int total, int num, int repeat, const char *src) +{ + size_t need = (size_t) repeat * strlen(src); + + if (need < target->s_size) { + while (repeat-- > 0) { + if (_nc_safe_strcat(target, src)) { + total += num; + } else { + total = INFINITY; + break; + } + } + } else { + total = INFINITY; + } + return total; +} + +#ifndef NO_OPTIMIZE +#define NEXTTAB(fr) (fr + init_tabs - (fr % init_tabs)) + +/* + * Assume back_tab (CBT) does not wrap backwards at the left margin, return + * a negative value at that point to simplify the loop. + */ +#define LASTTAB(fr) ((fr > 0) ? ((fr - 1) / init_tabs) * init_tabs : -1) + +static int +relative_move(NCURSES_SP_DCLx + string_desc * target, + int from_y, + int from_x, + int to_y, + int to_x, + int ovw) +/* move via local motions (cuu/cuu1/cud/cud1/cub1/cub/cuf1/cuf/vpa/hpa) */ +{ + string_desc save; + int n, vcost = 0, hcost = 0; + + (void) _nc_str_copy(&save, target); + + if (to_y != from_y) { + vcost = INFINITY; + + if (row_address != 0 + && _nc_safe_strcat(target, TIPARM_1(row_address, to_y))) { + vcost = SP_PARM->_vpa_cost; + } + + if (to_y > from_y) { + n = (to_y - from_y); + + if (parm_down_cursor + && SP_PARM->_cud_cost < vcost + && _nc_safe_strcat(_nc_str_copy(target, &save), + TIPARM_1(parm_down_cursor, n))) { + vcost = SP_PARM->_cud_cost; + } + + if (cursor_down + && (*cursor_down != '\n') + && (n * SP_PARM->_cud1_cost < vcost)) { + vcost = repeated_append(_nc_str_copy(target, &save), 0, + SP_PARM->_cud1_cost, n, cursor_down); + } + } else { /* (to_y < from_y) */ + n = (from_y - to_y); + + if (parm_up_cursor + && SP_PARM->_cuu_cost < vcost + && _nc_safe_strcat(_nc_str_copy(target, &save), + TIPARM_1(parm_up_cursor, n))) { + vcost = SP_PARM->_cuu_cost; + } + + if (cursor_up && (n * SP_PARM->_cuu1_cost < vcost)) { + vcost = repeated_append(_nc_str_copy(target, &save), 0, + SP_PARM->_cuu1_cost, n, cursor_up); + } + } + + if (vcost == INFINITY) + return (INFINITY); + } + + save = *target; + + if (to_x != from_x) { + char str[OPT_SIZE]; + string_desc check; + + hcost = INFINITY; + + if (column_address + && _nc_safe_strcat(_nc_str_copy(target, &save), + TIPARM_1(column_address, to_x))) { + hcost = SP_PARM->_hpa_cost; + } + + if (to_x > from_x) { + n = to_x - from_x; + + if (parm_right_cursor + && SP_PARM->_cuf_cost < hcost + && _nc_safe_strcat(_nc_str_copy(target, &save), + TIPARM_1(parm_right_cursor, n))) { + hcost = SP_PARM->_cuf_cost; + } + + if (cursor_right) { + int lhcost = 0; + + (void) _nc_str_init(&check, str, sizeof(str)); + +#if USE_HARD_TABS + /* use hard tabs, if we have them, to do as much as possible */ + if (init_tabs > 0 && tab) { + int nxt, fr; + + for (fr = from_x; (nxt = NEXTTAB(fr)) <= to_x; fr = nxt) { + lhcost = repeated_append(&check, lhcost, + SP_PARM->_ht_cost, 1, tab); + if (lhcost == INFINITY) + break; + } + + n = to_x - fr; + from_x = fr; + } +#endif /* USE_HARD_TABS */ + + if (n <= 0 || n >= (int) check.s_size) + ovw = FALSE; +#if BSD_TPUTS + /* + * If we're allowing BSD-style padding in tputs, don't generate + * a string with a leading digit. Otherwise, that will be + * interpreted as a padding value rather than sent to the + * screen. + */ + if (ovw + && n > 0 + && n < (int) check.s_size + && vcost == 0 + && str[0] == '\0') { + int wanted = CharOf(WANT_CHAR(SP_PARM, to_y, from_x)); + if (is8bits(wanted) && isdigit(wanted)) + ovw = FALSE; + } +#endif + /* + * If we have no attribute changes, overwrite is cheaper. + * Note: must suppress this by passing in ovw = FALSE whenever + * WANT_CHAR would return invalid data. In particular, this + * is true between the time a hardware scroll has been done + * and the time the structure WANT_CHAR would access has been + * updated. + */ + if (ovw) { + int i; + + for (i = 0; i < n; i++) { + NCURSES_CH_T ch = WANT_CHAR(SP_PARM, to_y, from_x + i); + if (!SameAttrOf(ch, SCREEN_ATTRS(SP_PARM)) +#if USE_WIDEC_SUPPORT + || !Charable(ch) +#endif + ) { + ovw = FALSE; + break; + } + } + } + if (ovw) { + int i; + + for (i = 0; i < n; i++) + *check.s_tail++ = (char) CharOf(WANT_CHAR(SP_PARM, to_y, + from_x + i)); + *check.s_tail = '\0'; + check.s_size -= (size_t) n; + lhcost += n * SP_PARM->_char_padding; + } else { + lhcost = repeated_append(&check, lhcost, SP_PARM->_cuf1_cost, + n, cursor_right); + } + + if (lhcost < hcost + && _nc_safe_strcat(_nc_str_copy(target, &save), str)) { + hcost = lhcost; + } + } + } else { /* (to_x < from_x) */ + n = from_x - to_x; + + if (parm_left_cursor + && SP_PARM->_cub_cost < hcost + && _nc_safe_strcat(_nc_str_copy(target, &save), + TIPARM_1(parm_left_cursor, n))) { + hcost = SP_PARM->_cub_cost; + } + + if (cursor_left) { + int lhcost = 0; + + (void) _nc_str_init(&check, str, sizeof(str)); + +#if USE_HARD_TABS + if (init_tabs > 0 && back_tab) { + int nxt, fr; + + for (fr = from_x; (nxt = LASTTAB(fr)) >= to_x; fr = nxt) { + lhcost = repeated_append(&check, lhcost, + SP_PARM->_cbt_cost, + 1, back_tab); + if (lhcost == INFINITY) + break; + } + + n = fr - to_x; + } +#endif /* USE_HARD_TABS */ + + lhcost = repeated_append(&check, lhcost, + SP_PARM->_cub1_cost, + n, cursor_left); + + if (lhcost < hcost + && _nc_safe_strcat(_nc_str_copy(target, &save), str)) { + hcost = lhcost; + } + } + } + + if (hcost == INFINITY) + return (INFINITY); + } + + return (vcost + hcost); +} +#endif /* !NO_OPTIMIZE */ + +/* + * With the machinery set up above, it is conceivable that + * onscreen_mvcur could be modified into a recursive function that does + * an alpha-beta search of motion space, as though it were a chess + * move tree, with the weight function being boolean and the search + * depth equated to length of string. However, this would jack up the + * computation cost a lot, especially on terminals without a cup + * capability constraining the search tree depth. So we settle for + * the simpler method below. + */ + +static NCURSES_INLINE int +onscreen_mvcur(NCURSES_SP_DCLx + int yold, int xold, + int ynew, int xnew, int ovw, + NCURSES_SP_OUTC myOutCh) +/* onscreen move from (yold, xold) to (ynew, xnew) */ +{ + string_desc result; + char buffer[OPT_SIZE]; + int tactic = 0, newcost, usecost = INFINITY; + int t5_cr_cost; + +#if defined(MAIN) || defined(NCURSES_TEST) + struct timeval before, after; + + gettimeofday(&before, NULL); +#endif /* MAIN */ + +#define NullResult _nc_str_null(&result, sizeof(buffer)) +#define InitResult _nc_str_init(&result, buffer, sizeof(buffer)) + + /* tactic #0: use direct cursor addressing */ + if (_nc_safe_strcpy(InitResult, TIPARM_2(SP_PARM->_address_cursor, + ynew, xnew))) { + tactic = 0; + usecost = SP_PARM->_cup_cost; + +#if defined(TRACE) || defined(NCURSES_TEST) + if (!(_nc_optimize_enable & OPTIMIZE_MVCUR)) + goto nonlocal; +#endif /* TRACE */ + + /* + * We may be able to tell in advance that the full optimization + * will probably not be worth its overhead. Also, don't try to + * use local movement if the current attribute is anything but + * A_NORMAL...there are just too many ways this can screw up + * (like, say, local-movement \n getting mapped to some obscure + * character because A_ALTCHARSET is on). + */ + if (yold == -1 || xold == -1 || NOT_LOCAL(SP_PARM, yold, xold, ynew, xnew)) { +#if defined(MAIN) || defined(NCURSES_TEST) + if (!profiling) { + (void) fputs("nonlocal\n", stderr); + goto nonlocal; /* always run the optimizer if profiling */ + } +#else + goto nonlocal; +#endif /* MAIN */ + } + } +#ifndef NO_OPTIMIZE + /* tactic #1: use local movement */ + if (yold != -1 && xold != -1 + && ((newcost = relative_move(NCURSES_SP_ARGx + NullResult, + yold, xold, + ynew, xnew, ovw)) != INFINITY) + && newcost < usecost) { + tactic = 1; + usecost = newcost; + } + + /* tactic #2: use carriage-return + local movement */ + if (yold != -1 && carriage_return + && ((newcost = relative_move(NCURSES_SP_ARGx + NullResult, + yold, 0, + ynew, xnew, ovw)) != INFINITY) + && SP_PARM->_cr_cost + newcost < usecost) { + tactic = 2; + usecost = SP_PARM->_cr_cost + newcost; + } + + /* tactic #3: use home-cursor + local movement */ + if (cursor_home + && ((newcost = relative_move(NCURSES_SP_ARGx + NullResult, + 0, 0, + ynew, xnew, ovw)) != INFINITY) + && SP_PARM->_home_cost + newcost < usecost) { + tactic = 3; + usecost = SP_PARM->_home_cost + newcost; + } + + /* tactic #4: use home-down + local movement */ + if (cursor_to_ll + && ((newcost = relative_move(NCURSES_SP_ARGx + NullResult, + screen_lines(SP_PARM) - 1, 0, + ynew, xnew, ovw)) != INFINITY) + && SP_PARM->_ll_cost + newcost < usecost) { + tactic = 4; + usecost = SP_PARM->_ll_cost + newcost; + } + + /* + * tactic #5: use left margin for wrap to right-hand side, + * unless strange wrap behavior indicated by xenl might hose us. + */ + t5_cr_cost = (xold > 0 ? SP_PARM->_cr_cost : 0); + if (auto_left_margin && !eat_newline_glitch + && yold > 0 && cursor_left + && ((newcost = relative_move(NCURSES_SP_ARGx + NullResult, + yold - 1, screen_columns(SP_PARM) - 1, + ynew, xnew, ovw)) != INFINITY) + && t5_cr_cost + SP_PARM->_cub1_cost + newcost < usecost) { + tactic = 5; + usecost = t5_cr_cost + SP_PARM->_cub1_cost + newcost; + } + + /* + * These cases are ordered by estimated relative frequency. + */ + if (tactic) + InitResult; + switch (tactic) { + case 1: + (void) relative_move(NCURSES_SP_ARGx + &result, + yold, xold, + ynew, xnew, ovw); + break; + case 2: + (void) _nc_safe_strcpy(&result, carriage_return); + (void) relative_move(NCURSES_SP_ARGx + &result, + yold, 0, + ynew, xnew, ovw); + break; + case 3: + (void) _nc_safe_strcpy(&result, cursor_home); + (void) relative_move(NCURSES_SP_ARGx + &result, 0, 0, + ynew, xnew, ovw); + break; + case 4: + (void) _nc_safe_strcpy(&result, cursor_to_ll); + (void) relative_move(NCURSES_SP_ARGx + &result, + screen_lines(SP_PARM) - 1, 0, + ynew, xnew, ovw); + break; + case 5: + if (xold > 0) + (void) _nc_safe_strcat(&result, carriage_return); + (void) _nc_safe_strcat(&result, cursor_left); + (void) relative_move(NCURSES_SP_ARGx + &result, + yold - 1, screen_columns(SP_PARM) - 1, + ynew, xnew, ovw); + break; + } +#endif /* !NO_OPTIMIZE */ + + nonlocal: +#if defined(MAIN) || defined(NCURSES_TEST) + gettimeofday(&after, NULL); + diff = after.tv_usec - before.tv_usec + + (after.tv_sec - before.tv_sec) * 1000000; + if (!profiling) + (void) fprintf(stderr, + "onscreen: %d microsec, %f 28.8Kbps char-equivalents\n", + (int) diff, diff / 288); +#endif /* MAIN */ + + if (usecost != INFINITY) { + TR(TRACE_MOVE, ("mvcur tactic %d", tactic)); + TPUTS_TRACE("mvcur"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + buffer, 1, myOutCh); + SP_PARM->_cursrow = ynew; + SP_PARM->_curscol = xnew; + return (OK); + } else + return (ERR); +} + +/* + * optimized cursor move from (yold, xold) to (ynew, xnew) + */ +static int +_nc_real_mvcur(NCURSES_SP_DCLx + int yold, int xold, + int ynew, int xnew, + NCURSES_SP_OUTC myOutCh, + int ovw) +{ + NCURSES_CH_T oldattr; + int code; + + TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("_nc_real_mvcur(%p,%d,%d,%d,%d)"), + (void *) SP_PARM, yold, xold, ynew, xnew)); + + if (SP_PARM == 0) { + code = ERR; + } else if (yold == ynew && xold == xnew) { + code = OK; + } else { + + /* + * Most work here is rounding for terminal boundaries getting the + * column position implied by wraparound or the lack thereof and + * rolling up the screen to get ynew on the screen. + */ + if (xnew >= screen_columns(SP_PARM)) { + ynew += xnew / screen_columns(SP_PARM); + xnew %= screen_columns(SP_PARM); + } + + /* + * Force restore even if msgr is on when we're in an alternate + * character set -- these have a strong tendency to screw up the CR & + * LF used for local character motions! + */ + oldattr = SCREEN_ATTRS(SP_PARM); + if ((AttrOf(oldattr) & A_ALTCHARSET) + || (AttrOf(oldattr) && !move_standout_mode)) { + TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move", + (unsigned long) AttrOf(oldattr), + _traceattr(AttrOf(oldattr)))); + VIDPUTS(SP_PARM, A_NORMAL, 0); + } + + if (xold >= screen_columns(SP_PARM)) { + + int l = (xold + 1) / screen_columns(SP_PARM); + + yold += l; + if (yold >= screen_lines(SP_PARM)) + l -= (yold - screen_lines(SP_PARM) - 1); + + if (l > 0) { + if (carriage_return) { + NCURSES_PUTP2("carriage_return", carriage_return); + } else { + myOutCh(NCURSES_SP_ARGx '\r'); + } + xold = 0; + + while (l > 0) { + if (newline) { + NCURSES_PUTP2("newline", newline); + } else { + myOutCh(NCURSES_SP_ARGx '\n'); + } + l--; + } + } + } + + if (yold > screen_lines(SP_PARM) - 1) + yold = screen_lines(SP_PARM) - 1; + if (ynew > screen_lines(SP_PARM) - 1) + ynew = screen_lines(SP_PARM) - 1; + + /* destination location is on screen now */ + code = onscreen_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, ovw, myOutCh); + + /* + * Restore attributes if we disabled them before moving. + */ + if (!SameAttrOf(oldattr, SCREEN_ATTRS(SP_PARM))) { + TR(TRACE_CHARPUT, ("turning on (%#lx) %s after move", + (unsigned long) AttrOf(oldattr), + _traceattr(AttrOf(oldattr)))); + VIDPUTS(SP_PARM, AttrOf(oldattr), GetPair(oldattr)); + } + } + returnCode(code); +} + +/* + * These entrypoints are used within the library. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_mvcur) (NCURSES_SP_DCLx + int yold, int xold, + int ynew, int xnew) +{ + int rc; + rc = _nc_real_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, + NCURSES_SP_NAME(_nc_outch), + TRUE); + /* + * With the terminal-driver, we cannot distinguish between internal and + * external calls. Flush the output if the screen has not been + * initialized, e.g., when used from low-level terminfo programs. + */ + if ((SP_PARM != 0) && (SP_PARM->_endwin == ewInitial)) + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + return rc; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_mvcur(int yold, int xold, + int ynew, int xnew) +{ + return NCURSES_SP_NAME(_nc_mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew); +} +#endif + +#if defined(USE_TERM_DRIVER) +/* + * The terminal driver does not support the external "mvcur()". + */ +NCURSES_EXPORT(int) +TINFO_MVCUR(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew) +{ + int rc; + rc = _nc_real_mvcur(NCURSES_SP_ARGx + yold, xold, + ynew, xnew, + NCURSES_SP_NAME(_nc_outch), + TRUE); + if ((SP_PARM != 0) && (SP_PARM->_endwin == ewInitial)) + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + return rc; +} + +#else /* !USE_TERM_DRIVER */ + +/* + * These entrypoints support users of the library. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(mvcur) (NCURSES_SP_DCLx int yold, int xold, int ynew, + int xnew) +{ + return _nc_real_mvcur(NCURSES_SP_ARGx + yold, xold, + ynew, xnew, + NCURSES_SP_NAME(_nc_putchar), + FALSE); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +mvcur(int yold, int xold, int ynew, int xnew) +{ + return NCURSES_SP_NAME(mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew); +} +#endif +#endif /* USE_TERM_DRIVER */ + +#if defined(TRACE) || defined(NCURSES_TEST) +NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL; +#endif + +#if defined(MAIN) || defined(NCURSES_TEST) +/**************************************************************************** + * + * Movement optimizer test code + * + ****************************************************************************/ + +#include "tic.h" +#include +#include + +NCURSES_EXPORT_VAR(const char *) _nc_progname = "mvcur"; + +static unsigned long xmits; + +/* these override lib_tputs.c */ +NCURSES_EXPORT(int) +tputs(const char *string, int affcnt GCC_UNUSED, int (*outc) (int) GCC_UNUSED) +/* stub tputs() that dumps sequences in a visible form */ +{ + if (profiling) + xmits += strlen(string); + else + (void) fputs(_nc_visbuf(string), stdout); + return (OK); +} + +NCURSES_EXPORT(int) +putp(const char *string) +{ + return (tputs(string, 1, _nc_outch)); +} + +NCURSES_EXPORT(int) +_nc_outch(int ch) +{ + putc(ch, stdout); + return OK; +} + +NCURSES_EXPORT(int) +delay_output(int ms GCC_UNUSED) +{ + return OK; +} + +static char tname[PATH_MAX]; + +static void +load_term(void) +{ + (void) setupterm(tname, STDOUT_FILENO, NULL); +} + +static int +roll(int n) +{ + int i, j; + + i = (RAND_MAX / n) * n; + while ((j = rand()) >= i) + continue; + return (j % n); +} + +int +main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) +{ + _nc_STRCPY(tname, getenv("TERM"), sizeof(tname)); + load_term(); + _nc_setupscreen(lines, columns, stdout, FALSE, 0); + baudrate(); + + _nc_mvcur_init(); + + (void) puts("The mvcur tester. Type ? for help"); + + fputs("smcup:", stdout); + putchar('\n'); + + for (;;) { + int fy, fx, ty, tx, n, i; + char buf[BUFSIZ], capname[BUFSIZ]; + + if (fputs("> ", stdout) == EOF) + break; + if (fgets(buf, sizeof(buf), stdin) == 0) + break; + +#define PUTS(s) (void) puts(s) +#define PUTF(s,t) (void) printf(s,t) + if (buf[0] == '?') { + PUTS("? -- display this help message"); + PUTS("fy fx ty tx -- (4 numbers) display (fy,fx)->(ty,tx) move"); + PUTS("s[croll] n t b m -- display scrolling sequence"); + PUTF("r[eload] -- reload terminal info for %s\n", + termname()); + PUTS("l[oad] -- load terminal info for type "); + PUTS("d[elete] -- delete named capability"); + PUTS("i[nspect] -- display terminal capabilities"); + PUTS("c[ost] -- dump cursor-optimization cost table"); + PUTS("o[optimize] -- toggle movement optimization"); + PUTS("t[orture] -- torture-test with random moves"); + PUTS("q[uit] -- quit the program"); + } else if (sscanf(buf, "%d %d %d %d", &fy, &fx, &ty, &tx) == 4) { + struct timeval before, after; + + putchar('"'); + + gettimeofday(&before, NULL); + mvcur(fy, fx, ty, tx); + gettimeofday(&after, NULL); + + printf("\" (%ld msec)\n", + (long) (after.tv_usec - before.tv_usec + + (after.tv_sec - before.tv_sec) + * 1000000)); + } else if (sscanf(buf, "s %d %d %d %d", &fy, &fx, &ty, &tx) == 4) { + struct timeval before, after; + + putchar('"'); + + gettimeofday(&before, NULL); + _nc_scrolln(fy, fx, ty, tx); + gettimeofday(&after, NULL); + + printf("\" (%ld msec)\n", + (long) (after.tv_usec - before.tv_usec + (after.tv_sec - + before.tv_sec) + * 1000000)); + } else if (buf[0] == 'r') { + _nc_STRCPY(tname, termname(), sizeof(tname)); + load_term(); + } else if (sscanf(buf, "l %s", tname) == 1) { + load_term(); + } else if (sscanf(buf, "d %s", capname) == 1) { + struct name_table_entry const *np = _nc_find_entry(capname, + _nc_get_hash_table(FALSE)); + + if (np == NULL) + (void) printf("No such capability as \"%s\"\n", capname); + else { + switch (np->nte_type) { + case BOOLEAN: + cur_term->type.Booleans[np->nte_index] = FALSE; + (void) + printf("Boolean capability `%s' (%d) turned off.\n", + np->nte_name, np->nte_index); + break; + + case NUMBER: + cur_term->type.Numbers[np->nte_index] = ABSENT_NUMERIC; + (void) printf("Number capability `%s' (%d) set to -1.\n", + np->nte_name, np->nte_index); + break; + + case STRING: + cur_term->type.Strings[np->nte_index] = ABSENT_STRING; + (void) printf("String capability `%s' (%d) deleted.\n", + np->nte_name, np->nte_index); + break; + } + } + } else if (buf[0] == 'i') { + dump_init(NULL, F_TERMINFO, S_TERMINFO, + FALSE, 70, 0, 0, FALSE, FALSE, 0); + dump_entry(&TerminalType(cur_term), FALSE, TRUE, 0, 0); + putchar('\n'); + } else if (buf[0] == 'o') { + if (_nc_optimize_enable & OPTIMIZE_MVCUR) { + _nc_optimize_enable &= ~OPTIMIZE_MVCUR; + (void) puts("Optimization is now off."); + } else { + _nc_optimize_enable |= OPTIMIZE_MVCUR; + (void) puts("Optimization is now on."); + } + } + /* + * You can use the `t' test to profile and tune the movement + * optimizer. Use iteration values in three digits or more. + * At above 5000 iterations the profile timing averages are stable + * to within a millisecond or three. + * + * The `overhead' field of the report will help you pick a + * COMPUTE_OVERHEAD figure appropriate for your processor and + * expected line speed. The `total estimated time' is + * computation time plus a character-transmission time + * estimate computed from the number of transmits and the baud + * rate. + * + * Use this together with the `o' command to get a read on the + * optimizer's effectiveness. Compare the total estimated times + * for `t' runs of the same length in both optimized and un-optimized + * modes. As long as the optimized times are less, the optimizer + * is winning. + */ + else if (sscanf(buf, "t %d", &n) == 1) { + float cumtime = 0.0, perchar; + int speeds[] = + {2400, 9600, 14400, 19200, 28800, 38400, 0}; + + srand((unsigned) (getpid() + time((time_t *) 0))); + profiling = TRUE; + xmits = 0; + for (i = 0; i < n; i++) { + /* + * This does a move test between two random locations, + * Random moves probably short-change the optimizer, + * which will work better on the short moves probably + * typical of doupdate()'s usage pattern. Still, + * until we have better data... + */ +#ifdef FIND_COREDUMP + int from_y = roll(lines); + int to_y = roll(lines); + int from_x = roll(columns); + int to_x = roll(columns); + + printf("(%d,%d) -> (%d,%d)\n", from_y, from_x, to_y, to_x); + mvcur(from_y, from_x, to_y, to_x); +#else + mvcur(roll(lines), roll(columns), roll(lines), roll(columns)); +#endif /* FIND_COREDUMP */ + if (diff) + cumtime += diff; + } + profiling = FALSE; + + /* + * Average milliseconds per character optimization time. + * This is the key figure to watch when tuning the optimizer. + */ + perchar = cumtime / n; + + (void) printf("%d moves (%ld chars) in %d msec, %f msec each:\n", + n, xmits, (int) cumtime, perchar); + + for (i = 0; speeds[i]; i++) { + /* + * Total estimated time for the moves, computation and + * transmission both. Transmission time is an estimate + * assuming 9 bits/char, 8 bits + 1 stop bit. + */ + float totalest = cumtime + xmits * 9 * 1e6 / speeds[i]; + + /* + * Per-character optimization overhead in character transmits + * at the current speed. Round this to the nearest integer + * to figure COMPUTE_OVERHEAD for the speed. + */ + float overhead = speeds[i] * perchar / 1e6; + + (void) + printf("%6d bps: %3.2f char-xmits overhead; total estimated time %15.2f\n", + speeds[i], overhead, totalest); + } + } else if (buf[0] == 'c') { + (void) printf("char padding: %d\n", CURRENT_SCREEN->_char_padding); + (void) printf("cr cost: %d\n", CURRENT_SCREEN->_cr_cost); + (void) printf("cup cost: %d\n", CURRENT_SCREEN->_cup_cost); + (void) printf("home cost: %d\n", CURRENT_SCREEN->_home_cost); + (void) printf("ll cost: %d\n", CURRENT_SCREEN->_ll_cost); +#if USE_HARD_TABS + (void) printf("ht cost: %d\n", CURRENT_SCREEN->_ht_cost); + (void) printf("cbt cost: %d\n", CURRENT_SCREEN->_cbt_cost); +#endif /* USE_HARD_TABS */ + (void) printf("cub1 cost: %d\n", CURRENT_SCREEN->_cub1_cost); + (void) printf("cuf1 cost: %d\n", CURRENT_SCREEN->_cuf1_cost); + (void) printf("cud1 cost: %d\n", CURRENT_SCREEN->_cud1_cost); + (void) printf("cuu1 cost: %d\n", CURRENT_SCREEN->_cuu1_cost); + (void) printf("cub cost: %d\n", CURRENT_SCREEN->_cub_cost); + (void) printf("cuf cost: %d\n", CURRENT_SCREEN->_cuf_cost); + (void) printf("cud cost: %d\n", CURRENT_SCREEN->_cud_cost); + (void) printf("cuu cost: %d\n", CURRENT_SCREEN->_cuu_cost); + (void) printf("hpa cost: %d\n", CURRENT_SCREEN->_hpa_cost); + (void) printf("vpa cost: %d\n", CURRENT_SCREEN->_vpa_cost); + } else if (buf[0] == 'x' || buf[0] == 'q') + break; + else + (void) puts("Invalid command."); + } + + (void) fputs("rmcup:", stdout); + _nc_mvcur_wrap(); + putchar('\n'); + + return (0); +} + +#endif /* MAIN */ + +/* lib_mvcur.c ends here */ diff --git a/third_party/ncurses/lib_mvwin.c b/third_party/ncurses/lib_mvwin.c new file mode 100644 index 000000000..ab129a61d --- /dev/null +++ b/third_party/ncurses/lib_mvwin.c @@ -0,0 +1,121 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * + ****************************************************************************/ + +/* +** lib_mvwin.c +** +** The routine mvwin(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_mvwin.c,v 1.20 2021/10/23 18:57:41 tom Exp $") + +NCURSES_EXPORT(int) +mvwin(WINDOW *win, int by, int bx) +{ +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(win); +#endif + + T((T_CALLED("mvwin(%p,%d,%d)"), (void *) win, by, bx)); + + if (!win || IS_PAD(win)) + returnCode(ERR); + + /* + * mvwin() should only modify the indices. See test/demo_menus.c and + * test/movewindow.c for examples. + */ +#if 0 + /* Copying subwindows is allowed, but it is expensive... */ + if (IS_SUBWIN(win)) { + int err = ERR; + WINDOW *parent = win->_parent; + if (parent) { /* Now comes the complicated and costly part, you should really + * try to avoid to move subwindows. Because a subwindow shares + * the text buffers with its parent, one can't do a simple + * memmove of the text buffers. One has to create a copy, then + * to relocate the subwindow and then to do a copy. + */ + if ((by - parent->_begy == win->_pary) && + (bx - parent->_begx == win->_parx)) + err = OK; /* we don't actually move */ + else { + WINDOW *clone = dupwin(win); + if (clone) { + /* now we have the clone, so relocate win */ + + werase(win); /* Erase the original place */ + /* fill with parents background */ + wbkgrnd(win, CHREF(parent->_nc_bkgd)); + wsyncup(win); /* Tell the parent(s) */ + + err = mvderwin(win, + by - parent->_begy, + bx - parent->_begx); + if (err != ERR) { + err = copywin(clone, win, + 0, 0, 0, 0, win->_maxy, win->_maxx, 0); + if (ERR != err) + wsyncup(win); + } + if (ERR == delwin(clone)) + err = ERR; + } + } + } + returnCode(err); + } +#endif + + if (by + win->_maxy > screen_lines(SP_PARM) - 1 + || bx + win->_maxx > screen_columns(SP_PARM) - 1 + || by < 0 + || bx < 0) + returnCode(ERR); + + /* + * Whether or not the window is moved, touch the window's contents so + * that a following call to 'wrefresh()' will paint the window at the + * new location. This ensures that if the caller has refreshed another + * window at the same location, that this one will be displayed. + */ + win->_begy = (NCURSES_SIZE_T) by; + win->_begx = (NCURSES_SIZE_T) bx; + returnCode(touchwin(win)); +} diff --git a/third_party/ncurses/lib_napms.c b/third_party/ncurses/lib_napms.c new file mode 100644 index 000000000..b77a66ca3 --- /dev/null +++ b/third_party/ncurses/lib_napms.c @@ -0,0 +1,94 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * lib_napms.c + * + * The routine napms. + * + * (This file was originally written by Eric Raymond; however except for + * comments, none of the original code remains - T.Dickey). + */ + +#include "curses.priv.h" + +#if HAVE_NANOSLEEP +#include +#if HAVE_SYS_TIME_H +#include /* needed for MacOS X DP3 */ +#endif +#endif + +MODULE_ID("$Id: lib_napms.c,v 1.27 2020/08/15 19:45:23 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(napms) (NCURSES_SP_DCLx int ms) +{ + T((T_CALLED("napms(%d)"), ms)); + +#ifdef USE_TERM_DRIVER + CallDriver_1(SP_PARM, td_nap, ms); +#else /* !USE_TERM_DRIVER */ +#if NCURSES_SP_FUNCS + (void) sp; +#endif +#if HAVE_NANOSLEEP + { + struct timespec request, remaining; + request.tv_sec = ms / 1000; + request.tv_nsec = (ms % 1000) * 1000000; + while (nanosleep(&request, &remaining) == -1 + && errno == EINTR) { + request = remaining; + } + } +#elif defined(_NC_WINDOWS) + Sleep((DWORD) ms); +#else + _nc_timed_wait(0, 0, ms, (int *) 0 EVENTLIST_2nd(0)); +#endif +#endif /* !USE_TERM_DRIVER */ + + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +napms(int ms) +{ + return NCURSES_SP_NAME(napms) (CURRENT_SCREEN, ms); +} +#endif diff --git a/third_party/ncurses/lib_newterm.c b/third_party/ncurses/lib_newterm.c new file mode 100644 index 000000000..5b2085f9c --- /dev/null +++ b/third_party/ncurses/lib_newterm.c @@ -0,0 +1,375 @@ +/**************************************************************************** + * Copyright 2018-2020,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_newterm.c +** +** The newterm() function. +** +*/ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +#include "tic.h" + +MODULE_ID("$Id: lib_newterm.c,v 1.104 2022/07/09 18:58:58 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define NumLabels InfoOf(SP_PARM).numlabels +#else +#define NumLabels num_labels +#endif + +#ifndef ONLCR /* Allows compilation under the QNX 4.2 OS */ +#define ONLCR 0 +#endif + +/* + * SVr4/XSI Curses specify that hardware echo is turned off in initscr, and not + * restored during the curses session. The library simulates echo in software. + * (The behavior is unspecified if the application enables hardware echo). + * + * The newterm function also initializes terminal settings, and since initscr + * is supposed to behave as if it calls newterm, we do it here. + */ +static NCURSES_INLINE int +_nc_initscr(NCURSES_SP_DCL0) +{ + int result = ERR; + TERMINAL *term = TerminalOf(SP_PARM); + + /* for extended XPG4 conformance requires cbreak() at this point */ + /* (SVr4 curses does this anyway) */ + T((T_CALLED("_nc_initscr(%p) ->term %p"), (void *) SP_PARM, (void *) term)); + if (NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG) == OK) { + TTY buf; + + buf = term->Nttyb; +#ifdef TERMIOS + buf.c_lflag &= (unsigned) ~(ECHO | ECHONL); + buf.c_iflag &= (unsigned) ~(ICRNL | INLCR | IGNCR); + buf.c_oflag &= (unsigned) ~(ONLCR); +#elif HAVE_SGTTY_H + buf.sg_flags &= ~(ECHO | CRMOD); +#elif defined(EXP_WIN32_DRIVER) + buf.dwFlagIn = CONMODE_IN_DEFAULT; + buf.dwFlagOut = CONMODE_OUT_DEFAULT | VT_FLAG_OUT; + if (WINCONSOLE.isTermInfoConsole) { + buf.dwFlagIn |= VT_FLAG_IN; + } +#else + memset(&buf, 0, sizeof(buf)); +#endif + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) + term->Nttyb = buf; + } + returnCode(result); +} + +/* + * filter() has to be called before either initscr() or newterm(), so there is + * apparently no way to make this flag apply to some terminals and not others, + * aside from possibly delaying a filter() call until some terminals have been + * initialized. + */ +NCURSES_EXPORT(void) +NCURSES_SP_NAME(filter) (NCURSES_SP_DCL0) +{ + START_TRACE(); + T((T_CALLED("filter(%p)"), (void *) SP_PARM)); +#if NCURSES_SP_FUNCS + if (IsPreScreen(SP_PARM)) { + SP_PARM->_filtered = TRUE; + } +#else + _nc_prescreen.filter_mode = TRUE; +#endif + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +filter(void) +{ + START_TRACE(); + T((T_CALLED("filter()"))); + _nc_prescreen.filter_mode = TRUE; + returnVoid; +} +#endif + +#if NCURSES_EXT_FUNCS +/* + * An extension, allowing the application to open a new screen without + * requiring it to also be filtered. + */ +NCURSES_EXPORT(void) +NCURSES_SP_NAME(nofilter) (NCURSES_SP_DCL0) +{ + START_TRACE(); + T((T_CALLED("nofilter(%p)"), (void *) SP_PARM)); +#if NCURSES_SP_FUNCS + if (IsPreScreen(SP_PARM)) { + SP_PARM->_filtered = FALSE; + } +#else + _nc_prescreen.filter_mode = FALSE; +#endif + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +nofilter(void) +{ + START_TRACE(); + T((T_CALLED("nofilter()"))); + _nc_prescreen.filter_mode = FALSE; + returnVoid; +} +#endif +#endif /* NCURSES_EXT_FUNCS */ + +NCURSES_EXPORT(SCREEN *) +NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx + const char *name, + FILE *ofp, + FILE *ifp) +{ + int errret; + SCREEN *result = 0; + SCREEN *current; + TERMINAL *its_term; + FILE *_ofp = ofp ? ofp : stdout; + FILE *_ifp = ifp ? ifp : stdin; + TERMINAL *new_term = 0; + + START_TRACE(); + T((T_CALLED("newterm(%p, \"%s\", %p,%p)"), + (void *) SP_PARM, + (name ? name : ""), + (void *) ofp, + (void *) ifp)); + +#if NCURSES_SP_FUNCS + assert(SP_PARM != 0); + if (SP_PARM == 0) + returnSP(SP_PARM); +#endif + + _nc_init_pthreads(); + _nc_lock_global(curses); + + current = CURRENT_SCREEN; + its_term = (current ? current->_term : 0); + +#if defined(EXP_WIN32_DRIVER) + _setmode(fileno(_ifp), _O_BINARY); + _setmode(fileno(_ofp), _O_BINARY); +#endif + + INIT_TERM_DRIVER(); + /* this loads the capability entry, then sets LINES and COLS */ + if ( + TINFO_SETUP_TERM(&new_term, name, + fileno(_ofp), &errret, FALSE) != ERR) { + int slk_format; + int filter_mode; + + _nc_set_screen(0); +#ifdef USE_TERM_DRIVER + assert(new_term != 0); +#endif + +#if NCURSES_SP_FUNCS + slk_format = SP_PARM->slk_format; + filter_mode = SP_PARM->_filtered; +#else + slk_format = _nc_globals.slk_format; + filter_mode = _nc_prescreen.filter_mode; +#endif + + /* + * This actually allocates the screen structure, and saves the original + * terminal settings. + */ + if (NCURSES_SP_NAME(_nc_setupscreen) ( +#if NCURSES_SP_FUNCS + &SP_PARM, +#endif + *(ptrLines(SP_PARM)), + *(ptrCols(SP_PARM)), + _ofp, + filter_mode, + slk_format) == ERR) { + _nc_set_screen(current); + result = 0; + } else { + int value; + int cols; + +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB; +#elif !NCURSES_SP_FUNCS + _nc_set_screen(CURRENT_SCREEN); +#endif + assert(SP_PARM != 0); + cols = *(ptrCols(SP_PARM)); +#ifdef USE_TERM_DRIVER + _nc_set_screen(SP_PARM); + TCB = (TERMINAL_CONTROL_BLOCK *) new_term; + TCB->csp = SP_PARM; +#endif + /* + * In setupterm() we did a set_curterm(), but it was before we set + * CURRENT_SCREEN. So the "current" screen's terminal pointer was + * overwritten with a different terminal. Later, in + * _nc_setupscreen(), we set CURRENT_SCREEN and the terminal + * pointer in the new screen. + * + * Restore the terminal-pointer for the pre-existing screen, if + * any. + */ + if (current) + current->_term = its_term; + +#ifdef USE_TERM_DRIVER + SP_PARM->_term = new_term; +#else + new_term = SP_PARM->_term; +#endif + + /* allow user to set maximum escape delay from the environment */ + if ((value = _nc_getenv_num("ESCDELAY")) >= 0) { +#if NCURSES_EXT_FUNCS + NCURSES_SP_NAME(set_escdelay) (NCURSES_SP_ARGx value); +#else + ESCDELAY = value; +#endif + } + + /* if the terminal type has real soft labels, set those up */ + if (slk_format && NumLabels > 0 && SLK_STDFMT(slk_format)) + _nc_slk_initialize(StdScreen(SP_PARM), cols); + + SP_PARM->_ifd = fileno(_ifp); + NCURSES_SP_NAME(typeahead) (NCURSES_SP_ARGx fileno(_ifp)); +#ifdef TERMIOS + SP_PARM->_use_meta = ((new_term->Ottyb.c_cflag & CSIZE) == CS8 && + !(new_term->Ottyb.c_iflag & ISTRIP)) || + USE_KLIBC_KBD; +#else + SP_PARM->_use_meta = FALSE; +#endif + SP_PARM->_endwin = ewInitial; +#ifndef USE_TERM_DRIVER + /* + * Check whether we can optimize scrolling under dumb terminals in + * case we do not have any of these capabilities, scrolling + * optimization will be useless. + */ + SP_PARM->_scrolling = ((scroll_forward && scroll_reverse) || + ((parm_rindex || + parm_insert_line || + insert_line) && + (parm_index || + parm_delete_line || + delete_line))); +#endif + + NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG); /* sets a field in the screen structure */ + + SP_PARM->_keytry = 0; + + /* compute movement costs so we can do better move optimization */ +#ifdef USE_TERM_DRIVER + TCBOf(SP_PARM)->drv->td_scinit(SP_PARM); +#else /* ! USE_TERM_DRIVER */ + /* + * Check for mismatched graphic-rendition capabilities. Most SVr4 + * terminfo trees contain entries that have rmul or rmso equated to + * sgr0 (Solaris curses copes with those entries). We do this only + * for curses, since many termcap applications assume that + * smso/rmso and smul/rmul are paired, and will not function + * properly if we remove rmso or rmul. Curses applications + * shouldn't be looking at this detail. + */ +#define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode)) + SP_PARM->_use_rmso = SGR0_TEST(exit_standout_mode); + SP_PARM->_use_rmul = SGR0_TEST(exit_underline_mode); +#if USE_ITALIC + SP_PARM->_use_ritm = SGR0_TEST(exit_italics_mode); +#endif + + /* compute movement costs so we can do better move optimization */ + _nc_mvcur_init(); + + /* initialize terminal to a sane state */ + _nc_screen_init(); +#endif /* USE_TERM_DRIVER */ + + /* Initialize the terminal line settings. */ + _nc_initscr(NCURSES_SP_ARG); + + _nc_signal_handler(TRUE); + result = SP_PARM; + } + } + _nc_unlock_global(curses); + returnSP(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(SCREEN *) +newterm(const char *name, FILE *ofp, FILE *ifp) +{ + SCREEN *rc; + + _nc_init_pthreads(); + _nc_lock_global(prescreen); + START_TRACE(); + rc = NCURSES_SP_NAME(newterm) (CURRENT_SCREEN_PRE, name, ofp, ifp); + _nc_forget_prescr(); + _nc_unlock_global(prescreen); + + return rc; +} +#endif diff --git a/third_party/ncurses/lib_newwin.c b/third_party/ncurses/lib_newwin.c new file mode 100644 index 000000000..b631c2ef6 --- /dev/null +++ b/third_party/ncurses/lib_newwin.c @@ -0,0 +1,406 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_newwin.c +** +** The routines newwin(), subwin() and their dependent +** +*/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_newwin.c,v 1.76 2021/10/23 18:53:38 tom Exp $") + +#define window_is(name) ((sp)->_##name == win) + +#if USE_REENTRANT +#define remove_window(name) \ + sp->_##name = 0 +#else +#define remove_window(name) \ + sp->_##name = 0; \ + if (win == name) \ + name = 0 +#endif + +static void +remove_window_from_screen(WINDOW *win) +{ + SCREEN *sp; + +#ifdef USE_SP_WINDOWLIST + if ((sp = _nc_screen_of(win)) != 0) { + if (window_is(curscr)) { + remove_window(curscr); + } else if (window_is(stdscr)) { + remove_window(stdscr); + } else if (window_is(newscr)) { + remove_window(newscr); + } + } +#else + for (each_screen(sp)) { + if (window_is(curscr)) { + remove_window(curscr); + break; + } else if (window_is(stdscr)) { + remove_window(stdscr); + break; + } else if (window_is(newscr)) { + remove_window(newscr); + break; + } + } +#endif +} + +NCURSES_EXPORT(int) +_nc_freewin(WINDOW *win) +{ + int result = ERR; +#ifdef USE_SP_WINDOWLIST + SCREEN *sp = _nc_screen_of(win); /* pretend this is parameter */ +#endif + + T((T_CALLED("_nc_freewin(%p)"), (void *) win)); + + if (win != 0) { + + if (_nc_nonsp_try_global(curses) == 0) { + WINDOWLIST *p, *q; + + q = 0; + for (each_window(sp, p)) { + + if (&(p->win) == win) { + remove_window_from_screen(win); + if (q == 0) + WindowList(sp) = p->next; + else + q->next = p->next; + + if (!IS_SUBWIN(win)) { + int i; + + for (i = 0; i <= win->_maxy; i++) + FreeIfNeeded(win->_line[i].text); + } + free(win->_line); + free(p); + + result = OK; + T(("...deleted win=%p", (void *) win)); + break; + } + q = p; + } + _nc_nonsp_unlock_global(curses); + } + } + returnCode(result); +} + +NCURSES_EXPORT(WINDOW *) +NCURSES_SP_NAME(newwin) (NCURSES_SP_DCLx + int num_lines, int num_columns, int begy, int begx) +{ + WINDOW *win; + NCURSES_CH_T *ptr; + int i; + + T((T_CALLED("newwin(%p, %d,%d,%d,%d)"), (void *) SP_PARM, num_lines, num_columns, + begy, begx)); + + if (begy < 0 + || begx < 0 + || num_lines < 0 + || num_columns < 0 + || SP_PARM == 0) + returnWin(0); + + if (num_lines == 0) + num_lines = SP_PARM->_lines_avail - begy; + if (num_columns == 0) + num_columns = screen_columns(SP_PARM) - begx; + + win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx + num_lines, num_columns, begy, begx, 0); + if (win == 0) + returnWin(0); + + for (i = 0; i < num_lines; i++) { + win->_line[i].text = typeCalloc(NCURSES_CH_T, (unsigned) num_columns); + if (win->_line[i].text == 0) { + (void) _nc_freewin(win); + returnWin(0); + } + for (ptr = win->_line[i].text; + ptr < win->_line[i].text + num_columns; + ptr++) + SetChar(*ptr, BLANK_TEXT, BLANK_ATTR); + } + + returnWin(win); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(WINDOW *) +newwin(int num_lines, int num_columns, int begy, int begx) +{ + WINDOW *win; + _nc_sp_lock_global(curses); + win = NCURSES_SP_NAME(newwin) (CURRENT_SCREEN, + num_lines, num_columns, begy, begx); + _nc_sp_unlock_global(curses); + return (win); +} +#endif + +NCURSES_EXPORT(WINDOW *) +derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx) +{ + WINDOW *win; + int i; + int flags = _SUBWIN; +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(orig); +#endif + + T((T_CALLED("derwin(%p,%d,%d,%d,%d)"), (void *) orig, num_lines, num_columns, + begy, begx)); + + /* + * make sure window fits inside the original one + */ + if (begy < 0 || begx < 0 || orig == 0 || num_lines < 0 || num_columns < 0) + returnWin(0); + if (begy + num_lines > orig->_maxy + 1 + || begx + num_columns > orig->_maxx + 1) + returnWin(0); + + if (num_lines == 0) + num_lines = orig->_maxy + 1 - begy; + + if (num_columns == 0) + num_columns = orig->_maxx + 1 - begx; + + if (IS_PAD(orig)) + flags |= _ISPAD; + + win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx num_lines, num_columns, + orig->_begy + begy, + orig->_begx + begx, flags); + if (win == 0) + returnWin(0); + + win->_pary = begy; + win->_parx = begx; + WINDOW_ATTRS(win) = WINDOW_ATTRS(orig); + win->_nc_bkgd = orig->_nc_bkgd; + + for (i = 0; i < num_lines; i++) + win->_line[i].text = &orig->_line[begy++].text[begx]; + + win->_parent = orig; + + returnWin(win); +} + +NCURSES_EXPORT(WINDOW *) +subwin(WINDOW *w, int l, int c, int y, int x) +{ + WINDOW *result = 0; + + T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), (void *) w, l, c, y, x)); + if (w != 0) { + T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx)); + + result = derwin(w, l, c, y - w->_begy, x - w->_begx); + } + returnWin(result); +} + +static bool +dimension_limit(int value) +{ + NCURSES_SIZE_T test = (NCURSES_SIZE_T) value; + return (test == value && value > 0); +} + +NCURSES_EXPORT(WINDOW *) +NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_DCLx + int num_lines, + int num_columns, + int begy, + int begx, + int flags) +{ + int i; + WINDOWLIST *wp; + WINDOW *win; + bool is_padwin = (flags & _ISPAD); + + T((T_CALLED("_nc_makenew(%p,%d,%d,%d,%d)"), + (void *) SP_PARM, num_lines, num_columns, begy, begx)); + + if (SP_PARM == 0) + returnWin(0); + + if (!dimension_limit(num_lines) || !dimension_limit(num_columns)) + returnWin(0); + + if ((wp = typeCalloc(WINDOWLIST, 1)) == 0) + returnWin(0); + + win = &(wp->win); + + if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) { + free(wp); + returnWin(0); + } + + _nc_nonsp_lock_global(curses); + + win->_curx = 0; + win->_cury = 0; + win->_maxy = (NCURSES_SIZE_T) (num_lines - 1); + win->_maxx = (NCURSES_SIZE_T) (num_columns - 1); + win->_begy = (NCURSES_SIZE_T) begy; + win->_begx = (NCURSES_SIZE_T) begx; + win->_yoffset = SP_PARM->_topstolen; + + win->_flags = (short) flags; + WINDOW_ATTRS(win) = A_NORMAL; + SetChar(win->_nc_bkgd, BLANK_TEXT, BLANK_ATTR); + + win->_clear = (is_padwin + ? FALSE + : (num_lines == screen_lines(SP_PARM) + && num_columns == screen_columns(SP_PARM))); + win->_idlok = FALSE; + win->_idcok = TRUE; + win->_scroll = FALSE; + win->_leaveok = FALSE; + win->_use_keypad = FALSE; + win->_delay = -1; + win->_immed = FALSE; + win->_sync = 0; + win->_parx = -1; + win->_pary = -1; + win->_parent = 0; + + win->_regtop = 0; + win->_regbottom = (NCURSES_SIZE_T) (num_lines - 1); + + win->_pad._pad_y = -1; + win->_pad._pad_x = -1; + win->_pad._pad_top = -1; + win->_pad._pad_bottom = -1; + win->_pad._pad_left = -1; + win->_pad._pad_right = -1; + + for (i = 0; i < num_lines; i++) { + /* + * This used to do + * + * win->_line[i].firstchar = win->_line[i].lastchar = _NOCHANGE; + * + * which marks the whole window unchanged. That's how + * SVr1 curses did it, but SVr4 curses marks the whole new + * window changed. + * + * With the old SVr1-like code, say you have stdscr full of + * characters, then create a new window with newwin(), + * then do a printw(win, "foo ");, the trailing spaces are + * completely ignored by the following refreshes. So, you + * get "foojunkjunk" on the screen instead of "foo " as + * you actually intended. + * + * SVr4 doesn't do this. Instead the spaces are actually written. + * So that's how we want ncurses to behave. + */ + win->_line[i].firstchar = 0; + win->_line[i].lastchar = (NCURSES_SIZE_T) (num_columns - 1); + + if_USE_SCROLL_HINTS(win->_line[i].oldindex = i); + } + + if (!is_padwin && (begx + num_columns == screen_columns(SP_PARM))) { + win->_flags |= _ENDLINE; + + if (begx == 0 && num_lines == screen_lines(SP_PARM) && begy == 0) + win->_flags |= _FULLWIN; + + if (begy + num_lines == screen_lines(SP_PARM)) + win->_flags |= _SCROLLWIN; + } + + wp->next = WindowList(SP_PARM); + wp->screen = SP_PARM; + WindowList(SP_PARM) = wp; + + T((T_CREATE("window %p"), (void *) win)); + + _nc_nonsp_unlock_global(curses); + returnWin(win); +} + +/* + * wgetch() and other functions with a WINDOW* parameter may use a SCREEN* + * internally, and it is useful to allow those to be invoked without switching + * SCREEN's, e.g., for multi-threaded applications. + */ +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(WINDOW *) +_nc_curscr_of(SCREEN *sp) +{ + return (sp == 0) ? NULL : CurScreen(sp); +} + +NCURSES_EXPORT(WINDOW *) +_nc_newscr_of(SCREEN *sp) +{ + return (sp == 0) ? NULL : NewScreen(sp); +} + +NCURSES_EXPORT(WINDOW *) +_nc_stdscr_of(SCREEN *sp) +{ + return (sp == 0) ? NULL : StdScreen(sp); +} +#endif diff --git a/third_party/ncurses/lib_nl.c b/third_party/ncurses/lib_nl.c new file mode 100644 index 000000000..6b0e4191d --- /dev/null +++ b/third_party/ncurses/lib_nl.c @@ -0,0 +1,96 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * nl.c + * + * Routines: + * nl() + * nonl() + * + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_nl.c,v 1.13 2020/02/02 23:34:34 tom Exp $") + +#ifdef __EMX__ +#include +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(nl) (NCURSES_SP_DCL0) +{ + T((T_CALLED("nl(%p)"), (void *) SP_PARM)); + if (0 == SP_PARM) + returnCode(ERR); + SP_PARM->_nl = TRUE; +#ifdef __EMX__ + _nc_flush(); + _fsetmode(NC_OUTPUT(SP_PARM), "t"); +#endif + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +nl(void) +{ + return NCURSES_SP_NAME(nl) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(nonl) (NCURSES_SP_DCL0) +{ + T((T_CALLED("nonl(%p)"), (void *) SP_PARM)); + if (0 == SP_PARM) + returnCode(ERR); + SP_PARM->_nl = FALSE; +#ifdef __EMX__ + _nc_flush(); + _fsetmode(NC_OUTPUT(SP_PARM), "b"); +#endif + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +nonl(void) +{ + return NCURSES_SP_NAME(nonl) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_options.c b/third_party/ncurses/lib_options.c new file mode 100644 index 000000000..1872fe992 --- /dev/null +++ b/third_party/ncurses/lib_options.c @@ -0,0 +1,378 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_options.c +** +** The routines to handle option setting. +** +*/ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_options.c,v 1.82 2021/02/14 00:17:35 tom Exp $") + +NCURSES_EXPORT(int) +idlok(WINDOW *win, bool flag) +{ + int res = ERR; + T((T_CALLED("idlok(%p,%d)"), (void *) win, flag)); + + if (win) { + SCREEN *sp = _nc_screen_of(win); + if (sp != 0 +#ifdef USE_TERM_DRIVER + && IsTermInfo(sp) +#endif + ) { + sp->_nc_sp_idlok = + win->_idlok = (flag && (NCURSES_SP_NAME(has_il) (NCURSES_SP_ARG) + || change_scroll_region)); + res = OK; + } + } + returnCode(res); +} + +NCURSES_EXPORT(void) +idcok(WINDOW *win, bool flag) +{ + T((T_CALLED("idcok(%p,%d)"), (void *) win, flag)); + + if (win) { + SCREEN *sp = _nc_screen_of(win); + sp->_nc_sp_idcok = win->_idcok = (flag && NCURSES_SP_NAME(has_ic) (NCURSES_SP_ARG)); + } + returnVoid; +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(halfdelay) (NCURSES_SP_DCLx int t) +{ + T((T_CALLED("halfdelay(%p,%d)"), (void *) SP_PARM, t)); + + if (t < 1 || t > 255 || !SP_PARM || !IsValidTIScreen(SP_PARM)) + returnCode(ERR); + + NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG); + SP_PARM->_cbreak = t + 1; + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +halfdelay(int t) +{ + return NCURSES_SP_NAME(halfdelay) (CURRENT_SCREEN, t); +} +#endif + +NCURSES_EXPORT(int) +nodelay(WINDOW *win, bool flag) +{ + T((T_CALLED("nodelay(%p,%d)"), (void *) win, flag)); + + if (win) { + if (flag == TRUE) + win->_delay = 0; + else + win->_delay = -1; + returnCode(OK); + } else + returnCode(ERR); +} + +NCURSES_EXPORT(int) +notimeout(WINDOW *win, bool f) +{ + T((T_CALLED("notimeout(%p,%d)"), (void *) win, f)); + + if (win) { + win->_notimeout = f; + returnCode(OK); + } else + returnCode(ERR); +} + +NCURSES_EXPORT(void) +wtimeout(WINDOW *win, int delay) +{ + T((T_CALLED("wtimeout(%p,%d)"), (void *) win, delay)); + + if (win) { + win->_delay = delay; + } + returnVoid; +} + +NCURSES_EXPORT(int) +keypad(WINDOW *win, bool flag) +{ + T((T_CALLED("keypad(%p,%d)"), (void *) win, flag)); + + if (win) { + win->_use_keypad = flag; + returnCode(_nc_keypad(_nc_screen_of(win), flag)); + } else + returnCode(ERR); +} + +NCURSES_EXPORT(int) +meta(WINDOW *win GCC_UNUSED, bool flag) +{ + int result = ERR; + SCREEN *sp = (win == 0) ? CURRENT_SCREEN : _nc_screen_of(win); + + /* Ok, we stay relaxed and don't signal an error if win is NULL */ + T((T_CALLED("meta(%p,%d)"), (void *) win, flag)); + + /* Ok, we stay relaxed and don't signal an error if win is NULL */ + + if (sp != 0) { + sp->_use_meta = flag; +#ifdef USE_TERM_DRIVER + if (IsTermInfo(sp)) { + if (flag) { + NCURSES_PUTP2("meta_on", meta_on); + } else { + NCURSES_PUTP2("meta_off", meta_off); + } + } +#else + if (flag) { + NCURSES_PUTP2("meta_on", meta_on); + } else { + NCURSES_PUTP2("meta_off", meta_off); + } +#endif + result = OK; + } + returnCode(result); +} + +/* curs_set() moved here to narrow the kernel interface */ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(curs_set) (NCURSES_SP_DCLx int vis) +{ + int code = ERR; + T((T_CALLED("curs_set(%p,%d)"), (void *) SP_PARM, vis)); + + if (SP_PARM != 0 && vis >= 0 && vis <= 2) { + int cursor = SP_PARM->_cursor; + if (vis == cursor) { + code = cursor; + } else { +#ifdef USE_TERM_DRIVER + code = CallDriver_1(SP_PARM, td_cursorSet, vis); +#else + if (IsValidTIScreen(SP_PARM)) { + switch (vis) { + case 2: + code = NCURSES_PUTP2_FLUSH("cursor_visible", + cursor_visible); + break; + case 1: + code = NCURSES_PUTP2_FLUSH("cursor_normal", + cursor_normal); + break; + case 0: + code = NCURSES_PUTP2_FLUSH("cursor_invisible", + cursor_invisible); + break; + } + } else { + code = ERR; + } +#endif + if (code != ERR) + code = (cursor == -1 ? 1 : cursor); + SP_PARM->_cursor = vis; + } + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +curs_set(int vis) +{ + return (NCURSES_SP_NAME(curs_set) (CURRENT_SCREEN, vis)); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(typeahead) (NCURSES_SP_DCLx int fd) +{ + T((T_CALLED("typeahead(%p, %d)"), (void *) SP_PARM, fd)); + if (SP_PARM && IsValidTIScreen(SP_PARM)) { + SP_PARM->_checkfd = fd; + returnCode(OK); + } else { + returnCode(ERR); + } +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +typeahead(int fd) +{ + return NCURSES_SP_NAME(typeahead) (CURRENT_SCREEN, fd); +} +#endif + +/* +** has_key() +** +** Return TRUE if the current terminal has the given key +** +*/ + +#if NCURSES_EXT_FUNCS +static int +has_key_internal(int keycode, TRIES * tp) +{ + if (tp == 0) + return (FALSE); + else if (tp->value == keycode) + return (TRUE); + else + return (has_key_internal(keycode, tp->child) + || has_key_internal(keycode, tp->sibling)); +} + +#ifdef USE_TERM_DRIVER +NCURSES_EXPORT(int) +TINFO_HAS_KEY(SCREEN *sp, int keycode) +{ + return IsValidTIScreen(sp) ? + has_key_internal(keycode, sp->_keytry) : 0; +} +#else +NCURSES_EXPORT(int) +NCURSES_SP_NAME(has_key) (NCURSES_SP_DCLx int keycode) +{ + T((T_CALLED("has_key(%p,%d)"), (void *) SP_PARM, keycode)); + returnCode(SP != 0 ? has_key_internal(keycode, SP_PARM->_keytry) : FALSE); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +has_key(int keycode) +{ + return NCURSES_SP_NAME(has_key) (CURRENT_SCREEN, keycode); +} +#endif +#endif +#endif /* NCURSES_EXT_FUNCS */ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_DCLx + const char *name, const char *value) +{ + int rc = NCURSES_PUTP2(name, value); + if (rc != ERR) { + _nc_flush(); + } + return rc; +} + +#if 0 && NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_putp_flush(const char *name, const char *value) +{ + return NCURSES_SP_NAME(_nc_putp_flush) (CURRENT_SCREEN, name, value); +} +#endif + +/* Turn the keypad on/off + * + * Note: we flush the output because changing this mode causes some terminals + * to emit different escape sequences for cursor and keypad keys. If we don't + * flush, then the next wgetch may get the escape sequence that corresponds to + * the terminal state _before_ switching modes. + */ +NCURSES_EXPORT(int) +_nc_keypad(SCREEN *sp, int flag) +{ + int rc = ERR; + + if (sp != 0) { +#ifdef USE_PTHREADS + /* + * We might have this situation in a multithreaded application that + * has wgetch() reading in more than one thread. putp() and below + * may use SP explicitly. + */ + if (_nc_use_pthreads && sp != CURRENT_SCREEN) { + SCREEN *save_sp; + + /* cannot use use_screen(), since that is not in tinfo library */ + _nc_lock_global(curses); + save_sp = CURRENT_SCREEN; + _nc_set_screen(sp); + rc = _nc_keypad(sp, flag); + _nc_set_screen(save_sp); + _nc_unlock_global(curses); + } else +#endif + { +#ifdef USE_TERM_DRIVER + rc = CallDriver_1(sp, td_kpad, flag); + if (rc == OK) + sp->_keypad_on = flag; +#else + if (flag) { + (void) NCURSES_PUTP2_FLUSH("keypad_xmit", keypad_xmit); + } else if (keypad_local) { + (void) NCURSES_PUTP2_FLUSH("keypad_local", keypad_local); + } + + if (flag && !sp->_tried) { + _nc_init_keytry(sp); + sp->_tried = TRUE; + } + sp->_keypad_on = flag; + rc = OK; +#endif + } + } + return (rc); +} diff --git a/third_party/ncurses/lib_overlay.c b/third_party/ncurses/lib_overlay.c new file mode 100644 index 000000000..70d3623f5 --- /dev/null +++ b/third_party/ncurses/lib_overlay.c @@ -0,0 +1,223 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2013,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_overlay.c +** +** The routines overlay(), copywin(), and overwrite(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_overlay.c,v 1.33 2020/02/02 23:34:34 tom Exp $") + +static int +overlap(const WINDOW *const src, WINDOW *const dst, int const flag) +{ + int rc = ERR; + + T((T_CALLED("overlap(%p,%p,%d)"), (const void *) src, (void *) dst, flag)); + + if (src != 0 && dst != 0) { + int sx1, sy1, sx2, sy2; + int dx1, dy1, dx2, dy2; + + _nc_lock_global(curses); + + T(("src : begy %ld, begx %ld, maxy %ld, maxx %ld", + (long) src->_begy, + (long) src->_begx, + (long) src->_maxy, + (long) src->_maxx)); + T(("dst : begy %ld, begx %ld, maxy %ld, maxx %ld", + (long) dst->_begy, + (long) dst->_begx, + (long) dst->_maxy, + (long) dst->_maxx)); + + sx1 = src->_begx; + sy1 = src->_begy; + sx2 = sx1 + src->_maxx; + sy2 = sy1 + src->_maxy; + + dx1 = dst->_begx; + dy1 = dst->_begy; + dx2 = dx1 + dst->_maxx; + dy2 = dy1 + dst->_maxy; + + if (dx2 >= sx1 && dx1 <= sx2 && dy2 >= sy1 && dy1 <= sy2) { + int sminrow = max(sy1, dy1) - sy1; + int smincol = max(sx1, dx1) - sx1; + int dminrow = max(sy1, dy1) - dy1; + int dmincol = max(sx1, dx1) - dx1; + int dmaxrow = min(sy2, dy2) - dy1; + int dmaxcol = min(sx2, dx2) - dx1; + + rc = copywin(src, dst, + sminrow, smincol, + dminrow, dmincol, + dmaxrow, dmaxcol, + flag); + } + _nc_unlock_global(curses); + } + returnCode(rc); +} + +/* +** +** overlay(win1, win2) +** +** +** overlay() writes the overlapping area of win1 behind win2 +** on win2 non-destructively. +** +**/ + +NCURSES_EXPORT(int) +overlay(const WINDOW *win1, WINDOW *win2) +{ + T((T_CALLED("overlay(%p,%p)"), (const void *) win1, (void *) win2)); + returnCode(overlap(win1, win2, TRUE)); +} + +/* +** +** overwrite(win1, win2) +** +** +** overwrite() writes the overlapping area of win1 behind win2 +** on win2 destructively. +** +**/ + +NCURSES_EXPORT(int) +overwrite(const WINDOW *win1, WINDOW *win2) +{ + T((T_CALLED("overwrite(%p,%p)"), (const void *) win1, (void *) win2)); + returnCode(overlap(win1, win2, FALSE)); +} + +NCURSES_EXPORT(int) +copywin(const WINDOW *src, WINDOW *dst, + int sminrow, int smincol, + int dminrow, int dmincol, + int dmaxrow, int dmaxcol, + int over) +{ + int rc = ERR; + + T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"), + (const void *) src, + (void *) dst, + sminrow, smincol, + dminrow, dmincol, + dmaxrow, dmaxcol, over)); + + if (src != 0 + && dst != 0 + && dmaxrow >= dminrow + && dmaxcol >= dmincol) { + attr_t bk; + attr_t mask; + + _nc_lock_global(curses); + + bk = AttrOf(dst->_nc_bkgd); + mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0); + + /* make sure rectangle exists in source */ + if ((sminrow + dmaxrow - dminrow) <= (src->_maxy + 1) && + (smincol + dmaxcol - dmincol) <= (src->_maxx + 1)) { + + T(("rectangle exists in source")); + + /* make sure rectangle fits in destination */ + if (dmaxrow <= dst->_maxy && dmaxcol <= dst->_maxx) { + int sx, sy, dx, dy; + bool copied = FALSE; + + T(("rectangle fits in destination")); + + for (dy = dminrow, sy = sminrow; + dy <= dmaxrow; + sy++, dy++) { + bool touched; + + if (dy < 0 || sy < 0) + continue; + + touched = FALSE; + for (dx = dmincol, sx = smincol; + dx <= dmaxcol; + sx++, dx++) { + + if (dx < 0 || sx < 0) + continue; + copied = TRUE; + + if (over) { + if ((CharOf(src->_line[sy].text[sx]) != L(' ')) && + (!CharEq(dst->_line[dy].text[dx], + src->_line[sy].text[sx]))) { + dst->_line[dy].text[dx] = + src->_line[sy].text[sx]; + SetAttr(dst->_line[dy].text[dx], + ((AttrOf(src->_line[sy].text[sx]) & + mask) | bk)); + touched = TRUE; + } + } else { + if (!CharEq(dst->_line[dy].text[dx], + src->_line[sy].text[sx])) { + dst->_line[dy].text[dx] = + src->_line[sy].text[sx]; + touched = TRUE; + } + } + } + if (touched) { + touchline(dst, dminrow, (dmaxrow - dminrow + 1)); + } + } + T(("finished copywin")); + if (copied) + rc = OK; + } + } + _nc_unlock_global(curses); + } + returnCode(rc); +} diff --git a/third_party/ncurses/lib_pad.c b/third_party/ncurses/lib_pad.c new file mode 100644 index 000000000..17db22262 --- /dev/null +++ b/third_party/ncurses/lib_pad.c @@ -0,0 +1,349 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2010,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * lib_pad.c + * newpad -- create a new pad + * pnoutrefresh -- refresh a pad, no update + * pechochar -- add a char to a pad and refresh + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_pad.c,v 1.50 2021/10/23 22:57:27 tom Exp $") + +NCURSES_EXPORT(WINDOW *) +NCURSES_SP_NAME(newpad) (NCURSES_SP_DCLx int l, int c) +{ + WINDOW *win; + NCURSES_CH_T *ptr; + int i; + + T((T_CALLED("newpad(%p,%d, %d)"), (void *) SP_PARM, l, c)); + + if (l <= 0 || c <= 0) + returnWin(0); + + win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx l, c, 0, 0, _ISPAD); + if (win == NULL) + returnWin(0); + + for (i = 0; i < l; i++) { + if_USE_SCROLL_HINTS(win->_line[i].oldindex = _NEWINDEX); + if ((win->_line[i].text = typeCalloc(NCURSES_CH_T, ((size_t) c))) == 0) { + (void) _nc_freewin(win); + returnWin(0); + } + for (ptr = win->_line[i].text; ptr < win->_line[i].text + c; ptr++) + SetChar(*ptr, BLANK_TEXT, BLANK_ATTR); + } + + returnWin(win); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(WINDOW *) +newpad(int l, int c) +{ + return NCURSES_SP_NAME(newpad) (CURRENT_SCREEN, l, c); +} +#endif + +NCURSES_EXPORT(WINDOW *) +subpad(WINDOW *orig, int l, int c, int begy, int begx) +{ + WINDOW *win = (WINDOW *) 0; + + T((T_CALLED("subpad(%d, %d)"), l, c)); + + if (orig) { + if (!IS_PAD(orig) + || ((win = derwin(orig, l, c, begy, begx)) == NULL)) + returnWin(0); + } + returnWin(win); +} + +NCURSES_EXPORT(int) +prefresh(WINDOW *win, + int pminrow, + int pmincol, + int sminrow, + int smincol, + int smaxrow, + int smaxcol) +{ +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(win); +#endif + + T((T_CALLED("prefresh()"))); + if (pnoutrefresh(win, pminrow, pmincol, sminrow, smincol, smaxrow, + smaxcol) != ERR + && NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG) != ERR) { + returnCode(OK); + } + returnCode(ERR); +} + +NCURSES_EXPORT(int) +pnoutrefresh(WINDOW *win, + int pminrow, + int pmincol, + int sminrow, + int smincol, + int smaxrow, + int smaxcol) +{ + int i, j; + int m, n; + int pmaxrow; + int pmaxcol; + SCREEN *sp; + +#if USE_SCROLL_HINTS + const int my_len = 2; /* parameterize the threshold for hardscroll */ + NCURSES_SIZE_T displaced; + bool wide; +#endif + + T((T_CALLED("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d)"), + (void *) win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol)); + + if (win == 0) + returnCode(ERR); + + if (!IS_PAD(win)) + returnCode(ERR); + + sp = _nc_screen_of(win); + + /* negative values are interpreted as zero */ + if (pminrow < 0) + pminrow = 0; + if (pmincol < 0) + pmincol = 0; + if (sminrow < 0) + sminrow = 0; + if (smincol < 0) + smincol = 0; + + pmaxrow = pminrow + smaxrow - sminrow; + pmaxcol = pmincol + smaxcol - smincol; + + T((" pminrow + smaxrow - sminrow %ld, win->_maxy %ld", + (long) pmaxrow, (long) win->_maxy)); + T((" pmincol + smaxcol - smincol %ld, win->_maxx %ld", + (long) pmaxcol, (long) win->_maxx)); + + /* + * Trim the caller's screen size back to the actual limits. + */ + if (pmaxrow > win->_maxy) { + smaxrow -= (pmaxrow - win->_maxy); + pmaxrow = pminrow + smaxrow - sminrow; + } + if (pmaxcol > win->_maxx) { + smaxcol -= (pmaxcol - win->_maxx); + pmaxcol = pmincol + smaxcol - smincol; + } + + if (smaxrow >= screen_lines(sp) + || smaxcol >= screen_columns(sp) + || sminrow > smaxrow + || smincol > smaxcol) + returnCode(ERR); + + T(("pad being refreshed")); + +#ifdef TRACE + if (USE_TRACEF(TRACE_UPDATE)) { + _tracedump("...pad", win); + _nc_unlock_global(tracef); + } +#endif /* TRACE */ +#if USE_SCROLL_HINTS + if (win->_pad._pad_y >= 0) { + displaced = pminrow - win->_pad._pad_y + - (sminrow - win->_pad._pad_top); + T(("pad being shifted by %d line(s)", displaced)); + } else + displaced = 0; +#endif + + /* + * For pure efficiency, we'd want to transfer scrolling information + * from the pad to newscr whenever the window is wide enough that + * its update will dominate the cost of the update for the horizontal + * band of newscr that it occupies. Unfortunately, this threshold + * tends to be complex to estimate, and in any case scrolling the + * whole band and rewriting the parts outside win's image would look + * really ugly. So. What we do is consider the pad "wide" if it + * either (a) occupies the whole width of newscr, or (b) occupies + * all but at most one column on either vertical edge of the screen + * (this caters to fussy people who put boxes around full-screen + * windows). Note that changing this formula will not break any code, + * merely change the costs of various update cases. + */ +#if USE_SCROLL_HINTS + wide = (smincol < my_len && smaxcol > (NewScreen(sp)->_maxx - my_len)); +#endif + + for (i = pminrow, m = sminrow + win->_yoffset; + i <= pmaxrow && m <= NewScreen(sp)->_maxy; + i++, m++) { + register struct ldat *nline = &NewScreen(sp)->_line[m]; + register struct ldat *oline = &win->_line[i]; + for (j = pmincol, n = smincol; j <= pmaxcol; j++, n++) { + NCURSES_CH_T ch = oline->text[j]; +#if USE_WIDEC_SUPPORT + /* + * Special case for leftmost character of the displayed area. + * Only half of a double-width character may be visible. + */ + if (j == pmincol + && j > 0 + && isWidecExt(ch)) { + SetChar(ch, L(' '), AttrOf(oline->text[j - 1])); + } +#endif + if (!CharEq(ch, nline->text[n])) { + nline->text[n] = ch; + CHANGED_CELL(nline, n); + } + } + +#if USE_SCROLL_HINTS + if (wide) { + int nind = m + displaced; + if (oline->oldindex < 0 + || nind < sminrow + || nind > smaxrow) { + nind = _NEWINDEX; + } else if (displaced) { + register struct ldat *pline = &CurScreen(sp)->_line[nind]; + for (j = 0; j <= my_len; j++) { + int k = NewScreen(sp)->_maxx - j; + if (pline->text[j] != nline->text[j] + || pline->text[k] != nline->text[k]) { + nind = _NEWINDEX; + break; + } + } + } + + nline->oldindex = nind; + } +#endif /* USE_SCROLL_HINTS */ + oline->firstchar = oline->lastchar = _NOCHANGE; + if_USE_SCROLL_HINTS(oline->oldindex = i); + } + + /* + * Clean up debris from scrolling or resizing the pad, so we do not + * accidentally pick up the index value during the next call to this + * procedure. The only rows that should have an index value are those + * that are displayed during this cycle. + */ +#if USE_SCROLL_HINTS + for (i = pminrow - 1; (i >= 0) && (win->_line[i].oldindex >= 0); i--) + win->_line[i].oldindex = _NEWINDEX; + for (i = pmaxrow + 1; (i <= win->_maxy) + && (win->_line[i].oldindex >= 0); i++) + win->_line[i].oldindex = _NEWINDEX; +#endif + + win->_begx = (NCURSES_SIZE_T) smincol; + win->_begy = (NCURSES_SIZE_T) sminrow; + + if (win->_clear) { + win->_clear = FALSE; + NewScreen(sp)->_clear = TRUE; + } + + /* + * Use the pad's current position, if it will be visible. + * If not, don't do anything; it is not an error. + */ + if (win->_leaveok == FALSE + && win->_cury >= pminrow + && win->_curx >= pmincol + && win->_cury <= pmaxrow + && win->_curx <= pmaxcol) { + NewScreen(sp)->_cury = (NCURSES_SIZE_T) (win->_cury - pminrow + + win->_begy + win->_yoffset); + NewScreen(sp)->_curx = (NCURSES_SIZE_T) (win->_curx - pmincol + + win->_begx); + } + NewScreen(sp)->_leaveok = win->_leaveok; + win->_flags &= ~_HASMOVED; + + /* + * Update our cache of the line-numbers that we displayed from the pad. + * We will use this on subsequent calls to this function to derive + * values to stuff into 'oldindex[]' -- for scrolling optimization. + */ + win->_pad._pad_y = (NCURSES_SIZE_T) pminrow; + win->_pad._pad_x = (NCURSES_SIZE_T) pmincol; + win->_pad._pad_top = (NCURSES_SIZE_T) sminrow; + win->_pad._pad_left = (NCURSES_SIZE_T) smincol; + win->_pad._pad_bottom = (NCURSES_SIZE_T) smaxrow; + win->_pad._pad_right = (NCURSES_SIZE_T) smaxcol; + + returnCode(OK); +} + +NCURSES_EXPORT(int) +pechochar(WINDOW *pad, const chtype ch) +{ + T((T_CALLED("pechochar(%p, %s)"), (void *) pad, _tracechtype(ch))); + + if (pad == 0) + returnCode(ERR); + + if (!IS_PAD(pad)) + returnCode(wechochar(pad, ch)); + + waddch(pad, ch); + prefresh(pad, pad->_pad._pad_y, + pad->_pad._pad_x, + pad->_pad._pad_top, + pad->_pad._pad_left, + pad->_pad._pad_bottom, + pad->_pad._pad_right); + + returnCode(OK); +} diff --git a/third_party/ncurses/lib_pecho_wchar.c b/third_party/ncurses/lib_pecho_wchar.c new file mode 100644 index 000000000..1d9a58464 --- /dev/null +++ b/third_party/ncurses/lib_pecho_wchar.c @@ -0,0 +1,58 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 2004,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_pecho_wchar.c,v 1.4 2021/10/23 17:07:56 tom Exp $") + +NCURSES_EXPORT(int) +pecho_wchar(WINDOW *pad, const cchar_t *wch) +{ + T((T_CALLED("pecho_wchar(%p, %s)"), (void *) pad, _tracech_t(wch))); + + if (pad == 0) + returnCode(ERR); + + if (!IS_PAD(pad)) + returnCode(wecho_wchar(pad, wch)); + + wadd_wch(pad, wch); + prefresh(pad, pad->_pad._pad_y, + pad->_pad._pad_x, + pad->_pad._pad_top, + pad->_pad._pad_left, + pad->_pad._pad_bottom, + pad->_pad._pad_right); + + returnCode(OK); +} diff --git a/third_party/ncurses/lib_print.c b/third_party/ncurses/lib_print.c new file mode 100644 index 000000000..7dff3382c --- /dev/null +++ b/third_party/ncurses/lib_print.c @@ -0,0 +1,113 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * + ****************************************************************************/ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_print.c,v 1.30 2021/04/18 14:58:57 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(mcprint) (NCURSES_SP_DCLx char *data, int len) +/* ship binary character data to the printer via mc4/mc5/mc5p */ +{ + int result; + char *mybuf = NULL, *switchon; + size_t onsize, offsize; + size_t need; + + errno = 0; + if (!HasTInfoTerminal(SP_PARM) + || len <= 0 + || (!prtr_non && (!prtr_on || !prtr_off))) { + errno = ENODEV; + return (ERR); + } + + if (prtr_non) { + switchon = TIPARM_1(prtr_non, len); + onsize = strlen(switchon); + offsize = 0; + } else { + switchon = prtr_on; + onsize = strlen(prtr_on); + offsize = strlen(prtr_off); + } + + need = onsize + (size_t) len + offsize; + + if (switchon == 0 + || (mybuf = typeMalloc(char, need + 1)) == 0) { + free(mybuf); + errno = ENOMEM; + return (ERR); + } + + _nc_STRCPY(mybuf, switchon, need); + memcpy(mybuf + onsize, data, (size_t) len); + if (offsize) + _nc_STRCPY(mybuf + onsize + len, prtr_off, need); + + /* + * We're relying on the atomicity of UNIX writes here. The + * danger is that output from a refresh() might get interspersed + * with the printer data after the write call returns but before the + * data has actually been shipped to the terminal. If the write(2) + * operation is truly atomic we're protected from this. + */ + result = (int) write(TerminalOf(SP_PARM)->Filedes, mybuf, need); + + /* + * By giving up our scheduler slot here we increase the odds that the + * kernel will ship the contiguous clist items from the last write + * immediately. + */ +#ifndef _NC_WINDOWS + (void) sleep(0); +#endif + free(mybuf); + return (result); +} + +#if NCURSES_SP_FUNCS && !defined(USE_TERM_DRIVER) +NCURSES_EXPORT(int) +mcprint(char *data, int len) +{ + return NCURSES_SP_NAME(mcprint) (CURRENT_SCREEN, data, len); +} +#endif diff --git a/third_party/ncurses/lib_printw.c b/third_party/ncurses/lib_printw.c new file mode 100644 index 000000000..6857ef77d --- /dev/null +++ b/third_party/ncurses/lib_printw.c @@ -0,0 +1,167 @@ +/**************************************************************************** + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 1998-2012,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997-on * + ****************************************************************************/ + +/* +** lib_printw.c +** +** The routines printw(), wprintw() and friends. +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_printw.c,v 1.28 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +printw(const char *fmt, ...) +{ + va_list argp; + int code; + +#ifdef TRACE + va_list argq; + va_start(argq, fmt); + T((T_CALLED("printw(%s%s)"), + _nc_visbuf(fmt), _nc_varargs(fmt, argq))); + va_end(argq); +#endif + + va_start(argp, fmt); + code = vw_printw(stdscr, fmt, argp); + va_end(argp); + + returnCode(code); +} + +NCURSES_EXPORT(int) +wprintw(WINDOW *win, const char *fmt, ...) +{ + va_list argp; + int code; + +#ifdef TRACE + va_list argq; + va_start(argq, fmt); + T((T_CALLED("wprintw(%p,%s%s)"), + (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argq))); + va_end(argq); +#endif + + va_start(argp, fmt); + code = vw_printw(win, fmt, argp); + va_end(argp); + + returnCode(code); +} + +NCURSES_EXPORT(int) +mvprintw(int y, int x, const char *fmt, ...) +{ + int code; + +#ifdef TRACE + va_list argq; + va_start(argq, fmt); + T((T_CALLED("mvprintw(%d,%d,%s%s)"), + y, x, _nc_visbuf(fmt), _nc_varargs(fmt, argq))); + va_end(argq); +#endif + + if ((code = move(y, x)) != ERR) { + va_list argp; + + va_start(argp, fmt); + code = vw_printw(stdscr, fmt, argp); + va_end(argp); + } + returnCode(code); +} + +NCURSES_EXPORT(int) +mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...) +{ + int code; + +#ifdef TRACE + va_list argq; + va_start(argq, fmt); + T((T_CALLED("mvwprintw(%d,%d,%p,%s%s)"), + y, x, (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argq))); + va_end(argq); +#endif + + if ((code = wmove(win, y, x)) != ERR) { + va_list argp; + + va_start(argp, fmt); + code = vw_printw(win, fmt, argp); + va_end(argp); + } + returnCode(code); +} + +NCURSES_EXPORT(int) +vwprintw(WINDOW *win, const char *fmt, va_list argp) +{ + char *buf; + int code = ERR; +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(win); +#endif + + T((T_CALLED("vwprintw(%p,%s,va_list)"), (void *) win, _nc_visbuf(fmt))); + + buf = NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_ARGx fmt, argp); + if (buf != 0) { + code = waddstr(win, buf); + } + returnCode(code); +} + +NCURSES_EXPORT(int) +vw_printw(WINDOW *win, const char *fmt, va_list argp) +{ + char *buf; + int code = ERR; +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(win); +#endif + + T((T_CALLED("vw_printw(%p,%s,va_list)"), (void *) win, _nc_visbuf(fmt))); + + buf = NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_ARGx fmt, argp); + if (buf != 0) { + code = waddstr(win, buf); + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_raw.c b/third_party/ncurses/lib_raw.c new file mode 100644 index 000000000..2fc73d8f8 --- /dev/null +++ b/third_party/ncurses/lib_raw.c @@ -0,0 +1,397 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1998-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * raw.c + * + * Routines: + * raw() + * cbreak() + * noraw() + * nocbreak() + * qiflush() + * noqiflush() + * intrflush() + * + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_raw.c,v 1.26 2020/11/21 22:07:48 tom Exp $") + +#if HAVE_SYS_TERMIO_H +#include /* needed for ISC */ +#endif + +#ifdef __EMX__ +#include +#define _nc_setmode(mode) setmode(SP_PARM->_ifd, mode) +#else +#define _nc_setmode(mode) /* nothing */ +#endif + +#if USE_KLIBC_KBD +#define INCL_KBD +#include +#endif + +#define COOKED_INPUT (IXON|BRKINT|PARMRK) + +#ifdef TRACE +#define BEFORE(N) if (USE_TRACEF(TRACE_BITS)) _nc_locked_tracef("%s before bits: %s", N, _nc_tracebits()) +#define AFTER(N) if (USE_TRACEF(TRACE_BITS)) _nc_locked_tracef("%s after bits: %s", N, _nc_tracebits()) +#else +#define BEFORE(s) +#define AFTER(s) +#endif /* TRACE */ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(raw) (NCURSES_SP_DCL0) +{ + int result = ERR; + TERMINAL *termp; + + T((T_CALLED("raw(%p)"), (void *) SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { + TTY buf; + + BEFORE("raw"); + _nc_setmode(O_BINARY); + + buf = termp->Nttyb; +#ifdef TERMIOS + buf.c_lflag &= (unsigned) ~(ICANON | ISIG | IEXTEN); + buf.c_iflag &= (unsigned) ~(COOKED_INPUT); + buf.c_cc[VMIN] = 1; + buf.c_cc[VTIME] = 0; +#elif defined(EXP_WIN32_DRIVER) + buf.dwFlagIn &= (unsigned long) ~CONMODE_NORAW; +#else + buf.sg_flags |= RAW; +#endif + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { +#if USE_KLIBC_KBD + KBDINFO kbdinfo; + + kbdinfo.cb = sizeof(kbdinfo); + KbdGetStatus(&kbdinfo, 0); + + kbdinfo.cb = sizeof(kbdinfo); + kbdinfo.fsMask &= ~KEYBOARD_ASCII_MODE; + kbdinfo.fsMask |= KEYBOARD_BINARY_MODE; + KbdSetStatus(&kbdinfo, 0); +#endif + if (SP_PARM) { + SP_PARM->_raw = TRUE; + SP_PARM->_cbreak = 1; + } + termp->Nttyb = buf; + } + AFTER("raw"); + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +raw(void) +{ + return NCURSES_SP_NAME(raw) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(cbreak) (NCURSES_SP_DCL0) +{ + int result = ERR; + TERMINAL *termp; + + T((T_CALLED("cbreak(%p)"), (void *) SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { + TTY buf; + + BEFORE("cbreak"); + _nc_setmode(O_BINARY); + + buf = termp->Nttyb; +#ifdef TERMIOS + buf.c_lflag &= (unsigned) ~ICANON; + buf.c_iflag &= (unsigned) ~ICRNL; + buf.c_lflag |= ISIG; + buf.c_cc[VMIN] = 1; + buf.c_cc[VTIME] = 0; +#elif defined(EXP_WIN32_DRIVER) + buf.dwFlagIn |= CONMODE_NORAW; + buf.dwFlagIn &= (unsigned long) ~CONMODE_NOCBREAK; +#else + buf.sg_flags |= CBREAK; +#endif + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { + if (SP_PARM) { + SP_PARM->_cbreak = 1; + } + termp->Nttyb = buf; + } + AFTER("cbreak"); + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +cbreak(void) +{ + return NCURSES_SP_NAME(cbreak) (CURRENT_SCREEN); +} +#endif + +/* + * Note: + * this implementation may be wrong. See the comment under intrflush(). + */ +NCURSES_EXPORT(void) +NCURSES_SP_NAME(qiflush) (NCURSES_SP_DCL0) +{ + TERMINAL *termp; + + T((T_CALLED("qiflush(%p)"), (void *) SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { + TTY buf; + int result; + + BEFORE("qiflush"); + buf = termp->Nttyb; +#ifdef TERMIOS + buf.c_lflag &= (unsigned) ~(NOFLSH); + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); +#else + result = ERR; + /* FIXME */ +#endif + if (result == OK) + termp->Nttyb = buf; + AFTER("qiflush"); + } + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +qiflush(void) +{ + NCURSES_SP_NAME(qiflush) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(noraw) (NCURSES_SP_DCL0) +{ + int result = ERR; + TERMINAL *termp; + + T((T_CALLED("noraw(%p)"), (void *) SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { + TTY buf; + + BEFORE("noraw"); + _nc_setmode(O_TEXT); + + buf = termp->Nttyb; +#ifdef TERMIOS + buf.c_lflag |= ISIG | ICANON | + (termp->Ottyb.c_lflag & IEXTEN); + buf.c_iflag |= COOKED_INPUT; +#elif defined(EXP_WIN32_DRIVER) + buf.dwFlagIn |= CONMODE_NORAW; +#else + buf.sg_flags &= ~(RAW | CBREAK); +#endif + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { +#if USE_KLIBC_KBD + KBDINFO kbdinfo; + + kbdinfo.cb = sizeof(kbdinfo); + KbdGetStatus(&kbdinfo, 0); + + kbdinfo.cb = sizeof(kbdinfo); + kbdinfo.fsMask &= ~KEYBOARD_BINARY_MODE; + kbdinfo.fsMask |= KEYBOARD_ASCII_MODE; + KbdSetStatus(&kbdinfo, 0); +#endif + if (SP_PARM) { + SP_PARM->_raw = FALSE; + SP_PARM->_cbreak = 0; + } + termp->Nttyb = buf; + } + AFTER("noraw"); + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +noraw(void) +{ + return NCURSES_SP_NAME(noraw) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(nocbreak) (NCURSES_SP_DCL0) +{ + int result = ERR; + TERMINAL *termp; + + T((T_CALLED("nocbreak(%p)"), (void *) SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { + TTY buf; + + BEFORE("nocbreak"); + _nc_setmode(O_TEXT); + + buf = termp->Nttyb; +#ifdef TERMIOS + buf.c_lflag |= ICANON; + buf.c_iflag |= ICRNL; +#elif defined(EXP_WIN32_DRIVER) + buf.dwFlagIn |= (CONMODE_NOCBREAK | CONMODE_NORAW); +#else + buf.sg_flags &= ~CBREAK; +#endif + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { + if (SP_PARM) { + SP_PARM->_cbreak = 0; + } + termp->Nttyb = buf; + } + AFTER("nocbreak"); + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +nocbreak(void) +{ + return NCURSES_SP_NAME(nocbreak) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(noqiflush) (NCURSES_SP_DCL0) +{ + TERMINAL *termp; + + T((T_CALLED("noqiflush(%p)"), (void *) SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { + TTY buf; + int result; + + BEFORE("noqiflush"); + buf = termp->Nttyb; +#ifdef TERMIOS + buf.c_lflag |= NOFLSH; + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); +#else + /* FIXME */ + result = ERR; +#endif + if (result == OK) + termp->Nttyb = buf; + AFTER("noqiflush"); + } + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +noqiflush(void) +{ + NCURSES_SP_NAME(noqiflush) (CURRENT_SCREEN); +} +#endif + +/* + * This call does the same thing as the qiflush()/noqiflush() pair. We know + * for certain that SVr3 intrflush() tweaks the NOFLSH bit; on the other hand, + * the match (in the SVr4 man pages) between the language describing NOFLSH in + * termio(7) and the language describing qiflush()/noqiflush() in + * curs_inopts(3x) is too exact to be coincidence. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(intrflush) (NCURSES_SP_DCLx WINDOW *win GCC_UNUSED, bool flag) +{ + int result = ERR; + TERMINAL *termp; + + T((T_CALLED("intrflush(%p,%d)"), (void *) SP_PARM, flag)); + if (SP_PARM == 0) + returnCode(ERR); + + if ((termp = TerminalOf(SP_PARM)) != 0) { + TTY buf; + + BEFORE("intrflush"); + buf = termp->Nttyb; +#ifdef TERMIOS + if (flag) + buf.c_lflag &= (unsigned) ~(NOFLSH); + else + buf.c_lflag |= (NOFLSH); + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); +#else + /* FIXME */ +#endif + if (result == OK) { + termp->Nttyb = buf; + } + AFTER("intrflush"); + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +intrflush(WINDOW *win GCC_UNUSED, bool flag) +{ + return NCURSES_SP_NAME(intrflush) (CURRENT_SCREEN, win, flag); +} +#endif diff --git a/third_party/ncurses/lib_redrawln.c b/third_party/ncurses/lib_redrawln.c new file mode 100644 index 000000000..1548914b1 --- /dev/null +++ b/third_party/ncurses/lib_redrawln.c @@ -0,0 +1,88 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997 * + ****************************************************************************/ + +/* + * lib_redrawln.c + * + * The routine wredrawln(). + * + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_redrawln.c,v 1.18 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wredrawln(WINDOW *win, int beg, int num) +{ + int i; + int end; + size_t len; + SCREEN *sp; + + T((T_CALLED("wredrawln(%p,%d,%d)"), (void *) win, beg, num)); + + if (win == 0) + returnCode(ERR); + + sp = _nc_screen_of(win); + + if (beg < 0) + beg = 0; + + if (touchline(win, beg, num) == ERR) + returnCode(ERR); + + if (touchline(CurScreen(sp), beg + win->_begy, num) == ERR) + returnCode(ERR); + + end = beg + num; + if (end > CurScreen(sp)->_maxy + 1 - win->_begy) + end = CurScreen(sp)->_maxy + 1 - win->_begy; + if (end > win->_maxy + 1) + end = win->_maxy + 1; + + len = (size_t) (win->_maxx + 1); + if (len > (size_t) (CurScreen(sp)->_maxx + 1 - win->_begx)) + len = (size_t) (CurScreen(sp)->_maxx + 1 - win->_begx); + len *= sizeof(CurScreen(sp)->_line[0].text[0]); + + for (i = beg; i < end; i++) { + int crow = i + win->_begy; + + memset(CurScreen(sp)->_line[crow].text + win->_begx, 0, len); + NCURSES_SP_NAME(_nc_make_oldhash) (NCURSES_SP_ARGx crow); + } + + returnCode(OK); +} diff --git a/third_party/ncurses/lib_refresh.c b/third_party/ncurses/lib_refresh.c new file mode 100644 index 000000000..529e14272 --- /dev/null +++ b/third_party/ncurses/lib_refresh.c @@ -0,0 +1,307 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * + ****************************************************************************/ + +/* + * lib_refresh.c + * + * The routines wrefresh() and wnoutrefresh(). + * + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_refresh.c,v 1.47 2021/11/06 22:22:03 tom Exp $") + +NCURSES_EXPORT(int) +wrefresh(WINDOW *win) +{ + int code; +#if NCURSES_SP_FUNCS + SCREEN *SP_PARM = _nc_screen_of(win); +#endif + + T((T_CALLED("wrefresh(%p)"), (void *) win)); + + if (win == 0) { + code = ERR; + } else if (win == CurScreen(SP_PARM)) { + CurScreen(SP_PARM)->_clear = TRUE; + code = NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG); + } else if ((code = wnoutrefresh(win)) == OK) { + if (win->_clear) + NewScreen(SP_PARM)->_clear = TRUE; + code = NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG); + /* + * Reset the clearok() flag in case it was set for the special + * case in hardscroll.c (if we don't reset it here, we'll get 2 + * refreshes because the flag is copied from stdscr to newscr). + * Resetting the flag shouldn't do any harm, anyway. + */ + win->_clear = FALSE; + } + returnCode(code); +} + +NCURSES_EXPORT(int) +wnoutrefresh(WINDOW *win) +{ + int limit_x; + int src_row, src_col; + int begx; + int begy; + int dst_row, dst_col; +#if USE_SCROLL_HINTS + bool wide; +#endif +#if NCURSES_SP_FUNCS + SCREEN *SP_PARM = _nc_screen_of(win); +#endif + + T((T_CALLED("wnoutrefresh(%p)"), (void *) win)); + + if (win == NULL) + returnCode(ERR); + + /* + * Handle pads as a special case. + */ + if (IS_PAD(win)) { + returnCode(pnoutrefresh(win, + win->_pad._pad_y, + win->_pad._pad_x, + win->_pad._pad_top, + win->_pad._pad_left, + win->_pad._pad_bottom, + win->_pad._pad_right)); + } +#ifdef TRACE + if (USE_TRACEF(TRACE_UPDATE)) { + _tracedump("...win", win); + _nc_unlock_global(tracef); + } +#endif /* TRACE */ + + /* put them here so "win == 0" won't break our code */ + begx = win->_begx; + begy = win->_begy; + + NewScreen(SP_PARM)->_nc_bkgd = win->_nc_bkgd; + WINDOW_ATTRS(NewScreen(SP_PARM)) = WINDOW_ATTRS(win); + + /* merge in change information from all subwindows of this window */ + wsyncdown(win); + +#if USE_SCROLL_HINTS + /* + * For pure efficiency, we'd want to transfer scrolling information + * from the window to newscr whenever the window is wide enough that + * its update will dominate the cost of the update for the horizontal + * band of newscr that it occupies. Unfortunately, this threshold + * tends to be complex to estimate, and in any case scrolling the + * whole band and rewriting the parts outside win's image would look + * really ugly. So. What we do is consider the window "wide" if it + * either (a) occupies the whole width of newscr, or (b) occupies + * all but at most one column on either vertical edge of the screen + * (this caters to fussy people who put boxes around full-screen + * windows). Note that changing this formula will not break any code, + * merely change the costs of various update cases. + */ + wide = (begx <= 1 && win->_maxx >= (NewScreen(SP_PARM)->_maxx - 1)); +#endif + + win->_flags &= ~_HASMOVED; + + /* + * Microtweaking alert! This double loop is one of the genuine + * hot spots in the code. Even gcc doesn't seem to do enough + * common-subexpression chunking to make it really tense, + * so we'll force the issue. + */ + + /* limit(dst_col) */ + limit_x = win->_maxx; + /* limit(src_col) */ + if (limit_x > NewScreen(SP_PARM)->_maxx - begx) + limit_x = NewScreen(SP_PARM)->_maxx - begx; + + for (src_row = 0, dst_row = begy + win->_yoffset; + src_row <= win->_maxy && dst_row <= NewScreen(SP_PARM)->_maxy; + src_row++, dst_row++) { + struct ldat *nline = &(NewScreen(SP_PARM)->_line[dst_row]); + struct ldat *oline = &win->_line[src_row]; + + if (oline->firstchar != _NOCHANGE) { + int last_src = oline->lastchar; + + if (last_src > limit_x) + last_src = limit_x; + + src_col = oline->firstchar; + dst_col = src_col + begx; + + if_WIDEC({ + int j; + + /* + * Ensure that we will copy complete multi-column characters + * on the left-boundary. + */ + if (isWidecExt(oline->text[src_col])) { + j = 1 + dst_col - WidecExt(oline->text[src_col]); + if (j < 0) + j = 0; + if (dst_col > j) { + src_col -= (dst_col - j); + dst_col = j; + } + } + + /* + * Ensure that we will copy complete multi-column characters + * on the right-boundary. + */ + j = last_src; + if (WidecExt(oline->text[j])) { + ++j; + while (j <= limit_x) { + if (isWidecBase(oline->text[j])) { + break; + } else { + last_src = j; + } + ++j; + } + } + }); + + if_WIDEC({ + static cchar_t blank = BLANK; + int last_dst = begx + ((last_src < win->_maxx) + ? last_src + : win->_maxx); + int fix_left = dst_col; + int fix_right = last_dst; + int j; + + /* + * Check for boundary cases where we may overwrite part of a + * multi-column character. For those, wipe the remainder of + * the character to blanks. + */ + j = dst_col; + if (isWidecExt(nline->text[j])) { + /* + * On the left, we only care about multi-column characters + * that extend into the changed region. + */ + fix_left = 1 + j - WidecExt(nline->text[j]); + if (fix_left < 0) + fix_left = 0; /* only if cell is corrupt */ + } + + j = last_dst; + if (WidecExt(nline->text[j]) != 0) { + /* + * On the right, any multi-column character is a problem, + * unless it happens to be contained in the change, and + * ending at the right boundary of the change. The + * computation for 'fix_left' accounts for the left-side of + * this character. Find the end of the character. + */ + ++j; + while (j <= NewScreen(SP_PARM)->_maxx && + isWidecExt(nline->text[j])) { + fix_right = j++; + } + } + + /* + * The analysis is simpler if we do the clearing afterwards. + * Do that now. + */ + if (fix_left < dst_col || fix_right > last_dst) { + for (j = fix_left; j <= fix_right; ++j) { + nline->text[j] = blank; + CHANGED_CELL(nline, j); + } + } + }); + + /* + * Copy the changed text. + */ + for (; src_col <= last_src; src_col++, dst_col++) { + if (!CharEq(oline->text[src_col], nline->text[dst_col])) { + nline->text[dst_col] = oline->text[src_col]; + CHANGED_CELL(nline, dst_col); + } + } + + } +#if USE_SCROLL_HINTS + if (wide) { + int oind = oline->oldindex; + + nline->oldindex = ((oind == _NEWINDEX) + ? _NEWINDEX + : (begy + oind + win->_yoffset)); + } +#endif /* USE_SCROLL_HINTS */ + + oline->firstchar = oline->lastchar = _NOCHANGE; + if_USE_SCROLL_HINTS(oline->oldindex = src_row); + } + + if (win->_clear) { + win->_clear = FALSE; + NewScreen(SP_PARM)->_clear = TRUE; + } + + if (!win->_leaveok) { + NewScreen(SP_PARM)->_cury = (NCURSES_SIZE_T) (win->_cury + + win->_begy + win->_yoffset); + NewScreen(SP_PARM)->_curx = (NCURSES_SIZE_T) (win->_curx + win->_begx); + } + NewScreen(SP_PARM)->_leaveok = win->_leaveok; + +#ifdef TRACE + if (USE_TRACEF(TRACE_UPDATE)) { + _tracedump("newscr", NewScreen(SP_PARM)); + _nc_unlock_global(tracef); + } +#endif /* TRACE */ + returnCode(OK); +} diff --git a/third_party/ncurses/lib_restart.c b/third_party/ncurses/lib_restart.c new file mode 100644 index 000000000..cf181e4e8 --- /dev/null +++ b/third_party/ncurses/lib_restart.c @@ -0,0 +1,118 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2012,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * + ****************************************************************************/ + +/* + * Terminfo-only terminal setup routines: + * + * int restartterm(const char *, int, int *) + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_restart.c,v 1.17 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx + NCURSES_CONST char *termp, + int filenum, + int *errret) +{ + int result; +#ifdef USE_TERM_DRIVER + TERMINAL *new_term = 0; +#endif + + START_TRACE(); + T((T_CALLED("restartterm(%p,%s,%d,%p)"), + (void *) SP_PARM, + termp, + filenum, + (void *) errret)); + + if (TINFO_SETUP_TERM(&new_term, termp, filenum, errret, FALSE) != OK) { + result = ERR; + } else if (SP_PARM != 0) { + int saveecho = SP_PARM->_echo; + int savecbreak = SP_PARM->_cbreak; + int saveraw = SP_PARM->_raw; + int savenl = SP_PARM->_nl; + +#ifdef USE_TERM_DRIVER + SP_PARM->_term = new_term; +#endif + if (saveecho) { + NCURSES_SP_NAME(echo) (NCURSES_SP_ARG); + } else { + NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG); + } + + if (savecbreak) { + NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG); + NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG); + } else if (saveraw) { + NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG); + NCURSES_SP_NAME(raw) (NCURSES_SP_ARG); + } else { + NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG); + NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG); + } + if (savenl) { + NCURSES_SP_NAME(nl) (NCURSES_SP_ARG); + } else { + NCURSES_SP_NAME(nonl) (NCURSES_SP_ARG); + } + + NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_ARG); + +#if USE_SIZECHANGE + _nc_update_screensize(SP_PARM); +#endif + + result = OK; + } else { + result = ERR; + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +restartterm(NCURSES_CONST char *termp, int filenum, int *errret) +{ + START_TRACE(); + return NCURSES_SP_NAME(restartterm) (CURRENT_SCREEN, termp, filenum, errret); +} +#endif diff --git a/third_party/ncurses/lib_scanw.c b/third_party/ncurses/lib_scanw.c new file mode 100644 index 000000000..39d810b26 --- /dev/null +++ b/third_party/ncurses/lib_scanw.c @@ -0,0 +1,126 @@ +/**************************************************************************** + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 1998-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_scanw.c +** +** The routines scanw(), wscanw() and friends. +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_scanw.c,v 1.19 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +vwscanw(WINDOW *win, const char *fmt, va_list argp) +{ + char buf[BUFSIZ]; + int code = ERR; + + if (wgetnstr(win, buf, (int) sizeof(buf) - 1) != ERR) { + if ((code = vsscanf(buf, fmt, argp)) == EOF) { + code = ERR; + } + } + + return code; +} + +NCURSES_EXPORT(int) +vw_scanw(WINDOW *win, const char *fmt, va_list argp) +{ + char buf[BUFSIZ]; + int code = ERR; + + if (wgetnstr(win, buf, (int) sizeof(buf) - 1) != ERR) { + if ((code = vsscanf(buf, fmt, argp)) == EOF) { + code = ERR; + } + } + + return code; +} + +NCURSES_EXPORT(int) +scanw(const char *fmt, ...) +{ + int code; + va_list ap; + + T(("scanw(\"%s\",...) called", fmt)); + + va_start(ap, fmt); + code = vw_scanw(stdscr, fmt, ap); + va_end(ap); + return (code); +} + +NCURSES_EXPORT(int) +wscanw(WINDOW *win, const char *fmt, ...) +{ + int code; + va_list ap; + + T(("wscanw(%p,\"%s\",...) called", (void *) win, fmt)); + + va_start(ap, fmt); + code = vw_scanw(win, fmt, ap); + va_end(ap); + return (code); +} + +NCURSES_EXPORT(int) +mvscanw(int y, int x, const char *fmt, ...) +{ + int code; + va_list ap; + + va_start(ap, fmt); + code = (move(y, x) == OK) ? vw_scanw(stdscr, fmt, ap) : ERR; + va_end(ap); + return (code); +} + +NCURSES_EXPORT(int) +mvwscanw(WINDOW *win, int y, int x, const char *fmt, ...) +{ + int code; + va_list ap; + + va_start(ap, fmt); + code = (wmove(win, y, x) == OK) ? vw_scanw(win, fmt, ap) : ERR; + va_end(ap); + return (code); +} diff --git a/third_party/ncurses/lib_screen.c b/third_party/ncurses/lib_screen.c new file mode 100644 index 000000000..5938dcb1d --- /dev/null +++ b/third_party/ncurses/lib_screen.c @@ -0,0 +1,1082 @@ +/**************************************************************************** + * Copyright 2019-2020,2021 Thomas E. Dickey * + * Copyright 1998-2017,2018 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996 on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +#include "curses.priv.h" + +#include + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_screen.c,v 1.104 2021/10/23 17:12:16 tom Exp $") + +#define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */ + +#define MARKER '\\' +#define APPEND '+' +#define GUTTER '|' +#define L_CURL '{' +#define R_CURL '}' + +#if USE_STRING_HACKS && HAVE_SNPRINTF +#define ARG_SLIMIT(name) size_t name, +#else +#define ARG_SLIMIT(name) /* nothing */ +#endif + +#define CUR_SLIMIT _nc_SLIMIT(limit - (size_t) (target - base)) +#define TOP_SLIMIT _nc_SLIMIT(sizeof(buffer)) + +/* + * Use 0x888888 as the magic number for new-format files, since it cannot be + * mistaken for the _cury/_curx pair of 16-bit numbers which start the old + * format. It happens to be unused in the file 5.22 database (2015/03/07). + */ +static const char my_magic[] = +{'\210', '\210', '\210', '\210', 0}; + +#if NCURSES_EXT_PUTWIN +typedef enum { + pINT /* int */ + ,pSHORT /* short */ + ,pBOOL /* bool */ + ,pATTR /* attr_t */ + ,pCHAR /* chtype */ + ,pSIZE /* NCURSES_SIZE_T */ +#if NCURSES_WIDECHAR + ,pCCHAR /* cchar_t */ +#endif +} PARAM_TYPE; + +typedef struct { + const char name[11]; + attr_t attr; +} SCR_ATTRS; + +typedef struct { + const char name[17]; + PARAM_TYPE type; + size_t size; + size_t offset; +} SCR_PARAMS; + +#define DATA(name) { { #name }, A_##name } +static const SCR_ATTRS scr_attrs[] = +{ + DATA(NORMAL), + DATA(STANDOUT), + DATA(UNDERLINE), + DATA(REVERSE), + DATA(BLINK), + DATA(DIM), + DATA(BOLD), + DATA(ALTCHARSET), + DATA(INVIS), + DATA(PROTECT), + DATA(HORIZONTAL), + DATA(LEFT), + DATA(LOW), + DATA(RIGHT), + DATA(TOP), + DATA(VERTICAL), + +#ifdef A_ITALIC + DATA(ITALIC), +#endif +}; +#undef DATA + +#define sizeof2(type,name) sizeof(((type *)0)->name) +#define DATA(name, type) { { #name }, type, sizeof2(WINDOW, name), offsetof(WINDOW, name) } + +static const SCR_PARAMS scr_params[] = +{ + DATA(_cury, pSIZE), + DATA(_curx, pSIZE), + DATA(_maxy, pSIZE), + DATA(_maxx, pSIZE), + DATA(_begy, pSIZE), + DATA(_begx, pSIZE), + DATA(_flags, pSHORT), + DATA(_attrs, pATTR), + DATA(_bkgd, pCHAR), + DATA(_notimeout, pBOOL), + DATA(_clear, pBOOL), + DATA(_leaveok, pBOOL), + DATA(_scroll, pBOOL), + DATA(_idlok, pBOOL), + DATA(_idcok, pBOOL), + DATA(_immed, pBOOL), + DATA(_sync, pBOOL), + DATA(_use_keypad, pBOOL), + DATA(_delay, pINT), + DATA(_regtop, pSIZE), + DATA(_regbottom, pSIZE), + DATA(_pad._pad_y, pSIZE), + DATA(_pad._pad_x, pSIZE), + DATA(_pad._pad_top, pSIZE), + DATA(_pad._pad_left, pSIZE), + DATA(_pad._pad_bottom, pSIZE), + DATA(_pad._pad_right, pSIZE), + DATA(_yoffset, pSIZE), +#if NCURSES_WIDECHAR + DATA(_bkgrnd, pCCHAR), +#if NCURSES_EXT_COLORS + DATA(_color, pINT), +#endif +#endif +}; +#undef DATA + +static const NCURSES_CH_T blank = NewChar(BLANK_TEXT); + +/* + * Allocate and read a line of text. Caller must free it. + */ +static char * +read_txt(FILE *fp) +{ + size_t limit = 1024; + char *result = malloc(limit); + char *buffer; + + if (result != 0) { + int ch = 0; + size_t used = 0; + + clearerr(fp); + result[used] = '\0'; + do { + if (used + 2 >= limit) { + limit += 1024; + buffer = realloc(result, limit); + if (buffer == 0) { + free(result); + result = 0; + break; + } + result = buffer; + } + ch = fgetc(fp); + if (ch == EOF) + break; + result[used++] = (char) ch; + result[used] = '\0'; + } while (ch != '\n'); + + if (ch == '\n') { + result[--used] = '\0'; + TR(TRACE_IEVENT, ("READ:%s", result)); + } else if (used == 0) { + free(result); + result = 0; + } + } + return result; +} + +static char * +decode_attr(char *source, attr_t *target, int *color) +{ + bool found = FALSE; + + TR(TRACE_IEVENT, ("decode_attr '%s'", source)); + + while (*source) { + if (source[0] == MARKER && source[1] == L_CURL) { + source += 2; + found = TRUE; + } else if (source[0] == R_CURL) { + source++; + found = FALSE; + } else if (found) { + size_t n; + char *next = source; + + if (source[0] == GUTTER) { + ++next; + } else if (*next == 'C') { + int value = 0; + unsigned pair; + next++; + while (isdigit(UChar(*next))) { + value = value * 10 + (*next++ - '0'); + } + *target &= ~A_COLOR; + pair = (unsigned) ((value > 256) + ? COLOR_PAIR(255) + : COLOR_PAIR(value)); + *target |= pair; + *color = value; + } else { + while (isalnum(UChar(*next))) { + ++next; + } + for (n = 0; n < SIZEOF(scr_attrs); ++n) { + if ((size_t) (next - source) == strlen(scr_attrs[n].name)) { + if (scr_attrs[n].attr) { + *target |= scr_attrs[n].attr; + } else { + *target = A_NORMAL; + } + break; + } + } + } + source = next; + } else { + break; + } + } + return source; +} + +static char * +decode_char(char *source, int *target) +{ + int limit = 0; + int base = 16; + const char digits[] = "0123456789abcdef"; + + TR(TRACE_IEVENT, ("decode_char '%s'", source)); + *target = ' '; + switch (*source) { + case MARKER: + switch (*++source) { + case APPEND: + break; + case MARKER: + *target = MARKER; + ++source; + break; + case 's': + *target = ' '; + ++source; + break; + case '0': + case '1': + case '2': + case '3': + base = 8; + limit = 3; + break; + case 'u': + limit = 4; + ++source; + break; + case 'U': + limit = 8; + ++source; + break; + } + if (limit) { + *target = 0; + while (limit-- > 0) { + char *find = strchr(digits, *source++); + int ch = (find != 0) ? (int) (find - digits) : -1; + *target *= base; + if (ch >= 0 && ch < base) { + *target += ch; + } + } + } + break; + default: + *target = *source++; + break; + } + return source; +} + +static char * +decode_chtype(char *source, chtype fillin, chtype *target) +{ + attr_t attr = ChAttrOf(fillin); + int color = PAIR_NUMBER((int) attr); + int value; + + TR(TRACE_IEVENT, ("decode_chtype '%s'", source)); + source = decode_attr(source, &attr, &color); + source = decode_char(source, &value); + *target = (ChCharOf(value) | attr | (chtype) COLOR_PAIR(color)); + /* FIXME - ignore combining characters */ + return source; +} + +#if NCURSES_WIDECHAR +static char * +decode_cchar(char *source, cchar_t *fillin, cchar_t *target) +{ + int color; + attr_t attr = fillin->attr; + wchar_t chars[CCHARW_MAX]; + int append = 0; + int value = 0; + + TR(TRACE_IEVENT, ("decode_cchar '%s'", source)); + *target = blank; +#if NCURSES_EXT_COLORS + color = fillin->ext_color; +#else + color = (int) PAIR_NUMBER(attr); +#endif + source = decode_attr(source, &attr, &color); + memset(chars, 0, sizeof(chars)); + source = decode_char(source, &value); + chars[0] = (wchar_t) value; + /* handle combining characters */ + while (source[0] == MARKER && source[1] == APPEND) { + source += 2; + source = decode_char(source, &value); + if (++append < CCHARW_MAX) { + chars[append] = (wchar_t) value; + } + } + setcchar(target, chars, attr, (short) color, &color); + return source; +} +#endif + +static int +read_win(WINDOW *win, FILE *fp) +{ + int code = ERR; + size_t n; + int color; +#if NCURSES_WIDECHAR + NCURSES_CH_T prior; +#endif + chtype prior2; + + memset(win, 0, sizeof(WINDOW)); + for (;;) { + char *name; + char *value; + char *txt = read_txt(fp); + + if (txt == 0) + break; + if (!strcmp(txt, "rows:")) { + free(txt); + code = OK; + break; + } + if ((value = strchr(txt, '=')) == 0) { + free(txt); + continue; + } + *value++ = '\0'; + name = !strcmp(txt, "flag") ? value : txt; + for (n = 0; n < SIZEOF(scr_params); ++n) { + if (!strcmp(name, scr_params[n].name)) { + void *data = (void *) ((char *) win + scr_params[n].offset); + + switch (scr_params[n].type) { + case pATTR: + (void) decode_attr(value, data, &color); + break; + case pBOOL: + *(bool *) data = TRUE; + break; + case pCHAR: + prior2 = ' '; + decode_chtype(value, prior2, data); + break; + case pINT: + *(int *) data = atoi(value); + break; + case pSHORT: + *(short *) data = (short) atoi(value); + break; + case pSIZE: + *(NCURSES_SIZE_T *) data = (NCURSES_SIZE_T) atoi(value); + break; +#if NCURSES_WIDECHAR + case pCCHAR: + prior = blank; + decode_cchar(value, &prior, data); + break; +#endif + } + break; + } + } + free(txt); + } + return code; +} + +static int +read_row(char *source, NCURSES_CH_T *prior, NCURSES_CH_T *target, int length) +{ + while (*source != '\0' && length > 0) { +#if NCURSES_WIDECHAR + int len; + + source = decode_cchar(source, prior, target); + len = _nc_wacs_width(target->chars[0]); + if (len > 1) { + int n; + + SetWidecExt(CHDEREF(target), 0); + for (n = 1; n < len; ++n) { + target[n] = target[0]; + SetWidecExt(CHDEREF(target), n); + } + target += (len - 1); + length -= (len - 1); + } +#else + source = decode_chtype(source, *prior, target); +#endif + *prior = *target; + ++target; + --length; + } + while (length-- > 0) { + *target++ = blank; + } + /* FIXME - see what error conditions should apply if I need to return ERR */ + return 0; +} +#endif /* NCURSES_EXT_PUTWIN */ + +/* + * Originally, getwin/putwin used fread/fwrite, because they used binary data. + * The new format uses printable ASCII, which does not have as predictable + * sizes. Consequently, we use buffered I/O, e.g., fgetc/fprintf, which need + * special handling if we want to read screen dumps from an older library. + */ +static int +read_block(void *target, size_t length, FILE *fp) +{ + int result = 0; + char *buffer = target; + + clearerr(fp); + while (length-- != 0) { + int ch = fgetc(fp); + if (ch == EOF) { + result = -1; + break; + } + *buffer++ = (char) ch; + } + return result; +} + +NCURSES_EXPORT(WINDOW *) +NCURSES_SP_NAME(getwin) (NCURSES_SP_DCLx FILE *filep) +{ + WINDOW tmp, *nwin; + bool old_format = FALSE; + + T((T_CALLED("getwin(%p)"), (void *) filep)); + + if (filep == 0) { + returnWin(0); + } + + /* + * Read the first 4 bytes to determine first if this is an old-format + * screen-dump, or new-format. + */ + if (read_block(&tmp, (size_t) 4, filep) < 0) { + returnWin(0); + } + /* + * If this is a new-format file, and we do not support it, give up. + */ + if (!memcmp(&tmp, my_magic, (size_t) 4)) { +#if NCURSES_EXT_PUTWIN + if (read_win(&tmp, filep) < 0) +#endif + returnWin(0); + } else if (read_block(((char *) &tmp) + 4, sizeof(WINDOW) - 4, filep) < 0) { + returnWin(0); + } else { + old_format = TRUE; + } + + /* + * Check the window-size: + */ + if (tmp._maxy == 0 || + tmp._maxy > MAX_SIZE || + tmp._maxx == 0 || + tmp._maxx > MAX_SIZE) { + returnWin(0); + } + + if (IS_PAD(&tmp)) { + nwin = NCURSES_SP_NAME(newpad) (NCURSES_SP_ARGx + tmp._maxy + 1, + tmp._maxx + 1); + } else { + nwin = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx + tmp._maxy + 1, + tmp._maxx + 1, 0, 0); + } + + /* + * We deliberately do not restore the _parx, _pary, or _parent + * fields, because the window hierarchy within which they + * made sense is probably gone. + */ + if (nwin != 0) { + int n; + size_t linesize = sizeof(NCURSES_CH_T) * (size_t) (tmp._maxx + 1); + + nwin->_curx = tmp._curx; + nwin->_cury = tmp._cury; + nwin->_maxy = tmp._maxy; + nwin->_maxx = tmp._maxx; + nwin->_begy = tmp._begy; + nwin->_begx = tmp._begx; + nwin->_yoffset = tmp._yoffset; + nwin->_flags = tmp._flags & ~(_SUBWIN); + + WINDOW_ATTRS(nwin) = WINDOW_ATTRS(&tmp); + nwin->_nc_bkgd = tmp._nc_bkgd; + + nwin->_notimeout = tmp._notimeout; + nwin->_clear = tmp._clear; + nwin->_leaveok = tmp._leaveok; + nwin->_idlok = tmp._idlok; + nwin->_idcok = tmp._idcok; + nwin->_immed = tmp._immed; + nwin->_scroll = tmp._scroll; + nwin->_sync = tmp._sync; + nwin->_use_keypad = tmp._use_keypad; + nwin->_delay = tmp._delay; + + nwin->_regtop = tmp._regtop; + nwin->_regbottom = tmp._regbottom; + + if (IS_PAD(&tmp)) + nwin->_pad = tmp._pad; + + if (old_format) { + T(("reading old-format screen dump")); + for (n = 0; n <= nwin->_maxy; n++) { + if (read_block(nwin->_line[n].text, linesize, filep) < 0) { + delwin(nwin); + returnWin(0); + } + } + } +#if NCURSES_EXT_PUTWIN + else { + char *txt = 0; + bool success = TRUE; + NCURSES_CH_T prior = blank; + + T(("reading new-format screen dump")); + for (n = 0; n <= nwin->_maxy; n++) { + long row; + char *next; + + if ((txt = read_txt(filep)) == 0) { + T(("...failed to read string for row %d", n + 1)); + success = FALSE; + break; + } + row = strtol(txt, &next, 10); + if (row != (n + 1) || *next != ':') { + T(("...failed to read row-number %d", n + 1)); + success = FALSE; + break; + } + + if (read_row(++next, &prior, nwin->_line[n].text, tmp._maxx + + 1) < 0) { + T(("...failed to read cells for row %d", n + 1)); + success = FALSE; + break; + } + free(txt); + txt = 0; + } + + if (!success) { + free(txt); + delwin(nwin); + returnWin(0); + } + } +#endif + touchwin(nwin); + } + returnWin(nwin); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(WINDOW *) +getwin(FILE *filep) +{ + return NCURSES_SP_NAME(getwin) (CURRENT_SCREEN, filep); +} +#endif + +#if NCURSES_EXT_PUTWIN +static void +encode_attr(char *target, ARG_SLIMIT(limit) + attr_t source, + attr_t prior, + int source_color, + int prior_color) +{ +#if USE_STRING_HACKS && HAVE_SNPRINTF + char *base = target; +#endif + source &= ~A_CHARTEXT; + prior &= ~A_CHARTEXT; + + *target = '\0'; + if ((source != prior) || (source_color != prior_color)) { + size_t n; + bool first = TRUE; + + *target++ = MARKER; + *target++ = L_CURL; + + for (n = 0; n < SIZEOF(scr_attrs); ++n) { + if ((source & scr_attrs[n].attr) != 0 || + ((source & ALL_BUT_COLOR) == 0 && + (scr_attrs[n].attr == A_NORMAL))) { + if (first) { + first = FALSE; + } else { + *target++ = '|'; + } + _nc_STRCPY(target, scr_attrs[n].name, limit); + target += strlen(target); + } + } + if (source_color != prior_color) { + if (!first) + *target++ = '|'; + _nc_SPRINTF(target, CUR_SLIMIT "C%d", source_color); + target += strlen(target); + } + + *target++ = R_CURL; + *target = '\0'; + } +} + +static void +encode_cell(char *target, ARG_SLIMIT(limit) CARG_CH_T source, CARG_CH_T previous) +{ +#if USE_STRING_HACKS && HAVE_SNPRINTF + char *base = target; +#endif +#if NCURSES_WIDECHAR + size_t n; + int source_pair = GetPair(*source); + int previous_pair = GetPair(*previous); + + *target = '\0'; + if ((previous->attr != source->attr) || (previous_pair != source_pair)) { + encode_attr(target, CUR_SLIMIT + source->attr, + previous->attr, + source_pair, + previous_pair); + } + target += strlen(target); +#if NCURSES_EXT_COLORS + if (previous->ext_color != source->ext_color) { + _nc_SPRINTF(target, CUR_SLIMIT + "%c%cC%d%c", MARKER, L_CURL, source->ext_color, R_CURL); + } +#endif + for (n = 0; n < SIZEOF(source->chars); ++n) { + unsigned uch = (unsigned) source->chars[n]; + if (uch == 0) + continue; + if (n) { + *target++ = MARKER; + *target++ = APPEND; + } + *target++ = MARKER; + if (uch > 0xffff) { + _nc_SPRINTF(target, CUR_SLIMIT "U%08x", uch); + } else if (uch > 0xff) { + _nc_SPRINTF(target, CUR_SLIMIT "u%04x", uch); + } else if (uch < 32 || uch >= 127) { + _nc_SPRINTF(target, CUR_SLIMIT "%03o", uch & 0xff); + } else { + switch (uch) { + case ' ': + _nc_STRCPY(target, "s", limit); + break; + case MARKER: + *target++ = MARKER; + *target = '\0'; + break; + default: + --target; + _nc_SPRINTF(target, CUR_SLIMIT "%c", uch); + break; + } + } + target += strlen(target); + } +#else + chtype ch = CharOfD(source); + + *target = '\0'; + if (AttrOfD(previous) != AttrOfD(source)) { + encode_attr(target, CUR_SLIMIT + AttrOfD(source), + AttrOfD(previous), + GetPair(source), + GetPair(previous)); + } + target += strlen(target); + *target++ = MARKER; + if (ch < 32 || ch >= 127) { + _nc_SPRINTF(target, CUR_SLIMIT "%03o", UChar(ch)); + } else { + switch (ch) { + case ' ': + _nc_STRCPY(target, "s", limit); + break; + case MARKER: + *target++ = MARKER; + *target = '\0'; + break; + default: + --target; + _nc_SPRINTF(target, CUR_SLIMIT "%c", UChar(ch)); + break; + } + } +#endif +} +#endif + +NCURSES_EXPORT(int) +putwin(WINDOW *win, FILE *filep) +{ + int code = ERR; + + T((T_CALLED("putwin(%p,%p)"), (void *) win, (void *) filep)); + +#if NCURSES_EXT_PUTWIN + if (win != 0) { + const char *version = curses_version(); + char buffer[1024]; + NCURSES_CH_T last_cell; + int y; + + memset(&last_cell, 0, sizeof(last_cell)); + + clearerr(filep); + + /* + * Our magic number is technically nonprinting, but aside from that, + * all of the file is printable ASCII. + */ +#define PUTS(s) if (fputs(s, filep) == EOF || ferror(filep)) returnCode(code) + PUTS(my_magic); + PUTS(version); + PUTS("\n"); + for (y = 0; y < (int) SIZEOF(scr_params); ++y) { + const char *name = scr_params[y].name; + const char *data = (char *) win + scr_params[y].offset; + const void *dp = (const void *) data; + attr_t attr; + + *buffer = '\0'; + if (!strncmp(name, "_pad.", (size_t) 5) && !IS_PAD(win)) { + continue; + } + switch (scr_params[y].type) { + case pATTR: + attr = (*(const attr_t *) dp) & ~A_CHARTEXT; + encode_attr(buffer, TOP_SLIMIT + (*(const attr_t *) dp) & ~A_CHARTEXT, + A_NORMAL, + COLOR_PAIR((int) attr), + 0); + break; + case pBOOL: + if (!(*(const bool *) data)) { + continue; + } + _nc_STRCPY(buffer, name, sizeof(buffer)); + name = "flag"; + break; + case pCHAR: + attr = (*(const attr_t *) dp); + encode_attr(buffer, TOP_SLIMIT + * (const attr_t *) dp, + A_NORMAL, + COLOR_PAIR((int) attr), + 0); + break; + case pINT: + if (!(*(const int *) dp)) + continue; + _nc_SPRINTF(buffer, TOP_SLIMIT + "%d", *(const int *) dp); + break; + case pSHORT: + if (!(*(const short *) dp)) + continue; + _nc_SPRINTF(buffer, TOP_SLIMIT + "%d", *(const short *) dp); + break; + case pSIZE: + if (!(*(const NCURSES_SIZE_T *) dp)) + continue; + _nc_SPRINTF(buffer, TOP_SLIMIT + "%d", *(const NCURSES_SIZE_T *) dp); + break; +#if NCURSES_WIDECHAR + case pCCHAR: + encode_cell(buffer, TOP_SLIMIT + (CARG_CH_T) dp, CHREF(last_cell)); + break; +#endif + } + /* + * Only write non-default data. + */ + if (*buffer != '\0') { + if (fprintf(filep, "%s=%s\n", name, buffer) <= 0 + || ferror(filep)) + returnCode(code); + } + } + /* Write row-data */ + fprintf(filep, "rows:\n"); + for (y = 0; y <= win->_maxy; y++) { + NCURSES_CH_T *data = win->_line[y].text; + int x; + if (fprintf(filep, "%d:", y + 1) <= 0 + || ferror(filep)) + returnCode(code); + for (x = 0; x <= win->_maxx; x++) { +#if NCURSES_WIDECHAR + int len = _nc_wacs_width(data[x].chars[0]); + encode_cell(buffer, TOP_SLIMIT CHREF(data[x]), CHREF(last_cell)); + last_cell = data[x]; + PUTS(buffer); + if (len > 1) + x += (len - 1); +#else + encode_cell(buffer, TOP_SLIMIT CHREF(data[x]), CHREF(last_cell)); + last_cell = data[x]; + PUTS(buffer); +#endif + } + PUTS("\n"); + } + code = OK; + } +#else + /* + * This is the original putwin(): + * A straight binary dump is simple, but its format can depend on whether + * ncurses is compiled with wide-character support, and also may depend + * on the version of ncurses, e.g., if the WINDOW structure is extended. + */ + if (win != 0) { + size_t len = (size_t) (win->_maxx + 1); + int y; + + clearerr(filep); + if (fwrite(win, sizeof(WINDOW), (size_t) 1, filep) != 1 + || ferror(filep)) + returnCode(code); + + for (y = 0; y <= win->_maxy; y++) { + if (fwrite(win->_line[y].text, + sizeof(NCURSES_CH_T), len, filep) != len + || ferror(filep)) { + returnCode(code); + } + } + code = OK; + } +#endif + returnCode(code); +} + +/* + * Replace a window covering the whole screen, i.e., newscr or curscr. + */ +static WINDOW * +replace_window(WINDOW *target, FILE *source) +{ + WINDOW *result = getwin(source); +#if NCURSES_EXT_FUNCS + if (result != NULL) { + if (getmaxx(result) != getmaxx(target) + || getmaxy(result) != getmaxy(target)) { + int code = wresize(result, + 1 + getmaxy(target), + 1 + getmaxx(target)); + if (code != OK) { + delwin(result); + result = NULL; + } + } + } +#endif + delwin(target); + return result; +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(scr_restore) (NCURSES_SP_DCLx const char *file) +{ + FILE *fp = 0; + int code = ERR; + + T((T_CALLED("scr_restore(%p,%s)"), (void *) SP_PARM, _nc_visbuf(file))); + + if (_nc_access(file, R_OK) >= 0 + && (fp = safe_fopen(file, BIN_R)) != 0) { + NewScreen(SP_PARM) = replace_window(NewScreen(SP_PARM), fp); +#if !USE_REENTRANT + newscr = NewScreen(SP_PARM); +#endif + (void) fclose(fp); + if (NewScreen(SP_PARM) != 0) { + code = OK; + } + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +scr_restore(const char *file) +{ + return NCURSES_SP_NAME(scr_restore) (CURRENT_SCREEN, file); +} +#endif + +NCURSES_EXPORT(int) +scr_dump(const char *file) +{ + int result; + FILE *fp = 0; + + T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file))); + + if (_nc_access(file, W_OK) < 0 + || (fp = safe_fopen(file, BIN_W)) == 0) { + result = ERR; + } else { + (void) putwin(newscr, fp); + (void) fclose(fp); + result = OK; + } + returnCode(result); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(scr_init) (NCURSES_SP_DCLx const char *file) +{ + int code = ERR; + + T((T_CALLED("scr_init(%p,%s)"), (void *) SP_PARM, _nc_visbuf(file))); + + if (SP_PARM != 0 && +#ifdef USE_TERM_DRIVER + InfoOf(SP_PARM).caninit +#else + !(exit_ca_mode && non_rev_rmcup) +#endif + ) { + FILE *fp = 0; + + if (_nc_access(file, R_OK) >= 0 + && (fp = safe_fopen(file, BIN_R)) != 0) { + CurScreen(SP_PARM) = replace_window(CurScreen(SP_PARM), fp); +#if !USE_REENTRANT + curscr = CurScreen(SP_PARM); +#endif + (void) fclose(fp); + if (CurScreen(SP_PARM) != 0) { + code = OK; + } + } + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +scr_init(const char *file) +{ + return NCURSES_SP_NAME(scr_init) (CURRENT_SCREEN, file); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(scr_set) (NCURSES_SP_DCLx const char *file) +{ + int code = ERR; + + T((T_CALLED("scr_set(%p,%s)"), (void *) SP_PARM, _nc_visbuf(file))); + + if (NCURSES_SP_NAME(scr_init) (NCURSES_SP_ARGx file) == OK) { + delwin(NewScreen(SP_PARM)); + NewScreen(SP_PARM) = dupwin(curscr); +#if !USE_REENTRANT + newscr = NewScreen(SP_PARM); +#endif + if (NewScreen(SP_PARM) != 0) { + code = OK; + } + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +scr_set(const char *file) +{ + return NCURSES_SP_NAME(scr_set) (CURRENT_SCREEN, file); +} +#endif diff --git a/third_party/ncurses/lib_scroll.c b/third_party/ncurses/lib_scroll.c new file mode 100644 index 000000000..e684101fa --- /dev/null +++ b/third_party/ncurses/lib_scroll.c @@ -0,0 +1,153 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1996-2003 * + * and: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_scroll.c +** +** The routine wscrl(win, n). +** positive n scroll the window up (ie. move lines down) +** negative n scroll the window down (ie. move lines up) +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_scroll.c,v 1.32 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(void) +_nc_scroll_window(WINDOW *win, + int const n, + int const top, + int const bottom, + NCURSES_CH_T blank) +{ + int limit; + int line; + int j; + size_t to_copy = (sizeof(NCURSES_CH_T) * (size_t) (win->_maxx + 1)); + + TR(TRACE_MOVE, ("_nc_scroll_window(%p, %d, %ld, %ld)", + (void *) win, n, (long) top, (long) bottom)); + + if (top < 0 + || bottom < top + || bottom > win->_maxy) { + TR(TRACE_MOVE, ("nothing to scroll")); + return; + } + + /* + * This used to do a line-text pointer-shuffle instead of text copies. + * That (a) doesn't work when the window is derived and doesn't have + * its own storage, (b) doesn't save you a lot on modern machines + * anyway. Your typical memcpy implementations are coded in + * assembler using a tight BLT loop; for the size of copies we're + * talking here, the total execution time is dominated by the one-time + * setup cost. So there is no point in trying to be excessively + * clever -- esr. + */ +#define BottomLimit(n) ((n) >= 0 && (n) >= top) +#define TopLimit(n) ((n) <= win->_maxy && (n) <= bottom) + + /* shift n lines downwards */ + if (n < 0) { + limit = top - n; + for (line = bottom; line >= limit && BottomLimit(line); line--) { + TR(TRACE_MOVE, ("...copying %d to %d", line + n, line)); + memcpy(win->_line[line].text, + win->_line[line + n].text, + to_copy); + if_USE_SCROLL_HINTS(win->_line[line].oldindex = + win->_line[line + n].oldindex); + } + for (line = top; line < limit && TopLimit(line); line++) { + TR(TRACE_MOVE, ("...filling %d", line)); + for (j = 0; j <= win->_maxx; j++) + win->_line[line].text[j] = blank; + if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX); + } + } + + /* shift n lines upwards */ + if (n > 0) { + limit = bottom - n; + for (line = top; line <= limit && TopLimit(line); line++) { + memcpy(win->_line[line].text, + win->_line[line + n].text, + to_copy); + if_USE_SCROLL_HINTS(win->_line[line].oldindex = + win->_line[line + n].oldindex); + } + for (line = bottom; line > limit && BottomLimit(line); line--) { + for (j = 0; j <= win->_maxx; j++) + win->_line[line].text[j] = blank; + if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX); + } + } + touchline(win, top, bottom - top + 1); + + if_WIDEC({ + if (WINDOW_EXT(win, addch_used) != 0) { + int next = WINDOW_EXT(win, addch_y) + n; + if (next < 0 || next > win->_maxy) { + TR(TRACE_VIRTPUT, + ("Alert discarded multibyte on scroll")); + WINDOW_EXT(win, addch_y) = 0; + } else { + TR(TRACE_VIRTPUT, ("scrolled working position to %d,%d", + WINDOW_EXT(win, addch_y), + WINDOW_EXT(win, addch_x))); + WINDOW_EXT(win, addch_y) = next; + } + } + }) +} + +NCURSES_EXPORT(int) +wscrl(WINDOW *win, int n) +{ + T((T_CALLED("wscrl(%p,%d)"), (void *) win, n)); + + if (!win || !win->_scroll) { + TR(TRACE_MOVE, ("...scrollok is false")); + returnCode(ERR); + } + + if (n != 0) { + _nc_scroll_window(win, n, win->_regtop, win->_regbottom, win->_nc_bkgd); + _nc_synchook(win); + } + returnCode(OK); +} diff --git a/third_party/ncurses/lib_scrollok.c b/third_party/ncurses/lib_scrollok.c new file mode 100644 index 000000000..2d1d26cd6 --- /dev/null +++ b/third_party/ncurses/lib_scrollok.c @@ -0,0 +1,56 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_scrollok.c +** +** The routine scrollok. +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_scrollok.c,v 1.6 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +scrollok(WINDOW *win, bool flag) +{ + T((T_CALLED("scrollok(%p,%d)"), (void *) win, flag)); + + if (win) { + win->_scroll = flag; + returnCode(OK); + } else + returnCode(ERR); +} diff --git a/third_party/ncurses/lib_scrreg.c b/third_party/ncurses/lib_scrreg.c new file mode 100644 index 000000000..c36ebd2a9 --- /dev/null +++ b/third_party/ncurses/lib_scrreg.c @@ -0,0 +1,61 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_scrreg.c +** +** The routine wsetscrreg(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_scrreg.c,v 1.12 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wsetscrreg(WINDOW *win, int top, int bottom) +{ + T((T_CALLED("wsetscrreg(%p,%d,%d)"), (void *) win, top, bottom)); + + if (win && + top >= 0 && top <= win->_maxy && + bottom >= 0 && bottom <= win->_maxy && + bottom > top) { + win->_regtop = (NCURSES_SIZE_T) top; + win->_regbottom = (NCURSES_SIZE_T) bottom; + + returnCode(OK); + } else + returnCode(ERR); +} diff --git a/third_party/ncurses/lib_set_term.c b/third_party/ncurses/lib_set_term.c new file mode 100644 index 000000000..5189976bc --- /dev/null +++ b/third_party/ncurses/lib_set_term.c @@ -0,0 +1,872 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_set_term.c +** +** The routine set_term(). +** +*/ + +#define NEW_PAIR_INTERNAL 1 + +#include "curses.priv.h" +#include "tic.h" +#include "new_pair.h" + +#if USE_GPM_SUPPORT +#ifdef HAVE_LIBDL +/* use dynamic loader to avoid linkage dependency */ +#include +#endif +#endif + +#undef CUR +#define CUR SP_TERMTYPE + +MODULE_ID("$Id: lib_set_term.c,v 1.184 2022/12/10 21:34:12 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define MaxColors InfoOf(sp).maxcolors +#define NumLabels InfoOf(sp).numlabels +#else +#define MaxColors max_colors +#define NumLabels num_labels +#endif + +NCURSES_EXPORT(SCREEN *) +set_term(SCREEN *screenp) +{ + SCREEN *oldSP; + SCREEN *newSP; + + T((T_CALLED("set_term(%p)"), (void *) screenp)); + + _nc_lock_global(curses); + + oldSP = CURRENT_SCREEN; + _nc_set_screen(screenp); + newSP = screenp; + + if (newSP != 0) { + TINFO_SET_CURTERM(newSP, newSP->_term); +#if !USE_REENTRANT + curscr = CurScreen(newSP); + newscr = NewScreen(newSP); + stdscr = StdScreen(newSP); + COLORS = newSP->_color_count; + COLOR_PAIRS = newSP->_pair_count; +#endif + } else { + TINFO_SET_CURTERM(oldSP, 0); +#if !USE_REENTRANT + curscr = 0; + newscr = 0; + stdscr = 0; + COLORS = 0; + COLOR_PAIRS = 0; +#endif + } + + _nc_unlock_global(curses); + + T((T_RETURN("%p"), (void *) oldSP)); + return (oldSP); +} + +static void +_nc_free_keytry(TRIES * kt) +{ + if (kt != 0) { + _nc_free_keytry(kt->child); + _nc_free_keytry(kt->sibling); + free(kt); + } +} + +static bool +delink_screen(SCREEN *sp) +{ + SCREEN *last = 0; + SCREEN *temp; + bool result = FALSE; + + for (each_screen(temp)) { + if (temp == sp) { + if (last) + last->_next_screen = sp->_next_screen; + else + _nc_screen_chain = sp->_next_screen; + result = TRUE; + break; + } + last = temp; + } + return result; +} + +/* + * Free the storage associated with the given SCREEN sp. + */ +NCURSES_EXPORT(void) +delscreen(SCREEN *sp) +{ + + T((T_CALLED("delscreen(%p)"), (void *) sp)); + + _nc_lock_global(curses); + if (delink_screen(sp)) { + WINDOWLIST *wl; + bool is_current = (sp == CURRENT_SCREEN); + +#ifdef USE_SP_RIPOFF + if (safe_ripoff_sp && safe_ripoff_sp != safe_ripoff_stack) { + ripoff_t *rop; + for (rop = safe_ripoff_stack; + rop != safe_ripoff_sp && (rop - safe_ripoff_stack) < N_RIPS; + rop++) { + if (rop->win) { + (void) delwin(rop->win); + rop->win = 0; + } + } + } +#endif + + /* delete all of the windows in this screen */ + rescan: + for (each_window(sp, wl)) { + if (_nc_freewin(&(wl->win)) == OK) { + goto rescan; + } + } + + if (sp->_slk != 0) { + + if (sp->_slk->ent != 0) { + int i; + + for (i = 0; i < sp->_slk->labcnt; ++i) { + FreeIfNeeded(sp->_slk->ent[i].ent_text); + FreeIfNeeded(sp->_slk->ent[i].form_text); + } + free(sp->_slk->ent); + } + free(sp->_slk); + sp->_slk = 0; + } + + _nc_free_keytry(sp->_keytry); + sp->_keytry = 0; + + _nc_free_keytry(sp->_key_ok); + sp->_key_ok = 0; + + FreeIfNeeded(sp->_current_attr); + + _nc_free_ordered_pairs(sp); + FreeIfNeeded(sp->_color_table); + FreeIfNeeded(sp->_color_pairs); + + FreeIfNeeded(sp->_oldnum_list); + FreeIfNeeded(sp->oldhash); + FreeIfNeeded(sp->newhash); + FreeIfNeeded(sp->hashtab); + + FreeIfNeeded(sp->_acs_map); + FreeIfNeeded(sp->_screen_acs_map); + + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx sp->_term); + FreeIfNeeded(sp->out_buffer); + if (_nc_find_prescr() == sp) { + _nc_forget_prescr(); + } +#if USE_GPM_SUPPORT +#ifdef HAVE_LIBDL + if (sp->_dlopen_gpm != 0) { + dlclose(sp->_dlopen_gpm); + sp->_dlopen_gpm = 0; + } +#endif +#endif /* USE_GPM_SUPPORT */ + free(sp); + + /* + * If this was the current screen, reset everything that the + * application might try to use (except cur_term, which may have + * multiple references in different screens). + */ + if (is_current) { +#if !USE_REENTRANT + curscr = 0; + newscr = 0; + stdscr = 0; + COLORS = 0; + COLOR_PAIRS = 0; +#endif + _nc_set_screen(0); +#if USE_WIDEC_SUPPORT + if (SP == 0) { + FreeIfNeeded(_nc_wacs); + _nc_wacs = 0; + } +#endif + } else { + set_term(CURRENT_SCREEN); + } + } + _nc_unlock_global(curses); + + returnVoid; +} + +static bool +no_mouse_event(SCREEN *sp GCC_UNUSED) +{ + return FALSE; +} + +static bool +no_mouse_inline(SCREEN *sp GCC_UNUSED) +{ + return FALSE; +} + +static bool +no_mouse_parse(SCREEN *sp GCC_UNUSED, int code GCC_UNUSED) +{ + return TRUE; +} + +static void +no_mouse_resume(SCREEN *sp GCC_UNUSED) +{ +} + +static void +no_mouse_wrap(SCREEN *sp GCC_UNUSED) +{ +} + +#if NCURSES_EXT_FUNCS && USE_COLORFGBG +static const char * +extract_fgbg(const char *src, int *result) +{ + const char *dst = 0; + char *tmp = 0; + long value = strtol(src, &tmp, 0); + + if ((dst = tmp) == 0) { + dst = src; + } else if (value >= 0) { + *result = (int) value; + } + while (*dst != 0 && *dst != ';') + dst++; + if (*dst == ';') + dst++; + return dst; +} +#endif + +#define ReturnScreenError() do { _nc_set_screen(0); \ + returnCode(ERR); } while (0) + +/* OS-independent screen initializations */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_setupscreen) ( +#if NCURSES_SP_FUNCS + SCREEN **spp, +#endif + int slines, + int scolumns, + FILE *output, + int filtered, + int slk_format) +{ +#ifndef USE_TERM_DRIVER + static const TTY null_TTY; /* all zeros iff uninitialized */ +#endif + char *env; + int bottom_stolen = 0; + SCREEN *sp; +#ifndef USE_TERM_DRIVER + bool support_cookies = USE_XMC_SUPPORT; +#endif + + T((T_CALLED("_nc_setupscreen(%d, %d, %p, %d, %d)"), + slines, scolumns, (void *) output, filtered, slk_format)); + + assert(CURRENT_SCREEN == 0); /* has been reset in newterm() ! */ + +#if NCURSES_SP_FUNCS + assert(spp != 0); + sp = *spp; + + if (!sp) { + sp = _nc_alloc_screen_sp(); + T(("_nc_alloc_screen_sp %p", (void *) sp)); + *spp = sp; + } + if (sp == NULL) { + ReturnScreenError(); + } + if ((sp->_acs_map = typeCalloc(chtype, ACS_LEN)) == NULL) { + ReturnScreenError(); + } + if ((sp->_screen_acs_map = typeCalloc(bool, ACS_LEN)) == NULL) { + free(sp->_acs_map); + ReturnScreenError(); + } + + T(("created SP %p", (void *) sp)); + sp->_next_screen = _nc_screen_chain; + _nc_screen_chain = sp; + + if ((sp->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0) { + ReturnScreenError(); + } +#else + if (!_nc_alloc_screen() + || ((SP->_acs_map = typeCalloc(chtype, ACS_LEN)) == 0) + || ((SP->_screen_acs_map = typeCalloc(bool, ACS_LEN)) == 0)) { + returnCode(ERR); + } + + T(("created SP %p", (void *) SP)); + + sp = SP; /* fixup so SET_LINES and SET_COLS works */ + sp->_next_screen = _nc_screen_chain; + _nc_screen_chain = sp; + + if ((sp->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0) { + returnCode(ERR); + } +#endif + + /* + * We should always check the screensize, just in case. + */ + _nc_set_screen(sp); + sp->_term = cur_term; +#ifdef USE_TERM_DRIVER + TCBOf(sp)->csp = sp; + _nc_get_screensize(sp, sp->_term, &slines, &scolumns); +#else + _nc_get_screensize(sp, &slines, &scolumns); +#endif + SET_LINES(slines); + SET_COLS(scolumns); + + T((T_CREATE("screen %s %dx%d"), + NCURSES_SP_NAME(termname) (NCURSES_SP_ARG), slines, scolumns)); + + sp->_filtered = filtered; + + /* implement filter mode */ + if (filtered) { + slines = 1; + SET_LINES(slines); +#ifdef USE_TERM_DRIVER + CallDriver(sp, td_setfilter); +#else + /* *INDENT-EQLS* */ + clear_screen = ABSENT_STRING; + cursor_address = ABSENT_STRING; + cursor_down = ABSENT_STRING; + cursor_up = ABSENT_STRING; + parm_down_cursor = ABSENT_STRING; + parm_up_cursor = ABSENT_STRING; + row_address = ABSENT_STRING; + cursor_home = carriage_return; + + if (back_color_erase) + clr_eos = ABSENT_STRING; + +#endif + T(("filter screensize %dx%d", slines, scolumns)); + } +#ifdef __DJGPP__ + T(("setting output mode to binary")); + fflush(output); + setmode(output, O_BINARY); +#endif +#if defined(EXP_WIN32_DRIVER) + T(("setting output mode to binary")); + fflush(output); + _setmode(fileno(output), _O_BINARY); +#endif + sp->_lines = (NCURSES_SIZE_T) slines; + sp->_lines_avail = (NCURSES_SIZE_T) slines; + sp->_columns = (NCURSES_SIZE_T) scolumns; + + fflush(output); + sp->_ofd = output ? fileno(output) : -1; + sp->_ofp = output; +#if defined(EXP_WIN32_DRIVER) + if (output) + _setmode(fileno(output), _O_BINARY); +#endif + sp->out_limit = (size_t) ((2 + slines) * (6 + scolumns)); + if ((sp->out_buffer = malloc(sp->out_limit)) == 0) + sp->out_limit = 0; + sp->out_inuse = 0; + + SP_PRE_INIT(sp); + SetNoPadding(sp); + +#if NCURSES_EXT_FUNCS + sp->_default_color = FALSE; + sp->_has_sgr_39_49 = FALSE; + + /* + * Set our assumption of the terminal's default foreground and background + * colors. The curs_color man-page states that we can assume that the + * background is black. The origin of this assumption appears to be + * terminals that displayed colored text, but no colored backgrounds, e.g., + * the first colored terminals around 1980. More recent ones with better + * technology can display not only colored backgrounds, but all + * combinations. So a terminal might be something other than "white" on + * black (green/black looks monochrome too), but black on white or even + * on ivory. + * + * White-on-black is the simplest thing to use for monochrome. Almost + * all applications that use color paint both text and background, so + * the distinction is moot. But a few do not - which is why we leave this + * configurable (a better solution is to use assume_default_colors() for + * the rare applications that do require that sort of appearance, since + * is appears that more users expect to be able to make a white-on-black + * or black-on-white display under control of the application than not). + */ +#ifdef USE_ASSUMED_COLOR + sp->_default_fg = COLOR_WHITE; + sp->_default_bg = COLOR_BLACK; +#else + sp->_default_fg = COLOR_DEFAULT; + sp->_default_bg = COLOR_DEFAULT; +#endif + + /* + * Allow those assumed/default color assumptions to be overridden at + * runtime: + */ + if ((env = getenv("NCURSES_ASSUMED_COLORS")) != 0) { + int fg, bg; + char sep1, sep2; + int count = sscanf(env, "%d%c%d%c", &fg, &sep1, &bg, &sep2); + if (count >= 1) { + sp->_default_fg = ((fg >= 0 && fg < MaxColors) ? fg : COLOR_DEFAULT); + if (count >= 3) { + sp->_default_bg = ((bg >= 0 && bg < MaxColors) ? bg : COLOR_DEFAULT); + } + TR(TRACE_CHARPUT | TRACE_MOVE, + ("from environment assumed fg=%d, bg=%d", + sp->_default_fg, + sp->_default_bg)); + } + } +#if USE_COLORFGBG + /* + * If rxvt's $COLORFGBG variable is set, use it to specify the assumed + * default colors. Note that rxvt (mis)uses bold colors, equating a bold + * color to that value plus 8. We'll only use the non-bold color for now - + * decide later if it is worth having default attributes as well. + */ + if (getenv("COLORFGBG") != 0) { + const char *p = getenv("COLORFGBG"); + TR(TRACE_CHARPUT | TRACE_MOVE, ("decoding COLORFGBG %s", p)); + p = extract_fgbg(p, &(sp->_default_fg)); + p = extract_fgbg(p, &(sp->_default_bg)); + if (*p) /* assume rxvt was compiled with xpm support */ + extract_fgbg(p, &(sp->_default_bg)); + TR(TRACE_CHARPUT | TRACE_MOVE, ("decoded fg=%d, bg=%d", + sp->_default_fg, sp->_default_bg)); + if (sp->_default_fg >= MaxColors) { + if (set_a_foreground != ABSENT_STRING + && !strcmp(set_a_foreground, "\033[3%p1%dm")) { + set_a_foreground = strdup("\033[3%?%p1%{8}%>%t9%e%p1%d%;m"); + } else { + sp->_default_fg %= MaxColors; + } + } + if (sp->_default_bg >= MaxColors) { + if (set_a_background != ABSENT_STRING + && !strcmp(set_a_background, "\033[4%p1%dm")) { + set_a_background = strdup("\033[4%?%p1%{8}%>%t9%e%p1%d%;m"); + } else { + sp->_default_bg %= MaxColors; + } + } + } +#endif +#endif /* NCURSES_EXT_FUNCS */ + + sp->_maxclick = DEFAULT_MAXCLICK; + sp->_mouse_event = no_mouse_event; + sp->_mouse_inline = no_mouse_inline; + sp->_mouse_parse = no_mouse_parse; + sp->_mouse_resume = no_mouse_resume; + sp->_mouse_wrap = no_mouse_wrap; + sp->_mouse_fd = -1; + + /* + * If we've no magic cookie support, we suppress attributes that xmc would + * affect, i.e., the attributes that affect the rendition of a space. + */ + sp->_ok_attributes = NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG); + if (NCURSES_SP_NAME(has_colors) (NCURSES_SP_ARG)) { + sp->_ok_attributes |= A_COLOR; + } +#ifdef USE_TERM_DRIVER + _nc_cookie_init(sp); +#else +#if USE_XMC_SUPPORT + /* + * If we have no magic-cookie support compiled-in, or if it is suppressed + * in the environment, reset the support-flag. + */ + if (magic_cookie_glitch >= 0) { + if (getenv("NCURSES_NO_MAGIC_COOKIE") != 0) { + support_cookies = FALSE; + } + } +#endif + + if (!support_cookies && magic_cookie_glitch >= 0) { + T(("will disable attributes to work w/o magic cookies")); + } + + if (magic_cookie_glitch > 0) { /* tvi, wyse */ + + sp->_xmc_triggers = sp->_ok_attributes & XMC_CONFLICT; +#if 0 + /* + * We "should" treat colors as an attribute. The wyse350 (and its + * clones) appear to be the only ones that have both colors and magic + * cookies. + */ + if (has_colors()) { + sp->_xmc_triggers |= A_COLOR; + } +#endif + sp->_xmc_suppress = sp->_xmc_triggers & (chtype) ~(A_BOLD); + + T(("magic cookie attributes %s", _traceattr(sp->_xmc_suppress))); + /* + * Supporting line-drawing may be possible. But make the regular + * video attributes work first. + */ + acs_chars = ABSENT_STRING; + ena_acs = ABSENT_STRING; + enter_alt_charset_mode = ABSENT_STRING; + exit_alt_charset_mode = ABSENT_STRING; +#if USE_XMC_SUPPORT + /* + * To keep the cookie support simple, suppress all of the optimization + * hooks except for clear_screen and the cursor addressing. + */ + if (support_cookies) { + clr_eol = ABSENT_STRING; + clr_eos = ABSENT_STRING; + set_attributes = ABSENT_STRING; + } +#endif + } else if (magic_cookie_glitch == 0) { /* hpterm */ + } + + /* + * If magic cookies are not supported, cancel the strings that set + * video attributes. + */ + if (!support_cookies && magic_cookie_glitch >= 0) { + magic_cookie_glitch = ABSENT_NUMERIC; + set_attributes = ABSENT_STRING; + enter_blink_mode = ABSENT_STRING; + enter_bold_mode = ABSENT_STRING; + enter_dim_mode = ABSENT_STRING; + enter_reverse_mode = ABSENT_STRING; + enter_standout_mode = ABSENT_STRING; + enter_underline_mode = ABSENT_STRING; + } + + /* initialize normal acs before wide, since we use mapping in the latter */ +#if !USE_WIDEC_SUPPORT + if (_nc_unicode_locale() && _nc_locale_breaks_acs(sp->_term)) { + acs_chars = NULL; + ena_acs = NULL; + enter_alt_charset_mode = NULL; + exit_alt_charset_mode = NULL; + set_attributes = NULL; + } +#endif +#endif + + NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_ARG); +#if USE_WIDEC_SUPPORT + sp->_screen_unicode = _nc_unicode_locale(); + if (_nc_wacs == 0) { + _nc_init_wacs(); + } + if (_nc_wacs == 0) { + ReturnScreenError(); + } + + sp->_screen_acs_fix = (sp->_screen_unicode + && _nc_locale_breaks_acs(sp->_term)); +#endif + env = _nc_get_locale(); + sp->_legacy_coding = ((env == 0) + || !strcmp(env, "C") + || !strcmp(env, "POSIX")); + T(("legacy-coding %d", sp->_legacy_coding)); + + sp->_nc_sp_idcok = TRUE; + sp->_nc_sp_idlok = FALSE; + + sp->oldhash = 0; + sp->newhash = 0; + + T(("creating newscr")); + NewScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, + 0, 0); + if (NewScreen(sp) == 0) { + ReturnScreenError(); + } + T(("creating curscr")); + CurScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, + 0, 0); + if (CurScreen(sp) == 0) { + ReturnScreenError(); + } +#if !USE_REENTRANT + newscr = NewScreen(sp); + curscr = CurScreen(sp); +#endif +#if USE_SIZECHANGE + sp->_resize = NCURSES_SP_NAME(resizeterm); + sp->_ungetch = safe_ungetch; +#endif + + NewScreen(sp)->_clear = TRUE; + CurScreen(sp)->_clear = FALSE; + + /* + * Get the current tty-modes. setupterm() may already have done this, + * unless we use the term-driver. + */ +#ifndef USE_TERM_DRIVER + if (cur_term != 0 && + !memcmp(&cur_term->Ottyb, &null_TTY, sizeof(TTY))) +#endif + { + NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_ARG); + NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_ARG); + } + + if (safe_ripoff_sp && safe_ripoff_sp != safe_ripoff_stack) { + ripoff_t *rop; + + for (rop = safe_ripoff_stack; + rop != safe_ripoff_sp && (rop - safe_ripoff_stack) < N_RIPS; + rop++) { + + /* If we must simulate soft labels, grab off the line to be used. + We assume that we must simulate, if it is none of the standard + formats (4-4 or 3-2-3) for which there may be some hardware + support. */ + if (rop->hook == _nc_slk_initialize) { + if (!TerminalOf(sp)) { + continue; + } + if (!(NumLabels <= 0 || !SLK_STDFMT(slk_format))) { + continue; + } + } + if (rop->hook) { + int count; + WINDOW *w; + + count = (rop->line < 0) ? -rop->line : rop->line; + T(("ripping off %i lines at %s", count, + ((rop->line < 0) + ? "bottom" + : "top"))); + + w = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx + count, scolumns, + ((rop->line < 0) + ? sp->_lines_avail - count + : 0), + 0); + if (w) { + rop->win = w; + rop->hook(w, scolumns); + } else { + ReturnScreenError(); + } + if (rop->line < 0) { + bottom_stolen += count; + } else { + sp->_topstolen = (NCURSES_SIZE_T) (sp->_topstolen + count); + } + sp->_lines_avail = (NCURSES_SIZE_T) (sp->_lines_avail - count); + } + } + /* reset the stack */ + safe_ripoff_sp = safe_ripoff_stack; + } + + T(("creating stdscr")); + (void) bottom_stolen; + assert((sp->_lines_avail + sp->_topstolen + bottom_stolen) == slines); + if ((StdScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx + sp->_lines_avail, + scolumns, 0, 0)) == 0) { + ReturnScreenError(); + } + SET_LINES(sp->_lines_avail); +#if !USE_REENTRANT + stdscr = StdScreen(sp); +#endif + sp->_prescreen = FALSE; + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_setupscreen(int slines GCC_UNUSED, + int scolumns GCC_UNUSED, + FILE *output, + int filtered, + int slk_format) +{ + SCREEN *sp = 0; + int rc = NCURSES_SP_NAME(_nc_setupscreen) (&sp, + slines, + scolumns, + output, + filtered, + slk_format); + if (rc != OK) + _nc_set_screen(0); + return rc; +} +#endif + +/* + * The internal implementation interprets line as the number of lines to rip + * off from the top or bottom. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_DCLx + int line, + int (*init) (WINDOW *, int)) +{ + int code = ERR; + TR_FUNC_BFR(1); + + START_TRACE(); + T((T_CALLED("ripoffline(%p,%d,%s)"), + (void *) SP_PARM, line, + TR_FUNC_ARG(0, init))); + +#if NCURSES_SP_FUNCS + if (SP_PARM != 0 && SP_PARM->_prescreen) +#endif + { + if (line == 0) { + code = OK; + } else { + if (safe_ripoff_sp == 0) { + safe_ripoff_sp = safe_ripoff_stack; + } + if (safe_ripoff_sp < safe_ripoff_stack + N_RIPS) { + safe_ripoff_sp->line = line; + safe_ripoff_sp->hook = init; + (safe_ripoff_sp)++; + T(("ripped-off %d:%d chunks", + (int) (safe_ripoff_sp - safe_ripoff_stack), N_RIPS)); + code = OK; + } + } + } + + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_ripoffline(int line, int (*init) (WINDOW *, int)) +{ + int rc; + + _nc_init_pthreads(); + _nc_lock_global(prescreen); + START_TRACE(); + rc = NCURSES_SP_NAME(_nc_ripoffline) (CURRENT_SCREEN_PRE, line, init); + _nc_unlock_global(prescreen); + + return rc; +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(ripoffline) (NCURSES_SP_DCLx + int line, + int (*init) (WINDOW *, int)) +{ + START_TRACE(); + return NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx + (line < 0) ? -1 : 1, + init); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +ripoffline(int line, int (*init) (WINDOW *, int)) +{ + int rc; + + _nc_init_pthreads(); + _nc_lock_global(prescreen); + START_TRACE(); + rc = NCURSES_SP_NAME(ripoffline) (CURRENT_SCREEN_PRE, line, init); + _nc_unlock_global(prescreen); + + return rc; +} +#endif diff --git a/third_party/ncurses/lib_setup.c b/third_party/ncurses/lib_setup.c new file mode 100644 index 000000000..c4b96c146 --- /dev/null +++ b/third_party/ncurses/lib_setup.c @@ -0,0 +1,1021 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * Terminal setup routines common to termcap and terminfo: + * + * use_env(bool) + * use_tioctl(bool) + * setupterm(char *, int, int *) + */ + +#include "curses.priv.h" +#include "tic.h" /* for MAX_NAME_SIZE */ + +#if HAVE_LOCALE_H +#include +#endif + +MODULE_ID("$Id: lib_setup.c,v 1.218 2022/08/13 18:12:22 tom Exp $") + +/**************************************************************************** + * + * Terminal size computation + * + ****************************************************************************/ + +#if HAVE_SIZECHANGE +# if !defined(sun) || !TERMIOS +# if HAVE_SYS_IOCTL_H +# include +# endif +# endif +#endif + +#if NEED_PTEM_H + /* On SCO, they neglected to define struct winsize in termios.h -- it is only + * in termio.h and ptem.h (the former conflicts with other definitions). + */ +# include +# include +#endif + +#if HAVE_LANGINFO_CODESET +#include +#endif + +/* + * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS, + * Solaris, IRIX) define TIOCGWINSZ and struct winsize. + */ +#ifdef TIOCGSIZE +# define IOCTL_WINSIZE TIOCGSIZE +# define STRUCT_WINSIZE struct ttysize +# define WINSIZE_ROWS(n) (int)n.ts_lines +# define WINSIZE_COLS(n) (int)n.ts_cols +#else +# ifdef TIOCGWINSZ +# define IOCTL_WINSIZE TIOCGWINSZ +# define STRUCT_WINSIZE struct winsize +# define WINSIZE_ROWS(n) (int)n.ws_row +# define WINSIZE_COLS(n) (int)n.ws_col +# endif +#endif + +/* + * Reduce explicit use of "cur_term" global variable. + */ +#undef CUR +#define CUR TerminalType(termp). + +/* + * Wrap global variables in this module. + */ +#if USE_REENTRANT + +NCURSES_EXPORT(char *) +NCURSES_PUBLIC_VAR(ttytype) (void) +{ + static char empty[] = ""; + char *result = empty; + +#if NCURSES_SP_FUNCS + if (CURRENT_SCREEN) { + TERMINAL *termp = TerminalOf(CURRENT_SCREEN); + if (termp != 0) { + result = TerminalType(termp).term_names; + } + } +#else + if (cur_term != 0) { + result = TerminalType(cur_term).term_names; + } +#endif + return result; +} + +NCURSES_EXPORT(int *) +_nc_ptr_Lines(SCREEN *sp) +{ + return ptrLines(sp); +} + +NCURSES_EXPORT(int) +NCURSES_PUBLIC_VAR(LINES) (void) +{ + return *_nc_ptr_Lines(CURRENT_SCREEN); +} + +NCURSES_EXPORT(int *) +_nc_ptr_Cols(SCREEN *sp) +{ + return ptrCols(sp); +} + +NCURSES_EXPORT(int) +NCURSES_PUBLIC_VAR(COLS) (void) +{ + return *_nc_ptr_Cols(CURRENT_SCREEN); +} + +NCURSES_EXPORT(int *) +_nc_ptr_Tabsize(SCREEN *sp) +{ + return ptrTabsize(sp); +} + +NCURSES_EXPORT(int) +NCURSES_PUBLIC_VAR(TABSIZE) (void) +{ + return *_nc_ptr_Tabsize(CURRENT_SCREEN); +} +#else +NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = ""; +NCURSES_EXPORT_VAR(int) LINES = 0; +NCURSES_EXPORT_VAR(int) COLS = 0; +NCURSES_EXPORT_VAR(int) TABSIZE = 8; +#endif + +#if NCURSES_EXT_FUNCS +NCURSES_EXPORT(int) +NCURSES_SP_NAME(set_tabsize) (NCURSES_SP_DCLx int value) +{ + int code = OK; + if (value <= 0) { + code = ERR; + } else { +#if USE_REENTRANT + if (SP_PARM) { + SP_PARM->_TABSIZE = value; + } else { + code = ERR; + } +#else + (void) SP_PARM; + TABSIZE = value; +#endif + } + return code; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +set_tabsize(int value) +{ + return NCURSES_SP_NAME(set_tabsize) (CURRENT_SCREEN, value); +} +#endif +#endif /* NCURSES_EXT_FUNCS */ + +#if USE_SIGWINCH +/* + * If we have a pending SIGWINCH, set the flag in each screen. + */ +NCURSES_EXPORT(int) +_nc_handle_sigwinch(SCREEN *sp) +{ + SCREEN *scan; + + if (_nc_globals.have_sigwinch) { + _nc_globals.have_sigwinch = 0; + + for (each_screen(scan)) { + scan->_sig_winch = TRUE; + } + } + + return (sp ? sp->_sig_winch : 0); +} + +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(use_env) (NCURSES_SP_DCLx bool f) +{ + START_TRACE(); + T((T_CALLED("use_env(%p,%d)"), (void *) SP_PARM, (int) f)); +#if NCURSES_SP_FUNCS + if (IsPreScreen(SP_PARM)) { + SP_PARM->_use_env = f; + } +#else + _nc_prescreen.use_env = f; +#endif + returnVoid; +} + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(use_tioctl) (NCURSES_SP_DCLx bool f) +{ + START_TRACE(); + T((T_CALLED("use_tioctl(%p,%d)"), (void *) SP_PARM, (int) f)); +#if NCURSES_SP_FUNCS + if (IsPreScreen(SP_PARM)) { + SP_PARM->use_tioctl = f; + } +#else + _nc_prescreen.use_tioctl = f; +#endif + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +use_env(bool f) +{ + START_TRACE(); + T((T_CALLED("use_env(%d)"), (int) f)); + _nc_prescreen.use_env = f; + returnVoid; +} + +NCURSES_EXPORT(void) +use_tioctl(bool f) +{ + START_TRACE(); + T((T_CALLED("use_tioctl(%d)"), (int) f)); + _nc_prescreen.use_tioctl = f; + returnVoid; +} +#endif + +NCURSES_EXPORT(void) +_nc_get_screensize(SCREEN *sp, +#ifdef USE_TERM_DRIVER + TERMINAL *termp, +#endif + int *linep, int *colp) +/* Obtain lines/columns values from the environment and/or terminfo entry */ +{ +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB; + int my_tabsize; + + assert(termp != 0 && linep != 0 && colp != 0); + TCB = (TERMINAL_CONTROL_BLOCK *) termp; + + my_tabsize = TCB->info.tabsize; + TCB->drv->td_size(TCB, linep, colp); + +#if USE_REENTRANT + if (sp != 0) { + sp->_TABSIZE = my_tabsize; + } +#else + (void) sp; + TABSIZE = my_tabsize; +#endif + T(("TABSIZE = %d", my_tabsize)); +#else /* !USE_TERM_DRIVER */ + TERMINAL *termp = cur_term; + int my_tabsize; + bool useEnv = _nc_prescreen.use_env; + bool useTioctl = _nc_prescreen.use_tioctl; + +#ifdef EXP_WIN32_DRIVER + /* If we are here, then Windows console is used in terminfo mode. + We need to figure out the size using the console API + */ + _nc_console_size(linep, colp); + T(("screen size: winconsole lines = %d columns = %d", *linep, *colp)); +#else + /* figure out the size of the screen */ + T(("screen size: terminfo lines = %d columns = %d", lines, columns)); + + *linep = (int) lines; + *colp = (int) columns; +#endif + +#if NCURSES_SP_FUNCS + if (sp) { + useEnv = sp->_use_env; + useTioctl = sp->use_tioctl; + } +#endif + + if (useEnv || useTioctl) { +#ifdef __EMX__ + { + int screendata[2]; + _scrsize(screendata); + *colp = screendata[0]; + *linep = ((sp != 0 && sp->_filtered) + ? 1 + : screendata[1]); + T(("EMX screen size: environment LINES = %d COLUMNS = %d", + *linep, *colp)); + } +#endif +#if HAVE_SIZECHANGE + /* try asking the OS */ + if (NC_ISATTY(cur_term->Filedes)) { + STRUCT_WINSIZE size; + + errno = 0; + do { + if (ioctl(cur_term->Filedes, IOCTL_WINSIZE, &size) >= 0) { + *linep = ((sp != 0 && sp->_filtered) + ? 1 + : WINSIZE_ROWS(size)); + *colp = WINSIZE_COLS(size); + T(("SYS screen size: environment LINES = %d COLUMNS = %d", + *linep, *colp)); + break; + } + } while + (errno == EINTR); + } +#endif /* HAVE_SIZECHANGE */ + + if (useEnv) { + int value; + + if (useTioctl) { + /* + * If environment variables are used, update them. + */ + if ((sp == 0 || !sp->_filtered) && _nc_getenv_num("LINES") > 0) { + _nc_setenv_num("LINES", *linep); + } + if (_nc_getenv_num("COLUMNS") > 0) { + _nc_setenv_num("COLUMNS", *colp); + } + } + + /* + * Finally, look for environment variables. + * + * Solaris lets users override either dimension with an environment + * variable. + */ + if ((value = _nc_getenv_num("LINES")) > 0) { + *linep = value; + T(("screen size: environment LINES = %d", *linep)); + } + if ((value = _nc_getenv_num("COLUMNS")) > 0) { + *colp = value; + T(("screen size: environment COLUMNS = %d", *colp)); + } + } + + /* if we can't get dynamic info about the size, use static */ + if (*linep <= 0) { + *linep = (int) lines; + } + if (*colp <= 0) { + *colp = (int) columns; + } + + /* the ultimate fallback, assume fixed 24x80 size */ + if (*linep <= 0) { + *linep = 24; + } + if (*colp <= 0) { + *colp = 80; + } + + /* + * Put the derived values back in the screen-size caps, so + * tigetnum() and tgetnum() will do the right thing. + */ + lines = (NCURSES_INT2) (*linep); + columns = (NCURSES_INT2) (*colp); +#if NCURSES_EXT_NUMBERS +#define OldNumber(termp,name) \ + (termp)->type.Numbers[(&name - (termp)->type2.Numbers)] + OldNumber(termp, lines) = (short) (*linep); + OldNumber(termp, columns) = (short) (*colp); +#endif + } + + T(("screen size is %dx%d", *linep, *colp)); + + if (VALID_NUMERIC(init_tabs)) + my_tabsize = (int) init_tabs; + else + my_tabsize = 8; + +#if USE_REENTRANT + if (sp != 0) + sp->_TABSIZE = my_tabsize; +#else + TABSIZE = my_tabsize; +#endif + T(("TABSIZE = %d", TABSIZE)); +#endif /* USE_TERM_DRIVER */ +} + +#if USE_SIZECHANGE +NCURSES_EXPORT(void) +_nc_update_screensize(SCREEN *sp) +{ + int new_lines; + int new_cols; + +#ifdef USE_TERM_DRIVER + int old_lines; + int old_cols; + + assert(sp != 0); + + CallDriver_2(sp, td_getsize, &old_lines, &old_cols); + +#else + TERMINAL *termp = cur_term; + int old_lines = lines; + int old_cols = columns; +#endif + + if (sp != 0) { + TINFO_GET_SIZE(sp, sp->_term, &new_lines, &new_cols); + /* + * See is_term_resized() and resizeterm(). + * We're doing it this way because those functions belong to the upper + * ncurses library, while this resides in the lower terminfo library. + */ + if (sp->_resize != 0) { + if ((new_lines != old_lines) || (new_cols != old_cols)) { + sp->_resize(NCURSES_SP_ARGx new_lines, new_cols); + } else if (sp->_sig_winch && (sp->_ungetch != 0)) { + sp->_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */ + } + sp->_sig_winch = FALSE; + } + } +} +#endif /* USE_SIZECHANGE */ + +/**************************************************************************** + * + * Terminal setup + * + ****************************************************************************/ + +#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP +/* + * Return 1 if entry found, 0 if not found, -1 if database not accessible, + * just like tgetent(). + */ +int +_nc_setup_tinfo(const char *const tn, TERMTYPE2 *const tp) +{ + char filename[PATH_MAX]; + int status = _nc_read_entry2(tn, filename, tp); + + /* + * If we have an entry, force all of the cancelled strings to null + * pointers so we don't have to test them in the rest of the library. + * (The terminfo compiler bypasses this logic, since it must know if + * a string is cancelled, for merging entries). + */ + if (status == TGETENT_YES) { + unsigned n; + for_each_boolean(n, tp) { + if (!VALID_BOOLEAN(tp->Booleans[n])) + tp->Booleans[n] = FALSE; + } + for_each_string(n, tp) { + if (tp->Strings[n] == CANCELLED_STRING) + tp->Strings[n] = ABSENT_STRING; + } + } + return (status); +} +#endif + +/* +** Take the real command character out of the CC environment variable +** and substitute it in for the prototype given in 'command_character'. +*/ +void +_nc_tinfo_cmdch(TERMINAL *termp, int proto) +{ + char *tmp; + + /* + * Only use the character if the string is a single character, + * since it is fairly common for developers to set the C compiler + * name as an environment variable - using the same symbol. + */ + if ((tmp = getenv("CC")) != 0 && strlen(tmp) == 1) { + unsigned i; + char CC = *tmp; + + for_each_string(i, &(termp->type)) { + for (tmp = termp->type.Strings[i]; tmp && *tmp; tmp++) { + if (UChar(*tmp) == proto) + *tmp = CC; + } + } + } +} + +/* + * Find the locale which is in effect. + */ +NCURSES_EXPORT(char *) +_nc_get_locale(void) +{ + char *env; +#if HAVE_LOCALE_H + /* + * This is preferable to using getenv() since it ensures that we are using + * the locale which was actually initialized by the application. + */ + env = setlocale(LC_CTYPE, 0); +#else + if (((env = getenv("LANG")) != 0 && *env != '\0') + || ((env = getenv("LC_CTYPE")) != 0 && *env != '\0') + || ((env = getenv("LC_ALL")) != 0 && *env != '\0')) { + ; + } +#endif + T(("_nc_get_locale %s", _nc_visbuf(env))); + return env; +} + +/* + * Check if we are running in a UTF-8 locale. + */ +NCURSES_EXPORT(int) +_nc_unicode_locale(void) +{ + int result = 0; +#if defined(_NC_WINDOWS) && USE_WIDEC_SUPPORT + result = 1; +#elif HAVE_LANGINFO_CODESET + char *env = nl_langinfo(CODESET); + result = !strcmp(env, "UTF-8"); + T(("_nc_unicode_locale(%s) ->%d", env, result)); +#else + char *env = _nc_get_locale(); + if (env != 0) { + if (strstr(env, ".UTF-8") != 0) { + result = 1; + T(("_nc_unicode_locale(%s) ->%d", env, result)); + } + } +#endif + return result; +} + +#define CONTROL_N(s) ((s) != 0 && strstr(s, "\016") != 0) +#define CONTROL_O(s) ((s) != 0 && strstr(s, "\017") != 0) + +/* + * Check for known broken cases where a UTF-8 locale breaks the alternate + * character set. + */ +NCURSES_EXPORT(int) +_nc_locale_breaks_acs(TERMINAL *termp) +{ + const char *env_name = "NCURSES_NO_UTF8_ACS"; + const char *env; + int value; + int result = 0; + + T((T_CALLED("_nc_locale_breaks_acs:%d"), result)); + if (getenv(env_name) != 0) { + result = _nc_getenv_num(env_name); + } else if ((value = tigetnum("U8")) >= 0) { + result = value; /* use extension feature */ + } else if ((env = getenv("TERM")) != 0) { + if (strstr(env, "linux")) { + result = 1; /* always broken */ + } else if (strstr(env, "screen") != 0 + && ((env = getenv("TERMCAP")) != 0 + && strstr(env, "screen") != 0) + && strstr(env, "hhII00") != 0) { + if (CONTROL_N(enter_alt_charset_mode) || + CONTROL_O(enter_alt_charset_mode) || + CONTROL_N(set_attributes) || + CONTROL_O(set_attributes)) { + result = 1; + } + } + } + returnCode(result); +} + +NCURSES_EXPORT(int) +TINFO_SETUP_TERM(TERMINAL **tp, + const char *tname, + int Filedes, + int *errret, + int reuse) +{ +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = 0; +#endif + TERMINAL *termp; + SCREEN *sp = 0; + char *myname; + int code = ERR; + + START_TRACE(); + +#ifdef USE_TERM_DRIVER + T((T_CALLED("_nc_setupterm_ex(%p,%s,%d,%p)"), + (void *) tp, _nc_visbuf(tname), Filedes, (void *) errret)); + + if (tp == 0) { + ret_error0(TGETENT_ERR, + "Invalid parameter, internal error.\n"); + } else + termp = *tp; +#else + termp = cur_term; + T((T_CALLED("setupterm(%s,%d,%p)"), _nc_visbuf(tname), Filedes, (void *) errret)); +#endif + + if (tname == 0) { + tname = getenv("TERM"); +#if defined(EXP_WIN32_DRIVER) + if (!VALID_TERM_ENV(tname, NO_TERMINAL)) { + T(("Failure with TERM=%s", NonNull(tname))); + ret_error0(TGETENT_ERR, "TERM environment variable not set.\n"); + } +#elif defined(USE_TERM_DRIVER) + if (!NonEmpty(tname)) + tname = "unknown"; +#else + if (!NonEmpty(tname)) { + T(("Failure with TERM=%s", NonNull(tname))); + ret_error0(TGETENT_ERR, "TERM environment variable not set.\n"); + } +#endif + } + myname = strdup(tname); + + if (strlen(myname) > MAX_NAME_SIZE) { + ret_error(TGETENT_ERR, + "TERM environment must be <= %d characters.\n", + MAX_NAME_SIZE, + free(myname)); + } + + T(("your terminal name is %s", myname)); + + /* + * Allow output redirection. This is what SVr3 does. If stdout is + * directed to a file, screen updates go to standard error. + */ + if (Filedes == STDOUT_FILENO && !NC_ISATTY(Filedes)) + Filedes = STDERR_FILENO; +#if defined(EXP_WIN32_DRIVER) + if (Filedes != STDERR_FILENO && NC_ISATTY(Filedes)) + _setmode(Filedes, _O_BINARY); +#endif + + /* + * Check if we have already initialized to use this terminal. If so, we + * do not need to re-read the terminfo entry, or obtain TTY settings. + * + * This is an improvement on SVr4 curses. If an application mixes curses + * and termcap calls, it may call both initscr and tgetent. This is not + * really a good thing to do, but can happen if someone tries using ncurses + * with the readline library. The problem we are fixing is that when + * tgetent calls setupterm, the resulting Ottyb struct in cur_term is + * zeroed. A subsequent call to endwin uses the zeroed terminal settings + * rather than the ones saved in initscr. So we check if cur_term appears + * to contain terminal settings for the same output file as our current + * call - and copy those terminal settings. (SVr4 curses does not do this, + * however applications that are working around the problem will still work + * properly with this feature). + */ + if (reuse + && (termp != 0) + && termp->Filedes == Filedes + && termp->_termname != 0 + && !strcmp(termp->_termname, myname) + && _nc_name_match(TerminalType(termp).term_names, myname, "|")) { + T(("reusing existing terminal information and mode-settings")); + code = OK; +#ifdef USE_TERM_DRIVER + TCB = (TERMINAL_CONTROL_BLOCK *) termp; +#endif + } else { +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *my_tcb; + termp = 0; + if ((my_tcb = typeCalloc(TERMINAL_CONTROL_BLOCK, 1)) != 0) + termp = &(my_tcb->term); +#else + int status; + + termp = typeCalloc(TERMINAL, 1); +#endif + if (termp == 0) { + ret_error1(TGETENT_ERR, + "Not enough memory to create terminal structure.\n", + myname, free(myname)); + } + ++_nc_globals.terminal_count; +#if HAVE_SYSCONF + { + long limit; +#ifdef LINE_MAX + limit = LINE_MAX; +#else + limit = _nc_globals.getstr_limit; +#endif +#ifdef _SC_LINE_MAX + if (limit < sysconf(_SC_LINE_MAX)) + limit = sysconf(_SC_LINE_MAX); +#endif + if (_nc_globals.getstr_limit < (int) limit) + _nc_globals.getstr_limit = (int) limit; + } +#endif /* HAVE_SYSCONF */ + T(("using %d for getstr limit", _nc_globals.getstr_limit)); + +#ifdef USE_TERM_DRIVER + INIT_TERM_DRIVER(); + TCB = (TERMINAL_CONTROL_BLOCK *) termp; + code = _nc_globals.term_driver(TCB, myname, errret); + if (code == OK) { + termp->Filedes = (short) Filedes; + termp->_termname = strdup(myname); + } else { + ret_error1(errret ? *errret : TGETENT_ERR, + "Could not find any driver to handle terminal.\n", + myname, free(myname)); + } +#else +#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP + status = _nc_setup_tinfo(myname, &TerminalType(termp)); + T(("_nc_setup_tinfo returns %d", status)); +#else + T(("no database available")); + status = TGETENT_NO; +#endif + + /* try fallback list if entry on disk */ + if (status != TGETENT_YES) { + const TERMTYPE2 *fallback = _nc_fallback2(myname); + + if (fallback) { + T(("found fallback entry")); + _nc_copy_termtype2(&(TerminalType(termp)), fallback); + status = TGETENT_YES; + } + } + + if (status != TGETENT_YES) { + del_curterm(termp); + if (status == TGETENT_ERR) { + free(myname); + ret_error0(status, "terminals database is inaccessible\n"); + } else if (status == TGETENT_NO) { + ret_error1(status, "unknown terminal type.\n", + myname, free(myname)); + } else { + free(myname); + ret_error0(status, "unexpected return-code\n"); + } + } +#if NCURSES_EXT_NUMBERS + _nc_export_termtype2(&termp->type, &TerminalType(termp)); +#endif +#if !USE_REENTRANT + save_ttytype(termp); +#endif + + termp->Filedes = (short) Filedes; + termp->_termname = strdup(myname); + + set_curterm(termp); + + if (command_character) + _nc_tinfo_cmdch(termp, UChar(*command_character)); + + /* + * If an application calls setupterm() rather than initscr() or + * newterm(), we will not have the def_prog_mode() call in + * _nc_setupscreen(). Do it now anyway, so we can initialize the + * baudrate. Also get the shell-mode so that erasechar() works. + */ + if (NC_ISATTY(Filedes)) { + NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_ARG); + NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_ARG); + NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG); + } + code = OK; +#endif + } + +#ifdef USE_TERM_DRIVER + *tp = termp; + NCURSES_SP_NAME(set_curterm) (sp, termp); + TCB->drv->td_init(TCB); +#else + sp = SP; +#endif + + /* + * We should always check the screensize, just in case. + */ + TINFO_GET_SIZE(sp, termp, ptrLines(sp), ptrCols(sp)); + + if (errret) + *errret = TGETENT_YES; + +#ifndef USE_TERM_DRIVER + if (generic_type) { + /* + * BSD 4.3's termcap contains mis-typed "gn" for wy99. Do a sanity + * check before giving up. + */ + if ((VALID_STRING(cursor_address) + || (VALID_STRING(cursor_down) && VALID_STRING(cursor_home))) + && VALID_STRING(clear_screen)) { + ret_error1(TGETENT_YES, "terminal is not really generic.\n", + myname, free(myname)); + } else { + del_curterm(termp); + ret_error1(TGETENT_NO, "I need something more specific.\n", + myname, free(myname)); + } + } else if (hard_copy) { + ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", + myname, free(myname)); + } +#endif + free(myname); + returnCode(code); +} + +#ifdef USE_PTHREADS +/* + * Returns a non-null pointer unless a new screen should be allocated because + * no match was found in the pre-screen cache. + */ +NCURSES_EXPORT(SCREEN *) +_nc_find_prescr(void) +{ + SCREEN *result = 0; + PRESCREEN_LIST *p; + pthread_t id = GetThreadID(); + for (p = _nc_prescreen.allocated; p != 0; p = p->next) { + if (p->id == id) { + result = p->sp; + break; + } + } + return result; +} + +/* + * Tells ncurses to forget that this thread was associated with the pre-screen + * cache. It does not modify the pre-screen cache itself, since that is used + * for creating new screens. + */ +NCURSES_EXPORT(void) +_nc_forget_prescr(void) +{ + PRESCREEN_LIST *p, *q; + pthread_t id = GetThreadID(); + _nc_lock_global(screen); + for (p = _nc_prescreen.allocated, q = 0; p != 0; q = p, p = p->next) { + if (p->id == id) { + if (q) { + q->next = p->next; + } else { + _nc_prescreen.allocated = p->next; + } + free(p); + break; + } + } + _nc_unlock_global(screen); +} +#endif /* USE_PTHREADS */ + +#if NCURSES_SP_FUNCS +/* + * In case of handling multiple screens, we need to have a screen before + * initialization in _nc_setupscreen takes place. This is to extend the + * substitute for some of the stuff in _nc_prescreen, especially for slk and + * ripoff handling which should be done per screen. + */ +NCURSES_EXPORT(SCREEN *) +new_prescr(void) +{ + SCREEN *sp; + + START_TRACE(); + T((T_CALLED("new_prescr()"))); + + _nc_lock_global(screen); + if ((sp = _nc_find_prescr()) == 0) { + sp = _nc_alloc_screen_sp(); + T(("_nc_alloc_screen_sp %p", (void *) sp)); + if (sp != 0) { +#ifdef USE_PTHREADS + PRESCREEN_LIST *p = typeCalloc(PRESCREEN_LIST, 1); + if (p != 0) { + p->id = GetThreadID(); + p->sp = sp; + p->next = _nc_prescreen.allocated; + _nc_prescreen.allocated = p; + } +#else + _nc_prescreen.allocated = sp; +#endif + sp->rsp = sp->rippedoff; + sp->_filtered = _nc_prescreen.filter_mode; + sp->_use_env = _nc_prescreen.use_env; +#if NCURSES_NO_PADDING + sp->_no_padding = _nc_prescreen._no_padding; +#endif + sp->slk_format = 0; + sp->_slk = 0; + sp->_prescreen = TRUE; + SP_PRE_INIT(sp); +#if USE_REENTRANT + sp->_TABSIZE = _nc_prescreen._TABSIZE; + sp->_ESCDELAY = _nc_prescreen._ESCDELAY; +#endif + } + } else { + T(("_nc_alloc_screen_sp %p (reuse)", (void *) sp)); + } + _nc_unlock_global(screen); + returnSP(sp); +} +#endif + +#ifdef USE_TERM_DRIVER +/* + * This entrypoint is called from tgetent() to allow a special case of reusing + * the same TERMINAL data (see comment). + */ +NCURSES_EXPORT(int) +_nc_setupterm(const char *tname, + int Filedes, + int *errret, + int reuse) +{ + int rc = ERR; + TERMINAL *termp = 0; + + _nc_init_pthreads(); + _nc_lock_global(prescreen); + START_TRACE(); + if (TINFO_SETUP_TERM(&termp, tname, Filedes, errret, reuse) == OK) { + _nc_forget_prescr(); + if (NCURSES_SP_NAME(set_curterm) (CURRENT_SCREEN_PRE, termp) != 0) { + rc = OK; + } + } + _nc_unlock_global(prescreen); + + return rc; +} +#endif + +/* + * setupterm(termname, Filedes, errret) + * + * Find and read the appropriate object file for the terminal + * Make cur_term point to the structure. + */ +NCURSES_EXPORT(int) +setupterm(const char *tname, int Filedes, int *errret) +{ + START_TRACE(); + return _nc_setupterm(tname, Filedes, errret, FALSE); +} diff --git a/third_party/ncurses/lib_slk.c b/third_party/ncurses/lib_slk.c new file mode 100644 index 000000000..72021b6c9 --- /dev/null +++ b/third_party/ncurses/lib_slk.c @@ -0,0 +1,254 @@ +/**************************************************************************** + * Copyright 2020,2022 Thomas E. Dickey * + * Copyright 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Authors: * + * Gerhard Fuernkranz 1993 (original) * + * Zeyd M. Ben-Halim 1992,1995 (sic) * + * Eric S. Raymond * + * Juergen Pfeifer 1996-on * + * Thomas E. Dickey * + ****************************************************************************/ + +/* + * lib_slk.c + * Soft key routines. + */ + +#include "curses.priv.h" +#include + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_slk.c,v 1.50 2022/08/20 18:29:22 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define NumLabels InfoOf(SP_PARM).numlabels +#define NoColorVideo InfoOf(SP_PARM).nocolorvideo +#define LabelWidth InfoOf(SP_PARM).labelwidth +#define LabelHeight InfoOf(SP_PARM).labelheight +#else +#define NumLabels num_labels +#define NoColorVideo no_color_video +#define LabelWidth label_width +#define LabelHeight label_height +#endif + +/* + * Free any memory related to soft labels, return an error. + */ +static int +slk_failed(NCURSES_SP_DCL0) +{ + if ((0 != SP_PARM) && SP_PARM->_slk) { + FreeIfNeeded(SP_PARM->_slk->ent); + free(SP_PARM->_slk); + SP_PARM->_slk = (SLK *) 0; + } + return ERR; +} + +NCURSES_EXPORT(int) +_nc_format_slks(NCURSES_SP_DCLx int cols) +{ + int gap, i, x; + int max_length; + + if (!SP_PARM || !SP_PARM->_slk) + return ERR; + + max_length = SP_PARM->_slk->maxlen; + if (SP_PARM->slk_format >= 3) { /* PC style */ + gap = (cols - 3 * (3 + 4 * max_length)) / 2; + + if (gap < 1) + gap = 1; + + for (i = x = 0; i < SP_PARM->_slk->maxlab; i++) { + SP_PARM->_slk->ent[i].ent_x = x; + x += max_length; + x += (i == 3 || i == 7) ? gap : 1; + } + } else { + if (SP_PARM->slk_format == 2) { /* 4-4 */ + gap = cols - (int) (SP_PARM->_slk->maxlab * max_length) - 6; + + if (gap < 1) + gap = 1; + for (i = x = 0; i < SP_PARM->_slk->maxlab; i++) { + SP_PARM->_slk->ent[i].ent_x = x; + x += max_length; + x += (i == 3) ? gap : 1; + } + } else { + if (SP_PARM->slk_format == 1) { /* 1 -> 3-2-3 */ + gap = (cols - (SP_PARM->_slk->maxlab * max_length) - 5) + / 2; + + if (gap < 1) + gap = 1; + for (i = x = 0; i < SP_PARM->_slk->maxlab; i++) { + SP_PARM->_slk->ent[i].ent_x = x; + x += max_length; + x += (i == 2 || i == 4) ? gap : 1; + } + } else { + return slk_failed(NCURSES_SP_ARG); + } + } + } + SP_PARM->_slk->dirty = TRUE; + + return OK; +} + +/* + * Initialize soft labels. + * Called from newterm() + */ +NCURSES_EXPORT(int) +_nc_slk_initialize(WINDOW *stwin, int cols) +{ + int i; + int res = OK; + size_t max_length; + SCREEN *sp; + int numlab; + + T((T_CALLED("_nc_slk_initialize()"))); + + assert(stwin); + + sp = _nc_screen_of(stwin); + if (0 == sp) + returnCode(ERR); + + assert(TerminalOf(SP_PARM)); + + numlab = NumLabels; + + if (SP_PARM->_slk) { /* we did this already, so simply return */ + returnCode(OK); + } else if ((SP_PARM->_slk = typeCalloc(SLK, 1)) == 0) + returnCode(ERR); + + if (!SP_PARM->slk_format) + SP_PARM->slk_format = _nc_globals.slk_format; + + /* + * If we use colors, vidputs() will suppress video attributes that conflict + * with colors. In that case, we're still guaranteed that "reverse" would + * work. + */ + if ((NoColorVideo & 1) == 0) + SetAttr(SP_PARM->_slk->attr, A_STANDOUT); + else + SetAttr(SP_PARM->_slk->attr, A_REVERSE); + + SP_PARM->_slk->maxlab = (short) ((numlab > 0) + ? numlab + : MAX_SKEY(SP_PARM->slk_format)); + SP_PARM->_slk->maxlen = (short) ((numlab > 0) + ? LabelWidth * LabelHeight + : MAX_SKEY_LEN(SP_PARM->slk_format)); + SP_PARM->_slk->labcnt = (short) ((SP_PARM->_slk->maxlab < MAX_SKEY(SP_PARM->slk_format)) + ? MAX_SKEY(SP_PARM->slk_format) + : SP_PARM->_slk->maxlab); + + if (SP_PARM->_slk->maxlen <= 0 + || SP_PARM->_slk->labcnt <= 0 + || (SP_PARM->_slk->ent = typeCalloc(slk_ent, + (size_t) SP_PARM->_slk->labcnt)) + == NULL) { + free(SP_PARM->_slk->ent); + returnCode(slk_failed(NCURSES_SP_ARG)); + } + + max_length = (size_t) SP_PARM->_slk->maxlen; + for (i = 0; i < SP_PARM->_slk->labcnt; i++) { + size_t used = max_length + 1; + + SP_PARM->_slk->ent[i].ent_text = (char *) _nc_doalloc(0, used); + if (SP_PARM->_slk->ent[i].ent_text == 0) + returnCode(slk_failed(NCURSES_SP_ARG)); + memset(SP_PARM->_slk->ent[i].ent_text, 0, used); + + SP_PARM->_slk->ent[i].form_text = (char *) _nc_doalloc(0, used); + if (SP_PARM->_slk->ent[i].form_text == 0) + returnCode(slk_failed(NCURSES_SP_ARG)); + + if (used > 1) { + memset(SP_PARM->_slk->ent[i].form_text, ' ', used - 1); + } + SP_PARM->_slk->ent[i].form_text[used - 1] = '\0'; + + SP_PARM->_slk->ent[i].visible = (char) (i < SP_PARM->_slk->maxlab); + } + + res = _nc_format_slks(NCURSES_SP_ARGx cols); + + if ((SP_PARM->_slk->win = stwin) == NULL) { + returnCode(slk_failed(NCURSES_SP_ARG)); + } + + /* We now reset the format so that the next newterm has again + * per default no SLK keys and may call slk_init again to + * define a new layout. (juergen 03-Mar-1999) + */ + _nc_globals.slk_format = 0; + returnCode(res); +} + +/* + * Restore the soft labels on the screen. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_restore) (NCURSES_SP_DCL0) +{ + T((T_CALLED("slk_restore(%p)"), (void *) SP_PARM)); + + if (0 == SP_PARM) + returnCode(ERR); + if (SP_PARM->_slk == NULL) + returnCode(ERR); + SP_PARM->_slk->hidden = FALSE; + SP_PARM->_slk->dirty = TRUE; + + returnCode(NCURSES_SP_NAME(slk_refresh) (NCURSES_SP_ARG)); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_restore(void) +{ + return NCURSES_SP_NAME(slk_restore) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_slk_wset.c b/third_party/ncurses/lib_slk_wset.c new file mode 100644 index 000000000..4c944459b --- /dev/null +++ b/third_party/ncurses/lib_slk_wset.c @@ -0,0 +1,78 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2003-2011,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +/* + * lib_slk_wset.c + * Set soft label text. + */ +#include "curses.priv.h" + +#if HAVE_WCTYPE_H +#include +#endif + +MODULE_ID("$Id: lib_slk_wset.c,v 1.15 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +slk_wset(int i, const wchar_t *astr, int format) +{ + int result = ERR; + const wchar_t *str; + mbstate_t state; + + T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format)); + + if (astr != 0) { + size_t arglen; + + init_mb(state); + str = astr; + + if ((arglen = wcsrtombs(NULL, &str, (size_t) 0, &state)) != (size_t) -1) { + char *mystr; + + if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) { + str = astr; + if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) { + /* glibc documentation claims that the terminating L'\0' + * is written, but it is not... + */ + mystr[arglen] = 0; + result = slk_set(i, mystr, format); + } + free(mystr); + } + } + } + returnCode(result); +} diff --git a/third_party/ncurses/lib_slkatr_set.c b/third_party/ncurses/lib_slkatr_set.c new file mode 100644 index 000000000..d794ee555 --- /dev/null +++ b/third_party/ncurses/lib_slkatr_set.c @@ -0,0 +1,81 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1998 * + * and: Thomas E. Dickey 2005-on * + ****************************************************************************/ + +/* + * lib_slkatr_set.c + * Soft key routines. + * Set the label's attributes + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slkatr_set.c,v 1.17 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_attr_set) (NCURSES_SP_DCLx + const attr_t attr, + NCURSES_PAIRS_T pair_arg, + void *opts) +{ + int code = ERR; + int color_pair = pair_arg; + + T((T_CALLED("slk_attr_set(%p,%s,%d)"), + (void *) SP_PARM, + _traceattr(attr), + color_pair)); + + set_extended_pair(opts, color_pair); + if (SP_PARM != 0 + && SP_PARM->_slk != 0 + && color_pair >= 0 + && color_pair < SP_PARM->_pair_limit) { + TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + SetAttr(SP_PARM->_slk->attr, attr); + if (color_pair > 0) { + SetPair(SP_PARM->_slk->attr, color_pair); + } + TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + code = OK; + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_attr_set(const attr_t attr, NCURSES_COLOR_T pair_arg, void *opts) +{ + return NCURSES_SP_NAME(slk_attr_set) (CURRENT_SCREEN, attr, + pair_arg, opts); +} +#endif diff --git a/third_party/ncurses/lib_slkatrof.c b/third_party/ncurses/lib_slkatrof.c new file mode 100644 index 000000000..f6452d154 --- /dev/null +++ b/third_party/ncurses/lib_slkatrof.c @@ -0,0 +1,67 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2005,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1997 * + * and: Thomas E. Dickey 2005 * + ****************************************************************************/ + +/* + * lib_slkatrof.c + * Soft key routines. + * Switch off labels attributes + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slkatrof.c,v 1.12 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_attroff) (NCURSES_SP_DCLx const chtype attr) +{ + T((T_CALLED("slk_attroff(%p,%s)"), (void *) SP_PARM, _traceattr(attr))); + + if (SP_PARM != 0 && SP_PARM->_slk != 0) { + TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + RemAttr(SP_PARM->_slk->attr, attr); + if ((attr & A_COLOR) != 0) { + SetPair(SP_PARM->_slk->attr, 0); + } + TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + returnCode(OK); + } else + returnCode(ERR); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_attroff(const chtype attr) +{ + return NCURSES_SP_NAME(slk_attroff) (CURRENT_SCREEN, attr); +} +#endif diff --git a/third_party/ncurses/lib_slkatron.c b/third_party/ncurses/lib_slkatron.c new file mode 100644 index 000000000..e7214038e --- /dev/null +++ b/third_party/ncurses/lib_slkatron.c @@ -0,0 +1,67 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1997 * + * and: Thomas E. Dickey 2005 * + ****************************************************************************/ + +/* + * lib_slkatron.c + * Soft key routines. + * Switch on labels attributes + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slkatron.c,v 1.13 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_attron) (NCURSES_SP_DCLx const chtype attr) +{ + T((T_CALLED("slk_attron(%p,%s)"), (void *) SP_PARM, _traceattr(attr))); + + if (SP_PARM != 0 && SP_PARM->_slk != 0) { + TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + AddAttr(SP_PARM->_slk->attr, attr); + if ((attr & A_COLOR) != 0) { + SetPair(SP_PARM->_slk->attr, PairNumber(attr)); + } + TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + returnCode(OK); + } else + returnCode(ERR); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_attron(const chtype attr) +{ + return NCURSES_SP_NAME(slk_attron) (CURRENT_SCREEN, attr); +} +#endif diff --git a/third_party/ncurses/lib_slkatrset.c b/third_party/ncurses/lib_slkatrset.c new file mode 100644 index 000000000..3296b8f43 --- /dev/null +++ b/third_party/ncurses/lib_slkatrset.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2005,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1997 * + * and: Thomas E. Dickey 2005 * + ****************************************************************************/ + +/* + * lib_slkatrset.c + * Soft key routines. + * Set the labels attributes + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slkatrset.c,v 1.11 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_attrset) (NCURSES_SP_DCLx const chtype attr) +{ + T((T_CALLED("slk_attrset(%p,%s)"), (void *) SP_PARM, _traceattr(attr))); + + if (SP_PARM != 0 && SP_PARM->_slk != 0) { + SetAttr(SP_PARM->_slk->attr, attr); + returnCode(OK); + } else + returnCode(ERR); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_attrset(const chtype attr) +{ + return NCURSES_SP_NAME(slk_attrset) (CURRENT_SCREEN, attr); +} +#endif diff --git a/third_party/ncurses/lib_slkattr.c b/third_party/ncurses/lib_slkattr.c new file mode 100644 index 000000000..5302c92e4 --- /dev/null +++ b/third_party/ncurses/lib_slkattr.c @@ -0,0 +1,65 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1997 * + * and: Thomas E. Dickey 2005 * + ****************************************************************************/ + +/* + * lib_slkattr.c + * Soft key routines. + * Fetch the labels attributes + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slkattr.c,v 1.12 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(attr_t) +NCURSES_SP_NAME(slk_attr) (NCURSES_SP_DCL0) +{ + T((T_CALLED("slk_attr(%p)"), (void *) SP_PARM)); + + if (SP_PARM != 0 && SP_PARM->_slk != 0) { + attr_t result = AttrOf(SP_PARM->_slk->attr) & ALL_BUT_COLOR; + int pair = GetPair(SP_PARM->_slk->attr); + + result |= (attr_t) ColorPair(pair); + returnAttr(result); + } else + returnAttr(0); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(attr_t) +slk_attr(void) +{ + return NCURSES_SP_NAME(slk_attr) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_slkclear.c b/third_party/ncurses/lib_slkclear.c new file mode 100644 index 000000000..5b87b58e2 --- /dev/null +++ b/third_party/ncurses/lib_slkclear.c @@ -0,0 +1,75 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2007,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Juergen Pfeifer 1996-1999 * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * lib_slkclear.c + * Soft key routines. + * Remove soft labels from the screen. + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slkclear.c,v 1.15 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_clear) (NCURSES_SP_DCL0) +{ + int rc = ERR; + + T((T_CALLED("slk_clear(%p)"), (void *) SP_PARM)); + + if (SP_PARM != 0 && SP_PARM->_slk != 0) { + SP_PARM->_slk->hidden = TRUE; + /* For simulated SLK's it looks much more natural to + inherit those attributes from the standard screen */ + SP_PARM->_slk->win->_nc_bkgd = StdScreen(SP_PARM)->_nc_bkgd; + WINDOW_ATTRS(SP_PARM->_slk->win) = WINDOW_ATTRS(StdScreen(SP_PARM)); + if (SP_PARM->_slk->win == StdScreen(SP_PARM)) { + rc = OK; + } else { + werase(SP_PARM->_slk->win); + rc = wrefresh(SP_PARM->_slk->win); + } + } + returnCode(rc); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_clear(void) +{ + return NCURSES_SP_NAME(slk_clear) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_slkcolor.c b/third_party/ncurses/lib_slkcolor.c new file mode 100644 index 000000000..85502f753 --- /dev/null +++ b/third_party/ncurses/lib_slkcolor.c @@ -0,0 +1,91 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1998,2009 * + * and: Thomas E. Dickey 2005-on * + ****************************************************************************/ + +/* + * lib_slkcolor.c + * Soft key routines. + * Set the label's color + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slkcolor.c,v 1.20 2020/02/02 23:34:34 tom Exp $") + +static int +_nc_slk_color(SCREEN *sp, int pair_arg) +{ + int code = ERR; + + T((T_CALLED("slk_color(%p,%d)"), (void *) sp, pair_arg)); + + if (sp != 0 + && sp->_slk != 0 + && pair_arg >= 0 + && pair_arg < sp->_pair_limit) { + TR(TRACE_ATTRS, ("... current is %s", _tracech_t(CHREF(sp->_slk->attr)))); + SetPair(sp->_slk->attr, pair_arg); + TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(sp->_slk->attr)))); + code = OK; + } + returnCode(code); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_color) (NCURSES_SP_DCLx NCURSES_PAIRS_T pair_arg) +{ + return _nc_slk_color(SP_PARM, pair_arg); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_color(NCURSES_PAIRS_T pair_arg) +{ + return NCURSES_SP_NAME(slk_color) (CURRENT_SCREEN, pair_arg); +} +#endif + +#if NCURSES_EXT_COLORS +NCURSES_EXPORT(int) +NCURSES_SP_NAME(extended_slk_color) (NCURSES_SP_DCLx int pair_arg) +{ + return _nc_slk_color(SP_PARM, pair_arg); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +extended_slk_color(int pair_arg) +{ + return NCURSES_SP_NAME(extended_slk_color) (CURRENT_SCREEN, pair_arg); +} +#endif +#endif diff --git a/third_party/ncurses/lib_slkinit.c b/third_party/ncurses/lib_slkinit.c new file mode 100644 index 000000000..cf338d323 --- /dev/null +++ b/third_party/ncurses/lib_slkinit.c @@ -0,0 +1,89 @@ +/**************************************************************************** + * Copyright 2020,2022 Thomas E. Dickey * + * Copyright 1998-2009,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * lib_slkinit.c + * Soft key routines. + * Initialize soft labels. Called by the user before initscr(). + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slkinit.c,v 1.16 2022/07/09 18:58:58 tom Exp $") + +#ifdef USE_SP_RIPOFF +#define SoftkeyFormat SP_PARM->slk_format +#else +#define SoftkeyFormat _nc_globals.slk_format +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_init) (NCURSES_SP_DCLx int format) +{ + int code = ERR; + + START_TRACE(); + T((T_CALLED("slk_init(%p,%d)"), (void *) SP_PARM, format)); + + if (format >= 0 + && format <= 3 +#ifdef USE_SP_RIPOFF + && SP_PARM + && SP_PARM->_prescreen +#endif + && !SoftkeyFormat) { + SoftkeyFormat = 1 + format; + code = NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx + -SLK_LINES(SoftkeyFormat), + _nc_slk_initialize); + } + returnCode(code); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_init(int format) +{ + int rc; + + _nc_init_pthreads(); + _nc_lock_global(prescreen); + START_TRACE(); + rc = NCURSES_SP_NAME(slk_init) (CURRENT_SCREEN_PRE, format); + _nc_unlock_global(prescreen); + + return rc; +} +#endif diff --git a/third_party/ncurses/lib_slklab.c b/third_party/ncurses/lib_slklab.c new file mode 100644 index 000000000..2ab51df49 --- /dev/null +++ b/third_party/ncurses/lib_slklab.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2003,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Juergen Pfeifer, 1998,2009 * + * and: Thomas E. Dickey 1998-on * + ****************************************************************************/ + +/* + * lib_slklab.c + * Soft key routines. + * Fetch the label text. + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slklab.c,v 1.11 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(char *) +NCURSES_SP_NAME(slk_label) (NCURSES_SP_DCLx int n) +{ + T((T_CALLED("slk_label(%p,%d)"), (void *) SP_PARM, n)); + + if (SP_PARM == 0 || SP_PARM->_slk == 0 || n < 1 || n > SP_PARM->_slk->labcnt) + returnPtr(0); + returnPtr(SP_PARM->_slk->ent[n - 1].ent_text); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char *) +slk_label(int n) +{ + return NCURSES_SP_NAME(slk_label) (CURRENT_SCREEN, n); +} +#endif diff --git a/third_party/ncurses/lib_slkrefr.c b/third_party/ncurses/lib_slkrefr.c new file mode 100644 index 000000000..02b0bb332 --- /dev/null +++ b/third_party/ncurses/lib_slkrefr.c @@ -0,0 +1,188 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Juergen Pfeifer 1996-on * + * and: Thomas E. Dickey * + ****************************************************************************/ + +/* + * lib_slkrefr.c + * Write SLK window to the (virtual) screen. + */ +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_slkrefr.c,v 1.32 2021/09/04 10:54:35 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define NumLabels InfoOf(SP_PARM).numlabels +#else +#define NumLabels num_labels +#endif + +/* + * Paint the info line for the PC style SLK emulation. + */ +static void +slk_paint_info(WINDOW *win) +{ + SCREEN *sp = _nc_screen_of(win); + + if (win && sp && (sp->slk_format == 4)) { + int i; + + (void) mvwhline(win, 0, 0, 0, getmaxx(win)); + wmove(win, 0, 0); + + for (i = 0; i < sp->_slk->maxlab; i++) { + mvwprintw(win, 0, sp->_slk->ent[i].ent_x, "F%d", i + 1); + } + } +} + +/* + * Write the soft labels to the soft-key window. + */ +static void +slk_intern_refresh(SCREEN *sp) +{ + int i; + int fmt; + SLK *slk; + int numlab; + + if (sp == 0) + return; + + slk = sp->_slk; + fmt = sp->slk_format; + numlab = NumLabels; + + if (slk->hidden) + return; + + for (i = 0; i < slk->labcnt; i++) { + if (slk->dirty || slk->ent[i].dirty) { + if (slk->ent[i].visible) { + if (numlab > 0 && SLK_STDFMT(fmt)) { +#ifdef USE_TERM_DRIVER + CallDriver_2(sp, td_hwlabel, i + 1, slk->ent[i].form_text); +#else + if (i < num_labels) { + NCURSES_PUTP2("plab_norm", + TPARM_2(plab_norm, + i + 1, + slk->ent[i].form_text)); + } +#endif + } else { + if (fmt == 4) + slk_paint_info(slk->win); + wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x); + (void) wattrset(slk->win, (int) AttrOf(slk->attr)); + waddstr(slk->win, slk->ent[i].form_text); + /* if we simulate SLK's, it is looking much more + natural to use the current ATTRIBUTE also + for the label window */ + (void) wattrset(slk->win, (int) WINDOW_ATTRS(StdScreen(sp))); + } + } + slk->ent[i].dirty = FALSE; + } + } + slk->dirty = FALSE; + + if (numlab > 0) { +#ifdef USE_TERM_DRIVER + CallDriver_1(sp, td_hwlabelOnOff, slk->hidden ? FALSE : TRUE); +#else + if (slk->hidden) { + NCURSES_PUTP2("label_off", label_off); + } else { + NCURSES_PUTP2("label_on", label_on); + } +#endif + } +} + +/* + * Refresh the soft labels. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_noutrefresh) (NCURSES_SP_DCL0) +{ + T((T_CALLED("slk_noutrefresh(%p)"), (void *) SP_PARM)); + + if (SP_PARM == 0 || SP_PARM->_slk == 0) + returnCode(ERR); + if (SP_PARM->_slk->hidden) + returnCode(OK); + slk_intern_refresh(SP_PARM); + + returnCode(wnoutrefresh(SP_PARM->_slk->win)); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_noutrefresh(void) +{ + return NCURSES_SP_NAME(slk_noutrefresh) (CURRENT_SCREEN); +} +#endif + +/* + * Refresh the soft labels. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_refresh) (NCURSES_SP_DCL0) +{ + T((T_CALLED("slk_refresh(%p)"), (void *) SP_PARM)); + + if (SP_PARM == 0 || SP_PARM->_slk == 0) + returnCode(ERR); + if (SP_PARM->_slk->hidden) + returnCode(OK); + slk_intern_refresh(SP_PARM); + + returnCode(wrefresh(SP_PARM->_slk->win)); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_refresh(void) +{ + return NCURSES_SP_NAME(slk_refresh) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_slkset.c b/third_party/ncurses/lib_slkset.c new file mode 100644 index 000000000..c3d6b4bdf --- /dev/null +++ b/third_party/ncurses/lib_slkset.c @@ -0,0 +1,157 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer * + * and: Thomas E. Dickey * + ****************************************************************************/ + +/* + * lib_slkset.c + * Set soft label text. + */ +#include "curses.priv.h" +#include + +#if USE_WIDEC_SUPPORT +#if HAVE_WCTYPE_H +#include +#endif +#endif + +MODULE_ID("$Id: lib_slkset.c,v 1.26 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format) +{ + SLK *slk; + int offset = 0; + int numchrs; + int numcols; + int limit; + const char *str = astr; + const char *p; + + T((T_CALLED("slk_set(%p, %d, \"%s\", %d)"), (void *) SP_PARM, i, str, format)); + + if (SP_PARM == 0 + || (slk = SP_PARM->_slk) == 0 + || i < 1 + || i > slk->labcnt + || format < 0 + || format > 2) + returnCode(ERR); + if (str == 0) + str = ""; + --i; /* Adjust numbering of labels */ + + limit = MAX_SKEY_LEN(SP_PARM->slk_format); + while (isspace(UChar(*str))) + str++; /* skip over leading spaces */ + p = str; + +#if USE_WIDEC_SUPPORT + numcols = 0; + while (*p != 0) { + mbstate_t state; + wchar_t wc; + size_t need; + + init_mb(state); + need = mbrtowc(0, p, strlen(p), &state); + if (need == (size_t) -1) + break; + mbrtowc(&wc, p, need, &state); + if (!iswprint((wint_t) wc)) + break; + if (_nc_wacs_width(wc) + numcols > limit) + break; + numcols += _nc_wacs_width(wc); + p += need; + } + numchrs = (int) (p - str); +#else + while (isprint(UChar(*p))) + p++; /* The first non-print stops */ + + numcols = (int) (p - str); + if (numcols > limit) + numcols = limit; + numchrs = numcols; +#endif + + FreeIfNeeded(slk->ent[i].ent_text); + if ((slk->ent[i].ent_text = strdup(str)) == 0) + returnCode(ERR); + slk->ent[i].ent_text[numchrs] = '\0'; + + if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text, + (size_t) (limit + + numchrs + 1)) + ) == 0) + returnCode(ERR); + + switch (format) { + case 0: /* left-justified */ + offset = 0; + break; + case 1: /* centered */ + offset = (limit - numcols) / 2; + break; + case 2: /* right-justified */ + offset = limit - numcols; + break; + } + if (offset <= 0) + offset = 0; + else + memset(slk->ent[i].form_text, ' ', (size_t) offset); + + memcpy(slk->ent[i].form_text + offset, + slk->ent[i].ent_text, + (size_t) numchrs); + + if (offset < limit) { + memset(slk->ent[i].form_text + offset + numchrs, + ' ', + (size_t) (limit - (offset + numcols))); + } + + slk->ent[i].form_text[numchrs - numcols + limit] = 0; + slk->ent[i].dirty = TRUE; + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_set(int i, const char *astr, int format) +{ + return NCURSES_SP_NAME(slk_set) (CURRENT_SCREEN, i, astr, format); +} +#endif diff --git a/third_party/ncurses/lib_slktouch.c b/third_party/ncurses/lib_slktouch.c new file mode 100644 index 000000000..951932e15 --- /dev/null +++ b/third_party/ncurses/lib_slktouch.c @@ -0,0 +1,62 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1997,2009 * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * lib_slktouch.c + * Soft key routines. + * Force the code to believe that the soft keys have been changed. + */ +#include "curses.priv.h" + +MODULE_ID("$Id: lib_slktouch.c,v 1.9 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_touch) (NCURSES_SP_DCL0) +{ + T((T_CALLED("slk_touch(%p)"), (void *) SP_PARM)); + + if (SP_PARM == 0 || SP_PARM->_slk == 0) + returnCode(ERR); + SP_PARM->_slk->dirty = TRUE; + + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_touch(void) +{ + return NCURSES_SP_NAME(slk_touch) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_termcap.c b/third_party/ncurses/lib_termcap.c new file mode 100644 index 000000000..bc4ef7ec0 --- /dev/null +++ b/third_party/ncurses/lib_termcap.c @@ -0,0 +1,429 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * + * * + * some of the code in here was contributed by: * + * Magnus Bengtsson, d6mbeng@dtek.chalmers.se (Nov'93) * + * (but it has changed a lot) * + ****************************************************************************/ + +#define __INTERNAL_CAPS_VISIBLE +#include "curses.priv.h" + +#include "termcap.h" +#include "tic.h" +#include + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_termcap.c,v 1.88 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT_VAR(char *) UP = 0; +NCURSES_EXPORT_VAR(char *) BC = 0; + +#define MyCache _nc_globals.tgetent_cache +#define CacheInx _nc_globals.tgetent_index +#define CacheSeq _nc_globals.tgetent_sequence + +#define FIX_SGR0 MyCache[CacheInx].fix_sgr0 +#define LAST_TRM MyCache[CacheInx].last_term +#define LAST_BUF MyCache[CacheInx].last_bufp +#define LAST_USE MyCache[CacheInx].last_used +#define LAST_SEQ MyCache[CacheInx].sequence + +/* + * Termcap names are matched only using the first two bytes. + * Ignore any extended names longer than two bytes, to avoid problems + * with legacy code which passes in parameters whose use is long forgotten. + */ +#define ValidCap(cap) (((cap)[0] != '\0') && ((cap)[1] != '\0')) +#define SameCap(a,b) (((a)[0] == (b)[0]) && ((a)[1] == (b)[1])) +#define ValidExt(ext) (ValidCap(ext) && (ext)[2] == '\0') + +/*************************************************************************** + * + * tgetent(bufp, term) + * + * In termcap, this function reads in the entry for terminal `term' into the + * buffer pointed to by bufp. It must be called before any of the functions + * below are called. + * In this terminfo emulation, tgetent() simply calls setupterm() (which + * does a bit more than tgetent() in termcap does), and returns its return + * value (1 if successful, 0 if no terminal with the given name could be + * found, or -1 if no terminal descriptions have been installed on the + * system). The bufp argument is ignored. + * + ***************************************************************************/ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(tgetent) (NCURSES_SP_DCLx char *bufp, const char *name) +{ + int rc = ERR; + int n; + bool found_cache = FALSE; +#ifdef USE_TERM_DRIVER + TERMINAL *termp = 0; +#endif + + START_TRACE(); + T((T_CALLED("tgetent()"))); + + TINFO_SETUP_TERM(&termp, name, STDOUT_FILENO, &rc, TRUE); + +#ifdef USE_TERM_DRIVER + if (termp == 0 || + !((TERMINAL_CONTROL_BLOCK *) termp)->drv->isTerminfo) + returnCode(rc); +#endif + + /* + * In general we cannot tell if the fixed sgr0 is still used by the + * caller, but if tgetent() is called with the same buffer, that is + * good enough, since the previous data would be invalidated by the + * current call. + * + * bufp may be a null pointer, e.g., GNU termcap. That allocates data, + * which is good until the next tgetent() call. The conventional termcap + * is inconvenient because of the fixed buffer size, but because it uses + * caller-supplied buffers, can have multiple terminal descriptions in + * use at a given time. + */ + for (n = 0; n < TGETENT_MAX; ++n) { + bool same_result = (MyCache[n].last_used && MyCache[n].last_bufp == bufp); + if (same_result) { + CacheInx = n; + if (FIX_SGR0 != 0) { + FreeAndNull(FIX_SGR0); + } + /* + * Also free the terminfo data that we loaded (much bigger leak). + */ + if (LAST_TRM != 0 && LAST_TRM != TerminalOf(SP_PARM)) { + TERMINAL *trm = LAST_TRM; + NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx LAST_TRM); + for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) + if (LAST_TRM == trm) + LAST_TRM = 0; + CacheInx = n; + } + found_cache = TRUE; + break; + } + } + if (!found_cache) { + int best = 0; + + for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) { + if (LAST_SEQ < MyCache[best].sequence) { + best = CacheInx; + } + } + CacheInx = best; + } + if (rc == 1) { + LAST_TRM = TerminalOf(SP_PARM); + LAST_SEQ = ++CacheSeq; + } else { + LAST_TRM = 0; + } + + PC = 0; + UP = 0; + BC = 0; + FIX_SGR0 = 0; /* don't free it - application may still use */ + + if (rc == 1) { + + if (cursor_left) + if ((backspaces_with_bs = (char) !strcmp(cursor_left, "\b")) == 0) + backspace_if_not_bs = cursor_left; + + /* we're required to export these */ + if (pad_char != NULL) + PC = pad_char[0]; + if (cursor_up != NULL) + UP = cursor_up; + if (backspace_if_not_bs != NULL) + BC = backspace_if_not_bs; + + if ((FIX_SGR0 = _nc_trim_sgr0(&TerminalType(TerminalOf(SP_PARM)))) + != 0) { + if (!strcmp(FIX_SGR0, exit_attribute_mode)) { + if (FIX_SGR0 != exit_attribute_mode) { + free(FIX_SGR0); + } + FIX_SGR0 = 0; + } + } + LAST_BUF = bufp; + LAST_USE = TRUE; + + SetNoPadding(SP_PARM); + (void) NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG); /* sets ospeed as a side-effect */ + +/* LINT_PREPRO +#if 0*/ +#include "capdefaults.inc" +/* LINT_PREPRO +#endif*/ + + } + returnCode(rc); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +tgetent(char *bufp, const char *name) +{ + return NCURSES_SP_NAME(tgetent) (CURRENT_SCREEN, bufp, name); +} +#endif + +#if 0 +static bool +same_tcname(const char *a, const char *b) +{ + bool code = SameCap(a, b); + fprintf(stderr, "compare(%s,%s) %s\n", a, b, code ? "same" : "diff"); + return code; +} + +#else +#define same_tcname(a,b) SameCap(a,b) +#endif + +/*************************************************************************** + * + * tgetflag(str) + * + * Look up boolean termcap capability str and return its value (TRUE=1 if + * present, FALSE=0 if not). + * + ***************************************************************************/ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(tgetflag) (NCURSES_SP_DCLx const char *id) +{ + int result = 0; /* Solaris returns zero for missing flag */ + + T((T_CALLED("tgetflag(%p, %s)"), (void *) SP_PARM, id)); + if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) { + TERMTYPE2 *tp = &TerminalType(TerminalOf(SP_PARM)); + struct name_table_entry const *entry_ptr; + int j = -1; + + entry_ptr = _nc_find_type_entry(id, BOOLEAN, TRUE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + int i; + for_each_ext_boolean(i, tp) { + const char *capname = ExtBoolname(tp, i, boolcodes); + if (same_tcname(id, capname) && ValidExt(capname)) { + j = i; + break; + } + } + } +#endif + if (j >= 0) { + /* note: setupterm forces invalid booleans to false */ + result = tp->Booleans[j]; + } + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +tgetflag(const char *id) +{ + return NCURSES_SP_NAME(tgetflag) (CURRENT_SCREEN, id); +} +#endif + +/*************************************************************************** + * + * tgetnum(str) + * + * Look up numeric termcap capability str and return its value, or -1 if + * not given. + * + ***************************************************************************/ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(tgetnum) (NCURSES_SP_DCLx const char *id) +{ + int result = ABSENT_NUMERIC; + + T((T_CALLED("tgetnum(%p, %s)"), (void *) SP_PARM, id)); + if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) { + TERMTYPE2 *tp = &TerminalType(TerminalOf(SP_PARM)); + struct name_table_entry const *entry_ptr; + int j = -1; + + entry_ptr = _nc_find_type_entry(id, NUMBER, TRUE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + int i; + for_each_ext_number(i, tp) { + const char *capname = ExtNumname(tp, i, numcodes); + if (same_tcname(id, capname) && ValidExt(capname)) { + j = i; + break; + } + } + } +#endif + if (j >= 0) { + if (VALID_NUMERIC(tp->Numbers[j])) + result = tp->Numbers[j]; + } + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +tgetnum(const char *id) +{ + return NCURSES_SP_NAME(tgetnum) (CURRENT_SCREEN, id); +} +#endif + +/*************************************************************************** + * + * tgetstr(str, area) + * + * Look up string termcap capability str and return a pointer to its value, + * or NULL if not given. + * + ***************************************************************************/ + +NCURSES_EXPORT(char *) +NCURSES_SP_NAME(tgetstr) (NCURSES_SP_DCLx const char *id, char **area) +{ + char *result = NULL; + + T((T_CALLED("tgetstr(%s,%p)"), id, (void *) area)); + if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) { + TERMTYPE2 *tp = &TerminalType(TerminalOf(SP_PARM)); + struct name_table_entry const *entry_ptr; + int j = -1; + + entry_ptr = _nc_find_type_entry(id, STRING, TRUE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + int i; + for_each_ext_string(i, tp) { + const char *capname = ExtStrname(tp, i, strcodes); + if (same_tcname(id, capname) && ValidExt(capname)) { + j = i; + break; + } + } + } +#endif + if (j >= 0) { + result = tp->Strings[j]; + TR(TRACE_DATABASE, ("found match %d: %s", j, _nc_visbuf(result))); + /* setupterm forces canceled strings to null */ + if (VALID_STRING(result)) { + if (result == exit_attribute_mode + && FIX_SGR0 != 0) { + result = FIX_SGR0; + TR(TRACE_DATABASE, ("altered to : %s", _nc_visbuf(result))); + } + if (area != 0 + && *area != 0) { + _nc_STRCPY(*area, result, 1024); + result = *area; + *area += strlen(*area) + 1; + } + } + } + } + returnPtr(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char *) +tgetstr(const char *id, char **area) +{ + return NCURSES_SP_NAME(tgetstr) (CURRENT_SCREEN, id, area); +} +#endif + +#if NO_LEAKS +#undef CacheInx +#define CacheInx num +NCURSES_EXPORT(void) +_nc_tgetent_leak(TERMINAL *termp) +{ + if (termp != 0) { + int num; + for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) { + if (LAST_TRM == termp) { + FreeAndNull(FIX_SGR0); + if (LAST_TRM != 0) { + LAST_TRM = 0; + } + break; + } + } + } +} + +NCURSES_EXPORT(void) +_nc_tgetent_leaks(void) +{ + int num; + for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) { + if (LAST_TRM != 0) { + del_curterm(LAST_TRM); + _nc_tgetent_leak(LAST_TRM); + } + } +} +#endif diff --git a/third_party/ncurses/lib_termname.c b/third_party/ncurses/lib_termname.c new file mode 100644 index 000000000..3a8c1554d --- /dev/null +++ b/third_party/ncurses/lib_termname.c @@ -0,0 +1,59 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2003,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_termname.c,v 1.13 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(char *) +NCURSES_SP_NAME(termname) (NCURSES_SP_DCL0) +{ + char *name = 0; + + T((T_CALLED("termname(%p)"), (void *) SP_PARM)); + +#if NCURSES_SP_FUNCS + if (TerminalOf(SP_PARM) != 0) { + name = TerminalOf(SP_PARM)->_termname; + } +#else + if (cur_term != 0) + name = cur_term->_termname; +#endif + + returnPtr(name); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char *) +termname(void) +{ + return NCURSES_SP_NAME(termname) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_tgoto.c b/third_party/ncurses/lib_tgoto.c new file mode 100644 index 000000000..1d103d03b --- /dev/null +++ b/third_party/ncurses/lib_tgoto.c @@ -0,0 +1,212 @@ +/**************************************************************************** + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 2000-2008,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +#include "curses.priv.h" + +#include +#include "termcap.h" + +MODULE_ID("$Id: lib_tgoto.c,v 1.21 2020/05/27 23:55:56 tom Exp $") + +#if !PURE_TERMINFO +static bool +is_termcap(const char *string) +{ + bool result = TRUE; + + if (string == 0 || *string == '\0') { + result = FALSE; /* tparm() handles empty strings */ + } else { + while ((*string != '\0') && result) { + if (*string == '%') { + switch (*++string) { + case 'p': + result = FALSE; + break; + case '\0': + string--; + break; + } + } else if (string[0] == '$' && string[1] == '<') { + result = FALSE; + } + string++; + } + } + return result; +} + +static char * +tgoto_internal(const char *string, int x, int y) +{ + static char *result; + static size_t length; + + int swap_arg; + int param[3]; + size_t used = 0; + size_t need = 10; + int *value = param; + bool need_BC = FALSE; + + if (BC) + need += strlen(BC); + + param[0] = y; + param[1] = x; + param[2] = 0; + + while (*string != 0) { + if ((used + need) > length) { + length += (used + need); + if ((result = typeRealloc(char, length, result)) == 0) { + length = 0; + break; + } + } + if (*string == '%') { + const char *fmt = 0; + + switch (*++string) { + case '\0': + string--; + break; + case 'd': + fmt = "%d"; + break; + case '2': + fmt = "%02d"; + *value %= 100; + break; + case '3': + fmt = "%03d"; + *value %= 1000; + break; + case '+': + *value += UChar(*++string); + /* FALLTHRU */ + case '.': + /* + * Guard against tputs() seeing a truncated string. The + * termcap documentation refers to a similar fixup for \n + * and \r, but I don't see that it could work -TD + */ + if (*value == 0) { + if (BC != 0) { + *value += 1; + need_BC = TRUE; + } else { + /* tputs will pretend this is \0, which will almost + * always work since ANSI-compatible terminals ignore + * the character. ECMA-48 does not document a C1 + * control for this value. A few (obsolete) terminals + * can use this value in special cases, such as cursor + * addressing using single-byte coordinates. + */ + *value = 0200; + } + } + result[used++] = (char) *value++; + break; + case '%': + result[used++] = *string; + break; + case 'r': + swap_arg = param[0]; + param[0] = param[1]; + param[1] = swap_arg; + break; + case 'i': + param[0] += 1; + param[1] += 1; + break; + case '>': + if (*value > string[1]) + *value += string[2]; + string += 2; + break; + case 'n': /* Datamedia 2500 */ + param[0] ^= 0140; + param[1] ^= 0140; + break; + case 'B': /* BCD */ + *value = 16 * (*value / 10) + (*value % 10); + break; + case 'D': /* Reverse coding (Delta Data) */ + *value -= 2 * (*value % 16); + break; + } + if (fmt != 0) { + _nc_SPRINTF(result + used, _nc_SLIMIT(length - used) + fmt, *value++); + used += strlen(result + used); + fmt = 0; + } + if (value - param > 2) { + value = param + 2; + *value = 0; + } + } else { + result[used++] = *string; + } + string++; + } + if (result != 0) { + if (need_BC) { + _nc_STRCPY(result + used, BC, length - used); + used += strlen(BC); + } + result[used] = '\0'; + } + return result; +} +#endif + +/* + * Retained solely for upward compatibility. Note the intentional reversing of + * the last two arguments when invoking tparm(). + */ +NCURSES_EXPORT(char *) +tgoto(const char *string, int x, int y) +{ + char *result; + + T((T_CALLED("tgoto(%s, %d, %d)"), _nc_visbuf(string), x, y)); +#if !PURE_TERMINFO + if (is_termcap(string)) + result = tgoto_internal(string, x, y); + else +#endif + result = TIPARM_2(string, y, x); + returnPtr(result); +} diff --git a/third_party/ncurses/lib_ti.c b/third_party/ncurses/lib_ti.c new file mode 100644 index 000000000..8f215e67b --- /dev/null +++ b/third_party/ncurses/lib_ti.c @@ -0,0 +1,188 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +#include "curses.priv.h" + +#include "tic.h" + +MODULE_ID("$Id: lib_ti.c,v 1.34 2020/02/02 23:34:34 tom Exp $") + +#if 0 +static bool +same_name(const char *a, const char *b) +{ + fprintf(stderr, "compare(%s,%s)\n", a, b); + return !strcmp(a, b); +} +#else +#define same_name(a,b) !strcmp(a,b) +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(tigetflag) (NCURSES_SP_DCLx const char *str) +{ + int result = ABSENT_BOOLEAN; + + T((T_CALLED("tigetflag(%p, %s)"), (void *) SP_PARM, str)); + + if (HasTInfoTerminal(SP_PARM)) { + TERMTYPE2 *tp = &TerminalType(TerminalOf(SP_PARM)); + struct name_table_entry const *entry_ptr; + int j = -1; + + entry_ptr = _nc_find_type_entry(str, BOOLEAN, FALSE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + int i; + for_each_ext_boolean(i, tp) { + const char *capname = ExtBoolname(tp, i, boolnames); + if (same_name(str, capname)) { + j = i; + break; + } + } + } +#endif + if (j >= 0) { + /* note: setupterm forces invalid booleans to false */ + result = tp->Booleans[j]; + } + } + + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +tigetflag(const char *str) +{ + return NCURSES_SP_NAME(tigetflag) (CURRENT_SCREEN, str); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(tigetnum) (NCURSES_SP_DCLx const char *str) +{ + int result = CANCELLED_NUMERIC; /* Solaris returns a -1 on error */ + + T((T_CALLED("tigetnum(%p, %s)"), (void *) SP_PARM, str)); + + if (HasTInfoTerminal(SP_PARM)) { + TERMTYPE2 *tp = &TerminalType(TerminalOf(SP_PARM)); + struct name_table_entry const *entry_ptr; + int j = -1; + + entry_ptr = _nc_find_type_entry(str, NUMBER, FALSE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + int i; + for_each_ext_number(i, tp) { + const char *capname = ExtNumname(tp, i, numnames); + if (same_name(str, capname)) { + j = i; + break; + } + } + } +#endif + if (j >= 0) { + if (VALID_NUMERIC(tp->Numbers[j])) + result = tp->Numbers[j]; + else + result = ABSENT_NUMERIC; + } + } + + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +tigetnum(const char *str) +{ + return NCURSES_SP_NAME(tigetnum) (CURRENT_SCREEN, str); +} +#endif + +NCURSES_EXPORT(char *) +NCURSES_SP_NAME(tigetstr) (NCURSES_SP_DCLx const char *str) +{ + char *result = CANCELLED_STRING; + + T((T_CALLED("tigetstr(%p, %s)"), (void *) SP_PARM, str)); + + if (HasTInfoTerminal(SP_PARM)) { + TERMTYPE2 *tp = &TerminalType(TerminalOf(SP_PARM)); + struct name_table_entry const *entry_ptr; + int j = -1; + + entry_ptr = _nc_find_type_entry(str, STRING, FALSE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + int i; + for_each_ext_string(i, tp) { + const char *capname = ExtStrname(tp, i, strnames); + if (same_name(str, capname)) { + j = i; + break; + } + } + } +#endif + if (j >= 0) { + /* note: setupterm forces cancelled strings to null */ + result = tp->Strings[j]; + } + } + + returnPtr(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char *) +tigetstr(const char *str) +{ + return NCURSES_SP_NAME(tigetstr) (CURRENT_SCREEN, str); +} +#endif diff --git a/third_party/ncurses/lib_touch.c b/third_party/ncurses/lib_touch.c new file mode 100644 index 000000000..8763773f0 --- /dev/null +++ b/third_party/ncurses/lib_touch.c @@ -0,0 +1,98 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_touch.c +** +** The routines untouchwin(), +** wtouchln(), +** is_linetouched() +** is_wintouched(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_touch.c,v 1.16 2020/02/02 23:34:34 tom Exp $") + +#undef is_linetouched + +NCURSES_EXPORT(bool) +is_linetouched(WINDOW *win, int line) +{ + T((T_CALLED("is_linetouched(%p,%d)"), (void *) win, line)); + + /* XSI doesn't define any error, and gcc ultimately made it impossible */ + if (!win || (line > win->_maxy) || (line < 0)) { + returnCode(FALSE); + } + + returnCode(win->_line[line].firstchar != _NOCHANGE ? TRUE : FALSE); +} + +NCURSES_EXPORT(bool) +is_wintouched(WINDOW *win) +{ + T((T_CALLED("is_wintouched(%p)"), (void *) win)); + + if (win) { + int i; + + for (i = 0; i <= win->_maxy; i++) + if (win->_line[i].firstchar != _NOCHANGE) + returnCode(TRUE); + } + returnCode(FALSE); +} + +NCURSES_EXPORT(int) +wtouchln(WINDOW *win, int y, int n, int changed) +{ + int i; + + T((T_CALLED("wtouchln(%p,%d,%d,%d)"), (void *) win, y, n, changed)); + + if (!win || (n < 0) || (y < 0) || (y > win->_maxy)) + returnCode(ERR); + + for (i = y; i < y + n; i++) { + if (i > win->_maxy) + break; + win->_line[i].firstchar = (NCURSES_SIZE_T) (changed ? 0 : _NOCHANGE); + win->_line[i].lastchar = (NCURSES_SIZE_T) (changed + ? win->_maxx + : _NOCHANGE); + } + returnCode(OK); +} diff --git a/third_party/ncurses/lib_tparm.c b/third_party/ncurses/lib_tparm.c new file mode 100644 index 000000000..f3ec1a321 --- /dev/null +++ b/third_party/ncurses/lib_tparm.c @@ -0,0 +1,1219 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey, 1996 on * + ****************************************************************************/ + +/* + * tparm.c + * + */ + +#define entry _ncu_entry +#define ENTRY _ncu_ENTRY + +#include "curses.priv.h" + +#undef entry +#undef ENTRY + +#if HAVE_TSEARCH +#include +#endif + +#include +#include "tic.h" + +MODULE_ID("$Id: lib_tparm.c,v 1.137 2021/11/20 23:29:15 tom Exp $") + +/* + * char * + * tparm(string, ...) + * + * Substitute the given parameters into the given string by the following + * rules (taken from terminfo(5)): + * + * Cursor addressing and other strings requiring parame- + * ters in the terminal are described by a parameterized string + * capability, with escapes like %x in it. For example, to + * address the cursor, the cup capability is given, using two + * parameters: the row and column to address to. (Rows and + * columns are numbered from zero and refer to the physical + * screen visible to the user, not to any unseen memory.) If + * the terminal has memory relative cursor addressing, that can + * be indicated by + * + * The parameter mechanism uses a stack and special % + * codes to manipulate it. Typically a sequence will push one + * of the parameters onto the stack and then print it in some + * format. Often more complex operations are necessary. + * + * The % encodings have the following meanings: + * + * %% outputs `%' + * %c print pop() like %c in printf() + * %s print pop() like %s in printf() + * %[[:]flags][width[.precision]][doxXs] + * as in printf, flags are [-+#] and space + * The ':' is used to avoid making %+ or %- + * patterns (see below). + * + * %p[1-9] push ith parm + * %P[a-z] set dynamic variable [a-z] to pop() + * %g[a-z] get dynamic variable [a-z] and push it + * %P[A-Z] set static variable [A-Z] to pop() + * %g[A-Z] get static variable [A-Z] and push it + * %l push strlen(pop) + * %'c' push char constant c + * %{nn} push integer constant nn + * + * %+ %- %* %/ %m + * arithmetic (%m is mod): push(pop() op pop()) + * %& %| %^ bit operations: push(pop() op pop()) + * %= %> %< logical operations: push(pop() op pop()) + * %A %O logical and & or operations for conditionals + * %! %~ unary operations push(op pop()) + * %i add 1 to first two parms (for ANSI terminals) + * + * %? expr %t thenpart %e elsepart %; + * if-then-else, %e elsepart is optional. + * else-if's are possible ala Algol 68: + * %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e b5 %; + * + * For those of the above operators which are binary and not commutative, + * the stack works in the usual way, with + * %gx %gy %m + * resulting in x mod y, not the reverse. + */ + +NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0; + +#define TPS(var) tps->var +#define popcount _nc_popcount /* workaround for NetBSD 6.0 defect */ + +#define get_tparm_state(term) \ + (term != NULL \ + ? &(term->tparm_state) \ + : &(_nc_prescreen.tparm_state)) + +#define isUPPER(c) ((c) >= 'A' && (c) <= 'Z') +#define isLOWER(c) ((c) >= 'a' && (c) <= 'z') +#define tc_BUMP() if (level < 0 && number < 2) number++ + +typedef struct { + const char *format; /* format-string can be used as cache-key */ + int tparm_type; /* bit-set for each string-parameter */ + int num_actual; + int num_parsed; + int num_popped; + TPARM_ARG param[NUM_PARM]; + char *p_is_s[NUM_PARM]; +} TPARM_DATA; + +#if HAVE_TSEARCH +#define MyCache _nc_globals.cached_tparm +#define MyCount _nc_globals.count_tparm +static int which_tparm; +static TPARM_DATA **delete_tparm; +#endif /* HAVE_TSEARCH */ + +static char dummy[] = ""; /* avoid const-cast */ + +#if HAVE_TSEARCH +static int +cmp_format(const void *p, const void *q) +{ + const char *a = *(char *const *) p; + const char *b = *(char *const *) q; + return strcmp(a, b); +} +#endif + +#if HAVE_TSEARCH +static void +visit_nodes(const void *nodep, VISIT which, int depth) +{ + (void) depth; + if (which == preorder || which == leaf) { + delete_tparm[which_tparm] = *(TPARM_DATA **) nodep; + which_tparm++; + } +} +#endif + +NCURSES_EXPORT(void) +_nc_free_tparm(TERMINAL *termp) +{ + TPARM_STATE *tps = get_tparm_state(termp); +#if HAVE_TSEARCH + if (MyCount != 0) { + delete_tparm = typeCalloc(TPARM_DATA *, MyCount); + which_tparm = 0; + twalk(MyCache, visit_nodes); + for (which_tparm = 0; which_tparm < MyCount; ++which_tparm) { + TPARM_DATA *ptr = delete_tparm[which_tparm]; + if (ptr != NULL) { + tdelete(ptr, &MyCache, cmp_format); + free((char *) ptr->format); + free(ptr); + } + } + which_tparm = 0; + twalk(MyCache, visit_nodes); + FreeAndNull(delete_tparm); + MyCount = 0; + which_tparm = 0; + } +#endif + FreeAndNull(TPS(out_buff)); + TPS(out_size) = 0; + TPS(out_used) = 0; + + FreeAndNull(TPS(fmt_buff)); + TPS(fmt_size) = 0; +} + +static int +tparm_error(TPARM_STATE *tps, const char *message) +{ + (void) tps; + (void) message; + DEBUG(2, ("%s: %s", message, _nc_visbuf(TPS(tparam_base)))); + return ++_nc_tparm_err; +} + +#define get_space(tps, need) \ +{ \ + size_t need2get = need + TPS(out_used); \ + if (need2get > TPS(out_size)) { \ + TPS(out_size) = need2get * 2; \ + TYPE_REALLOC(char, TPS(out_size), TPS(out_buff)); \ + } \ +} + +#if NCURSES_EXPANDED +static NCURSES_INLINE void + (get_space) (TPARM_STATE *tps, size_t need) { + get_space(tps, need); +} + +#undef get_space +#endif + +#define save_text(tps, fmt, s, len) \ +{ \ + size_t s_len = (size_t) len + strlen(s) + strlen(fmt); \ + get_space(tps, s_len + 1); \ + _nc_SPRINTF(TPS(out_buff) + TPS(out_used), \ + _nc_SLIMIT(TPS(out_size) - TPS(out_used)) \ + fmt, s); \ + TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used)); \ +} + +#if NCURSES_EXPANDED +static NCURSES_INLINE void + (save_text) (TPARM_STATE *tps, const char *fmt, const char *s, int len) { + save_text(tps, fmt, s, len); +} + +#undef save_text +#endif + +#define save_number(tps, fmt, number, len) \ +{ \ + size_t s_len = (size_t) len + 30 + strlen(fmt); \ + get_space(tps, s_len + 1); \ + _nc_SPRINTF(TPS(out_buff) + TPS(out_used), \ + _nc_SLIMIT(TPS(out_size) - TPS(out_used)) \ + fmt, number); \ + TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used)); \ +} + +#if NCURSES_EXPANDED +static NCURSES_INLINE void + (save_number) (TPARM_STATE *tps, const char *fmt, int number, int len) { + save_number(tps, fmt, number, len); +} + +#undef save_number +#endif + +#define save_char(tps, c) \ +{ \ + get_space(tps, (size_t) 1); \ + TPS(out_buff)[TPS(out_used)++] = (char) ((c == 0) ? 0200 : c); \ +} + +#if NCURSES_EXPANDED +static NCURSES_INLINE void + (save_char) (TPARM_STATE *tps, int c) { + save_char(tps, c); +} + +#undef save_char +#endif + +#define npush(tps, x) \ +{ \ + if (TPS(stack_ptr) < STACKSIZE) { \ + TPS(stack)[TPS(stack_ptr)].num_type = TRUE; \ + TPS(stack)[TPS(stack_ptr)].data.num = x; \ + TPS(stack_ptr)++; \ + } else { \ + (void) tparm_error(tps, "npush: stack overflow"); \ + } \ +} + +#if NCURSES_EXPANDED +static NCURSES_INLINE void + (npush) (TPARM_STATE *tps, int x) { + npush(tps, x); +} + +#undef npush +#endif + +#define spush(tps, x) \ +{ \ + if (TPS(stack_ptr) < STACKSIZE) { \ + TPS(stack)[TPS(stack_ptr)].num_type = FALSE; \ + TPS(stack)[TPS(stack_ptr)].data.str = x; \ + TPS(stack_ptr)++; \ + } else { \ + (void) tparm_error(tps, "spush: stack overflow"); \ + } \ +} + +#if NCURSES_EXPANDED +static NCURSES_INLINE void + (spush) (TPARM_STATE *tps, char *x) { + spush(tps, x); +} + +#undef spush +#endif + +#define npop(tps) \ + ((TPS(stack_ptr)-- > 0) \ + ? ((TPS(stack)[TPS(stack_ptr)].num_type) \ + ? TPS(stack)[TPS(stack_ptr)].data.num \ + : 0) \ + : (tparm_error(tps, "npop: stack underflow"), \ + TPS(stack_ptr) = 0)) + +#if NCURSES_EXPANDED +static NCURSES_INLINE int + (npop) (TPARM_STATE *tps) { + return npop(tps); +} +#undef npop +#endif + +#define spop(tps) \ + ((TPS(stack_ptr)-- > 0) \ + ? ((!TPS(stack)[TPS(stack_ptr)].num_type \ + && TPS(stack)[TPS(stack_ptr)].data.str != 0) \ + ? TPS(stack)[TPS(stack_ptr)].data.str \ + : dummy) \ + : (tparm_error(tps, "spop: stack underflow"), \ + dummy)) + +#if NCURSES_EXPANDED +static NCURSES_INLINE char * + (spop) (TPARM_STATE *tps) { + return spop(tps); +} +#undef spop +#endif + +static NCURSES_INLINE const char * +parse_format(const char *s, char *format, int *len) +{ + *len = 0; + if (format != 0) { + bool done = FALSE; + bool allowminus = FALSE; + bool dot = FALSE; + bool err = FALSE; + char *fmt = format; + int my_width = 0; + int my_prec = 0; + int value = 0; + + *len = 0; + *format++ = '%'; + while (*s != '\0' && !done) { + switch (*s) { + case 'c': /* FALLTHRU */ + case 'd': /* FALLTHRU */ + case 'o': /* FALLTHRU */ + case 'x': /* FALLTHRU */ + case 'X': /* FALLTHRU */ + case 's': +#ifdef EXP_XTERM_1005 + case 'u': +#endif + *format++ = *s; + done = TRUE; + break; + case '.': + *format++ = *s++; + if (dot) { + err = TRUE; + } else { /* value before '.' is the width */ + dot = TRUE; + my_width = value; + } + value = 0; + break; + case '#': + *format++ = *s++; + break; + case ' ': + *format++ = *s++; + break; + case ':': + s++; + allowminus = TRUE; + break; + case '-': + if (allowminus) { + *format++ = *s++; + } else { + done = TRUE; + } + break; + default: + if (isdigit(UChar(*s))) { + value = (value * 10) + (*s - '0'); + if (value > 10000) + err = TRUE; + *format++ = *s++; + } else { + done = TRUE; + } + } + } + + /* + * If we found an error, ignore (and remove) the flags. + */ + if (err) { + my_width = my_prec = value = 0; + format = fmt; + *format++ = '%'; + *format++ = *s; + } + + /* + * Any value after '.' is the precision. If we did not see '.', then + * the value is the width. + */ + if (dot) + my_prec = value; + else + my_width = value; + + *format = '\0'; + /* return maximum string length in print */ + *len = (my_width > my_prec) ? my_width : my_prec; + } + return s; +} + +/* + * Analyze the string to see how many parameters we need from the varargs list, + * and what their types are. We will only accept string parameters if they + * appear as a %l or %s format following an explicit parameter reference (e.g., + * %p2%s). All other parameters are numbers. + * + * 'number' counts coarsely the number of pop's we see in the string, and + * 'popcount' shows the highest parameter number in the string. We would like + * to simply use the latter count, but if we are reading termcap strings, there + * may be cases that we cannot see the explicit parameter numbers. + */ +NCURSES_EXPORT(int) +_nc_tparm_analyze(TERMINAL *term, const char *string, char **p_is_s, int *popcount) +{ + TPARM_STATE *tps = get_tparm_state(term); + size_t len2; + int i; + int lastpop = -1; + int len; + int number = 0; + int level = -1; + const char *cp = string; + + if (cp == 0) + return 0; + + if ((len2 = strlen(cp)) + 2 > TPS(fmt_size)) { + TPS(fmt_size) += len2 + 2; + TPS(fmt_buff) = typeRealloc(char, TPS(fmt_size), TPS(fmt_buff)); + if (TPS(fmt_buff) == 0) + return 0; + } + + memset(p_is_s, 0, sizeof(p_is_s[0]) * NUM_PARM); + *popcount = 0; + + while ((cp - string) < (int) len2) { + if (*cp == '%') { + cp++; + cp = parse_format(cp, TPS(fmt_buff), &len); + switch (*cp) { + default: + break; + + case 'd': /* FALLTHRU */ + case 'o': /* FALLTHRU */ + case 'x': /* FALLTHRU */ + case 'X': /* FALLTHRU */ + case 'c': /* FALLTHRU */ +#ifdef EXP_XTERM_1005 + case 'u': +#endif + if (lastpop <= 0) { + tc_BUMP(); + } + level -= 1; + lastpop = -1; + break; + + case 'l': + case 's': + if (lastpop > 0) { + level -= 1; + p_is_s[lastpop - 1] = dummy; + } + tc_BUMP(); + break; + + case 'p': + cp++; + i = (UChar(*cp) - '0'); + if (i >= 0 && i <= NUM_PARM) { + ++level; + lastpop = i; + if (lastpop > *popcount) + *popcount = lastpop; + } + break; + + case 'P': + ++cp; + break; + + case 'g': + ++level; + cp++; + break; + + case S_QUOTE: + ++level; + cp += 2; + lastpop = -1; + break; + + case L_BRACE: + ++level; + cp++; + while (isdigit(UChar(*cp))) { + cp++; + } + break; + + case '+': + case '-': + case '*': + case '/': + case 'm': + case 'A': + case 'O': + case '&': + case '|': + case '^': + case '=': + case '<': + case '>': + tc_BUMP(); + level -= 1; /* pop 2, operate, push 1 */ + lastpop = -1; + break; + + case '!': + case '~': + tc_BUMP(); + lastpop = -1; + break; + + case 'i': + /* will add 1 to first (usually two) parameters */ + break; + } + } + if (*cp != '\0') + cp++; + } + + if (number > NUM_PARM) + number = NUM_PARM; + return number; +} + +/* + * Analyze the capability string, finding the number of parameters and their + * types. + * + * TODO: cache the result so that this is done once per capability per term. + */ +static int +tparm_setup(TERMINAL *term, const char *string, TPARM_DATA *result) +{ + TPARM_STATE *tps = get_tparm_state(term); + int rc = OK; + + TPS(out_used) = 0; + memset(result, 0, sizeof(*result)); + + if (string == NULL) { + TR(TRACE_CALLS, ("%s: format is null", TPS(tname))); + rc = ERR; + } else { +#if HAVE_TSEARCH + TPARM_DATA *fs; + void *ft; + + result->format = string; + if ((ft = tfind(result, &MyCache, cmp_format)) != 0) { + size_t len2; + fs = *(TPARM_DATA **) ft; + *result = *fs; + if ((len2 = strlen(string)) + 2 > TPS(fmt_size)) { + TPS(fmt_size) += len2 + 2; + TPS(fmt_buff) = typeRealloc(char, TPS(fmt_size), TPS(fmt_buff)); + if (TPS(fmt_buff) == 0) + return ERR; + } + } else +#endif + { + /* + * Find the highest parameter-number referred to in the format + * string. Use this value to limit the number of arguments copied + * from the variable-length argument list. + */ + result->num_parsed = _nc_tparm_analyze(term, string, + result->p_is_s, + &(result->num_popped)); + if (TPS(fmt_buff) == 0) { + TR(TRACE_CALLS, ("%s: error in analysis", TPS(tname))); + rc = ERR; + } else { + int n; + + if (result->num_parsed > NUM_PARM) + result->num_parsed = NUM_PARM; + if (result->num_popped > NUM_PARM) + result->num_popped = NUM_PARM; + result->num_actual = max(result->num_popped, result->num_parsed); + + for (n = 0; n < result->num_actual; ++n) { + if (result->p_is_s[n]) + result->tparm_type |= (1 << n); + } +#if HAVE_TSEARCH + if ((fs = typeCalloc(TPARM_DATA, 1)) != 0) { + *fs = *result; + if ((fs->format = strdup(string)) != 0) { + if (tsearch(fs, &MyCache, cmp_format) != 0) { + ++MyCount; + } else { + free(fs); + rc = ERR; + } + } else { + free(fs); + rc = ERR; + } + } else { + rc = ERR; + } +#endif + } + } + } + + return rc; +} + +/* + * A few caps (such as plab_norm) have string-valued parms. We'll have to + * assume that the caller knows the difference, since a char* and an int may + * not be the same size on the stack. The normal prototype for tparm uses 9 + * long's, which is consistent with our va_arg() usage. + */ +static void +tparm_copy_valist(TPARM_DATA *data, int use_TPARM_ARG, va_list ap) +{ + int i; + + for (i = 0; i < data->num_actual; i++) { + if (data->p_is_s[i] != 0) { + char *value = va_arg(ap, char *); + if (value == 0) + value = dummy; + data->p_is_s[i] = value; + data->param[i] = 0; + } else if (use_TPARM_ARG) { + data->param[i] = va_arg(ap, TPARM_ARG); + } else { + data->param[i] = (TPARM_ARG) va_arg(ap, int); + } + } +} + +/* + * This is a termcap compatibility hack. If there are no explicit pop + * operations in the string, load the stack in such a way that successive pops + * will grab successive parameters. That will make the expansion of (for + * example) \E[%d;%dH work correctly in termcap style, which means tparam() + * will expand termcap strings OK. + */ +static bool +tparm_tc_compat(TPARM_STATE *tps, TPARM_DATA *data) +{ + bool termcap_hack = FALSE; + + TPS(stack_ptr) = 0; + + if (data->num_popped == 0) { + int i; + + termcap_hack = TRUE; + for (i = data->num_parsed - 1; i >= 0; i--) { + if (data->p_is_s[i]) { + spush(tps, data->p_is_s[i]); + } else { + npush(tps, (int) data->param[i]); + } + } + } + return termcap_hack; +} + +#ifdef TRACE +static void +tparm_trace_call(TPARM_STATE *tps, const char *string, TPARM_DATA *data) +{ + if (USE_TRACEF(TRACE_CALLS)) { + int i; + for (i = 0; i < data->num_actual; i++) { + if (data->p_is_s[i] != 0) { + save_text(tps, ", %s", _nc_visbuf(data->p_is_s[i]), 0); + } else if ((long) data->param[i] > MAX_OF_TYPE(NCURSES_INT2) || + (long) data->param[i] < 0) { + _tracef("BUG: problem with tparm parameter #%d of %d", + i + 1, data->num_actual); + break; + } else { + save_number(tps, ", %d", (int) data->param[i], 0); + } + } + _tracef(T_CALLED("%s(%s%s)"), TPS(tname), _nc_visbuf(string), TPS(out_buff)); + TPS(out_used) = 0; + _nc_unlock_global(tracef); + } +} + +#else +#define tparm_trace_call(tps, string, data) /* nothing */ +#endif /* TRACE */ + +#define init_vars(name) \ + if (!name##_used) { \ + name##_used = TRUE; \ + memset(name##_vars, 0, sizeof(name##_vars)); \ + } + +static NCURSES_INLINE char * +tparam_internal(TPARM_STATE *tps, const char *string, TPARM_DATA *data) +{ + int number; + int len; + int level; + int x, y; + int i; + const char *s; + const char *cp = string; + size_t len2 = strlen(cp); + bool incremented_two = FALSE; + bool termcap_hack = tparm_tc_compat(tps, data); + /* + * SVr4 curses stores variables 'A' to 'Z' in the TERMINAL structure (so + * they are initialized once to zero), and variables 'a' to 'z' on the + * stack in tparm, referring to the former as "static" and the latter as + * "dynamic". However, it makes no check to ensure that the "dynamic" + * variables are initialized. + * + * Solaris xpg4 curses makes no distinction between the upper/lower, and + * stores the common set of 26 variables on the stack, without initializing + * them. + * + * In ncurses, both sets of variables are initialized on the first use. + */ + bool dynamic_used = FALSE; + int dynamic_vars[NUM_VARS]; + + tparm_trace_call(tps, string, data); + + while ((cp - string) < (int) len2) { + if (*cp != '%') { + save_char(tps, UChar(*cp)); + } else { + TPS(tparam_base) = cp++; + cp = parse_format(cp, TPS(fmt_buff), &len); + switch (*cp) { + default: + break; + case '%': + save_char(tps, '%'); + break; + + case 'd': /* FALLTHRU */ + case 'o': /* FALLTHRU */ + case 'x': /* FALLTHRU */ + case 'X': /* FALLTHRU */ + x = npop(tps); + save_number(tps, TPS(fmt_buff), x, len); + break; + + case 'c': /* FALLTHRU */ + x = npop(tps); + save_char(tps, x); + break; + +#ifdef EXP_XTERM_1005 + case 'u': + { + unsigned char target[10]; + unsigned source = (unsigned) npop(tps); + int rc = _nc_conv_to_utf8(target, source, (unsigned) + sizeof(target)); + int n; + for (n = 0; n < rc; ++n) { + save_char(tps, target[n]); + } + } + break; +#endif + case 'l': + s = spop(tps); + npush(tps, (int) strlen(s)); + break; + + case 's': + s = spop(tps); + save_text(tps, TPS(fmt_buff), s, len); + break; + + case 'p': + cp++; + i = (UChar(*cp) - '1'); + if (i >= 0 && i < NUM_PARM) { + if (data->p_is_s[i]) { + spush(tps, data->p_is_s[i]); + } else { + npush(tps, (int) data->param[i]); + } + } + break; + + case 'P': + cp++; + if (isUPPER(*cp)) { + i = (UChar(*cp) - 'A'); + TPS(static_vars)[i] = npop(tps); + } else if (isLOWER(*cp)) { + i = (UChar(*cp) - 'a'); + init_vars(dynamic); + dynamic_vars[i] = npop(tps); + } + break; + + case 'g': + cp++; + if (isUPPER(*cp)) { + i = (UChar(*cp) - 'A'); + npush(tps, TPS(static_vars)[i]); + } else if (isLOWER(*cp)) { + i = (UChar(*cp) - 'a'); + init_vars(dynamic); + npush(tps, dynamic_vars[i]); + } + break; + + case S_QUOTE: + cp++; + npush(tps, UChar(*cp)); + cp++; + break; + + case L_BRACE: + number = 0; + cp++; + while (isdigit(UChar(*cp))) { + number = (number * 10) + (UChar(*cp) - '0'); + cp++; + } + npush(tps, number); + break; + + case '+': + y = npop(tps); + x = npop(tps); + npush(tps, x + y); + break; + + case '-': + y = npop(tps); + x = npop(tps); + npush(tps, x - y); + break; + + case '*': + y = npop(tps); + x = npop(tps); + npush(tps, x * y); + break; + + case '/': + y = npop(tps); + x = npop(tps); + npush(tps, y ? (x / y) : 0); + break; + + case 'm': + y = npop(tps); + x = npop(tps); + npush(tps, y ? (x % y) : 0); + break; + + case 'A': + y = npop(tps); + x = npop(tps); + npush(tps, y && x); + break; + + case 'O': + y = npop(tps); + x = npop(tps); + npush(tps, y || x); + break; + + case '&': + y = npop(tps); + x = npop(tps); + npush(tps, x & y); + break; + + case '|': + y = npop(tps); + x = npop(tps); + npush(tps, x | y); + break; + + case '^': + y = npop(tps); + x = npop(tps); + npush(tps, x ^ y); + break; + + case '=': + y = npop(tps); + x = npop(tps); + npush(tps, x == y); + break; + + case '<': + y = npop(tps); + x = npop(tps); + npush(tps, x < y); + break; + + case '>': + y = npop(tps); + x = npop(tps); + npush(tps, x > y); + break; + + case '!': + x = npop(tps); + npush(tps, !x); + break; + + case '~': + x = npop(tps); + npush(tps, ~x); + break; + + case 'i': + /* + * Increment the first two parameters -- if they are numbers + * rather than strings. As a side effect, assign into the + * stack; if this is termcap, then the stack was populated + * using the termcap hack above rather than via the terminfo + * 'p' case. + */ + if (!incremented_two) { + incremented_two = TRUE; + if (data->p_is_s[0] == 0) { + data->param[0]++; + if (termcap_hack) + TPS(stack)[0].data.num = (int) data->param[0]; + } + if (data->p_is_s[1] == 0) { + data->param[1]++; + if (termcap_hack) + TPS(stack)[1].data.num = (int) data->param[1]; + } + } + break; + + case '?': + break; + + case 't': + x = npop(tps); + if (!x) { + /* scan forward for %e or %; at level zero */ + cp++; + level = 0; + while (*cp) { + if (*cp == '%') { + cp++; + if (*cp == '?') + level++; + else if (*cp == ';') { + if (level > 0) + level--; + else + break; + } else if (*cp == 'e' && level == 0) + break; + } + + if (*cp) + cp++; + } + } + break; + + case 'e': + /* scan forward for a %; at level zero */ + cp++; + level = 0; + while (*cp) { + if (*cp == '%') { + cp++; + if (*cp == '?') + level++; + else if (*cp == ';') { + if (level > 0) + level--; + else + break; + } + } + + if (*cp) + cp++; + } + break; + + case ';': + break; + + } /* endswitch (*cp) */ + } /* endelse (*cp == '%') */ + + if (*cp == '\0') + break; + + cp++; + } /* endwhile (*cp) */ + + get_space(tps, (size_t) 1); + TPS(out_buff)[TPS(out_used)] = '\0'; + + if (TPS(stack_ptr) && !_nc_tparm_err) { + DEBUG(2, ("tparm: stack has %d item%s on return", + TPS(stack_ptr), + TPS(stack_ptr) == 1 ? "" : "s")); + _nc_tparm_err++; + } + + T((T_RETURN("%s"), _nc_visbuf(TPS(out_buff)))); + return (TPS(out_buff)); +} + +#if NCURSES_TPARM_VARARGS + +NCURSES_EXPORT(char *) +tparm(const char *string, ...) +{ + TPARM_STATE *tps = get_tparm_state(cur_term); + TPARM_DATA myData; + char *result = NULL; + + _nc_tparm_err = 0; +#ifdef TRACE + tps->tname = "tparm"; +#endif /* TRACE */ + + if (tparm_setup(cur_term, string, &myData) == OK) { + va_list ap; + + va_start(ap, string); + tparm_copy_valist(&myData, TRUE, ap); + va_end(ap); + + result = tparam_internal(tps, string, &myData); + } + return result; +} + +#else /* !NCURSES_TPARM_VARARGS */ + +NCURSES_EXPORT(char *) +tparm(const char *string, + TPARM_ARG a1, + TPARM_ARG a2, + TPARM_ARG a3, + TPARM_ARG a4, + TPARM_ARG a5, + TPARM_ARG a6, + TPARM_ARG a7, + TPARM_ARG a8, + TPARM_ARG a9) +{ + TPARM_STATE *tps = get_tparm_state(cur_term); + TPARM_DATA myData; + char *result = NULL; + + _nc_tparm_err = 0; +#ifdef TRACE + tps->tname = "tparm"; +#endif /* TRACE */ + + if (tparm_setup(cur_term, string, &myData) == OK) { + + myData.param[0] = a1; + myData.param[1] = a2; + myData.param[2] = a3; + myData.param[3] = a4; + myData.param[4] = a5; + myData.param[5] = a6; + myData.param[6] = a7; + myData.param[7] = a8; + myData.param[8] = a9; + + result = tparam_internal(tps, string, &myData); + } + return result; +} + +#endif /* NCURSES_TPARM_VARARGS */ + +NCURSES_EXPORT(char *) +tiparm(const char *string, ...) +{ + TPARM_STATE *tps = get_tparm_state(cur_term); + TPARM_DATA myData; + char *result = NULL; + + _nc_tparm_err = 0; +#ifdef TRACE + tps->tname = "tiparm"; +#endif /* TRACE */ + + if (tparm_setup(cur_term, string, &myData) == OK) { + va_list ap; + + va_start(ap, string); + tparm_copy_valist(&myData, FALSE, ap); + va_end(ap); + + result = tparam_internal(tps, string, &myData); + } + return result; +} + +/* + * The internal-use flavor ensures that the parameters are numbers, not strings + */ +NCURSES_EXPORT(char *) +_nc_tiparm(int expected, const char *string, ...) +{ + TPARM_STATE *tps = get_tparm_state(cur_term); + TPARM_DATA myData; + char *result = NULL; + + _nc_tparm_err = 0; +#ifdef TRACE + tps->tname = "_nc_tiparm"; +#endif /* TRACE */ + + if (tparm_setup(cur_term, string, &myData) == OK + && myData.num_actual <= expected + && myData.tparm_type == 0) { + va_list ap; + + va_start(ap, string); + tparm_copy_valist(&myData, FALSE, ap); + va_end(ap); + + result = tparam_internal(tps, string, &myData); + } + return result; +} + +/* + * Improve tic's checks by resetting the terminfo "static variables" before + * calling functions which may update them. + */ +NCURSES_EXPORT(void) +_nc_reset_tparm(TERMINAL *term) +{ + TPARM_STATE *tps = get_tparm_state(term); + memset(TPS(static_vars), 0, sizeof(TPS(static_vars))); +} diff --git a/third_party/ncurses/lib_tputs.c b/third_party/ncurses/lib_tputs.c new file mode 100644 index 000000000..f67efbf63 --- /dev/null +++ b/third_party/ncurses/lib_tputs.c @@ -0,0 +1,455 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * tputs.c + * delay_output() + * _nc_outch() + * tputs() + * + */ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +#include +#include "termcap.h" /* ospeed */ +#include "tic.h" + +MODULE_ID("$Id: lib_tputs.c,v 1.109 2022/07/21 23:26:34 tom Exp $") + +NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */ +NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */ + +NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0; /* used by 'tack' program */ + +#if NCURSES_NO_PADDING +NCURSES_EXPORT(void) +_nc_set_no_padding(SCREEN *sp) +{ + bool no_padding = (getenv("NCURSES_NO_PADDING") != 0); + + if (sp) + sp->_no_padding = no_padding; + else + _nc_prescreen._no_padding = no_padding; + + TR(TRACE_CHARPUT | TRACE_MOVE, ("padding will%s be used", + GetNoPadding(sp) ? " not" : "")); +} +#endif + +#if NCURSES_SP_FUNCS +#define SetOutCh(func) if (SP_PARM) SP_PARM->_outch = func; else _nc_prescreen._outch = func +#define GetOutCh() (SP_PARM ? SP_PARM->_outch : _nc_prescreen._outch) +#else +#define SetOutCh(func) static_outch = func +#define GetOutCh() static_outch +static NCURSES_SP_OUTC static_outch = NCURSES_SP_NAME(_nc_outch); +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(delay_output) (NCURSES_SP_DCLx int ms) +{ + T((T_CALLED("delay_output(%p,%d)"), (void *) SP_PARM, ms)); + + if (!HasTInfoTerminal(SP_PARM)) + returnCode(ERR); + + if (no_pad_char) { + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + napms(ms); + } else { + NCURSES_SP_OUTC my_outch = GetOutCh(); + register int nullcount; + + nullcount = (ms * _nc_baudrate(ospeed)) / (BAUDBYTE * 1000); + for (_nc_nulls_sent += nullcount; nullcount > 0; nullcount--) + my_outch(NCURSES_SP_ARGx PC); + if (my_outch == NCURSES_SP_NAME(_nc_outch)) + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + } + + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +delay_output(int ms) +{ + return NCURSES_SP_NAME(delay_output) (CURRENT_SCREEN, ms); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_DCL0) +{ + T((T_CALLED("_nc_flush(%p)"), (void *) SP_PARM)); + if (SP_PARM != 0 && SP_PARM->_ofd >= 0) { + TR(TRACE_CHARPUT, ("ofd:%d inuse:%lu buffer:%p", + SP_PARM->_ofd, + (unsigned long) SP_PARM->out_inuse, + SP_PARM->out_buffer)); + if (SP_PARM->out_inuse) { + char *buf = SP_PARM->out_buffer; + size_t amount = SP_PARM->out_inuse; + + TR(TRACE_CHARPUT, ("flushing %ld/%ld bytes", + (unsigned long) amount, _nc_outchars)); + while (amount) { + ssize_t res = write(SP_PARM->_ofd, buf, amount); + if (res > 0) { + /* if the write was incomplete, try again */ + amount -= (size_t) res; + buf += res; + } else if (errno == EAGAIN) { + continue; + } else if (errno == EINTR) { + continue; + } else { + break; /* an error we can not recover from */ + } + } + } else if (SP_PARM->out_buffer == 0) { + TR(TRACE_CHARPUT, ("flushing stdout")); + fflush(stdout); + } + } else { + TR(TRACE_CHARPUT, ("flushing stdout")); + fflush(stdout); + } + if (SP_PARM != 0) + SP_PARM->out_inuse = 0; + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_flush(void) +{ + NCURSES_SP_NAME(_nc_flush) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_DCLx int ch) +{ + int rc = OK; + + COUNT_OUTCHARS(1); + + if (HasTInfoTerminal(SP_PARM) + && SP_PARM != 0) { + if (SP_PARM->out_buffer != 0) { + if (SP_PARM->out_inuse + 1 >= SP_PARM->out_limit) + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + SP_PARM->out_buffer[SP_PARM->out_inuse++] = (char) ch; + } else { + char tmp = (char) ch; + /* + * POSIX says write() is safe in a signal handler, but the + * buffered I/O is not. + */ + if (write(fileno(NC_OUTPUT(SP_PARM)), &tmp, (size_t) 1) == -1) + rc = ERR; + } + } else { + char tmp = (char) ch; + if (write(fileno(stdout), &tmp, (size_t) 1) == -1) + rc = ERR; + } + return rc; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_outch(int ch) +{ + return NCURSES_SP_NAME(_nc_outch) (CURRENT_SCREEN, ch); +} +#endif + +/* + * This is used for the putp special case. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_putchar) (NCURSES_SP_DCLx int ch) +{ + (void) SP_PARM; + return putchar(ch); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_putchar(int ch) +{ + return putchar(ch); +} +#endif + +/* + * putp is special - per documentation it calls tputs with putchar as the + * parameter for outputting characters. This means that it uses stdio, which + * is not signal-safe. Applications call this entrypoint; we do not call it + * from within the library. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(putp) (NCURSES_SP_DCLx const char *string) +{ + return NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + string, 1, NCURSES_SP_NAME(_nc_putchar)); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +putp(const char *string) +{ + return NCURSES_SP_NAME(putp) (CURRENT_SCREEN, string); +} +#endif + +/* + * Use these entrypoints rather than "putp" within the library. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_DCLx + const char *name GCC_UNUSED, + const char *string) +{ + int rc = ERR; + + if (string != 0) { + TPUTS_TRACE(name); + rc = NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + string, 1, NCURSES_SP_NAME(_nc_outch)); + } + return rc; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_putp(const char *name, const char *string) +{ + return NCURSES_SP_NAME(_nc_putp) (CURRENT_SCREEN, name, string); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(tputs) (NCURSES_SP_DCLx + const char *string, + int affcnt, + NCURSES_SP_OUTC outc) +{ + NCURSES_SP_OUTC my_outch = GetOutCh(); + bool always_delay = FALSE; + bool normal_delay = FALSE; + int number; +#if BSD_TPUTS + int trailpad; +#endif /* BSD_TPUTS */ + +#ifdef TRACE + if (USE_TRACEF(TRACE_TPUTS)) { + char addrbuf[32]; + TR_FUNC_BFR(1); + + if (outc == NCURSES_SP_NAME(_nc_outch)) { + _nc_STRCPY(addrbuf, "_nc_outch", sizeof(addrbuf)); + } else { + _nc_SPRINTF(addrbuf, _nc_SLIMIT(sizeof(addrbuf)) "%s", + TR_FUNC_ARG(0, outc)); + } + if (_nc_tputs_trace) { + _tracef("tputs(%s = %s, %d, %s) called", _nc_tputs_trace, + _nc_visbuf(string), affcnt, addrbuf); + } else { + _tracef("tputs(%s, %d, %s) called", _nc_visbuf(string), affcnt, addrbuf); + } + TPUTS_TRACE(NULL); + _nc_unlock_global(tracef); + } +#endif /* TRACE */ + + if (!VALID_STRING(string)) + return ERR; + + if (SP_PARM != 0 && HasTInfoTerminal(SP_PARM)) { + if ( +#if NCURSES_SP_FUNCS + (SP_PARM != 0 && SP_PARM->_term == 0) +#else + cur_term == 0 +#endif + ) { + always_delay = FALSE; + normal_delay = TRUE; + } else { + always_delay = (string == bell) || (string == flash_screen); + normal_delay = + !xon_xoff + && padding_baud_rate +#if NCURSES_NO_PADDING + && !GetNoPadding(SP_PARM) +#endif + && (_nc_baudrate(ospeed) >= padding_baud_rate); + } + } +#if BSD_TPUTS + /* + * This ugly kluge deals with the fact that some ancient BSD programs + * (like nethack) actually do the likes of tputs("50") to get delays. + */ + trailpad = 0; + if (isdigit(UChar(*string))) { + while (isdigit(UChar(*string))) { + trailpad = trailpad * 10 + (*string - '0'); + string++; + } + trailpad *= 10; + if (*string == '.') { + string++; + if (isdigit(UChar(*string))) { + trailpad += (*string - '0'); + string++; + } + while (isdigit(UChar(*string))) + string++; + } + + if (*string == '*') { + trailpad *= affcnt; + string++; + } + } +#endif /* BSD_TPUTS */ + + SetOutCh(outc); /* redirect delay_output() */ + while (*string) { + if (*string != '$') + (*outc) (NCURSES_SP_ARGx *string); + else { + string++; + if (*string != '<') { + (*outc) (NCURSES_SP_ARGx '$'); + if (*string) + (*outc) (NCURSES_SP_ARGx *string); + } else { + bool mandatory; + + string++; + if ((!isdigit(UChar(*string)) && *string != '.') + || !strchr(string, '>')) { + (*outc) (NCURSES_SP_ARGx '$'); + (*outc) (NCURSES_SP_ARGx '<'); + continue; + } + + number = 0; + while (isdigit(UChar(*string))) { + number = number * 10 + (*string - '0'); + string++; + } + number *= 10; + if (*string == '.') { + string++; + if (isdigit(UChar(*string))) { + number += (*string - '0'); + string++; + } + while (isdigit(UChar(*string))) + string++; + } + + mandatory = FALSE; + while (*string == '*' || *string == '/') { + if (*string == '*') { + number *= affcnt; + string++; + } else { /* if (*string == '/') */ + mandatory = TRUE; + string++; + } + } + + if (number > 0 + && (always_delay + || normal_delay + || mandatory)) + NCURSES_SP_NAME(delay_output) (NCURSES_SP_ARGx number / 10); + + } /* endelse (*string == '<') */ + } /* endelse (*string == '$') */ + + if (*string == '\0') + break; + + string++; + } + +#if BSD_TPUTS + /* + * Emit any BSD-style prefix padding that we've accumulated now. + */ + if (trailpad > 0 + && (always_delay || normal_delay)) + NCURSES_SP_NAME(delay_output) (NCURSES_SP_ARGx trailpad / 10); +#endif /* BSD_TPUTS */ + + SetOutCh(my_outch); + return OK; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_outc_wrapper(SCREEN *sp, int c) +{ + if (0 == sp) { + return fputc(c, stdout); + } else { + return sp->jump(c); + } +} + +NCURSES_EXPORT(int) +tputs(const char *string, int affcnt, int (*outc) (int)) +{ + SetSafeOutcWrapper(outc); + return NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx string, affcnt, _nc_outc_wrapper); +} +#endif diff --git a/third_party/ncurses/lib_trace.c b/third_party/ncurses/lib_trace.c new file mode 100644 index 000000000..a299e39c4 --- /dev/null +++ b/third_party/ncurses/lib_trace.c @@ -0,0 +1,464 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * + ****************************************************************************/ + +/* + * lib_trace.c - Tracing/Debugging routines + * + * The _tracef() function is originally from pcurses (by Pavel Curtis) in 1982. + * pcurses allowed one to enable/disable tracing using traceon() and traceoff() + * functions. ncurses provides a trace() function which allows one to + * selectively enable or disable several tracing features. + */ + +#include "curses.priv.h" +#include "tic.h" + +#include + +MODULE_ID("$Id: lib_trace.c,v 1.101 2022/09/17 14:57:02 tom Exp $") + +NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */ + +#ifdef TRACE + +#if USE_REENTRANT +NCURSES_EXPORT(const char *) +NCURSES_PUBLIC_VAR(_nc_tputs_trace) (void) +{ + return CURRENT_SCREEN ? CURRENT_SCREEN->_tputs_trace : _nc_prescreen._tputs_trace; +} +NCURSES_EXPORT(long) +NCURSES_PUBLIC_VAR(_nc_outchars) (void) +{ + return CURRENT_SCREEN ? CURRENT_SCREEN->_outchars : _nc_prescreen._outchars; +} +NCURSES_EXPORT(void) +_nc_set_tputs_trace(const char *s) +{ + if (CURRENT_SCREEN) + CURRENT_SCREEN->_tputs_trace = s; + else + _nc_prescreen._tputs_trace = s; +} +NCURSES_EXPORT(void) +_nc_count_outchars(long increment) +{ + if (CURRENT_SCREEN) + CURRENT_SCREEN->_outchars += increment; + else + _nc_prescreen._outchars += increment; +} +#else +NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = ""; +NCURSES_EXPORT_VAR(long) _nc_outchars = 0; +#endif + +#define MyFP _nc_globals.trace_fp +#define MyFD _nc_globals.trace_fd +#define MyInit _nc_globals.trace_opened +#define MyPath _nc_globals.trace_fname +#define MyLevel _nc_globals.trace_level +#define MyNested _nc_globals.nested_tracef +#endif /* TRACE */ + +#if USE_REENTRANT +#define Locked(statement) { \ + _nc_lock_global(tst_tracef); \ + statement; \ + _nc_unlock_global(tst_tracef); \ + } +#else +#define Locked(statement) statement +#endif + +NCURSES_EXPORT(unsigned) +curses_trace(unsigned tracelevel) +{ + unsigned result; + +#if defined(TRACE) + int bit; + +#define DATA(name) { name, #name } + static struct { + unsigned mask; + const char *name; + } trace_names[] = { + DATA(TRACE_TIMES), + DATA(TRACE_TPUTS), + DATA(TRACE_UPDATE), + DATA(TRACE_MOVE), + DATA(TRACE_CHARPUT), + DATA(TRACE_CALLS), + DATA(TRACE_VIRTPUT), + DATA(TRACE_IEVENT), + DATA(TRACE_BITS), + DATA(TRACE_ICALLS), + DATA(TRACE_CCALLS), + DATA(TRACE_DATABASE), + DATA(TRACE_ATTRS) + }; +#undef DATA + + Locked(result = _nc_tracing); + + if ((MyFP == 0) && tracelevel) { + MyInit = TRUE; + if (MyFD >= 0) { + MyFP = fdopen(MyFD, BIN_W); + } else { + if (MyPath[0] == '\0') { + size_t size = sizeof(MyPath) - 12; + if (getcwd(MyPath, size) == 0) { + perror("curses: Can't get working directory"); + exit(EXIT_FAILURE); + } + MyPath[size] = '\0'; + assert(strlen(MyPath) <= size); + _nc_STRCAT(MyPath, "/trace", sizeof(MyPath)); + if (_nc_is_dir_path(MyPath)) { + _nc_STRCAT(MyPath, ".log", sizeof(MyPath)); + } + } +#define SAFE_MODE (O_CREAT | O_EXCL | O_RDWR) + if (_nc_access(MyPath, W_OK) < 0 + || (MyFD = safe_open3(MyPath, SAFE_MODE, 0600)) < 0 + || (MyFP = fdopen(MyFD, BIN_W)) == 0) { + ; /* EMPTY */ + } + } + Locked(_nc_tracing = tracelevel); + /* Try to set line-buffered mode, or (failing that) unbuffered, + * so that the trace-output gets flushed automatically at the + * end of each line. This is useful in case the program dies. + */ + if (MyFP != 0) { +#if HAVE_SETVBUF /* ANSI */ + (void) setvbuf(MyFP, (char *) 0, _IOLBF, (size_t) 0); +#elif HAVE_SETBUF /* POSIX */ + (void) setbuffer(MyFP, (char *) 0); +#endif + } + _tracef("TRACING NCURSES version %s.%d (tracelevel=%#x)", + NCURSES_VERSION, + NCURSES_VERSION_PATCH, + tracelevel); + +#define SPECIAL_MASK(mask) \ + if ((tracelevel & mask) == mask) \ + _tracef("- %s (%u)", #mask, mask) + + for (bit = 0; bit < TRACE_SHIFT; ++bit) { + unsigned mask = (1U << bit) & tracelevel; + if ((mask & trace_names[bit].mask) != 0) { + _tracef("- %s (%u)", trace_names[bit].name, mask); + } + } + SPECIAL_MASK(TRACE_MAXIMUM); + else + SPECIAL_MASK(TRACE_ORDINARY); + + if (tracelevel > TRACE_MAXIMUM) { + _tracef("- DEBUG_LEVEL(%u)", tracelevel >> TRACE_SHIFT); + } + } else if (tracelevel == 0) { + if (MyFP != 0) { + MyFD = dup(MyFD); /* allow reopen of same file */ + fclose(MyFP); + MyFP = 0; + } + Locked(_nc_tracing = tracelevel); + } else if (_nc_tracing != tracelevel) { + Locked(_nc_tracing = tracelevel); + _tracef("tracelevel=%#x", tracelevel); + } +#else + (void) tracelevel; + result = 0; +#endif + return result; +} + +#if defined(TRACE) +NCURSES_EXPORT(void) +trace(const unsigned int tracelevel) +{ + curses_trace(tracelevel); +} + +static void +_nc_va_tracef(const char *fmt, va_list ap) +{ + static const char Called[] = T_CALLED(""); + static const char Return[] = T_RETURN(""); + + bool before = FALSE; + bool after = FALSE; + unsigned doit = _nc_tracing; + int save_err = errno; + FILE *fp = MyFP; + +#ifdef TRACE + /* verbose-trace in the command-line utilities relies on this */ + if (fp == 0 && !MyInit && _nc_tracing >= DEBUG_LEVEL(1)) + fp = stderr; +#endif + + if (strlen(fmt) >= sizeof(Called) - 1) { + if (!strncmp(fmt, Called, sizeof(Called) - 1)) { + before = TRUE; + MyLevel++; + } else if (!strncmp(fmt, Return, sizeof(Return) - 1)) { + after = TRUE; + } + if (before || after) { + if ((MyLevel <= 1) + || (doit & TRACE_ICALLS) != 0) + doit &= (TRACE_CALLS | TRACE_CCALLS); + else + doit = 0; + } + } + + if (doit != 0 && fp != 0) { +#ifdef USE_PTHREADS + /* + * TRACE_ICALLS is "really" needed to show normal use with threaded + * applications, since anything can be running during a napms(), + * making it appear in the hierarchical trace as it other functions + * are being called. + * + * Rather than add the complication of a per-thread stack, just + * show the thread-id in each line of the trace. + */ +# if USE_WEAK_SYMBOLS + if ((pthread_self)) +# endif +#ifdef _NC_WINDOWS + fprintf(fp, "%#lx:", (long) (intptr_t) pthread_self().p); +#else + fprintf(fp, "%#lx:", (long) (intptr_t) pthread_self()); +#endif +#endif + if (before || after) { + int n; + for (n = 1; n < MyLevel; n++) + fputs("+ ", fp); + } + vfprintf(fp, fmt, ap); + fputc('\n', fp); + fflush(fp); + } + + if (after && MyLevel) + MyLevel--; + + errno = save_err; +} + +NCURSES_EXPORT(void) +_tracef(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + _nc_va_tracef(fmt, ap); + va_end(ap); +} + +/* Trace 'bool' return-values */ +NCURSES_EXPORT(NCURSES_BOOL) +_nc_retrace_bool(int code) +{ + T((T_RETURN("%s"), code ? "TRUE" : "FALSE")); + return code; +} + +/* Trace 'char' return-values */ +NCURSES_EXPORT(char) +_nc_retrace_char(int code) +{ + T((T_RETURN("%c"), code)); + return (char) code; +} + +/* Trace 'int' return-values */ +NCURSES_EXPORT(int) +_nc_retrace_int(int code) +{ + T((T_RETURN("%d"), code)); + return code; +} + +/* Trace 'unsigned' return-values */ +NCURSES_EXPORT(unsigned) +_nc_retrace_unsigned(unsigned code) +{ + T((T_RETURN("%#x"), code)); + return code; +} + +/* Trace 'char*' return-values */ +NCURSES_EXPORT(char *) +_nc_retrace_ptr(char *code) +{ + T((T_RETURN("%s"), _nc_visbuf(code))); + return code; +} + +/* Trace 'const char*' return-values */ +NCURSES_EXPORT(const char *) +_nc_retrace_cptr(const char *code) +{ + T((T_RETURN("%s"), _nc_visbuf(code))); + return code; +} + +/* Trace 'NCURSES_CONST void*' return-values */ +NCURSES_EXPORT(NCURSES_CONST void *) +_nc_retrace_cvoid_ptr(NCURSES_CONST void *code) +{ + T((T_RETURN("%p"), code)); + return code; +} + +/* Trace 'void*' return-values */ +NCURSES_EXPORT(void *) +_nc_retrace_void_ptr(void *code) +{ + T((T_RETURN("%p"), code)); + return code; +} + +/* Trace 'SCREEN *' return-values */ +NCURSES_EXPORT(SCREEN *) +_nc_retrace_sp(SCREEN *code) +{ + T((T_RETURN("%p"), (void *) code)); + return code; +} + +/* Trace 'WINDOW *' return-values */ +NCURSES_EXPORT(WINDOW *) +_nc_retrace_win(WINDOW *code) +{ + T((T_RETURN("%p"), (void *) code)); + return code; +} + +NCURSES_EXPORT(char *) +_nc_fmt_funcptr(char *target, const char *source, size_t size) +{ + size_t n; + char *dst = target; + bool leading = TRUE; + + union { + int value; + char bytes[sizeof(int)]; + } byteorder; + + byteorder.value = 0x1234; + + *dst++ = '0'; + *dst++ = 'x'; + + for (n = 0; n < size; ++n) { + unsigned ch = ((byteorder.bytes[0] == 0x34) + ? UChar(source[size - n - 1]) + : UChar(source[n])); + if (ch != 0 || (n + 1) >= size) + leading = FALSE; + if (!leading) { + _nc_SPRINTF(dst, _nc_SLIMIT(TR_FUNC_LEN - (size_t) (dst - target)) + "%02x", ch & 0xff); + dst += 2; + } + } + *dst = '\0'; + return target; +} + +#if USE_REENTRANT +/* + * Check if the given trace-mask is enabled. + * + * This function may be called from within one of the functions that fills + * in parameters for _tracef(), but in that case we do not want to lock the + * mutex, since it is already locked. + */ +NCURSES_EXPORT(int) +_nc_use_tracef(unsigned mask) +{ + bool result = FALSE; + + _nc_lock_global(tst_tracef); + if (!MyNested++) { + if ((result = (_nc_tracing & (mask))) != 0 + && _nc_try_global(tracef) == 0) { + /* we will call _nc_locked_tracef(), no nesting so far */ + } else { + /* we will not call _nc_locked_tracef() */ + MyNested = 0; + } + } else { + /* we may call _nc_locked_tracef(), but with nested_tracef > 0 */ + result = (_nc_tracing & (mask)); + } + _nc_unlock_global(tst_tracef); + return result; +} + +/* + * We call this if _nc_use_tracef() returns true, which means we must unlock + * the tracef mutex. + */ +NCURSES_EXPORT(void) +_nc_locked_tracef(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + _nc_va_tracef(fmt, ap); + va_end(ap); + + if (--(MyNested) == 0) { + _nc_unlock_global(tracef); + } +} +#endif /* USE_REENTRANT */ + +#endif /* TRACE */ diff --git a/third_party/ncurses/lib_traceatr.c b/third_party/ncurses/lib_traceatr.c new file mode 100644 index 000000000..780432810 --- /dev/null +++ b/third_party/ncurses/lib_traceatr.c @@ -0,0 +1,417 @@ +/**************************************************************************** + * Copyright 2018-2020,2022 Thomas E. Dickey * + * Copyright 1998-2017,2018 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey 1996-on * + * and: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Juergen Pfeifer * + ****************************************************************************/ + +/* + * lib_traceatr.c - Tracing/Debugging routines (attributes) + */ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_traceatr.c,v 1.95 2022/06/11 22:40:56 tom Exp $") + +#define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name)) + +#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size) +#define COLOR_BUF_SIZE(num) (sizeof(my_buffer[num])) + +#ifdef TRACE + +static const char l_brace[] = StringOf(L_BRACE); +static const char r_brace[] = StringOf(R_BRACE); + +#ifndef USE_TERMLIB + +#define my_buffer _nc_globals.traceatr_color_buf +#define my_select _nc_globals.traceatr_color_sel +#define my_cached _nc_globals.traceatr_color_last + +static char * +color_of(int c) +{ + if (c != my_cached) { + my_cached = c; + my_select = !my_select; + if (isDefaultColor(c)) + _nc_STRCPY(my_buffer[my_select], "default", + COLOR_BUF_SIZE(my_select)); + else + _nc_SPRINTF(my_buffer[my_select], + _nc_SLIMIT(COLOR_BUF_SIZE(my_select)) + "color%d", c); + } + return my_buffer[my_select]; +} + +#undef my_buffer +#undef my_select +#endif /* !USE_TERMLIB */ + +NCURSES_EXPORT(char *) +_traceattr2(int bufnum, chtype newmode) +{ +#define DATA(name) { name, { #name } } + static const struct { + unsigned int val; + const char name[14]; + } names[] = + { + DATA(A_STANDOUT), + DATA(A_UNDERLINE), + DATA(A_REVERSE), + DATA(A_BLINK), + DATA(A_DIM), + DATA(A_BOLD), + DATA(A_ALTCHARSET), + DATA(A_INVIS), + DATA(A_PROTECT), + DATA(A_CHARTEXT), + DATA(A_NORMAL), + DATA(A_COLOR), +#if USE_ITALIC + DATA(A_ITALIC), +#endif + } +#ifndef USE_TERMLIB + , + colors[] = + { + DATA(COLOR_BLACK), + DATA(COLOR_RED), + DATA(COLOR_GREEN), + DATA(COLOR_YELLOW), + DATA(COLOR_BLUE), + DATA(COLOR_MAGENTA), + DATA(COLOR_CYAN), + DATA(COLOR_WHITE), + } +#endif /* !USE_TERMLIB */ + ; +#undef DATA + char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + + if (result != 0) { + size_t n; + unsigned save_nc_tracing = _nc_tracing; + + _nc_tracing = 0; + + _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum)); + + for (n = 0; n < SIZEOF(names); n++) { + + if ((newmode & names[n].val) != 0) { + if (result[1] != '\0') + (void) _nc_trace_bufcat(bufnum, "|"); + result = _nc_trace_bufcat(bufnum, names[n].name); + + if (names[n].val == A_COLOR) { + char temp[80]; + short pairnum = (short) PairNumber(newmode); +#ifdef USE_TERMLIB + /* pair_content lives in libncurses */ + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "{%d}", pairnum); +#else + NCURSES_COLOR_T fg, bg; + + if (pair_content(pairnum, &fg, &bg) == OK) { + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "{%d = {%s, %s}}", + pairnum, + COLOR_OF(fg), + COLOR_OF(bg)); + } else { + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "{%d}", pairnum); + } +#endif + result = _nc_trace_bufcat(bufnum, temp); + } + } + } + if (ChAttrOf(newmode) == A_NORMAL) { + if (result != 0 && result[1] != '\0') + (void) _nc_trace_bufcat(bufnum, "|"); + (void) _nc_trace_bufcat(bufnum, "A_NORMAL"); + } + + _nc_tracing = save_nc_tracing; + result = _nc_trace_bufcat(bufnum, r_brace); + } + return result; +} + +NCURSES_EXPORT(char *) +_traceattr(attr_t newmode) +{ + return _traceattr2(0, newmode); +} + +/* Trace 'int' return-values */ +NCURSES_EXPORT(int) +_nc_retrace_int_attr_t(attr_t code) +{ + T((T_RETURN("%s"), _traceattr(code))); + return (int) code; +} + +/* Trace 'attr_t' return-values */ +NCURSES_EXPORT(attr_t) +_nc_retrace_attr_t(attr_t code) +{ + T((T_RETURN("%s"), _traceattr(code))); + return code; +} + +const char * +_nc_altcharset_name(attr_t attr, chtype ch) +{ +#define DATA(code, name) { code, { #name } } + typedef struct { + unsigned int val; + const char name[13]; + } ALT_NAMES; +#if NCURSES_SP_FUNCS + SCREEN *sp = CURRENT_SCREEN; +#endif + static const ALT_NAMES names[] = + { + DATA('l', ACS_ULCORNER), /* upper left corner */ + DATA('m', ACS_LLCORNER), /* lower left corner */ + DATA('k', ACS_URCORNER), /* upper right corner */ + DATA('j', ACS_LRCORNER), /* lower right corner */ + DATA('t', ACS_LTEE), /* tee pointing right */ + DATA('u', ACS_RTEE), /* tee pointing left */ + DATA('v', ACS_BTEE), /* tee pointing up */ + DATA('w', ACS_TTEE), /* tee pointing down */ + DATA('q', ACS_HLINE), /* horizontal line */ + DATA('x', ACS_VLINE), /* vertical line */ + DATA('n', ACS_PLUS), /* large plus or crossover */ + DATA('o', ACS_S1), /* scan line 1 */ + DATA('s', ACS_S9), /* scan line 9 */ + DATA('`', ACS_DIAMOND), /* diamond */ + DATA('a', ACS_CKBOARD), /* checker board (stipple) */ + DATA('f', ACS_DEGREE), /* degree symbol */ + DATA('g', ACS_PLMINUS), /* plus/minus */ + DATA('~', ACS_BULLET), /* bullet */ + DATA(',', ACS_LARROW), /* arrow pointing left */ + DATA('+', ACS_RARROW), /* arrow pointing right */ + DATA('.', ACS_DARROW), /* arrow pointing down */ + DATA('-', ACS_UARROW), /* arrow pointing up */ + DATA('h', ACS_BOARD), /* board of squares */ + DATA('i', ACS_LANTERN), /* lantern symbol */ + DATA('0', ACS_BLOCK), /* solid square block */ + DATA('p', ACS_S3), /* scan line 3 */ + DATA('r', ACS_S7), /* scan line 7 */ + DATA('y', ACS_LEQUAL), /* less/equal */ + DATA('z', ACS_GEQUAL), /* greater/equal */ + DATA('{', ACS_PI), /* Pi */ + DATA('|', ACS_NEQUAL), /* not equal */ + DATA('}', ACS_STERLING), /* UK pound sign */ + }; +#undef DATA + + const char *result = 0; + +#if NCURSES_SP_FUNCS + (void) sp; +#endif + if (SP_PARM != 0 && (attr & A_ALTCHARSET) && (acs_chars != 0)) { + char *cp; + char *found = 0; + + for (cp = acs_chars; cp[0] && cp[1]; cp += 2) { + if (ChCharOf(UChar(cp[1])) == ChCharOf(ch)) { + found = cp; + /* don't exit from loop - there may be redefinitions */ + } + } + + if (found != 0) { + size_t n; + + ch = ChCharOf(UChar(*found)); + for (n = 0; n < SIZEOF(names); ++n) { + if (names[n].val == ch) { + result = names[n].name; + break; + } + } + } + } + return result; +} + +NCURSES_EXPORT(char *) +_tracechtype2(int bufnum, chtype ch) +{ + char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + + if (result != 0) { + const char *found; + attr_t attr = ChAttrOf(ch); + + _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum)); + if ((found = _nc_altcharset_name(attr, ch)) != 0) { + (void) _nc_trace_bufcat(bufnum, found); + attr &= ~A_ALTCHARSET; + } else + (void) _nc_trace_bufcat(bufnum, + _nc_tracechar(CURRENT_SCREEN, + (int) ChCharOf(ch))); + + if (attr != A_NORMAL) { + (void) _nc_trace_bufcat(bufnum, " | "); + (void) _nc_trace_bufcat(bufnum, + _traceattr2(bufnum + 20, attr)); + } + + result = _nc_trace_bufcat(bufnum, r_brace); + } + return result; +} + +NCURSES_EXPORT(char *) +_tracechtype(chtype ch) +{ + return _tracechtype2(0, ch); +} + +/* Trace 'chtype' return-values */ +NCURSES_EXPORT(chtype) +_nc_retrace_chtype(chtype code) +{ + T((T_RETURN("%s"), _tracechtype(code))); + return code; +} + +#if USE_WIDEC_SUPPORT +NCURSES_EXPORT(char *) +_tracecchar_t2(int bufnum, const cchar_t *ch) +{ + char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + + if (result != 0) { + _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum)); + if (ch != 0) { + const char *found; + attr_t attr = AttrOfD(ch); + + if ((found = _nc_altcharset_name(attr, (chtype) CharOfD(ch))) != 0) { + (void) _nc_trace_bufcat(bufnum, found); + attr &= ~A_ALTCHARSET; + } else if (isWidecExt(CHDEREF(ch))) { + (void) _nc_trace_bufcat(bufnum, "{NAC}"); + attr &= ~A_CHARTEXT; + } else { + PUTC_DATA; + int n; + + (void) _nc_trace_bufcat(bufnum, "{ "); + for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) { + PUTC_ch = ch->chars[PUTC_i]; + if (PUTC_ch == L'\0') { + if (PUTC_i == 0) + (void) _nc_trace_bufcat(bufnum, "\\000"); + break; + } + PUTC_INIT; + PUTC_n = (int) wcrtomb(PUTC_buf, ch->chars[PUTC_i], &PUT_st); + if (PUTC_n <= 0) { + if (PUTC_ch != L'\0') { + /* it could not be a multibyte sequence */ + (void) _nc_trace_bufcat(bufnum, + _nc_tracechar(CURRENT_SCREEN, + UChar(ch->chars[PUTC_i]))); + } + break; + } else if (ch->chars[PUTC_i] > 255) { + char temp[80]; + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "{%d:\\u%lx}", + _nc_wacs_width(ch->chars[PUTC_i]), + (unsigned long) ch->chars[PUTC_i]); + (void) _nc_trace_bufcat(bufnum, temp); + attr &= ~A_CHARTEXT; /* ignore WidecExt(ch) */ + } else { + for (n = 0; n < PUTC_n; n++) { + if (n) + (void) _nc_trace_bufcat(bufnum, ", "); + (void) _nc_trace_bufcat(bufnum, + _nc_tracechar(CURRENT_SCREEN, + UChar(PUTC_buf[n]))); + } + } + } + (void) _nc_trace_bufcat(bufnum, " }"); + } + if (attr != A_NORMAL) { + (void) _nc_trace_bufcat(bufnum, " | "); + (void) _nc_trace_bufcat(bufnum, _traceattr2(bufnum + 20, attr)); + } +#if NCURSES_EXT_COLORS + /* + * Just in case the extended color is different from the chtype + * value, trace both. + */ + if (ch->ext_color != PairNumber(attr)) { + char temp[80]; + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + " X_COLOR{%d:%d}", ch->ext_color, PairNumber(attr)); + (void) _nc_trace_bufcat(bufnum, temp); + } +#endif + } + + result = _nc_trace_bufcat(bufnum, r_brace); + } + return result; +} + +NCURSES_EXPORT(char *) +_tracecchar_t(const cchar_t *ch) +{ + return _tracecchar_t2(0, ch); +} +#endif + +#else +EMPTY_MODULE(_nc_lib_traceatr) +#endif /* TRACE */ diff --git a/third_party/ncurses/lib_tracebits.c b/third_party/ncurses/lib_tracebits.c new file mode 100644 index 000000000..99c6f1460 --- /dev/null +++ b/third_party/ncurses/lib_tracebits.c @@ -0,0 +1,303 @@ +/**************************************************************************** + * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 1998-2012,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_tracebits.c,v 1.31 2020/11/14 23:38:11 tom Exp $") + +#if HAVE_SYS_TERMIO_H +#include /* needed for ISC */ +#endif + +#ifdef __EMX__ +#include +#endif + +/* may be undefined if we're using termio.h */ +#ifndef TOSTOP +#define TOSTOP 0 +#endif + +#ifndef IEXTEN +#define IEXTEN 0 +#endif + +#ifndef ONLCR +#define ONLCR 0 +#endif + +#ifndef OCRNL +#define OCRNL 0 +#endif + +#ifndef ONOCR +#define ONOCR 0 +#endif + +#ifndef ONLRET +#define ONLRET 0 +#endif + +#ifdef TRACE + +#if defined(EXP_WIN32_DRIVER) +#define BITNAMELEN 36 +#else +#define BITNAMELEN 8 +#endif + +typedef struct { + unsigned int val; + const char name[BITNAMELEN]; +} BITNAMES; + +#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size) + +static void +lookup_bits(char *buf, const BITNAMES * table, const char *label, unsigned int val) +{ + const BITNAMES *sp; + + _nc_STRCAT(buf, label, TRACE_BUF_SIZE(0)); + _nc_STRCAT(buf, ": {", TRACE_BUF_SIZE(0)); + for (sp = table; sp->name[0]; sp++) + if (sp->val != 0 + && (val & sp->val) == sp->val) { + _nc_STRCAT(buf, sp->name, TRACE_BUF_SIZE(0)); + _nc_STRCAT(buf, ", ", TRACE_BUF_SIZE(0)); + } + if (buf[strlen(buf) - 2] == ',') + buf[strlen(buf) - 2] = '\0'; + _nc_STRCAT(buf, "} ", TRACE_BUF_SIZE(0)); +} + +NCURSES_EXPORT(char *) +_nc_trace_ttymode(const TTY * tty) +/* describe the state of the terminal control bits exactly */ +{ + char *buf; + +#ifdef TERMIOS +#define DATA(name) { name, { #name } } +#define DATA2(name,name2) { name, { #name2 } } +#define DATAX() { 0, { "" } } + static BITNAMES iflags[] = + { + DATA(BRKINT), + DATA(IGNBRK), + DATA(IGNPAR), + DATA(PARMRK), + DATA(INPCK), + DATA(ISTRIP), + DATA(INLCR), + DATA(IGNCR), + DATA(ICRNL), + DATA(IXON), + DATA(IXOFF), + DATAX() +#define ALLIN (BRKINT|IGNBRK|IGNPAR|PARMRK|INPCK|ISTRIP|INLCR|IGNCR|ICRNL|IXON|IXOFF) + }, oflags[] = + { + DATA(OPOST), + DATA2(OFLAGS_TABS, XTABS), + DATA(ONLCR), + DATA(OCRNL), + DATA(ONOCR), + DATA(ONLRET), + DATAX() +#define ALLOUT (OPOST|OFLAGS_TABS|ONLCR|OCRNL|ONOCR|ONLRET|OFLAGS_TABS) + }, cflags[] = + { + DATA(CLOCAL), + DATA(CREAD), + DATA(CSTOPB), +#if !defined(CS5) || !defined(CS8) + DATA(CSIZE), +#endif + DATA(HUPCL), + DATA(PARENB), + DATA2(PARODD | PARENB, PARODD), + DATAX() +#define ALLCTRL (CLOCAL|CREAD|CSIZE|CSTOPB|HUPCL|PARENB|PARODD) + }, lflags[] = + { + DATA(ECHO), + DATA2(ECHOE | ECHO, ECHOE), + DATA2(ECHOK | ECHO, ECHOK), + DATA(ECHONL), + DATA(ICANON), + DATA(ISIG), + DATA(NOFLSH), + DATA(TOSTOP), + DATA(IEXTEN), + DATAX() +#define ALLLOCAL (ECHO|ECHONL|ICANON|ISIG|NOFLSH|TOSTOP|IEXTEN) + }; + + buf = _nc_trace_buf(0, + 8 + sizeof(iflags) + + 8 + sizeof(oflags) + + 8 + sizeof(cflags) + + 8 + sizeof(lflags) + + 8); + if (buf != 0) { + + if (tty->c_iflag & ALLIN) + lookup_bits(buf, iflags, "iflags", tty->c_iflag); + + if (tty->c_oflag & ALLOUT) + lookup_bits(buf, oflags, "oflags", tty->c_oflag); + + if (tty->c_cflag & ALLCTRL) + lookup_bits(buf, cflags, "cflags", tty->c_cflag); + +#if defined(CS5) && defined(CS8) + { + static struct { + int value; + const char name[5]; + } csizes[] = { +#define CS_DATA(name) { name, { #name " " } } + CS_DATA(CS5), +#ifdef CS6 + CS_DATA(CS6), +#endif +#ifdef CS7 + CS_DATA(CS7), +#endif + CS_DATA(CS8), + }; + const char *result = "CSIZE? "; + int value = (int) (tty->c_cflag & CSIZE); + unsigned n; + + if (value != 0) { + for (n = 0; n < SIZEOF(csizes); n++) { + if (csizes[n].value == value) { + result = csizes[n].name; + break; + } + } + } + _nc_STRCAT(buf, result, TRACE_BUF_SIZE(0)); + } +#endif + + if (tty->c_lflag & ALLLOCAL) + lookup_bits(buf, lflags, "lflags", tty->c_lflag); + } +#elif defined(EXP_WIN32_DRIVER) +#define DATA(name) { name, { #name } } + static const BITNAMES dwFlagsOut[] = + { + DATA(ENABLE_PROCESSED_OUTPUT), + DATA(ENABLE_WRAP_AT_EOL_OUTPUT), + DATA(ENABLE_VIRTUAL_TERMINAL_PROCESSING), + DATA(DISABLE_NEWLINE_AUTO_RETURN), + DATA(ENABLE_LVB_GRID_WORLDWIDE) + }; + static const BITNAMES dwFlagsIn[] = + { + DATA(ENABLE_PROCESSED_INPUT), + DATA(ENABLE_LINE_INPUT), + DATA(ENABLE_ECHO_INPUT), + DATA(ENABLE_MOUSE_INPUT), + DATA(ENABLE_INSERT_MODE), + DATA(ENABLE_QUICK_EDIT_MODE), + DATA(ENABLE_EXTENDED_FLAGS), + DATA(ENABLE_AUTO_POSITION), + DATA(ENABLE_VIRTUAL_TERMINAL_INPUT) + }; + + buf = _nc_trace_buf(0, + 8 + sizeof(dwFlagsOut) + + 8 + sizeof(dwFlagsIn)); + if (buf != 0) { + lookup_bits(buf, dwFlagsIn, "dwIn", tty->dwFlagIn); + lookup_bits(buf, dwFlagsOut, "dwOut", tty->dwFlagOut); + } +#else + /* reference: ttcompat(4M) on SunOS 4.1 */ +#ifndef EVENP +#define EVENP 0 +#endif +#ifndef LCASE +#define LCASE 0 +#endif +#ifndef LLITOUT +#define LLITOUT 0 +#endif +#ifndef ODDP +#define ODDP 0 +#endif +#ifndef TANDEM +#define TANDEM 0 +#endif + + static const BITNAMES cflags[] = + { + DATA(CBREAK), + DATA(CRMOD), + DATA(ECHO), + DATA(EVENP), + DATA(LCASE), + DATA(LLITOUT), + DATA(ODDP), + DATA(RAW), + DATA(TANDEM), + DATA(XTABS), + DATAX() +#define ALLCTRL (CBREAK|CRMOD|ECHO|EVENP|LCASE|LLITOUT|ODDP|RAW|TANDEM|XTABS) + }; + + buf = _nc_trace_buf(0, + 8 + sizeof(cflags)); + if (buf != 0) { + if (tty->sg_flags & ALLCTRL) { + lookup_bits(buf, cflags, "cflags", tty->sg_flags); + } + } +#endif + return (buf); +} + +NCURSES_EXPORT(char *) +_nc_tracebits(void) +{ + return _nc_trace_ttymode(&(cur_term->Nttyb)); +} +#else +EMPTY_MODULE(_nc_empty_lib_tracebits) +#endif /* TRACE */ diff --git a/third_party/ncurses/lib_tracechr.c b/third_party/ncurses/lib_tracechr.c new file mode 100644 index 000000000..1366ae608 --- /dev/null +++ b/third_party/ncurses/lib_tracechr.c @@ -0,0 +1,88 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * lib_tracechr.c - Tracing/Debugging routines + */ +#include "curses.priv.h" + +#include + +MODULE_ID("$Id: lib_tracechr.c,v 1.23 2020/02/02 23:34:34 tom Exp $") + +#ifdef TRACE + +#define MyBufSize sizeof(_nc_globals.tracechr_buf) + +NCURSES_EXPORT(char *) +_nc_tracechar(SCREEN *sp, int ch) +{ + NCURSES_CONST char *name; + char *MyBuffer = ((sp != 0) + ? sp->tracechr_buf + : _nc_globals.tracechr_buf); + + if (ch > KEY_MIN || ch < 0) { + name = safe_keyname(SP_PARM, ch); + if (name == 0 || *name == '\0') + name = "NULL"; + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) + "'%.30s' = %#03o", name, ch); + } else if (!is8bits(ch) || !isprint(UChar(ch))) { + /* + * workaround for glibc bug: + * sprintf changes the result from unctrl() to an empty string if it + * does not correspond to a valid multibyte sequence. + */ + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) + "%#03o", ch); + } else { + name = safe_unctrl(SP_PARM, (chtype) ch); + if (name == 0 || *name == 0) + name = "null"; /* shouldn't happen */ + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) + "'%.30s' = %#03o", name, ch); + } + return (MyBuffer); +} + +NCURSES_EXPORT(char *) +_tracechar(int ch) +{ + return _nc_tracechar(CURRENT_SCREEN, ch); +} +#else +EMPTY_MODULE(_nc_lib_tracechr) +#endif diff --git a/third_party/ncurses/lib_tracedmp.c b/third_party/ncurses/lib_tracedmp.c new file mode 100644 index 000000000..e8c93452b --- /dev/null +++ b/third_party/ncurses/lib_tracedmp.c @@ -0,0 +1,187 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2012,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1996-on * + * and: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* + * lib_tracedmp.c - Tracing/Debugging routines + */ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_tracedmp.c,v 1.36 2020/02/02 23:34:34 tom Exp $") + +#ifdef TRACE + +#define my_buffer _nc_globals.tracedmp_buf +#define my_length _nc_globals.tracedmp_used + +NCURSES_EXPORT(void) +_tracedump(const char *name, WINDOW *win) +{ + int i, j, n, width; + + /* compute narrowest possible display width */ + for (width = i = 0; i <= win->_maxy; ++i) { + n = 0; + for (j = 0; j <= win->_maxx; ++j) { + if (CharOf(win->_line[i].text[j]) != L(' ') + || AttrOf(win->_line[i].text[j]) != A_NORMAL + || GetPair(win->_line[i].text[j]) != 0) { + n = j; + } + } + + if (n > width) + width = n; + } + if (width < win->_maxx) + ++width; + if (++width + 1 > (int) my_length) { + my_length = (unsigned) (2 * (width + 1)); + my_buffer = typeRealloc(char, my_length, my_buffer); + if (my_buffer == 0) + return; + } + + for (n = 0; n <= win->_maxy; ++n) { + char *ep = my_buffer; + bool havecolors; + + /* + * Dump A_CHARTEXT part. It is more important to make the grid line up + * in the trace file than to represent control- and wide-characters, so + * we map those to '.' and '?' respectively. + */ + for (j = 0; j < width; ++j) { + chtype test = (chtype) CharOf(win->_line[n].text[j]); + ep[j] = (char) ((UChar(test) == test +#if USE_WIDEC_SUPPORT + && (win->_line[n].text[j].chars[1] == 0) +#endif + ) + ? (iscntrl(UChar(test)) + ? '.' + : UChar(test)) + : '?'); + } + ep[j] = '\0'; + _tracef("%s[%2d] %3ld%3ld ='%s'", + name, n, + (long) win->_line[n].firstchar, + (long) win->_line[n].lastchar, + ep); + + /* if there are multi-column characters on the line, print them now */ + if_WIDEC({ + bool multicolumn = FALSE; + for (j = 0; j < width; ++j) + if (WidecExt(win->_line[n].text[j]) != 0) { + multicolumn = TRUE; + break; + } + if (multicolumn) { + ep = my_buffer; + for (j = 0; j < width; ++j) { + int test = WidecExt(win->_line[n].text[j]); + if (test) { + ep[j] = (char) (test + '0'); + } else { + ep[j] = ' '; + } + } + ep[j] = '\0'; + _tracef("%*s[%2d]%*s='%s'", (int) strlen(name), + "widec", n, 8, " ", my_buffer); + } + }); + + /* dump A_COLOR part, will screw up if there are more than 96 */ + havecolors = FALSE; + for (j = 0; j < width; ++j) + if (GetPair(win->_line[n].text[j]) != 0) { + havecolors = TRUE; + break; + } + if (havecolors) { + ep = my_buffer; + for (j = 0; j < width; ++j) { + int pair = GetPair(win->_line[n].text[j]); + if (pair >= 52) + ep[j] = '?'; + else if (pair >= 36) + ep[j] = (char) (pair + 'A'); + else if (pair >= 10) + ep[j] = (char) (pair + 'a'); + else if (pair >= 1) + ep[j] = (char) (pair + '0'); + else + ep[j] = ' '; + } + ep[j] = '\0'; + _tracef("%*s[%2d]%*s='%s'", (int) strlen(name), + "colors", n, 8, " ", my_buffer); + } + + for (i = 0; i < 4; ++i) { + const char *hex = " 123456789ABCDEF"; + attr_t mask = (attr_t) (0xf << ((i + 4) * 4)); + bool haveattrs = FALSE; + + for (j = 0; j < width; ++j) + if (AttrOf(win->_line[n].text[j]) & mask) { + haveattrs = TRUE; + break; + } + if (haveattrs) { + ep = my_buffer; + for (j = 0; j < width; ++j) + ep[j] = hex[(AttrOf(win->_line[n].text[j]) & mask) >> + ((i + 4) * 4)]; + ep[j] = '\0'; + _tracef("%*s%d[%2d]%*s='%s'", (int) strlen(name) - + 1, "attrs", i, n, 8, " ", my_buffer); + } + } + } +#if NO_LEAKS + free(my_buffer); + my_buffer = 0; + my_length = 0; +#endif +} + +#else +EMPTY_MODULE(_nc_lib_tracedmp) +#endif /* TRACE */ diff --git a/third_party/ncurses/lib_tracemse.c b/third_party/ncurses/lib_tracemse.c new file mode 100644 index 000000000..a2bb65693 --- /dev/null +++ b/third_party/ncurses/lib_tracemse.c @@ -0,0 +1,158 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * lib_tracemse.c - Tracing/Debugging routines (mouse events) + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_tracemse.c,v 1.23 2020/02/02 23:34:34 tom Exp $") + +#ifdef TRACE + +#define my_buffer sp->tracemse_buf + +NCURSES_EXPORT(char *) +_nc_trace_mmask_t(SCREEN *sp, mmask_t code) +{ +#define SHOW(m, s) \ + if ((code & m) == m) { \ + size_t n = strlen(my_buffer); \ + if (n && (my_buffer[n-1] != '{')) \ + _nc_STRCAT(my_buffer, ", ", sizeof(my_buffer)); \ + _nc_STRCAT(my_buffer, s, sizeof(my_buffer)); \ + } + + SHOW(BUTTON1_RELEASED, "release-1"); + SHOW(BUTTON1_PRESSED, "press-1"); + SHOW(BUTTON1_CLICKED, "click-1"); + SHOW(BUTTON1_DOUBLE_CLICKED, "doubleclick-1"); + SHOW(BUTTON1_TRIPLE_CLICKED, "tripleclick-1"); +#if NCURSES_MOUSE_VERSION == 1 + SHOW(BUTTON1_RESERVED_EVENT, "reserved-1"); +#endif + + SHOW(BUTTON2_RELEASED, "release-2"); + SHOW(BUTTON2_PRESSED, "press-2"); + SHOW(BUTTON2_CLICKED, "click-2"); + SHOW(BUTTON2_DOUBLE_CLICKED, "doubleclick-2"); + SHOW(BUTTON2_TRIPLE_CLICKED, "tripleclick-2"); +#if NCURSES_MOUSE_VERSION == 1 + SHOW(BUTTON2_RESERVED_EVENT, "reserved-2"); +#endif + + SHOW(BUTTON3_RELEASED, "release-3"); + SHOW(BUTTON3_PRESSED, "press-3"); + SHOW(BUTTON3_CLICKED, "click-3"); + SHOW(BUTTON3_DOUBLE_CLICKED, "doubleclick-3"); + SHOW(BUTTON3_TRIPLE_CLICKED, "tripleclick-3"); +#if NCURSES_MOUSE_VERSION == 1 + SHOW(BUTTON3_RESERVED_EVENT, "reserved-3"); +#endif + + SHOW(BUTTON4_RELEASED, "release-4"); + SHOW(BUTTON4_PRESSED, "press-4"); + SHOW(BUTTON4_CLICKED, "click-4"); + SHOW(BUTTON4_DOUBLE_CLICKED, "doubleclick-4"); + SHOW(BUTTON4_TRIPLE_CLICKED, "tripleclick-4"); +#if NCURSES_MOUSE_VERSION == 1 + SHOW(BUTTON4_RESERVED_EVENT, "reserved-4"); +#endif + +#if NCURSES_MOUSE_VERSION == 2 + SHOW(BUTTON5_RELEASED, "release-5"); + SHOW(BUTTON5_PRESSED, "press-5"); + SHOW(BUTTON5_CLICKED, "click-5"); + SHOW(BUTTON5_DOUBLE_CLICKED, "doubleclick-5"); + SHOW(BUTTON5_TRIPLE_CLICKED, "tripleclick-5"); +#endif + + SHOW(BUTTON_CTRL, "ctrl"); + SHOW(BUTTON_SHIFT, "shift"); + SHOW(BUTTON_ALT, "alt"); + SHOW(ALL_MOUSE_EVENTS, "all-events"); + SHOW(REPORT_MOUSE_POSITION, "position"); + +#undef SHOW + + if (my_buffer[strlen(my_buffer) - 1] == ' ') + my_buffer[strlen(my_buffer) - 2] = '\0'; + + return (my_buffer); +} + +NCURSES_EXPORT(char *) +_nc_tracemouse(SCREEN *sp, MEVENT const *ep) +{ + char *result = 0; + + if (sp != 0) { + _nc_SPRINTF(my_buffer, _nc_SLIMIT(sizeof(my_buffer)) + TRACEMSE_FMT, + ep->id, + ep->x, + ep->y, + ep->z, + (unsigned long) ep->bstate); + + (void) _nc_trace_mmask_t(sp, ep->bstate); + _nc_STRCAT(my_buffer, "}", sizeof(my_buffer)); + result = (my_buffer); + } + return result; +} + +NCURSES_EXPORT(mmask_t) +_nc_retrace_mmask_t(SCREEN *sp, mmask_t code) +{ + if (sp != 0) { + *my_buffer = '\0'; + T((T_RETURN("{%s}"), _nc_trace_mmask_t(sp, code))); + } else { + T((T_RETURN("{?}"))); + } + return code; +} + +NCURSES_EXPORT(char *) +_tracemouse(MEVENT const *ep) +{ + return _nc_tracemouse(CURRENT_SCREEN, ep); +} + +#else /* !TRACE */ +EMPTY_MODULE(_nc_lib_tracemouse) +#endif diff --git a/third_party/ncurses/lib_tstp.c b/third_party/ncurses/lib_tstp.c new file mode 100644 index 000000000..a02344efc --- /dev/null +++ b/third_party/ncurses/lib_tstp.c @@ -0,0 +1,428 @@ +/**************************************************************************** + * Copyright 2020-2021,2022 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1995-on * + ****************************************************************************/ + +/* +** lib_tstp.c +** +** The routine _nc_signal_handler(). +** +*/ +#include "curses.priv.h" + +#include "SigAction.h" + +MODULE_ID("$Id: lib_tstp.c,v 1.54 2022/12/24 22:22:10 tom Exp $") + +#if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC) +#define USE_SIGTSTP 1 +#else +#define USE_SIGTSTP 0 +#endif + +#ifdef TRACE +static const char * +signal_name(int sig) +{ + switch (sig) { +#ifdef SIGALRM + case SIGALRM: + return "SIGALRM"; +#endif +#ifdef SIGCONT + case SIGCONT: + return "SIGCONT"; +#endif + case SIGINT: + return "SIGINT"; +#ifdef SIGQUIT + case SIGQUIT: + return "SIGQUIT"; +#endif + case SIGTERM: + return "SIGTERM"; +#ifdef SIGTSTP + case SIGTSTP: + return "SIGTSTP"; +#endif +#ifdef SIGTTOU + case SIGTTOU: + return "SIGTTOU"; +#endif +#ifdef SIGWINCH + case SIGWINCH: + return "SIGWINCH"; +#endif + default: + return "unknown signal"; + } +} +#endif + +/* + * Note: This code is fragile! Its problem is that different OSs + * handle restart of system calls interrupted by signals differently. + * The ncurses code needs signal-call restart to happen -- otherwise, + * interrupted wgetch() calls will return FAIL, probably making the + * application think the input stream has ended and it should + * terminate. In particular, you know you have this problem if, when + * you suspend an ncurses-using lynx with ^Z and resume, it dies + * immediately. + * + * Default behavior of POSIX sigaction(2) is not to restart + * interrupted system calls, but Linux's sigaction does it anyway (at + * least, on and after the 1.1.47 I (esr) use). Thus this code works + * OK under Linux. The 4.4BSD sigaction(2) supports a (non-portable) + * SA_RESTART flag that forces the right behavior. Thus, this code + * should work OK under BSD/OS, NetBSD, and FreeBSD (let us know if it + * does not). + * + * Stock System Vs (and anything else using a strict-POSIX + * sigaction(2) without SA_RESTART) may have a problem. Possible + * solutions: + * + * sigvec restarts by default (SV_INTERRUPT flag to not restart) + * signal restarts by default in SVr4 (assuming you link with -lucb) + * and BSD, but not SVr3. + * sigset restarts, but is only available under SVr4/Solaris. + * + * The signal(3) call is mandated by the ANSI standard, and its + * interaction with sigaction(2) is described in the POSIX standard + * (3.3.4.2, page 72,line 934). According to section 8.1, page 191, + * however, signal(3) itself is not required by POSIX.1. And POSIX is + * silent on whether it is required to restart signals. + * + * So. The present situation is, we use sigaction(2) with no + * guarantee of restart anywhere but on Linux and BSD. We could + * switch to signal(3) and collar Linux, BSD, and SVr4. Any way + * we slice it, System V UNIXes older than SVr4 will probably lose + * (this may include XENIX). + * + * This implementation will probably be changed to use signal(3) in + * the future. If nothing else, it is simpler... + */ + +#if USE_SIGTSTP +static void +handle_SIGTSTP(int dummy GCC_UNUSED) +{ + SCREEN *sp = CURRENT_SCREEN; + sigset_t mask, omask; + sigaction_t act, oact; + +#ifdef SIGTTOU + int sigttou_blocked; +#endif + + _nc_globals.have_sigtstp = 1; + T(("handle_SIGTSTP() called")); + + /* + * The user may have changed the prog_mode tty bits, so save them. + * + * But first try to detect whether we still are in the foreground + * process group - if not, an interactive shell may already have + * taken ownership of the tty and modified the settings when our + * parent was stopped before us, and we would likely pick up the + * settings already modified by the shell. + * + * Don't do this if we're not in curses - + */ + if (sp != 0 && (sp->_endwin == ewRunning)) +#if HAVE_TCGETPGRP + if (tcgetpgrp(STDIN_FILENO) == getpgrp()) +#endif + NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_ARG); + + /* + * Block window change and timer signals. The latter + * is because applications use timers to decide when + * to repaint the screen. + */ + (void) sigemptyset(&mask); +#ifdef SIGALRM + (void) sigaddset(&mask, SIGALRM); +#endif +#if USE_SIGWINCH + (void) sigaddset(&mask, SIGWINCH); +#endif + (void) sigprocmask(SIG_BLOCK, &mask, &omask); + +#ifdef SIGTTOU + sigttou_blocked = sigismember(&omask, SIGTTOU); + if (!sigttou_blocked) { + (void) sigemptyset(&mask); + (void) sigaddset(&mask, SIGTTOU); + (void) sigprocmask(SIG_BLOCK, &mask, NULL); + } +#endif + + /* + * End window mode, which also resets the terminal state to the + * original (pre-curses) modes. + */ + NCURSES_SP_NAME(endwin) (NCURSES_SP_ARG); + + /* Unblock SIGTSTP. */ + (void) sigemptyset(&mask); + (void) sigaddset(&mask, SIGTSTP); +#ifdef SIGTTOU + if (!sigttou_blocked) { + /* Unblock this too if it wasn't blocked on entry */ + (void) sigaddset(&mask, SIGTTOU); + } +#endif + (void) sigprocmask(SIG_UNBLOCK, &mask, NULL); + + /* Now we want to resend SIGSTP to this process and suspend it */ + act.sa_handler = SIG_DFL; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; +#ifdef SA_RESTART + act.sa_flags |= SA_RESTART; +#endif /* SA_RESTART */ + sigaction(SIGTSTP, &act, &oact); + kill(getpid(), SIGTSTP); + + /* Process gets suspended...time passes...process resumes */ + + T(("SIGCONT received")); + sigaction(SIGTSTP, &oact, NULL); + NCURSES_SP_NAME(flushinp) (NCURSES_SP_ARG); + + /* + * If the user modified the tty state while suspended, he wants + * those changes to stick. So save the new "default" terminal state. + */ + NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_ARG); + + /* + * This relies on the fact that doupdate() will restore the + * program-mode tty state, and issue enter_ca_mode if need be. + */ + NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG); + + /* Reset the signals. */ + (void) sigprocmask(SIG_SETMASK, &omask, NULL); +} +#endif /* USE_SIGTSTP */ + +static void +handle_SIGINT(int sig) +{ + SCREEN *sp = CURRENT_SCREEN; + + /* + * Much of this is unsafe from a signal handler. But we'll _try_ to clean + * up the screen and terminal settings on the way out. + * + * There are at least the following problems: + * 1) Walking the SCREEN list is unsafe, since all list management + * is done without any signal blocking. + * 2) On systems which have REENTRANT turned on, set_term() uses + * _nc_lock_global() which could deadlock or misbehave in other ways. + * 3) endwin() calls all sorts of stuff, many of which use stdio or + * other library functions which are clearly unsafe. + */ + if (!_nc_globals.cleanup_nested++ + && (sig == SIGINT || sig == SIGTERM)) { +#if HAVE_SIGACTION || HAVE_SIGVEC + sigaction_t act; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + act.sa_handler = SIG_IGN; + if (sigaction(sig, &act, NULL) == 0) +#else + if (signal(sig, SIG_IGN) != SIG_ERR) +#endif + { + SCREEN *scan; + for (each_screen(scan)) { + if (scan->_ofp != 0 + && NC_ISATTY(fileno(scan->_ofp))) { + scan->_outch = NCURSES_SP_NAME(_nc_outch); + } + set_term(scan); + NCURSES_SP_NAME(endwin) (NCURSES_SP_ARG); + if (sp) + sp->_endwin = ewInitial; /* in case of reuse */ + } + } + } + _exit(EXIT_FAILURE); +} + +# ifndef _nc_set_read_thread +NCURSES_EXPORT(void) +_nc_set_read_thread(bool enable) +{ + _nc_lock_global(curses); + if (enable) { +# if USE_WEAK_SYMBOLS + if ((pthread_self) && (pthread_kill) && (pthread_equal)) +# endif + _nc_globals.read_thread = pthread_self(); + } else { + _nc_globals.read_thread = 0; + } + _nc_unlock_global(curses); +} +# endif + +#if USE_SIGWINCH + +static void +handle_SIGWINCH(int sig GCC_UNUSED) +{ + _nc_globals.have_sigwinch = 1; +# if USE_PTHREADS_EINTR + if (_nc_globals.read_thread) { + if (!pthread_equal(pthread_self(), _nc_globals.read_thread)) + pthread_kill(_nc_globals.read_thread, SIGWINCH); + _nc_globals.read_thread = 0; + } +# endif +} +#endif /* USE_SIGWINCH */ + +/* + * If the given signal is still in its default state, set it to the given + * handler. + */ +static int +CatchIfDefault(int sig, void (*handler) (int)) +{ + int result; +#if HAVE_SIGACTION || HAVE_SIGVEC + sigaction_t old_act; + sigaction_t new_act; + + memset(&new_act, 0, sizeof(new_act)); + sigemptyset(&new_act.sa_mask); +#ifdef SA_RESTART +#ifdef SIGWINCH + if (sig != SIGWINCH) +#endif + new_act.sa_flags |= SA_RESTART; +#endif /* SA_RESTART */ + new_act.sa_handler = handler; + + if (sigaction(sig, NULL, &old_act) == 0 + && (old_act.sa_handler == SIG_DFL + || old_act.sa_handler == handler +#if USE_SIGWINCH + || (sig == SIGWINCH && old_act.sa_handler == SIG_IGN) +#endif + )) { + (void) sigaction(sig, &new_act, NULL); + result = TRUE; + } else { + result = FALSE; + } +#else /* !HAVE_SIGACTION */ + void (*ohandler) (int); + + ohandler = signal(sig, SIG_IGN); + if (ohandler == SIG_DFL + || ohandler == handler +#if USE_SIGWINCH + || (sig == SIGWINCH && ohandler == SIG_IGN) +#endif + ) { + signal(sig, handler); + result = TRUE; + } else { + signal(sig, ohandler); + result = FALSE; + } +#endif + T(("CatchIfDefault - will %scatch %s", + result ? "" : "not ", signal_name(sig))); + return result; +} + +/* + * This is invoked once at the beginning (e.g., from 'initscr()'), to + * initialize the signal catchers, and thereafter when spawning a shell (and + * returning) to disable/enable the SIGTSTP (i.e., ^Z) catcher. + * + * If the application has already set one of the signals, we'll not modify it + * (during initialization). + * + * The XSI document implies that we shouldn't keep the SIGTSTP handler if + * the caller later changes its mind, but that doesn't seem correct. + */ +NCURSES_EXPORT(void) +_nc_signal_handler(int enable) +{ + T((T_CALLED("_nc_signal_handler(%d)"), enable)); +#if USE_SIGTSTP /* Xenix 2.x doesn't have SIGTSTP, for example */ + { + static bool ignore_tstp = FALSE; + + if (!ignore_tstp) { + static sigaction_t new_sigaction, old_sigaction; + + if (!enable) { + new_sigaction.sa_handler = SIG_IGN; + sigaction(SIGTSTP, &new_sigaction, &old_sigaction); + } else if (new_sigaction.sa_handler != SIG_DFL) { + sigaction(SIGTSTP, &old_sigaction, NULL); + } else if (sigaction(SIGTSTP, NULL, &old_sigaction) == 0 + && (old_sigaction.sa_handler == SIG_DFL)) { + sigemptyset(&new_sigaction.sa_mask); +#ifdef SA_RESTART + new_sigaction.sa_flags |= SA_RESTART; +#endif /* SA_RESTART */ + new_sigaction.sa_handler = handle_SIGTSTP; + (void) sigaction(SIGTSTP, &new_sigaction, NULL); + } else { + ignore_tstp = TRUE; + } + } + } +#endif /* !USE_SIGTSTP */ + + if (!_nc_globals.init_signals) { + if (enable) { + CatchIfDefault(SIGINT, handle_SIGINT); + CatchIfDefault(SIGTERM, handle_SIGINT); +#if USE_SIGWINCH + CatchIfDefault(SIGWINCH, handle_SIGWINCH); +#endif + _nc_globals.init_signals = TRUE; + } + } + returnVoid; +} diff --git a/third_party/ncurses/lib_ttyflags.c b/third_party/ncurses/lib_ttyflags.c new file mode 100644 index 000000000..10ef7d14e --- /dev/null +++ b/third_party/ncurses/lib_ttyflags.c @@ -0,0 +1,330 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* + * def_prog_mode() + * def_shell_mode() + * reset_prog_mode() + * reset_shell_mode() + * savetty() + * resetty() + */ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_ttyflags.c,v 1.36 2020/09/05 22:54:47 tom Exp $") + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_DCLx TTY * buf) +{ + TERMINAL *termp = TerminalOf(SP_PARM); + int result = OK; + + if (buf == 0 || termp == 0) { + result = ERR; + } else { + +#ifdef USE_TERM_DRIVER + if (SP_PARM != 0) { + result = CallDriver_2(SP_PARM, td_sgmode, FALSE, buf); + } else { + result = ERR; + } +#else + for (;;) { + if (GET_TTY(termp->Filedes, buf) != 0) { + if (errno == EINTR) + continue; + result = ERR; + } + break; + } +#endif + + TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s", + termp ? termp->Filedes : -1, + _nc_trace_ttymode(buf))); + } + if (result == ERR && buf != 0) + memset(buf, 0, sizeof(*buf)); + + return (result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_get_tty_mode(TTY * buf) +{ + return NCURSES_SP_NAME(_nc_get_tty_mode) (CURRENT_SCREEN, buf); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_DCLx TTY * buf) +{ + int result = OK; + + if (buf == 0 || SP_PARM == 0) { + result = ERR; + } else { + TERMINAL *termp = TerminalOf(SP_PARM); + + if (0 == termp) { + result = ERR; + } else { +#ifdef USE_TERM_DRIVER + result = CallDriver_2(SP_PARM, td_sgmode, TRUE, buf); +#else + for (;;) { + if ((SET_TTY(termp->Filedes, buf) != 0) +#if USE_KLIBC_KBD + && !NC_ISATTY(termp->Filedes) +#endif + ) { + if (errno == EINTR) + continue; + if ((errno == ENOTTY) && (SP_PARM != 0)) + SP_PARM->_notty = TRUE; + result = ERR; + } + break; + } +#endif + } + TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s", + termp ? termp->Filedes : -1, + _nc_trace_ttymode(buf))); + } + return (result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_set_tty_mode(TTY * buf) +{ + return NCURSES_SP_NAME(_nc_set_tty_mode) (CURRENT_SCREEN, buf); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_DCL0) +{ + int rc = ERR; + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("def_shell_mode(%p) ->term %p"), + (void *) SP_PARM, (void *) termp)); + + if (termp != 0) { +#ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, td_mode, FALSE, TRUE); +#else + /* + * If XTABS was on, remove the tab and backtab capabilities. + */ + if (_nc_get_tty_mode(&termp->Ottyb) == OK) { +#ifdef TERMIOS + if (termp->Ottyb.c_oflag & OFLAGS_TABS) + tab = back_tab = NULL; +#elif defined(EXP_WIN32_DRIVER) + /* noop */ +#else + if (termp->Ottyb.sg_flags & XTABS) + tab = back_tab = NULL; +#endif + rc = OK; + } +#endif + } + returnCode(rc); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +def_shell_mode(void) +{ + return NCURSES_SP_NAME(def_shell_mode) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_DCL0) +{ + int rc = ERR; + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("def_prog_mode(%p) ->term %p"), (void *) SP_PARM, (void *) termp)); + + if (termp != 0) { +#ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, td_mode, TRUE, TRUE); +#else + /* + * Turn off the XTABS bit in the tty structure if it was on. + */ + if (_nc_get_tty_mode(&termp->Nttyb) == OK) { +#ifdef TERMIOS + termp->Nttyb.c_oflag &= (unsigned) (~OFLAGS_TABS); +#elif defined(EXP_WIN32_DRIVER) + /* noop */ +#else + termp->Nttyb.sg_flags &= (unsigned) (~XTABS); +#endif + rc = OK; + } +#endif + } + returnCode(rc); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +def_prog_mode(void) +{ + return NCURSES_SP_NAME(def_prog_mode) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_DCL0) +{ + int rc = ERR; + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("reset_prog_mode(%p) ->term %p"), (void *) SP_PARM, (void *) termp)); + + if (termp != 0) { +#ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, td_mode, TRUE, FALSE); +#else + if (_nc_set_tty_mode(&termp->Nttyb) == OK) { + if (SP_PARM) { + if (SP_PARM->_keypad_on) + _nc_keypad(SP_PARM, TRUE); + } + rc = OK; + } +#endif + } + returnCode(rc); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +reset_prog_mode(void) +{ + return NCURSES_SP_NAME(reset_prog_mode) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(reset_shell_mode) (NCURSES_SP_DCL0) +{ + int rc = ERR; + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("reset_shell_mode(%p) ->term %p"), + (void *) SP_PARM, (void *) termp)); + + if (termp != 0) { +#ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, td_mode, FALSE, FALSE); +#else + if (SP_PARM) { + _nc_keypad(SP_PARM, FALSE); + _nc_flush(); + } + rc = _nc_set_tty_mode(&termp->Ottyb); +#endif + } + returnCode(rc); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +reset_shell_mode(void) +{ + return NCURSES_SP_NAME(reset_shell_mode) (CURRENT_SCREEN); +} +#endif + +static TTY * +saved_tty(NCURSES_SP_DCL0) +{ + TTY *result = 0; + + if (SP_PARM != 0) { + result = (TTY *) & (SP_PARM->_saved_tty); + } else { + if (_nc_prescreen.saved_tty == 0) { + _nc_prescreen.saved_tty = typeCalloc(TTY, 1); + } + result = _nc_prescreen.saved_tty; + } + return result; +} + +/* +** savetty() and resetty() +** +*/ + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(savetty) (NCURSES_SP_DCL0) +{ + T((T_CALLED("savetty(%p)"), (void *) SP_PARM)); + returnCode(NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_ARGx saved_tty(NCURSES_SP_ARG))); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +savetty(void) +{ + return NCURSES_SP_NAME(savetty) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(resetty) (NCURSES_SP_DCL0) +{ + T((T_CALLED("resetty(%p)"), (void *) SP_PARM)); + returnCode(NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx saved_tty(NCURSES_SP_ARG))); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +resetty(void) +{ + return NCURSES_SP_NAME(resetty) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_twait.c b/third_party/ncurses/lib_twait.c new file mode 100644 index 000000000..01182a4f7 --- /dev/null +++ b/third_party/ncurses/lib_twait.c @@ -0,0 +1,518 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 1998-2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* +** lib_twait.c +** +** The routine _nc_timed_wait(). +** +** (This file was originally written by Eric Raymond; however except for +** comments, none of the original code remains - T.Dickey). +*/ + +#include "curses.priv.h" + +#if defined __HAIKU__ && defined __BEOS__ +#undef __BEOS__ +#endif + +#ifdef __BEOS__ +#undef false +#undef true +#include +#endif + +#if USE_KLIBC_KBD +#define INCL_KBD +#include +#endif + +#if USE_FUNC_POLL +# if HAVE_SYS_TIME_H +# include +# endif +#elif HAVE_SELECT +# if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT +# include +# endif +# if HAVE_SYS_SELECT_H +# include +# endif +#endif +#if HAVE_SYS_TIME_H +# include +#endif +#undef CUR + +MODULE_ID("$Id: lib_twait.c,v 1.75 2020/02/29 15:46:00 anonymous.maarten Exp $") + +static long +_nc_gettime(TimeType * t0, int first) +{ + long res; + +#if PRECISE_GETTIME + TimeType t1; + gettimeofday(&t1, (struct timezone *) 0); + if (first) { + *t0 = t1; + res = 0; + } else { + /* .tv_sec and .tv_usec are unsigned, be careful when subtracting */ + if (t0->tv_usec > t1.tv_usec) { + t1.tv_usec += 1000000; /* Convert 1s in 1e6 microsecs */ + t1.tv_sec--; + } + res = (t1.tv_sec - t0->tv_sec) * 1000 + + (t1.tv_usec - t0->tv_usec) / 1000; + } +#else + time_t t1 = time((time_t *) 0); + if (first) { + *t0 = t1; + } + res = (long) ((t1 - *t0) * 1000); +#endif + TR(TRACE_IEVENT, ("%s time: %ld msec", first ? "get" : "elapsed", res)); + return res; +} + +#ifdef NCURSES_WGETCH_EVENTS +NCURSES_EXPORT(int) +_nc_eventlist_timeout(_nc_eventlist * evl) +{ + int event_delay = -1; + + if (evl != 0) { + int n; + + for (n = 0; n < evl->count; ++n) { + _nc_event *ev = evl->events[n]; + + if (ev->type == _NC_EVENT_TIMEOUT_MSEC) { + event_delay = (int) ev->data.timeout_msec; + if (event_delay < 0) + event_delay = INT_MAX; /* FIXME Is this defined? */ + } + } + } + return event_delay; +} +#endif /* NCURSES_WGETCH_EVENTS */ + +#if (USE_FUNC_POLL || HAVE_SELECT) +# define MAYBE_UNUSED +#else +# define MAYBE_UNUSED GCC_UNUSED +#endif + +#if (USE_FUNC_POLL || HAVE_SELECT) +# define MAYBE_UNUSED +#else +# define MAYBE_UNUSED GCC_UNUSED +#endif + +/* + * Wait a specified number of milliseconds, returning nonzero if the timer + * didn't expire before there is activity on the specified file descriptors. + * The file-descriptors are specified by the mode: + * TW_NONE 0 - none (absolute time) + * TW_INPUT 1 - ncurses' normal input-descriptor + * TW_MOUSE 2 - mouse descriptor, if any + * TW_ANY 3 - either input or mouse. + * TW_EVENT 4 - + * Experimental: if NCURSES_WGETCH_EVENTS is defined, (mode & 4) determines + * whether to pay attention to evl argument. If set, the smallest of + * millisecond and of timeout of evl is taken. + * + * We return a mask that corresponds to the mode (e.g., 2 for mouse activity). + * + * If the milliseconds given are -1, the wait blocks until activity on the + * descriptors. + */ +NCURSES_EXPORT(int) +_nc_timed_wait(SCREEN *sp MAYBE_UNUSED, + int mode MAYBE_UNUSED, + int milliseconds, + int *timeleft + EVENTLIST_2nd(_nc_eventlist * evl)) +{ + int count; + int result = TW_NONE; + TimeType t0; +#if (USE_FUNC_POLL || HAVE_SELECT) + int fd; +#endif + +#ifdef NCURSES_WGETCH_EVENTS + int timeout_is_event = 0; + int n; +#endif + +#if USE_FUNC_POLL +#define MIN_FDS 2 + struct pollfd fd_list[MIN_FDS]; + struct pollfd *fds = fd_list; +#elif defined(__BEOS__) +#elif HAVE_SELECT + fd_set set; +#endif + +#if USE_KLIBC_KBD + fd_set saved_set; + KBDKEYINFO ki; + struct timeval tv; +#endif + + long starttime, returntime; + +#ifdef NCURSES_WGETCH_EVENTS + (void) timeout_is_event; +#endif + + TR(TRACE_IEVENT, ("start twait: %d milliseconds, mode: %d", + milliseconds, mode)); + +#ifdef NCURSES_WGETCH_EVENTS + if (mode & TW_EVENT) { + int event_delay = _nc_eventlist_timeout(evl); + + if (event_delay >= 0 + && (milliseconds >= event_delay || milliseconds < 0)) { + milliseconds = event_delay; + timeout_is_event = 1; + } + } +#endif + +#if PRECISE_GETTIME && HAVE_NANOSLEEP + retry: +#endif + starttime = _nc_gettime(&t0, TRUE); + + count = 0; + (void) count; + +#ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl) + evl->result_flags = 0; +#endif + +#if USE_FUNC_POLL + memset(fd_list, 0, sizeof(fd_list)); + +#ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl) { + if (fds == fd_list) + fds = typeMalloc(struct pollfd, MIN_FDS + evl->count); + if (fds == 0) + return TW_NONE; + } +#endif + + if (mode & TW_INPUT) { + fds[count].fd = sp->_ifd; + fds[count].events = POLLIN; + count++; + } + if ((mode & TW_MOUSE) + && (fd = sp->_mouse_fd) >= 0) { + fds[count].fd = fd; + fds[count].events = POLLIN; + count++; + } +#ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl) { + for (n = 0; n < evl->count; ++n) { + _nc_event *ev = evl->events[n]; + + if (ev->type == _NC_EVENT_FILE + && (ev->data.fev.flags & _NC_EVENT_FILE_READABLE)) { + fds[count].fd = ev->data.fev.fd; + fds[count].events = POLLIN; + count++; + } + } + } +#endif + + result = poll(fds, (size_t) count, milliseconds); + +#ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl) { + int c; + + if (!result) + count = 0; + + for (n = 0; n < evl->count; ++n) { + _nc_event *ev = evl->events[n]; + + if (ev->type == _NC_EVENT_FILE + && (ev->data.fev.flags & _NC_EVENT_FILE_READABLE)) { + ev->data.fev.result = 0; + for (c = 0; c < count; c++) + if (fds[c].fd == ev->data.fev.fd + && fds[c].revents & POLLIN) { + ev->data.fev.result |= _NC_EVENT_FILE_READABLE; + evl->result_flags |= _NC_EVENT_FILE_READABLE; + } + } else if (ev->type == _NC_EVENT_TIMEOUT_MSEC + && !result && timeout_is_event) { + evl->result_flags |= _NC_EVENT_TIMEOUT_MSEC; + } + } + } +#endif + +#elif defined(__BEOS__) + /* + * BeOS's select() is declared in socket.h, so the configure script does + * not see it. That's just as well, since that function works only for + * sockets. This (using snooze and ioctl) was distilled from Be's patch + * for ncurses which uses a separate thread to simulate select(). + * + * FIXME: the return values from the ioctl aren't very clear if we get + * interrupted. + * + * FIXME: this assumes mode&1 if milliseconds < 0 (see lib_getch.c). + */ + result = TW_NONE; + if (mode & TW_INPUT) { + int step = (milliseconds < 0) ? 0 : 5000; + bigtime_t d; + bigtime_t useconds = milliseconds * 1000; + int n, howmany; + + if (useconds <= 0) /* we're here to go _through_ the loop */ + useconds = 1; + + for (d = 0; d < useconds; d += step) { + n = 0; + howmany = ioctl(0, 'ichr', &n); + if (howmany >= 0 && n > 0) { + result = 1; + break; + } + if (useconds > 1 && step > 0) { + snooze(step); + milliseconds -= (step / 1000); + if (milliseconds <= 0) { + milliseconds = 0; + break; + } + } + } + } else if (milliseconds > 0) { + snooze(milliseconds * 1000); + milliseconds = 0; + } +#elif HAVE_SELECT + /* + * select() modifies the fd_set arguments; do this in the + * loop. + */ + FD_ZERO(&set); + +#if !USE_KLIBC_KBD + if (mode & TW_INPUT) { + FD_SET(sp->_ifd, &set); + count = sp->_ifd + 1; + } +#endif + if ((mode & TW_MOUSE) + && (fd = sp->_mouse_fd) >= 0) { + FD_SET(fd, &set); + count = max(fd, count) + 1; + } +#ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl) { + for (n = 0; n < evl->count; ++n) { + _nc_event *ev = evl->events[n]; + + if (ev->type == _NC_EVENT_FILE + && (ev->data.fev.flags & _NC_EVENT_FILE_READABLE)) { + FD_SET(ev->data.fev.fd, &set); + count = max(ev->data.fev.fd + 1, count); + } + } + } +#endif + +#if USE_KLIBC_KBD + for (saved_set = set;; set = saved_set) { + if ((mode & TW_INPUT) + && (sp->_extended_key + || (KbdPeek(&ki, 0) == 0 + && (ki.fbStatus & KBDTRF_FINAL_CHAR_IN)))) { + FD_ZERO(&set); + FD_SET(sp->_ifd, &set); + result = 1; + break; + } + + tv.tv_sec = 0; + tv.tv_usec = (milliseconds == 0) ? 0 : (10 * 1000); + + if ((result = select(count, &set, NULL, NULL, &tv)) != 0) + break; + + /* Time out ? */ + if (milliseconds >= 0 && _nc_gettime(&t0, FALSE) >= milliseconds) { + result = 0; + break; + } + } +#else + if (milliseconds >= 0) { + struct timeval ntimeout; + ntimeout.tv_sec = milliseconds / 1000; + ntimeout.tv_usec = (milliseconds % 1000) * 1000; + result = select(count, &set, NULL, NULL, &ntimeout); + } else { + result = select(count, &set, NULL, NULL, NULL); + } +#endif + +#ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl) { + evl->result_flags = 0; + for (n = 0; n < evl->count; ++n) { + _nc_event *ev = evl->events[n]; + + if (ev->type == _NC_EVENT_FILE + && (ev->data.fev.flags & _NC_EVENT_FILE_READABLE)) { + ev->data.fev.result = 0; + if (FD_ISSET(ev->data.fev.fd, &set)) { + ev->data.fev.result |= _NC_EVENT_FILE_READABLE; + evl->result_flags |= _NC_EVENT_FILE_READABLE; + } + } else if (ev->type == _NC_EVENT_TIMEOUT_MSEC + && !result && timeout_is_event) + evl->result_flags |= _NC_EVENT_TIMEOUT_MSEC; + } + } +#endif + +#endif /* USE_FUNC_POLL, etc */ + + returntime = _nc_gettime(&t0, FALSE); + + if (milliseconds >= 0) + milliseconds -= (int) (returntime - starttime); + +#ifdef NCURSES_WGETCH_EVENTS + if (evl) { + evl->result_flags = 0; + for (n = 0; n < evl->count; ++n) { + _nc_event *ev = evl->events[n]; + + if (ev->type == _NC_EVENT_TIMEOUT_MSEC) { + long diff = (returntime - starttime); + if (ev->data.timeout_msec <= diff) + ev->data.timeout_msec = 0; + else + ev->data.timeout_msec -= diff; + } + + } + } +#endif + +#if PRECISE_GETTIME && HAVE_NANOSLEEP + /* + * If the timeout hasn't expired, and we've gotten no data, + * this is probably a system where 'select()' needs to be left + * alone so that it can complete. Make this process sleep, + * then come back for more. + */ + if (result == 0 && milliseconds > 100) { + napms(100); /* FIXME: this won't be right if I recur! */ + milliseconds -= 100; + goto retry; + } +#endif + + /* return approximate time left in milliseconds */ + if (timeleft) + *timeleft = milliseconds; + + TR(TRACE_IEVENT, ("end twait: returned %d (%d), remaining time %d msec", + result, errno, milliseconds)); + + /* + * Both 'poll()' and 'select()' return the number of file descriptors + * that are active. Translate this back to the mask that denotes which + * file-descriptors, so that we don't need all of this system-specific + * code everywhere. + */ + if (result != 0) { + if (result > 0) { + result = 0; +#if USE_FUNC_POLL + for (count = 0; count < MIN_FDS; count++) { + if ((mode & (1 << count)) + && (fds[count].revents & POLLIN)) { + result |= (1 << count); + } + } +#elif defined(__BEOS__) + result = TW_INPUT; /* redundant, but simple */ +#elif HAVE_SELECT + if ((mode & TW_MOUSE) + && (fd = sp->_mouse_fd) >= 0 + && FD_ISSET(fd, &set)) + result |= TW_MOUSE; + if ((mode & TW_INPUT) + && FD_ISSET(sp->_ifd, &set)) + result |= TW_INPUT; +#endif + } else + result = 0; + } +#ifdef NCURSES_WGETCH_EVENTS + if ((mode & TW_EVENT) && evl && evl->result_flags) + result |= TW_EVENT; +#endif + +#if USE_FUNC_POLL +#ifdef NCURSES_WGETCH_EVENTS + if (fds != fd_list) + free((char *) fds); +#endif +#endif + + return (result); +} diff --git a/third_party/ncurses/lib_unget_wch.c b/third_party/ncurses/lib_unget_wch.c new file mode 100644 index 000000000..331fe02cc --- /dev/null +++ b/third_party/ncurses/lib_unget_wch.c @@ -0,0 +1,115 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2002-2011,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2002 * + ****************************************************************************/ + +/* +** lib_unget_wch.c +** +** The routine unget_wch(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_unget_wch.c,v 1.17 2020/02/02 23:34:34 tom Exp $") + +/* + * Wrapper for wcrtomb() which obtains the length needed for the given + * wide-character 'source'. + */ +NCURSES_EXPORT(size_t) +_nc_wcrtomb(char *target, wchar_t source, mbstate_t * state) +{ + int result; + + if (target == 0) { + wchar_t temp[2]; + const wchar_t *tempp = temp; + temp[0] = source; + temp[1] = 0; + result = (int) wcsrtombs(NULL, &tempp, (size_t) 0, state); + } else { + result = (int) wcrtomb(target, source, state); + } + if (!isEILSEQ(result) && (result == 0)) + result = 1; + return (size_t) result; +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(unget_wch) (NCURSES_SP_DCLx const wchar_t wch) +{ + int result = OK; + mbstate_t state; + size_t length; + + T((T_CALLED("unget_wch(%p, %#lx)"), (void *) SP_PARM, (unsigned long) wch)); + + init_mb(state); + length = _nc_wcrtomb(0, wch, &state); + + if (length != (size_t) (-1) + && length != 0) { + char *string; + + if ((string = (char *) malloc(length)) != 0) { + int n; + + init_mb(state); + /* ignore the result, since we already validated the character */ + IGNORE_RC((int) wcrtomb(string, wch, &state)); + + for (n = (int) (length - 1); n >= 0; --n) { + if (NCURSES_SP_NAME(ungetch) (NCURSES_SP_ARGx + UChar(string[n])) !=OK) { + result = ERR; + break; + } + } + free(string); + } else { + result = ERR; + } + } else { + result = ERR; + } + + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +unget_wch(const wchar_t wch) +{ + return NCURSES_SP_NAME(unget_wch) (CURRENT_SCREEN, wch); +} +#endif diff --git a/third_party/ncurses/lib_ungetch.c b/third_party/ncurses/lib_ungetch.c new file mode 100644 index 000000000..dda938481 --- /dev/null +++ b/third_party/ncurses/lib_ungetch.c @@ -0,0 +1,94 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* +** lib_ungetch.c +** +** The routine ungetch(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_ungetch.c,v 1.17 2020/02/02 23:34:34 tom Exp $") + +#include "fifo_defs.h" + +#ifdef TRACE +NCURSES_EXPORT(void) +_nc_fifo_dump(SCREEN *sp) +{ + int i; + T(("head = %d, tail = %d, peek = %d", head, tail, peek)); + for (i = 0; i < 10; i++) + T(("char %d = %s", i, _nc_tracechar(sp, sp->_fifo[i]))); +} +#endif /* TRACE */ + +NCURSES_EXPORT(int) +safe_ungetch(SCREEN *sp, int ch) +{ + int rc = ERR; + + T((T_CALLED("ungetch(%p,%s)"), (void *) sp, _nc_tracechar(sp, ch))); + + if (sp != 0 && tail >= 0) { + if (head < 0) { + head = 0; + t_inc(); + peek = tail; /* no raw keys */ + } else { + h_dec(); + } + + sp->_fifo[head] = ch; + T(("ungetch %s ok", _nc_tracechar(sp, ch))); +#ifdef TRACE + if (USE_TRACEF(TRACE_IEVENT)) { + _nc_fifo_dump(sp); + _nc_unlock_global(tracef); + } +#endif + rc = OK; + } + returnCode(rc); +} + +NCURSES_EXPORT(int) +ungetch(int ch) +{ + return safe_ungetch(CURRENT_SCREEN, ch); +} diff --git a/third_party/ncurses/lib_vid_attr.c b/third_party/ncurses/lib_vid_attr.c new file mode 100644 index 000000000..a59d0c450 --- /dev/null +++ b/third_party/ncurses/lib_vid_attr.c @@ -0,0 +1,367 @@ +/**************************************************************************** + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 2002-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_vid_attr.c,v 1.30 2020/05/27 23:54:31 tom Exp $") + +#define doPut(mode) \ + TPUTS_TRACE(#mode); \ + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc) + +#define TurnOn(mask, mode) \ + if ((turn_on & mask) && mode) { \ + TPUTS_TRACE(#mode); \ + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc); \ + } + +#define TurnOff(mask, mode) \ + if ((turn_off & mask) && mode) { \ + TPUTS_TRACE(#mode); \ + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc); \ + turn_off &= ~mask; \ + } + + /* if there is no current screen, assume we *can* do color */ +#define SetColorsIf(why, old_attr, old_pair) \ + if (can_color && (why)) { \ + TR(TRACE_ATTRS, ("old pair = %d -- new pair = %d", old_pair, color_pair)); \ + if ((color_pair != old_pair) \ + || (fix_pair0 && (color_pair == 0)) \ + || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \ + NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx \ + old_pair, color_pair, \ + reverse, outc); \ + } \ + } + +#define set_color(mode, pair) \ + mode &= ALL_BUT_COLOR; \ + mode |= (attr_t) ColorPair(pair) + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(vid_puts) (NCURSES_SP_DCLx + attr_t newmode, + NCURSES_PAIRS_T pair_arg, + void *opts OPTIONAL_PAIR, + NCURSES_SP_OUTC outc) +{ + int color_pair = pair_arg; +#if NCURSES_EXT_COLORS + static attr_t previous_attr = A_NORMAL; + static int previous_pair = 0; + + attr_t turn_on, turn_off; + bool reverse = FALSE; + bool can_color = (SP_PARM == 0 || SP_PARM->_coloron); +#if NCURSES_EXT_FUNCS + bool fix_pair0 = (SP_PARM != 0 && SP_PARM->_coloron && !SP_PARM->_default_color); +#else +#define fix_pair0 FALSE +#endif + + if (!IsValidTIScreen(SP_PARM)) + returnCode(ERR); + + newmode &= A_ATTRIBUTES; + set_extended_pair(opts, color_pair); + T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), color_pair)); + + /* this allows us to go on whether or not newterm() has been called */ + if (SP_PARM) { + previous_attr = AttrOf(SCREEN_ATTRS(SP_PARM)); + previous_pair = GetPair(SCREEN_ATTRS(SP_PARM)); + } + + TR(TRACE_ATTRS, ("previous attribute was %s, %d", + _traceattr(previous_attr), previous_pair)); + +#if !USE_XMC_SUPPORT + if ((SP_PARM != 0) + && (magic_cookie_glitch > 0)) + newmode &= ~(SP_PARM->_xmc_suppress); +#endif + + /* + * If we have a terminal that cannot combine color with video + * attributes, use the colors in preference. + */ + if ((color_pair != 0 + || fix_pair0) + && (no_color_video > 0)) { + /* + * If we had chosen the A_xxx definitions to correspond to the + * no_color_video mask, we could simply shift it up and mask off the + * attributes. But we did not (actually copied Solaris' definitions). + * However, this is still simpler/faster than a lookup table. + * + * The 63 corresponds to A_STANDOUT, A_UNDERLINE, A_REVERSE, A_BLINK, + * A_DIM, A_BOLD which are 1:1 with no_color_video. The bits that + * correspond to A_INVIS, A_PROTECT (192) must be shifted up 1 and + * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS + * macro so this will work properly for the wide-character layout. + */ + unsigned value = (unsigned) no_color_video; + attr_t mask = NCURSES_BITS((value & 63) + | ((value & 192) << 1) + | ((value & 256) >> 2), 8); + + if ((mask & A_REVERSE) != 0 + && (newmode & A_REVERSE) != 0) { + reverse = TRUE; + mask &= ~A_REVERSE; + } + newmode &= ~mask; + } + + if (newmode == previous_attr + && color_pair == previous_pair) + returnCode(OK); + + if (reverse) { + newmode &= ~A_REVERSE; + } + + turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR; + turn_on = (newmode & ~(previous_attr & TPARM_ATTR)) & ALL_BUT_COLOR; + + SetColorsIf(((color_pair == 0) && !fix_pair0), previous_attr, previous_pair); + + if (newmode == A_NORMAL) { + if ((previous_attr & A_ALTCHARSET) && exit_alt_charset_mode) { + doPut(exit_alt_charset_mode); + previous_attr &= ~A_ALTCHARSET; + } + if (previous_attr) { + if (exit_attribute_mode) { + doPut(exit_attribute_mode); + } else { + if (!SP_PARM || SP_PARM->_use_rmul) { + TurnOff(A_UNDERLINE, exit_underline_mode); + } + if (!SP_PARM || SP_PARM->_use_rmso) { + TurnOff(A_STANDOUT, exit_standout_mode); + } +#if USE_ITALIC + if (!SP_PARM || SP_PARM->_use_ritm) { + TurnOff(A_ITALIC, exit_italics_mode); + } +#endif + } + previous_attr &= ALL_BUT_COLOR; + previous_pair = 0; + } + + SetColorsIf((color_pair != 0) || fix_pair0, previous_attr, previous_pair); + } else if (set_attributes) { + if (turn_on || turn_off) { + TPUTS_TRACE("set_attributes"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_9(set_attributes, + (newmode & A_STANDOUT) != 0, + (newmode & A_UNDERLINE) != 0, + (newmode & A_REVERSE) != 0, + (newmode & A_BLINK) != 0, + (newmode & A_DIM) != 0, + (newmode & A_BOLD) != 0, + (newmode & A_INVIS) != 0, + (newmode & A_PROTECT) != 0, + (newmode & A_ALTCHARSET) != 0), + 1, outc); + previous_attr &= ALL_BUT_COLOR; + previous_pair = 0; + } +#if USE_ITALIC + if (!SP_PARM || SP_PARM->_use_ritm) { + if (turn_on & A_ITALIC) { + TurnOn(A_ITALIC, enter_italics_mode); + } else if (turn_off & A_ITALIC) { + TurnOff(A_ITALIC, exit_italics_mode); + } + } +#endif + SetColorsIf((color_pair != 0) || fix_pair0, previous_attr, previous_pair); + } else { + + TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off))); + + TurnOff(A_ALTCHARSET, exit_alt_charset_mode); + + if (!SP_PARM || SP_PARM->_use_rmul) { + TurnOff(A_UNDERLINE, exit_underline_mode); + } + + if (!SP_PARM || SP_PARM->_use_rmso) { + TurnOff(A_STANDOUT, exit_standout_mode); + } +#if USE_ITALIC + if (!SP_PARM || SP_PARM->_use_ritm) { + TurnOff(A_ITALIC, exit_italics_mode); + } +#endif + if (turn_off && exit_attribute_mode) { + doPut(exit_attribute_mode); + turn_on |= (newmode & ALL_BUT_COLOR); + previous_attr &= ALL_BUT_COLOR; + previous_pair = 0; + } + SetColorsIf((color_pair != 0) || fix_pair0, previous_attr, previous_pair); + + TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on))); + /* *INDENT-OFF* */ + TurnOn(A_ALTCHARSET, enter_alt_charset_mode); + TurnOn(A_BLINK, enter_blink_mode); + TurnOn(A_BOLD, enter_bold_mode); + TurnOn(A_DIM, enter_dim_mode); + TurnOn(A_REVERSE, enter_reverse_mode); + TurnOn(A_STANDOUT, enter_standout_mode); + TurnOn(A_PROTECT, enter_protected_mode); + TurnOn(A_INVIS, enter_secure_mode); + TurnOn(A_UNDERLINE, enter_underline_mode); +#if USE_ITALIC + TurnOn(A_ITALIC, enter_italics_mode); +#endif +#if USE_WIDEC_SUPPORT && defined(enter_horizontal_hl_mode) + TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode); + TurnOn(A_LEFT, enter_left_hl_mode); + TurnOn(A_LOW, enter_low_hl_mode); + TurnOn(A_RIGHT, enter_right_hl_mode); + TurnOn(A_TOP, enter_top_hl_mode); + TurnOn(A_VERTICAL, enter_vertical_hl_mode); +#endif + /* *INDENT-ON* */ + } + + if (reverse) + newmode |= A_REVERSE; + + if (SP_PARM) { + SetAttr(SCREEN_ATTRS(SP_PARM), newmode); + SetPair(SCREEN_ATTRS(SP_PARM), color_pair); + } else { + previous_attr = newmode; + previous_pair = color_pair; + } + + returnCode(OK); +#else + T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), color_pair)); + (void) opts; + set_color(newmode, color_pair); + returnCode(NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx newmode, outc)); +#endif +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +vid_puts(attr_t newmode, + NCURSES_PAIRS_T pair_arg, + void *opts GCC_UNUSED, + NCURSES_OUTC outc) +{ + SetSafeOutcWrapper(outc); + return NCURSES_SP_NAME(vid_puts) (CURRENT_SCREEN, + newmode, + pair_arg, + opts, + _nc_outc_wrapper); +} +#endif + +#undef vid_attr +NCURSES_EXPORT(int) +NCURSES_SP_NAME(vid_attr) (NCURSES_SP_DCLx + attr_t newmode, + NCURSES_PAIRS_T pair_arg, + void *opts) +{ + T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), (int) pair_arg)); + returnCode(NCURSES_SP_NAME(vid_puts) (NCURSES_SP_ARGx + newmode, + pair_arg, + opts, + NCURSES_SP_NAME(_nc_putchar))); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +vid_attr(attr_t newmode, NCURSES_PAIRS_T pair_arg, void *opts) +{ + return NCURSES_SP_NAME(vid_attr) (CURRENT_SCREEN, newmode, pair_arg, opts); +} +#endif + +/* + * This implementation uses the same mask values for A_xxx and WA_xxx, so + * we can use termattrs() for part of the logic. + */ +NCURSES_EXPORT(attr_t) +NCURSES_SP_NAME(term_attrs) (NCURSES_SP_DCL0) +{ + attr_t attrs = 0; + + T((T_CALLED("term_attrs()"))); + if (SP_PARM) { + attrs = NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG); + +#if USE_WIDEC_SUPPORT && defined(enter_horizontal_hl_mode) + /* these are only supported for wide-character mode */ + if (enter_horizontal_hl_mode) + attrs |= WA_HORIZONTAL; + if (enter_left_hl_mode) + attrs |= WA_LEFT; + if (enter_low_hl_mode) + attrs |= WA_LOW; + if (enter_right_hl_mode) + attrs |= WA_RIGHT; + if (enter_top_hl_mode) + attrs |= WA_TOP; + if (enter_vertical_hl_mode) + attrs |= WA_VERTICAL; +#endif + } + + returnAttr(attrs); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(attr_t) +term_attrs(void) +{ + return NCURSES_SP_NAME(term_attrs) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_vidattr.c b/third_party/ncurses/lib_vidattr.c new file mode 100644 index 000000000..6ae17baca --- /dev/null +++ b/third_party/ncurses/lib_vidattr.c @@ -0,0 +1,431 @@ +/**************************************************************************** + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/* + * vidputs(newmode, outc) + * + * newmode is taken to be the logical 'or' of the symbols in curses.h + * representing graphic renditions. The terminal is set to be in all of + * the given modes, if possible. + * + * if the new attribute is normal + * if exit-alt-char-set exists + * emit it + * emit exit-attribute-mode + * else if set-attributes exists + * use it to set exactly what you want + * else + * if exit-attribute-mode exists + * turn off everything + * else + * turn off those which can be turned off and aren't in + * newmode. + * turn on each mode which should be on and isn't, one by one + * + * NOTE that this algorithm won't achieve the desired mix of attributes + * in some cases, but those are probably just those cases in which it is + * actually impossible, anyway, so... + * + * NOTE that we cannot assume that there's no interaction between color + * and other attribute resets. So each time we reset color (or other + * attributes) we'll have to be prepared to restore the other. + */ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_vidattr.c,v 1.78 2020/05/27 23:56:32 tom Exp $") + +#define doPut(mode) \ + TPUTS_TRACE(#mode); \ + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc) + +#define TurnOn(mask, mode) \ + if ((turn_on & mask) && mode) { \ + TPUTS_TRACE(#mode); \ + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc); \ + } + +#define TurnOff(mask, mode) \ + if ((turn_off & mask) && mode) { \ + TPUTS_TRACE(#mode); \ + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc); \ + turn_off &= ~mask; \ + } + + /* if there is no current screen, assume we *can* do color */ +#define SetColorsIf(why, old_attr) \ + if (can_color && (why)) { \ + int old_pair = PairNumber(old_attr); \ + TR(TRACE_ATTRS, ("old pair = %d -- new pair = %d", old_pair, pair)); \ + if ((pair != old_pair) \ + || (fix_pair0 && (pair == 0)) \ + || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \ + NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx \ + (short) old_pair, \ + (short) pair, \ + reverse, outc); \ + } \ + } + +#define PreviousAttr _nc_prescreen.previous_attr + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(vidputs) (NCURSES_SP_DCLx + chtype newmode, + NCURSES_SP_OUTC outc) +{ + attr_t turn_on, turn_off; + int pair; + bool reverse = FALSE; + bool can_color = (SP_PARM == 0 || SP_PARM->_coloron); +#if NCURSES_EXT_FUNCS + bool fix_pair0 = (SP_PARM != 0 && SP_PARM->_coloron && !SP_PARM->_default_color); +#else +#define fix_pair0 FALSE +#endif + + newmode &= A_ATTRIBUTES; + + T((T_CALLED("vidputs(%p,%s)"), (void *) SP_PARM, _traceattr(newmode))); + + if (!IsValidTIScreen(SP_PARM)) + returnCode(ERR); + + /* this allows us to go on whether or not newterm() has been called */ + if (SP_PARM) + PreviousAttr = AttrOf(SCREEN_ATTRS(SP_PARM)); + + TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(PreviousAttr))); + + if ((SP_PARM != 0) + && (magic_cookie_glitch > 0)) { +#if USE_XMC_SUPPORT + static const chtype table[] = + { + A_STANDOUT, + A_UNDERLINE, + A_REVERSE, + A_BLINK, + A_DIM, + A_BOLD, + A_INVIS, + A_PROTECT, +#if USE_ITALIC + A_ITALIC, +#endif + }; + unsigned n; + int used = 0; +#ifdef max_attributes /* not in U/Win */ + int limit = (max_attributes <= 0) ? 1 : max_attributes; +#else + int limit = 1; +#endif + chtype retain = 0; + + /* + * Limit the number of attribute bits set in the newmode according to + * the terminfo max_attributes value. + */ + for (n = 0; n < SIZEOF(table); ++n) { + if ((table[n] & SP_PARM->_ok_attributes) == 0) { + newmode &= ~table[n]; + } else if ((table[n] & newmode) != 0) { + if (used++ >= limit) { + newmode &= ~table[n]; + if (newmode == retain) + break; + } else { + retain = newmode; + } + } + } +#else + newmode &= ~(SP_PARM->_xmc_suppress); +#endif + TR(TRACE_ATTRS, ("suppressed attribute is %s", _traceattr(newmode))); + } + + /* + * If we have a terminal that cannot combine color with video + * attributes, use the colors in preference. + */ + if (((newmode & A_COLOR) != 0 + || fix_pair0) + && (no_color_video > 0)) { + /* + * If we had chosen the A_xxx definitions to correspond to the + * no_color_video mask, we could simply shift it up and mask off the + * attributes. But we did not (actually copied Solaris' definitions). + * However, this is still simpler/faster than a lookup table. + * + * The 63 corresponds to A_STANDOUT, A_UNDERLINE, A_REVERSE, A_BLINK, + * A_DIM, A_BOLD which are 1:1 with no_color_video. The bits that + * correspond to A_INVIS, A_PROTECT (192) must be shifted up 1 and + * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS + * macro so this will work properly for the wide-character layout. + */ + unsigned value = (unsigned) no_color_video; + attr_t mask = NCURSES_BITS((value & 63) + | ((value & 192) << 1) + | ((value & 256) >> 2), 8); + + if ((mask & A_REVERSE) != 0 + && (newmode & A_REVERSE) != 0) { + reverse = TRUE; + mask &= ~A_REVERSE; + } + newmode &= ~mask; + } + + if (newmode == PreviousAttr) + returnCode(OK); + + pair = PairNumber(newmode); + + if (reverse) { + newmode &= ~A_REVERSE; + } + + turn_off = (~newmode & PreviousAttr) & ALL_BUT_COLOR; + turn_on = (newmode & ~(PreviousAttr & TPARM_ATTR)) & ALL_BUT_COLOR; + + SetColorsIf(((pair == 0) && !fix_pair0), PreviousAttr); + + if (newmode == A_NORMAL) { + if ((PreviousAttr & A_ALTCHARSET) && exit_alt_charset_mode) { + doPut(exit_alt_charset_mode); + PreviousAttr &= ~A_ALTCHARSET; + } + if (PreviousAttr) { + if (exit_attribute_mode) { + doPut(exit_attribute_mode); + } else { + if (!SP_PARM || SP_PARM->_use_rmul) { + TurnOff(A_UNDERLINE, exit_underline_mode); + } + if (!SP_PARM || SP_PARM->_use_rmso) { + TurnOff(A_STANDOUT, exit_standout_mode); + } +#if USE_ITALIC + if (!SP_PARM || SP_PARM->_use_ritm) { + TurnOff(A_ITALIC, exit_italics_mode); + } +#endif + } + PreviousAttr &= ALL_BUT_COLOR; + } + + SetColorsIf((pair != 0) || fix_pair0, PreviousAttr); + } else if (set_attributes) { + if (turn_on || turn_off) { + TPUTS_TRACE("set_attributes"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_9(set_attributes, + (newmode & A_STANDOUT) != 0, + (newmode & A_UNDERLINE) != 0, + (newmode & A_REVERSE) != 0, + (newmode & A_BLINK) != 0, + (newmode & A_DIM) != 0, + (newmode & A_BOLD) != 0, + (newmode & A_INVIS) != 0, + (newmode & A_PROTECT) != 0, + (newmode & A_ALTCHARSET) != 0), + 1, outc); + PreviousAttr &= ALL_BUT_COLOR; + } +#if USE_ITALIC + if (!SP_PARM || SP_PARM->_use_ritm) { + if (turn_on & A_ITALIC) { + TurnOn(A_ITALIC, enter_italics_mode); + } else if (turn_off & A_ITALIC) { + TurnOff(A_ITALIC, exit_italics_mode); + } + } +#endif + SetColorsIf((pair != 0) || fix_pair0, PreviousAttr); + } else { + + TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off))); + + TurnOff(A_ALTCHARSET, exit_alt_charset_mode); + + if (!SP_PARM || SP_PARM->_use_rmul) { + TurnOff(A_UNDERLINE, exit_underline_mode); + } + + if (!SP_PARM || SP_PARM->_use_rmso) { + TurnOff(A_STANDOUT, exit_standout_mode); + } +#if USE_ITALIC + if (!SP_PARM || SP_PARM->_use_ritm) { + TurnOff(A_ITALIC, exit_italics_mode); + } +#endif + if (turn_off && exit_attribute_mode) { + doPut(exit_attribute_mode); + turn_on |= (newmode & ALL_BUT_COLOR); + PreviousAttr &= ALL_BUT_COLOR; + } + SetColorsIf((pair != 0) || fix_pair0, PreviousAttr); + + TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on))); + /* *INDENT-OFF* */ + TurnOn(A_ALTCHARSET, enter_alt_charset_mode); + TurnOn(A_BLINK, enter_blink_mode); + TurnOn(A_BOLD, enter_bold_mode); + TurnOn(A_DIM, enter_dim_mode); + TurnOn(A_REVERSE, enter_reverse_mode); + TurnOn(A_STANDOUT, enter_standout_mode); + TurnOn(A_PROTECT, enter_protected_mode); + TurnOn(A_INVIS, enter_secure_mode); + TurnOn(A_UNDERLINE, enter_underline_mode); +#if USE_ITALIC + TurnOn(A_ITALIC, enter_italics_mode); +#endif +#if USE_WIDEC_SUPPORT && defined(enter_horizontal_hl_mode) + TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode); + TurnOn(A_LEFT, enter_left_hl_mode); + TurnOn(A_LOW, enter_low_hl_mode); + TurnOn(A_RIGHT, enter_right_hl_mode); + TurnOn(A_TOP, enter_top_hl_mode); + TurnOn(A_VERTICAL, enter_vertical_hl_mode); +#endif + /* *INDENT-ON* */ + } + + if (reverse) + newmode |= A_REVERSE; + + if (SP_PARM) + SetAttr(SCREEN_ATTRS(SP_PARM), newmode); + else + PreviousAttr = newmode; + + returnCode(OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +vidputs(chtype newmode, NCURSES_OUTC outc) +{ + SetSafeOutcWrapper(outc); + return NCURSES_SP_NAME(vidputs) (CURRENT_SCREEN, + newmode, + _nc_outc_wrapper); +} +#endif + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(vidattr) (NCURSES_SP_DCLx chtype newmode) +{ + T((T_CALLED("vidattr(%p,%s)"), (void *) SP_PARM, _traceattr(newmode))); + returnCode(NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx + newmode, + NCURSES_SP_NAME(_nc_putchar))); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +vidattr(chtype newmode) +{ + return NCURSES_SP_NAME(vidattr) (CURRENT_SCREEN, newmode); +} +#endif + +NCURSES_EXPORT(chtype) +NCURSES_SP_NAME(termattrs) (NCURSES_SP_DCL0) +{ + chtype attrs = A_NORMAL; + + T((T_CALLED("termattrs(%p)"), (void *) SP_PARM)); + + if (HasTerminal(SP_PARM)) { +#ifdef USE_TERM_DRIVER + attrs = CallDriver(SP_PARM, td_conattr); +#else /* ! USE_TERM_DRIVER */ + + if (enter_alt_charset_mode) + attrs |= A_ALTCHARSET; + + if (enter_blink_mode) + attrs |= A_BLINK; + + if (enter_bold_mode) + attrs |= A_BOLD; + + if (enter_dim_mode) + attrs |= A_DIM; + + if (enter_reverse_mode) + attrs |= A_REVERSE; + + if (enter_standout_mode) + attrs |= A_STANDOUT; + + if (enter_protected_mode) + attrs |= A_PROTECT; + + if (enter_secure_mode) + attrs |= A_INVIS; + + if (enter_underline_mode) + attrs |= A_UNDERLINE; + + if (SP_PARM->_coloron) + attrs |= A_COLOR; + +#if USE_ITALIC + if (enter_italics_mode) + attrs |= A_ITALIC; +#endif + +#endif /* USE_TERM_DRIVER */ + } + returnChtype(attrs); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(chtype) +termattrs(void) +{ + return NCURSES_SP_NAME(termattrs) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/lib_vline.c b/third_party/ncurses/lib_vline.c new file mode 100644 index 000000000..f307e0936 --- /dev/null +++ b/third_party/ncurses/lib_vline.c @@ -0,0 +1,89 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Sven Verdoolaege 2001 * + ****************************************************************************/ + +/* +** lib_vline.c +** +** The routine wvline(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_vline.c,v 1.15 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wvline(WINDOW *win, chtype ch, int n) +{ + int code = ERR; + + T((T_CALLED("wvline(%p,%s,%d)"), (void *) win, _tracechtype(ch), n)); + + if (win) { + NCURSES_CH_T wch; + int row = win->_cury; + int col = win->_curx; + int end = row + n - 1; + + if (end > win->_maxy) + end = win->_maxy; + + if (ch == 0) + SetChar2(wch, ACS_VLINE); + else + SetChar2(wch, ch); + wch = _nc_render(win, wch); + + while (end >= row) { + struct ldat *line = &(win->_line[end]); +#if USE_WIDEC_SUPPORT + if (col > 0 && isWidecExt(line->text[col])) { + SetChar2(line->text[col - 1], ' '); + } + if (col < win->_maxx && isWidecExt(line->text[col + 1])) { + SetChar2(line->text[col + 1], ' '); + } +#endif + line->text[col] = wch; + CHANGED_CELL(line, col); + end--; + } + + _nc_synchook(win); + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_vline_set.c b/third_party/ncurses/lib_vline_set.c new file mode 100644 index 000000000..f9a73f0d5 --- /dev/null +++ b/third_party/ncurses/lib_vline_set.c @@ -0,0 +1,78 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2002-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey 2002 * + ****************************************************************************/ + +/* +** lib_vline_set.c +** +** The routine wvline_set(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_vline_set.c,v 1.6 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wvline_set(WINDOW *win, const cchar_t *ch, int n) +{ + int code = ERR; + + T((T_CALLED("wvline(%p,%s,%d)"), (void *) win, _tracecchar_t(ch), n)); + + if (win) { + NCURSES_CH_T wch; + int row = win->_cury; + int col = win->_curx; + int end = row + n - 1; + + if (end > win->_maxy) + end = win->_maxy; + + if (ch == 0) + wch = *WACS_VLINE; + else + wch = *ch; + wch = _nc_render(win, wch); + + while (end >= row) { + struct ldat *line = &(win->_line[end]); + line->text[col] = wch; + CHANGED_CELL(line, col); + end--; + } + + _nc_synchook(win); + code = OK; + } + returnCode(code); +} diff --git a/third_party/ncurses/lib_wacs.c b/third_party/ncurses/lib_wacs.c new file mode 100644 index 000000000..cebb19e25 --- /dev/null +++ b/third_party/ncurses/lib_wacs.c @@ -0,0 +1,149 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2002-2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey 2002 * + ****************************************************************************/ + +#include "libc/str/unicode.h" +#include "curses.priv.h" + +MODULE_ID("$Id: lib_wacs.c,v 1.20 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0; + +NCURSES_EXPORT(void) +_nc_init_wacs(void) +{ + /* *INDENT-OFF* */ + static const struct { + unsigned map; + int value[2]; + } table[] = { + /* VT100 symbols */ + { 'l', { '+', 0x250c }}, /* upper left corner */ + { 'm', { '+', 0x2514 }}, /* lower left corner */ + { 'k', { '+', 0x2510 }}, /* upper right corner */ + { 'j', { '+', 0x2518 }}, /* lower right corner */ + { 't', { '+', 0x251c }}, /* tee pointing left */ + { 'u', { '+', 0x2524 }}, /* tee pointing right */ + { 'v', { '+', 0x2534 }}, /* tee pointing up */ + { 'w', { '+', 0x252c }}, /* tee pointing down */ + { 'q', { '-', 0x2500 }}, /* horizontal line */ + { 'x', { '|', 0x2502 }}, /* vertical line */ + { 'n', { '+', 0x253c }}, /* large plus or crossover */ + { 'o', { '~', 0x23ba }}, /* scan line 1 */ + { 's', { '_', 0x23bd }}, /* scan line 9 */ + { '`', { '+', 0x25c6 }}, /* diamond */ + { 'a', { ':', 0x2592 }}, /* checker board (stipple) */ + { 'f', { '\'', 0x00b0 }}, /* degree symbol */ + { 'g', { '#', 0x00b1 }}, /* plus/minus */ + { '~', { 'o', 0x00b7 }}, /* bullet */ + /* Teletype 5410v1 symbols */ + { ',', { '<', 0x2190 }}, /* arrow pointing left */ + { '+', { '>', 0x2192 }}, /* arrow pointing right */ + { '.', { 'v', 0x2193 }}, /* arrow pointing down */ + { '-', { '^', 0x2191 }}, /* arrow pointing up */ + { 'h', { '#', 0x2592 }}, /* board of squares */ + { 'i', { '#', 0x2603 }}, /* lantern symbol */ + { '0', { '#', 0x25ae }}, /* solid square block */ + /* these defaults were invented for ncurses */ + { 'p', { '-', 0x23bb }}, /* scan line 3 */ + { 'r', { '-', 0x23bc }}, /* scan line 7 */ + { 'y', { '<', 0x2264 }}, /* less-than-or-equal-to */ + { 'z', { '>', 0x2265 }}, /* greater-than-or-equal-to */ + { '{', { '*', 0x03c0 }}, /* greek pi */ + { '|', { '!', 0x2260 }}, /* not-equal */ + { '}', { 'f', 0x00a3 }}, /* pound-sterling symbol */ + /* thick-line-drawing */ + { 'L', { '+', 0x250f }}, /* upper left corner */ + { 'M', { '+', 0x2517 }}, /* lower left corner */ + { 'K', { '+', 0x2513 }}, /* upper right corner */ + { 'J', { '+', 0x251b }}, /* lower right corner */ + { 'T', { '+', 0x2523 }}, /* tee pointing left */ + { 'U', { '+', 0x252b }}, /* tee pointing right */ + { 'V', { '+', 0x253b }}, /* tee pointing up */ + { 'W', { '+', 0x2533 }}, /* tee pointing down */ + { 'Q', { '-', 0x2501 }}, /* horizontal line */ + { 'X', { '|', 0x2503 }}, /* vertical line */ + { 'N', { '+', 0x254b }}, /* large plus or crossover */ + /* double-line-drawing */ + { 'C', { '+', 0x2554 }}, /* upper left corner */ + { 'D', { '+', 0x255a }}, /* lower left corner */ + { 'B', { '+', 0x2557 }}, /* upper right corner */ + { 'A', { '+', 0x255d }}, /* lower right corner */ + { 'G', { '+', 0x2563 }}, /* tee pointing left */ + { 'F', { '+', 0x2560 }}, /* tee pointing right */ + { 'H', { '+', 0x2569 }}, /* tee pointing up */ + { 'I', { '+', 0x2566 }}, /* tee pointing down */ + { 'R', { '-', 0x2550 }}, /* horizontal line */ + { 'Y', { '|', 0x2551 }}, /* vertical line */ + { 'E', { '+', 0x256c }}, /* large plus or crossover */ + }; + /* *INDENT-ON* */ + + int active = _nc_unicode_locale(); + + /* + * If we're running in a UTF-8 locale, will use the Unicode equivalents + * rather than the terminfo information. Actually the terminfo should + * be the rule, but there are people who are offended by the notion that + * a Unicode-capable terminal would have something resembling a mode. + * So the smacs/rmacs may be disabled -- sometime. + */ + T(("initializing WIDE-ACS map (Unicode is%s active)", + active ? "" : " not")); + + if ((_nc_wacs = typeCalloc(cchar_t, ACS_LEN)) != 0) { + unsigned n; + + for (n = 0; n < SIZEOF(table); ++n) { + unsigned m; +#if NCURSES_WCWIDTH_GRAPHICS + int wide = wcwidth((wchar_t) table[n].value[active]); +#else + int wide = 1; +#endif + + m = table[n].map; + if (active && (wide == 1)) { + SetChar(_nc_wacs[m], table[n].value[1], A_NORMAL); + } else if (acs_map[m] & A_ALTCHARSET) { + SetChar(_nc_wacs[m], m, A_ALTCHARSET); + } else { + SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL); + } + + T(("#%d, width:%d SetChar(%c, %s) = %s", + n, wide, m, + _tracechar(table[n].value[active]), + _tracecchar_t(&_nc_wacs[m]))); + } + } +} diff --git a/third_party/ncurses/lib_wattroff.c b/third_party/ncurses/lib_wattroff.c new file mode 100644 index 000000000..e5f5b1cac --- /dev/null +++ b/third_party/ncurses/lib_wattroff.c @@ -0,0 +1,65 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2006,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* +** lib_wattroff.c +** +** The routine wattr_off(). +** +*/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_wattroff.c,v 1.11 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +wattr_off(WINDOW *win, attr_t at, void *opts GCC_UNUSED) +{ + T((T_CALLED("wattr_off(%p,%s)"), (void *) win, _traceattr(at))); + if (win) { + T(("... current %s (%d)", + _traceattr(WINDOW_ATTRS(win)), + GET_WINDOW_PAIR(win))); + + if_EXT_COLORS({ + if (at & A_COLOR) + win->_color = 0; + }); + toggle_attr_off(WINDOW_ATTRS(win), at); + returnCode(OK); + } else + returnCode(ERR); +} diff --git a/third_party/ncurses/lib_wattron.c b/third_party/ncurses/lib_wattron.c new file mode 100644 index 000000000..e4a0cd9d7 --- /dev/null +++ b/third_party/ncurses/lib_wattron.c @@ -0,0 +1,67 @@ +/**************************************************************************** + * Copyright 2020,2022 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* +** lib_wattron.c +** +** The routines wattr_on(). +** +*/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: lib_wattron.c,v 1.13 2022/04/15 22:34:38 tom Exp $") + +NCURSES_EXPORT(int) +wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED) +{ + T((T_CALLED("wattr_on(%p,%s)"), (void *) win, _traceattr(at))); + if (win != 0) { + T(("... current %s (%d)", + _traceattr(WINDOW_ATTRS(win)), + GET_WINDOW_PAIR(win))); + + if_EXT_COLORS({ + if (at & A_COLOR) { + win->_color = PairNumber(at); + set_extended_pair(opts, win->_color); + } + }); + toggle_attr_on(WINDOW_ATTRS(win), at); + returnCode(OK); + } else + returnCode(ERR); +} diff --git a/third_party/ncurses/lib_winch.c b/third_party/ncurses/lib_winch.c new file mode 100644 index 000000000..59281103d --- /dev/null +++ b/third_party/ncurses/lib_winch.c @@ -0,0 +1,55 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1998 * + ****************************************************************************/ + +/* +** lib_winch.c +** +** The routine winch(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_winch.c,v 1.9 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(chtype) +winch(WINDOW *win) +{ + T((T_CALLED("winch(%p)"), (void *) win)); + if (win != 0) { + returnChtype((chtype) CharOf(win->_line[win->_cury].text[win->_curx]) + | AttrOf(win->_line[win->_cury].text[win->_curx])); + } else { + returnChtype(0); + } +} diff --git a/third_party/ncurses/lib_window.c b/third_party/ncurses/lib_window.c new file mode 100644 index 000000000..b108e4575 --- /dev/null +++ b/third_party/ncurses/lib_window.c @@ -0,0 +1,254 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* +** lib_window.c +** +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_window.c,v 1.32 2021/10/23 23:06:24 tom Exp $") + +NCURSES_EXPORT(void) +_nc_synchook(WINDOW *win) +/* hook to be called after each window change */ +{ + if (win->_immed) + wrefresh(win); + if (win->_sync) + wsyncup(win); +} + +NCURSES_EXPORT(int) +mvderwin(WINDOW *win, int y, int x) +/* move a derived window */ +{ + WINDOW *orig; + int rc = ERR; + + T((T_CALLED("mvderwin(%p,%d,%d)"), (void *) win, y, x)); + + if (win != 0 + && (orig = win->_parent) != 0 + && (x >= 0 && y >= 0) + && (x + getmaxx(win) <= getmaxx(orig)) + && (y + getmaxy(win) <= getmaxy(orig))) { + int i; + + wsyncup(win); + win->_parx = x; + win->_pary = y; + for (i = 0; i < getmaxy(win); i++) + win->_line[i].text = &(orig->_line[y++].text[x]); + rc = OK; + } + returnCode(rc); +} + +NCURSES_EXPORT(int) +syncok(WINDOW *win, bool bf) +/* enable/disable automatic wsyncup() on each change to window */ +{ + T((T_CALLED("syncok(%p,%d)"), (void *) win, bf)); + + if (win) { + win->_sync = bf; + returnCode(OK); + } else + returnCode(ERR); +} + +NCURSES_EXPORT(void) +wsyncup(WINDOW *win) +/* mark changed every cell in win's ancestors that is changed in win */ +/* Rewritten by J. Pfeifer, 1-Apr-96 (don't even think that...) */ +{ + WINDOW *wp; + + T((T_CALLED("wsyncup(%p)"), (void *) win)); + if (win && win->_parent) { + for (wp = win; wp->_parent; wp = wp->_parent) { + int y; + WINDOW *pp = wp->_parent; + + assert((wp->_pary <= pp->_maxy) && + ((wp->_pary + wp->_maxy) <= pp->_maxy)); + + for (y = 0; y <= wp->_maxy; y++) { + int left = wp->_line[y].firstchar; + if (left >= 0) { /* line is touched */ + struct ldat *line = &(pp->_line[wp->_pary + y]); + /* left & right character in parent window coordinates */ + int right = wp->_line[y].lastchar + wp->_parx; + left += wp->_parx; + + CHANGED_RANGE(line, left, right); + } + } + } + } + returnVoid; +} + +NCURSES_EXPORT(void) +wsyncdown(WINDOW *win) +/* mark changed every cell in win that is changed in any of its ancestors */ +/* Rewritten by J. Pfeifer, 1-Apr-96 (don't even think that...) */ +{ + T((T_CALLED("wsyncdown(%p)"), (void *) win)); + + if (win != NULL && win->_parent != NULL) { + WINDOW *pp = win->_parent; + int y; + + /* This recursion guarantees, that the changes are propagated down- + wards from the root to our direct parent. */ + wsyncdown(pp); + + /* and now we only have to propagate the changes from our direct + parent, if there are any. */ + assert((win->_pary <= pp->_maxy) && + ((win->_pary + win->_maxy) <= pp->_maxy)); + + for (y = 0; y <= win->_maxy; y++) { + if (pp->_line[win->_pary + y].firstchar >= 0) { /* parent changed */ + struct ldat *line = &(win->_line[y]); + /* left and right character in child coordinates */ + int left = pp->_line[win->_pary + y].firstchar - win->_parx; + int right = pp->_line[win->_pary + y].lastchar - win->_parx; + /* The change may be outside the child's range */ + if (left < 0) + left = 0; + if (right > win->_maxx) + right = win->_maxx; + CHANGED_RANGE(line, left, right); + } + } + } + returnVoid; +} + +NCURSES_EXPORT(void) +wcursyncup(WINDOW *win) +/* sync the cursor in all derived windows to its value in the base window */ +{ + WINDOW *wp; + + T((T_CALLED("wcursyncup(%p)"), (void *) win)); + for (wp = win; wp && wp->_parent; wp = wp->_parent) { + wmove(wp->_parent, wp->_pary + wp->_cury, wp->_parx + wp->_curx); + } + returnVoid; +} + +NCURSES_EXPORT(WINDOW *) +dupwin(WINDOW *win) +/* make an exact duplicate of the given window */ +{ + WINDOW *nwin = 0; + + T((T_CALLED("dupwin(%p)"), (void *) win)); + + if (win != 0) { +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(win); +#endif + _nc_lock_global(curses); + if (IS_PAD(win)) { + nwin = NCURSES_SP_NAME(newpad) (NCURSES_SP_ARGx + win->_maxy + 1, + win->_maxx + 1); + } else { + nwin = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx + win->_maxy + 1, + win->_maxx + 1, + win->_begy, + win->_begx); + } + + if (nwin != 0) { + int i; + size_t linesize; + + nwin->_curx = win->_curx; + nwin->_cury = win->_cury; + nwin->_maxy = win->_maxy; + nwin->_maxx = win->_maxx; + nwin->_begy = win->_begy; + nwin->_begx = win->_begx; + nwin->_yoffset = win->_yoffset; + + nwin->_flags = win->_flags & ~_SUBWIN; + /* Due to the use of newwin(), the clone is not a subwindow. + * The text is really copied into the clone. + */ + + WINDOW_ATTRS(nwin) = WINDOW_ATTRS(win); + nwin->_nc_bkgd = win->_nc_bkgd; + + nwin->_notimeout = win->_notimeout; + nwin->_clear = win->_clear; + nwin->_leaveok = win->_leaveok; + nwin->_scroll = win->_scroll; + nwin->_idlok = win->_idlok; + nwin->_idcok = win->_idcok; + nwin->_immed = win->_immed; + nwin->_sync = win->_sync; + nwin->_use_keypad = win->_use_keypad; + nwin->_delay = win->_delay; + + nwin->_parx = 0; + nwin->_pary = 0; + nwin->_parent = (WINDOW *) 0; + /* See above: the clone isn't a subwindow! */ + + nwin->_regtop = win->_regtop; + nwin->_regbottom = win->_regbottom; + + if (IS_PAD(win)) + nwin->_pad = win->_pad; + + linesize = (unsigned) (win->_maxx + 1) * sizeof(NCURSES_CH_T); + for (i = 0; i <= nwin->_maxy; i++) { + memcpy(nwin->_line[i].text, win->_line[i].text, linesize); + nwin->_line[i].firstchar = win->_line[i].firstchar; + nwin->_line[i].lastchar = win->_line[i].lastchar; + } + } + _nc_unlock_global(curses); + } + returnWin(nwin); +} diff --git a/third_party/ncurses/lib_wunctrl.c b/third_party/ncurses/lib_wunctrl.c new file mode 100644 index 000000000..d5440c906 --- /dev/null +++ b/third_party/ncurses/lib_wunctrl.c @@ -0,0 +1,71 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2001-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* +** lib_wunctrl.c +** +** The routine wunctrl(). +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: lib_wunctrl.c,v 1.17 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(wchar_t *) +NCURSES_SP_NAME(wunctrl) (NCURSES_SP_DCLx cchar_t *wc) +{ + static wchar_t str[CCHARW_MAX + 1], *wsp; + wchar_t *result; + + if (wc == 0) { + result = 0; + } else if (SP_PARM != 0 && Charable(*wc)) { + const char *p = + NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx + (unsigned) _nc_to_char((wint_t)CharOf(*wc))); + + for (wsp = str; *p; ++p) { + *wsp++ = (wchar_t) _nc_to_widechar(*p); + } + *wsp = 0; + result = str; + } else { + result = wc->chars; + } + return result; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(wchar_t *) +wunctrl(cchar_t *wc) +{ + return NCURSES_SP_NAME(wunctrl) (CURRENT_SCREEN, wc); +} +#endif diff --git a/third_party/ncurses/menu.h b/third_party/ncurses/menu.h new file mode 100644 index 000000000..80f969f63 --- /dev/null +++ b/third_party/ncurses/menu.h @@ -0,0 +1,281 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +/* $Id: menu.h,v 1.26 2020/12/12 00:38:02 tom Exp $ */ + +#ifndef ETI_MENU +#define ETI_MENU + +#ifdef AMIGA +#define TEXT TEXT_ncurses +#endif + +#include "curses.h" +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#if defined(BUILDING_MENU) +# define MENU_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT +#else +# define MENU_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT +#endif + +#define MENU_WRAPPED_VAR(type,name) extern MENU_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) + +#define MENU_EXPORT(type) MENU_IMPEXP type NCURSES_API +#define MENU_EXPORT_VAR(type) MENU_IMPEXP type + + typedef int Menu_Options; + typedef int Item_Options; + +/* Menu options: */ +#define O_ONEVALUE (0x01) +#define O_SHOWDESC (0x02) +#define O_ROWMAJOR (0x04) +#define O_IGNORECASE (0x08) +#define O_SHOWMATCH (0x10) +#define O_NONCYCLIC (0x20) +#define O_MOUSE_MENU (0x40) + +/* Item options: */ +#define O_SELECTABLE (0x01) + +#if !NCURSES_OPAQUE_MENU + typedef struct + { + const char *str; + unsigned short length; + } + TEXT; +#endif /* !NCURSES_OPAQUE_MENU */ + + struct tagMENU; + + typedef struct tagITEM +#if !NCURSES_OPAQUE_MENU + { + TEXT name; /* name of menu item */ + TEXT description; /* description of item, optional in display */ + struct tagMENU *imenu; /* Pointer to parent menu */ + void *userptr; /* Pointer to user defined per item data */ + Item_Options opt; /* Item options */ + short index; /* Item number if connected to a menu */ + short y; /* y and x location of item in menu */ + short x; + bool value; /* Selection value */ + + struct tagITEM *left; /* neighbor items */ + struct tagITEM *right; + struct tagITEM *up; + struct tagITEM *down; + + } +#endif /* !NCURSES_OPAQUE_MENU */ + ITEM; + + typedef void (*Menu_Hook) (struct tagMENU *); + + typedef struct tagMENU +#if 1 /* not yet: !NCURSES_OPAQUE_MENU */ + { + short height; /* Nr. of chars high */ + short width; /* Nr. of chars wide */ + short rows; /* Nr. of items high */ + short cols; /* Nr. of items wide */ + short frows; /* Nr. of formatted items high */ + short fcols; /* Nr. of formatted items wide */ + short arows; /* Nr. of items high (actual) */ + short namelen; /* Max. name length */ + short desclen; /* Max. description length */ + short marklen; /* Length of mark, if any */ + short itemlen; /* Length of one item */ + short spc_desc; /* Spacing for descriptor */ + short spc_cols; /* Spacing for columns */ + short spc_rows; /* Spacing for rows */ + char *pattern; /* Buffer to store match chars */ + short pindex; /* Index into pattern buffer */ + WINDOW *win; /* Window containing menu */ + WINDOW *sub; /* Subwindow for menu display */ + WINDOW *userwin; /* User's window */ + WINDOW *usersub; /* User's subwindow */ + ITEM **items; /* array of items */ + short nitems; /* Nr. of items in menu */ + ITEM *curitem; /* Current item */ + short toprow; /* Top row of menu */ + chtype fore; /* Selection attribute */ + chtype back; /* Nonselection attribute */ + chtype grey; /* Inactive attribute */ + unsigned char pad; /* Pad character */ + + Menu_Hook menuinit; /* User hooks */ + Menu_Hook menuterm; + Menu_Hook iteminit; + Menu_Hook itemterm; + + void *userptr; /* Pointer to menus user data */ + char *mark; /* Pointer to marker string */ + + Menu_Options opt; /* Menu options */ + unsigned short status; /* Internal state of menu */ + } +#endif /* !NCURSES_OPAQUE_MENU */ + MENU; + +/* Define keys */ + +#define REQ_LEFT_ITEM (KEY_MAX + 1) +#define REQ_RIGHT_ITEM (KEY_MAX + 2) +#define REQ_UP_ITEM (KEY_MAX + 3) +#define REQ_DOWN_ITEM (KEY_MAX + 4) +#define REQ_SCR_ULINE (KEY_MAX + 5) +#define REQ_SCR_DLINE (KEY_MAX + 6) +#define REQ_SCR_DPAGE (KEY_MAX + 7) +#define REQ_SCR_UPAGE (KEY_MAX + 8) +#define REQ_FIRST_ITEM (KEY_MAX + 9) +#define REQ_LAST_ITEM (KEY_MAX + 10) +#define REQ_NEXT_ITEM (KEY_MAX + 11) +#define REQ_PREV_ITEM (KEY_MAX + 12) +#define REQ_TOGGLE_ITEM (KEY_MAX + 13) +#define REQ_CLEAR_PATTERN (KEY_MAX + 14) +#define REQ_BACK_PATTERN (KEY_MAX + 15) +#define REQ_NEXT_MATCH (KEY_MAX + 16) +#define REQ_PREV_MATCH (KEY_MAX + 17) + +#define MIN_MENU_COMMAND (KEY_MAX + 1) +#define MAX_MENU_COMMAND (KEY_MAX + 17) + +/* + * Some AT&T code expects MAX_COMMAND to be out-of-band not + * just for menu commands but for forms ones as well. + */ +#if defined(MAX_COMMAND) +# if (MAX_MENU_COMMAND > MAX_COMMAND) +# error Something is wrong -- MAX_MENU_COMMAND is greater than MAX_COMMAND +# elif (MAX_COMMAND != (KEY_MAX + 128)) +# error Something is wrong -- MAX_COMMAND is already inconsistently defined. +# endif +#else +# define MAX_COMMAND (KEY_MAX + 128) +#endif + +/* --------- prototypes for libmenu functions ----------------------------- */ + + extern MENU_EXPORT(ITEM **) menu_items(const MENU *); + extern MENU_EXPORT(ITEM *) current_item(const MENU *); + extern MENU_EXPORT(ITEM *) new_item(const char *, const char *); + + extern MENU_EXPORT(MENU *) new_menu(ITEM **); + + extern MENU_EXPORT(Item_Options) item_opts(const ITEM *); + extern MENU_EXPORT(Menu_Options) menu_opts(const MENU *); + + extern MENU_EXPORT(Menu_Hook) item_init(const MENU *); + extern MENU_EXPORT(Menu_Hook) item_term(const MENU *); + extern MENU_EXPORT(Menu_Hook) menu_init(const MENU *); + extern MENU_EXPORT(Menu_Hook) menu_term(const MENU *); + + extern MENU_EXPORT(WINDOW *) menu_sub(const MENU *); + extern MENU_EXPORT(WINDOW *) menu_win(const MENU *); + + extern MENU_EXPORT(const char *) item_description(const ITEM *); + extern MENU_EXPORT(const char *) item_name(const ITEM *); + extern MENU_EXPORT(const char *) menu_mark(const MENU *); + extern MENU_EXPORT(const char *) menu_request_name(int); + + extern MENU_EXPORT(char *) menu_pattern(const MENU *); + + extern MENU_EXPORT(void *) menu_userptr(const MENU *); + extern MENU_EXPORT(void *) item_userptr(const ITEM *); + + extern MENU_EXPORT(chtype) menu_back(const MENU *); + extern MENU_EXPORT(chtype) menu_fore(const MENU *); + extern MENU_EXPORT(chtype) menu_grey(const MENU *); + + extern MENU_EXPORT(int) free_item(ITEM *); + extern MENU_EXPORT(int) free_menu(MENU *); + extern MENU_EXPORT(int) item_count(const MENU *); + extern MENU_EXPORT(int) item_index(const ITEM *); + extern MENU_EXPORT(int) item_opts_off(ITEM *, Item_Options); + extern MENU_EXPORT(int) item_opts_on(ITEM *, Item_Options); + extern MENU_EXPORT(int) menu_driver(MENU *, int); + extern MENU_EXPORT(int) menu_opts_off(MENU *, Menu_Options); + extern MENU_EXPORT(int) menu_opts_on(MENU *, Menu_Options); + extern MENU_EXPORT(int) menu_pad(const MENU *); + extern MENU_EXPORT(int) pos_menu_cursor(const MENU *); + extern MENU_EXPORT(int) post_menu(MENU *); + extern MENU_EXPORT(int) scale_menu(const MENU *, int *, int *); + extern MENU_EXPORT(int) set_current_item(MENU *menu, ITEM *item); + extern MENU_EXPORT(int) set_item_init(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_item_opts(ITEM *, Item_Options); + extern MENU_EXPORT(int) set_item_term(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_item_userptr(ITEM *, void *); + extern MENU_EXPORT(int) set_item_value(ITEM *, bool); + extern MENU_EXPORT(int) set_menu_back(MENU *, chtype); + extern MENU_EXPORT(int) set_menu_fore(MENU *, chtype); + extern MENU_EXPORT(int) set_menu_format(MENU *, int, int); + extern MENU_EXPORT(int) set_menu_grey(MENU *, chtype); + extern MENU_EXPORT(int) set_menu_init(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_menu_items(MENU *, ITEM **); + extern MENU_EXPORT(int) set_menu_mark(MENU *, const char *); + extern MENU_EXPORT(int) set_menu_opts(MENU *, Menu_Options); + extern MENU_EXPORT(int) set_menu_pad(MENU *, int); + extern MENU_EXPORT(int) set_menu_pattern(MENU *, const char *); + extern MENU_EXPORT(int) set_menu_sub(MENU *, WINDOW *); + extern MENU_EXPORT(int) set_menu_term(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_menu_userptr(MENU *, void *); + extern MENU_EXPORT(int) set_menu_win(MENU *, WINDOW *); + extern MENU_EXPORT(int) set_top_row(MENU *, int); + extern MENU_EXPORT(int) top_row(const MENU *); + extern MENU_EXPORT(int) unpost_menu(MENU *); + extern MENU_EXPORT(int) menu_request_by_name(const char *); + extern MENU_EXPORT(int) set_menu_spacing(MENU *, int, int, int); + extern MENU_EXPORT(int) menu_spacing(const MENU *, int *, int *, int *); + + extern MENU_EXPORT(bool) item_value(const ITEM *); + extern MENU_EXPORT(bool) item_visible(const ITEM *); + + extern MENU_EXPORT(void) menu_format(const MENU *, int *, int *); + +#if NCURSES_SP_FUNCS + extern MENU_EXPORT(MENU *) NCURSES_SP_NAME(new_menu) (SCREEN *, ITEM **); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ETI_MENU */ diff --git a/third_party/ncurses/mf_common.h b/third_party/ncurses/mf_common.h new file mode 100644 index 000000000..b19037426 --- /dev/null +++ b/third_party/ncurses/mf_common.h @@ -0,0 +1,98 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2005,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +/* $Id: mf_common.h,v 0.25 2020/02/02 23:34:34 tom Exp $ */ + +/* Common internal header for menu and form library */ + +#ifndef MF_COMMON_H_incl +#define MF_COMMON_H_incl 1 + +#include "ncurses_cfg.h" +#include "curses.h" + +#include +#include +#include +#include +#include +#include + +#if DECL_ERRNO +extern int errno; +#endif + +/* in case of debug version we ignore the suppression of assertions */ +#ifdef TRACE +# ifdef NDEBUG +# undef NDEBUG +# endif +#endif + +#include "nc_alloc.h" + +#if USE_RCS_IDS +#define MODULE_ID(id) static const char Ident[] = id; +#else +#define MODULE_ID(id) /*nothing */ +#endif + +/* Maximum regular 8-bit character code */ +#define MAX_REGULAR_CHARACTER (0xff) + +#define SET_ERROR(code) (errno=(code)) +#define GET_ERROR() (errno) + +#ifdef TRACE +#define RETURN(code) returnCode( SET_ERROR(code) ) +#else +#define RETURN(code) return( SET_ERROR(code) ) +#endif + +/* The few common values in the status fields for menus and forms */ +#define _POSTED (0x01U) /* menu or form is posted */ +#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */ + +#define SetStatus(target,mask) (target)->status |= (unsigned short) (mask) +#define ClrStatus(target,mask) (target)->status = (unsigned short) (target->status & (~mask)) + +/* Call object hook */ +#define Call_Hook( object, handler ) \ + if ( (object) != 0 && ((object)->handler) != (void *) 0 )\ + {\ + SetStatus(object, _IN_DRIVER);\ + (object)->handler(object);\ + ClrStatus(object, _IN_DRIVER);\ + } + +#endif /* MF_COMMON_H_incl */ diff --git a/third_party/ncurses/name_match.c b/third_party/ncurses/name_match.c new file mode 100644 index 000000000..1178b5f60 --- /dev/null +++ b/third_party/ncurses/name_match.c @@ -0,0 +1,126 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2013,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1999-on * + ****************************************************************************/ + +#include "curses.priv.h" +#include "tic.h" + +MODULE_ID("$Id: name_match.c,v 1.25 2020/02/02 23:34:34 tom Exp $") + +#define FirstName _nc_globals.first_name + +#if NCURSES_USE_TERMCAP && NCURSES_XNAMES +static const char * +skip_index(const char *name) +{ + if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) { + const char *bar = strchr(name, '|'); + if (bar != 0 && (bar - name) == 2) + name = bar + 1; + } + return name; +} +#endif + +/* + * Get the primary name from the given name list. For terminfo, this is the + * first name. For termcap, this may be the second name, if the first one + * happens to be two characters. + */ +NCURSES_EXPORT(char *) +_nc_first_name(const char *const sp) +{ +#if NO_LEAKS + if (sp == 0) { + if (FirstName != 0) { + FreeAndNull(FirstName); + } + } else +#endif + { + if (FirstName == 0) + FirstName = typeMalloc(char, MAX_NAME_SIZE + 1); + + if (FirstName != 0) { + unsigned n; + const char *src = sp; +#if NCURSES_USE_TERMCAP && NCURSES_XNAMES + src = skip_index(sp); +#endif + for (n = 0; n < MAX_NAME_SIZE; n++) { + if ((FirstName[n] = src[n]) == '\0' + || (FirstName[n] == '|')) + break; + } + FirstName[n] = '\0'; + } + } + return (FirstName); +} + +/* + * Is the given name matched in namelist? + */ +NCURSES_EXPORT(int) +_nc_name_match(const char *const namelst, const char *const name, const char *const delim) +{ + const char *s; + + if ((s = namelst) != 0) { + while (*s != '\0') { + const char *d, *t; + int code, found; + + for (d = name; *d != '\0'; d++) { + if (*s != *d) + break; + s++; + } + found = FALSE; + for (code = TRUE; *s != '\0'; code = FALSE, s++) { + for (t = delim; *t != '\0'; t++) { + if (*s == *t) { + found = TRUE; + break; + } + } + if (found) + break; + } + if (code && *d == '\0') + return code; + if (*s++ == 0) + break; + } + } + return FALSE; +} diff --git a/third_party/ncurses/names.c b/third_party/ncurses/names.c new file mode 100644 index 000000000..ed8be2b7d --- /dev/null +++ b/third_party/ncurses/names.c @@ -0,0 +1,1379 @@ +/* This file was generated by MKnames.awk */ + +#include "curses.priv.h" + +#define IT NCURSES_CONST char * const + + +#if BROKEN_LINKER || USE_REENTRANT + +static const char _nc_name_blob[] = +"bw\0" "auto_left_margin\0" "am\0" "auto_right_margin\0" "xsb\0" "no_esc_ctlc\0" \ +"xhp\0" "ceol_standout_glitch\0" "xenl\0" "eat_newline_glitch\0" "eo\0" \ +"erase_overstrike\0" "gn\0" "generic_type\0" "hc\0" "hard_copy\0" "km\0" \ +"has_meta_key\0" "hs\0" "has_status_line\0" "in\0" "insert_null_glitch\0" \ +"da\0" "memory_above\0" "db\0" "memory_below\0" "mir\0" "move_insert_mode\0" \ +"msgr\0" "move_standout_mode\0" "os\0" "over_strike\0" "eslok\0" "status_line_esc_ok\0" \ +"xt\0" "dest_tabs_magic_smso\0" "hz\0" "tilde_glitch\0" "ul\0" "transparent_underline\0" \ +"xon\0" "xon_xoff\0" "nxon\0" "needs_xon_xoff\0" "mc5i\0" "prtr_silent\0" \ +"chts\0" "hard_cursor\0" "nrrmc\0" "non_rev_rmcup\0" "npc\0" "no_pad_char\0" \ +"ndscr\0" "non_dest_scroll_region\0" "ccc\0" "can_change\0" "bce\0" "back_color_erase\0" \ +"hls\0" "hue_lightness_saturation\0" "xhpa\0" "col_addr_glitch\0" "crxm\0" \ +"cr_cancels_micro_mode\0" "daisy\0" "has_print_wheel\0" "xvpa\0" "row_addr_glitch\0" \ +"sam\0" "semi_auto_right_margin\0" "cpix\0" "cpi_changes_res\0" "lpix\0" \ +"lpi_changes_res\0" "cols\0" "columns\0" "it\0" "init_tabs\0" "lines\0" \ +"lines\0" "lm\0" "lines_of_memory\0" "xmc\0" "magic_cookie_glitch\0" "pb\0" \ +"padding_baud_rate\0" "vt\0" "virtual_terminal\0" "wsl\0" "width_status_line\0" \ +"nlab\0" "num_labels\0" "lh\0" "label_height\0" "lw\0" "label_width\0" \ +"ma\0" "max_attributes\0" "wnum\0" "maximum_windows\0" "colors\0" "max_colors\0" \ +"pairs\0" "max_pairs\0" "ncv\0" "no_color_video\0" "bufsz\0" "buffer_capacity\0" \ +"spinv\0" "dot_vert_spacing\0" "spinh\0" "dot_horz_spacing\0" "maddr\0" \ +"max_micro_address\0" "mjump\0" "max_micro_jump\0" "mcs\0" "micro_col_size\0" \ +"mls\0" "micro_line_size\0" "npins\0" "number_of_pins\0" "orc\0" "output_res_char\0" \ +"orl\0" "output_res_line\0" "orhi\0" "output_res_horz_inch\0" "orvi\0" \ +"output_res_vert_inch\0" "cps\0" "print_rate\0" "widcs\0" "wide_char_size\0" \ +"btns\0" "buttons\0" "bitwin\0" "bit_image_entwining\0" "bitype\0" "bit_image_type\0" \ +"cbt\0" "back_tab\0" "bel\0" "bell\0" "cr\0" "carriage_return\0" "csr\0" \ +"change_scroll_region\0" "tbc\0" "clear_all_tabs\0" "clear\0" "clear_screen\0" \ +"el\0" "clr_eol\0" "ed\0" "clr_eos\0" "hpa\0" "column_address\0" "cmdch\0" \ +"command_character\0" "cup\0" "cursor_address\0" "cud1\0" "cursor_down\0" \ +"home\0" "cursor_home\0" "civis\0" "cursor_invisible\0" "cub1\0" "cursor_left\0" \ +"mrcup\0" "cursor_mem_address\0" "cnorm\0" "cursor_normal\0" "cuf1\0" "cursor_right\0" \ +"ll\0" "cursor_to_ll\0" "cuu1\0" "cursor_up\0" "cvvis\0" "cursor_visible\0" \ +"dch1\0" "delete_character\0" "dl1\0" "delete_line\0" "dsl\0" "dis_status_line\0" \ +"hd\0" "down_half_line\0" "smacs\0" "enter_alt_charset_mode\0" "blink\0" \ +"enter_blink_mode\0" "bold\0" "enter_bold_mode\0" "smcup\0" "enter_ca_mode\0" \ +"smdc\0" "enter_delete_mode\0" "dim\0" "enter_dim_mode\0" "smir\0" "enter_insert_mode\0" \ +"invis\0" "enter_secure_mode\0" "prot\0" "enter_protected_mode\0" "rev\0" \ +"enter_reverse_mode\0" "smso\0" "enter_standout_mode\0" "smul\0" "enter_underline_mode\0" \ +"ech\0" "erase_chars\0" "rmacs\0" "exit_alt_charset_mode\0" "sgr0\0" "exit_attribute_mode\0" \ +"rmcup\0" "exit_ca_mode\0" "rmdc\0" "exit_delete_mode\0" "rmir\0" "exit_insert_mode\0" \ +"rmso\0" "exit_standout_mode\0" "rmul\0" "exit_underline_mode\0" "flash\0" \ +"flash_screen\0" "ff\0" "form_feed\0" "fsl\0" "from_status_line\0" "is1\0" \ +"init_1string\0" "is2\0" "init_2string\0" "is3\0" "init_3string\0" "if\0" \ +"init_file\0" "ich1\0" "insert_character\0" "il1\0" "insert_line\0" "ip\0" \ +"insert_padding\0" "kbs\0" "key_backspace\0" "ktbc\0" "key_catab\0" "kclr\0" \ +"key_clear\0" "kctab\0" "key_ctab\0" "kdch1\0" "key_dc\0" "kdl1\0" "key_dl\0" \ +"kcud1\0" "key_down\0" "krmir\0" "key_eic\0" "kel\0" "key_eol\0" "ked\0" \ +"key_eos\0" "kf0\0" "key_f0\0" "kf1\0" "key_f1\0" "kf10\0" "key_f10\0" \ +"kf2\0" "key_f2\0" "kf3\0" "key_f3\0" "kf4\0" "key_f4\0" "kf5\0" "key_f5\0" \ +"kf6\0" "key_f6\0" "kf7\0" "key_f7\0" "kf8\0" "key_f8\0" "kf9\0" "key_f9\0" \ +"khome\0" "key_home\0" "kich1\0" "key_ic\0" "kil1\0" "key_il\0" "kcub1\0" \ +"key_left\0" "kll\0" "key_ll\0" "knp\0" "key_npage\0" "kpp\0" "key_ppage\0" \ +"kcuf1\0" "key_right\0" "kind\0" "key_sf\0" "kri\0" "key_sr\0" "khts\0" \ +"key_stab\0" "kcuu1\0" "key_up\0" "rmkx\0" "keypad_local\0" "smkx\0" "keypad_xmit\0" \ +"lf0\0" "lab_f0\0" "lf1\0" "lab_f1\0" "lf10\0" "lab_f10\0" "lf2\0" "lab_f2\0" \ +"lf3\0" "lab_f3\0" "lf4\0" "lab_f4\0" "lf5\0" "lab_f5\0" "lf6\0" "lab_f6\0" \ +"lf7\0" "lab_f7\0" "lf8\0" "lab_f8\0" "lf9\0" "lab_f9\0" "rmm\0" "meta_off\0" \ +"smm\0" "meta_on\0" "nel\0" "newline\0" "pad\0" "pad_char\0" "dch\0" "parm_dch\0" \ +"dl\0" "parm_delete_line\0" "cud\0" "parm_down_cursor\0" "ich\0" "parm_ich\0" \ +"indn\0" "parm_index\0" "il\0" "parm_insert_line\0" "cub\0" "parm_left_cursor\0" \ +"cuf\0" "parm_right_cursor\0" "rin\0" "parm_rindex\0" "cuu\0" "parm_up_cursor\0" \ +"pfkey\0" "pkey_key\0" "pfloc\0" "pkey_local\0" "pfx\0" "pkey_xmit\0" "mc0\0" \ +"print_screen\0" "mc4\0" "prtr_off\0" "mc5\0" "prtr_on\0" "rep\0" "repeat_char\0" \ +"rs1\0" "reset_1string\0" "rs2\0" "reset_2string\0" "rs3\0" "reset_3string\0" \ +"rf\0" "reset_file\0" "rc\0" "restore_cursor\0" "vpa\0" "row_address\0" \ +"sc\0" "save_cursor\0" "ind\0" "scroll_forward\0" "ri\0" "scroll_reverse\0" \ +"sgr\0" "set_attributes\0" "hts\0" "set_tab\0" "wind\0" "set_window\0" \ +"ht\0" "tab\0" "tsl\0" "to_status_line\0" "uc\0" "underline_char\0" "hu\0" \ +"up_half_line\0" "iprog\0" "init_prog\0" "ka1\0" "key_a1\0" "ka3\0" "key_a3\0" \ +"kb2\0" "key_b2\0" "kc1\0" "key_c1\0" "kc3\0" "key_c3\0" "mc5p\0" "prtr_non\0" \ +"rmp\0" "char_padding\0" "acsc\0" "acs_chars\0" "pln\0" "plab_norm\0" "kcbt\0" \ +"key_btab\0" "smxon\0" "enter_xon_mode\0" "rmxon\0" "exit_xon_mode\0" "smam\0" \ +"enter_am_mode\0" "rmam\0" "exit_am_mode\0" "xonc\0" "xon_character\0" \ +"xoffc\0" "xoff_character\0" "enacs\0" "ena_acs\0" "smln\0" "label_on\0" \ +"rmln\0" "label_off\0" "kbeg\0" "key_beg\0" "kcan\0" "key_cancel\0" "kclo\0" \ +"key_close\0" "kcmd\0" "key_command\0" "kcpy\0" "key_copy\0" "kcrt\0" "key_create\0" \ +"kend\0" "key_end\0" "kent\0" "key_enter\0" "kext\0" "key_exit\0" "kfnd\0" \ +"key_find\0" "khlp\0" "key_help\0" "kmrk\0" "key_mark\0" "kmsg\0" "key_message\0" \ +"kmov\0" "key_move\0" "knxt\0" "key_next\0" "kopn\0" "key_open\0" "kopt\0" \ +"key_options\0" "kprv\0" "key_previous\0" "kprt\0" "key_print\0" "krdo\0" \ +"key_redo\0" "kref\0" "key_reference\0" "krfr\0" "key_refresh\0" "krpl\0" \ +"key_replace\0" "krst\0" "key_restart\0" "kres\0" "key_resume\0" "ksav\0" \ +"key_save\0" "kspd\0" "key_suspend\0" "kund\0" "key_undo\0" "kBEG\0" "key_sbeg\0" \ +"kCAN\0" "key_scancel\0" "kCMD\0" "key_scommand\0" "kCPY\0" "key_scopy\0" \ +"kCRT\0" "key_screate\0" "kDC\0" "key_sdc\0" "kDL\0" "key_sdl\0" "kslt\0" \ +"key_select\0" "kEND\0" "key_send\0" "kEOL\0" "key_seol\0" "kEXT\0" "key_sexit\0" \ +"kFND\0" "key_sfind\0" "kHLP\0" "key_shelp\0" "kHOM\0" "key_shome\0" "kIC\0" \ +"key_sic\0" "kLFT\0" "key_sleft\0" "kMSG\0" "key_smessage\0" "kMOV\0" "key_smove\0" \ +"kNXT\0" "key_snext\0" "kOPT\0" "key_soptions\0" "kPRV\0" "key_sprevious\0" \ +"kPRT\0" "key_sprint\0" "kRDO\0" "key_sredo\0" "kRPL\0" "key_sreplace\0" \ +"kRIT\0" "key_sright\0" "kRES\0" "key_srsume\0" "kSAV\0" "key_ssave\0" \ +"kSPD\0" "key_ssuspend\0" "kUND\0" "key_sundo\0" "rfi\0" "req_for_input\0" \ +"kf11\0" "key_f11\0" "kf12\0" "key_f12\0" "kf13\0" "key_f13\0" "kf14\0" \ +"key_f14\0" "kf15\0" "key_f15\0" "kf16\0" "key_f16\0" "kf17\0" "key_f17\0" \ +"kf18\0" "key_f18\0" "kf19\0" "key_f19\0" "kf20\0" "key_f20\0" "kf21\0" \ +"key_f21\0" "kf22\0" "key_f22\0" "kf23\0" "key_f23\0" "kf24\0" "key_f24\0" \ +"kf25\0" "key_f25\0" "kf26\0" "key_f26\0" "kf27\0" "key_f27\0" "kf28\0" \ +"key_f28\0" "kf29\0" "key_f29\0" "kf30\0" "key_f30\0" "kf31\0" "key_f31\0" \ +"kf32\0" "key_f32\0" "kf33\0" "key_f33\0" "kf34\0" "key_f34\0" "kf35\0" \ +"key_f35\0" "kf36\0" "key_f36\0" "kf37\0" "key_f37\0" "kf38\0" "key_f38\0" \ +"kf39\0" "key_f39\0" "kf40\0" "key_f40\0" "kf41\0" "key_f41\0" "kf42\0" \ +"key_f42\0" "kf43\0" "key_f43\0" "kf44\0" "key_f44\0" "kf45\0" "key_f45\0" \ +"kf46\0" "key_f46\0" "kf47\0" "key_f47\0" "kf48\0" "key_f48\0" "kf49\0" \ +"key_f49\0" "kf50\0" "key_f50\0" "kf51\0" "key_f51\0" "kf52\0" "key_f52\0" \ +"kf53\0" "key_f53\0" "kf54\0" "key_f54\0" "kf55\0" "key_f55\0" "kf56\0" \ +"key_f56\0" "kf57\0" "key_f57\0" "kf58\0" "key_f58\0" "kf59\0" "key_f59\0" \ +"kf60\0" "key_f60\0" "kf61\0" "key_f61\0" "kf62\0" "key_f62\0" "kf63\0" \ +"key_f63\0" "el1\0" "clr_bol\0" "mgc\0" "clear_margins\0" "smgl\0" "set_left_margin\0" \ +"smgr\0" "set_right_margin\0" "fln\0" "label_format\0" "sclk\0" "set_clock\0" \ +"dclk\0" "display_clock\0" "rmclk\0" "remove_clock\0" "cwin\0" "create_window\0" \ +"wingo\0" "goto_window\0" "hup\0" "hangup\0" "dial\0" "dial_phone\0" "qdial\0" \ +"quick_dial\0" "tone\0" "tone\0" "pulse\0" "pulse\0" "hook\0" "flash_hook\0" \ +"pause\0" "fixed_pause\0" "wait\0" "wait_tone\0" "u0\0" "user0\0" "u1\0" \ +"user1\0" "u2\0" "user2\0" "u3\0" "user3\0" "u4\0" "user4\0" "u5\0" "user5\0" \ +"u6\0" "user6\0" "u7\0" "user7\0" "u8\0" "user8\0" "u9\0" "user9\0" "op\0" \ +"orig_pair\0" "oc\0" "orig_colors\0" "initc\0" "initialize_color\0" "initp\0" \ +"initialize_pair\0" "scp\0" "set_color_pair\0" "setf\0" "set_foreground\0" \ +"setb\0" "set_background\0" "cpi\0" "change_char_pitch\0" "lpi\0" "change_line_pitch\0" \ +"chr\0" "change_res_horz\0" "cvr\0" "change_res_vert\0" "defc\0" "define_char\0" \ +"swidm\0" "enter_doublewide_mode\0" "sdrfq\0" "enter_draft_quality\0" "sitm\0" \ +"enter_italics_mode\0" "slm\0" "enter_leftward_mode\0" "smicm\0" "enter_micro_mode\0" \ +"snlq\0" "enter_near_letter_quality\0" "snrmq\0" "enter_normal_quality\0" \ +"sshm\0" "enter_shadow_mode\0" "ssubm\0" "enter_subscript_mode\0" "ssupm\0" \ +"enter_superscript_mode\0" "sum\0" "enter_upward_mode\0" "rwidm\0" "exit_doublewide_mode\0" \ +"ritm\0" "exit_italics_mode\0" "rlm\0" "exit_leftward_mode\0" "rmicm\0" \ +"exit_micro_mode\0" "rshm\0" "exit_shadow_mode\0" "rsubm\0" "exit_subscript_mode\0" \ +"rsupm\0" "exit_superscript_mode\0" "rum\0" "exit_upward_mode\0" "mhpa\0" \ +"micro_column_address\0" "mcud1\0" "micro_down\0" "mcub1\0" "micro_left\0" \ +"mcuf1\0" "micro_right\0" "mvpa\0" "micro_row_address\0" "mcuu1\0" "micro_up\0" \ +"porder\0" "order_of_pins\0" "mcud\0" "parm_down_micro\0" "mcub\0" "parm_left_micro\0" \ +"mcuf\0" "parm_right_micro\0" "mcuu\0" "parm_up_micro\0" "scs\0" "select_char_set\0" \ +"smgb\0" "set_bottom_margin\0" "smgbp\0" "set_bottom_margin_parm\0" "smglp\0" \ +"set_left_margin_parm\0" "smgrp\0" "set_right_margin_parm\0" "smgt\0" "set_top_margin\0" \ +"smgtp\0" "set_top_margin_parm\0" "sbim\0" "start_bit_image\0" "scsd\0" \ +"start_char_set_def\0" "rbim\0" "stop_bit_image\0" "rcsd\0" "stop_char_set_def\0" \ +"subcs\0" "subscript_characters\0" "supcs\0" "superscript_characters\0" \ +"docr\0" "these_cause_cr\0" "zerom\0" "zero_motion\0" "csnm\0" "char_set_names\0" \ +"kmous\0" "key_mouse\0" "minfo\0" "mouse_info\0" "reqmp\0" "req_mouse_pos\0" \ +"getm\0" "get_mouse\0" "setaf\0" "set_a_foreground\0" "setab\0" "set_a_background\0" \ +"pfxl\0" "pkey_plab\0" "devt\0" "device_type\0" "csin\0" "code_set_init\0" \ +"s0ds\0" "set0_des_seq\0" "s1ds\0" "set1_des_seq\0" "s2ds\0" "set2_des_seq\0" \ +"s3ds\0" "set3_des_seq\0" "smglr\0" "set_lr_margin\0" "smgtb\0" "set_tb_margin\0" \ +"birep\0" "bit_image_repeat\0" "binel\0" "bit_image_newline\0" "bicr\0" \ +"bit_image_carriage_return\0" "colornm\0" "color_names\0" "defbi\0" "define_bit_image_region\0" \ +"endbi\0" "end_bit_image_region\0" "setcolor\0" "set_color_band\0" "slines\0" \ +"set_page_length\0" "dispc\0" "display_pc_char\0" "smpch\0" "enter_pc_charset_mode\0" \ +"rmpch\0" "exit_pc_charset_mode\0" "smsc\0" "enter_scancode_mode\0" "rmsc\0" \ +"exit_scancode_mode\0" "pctrm\0" "pc_term_options\0" "scesc\0" "scancode_escape\0" \ +"scesa\0" "alt_scancode_esc\0" "ehhlm\0" "enter_horizontal_hl_mode\0" "elhlm\0" \ +"enter_left_hl_mode\0" "elohlm\0" "enter_low_hl_mode\0" "erhlm\0" "enter_right_hl_mode\0" \ +"ethlm\0" "enter_top_hl_mode\0" "evhlm\0" "enter_vertical_hl_mode\0" "sgr1\0" \ +"set_a_attributes\0" "slength\0" "set_pglen_inch\0" "OTi2\0" "termcap_init2\0" \ +"OTrs\0" "termcap_reset\0" "OTug\0" "magic_cookie_glitch_ul\0" "OTbs\0" \ +"backspaces_with_bs\0" "OTns\0" "crt_no_scrolling\0" "OTnc\0" "no_correctly_working_cr\0" \ +"OTdC\0" "carriage_return_delay\0" "OTdN\0" "new_line_delay\0" "OTnl\0" \ +"linefeed_if_not_lf\0" "OTbc\0" "backspace_if_not_bs\0" "OTMT\0" "gnu_has_meta_key\0" \ +"OTNL\0" "linefeed_is_newline\0" "OTdB\0" "backspace_delay\0" "OTdT\0" \ +"horizontal_tab_delay\0" "OTkn\0" "number_of_function_keys\0" "OTko\0" \ +"other_non_function_keys\0" "OTma\0" "arrow_key_map\0" "OTpt\0" "has_hardware_tabs\0" \ +"OTxr\0" "return_does_clr_eol\0" "OTG2\0" "acs_ulcorner\0" "OTG3\0" "acs_llcorner\0" \ +"OTG1\0" "acs_urcorner\0" "OTG4\0" "acs_lrcorner\0" "OTGR\0" "acs_ltee\0" \ +"OTGL\0" "acs_rtee\0" "OTGU\0" "acs_btee\0" "OTGD\0" "acs_ttee\0" "OTGH\0" \ +"acs_hline\0" "OTGV\0" "acs_vline\0" "OTGC\0" "acs_plus\0" "meml\0" "memory_lock\0" \ +"memu\0" "memory_unlock\0" "box1\0" "box_chars_1\0" ; +static const short _nc_offset_boolfnames[] = { +3, 23, 45, 61, 87, 109, 129, +145, 158, 174, 193, 215, 231, +248, 270, 292, 310, 332, 356, +372, 398, 412, 432, 449, 467, +485, 503, 530, 545, 566, 596, +617, 645, 666, 686, 714, 735, +8193, 8217, 8239, 8364, 8386, 8535, 8558, }; + +static NCURSES_CONST char ** ptr_boolfnames = 0; + +static const short _nc_offset_boolnames[] = { +0, 20, 41, 57, 82, 106, 126, 142, 155, 171, 190, 212, 228, 244, 265, 289, 304, 329, 353, 369, 394, 407, 427, 444, 461, 481, 497, 526, 541, 562, 591, 612, 639, 661, 682, 709, 730, 8188, 8212, 8234, 8359, 8381, 8530, 8553, }; + +static NCURSES_CONST char ** ptr_boolnames = 0; + +static const short _nc_offset_numfnames[] = { +756, 767, 783, 792, 812, 835, +856, 877, 900, 914, 930, 945, +965, 988, 1005, 1019, 1040, 1062, 1085, 1108, 1132, 1151, 1170, +1192, 1211, 1231, 1252, 1278, 1303, 1320, 1340, 1355, 1382, 8165, +8268, 8295, 8411, 8432, +8458, }; + +static NCURSES_CONST char ** ptr_numfnames = 0; + +static const short _nc_offset_numnames[] = { +751, 764, 777, 789, 808, 832, 853, 873, 895, 911, 927, 942, 960, 981, 999, 1015, 1034, 1056, +1079, 1102, 1126, 1147, 1166, 1186, 1207, 1227, 1247, 1273, 1299, +1314, 1335, 1348, 1375, 8160, 8263, 8290, 8406, 8427, 8453, }; + +static NCURSES_CONST char ** ptr_numnames = 0; + +static const short _nc_offset_strfnames[] = { +1401, +1414, 1422, 1442, 1467, 1488, 1504, 1515, 1527, 1548, 1570, 1590, +1607, 1625, 1647, 1665, 1690, 1709, 1725, 1743, 1759, 1779, 1800, +1816, 1835, 1856, 1885, 1907, 1929, 1948, 1970, 1990, 2014, 2037, +2062, 2086, 2111, 2136, 2154, 2181, 2207, 2225, 2247, 2269, 2293, +2319, 2335, 2349, 2370, 2387, 2404, 2420, 2435, 2456, 2471, 2490, +2509, 2524, 2540, 2555, 2567, 2580, 2595, 2607, 2619, 2631, 2642, +2654, 2666, 2677, 2688, 2699, 2710, 2721, 2732, 2743, 2756, 2771, +2783, 2796, 2809, 2820, 2834, 2850, 2865, 2876, 2888, 2903, 2915, +2933, 2949, 2960, 2972, 2984, 2995, 3006, 3017, 3028, 3039, 3050, +3061, 3072, 3085, 3097, 3109, 3122, 3134, 3155, 3176, 3190, 3204, +3225, 3246, 3268, 3284, 3305, 3320, 3335, 3349, 3366, 3379, 3391, +3407, 3425, 3443, 3460, 3474, 3493, 3508, 3524, 3542, 3561, 3580, +3593, 3607, 3615, 3633, 3651, 3670, 3684, 3695, 3706, 3717, 3728, +3740, 3753, 3771, 3785, 3800, 3815, 3836, 3855, 3874, 3892, 3912, +3933, 3946, 3960, 3975, 3988, 4004, 4019, 4036, 4050, 4066, 4079, +4094, 4108, 4122, 4136, 4150, 4167, 4181, 4195, 4209, 4226, 4244, +4259, 4273, 4292, 4309, 4326, 4343, 4359, 4373, 4390, 4404, 4418, +4435, 4453, 4468, 4484, 4496, 4509, 4525, 4539, 4553, 4568, 4583, +4598, 4612, 4625, 4640, 4658, 4673, 4688, 4706, 4725, 4741, 4756, +4774, 4790, 4806, 4821, 4839, 4853, 4872, 4885, 4898, 4911, 4924, +4937, 4950, 4963, 4976, 4989, 5002, 5015, 5028, 5041, 5054, 5067, +5080, 5093, 5106, 5119, 5132, 5145, 5158, 5171, 5184, 5197, 5210, +5223, 5236, 5249, 5262, 5275, 5288, 5301, 5314, 5327, 5340, 5353, +5366, 5379, 5392, 5405, 5418, 5431, 5444, 5457, 5470, 5483, 5496, +5509, 5522, 5535, 5548, 5560, 5572, 5591, 5612, 5633, 5651, 5666, +5686, 5704, 5724, 5740, 5752, 5769, 5785, 5796, 5807, 5824, 5841, +5854, 5863, 5872, 5881, 5890, 5899, 5908, 5917, 5926, 5935, 5944, +5957, 5975, 5998, 6018, 6038, 6058, 6077, 6099, 6121, 6141, 6162, +6180, 6208, 6233, 6256, 6282, 6304, 6336, 6362, 6386, 6413, 6440, +6464, 6490, 6512, 6537, 6558, 6581, 6607, 6633, 6655, 6682, 6699, +6716, 6733, 6757, 6773, 6792, 6813, 6834, 6856, 6874, 6895, 6919, +6948, 6975, 7002, 7023, 7048, 7069, 7093, 7113, 7137, 7164, 7192, +7213, 7230, 7251, 7267, 7284, 7303, 7319, 7342, 7364, 7379, 7396, +7415, 7433, 7451, 7469, 7488, 7508, 7528, 7551, 7574, 7608, 7626, +7656, 7686, 7708, 7730, 7752, 7780, 7806, 7831, 7856, 7878, 7900, +7923, 7954, 7980, 8004, 8030, 8054, 8082, 8107, 8127, 8146, 8315, 8339, 8487, 8516, 8583, 8601, 8619, 8637, 8655, 8669, +8683, 8697, 8711, 8726, 8741, 8755, 8772, 8791, }; + +static NCURSES_CONST char ** ptr_strfnames = 0; + +static const short _nc_offset_strnames[] = { +1397, 1410, 1419, 1438, 1463, 1482, 1501, +1512, 1523, 1542, 1566, 1585, 1602, 1619, 1642, 1659, 1684, 1704, +1722, 1738, 1753, 1774, 1796, 1812, 1832, 1850, 1879, 1902, 1923, +1943, 1966, 1985, 2008, 2032, 2058, 2081, 2106, 2132, 2148, 2176, +2201, 2220, 2242, 2264, 2288, 2313, 2332, 2345, 2366, 2383, 2400, +2417, 2430, 2452, 2468, 2486, 2504, 2519, 2534, 2549, 2562, 2574, +2589, 2603, 2615, 2627, 2638, 2649, 2662, 2673, 2684, 2695, 2706, +2717, 2728, 2739, 2750, 2765, 2778, 2790, 2805, 2816, 2830, 2844, +2860, 2872, 2883, 2897, 2910, 2928, 2945, 2956, 2967, 2980, 2991, +3002, 3013, 3024, 3035, 3046, 3057, 3068, 3081, 3093, 3105, 3118, +3131, 3151, 3172, 3185, 3201, 3221, 3242, 3264, 3280, 3299, 3314, +3331, 3345, 3362, 3375, 3387, 3403, 3421, 3439, 3457, 3471, 3489, +3505, 3520, 3539, 3557, 3576, 3588, 3604, 3611, 3630, 3648, 3664, +3680, 3691, 3702, 3713, 3724, 3735, 3749, 3766, 3781, 3795, 3809, +3830, 3850, 3869, 3887, 3906, 3927, 3941, 3955, 3970, 3983, 3999, +4014, 4031, 4045, 4061, 4074, 4089, 4103, 4117, 4131, 4145, 4162, +4176, 4190, 4204, 4221, 4239, 4254, 4268, 4287, 4304, 4321, 4338, +4354, 4368, 4385, 4399, 4413, 4430, 4448, 4463, 4480, 4492, 4504, +4520, 4534, 4548, 4563, 4578, 4593, 4608, 4620, 4635, 4653, 4668, +4683, 4701, 4720, 4736, 4751, 4769, 4785, 4801, 4816, 4834, 4849, +4867, 4880, 4893, 4906, 4919, 4932, 4945, 4958, 4971, 4984, 4997, +5010, 5023, 5036, 5049, 5062, 5075, 5088, 5101, 5114, 5127, 5140, +5153, 5166, 5179, 5192, 5205, 5218, 5231, 5244, 5257, 5270, 5283, +5296, 5309, 5322, 5335, 5348, 5361, 5374, 5387, 5400, 5413, 5426, +5439, 5452, 5465, 5478, 5491, 5504, 5517, 5530, 5543, 5556, 5568, +5586, 5607, 5629, 5646, 5661, 5680, 5699, 5718, 5736, 5747, 5763, +5780, 5790, 5802, 5818, 5836, 5851, 5860, 5869, 5878, 5887, 5896, +5905, 5914, 5923, 5932, 5941, 5954, 5969, 5992, 6014, 6033, 6053, +6073, 6095, 6117, 6137, 6157, 6174, 6202, 6228, 6252, 6276, 6299, +6330, 6357, 6380, 6407, 6436, 6458, 6485, 6508, 6531, 6553, 6575, +6601, 6629, 6650, 6676, 6693, 6710, 6728, 6751, 6766, 6787, 6808, +6829, 6851, 6870, 6890, 6913, 6942, 6969, 6997, 7017, 7043, 7064, +7088, 7108, 7131, 7158, 7187, 7207, 7225, 7245, 7261, 7278, 7298, +7313, 7336, 7359, 7374, 7391, 7410, 7428, 7446, 7464, 7482, 7502, +7522, 7545, 7569, 7600, 7620, 7650, 7677, 7701, 7724, 7746, 7774, +7801, 7826, 7850, 7872, 7894, 7917, 7948, 7973, 7998, 8024, 8048, +8077, 8099, 8122, 8141, 8310, +8334, 8482, 8511, 8578, +8596, 8614, 8632, 8650, 8664, 8678, 8692, 8706, 8721, 8736, 8750, +8767, 8786, }; + +static NCURSES_CONST char ** ptr_strnames = 0; + + +static IT * +alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size) +{ + if (*value == 0) { + if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) { + unsigned n; + for (n = 0; n < size; ++n) { + (*value)[n] = (NCURSES_CONST char *) _nc_name_blob + offsets[n]; + } + } + } + return *value; +} + +#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API NCURSES_PUBLIC_VAR(it)(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); } + +/* remove public definition which conflicts with FIX() */ +#undef boolnames +#undef boolfnames +#undef numnames +#undef numfnames +#undef strnames +#undef strfnames + +/* add local definition */ +FIX(boolnames) +FIX(boolfnames) +FIX(numnames) +FIX(numfnames) +FIX(strnames) +FIX(strfnames) + +/* restore the public definition */ +#define boolnames NCURSES_PUBLIC_VAR(boolnames()) +#define boolfnames NCURSES_PUBLIC_VAR(boolfnames()) +#define numnames NCURSES_PUBLIC_VAR(numnames()) +#define numfnames NCURSES_PUBLIC_VAR(numfnames()) +#define strnames NCURSES_PUBLIC_VAR(strnames()) +#define strfnames NCURSES_PUBLIC_VAR(strfnames()) + +#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); } + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_names_leaks(void) +{ +FREE_FIX(boolnames) +FREE_FIX(boolfnames) +FREE_FIX(numnames) +FREE_FIX(numfnames) +FREE_FIX(strnames) +FREE_FIX(strfnames) +} +#endif + +#else + +#define DCL(it) NCURSES_EXPORT_VAR(IT) it[] + +DCL(boolnames) = { + "bw", + "am", + "xsb", + "xhp", + "xenl", + "eo", + "gn", + "hc", + "km", + "hs", + "in", + "da", + "db", + "mir", + "msgr", + "os", + "eslok", + "xt", + "hz", + "ul", + "xon", + "nxon", + "mc5i", + "chts", + "nrrmc", + "npc", + "ndscr", + "ccc", + "bce", + "hls", + "xhpa", + "crxm", + "daisy", + "xvpa", + "sam", + "cpix", + "lpix", + "OTbs", + "OTns", + "OTnc", + "OTMT", + "OTNL", + "OTpt", + "OTxr", + + (NCURSES_CONST char *)0, +}; + +DCL(boolfnames) = { + "auto_left_margin", + "auto_right_margin", + "no_esc_ctlc", + "ceol_standout_glitch", + "eat_newline_glitch", + "erase_overstrike", + "generic_type", + "hard_copy", + "has_meta_key", + "has_status_line", + "insert_null_glitch", + "memory_above", + "memory_below", + "move_insert_mode", + "move_standout_mode", + "over_strike", + "status_line_esc_ok", + "dest_tabs_magic_smso", + "tilde_glitch", + "transparent_underline", + "xon_xoff", + "needs_xon_xoff", + "prtr_silent", + "hard_cursor", + "non_rev_rmcup", + "no_pad_char", + "non_dest_scroll_region", + "can_change", + "back_color_erase", + "hue_lightness_saturation", + "col_addr_glitch", + "cr_cancels_micro_mode", + "has_print_wheel", + "row_addr_glitch", + "semi_auto_right_margin", + "cpi_changes_res", + "lpi_changes_res", + "backspaces_with_bs", + "crt_no_scrolling", + "no_correctly_working_cr", + "gnu_has_meta_key", + "linefeed_is_newline", + "has_hardware_tabs", + "return_does_clr_eol", + + (NCURSES_CONST char *)0, +}; + +DCL(numnames) = { + "cols", + "it", + "lines", + "lm", + "xmc", + "pb", + "vt", + "wsl", + "nlab", + "lh", + "lw", + "ma", + "wnum", + "colors", + "pairs", + "ncv", + "bufsz", + "spinv", + "spinh", + "maddr", + "mjump", + "mcs", + "mls", + "npins", + "orc", + "orl", + "orhi", + "orvi", + "cps", + "widcs", + "btns", + "bitwin", + "bitype", + "OTug", + "OTdC", + "OTdN", + "OTdB", + "OTdT", + "OTkn", + + (NCURSES_CONST char *)0, +}; + +DCL(numfnames) = { + "columns", + "init_tabs", + "lines", + "lines_of_memory", + "magic_cookie_glitch", + "padding_baud_rate", + "virtual_terminal", + "width_status_line", + "num_labels", + "label_height", + "label_width", + "max_attributes", + "maximum_windows", + "max_colors", + "max_pairs", + "no_color_video", + "buffer_capacity", + "dot_vert_spacing", + "dot_horz_spacing", + "max_micro_address", + "max_micro_jump", + "micro_col_size", + "micro_line_size", + "number_of_pins", + "output_res_char", + "output_res_line", + "output_res_horz_inch", + "output_res_vert_inch", + "print_rate", + "wide_char_size", + "buttons", + "bit_image_entwining", + "bit_image_type", + "magic_cookie_glitch_ul", + "carriage_return_delay", + "new_line_delay", + "backspace_delay", + "horizontal_tab_delay", + "number_of_function_keys", + + (NCURSES_CONST char *)0, +}; + +DCL(strnames) = { + "cbt", + "bel", + "cr", + "csr", + "tbc", + "clear", + "el", + "ed", + "hpa", + "cmdch", + "cup", + "cud1", + "home", + "civis", + "cub1", + "mrcup", + "cnorm", + "cuf1", + "ll", + "cuu1", + "cvvis", + "dch1", + "dl1", + "dsl", + "hd", + "smacs", + "blink", + "bold", + "smcup", + "smdc", + "dim", + "smir", + "invis", + "prot", + "rev", + "smso", + "smul", + "ech", + "rmacs", + "sgr0", + "rmcup", + "rmdc", + "rmir", + "rmso", + "rmul", + "flash", + "ff", + "fsl", + "is1", + "is2", + "is3", + "if", + "ich1", + "il1", + "ip", + "kbs", + "ktbc", + "kclr", + "kctab", + "kdch1", + "kdl1", + "kcud1", + "krmir", + "kel", + "ked", + "kf0", + "kf1", + "kf10", + "kf2", + "kf3", + "kf4", + "kf5", + "kf6", + "kf7", + "kf8", + "kf9", + "khome", + "kich1", + "kil1", + "kcub1", + "kll", + "knp", + "kpp", + "kcuf1", + "kind", + "kri", + "khts", + "kcuu1", + "rmkx", + "smkx", + "lf0", + "lf1", + "lf10", + "lf2", + "lf3", + "lf4", + "lf5", + "lf6", + "lf7", + "lf8", + "lf9", + "rmm", + "smm", + "nel", + "pad", + "dch", + "dl", + "cud", + "ich", + "indn", + "il", + "cub", + "cuf", + "rin", + "cuu", + "pfkey", + "pfloc", + "pfx", + "mc0", + "mc4", + "mc5", + "rep", + "rs1", + "rs2", + "rs3", + "rf", + "rc", + "vpa", + "sc", + "ind", + "ri", + "sgr", + "hts", + "wind", + "ht", + "tsl", + "uc", + "hu", + "iprog", + "ka1", + "ka3", + "kb2", + "kc1", + "kc3", + "mc5p", + "rmp", + "acsc", + "pln", + "kcbt", + "smxon", + "rmxon", + "smam", + "rmam", + "xonc", + "xoffc", + "enacs", + "smln", + "rmln", + "kbeg", + "kcan", + "kclo", + "kcmd", + "kcpy", + "kcrt", + "kend", + "kent", + "kext", + "kfnd", + "khlp", + "kmrk", + "kmsg", + "kmov", + "knxt", + "kopn", + "kopt", + "kprv", + "kprt", + "krdo", + "kref", + "krfr", + "krpl", + "krst", + "kres", + "ksav", + "kspd", + "kund", + "kBEG", + "kCAN", + "kCMD", + "kCPY", + "kCRT", + "kDC", + "kDL", + "kslt", + "kEND", + "kEOL", + "kEXT", + "kFND", + "kHLP", + "kHOM", + "kIC", + "kLFT", + "kMSG", + "kMOV", + "kNXT", + "kOPT", + "kPRV", + "kPRT", + "kRDO", + "kRPL", + "kRIT", + "kRES", + "kSAV", + "kSPD", + "kUND", + "rfi", + "kf11", + "kf12", + "kf13", + "kf14", + "kf15", + "kf16", + "kf17", + "kf18", + "kf19", + "kf20", + "kf21", + "kf22", + "kf23", + "kf24", + "kf25", + "kf26", + "kf27", + "kf28", + "kf29", + "kf30", + "kf31", + "kf32", + "kf33", + "kf34", + "kf35", + "kf36", + "kf37", + "kf38", + "kf39", + "kf40", + "kf41", + "kf42", + "kf43", + "kf44", + "kf45", + "kf46", + "kf47", + "kf48", + "kf49", + "kf50", + "kf51", + "kf52", + "kf53", + "kf54", + "kf55", + "kf56", + "kf57", + "kf58", + "kf59", + "kf60", + "kf61", + "kf62", + "kf63", + "el1", + "mgc", + "smgl", + "smgr", + "fln", + "sclk", + "dclk", + "rmclk", + "cwin", + "wingo", + "hup", + "dial", + "qdial", + "tone", + "pulse", + "hook", + "pause", + "wait", + "u0", + "u1", + "u2", + "u3", + "u4", + "u5", + "u6", + "u7", + "u8", + "u9", + "op", + "oc", + "initc", + "initp", + "scp", + "setf", + "setb", + "cpi", + "lpi", + "chr", + "cvr", + "defc", + "swidm", + "sdrfq", + "sitm", + "slm", + "smicm", + "snlq", + "snrmq", + "sshm", + "ssubm", + "ssupm", + "sum", + "rwidm", + "ritm", + "rlm", + "rmicm", + "rshm", + "rsubm", + "rsupm", + "rum", + "mhpa", + "mcud1", + "mcub1", + "mcuf1", + "mvpa", + "mcuu1", + "porder", + "mcud", + "mcub", + "mcuf", + "mcuu", + "scs", + "smgb", + "smgbp", + "smglp", + "smgrp", + "smgt", + "smgtp", + "sbim", + "scsd", + "rbim", + "rcsd", + "subcs", + "supcs", + "docr", + "zerom", + "csnm", + "kmous", + "minfo", + "reqmp", + "getm", + "setaf", + "setab", + "pfxl", + "devt", + "csin", + "s0ds", + "s1ds", + "s2ds", + "s3ds", + "smglr", + "smgtb", + "birep", + "binel", + "bicr", + "colornm", + "defbi", + "endbi", + "setcolor", + "slines", + "dispc", + "smpch", + "rmpch", + "smsc", + "rmsc", + "pctrm", + "scesc", + "scesa", + "ehhlm", + "elhlm", + "elohlm", + "erhlm", + "ethlm", + "evhlm", + "sgr1", + "slength", + "OTi2", + "OTrs", + "OTnl", + "OTbc", + "OTko", + "OTma", + "OTG2", + "OTG3", + "OTG1", + "OTG4", + "OTGR", + "OTGL", + "OTGU", + "OTGD", + "OTGH", + "OTGV", + "OTGC", + "meml", + "memu", + "box1", + + (NCURSES_CONST char *)0, +}; + +DCL(strfnames) = { + "back_tab", + "bell", + "carriage_return", + "change_scroll_region", + "clear_all_tabs", + "clear_screen", + "clr_eol", + "clr_eos", + "column_address", + "command_character", + "cursor_address", + "cursor_down", + "cursor_home", + "cursor_invisible", + "cursor_left", + "cursor_mem_address", + "cursor_normal", + "cursor_right", + "cursor_to_ll", + "cursor_up", + "cursor_visible", + "delete_character", + "delete_line", + "dis_status_line", + "down_half_line", + "enter_alt_charset_mode", + "enter_blink_mode", + "enter_bold_mode", + "enter_ca_mode", + "enter_delete_mode", + "enter_dim_mode", + "enter_insert_mode", + "enter_secure_mode", + "enter_protected_mode", + "enter_reverse_mode", + "enter_standout_mode", + "enter_underline_mode", + "erase_chars", + "exit_alt_charset_mode", + "exit_attribute_mode", + "exit_ca_mode", + "exit_delete_mode", + "exit_insert_mode", + "exit_standout_mode", + "exit_underline_mode", + "flash_screen", + "form_feed", + "from_status_line", + "init_1string", + "init_2string", + "init_3string", + "init_file", + "insert_character", + "insert_line", + "insert_padding", + "key_backspace", + "key_catab", + "key_clear", + "key_ctab", + "key_dc", + "key_dl", + "key_down", + "key_eic", + "key_eol", + "key_eos", + "key_f0", + "key_f1", + "key_f10", + "key_f2", + "key_f3", + "key_f4", + "key_f5", + "key_f6", + "key_f7", + "key_f8", + "key_f9", + "key_home", + "key_ic", + "key_il", + "key_left", + "key_ll", + "key_npage", + "key_ppage", + "key_right", + "key_sf", + "key_sr", + "key_stab", + "key_up", + "keypad_local", + "keypad_xmit", + "lab_f0", + "lab_f1", + "lab_f10", + "lab_f2", + "lab_f3", + "lab_f4", + "lab_f5", + "lab_f6", + "lab_f7", + "lab_f8", + "lab_f9", + "meta_off", + "meta_on", + "newline", + "pad_char", + "parm_dch", + "parm_delete_line", + "parm_down_cursor", + "parm_ich", + "parm_index", + "parm_insert_line", + "parm_left_cursor", + "parm_right_cursor", + "parm_rindex", + "parm_up_cursor", + "pkey_key", + "pkey_local", + "pkey_xmit", + "print_screen", + "prtr_off", + "prtr_on", + "repeat_char", + "reset_1string", + "reset_2string", + "reset_3string", + "reset_file", + "restore_cursor", + "row_address", + "save_cursor", + "scroll_forward", + "scroll_reverse", + "set_attributes", + "set_tab", + "set_window", + "tab", + "to_status_line", + "underline_char", + "up_half_line", + "init_prog", + "key_a1", + "key_a3", + "key_b2", + "key_c1", + "key_c3", + "prtr_non", + "char_padding", + "acs_chars", + "plab_norm", + "key_btab", + "enter_xon_mode", + "exit_xon_mode", + "enter_am_mode", + "exit_am_mode", + "xon_character", + "xoff_character", + "ena_acs", + "label_on", + "label_off", + "key_beg", + "key_cancel", + "key_close", + "key_command", + "key_copy", + "key_create", + "key_end", + "key_enter", + "key_exit", + "key_find", + "key_help", + "key_mark", + "key_message", + "key_move", + "key_next", + "key_open", + "key_options", + "key_previous", + "key_print", + "key_redo", + "key_reference", + "key_refresh", + "key_replace", + "key_restart", + "key_resume", + "key_save", + "key_suspend", + "key_undo", + "key_sbeg", + "key_scancel", + "key_scommand", + "key_scopy", + "key_screate", + "key_sdc", + "key_sdl", + "key_select", + "key_send", + "key_seol", + "key_sexit", + "key_sfind", + "key_shelp", + "key_shome", + "key_sic", + "key_sleft", + "key_smessage", + "key_smove", + "key_snext", + "key_soptions", + "key_sprevious", + "key_sprint", + "key_sredo", + "key_sreplace", + "key_sright", + "key_srsume", + "key_ssave", + "key_ssuspend", + "key_sundo", + "req_for_input", + "key_f11", + "key_f12", + "key_f13", + "key_f14", + "key_f15", + "key_f16", + "key_f17", + "key_f18", + "key_f19", + "key_f20", + "key_f21", + "key_f22", + "key_f23", + "key_f24", + "key_f25", + "key_f26", + "key_f27", + "key_f28", + "key_f29", + "key_f30", + "key_f31", + "key_f32", + "key_f33", + "key_f34", + "key_f35", + "key_f36", + "key_f37", + "key_f38", + "key_f39", + "key_f40", + "key_f41", + "key_f42", + "key_f43", + "key_f44", + "key_f45", + "key_f46", + "key_f47", + "key_f48", + "key_f49", + "key_f50", + "key_f51", + "key_f52", + "key_f53", + "key_f54", + "key_f55", + "key_f56", + "key_f57", + "key_f58", + "key_f59", + "key_f60", + "key_f61", + "key_f62", + "key_f63", + "clr_bol", + "clear_margins", + "set_left_margin", + "set_right_margin", + "label_format", + "set_clock", + "display_clock", + "remove_clock", + "create_window", + "goto_window", + "hangup", + "dial_phone", + "quick_dial", + "tone", + "pulse", + "flash_hook", + "fixed_pause", + "wait_tone", + "user0", + "user1", + "user2", + "user3", + "user4", + "user5", + "user6", + "user7", + "user8", + "user9", + "orig_pair", + "orig_colors", + "initialize_color", + "initialize_pair", + "set_color_pair", + "set_foreground", + "set_background", + "change_char_pitch", + "change_line_pitch", + "change_res_horz", + "change_res_vert", + "define_char", + "enter_doublewide_mode", + "enter_draft_quality", + "enter_italics_mode", + "enter_leftward_mode", + "enter_micro_mode", + "enter_near_letter_quality", + "enter_normal_quality", + "enter_shadow_mode", + "enter_subscript_mode", + "enter_superscript_mode", + "enter_upward_mode", + "exit_doublewide_mode", + "exit_italics_mode", + "exit_leftward_mode", + "exit_micro_mode", + "exit_shadow_mode", + "exit_subscript_mode", + "exit_superscript_mode", + "exit_upward_mode", + "micro_column_address", + "micro_down", + "micro_left", + "micro_right", + "micro_row_address", + "micro_up", + "order_of_pins", + "parm_down_micro", + "parm_left_micro", + "parm_right_micro", + "parm_up_micro", + "select_char_set", + "set_bottom_margin", + "set_bottom_margin_parm", + "set_left_margin_parm", + "set_right_margin_parm", + "set_top_margin", + "set_top_margin_parm", + "start_bit_image", + "start_char_set_def", + "stop_bit_image", + "stop_char_set_def", + "subscript_characters", + "superscript_characters", + "these_cause_cr", + "zero_motion", + "char_set_names", + "key_mouse", + "mouse_info", + "req_mouse_pos", + "get_mouse", + "set_a_foreground", + "set_a_background", + "pkey_plab", + "device_type", + "code_set_init", + "set0_des_seq", + "set1_des_seq", + "set2_des_seq", + "set3_des_seq", + "set_lr_margin", + "set_tb_margin", + "bit_image_repeat", + "bit_image_newline", + "bit_image_carriage_return", + "color_names", + "define_bit_image_region", + "end_bit_image_region", + "set_color_band", + "set_page_length", + "display_pc_char", + "enter_pc_charset_mode", + "exit_pc_charset_mode", + "enter_scancode_mode", + "exit_scancode_mode", + "pc_term_options", + "scancode_escape", + "alt_scancode_esc", + "enter_horizontal_hl_mode", + "enter_left_hl_mode", + "enter_low_hl_mode", + "enter_right_hl_mode", + "enter_top_hl_mode", + "enter_vertical_hl_mode", + "set_a_attributes", + "set_pglen_inch", + "termcap_init2", + "termcap_reset", + "linefeed_if_not_lf", + "backspace_if_not_bs", + "other_non_function_keys", + "arrow_key_map", + "acs_ulcorner", + "acs_llcorner", + "acs_urcorner", + "acs_lrcorner", + "acs_ltee", + "acs_rtee", + "acs_btee", + "acs_ttee", + "acs_hline", + "acs_vline", + "acs_plus", + "memory_lock", + "memory_unlock", + "box_chars_1", + + (NCURSES_CONST char *)0, +}; + + +#endif /* BROKEN_LINKER */ diff --git a/third_party/ncurses/nc_access.h b/third_party/ncurses/nc_access.h new file mode 100644 index 000000000..63d09798c --- /dev/null +++ b/third_party/ncurses/nc_access.h @@ -0,0 +1,80 @@ +/**************************************************************************** + * Copyright 2021 Thomas E. Dickey * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* $Id: nc_access.h,v 1.2 2021/07/10 22:07:06 tom Exp $ */ + +#ifndef NC_ACCESS_included +#define NC_ACCESS_included 1 +/* *INDENT-OFF* */ + +#include "ncurses_cfg.h" +#include "curses.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Turn off this symbol to limit access to environment variables when root. + */ +#ifdef USE_ROOT_ENVIRON + +#define use_terminfo_vars() 1 + +#else + +#define use_terminfo_vars() _nc_env_access() +extern NCURSES_EXPORT(int) _nc_env_access (void); + +#endif + +/* + * Turn off this symbol to limit access to files when running setuid. + */ +#ifdef USE_ROOT_ACCESS + +#define safe_fopen(name,mode) fopen(name,mode) +#define safe_open3(name,flags,mode) open(name,flags,mode) + +#else + +#define safe_fopen(name,mode) fopen(name,mode) +#define safe_open3(name,flags,mode) open(name,flags,mode) +extern NCURSES_EXPORT(FILE *) _nc_safe_fopen (const char *, const char *); +extern NCURSES_EXPORT(int) _nc_safe_open3 (const char *, int, mode_t); + +#endif + +#ifdef __cplusplus +} +#endif + +/* *INDENT-ON* */ + +#endif /* NC_ACCESS_included */ diff --git a/third_party/ncurses/nc_alloc.h b/third_party/ncurses/nc_alloc.h new file mode 100644 index 000000000..5facc6809 --- /dev/null +++ b/third_party/ncurses/nc_alloc.h @@ -0,0 +1,127 @@ +/**************************************************************************** + * Copyright 2019-2020,2021 Thomas E. Dickey * + * Copyright 1998-2013,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1996-on * + ****************************************************************************/ +/* $Id: nc_alloc.h,v 1.30 2021/11/20 23:33:38 tom Exp $ */ + +#ifndef NC_ALLOC_included +#define NC_ALLOC_included 1 +/* *INDENT-OFF* */ + +#include "ncurses_cfg.h" +#include "curses.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(HAVE_LIBDMALLOC) && HAVE_LIBDMALLOC +#include +#undef strndup /* workaround for #define in GLIBC 2.7 */ +#include /* Gray Watson's library */ +#else +#undef HAVE_LIBDMALLOC +#define HAVE_LIBDMALLOC 0 +#endif + +#if defined(HAVE_LIBDBMALLOC) && HAVE_LIBDBMALLOC +#include /* Conor Cahill's library */ +#else +#undef HAVE_LIBDBMALLOC +#define HAVE_LIBDBMALLOC 0 +#endif + +#if defined(HAVE_LIBMPATROL) && HAVE_LIBMPATROL +#include /* Memory-Patrol library */ +#else +#undef HAVE_LIBMPATROL +#define HAVE_LIBMPATROL 0 +#endif + +#ifndef NO_LEAKS +#define NO_LEAKS 0 +#endif + +#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS +#define HAVE_NC_FREEALL 1 +struct termtype; +extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_DEPRECATED("use exit_terminfo"); + +#ifdef NCURSES_INTERNALS +extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_tic(int); +extern void _nc_leaks_dump_entry(void); +extern NCURSES_EXPORT(void) _nc_leaks_tic(void); + +#if NCURSES_SP_FUNCS +extern GCC_NORETURN NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int); +#endif +extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_and_exit(int); + +#else /* !NCURSES_INTERNALS */ +extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_DEPRECATED("use exit_curses"); +#endif + +#define ExitProgram(code) exit_curses(code) + +#else +extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_DEPRECATED("use exit_curses"); +#endif /* NO_LEAKS, etc */ + +#ifndef HAVE_NC_FREEALL +#define HAVE_NC_FREEALL 0 +#endif + +#ifndef ExitProgram +#define ExitProgram(code) exit(code) +#endif + +/* doalloc.c */ +extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t); +#if !HAVE_STRDUP +#undef strdup +#define strdup _nc_strdup +extern NCURSES_EXPORT(char *) _nc_strdup(const char *); +#endif + +/* entries.c */ +extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void); + +#define typeMalloc(type,elts) (type *)malloc((size_t)(elts)*sizeof(type)) +#define typeCalloc(type,elts) (type *)calloc((size_t)(elts),sizeof(type)) +#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (size_t)(elts)*sizeof(type)) + +#ifdef __cplusplus +} +#endif + +/* *INDENT-ON* */ + +#endif /* NC_ALLOC_included */ diff --git a/third_party/ncurses/nc_mingw.h b/third_party/ncurses/nc_mingw.h new file mode 100644 index 000000000..6119fc163 --- /dev/null +++ b/third_party/ncurses/nc_mingw.h @@ -0,0 +1,89 @@ +/**************************************************************************** + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 2008-2010,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey, 2008-on * + ****************************************************************************/ + +/* $Id: nc_mingw.h,v 1.9 2020/07/11 22:13:19 tom Exp $ */ + +#ifndef NC_MINGW_H +#define NC_MINGW_H 1 + +#ifdef _WIN32 + +#ifdef WINVER +# if WINVER < 0x0501 +# error WINVER must at least be 0x0501 +# endif +#else +# define WINVER 0x0501 +#endif +#include + +#undef sleep +#define sleep(n) Sleep((n) * 1000) + +#undef gettimeofday +#define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz) + +#if HAVE_SYS_TIME_H +#include /* for struct timeval */ +#endif + +#ifdef _MSC_VER +#include /* for struct timeval */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ncurses_dll.h" + +NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *); + +#undef HAVE_GETTIMEOFDAY +#define HAVE_GETTIMEOFDAY 1 + +#define SIGHUP 1 +#define SIGKILL 9 +#define getlogin() "username" + +#undef wcwidth +#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs)) +NCURSES_EXPORT(int) _nc_wcwidth(wchar_t); + +#ifdef __cplusplus +} +#endif + +#endif /* _WIN32 */ + +#endif /* NC_MINGW_H */ diff --git a/third_party/ncurses/nc_panel.c b/third_party/ncurses/nc_panel.c new file mode 100644 index 000000000..4171097a5 --- /dev/null +++ b/third_party/ncurses/nc_panel.c @@ -0,0 +1,54 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: nc_panel.c,v 1.6 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(struct panelhook *) +NCURSES_SP_NAME(_nc_panelhook) (NCURSES_SP_DCL0) +{ + return (SP_PARM + ? &(SP_PARM->_panelHook) + : (CURRENT_SCREEN + ? &(CURRENT_SCREEN->_panelHook) + : 0)); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(struct panelhook *) +_nc_panelhook(void) +{ + return NCURSES_SP_NAME(_nc_panelhook) (CURRENT_SCREEN); +} +#endif diff --git a/third_party/ncurses/nc_panel.h b/third_party/ncurses/nc_panel.h new file mode 100644 index 000000000..654717228 --- /dev/null +++ b/third_party/ncurses/nc_panel.h @@ -0,0 +1,80 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer 1997 * + * and: Thomas E. Dickey * + ****************************************************************************/ + +/* + * $Id: nc_panel.h,v 1.10 2020/02/02 23:34:34 tom Exp $ + * + * nc_panel.h + * + * Headerfile to provide an interface for the panel layer into + * the SCREEN structure of the ncurses core. + */ + +#ifndef NC_PANEL_H +#define NC_PANEL_H 1 + +#include "ncurses_cfg.h" +#include "curses.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + struct panel; /* Forward Declaration */ + + struct panelhook + { + struct panel *top_panel; + struct panel *bottom_panel; + struct panel *stdscr_pseudo_panel; +#if NO_LEAKS + int (*destroy) (struct panel *); +#endif + }; + + struct screen; /* Forward declaration */ +/* Retrieve the panelhook of the specified screen */ + extern NCURSES_EXPORT(struct panelhook *) + _nc_panelhook (void); +#if NCURSES_SP_FUNCS + extern NCURSES_EXPORT(struct panelhook *) + NCURSES_SP_NAME(_nc_panelhook) (SCREEN *); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* NC_PANEL_H */ diff --git a/third_party/ncurses/nc_string.h b/third_party/ncurses/nc_string.h new file mode 100644 index 000000000..eabb40245 --- /dev/null +++ b/third_party/ncurses/nc_string.h @@ -0,0 +1,90 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 2012-2013,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2012 * + ****************************************************************************/ + +#ifndef STRING_HACKS_H +#define STRING_HACKS_H 1 + +#include "ncurses_cfg.h" + +#if HAVE_BSD_STRING_H +#include +#endif + +/* + * $Id: nc_string.h,v 1.9 2021/04/25 00:10:43 tom Exp $ + * + * String-hacks. Use these macros to stifle warnings on (presumably) correct + * uses of strcat, strcpy and sprintf. + * + * By the way - + * A fundamental limitation of the interfaces (and frequent issue in bug + * reports using these functions) is that sizes are passed as unsigned values + * (with associated sign-extension problems), limiting their effectiveness + * when checking for buffer overflow. + */ + +#ifdef __cplusplus +#define NCURSES_VOID /* nothing */ +#else +#define NCURSES_VOID (void) +#endif + +#if USE_STRING_HACKS && HAVE_STRLCAT +#define _nc_STRCAT(d,s,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,n)) +#define _nc_STRNCAT(d,s,m,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,m)) +#else +#define _nc_STRCAT(d,s,n) NCURSES_VOID strcat((d),(s)) +#define _nc_STRNCAT(d,s,m,n) NCURSES_VOID strncat((d),(s),(n)) +#endif + +#if USE_STRING_HACKS && HAVE_STRLCPY +#define _nc_STRCPY(d,s,n) NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n)) +#define _nc_STRNCPY(d,s,n) NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n)) +#else +#define _nc_STRCPY(d,s,n) NCURSES_VOID strcpy((d),(s)) +#define _nc_STRNCPY(d,s,n) NCURSES_VOID strncpy((d),(s),(n)) +#endif + +#if USE_STRING_HACKS && HAVE_SNPRINTF +#ifdef __cplusplus +#define _nc_SPRINTF NCURSES_VOID snprintf +#else +#define _nc_SPRINTF NCURSES_VOID (snprintf) +#endif +#define _nc_SLIMIT(n) NCURSES_CAST(size_t,n), +#else +#define _nc_SPRINTF NCURSES_VOID sprintf +#define _nc_SLIMIT(n) /* nothing */ +#endif + +#endif /* STRING_HACKS_H */ diff --git a/third_party/ncurses/nc_termios.h b/third_party/ncurses/nc_termios.h new file mode 100644 index 000000000..8255efa04 --- /dev/null +++ b/third_party/ncurses/nc_termios.h @@ -0,0 +1,168 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2011-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2011 * + ****************************************************************************/ + +/* $Id: nc_termios.h,v 1.8 2020/08/29 20:53:19 tom Exp $ */ + +#ifndef NC_TERMIOS_included +#define NC_TERMIOS_included 1 + +#include "ncurses_cfg.h" + +#if HAVE_TERMIOS_H && HAVE_TCGETATTR + +#else /* !HAVE_TERMIOS_H */ + +#if HAVE_TERMIO_H + +/* Add definitions to make termio look like termios. + * But ifdef it, since there are some implementations + * that try to do this for us in a fake . + */ +#ifndef TCSADRAIN +#define TCSADRAIN TCSETAW +#endif +#ifndef TCSAFLUSH +#define TCSAFLUSH TCSETAF +#endif +#ifndef tcsetattr +#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg) +#endif +#ifndef tcgetattr +#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg) +#endif +#ifndef cfgetospeed +#define cfgetospeed(t) ((t)->c_cflag & CBAUD) +#endif +#ifndef TCIFLUSH +#define TCIFLUSH 0 +#endif +#ifndef tcflush +#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg) +#endif + +#if defined(EXP_WIN32_DRIVER) +#undef TERMIOS +#endif + +#else /* !HAVE_TERMIO_H */ + +#if defined(_WIN32) && !defined(EXP_WIN32_DRIVER) + +/* lflag bits */ +#define ISIG 0x0001 +#define ICANON 0x0002 +#define ECHO 0x0004 +#define ECHOE 0x0008 +#define ECHOK 0x0010 +#define ECHONL 0x0020 +#define NOFLSH 0x0040 +#define IEXTEN 0x0100 + +#define VEOF 4 +#define VERASE 5 +#define VINTR 6 +#define VKILL 7 +#define VMIN 9 +#define VQUIT 10 +#define VTIME 16 + +/* iflag bits */ +#define IGNBRK 0x00001 +#define BRKINT 0x00002 +#define IGNPAR 0x00004 +#define INPCK 0x00010 +#define ISTRIP 0x00020 +#define INLCR 0x00040 +#define IGNCR 0x00080 +#define ICRNL 0x00100 +#define IXON 0x00400 +#define IXOFF 0x01000 +#define PARMRK 0x10000 + +/* oflag bits */ +#define OPOST 0x00001 + +/* cflag bits */ +#define CBAUD 0x0100f +#define B0 0x00000 +#define B50 0x00001 +#define B75 0x00002 +#define B110 0x00003 +#define B134 0x00004 +#define B150 0x00005 +#define B200 0x00006 +#define B300 0x00007 +#define B600 0x00008 +#define B1200 0x00009 +#define B1800 0x0000a +#define B2400 0x0000b +#define B4800 0x0000c +#define B9600 0x0000d + +#define CSIZE 0x00030 +#define CS8 0x00030 +#define CSTOPB 0x00040 +#define CREAD 0x00080 +#define PARENB 0x00100 +#define PARODD 0x00200 +#define HUPCL 0x00400 +#define CLOCAL 0x00800 + +#define TCIFLUSH 0 +#define TCSADRAIN 3 + +#ifndef cfgetospeed +#define cfgetospeed(t) ((t)->c_cflag & CBAUD) +#endif + +#ifndef tcsetattr +#define tcsetattr(fd, opt, arg) _nc_mingw_tcsetattr(fd, opt, arg) +#endif + +#ifndef tcgetattr +#define tcgetattr(fd, arg) _nc_mingw_tcgetattr(fd, arg) +#endif + +#ifndef tcflush +#define tcflush(fd, queue) _nc_mingw_tcflush(fd, queue) +#endif + +#undef ttyname +#define ttyname(fd) NULL + +#endif /* _WIN32 */ +#endif /* HAVE_TERMIO_H */ + +#endif /* HAVE_TERMIOS_H */ + +#endif /* NC_TERMIOS_included */ diff --git a/third_party/ncurses/nc_tparm.h b/third_party/ncurses/nc_tparm.h new file mode 100644 index 000000000..63b211d14 --- /dev/null +++ b/third_party/ncurses/nc_tparm.h @@ -0,0 +1,92 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2006-2012,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2006 * + ****************************************************************************/ + +/* $Id: nc_tparm.h,v 1.11 2020/05/27 23:33:31 tom Exp $ */ + +#ifndef NC_TPARM_included +#define NC_TPARM_included 1 + +#include "ncurses_cfg.h" +#include "curses.h" + +/* + * Cast parameters past the formatting-string for tparm() to match the + * assumption of the varargs code. + */ +#ifndef TPARM_ARG +#ifdef NCURSES_TPARM_ARG +#define TPARM_ARG NCURSES_TPARM_ARG +#else +#define TPARM_ARG long +#endif +#endif /* TPARAM_ARG */ + +#define TPARM_N(n) (TPARM_ARG)(n) + +#define TPARM_9(a,b,c,d,e,f,g,h,i,j) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h),TPARM_N(i),TPARM_N(j)) + +#if NCURSES_TPARM_VARARGS +#define TPARM_8(a,b,c,d,e,f,g,h,i) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h),TPARM_N(i)) +#define TPARM_7(a,b,c,d,e,f,g,h) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h)) +#define TPARM_6(a,b,c,d,e,f,g) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g)) +#define TPARM_5(a,b,c,d,e,f) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f)) +#define TPARM_4(a,b,c,d,e) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e)) +#define TPARM_3(a,b,c,d) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d)) +#define TPARM_2(a,b,c) tparm(a,TPARM_N(b),TPARM_N(c)) +#define TPARM_1(a,b) tparm(a,TPARM_N(b)) +#define TPARM_0(a) tparm(a) +#else +#define TPARM_8(a,b,c,d,e,f,g,h,i) TPARM_9(a,b,c,d,e,f,g,h,i,0) +#define TPARM_7(a,b,c,d,e,f,g,h) TPARM_8(a,b,c,d,e,f,g,h,0) +#define TPARM_6(a,b,c,d,e,f,g) TPARM_7(a,b,c,d,e,f,g,0) +#define TPARM_5(a,b,c,d,e,f) TPARM_6(a,b,c,d,e,f,0) +#define TPARM_4(a,b,c,d,e) TPARM_5(a,b,c,d,e,0) +#define TPARM_3(a,b,c,d) TPARM_4(a,b,c,d,0) +#define TPARM_2(a,b,c) TPARM_3(a,b,c,0) +#define TPARM_1(a,b) TPARM_2(a,b,0) +#define TPARM_0(a) TPARM_1(a,0) +#endif + +#ifdef NCURSES_INTERNALS +#define TIPARM_1(s,a) _nc_tiparm(1,s,a) +#define TIPARM_2(s,a,b) _nc_tiparm(2,s,a,b) +#define TIPARM_3(s,a,b,c) _nc_tiparm(3,s,a,b,c) +#define TIPARM_4(s,a,b,c,d) _nc_tiparm(4,s,a,b,c,d) +#define TIPARM_5(s,a,b,c,d,e) _nc_tiparm(5,s,a,b,c,d,e) +#define TIPARM_6(s,a,b,c,d,e,f) _nc_tiparm(6,s,a,b,c,d,e,f) +#define TIPARM_7(s,a,b,c,d,e,f,g) _nc_tiparm(7,s,a,b,c,d,e,f,g) +#define TIPARM_8(s,a,b,c,d,e,f,g,h) _nc_tiparm(8,s,a,b,c,d,e,f,g,h) +#define TIPARM_9(s,a,b,c,d,e,f,g,h,i) _nc_tiparm(9,s,a,b,c,d,e,f,g,h,i) +#endif + +#endif /* NC_TPARM_included */ diff --git a/third_party/ncurses/nc_win32.h b/third_party/ncurses/nc_win32.h new file mode 100644 index 000000000..b0ca4836b --- /dev/null +++ b/third_party/ncurses/nc_win32.h @@ -0,0 +1,183 @@ +/**************************************************************************** + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 2008-2010,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey, 2008-on * + ****************************************************************************/ + +/* $Id: nc_win32.h,v 1.9 2020/09/13 00:17:30 tom Exp $ */ + +#ifndef NC_WIN32_H +#define NC_WIN32_H 1 + +#if defined(_WIN32) || defined(_WIN64) + +#ifndef _NC_WINDOWS +#define _NC_WINDOWS +#endif + +#ifdef TERMIOS +#error TERMIOS must not be defined on Windows +#endif + +/* We no longer support WindowsXP. + Minimum requirement is Windows Vista or Server2008, + aka Windows NT 6.0 +*/ +#ifdef WINVER +# if WINVER < 0x0600 +# error WINVER must at least be 0x0600 +# endif +#else +# define WINVER 0x0600 +#endif + +#undef _NC_CHECK_MINTTY +#if WINVER >= 0x0600 +#define _NC_CHECK_MINTTY +#endif + +#include + +#if HAVE_SYS_TIME_H +#include /* for struct timeval */ +#endif + +#ifdef _NC_MSC +#include /* for struct timeval */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ncurses_dll.h" + +#undef HAVE_GETTIMEOFDAY +#define HAVE_GETTIMEOFDAY 1 +extern NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *); + +#undef wcwidth +#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs)) +extern NCURSES_EXPORT(int) _nc_wcwidth(wchar_t); + +#ifdef EVENTLIST_2nd /* test.priv.h just needs the preceding */ + +extern NCURSES_EXPORT(void) _nc_console_size(int* Lines, int* Cols); +extern NCURSES_EXPORT(HANDLE) _nc_console_handle(int fd); +extern NCURSES_EXPORT(int) _nc_console_isatty(int fd); +extern NCURSES_EXPORT(int) _nc_console_test(int fd); +extern NCURSES_EXPORT(int) _nc_console_read(SCREEN *sp,HANDLE hdl,int *buf); +extern NCURSES_EXPORT(int) _nc_console_twait(SCREEN *, HANDLE,int,int,int * EVENTLIST_2nd(_nc_eventlist * evl)); +extern NCURSES_EXPORT(WORD) _nc_console_MapColor(bool fore, int color); +extern NCURSES_EXPORT(void) _nc_console_selectActiveHandle(void); +extern NCURSES_EXPORT(bool) _nc_console_get_SBI(void); +extern NCURSES_EXPORT(void) _nc_console_set_scrollback(bool normal, CONSOLE_SCREEN_BUFFER_INFO * info); +extern NCURSES_EXPORT(int) _nc_console_testmouse(SCREEN *,HANDLE,int EVENTLIST_2nd(_nc_eventlist*)); +extern NCURSES_EXPORT(int) _nc_console_keyok(int keycode,int flag); +extern NCURSES_EXPORT(bool) _nc_console_keyExist(int keycode); +extern NCURSES_EXPORT(bool) _nc_console_checkinit(bool initFlag, bool assumeTermInfo); +extern NCURSES_EXPORT(int) _nc_console_vt_supported(void); + +#ifdef _NC_CHECK_MINTTY +extern NCURSES_EXPORT(int) _nc_console_checkmintty(int fd, LPHANDLE pMinTTY); +#endif + +#undef VALID_TERM_ENV +#define MS_TERMINAL "ms-terminal" +#define VALID_TERM_ENV(term_env, no_terminal) \ + (term_env = (NonEmpty(term_env) \ + ? term_env \ + : (_nc_console_vt_supported() \ + ? MS_TERMINAL \ + : no_terminal)), \ + NonEmpty(term_env)) + + /* + * Various Console mode definitions + */ + + /* Flags to enable virtual Terminal processing */ +#define VT_FLAG_OUT ENABLE_VIRTUAL_TERMINAL_PROCESSING +#define VT_FLAG_IN ENABLE_VIRTUAL_TERMINAL_INPUT + + /* Default flags for input/output modes */ +#define CONMODE_IN_DEFAULT (ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT | ENABLE_WINDOW_INPUT | ENABLE_MOUSE_INPUT) +#define CONMODE_OUT_DEFAULT (ENABLE_PROCESSED_OUTPUT | DISABLE_NEWLINE_AUTO_RETURN | ENABLE_LVB_GRID_WORLDWIDE) + + /* Flags to reset from RAW/CBREAK */ +#define CONMODE_NORAW (ENABLE_PROCESSED_INPUT|ENABLE_LINE_INPUT) +#define CONMODE_NOCBREAK (ENABLE_LINE_INPUT) + + +#if defined(USE_TERM_DRIVER) && defined(USE_WIN32CON_DRIVER) +extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER; +#endif + +#define CON_NUMPAIRS 64 +typedef struct { + BOOL initialized; + BOOL buffered; + BOOL window_only; + BOOL progMode; + BOOL isMinTTY; + BOOL isTermInfoConsole; + HANDLE out; + HANDLE inp; + HANDLE hdl; + HANDLE lastOut; + int numButtons; + LPDWORD ansi_map; + LPDWORD map; + LPDWORD rmap; + WORD pairs[CON_NUMPAIRS]; + COORD origin; + CHAR_INFO *save_screen; + COORD save_size; + SMALL_RECT save_region; + CONSOLE_SCREEN_BUFFER_INFO SBI; + CONSOLE_SCREEN_BUFFER_INFO save_SBI; + CONSOLE_CURSOR_INFO save_CI; + TTY originalMode; +} ConsoleInfo; + +extern NCURSES_EXPORT_VAR(ConsoleInfo) _nc_CONSOLE; +#define WINCONSOLE _nc_CONSOLE + +#define TypeAlloca(type,count)(type*) _alloca(sizeof(type)*(size_t)(count)) + +#endif /* EVENTLIST_2nd */ + +#ifdef __cplusplus +} +#endif + +#endif /* _WIN32 || _WIN64 */ + +#endif /* NC_WIN32_H */ diff --git a/third_party/ncurses/ncurses_cfg.h b/third_party/ncurses/ncurses_cfg.h new file mode 100644 index 000000000..1b2a731c8 --- /dev/null +++ b/third_party/ncurses/ncurses_cfg.h @@ -0,0 +1,244 @@ +/* include/ncurses_cfg.h. Generated automatically by configure. */ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997-on * + ****************************************************************************/ +/* + * $Id: ncurses_cfg.hin,v 1.13 2020/03/08 12:37:59 tom Exp $ + * + * Both ncurses_cfg.h and ncurses_def.h are internal header-files used when + * building ncurses. + * + * This is a template-file used to generate the "ncurses_cfg.h" file. + * + * Rather than list every definition, the configuration script substitutes the + * definitions that it finds using 'sed'. You need a patch (original date + * 971222) to autoconf 2.12 or 2.13 to do this. + * + * See: + * https://invisible-island.net/autoconf/ + * ftp://ftp.invisible-island.net/autoconf/ + */ +#ifndef NC_CONFIG_H +#define NC_CONFIG_H + +#define PACKAGE "ncurses" +#define NCURSES_VERSION "6.4" +#define NCURSES_PATCHDATE 20221231 +#define SYSTEM_NAME "linux-musl" +#define HAVE_LONG_FILE_NAMES 1 +#define MIXEDCASE_FILENAMES 1 +#define TERMINFO_DIRS "/zip/usr/share/terminfo" +#define TERMINFO "/zip/usr/share/terminfo" +#define HAVE_BIG_CORE 1 +#define PURE_TERMINFO 1 +#define USE_HOME_TERMINFO 1 +#define USE_ROOT_ENVIRON 1 +#define USE_ROOT_ACCESS 1 +#define HAVE_UNISTD_H 1 +#define HAVE_REMOVE 1 +#define HAVE_UNLINK 1 +#define HAVE_LINK 1 +#define HAVE_SYMLINK 1 +#define USE_LINKS 1 +#define HAVE_LANGINFO_CODESET 1 +#define USE_WIDEC_SUPPORT 1 +#define NCURSES_WIDECHAR 1 +#define HAVE_WCHAR_H 1 +#define HAVE_WCTYPE_H 1 +#define HAVE_PUTWC 1 +#define HAVE_BTOWC 1 +#define HAVE_WCTOB 1 +#define HAVE_WMEMCHR 1 +#define HAVE_MBTOWC 1 +#define HAVE_WCTOMB 1 +#define HAVE_MBLEN 1 +#define HAVE_MBRLEN 1 +#define HAVE_MBRTOWC 1 +#define HAVE_WCSRTOMBS 1 +#define HAVE_MBSRTOWCS 1 +#define HAVE_WCSTOMBS 1 +#define HAVE_MBSTOWCS 1 +#define HAVE_FSEEKO 1 +#define RGB_PATH "/usr/lib64/X11/rgb.txt" +#define STDC_HEADERS 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_UNISTD_H 1 +#define SIZEOF_SIGNED_CHAR 1 +#define NCURSES_EXT_FUNCS 1 +#define HAVE_ASSUME_DEFAULT_COLORS 1 +#define HAVE_CURSES_VERSION 1 +#define HAVE_HAS_KEY 1 +#define HAVE_RESIZETERM 1 +#define HAVE_RESIZE_TERM 1 +#define HAVE_TERM_ENTRY_H 1 +#define HAVE_USE_DEFAULT_COLORS 1 +#define HAVE_USE_EXTENDED_NAMES 1 +#define HAVE_USE_SCREEN 1 +#define HAVE_USE_WINDOW 1 +#define HAVE_WRESIZE 1 +#define NCURSES_SP_FUNCS 1 +#define HAVE_TPUTS_SP 1 +#define NCURSES_EXT_COLORS 1 +#define HAVE_ALLOC_PAIR 1 +#define HAVE_INIT_EXTENDED_COLOR 1 +#define HAVE_RESET_COLOR_PAIRS 1 +#define NCURSES_EXT_PUTWIN 1 +#define NCURSES_NO_PADDING 1 +#define USE_SIGWINCH 1 +#define NCURSES_WRAP_PREFIX "_nc_" +#define USE_ASSUMED_COLOR 1 +#define USE_HASHMAP 1 +#define GCC_SCANF 1 +#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) +#define GCC_PRINTF 1 +#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) +#define GCC_UNUSED __attribute__((unused)) +#define GCC_NORETURN __attribute__((noreturn)) +#define HAVE_NC_ALLOC_H 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_MATH_FUNCS 1 +#define STDC_HEADERS 1 +#define HAVE_DIRENT_H 1 +#define TIME_WITH_SYS_TIME 1 +#define HAVE_REGEX_H_FUNCS 1 +#define HAVE_FCNTL_H 1 +#define HAVE_GETOPT_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_LOCALE_H 1 +#define HAVE_MATH_H 1 +#define HAVE_POLL_H 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_PARAM_H 1 +#define HAVE_SYS_POLL_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TIMES_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_WCTYPE_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_GETOPT_H 1 +#define HAVE_GETOPT_HEADER 1 +#define DECL_ENVIRON 1 +#define HAVE_ENVIRON 1 +#define HAVE_PUTENV 1 +#define HAVE_SETENV 1 +#define HAVE_STRDUP 1 +#define HAVE_SYS_TIME_SELECT 1 +#define SIG_ATOMIC_T volatile sig_atomic_t +#define HAVE_FPATHCONF 1 +#define HAVE_GETCWD 1 +#define HAVE_GETEGID 1 +#define HAVE_GETEUID 1 +#define HAVE_GETOPT 1 +#define HAVE_ISSETUGID 1 +#define HAVE_LOCALECONV 1 +#define HAVE_POLL 1 +#define HAVE_PUTENV 1 +#define HAVE_REMOVE 1 +#define HAVE_SELECT 1 +#define HAVE_SETBUF 1 +#define HAVE_SETBUFFER 1 +#define HAVE_SETENV 1 +#define HAVE_SETFSUID 1 +#define HAVE_SETVBUF 1 +#define HAVE_SIGACTION 1 +#define HAVE_SNPRINTF 1 +#define HAVE_STRDUP 1 +#define HAVE_STRSTR 1 +#define HAVE_SYSCONF 1 +#define HAVE_TCGETPGRP 1 +#define HAVE_TIMES 1 +#define HAVE_TSEARCH 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_ISASCII 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_TERMIOS_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_TCGETATTR 1 +#define HAVE_VSSCANF 1 +#define HAVE_UNISTD_H 1 +#define HAVE_MKSTEMP 1 +#define HAVE_SIZECHANGE 1 +#define HAVE_WORKING_POLL 1 +#define HAVE_VA_COPY 1 +#define HAVE_UNISTD_H 1 +#define HAVE_FORK 1 +#define HAVE_VFORK 1 +#define HAVE_WORKING_VFORK 1 +#define HAVE_WORKING_FORK 1 +#define USE_FOPEN_BIN_R 1 +#define USE_OPENPTY_HEADER +#define USE_XTERM_PTY 1 +#define SIZEOF_BOOL 1 +#define SIZEOF_WCHAR_T 4 +#define HAVE_SLK_COLOR 1 +/* #define HAVE_PANEL_H 1 */ +/* #define HAVE_LIBPANEL 1 */ +/* #define HAVE_MENU_H 1 */ +/* #define HAVE_LIBMENU 1 */ +/* #define HAVE_FORM_H 1 */ +/* #define HAVE_LIBFORM 1 */ +#define NCURSES_PATHSEP ':' +#define NCURSES_VERSION_STRING "6.4.20221231" +#define NCURSES_OSPEED_COMPAT 1 +#define HAVE_CURSES_DATA_BOOLNAMES 1 + +#include "ncurses_def.h" + + /* The C compiler may not treat these properly but C++ has to */ +#ifdef __cplusplus +#undef const +#undef inline +#endif + + /* On HP-UX, the C compiler doesn't grok mbstate_t without + -D_XOPEN_SOURCE=500. However, this causes problems on + IRIX. So, we #define mbstate_t to int in configure.in + only for the C compiler if needed. */ +#ifndef __cplusplus +#ifdef NEED_MBSTATE_T_DEF +#define mbstate_t int +#endif +#endif + +/* + * vile:cmode + */ +#endif /* NC_CONFIG_H */ diff --git a/third_party/ncurses/ncurses_def.h b/third_party/ncurses/ncurses_def.h new file mode 100644 index 000000000..9b3688cbb --- /dev/null +++ b/third_party/ncurses/ncurses_def.h @@ -0,0 +1,948 @@ +/* + * This file is generated by ./MKncurses_def.sh + */ + +#ifndef NC_DEFINE_H +#define NC_DEFINE_H 1 + +#ifndef BROKEN_LINKER +#define BROKEN_LINKER 0 +#endif + +#ifndef BSD_TPUTS +#define BSD_TPUTS 0 +#endif + +#ifndef CGETENT_CONST +#define CGETENT_CONST /* nothing */ +#endif + +#ifndef CPP_HAS_PARAM_INIT +#define CPP_HAS_PARAM_INIT 0 +#endif + +#ifndef CURSES_ACS_ARRAY +#define CURSES_ACS_ARRAY acs_map +#endif + +#ifndef CURSES_WACS_ARRAY +#define CURSES_WACS_ARRAY _nc_wacs +#endif + +#ifndef DECL_ERRNO +#define DECL_ERRNO 0 +#endif + +#ifndef ETIP_NEEDS_MATH_H +#define ETIP_NEEDS_MATH_H 0 +#endif + +#ifndef GCC_NORETURN +#define GCC_NORETURN /* nothing */ +#endif + +#ifndef GCC_UNUSED +#define GCC_UNUSED /* nothing */ +#endif + +#ifndef HAVE_ALLOC_PAIR +#define HAVE_ALLOC_PAIR 0 +#endif + +#ifndef HAVE_ASSUME_DEFAULT_COLORS +#define HAVE_ASSUME_DEFAULT_COLORS 0 +#endif + +#ifndef HAVE_BIG_CORE +#define HAVE_BIG_CORE 0 +#endif + +#ifndef HAVE_BSD_CGETENT +#define HAVE_BSD_CGETENT 0 +#endif + +#ifndef HAVE_BSD_SIGNAL_H +#define HAVE_BSD_SIGNAL_H 0 +#endif + +#ifndef HAVE_BSD_STRING_H +#define HAVE_BSD_STRING_H 0 +#endif + +#ifndef HAVE_BTOWC +#define HAVE_BTOWC 0 +#endif + +#ifndef HAVE_BUILTIN_H +#define HAVE_BUILTIN_H 0 +#endif + +#ifndef HAVE_CHGAT +#define HAVE_CHGAT 1 +#endif + +#ifndef HAVE_COLOR_CONTENT +#define HAVE_COLOR_CONTENT 1 +#endif + +#ifndef HAVE_COLOR_SET +#define HAVE_COLOR_SET 1 +#endif + +#ifndef HAVE_CONSISTENT_GETENV +#define HAVE_CONSISTENT_GETENV 0 +#endif + +#ifndef HAVE_COPYWIN +#define HAVE_COPYWIN 1 +#endif + +#ifndef HAVE_CURSCR +#define HAVE_CURSCR 1 +#endif + +#ifndef HAVE_CURSES_DATA_TABSIZE +#define HAVE_CURSES_DATA_TABSIZE 1 +#endif + +#ifndef HAVE_CURSES_DATA_TTYTYPE +#define HAVE_CURSES_DATA_TTYTYPE 1 +#endif + +#ifndef HAVE_CURSES_TRACE +#define HAVE_CURSES_TRACE 1 +#endif + +#ifndef HAVE_DELSCREEN +#define HAVE_DELSCREEN 1 +#endif + +#ifndef HAVE_DERWIN +#define HAVE_DERWIN 1 +#endif + +#ifndef HAVE_DIRENT_H +#define HAVE_DIRENT_H 0 +#endif + +#ifndef HAVE_DUPWIN +#define HAVE_DUPWIN 1 +#endif + +#ifndef HAVE_ERRNO +#define HAVE_ERRNO 0 +#endif + +#ifndef HAVE_EXIT_CURSES +#define HAVE_EXIT_CURSES 1 +#endif + +#ifndef HAVE_EXIT_TERMINFO +#define HAVE_EXIT_TERMINFO 1 +#endif + +#ifndef HAVE_FCNTL_H +#define HAVE_FCNTL_H 0 +#endif + +#ifndef HAVE_FILTER +#define HAVE_FILTER 1 +#endif + +#ifndef HAVE_FORM_H +#define HAVE_FORM_H 0 +#endif + +#ifndef HAVE_FPATHCONF +#define HAVE_FPATHCONF 0 +#endif + +#ifndef HAVE_GETBEGX +#define HAVE_GETBEGX 1 +#endif + +#ifndef HAVE_GETCURX +#define HAVE_GETCURX 1 +#endif + +#ifndef HAVE_GETCWD +#define HAVE_GETCWD 0 +#endif + +#ifndef HAVE_GETEGID +#define HAVE_GETEGID 0 +#endif + +#ifndef HAVE_GETEUID +#define HAVE_GETEUID 0 +#endif + +#ifndef HAVE_GETMAXX +#define HAVE_GETMAXX 1 +#endif + +#ifndef HAVE_GETNSTR +#define HAVE_GETNSTR 0 +#endif + +#ifndef HAVE_GETOPT_H +#define HAVE_GETOPT_H 0 +#endif + +#ifndef HAVE_GETPARX +#define HAVE_GETPARX 1 +#endif + +#ifndef HAVE_GETTIMEOFDAY +#define HAVE_GETTIMEOFDAY 0 +#endif + +#ifndef HAVE_GETTTYNAM +#define HAVE_GETTTYNAM 0 +#endif + +#ifndef HAVE_GETWIN +#define HAVE_GETWIN 1 +#endif + +#ifndef HAVE_GPM_H +#define HAVE_GPM_H 0 +#endif + +#ifndef HAVE_GPP_BUILTIN_H +#define HAVE_GPP_BUILTIN_H 0 +#endif + +#ifndef HAVE_GXX_BUILTIN_H +#define HAVE_GXX_BUILTIN_H 0 +#endif + +#ifndef HAVE_HALFDELAY +#define HAVE_HALFDELAY 1 +#endif + +#ifndef HAVE_HAS_KEY +#define HAVE_HAS_KEY 0 +#endif + +#ifndef HAVE_INIT_EXTENDED_COLOR +#define HAVE_INIT_EXTENDED_COLOR 0 +#endif + +#ifndef HAVE_INTTYPES_H +#define HAVE_INTTYPES_H 0 +#endif + +#ifndef HAVE_IOSTREAM +#define HAVE_IOSTREAM 0 +#endif + +#ifndef HAVE_ISASCII +#define HAVE_ISASCII 0 +#endif + +#ifndef HAVE_ISSETUGID +#define HAVE_ISSETUGID 0 +#endif + +#ifndef HAVE_LANGINFO_CODESET +#define HAVE_LANGINFO_CODESET 0 +#endif + +#ifndef HAVE_LIBC_H +#define HAVE_LIBC_H 0 +#endif + +#ifndef HAVE_LIBDBMALLOC +#define HAVE_LIBDBMALLOC 0 +#endif + +#ifndef HAVE_LIBDMALLOC +#define HAVE_LIBDMALLOC 0 +#endif + +#ifndef HAVE_LIBFORM +#define HAVE_LIBFORM 0 +#endif + +#ifndef HAVE_LIBGPM +#define HAVE_LIBGPM 0 +#endif + +#ifndef HAVE_LIBMENU +#define HAVE_LIBMENU 0 +#endif + +#ifndef HAVE_LIBMPATROL +#define HAVE_LIBMPATROL 0 +#endif + +#ifndef HAVE_LIBPANEL +#define HAVE_LIBPANEL 0 +#endif + +#ifndef HAVE_LIB_PCRE2 +#define HAVE_LIB_PCRE2 0 +#endif + +#ifndef HAVE_LIMITS_H +#define HAVE_LIMITS_H 0 +#endif + +#ifndef HAVE_LINK +#define HAVE_LINK 0 +#endif + +#ifndef HAVE_LOCALECONV +#define HAVE_LOCALECONV 0 +#endif + +#ifndef HAVE_LOCALE_H +#define HAVE_LOCALE_H 0 +#endif + +#ifndef HAVE_LONG_FILE_NAMES +#define HAVE_LONG_FILE_NAMES 0 +#endif + +#ifndef HAVE_MATH_FUNCS +#define HAVE_MATH_FUNCS 0 +#endif + +#ifndef HAVE_MATH_H +#define HAVE_MATH_H 0 +#endif + +#ifndef HAVE_MBLEN +#define HAVE_MBLEN 0 +#endif + +#ifndef HAVE_MBRLEN +#define HAVE_MBRLEN 0 +#endif + +#ifndef HAVE_MBRTOWC +#define HAVE_MBRTOWC 0 +#endif + +#ifndef HAVE_MBSRTOWCS +#define HAVE_MBSRTOWCS 0 +#endif + +#ifndef HAVE_MBSTOWCS +#define HAVE_MBSTOWCS 0 +#endif + +#ifndef HAVE_MBTOWC +#define HAVE_MBTOWC 0 +#endif + +#ifndef HAVE_MENU_H +#define HAVE_MENU_H 0 +#endif + +#ifndef HAVE_MKSTEMP +#define HAVE_MKSTEMP 0 +#endif + +#ifndef HAVE_MVDERWIN +#define HAVE_MVDERWIN 1 +#endif + +#ifndef HAVE_MVVLINE +#define HAVE_MVVLINE 1 +#endif + +#ifndef HAVE_MVWIN +#define HAVE_MVWIN 1 +#endif + +#ifndef HAVE_MVWVLINE +#define HAVE_MVWVLINE 1 +#endif + +#ifndef HAVE_NANOSLEEP +#define HAVE_NANOSLEEP 0 +#endif + +#ifndef HAVE_NC_ALLOC_H +#define HAVE_NC_ALLOC_H 0 +#endif + +#ifndef HAVE_NEWPAD +#define HAVE_NEWPAD 1 +#endif + +#ifndef HAVE_PANEL_H +#define HAVE_PANEL_H 0 +#endif + +#ifndef HAVE_PATH_TTYS +#define HAVE_PATH_TTYS 0 +#endif + +#ifndef HAVE_PCRE2POSIX_H +#define HAVE_PCRE2POSIX_H 0 +#endif + +#ifndef HAVE_PCREPOSIX_H +#define HAVE_PCREPOSIX_H 0 +#endif + +#ifndef HAVE_POLL +#define HAVE_POLL 0 +#endif + +#ifndef HAVE_POLL_H +#define HAVE_POLL_H 0 +#endif + +#ifndef HAVE_PURIFY +#define HAVE_PURIFY 0 +#endif + +#ifndef HAVE_PUTENV +#define HAVE_PUTENV 0 +#endif + +#ifndef HAVE_PUTWC +#define HAVE_PUTWC 0 +#endif + +#ifndef HAVE_PUTWIN +#define HAVE_PUTWIN 1 +#endif + +#ifndef HAVE_REGEXPR_H_FUNCS +#define HAVE_REGEXPR_H_FUNCS 0 +#endif + +#ifndef HAVE_REGEXP_H_FUNCS +#define HAVE_REGEXP_H_FUNCS 0 +#endif + +#ifndef HAVE_REGEX_H_FUNCS +#define HAVE_REGEX_H_FUNCS 0 +#endif + +#ifndef HAVE_REMOVE +#define HAVE_REMOVE 0 +#endif + +#ifndef HAVE_RESET_COLOR_PAIRS +#define HAVE_RESET_COLOR_PAIRS 0 +#endif + +#ifndef HAVE_RESIZETERM +#define HAVE_RESIZETERM 0 +#endif + +#ifndef HAVE_RESIZE_TERM +#define HAVE_RESIZE_TERM 0 +#endif + +#ifndef HAVE_RESTARTTERM +#define HAVE_RESTARTTERM 1 +#endif + +#ifndef HAVE_RIPOFFLINE +#define HAVE_RIPOFFLINE 1 +#endif + +#ifndef HAVE_SCR_DUMP +#define HAVE_SCR_DUMP 1 +#endif + +#ifndef HAVE_SELECT +#define HAVE_SELECT 0 +#endif + +#ifndef HAVE_SETBUF +#define HAVE_SETBUF 0 +#endif + +#ifndef HAVE_SETBUFFER +#define HAVE_SETBUFFER 0 +#endif + +#ifndef HAVE_SETFSUID +#define HAVE_SETFSUID 0 +#endif + +#ifndef HAVE_SETENV +#define HAVE_SETENV 0 +#endif + +#ifndef HAVE_SETUPTERM +#define HAVE_SETUPTERM 1 +#endif + +#ifndef HAVE_SETVBUF +#define HAVE_SETVBUF 0 +#endif + +#ifndef HAVE_SGTTY_H +#define HAVE_SGTTY_H 0 +#endif + +#ifndef HAVE_SIGACTION +#define HAVE_SIGACTION 0 +#endif + +#ifndef HAVE_SIGVEC +#define HAVE_SIGVEC 0 +#endif + +#ifndef HAVE_SIZECHANGE +#define HAVE_SIZECHANGE 0 +#endif + +#ifndef HAVE_SLK_COLOR +#define HAVE_SLK_COLOR 0 +#endif + +#ifndef HAVE_SLK_INIT +#define HAVE_SLK_INIT 1 +#endif + +#ifndef HAVE_SNPRINTF +#define HAVE_SNPRINTF 0 +#endif + +#ifndef HAVE_STDINT_H +#define HAVE_STDINT_H 0 +#endif + +#ifndef HAVE_STRDUP +#define HAVE_STRDUP 0 +#endif + +#ifndef HAVE_STRLCAT +#define HAVE_STRLCAT 0 +#endif + +#ifndef HAVE_STRLCPY +#define HAVE_STRLCPY 0 +#endif + +#ifndef HAVE_STRSTR +#define HAVE_STRSTR 0 +#endif + +#ifndef HAVE_SYMLINK +#define HAVE_SYMLINK 0 +#endif + +#ifndef HAVE_SYSCONF +#define HAVE_SYSCONF 0 +#endif + +#ifndef HAVE_SYS_BSDTYPES_H +#define HAVE_SYS_BSDTYPES_H 0 +#endif + +#ifndef HAVE_SYS_IOCTL_H +#define HAVE_SYS_IOCTL_H 0 +#endif + +#ifndef HAVE_SYS_PARAM_H +#define HAVE_SYS_PARAM_H 0 +#endif + +#ifndef HAVE_SYS_POLL_H +#define HAVE_SYS_POLL_H 0 +#endif + +#ifndef HAVE_SYS_SELECT_H +#define HAVE_SYS_SELECT_H 0 +#endif + +#ifndef HAVE_SYS_TERMIO_H +#define HAVE_SYS_TERMIO_H 0 +#endif + +#ifndef HAVE_SYS_TIMES_H +#define HAVE_SYS_TIMES_H 0 +#endif + +#ifndef HAVE_SYS_TIME_H +#define HAVE_SYS_TIME_H 0 +#endif + +#ifndef HAVE_SYS_TIME_SELECT +#define HAVE_SYS_TIME_SELECT 0 +#endif + +#ifndef HAVE_TCGETATTR +#define HAVE_TCGETATTR 0 +#endif + +#ifndef HAVE_TCGETPGRP +#define HAVE_TCGETPGRP 0 +#endif + +#ifndef HAVE_TELL +#define HAVE_TELL 0 +#endif + +#ifndef HAVE_TERMATTRS +#define HAVE_TERMATTRS 1 +#endif + +#ifndef HAVE_TERMCAP_H +#define HAVE_TERMCAP_H 1 +#endif + +#ifndef HAVE_TERMIOS_H +#define HAVE_TERMIOS_H 0 +#endif + +#ifndef HAVE_TERMIO_H +#define HAVE_TERMIO_H 0 +#endif + +#ifndef HAVE_TERMNAME +#define HAVE_TERMNAME 1 +#endif + +#ifndef HAVE_TERM_ENTRY_H +#define HAVE_TERM_ENTRY_H 1 +#endif + +#ifndef HAVE_TERM_H +#define HAVE_TERM_H 1 +#endif + +#ifndef HAVE_TGETENT +#define HAVE_TGETENT 1 +#endif + +#ifndef HAVE_TIGETNUM +#define HAVE_TIGETNUM 1 +#endif + +#ifndef HAVE_TIGETSTR +#define HAVE_TIGETSTR 1 +#endif + +#ifndef HAVE_TIMES +#define HAVE_TIMES 0 +#endif + +#ifndef HAVE_TPUTS_SP +#define HAVE_TPUTS_SP 0 +#endif + +#ifndef HAVE_TSEARCH +#define HAVE_TSEARCH 0 +#endif + +#ifndef HAVE_TYPEAHEAD +#define HAVE_TYPEAHEAD 1 +#endif + +#ifndef HAVE_TYPEINFO +#define HAVE_TYPEINFO 0 +#endif + +#ifndef HAVE_TYPE_ATTR_T +#define HAVE_TYPE_ATTR_T 0 +#endif + +#ifndef HAVE_TYPE_SIGACTION +#define HAVE_TYPE_SIGACTION 0 +#endif + +#ifndef HAVE_UNCTRL_H +#define HAVE_UNCTRL_H 1 +#endif + +#ifndef HAVE_UNGET_WCH +#define HAVE_UNGET_WCH 1 +#endif + +#ifndef HAVE_UNISTD_H +#define HAVE_UNISTD_H 0 +#endif + +#ifndef HAVE_UNLINK +#define HAVE_UNLINK 0 +#endif + +#ifndef HAVE_USE_DEFAULT_COLORS +#define HAVE_USE_DEFAULT_COLORS 0 +#endif + +#ifndef HAVE_USE_ENV +#define HAVE_USE_ENV 1 +#endif + +#ifndef HAVE_USE_EXTENDED_NAMES +#define HAVE_USE_EXTENDED_NAMES 0 +#endif + +#ifndef HAVE_USE_SCREEN +#define HAVE_USE_SCREEN 0 +#endif + +#ifndef HAVE_USE_WINDOW +#define HAVE_USE_WINDOW 0 +#endif + +#ifndef HAVE_VFSCANF +#define HAVE_VFSCANF 0 +#endif + +#ifndef HAVE_VIDPUTS +#define HAVE_VIDPUTS 1 +#endif + +#ifndef HAVE_VID_PUTS +#define HAVE_VID_PUTS 1 +#endif + +#ifndef HAVE_VSNPRINTF +#define HAVE_VSNPRINTF 0 +#endif + +#ifndef HAVE_VSSCANF +#define HAVE_VSSCANF 0 +#endif + +#ifndef HAVE_VW_PRINTW +#define HAVE_VW_PRINTW 1 +#endif + +#ifndef HAVE_WCHGAT +#define HAVE_WCHGAT 1 +#endif + +#ifndef HAVE_WCSRTOMBS +#define HAVE_WCSRTOMBS 0 +#endif + +#ifndef HAVE_WCSTOMBS +#define HAVE_WCSTOMBS 0 +#endif + +#ifndef HAVE_WCTOB +#define HAVE_WCTOB 0 +#endif + +#ifndef HAVE_WCTOMB +#define HAVE_WCTOMB 0 +#endif + +#ifndef HAVE_WCTYPE_H +#define HAVE_WCTYPE_H 0 +#endif + +#ifndef HAVE_WMEMCHR +#define HAVE_WMEMCHR 0 +#endif + +#ifndef HAVE_WINSDELLN +#define HAVE_WINSDELLN 1 +#endif + +#ifndef HAVE_WINSSTR +#define HAVE_WINSSTR 1 +#endif + +#ifndef HAVE_WORKING_POLL +#define HAVE_WORKING_POLL 0 +#endif + +#ifndef HAVE_WRESIZE +#define HAVE_WRESIZE 0 +#endif + +#ifndef HAVE_WSYNCDOWN +#define HAVE_WSYNCDOWN 1 +#endif + +#ifndef HAVE__DOSCAN +#define HAVE__DOSCAN 0 +#endif + +#ifndef HAVE__TRACEF +#define HAVE__TRACEF 0 +#endif + +#ifndef MIXEDCASE_FILENAMES +#define MIXEDCASE_FILENAMES 0 +#endif + +#ifndef NCURSES_CHAR_EQ +#define NCURSES_CHAR_EQ 0 +#endif + +#ifndef NCURSES_EXPANDED +#define NCURSES_EXPANDED 0 +#endif + +#ifndef NCURSES_EXT_COLORS +#define NCURSES_EXT_COLORS 0 +#endif + +#ifndef NCURSES_EXT_FUNCS +#define NCURSES_EXT_FUNCS 0 +#endif + +#ifndef NCURSES_EXT_PUTWIN +#define NCURSES_EXT_PUTWIN 0 +#endif + +#ifndef NCURSES_NO_PADDING +#define NCURSES_NO_PADDING 0 +#endif + +#ifndef NCURSES_OSPEED_COMPAT +#define NCURSES_OSPEED_COMPAT 0 +#endif + +#ifndef NCURSES_PATHSEP +#define NCURSES_PATHSEP ':' +#endif + +#ifndef NCURSES_WIDECHAR +#define NCURSES_WIDECHAR 0 +#endif + +#ifndef NEED_PTEM_H +#define NEED_PTEM_H 0 +#endif + +#ifndef NO_LEAKS +#define NO_LEAKS 0 +#endif + +#ifndef PURE_TERMINFO +#define PURE_TERMINFO 0 +#endif + +#ifndef STDC_HEADERS +#define STDC_HEADERS 0 +#endif + +#ifndef SVR4_ACTION +#define SVR4_ACTION 0 +#endif + +#ifndef SVR4_TERMIO +#define SVR4_TERMIO 0 +#endif + +#ifndef SYSTEM_NAME +#define SYSTEM_NAME "unknown" +#endif + +#ifndef TERMINFO +#define TERMINFO "none" +#endif + +#ifndef TERMPATH +#define TERMPATH "none" +#endif + +#ifndef TIME_WITH_SYS_TIME +#define TIME_WITH_SYS_TIME 0 +#endif + +#ifndef TYPEOF_CHTYPE +#define TYPEOF_CHTYPE 0 +#endif + +#ifndef USE_COLORFGBG +#define USE_COLORFGBG 0 +#endif + +#ifndef USE_FOPEN_BIN_R +#define USE_FOPEN_BIN_R 0 +#endif + +#ifndef USE_GETCAP +#define USE_GETCAP 0 +#endif + +#ifndef USE_GETCAP_CACHE +#define USE_GETCAP_CACHE 0 +#endif + +#ifndef USE_HARD_TABS +#define USE_HARD_TABS 0 +#endif + +#ifndef USE_HASHED_DB +#define USE_HASHED_DB 0 +#endif + +#ifndef USE_HASHMAP +#define USE_HASHMAP 0 +#endif + +#ifndef USE_HOME_TERMINFO +#define USE_HOME_TERMINFO 0 +#endif + +#ifndef USE_LINKS +#define USE_LINKS 0 +#endif + +#ifndef USE_MY_MEMMOVE +#define USE_MY_MEMMOVE 0 +#endif + +#ifndef USE_OK_BCOPY +#define USE_OK_BCOPY 0 +#endif + +#ifndef USE_PTHREADS_EINTR +#define USE_PTHREADS_EINTR 0 +#endif + +#ifndef USE_RCS_IDS +#define USE_RCS_IDS 0 +#endif + +#ifndef USE_REENTRANT +#define USE_REENTRANT 0 +#endif + +#ifndef USE_SAFE_SPRINTF +#define USE_SAFE_SPRINTF 0 +#endif + +#ifndef USE_SCROLL_HINTS +#define USE_SCROLL_HINTS 0 +#endif + +#ifndef USE_SIGWINCH +#define USE_SIGWINCH 0 +#endif + +#ifndef USE_STRING_HACKS +#define USE_STRING_HACKS 0 +#endif + +#ifndef USE_SYMLINKS +#define USE_SYMLINKS 0 +#endif + +#ifndef USE_SYSMOUSE +#define USE_SYSMOUSE 0 +#endif + +#ifndef USE_WEAK_SYMBOLS +#define USE_WEAK_SYMBOLS 0 +#endif + +#ifndef USE_WIDEC_SUPPORT +#define USE_WIDEC_SUPPORT 0 +#endif + +#ifndef USE_XMC_SUPPORT +#define USE_XMC_SUPPORT 0 +#endif + +#endif /* NC_DEFINE_H */ diff --git a/third_party/ncurses/ncurses_dll.h b/third_party/ncurses/ncurses_dll.h new file mode 100644 index 000000000..0ffd8667d --- /dev/null +++ b/third_party/ncurses/ncurses_dll.h @@ -0,0 +1,99 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2009,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ +/* $Id: ncurses_dll.h.in,v 1.17 2020/09/05 17:58:47 juergen Exp $ */ + +#ifndef NCURSES_DLL_H_incl +#define NCURSES_DLL_H_incl 1 + +/* + * MinGW gcc (unlike MSYS2 and Cygwin) should define _WIN32 and possibly _WIN64. + */ +#if defined(__MINGW64__) + +#ifndef _WIN64 +#define _WIN64 1 +#endif + +#elif defined(__MINGW32__) + +#ifndef _WIN32 +#define _WIN32 1 +#endif + +/* 2014-08-02 workaround for broken MinGW compiler. + * Oddly, only TRACE is mapped to trace - the other -D's are okay. + * suggest TDM as an alternative. + */ +#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8) + +#ifdef trace +#undef trace +#define TRACE +#endif + +#endif /* broken compiler */ + +#endif /* MingW */ + +/* + * For reentrant code, we map the various global variables into SCREEN by + * using functions to access them. + */ +#define NCURSES_PUBLIC_VAR(name) _nc_##name + +#if defined(BUILDING_NCURSES) +# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT +#else +# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT +#endif + +#define NCURSES_WRAPPED_VAR(type,name) extern NCURSES_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) + +#define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API +#define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type + +/* + * These symbols hide dllimport/dllexport, for compilers which care about it. + */ +#if defined(__CYGWIN__) || (defined(_WIN32) || defined(_WIN64)) +# if defined(NCURSES_STATIC) /* "static" here only implies "not-a-DLL" */ +# define NCURSES_EXPORT_GENERAL_IMPORT +# define NCURSES_EXPORT_GENERAL_EXPORT +# else +# define NCURSES_EXPORT_GENERAL_IMPORT __declspec(dllimport) +# define NCURSES_EXPORT_GENERAL_EXPORT __declspec(dllexport) +# endif +# define NCURSES_API __cdecl +#else +# define NCURSES_EXPORT_GENERAL_IMPORT +# define NCURSES_EXPORT_GENERAL_EXPORT +# define NCURSES_API /* FIXME: __attribute__ ((cdecl)) is only available on x86 */ +#endif + +#endif /* NCURSES_DLL_H_incl */ diff --git a/third_party/ncurses/ncurses_mingw.h b/third_party/ncurses/ncurses_mingw.h new file mode 100644 index 000000000..8b11272de --- /dev/null +++ b/third_party/ncurses/ncurses_mingw.h @@ -0,0 +1,82 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 2008-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 2008-on * + ****************************************************************************/ + +/* $Id: ncurses_mingw.h,v 1.7 2021/06/17 21:26:02 tom Exp $ */ + +/* + * This is a placeholder up to now and describes what needs to be implemented + * to support I/O to external terminals with ncurses on the Windows OS. + */ + +#ifdef _WIN32 +#ifndef _NC_MINGWH +#define _NC_MINGWH + +#define USE_CONSOLE_DRIVER 1 + +#undef TERMIOS +#define TERMIOS 1 + +typedef unsigned char cc_t; +typedef unsigned int tcflag_t; +typedef unsigned int speed_t; +typedef unsigned short otcflag_t; +typedef unsigned char ospeed_t; + +#define NCCS 18 +struct termios +{ + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +extern NCURSES_EXPORT(int) _nc_mingw_tcsetattr( + int fd, + int optional_actions, + const struct termios* arg); +extern NCURSES_EXPORT(int) _nc_mingw_tcgetattr( + int fd, + struct termios* arg); +extern NCURSES_EXPORT(int) _nc_mingw_tcflush( + int fd, + int queue); +extern NCURSES_EXPORT(void) _nc_set_term_driver(void* term); + +#endif /* _NC_MINGWH */ +#endif /* _WIN32 */ diff --git a/third_party/ncurses/new_pair.c b/third_party/ncurses/new_pair.c new file mode 100644 index 000000000..8f79a9845 --- /dev/null +++ b/third_party/ncurses/new_pair.c @@ -0,0 +1,393 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +/* new_pair.c + * + * New color-pair functions, alloc_pair and free_pair + */ + +#define NEW_PAIR_INTERNAL 1 +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +#ifdef USE_TERM_DRIVER +#define MaxColors InfoOf(SP_PARM).maxcolors +#else +#define MaxColors max_colors +#endif + +#if NCURSES_EXT_COLORS + +/* fix redefinition versys tic.h */ +#undef entry +#define entry my_entry +#undef ENTRY +#define ENTRY my_ENTRY + +#include + +#endif + +MODULE_ID("$Id: new_pair.c,v 1.23 2021/08/16 22:11:26 tom Exp $") + +#if NCURSES_EXT_COLORS + +#ifdef NEW_PAIR_DEBUG + +static int +prev_len(SCREEN *sp, int pair) +{ + int result = 1; + int base = pair; + colorpair_t *list = sp->_color_pairs; + while (list[pair].prev != base) { + result++; + pair = list[pair].prev; + } + return result; +} + +static int +next_len(SCREEN *sp, int pair) +{ + int result = 1; + int base = pair; + colorpair_t *list = sp->_color_pairs; + while (list[pair].next != base) { + result++; + pair = list[pair].next; + } + return result; +} + +/* + * Trace the contents of LRU color-pairs. + */ +static void +dumpit(SCREEN *sp, int pair, const char *tag) +{ + colorpair_t *list = sp->_color_pairs; + char bigbuf[256 * 20]; + char *p = bigbuf; + int n; + size_t have = sizeof(bigbuf); + + _nc_STRCPY(p, tag, have); + for (n = 0; n < sp->_pair_alloc; ++n) { + if (list[n].mode != cpFREE) { + p += strlen(p); + if ((size_t) (p - bigbuf) + 50 > have) + break; + _nc_SPRINTF(p, _nc_SLIMIT(have - (p - bigbuf)) + " %d%c(%d,%d)", + n, n == pair ? '@' : ':', list[n].next, list[n].prev); + } + } + T(("(%d/%d) %ld - %s", + next_len(sp, 0), + prev_len(sp, 0), + strlen(bigbuf), bigbuf)); + + if (next_len(sp, 0) != prev_len(sp, 0)) { + endwin(); + ExitProgram(EXIT_FAILURE); + } +} +#else +#define dumpit(sp, pair, tag) /* nothing */ +#endif + +static int +compare_data(const void *a, const void *b) +{ + const colorpair_t *p = (const colorpair_t *) a; + const colorpair_t *q = (const colorpair_t *) b; + return ((p->fg == q->fg) + ? (p->bg - q->bg) + : (p->fg - q->fg)); +} + +static int +_nc_find_color_pair(SCREEN *sp, int fg, int bg) +{ + colorpair_t find; + int result = -1; + + find.fg = fg; + find.bg = bg; + if (sp != 0) { + void *pp; + if ((pp = tfind(&find, &sp->_ordered_pairs, compare_data)) != 0) { + colorpair_t *temp = *(colorpair_t **) pp; + result = (int) (temp - sp->_color_pairs); + } + } + return result; +} + +static void +delink_color_pair(SCREEN *sp, int pair) +{ + colorpair_t *list = sp->_color_pairs; + int prev = list[pair].prev; + int next = list[pair].next; + + /* delink this from its current location */ + if (list[prev].next == pair && + list[next].prev == pair) { + list[prev].next = next; + list[next].prev = prev; + dumpit(sp, pair, "delinked"); + } +} + +/* + * Discard all nodes in the fast-index. + */ +NCURSES_EXPORT(void) +_nc_free_ordered_pairs(SCREEN *sp) +{ + if (sp && sp->_ordered_pairs && sp->_pair_alloc) { + int n; + for (n = 0; n < sp->_pair_alloc; ++n) { + tdelete(&sp->_color_pairs[n], &sp->_ordered_pairs, compare_data); + } + } +} + +/* + * Use this call to update the fast-index when modifying an entry in the color + * pair table. + */ +NCURSES_EXPORT(void) +_nc_reset_color_pair(SCREEN *sp, int pair, colorpair_t * next) +{ + colorpair_t *last; + + if (ValidPair(sp, pair)) { + bool used; + + ReservePairs(sp, pair); + last = &(sp->_color_pairs[pair]); + delink_color_pair(sp, pair); + if (last->mode > cpFREE && + (last->fg != next->fg || last->bg != next->bg)) { + /* remove the old entry from fast index */ + tdelete(last, &sp->_ordered_pairs, compare_data); + used = FALSE; + } else { + used = (last->mode != cpFREE); + } + if (!used) { + /* create a new entry in fast index */ + *last = *next; + tsearch(last, &sp->_ordered_pairs, compare_data); + } + } +} + +/* + * Use this call to relink the newest pair to the front of the list, keeping + * "0" first. + */ +NCURSES_EXPORT(void) +_nc_set_color_pair(SCREEN *sp, int pair, int mode) +{ + if (ValidPair(sp, pair)) { + colorpair_t *list = sp->_color_pairs; + dumpit(sp, pair, "SET_PAIR"); + list[0].mode = cpKEEP; + if (list[pair].mode <= cpFREE) + sp->_pairs_used++; + list[pair].mode = mode; + if (list[0].next != pair) { + /* link it at the front of the list */ + list[pair].next = list[0].next; + list[list[pair].next].prev = pair; + list[pair].prev = 0; + list[0].next = pair; + } + dumpit(sp, pair, "...after"); + } +} + +/* + * If we reallocate the color-pair array, we have to adjust the fast-index. + */ +NCURSES_EXPORT(void) +_nc_copy_pairs(SCREEN *sp, colorpair_t * target, colorpair_t * source, int length) +{ + int n; + for (n = 0; n < length; ++n) { + void *find = tfind(source + n, &sp->_ordered_pairs, compare_data); + if (find != 0) { + tdelete(source + n, &sp->_ordered_pairs, compare_data); + tsearch(target + n, &sp->_ordered_pairs, compare_data); + } + } +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(alloc_pair) (NCURSES_SP_DCLx int fg, int bg) +{ + int pair; + + T((T_CALLED("alloc_pair(%d,%d)"), fg, bg)); + if (SP_PARM == 0) { + pair = -1; + } else if ((pair = _nc_find_color_pair(SP_PARM, fg, bg)) < 0) { + /* + * Check if all of the slots have been used. If not, find one and + * use that. + */ + if (SP_PARM->_pairs_used + 1 < SP_PARM->_pair_limit) { + bool found = FALSE; + int hint = SP_PARM->_recent_pair; + + /* + * The linear search is done to allow mixing calls to init_pair() + * and alloc_pair(). The former can make gaps... + */ + for (pair = hint + 1; pair < SP_PARM->_pair_alloc; pair++) { + if (SP_PARM->_color_pairs[pair].mode == cpFREE) { + T(("found gap %d", pair)); + found = TRUE; + break; + } + } + if (!found && (SP_PARM->_pair_alloc < SP_PARM->_pair_limit)) { + pair = SP_PARM->_pair_alloc; + ReservePairs(SP_PARM, pair); + if (SP_PARM->_color_pairs == 0) { + pair = -1; + } else { + found = TRUE; + } + } + if (!found && SP_PARM->_color_pairs != NULL) { + for (pair = 1; pair <= hint; pair++) { + if (SP_PARM->_color_pairs[pair].mode == cpFREE) { + T(("found gap %d", pair)); + found = TRUE; + break; + } + } + } + if (found) { + SP_PARM->_recent_pair = pair; + } else { + pair = ERR; + } + } else { + /* reuse the oldest one */ + pair = SP_PARM->_color_pairs[0].prev; + T(("reusing %d", pair)); + } + + if (_nc_init_pair(SP_PARM, pair, fg, bg) == ERR) + pair = ERR; + } + returnCode(pair); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(find_pair) (NCURSES_SP_DCLx int fg, int bg) +{ + int pair; + + T((T_CALLED("find_pair(%d,%d)"), fg, bg)); + pair = _nc_find_color_pair(SP_PARM, fg, bg); + returnCode(pair); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(free_pair) (NCURSES_SP_DCLx int pair) +{ + int result = ERR; + T((T_CALLED("free_pair(%d)"), pair)); + if (ValidPair(SP_PARM, pair) && pair < SP_PARM->_pair_alloc) { + colorpair_t *cp = &(SP_PARM->_color_pairs[pair]); + if (pair != 0) { + _nc_change_pair(SP_PARM, pair); + delink_color_pair(SP_PARM, pair); + tdelete(cp, &SP_PARM->_ordered_pairs, compare_data); + cp->mode = cpFREE; + result = OK; + SP_PARM->_pairs_used--; + } + } + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +alloc_pair(int f, int b) +{ + return NCURSES_SP_NAME(alloc_pair) (CURRENT_SCREEN, f, b); +} + +NCURSES_EXPORT(int) +find_pair(int f, int b) +{ + return NCURSES_SP_NAME(find_pair) (CURRENT_SCREEN, f, b); +} + +NCURSES_EXPORT(int) +free_pair(int pair) +{ + return NCURSES_SP_NAME(free_pair) (CURRENT_SCREEN, pair); +} +#endif + +#if NO_LEAKS +NCURSES_EXPORT(void) +_nc_new_pair_leaks(SCREEN *sp) +{ + if (sp->_color_pairs) { + while (sp->_color_pairs[0].next) { + free_pair(sp->_color_pairs[0].next); + } + } +} +#endif + +#else +void _nc_new_pair(void); +void +_nc_new_pair(void) +{ +} +#endif /* NCURSES_EXT_COLORS */ diff --git a/third_party/ncurses/new_pair.h b/third_party/ncurses/new_pair.h new file mode 100644 index 000000000..17faaec16 --- /dev/null +++ b/third_party/ncurses/new_pair.h @@ -0,0 +1,139 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +/* + * Common type definitions and macros for new_pair.c, lib_color.c + * + * $Id: new_pair.h,v 1.13 2021/09/24 17:52:01 tom Exp $ + */ + +#ifndef NEW_PAIR_H +#define NEW_PAIR_H 1 +/* *INDENT-OFF* */ + +#include "ncurses_cfg.h" +#include "ncurses_dll.h" + +#include + +#undef SCREEN +#define SCREEN struct screen +SCREEN; + +#define LIMIT_TYPED(n,t) \ + (t)(((n) > MAX_OF_TYPE(t)) \ + ? MAX_OF_TYPE(t) \ + : ((n) < -MAX_OF_TYPE(t)) \ + ? -MAX_OF_TYPE(t) \ + : (n)) + +#define limit_COLOR(n) LIMIT_TYPED(n,NCURSES_COLOR_T) +#define limit_PAIRS(n) LIMIT_TYPED(n,NCURSES_PAIRS_T) + +#define MAX_XCURSES_PAIR MAX_OF_TYPE(NCURSES_PAIRS_T) + +#if NCURSES_EXT_COLORS +#define OPTIONAL_PAIR GCC_UNUSED +#define get_extended_pair(opts, color_pair) \ + if ((opts) != NULL) { \ + *(int*)(opts) = color_pair; \ + } +#define set_extended_pair(opts, color_pair) \ + if ((opts) != NULL) { \ + color_pair = *(const int*)(opts); \ + } +#else +#define OPTIONAL_PAIR /* nothing */ +#define get_extended_pair(opts, color_pair) /* nothing */ +#define set_extended_pair(opts, color_pair) \ + if ((opts) != NULL) { \ + color_pair = -1; \ + } +#endif + +#ifdef NEW_PAIR_INTERNAL + +typedef enum { + cpKEEP = -1, /* color pair 0 */ + cpFREE = 0, /* free for use */ + cpINIT = 1 /* initialized */ +} CPMODE; + +typedef struct _color_pairs +{ + int fg; + int bg; +#if NCURSES_EXT_COLORS + int mode; /* tells if the entry is allocated or free */ + int prev; /* index of previous item */ + int next; /* index of next item */ +#endif +} +colorpair_t; + +#define MakeColorPair(target,f,b) target.fg = f, target.bg = b +#define isSamePair(a,b) ((a).fg == (b).fg && (a).bg == (b).bg) +#define FORE_OF(c) (c).fg +#define BACK_OF(c) (c).bg + +/* + * Ensure that we use color pairs only when colors have been started, and also + * that the index is within the limits of the table which we allocated. + */ +#define ValidPair(sp,pair) \ + ((sp != 0) && (pair >= 0) && (pair < sp->_pair_limit) && sp->_coloron) + +#if NCURSES_EXT_COLORS +extern NCURSES_EXPORT(void) _nc_copy_pairs(SCREEN*, colorpair_t*, colorpair_t*, int); +extern NCURSES_EXPORT(void) _nc_free_ordered_pairs(SCREEN*); +extern NCURSES_EXPORT(void) _nc_reset_color_pair(SCREEN*, int, colorpair_t*); +extern NCURSES_EXPORT(void) _nc_set_color_pair(SCREEN*, int, int); +#else +#define _nc_free_ordered_pairs(sp) /* nothing */ +#define _nc_reset_color_pair(sp, pair, data) /* nothing */ +#define _nc_set_color_pair(sp, pair, mode) /* nothing */ +#endif + +#else + +typedef struct _color_pairs colorpair_t; + +#endif /* NEW_PAIR_INTERNAL */ + +#if NO_LEAKS +extern NCURSES_EXPORT(void) _nc_new_pair_leaks(SCREEN*); +#endif + +/* *INDENT-ON* */ + +#endif /* NEW_PAIR_H */ diff --git a/third_party/ncurses/obsolete.c b/third_party/ncurses/obsolete.c new file mode 100644 index 000000000..aa42fd8e8 --- /dev/null +++ b/third_party/ncurses/obsolete.c @@ -0,0 +1,240 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2013-2014,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2013-on * + ****************************************************************************/ + +/* +** Support for obsolete/unusual features. +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: obsolete.c,v 1.6 2020/02/02 23:34:34 tom Exp $") + +/* + * Obsolete entrypoint retained for binary compatibility. + */ +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_set_buffer) (NCURSES_SP_DCLx FILE *ofp, int buffered) +{ +#if NCURSES_SP_FUNCS + (void) SP_PARM; +#endif + (void) ofp; + (void) buffered; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_set_buffer(FILE *ofp, int buffered) +{ + NCURSES_SP_NAME(_nc_set_buffer) (CURRENT_SCREEN, ofp, buffered); +} +#endif + +#if !HAVE_STRDUP +NCURSES_EXPORT(char *) +_nc_strdup(const char *s) +{ + char *result = 0; + if (s != 0) { + size_t need = strlen(s); + result = malloc(need + 1); + if (result != 0) { + _nc_STRCPY(result, s, need); + } + } + return result; +} +#endif + +#if USE_MY_MEMMOVE +#define DST ((char *)s1) +#define SRC ((const char *)s2) +NCURSES_EXPORT(void *) +_nc_memmove(void *s1, const void *s2, size_t n) +{ + if (n != 0) { + if ((DST + n > SRC) && (SRC + n > DST)) { + static char *bfr; + static size_t length; + register size_t j; + if (length < n) { + length = (n * 3) / 2; + bfr = typeRealloc(char, length, bfr); + } + for (j = 0; j < n; j++) + bfr[j] = SRC[j]; + s2 = bfr; + } + while (n-- != 0) + DST[n] = SRC[n]; + } + return s1; +} +#endif /* USE_MY_MEMMOVE */ + +#ifdef EXP_XTERM_1005 +NCURSES_EXPORT(int) +_nc_conv_to_utf8(unsigned char *target, unsigned source, unsigned limit) +{ +#define CH(n) UChar((source) >> ((n) * 8)) + int rc = 0; + + if (source <= 0x0000007f) + rc = 1; + else if (source <= 0x000007ff) + rc = 2; + else if (source <= 0x0000ffff) + rc = 3; + else if (source <= 0x001fffff) + rc = 4; + else if (source <= 0x03ffffff) + rc = 5; + else /* (source <= 0x7fffffff) */ + rc = 6; + + if ((unsigned) rc > limit) { /* whatever it is, we cannot decode it */ + rc = 0; + } + + if (target != 0) { + switch (rc) { + case 1: + target[0] = CH(0); + break; + + case 2: + target[1] = UChar(0x80 | (CH(0) & 0x3f)); + target[0] = UChar(0xc0 | (CH(0) >> 6) | ((CH(1) & 0x07) << 2)); + break; + + case 3: + target[2] = UChar(0x80 | (CH(0) & 0x3f)); + target[1] = UChar(0x80 | (CH(0) >> 6) | ((CH(1) & 0x0f) << 2)); + target[0] = UChar(0xe0 | ((int) (CH(1) & 0xf0) >> 4)); + break; + + case 4: + target[3] = UChar(0x80 | (CH(0) & 0x3f)); + target[2] = UChar(0x80 | (CH(0) >> 6) | ((CH(1) & 0x0f) << 2)); + target[1] = UChar(0x80 | + ((int) (CH(1) & 0xf0) >> 4) | + ((int) (CH(2) & 0x03) << 4)); + target[0] = UChar(0xf0 | ((int) (CH(2) & 0x1f) >> 2)); + break; + + case 5: + target[4] = UChar(0x80 | (CH(0) & 0x3f)); + target[3] = UChar(0x80 | (CH(0) >> 6) | ((CH(1) & 0x0f) << 2)); + target[2] = UChar(0x80 | + ((int) (CH(1) & 0xf0) >> 4) | + ((int) (CH(2) & 0x03) << 4)); + target[1] = UChar(0x80 | (CH(2) >> 2)); + target[0] = UChar(0xf8 | (CH(3) & 0x03)); + break; + + case 6: + target[5] = UChar(0x80 | (CH(0) & 0x3f)); + target[4] = UChar(0x80 | (CH(0) >> 6) | ((CH(1) & 0x0f) << 2)); + target[3] = UChar(0x80 | (CH(1) >> 4) | ((CH(2) & 0x03) << 4)); + target[2] = UChar(0x80 | (CH(2) >> 2)); + target[1] = UChar(0x80 | (CH(3) & 0x3f)); + target[0] = UChar(0xfc | ((int) (CH(3) & 0x40) >> 6)); + break; + } + } + + return rc; /* number of bytes needed in target */ +#undef CH +} + +NCURSES_EXPORT(int) +_nc_conv_to_utf32(unsigned *target, const char *source, unsigned limit) +{ +#define CH(n) UChar((*target) >> ((n) * 8)) + int rc = 0; + int j; + unsigned mask = 0; + + /* + * Find the number of bytes we will need from the source. + */ + if ((*source & 0x80) == 0) { + rc = 1; + mask = (unsigned) *source; + } else if ((*source & 0xe0) == 0xc0) { + rc = 2; + mask = (unsigned) (*source & 0x1f); + } else if ((*source & 0xf0) == 0xe0) { + rc = 3; + mask = (unsigned) (*source & 0x0f); + } else if ((*source & 0xf8) == 0xf0) { + rc = 4; + mask = (unsigned) (*source & 0x07); + } else if ((*source & 0xfc) == 0xf8) { + rc = 5; + mask = (unsigned) (*source & 0x03); + } else if ((*source & 0xfe) == 0xfc) { + rc = 6; + mask = (unsigned) (*source & 0x01); + } + + if ((unsigned) rc > limit) { /* whatever it is, we cannot decode it */ + rc = 0; + } + + /* + * sanity-check. + */ + if (rc > 1) { + for (j = 1; j < rc; j++) { + if ((source[j] & 0xc0) != 0x80) + break; + } + if (j != rc) { + rc = 0; + } + } + + if (target != 0) { + int shift = 0; + *target = 0; + for (j = 1; j < rc; j++) { + *target |= (unsigned) (source[rc - j] & 0x3f) << shift; + shift += 6; + } + *target |= mask << shift; + } + return rc; +#undef CH +} +#endif /* EXP_XTERM_1005 */ diff --git a/third_party/ncurses/panel.h b/third_party/ncurses/panel.h new file mode 100644 index 000000000..be2b2cb35 --- /dev/null +++ b/third_party/ncurses/panel.h @@ -0,0 +1,100 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1995 * + * and: Eric S. Raymond * + * and: Juergen Pfeifer 1996-1999,2008 * + ****************************************************************************/ + +/* $Id: panel.h,v 1.14 2020/07/04 20:38:43 tom Exp $ */ + +/* panel.h -- interface file for panels library */ + +#ifndef NCURSES_PANEL_H_incl +#define NCURSES_PANEL_H_incl 1 + +#include "curses.h" + +typedef struct panel +#if !NCURSES_OPAQUE_PANEL +{ + WINDOW *win; + struct panel *below; + struct panel *above; + NCURSES_CONST void *user; +} +#endif /* !NCURSES_OPAQUE_PANEL */ +PANEL; + +#if defined(__cplusplus) +extern "C" { +#endif + +#if defined(BUILDING_PANEL) +# define PANEL_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT +#else +# define PANEL_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT +#endif + +#define PANEL_WRAPPED_VAR(type,name) extern PANEL_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) + +#define PANEL_EXPORT(type) PANEL_IMPEXP type NCURSES_API +#define PANEL_EXPORT_VAR(type) PANEL_IMPEXP type + +extern PANEL_EXPORT(WINDOW*) panel_window (const PANEL *); +extern PANEL_EXPORT(void) update_panels (void); +extern PANEL_EXPORT(int) hide_panel (PANEL *); +extern PANEL_EXPORT(int) show_panel (PANEL *); +extern PANEL_EXPORT(int) del_panel (PANEL *); +extern PANEL_EXPORT(int) top_panel (PANEL *); +extern PANEL_EXPORT(int) bottom_panel (PANEL *); +extern PANEL_EXPORT(PANEL*) new_panel (WINDOW *); +extern PANEL_EXPORT(PANEL*) panel_above (const PANEL *); +extern PANEL_EXPORT(PANEL*) panel_below (const PANEL *); +extern PANEL_EXPORT(int) set_panel_userptr (PANEL *, NCURSES_CONST void *); +extern PANEL_EXPORT(NCURSES_CONST void*) panel_userptr (const PANEL *); +extern PANEL_EXPORT(int) move_panel (PANEL *, int, int); +extern PANEL_EXPORT(int) replace_panel (PANEL *,WINDOW *); +extern PANEL_EXPORT(int) panel_hidden (const PANEL *); + +#if NCURSES_SP_FUNCS +extern PANEL_EXPORT(PANEL *) ground_panel(SCREEN *); +extern PANEL_EXPORT(PANEL *) ceiling_panel(SCREEN *); + +extern PANEL_EXPORT(void) NCURSES_SP_NAME(update_panels) (SCREEN*); +#endif + +#if defined(__cplusplus) +} +#endif + +#endif /* NCURSES_PANEL_H_incl */ + +/* end of panel.h */ diff --git a/third_party/ncurses/parametrized.h b/third_party/ncurses/parametrized.h new file mode 100644 index 000000000..687cda64d --- /dev/null +++ b/third_party/ncurses/parametrized.h @@ -0,0 +1,429 @@ +#ifndef PARAMETRIZED_H +#define PARAMETRIZED_H 1 +/* + * parametrized.h --- is a termcap capability parametrized? + * + * Note: this file is generated using MKparametrized.sh, do not edit by hand. + * A value of -1 in the table means suppress both pad and % translations. + * A value of 0 in the table means do pad but not % translations. + * A value of 1 in the table means do both pad and % translations. + */ + +static short const parametrized[] = { +0, /* cbt */ +0, /* bel */ +0, /* cr */ +1, /* csr */ +0, /* tbc */ +0, /* clear */ +0, /* el */ +0, /* ed */ +1, /* hpa */ +0, /* cmdch */ +1, /* cup */ +0, /* cud1 */ +0, /* home */ +0, /* civis */ +0, /* cub1 */ +1, /* mrcup */ +0, /* cnorm */ +0, /* cuf1 */ +0, /* ll */ +0, /* cuu1 */ +0, /* cvvis */ +0, /* dch1 */ +0, /* dl1 */ +0, /* dsl */ +0, /* hd */ +0, /* smacs */ +0, /* blink */ +0, /* bold */ +0, /* smcup */ +0, /* smdc */ +0, /* dim */ +0, /* smir */ +0, /* invis */ +0, /* prot */ +0, /* rev */ +0, /* smso */ +0, /* smul */ +1, /* ech */ +0, /* rmacs */ +0, /* sgr0 */ +0, /* rmcup */ +0, /* rmdc */ +0, /* rmir */ +0, /* rmso */ +0, /* rmul */ +0, /* flash */ +0, /* ff */ +0, /* fsl */ +0, /* is1 */ +0, /* is2 */ +0, /* is3 */ +0, /* if */ +0, /* ich1 */ +0, /* il1 */ +0, /* ip */ +0, /* kbs */ +0, /* ktbc */ +0, /* kclr */ +0, /* kctab */ +0, /* kdch1 */ +0, /* kdl1 */ +0, /* kcud1 */ +0, /* krmir */ +0, /* kel */ +0, /* ked */ +0, /* kf0 */ +0, /* kf1 */ +0, /* kf10 */ +0, /* kf2 */ +0, /* kf3 */ +0, /* kf4 */ +0, /* kf5 */ +0, /* kf6 */ +0, /* kf7 */ +0, /* kf8 */ +0, /* kf9 */ +0, /* khome */ +0, /* kich1 */ +0, /* kil1 */ +0, /* kcub1 */ +0, /* kll */ +0, /* knp */ +0, /* kpp */ +0, /* kcuf1 */ +0, /* kind */ +0, /* kri */ +0, /* khts */ +0, /* kcuu1 */ +0, /* rmkx */ +0, /* smkx */ +0, /* lf0 */ +0, /* lf1 */ +0, /* lf10 */ +0, /* lf2 */ +0, /* lf3 */ +0, /* lf4 */ +0, /* lf5 */ +0, /* lf6 */ +0, /* lf7 */ +0, /* lf8 */ +0, /* lf9 */ +0, /* rmm */ +0, /* smm */ +0, /* nel */ +0, /* pad */ +1, /* dch */ +1, /* dl */ +1, /* cud */ +1, /* ich */ +1, /* indn */ +1, /* il */ +1, /* cub */ +1, /* cuf */ +1, /* rin */ +1, /* cuu */ +1, /* pfkey */ +1, /* pfloc */ +1, /* pfx */ +0, /* mc0 */ +0, /* mc4 */ +0, /* mc5 */ +1, /* rep */ +0, /* rs1 */ +0, /* rs2 */ +0, /* rs3 */ +0, /* rf */ +0, /* rc */ +1, /* vpa */ +0, /* sc */ +0, /* ind */ +0, /* ri */ +1, /* sgr */ +0, /* hts */ +1, /* wind */ +0, /* ht */ +1, /* tsl */ +0, /* uc */ +0, /* hu */ +0, /* iprog */ +0, /* ka1 */ +0, /* ka3 */ +0, /* kb2 */ +0, /* kc1 */ +0, /* kc3 */ +1, /* mc5p */ +0, /* rmp */ +-1, /* acsc */ +1, /* pln */ +0, /* kcbt */ +0, /* smxon */ +0, /* rmxon */ +0, /* smam */ +0, /* rmam */ +0, /* xonc */ +0, /* xoffc */ +0, /* enacs */ +0, /* smln */ +0, /* rmln */ +0, /* kbeg */ +0, /* kcan */ +0, /* kclo */ +0, /* kcmd */ +0, /* kcpy */ +0, /* kcrt */ +0, /* kend */ +0, /* kent */ +0, /* kext */ +0, /* kfnd */ +0, /* khlp */ +0, /* kmrk */ +0, /* kmsg */ +0, /* kmov */ +0, /* knxt */ +0, /* kopn */ +0, /* kopt */ +0, /* kprv */ +0, /* kprt */ +0, /* krdo */ +0, /* kref */ +0, /* krfr */ +0, /* krpl */ +0, /* krst */ +0, /* kres */ +0, /* ksav */ +0, /* kspd */ +0, /* kund */ +0, /* kBEG */ +0, /* kCAN */ +0, /* kCMD */ +0, /* kCPY */ +0, /* kCRT */ +0, /* kDC */ +0, /* kDL */ +0, /* kslt */ +0, /* kEND */ +0, /* kEOL */ +0, /* kEXT */ +0, /* kFND */ +1, /* kHLP */ +1, /* kHOM */ +1, /* kIC */ +1, /* kLFT */ +0, /* kMSG */ +0, /* kMOV */ +0, /* kNXT */ +0, /* kOPT */ +0, /* kPRV */ +0, /* kPRT */ +0, /* kRDO */ +0, /* kRPL */ +0, /* kRIT */ +0, /* kRES */ +0, /* kSAV */ +0, /* kSPD */ +0, /* kUND */ +0, /* rfi */ +0, /* kf11 */ +0, /* kf12 */ +0, /* kf13 */ +0, /* kf14 */ +0, /* kf15 */ +0, /* kf16 */ +0, /* kf17 */ +0, /* kf18 */ +0, /* kf19 */ +0, /* kf20 */ +0, /* kf21 */ +0, /* kf22 */ +0, /* kf23 */ +0, /* kf24 */ +0, /* kf25 */ +0, /* kf26 */ +0, /* kf27 */ +0, /* kf28 */ +0, /* kf29 */ +0, /* kf30 */ +0, /* kf31 */ +0, /* kf32 */ +0, /* kf33 */ +0, /* kf34 */ +0, /* kf35 */ +0, /* kf36 */ +0, /* kf37 */ +0, /* kf38 */ +0, /* kf39 */ +0, /* kf40 */ +0, /* kf41 */ +0, /* kf42 */ +0, /* kf43 */ +0, /* kf44 */ +0, /* kf45 */ +0, /* kf46 */ +0, /* kf47 */ +0, /* kf48 */ +0, /* kf49 */ +0, /* kf50 */ +0, /* kf51 */ +0, /* kf52 */ +0, /* kf53 */ +0, /* kf54 */ +0, /* kf55 */ +0, /* kf56 */ +0, /* kf57 */ +0, /* kf58 */ +0, /* kf59 */ +0, /* kf60 */ +0, /* kf61 */ +0, /* kf62 */ +0, /* kf63 */ +0, /* el1 */ +0, /* mgc */ +0, /* smgl */ +0, /* smgr */ +-1, /* fln */ +1, /* sclk */ +0, /* dclk */ +0, /* rmclk */ +1, /* cwin */ +1, /* wingo */ +0, /* hup */ +1, /* dial */ +1, /* qdial */ +0, /* tone */ +0, /* pulse */ +0, /* hook */ +0, /* pause */ +0, /* wait */ +1, /* u0 */ +1, /* u1 */ +1, /* u2 */ +1, /* u3 */ +1, /* u4 */ +1, /* u5 */ +1, /* u6 */ +1, /* u7 */ +1, /* u8 */ +1, /* u9 */ +0, /* op */ +0, /* oc */ +1, /* initc */ +1, /* initp */ +1, /* scp */ +1, /* setf */ +1, /* setb */ +1, /* cpi */ +1, /* lpi */ +1, /* chr */ +1, /* cvr */ +1, /* defc */ +0, /* swidm */ +0, /* sdrfq */ +0, /* sitm */ +0, /* slm */ +0, /* smicm */ +0, /* snlq */ +0, /* snrmq */ +0, /* sshm */ +0, /* ssubm */ +0, /* ssupm */ +0, /* sum */ +0, /* rwidm */ +0, /* ritm */ +0, /* rlm */ +0, /* rmicm */ +0, /* rshm */ +0, /* rsubm */ +0, /* rsupm */ +0, /* rum */ +0, /* mhpa */ +0, /* mcud1 */ +0, /* mcub1 */ +0, /* mcuf1 */ +1, /* mvpa */ +0, /* mcuu1 */ +0, /* porder */ +0, /* mcud */ +0, /* mcub */ +0, /* mcuf */ +0, /* mcuu */ +1, /* scs */ +0, /* smgb */ +1, /* smgbp */ +1, /* smglp */ +1, /* smgrp */ +0, /* smgt */ +1, /* smgtp */ +0, /* sbim */ +1, /* scsd */ +0, /* rbim */ +1, /* rcsd */ +0, /* subcs */ +0, /* supcs */ +0, /* docr */ +0, /* zerom */ +1, /* csnm */ +0, /* kmous */ +0, /* minfo */ +0, /* reqmp */ +1, /* getm */ +1, /* setaf */ +1, /* setab */ +1, /* pfxl */ +0, /* devt */ +0, /* csin */ +0, /* s0ds */ +0, /* s1ds */ +0, /* s2ds */ +0, /* s3ds */ +1, /* smglr */ +1, /* smgtb */ +1, /* birep */ +0, /* binel */ +0, /* bicr */ +1, /* colornm */ +0, /* defbi */ +0, /* endbi */ +1, /* setcolor */ +1, /* slines */ +1, /* dispc */ +0, /* smpch */ +0, /* rmpch */ +0, /* smsc */ +0, /* rmsc */ +0, /* pctrm */ +0, /* scesc */ +0, /* scesa */ +0, /* ehhlm */ +0, /* elhlm */ +0, /* elohlm */ +0, /* erhlm */ +0, /* ethlm */ +0, /* evhlm */ +1, /* sgr1 */ +1, /* slength */ +0, /* OTi2 */ +0, /* OTrs */ +0, /* OTnl */ +0, /* OTbc */ +0, /* OTko */ +0, /* OTma */ +-1, /* OTG2 */ +-1, /* OTG3 */ +-1, /* OTG1 */ +-1, /* OTG4 */ +-1, /* OTGR */ +-1, /* OTGL */ +-1, /* OTGU */ +-1, /* OTGD */ +-1, /* OTGH */ +-1, /* OTGV */ +-1, /* OTGC */ +0, /* meml */ +0, /* memu */ +0, /* box1 */ +} /* 414 entries */; + +#endif /* PARAMETRIZED_H */ diff --git a/third_party/ncurses/parse_entry.c b/third_party/ncurses/parse_entry.c new file mode 100644 index 000000000..170703ae4 --- /dev/null +++ b/third_party/ncurses/parse_entry.c @@ -0,0 +1,1149 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * parse_entry.c -- compile one terminfo or termcap entry + * + * Get an exact in-core representation of an entry. Don't + * try to resolve use or tc capabilities, that is someone + * else's job. Depends on the lexical analyzer to get tokens + * from the input stream. + */ + +#define __INTERNAL_CAPS_VISIBLE +#include "curses.priv.h" + +#include +#include "tic.h" + +MODULE_ID("$Id: parse_entry.c,v 1.107 2022/05/08 00:11:44 tom Exp $") + +#ifdef LINT +static short const parametrized[] = +{0}; +#else +#include "parametrized.h" +#endif + +static void postprocess_termcap(TERMTYPE2 *, bool); +static void postprocess_terminfo(TERMTYPE2 *); +static struct name_table_entry const *lookup_fullname(const char *name); + +#if NCURSES_XNAMES + +static struct name_table_entry const * +_nc_extend_names(ENTRY * entryp, const char *name, int token_type) +{ + static struct name_table_entry temp; + TERMTYPE2 *tp = &(entryp->tterm); + unsigned offset = 0; + unsigned actual; + unsigned tindex; + unsigned first, last, n; + bool found; + + switch (token_type) { + case BOOLEAN: + first = 0; + last = tp->ext_Booleans; + offset = tp->ext_Booleans; + tindex = tp->num_Booleans; + break; + case NUMBER: + first = tp->ext_Booleans; + last = tp->ext_Numbers + first; + offset = (unsigned) (tp->ext_Booleans + tp->ext_Numbers); + tindex = tp->num_Numbers; + break; + case STRING: + first = (unsigned) (tp->ext_Booleans + tp->ext_Numbers); + last = tp->ext_Strings + first; + offset = (unsigned) (tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings); + tindex = tp->num_Strings; + break; + case CANCEL: + actual = NUM_EXT_NAMES(tp); + for (n = 0; n < actual; n++) { + if (!strcmp(name, tp->ext_Names[n])) { + if (n > (unsigned) (tp->ext_Booleans + tp->ext_Numbers)) { + token_type = STRING; + } else if (n > tp->ext_Booleans) { + token_type = NUMBER; + } else { + token_type = BOOLEAN; + } + return _nc_extend_names(entryp, name, token_type); + } + } + /* Well, we are given a cancel for a name that we don't recognize */ + return _nc_extend_names(entryp, name, STRING); + default: + return 0; + } + + /* Adjust the 'offset' (insertion-point) to keep the lists of extended + * names sorted. + */ + for (n = first, found = FALSE; n < last; n++) { + int cmp = strcmp(tp->ext_Names[n], name); + if (cmp == 0) + found = TRUE; + if (cmp >= 0) { + offset = n; + tindex = n - first; + switch (token_type) { + case BOOLEAN: + tindex += BOOLCOUNT; + break; + case NUMBER: + tindex += NUMCOUNT; + break; + case STRING: + tindex += STRCOUNT; + break; + } + break; + } + } + +#define for_each_value(max) \ + for (last = (unsigned) (max - 1); last > tindex; last--) + + if (!found) { + switch (token_type) { + case BOOLEAN: + tp->ext_Booleans++; + tp->num_Booleans++; + TYPE_REALLOC(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans); + for_each_value(tp->num_Booleans) + tp->Booleans[last] = tp->Booleans[last - 1]; + break; + case NUMBER: + tp->ext_Numbers++; + tp->num_Numbers++; + TYPE_REALLOC(NCURSES_INT2, tp->num_Numbers, tp->Numbers); + for_each_value(tp->num_Numbers) + tp->Numbers[last] = tp->Numbers[last - 1]; + break; + case STRING: + tp->ext_Strings++; + tp->num_Strings++; + TYPE_REALLOC(char *, tp->num_Strings, tp->Strings); + for_each_value(tp->num_Strings) + tp->Strings[last] = tp->Strings[last - 1]; + break; + } + actual = NUM_EXT_NAMES(tp); + TYPE_REALLOC(char *, actual, tp->ext_Names); + while (--actual > offset) + tp->ext_Names[actual] = tp->ext_Names[actual - 1]; + tp->ext_Names[offset] = _nc_save_str(name); + } + + temp.nte_name = tp->ext_Names[offset]; + temp.nte_type = token_type; + temp.nte_index = (short) tindex; + temp.nte_link = -1; + + return &temp; +} + +static const char * +usertype2s(int mask) +{ + const char *result = "unknown"; + if (mask & (1 << BOOLEAN)) { + result = "boolean"; + } else if (mask & (1 << NUMBER)) { + result = "number"; + } else if (mask & (1 << STRING)) { + result = "string"; + } + return result; +} + +static bool +expected_type(const char *name, int token_type, bool silent) +{ + struct user_table_entry const *entry = _nc_find_user_entry(name); + bool result = TRUE; + if ((entry != 0) && (token_type != CANCEL)) { + int have_type = (1 << token_type); + if (!(entry->ute_type & have_type)) { + if (!silent) + _nc_warning("expected %s-type for %s, have %s", + usertype2s(entry->ute_type), + name, + usertype2s(have_type)); + result = FALSE; + } + } + return result; +} +#endif /* NCURSES_XNAMES */ + +/* + * A valid entry name uses characters from the "portable character set" + * (more commonly referred to as US-ASCII), and disallows some of the + * punctuation characters: + * + * '/' is a pathname separator + * '\' may be a pathname separator, but more important, is an escape + * '|' delimits names and description + * '#' denotes a numeric value + * '=' denotes a string value + * '@' denotes a cancelled symbol + * ',' separates terminfo capabilities + * ':' separates termcap capabilities + * + * Termcap capability names may begin with a '#' or '@' (since they have + * exactly two characters). + */ +static bool +valid_entryname(const char *name) +{ + bool result = TRUE; + bool first = TRUE; + int ch; + while ((ch = UChar(*name++)) != '\0') { + if (ch <= ' ' || ch > '~' || strchr("/\\|=,:", ch) != NULL) { + result = FALSE; + break; + } + if (!first && strchr("#@", ch) != NULL) { + result = FALSE; + break; + } + first = FALSE; + } + return result; +} + +/* + * int + * _nc_parse_entry(entry, literal, silent) + * + * Compile one entry. Doesn't try to resolve use or tc capabilities. + * + * found-forward-use = FALSE + * re-initialise internal arrays + * get_token(); + * if the token was not a name in column 1, complain and die + * save names in entry's string table + * while (get_token() is not EOF and not NAMES) + * check for existence and type-correctness + * enter cap into structure + * if STRING + * save string in entry's string table + * push back token + */ + +#define BAD_TC_USAGE if (!bad_tc_usage) \ + { bad_tc_usage = TRUE; \ + _nc_warning("Legacy termcap allows only a trailing tc= clause"); } + +#define MAX_NUMBER MAX_OF_TYPE(NCURSES_INT2) + +NCURSES_EXPORT(int) +_nc_parse_entry(ENTRY * entryp, int literal, bool silent) +{ + int token_type; + struct name_table_entry const *entry_ptr; + char *ptr, *base; + const char *name; + bool bad_tc_usage = FALSE; + + TR(TRACE_DATABASE, + (T_CALLED("_nc_parse_entry(entry=%p, literal=%d, silent=%d)"), + (void *) entryp, literal, silent)); + + token_type = _nc_get_token(silent); + + if (token_type == EOF) + returnDB(EOF); + if (token_type != NAMES) + _nc_err_abort("Entry does not start with terminal names in column one"); + + _nc_init_entry(entryp); + + entryp->cstart = _nc_comment_start; + entryp->cend = _nc_comment_end; + entryp->startline = _nc_start_line; + DEBUG(2, ("Comment range is %ld to %ld", entryp->cstart, entryp->cend)); + + /* + * Strip off the 2-character termcap name, if present. Originally termcap + * used that as an indexing aid. We can retain 2-character terminfo names, + * but note that they would be lost if we translate to/from termcap. This + * feature is supposedly obsolete since "newer" BSD implementations do not + * use it; however our reference for this feature is SunOS 4.x, which + * implemented it. Note that the resulting terminal type was never the + * 2-character name, but was instead the first alias after that. + */ +#define ok_TC2(s) (isgraph(UChar(s)) && (s) != '|') + ptr = _nc_curr_token.tk_name; + if (_nc_syntax == SYN_TERMCAP +#if NCURSES_XNAMES + && !_nc_user_definable +#endif + ) { + if (ok_TC2(ptr[0]) && ok_TC2(ptr[1]) && (ptr[2] == '|')) { + ptr += 3; + _nc_curr_token.tk_name[2] = '\0'; + } + } + + entryp->tterm.str_table = entryp->tterm.term_names = _nc_save_str(ptr); + + if (entryp->tterm.str_table == 0) + returnDB(ERR); + + DEBUG(2, ("Starting '%s'", ptr)); + + /* + * We do this because the one-token lookahead in the parse loop + * results in the terminal type getting prematurely set to correspond + * to that of the next entry. + */ + name = _nc_first_name(entryp->tterm.term_names); + if (!valid_entryname(name)) { + _nc_warning("invalid entry name \"%s\"", name); + name = "invalid"; + } + _nc_set_type(name); + + /* check for overly-long names and aliases */ + for (base = entryp->tterm.term_names; (ptr = strchr(base, '|')) != 0; + base = ptr + 1) { + if (ptr - base > MAX_ALIAS) { + _nc_warning("%s `%.*s' may be too long", + (base == entryp->tterm.term_names) + ? "primary name" + : "alias", + (int) (ptr - base), base); + } + } + + entryp->nuses = 0; + + for (token_type = _nc_get_token(silent); + token_type != EOF && token_type != NAMES; + token_type = _nc_get_token(silent)) { + bool is_use = (strcmp(_nc_curr_token.tk_name, "use") == 0); + bool is_tc = !is_use && (strcmp(_nc_curr_token.tk_name, "tc") == 0); + if (is_use || is_tc) { + if (!VALID_STRING(_nc_curr_token.tk_valstring) + || _nc_curr_token.tk_valstring[0] == '\0') { + _nc_warning("missing name for use-clause"); + continue; + } else if (!valid_entryname(_nc_curr_token.tk_valstring)) { + _nc_warning("invalid name for use-clause \"%s\"", + _nc_curr_token.tk_valstring); + continue; + } else if (entryp->nuses >= MAX_USES) { + _nc_warning("too many use-clauses, ignored \"%s\"", + _nc_curr_token.tk_valstring); + continue; + } + entryp->uses[entryp->nuses].name = _nc_save_str(_nc_curr_token.tk_valstring); + entryp->uses[entryp->nuses].line = _nc_curr_line; + entryp->nuses++; + if (entryp->nuses > 1 && is_tc) { + BAD_TC_USAGE + } + } else { + /* normal token lookup */ + entry_ptr = _nc_find_entry(_nc_curr_token.tk_name, + _nc_get_hash_table(_nc_syntax)); + + /* + * Our kluge to handle aliasing. The reason it is done + * this ugly way, with a linear search, is so the hashing + * machinery doesn't have to be made really complicated + * (also we get better warnings this way). No point in + * making this case fast, aliased caps aren't common now + * and will get rarer. + */ + if (entry_ptr == NOTFOUND) { + const struct alias *ap; + + if (_nc_syntax == SYN_TERMCAP) { + if (entryp->nuses != 0) { + BAD_TC_USAGE + } + for (ap = _nc_get_alias_table(TRUE); ap->from; ap++) + if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) { + if (ap->to == (char *) 0) { + _nc_warning("%s (%s termcap extension) ignored", + ap->from, ap->source); + goto nexttok; + } + + entry_ptr = _nc_find_entry(ap->to, + _nc_get_hash_table(TRUE)); + if (entry_ptr && !silent) + _nc_warning("%s (%s termcap extension) aliased to %s", + ap->from, ap->source, ap->to); + break; + } + } else { /* if (_nc_syntax == SYN_TERMINFO) */ + for (ap = _nc_get_alias_table(FALSE); ap->from; ap++) + if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) { + if (ap->to == (char *) 0) { + _nc_warning("%s (%s terminfo extension) ignored", + ap->from, ap->source); + goto nexttok; + } + + entry_ptr = _nc_find_entry(ap->to, + _nc_get_hash_table(FALSE)); + if (entry_ptr && !silent) + _nc_warning("%s (%s terminfo extension) aliased to %s", + ap->from, ap->source, ap->to); + break; + } + + if (entry_ptr == NOTFOUND) { + entry_ptr = lookup_fullname(_nc_curr_token.tk_name); + } + } + } +#if NCURSES_XNAMES + /* + * If we have extended-names active, we will automatically + * define a name based on its context. + */ + if (entry_ptr == NOTFOUND + && _nc_user_definable) { + if (expected_type(_nc_curr_token.tk_name, token_type, silent)) { + if ((entry_ptr = _nc_extend_names(entryp, + _nc_curr_token.tk_name, + token_type)) != 0) { + if (_nc_tracing >= DEBUG_LEVEL(1)) { + _nc_warning("extended capability '%s'", + _nc_curr_token.tk_name); + } + } + } else { + /* ignore it: we have already printed error message */ + continue; + } + } +#endif /* NCURSES_XNAMES */ + + /* can't find this cap name, not even as an alias */ + if (entry_ptr == NOTFOUND) { + if (!silent) + _nc_warning("unknown capability '%s'", + _nc_curr_token.tk_name); + continue; + } + + /* deal with bad type/value combinations. */ + if (token_type == CANCEL) { + /* + * Prefer terminfo in this (long-obsolete) ambiguity: + */ + if (!strcmp("ma", _nc_curr_token.tk_name)) { + entry_ptr = _nc_find_type_entry("ma", NUMBER, + _nc_syntax != 0); + assert(entry_ptr != 0); + } + } else if (entry_ptr->nte_type != token_type) { + /* + * Nasty special cases here handle situations in which type + * information can resolve name clashes. Normal lookup + * finds the last instance in the capability table of a + * given name, regardless of type. find_type_entry looks + * for a first matching instance with given type. So as + * long as all ambiguous names occur in pairs of distinct + * type, this will do the job. + */ + + if (token_type == NUMBER + && !strcmp("ma", _nc_curr_token.tk_name)) { + /* tell max_attributes from arrow_key_map */ + entry_ptr = _nc_find_type_entry("ma", NUMBER, + _nc_syntax != 0); + assert(entry_ptr != 0); + + } else if (token_type == STRING + && !strcmp("MT", _nc_curr_token.tk_name)) { + /* map terminfo's string MT to MT */ + entry_ptr = _nc_find_type_entry("MT", STRING, + _nc_syntax != 0); + assert(entry_ptr != 0); + + } else if (token_type == BOOLEAN + && entry_ptr->nte_type == STRING) { + /* treat strings without following "=" as empty strings */ + token_type = STRING; + } else { + /* we couldn't recover; skip this token */ + if (!silent) { + const char *type_name; + switch (entry_ptr->nte_type) { + case BOOLEAN: + type_name = "boolean"; + break; + case STRING: + type_name = "string"; + break; + case NUMBER: + type_name = "numeric"; + break; + default: + type_name = "unknown"; + break; + } + _nc_warning("wrong type used for %s capability '%s'", + type_name, _nc_curr_token.tk_name); + } + continue; + } + } + + /* now we know that the type/value combination is OK */ + switch (token_type) { + case CANCEL: + switch (entry_ptr->nte_type) { + case BOOLEAN: + entryp->tterm.Booleans[entry_ptr->nte_index] = CANCELLED_BOOLEAN; + break; + + case NUMBER: + entryp->tterm.Numbers[entry_ptr->nte_index] = CANCELLED_NUMERIC; + break; + + case STRING: + entryp->tterm.Strings[entry_ptr->nte_index] = CANCELLED_STRING; + break; + } + break; + + case BOOLEAN: + entryp->tterm.Booleans[entry_ptr->nte_index] = TRUE; + break; + + case NUMBER: +#if !NCURSES_EXT_NUMBERS + if (_nc_curr_token.tk_valnumber > MAX_NUMBER) { + entryp->tterm.Numbers[entry_ptr->nte_index] = MAX_NUMBER; + } else +#endif + { + entryp->tterm.Numbers[entry_ptr->nte_index] = + (NCURSES_INT2) _nc_curr_token.tk_valnumber; + } + break; + + case STRING: + ptr = _nc_curr_token.tk_valstring; + if (_nc_syntax == SYN_TERMCAP) { + int n = entry_ptr->nte_index; + ptr = _nc_captoinfo(_nc_curr_token.tk_name, + ptr, + (n < (int) SIZEOF(parametrized)) + ? parametrized[n] + : 0); + } + entryp->tterm.Strings[entry_ptr->nte_index] = _nc_save_str(ptr); + break; + + default: + if (!silent) + _nc_warning("unknown token type"); + _nc_panic_mode((char) ((_nc_syntax == SYN_TERMCAP) ? ':' : ',')); + continue; + } + } /* end else cur_token.name != "use" */ + nexttok: + continue; /* cannot have a label w/o statement */ + } /* endwhile (not EOF and not NAMES) */ + + _nc_push_token(token_type); + _nc_set_type(_nc_first_name(entryp->tterm.term_names)); + + /* + * Try to deduce as much as possible from extension capabilities + * (this includes obsolete BSD capabilities). Sigh...it would be more + * space-efficient to call this after use resolution, but it has + * to be done before entry allocation is wrapped up. + */ + if (!literal) { + if (_nc_syntax == SYN_TERMCAP) { + bool has_base_entry = FALSE; + + /* + * Don't insert defaults if this is a `+' entry meant only + * for inclusion in other entries (not sure termcap ever + * had these, actually). + */ + if (strchr(entryp->tterm.term_names, '+')) { + has_base_entry = TRUE; + } else { + unsigned i; + /* + * Otherwise, look for a base entry that will already + * have picked up defaults via translation. + */ + for (i = 0; i < entryp->nuses; i++) { + if (entryp->uses[i].name != 0 + && !strchr(entryp->uses[i].name, '+')) + has_base_entry = TRUE; + } + } + + postprocess_termcap(&entryp->tterm, has_base_entry); + } else + postprocess_terminfo(&entryp->tterm); + } + _nc_wrap_entry(entryp, FALSE); + + returnDB(OK); +} + +NCURSES_EXPORT(int) +_nc_capcmp(const char *s, const char *t) +/* compare two string capabilities, stripping out padding */ +{ + bool ok_s = VALID_STRING(s); + bool ok_t = VALID_STRING(t); + + if (ok_s && ok_t) { + for (;;) { + if (s[0] == '$' && s[1] == '<') { + for (s += 2;; s++) { + if (!(isdigit(UChar(*s)) + || *s == '.' + || *s == '*' + || *s == '/' + || *s == '>')) { + break; + } + } + } + + if (t[0] == '$' && t[1] == '<') { + for (t += 2;; t++) { + if (!(isdigit(UChar(*t)) + || *t == '.' + || *t == '*' + || *t == '/' + || *t == '>')) { + break; + } + } + } + + /* we've now pushed s and t past any padding they pointed at */ + + if (*s == '\0' && *t == '\0') + return (0); + + if (*s != *t) + return (*t - *s); + + /* else *s == *t but one is not NUL, so continue */ + s++, t++; + } + } else if (ok_s || ok_t) { + return 1; + } + return 0; +} + +static void +append_acs0(string_desc * dst, int code, char *src, size_t off) +{ + if (src != 0 && off < strlen(src)) { + char temp[3]; + temp[0] = (char) code; + temp[1] = src[off]; + temp[2] = 0; + _nc_safe_strcat(dst, temp); + } +} + +static void +append_acs(string_desc * dst, int code, char *src) +{ + if (VALID_STRING(src) && strlen(src) == 1) { + append_acs0(dst, code, src, 0); + } +} + +/* + * The ko capability, if present, consists of a comma-separated capability + * list. For each capability, we may assume there is a keycap that sends the + * string which is the value of that capability. + */ +#define DATA(from, to) { { from }, { to } } +typedef struct { + const char from[3]; + const char to[6]; +} assoc; +static assoc const ko_xlate[] = +{ + DATA("al", "kil1"), /* insert line key -> KEY_IL */ + DATA("bt", "kcbt"), /* back tab -> KEY_BTAB */ + DATA("cd", "ked"), /* clear-to-eos key -> KEY_EOL */ + DATA("ce", "kel"), /* clear-to-eol key -> KEY_EOS */ + DATA("cl", "kclr"), /* clear key -> KEY_CLEAR */ + DATA("ct", "tbc"), /* clear all tabs -> KEY_CATAB */ + DATA("dc", "kdch1"), /* delete char -> KEY_DC */ + DATA("dl", "kdl1"), /* delete line -> KEY_DL */ + DATA("do", "kcud1"), /* down key -> KEY_DOWN */ + DATA("ei", "krmir"), /* exit insert key -> KEY_EIC */ + DATA("ho", "khome"), /* home key -> KEY_HOME */ + DATA("ic", "kich1"), /* insert char key -> KEY_IC */ + DATA("im", "kIC"), /* insert-mode key -> KEY_SIC */ + DATA("le", "kcub1"), /* le key -> KEY_LEFT */ + DATA("nd", "kcuf1"), /* nd key -> KEY_RIGHT */ + DATA("nl", "kent"), /* new line key -> KEY_ENTER */ + DATA("st", "khts"), /* set-tab key -> KEY_STAB */ + DATA("ta", ""), + DATA("up", "kcuu1"), /* up-arrow key -> KEY_UP */ +}; + +/* + * This routine fills in string caps that either had defaults under + * termcap or can be manufactured from obsolete termcap capabilities. + * It was lifted from Ross Ridge's mytinfo package. + */ + +static const char C_CR[] = "\r"; +static const char C_LF[] = "\n"; +static const char C_BS[] = "\b"; +static const char C_HT[] = "\t"; + +/* + * This bit of legerdemain turns all the terminfo variable names into + * references to locations in the arrays Booleans, Numbers, and Strings --- + * precisely what's needed. + */ + +#undef CUR +#define CUR tp-> + +static void +postprocess_termcap(TERMTYPE2 *tp, bool has_base) +{ + char buf[MAX_LINE * 2 + 2]; + string_desc result; + + TR(TRACE_DATABASE, + (T_CALLED("postprocess_termcap(tp=%p, has_base=%d)"), + (void *) tp, has_base)); + + /* + * TERMCAP DEFAULTS AND OBSOLETE-CAPABILITY TRANSLATIONS + * + * This first part of the code is the functional inverse of the + * fragment in capdefaults.c. + * ---------------------------------------------------------------------- + */ + + /* if there was a tc entry, assume we picked up defaults via that */ + if (!has_base) { + if (WANTED(init_3string) && PRESENT(termcap_init2)) + init_3string = _nc_save_str(termcap_init2); + + if (WANTED(reset_2string) && PRESENT(termcap_reset)) + reset_2string = _nc_save_str(termcap_reset); + + if (WANTED(carriage_return)) { + if (carriage_return_delay > 0) { + _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) + "%s$<%d>", C_CR, carriage_return_delay); + carriage_return = _nc_save_str(buf); + } else + carriage_return = _nc_save_str(C_CR); + } + if (WANTED(cursor_left)) { + if (backspace_delay > 0) { + _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) + "%s$<%d>", C_BS, backspace_delay); + cursor_left = _nc_save_str(buf); + } else if (backspaces_with_bs == 1) + cursor_left = _nc_save_str(C_BS); + else if (PRESENT(backspace_if_not_bs)) + cursor_left = backspace_if_not_bs; + } + /* vi doesn't use "do", but it does seem to use nl (or '\n') instead */ + if (WANTED(cursor_down)) { + if (PRESENT(linefeed_if_not_lf)) + cursor_down = linefeed_if_not_lf; + else if (linefeed_is_newline != 1) { + if (new_line_delay > 0) { + _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) + "%s$<%d>", C_LF, new_line_delay); + cursor_down = _nc_save_str(buf); + } else + cursor_down = _nc_save_str(C_LF); + } + } + if (WANTED(scroll_forward) && crt_no_scrolling != 1) { + if (PRESENT(linefeed_if_not_lf)) + cursor_down = linefeed_if_not_lf; + else if (linefeed_is_newline != 1) { + if (new_line_delay > 0) { + _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) + "%s$<%d>", C_LF, new_line_delay); + scroll_forward = _nc_save_str(buf); + } else + scroll_forward = _nc_save_str(C_LF); + } + } + if (WANTED(newline)) { + if (linefeed_is_newline == 1) { + if (new_line_delay > 0) { + _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) + "%s$<%d>", C_LF, new_line_delay); + newline = _nc_save_str(buf); + } else + newline = _nc_save_str(C_LF); + } else if (PRESENT(carriage_return) && PRESENT(scroll_forward)) { + _nc_str_init(&result, buf, sizeof(buf)); + if (_nc_safe_strcat(&result, carriage_return) + && _nc_safe_strcat(&result, scroll_forward)) + newline = _nc_save_str(buf); + } else if (PRESENT(carriage_return) && PRESENT(cursor_down)) { + _nc_str_init(&result, buf, sizeof(buf)); + if (_nc_safe_strcat(&result, carriage_return) + && _nc_safe_strcat(&result, cursor_down)) + newline = _nc_save_str(buf); + } + } + } + + /* + * Inverse of capdefaults.c code ends here. + * ---------------------------------------------------------------------- + * + * TERMCAP-TO TERMINFO MAPPINGS FOR SOURCE TRANSLATION + * + * These translations will *not* be inverted by tgetent(). + */ + + if (!has_base) { + /* + * We wait until now to decide if we've got a working cr because even + * one that doesn't work can be used for newline. Unfortunately the + * space allocated for it is wasted. + */ + if (return_does_clr_eol == 1 || no_correctly_working_cr == 1) + carriage_return = ABSENT_STRING; + + /* + * Supposedly most termcap entries have ta now and '\t' is no longer a + * default, but it doesn't seem to be true... + */ + if (WANTED(tab)) { + if (horizontal_tab_delay > 0) { + _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) + "%s$<%d>", C_HT, horizontal_tab_delay); + tab = _nc_save_str(buf); + } else + tab = _nc_save_str(C_HT); + } + if (init_tabs == ABSENT_NUMERIC && has_hardware_tabs == TRUE) + init_tabs = 8; + + /* + * Assume we can beep with ^G unless we're given bl@. + */ + if (WANTED(bell)) + bell = _nc_save_str("\007"); + } + + /* + * Translate the old termcap :pt: capability to it#8 + ht=\t + */ + if (has_hardware_tabs == TRUE) { + if (init_tabs != 8 && init_tabs != ABSENT_NUMERIC) + _nc_warning("hardware tabs with a width other than 8: %d", init_tabs); + else { + if (PRESENT(tab) && _nc_capcmp(tab, C_HT)) + _nc_warning("hardware tabs with a non-^I tab string %s", + _nc_visbuf(tab)); + else { + if (WANTED(tab)) + tab = _nc_save_str(C_HT); + init_tabs = 8; + } + } + } + /* + * Now translate the ko capability, if there is one. This + * isn't from mytinfo... + */ + if (PRESENT(other_non_function_keys)) { + char *base; + char *bp, *cp, *dp; + struct name_table_entry const *from_ptr; + struct name_table_entry const *to_ptr; + char buf2[MAX_TERMINFO_LENGTH]; + bool foundim; + + /* we're going to use this for a special case later */ + dp = strchr(other_non_function_keys, 'i'); + foundim = (dp != 0) && (dp[1] == 'm'); + + /* look at each comma-separated capability in the ko string... */ + for (base = other_non_function_keys; + (cp = strchr(base, ',')) != 0; + base = cp + 1) { + size_t len = (unsigned) (cp - base); + size_t n; + assoc const *ap = 0; + + for (n = 0; n < SIZEOF(ko_xlate); ++n) { + if (len == strlen(ko_xlate[n].from) + && strncmp(ko_xlate[n].from, base, len) == 0) { + ap = ko_xlate + n; + break; + } + } + if (ap == 0) { + _nc_warning("unknown capability `%.*s' in ko string", + (int) len, base); + continue; + } else if (ap->to[0] == '\0') /* ignore it */ + continue; + + /* now we know we found a match in ko_table, so... */ + + from_ptr = _nc_find_entry(ap->from, _nc_get_hash_table(TRUE)); + to_ptr = _nc_find_entry(ap->to, _nc_get_hash_table(FALSE)); + + if (!from_ptr || !to_ptr) /* should never happen! */ + _nc_err_abort("ko translation table is invalid, I give up"); + + if (WANTED(tp->Strings[from_ptr->nte_index])) { + _nc_warning("no value for ko capability %s", ap->from); + continue; + } + + if (tp->Strings[to_ptr->nte_index]) { + const char *s = tp->Strings[from_ptr->nte_index]; + const char *t = tp->Strings[to_ptr->nte_index]; + /* There's no point in warning about it if it is the same + * string; that's just an inefficiency. + */ + if (VALID_STRING(s) && VALID_STRING(t) && strcmp(s, t) != 0) + _nc_warning("%s (%s) already has an explicit value %s, ignoring ko", + ap->to, ap->from, t); + continue; + } + + /* + * The magic moment -- copy the mapped key string over, + * stripping out padding. + */ + bp = tp->Strings[from_ptr->nte_index]; + if (VALID_STRING(bp)) { + for (dp = buf2; *bp; bp++) { + if (bp[0] == '$' && bp[1] == '<') { + while (*bp && *bp != '>') { + ++bp; + } + } else + *dp++ = *bp; + } + *dp = '\0'; + + tp->Strings[to_ptr->nte_index] = _nc_save_str(buf2); + } else { + tp->Strings[to_ptr->nte_index] = bp; + } + } + + /* + * Note: ko=im and ko=ic both want to grab the `Insert' + * keycap. There's a kich1 but no ksmir, so the ic capability + * got mapped to kich1 and im to kIC to avoid a collision. + * If the description has im but not ic, hack kIC back to kich1. + */ + if (foundim && WANTED(key_ic) && PRESENT(key_sic)) { + key_ic = key_sic; + key_sic = ABSENT_STRING; + } + } + + if (!has_base) { + if (!hard_copy) { + if (WANTED(key_backspace)) + key_backspace = _nc_save_str(C_BS); + if (WANTED(key_left)) + key_left = _nc_save_str(C_BS); + if (WANTED(key_down)) + key_down = _nc_save_str(C_LF); + } + } + + /* + * Translate XENIX forms characters. + */ + if (PRESENT(acs_ulcorner) || + PRESENT(acs_llcorner) || + PRESENT(acs_urcorner) || + PRESENT(acs_lrcorner) || + PRESENT(acs_ltee) || + PRESENT(acs_rtee) || + PRESENT(acs_btee) || + PRESENT(acs_ttee) || + PRESENT(acs_hline) || + PRESENT(acs_vline) || + PRESENT(acs_plus)) { + char buf2[MAX_TERMCAP_LENGTH]; + + _nc_str_init(&result, buf2, sizeof(buf2)); + _nc_safe_strcat(&result, acs_chars); + + append_acs(&result, 'j', acs_lrcorner); + append_acs(&result, 'k', acs_urcorner); + append_acs(&result, 'l', acs_ulcorner); + append_acs(&result, 'm', acs_llcorner); + append_acs(&result, 'n', acs_plus); + append_acs(&result, 'q', acs_hline); + append_acs(&result, 't', acs_ltee); + append_acs(&result, 'u', acs_rtee); + append_acs(&result, 'v', acs_btee); + append_acs(&result, 'w', acs_ttee); + append_acs(&result, 'x', acs_vline); + + if (buf2[0]) { + acs_chars = _nc_save_str(buf2); + _nc_warning("acsc string synthesized from XENIX capabilities"); + } + } else if (acs_chars == ABSENT_STRING + && PRESENT(enter_alt_charset_mode) + && PRESENT(exit_alt_charset_mode)) { + acs_chars = _nc_save_str(VT_ACSC); + } + returnVoidDB; +} + +static void +postprocess_terminfo(TERMTYPE2 *tp) +{ + TR(TRACE_DATABASE, + (T_CALLED("postprocess_terminfo(tp=%p)"), + (void *) tp)); + + /* + * TERMINFO-TO-TERMINFO MAPPINGS FOR SOURCE TRANSLATION + * ---------------------------------------------------------------------- + */ + + /* + * Translate AIX forms characters. + */ + if (PRESENT(box_chars_1)) { + char buf2[MAX_TERMCAP_LENGTH]; + string_desc result; + + _nc_str_init(&result, buf2, sizeof(buf2)); + _nc_safe_strcat(&result, acs_chars); + + append_acs0(&result, 'l', box_chars_1, 0); /* ACS_ULCORNER */ + append_acs0(&result, 'q', box_chars_1, 1); /* ACS_HLINE */ + append_acs0(&result, 'k', box_chars_1, 2); /* ACS_URCORNER */ + append_acs0(&result, 'x', box_chars_1, 3); /* ACS_VLINE */ + append_acs0(&result, 'j', box_chars_1, 4); /* ACS_LRCORNER */ + append_acs0(&result, 'm', box_chars_1, 5); /* ACS_LLCORNER */ + append_acs0(&result, 'w', box_chars_1, 6); /* ACS_TTEE */ + append_acs0(&result, 'u', box_chars_1, 7); /* ACS_RTEE */ + append_acs0(&result, 'v', box_chars_1, 8); /* ACS_BTEE */ + append_acs0(&result, 't', box_chars_1, 9); /* ACS_LTEE */ + append_acs0(&result, 'n', box_chars_1, 10); /* ACS_PLUS */ + + if (buf2[0]) { + acs_chars = _nc_save_str(buf2); + _nc_warning("acsc string synthesized from AIX capabilities"); + box_chars_1 = ABSENT_STRING; + } + } + /* + * ---------------------------------------------------------------------- + */ + returnVoidDB; +} + +/* + * Do a linear search through the terminfo tables to find a given full-name. + * We don't expect to do this often, so there's no hashing function. + * + * In effect, this scans through the 3 lists of full-names, and looks them + * up in _nc_info_table, which is organized so that the nte_index fields are + * sorted, but the nte_type fields are not necessarily grouped together. + */ +static struct name_table_entry const * +lookup_fullname(const char *find) +{ + int state = -1; + + for (;;) { + int count = 0; + NCURSES_CONST char *const *names; + + switch (++state) { + case BOOLEAN: + names = boolfnames; + break; + case STRING: + names = strfnames; + break; + case NUMBER: + names = numfnames; + break; + default: + return NOTFOUND; + } + + for (count = 0; names[count] != 0; count++) { + if (!strcmp(names[count], find)) { + struct name_table_entry const *entry_ptr = _nc_get_table(FALSE); + while (entry_ptr->nte_type != state + || entry_ptr->nte_index != count) + entry_ptr++; + return entry_ptr; + } + } + } +} + +/* parse_entry.c ends here */ diff --git a/third_party/ncurses/read_entry.c b/third_party/ncurses/read_entry.c new file mode 100644 index 000000000..b0934fae9 --- /dev/null +++ b/third_party/ncurses/read_entry.c @@ -0,0 +1,905 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * read_entry.c -- Routine for reading in a compiled terminfo file + */ + +#include "curses.priv.h" +#include "hashed_db.h" + +#include "tic.h" + +MODULE_ID("$Id: read_entry.c,v 1.164 2022/05/08 00:11:44 tom Exp $") + +#define MyNumber(n) (short) LOW_MSB(n) + +#define SIZEOF_32BITS 4 + +#if NCURSES_USE_DATABASE +#if NCURSES_EXT_NUMBERS +static size_t +convert_16bits(char *buf, NCURSES_INT2 *Numbers, int count) +{ + int i; + size_t j; + size_t size = SIZEOF_SHORT; + for (i = 0; i < count; i++) { + unsigned mask = 0xff; + unsigned char ch = 0; + Numbers[i] = 0; + for (j = 0; j < size; ++j) { + ch = UChar(*buf++); + Numbers[i] |= (ch << (8 * j)); + mask <<= 8; + } + if (ch & 0x80) { + while (mask != 0) { + Numbers[i] |= (int) mask; + mask <<= 8; + } + } + TR(TRACE_DATABASE, ("get Numbers[%d]=%d", i, Numbers[i])); + } + return size; +} + +static size_t +convert_32bits(char *buf, NCURSES_INT2 *Numbers, int count) +{ + int i; + size_t j; + size_t size = SIZEOF_INT2; + unsigned char ch; + + assert(sizeof(NCURSES_INT2) == size); + for (i = 0; i < count; i++) { + Numbers[i] = 0; + for (j = 0; j < size; ++j) { + ch = UChar(*buf++); + Numbers[i] |= (ch << (8 * j)); + } + /* "unsigned" and NCURSES_INT2 are the same size - no sign-extension */ + TR(TRACE_DATABASE, ("get Numbers[%d]=%d", i, Numbers[i])); + } + return size; +} +#else +static size_t +convert_32bits(char *buf, NCURSES_INT2 *Numbers, int count) +{ + int i, j; + unsigned char ch; + for (i = 0; i < count; i++) { + int value = 0; + for (j = 0; j < SIZEOF_32BITS; ++j) { + ch = UChar(*buf++); + value |= (ch << (8 * j)); + } + if (value == -1) + Numbers[i] = ABSENT_NUMERIC; + else if (value == -2) + Numbers[i] = CANCELLED_NUMERIC; + else if (value > MAX_OF_TYPE(NCURSES_INT2)) + Numbers[i] = MAX_OF_TYPE(NCURSES_INT2); + else + Numbers[i] = (short) value; + TR(TRACE_DATABASE, ("get Numbers[%d]=%d", i, Numbers[i])); + } + return SIZEOF_SHORT; +} + +static size_t +convert_16bits(char *buf, NCURSES_INT2 *Numbers, int count) +{ + int i; + for (i = 0; i < count; i++) { + if (IS_NEG1(buf + 2 * i)) + Numbers[i] = ABSENT_NUMERIC; + else if (IS_NEG2(buf + 2 * i)) + Numbers[i] = CANCELLED_NUMERIC; + else + Numbers[i] = MyNumber(buf + 2 * i); + TR(TRACE_DATABASE, ("get Numbers[%d]=%d", i, Numbers[i])); + } + return SIZEOF_SHORT; +} +#endif + +static void +convert_strings(char *buf, char **Strings, int count, int size, char *table) +{ + int i; + char *p; + bool corrupt = FALSE; + + for (i = 0; i < count; i++) { + if (IS_NEG1(buf + 2 * i)) { + Strings[i] = ABSENT_STRING; + } else if (IS_NEG2(buf + 2 * i)) { + Strings[i] = CANCELLED_STRING; + } else if (MyNumber(buf + 2 * i) > size) { + Strings[i] = ABSENT_STRING; + } else { + int nn = MyNumber(buf + 2 * i); + if (nn >= 0 && nn < size) { + Strings[i] = (nn + table); + TR(TRACE_DATABASE, ("Strings[%d] = %s", i, + _nc_visbuf(Strings[i]))); + } else { + if (!corrupt) { + corrupt = TRUE; + TR(TRACE_DATABASE, + ("ignore out-of-range index %d to Strings[]", nn)); + _nc_warning("corrupt data found in convert_strings"); + } + Strings[i] = ABSENT_STRING; + } + } + + /* make sure all strings are NUL terminated */ + if (VALID_STRING(Strings[i])) { + for (p = Strings[i]; p < table + size; p++) + if (*p == '\0') + break; + /* if there is no NUL, ignore the string */ + if (p >= table + size) + Strings[i] = ABSENT_STRING; + } + } +} + +static int +fake_read(char *src, int *offset, int limit, char *dst, unsigned want) +{ + int have = (limit - *offset); + + if (have > 0) { + if ((int) want > have) + want = (unsigned) have; + memcpy(dst, src + *offset, (size_t) want); + *offset += (int) want; + } else { + want = 0; + } + return (int) want; +} + +#define Read(buf, count) fake_read(buffer, &offset, limit, (char *) buf, (unsigned) count) + +#define read_shorts(buf, count) \ + (Read(buf, (count)*SIZEOF_SHORT) == (int) (count)*SIZEOF_SHORT) + +#define read_numbers(buf, count) \ + (Read(buf, (count)*(unsigned)size_of_numbers) == (int) (count)*size_of_numbers) + +#define even_boundary(value) \ + if ((value) % 2 != 0) Read(buf, 1) +#endif + +NCURSES_EXPORT(void) +_nc_init_termtype(TERMTYPE2 *const tp) +{ + unsigned i; + + DEBUG(2, (T_CALLED("_nc_init_termtype(tp=%p)"), (void *) tp)); + +#if NCURSES_XNAMES + tp->num_Booleans = BOOLCOUNT; + tp->num_Numbers = NUMCOUNT; + tp->num_Strings = STRCOUNT; + tp->ext_Booleans = 0; + tp->ext_Numbers = 0; + tp->ext_Strings = 0; +#endif + if (tp->Booleans == 0) + TYPE_MALLOC(NCURSES_SBOOL, BOOLCOUNT, tp->Booleans); + if (tp->Numbers == 0) + TYPE_MALLOC(NCURSES_INT2, NUMCOUNT, tp->Numbers); + if (tp->Strings == 0) + TYPE_MALLOC(char *, STRCOUNT, tp->Strings); + + for_each_boolean(i, tp) + tp->Booleans[i] = FALSE; + + for_each_number(i, tp) + tp->Numbers[i] = ABSENT_NUMERIC; + + for_each_string(i, tp) + tp->Strings[i] = ABSENT_STRING; + + DEBUG(2, (T_RETURN(""))); +} + +#if NCURSES_USE_DATABASE +#if NCURSES_XNAMES +static bool +valid_shorts(char *buffer, int limit) +{ + bool result = FALSE; + int n; + for (n = 0; n < limit; ++n) { + if (MyNumber(buffer + (n * 2)) > 0) { + result = TRUE; + break; + } + } + return result; +} +#endif + +/* + * Return TGETENT_YES if read, TGETENT_NO if not found or garbled. + */ +NCURSES_EXPORT(int) +_nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit) +{ + int offset = 0; + int name_size, bool_count, num_count, str_count, str_size; + int i; + char buf[MAX_ENTRY_SIZE + 2]; + char *string_table; + unsigned want, have; + size_t (*convert_numbers) (char *, NCURSES_INT2 *, int); + int size_of_numbers; + int max_entry_size = MAX_ENTRY_SIZE; + + TR(TRACE_DATABASE, + (T_CALLED("_nc_read_termtype(ptr=%p, buffer=%p, limit=%d)"), + (void *) ptr, buffer, limit)); + + TR(TRACE_DATABASE, ("READ termtype header @%d", offset)); + + memset(ptr, 0, sizeof(*ptr)); + + /* grab the header */ + if (!read_shorts(buf, 6) + || !IS_TIC_MAGIC(buf)) { + returnDB(TGETENT_NO); + } +#if NCURSES_EXT_NUMBERS + if (LOW_MSB(buf) == MAGIC2) { + convert_numbers = convert_32bits; + size_of_numbers = SIZEOF_INT2; + } else { + max_entry_size = MAX_ENTRY_SIZE1; + convert_numbers = convert_16bits; + size_of_numbers = SIZEOF_SHORT; + } +#else + if (LOW_MSB(buf) == MAGIC2) { + convert_numbers = convert_32bits; + size_of_numbers = SIZEOF_32BITS; + } else { + convert_numbers = convert_16bits; + size_of_numbers = SIZEOF_INT2; + } +#endif + + /* *INDENT-EQLS* */ + name_size = MyNumber(buf + 2); + bool_count = MyNumber(buf + 4); + num_count = MyNumber(buf + 6); + str_count = MyNumber(buf + 8); + str_size = MyNumber(buf + 10); + + TR(TRACE_DATABASE, + ("TERMTYPE name_size=%d, bool=%d/%d, num=%d/%d str=%d/%d(%d)", + name_size, bool_count, BOOLCOUNT, num_count, NUMCOUNT, + str_count, STRCOUNT, str_size)); + if (name_size < 0 + || bool_count < 0 + || num_count < 0 + || str_count < 0 + || str_size < 0) { + returnDB(TGETENT_NO); + } + + want = (unsigned) (str_size + name_size + 1); + /* try to allocate space for the string table */ + if (str_count * SIZEOF_SHORT >= max_entry_size + || (string_table = typeMalloc(char, want)) == 0) { + returnDB(TGETENT_NO); + } + + /* grab the name (a null-terminated string) */ + want = min(MAX_NAME_SIZE, (unsigned) name_size); + ptr->str_table = string_table; + ptr->term_names = string_table; + if ((have = (unsigned) Read(ptr->term_names, want)) != want) { + memset(ptr->term_names + have, 0, (size_t) (want - have)); + } + ptr->term_names[want] = '\0'; + string_table += (want + 1); + + if (have > MAX_NAME_SIZE) + offset = (int) (have - MAX_NAME_SIZE); + + /* grab the booleans */ + TYPE_CALLOC(NCURSES_SBOOL, max(BOOLCOUNT, bool_count), ptr->Booleans); + if (Read(ptr->Booleans, (unsigned) bool_count) < bool_count) { + returnDB(TGETENT_NO); + } + + /* + * If booleans end on an odd byte, skip it. The machine they + * originally wrote terminfo on must have been a 16-bit + * word-oriented machine that would trap out if you tried a + * word access off a 2-byte boundary. + */ + even_boundary(name_size + bool_count); + + /* grab the numbers */ + TYPE_CALLOC(NCURSES_INT2, max(NUMCOUNT, num_count), ptr->Numbers); + if (!read_numbers(buf, num_count)) { + returnDB(TGETENT_NO); + } + convert_numbers(buf, ptr->Numbers, num_count); + + TYPE_CALLOC(char *, max(STRCOUNT, str_count), ptr->Strings); + + if (str_count) { + /* grab the string offsets */ + if (!read_shorts(buf, str_count)) { + returnDB(TGETENT_NO); + } + /* finally, grab the string table itself */ + if (Read(string_table, (unsigned) str_size) != str_size) { + returnDB(TGETENT_NO); + } + convert_strings(buf, ptr->Strings, str_count, str_size, string_table); + } +#if NCURSES_XNAMES + + ptr->num_Booleans = BOOLCOUNT; + ptr->num_Numbers = NUMCOUNT; + ptr->num_Strings = STRCOUNT; + + /* + * Read extended entries, if any, after the normal end of terminfo data. + */ + even_boundary(str_size); + TR(TRACE_DATABASE, ("READ extended_header @%d", offset)); + if (_nc_user_definable && read_shorts(buf, 5) && valid_shorts(buf, 5)) { + int ext_bool_count = MyNumber(buf + 0); + int ext_num_count = MyNumber(buf + 2); + int ext_str_count = MyNumber(buf + 4); + int ext_str_usage = MyNumber(buf + 6); + int ext_str_limit = MyNumber(buf + 8); + unsigned need = (unsigned) (ext_bool_count + ext_num_count + ext_str_count); + int base = 0; + + if ((int) need >= (max_entry_size / 2) + || ext_str_usage >= max_entry_size + || ext_str_limit >= max_entry_size + || ext_bool_count < 0 + || ext_num_count < 0 + || ext_str_count < 0 + || ext_str_usage < 0 + || ext_str_limit < 0) { + returnDB(TGETENT_NO); + } + + ptr->num_Booleans = UShort(BOOLCOUNT + ext_bool_count); + ptr->num_Numbers = UShort(NUMCOUNT + ext_num_count); + ptr->num_Strings = UShort(STRCOUNT + ext_str_count); + + TYPE_REALLOC(NCURSES_SBOOL, ptr->num_Booleans, ptr->Booleans); + TYPE_REALLOC(NCURSES_INT2, ptr->num_Numbers, ptr->Numbers); + TYPE_REALLOC(char *, ptr->num_Strings, ptr->Strings); + + TR(TRACE_DATABASE, ("extended header: " + "bool %d, " + "number %d, " + "string %d(%d:%d)", + ext_bool_count, + ext_num_count, + ext_str_count, + ext_str_usage, + ext_str_limit)); + + TR(TRACE_DATABASE, ("READ %d extended-booleans @%d", + ext_bool_count, offset)); + if ((ptr->ext_Booleans = UShort(ext_bool_count)) != 0) { + if (Read(ptr->Booleans + BOOLCOUNT, (unsigned) + ext_bool_count) != ext_bool_count) { + returnDB(TGETENT_NO); + } + } + even_boundary(ext_bool_count); + + TR(TRACE_DATABASE, ("READ %d extended-numbers @%d", + ext_num_count, offset)); + if ((ptr->ext_Numbers = UShort(ext_num_count)) != 0) { + if (!read_numbers(buf, ext_num_count)) { + returnDB(TGETENT_NO); + } + TR(TRACE_DATABASE, ("Before converting extended-numbers")); + convert_numbers(buf, ptr->Numbers + NUMCOUNT, ext_num_count); + } + + TR(TRACE_DATABASE, ("READ extended-offsets @%d", offset)); + if ((ext_str_count + (int) need) >= (max_entry_size / 2)) { + returnDB(TGETENT_NO); + } + if ((ext_str_count || need) + && !read_shorts(buf, ext_str_count + (int) need)) { + returnDB(TGETENT_NO); + } + + TR(TRACE_DATABASE, ("READ %d bytes of extended-strings @%d", + ext_str_limit, offset)); + + if (ext_str_limit) { + ptr->ext_str_table = typeMalloc(char, (size_t) ext_str_limit); + if (ptr->ext_str_table == 0) { + returnDB(TGETENT_NO); + } + if (Read(ptr->ext_str_table, (unsigned) ext_str_limit) != ext_str_limit) { + returnDB(TGETENT_NO); + } + TR(TRACE_DATABASE, ("first extended-string is %s", _nc_visbuf(ptr->ext_str_table))); + } + + if ((ptr->ext_Strings = UShort(ext_str_count)) != 0) { + int check = (ext_bool_count + ext_num_count + ext_str_count); + + TR(TRACE_DATABASE, + ("Before computing extended-string capabilities " + "str_count=%d, ext_str_count=%d", + str_count, ext_str_count)); + convert_strings(buf, ptr->Strings + str_count, ext_str_count, + ext_str_limit, ptr->ext_str_table); + for (i = ext_str_count - 1; i >= 0; i--) { + TR(TRACE_DATABASE, ("MOVE from [%d:%d] %s", + i, i + str_count, + _nc_visbuf(ptr->Strings[i + str_count]))); + ptr->Strings[i + STRCOUNT] = ptr->Strings[i + str_count]; + if (VALID_STRING(ptr->Strings[i + STRCOUNT])) { + base += (int) (strlen(ptr->Strings[i + STRCOUNT]) + 1); + ++check; + } + TR(TRACE_DATABASE, ("... to [%d] %s", + i + STRCOUNT, + _nc_visbuf(ptr->Strings[i + STRCOUNT]))); + } + TR(TRACE_DATABASE, ("Check table-size: %d/%d", check, ext_str_usage)); +#if 0 + /* + * Phasing in a proper check will be done "later". + */ + if (check != ext_str_usage) + returnDB(TGETENT_NO); +#endif + } + + if (need) { + if (ext_str_count >= (max_entry_size / 2)) { + returnDB(TGETENT_NO); + } + TYPE_CALLOC(char *, need, ptr->ext_Names); + TR(TRACE_DATABASE, + ("ext_NAMES starting @%d in extended_strings, first = %s", + base, _nc_visbuf(ptr->ext_str_table + base))); + convert_strings(buf + (2 * ext_str_count), + ptr->ext_Names, + (int) need, + ext_str_limit, ptr->ext_str_table + base); + } + + TR(TRACE_DATABASE, + ("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)", + ptr->num_Booleans, ptr->ext_Booleans, + ptr->num_Numbers, ptr->ext_Numbers, + ptr->num_Strings, ptr->ext_Strings)); + + TR(TRACE_DATABASE, ("extend: num_Booleans:%d", ptr->num_Booleans)); + } else +#endif /* NCURSES_XNAMES */ + { + TR(TRACE_DATABASE, ("...done reading terminfo bool %d num %d str %d", + bool_count, num_count, str_count)); +#if NCURSES_XNAMES + TR(TRACE_DATABASE, ("normal: num_Booleans:%d", ptr->num_Booleans)); +#endif + } + + for (i = bool_count; i < BOOLCOUNT; i++) + ptr->Booleans[i] = FALSE; + for (i = num_count; i < NUMCOUNT; i++) + ptr->Numbers[i] = ABSENT_NUMERIC; + for (i = str_count; i < STRCOUNT; i++) + ptr->Strings[i] = ABSENT_STRING; + + returnDB(TGETENT_YES); +} + +/* + * int + * _nc_read_file_entry(filename, ptr) + * + * Read the compiled terminfo entry in the given file into the + * structure pointed to by ptr, allocating space for the string + * table. + */ +NCURSES_EXPORT(int) +_nc_read_file_entry(const char *const filename, TERMTYPE2 *ptr) +/* return 1 if read, 0 if not found or garbled */ +{ + FILE *fp = 0; + int code; + + if (_nc_access(filename, R_OK) < 0 + || (fp = safe_fopen(filename, BIN_R)) == 0) { + TR(TRACE_DATABASE, ("cannot open terminfo %s (errno=%d)", filename, errno)); + code = TGETENT_NO; + } else { + int limit; + char buffer[MAX_ENTRY_SIZE + 1]; + + if ((limit = (int) fread(buffer, sizeof(char), sizeof(buffer), fp)) + > 0) { + + TR(TRACE_DATABASE, ("read terminfo %s", filename)); + if ((code = _nc_read_termtype(ptr, buffer, limit)) == TGETENT_NO) { + _nc_free_termtype2(ptr); + } + } else { + code = TGETENT_NO; + } + fclose(fp); + } + + return (code); +} + +#if USE_HASHED_DB +/* + * Return if if we can build the filename of a ".db" file. + */ +static bool +make_db_filename(char *filename, unsigned limit, const char *const path) +{ + static const char suffix[] = DBM_SUFFIX; + + size_t lens = sizeof(suffix) - 1; + size_t size = strlen(path); + size_t test = lens + size; + bool result = FALSE; + + if (test < limit) { + if (size >= lens + && !strcmp(path + size - lens, suffix)) + _nc_STRCPY(filename, path, limit); + else + _nc_SPRINTF(filename, _nc_SLIMIT(limit) "%s%s", path, suffix); + result = TRUE; + } + return result; +} +#endif + +/* + * Return true if we can build the name of a filesystem entry. + */ +static bool +make_dir_filename(char *filename, + unsigned limit, + const char *const path, + const char *name) +{ + bool result = FALSE; + +#if NCURSES_USE_TERMCAP + if (_nc_is_dir_path(path)) +#endif + { + unsigned need = (unsigned) (LEAF_LEN + 3 + strlen(path) + strlen(name)); + + if (need <= limit) { + _nc_SPRINTF(filename, _nc_SLIMIT(limit) + "%s/" LEAF_FMT "/%s", path, *name, name); + result = TRUE; + } + } + return result; +} + +static int +lookup_b64(int *target, const char **source) +{ + int result = 3; + int j; + /* + * ncurses' quickdump writes only RFC 4648 "url/filename-safe" encoding, + * but accepts RFC-3548 + */ + for (j = 0; j < 4; ++j) { + int ch = UChar(**source); + *source += 1; + if (ch >= 'A' && ch <= 'Z') { + target[j] = (ch - 'A'); + } else if (ch >= 'a' && ch <= 'z') { + target[j] = 26 + (ch - 'a'); + } else if (ch >= '0' && ch <= '9') { + target[j] = 52 + (ch - '0'); + } else if (ch == '-' || ch == '+') { + target[j] = 62; + } else if (ch == '_' || ch == '/') { + target[j] = 63; + } else if (ch == '=') { + target[j] = 64; + result--; + } else { + result = -1; + break; + } + } + return result; +} + +static int +decode_hex(const char **source) +{ + int result = 0; + int nibble; + + for (nibble = 0; nibble < 2; ++nibble) { + int ch = UChar(**source); + result <<= 4; + *source += 1; + if (ch >= '0' && ch <= '9') { + ch -= '0'; + } else if (ch >= 'A' && ch <= 'F') { + ch -= 'A'; + ch += 10; + } else if (ch >= 'a' && ch <= 'f') { + ch -= 'a'; + ch += 10; + } else { + result = -1; + break; + } + result |= ch; + } + return result; +} + +static int +decode_quickdump(char *target, const char *source) +{ + char *base = target; + int result = 0; + + if (!strncmp(source, "b64:", (size_t) 4)) { + source += 4; + while (*source != '\0') { + int bits[4]; + int ch = lookup_b64(bits, &source); + if (ch < 0 || (ch + target - base) >= MAX_ENTRY_SIZE) { + result = 0; + break; + } + result += ch; + *target++ = (char) ((bits[0] << 2) | (bits[1] >> 4)); + if (bits[2] < 64) { + *target++ = (char) ((bits[1] << 4) | (bits[2] >> 2)); + if (bits[3] < 64) { + *target++ = (char) ((bits[2] << 6) | bits[3]); + } + } + } + } else if (!strncmp(source, "hex:", (size_t) 4)) { + source += 4; + while (*source != '\0') { + int ch = decode_hex(&source); + if (ch < 0 || (target - base) >= MAX_ENTRY_SIZE) { + result = 0; + break; + } + *target++ = (char) ch; + ++result; + } + } + return result; +} + +/* + * Build a terminfo pathname and try to read the data. Returns TGETENT_YES on + * success, TGETENT_NO on failure. + */ +static int +_nc_read_tic_entry(char *filename, + unsigned limit, + const char *const path, + const char *name, + TERMTYPE2 *const tp) +{ + int code = TGETENT_NO; +#if USE_HASHED_DB + DB *capdbp; +#endif + char buffer[MAX_ENTRY_SIZE + 1]; + int used; + + TR(TRACE_DATABASE, + (T_CALLED("_nc_read_tic_entry(file=%p, path=%s, name=%s)"), + filename, path, name)); + + assert(TGETENT_YES == TRUE); /* simplify call for _nc_name_match */ + + if ((used = decode_quickdump(buffer, path)) != 0 + && (code = _nc_read_termtype(tp, buffer, used)) == TGETENT_YES + && (code = _nc_name_match(tp->term_names, name, "|")) == TGETENT_YES) { + TR(TRACE_DATABASE, ("loaded quick-dump for %s", name)); + /* shorten name shown by infocmp */ + _nc_STRCPY(filename, "$TERMINFO", limit); + } else +#if USE_HASHED_DB + if (make_db_filename(filename, limit, path) + && (capdbp = _nc_db_open(filename, FALSE)) != 0) { + + DBT key, data; + int reccnt = 0; + char *save = strdup(name); + + memset(&key, 0, sizeof(key)); + key.data = save; + key.size = strlen(save); + + /* + * This lookup could return termcap data, which we do not want. We are + * looking for compiled (binary) terminfo data. + * + * cgetent uses a two-level lookup. On the first it uses the given + * name to return a record containing only the aliases for an entry. + * On the second (using that list of aliases as a key), it returns the + * content of the terminal description. We expect second lookup to + * return data beginning with the same set of aliases. + * + * For compiled terminfo, the list of aliases in the second case will + * be null-terminated. A termcap entry will not be, and will run on + * into the description. So we can easily distinguish between the two + * (source/binary) by checking the lengths. + */ + while (_nc_db_get(capdbp, &key, &data) == 0) { + char *have = (char *) data.data; + used = (int) data.size - 1; + + if (*have++ == 0) { + if (data.size > key.size + && IS_TIC_MAGIC(have)) { + code = _nc_read_termtype(tp, have, used); + if (code == TGETENT_NO) { + _nc_free_termtype2(tp); + } + } + break; + } + + /* + * Just in case we have a corrupt database, do not waste time with + * it. + */ + if (++reccnt >= 3) + break; + + /* + * Prepare for the second level. + */ + key.data = have; + key.size = used; + } + + free(save); + } else /* may be either filesystem or flat file */ +#endif + if (make_dir_filename(filename, limit, path, name)) { + code = _nc_read_file_entry(filename, tp); + } +#if NCURSES_USE_TERMCAP + if (code != TGETENT_YES) { + code = _nc_read_termcap_entry(name, tp); + _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX) + "%.*s", PATH_MAX - 1, _nc_get_source()); + } +#endif + returnDB(code); +} +#endif /* NCURSES_USE_DATABASE */ + +/* + * Find and read the compiled entry for a given terminal type, if it exists. + * We take pains here to make sure no combination of environment variables and + * terminal type name can be used to overrun the file buffer. + */ +NCURSES_EXPORT(int) +_nc_read_entry2(const char *const name, char *const filename, TERMTYPE2 *const tp) +{ + int code = TGETENT_NO; + + if (name == 0) + return _nc_read_entry2("", filename, tp); + + _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX) + "%.*s", PATH_MAX - 1, name); + + if (strlen(name) == 0 + || strcmp(name, ".") == 0 + || strcmp(name, "..") == 0 + || _nc_pathlast(name) != 0 + || strchr(name, NCURSES_PATHSEP) != 0) { + TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", name)); + } else { +#if NCURSES_USE_DATABASE + DBDIRS state; + int offset; + const char *path; + + _nc_first_db(&state, &offset); + code = TGETENT_ERR; + while ((path = _nc_next_db(&state, &offset)) != 0) { + code = _nc_read_tic_entry(filename, PATH_MAX, path, name, tp); + if (code == TGETENT_YES) { + _nc_last_db(); + break; + } + } +#elif NCURSES_USE_TERMCAP + if (code != TGETENT_YES) { + code = _nc_read_termcap_entry(name, tp); + _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX) + "%.*s", PATH_MAX - 1, _nc_get_source()); + } +#endif + } + return code; +} + +#if NCURSES_EXT_NUMBERS +/* + * This entrypoint is used by tack 1.07 + */ +NCURSES_EXPORT(int) +_nc_read_entry(const char *const name, char *const filename, TERMTYPE *const tp) +{ + TERMTYPE2 dummy; + int rc; + rc = _nc_read_entry2(name, filename, &dummy); + if (rc == TGETENT_YES) + _nc_export_termtype2(tp, &dummy); + return rc; +} +#endif diff --git a/third_party/ncurses/read_termcap.c b/third_party/ncurses/read_termcap.c new file mode 100644 index 000000000..d204cca6e --- /dev/null +++ b/third_party/ncurses/read_termcap.c @@ -0,0 +1,4055 @@ +__static_yoink("usr/share/terminfo/5/5630DMD-24"); +__static_yoink("usr/share/terminfo/5/5620"); +__static_yoink("usr/share/terminfo/5/5051"); +__static_yoink("usr/share/terminfo/5/5410-w"); +__static_yoink("usr/share/terminfo/5/5630-24"); +__static_yoink("usr/share/terminfo/k/konsole-solaris"); +__static_yoink("usr/share/terminfo/k/klone+acs"); +__static_yoink("usr/share/terminfo/k/konsole"); +__static_yoink("usr/share/terminfo/k/kitty"); +__static_yoink("usr/share/terminfo/k/kterm-co"); +__static_yoink("usr/share/terminfo/k/klone+sgr8"); +__static_yoink("usr/share/terminfo/k/kterm"); +__static_yoink("usr/share/terminfo/k/konsole-xf4x"); +__static_yoink("usr/share/terminfo/k/kds7372"); +__static_yoink("usr/share/terminfo/k/kermit"); +__static_yoink("usr/share/terminfo/k/kon"); +__static_yoink("usr/share/terminfo/k/konsole-vt420pc"); +__static_yoink("usr/share/terminfo/k/klone+sgr-dumb"); +__static_yoink("usr/share/terminfo/k/kitty-direct"); +__static_yoink("usr/share/terminfo/k/kermit-am"); +__static_yoink("usr/share/terminfo/k/kon2"); +__static_yoink("usr/share/terminfo/k/konsole-linux"); +__static_yoink("usr/share/terminfo/k/kds6402"); +__static_yoink("usr/share/terminfo/k/ktm"); +__static_yoink("usr/share/terminfo/k/kt7ix"); +__static_yoink("usr/share/terminfo/k/kds7372-w"); +__static_yoink("usr/share/terminfo/k/kaypro2"); +__static_yoink("usr/share/terminfo/k/konsole-xf3x"); +__static_yoink("usr/share/terminfo/k/konsole-16color"); +__static_yoink("usr/share/terminfo/k/konsole-256color"); +__static_yoink("usr/share/terminfo/k/k45"); +__static_yoink("usr/share/terminfo/k/konsole-vt100"); +__static_yoink("usr/share/terminfo/k/konsole+pcfkeys"); +__static_yoink("usr/share/terminfo/k/kaypro"); +__static_yoink("usr/share/terminfo/k/konsole-base"); +__static_yoink("usr/share/terminfo/k/konsole-direct"); +__static_yoink("usr/share/terminfo/k/klone+color"); +__static_yoink("usr/share/terminfo/k/kitty+common"); +__static_yoink("usr/share/terminfo/k/klone+sgr"); +__static_yoink("usr/share/terminfo/k/klone+koi8acs"); +__static_yoink("usr/share/terminfo/k/kt7"); +__static_yoink("usr/share/terminfo/k/kitty+setal"); +__static_yoink("usr/share/terminfo/k/kterm-color"); +__static_yoink("usr/share/terminfo/k/kvt"); +__static_yoink("usr/share/terminfo/2/2621"); +__static_yoink("usr/share/terminfo/2/2621a"); +__static_yoink("usr/share/terminfo/2/2621A"); +__static_yoink("usr/share/terminfo/2/2621-wl"); +__static_yoink("usr/share/terminfo/q/qnxt"); +__static_yoink("usr/share/terminfo/q/qvt119+"); +__static_yoink("usr/share/terminfo/q/qume5"); +__static_yoink("usr/share/terminfo/q/qnx4"); +__static_yoink("usr/share/terminfo/q/qdss"); +__static_yoink("usr/share/terminfo/q/qansi-w"); +__static_yoink("usr/share/terminfo/q/qnx"); +__static_yoink("usr/share/terminfo/q/qvt119p"); +__static_yoink("usr/share/terminfo/q/qvt203"); +__static_yoink("usr/share/terminfo/q/qvt101p"); +__static_yoink("usr/share/terminfo/q/qvt119p-25-w"); +__static_yoink("usr/share/terminfo/q/qnxtmono"); +__static_yoink("usr/share/terminfo/q/qvt203-25"); +__static_yoink("usr/share/terminfo/q/qvt103"); +__static_yoink("usr/share/terminfo/q/qnxt2"); +__static_yoink("usr/share/terminfo/q/qvt119p-w"); +__static_yoink("usr/share/terminfo/q/qnxt4"); +__static_yoink("usr/share/terminfo/q/qvt103-w"); +__static_yoink("usr/share/terminfo/q/qansi"); +__static_yoink("usr/share/terminfo/q/qvt203-w"); +__static_yoink("usr/share/terminfo/q/qvt203-w-am"); +__static_yoink("usr/share/terminfo/q/qnxm"); +__static_yoink("usr/share/terminfo/q/qvt119+-25-w"); +__static_yoink("usr/share/terminfo/q/qvt102"); +__static_yoink("usr/share/terminfo/q/qansi-m"); +__static_yoink("usr/share/terminfo/q/qvt119"); +__static_yoink("usr/share/terminfo/q/qnxw"); +__static_yoink("usr/share/terminfo/q/qvt119-w"); +__static_yoink("usr/share/terminfo/q/qvt101+"); +__static_yoink("usr/share/terminfo/q/qdcons"); +__static_yoink("usr/share/terminfo/q/qvt119+-25"); +__static_yoink("usr/share/terminfo/q/qvt203+"); +__static_yoink("usr/share/terminfo/q/qvt203-25-w"); +__static_yoink("usr/share/terminfo/q/qvt108"); +__static_yoink("usr/share/terminfo/q/qvt119p-25"); +__static_yoink("usr/share/terminfo/q/qume"); +__static_yoink("usr/share/terminfo/q/qvt119+-w"); +__static_yoink("usr/share/terminfo/q/qvt119-25-w"); +__static_yoink("usr/share/terminfo/q/qansi-t"); +__static_yoink("usr/share/terminfo/q/qansi-g"); +__static_yoink("usr/share/terminfo/q/qvt101"); +__static_yoink("usr/share/terminfo/m/mlterm"); +__static_yoink("usr/share/terminfo/m/mai"); +__static_yoink("usr/share/terminfo/m/msk227am"); +__static_yoink("usr/share/terminfo/m/minix-1.5"); +__static_yoink("usr/share/terminfo/m/ms-vt100"); +__static_yoink("usr/share/terminfo/m/minitel1"); +__static_yoink("usr/share/terminfo/m/mintty"); +__static_yoink("usr/share/terminfo/m/mgr-sun"); +__static_yoink("usr/share/terminfo/m/mime-hb"); +__static_yoink("usr/share/terminfo/m/msk227"); +__static_yoink("usr/share/terminfo/m/minitel1b-nb"); +__static_yoink("usr/share/terminfo/m/mach"); +__static_yoink("usr/share/terminfo/m/microterm"); +__static_yoink("usr/share/terminfo/m/mod"); +__static_yoink("usr/share/terminfo/m/mvterm"); +__static_yoink("usr/share/terminfo/m/minitel1b-80"); +__static_yoink("usr/share/terminfo/m/ms-vt100-color"); +__static_yoink("usr/share/terminfo/m/ms-vt100+"); +__static_yoink("usr/share/terminfo/m/mterm-ansi"); +__static_yoink("usr/share/terminfo/m/mime"); +__static_yoink("usr/share/terminfo/m/microterm5"); +__static_yoink("usr/share/terminfo/m/masscomp1"); +__static_yoink("usr/share/terminfo/m/m2-nam"); +__static_yoink("usr/share/terminfo/m/macintosh"); +__static_yoink("usr/share/terminfo/m/mime3ax"); +__static_yoink("usr/share/terminfo/m/msk22714"); +__static_yoink("usr/share/terminfo/m/minix-old-am"); +__static_yoink("usr/share/terminfo/m/mskermit227am"); +__static_yoink("usr/share/terminfo/m/mime-3ax"); +__static_yoink("usr/share/terminfo/m/mgterm"); +__static_yoink("usr/share/terminfo/m/mintty+common"); +__static_yoink("usr/share/terminfo/m/minitel1b"); +__static_yoink("usr/share/terminfo/m/mlterm+pcfkeys"); +__static_yoink("usr/share/terminfo/m/mimei"); +__static_yoink("usr/share/terminfo/m/minitel1-nb"); +__static_yoink("usr/share/terminfo/m/minix"); +__static_yoink("usr/share/terminfo/m/mime2a-v"); +__static_yoink("usr/share/terminfo/m/mime2a"); +__static_yoink("usr/share/terminfo/m/mac"); +__static_yoink("usr/share/terminfo/m/mod24"); +__static_yoink("usr/share/terminfo/m/mintty-direct"); +__static_yoink("usr/share/terminfo/m/mach-color"); +__static_yoink("usr/share/terminfo/m/minix-3.0"); +__static_yoink("usr/share/terminfo/m/minitel-2-nam"); +__static_yoink("usr/share/terminfo/m/mlterm-256color"); +__static_yoink("usr/share/terminfo/m/mouse-sun"); +__static_yoink("usr/share/terminfo/m/mskermit22714"); +__static_yoink("usr/share/terminfo/m/mlterm3"); +__static_yoink("usr/share/terminfo/m/minix-1.7"); +__static_yoink("usr/share/terminfo/m/mm314"); +__static_yoink("usr/share/terminfo/m/mach-gnu-color"); +__static_yoink("usr/share/terminfo/m/mime1"); +__static_yoink("usr/share/terminfo/m/mm340"); +__static_yoink("usr/share/terminfo/m/mosh-256color"); +__static_yoink("usr/share/terminfo/m/ms-terminal"); +__static_yoink("usr/share/terminfo/m/mt4520-rv"); +__static_yoink("usr/share/terminfo/m/mime2a-s"); +__static_yoink("usr/share/terminfo/m/mosh"); +__static_yoink("usr/share/terminfo/m/mt-70"); +__static_yoink("usr/share/terminfo/m/mrxvt-256color"); +__static_yoink("usr/share/terminfo/m/mimeii"); +__static_yoink("usr/share/terminfo/m/mime-fb"); +__static_yoink("usr/share/terminfo/m/modgraph48"); +__static_yoink("usr/share/terminfo/m/mono-emx"); +__static_yoink("usr/share/terminfo/m/minitel2-80"); +__static_yoink("usr/share/terminfo/m/mlterm2"); +__static_yoink("usr/share/terminfo/m/megatek"); +__static_yoink("usr/share/terminfo/m/masscomp2"); +__static_yoink("usr/share/terminfo/m/mgt"); +__static_yoink("usr/share/terminfo/m/minix-old"); +__static_yoink("usr/share/terminfo/m/microb"); +__static_yoink("usr/share/terminfo/m/mdl110"); +__static_yoink("usr/share/terminfo/m/mime2"); +__static_yoink("usr/share/terminfo/m/macterminal-w"); +__static_yoink("usr/share/terminfo/m/masscomp"); +__static_yoink("usr/share/terminfo/m/modgraph2"); +__static_yoink("usr/share/terminfo/m/memhp"); +__static_yoink("usr/share/terminfo/m/mskermit227"); +__static_yoink("usr/share/terminfo/m/mgr"); +__static_yoink("usr/share/terminfo/m/minitel"); +__static_yoink("usr/share/terminfo/m/mach-gnu"); +__static_yoink("usr/share/terminfo/m/mime3a"); +__static_yoink("usr/share/terminfo/m/mime340"); +__static_yoink("usr/share/terminfo/m/mterm"); +__static_yoink("usr/share/terminfo/m/modgraph"); +__static_yoink("usr/share/terminfo/m/mlterm-direct"); +__static_yoink("usr/share/terminfo/m/mt70"); +__static_yoink("usr/share/terminfo/m/minitel12-80"); +__static_yoink("usr/share/terminfo/m/ms-vt-utf8"); +__static_yoink("usr/share/terminfo/m/mach-bold"); +__static_yoink("usr/share/terminfo/m/mac-w"); +__static_yoink("usr/share/terminfo/m/morphos"); +__static_yoink("usr/share/terminfo/m/microbee"); +__static_yoink("usr/share/terminfo/m/mrxvt"); +__static_yoink("usr/share/terminfo/m/mime314"); +__static_yoink("usr/share/terminfo/m/minitel-2"); +__static_yoink("usr/share/terminfo/m/mgr-linux"); +__static_yoink("usr/share/terminfo/9/955-w"); +__static_yoink("usr/share/terminfo/9/955-hb"); +__static_yoink("usr/share/terminfo/9/9term"); +__static_yoink("usr/share/terminfo/l/linux+decid"); +__static_yoink("usr/share/terminfo/l/linux-nic"); +__static_yoink("usr/share/terminfo/l/linux-m"); +__static_yoink("usr/share/terminfo/l/luna68k"); +__static_yoink("usr/share/terminfo/l/linux2.6"); +__static_yoink("usr/share/terminfo/l/la120"); +__static_yoink("usr/share/terminfo/l/linux-koi8r"); +__static_yoink("usr/share/terminfo/l/linux-c"); +__static_yoink("usr/share/terminfo/l/lpr"); +__static_yoink("usr/share/terminfo/l/linux-c-nc"); +__static_yoink("usr/share/terminfo/l/lisaterm"); +__static_yoink("usr/share/terminfo/l/linux-basic"); +__static_yoink("usr/share/terminfo/l/lisa"); +__static_yoink("usr/share/terminfo/l/lft"); +__static_yoink("usr/share/terminfo/l/liswb"); +__static_yoink("usr/share/terminfo/l/linux+sfkeys"); +__static_yoink("usr/share/terminfo/l/linux3.0"); +__static_yoink("usr/share/terminfo/l/ln03"); +__static_yoink("usr/share/terminfo/l/linux"); +__static_yoink("usr/share/terminfo/l/linux2.6.26"); +__static_yoink("usr/share/terminfo/l/lft-pc850"); +__static_yoink("usr/share/terminfo/l/linux-m1"); +__static_yoink("usr/share/terminfo/l/linux-lat"); +__static_yoink("usr/share/terminfo/l/luna"); +__static_yoink("usr/share/terminfo/l/linux-m1b"); +__static_yoink("usr/share/terminfo/l/lisaterm-w"); +__static_yoink("usr/share/terminfo/l/linux-m2"); +__static_yoink("usr/share/terminfo/l/ln03-w"); +__static_yoink("usr/share/terminfo/l/linux-vt"); +__static_yoink("usr/share/terminfo/l/linux-s"); +__static_yoink("usr/share/terminfo/l/linux2.2"); +__static_yoink("usr/share/terminfo/l/linux-16color"); +__static_yoink("usr/share/terminfo/l/layer"); +__static_yoink("usr/share/terminfo/l/linux-koi8"); +__static_yoink("usr/share/terminfo/v/vt220-8"); +__static_yoink("usr/share/terminfo/v/vt340"); +__static_yoink("usr/share/terminfo/v/vsc"); +__static_yoink("usr/share/terminfo/v/vte-2007"); +__static_yoink("usr/share/terminfo/v/vt510pcdos"); +__static_yoink("usr/share/terminfo/v/vi200-f"); +__static_yoink("usr/share/terminfo/v/vt52"); +__static_yoink("usr/share/terminfo/v/vt132"); +__static_yoink("usr/share/terminfo/v/vp90"); +__static_yoink("usr/share/terminfo/v/vt100+enq"); +__static_yoink("usr/share/terminfo/v/vt100+pfkeys"); +__static_yoink("usr/share/terminfo/v/vc103"); +__static_yoink("usr/share/terminfo/v/vi200"); +__static_yoink("usr/share/terminfo/v/vtnt"); +__static_yoink("usr/share/terminfo/v/vt400-24"); +__static_yoink("usr/share/terminfo/v/vt-61"); +__static_yoink("usr/share/terminfo/v/vt125"); +__static_yoink("usr/share/terminfo/v/vt420pc"); +__static_yoink("usr/share/terminfo/v/vt300-w-nam"); +__static_yoink("usr/share/terminfo/v/vt102-w"); +__static_yoink("usr/share/terminfo/v/vt100-am"); +__static_yoink("usr/share/terminfo/v/v200-nam"); +__static_yoink("usr/share/terminfo/v/vt100-w-nam"); +__static_yoink("usr/share/terminfo/v/vt320-w"); +__static_yoink("usr/share/terminfo/v/vc414"); +__static_yoink("usr/share/terminfo/v/vc303"); +__static_yoink("usr/share/terminfo/v/vt320"); +__static_yoink("usr/share/terminfo/v/vt100-w-am"); +__static_yoink("usr/share/terminfo/v/vanilla"); +__static_yoink("usr/share/terminfo/v/vt420pcdos"); +__static_yoink("usr/share/terminfo/v/vt100-bm-o"); +__static_yoink("usr/share/terminfo/v/vc203"); +__static_yoink("usr/share/terminfo/v/vt220"); +__static_yoink("usr/share/terminfo/v/vc303a"); +__static_yoink("usr/share/terminfo/v/vip-H"); +__static_yoink("usr/share/terminfo/v/vt100+fnkeys"); +__static_yoink("usr/share/terminfo/v/viewpoint60"); +__static_yoink("usr/share/terminfo/v/vt200-old"); +__static_yoink("usr/share/terminfo/v/vt320nam"); +__static_yoink("usr/share/terminfo/v/vte"); +__static_yoink("usr/share/terminfo/v/vt200-8"); +__static_yoink("usr/share/terminfo/v/viewdata"); +__static_yoink("usr/share/terminfo/v/vi50adm"); +__static_yoink("usr/share/terminfo/v/vi300"); +__static_yoink("usr/share/terminfo/v/vt220+cvis8"); +__static_yoink("usr/share/terminfo/v/vt102-nsgr"); +__static_yoink("usr/share/terminfo/v/vt200-8bit"); +__static_yoink("usr/share/terminfo/v/vt300-w"); +__static_yoink("usr/share/terminfo/v/vte-direct"); +__static_yoink("usr/share/terminfo/v/vc403a"); +__static_yoink("usr/share/terminfo/v/vscode-direct"); +__static_yoink("usr/share/terminfo/v/v5410"); +__static_yoink("usr/share/terminfo/v/vt220-js"); +__static_yoink("usr/share/terminfo/v/vt100-bm"); +__static_yoink("usr/share/terminfo/v/vt220-base"); +__static_yoink("usr/share/terminfo/v/vt510"); +__static_yoink("usr/share/terminfo/v/vt525"); +__static_yoink("usr/share/terminfo/v/vt131"); +__static_yoink("usr/share/terminfo/v/vt102"); +__static_yoink("usr/share/terminfo/v/vt50h"); +__static_yoink("usr/share/terminfo/v/vt420f"); +__static_yoink("usr/share/terminfo/v/visa50"); +__static_yoink("usr/share/terminfo/v/vt320-w-nam"); +__static_yoink("usr/share/terminfo/v/vt52-basic"); +__static_yoink("usr/share/terminfo/v/vte-2018"); +__static_yoink("usr/share/terminfo/v/vt100"); +__static_yoink("usr/share/terminfo/v/vt400"); +__static_yoink("usr/share/terminfo/v/vip-Hw"); +__static_yoink("usr/share/terminfo/v/visual603"); +__static_yoink("usr/share/terminfo/v/vt220-8bit"); +__static_yoink("usr/share/terminfo/v/vt61"); +__static_yoink("usr/share/terminfo/v/vi300-old"); +__static_yoink("usr/share/terminfo/v/vi200-rv"); +__static_yoink("usr/share/terminfo/v/vc404"); +__static_yoink("usr/share/terminfo/v/vt220d"); +__static_yoink("usr/share/terminfo/v/vip7800-w"); +__static_yoink("usr/share/terminfo/v/vip"); +__static_yoink("usr/share/terminfo/v/vapple"); +__static_yoink("usr/share/terminfo/v/vt220+vtedit"); +__static_yoink("usr/share/terminfo/v/vt330"); +__static_yoink("usr/share/terminfo/v/vt61.5"); +__static_yoink("usr/share/terminfo/v/vt50"); +__static_yoink("usr/share/terminfo/v/vt100+keypad"); +__static_yoink("usr/share/terminfo/v/vt220+keypad"); +__static_yoink("usr/share/terminfo/v/vc404-s"); +__static_yoink("usr/share/terminfo/v/vte-2008"); +__static_yoink("usr/share/terminfo/v/vt320-k311"); +__static_yoink("usr/share/terminfo/v/vt100-s"); +__static_yoink("usr/share/terminfo/v/vs100-x10"); +__static_yoink("usr/share/terminfo/v/viewdata-o"); +__static_yoink("usr/share/terminfo/v/versaterm"); +__static_yoink("usr/share/terminfo/v/vi50"); +__static_yoink("usr/share/terminfo/v/vwmterm"); +__static_yoink("usr/share/terminfo/v/venix"); +__static_yoink("usr/share/terminfo/v/vitty"); +__static_yoink("usr/share/terminfo/v/viewpoint90"); +__static_yoink("usr/share/terminfo/v/vt220-old"); +__static_yoink("usr/share/terminfo/v/vt100-nam"); +__static_yoink("usr/share/terminfo/v/vt200-w"); +__static_yoink("usr/share/terminfo/v/vt100-w-nav"); +__static_yoink("usr/share/terminfo/v/vt52+keypad"); +__static_yoink("usr/share/terminfo/v/vt100-putty"); +__static_yoink("usr/share/terminfo/v/vk100"); +__static_yoink("usr/share/terminfo/v/vt220+pcedit"); +__static_yoink("usr/share/terminfo/v/viewpoint"); +__static_yoink("usr/share/terminfo/v/vt200-js"); +__static_yoink("usr/share/terminfo/v/vt220-nam"); +__static_yoink("usr/share/terminfo/v/vt520"); +__static_yoink("usr/share/terminfo/v/vt100-w"); +__static_yoink("usr/share/terminfo/v/vt100-vb"); +__static_yoink("usr/share/terminfo/v/vs100"); +__static_yoink("usr/share/terminfo/v/vte-2017"); +__static_yoink("usr/share/terminfo/v/vt220+cvis"); +__static_yoink("usr/share/terminfo/v/vt100-nam-w"); +__static_yoink("usr/share/terminfo/v/vte-2012"); +__static_yoink("usr/share/terminfo/v/vt100-nav"); +__static_yoink("usr/share/terminfo/v/vt100-nav-w"); +__static_yoink("usr/share/terminfo/v/vscode"); +__static_yoink("usr/share/terminfo/v/vt320-k3"); +__static_yoink("usr/share/terminfo/v/v320n"); +__static_yoink("usr/share/terminfo/v/vt100nam"); +__static_yoink("usr/share/terminfo/v/vt100+4bsd"); +__static_yoink("usr/share/terminfo/v/vt100-bot-s"); +__static_yoink("usr/share/terminfo/v/vt320-nam"); +__static_yoink("usr/share/terminfo/v/vp60"); +__static_yoink("usr/share/terminfo/v/vt420"); +__static_yoink("usr/share/terminfo/v/vi603"); +__static_yoink("usr/share/terminfo/v/vt220-w"); +__static_yoink("usr/share/terminfo/v/vt102+enq"); +__static_yoink("usr/share/terminfo/v/vc415"); +__static_yoink("usr/share/terminfo/v/vte-2014"); +__static_yoink("usr/share/terminfo/v/vte+pcfkeys"); +__static_yoink("usr/share/terminfo/v/viewpoint3a+"); +__static_yoink("usr/share/terminfo/v/vc414h"); +__static_yoink("usr/share/terminfo/v/vp3a+"); +__static_yoink("usr/share/terminfo/v/vip7800-H"); +__static_yoink("usr/share/terminfo/v/vip7800-Hw"); +__static_yoink("usr/share/terminfo/v/vt-utf8"); +__static_yoink("usr/share/terminfo/v/vt300"); +__static_yoink("usr/share/terminfo/v/vte-256color"); +__static_yoink("usr/share/terminfo/v/vt100-top-s"); +__static_yoink("usr/share/terminfo/v/vt300-nam"); +__static_yoink("usr/share/terminfo/v/v3220"); +__static_yoink("usr/share/terminfo/v/vt100-s-bot"); +__static_yoink("usr/share/terminfo/v/vremote"); +__static_yoink("usr/share/terminfo/v/vi55"); +__static_yoink("usr/share/terminfo/v/vt100-s-top"); +__static_yoink("usr/share/terminfo/v/vt510pc"); +__static_yoink("usr/share/terminfo/v/vi500"); +__static_yoink("usr/share/terminfo/v/vv100"); +__static_yoink("usr/share/terminfo/v/vt520ansi"); +__static_yoink("usr/share/terminfo/v/viewdata-rv"); +__static_yoink("usr/share/terminfo/v/vip-w"); +__static_yoink("usr/share/terminfo/v/vt200"); +__static_yoink("usr/share/terminfo/v/vt100+"); +__static_yoink("usr/share/terminfo/v/vi550"); +__static_yoink("usr/share/terminfo/v/vt420+lrmm"); +__static_yoink("usr/share/terminfo/g/gnome-2012"); +__static_yoink("usr/share/terminfo/g/guru-76-w"); +__static_yoink("usr/share/terminfo/g/go225"); +__static_yoink("usr/share/terminfo/g/gator-t"); +__static_yoink("usr/share/terminfo/g/guru-44"); +__static_yoink("usr/share/terminfo/g/go140"); +__static_yoink("usr/share/terminfo/g/gnome-2008"); +__static_yoink("usr/share/terminfo/g/go140w"); +__static_yoink("usr/share/terminfo/g/guru+unk"); +__static_yoink("usr/share/terminfo/g/gnome-rh90"); +__static_yoink("usr/share/terminfo/g/gnome-256color"); +__static_yoink("usr/share/terminfo/g/glasstty"); +__static_yoink("usr/share/terminfo/g/guru-nctxt"); +__static_yoink("usr/share/terminfo/g/gs5430-24"); +__static_yoink("usr/share/terminfo/g/go-225"); +__static_yoink("usr/share/terminfo/g/gt100a"); +__static_yoink("usr/share/terminfo/g/gnome-rh72"); +__static_yoink("usr/share/terminfo/g/guru-24"); +__static_yoink("usr/share/terminfo/g/gs6300"); +__static_yoink("usr/share/terminfo/g/gnome"); +__static_yoink("usr/share/terminfo/g/guru-s"); +__static_yoink("usr/share/terminfo/g/guru+rv"); +__static_yoink("usr/share/terminfo/g/gnome-rh62"); +__static_yoink("usr/share/terminfo/g/guru-76-w-s"); +__static_yoink("usr/share/terminfo/g/guru-rv"); +__static_yoink("usr/share/terminfo/g/gator-52"); +__static_yoink("usr/share/terminfo/g/gsi"); +__static_yoink("usr/share/terminfo/g/guru+s"); +__static_yoink("usr/share/terminfo/g/guru-76"); +__static_yoink("usr/share/terminfo/g/gnome-fc5"); +__static_yoink("usr/share/terminfo/g/guru"); +__static_yoink("usr/share/terminfo/g/gator-52t"); +__static_yoink("usr/share/terminfo/g/guru-lp"); +__static_yoink("usr/share/terminfo/g/gs5430-22"); +__static_yoink("usr/share/terminfo/g/gator"); +__static_yoink("usr/share/terminfo/g/gnome-2007"); +__static_yoink("usr/share/terminfo/g/gigi"); +__static_yoink("usr/share/terminfo/g/guru-33-s"); +__static_yoink("usr/share/terminfo/g/gt100"); +__static_yoink("usr/share/terminfo/g/gnome-rh80"); +__static_yoink("usr/share/terminfo/g/gt42"); +__static_yoink("usr/share/terminfo/g/guru-44-s"); +__static_yoink("usr/share/terminfo/g/gt40"); +__static_yoink("usr/share/terminfo/g/guru-76-wm"); +__static_yoink("usr/share/terminfo/g/guru-76-lp"); +__static_yoink("usr/share/terminfo/g/graphos-30"); +__static_yoink("usr/share/terminfo/g/guru-33-rv"); +__static_yoink("usr/share/terminfo/g/graphos"); +__static_yoink("usr/share/terminfo/g/gnome+pcfkeys"); +__static_yoink("usr/share/terminfo/g/gs5430"); +__static_yoink("usr/share/terminfo/g/guru-33"); +__static_yoink("usr/share/terminfo/g/guru-76-s"); +__static_yoink("usr/share/terminfo/b/bitgraph"); +__static_yoink("usr/share/terminfo/b/bq300-8-pc"); +__static_yoink("usr/share/terminfo/b/bq300-w-8rv"); +__static_yoink("usr/share/terminfo/b/bg1.25rv"); +__static_yoink("usr/share/terminfo/b/bq300-8"); +__static_yoink("usr/share/terminfo/b/bq300-w-rv"); +__static_yoink("usr/share/terminfo/b/bsdos-ppc"); +__static_yoink("usr/share/terminfo/b/bsdos-pc-m"); +__static_yoink("usr/share/terminfo/b/bg2.0"); +__static_yoink("usr/share/terminfo/b/beehive"); +__static_yoink("usr/share/terminfo/b/bh3m"); +__static_yoink("usr/share/terminfo/b/beehiveIIIm"); +__static_yoink("usr/share/terminfo/b/bsdos-pc-nobold"); +__static_yoink("usr/share/terminfo/b/bg2.0nv"); +__static_yoink("usr/share/terminfo/b/beehive4"); +__static_yoink("usr/share/terminfo/b/basic4"); +__static_yoink("usr/share/terminfo/b/bq300-pc-rv"); +__static_yoink("usr/share/terminfo/b/basis"); +__static_yoink("usr/share/terminfo/b/bq300-w"); +__static_yoink("usr/share/terminfo/b/bsdos-pc-mono"); +__static_yoink("usr/share/terminfo/b/bracketed+paste"); +__static_yoink("usr/share/terminfo/b/bq300-pc"); +__static_yoink("usr/share/terminfo/b/bct510a"); +__static_yoink("usr/share/terminfo/b/bg3.10rv"); +__static_yoink("usr/share/terminfo/b/bantam"); +__static_yoink("usr/share/terminfo/b/bct510d"); +__static_yoink("usr/share/terminfo/b/bq300-8-pc-rv"); +__static_yoink("usr/share/terminfo/b/bg1.25nv"); +__static_yoink("usr/share/terminfo/b/bobcat"); +__static_yoink("usr/share/terminfo/b/bsdos-pc"); +__static_yoink("usr/share/terminfo/b/bq300-pc-w-rv"); +__static_yoink("usr/share/terminfo/b/beterm"); +__static_yoink("usr/share/terminfo/b/bsdos-sparc"); +__static_yoink("usr/share/terminfo/b/bq300-8w"); +__static_yoink("usr/share/terminfo/b/b-128"); +__static_yoink("usr/share/terminfo/b/bq300-8-pc-w"); +__static_yoink("usr/share/terminfo/b/blit"); +__static_yoink("usr/share/terminfo/b/bq300-8-pc-w-rv"); +__static_yoink("usr/share/terminfo/b/bq300"); +__static_yoink("usr/share/terminfo/b/bg3.10nv"); +__static_yoink("usr/share/terminfo/b/beehive3"); +__static_yoink("usr/share/terminfo/b/bh4"); +__static_yoink("usr/share/terminfo/b/bq300-pc-w"); +__static_yoink("usr/share/terminfo/b/bterm"); +__static_yoink("usr/share/terminfo/b/bee"); +__static_yoink("usr/share/terminfo/b/beacon"); +__static_yoink("usr/share/terminfo/b/bq300-8rv"); +__static_yoink("usr/share/terminfo/b/bq300-rv"); +__static_yoink("usr/share/terminfo/b/bg1.25"); +__static_yoink("usr/share/terminfo/b/bg2.0rv"); +__static_yoink("usr/share/terminfo/b/bg3.10"); +__static_yoink("usr/share/terminfo/P/P9-W"); +__static_yoink("usr/share/terminfo/P/P7"); +__static_yoink("usr/share/terminfo/P/P14-M-W"); +__static_yoink("usr/share/terminfo/P/P8-W"); +__static_yoink("usr/share/terminfo/P/P8"); +__static_yoink("usr/share/terminfo/P/P12-M"); +__static_yoink("usr/share/terminfo/P/P4"); +__static_yoink("usr/share/terminfo/P/P14-M"); +__static_yoink("usr/share/terminfo/P/P12"); +__static_yoink("usr/share/terminfo/P/P9"); +__static_yoink("usr/share/terminfo/P/P12-W"); +__static_yoink("usr/share/terminfo/P/P14-W"); +__static_yoink("usr/share/terminfo/P/P9-8"); +__static_yoink("usr/share/terminfo/P/P9-8-W"); +__static_yoink("usr/share/terminfo/P/P12-M-W"); +__static_yoink("usr/share/terminfo/P/P14"); +__static_yoink("usr/share/terminfo/P/P5"); +__static_yoink("usr/share/terminfo/r/rxvt-cygwin"); +__static_yoink("usr/share/terminfo/r/rca"); +__static_yoink("usr/share/terminfo/r/regent40+"); +__static_yoink("usr/share/terminfo/r/regent100"); +__static_yoink("usr/share/terminfo/r/rxvt-basic"); +__static_yoink("usr/share/terminfo/r/regent40"); +__static_yoink("usr/share/terminfo/r/rxvt-color"); +__static_yoink("usr/share/terminfo/r/rbcomm-nam"); +__static_yoink("usr/share/terminfo/r/rbcomm"); +__static_yoink("usr/share/terminfo/r/rt6221"); +__static_yoink("usr/share/terminfo/r/regent"); +__static_yoink("usr/share/terminfo/r/rxvt-xpm"); +__static_yoink("usr/share/terminfo/r/rcons-color"); +__static_yoink("usr/share/terminfo/r/regent200"); +__static_yoink("usr/share/terminfo/r/regent20"); +__static_yoink("usr/share/terminfo/r/regent25"); +__static_yoink("usr/share/terminfo/r/rbcomm-w"); +__static_yoink("usr/share/terminfo/r/rxvt-16color"); +__static_yoink("usr/share/terminfo/r/rxvt-88color"); +__static_yoink("usr/share/terminfo/r/rebus3180"); +__static_yoink("usr/share/terminfo/r/rt6221-w"); +__static_yoink("usr/share/terminfo/r/rxvt-cygwin-native"); +__static_yoink("usr/share/terminfo/r/rcons"); +__static_yoink("usr/share/terminfo/r/rxvt-256color"); +__static_yoink("usr/share/terminfo/r/rtpc"); +__static_yoink("usr/share/terminfo/r/rxvt+pcfkeys"); +__static_yoink("usr/share/terminfo/r/regent60"); +__static_yoink("usr/share/terminfo/r/rxvt"); +__static_yoink("usr/share/terminfo/h/hp+labels"); +__static_yoink("usr/share/terminfo/h/hp70092A"); +__static_yoink("usr/share/terminfo/h/h19k"); +__static_yoink("usr/share/terminfo/h/hp2621-wl"); +__static_yoink("usr/share/terminfo/h/hp2644a"); +__static_yoink("usr/share/terminfo/h/hp236"); +__static_yoink("usr/share/terminfo/h/hp2626a"); +__static_yoink("usr/share/terminfo/h/hp2627a-rev"); +__static_yoink("usr/share/terminfo/h/hp2627c"); +__static_yoink("usr/share/terminfo/h/hmod1"); +__static_yoink("usr/share/terminfo/h/ha8686"); +__static_yoink("usr/share/terminfo/h/hpex"); +__static_yoink("usr/share/terminfo/h/h19kermit"); +__static_yoink("usr/share/terminfo/h/hp2621k45"); +__static_yoink("usr/share/terminfo/h/hp2622a"); +__static_yoink("usr/share/terminfo/h/hp2622"); +__static_yoink("usr/share/terminfo/h/hp2621b-kx"); +__static_yoink("usr/share/terminfo/h/hz1500"); +__static_yoink("usr/share/terminfo/h/hp2640a"); +__static_yoink("usr/share/terminfo/h/hp2626p"); +__static_yoink("usr/share/terminfo/h/hp9845"); +__static_yoink("usr/share/terminfo/h/hp700"); +__static_yoink("usr/share/terminfo/h/hp2640b"); +__static_yoink("usr/share/terminfo/h/hp2624"); +__static_yoink("usr/share/terminfo/h/hp2624b-4p-p"); +__static_yoink("usr/share/terminfo/h/ha8675"); +__static_yoink("usr/share/terminfo/h/h80"); +__static_yoink("usr/share/terminfo/h/hft"); +__static_yoink("usr/share/terminfo/h/hz1520"); +__static_yoink("usr/share/terminfo/h/hp2626-12-s"); +__static_yoink("usr/share/terminfo/h/h29a-nkc-bc"); +__static_yoink("usr/share/terminfo/h/h19-b"); +__static_yoink("usr/share/terminfo/h/heathkit-a"); +__static_yoink("usr/share/terminfo/h/hft-old"); +__static_yoink("usr/share/terminfo/h/h19-g"); +__static_yoink("usr/share/terminfo/h/hp2626-ns"); +__static_yoink("usr/share/terminfo/h/hp2382a"); +__static_yoink("usr/share/terminfo/h/hz1000"); +__static_yoink("usr/share/terminfo/h/hp2621"); +__static_yoink("usr/share/terminfo/h/hp700-wy"); +__static_yoink("usr/share/terminfo/h/hp150"); +__static_yoink("usr/share/terminfo/h/hds200"); +__static_yoink("usr/share/terminfo/h/h-100"); +__static_yoink("usr/share/terminfo/h/hp98550"); +__static_yoink("usr/share/terminfo/h/hp2623a"); +__static_yoink("usr/share/terminfo/h/hpex2"); +__static_yoink("usr/share/terminfo/h/hp300h"); +__static_yoink("usr/share/terminfo/h/hz1420"); +__static_yoink("usr/share/terminfo/h/hp110"); +__static_yoink("usr/share/terminfo/h/hp2624a"); +__static_yoink("usr/share/terminfo/h/hp2621-ba"); +__static_yoink("usr/share/terminfo/h/hp2626-x40"); +__static_yoink("usr/share/terminfo/h/hterm"); +__static_yoink("usr/share/terminfo/h/hp2621p"); +__static_yoink("usr/share/terminfo/h/hp2624b-10p-p"); +__static_yoink("usr/share/terminfo/h/hpterm-color"); +__static_yoink("usr/share/terminfo/h/hp2621a-a"); +__static_yoink("usr/share/terminfo/h/h19us"); +__static_yoink("usr/share/terminfo/h/hp70092a"); +__static_yoink("usr/share/terminfo/h/hp98550-color"); +__static_yoink("usr/share/terminfo/h/h29a-kc-bc"); +__static_yoink("usr/share/terminfo/h/hp2621b-p"); +__static_yoink("usr/share/terminfo/h/hp2397a"); +__static_yoink("usr/share/terminfo/h/hp2648a"); +__static_yoink("usr/share/terminfo/h/h19g"); +__static_yoink("usr/share/terminfo/h/hp2626-12"); +__static_yoink("usr/share/terminfo/h/hp2392"); +__static_yoink("usr/share/terminfo/h/hterm-256color"); +__static_yoink("usr/share/terminfo/h/hp262x"); +__static_yoink("usr/share/terminfo/h/hpansi"); +__static_yoink("usr/share/terminfo/h/hp2641a"); +__static_yoink("usr/share/terminfo/h/hp70092"); +__static_yoink("usr/share/terminfo/h/h19-smul"); +__static_yoink("usr/share/terminfo/h/h19a"); +__static_yoink("usr/share/terminfo/h/he80"); +__static_yoink("usr/share/terminfo/h/h19-us"); +__static_yoink("usr/share/terminfo/h/hirez100-w"); +__static_yoink("usr/share/terminfo/h/hp2621-nl"); +__static_yoink("usr/share/terminfo/h/h19-bs"); +__static_yoink("usr/share/terminfo/h/hz2000"); +__static_yoink("usr/share/terminfo/h/hz1552"); +__static_yoink("usr/share/terminfo/h/heathkit"); +__static_yoink("usr/share/terminfo/h/hirez100"); +__static_yoink("usr/share/terminfo/h/hp2623"); +__static_yoink("usr/share/terminfo/h/hp2621-fl"); +__static_yoink("usr/share/terminfo/h/hp9837"); +__static_yoink("usr/share/terminfo/h/hz1510"); +__static_yoink("usr/share/terminfo/h/hp98721"); +__static_yoink("usr/share/terminfo/h/hp98550a-color"); +__static_yoink("usr/share/terminfo/h/hpterm"); +__static_yoink("usr/share/terminfo/h/hp2627a"); +__static_yoink("usr/share/terminfo/h/hz1552-rv"); +__static_yoink("usr/share/terminfo/h/h19"); +__static_yoink("usr/share/terminfo/h/hp45"); +__static_yoink("usr/share/terminfo/h/hazel"); +__static_yoink("usr/share/terminfo/h/hp2382"); +__static_yoink("usr/share/terminfo/h/hp+color"); +__static_yoink("usr/share/terminfo/h/hurd"); +__static_yoink("usr/share/terminfo/h/hp2"); +__static_yoink("usr/share/terminfo/h/heath"); +__static_yoink("usr/share/terminfo/h/h19-u"); +__static_yoink("usr/share/terminfo/h/h-100bw"); +__static_yoink("usr/share/terminfo/h/hp2621-a"); +__static_yoink("usr/share/terminfo/h/hpterm-color2"); +__static_yoink("usr/share/terminfo/h/htx11"); +__static_yoink("usr/share/terminfo/h/hp98720"); +__static_yoink("usr/share/terminfo/h/hp2621b-kx-p"); +__static_yoink("usr/share/terminfo/h/hp2621b"); +__static_yoink("usr/share/terminfo/h/hp2624b-p"); +__static_yoink("usr/share/terminfo/h/hp2397"); +__static_yoink("usr/share/terminfo/h/hpsub"); +__static_yoink("usr/share/terminfo/h/hft-c-old"); +__static_yoink("usr/share/terminfo/h/h100"); +__static_yoink("usr/share/terminfo/h/hp2626-12x40"); +__static_yoink("usr/share/terminfo/h/h100bw"); +__static_yoink("usr/share/terminfo/h/hp2621a"); +__static_yoink("usr/share/terminfo/h/hp98550a"); +__static_yoink("usr/share/terminfo/h/hp2624-10p"); +__static_yoink("usr/share/terminfo/h/hp2624b-4p"); +__static_yoink("usr/share/terminfo/h/hp+arrows"); +__static_yoink("usr/share/terminfo/h/hp2647a"); +__static_yoink("usr/share/terminfo/h/hp2621-k45"); +__static_yoink("usr/share/terminfo/h/hp2621A"); +__static_yoink("usr/share/terminfo/h/hp"); +__static_yoink("usr/share/terminfo/h/hp2624b"); +__static_yoink("usr/share/terminfo/h/hz1520-noesc"); +__static_yoink("usr/share/terminfo/h/hp+pfk-cr"); +__static_yoink("usr/share/terminfo/h/hp+pfk+cr"); +__static_yoink("usr/share/terminfo/h/hft-c"); +__static_yoink("usr/share/terminfo/h/hp2648"); +__static_yoink("usr/share/terminfo/h/hp2645a"); +__static_yoink("usr/share/terminfo/h/h29a-nkc-uc"); +__static_yoink("usr/share/terminfo/h/heath-19"); +__static_yoink("usr/share/terminfo/h/hp2645"); +__static_yoink("usr/share/terminfo/h/hpgeneric"); +__static_yoink("usr/share/terminfo/h/h19-a"); +__static_yoink("usr/share/terminfo/h/hp2624b-10p"); +__static_yoink("usr/share/terminfo/h/hp2626-s"); +__static_yoink("usr/share/terminfo/h/hp+printer"); +__static_yoink("usr/share/terminfo/h/hp2624a-10p"); +__static_yoink("usr/share/terminfo/h/hp2621-nt"); +__static_yoink("usr/share/terminfo/h/h29a-kc-uc"); +__static_yoink("usr/share/terminfo/h/hp2626"); +__static_yoink("usr/share/terminfo/h/heath-ansi"); +__static_yoink("usr/share/terminfo/h/hp2621-48"); +__static_yoink("usr/share/terminfo/h/hp+pfk+arrows"); +__static_yoink("usr/share/terminfo/h/hp2621p-a"); +__static_yoink("usr/share/terminfo/e/emu"); +__static_yoink("usr/share/terminfo/e/esprit"); +__static_yoink("usr/share/terminfo/e/elks-vt52"); +__static_yoink("usr/share/terminfo/e/ergo4000"); +__static_yoink("usr/share/terminfo/e/ep40"); +__static_yoink("usr/share/terminfo/e/ecma+italics"); +__static_yoink("usr/share/terminfo/e/excel64-rv"); +__static_yoink("usr/share/terminfo/e/excel64"); +__static_yoink("usr/share/terminfo/e/eterm-color"); +__static_yoink("usr/share/terminfo/e/elks-glasstty"); +__static_yoink("usr/share/terminfo/e/emots"); +__static_yoink("usr/share/terminfo/e/excel62"); +__static_yoink("usr/share/terminfo/e/emu-220"); +__static_yoink("usr/share/terminfo/e/excel62-w"); +__static_yoink("usr/share/terminfo/e/esprit-am"); +__static_yoink("usr/share/terminfo/e/eterm"); +__static_yoink("usr/share/terminfo/e/ecma+color"); +__static_yoink("usr/share/terminfo/e/ex155"); +__static_yoink("usr/share/terminfo/e/exec80"); +__static_yoink("usr/share/terminfo/e/elks"); +__static_yoink("usr/share/terminfo/e/ep4000"); +__static_yoink("usr/share/terminfo/e/ep48"); +__static_yoink("usr/share/terminfo/e/emx-base"); +__static_yoink("usr/share/terminfo/e/elks-ansi"); +__static_yoink("usr/share/terminfo/e/ecma+sgr"); +__static_yoink("usr/share/terminfo/e/excel64-w"); +__static_yoink("usr/share/terminfo/e/ecma+strikeout"); +__static_yoink("usr/share/terminfo/e/ep4080"); +__static_yoink("usr/share/terminfo/e/excel62-rv"); +__static_yoink("usr/share/terminfo/e/ecma+index"); +__static_yoink("usr/share/terminfo/e/env230"); +__static_yoink("usr/share/terminfo/e/envision230"); +__static_yoink("usr/share/terminfo/i/intext2"); +__static_yoink("usr/share/terminfo/i/infoton"); +__static_yoink("usr/share/terminfo/i/ibmmpel-c"); +__static_yoink("usr/share/terminfo/i/ibm3161"); +__static_yoink("usr/share/terminfo/i/ibm6154"); +__static_yoink("usr/share/terminfo/i/iris-ansi"); +__static_yoink("usr/share/terminfo/i/ibmpc"); +__static_yoink("usr/share/terminfo/i/intertube"); +__static_yoink("usr/share/terminfo/i/ims950"); +__static_yoink("usr/share/terminfo/i/ibm8604"); +__static_yoink("usr/share/terminfo/i/ibm8513"); +__static_yoink("usr/share/terminfo/i/ibm8514"); +__static_yoink("usr/share/terminfo/i/ibmapa16"); +__static_yoink("usr/share/terminfo/i/iq140"); +__static_yoink("usr/share/terminfo/i/i100"); +__static_yoink("usr/share/terminfo/i/iris-ansi-ap"); +__static_yoink("usr/share/terminfo/i/ibm-system1"); +__static_yoink("usr/share/terminfo/i/ims950-rv"); +__static_yoink("usr/share/terminfo/i/ibmpc3r"); +__static_yoink("usr/share/terminfo/i/ibm8512"); +__static_yoink("usr/share/terminfo/i/ibm5081-c"); +__static_yoink("usr/share/terminfo/i/ibm6154-c"); +__static_yoink("usr/share/terminfo/i/iterm2-direct"); +__static_yoink("usr/share/terminfo/i/ibm5051"); +__static_yoink("usr/share/terminfo/i/ibm6153"); +__static_yoink("usr/share/terminfo/i/ibm327x"); +__static_yoink("usr/share/terminfo/i/intertec"); +__static_yoink("usr/share/terminfo/i/ibmega"); +__static_yoink("usr/share/terminfo/i/ibm3151"); +__static_yoink("usr/share/terminfo/i/ibmmono"); +__static_yoink("usr/share/terminfo/i/ibmpc3r-mono"); +__static_yoink("usr/share/terminfo/i/ibm5081"); +__static_yoink("usr/share/terminfo/i/ibmpcx"); +__static_yoink("usr/share/terminfo/i/ibmvga"); +__static_yoink("usr/share/terminfo/i/ibmapa8c"); +__static_yoink("usr/share/terminfo/i/ips"); +__static_yoink("usr/share/terminfo/i/iterm"); +__static_yoink("usr/share/terminfo/i/ibmx"); +__static_yoink("usr/share/terminfo/i/icl6402"); +__static_yoink("usr/share/terminfo/i/ibcs2"); +__static_yoink("usr/share/terminfo/i/ibmapa8c-c"); +__static_yoink("usr/share/terminfo/i/ibm5154-c"); +__static_yoink("usr/share/terminfo/i/ibm+16color"); +__static_yoink("usr/share/terminfo/i/i3164"); +__static_yoink("usr/share/terminfo/i/ibmvga-c"); +__static_yoink("usr/share/terminfo/i/ibm5154"); +__static_yoink("usr/share/terminfo/i/iris-ansi-net"); +__static_yoink("usr/share/terminfo/i/ibm3164"); +__static_yoink("usr/share/terminfo/i/ibm6153-40"); +__static_yoink("usr/share/terminfo/i/iTerm2.app"); +__static_yoink("usr/share/terminfo/i/ibm6153-90"); +__static_yoink("usr/share/terminfo/i/ibm3163"); +__static_yoink("usr/share/terminfo/i/ibmpc3"); +__static_yoink("usr/share/terminfo/i/iq120"); +__static_yoink("usr/share/terminfo/i/intextii"); +__static_yoink("usr/share/terminfo/i/i400"); +__static_yoink("usr/share/terminfo/i/ibm8503"); +__static_yoink("usr/share/terminfo/i/interix"); +__static_yoink("usr/share/terminfo/i/ibmaed"); +__static_yoink("usr/share/terminfo/i/ifmr"); +__static_yoink("usr/share/terminfo/i/ibm-apl"); +__static_yoink("usr/share/terminfo/i/iris-color"); +__static_yoink("usr/share/terminfo/i/ibmega-c"); +__static_yoink("usr/share/terminfo/i/ibm-pc"); +__static_yoink("usr/share/terminfo/i/ibm8507"); +__static_yoink("usr/share/terminfo/i/ibmapa8"); +__static_yoink("usr/share/terminfo/i/ibm5151"); +__static_yoink("usr/share/terminfo/i/ims-ansi"); +__static_yoink("usr/share/terminfo/i/icl6404"); +__static_yoink("usr/share/terminfo/i/ipsi"); +__static_yoink("usr/share/terminfo/i/intext"); +__static_yoink("usr/share/terminfo/i/intertube2"); +__static_yoink("usr/share/terminfo/i/interix-nti"); +__static_yoink("usr/share/terminfo/i/infoton2"); +__static_yoink("usr/share/terminfo/i/ibm+color"); +__static_yoink("usr/share/terminfo/i/iTerm.app"); +__static_yoink("usr/share/terminfo/i/iris40"); +__static_yoink("usr/share/terminfo/i/ibm3161-C"); +__static_yoink("usr/share/terminfo/i/iterm2"); +__static_yoink("usr/share/terminfo/i/ibm3101"); +__static_yoink("usr/share/terminfo/i/icl6404-w"); +__static_yoink("usr/share/terminfo/i/ibm3162"); +__static_yoink("usr/share/terminfo/i/i3101"); +__static_yoink("usr/share/terminfo/i/ibm6155"); +__static_yoink("usr/share/terminfo/i/ibm8514-c"); +__static_yoink("usr/share/terminfo/i/ims950-b"); +__static_yoink("usr/share/terminfo/w/wy520-vb"); +__static_yoink("usr/share/terminfo/w/wy160-w-vb"); +__static_yoink("usr/share/terminfo/w/wyse520-24"); +__static_yoink("usr/share/terminfo/w/wyse60-43-w"); +__static_yoink("usr/share/terminfo/w/wyse60-w"); +__static_yoink("usr/share/terminfo/w/wy60-43"); +__static_yoink("usr/share/terminfo/w/wy325-80"); +__static_yoink("usr/share/terminfo/w/wy325-43w-vb"); +__static_yoink("usr/share/terminfo/w/wy50-vb"); +__static_yoink("usr/share/terminfo/w/wyse325-25w"); +__static_yoink("usr/share/terminfo/w/wy85-8bit"); +__static_yoink("usr/share/terminfo/w/wy370-w"); +__static_yoink("usr/share/terminfo/w/wy-75ap"); +__static_yoink("usr/share/terminfo/w/wyse50-vb"); +__static_yoink("usr/share/terminfo/w/wyse520-pc-vb"); +__static_yoink("usr/share/terminfo/w/wy325-25w"); +__static_yoink("usr/share/terminfo/w/wyse150-25"); +__static_yoink("usr/share/terminfo/w/wyse150-w-vb"); +__static_yoink("usr/share/terminfo/w/wy99gt-vb"); +__static_yoink("usr/share/terminfo/w/wyse60-PC"); +__static_yoink("usr/share/terminfo/w/wy120-wvb"); +__static_yoink("usr/share/terminfo/w/wy160-wvb"); +__static_yoink("usr/share/terminfo/w/wyse325-42w"); +__static_yoink("usr/share/terminfo/w/wyse75-w"); +__static_yoink("usr/share/terminfo/w/wy99fgta"); +__static_yoink("usr/share/terminfo/w/wsvt25m"); +__static_yoink("usr/share/terminfo/w/wyse520-48pc"); +__static_yoink("usr/share/terminfo/w/wy50-wvb"); +__static_yoink("usr/share/terminfo/w/wy520-36"); +__static_yoink("usr/share/terminfo/w/wy160"); +__static_yoink("usr/share/terminfo/w/wy60-316X"); +__static_yoink("usr/share/terminfo/w/wy150"); +__static_yoink("usr/share/terminfo/w/wyse160-w"); +__static_yoink("usr/share/terminfo/w/wyse350-wvb"); +__static_yoink("usr/share/terminfo/w/wy520-36wpc"); +__static_yoink("usr/share/terminfo/w/wy370-vb"); +__static_yoink("usr/share/terminfo/w/wyse520-epc-w"); +__static_yoink("usr/share/terminfo/w/wy325-42"); +__static_yoink("usr/share/terminfo/w/wy75-vb"); +__static_yoink("usr/share/terminfo/w/wyse370"); +__static_yoink("usr/share/terminfo/w/wy99gt-tek"); +__static_yoink("usr/share/terminfo/w/wy350-vb"); +__static_yoink("usr/share/terminfo/w/wy85-vb"); +__static_yoink("usr/share/terminfo/w/wsiris"); +__static_yoink("usr/share/terminfo/w/wy520-48pc"); +__static_yoink("usr/share/terminfo/w/wyse+sl"); +__static_yoink("usr/share/terminfo/w/wy100q"); +__static_yoink("usr/share/terminfo/w/wy150-w"); +__static_yoink("usr/share/terminfo/w/wy325-vb"); +__static_yoink("usr/share/terminfo/w/wy50-w"); +__static_yoink("usr/share/terminfo/w/wy520-epc-24"); +__static_yoink("usr/share/terminfo/w/wyse325-42"); +__static_yoink("usr/share/terminfo/w/wy520-36pc"); +__static_yoink("usr/share/terminfo/w/wyse60-vb"); +__static_yoink("usr/share/terminfo/w/wy150-25"); +__static_yoink("usr/share/terminfo/w/wy325-42w"); +__static_yoink("usr/share/terminfo/w/wyse75ap"); +__static_yoink("usr/share/terminfo/w/wy325"); +__static_yoink("usr/share/terminfo/w/wyse185-24"); +__static_yoink("usr/share/terminfo/w/wy160-42"); +__static_yoink("usr/share/terminfo/w/wy350-w"); +__static_yoink("usr/share/terminfo/w/wy75-wvb"); +__static_yoink("usr/share/terminfo/w/wyse185-w"); +__static_yoink("usr/share/terminfo/w/wyse60-43"); +__static_yoink("usr/share/terminfo/w/wyse160-25"); +__static_yoink("usr/share/terminfo/w/wyse75-vb"); +__static_yoink("usr/share/terminfo/w/wy160-tek"); +__static_yoink("usr/share/terminfo/w/wy60-42-w"); +__static_yoink("usr/share/terminfo/w/wyse160-43-w"); +__static_yoink("usr/share/terminfo/w/wyse60-wvb"); +__static_yoink("usr/share/terminfo/w/wy160-w"); +__static_yoink("usr/share/terminfo/w/wy520-epc-vb"); +__static_yoink("usr/share/terminfo/w/wy350"); +__static_yoink("usr/share/terminfo/w/wyse60-25-w"); +__static_yoink("usr/share/terminfo/w/wy325w-24"); +__static_yoink("usr/share/terminfo/w/wy350-wvb"); +__static_yoink("usr/share/terminfo/w/wy325-25"); +__static_yoink("usr/share/terminfo/w/wyse520-48"); +__static_yoink("usr/share/terminfo/w/wyse99gt"); +__static_yoink("usr/share/terminfo/w/wy520-epc-w"); +__static_yoink("usr/share/terminfo/w/wy520-36w"); +__static_yoink("usr/share/terminfo/w/wy30-vb"); +__static_yoink("usr/share/terminfo/w/wy185-vb"); +__static_yoink("usr/share/terminfo/w/wyse50-mc"); +__static_yoink("usr/share/terminfo/w/wyse520-wvb"); +__static_yoink("usr/share/terminfo/w/wyse60-25"); +__static_yoink("usr/share/terminfo/w/wyse325-25"); +__static_yoink("usr/share/terminfo/w/wy75"); +__static_yoink("usr/share/terminfo/w/wy520"); +__static_yoink("usr/share/terminfo/w/wyse120-25-w"); +__static_yoink("usr/share/terminfo/w/wyse99gt-vb"); +__static_yoink("usr/share/terminfo/w/wyse520-epc"); +__static_yoink("usr/share/terminfo/w/wy60-43-w"); +__static_yoink("usr/share/terminfo/w/wy185-w"); +__static_yoink("usr/share/terminfo/w/wy160-43"); +__static_yoink("usr/share/terminfo/w/wyse160-wvb"); +__static_yoink("usr/share/terminfo/w/wy99fa"); +__static_yoink("usr/share/terminfo/w/wy100"); +__static_yoink("usr/share/terminfo/w/wyse60-42"); +__static_yoink("usr/share/terminfo/w/wrenw"); +__static_yoink("usr/share/terminfo/w/wren"); +__static_yoink("usr/share/terminfo/w/wyse150-vb"); +__static_yoink("usr/share/terminfo/w/wyse325"); +__static_yoink("usr/share/terminfo/w/wy160-42-w"); +__static_yoink("usr/share/terminfo/w/wyse60"); +__static_yoink("usr/share/terminfo/w/wy325-43"); +__static_yoink("usr/share/terminfo/w/wy120-vb"); +__static_yoink("usr/share/terminfo/w/wyse120-w"); +__static_yoink("usr/share/terminfo/w/wy150-w-vb"); +__static_yoink("usr/share/terminfo/w/wyse185-vb"); +__static_yoink("usr/share/terminfo/w/wyse85"); +__static_yoink("usr/share/terminfo/w/wy520-24"); +__static_yoink("usr/share/terminfo/w/wyse350-w"); +__static_yoink("usr/share/terminfo/w/wy60-42"); +__static_yoink("usr/share/terminfo/w/wy370-tek"); +__static_yoink("usr/share/terminfo/w/wyse520-36pc"); +__static_yoink("usr/share/terminfo/w/wy60-w"); +__static_yoink("usr/share/terminfo/w/wyse50-w"); +__static_yoink("usr/share/terminfo/w/wy99gt-w"); +__static_yoink("usr/share/terminfo/w/wyse350"); +__static_yoink("usr/share/terminfo/w/wy99a-ansi"); +__static_yoink("usr/share/terminfo/w/wyse520-vb"); +__static_yoink("usr/share/terminfo/w/wyse160-42-w"); +__static_yoink("usr/share/terminfo/w/wyse-vp"); +__static_yoink("usr/share/terminfo/w/wyse520-p-wvb"); +__static_yoink("usr/share/terminfo/w/wyse120-vb"); +__static_yoink("usr/share/terminfo/w/wy99gt-w-vb"); +__static_yoink("usr/share/terminfo/w/wy60-25-w"); +__static_yoink("usr/share/terminfo/w/wy520-48w"); +__static_yoink("usr/share/terminfo/w/wy120-w-vb"); +__static_yoink("usr/share/terminfo/w/wyse520-36"); +__static_yoink("usr/share/terminfo/w/wy185"); +__static_yoink("usr/share/terminfo/w/wy75-mc"); +__static_yoink("usr/share/terminfo/w/wy520-w"); +__static_yoink("usr/share/terminfo/w/wyse85-wvb"); +__static_yoink("usr/share/terminfo/w/wy160-25"); +__static_yoink("usr/share/terminfo/w/wy50"); +__static_yoink("usr/share/terminfo/w/wyse60-316X"); +__static_yoink("usr/share/terminfo/w/wy75-w"); +__static_yoink("usr/share/terminfo/w/wy99gt-25"); +__static_yoink("usr/share/terminfo/w/wyse520-48wpc"); +__static_yoink("usr/share/terminfo/w/wyse185-wvb"); +__static_yoink("usr/share/terminfo/w/wyse120"); +__static_yoink("usr/share/terminfo/w/wyse185"); +__static_yoink("usr/share/terminfo/w/wy520-48wpc"); +__static_yoink("usr/share/terminfo/w/wy370-101k"); +__static_yoink("usr/share/terminfo/w/wyse50-wvb"); +__static_yoink("usr/share/terminfo/w/wy325-42wvb"); +__static_yoink("usr/share/terminfo/w/wy370-wvb"); +__static_yoink("usr/share/terminfo/w/wyse350-vb"); +__static_yoink("usr/share/terminfo/w/wyse325-43"); +__static_yoink("usr/share/terminfo/w/wyse75"); +__static_yoink("usr/share/terminfo/w/wyse150-25-w"); +__static_yoink("usr/share/terminfo/w/wyse85-vb"); +__static_yoink("usr/share/terminfo/w/wy325-43w"); +__static_yoink("usr/share/terminfo/w/wy85-w"); +__static_yoink("usr/share/terminfo/w/wyse325-vb"); +__static_yoink("usr/share/terminfo/w/wy370-rv"); +__static_yoink("usr/share/terminfo/w/wy520-wvb"); +__static_yoink("usr/share/terminfo/w/wy-99fgt"); +__static_yoink("usr/share/terminfo/w/wy99gt"); +__static_yoink("usr/share/terminfo/w/wy325-w"); +__static_yoink("usr/share/terminfo/w/wy160-vb"); +__static_yoink("usr/share/terminfo/w/wy85-wvb"); +__static_yoink("usr/share/terminfo/w/wy60-vb"); +__static_yoink("usr/share/terminfo/w/wy325-42w-vb"); +__static_yoink("usr/share/terminfo/w/wyse160"); +__static_yoink("usr/share/terminfo/w/wyse85-8bit"); +__static_yoink("usr/share/terminfo/w/wy370-nk"); +__static_yoink("usr/share/terminfo/w/wyse520-pc-24"); +__static_yoink("usr/share/terminfo/w/wyse99gt-25"); +__static_yoink("usr/share/terminfo/w/wyse99gt-w"); +__static_yoink("usr/share/terminfo/w/wy325-43wvb"); +__static_yoink("usr/share/terminfo/w/wy60-AT"); +__static_yoink("usr/share/terminfo/w/wyse-325"); +__static_yoink("usr/share/terminfo/w/wy99f"); +__static_yoink("usr/share/terminfo/w/wy185-24"); +__static_yoink("usr/share/terminfo/w/wyse30"); +__static_yoink("usr/share/terminfo/w/wyse520-36wpc"); +__static_yoink("usr/share/terminfo/w/wy520-48"); +__static_yoink("usr/share/terminfo/w/wy370-105k"); +__static_yoink("usr/share/terminfo/w/wy75ap"); +__static_yoink("usr/share/terminfo/w/wy120-25"); +__static_yoink("usr/share/terminfo/w/wyse75-mc"); +__static_yoink("usr/share/terminfo/w/wyse150-w"); +__static_yoink("usr/share/terminfo/w/wyse-75ap"); +__static_yoink("usr/share/terminfo/w/wyse325-wvb"); +__static_yoink("usr/share/terminfo/w/wyse99gt-wvb"); +__static_yoink("usr/share/terminfo/w/wyse520-48w"); +__static_yoink("usr/share/terminfo/w/wy60-25"); +__static_yoink("usr/share/terminfo/w/wy520-epc"); +__static_yoink("usr/share/terminfo/w/wyse150"); +__static_yoink("usr/share/terminfo/w/wy160-43-w"); +__static_yoink("usr/share/terminfo/w/wyse520"); +__static_yoink("usr/share/terminfo/w/wy99gt-25-w"); +__static_yoink("usr/share/terminfo/w/wyse99gt-25-w"); +__static_yoink("usr/share/terminfo/w/wy120-w"); +__static_yoink("usr/share/terminfo/w/wy370"); +__static_yoink("usr/share/terminfo/w/wyse30-mc"); +__static_yoink("usr/share/terminfo/w/wy185-wvb"); +__static_yoink("usr/share/terminfo/w/wy60-w-vb"); +__static_yoink("usr/share/terminfo/w/wy370-EPC"); +__static_yoink("usr/share/terminfo/w/wy99-ansi"); +__static_yoink("usr/share/terminfo/w/wy120"); +__static_yoink("usr/share/terminfo/w/wyse75-wvb"); +__static_yoink("usr/share/terminfo/w/wy50-mc"); +__static_yoink("usr/share/terminfo/w/wy325-wvb"); +__static_yoink("usr/share/terminfo/w/wy-99fgta"); +__static_yoink("usr/share/terminfo/w/wy150-25-w"); +__static_yoink("usr/share/terminfo/w/wy99gt-wvb"); +__static_yoink("usr/share/terminfo/w/wy160-25-w"); +__static_yoink("usr/share/terminfo/w/wy85"); +__static_yoink("usr/share/terminfo/w/wyse160-25-w"); +__static_yoink("usr/share/terminfo/w/wy150-vb"); +__static_yoink("usr/share/terminfo/w/wsvt25"); +__static_yoink("usr/share/terminfo/w/wyse120-wvb"); +__static_yoink("usr/share/terminfo/w/wyse60-AT"); +__static_yoink("usr/share/terminfo/w/wy30-mc"); +__static_yoink("usr/share/terminfo/w/wyse325-43w"); +__static_yoink("usr/share/terminfo/w/wy99fgt"); +__static_yoink("usr/share/terminfo/w/wy325-w-vb"); +__static_yoink("usr/share/terminfo/w/wy120-25-w"); +__static_yoink("usr/share/terminfo/w/wyse160-42"); +__static_yoink("usr/share/terminfo/w/wy520-epc-wvb"); +__static_yoink("usr/share/terminfo/w/wyse30-vb"); +__static_yoink("usr/share/terminfo/w/wy30"); +__static_yoink("usr/share/terminfo/w/wyse120-25"); +__static_yoink("usr/share/terminfo/w/wy60-PC"); +__static_yoink("usr/share/terminfo/w/wyse520-w"); +__static_yoink("usr/share/terminfo/w/wyse325-w"); +__static_yoink("usr/share/terminfo/w/wy60-wvb"); +__static_yoink("usr/share/terminfo/w/wyse160-vb"); +__static_yoink("usr/share/terminfo/w/wy60"); +__static_yoink("usr/share/terminfo/w/wyse520-36w"); +__static_yoink("usr/share/terminfo/w/wyse60-42-w"); +__static_yoink("usr/share/terminfo/w/wyse160-43"); +__static_yoink("usr/share/terminfo/w/wyse50"); +__static_yoink("usr/share/terminfo/w/wyse85-w"); +__static_yoink("usr/share/terminfo/6/605x"); +__static_yoink("usr/share/terminfo/6/605x-dg"); +__static_yoink("usr/share/terminfo/6/630-lm"); +__static_yoink("usr/share/terminfo/6/630MTG-24"); +__static_yoink("usr/share/terminfo/6/6053"); +__static_yoink("usr/share/terminfo/6/6053-dg"); +__static_yoink("usr/share/terminfo/7/730MTG-41"); +__static_yoink("usr/share/terminfo/7/730MTGr-24"); +__static_yoink("usr/share/terminfo/7/730MTG-24"); +__static_yoink("usr/share/terminfo/7/730MTG-41r"); +__static_yoink("usr/share/terminfo/7/730MTGr"); +__static_yoink("usr/share/terminfo/o/o31"); +__static_yoink("usr/share/terminfo/o/oabm85h"); +__static_yoink("usr/share/terminfo/o/osexec"); +__static_yoink("usr/share/terminfo/o/otek4112"); +__static_yoink("usr/share/terminfo/o/origpc3"); +__static_yoink("usr/share/terminfo/o/ojerq"); +__static_yoink("usr/share/terminfo/o/osborne-w"); +__static_yoink("usr/share/terminfo/o/opennt-25-nti"); +__static_yoink("usr/share/terminfo/o/opennt-60-w"); +__static_yoink("usr/share/terminfo/o/opennt-25-w"); +__static_yoink("usr/share/terminfo/o/oc100"); +__static_yoink("usr/share/terminfo/o/oldsun"); +__static_yoink("usr/share/terminfo/o/origibmpc3"); +__static_yoink("usr/share/terminfo/o/osborne"); +__static_yoink("usr/share/terminfo/o/otek4114"); +__static_yoink("usr/share/terminfo/o/osborne1-w"); +__static_yoink("usr/share/terminfo/o/oldibmpc3"); +__static_yoink("usr/share/terminfo/o/old-st"); +__static_yoink("usr/share/terminfo/o/opennt-35"); +__static_yoink("usr/share/terminfo/o/opennt-100"); +__static_yoink("usr/share/terminfo/o/opennt-50"); +__static_yoink("usr/share/terminfo/o/opennt-60-nti"); +__static_yoink("usr/share/terminfo/o/opennt-50-w"); +__static_yoink("usr/share/terminfo/o/opennt"); +__static_yoink("usr/share/terminfo/o/opennt-50-nti"); +__static_yoink("usr/share/terminfo/o/o4112-nd"); +__static_yoink("usr/share/terminfo/o/ofcons"); +__static_yoink("usr/share/terminfo/o/opennt-25"); +__static_yoink("usr/share/terminfo/o/omron"); +__static_yoink("usr/share/terminfo/o/owl"); +__static_yoink("usr/share/terminfo/o/opennt-25-w-vt"); +__static_yoink("usr/share/terminfo/o/oblit"); +__static_yoink("usr/share/terminfo/o/opennt-w"); +__static_yoink("usr/share/terminfo/o/oldpc3"); +__static_yoink("usr/share/terminfo/o/opennt-nti"); +__static_yoink("usr/share/terminfo/o/oconcept"); +__static_yoink("usr/share/terminfo/o/opus3n1+"); +__static_yoink("usr/share/terminfo/o/opennt-w-vt"); +__static_yoink("usr/share/terminfo/o/o85h"); +__static_yoink("usr/share/terminfo/o/opennt-35-nti"); +__static_yoink("usr/share/terminfo/o/otek4113"); +__static_yoink("usr/share/terminfo/o/os9LII"); +__static_yoink("usr/share/terminfo/o/opennt-100-nti"); +__static_yoink("usr/share/terminfo/o/otek4115"); +__static_yoink("usr/share/terminfo/o/opennt-60"); +__static_yoink("usr/share/terminfo/o/osborne1"); +__static_yoink("usr/share/terminfo/o/opennt-35-w"); +__static_yoink("usr/share/terminfo/n/nsterm-acs-c-s"); +__static_yoink("usr/share/terminfo/n/nec"); +__static_yoink("usr/share/terminfo/n/ncr160vt100pp"); +__static_yoink("usr/share/terminfo/n/nsterm-s-acs"); +__static_yoink("usr/share/terminfo/n/news-42-sjis"); +__static_yoink("usr/share/terminfo/n/nec5520"); +__static_yoink("usr/share/terminfo/n/nsterm-m-s-7"); +__static_yoink("usr/share/terminfo/n/nsterm-acs-s"); +__static_yoink("usr/share/terminfo/n/nsterm-build326"); +__static_yoink("usr/share/terminfo/n/ncr260vt300an"); +__static_yoink("usr/share/terminfo/n/ndr9500-25-mc"); +__static_yoink("usr/share/terminfo/n/news-33-sjis"); +__static_yoink("usr/share/terminfo/n/ncsa"); +__static_yoink("usr/share/terminfo/n/nsterm-7-m"); +__static_yoink("usr/share/terminfo/n/ncr260vt100wan"); +__static_yoink("usr/share/terminfo/n/ndr9500-25-mc-nl"); +__static_yoink("usr/share/terminfo/n/nsterm-m-s"); +__static_yoink("usr/share/terminfo/n/ncr260wy350wpp"); +__static_yoink("usr/share/terminfo/n/ncr260wy60pp"); +__static_yoink("usr/share/terminfo/n/ncr160vt200pp"); +__static_yoink("usr/share/terminfo/n/nwe501-a"); +__static_yoink("usr/share/terminfo/n/nwp514-a"); +__static_yoink("usr/share/terminfo/n/nsterm-256color"); +__static_yoink("usr/share/terminfo/n/ncr260vt200wpp"); +__static_yoink("usr/share/terminfo/n/ncr260intwan"); +__static_yoink("usr/share/terminfo/n/nsterm"); +__static_yoink("usr/share/terminfo/n/ntconsole-25-w-vt"); +__static_yoink("usr/share/terminfo/n/nsterm-c-7"); +__static_yoink("usr/share/terminfo/n/ndr9500-25"); +__static_yoink("usr/share/terminfo/n/ncr7901"); +__static_yoink("usr/share/terminfo/n/ncr260vt200an"); +__static_yoink("usr/share/terminfo/n/nwp514-o"); +__static_yoink("usr/share/terminfo/n/nansi.sys"); +__static_yoink("usr/share/terminfo/n/ncr260intwpp"); +__static_yoink("usr/share/terminfo/n/nsterm-build440"); +__static_yoink("usr/share/terminfo/n/northstar"); +__static_yoink("usr/share/terminfo/n/ncr160wy50+pp"); +__static_yoink("usr/share/terminfo/n/nsterm-build361"); +__static_yoink("usr/share/terminfo/n/nwp512"); +__static_yoink("usr/share/terminfo/n/ncr260vppp"); +__static_yoink("usr/share/terminfo/n/ntconsole-35-w"); +__static_yoink("usr/share/terminfo/n/news33"); +__static_yoink("usr/share/terminfo/n/ntconsole-35-nti"); +__static_yoink("usr/share/terminfo/n/ncr160vt300an"); +__static_yoink("usr/share/terminfo/n/ncr160vt200an"); +__static_yoink("usr/share/terminfo/n/nsterm-7"); +__static_yoink("usr/share/terminfo/n/nextshell"); +__static_yoink("usr/share/terminfo/n/ntconsole-25"); +__static_yoink("usr/share/terminfo/n/news40-a"); +__static_yoink("usr/share/terminfo/n/ncr260wy325pp"); +__static_yoink("usr/share/terminfo/n/ncr260vt100an"); +__static_yoink("usr/share/terminfo/n/ntconsole-60-w"); +__static_yoink("usr/share/terminfo/n/news-old-unk"); +__static_yoink("usr/share/terminfo/n/ntconsole-50-w"); +__static_yoink("usr/share/terminfo/n/nsterm+c"); +__static_yoink("usr/share/terminfo/n/ncr160vt200wpp"); +__static_yoink("usr/share/terminfo/n/news-42-euc"); +__static_yoink("usr/share/terminfo/n/ncr260vt300pp"); +__static_yoink("usr/share/terminfo/n/nsterm-acs"); +__static_yoink("usr/share/terminfo/n/nsterm+7"); +__static_yoink("usr/share/terminfo/n/ntconsole-60"); +__static_yoink("usr/share/terminfo/n/ncr260vpwpp"); +__static_yoink("usr/share/terminfo/n/ntconsole-50-nti"); +__static_yoink("usr/share/terminfo/n/nsterm-c-acs"); +__static_yoink("usr/share/terminfo/n/ntconsole-w"); +__static_yoink("usr/share/terminfo/n/next"); +__static_yoink("usr/share/terminfo/n/ntconsole"); +__static_yoink("usr/share/terminfo/n/ncrvt100an"); +__static_yoink("usr/share/terminfo/n/ncsa-vt220-8"); +__static_yoink("usr/share/terminfo/n/nsterm-acs-c"); +__static_yoink("usr/share/terminfo/n/nwp511"); +__static_yoink("usr/share/terminfo/n/ncr160vt300pp"); +__static_yoink("usr/share/terminfo/n/ncsa-m-ns"); +__static_yoink("usr/share/terminfo/n/n7900"); +__static_yoink("usr/share/terminfo/n/news40"); +__static_yoink("usr/share/terminfo/n/ncr260intpp"); +__static_yoink("usr/share/terminfo/n/nwp518"); +__static_yoink("usr/share/terminfo/n/nsterm-acs-m"); +__static_yoink("usr/share/terminfo/n/ncr260wy50+wpp"); +__static_yoink("usr/share/terminfo/n/ndr9500-mc-nl"); +__static_yoink("usr/share/terminfo/n/nansi.sysk"); +__static_yoink("usr/share/terminfo/n/newscbm"); +__static_yoink("usr/share/terminfo/n/ncr7900iv"); +__static_yoink("usr/share/terminfo/n/nsterm-c-s-acs"); +__static_yoink("usr/share/terminfo/n/ndr9500"); +__static_yoink("usr/share/terminfo/n/nsterm-bce"); +__static_yoink("usr/share/terminfo/n/no+brackets"); +__static_yoink("usr/share/terminfo/n/nsterm+c41"); +__static_yoink("usr/share/terminfo/n/ntconsole-25-w"); +__static_yoink("usr/share/terminfo/n/nsterm-m-s-acs"); +__static_yoink("usr/share/terminfo/n/nsterm-c-s-7"); +__static_yoink("usr/share/terminfo/n/news42"); +__static_yoink("usr/share/terminfo/n/nsterm-old"); +__static_yoink("usr/share/terminfo/n/ncr260vt100wpp"); +__static_yoink("usr/share/terminfo/n/ntconsole-25-nti"); +__static_yoink("usr/share/terminfo/n/nwp518-o"); +__static_yoink("usr/share/terminfo/n/news-unk"); +__static_yoink("usr/share/terminfo/n/nwp513"); +__static_yoink("usr/share/terminfo/n/nd9500"); +__static_yoink("usr/share/terminfo/n/nwp517"); +__static_yoink("usr/share/terminfo/n/nwe501"); +__static_yoink("usr/share/terminfo/n/nsterm-direct"); +__static_yoink("usr/share/terminfo/n/nwp512-a"); +__static_yoink("usr/share/terminfo/n/ntconsole-35"); +__static_yoink("usr/share/terminfo/n/ncr160vpwpp"); +__static_yoink("usr/share/terminfo/n/ncr260wy350pp"); +__static_yoink("usr/share/terminfo/n/nsterm-7-c"); +__static_yoink("usr/share/terminfo/n/ncr260intan"); +__static_yoink("usr/share/terminfo/n/newhpkeyboard"); +__static_yoink("usr/share/terminfo/n/nsterm-7-c-s"); +__static_yoink("usr/share/terminfo/n/ncr160vt300wpp"); +__static_yoink("usr/share/terminfo/n/nsterm-build309"); +__static_yoink("usr/share/terminfo/n/ncr160vt100an"); +__static_yoink("usr/share/terminfo/n/ncsa-m"); +__static_yoink("usr/share/terminfo/n/ncrvt100wan"); +__static_yoink("usr/share/terminfo/n/nsterm-c"); +__static_yoink("usr/share/terminfo/n/ncr160vt200wan"); +__static_yoink("usr/share/terminfo/n/nsterm-m-7"); +__static_yoink("usr/share/terminfo/n/ntconsole-w-vt"); +__static_yoink("usr/share/terminfo/n/ncr7900"); +__static_yoink("usr/share/terminfo/n/news-29-sjis"); +__static_yoink("usr/share/terminfo/n/news-o"); +__static_yoink("usr/share/terminfo/n/ncr260vt100pp"); +__static_yoink("usr/share/terminfo/n/ncr160wy60pp"); +__static_yoink("usr/share/terminfo/n/ndr9500-25-nl"); +__static_yoink("usr/share/terminfo/n/news40-o"); +__static_yoink("usr/share/terminfo/n/ncr260vt200wan"); +__static_yoink("usr/share/terminfo/n/ncr160vt100wan"); +__static_yoink("usr/share/terminfo/n/ndr9500-mc"); +__static_yoink("usr/share/terminfo/n/news31-a"); +__static_yoink("usr/share/terminfo/n/netbsd6"); +__static_yoink("usr/share/terminfo/n/ntconsole-100-nti"); +__static_yoink("usr/share/terminfo/n/news-33"); +__static_yoink("usr/share/terminfo/n/nwe501-o"); +__static_yoink("usr/share/terminfo/n/ncr7900i"); +__static_yoink("usr/share/terminfo/n/news-29"); +__static_yoink("usr/share/terminfo/n/nsterm-c-s"); +__static_yoink("usr/share/terminfo/n/nsterm-7-m-s"); +__static_yoink("usr/share/terminfo/n/ndr9500-nl"); +__static_yoink("usr/share/terminfo/n/ncrvt100wpp"); +__static_yoink("usr/share/terminfo/n/nsterm-7-s"); +__static_yoink("usr/share/terminfo/n/news28-a"); +__static_yoink("usr/share/terminfo/n/nsterm-m-acs"); +__static_yoink("usr/share/terminfo/n/newhp"); +__static_yoink("usr/share/terminfo/n/ncr160vppp"); +__static_yoink("usr/share/terminfo/n/nwp512-o"); +__static_yoink("usr/share/terminfo/n/ncr260wy60wpp"); +__static_yoink("usr/share/terminfo/n/nsterm-build400"); +__static_yoink("usr/share/terminfo/n/news31"); +__static_yoink("usr/share/terminfo/n/newscbm-a"); +__static_yoink("usr/share/terminfo/n/news29"); +__static_yoink("usr/share/terminfo/n/ncr160vt100wpp"); +__static_yoink("usr/share/terminfo/n/nwp-517-w"); +__static_yoink("usr/share/terminfo/n/ncrvt100pp"); +__static_yoink("usr/share/terminfo/n/nsterm-acs-m-s"); +__static_yoink("usr/share/terminfo/n/nsterm-16color"); +__static_yoink("usr/share/terminfo/n/nsterm+s"); +__static_yoink("usr/share/terminfo/n/nsterm+mac"); +__static_yoink("usr/share/terminfo/n/nwp-511"); +__static_yoink("usr/share/terminfo/n/news-33-euc"); +__static_yoink("usr/share/terminfo/n/nansisysk"); +__static_yoink("usr/share/terminfo/n/ntconsole-50"); +__static_yoink("usr/share/terminfo/n/news-29-euc"); +__static_yoink("usr/share/terminfo/n/nsterm-s"); +__static_yoink("usr/share/terminfo/n/news-a"); +__static_yoink("usr/share/terminfo/n/ncr260vt+sl"); +__static_yoink("usr/share/terminfo/n/nwp513-a"); +__static_yoink("usr/share/terminfo/n/ncr160wy50+wpp"); +__static_yoink("usr/share/terminfo/n/ncr260vt300wpp"); +__static_yoink("usr/share/terminfo/n/news31-o"); +__static_yoink("usr/share/terminfo/n/news-42"); +__static_yoink("usr/share/terminfo/n/ncr260wy50+pp"); +__static_yoink("usr/share/terminfo/n/nsterm-m"); +__static_yoink("usr/share/terminfo/n/nwp251-o"); +__static_yoink("usr/share/terminfo/n/nsterm+acs"); +__static_yoink("usr/share/terminfo/n/ncsa-vt220"); +__static_yoink("usr/share/terminfo/n/ncr260vt200pp"); +__static_yoink("usr/share/terminfo/n/nxterm"); +__static_yoink("usr/share/terminfo/n/news28"); +__static_yoink("usr/share/terminfo/n/nsterm-s-7"); +__static_yoink("usr/share/terminfo/n/newscbm33"); +__static_yoink("usr/share/terminfo/n/ncr160vt300wan"); +__static_yoink("usr/share/terminfo/n/ncr260wy325wpp"); +__static_yoink("usr/share/terminfo/n/nwp514"); +__static_yoink("usr/share/terminfo/n/ncr260vt300wan"); +__static_yoink("usr/share/terminfo/n/newscbm-o"); +__static_yoink("usr/share/terminfo/n/ncsa-ns"); +__static_yoink("usr/share/terminfo/n/nsterm-build343"); +__static_yoink("usr/share/terminfo/n/nwp513-o"); +__static_yoink("usr/share/terminfo/n/news"); +__static_yoink("usr/share/terminfo/n/ntconsole-100"); +__static_yoink("usr/share/terminfo/n/nwp517-w"); +__static_yoink("usr/share/terminfo/n/ncr260vp+sl"); +__static_yoink("usr/share/terminfo/n/nansisys"); +__static_yoink("usr/share/terminfo/n/nwp-517"); +__static_yoink("usr/share/terminfo/n/nwp518-a"); +__static_yoink("usr/share/terminfo/n/ncr160wy60wpp"); +__static_yoink("usr/share/terminfo/n/nwp251-a"); +__static_yoink("usr/share/terminfo/n/ntconsole-60-nti"); +__static_yoink("usr/share/terminfo/E/Eterm"); +__static_yoink("usr/share/terminfo/E/Eterm-88color"); +__static_yoink("usr/share/terminfo/E/Eterm-256color"); +__static_yoink("usr/share/terminfo/E/Eterm-color"); +__static_yoink("usr/share/terminfo/A/Apple_Terminal"); +__static_yoink("usr/share/terminfo/M/MtxOrb204"); +__static_yoink("usr/share/terminfo/M/MtxOrb162"); +__static_yoink("usr/share/terminfo/M/MtxOrb"); +__static_yoink("usr/share/terminfo/d/dg450"); +__static_yoink("usr/share/terminfo/d/diablo"); +__static_yoink("usr/share/terminfo/d/dgmode+color"); +__static_yoink("usr/share/terminfo/d/d215-dg"); +__static_yoink("usr/share/terminfo/d/d555-w"); +__static_yoink("usr/share/terminfo/d/dg+fixed"); +__static_yoink("usr/share/terminfo/d/d2-dg"); +__static_yoink("usr/share/terminfo/d/d430-unix"); +__static_yoink("usr/share/terminfo/d/d216-dg"); +__static_yoink("usr/share/terminfo/d/d430-unix-sr-ccc"); +__static_yoink("usr/share/terminfo/d/d460-7b-w"); +__static_yoink("usr/share/terminfo/d/dg100"); +__static_yoink("usr/share/terminfo/d/d430-unix-w"); +__static_yoink("usr/share/terminfo/d/dialogue"); +__static_yoink("usr/share/terminfo/d/d430c-unix-25-ccc"); +__static_yoink("usr/share/terminfo/d/darwin-256x96"); +__static_yoink("usr/share/terminfo/d/d216e+dg"); +__static_yoink("usr/share/terminfo/d/ds40-2"); +__static_yoink("usr/share/terminfo/d/d216+"); +__static_yoink("usr/share/terminfo/d/d430-unix-25"); +__static_yoink("usr/share/terminfo/d/dmd-24"); +__static_yoink("usr/share/terminfo/d/decansi"); +__static_yoink("usr/share/terminfo/d/dt100"); +__static_yoink("usr/share/terminfo/d/dg6134"); +__static_yoink("usr/share/terminfo/d/d555-7b-w"); +__static_yoink("usr/share/terminfo/d/d461"); +__static_yoink("usr/share/terminfo/d/d412+25"); +__static_yoink("usr/share/terminfo/d/d411-7b-w"); +__static_yoink("usr/share/terminfo/d/darwin-f2"); +__static_yoink("usr/share/terminfo/d/diablo-lm"); +__static_yoink("usr/share/terminfo/d/darwin-128x48-m"); +__static_yoink("usr/share/terminfo/d/d577-7b-w"); +__static_yoink("usr/share/terminfo/d/d400"); +__static_yoink("usr/share/terminfo/d/dg6053"); +__static_yoink("usr/share/terminfo/d/dtc382"); +__static_yoink("usr/share/terminfo/d/dg+color8"); +__static_yoink("usr/share/terminfo/d/d414-unix-sr"); +__static_yoink("usr/share/terminfo/d/d216-unix"); +__static_yoink("usr/share/terminfo/d/darwin-m-b"); +__static_yoink("usr/share/terminfo/d/datagraphix"); +__static_yoink("usr/share/terminfo/d/dt110"); +__static_yoink("usr/share/terminfo/d/d412+s"); +__static_yoink("usr/share/terminfo/d/d460"); +__static_yoink("usr/share/terminfo/d/d216+25"); +__static_yoink("usr/share/terminfo/d/darwin-100x37"); +__static_yoink("usr/share/terminfo/d/ds40"); +__static_yoink("usr/share/terminfo/d/dku7202"); +__static_yoink("usr/share/terminfo/d/darwin-112x37-m"); +__static_yoink("usr/share/terminfo/d/d430c-unix-s"); +__static_yoink("usr/share/terminfo/d/d2"); +__static_yoink("usr/share/terminfo/d/d461-dg"); +__static_yoink("usr/share/terminfo/d/dtc300s"); +__static_yoink("usr/share/terminfo/d/darwin-90x30"); +__static_yoink("usr/share/terminfo/d/d430c-unix-w"); +__static_yoink("usr/share/terminfo/d/d80"); +__static_yoink("usr/share/terminfo/d/d430-unix-w-ccc"); +__static_yoink("usr/share/terminfo/d/d430c-unix-s-ccc"); +__static_yoink("usr/share/terminfo/d/d430-dg-ccc"); +__static_yoink("usr/share/terminfo/d/darwin-m"); +__static_yoink("usr/share/terminfo/d/d412-unix-25"); +__static_yoink("usr/share/terminfo/d/dg460-ansi"); +__static_yoink("usr/share/terminfo/d/dmdt80w"); +__static_yoink("usr/share/terminfo/d/dmd"); +__static_yoink("usr/share/terminfo/d/d462-unix-w"); +__static_yoink("usr/share/terminfo/d/decwriter"); +__static_yoink("usr/share/terminfo/d/d430c-unix-w-ccc"); +__static_yoink("usr/share/terminfo/d/d460-w"); +__static_yoink("usr/share/terminfo/d/d413-dg"); +__static_yoink("usr/share/terminfo/d/d464-unix-25"); +__static_yoink("usr/share/terminfo/d/darwin-m-f"); +__static_yoink("usr/share/terminfo/d/darwin-90x30-m"); +__static_yoink("usr/share/terminfo/d/d577"); +__static_yoink("usr/share/terminfo/d/dec-vt340"); +__static_yoink("usr/share/terminfo/d/dw3"); +__static_yoink("usr/share/terminfo/d/darwin-200x64"); +__static_yoink("usr/share/terminfo/d/d463-unix-w"); +__static_yoink("usr/share/terminfo/d/diablo1720"); +__static_yoink("usr/share/terminfo/d/d411-7b"); +__static_yoink("usr/share/terminfo/d/darwin-200x75-m"); +__static_yoink("usr/share/terminfo/d/d132"); +__static_yoink("usr/share/terminfo/d/dp3360"); +__static_yoink("usr/share/terminfo/d/d464-unix-w"); +__static_yoink("usr/share/terminfo/d/d461-7b-w"); +__static_yoink("usr/share/terminfo/d/d215"); +__static_yoink("usr/share/terminfo/d/d430c-unix"); +__static_yoink("usr/share/terminfo/d/d577-w"); +__static_yoink("usr/share/terminfo/d/d214"); +__static_yoink("usr/share/terminfo/d/d413-unix-25"); +__static_yoink("usr/share/terminfo/d/d430c-unix-ccc"); +__static_yoink("usr/share/terminfo/d/dvtm"); +__static_yoink("usr/share/terminfo/d/digilog"); +__static_yoink("usr/share/terminfo/d/darwin-f"); +__static_yoink("usr/share/terminfo/d/d217-unix"); +__static_yoink("usr/share/terminfo/d/dp8242"); +__static_yoink("usr/share/terminfo/d/djgpp203"); +__static_yoink("usr/share/terminfo/d/dmd1"); +__static_yoink("usr/share/terminfo/d/decid+cpr"); +__static_yoink("usr/share/terminfo/d/d210-dg"); +__static_yoink("usr/share/terminfo/d/d400-dg"); +__static_yoink("usr/share/terminfo/d/darwin-200x75"); +__static_yoink("usr/share/terminfo/d/dg605x"); +__static_yoink("usr/share/terminfo/d/datapoint"); +__static_yoink("usr/share/terminfo/d/darwin-80x25-m"); +__static_yoink("usr/share/terminfo/d/dg6053-old"); +__static_yoink("usr/share/terminfo/d/darwin-80x30-m"); +__static_yoink("usr/share/terminfo/d/d462-unix-25"); +__static_yoink("usr/share/terminfo/d/d216e-dg"); +__static_yoink("usr/share/terminfo/d/d430-unix-s-ccc"); +__static_yoink("usr/share/terminfo/d/darwin-160x64-m"); +__static_yoink("usr/share/terminfo/d/d214-dg"); +__static_yoink("usr/share/terminfo/d/d220"); +__static_yoink("usr/share/terminfo/d/dw4"); +__static_yoink("usr/share/terminfo/d/d211"); +__static_yoink("usr/share/terminfo/d/diablo1730"); +__static_yoink("usr/share/terminfo/d/diablo1640"); +__static_yoink("usr/share/terminfo/d/dt80-sas"); +__static_yoink("usr/share/terminfo/d/d470"); +__static_yoink("usr/share/terminfo/d/dm80w"); +__static_yoink("usr/share/terminfo/d/dw2"); +__static_yoink("usr/share/terminfo/d/d461-7b"); +__static_yoink("usr/share/terminfo/d/dku7102-sna"); +__static_yoink("usr/share/terminfo/d/d211-dg"); +__static_yoink("usr/share/terminfo/d/dg+ccc"); +__static_yoink("usr/share/terminfo/d/d414-unix"); +__static_yoink("usr/share/terminfo/d/dt100w"); +__static_yoink("usr/share/terminfo/d/darwin-144x48-m"); +__static_yoink("usr/share/terminfo/d/dt80"); +__static_yoink("usr/share/terminfo/d/darwin-200x64-m"); +__static_yoink("usr/share/terminfo/d/darwin-256x96-m"); +__static_yoink("usr/share/terminfo/d/d414-unix-w"); +__static_yoink("usr/share/terminfo/d/d578-dg"); +__static_yoink("usr/share/terminfo/d/dgunix+ccc"); +__static_yoink("usr/share/terminfo/d/dwk-vt"); +__static_yoink("usr/share/terminfo/d/darwin-80x30"); +__static_yoink("usr/share/terminfo/d/diablo1740"); +__static_yoink("usr/share/terminfo/d/d217-dg"); +__static_yoink("usr/share/terminfo/d/d462+sr"); +__static_yoink("usr/share/terminfo/d/d211-7b"); +__static_yoink("usr/share/terminfo/d/diablo1640-lm"); +__static_yoink("usr/share/terminfo/d/diablo630"); +__static_yoink("usr/share/terminfo/d/dgkeys+11"); +__static_yoink("usr/share/terminfo/d/dvtm-256color"); +__static_yoink("usr/share/terminfo/d/d412-unix"); +__static_yoink("usr/share/terminfo/d/dku7003-dumb"); +__static_yoink("usr/share/terminfo/d/domterm"); +__static_yoink("usr/share/terminfo/d/d412+w"); +__static_yoink("usr/share/terminfo/d/d412-dg"); +__static_yoink("usr/share/terminfo/d/d555"); +__static_yoink("usr/share/terminfo/d/diablo1620-m8"); +__static_yoink("usr/share/terminfo/d/d230"); +__static_yoink("usr/share/terminfo/d/d412+dg"); +__static_yoink("usr/share/terminfo/d/d412-unix-sr"); +__static_yoink("usr/share/terminfo/d/d462-unix-s"); +__static_yoink("usr/share/terminfo/d/dm3025"); +__static_yoink("usr/share/terminfo/d/dg211"); +__static_yoink("usr/share/terminfo/d/darwin-80x25"); +__static_yoink("usr/share/terminfo/d/d470-dg"); +__static_yoink("usr/share/terminfo/d/dt-100w"); +__static_yoink("usr/share/terminfo/d/dg-generic"); +__static_yoink("usr/share/terminfo/d/dmd-34"); +__static_yoink("usr/share/terminfo/d/d470-7b"); +__static_yoink("usr/share/terminfo/d/d413-unix-s"); +__static_yoink("usr/share/terminfo/d/darwin-b"); +__static_yoink("usr/share/terminfo/d/ddr"); +__static_yoink("usr/share/terminfo/d/d200-dg"); +__static_yoink("usr/share/terminfo/d/d414-unix-25"); +__static_yoink("usr/share/terminfo/d/d411-w"); +__static_yoink("usr/share/terminfo/d/d464-unix"); +__static_yoink("usr/share/terminfo/d/d216e-unix"); +__static_yoink("usr/share/terminfo/d/d430c-unix-sr-ccc"); +__static_yoink("usr/share/terminfo/d/dmdt80"); +__static_yoink("usr/share/terminfo/d/d411-dg"); +__static_yoink("usr/share/terminfo/d/dg200"); +__static_yoink("usr/share/terminfo/d/d412+"); +__static_yoink("usr/share/terminfo/d/d412-unix-w"); +__static_yoink("usr/share/terminfo/d/dku7103-sna"); +__static_yoink("usr/share/terminfo/d/dgmode+color8"); +__static_yoink("usr/share/terminfo/d/dw1"); +__static_yoink("usr/share/terminfo/d/dd5000"); +__static_yoink("usr/share/terminfo/d/d460-dg"); +__static_yoink("usr/share/terminfo/d/djgpp204"); +__static_yoink("usr/share/terminfo/d/d470c"); +__static_yoink("usr/share/terminfo/d/d464-unix-sr"); +__static_yoink("usr/share/terminfo/d/diablo1620"); +__static_yoink("usr/share/terminfo/d/dec-vt330"); +__static_yoink("usr/share/terminfo/d/darwin-128x48"); +__static_yoink("usr/share/terminfo/d/diablo1640-m8"); +__static_yoink("usr/share/terminfo/d/d410-7b-w"); +__static_yoink("usr/share/terminfo/d/d230c-dg"); +__static_yoink("usr/share/terminfo/d/d462-dg"); +__static_yoink("usr/share/terminfo/d/dku7003"); +__static_yoink("usr/share/terminfo/d/d216+dg"); +__static_yoink("usr/share/terminfo/d/d461-w"); +__static_yoink("usr/share/terminfo/d/darwin-160x64"); +__static_yoink("usr/share/terminfo/d/dt-100"); +__static_yoink("usr/share/terminfo/d/d430c-dg"); +__static_yoink("usr/share/terminfo/d/diablo450"); +__static_yoink("usr/share/terminfo/d/d470c-7b"); +__static_yoink("usr/share/terminfo/d/dku7102-old"); +__static_yoink("usr/share/terminfo/d/dm2500"); +__static_yoink("usr/share/terminfo/d/dgkeys+15"); +__static_yoink("usr/share/terminfo/d/d410-7b"); +__static_yoink("usr/share/terminfo/d/dm1520"); +__static_yoink("usr/share/terminfo/d/datamedia2500"); +__static_yoink("usr/share/terminfo/d/d463-dg"); +__static_yoink("usr/share/terminfo/d/diablo1740-lm"); +__static_yoink("usr/share/terminfo/d/d216-unix-25"); +__static_yoink("usr/share/terminfo/d/d462-unix"); +__static_yoink("usr/share/terminfo/d/d462+"); +__static_yoink("usr/share/terminfo/d/darwin-100x37-m"); +__static_yoink("usr/share/terminfo/d/dw"); +__static_yoink("usr/share/terminfo/d/d578-7b"); +__static_yoink("usr/share/terminfo/d/dumb-emacs-ansi"); +__static_yoink("usr/share/terminfo/d/dataspeed40"); +__static_yoink("usr/share/terminfo/d/d430c-unix-25"); +__static_yoink("usr/share/terminfo/d/d215-7b"); +__static_yoink("usr/share/terminfo/d/dgunix+fixed"); +__static_yoink("usr/share/terminfo/d/dm3045"); +__static_yoink("usr/share/terminfo/d/dec-vt220"); +__static_yoink("usr/share/terminfo/d/d800"); +__static_yoink("usr/share/terminfo/d/dtterm"); +__static_yoink("usr/share/terminfo/d/dwk"); +__static_yoink("usr/share/terminfo/d/d430-unix-sr"); +__static_yoink("usr/share/terminfo/d/dg-ansi"); +__static_yoink("usr/share/terminfo/d/dg210"); +__static_yoink("usr/share/terminfo/d/darwin-144x48"); +__static_yoink("usr/share/terminfo/d/d555-dg"); +__static_yoink("usr/share/terminfo/d/d462+s"); +__static_yoink("usr/share/terminfo/d/d217-unix-25"); +__static_yoink("usr/share/terminfo/d/d430c-unix-sr"); +__static_yoink("usr/share/terminfo/d/d462+w"); +__static_yoink("usr/share/terminfo/d/dec-vt400"); +__static_yoink("usr/share/terminfo/d/d463-unix-s"); +__static_yoink("usr/share/terminfo/d/d470c-dg"); +__static_yoink("usr/share/terminfo/d/d463-unix"); +__static_yoink("usr/share/terminfo/d/d411"); +__static_yoink("usr/share/terminfo/d/d200"); +__static_yoink("usr/share/terminfo/d/decpro"); +__static_yoink("usr/share/terminfo/d/d413-unix-sr"); +__static_yoink("usr/share/terminfo/d/djgpp"); +__static_yoink("usr/share/terminfo/d/d462+dg"); +__static_yoink("usr/share/terminfo/d/d413-unix-w"); +__static_yoink("usr/share/terminfo/d/d410-dg"); +__static_yoink("usr/share/terminfo/d/d577-7b"); +__static_yoink("usr/share/terminfo/d/d450"); +__static_yoink("usr/share/terminfo/d/dumb"); +__static_yoink("usr/share/terminfo/d/d430-unix-s"); +__static_yoink("usr/share/terminfo/d/darwin"); +__static_yoink("usr/share/terminfo/d/d430-unix-25-ccc"); +__static_yoink("usr/share/terminfo/d/d464-unix-s"); +__static_yoink("usr/share/terminfo/d/d578"); +__static_yoink("usr/share/terminfo/d/d230c"); +__static_yoink("usr/share/terminfo/d/dg+color"); +__static_yoink("usr/share/terminfo/d/d230-dg"); +__static_yoink("usr/share/terminfo/d/d462e-dg"); +__static_yoink("usr/share/terminfo/d/d410-w"); +__static_yoink("usr/share/terminfo/d/dgkeys+7b"); +__static_yoink("usr/share/terminfo/d/dec+sl"); +__static_yoink("usr/share/terminfo/d/dmchat"); +__static_yoink("usr/share/terminfo/d/d463-unix-sr"); +__static_yoink("usr/share/terminfo/d/d462-unix-sr"); +__static_yoink("usr/share/terminfo/d/d430-unix-ccc"); +__static_yoink("usr/share/terminfo/d/delta"); +__static_yoink("usr/share/terminfo/d/dec+pp"); +__static_yoink("usr/share/terminfo/d/d430-dg"); +__static_yoink("usr/share/terminfo/d/d414-unix-s"); +__static_yoink("usr/share/terminfo/d/d460-7b"); +__static_yoink("usr/share/terminfo/d/dec-vt100"); +__static_yoink("usr/share/terminfo/d/d413-unix"); +__static_yoink("usr/share/terminfo/d/dm80"); +__static_yoink("usr/share/terminfo/d/dgkeys+8b"); +__static_yoink("usr/share/terminfo/d/d220-dg"); +__static_yoink("usr/share/terminfo/d/d577-dg"); +__static_yoink("usr/share/terminfo/d/darwin-112x37"); +__static_yoink("usr/share/terminfo/d/d430c-dg-ccc"); +__static_yoink("usr/share/terminfo/d/ddr3180"); +__static_yoink("usr/share/terminfo/d/darwin-128x40"); +__static_yoink("usr/share/terminfo/d/darwin-m-f2"); +__static_yoink("usr/share/terminfo/d/dm1521"); +__static_yoink("usr/share/terminfo/d/d450-dg"); +__static_yoink("usr/share/terminfo/d/d220-7b"); +__static_yoink("usr/share/terminfo/d/dialogue80"); +__static_yoink("usr/share/terminfo/d/d410"); +__static_yoink("usr/share/terminfo/d/dmterm"); +__static_yoink("usr/share/terminfo/d/d462+25"); +__static_yoink("usr/share/terminfo/d/d555-7b"); +__static_yoink("usr/share/terminfo/d/dt80w"); +__static_yoink("usr/share/terminfo/d/d463-unix-25"); +__static_yoink("usr/share/terminfo/d/d412+sr"); +__static_yoink("usr/share/terminfo/d/darwin-128x40-m"); +__static_yoink("usr/share/terminfo/d/d210"); +__static_yoink("usr/share/terminfo/d/d216e+"); +__static_yoink("usr/share/terminfo/d/d412-unix-s"); +__static_yoink("usr/share/terminfo/d/dku7102"); +__static_yoink("usr/share/terminfo/L/LFT-PC850"); +__static_yoink("usr/share/terminfo/8/8510"); +__static_yoink("usr/share/terminfo/p/pcvt25"); +__static_yoink("usr/share/terminfo/p/psterm-fast"); +__static_yoink("usr/share/terminfo/p/pt100"); +__static_yoink("usr/share/terminfo/p/p9-w"); +__static_yoink("usr/share/terminfo/p/pro350"); +__static_yoink("usr/share/terminfo/p/pccon+base"); +__static_yoink("usr/share/terminfo/p/putty-m1b"); +__static_yoink("usr/share/terminfo/p/prism8-w"); +__static_yoink("usr/share/terminfo/p/pt200w"); +__static_yoink("usr/share/terminfo/p/putty+fnkeys+vt100"); +__static_yoink("usr/share/terminfo/p/pt505-22"); +__static_yoink("usr/share/terminfo/p/putty-sco"); +__static_yoink("usr/share/terminfo/p/pcconsole"); +__static_yoink("usr/share/terminfo/p/prism14"); +__static_yoink("usr/share/terminfo/p/pcansi-m"); +__static_yoink("usr/share/terminfo/p/prism12-m-w"); +__static_yoink("usr/share/terminfo/p/pcvt50w"); +__static_yoink("usr/share/terminfo/p/pcansi25m"); +__static_yoink("usr/share/terminfo/p/putty-256color"); +__static_yoink("usr/share/terminfo/p/pcvtXX"); +__static_yoink("usr/share/terminfo/p/prism2"); +__static_yoink("usr/share/terminfo/p/pccon"); +__static_yoink("usr/share/terminfo/p/pe550"); +__static_yoink("usr/share/terminfo/p/putty+fnkeys+esc"); +__static_yoink("usr/share/terminfo/p/putty+fnkeys+sco"); +__static_yoink("usr/share/terminfo/p/prism7"); +__static_yoink("usr/share/terminfo/p/putty+fnkeys+vt400"); +__static_yoink("usr/share/terminfo/p/putty-m2"); +__static_yoink("usr/share/terminfo/p/pcix"); +__static_yoink("usr/share/terminfo/p/pe6100"); +__static_yoink("usr/share/terminfo/p/putty+screen"); +__static_yoink("usr/share/terminfo/p/p19"); +__static_yoink("usr/share/terminfo/p/putty-noapp"); +__static_yoink("usr/share/terminfo/p/pt505"); +__static_yoink("usr/share/terminfo/p/prism9-8"); +__static_yoink("usr/share/terminfo/p/prism12-w"); +__static_yoink("usr/share/terminfo/p/pcvt35w"); +__static_yoink("usr/share/terminfo/p/pc3"); +__static_yoink("usr/share/terminfo/p/pccon+colors"); +__static_yoink("usr/share/terminfo/p/prism12-m"); +__static_yoink("usr/share/terminfo/p/pe6300"); +__static_yoink("usr/share/terminfo/p/p9"); +__static_yoink("usr/share/terminfo/p/p14-m-w"); +__static_yoink("usr/share/terminfo/p/pmconsole"); +__static_yoink("usr/share/terminfo/p/pty"); +__static_yoink("usr/share/terminfo/p/pccon+keys"); +__static_yoink("usr/share/terminfo/p/pe1100"); +__static_yoink("usr/share/terminfo/p/pe7000m"); +__static_yoink("usr/share/terminfo/p/p12-w"); +__static_yoink("usr/share/terminfo/p/putty-m1"); +__static_yoink("usr/share/terminfo/p/pcansi33"); +__static_yoink("usr/share/terminfo/p/prism9-8-w"); +__static_yoink("usr/share/terminfo/p/ps300"); +__static_yoink("usr/share/terminfo/p/psterm-90x28"); +__static_yoink("usr/share/terminfo/p/p5"); +__static_yoink("usr/share/terminfo/p/pc-venix"); +__static_yoink("usr/share/terminfo/p/pc6300plus"); +__static_yoink("usr/share/terminfo/p/pcplot"); +__static_yoink("usr/share/terminfo/p/pt505-24"); +__static_yoink("usr/share/terminfo/p/psterm-80x24"); +__static_yoink("usr/share/terminfo/p/prism4"); +__static_yoink("usr/share/terminfo/p/psterm"); +__static_yoink("usr/share/terminfo/p/prism12"); +__static_yoink("usr/share/terminfo/p/putty+keypad"); +__static_yoink("usr/share/terminfo/p/pc3r-m"); +__static_yoink("usr/share/terminfo/p/pccons"); +__static_yoink("usr/share/terminfo/p/pt210"); +__static_yoink("usr/share/terminfo/p/pcvt50"); +__static_yoink("usr/share/terminfo/p/prism14-m"); +__static_yoink("usr/share/terminfo/p/pt100w"); +__static_yoink("usr/share/terminfo/p/pcansi43"); +__static_yoink("usr/share/terminfo/p/putty-screen"); +__static_yoink("usr/share/terminfo/p/pckermit"); +__static_yoink("usr/share/terminfo/p/pcvt25-color"); +__static_yoink("usr/share/terminfo/p/p14-m"); +__static_yoink("usr/share/terminfo/p/pe6312"); +__static_yoink("usr/share/terminfo/p/psterm-basic"); +__static_yoink("usr/share/terminfo/p/pt200"); +__static_yoink("usr/share/terminfo/p/pt250w"); +__static_yoink("usr/share/terminfo/p/p9-8"); +__static_yoink("usr/share/terminfo/p/psx_ansi"); +__static_yoink("usr/share/terminfo/p/p14"); +__static_yoink("usr/share/terminfo/p/p14-w"); +__static_yoink("usr/share/terminfo/p/p12"); +__static_yoink("usr/share/terminfo/p/pcansi-33-m"); +__static_yoink("usr/share/terminfo/p/pcvt40"); +__static_yoink("usr/share/terminfo/p/pcvt28w"); +__static_yoink("usr/share/terminfo/p/pe1200"); +__static_yoink("usr/share/terminfo/p/pccon+sgr+acs"); +__static_yoink("usr/share/terminfo/p/pccon+sgr+acs0"); +__static_yoink("usr/share/terminfo/p/p8-w"); +__static_yoink("usr/share/terminfo/p/pcansi-25-m"); +__static_yoink("usr/share/terminfo/p/pcvt43w"); +__static_yoink("usr/share/terminfo/p/pcansi-33"); +__static_yoink("usr/share/terminfo/p/putty+fnkeys+xterm"); +__static_yoink("usr/share/terminfo/p/pccon-m"); +__static_yoink("usr/share/terminfo/p/putty-vt100"); +__static_yoink("usr/share/terminfo/p/pmcons"); +__static_yoink("usr/share/terminfo/p/pc7300"); +__static_yoink("usr/share/terminfo/p/pc-minix"); +__static_yoink("usr/share/terminfo/p/pcansi"); +__static_yoink("usr/share/terminfo/p/p8"); +__static_yoink("usr/share/terminfo/p/pcansi33m"); +__static_yoink("usr/share/terminfo/p/pcvt43"); +__static_yoink("usr/share/terminfo/p/pcansi-43"); +__static_yoink("usr/share/terminfo/p/prism5"); +__static_yoink("usr/share/terminfo/p/pcmw"); +__static_yoink("usr/share/terminfo/p/pcansi-25"); +__static_yoink("usr/share/terminfo/p/prism8"); +__static_yoink("usr/share/terminfo/p/pccon0"); +__static_yoink("usr/share/terminfo/p/pcvt25w"); +__static_yoink("usr/share/terminfo/p/prism14-w"); +__static_yoink("usr/share/terminfo/p/pt250"); +__static_yoink("usr/share/terminfo/p/pcansi-mono"); +__static_yoink("usr/share/terminfo/p/pe1251"); +__static_yoink("usr/share/terminfo/p/pcvt35"); +__static_yoink("usr/share/terminfo/p/pc3r"); +__static_yoink("usr/share/terminfo/p/prism9-w"); +__static_yoink("usr/share/terminfo/p/p7"); +__static_yoink("usr/share/terminfo/p/pcansi-43-m"); +__static_yoink("usr/share/terminfo/p/putty+fnkeys+linux"); +__static_yoink("usr/share/terminfo/p/prism14-m-w"); +__static_yoink("usr/share/terminfo/p/p8gl"); +__static_yoink("usr/share/terminfo/p/p4"); +__static_yoink("usr/share/terminfo/p/psterm-96x48"); +__static_yoink("usr/share/terminfo/p/printer"); +__static_yoink("usr/share/terminfo/p/p12-m"); +__static_yoink("usr/share/terminfo/p/pe7000c"); +__static_yoink("usr/share/terminfo/p/pc-coherent"); +__static_yoink("usr/share/terminfo/p/pc3-bold"); +__static_yoink("usr/share/terminfo/p/p12-m-w"); +__static_yoink("usr/share/terminfo/p/p9-8-w"); +__static_yoink("usr/share/terminfo/p/pcvt40w"); +__static_yoink("usr/share/terminfo/p/pckermit120"); +__static_yoink("usr/share/terminfo/p/pilot"); +__static_yoink("usr/share/terminfo/p/pcansi25"); +__static_yoink("usr/share/terminfo/p/pcz19"); +__static_yoink("usr/share/terminfo/p/pcvt28"); +__static_yoink("usr/share/terminfo/p/prism9"); +__static_yoink("usr/share/terminfo/p/putty"); +__static_yoink("usr/share/terminfo/p/pccon0-m"); +__static_yoink("usr/share/terminfo/p/prism8gl"); +__static_yoink("usr/share/terminfo/p/pckermit12"); +__static_yoink("usr/share/terminfo/p/putty+fnkeys"); +__static_yoink("usr/share/terminfo/s/screen-s"); +__static_yoink("usr/share/terminfo/s/sun-e-s"); +__static_yoink("usr/share/terminfo/s/st-256color"); +__static_yoink("usr/share/terminfo/s/screen.vte"); +__static_yoink("usr/share/terminfo/s/screen-256color-bce"); +__static_yoink("usr/share/terminfo/s/st52-color"); +__static_yoink("usr/share/terminfo/s/sibo"); +__static_yoink("usr/share/terminfo/s/screen-bce.konsole"); +__static_yoink("usr/share/terminfo/s/sun-cmd"); +__static_yoink("usr/share/terminfo/s/stv52pc"); +__static_yoink("usr/share/terminfo/s/screen.linux-s"); +__static_yoink("usr/share/terminfo/s/swtp"); +__static_yoink("usr/share/terminfo/s/sun-s"); +__static_yoink("usr/share/terminfo/s/scoansi-old"); +__static_yoink("usr/share/terminfo/s/synertek380"); +__static_yoink("usr/share/terminfo/s/screen.mrxvt"); +__static_yoink("usr/share/terminfo/s/st-direct"); +__static_yoink("usr/share/terminfo/s/st"); +__static_yoink("usr/share/terminfo/s/st-0.7"); +__static_yoink("usr/share/terminfo/s/sune"); +__static_yoink("usr/share/terminfo/s/superbee-xsb"); +__static_yoink("usr/share/terminfo/s/superbeeic"); +__static_yoink("usr/share/terminfo/s/sc410"); +__static_yoink("usr/share/terminfo/s/screen-bce.xterm-new"); +__static_yoink("usr/share/terminfo/s/sun-12"); +__static_yoink("usr/share/terminfo/s/sb2"); +__static_yoink("usr/share/terminfo/s/superbee"); +__static_yoink("usr/share/terminfo/s/st-0.6"); +__static_yoink("usr/share/terminfo/s/sun-1"); +__static_yoink("usr/share/terminfo/s/sun-color"); +__static_yoink("usr/share/terminfo/s/stterm"); +__static_yoink("usr/share/terminfo/s/sbobcat"); +__static_yoink("usr/share/terminfo/s/screen.xterm-r6"); +__static_yoink("usr/share/terminfo/s/screen-bce.linux"); +__static_yoink("usr/share/terminfo/s/scoansi"); +__static_yoink("usr/share/terminfo/s/screen.minitel1"); +__static_yoink("usr/share/terminfo/s/scanset"); +__static_yoink("usr/share/terminfo/s/stterm-256color"); +__static_yoink("usr/share/terminfo/s/screen"); +__static_yoink("usr/share/terminfo/s/st52"); +__static_yoink("usr/share/terminfo/s/screen-16color-bce"); +__static_yoink("usr/share/terminfo/s/sun-type4"); +__static_yoink("usr/share/terminfo/s/scrhp"); +__static_yoink("usr/share/terminfo/s/screen.putty-m2"); +__static_yoink("usr/share/terminfo/s/screen3"); +__static_yoink("usr/share/terminfo/s/st-0.8"); +__static_yoink("usr/share/terminfo/s/sbi"); +__static_yoink("usr/share/terminfo/s/screen-bce"); +__static_yoink("usr/share/terminfo/s/screen.mlterm"); +__static_yoink("usr/share/terminfo/s/stv52"); +__static_yoink("usr/share/terminfo/s/simpleterm"); +__static_yoink("usr/share/terminfo/s/screen.putty-256color"); +__static_yoink("usr/share/terminfo/s/synertek"); +__static_yoink("usr/share/terminfo/s/securecrt"); +__static_yoink("usr/share/terminfo/s/sun-48"); +__static_yoink("usr/share/terminfo/s/screen.minitel2-80"); +__static_yoink("usr/share/terminfo/s/sun-24"); +__static_yoink("usr/share/terminfo/s/screen.konsole"); +__static_yoink("usr/share/terminfo/s/st52-m"); +__static_yoink("usr/share/terminfo/s/sun2"); +__static_yoink("usr/share/terminfo/s/screen4"); +__static_yoink("usr/share/terminfo/s/sun"); +__static_yoink("usr/share/terminfo/s/screen-base"); +__static_yoink("usr/share/terminfo/s/screen-bce.gnome"); +__static_yoink("usr/share/terminfo/s/screen.minitel1b-nb"); +__static_yoink("usr/share/terminfo/s/screen-bce.Eterm"); +__static_yoink("usr/share/terminfo/s/screen.xterm-256color"); +__static_yoink("usr/share/terminfo/s/screen-16color-s"); +__static_yoink("usr/share/terminfo/s/simterm"); +__static_yoink("usr/share/terminfo/s/screen+italics"); +__static_yoink("usr/share/terminfo/s/screen-256color-bce-s"); +__static_yoink("usr/share/terminfo/s/scrt"); +__static_yoink("usr/share/terminfo/s/screen.linux-m1b"); +__static_yoink("usr/share/terminfo/s/sun-il"); +__static_yoink("usr/share/terminfo/s/screen-256color-s"); +__static_yoink("usr/share/terminfo/s/st52-old"); +__static_yoink("usr/share/terminfo/s/screen.teraterm"); +__static_yoink("usr/share/terminfo/s/screen+fkeys"); +__static_yoink("usr/share/terminfo/s/screen-bce.rxvt"); +__static_yoink("usr/share/terminfo/s/sun-cgsix"); +__static_yoink("usr/share/terminfo/s/screen.vte-256color"); +__static_yoink("usr/share/terminfo/s/sun-34"); +__static_yoink("usr/share/terminfo/s/screen-bce.mrxvt"); +__static_yoink("usr/share/terminfo/s/screen-w"); +__static_yoink("usr/share/terminfo/s/sun-c"); +__static_yoink("usr/share/terminfo/s/screen.minitel1b-80"); +__static_yoink("usr/share/terminfo/s/screen.minitel1b"); +__static_yoink("usr/share/terminfo/s/screen.putty"); +__static_yoink("usr/share/terminfo/s/sv80"); +__static_yoink("usr/share/terminfo/s/screen.putty-m1b"); +__static_yoink("usr/share/terminfo/s/sun-nic"); +__static_yoink("usr/share/terminfo/s/sun-s-e"); +__static_yoink("usr/share/terminfo/s/soroc120"); +__static_yoink("usr/share/terminfo/s/screen.gnome"); +__static_yoink("usr/share/terminfo/s/spinwriter"); +__static_yoink("usr/share/terminfo/s/screen-256color"); +__static_yoink("usr/share/terminfo/s/sun+sl"); +__static_yoink("usr/share/terminfo/s/sun1"); +__static_yoink("usr/share/terminfo/s/screen5"); +__static_yoink("usr/share/terminfo/s/screen.minitel12-80"); +__static_yoink("usr/share/terminfo/s/screen.minitel1-nb"); +__static_yoink("usr/share/terminfo/s/stterm-16color"); +__static_yoink("usr/share/terminfo/s/screwpoint"); +__static_yoink("usr/share/terminfo/s/scoansi-new"); +__static_yoink("usr/share/terminfo/s/screen-16color"); +__static_yoink("usr/share/terminfo/s/screen.linux"); +__static_yoink("usr/share/terminfo/s/screen2"); +__static_yoink("usr/share/terminfo/s/st-16color"); +__static_yoink("usr/share/terminfo/s/sun-ss5"); +__static_yoink("usr/share/terminfo/s/screen.linux-m2"); +__static_yoink("usr/share/terminfo/s/superbrain"); +__static_yoink("usr/share/terminfo/s/screen.putty-m1"); +__static_yoink("usr/share/terminfo/s/sun-e"); +__static_yoink("usr/share/terminfo/s/screen.linux-m1"); +__static_yoink("usr/share/terminfo/s/soroc"); +__static_yoink("usr/share/terminfo/s/sb3"); +__static_yoink("usr/share/terminfo/s/screen.konsole-256color"); +__static_yoink("usr/share/terminfo/s/sb1"); +__static_yoink("usr/share/terminfo/s/screen.xterm-xfree86"); +__static_yoink("usr/share/terminfo/s/sc415"); +__static_yoink("usr/share/terminfo/s/system1"); +__static_yoink("usr/share/terminfo/s/screen.Eterm"); +__static_yoink("usr/share/terminfo/s/s4"); +__static_yoink("usr/share/terminfo/s/screen.xterm-new"); +__static_yoink("usr/share/terminfo/s/screen-16color-bce-s"); +__static_yoink("usr/share/terminfo/s/screen.mlterm-256color"); +__static_yoink("usr/share/terminfo/s/sun-17"); +__static_yoink("usr/share/terminfo/s/soroc140"); +__static_yoink("usr/share/terminfo/s/screen.rxvt"); +__static_yoink("usr/share/terminfo/f/f100"); +__static_yoink("usr/share/terminfo/f/fbterm"); +__static_yoink("usr/share/terminfo/f/fenix"); +__static_yoink("usr/share/terminfo/f/f200vi-w"); +__static_yoink("usr/share/terminfo/f/freedom200"); +__static_yoink("usr/share/terminfo/f/f110-w"); +__static_yoink("usr/share/terminfo/f/f200"); +__static_yoink("usr/share/terminfo/f/freedom110"); +__static_yoink("usr/share/terminfo/f/foot"); +__static_yoink("usr/share/terminfo/f/fox"); +__static_yoink("usr/share/terminfo/f/f100-rv"); +__static_yoink("usr/share/terminfo/f/freedom100"); +__static_yoink("usr/share/terminfo/f/f110"); +__static_yoink("usr/share/terminfo/f/f1720"); +__static_yoink("usr/share/terminfo/f/falco-p"); +__static_yoink("usr/share/terminfo/f/fenixw"); +__static_yoink("usr/share/terminfo/f/fortune"); +__static_yoink("usr/share/terminfo/f/foot+base"); +__static_yoink("usr/share/terminfo/f/f1720a"); +__static_yoink("usr/share/terminfo/f/freedom"); +__static_yoink("usr/share/terminfo/f/f110-14"); +__static_yoink("usr/share/terminfo/f/falco"); +__static_yoink("usr/share/terminfo/f/f200-w"); +__static_yoink("usr/share/terminfo/f/fos"); +__static_yoink("usr/share/terminfo/f/freedom-rv"); +__static_yoink("usr/share/terminfo/f/foot-direct"); +__static_yoink("usr/share/terminfo/f/f110-14w"); +__static_yoink("usr/share/terminfo/f/f200vi"); +__static_yoink("usr/share/terminfo/f/fixterm"); +__static_yoink("usr/share/terminfo/3/386at"); +__static_yoink("usr/share/terminfo/3/3b1"); +__static_yoink("usr/share/terminfo/1/1730-lm"); +__static_yoink("usr/share/terminfo/1/1178"); +__static_yoink("usr/share/terminfo/X/X-hpterm"); +__static_yoink("usr/share/terminfo/X/X-hpterm-color2"); +__static_yoink("usr/share/terminfo/Q/Q310-vip-Hw"); +__static_yoink("usr/share/terminfo/Q/Q310-vip-w"); +__static_yoink("usr/share/terminfo/Q/Q310-vip-H"); +__static_yoink("usr/share/terminfo/Q/Q310-vip-H-am"); +__static_yoink("usr/share/terminfo/Q/Q306-8-pc"); +__static_yoink("usr/share/terminfo/Q/Q310-vip-w-am"); +__static_yoink("usr/share/terminfo/t/tty4424m"); +__static_yoink("usr/share/terminfo/t/t1061"); +__static_yoink("usr/share/terminfo/t/tvi92B"); +__static_yoink("usr/share/terminfo/t/tvi920b-p-2p"); +__static_yoink("usr/share/terminfo/t/tek4025-cr"); +__static_yoink("usr/share/terminfo/t/terminet"); +__static_yoink("usr/share/terminfo/t/tvi910+"); +__static_yoink("usr/share/terminfo/t/teken-sc"); +__static_yoink("usr/share/terminfo/t/tab"); +__static_yoink("usr/share/terminfo/t/tvi920b-vb-p"); +__static_yoink("usr/share/terminfo/t/tn300"); +__static_yoink("usr/share/terminfo/t/tvi914"); +__static_yoink("usr/share/terminfo/t/tvi920c-p-2p"); +__static_yoink("usr/share/terminfo/t/ti916"); +__static_yoink("usr/share/terminfo/t/tvi912c-unk"); +__static_yoink("usr/share/terminfo/t/ti916-132"); +__static_yoink("usr/share/terminfo/t/ti703-w"); +__static_yoink("usr/share/terminfo/t/tvi920c-unk"); +__static_yoink("usr/share/terminfo/t/tek4027-ex"); +__static_yoink("usr/share/terminfo/t/t16"); +__static_yoink("usr/share/terminfo/t/ts-1p"); +__static_yoink("usr/share/terminfo/t/tty4420"); +__static_yoink("usr/share/terminfo/t/tvi920b-2p-p"); +__static_yoink("usr/share/terminfo/t/ti924-8"); +__static_yoink("usr/share/terminfo/t/tek"); +__static_yoink("usr/share/terminfo/t/teken-2022"); +__static_yoink("usr/share/terminfo/t/tek4404"); +__static_yoink("usr/share/terminfo/t/ti931"); +__static_yoink("usr/share/terminfo/t/tek4025a"); +__static_yoink("usr/share/terminfo/t/tvi920b-2p-mc"); +__static_yoink("usr/share/terminfo/t/tn1200"); +__static_yoink("usr/share/terminfo/t/tek4107"); +__static_yoink("usr/share/terminfo/t/tvi912b+printer"); +__static_yoink("usr/share/terminfo/t/tek4105"); +__static_yoink("usr/share/terminfo/t/ti916-8"); +__static_yoink("usr/share/terminfo/t/tvi912c-p-vb"); +__static_yoink("usr/share/terminfo/t/tvi920c-unk-vb"); +__static_yoink("usr/share/terminfo/t/tvi912c-2p-mc"); +__static_yoink("usr/share/terminfo/t/tvi912c-2p"); +__static_yoink("usr/share/terminfo/t/teken-16color"); +__static_yoink("usr/share/terminfo/t/tvi912b-vb-mc"); +__static_yoink("usr/share/terminfo/t/ti735"); +__static_yoink("usr/share/terminfo/t/tvi920b-unk-2p"); +__static_yoink("usr/share/terminfo/t/teraterm4.97"); +__static_yoink("usr/share/terminfo/t/tty5420+nl"); +__static_yoink("usr/share/terminfo/t/tws2102-sna"); +__static_yoink("usr/share/terminfo/t/ti916-220-8"); +__static_yoink("usr/share/terminfo/t/tek4113"); +__static_yoink("usr/share/terminfo/t/tek4025-17"); +__static_yoink("usr/share/terminfo/t/tvi920c-vb-mc"); +__static_yoink("usr/share/terminfo/t/tvi920b-mc-vb"); +__static_yoink("usr/share/terminfo/t/terminology-1.8.1"); +__static_yoink("usr/share/terminfo/t/tvi912b-unk"); +__static_yoink("usr/share/terminfo/t/tvi912b+dim"); +__static_yoink("usr/share/terminfo/t/tek4014"); +__static_yoink("usr/share/terminfo/t/ts100-sp"); +__static_yoink("usr/share/terminfo/t/tvi970-vb"); +__static_yoink("usr/share/terminfo/t/tvi955"); +__static_yoink("usr/share/terminfo/t/ts1"); +__static_yoink("usr/share/terminfo/t/tvi950-rv-4p"); +__static_yoink("usr/share/terminfo/t/tandem653"); +__static_yoink("usr/share/terminfo/t/tab132-rv"); +__static_yoink("usr/share/terminfo/t/teraterm"); +__static_yoink("usr/share/terminfo/t/tek4114"); +__static_yoink("usr/share/terminfo/t/tvi955-w"); +__static_yoink("usr/share/terminfo/t/ti928"); +__static_yoink("usr/share/terminfo/t/tek4025-ex"); +__static_yoink("usr/share/terminfo/t/ti928-8"); +__static_yoink("usr/share/terminfo/t/tws2103"); +__static_yoink("usr/share/terminfo/t/tkterm"); +__static_yoink("usr/share/terminfo/t/tek4115"); +__static_yoink("usr/share/terminfo/t/tvi920c-mc-vb"); +__static_yoink("usr/share/terminfo/t/tvi920b-mc-2p"); +__static_yoink("usr/share/terminfo/t/tek4112"); +__static_yoink("usr/share/terminfo/t/tvi920b-vb-mc"); +__static_yoink("usr/share/terminfo/t/tandem6510"); +__static_yoink("usr/share/terminfo/t/tvi912c-2p-p"); +__static_yoink("usr/share/terminfo/t/tvipt"); +__static_yoink("usr/share/terminfo/t/tek4027"); +__static_yoink("usr/share/terminfo/t/tek4023"); +__static_yoink("usr/share/terminfo/t/teraterm-256color"); +__static_yoink("usr/share/terminfo/t/tty5410-w"); +__static_yoink("usr/share/terminfo/t/ttydmd"); +__static_yoink("usr/share/terminfo/t/tty5410v1-w"); +__static_yoink("usr/share/terminfo/t/tvi912b+mc"); +__static_yoink("usr/share/terminfo/t/tty5420-rv-nl"); +__static_yoink("usr/share/terminfo/t/tek4024"); +__static_yoink("usr/share/terminfo/t/ti745"); +__static_yoink("usr/share/terminfo/t/ts100"); +__static_yoink("usr/share/terminfo/t/tvi920c-unk-2p"); +__static_yoink("usr/share/terminfo/t/tab132-15"); +__static_yoink("usr/share/terminfo/t/tw100"); +__static_yoink("usr/share/terminfo/t/tek4107brl"); +__static_yoink("usr/share/terminfo/t/tvi920c-vb-unk"); +__static_yoink("usr/share/terminfo/t/tvi920c-vb"); +__static_yoink("usr/share/terminfo/t/tvi912b-2p-p"); +__static_yoink("usr/share/terminfo/t/tvi920b-2p"); +__static_yoink("usr/share/terminfo/t/tvi920c-p"); +__static_yoink("usr/share/terminfo/t/tvi920b-vb-unk"); +__static_yoink("usr/share/terminfo/t/tvi921"); +__static_yoink("usr/share/terminfo/t/tvi92D"); +__static_yoink("usr/share/terminfo/t/tvi912b-unk-vb"); +__static_yoink("usr/share/terminfo/t/tvi920b-unk-vb"); +__static_yoink("usr/share/terminfo/t/tek4013"); +__static_yoink("usr/share/terminfo/t/tws2103-sna"); +__static_yoink("usr/share/terminfo/t/tvi950-2p"); +__static_yoink("usr/share/terminfo/t/terminator"); +__static_yoink("usr/share/terminfo/t/tek4112-5"); +__static_yoink("usr/share/terminfo/t/tty5420-w-rv"); +__static_yoink("usr/share/terminfo/t/ti707"); +__static_yoink("usr/share/terminfo/t/ti916-8-132"); +__static_yoink("usr/share/terminfo/t/t3700"); +__static_yoink("usr/share/terminfo/t/tvi920c-p-vb"); +__static_yoink("usr/share/terminfo/t/ti924-8w"); +__static_yoink("usr/share/terminfo/t/tvi920c"); +__static_yoink("usr/share/terminfo/t/tty5410v1"); +__static_yoink("usr/share/terminfo/t/teken"); +__static_yoink("usr/share/terminfo/t/ti707-w"); +__static_yoink("usr/share/terminfo/t/tek4205"); +__static_yoink("usr/share/terminfo/t/tab132-w-rv"); +__static_yoink("usr/share/terminfo/t/tek4207-s"); +__static_yoink("usr/share/terminfo/t/tek4207"); +__static_yoink("usr/share/terminfo/t/tek4025-17-ws"); +__static_yoink("usr/share/terminfo/t/tek4109brl"); +__static_yoink("usr/share/terminfo/t/tvi950"); +__static_yoink("usr/share/terminfo/t/tvi925"); +__static_yoink("usr/share/terminfo/t/tek4106brl"); +__static_yoink("usr/share/terminfo/t/tvi9065"); +__static_yoink("usr/share/terminfo/t/t10"); +__static_yoink("usr/share/terminfo/t/tvi955-hb"); +__static_yoink("usr/share/terminfo/t/tty43"); +__static_yoink("usr/share/terminfo/t/tty5420-w"); +__static_yoink("usr/share/terminfo/t/tvi912b"); +__static_yoink("usr/share/terminfo/t/ti926-8"); +__static_yoink("usr/share/terminfo/t/tty5425-w"); +__static_yoink("usr/share/terminfo/t/tek4015"); +__static_yoink("usr/share/terminfo/t/tty5425-nl"); +__static_yoink("usr/share/terminfo/t/tvi920"); +__static_yoink("usr/share/terminfo/t/tvi920c-mc"); +__static_yoink("usr/share/terminfo/t/tvi912b-2p"); +__static_yoink("usr/share/terminfo/t/tty5620-1"); +__static_yoink("usr/share/terminfo/t/tab132-w"); +__static_yoink("usr/share/terminfo/t/ts-1"); +__static_yoink("usr/share/terminfo/t/ti916-220-7"); +__static_yoink("usr/share/terminfo/t/terminet300"); +__static_yoink("usr/share/terminfo/t/ts100-ctxt"); +__static_yoink("usr/share/terminfo/t/tvi912c-mc-2p"); +__static_yoink("usr/share/terminfo/t/tty35"); +__static_yoink("usr/share/terminfo/t/terminology"); +__static_yoink("usr/share/terminfo/t/tek4105-30"); +__static_yoink("usr/share/terminfo/t/tvi912b+2p"); +__static_yoink("usr/share/terminfo/t/tvi912c"); +__static_yoink("usr/share/terminfo/t/tvi912c-unk-vb"); +__static_yoink("usr/share/terminfo/t/tty4424"); +__static_yoink("usr/share/terminfo/t/ti_ansi"); +__static_yoink("usr/share/terminfo/t/tek4113-nd"); +__static_yoink("usr/share/terminfo/t/tt"); +__static_yoink("usr/share/terminfo/t/tgtelnet"); +__static_yoink("usr/share/terminfo/t/t1061f"); +__static_yoink("usr/share/terminfo/t/tty5620-24"); +__static_yoink("usr/share/terminfo/t/tvi912b-vb-p"); +__static_yoink("usr/share/terminfo/t/tvi912b-p"); +__static_yoink("usr/share/terminfo/t/tmux-direct"); +__static_yoink("usr/share/terminfo/t/tvi970"); +__static_yoink("usr/share/terminfo/t/tvi920b-mc"); +__static_yoink("usr/share/terminfo/t/teleray"); +__static_yoink("usr/share/terminfo/t/tvi920c-vb-p"); +__static_yoink("usr/share/terminfo/t/tvi950-rv"); +__static_yoink("usr/share/terminfo/t/tty40"); +__static_yoink("usr/share/terminfo/t/ti703"); +__static_yoink("usr/share/terminfo/t/tvi920b+fn"); +__static_yoink("usr/share/terminfo/t/tvi950-rv-2p"); +__static_yoink("usr/share/terminfo/t/tvi912b-mc-2p"); +__static_yoink("usr/share/terminfo/t/ti924"); +__static_yoink("usr/share/terminfo/t/trs2"); +__static_yoink("usr/share/terminfo/t/tvi912b-unk-2p"); +__static_yoink("usr/share/terminfo/t/tvi912b-p-vb"); +__static_yoink("usr/share/terminfo/t/trsII"); +__static_yoink("usr/share/terminfo/t/tvi920c-2p-p"); +__static_yoink("usr/share/terminfo/t/tvi912c-vb-p"); +__static_yoink("usr/share/terminfo/t/terminology-0.6.1"); +__static_yoink("usr/share/terminfo/t/tty33"); +__static_yoink("usr/share/terminfo/t/trs16"); +__static_yoink("usr/share/terminfo/t/tek4014-sm"); +__static_yoink("usr/share/terminfo/t/tmux"); +__static_yoink("usr/share/terminfo/t/tvi912c-vb"); +__static_yoink("usr/share/terminfo/t/tek4025ex"); +__static_yoink("usr/share/terminfo/t/tek4113-34"); +__static_yoink("usr/share/terminfo/t/tw52"); +__static_yoink("usr/share/terminfo/t/ti800"); +__static_yoink("usr/share/terminfo/t/tvi950-4p"); +__static_yoink("usr/share/terminfo/t/t653x"); +__static_yoink("usr/share/terminfo/t/tvi912c-mc"); +__static_yoink("usr/share/terminfo/t/tvi912b-2p-unk"); +__static_yoink("usr/share/terminfo/t/tvi920c-2p-mc"); +__static_yoink("usr/share/terminfo/t/teraterm4.59"); +__static_yoink("usr/share/terminfo/t/tty5410"); +__static_yoink("usr/share/terminfo/t/tvi920b-2p-unk"); +__static_yoink("usr/share/terminfo/t/ti733"); +__static_yoink("usr/share/terminfo/t/tty5620"); +__static_yoink("usr/share/terminfo/t/tvi912c-p-2p"); +__static_yoink("usr/share/terminfo/t/trs80II"); +__static_yoink("usr/share/terminfo/t/tty5420-w-nl"); +__static_yoink("usr/share/terminfo/t/teletec"); +__static_yoink("usr/share/terminfo/t/tab132"); +__static_yoink("usr/share/terminfo/t/tek4015-sm"); +__static_yoink("usr/share/terminfo/t/teken-vt"); +__static_yoink("usr/share/terminfo/t/tvi920c-mc-2p"); +__static_yoink("usr/share/terminfo/t/tek4012"); +__static_yoink("usr/share/terminfo/t/tvi910"); +__static_yoink("usr/share/terminfo/t/tvi912"); +__static_yoink("usr/share/terminfo/t/tty37"); +__static_yoink("usr/share/terminfo/t/teraterm2.3"); +__static_yoink("usr/share/terminfo/t/tvi912b-vb"); +__static_yoink("usr/share/terminfo/t/tty5420-nl"); +__static_yoink("usr/share/terminfo/t/tw52-color"); +__static_yoink("usr/share/terminfo/t/ti924w"); +__static_yoink("usr/share/terminfo/t/t3800"); +__static_yoink("usr/share/terminfo/t/tty5425"); +__static_yoink("usr/share/terminfo/t/ti700"); +__static_yoink("usr/share/terminfo/t/tvi912b-vb-unk"); +__static_yoink("usr/share/terminfo/t/tvi912b+vb"); +__static_yoink("usr/share/terminfo/t/tty5420-rv"); +__static_yoink("usr/share/terminfo/t/tvi912c-p"); +__static_yoink("usr/share/terminfo/t/tek4112-nd"); +__static_yoink("usr/share/terminfo/t/tvi912c-mc-vb"); +__static_yoink("usr/share/terminfo/t/tvi912c-vb-mc"); +__static_yoink("usr/share/terminfo/t/tty4426"); +__static_yoink("usr/share/terminfo/t/tty5620-34"); +__static_yoink("usr/share/terminfo/t/tty5420-w-rv-n"); +__static_yoink("usr/share/terminfo/t/ti926"); +__static_yoink("usr/share/terminfo/t/tvi912cc"); +__static_yoink("usr/share/terminfo/t/tvi920c-2p"); +__static_yoink("usr/share/terminfo/t/tvi912c-unk-2p"); +__static_yoink("usr/share/terminfo/t/tvi920b-p"); +__static_yoink("usr/share/terminfo/t/tvi912b-mc-vb"); +__static_yoink("usr/share/terminfo/t/tvi925-hi"); +__static_yoink("usr/share/terminfo/t/tvi912c-2p-unk"); +__static_yoink("usr/share/terminfo/t/ts1p"); +__static_yoink("usr/share/terminfo/t/tvi912c-vb-unk"); +__static_yoink("usr/share/terminfo/t/tvi803"); +__static_yoink("usr/share/terminfo/t/tek4025"); +__static_yoink("usr/share/terminfo/t/tty5420"); +__static_yoink("usr/share/terminfo/t/tvi920b-unk"); +__static_yoink("usr/share/terminfo/t/teken-vt+fkeys"); +__static_yoink("usr/share/terminfo/t/tvi920b"); +__static_yoink("usr/share/terminfo/t/tek4105a"); +__static_yoink("usr/share/terminfo/t/tvi912b-2p-mc"); +__static_yoink("usr/share/terminfo/t/tty4424-1"); +__static_yoink("usr/share/terminfo/t/tvi970-2p"); +__static_yoink("usr/share/terminfo/t/tvi912b-p-2p"); +__static_yoink("usr/share/terminfo/t/tvi924"); +__static_yoink("usr/share/terminfo/t/tws-generic"); +__static_yoink("usr/share/terminfo/t/tek4125"); +__static_yoink("usr/share/terminfo/t/tmux-256color"); +__static_yoink("usr/share/terminfo/t/tw52-m"); +__static_yoink("usr/share/terminfo/t/tvi920c-2p-unk"); +__static_yoink("usr/share/terminfo/t/tt52"); +__static_yoink("usr/share/terminfo/t/tvi912b-mc"); +__static_yoink("usr/share/terminfo/t/termite"); +__static_yoink("usr/share/terminfo/t/tek4109"); +__static_yoink("usr/share/terminfo/t/terminology-1.0.0"); +__static_yoink("usr/share/terminfo/t/teken-sc+fkeys"); +__static_yoink("usr/share/terminfo/t/tvi920b-p-vb"); +__static_yoink("usr/share/terminfo/t/terminet1200"); +__static_yoink("usr/share/terminfo/t/tty5620-s"); +__static_yoink("usr/share/terminfo/t/teken-2018"); +__static_yoink("usr/share/terminfo/t/tvi920b-vb"); +__static_yoink("usr/share/terminfo/a/att2300"); +__static_yoink("usr/share/terminfo/a/adds980"); +__static_yoink("usr/share/terminfo/a/att730-41"); +__static_yoink("usr/share/terminfo/a/att4415-nl"); +__static_yoink("usr/share/terminfo/a/altos-2"); +__static_yoink("usr/share/terminfo/a/att610-103k-w"); +__static_yoink("usr/share/terminfo/a/avt-w"); +__static_yoink("usr/share/terminfo/a/ansiw"); +__static_yoink("usr/share/terminfo/a/aaa-24"); +__static_yoink("usr/share/terminfo/a/aj510"); +__static_yoink("usr/share/terminfo/a/ansil-mono"); +__static_yoink("usr/share/terminfo/a/att4410v1"); +__static_yoink("usr/share/terminfo/a/aixterm-m-old"); +__static_yoink("usr/share/terminfo/a/att5420-w"); +__static_yoink("usr/share/terminfo/a/adm2"); +__static_yoink("usr/share/terminfo/a/aaa-28"); +__static_yoink("usr/share/terminfo/a/ansi+cpr"); +__static_yoink("usr/share/terminfo/a/att610+cvis0"); +__static_yoink("usr/share/terminfo/a/abm85h-old"); +__static_yoink("usr/share/terminfo/a/at-color"); +__static_yoink("usr/share/terminfo/a/att513"); +__static_yoink("usr/share/terminfo/a/aaa-60-s"); +__static_yoink("usr/share/terminfo/a/att4410"); +__static_yoink("usr/share/terminfo/a/annarbor4080"); +__static_yoink("usr/share/terminfo/a/att615-103k-w"); +__static_yoink("usr/share/terminfo/a/avatar1"); +__static_yoink("usr/share/terminfo/a/att4415"); +__static_yoink("usr/share/terminfo/a/att610-w"); +__static_yoink("usr/share/terminfo/a/ansi-color-2-emx"); +__static_yoink("usr/share/terminfo/a/aaa-26"); +__static_yoink("usr/share/terminfo/a/att5410v1-w"); +__static_yoink("usr/share/terminfo/a/ansi+idl"); +__static_yoink("usr/share/terminfo/a/aaa-40-rv"); +__static_yoink("usr/share/terminfo/a/apple2e-p"); +__static_yoink("usr/share/terminfo/a/act5"); +__static_yoink("usr/share/terminfo/a/abm85h"); +__static_yoink("usr/share/terminfo/a/att4425-nl"); +__static_yoink("usr/share/terminfo/a/abm85e"); +__static_yoink("usr/share/terminfo/a/adm3a"); +__static_yoink("usr/share/terminfo/a/avt-s"); +__static_yoink("usr/share/terminfo/a/ansi+sgrul"); +__static_yoink("usr/share/terminfo/a/att730r"); +__static_yoink("usr/share/terminfo/a/apple-videx2"); +__static_yoink("usr/share/terminfo/a/aas1901"); +__static_yoink("usr/share/terminfo/a/aaa-30-s-rv-ct"); +__static_yoink("usr/share/terminfo/a/ansi.sysk"); +__static_yoink("usr/share/terminfo/a/ansi+pp"); +__static_yoink("usr/share/terminfo/a/ampex232"); +__static_yoink("usr/share/terminfo/a/ampex-232"); +__static_yoink("usr/share/terminfo/a/att5420-w-nl"); +__static_yoink("usr/share/terminfo/a/att615-w"); +__static_yoink("usr/share/terminfo/a/aaa-18"); +__static_yoink("usr/share/terminfo/a/ansi+enq"); +__static_yoink("usr/share/terminfo/a/ansi77"); +__static_yoink("usr/share/terminfo/a/aa4080"); +__static_yoink("usr/share/terminfo/a/avt-rv-ns"); +__static_yoink("usr/share/terminfo/a/att4425"); +__static_yoink("usr/share/terminfo/a/att5620-1"); +__static_yoink("usr/share/terminfo/a/ansi80x60"); +__static_yoink("usr/share/terminfo/a/apple-vm80"); +__static_yoink("usr/share/terminfo/a/alto-h19"); +__static_yoink("usr/share/terminfo/a/aaa-30-s-ctxt"); +__static_yoink("usr/share/terminfo/a/att5420-rv"); +__static_yoink("usr/share/terminfo/a/att605-w"); +__static_yoink("usr/share/terminfo/a/atari-old"); +__static_yoink("usr/share/terminfo/a/apple-80"); +__static_yoink("usr/share/terminfo/a/aaa"); +__static_yoink("usr/share/terminfo/a/atari-m"); +__static_yoink("usr/share/terminfo/a/arm100"); +__static_yoink("usr/share/terminfo/a/aaa-30-s-rv"); +__static_yoink("usr/share/terminfo/a/avt-ns"); +__static_yoink("usr/share/terminfo/a/ansi+local"); +__static_yoink("usr/share/terminfo/a/aaa-db"); +__static_yoink("usr/share/terminfo/a/aixterm+sl"); +__static_yoink("usr/share/terminfo/a/ansi+rep"); +__static_yoink("usr/share/terminfo/a/ansi+rca2"); +__static_yoink("usr/share/terminfo/a/ansi+erase"); +__static_yoink("usr/share/terminfo/a/avt-w-rv-s"); +__static_yoink("usr/share/terminfo/a/att5620-s"); +__static_yoink("usr/share/terminfo/a/adm3"); +__static_yoink("usr/share/terminfo/a/arm100-am"); +__static_yoink("usr/share/terminfo/a/aixterm-16color"); +__static_yoink("usr/share/terminfo/a/aaa-36"); +__static_yoink("usr/share/terminfo/a/atari"); +__static_yoink("usr/share/terminfo/a/adm31-old"); +__static_yoink("usr/share/terminfo/a/apple-uterm-vb"); +__static_yoink("usr/share/terminfo/a/ansisysk"); +__static_yoink("usr/share/terminfo/a/apollo"); +__static_yoink("usr/share/terminfo/a/at-m"); +__static_yoink("usr/share/terminfo/a/att610-103k"); +__static_yoink("usr/share/terminfo/a/ansi80x50"); +__static_yoink("usr/share/terminfo/a/at386"); +__static_yoink("usr/share/terminfo/a/adm1178"); +__static_yoink("usr/share/terminfo/a/ansi"); +__static_yoink("usr/share/terminfo/a/alt2"); +__static_yoink("usr/share/terminfo/a/aaa-30"); +__static_yoink("usr/share/terminfo/a/ansi80x60-mono"); +__static_yoink("usr/share/terminfo/a/att5420_2"); +__static_yoink("usr/share/terminfo/a/ansi+sgr"); +__static_yoink("usr/share/terminfo/a/aaa-30-rv"); +__static_yoink("usr/share/terminfo/a/amp219"); +__static_yoink("usr/share/terminfo/a/ansi-mini"); +__static_yoink("usr/share/terminfo/a/aaa-24-rv"); +__static_yoink("usr/share/terminfo/a/aaa-60-dec-rv"); +__static_yoink("usr/share/terminfo/a/aterm"); +__static_yoink("usr/share/terminfo/a/att5320"); +__static_yoink("usr/share/terminfo/a/amiga-8bit"); +__static_yoink("usr/share/terminfo/a/avatar0+"); +__static_yoink("usr/share/terminfo/a/aaa-s"); +__static_yoink("usr/share/terminfo/a/ansi+rca"); +__static_yoink("usr/share/terminfo/a/addrinfo"); +__static_yoink("usr/share/terminfo/a/ansi+idl1"); +__static_yoink("usr/share/terminfo/a/ansi80x43-mono"); +__static_yoink("usr/share/terminfo/a/alt4"); +__static_yoink("usr/share/terminfo/a/att605"); +__static_yoink("usr/share/terminfo/a/att5420-w-rv"); +__static_yoink("usr/share/terminfo/a/ansi+local1"); +__static_yoink("usr/share/terminfo/a/ansi80x25"); +__static_yoink("usr/share/terminfo/a/ansi80x25-raw"); +__static_yoink("usr/share/terminfo/a/adm1a"); +__static_yoink("usr/share/terminfo/a/alt5"); +__static_yoink("usr/share/terminfo/a/att5620-34"); +__static_yoink("usr/share/terminfo/a/ansi-mr"); +__static_yoink("usr/share/terminfo/a/avt-w-rv-ns"); +__static_yoink("usr/share/terminfo/a/aaa-40"); +__static_yoink("usr/share/terminfo/a/alacritty"); +__static_yoink("usr/share/terminfo/a/aaa-30-rv-ctxt"); +__static_yoink("usr/share/terminfo/a/att4424"); +__static_yoink("usr/share/terminfo/a/apple80p"); +__static_yoink("usr/share/terminfo/a/att4410-w"); +__static_yoink("usr/share/terminfo/a/ampex232w"); +__static_yoink("usr/share/terminfo/a/ansiterm"); +__static_yoink("usr/share/terminfo/a/aaa-60-rv"); +__static_yoink("usr/share/terminfo/a/ampex80"); +__static_yoink("usr/share/terminfo/a/att730r-24"); +__static_yoink("usr/share/terminfo/a/altos7pc"); +__static_yoink("usr/share/terminfo/a/adm+sgr"); +__static_yoink("usr/share/terminfo/a/att5420-rv-nl"); +__static_yoink("usr/share/terminfo/a/att610+cvis"); +__static_yoink("usr/share/terminfo/a/adm36"); +__static_yoink("usr/share/terminfo/a/adm5"); +__static_yoink("usr/share/terminfo/a/aaa-36-rv"); +__static_yoink("usr/share/terminfo/a/appleIIgs"); +__static_yoink("usr/share/terminfo/a/att5430"); +__static_yoink("usr/share/terminfo/a/apple-videx3"); +__static_yoink("usr/share/terminfo/a/amiga"); +__static_yoink("usr/share/terminfo/a/att5420+nl"); +__static_yoink("usr/share/terminfo/a/aws"); +__static_yoink("usr/share/terminfo/a/ansi+sgrbold"); +__static_yoink("usr/share/terminfo/a/adm31"); +__static_yoink("usr/share/terminfo/a/ansis"); +__static_yoink("usr/share/terminfo/a/ansi+idc"); +__static_yoink("usr/share/terminfo/a/alt7pc"); +__static_yoink("usr/share/terminfo/a/abm85"); +__static_yoink("usr/share/terminfo/a/att4415-rv"); +__static_yoink("usr/share/terminfo/a/aaa-rv-ctxt"); +__static_yoink("usr/share/terminfo/a/ampex210"); +__static_yoink("usr/share/terminfo/a/ansi80x50-mono"); +__static_yoink("usr/share/terminfo/a/avatar"); +__static_yoink("usr/share/terminfo/a/avt-rv-s"); +__static_yoink("usr/share/terminfo/a/ansi+cup"); +__static_yoink("usr/share/terminfo/a/alacritty-direct"); +__static_yoink("usr/share/terminfo/a/att5420-nl"); +__static_yoink("usr/share/terminfo/a/att6386"); +__static_yoink("usr/share/terminfo/a/aaa-s-rv-ctxt"); +__static_yoink("usr/share/terminfo/a/altos3"); +__static_yoink("usr/share/terminfo/a/altos5"); +__static_yoink("usr/share/terminfo/a/aepro"); +__static_yoink("usr/share/terminfo/a/amiga-vnc"); +__static_yoink("usr/share/terminfo/a/altos2"); +__static_yoink("usr/share/terminfo/a/att630-24"); +__static_yoink("usr/share/terminfo/a/appleIIc"); +__static_yoink("usr/share/terminfo/a/adm12"); +__static_yoink("usr/share/terminfo/a/atari-color"); +__static_yoink("usr/share/terminfo/a/a80"); +__static_yoink("usr/share/terminfo/a/att510a"); +__static_yoink("usr/share/terminfo/a/att630"); +__static_yoink("usr/share/terminfo/a/aaa+rv"); +__static_yoink("usr/share/terminfo/a/at"); +__static_yoink("usr/share/terminfo/a/alto-heath"); +__static_yoink("usr/share/terminfo/a/ansi80x30"); +__static_yoink("usr/share/terminfo/a/att4425-w"); +__static_yoink("usr/share/terminfo/a/apple-videx"); +__static_yoink("usr/share/terminfo/a/alt3"); +__static_yoink("usr/share/terminfo/a/att505-22"); +__static_yoink("usr/share/terminfo/a/apl"); +__static_yoink("usr/share/terminfo/a/ampex175-b"); +__static_yoink("usr/share/terminfo/a/att5420-w-rv-n"); +__static_yoink("usr/share/terminfo/a/ansi-emx"); +__static_yoink("usr/share/terminfo/a/addsviewpoint"); +__static_yoink("usr/share/terminfo/a/ansi43m"); +__static_yoink("usr/share/terminfo/a/att5310"); +__static_yoink("usr/share/terminfo/a/adm20"); +__static_yoink("usr/share/terminfo/a/aaa+dec"); +__static_yoink("usr/share/terminfo/a/adm3a+"); +__static_yoink("usr/share/terminfo/a/ansis-mono"); +__static_yoink("usr/share/terminfo/a/awsc"); +__static_yoink("usr/share/terminfo/a/ansi.sys-old"); +__static_yoink("usr/share/terminfo/a/altoheath"); +__static_yoink("usr/share/terminfo/a/apple2e"); +__static_yoink("usr/share/terminfo/a/ambas"); +__static_yoink("usr/share/terminfo/a/att700"); +__static_yoink("usr/share/terminfo/a/amiga-h"); +__static_yoink("usr/share/terminfo/a/adm1"); +__static_yoink("usr/share/terminfo/a/a980"); +__static_yoink("usr/share/terminfo/a/ansi+sgrdim"); +__static_yoink("usr/share/terminfo/a/altos-4"); +__static_yoink("usr/share/terminfo/a/att4415+nl"); +__static_yoink("usr/share/terminfo/a/att4418-w"); +__static_yoink("usr/share/terminfo/a/aj830"); +__static_yoink("usr/share/terminfo/a/att5410-w"); +__static_yoink("usr/share/terminfo/a/att4415-w-rv"); +__static_yoink("usr/share/terminfo/a/arm100-wam"); +__static_yoink("usr/share/terminfo/a/ansi.sys"); +__static_yoink("usr/share/terminfo/a/aaa-s-rv"); +__static_yoink("usr/share/terminfo/a/adm42"); +__static_yoink("usr/share/terminfo/a/att4418"); +__static_yoink("usr/share/terminfo/a/alacritty+common"); +__static_yoink("usr/share/terminfo/a/att7300"); +__static_yoink("usr/share/terminfo/a/att4410v1-w"); +__static_yoink("usr/share/terminfo/a/aaa-30-s"); +__static_yoink("usr/share/terminfo/a/appleII"); +__static_yoink("usr/share/terminfo/a/aaa-48-rv"); +__static_yoink("usr/share/terminfo/a/absolute"); +__static_yoink("usr/share/terminfo/a/aaa-ctxt"); +__static_yoink("usr/share/terminfo/a/atari_st-color"); +__static_yoink("usr/share/terminfo/a/aaa-rv-unk"); +__static_yoink("usr/share/terminfo/a/avt-w-ns"); +__static_yoink("usr/share/terminfo/a/ansi-generic"); +__static_yoink("usr/share/terminfo/a/ampex-219w"); +__static_yoink("usr/share/terminfo/a/att4415-w-rv-n"); +__static_yoink("usr/share/terminfo/a/apple-uterm"); +__static_yoink("usr/share/terminfo/a/aaa-30-ctxt"); +__static_yoink("usr/share/terminfo/a/aixterm-m"); +__static_yoink("usr/share/terminfo/a/avt+s"); +__static_yoink("usr/share/terminfo/a/ansi+inittabs"); +__static_yoink("usr/share/terminfo/a/ansi80x43"); +__static_yoink("usr/share/terminfo/a/ansi+idc1"); +__static_yoink("usr/share/terminfo/a/avt-w-rv"); +__static_yoink("usr/share/terminfo/a/adm42-ns"); +__static_yoink("usr/share/terminfo/a/arm100-w"); +__static_yoink("usr/share/terminfo/a/aixterm"); +__static_yoink("usr/share/terminfo/a/atarist-m"); +__static_yoink("usr/share/terminfo/a/ansi80x25-mono"); +__static_yoink("usr/share/terminfo/a/ansi80x30-mono"); +__static_yoink("usr/share/terminfo/a/altos-3"); +__static_yoink("usr/share/terminfo/a/aaa-unk"); +__static_yoink("usr/share/terminfo/a/ansi+sgrso"); +__static_yoink("usr/share/terminfo/a/avatar0"); +__static_yoink("usr/share/terminfo/a/att4424-1"); +__static_yoink("usr/share/terminfo/a/a210"); +__static_yoink("usr/share/terminfo/a/altos7"); +__static_yoink("usr/share/terminfo/a/att5425-w"); +__static_yoink("usr/share/terminfo/a/apollo_19L"); +__static_yoink("usr/share/terminfo/a/ansi-mono"); +__static_yoink("usr/share/terminfo/a/ampex175"); +__static_yoink("usr/share/terminfo/a/att505-24"); +__static_yoink("usr/share/terminfo/a/aaa-22"); +__static_yoink("usr/share/terminfo/a/appleIIe"); +__static_yoink("usr/share/terminfo/a/att615-103k"); +__static_yoink("usr/share/terminfo/a/ampex219"); +__static_yoink("usr/share/terminfo/a/adm11"); +__static_yoink("usr/share/terminfo/a/att730-24"); +__static_yoink("usr/share/terminfo/a/avt-w-s"); +__static_yoink("usr/share/terminfo/a/aaa-48"); +__static_yoink("usr/share/terminfo/a/apple-soroc"); +__static_yoink("usr/share/terminfo/a/aaa-60"); +__static_yoink("usr/share/terminfo/a/att605-pc"); +__static_yoink("usr/share/terminfo/a/altos4"); +__static_yoink("usr/share/terminfo/a/aaa+unk"); +__static_yoink("usr/share/terminfo/a/att5425"); +__static_yoink("usr/share/terminfo/a/ansi-mtabs"); +__static_yoink("usr/share/terminfo/a/att5410"); +__static_yoink("usr/share/terminfo/a/apollo_15P"); +__static_yoink("usr/share/terminfo/a/avt"); +__static_yoink("usr/share/terminfo/a/att500"); +__static_yoink("usr/share/terminfo/a/att5420_2-w"); +__static_yoink("usr/share/terminfo/a/att730"); +__static_yoink("usr/share/terminfo/a/amp219w"); +__static_yoink("usr/share/terminfo/a/att4424m"); +__static_yoink("usr/share/terminfo/a/att620-103k"); +__static_yoink("usr/share/terminfo/a/avt-rv"); +__static_yoink("usr/share/terminfo/a/apple-ae"); +__static_yoink("usr/share/terminfo/a/aaa-rv"); +__static_yoink("usr/share/terminfo/a/att5620"); +__static_yoink("usr/share/terminfo/a/apollo_color"); +__static_yoink("usr/share/terminfo/a/att505"); +__static_yoink("usr/share/terminfo/a/att5620-24"); +__static_yoink("usr/share/terminfo/a/aaa-20"); +__static_yoink("usr/share/terminfo/a/att510d"); +__static_yoink("usr/share/terminfo/a/att4415-w-nl"); +__static_yoink("usr/share/terminfo/a/att4415-rv-nl"); +__static_yoink("usr/share/terminfo/a/aaa-60-s-rv"); +__static_yoink("usr/share/terminfo/a/ansi+csr"); +__static_yoink("usr/share/terminfo/a/att5420"); +__static_yoink("usr/share/terminfo/a/ambassador"); +__static_yoink("usr/share/terminfo/a/adm22"); +__static_yoink("usr/share/terminfo/a/ansi+arrows"); +__static_yoink("usr/share/terminfo/a/att4426"); +__static_yoink("usr/share/terminfo/a/ansil"); +__static_yoink("usr/share/terminfo/a/att615"); +__static_yoink("usr/share/terminfo/a/att5418"); +__static_yoink("usr/share/terminfo/a/att620-103k-w"); +__static_yoink("usr/share/terminfo/a/att5410v1"); +__static_yoink("usr/share/terminfo/a/att5418-w"); +__static_yoink("usr/share/terminfo/a/adds200"); +__static_yoink("usr/share/terminfo/a/atari_st"); +__static_yoink("usr/share/terminfo/a/aj832"); +__static_yoink("usr/share/terminfo/a/ansi+tabs"); +__static_yoink("usr/share/terminfo/a/ampex-219"); +__static_yoink("usr/share/terminfo/a/att2350"); +__static_yoink("usr/share/terminfo/a/act4"); +__static_yoink("usr/share/terminfo/a/ampex219w"); +__static_yoink("usr/share/terminfo/a/aaa-18-rv"); +__static_yoink("usr/share/terminfo/a/att5425-nl"); +__static_yoink("usr/share/terminfo/a/ansi-nt"); +__static_yoink("usr/share/terminfo/a/aj"); +__static_yoink("usr/share/terminfo/a/apollo+vt132"); +__static_yoink("usr/share/terminfo/a/abm80"); +__static_yoink("usr/share/terminfo/a/altos-5"); +__static_yoink("usr/share/terminfo/a/ap-vm80"); +__static_yoink("usr/share/terminfo/a/att620"); +__static_yoink("usr/share/terminfo/a/att4415-w"); +__static_yoink("usr/share/terminfo/a/ansi-m"); +__static_yoink("usr/share/terminfo/a/adm21"); +__static_yoink("usr/share/terminfo/a/addsvp60"); +__static_yoink("usr/share/terminfo/a/att4420"); +__static_yoink("usr/share/terminfo/a/att730r-41"); +__static_yoink("usr/share/terminfo/a/altoh19"); +__static_yoink("usr/share/terminfo/a/alt7"); +__static_yoink("usr/share/terminfo/a/aaa-s-ctxt"); +__static_yoink("usr/share/terminfo/a/att610"); +__static_yoink("usr/share/terminfo/a/att620-w"); +__static_yoink("usr/share/terminfo/a/ansi-color-3-emx"); +__static_yoink("usr/share/terminfo/N/NCRVT100WPP"); +__static_yoink("usr/share/terminfo/N/NCR260VT300WPP"); +__static_yoink("usr/share/terminfo/j/jfbterm"); +__static_yoink("usr/share/terminfo/j/jaixterm-m"); +__static_yoink("usr/share/terminfo/j/jaixterm"); +__static_yoink("usr/share/terminfo/j/jerq"); +__static_yoink("usr/share/terminfo/4/4027ex"); +__static_yoink("usr/share/terminfo/4/4410-w"); +__static_yoink("usr/share/terminfo/4/4025ex"); +__static_yoink("usr/share/terminfo/x/xnuppc-80x25"); +__static_yoink("usr/share/terminfo/x/x1700"); +__static_yoink("usr/share/terminfo/x/xterm+kbs"); +__static_yoink("usr/share/terminfo/x/xtermm"); +__static_yoink("usr/share/terminfo/x/xterm+pcc2"); +__static_yoink("usr/share/terminfo/x/xnuppc+160x64"); +__static_yoink("usr/share/terminfo/x/xwsh"); +__static_yoink("usr/share/terminfo/x/xterm+x11mouse"); +__static_yoink("usr/share/terminfo/x/xterm+sm+1002"); +__static_yoink("usr/share/terminfo/x/xterm+keypad"); +__static_yoink("usr/share/terminfo/x/xnuppc-m-f"); +__static_yoink("usr/share/terminfo/x/xnuppc"); +__static_yoink("usr/share/terminfo/x/xnuppc+f"); +__static_yoink("usr/share/terminfo/x/xterm-nic"); +__static_yoink("usr/share/terminfo/x/xterm+edit"); +__static_yoink("usr/share/terminfo/x/xterm+direct16"); +__static_yoink("usr/share/terminfo/x/xterm+focus"); +__static_yoink("usr/share/terminfo/x/xnuppc-b"); +__static_yoink("usr/share/terminfo/x/xterms-sun"); +__static_yoink("usr/share/terminfo/x/xnuppc+200x64"); +__static_yoink("usr/share/terminfo/x/xnuppc+256x96"); +__static_yoink("usr/share/terminfo/x/xnuppc+200x75"); +__static_yoink("usr/share/terminfo/x/xnuppc+112x37"); +__static_yoink("usr/share/terminfo/x/xterm+alt+title"); +__static_yoink("usr/share/terminfo/x/xterm-1003"); +__static_yoink("usr/share/terminfo/x/xterm+acs"); +__static_yoink("usr/share/terminfo/x/xterm-xf86-v44"); +__static_yoink("usr/share/terminfo/x/x68k"); +__static_yoink("usr/share/terminfo/x/xterm+tmux2"); +__static_yoink("usr/share/terminfo/x/xterm+sl-twm"); +__static_yoink("usr/share/terminfo/x/xnuppc-128x48"); +__static_yoink("usr/share/terminfo/x/xfce"); +__static_yoink("usr/share/terminfo/x/xterm+sm+1003"); +__static_yoink("usr/share/terminfo/x/xnuppc-100x37-m"); +__static_yoink("usr/share/terminfo/x/xterm-r6"); +__static_yoink("usr/share/terminfo/x/x1700-lm"); +__static_yoink("usr/share/terminfo/x/xterm+88color2"); +__static_yoink("usr/share/terminfo/x/xterm-direct16"); +__static_yoink("usr/share/terminfo/x/x1720"); +__static_yoink("usr/share/terminfo/x/xerox-lm"); +__static_yoink("usr/share/terminfo/x/xterm-kitty"); +__static_yoink("usr/share/terminfo/x/xterm-hp"); +__static_yoink("usr/share/terminfo/x/xterm-p370"); +__static_yoink("usr/share/terminfo/x/xterm+pcc3"); +__static_yoink("usr/share/terminfo/x/xnuppc-256x96-m"); +__static_yoink("usr/share/terminfo/x/xterm+x11hilite"); +__static_yoink("usr/share/terminfo/x/xterm+noapp"); +__static_yoink("usr/share/terminfo/x/xterm-direct2"); +__static_yoink("usr/share/terminfo/x/xterm+pc+edit"); +__static_yoink("usr/share/terminfo/x/xterm-sun"); +__static_yoink("usr/share/terminfo/x/xiterm"); +__static_yoink("usr/share/terminfo/x/xerox820"); +__static_yoink("usr/share/terminfo/x/xnuppc+c"); +__static_yoink("usr/share/terminfo/x/x1750"); +__static_yoink("usr/share/terminfo/x/xterm-old"); +__static_yoink("usr/share/terminfo/x/xterm-1006"); +__static_yoink("usr/share/terminfo/x/xterm+tmux"); +__static_yoink("usr/share/terminfo/x/xterm-x10mouse"); +__static_yoink("usr/share/terminfo/x/xterm"); +__static_yoink("usr/share/terminfo/x/xterm-8bit"); +__static_yoink("usr/share/terminfo/x/xterm+nopcfkeys"); +__static_yoink("usr/share/terminfo/x/xterm+pcf2"); +__static_yoink("usr/share/terminfo/x/xterm1"); +__static_yoink("usr/share/terminfo/x/xterm-vt220"); +__static_yoink("usr/share/terminfo/x/xnuppc-80x30-m"); +__static_yoink("usr/share/terminfo/x/xterm+pcfkeys"); +__static_yoink("usr/share/terminfo/x/xnuppc-m-f2"); +__static_yoink("usr/share/terminfo/x/xtermc"); +__static_yoink("usr/share/terminfo/x/xterm-24"); +__static_yoink("usr/share/terminfo/x/xterm+sm+1005"); +__static_yoink("usr/share/terminfo/x/xterm-88color"); +__static_yoink("usr/share/terminfo/x/xterm+app"); +__static_yoink("usr/share/terminfo/x/xterm+x10mouse"); +__static_yoink("usr/share/terminfo/x/xerox1720"); +__static_yoink("usr/share/terminfo/x/xnuppc-256x96"); +__static_yoink("usr/share/terminfo/x/xterm-xf86-v33"); +__static_yoink("usr/share/terminfo/x/xterms"); +__static_yoink("usr/share/terminfo/x/xterm-sco"); +__static_yoink("usr/share/terminfo/x/xterm+sl-alt"); +__static_yoink("usr/share/terminfo/x/xnuppc+b"); +__static_yoink("usr/share/terminfo/x/xterm-new"); +__static_yoink("usr/share/terminfo/x/xterm+direct"); +__static_yoink("usr/share/terminfo/x/xnuppc+128x40"); +__static_yoink("usr/share/terminfo/x/xterm-1005"); +__static_yoink("usr/share/terminfo/x/xterm+pcc0"); +__static_yoink("usr/share/terminfo/x/xterm+osc104"); +__static_yoink("usr/share/terminfo/x/xnuppc-90x30"); +__static_yoink("usr/share/terminfo/x/xterm+256color2"); +__static_yoink("usr/share/terminfo/x/xterm-noapp"); +__static_yoink("usr/share/terminfo/x/xnuppc-80x25-m"); +__static_yoink("usr/share/terminfo/x/xterm+alt47"); +__static_yoink("usr/share/terminfo/x/xterm-256color"); +__static_yoink("usr/share/terminfo/x/xnuppc-128x40"); +__static_yoink("usr/share/terminfo/x/xterm+88color"); +__static_yoink("usr/share/terminfo/x/xerox"); +__static_yoink("usr/share/terminfo/x/xterm-16color"); +__static_yoink("usr/share/terminfo/x/xterm-r5"); +__static_yoink("usr/share/terminfo/x/xterm-mono"); +__static_yoink("usr/share/terminfo/x/xnuppc+128x48"); +__static_yoink("usr/share/terminfo/x/x68k-ite"); +__static_yoink("usr/share/terminfo/x/xnuppc+100x37"); +__static_yoink("usr/share/terminfo/x/xterm-bold"); +__static_yoink("usr/share/terminfo/x/xterm-xf86-v32"); +__static_yoink("usr/share/terminfo/x/xterm+direct256"); +__static_yoink("usr/share/terminfo/x/xnuppc-128x48-m"); +__static_yoink("usr/share/terminfo/x/xnuppc-80x30"); +__static_yoink("usr/share/terminfo/x/xterm+titlestack"); +__static_yoink("usr/share/terminfo/x/xnuppc-128x40-m"); +__static_yoink("usr/share/terminfo/x/xterm+nofkeys"); +__static_yoink("usr/share/terminfo/x/xnuppc-144x48-m"); +__static_yoink("usr/share/terminfo/x/xnuppc-144x48"); +__static_yoink("usr/share/terminfo/x/xterm-pcolor"); +__static_yoink("usr/share/terminfo/x/xnuppc-f2"); +__static_yoink("usr/share/terminfo/x/xterm-x11hilite"); +__static_yoink("usr/share/terminfo/x/xterm+indirect"); +__static_yoink("usr/share/terminfo/x/xnuppc-100x37"); +__static_yoink("usr/share/terminfo/x/xterm+direct2"); +__static_yoink("usr/share/terminfo/x/xterm-utf8"); +__static_yoink("usr/share/terminfo/x/xnuppc+90x30"); +__static_yoink("usr/share/terminfo/x/xterm-color"); +__static_yoink("usr/share/terminfo/x/x10term+sl"); +__static_yoink("usr/share/terminfo/x/xnuppc+80x25"); +__static_yoink("usr/share/terminfo/x/xnuppc-200x64"); +__static_yoink("usr/share/terminfo/x/xterm+meta"); +__static_yoink("usr/share/terminfo/x/xterm-direct"); +__static_yoink("usr/share/terminfo/x/xnuppc-200x64-m"); +__static_yoink("usr/share/terminfo/x/xterm+noalt"); +__static_yoink("usr/share/terminfo/x/xnuppc-90x30-m"); +__static_yoink("usr/share/terminfo/x/xnuppc-200x75-m"); +__static_yoink("usr/share/terminfo/x/xterm+alt1049"); +__static_yoink("usr/share/terminfo/x/xterm-xf86-v43"); +__static_yoink("usr/share/terminfo/x/xterm-p371"); +__static_yoink("usr/share/terminfo/x/xterm-xfree86"); +__static_yoink("usr/share/terminfo/x/xterm-xi"); +__static_yoink("usr/share/terminfo/x/xnuppc+144x48"); +__static_yoink("usr/share/terminfo/x/xnuppc+basic"); +__static_yoink("usr/share/terminfo/x/xnuppc-112x37-m"); +__static_yoink("usr/share/terminfo/x/xnuppc-m-b"); +__static_yoink("usr/share/terminfo/x/xterm+r6f2"); +__static_yoink("usr/share/terminfo/x/xterm+256setaf"); +__static_yoink("usr/share/terminfo/x/xtalk"); +__static_yoink("usr/share/terminfo/x/xterm+sl"); +__static_yoink("usr/share/terminfo/x/x10term"); +__static_yoink("usr/share/terminfo/x/xterm+256color"); +__static_yoink("usr/share/terminfo/x/xterm+vt+edit"); +__static_yoink("usr/share/terminfo/x/x820"); +__static_yoink("usr/share/terminfo/x/xterm-direct256"); +__static_yoink("usr/share/terminfo/x/xnuppc-200x75"); +__static_yoink("usr/share/terminfo/x/xterm+sm+1006"); +__static_yoink("usr/share/terminfo/x/xl83"); +__static_yoink("usr/share/terminfo/x/xterm-xf86-v333"); +__static_yoink("usr/share/terminfo/x/xnuppc-160x64-m"); +__static_yoink("usr/share/terminfo/x/xterm-vt52"); +__static_yoink("usr/share/terminfo/x/xnuppc-112x37"); +__static_yoink("usr/share/terminfo/x/xgterm"); +__static_yoink("usr/share/terminfo/x/xnuppc+80x30"); +__static_yoink("usr/share/terminfo/x/xnuppc-m"); +__static_yoink("usr/share/terminfo/x/xterm+pcc1"); +__static_yoink("usr/share/terminfo/x/xterm-xf86-v40"); +__static_yoink("usr/share/terminfo/x/xenix"); +__static_yoink("usr/share/terminfo/x/xterm+pce2"); +__static_yoink("usr/share/terminfo/x/xnuppc-160x64"); +__static_yoink("usr/share/terminfo/x/xterm-basic"); +__static_yoink("usr/share/terminfo/x/xnuppc-f"); +__static_yoink("usr/share/terminfo/x/xterm-x11mouse"); +__static_yoink("usr/share/terminfo/x/xterm-1002"); +__static_yoink("usr/share/terminfo/x/xdku"); +__static_yoink("usr/share/terminfo/x/xterm+pcf0"); +__static_yoink("usr/share/terminfo/x/xterm.js"); +__static_yoink("usr/share/terminfo/x/xnuppc+f2"); +__static_yoink("usr/share/terminfo/c/cgc3"); +__static_yoink("usr/share/terminfo/c/cit500"); +__static_yoink("usr/share/terminfo/c/cons50-koi8r"); +__static_yoink("usr/share/terminfo/c/concept100-rv"); +__static_yoink("usr/share/terminfo/c/cons50-iso-m"); +__static_yoink("usr/share/terminfo/c/coco3"); +__static_yoink("usr/share/terminfo/c/concept100"); +__static_yoink("usr/share/terminfo/c/cygwin"); +__static_yoink("usr/share/terminfo/c/cons60l1"); +__static_yoink("usr/share/terminfo/c/cit101e-132"); +__static_yoink("usr/share/terminfo/c/cit101e-n132"); +__static_yoink("usr/share/terminfo/c/cad68-3"); +__static_yoink("usr/share/terminfo/c/cons25l1-m"); +__static_yoink("usr/share/terminfo/c/cons50-iso8859"); +__static_yoink("usr/share/terminfo/c/commodore"); +__static_yoink("usr/share/terminfo/c/chromatics"); +__static_yoink("usr/share/terminfo/c/citoh-8lpi"); +__static_yoink("usr/share/terminfo/c/cx100"); +__static_yoink("usr/share/terminfo/c/citoh-comp"); +__static_yoink("usr/share/terminfo/c/cit80"); +__static_yoink("usr/share/terminfo/c/cons25-iso-m"); +__static_yoink("usr/share/terminfo/c/contel321"); +__static_yoink("usr/share/terminfo/c/ct82"); +__static_yoink("usr/share/terminfo/c/cgc2"); +__static_yoink("usr/share/terminfo/c/contel301"); +__static_yoink("usr/share/terminfo/c/cons43-m"); +__static_yoink("usr/share/terminfo/c/cs10"); +__static_yoink("usr/share/terminfo/c/cci1"); +__static_yoink("usr/share/terminfo/c/cops"); +__static_yoink("usr/share/terminfo/c/cons50-koi8r-m"); +__static_yoink("usr/share/terminfo/c/c108-rv"); +__static_yoink("usr/share/terminfo/c/cons60r"); +__static_yoink("usr/share/terminfo/c/coherent"); +__static_yoink("usr/share/terminfo/c/ctrm"); +__static_yoink("usr/share/terminfo/c/cyb110"); +__static_yoink("usr/share/terminfo/c/cygwinB19"); +__static_yoink("usr/share/terminfo/c/cons43"); +__static_yoink("usr/share/terminfo/c/cons60-iso"); +__static_yoink("usr/share/terminfo/c/cons50r-m"); +__static_yoink("usr/share/terminfo/c/cons25-iso8859"); +__static_yoink("usr/share/terminfo/c/cops-10"); +__static_yoink("usr/share/terminfo/c/citoh-elite"); +__static_yoink("usr/share/terminfo/c/cci"); +__static_yoink("usr/share/terminfo/c/cit101e"); +__static_yoink("usr/share/terminfo/c/cops10"); +__static_yoink("usr/share/terminfo/c/cdc756"); +__static_yoink("usr/share/terminfo/c/c100-rv"); +__static_yoink("usr/share/terminfo/c/cons50"); +__static_yoink("usr/share/terminfo/c/cons25-koi8-r"); +__static_yoink("usr/share/terminfo/c/c301"); +__static_yoink("usr/share/terminfo/c/colorscan"); +__static_yoink("usr/share/terminfo/c/cs10-w"); +__static_yoink("usr/share/terminfo/c/crt"); +__static_yoink("usr/share/terminfo/c/concept108"); +__static_yoink("usr/share/terminfo/c/cg7900"); +__static_yoink("usr/share/terminfo/c/crt-vt220"); +__static_yoink("usr/share/terminfo/c/cons30"); +__static_yoink("usr/share/terminfo/c/c100-4p"); +__static_yoink("usr/share/terminfo/c/cx"); +__static_yoink("usr/share/terminfo/c/c300"); +__static_yoink("usr/share/terminfo/c/cdc721"); +__static_yoink("usr/share/terminfo/c/cdc752"); +__static_yoink("usr/share/terminfo/c/cbunix"); +__static_yoink("usr/share/terminfo/c/cons25"); +__static_yoink("usr/share/terminfo/c/c108"); +__static_yoink("usr/share/terminfo/c/contel300"); +__static_yoink("usr/share/terminfo/c/cons50l1"); +__static_yoink("usr/share/terminfo/c/cons25-debian"); +__static_yoink("usr/share/terminfo/c/concept108-8p"); +__static_yoink("usr/share/terminfo/c/cons25r"); +__static_yoink("usr/share/terminfo/c/cdc721-esc"); +__static_yoink("usr/share/terminfo/c/c100-1p"); +__static_yoink("usr/share/terminfo/c/c108-rv-4p"); +__static_yoink("usr/share/terminfo/c/concept108-w-8"); +__static_yoink("usr/share/terminfo/c/concept"); +__static_yoink("usr/share/terminfo/c/c100"); +__static_yoink("usr/share/terminfo/c/cons60r-m"); +__static_yoink("usr/share/terminfo/c/cons25w"); +__static_yoink("usr/share/terminfo/c/concept108rv4p"); +__static_yoink("usr/share/terminfo/c/c108-rv-8p"); +__static_yoink("usr/share/terminfo/c/concept-avt"); +__static_yoink("usr/share/terminfo/c/ca22851"); +__static_yoink("usr/share/terminfo/c/cit-80"); +__static_yoink("usr/share/terminfo/c/c321"); +__static_yoink("usr/share/terminfo/c/cad68-2"); +__static_yoink("usr/share/terminfo/c/cons60-iso-m"); +__static_yoink("usr/share/terminfo/c/cons60"); +__static_yoink("usr/share/terminfo/c/cons60l1-m"); +__static_yoink("usr/share/terminfo/c/cons50l1-m"); +__static_yoink("usr/share/terminfo/c/cons25r-m"); +__static_yoink("usr/share/terminfo/c/cit101e-rv"); +__static_yoink("usr/share/terminfo/c/cons60-koi8r-m"); +__static_yoink("usr/share/terminfo/c/c104"); +__static_yoink("usr/share/terminfo/c/citoh-prop"); +__static_yoink("usr/share/terminfo/c/cit101"); +__static_yoink("usr/share/terminfo/c/cdc721ll"); +__static_yoink("usr/share/terminfo/c/citoh"); +__static_yoink("usr/share/terminfo/c/cons50r"); +__static_yoink("usr/share/terminfo/c/citoh-6lpi"); +__static_yoink("usr/share/terminfo/c/cons25l1"); +__static_yoink("usr/share/terminfo/c/c108-w"); +__static_yoink("usr/share/terminfo/c/c108-8p"); +__static_yoink("usr/share/terminfo/c/cons60-koi8r"); +__static_yoink("usr/share/terminfo/c/c108-4p"); +__static_yoink("usr/share/terminfo/c/ct8500"); +__static_yoink("usr/share/terminfo/c/citoh-ps"); +__static_yoink("usr/share/terminfo/c/cons25-koi8r-m"); +__static_yoink("usr/share/terminfo/c/cons30-m"); +__static_yoink("usr/share/terminfo/c/c108-w-8p"); +__static_yoink("usr/share/terminfo/c/cyb83"); +__static_yoink("usr/share/terminfo/c/cdc456"); +__static_yoink("usr/share/terminfo/c/cons60-m"); +__static_yoink("usr/share/terminfo/c/cbblit"); +__static_yoink("usr/share/terminfo/c/cons50-m"); +__static_yoink("usr/share/terminfo/c/color_xterm"); +__static_yoink("usr/share/terminfo/c/cons25-m"); +__static_yoink("usr/share/terminfo/c/ci8510"); +__static_yoink("usr/share/terminfo/c/citoh-pica"); +__static_yoink("usr/share/terminfo/c/contel320"); +__static_yoink("usr/share/terminfo/c/citc"); +__static_yoink("usr/share/terminfo/c/concept108-4p"); +__static_yoink("usr/share/terminfo/c/cygwinDBG"); +__static_yoink("usr/share/terminfo/c/c100-rv-4p"); +__static_yoink("usr/share/terminfo/c/cit101e-n"); +__static_yoink("usr/share/terminfo/c/concept108-w8p"); +__static_yoink("usr/share/terminfo/u/unknown"); +__static_yoink("usr/share/terminfo/u/ultimaII"); +__static_yoink("usr/share/terminfo/u/uniterm"); +__static_yoink("usr/share/terminfo/u/ultima2"); +__static_yoink("usr/share/terminfo/u/uwin"); +__static_yoink("usr/share/terminfo/u/uts30"); +__static_yoink("usr/share/terminfo/u/uniterm49"); +__static_yoink("usr/share/terminfo/u/unixpc"); +__static_yoink("usr/share/terminfo/z/z-100"); +__static_yoink("usr/share/terminfo/z/z110"); +__static_yoink("usr/share/terminfo/z/zen30"); +__static_yoink("usr/share/terminfo/z/z340-nam"); +__static_yoink("usr/share/terminfo/z/z39-a"); +__static_yoink("usr/share/terminfo/z/z29b"); +__static_yoink("usr/share/terminfo/z/ztx-1-a"); +__static_yoink("usr/share/terminfo/z/zenith39-ansi"); +__static_yoink("usr/share/terminfo/z/z110bw"); +__static_yoink("usr/share/terminfo/z/z100"); +__static_yoink("usr/share/terminfo/z/z19"); +__static_yoink("usr/share/terminfo/z/ztx"); +__static_yoink("usr/share/terminfo/z/z29"); +__static_yoink("usr/share/terminfo/z/z340"); +__static_yoink("usr/share/terminfo/z/z29a-nkc-bc"); +__static_yoink("usr/share/terminfo/z/zen8001"); +__static_yoink("usr/share/terminfo/z/zen50"); +__static_yoink("usr/share/terminfo/z/zenith"); +__static_yoink("usr/share/terminfo/z/z39a"); +__static_yoink("usr/share/terminfo/z/z-100bw"); +__static_yoink("usr/share/terminfo/z/z29a"); +__static_yoink("usr/share/terminfo/z/z100bw"); +__static_yoink("usr/share/terminfo/z/z30"); +__static_yoink("usr/share/terminfo/z/z29a-kc-bc"); +__static_yoink("usr/share/terminfo/z/z29a-nkc-uc"); +__static_yoink("usr/share/terminfo/z/zenith29"); +__static_yoink("usr/share/terminfo/z/z50"); +__static_yoink("usr/share/terminfo/z/zt-1"); +__static_yoink("usr/share/terminfo/z/z29a-kc-uc"); +__static_yoink("usr/share/terminfo/z/zenith39-a"); +__static_yoink("usr/share/terminfo/z/ztx11"); +__static_yoink("usr/share/terminfo/z/z8001"); + +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * Termcap compatibility support + * + * If your OS integrator didn't install a terminfo database, you can call + * _nc_read_termcap_entry() to support reading and translating capabilities + * from the system termcap file. This is a kludge; it will bulk up and slow + * down every program that uses ncurses, and translated termcap entries cannot + * use full terminfo capabilities. Don't use it unless you absolutely have to; + * instead, get your system people to run tic(1) from root on the terminfo + * master included with ncurses to translate it into a terminfo database. + * + * If USE_GETCAP is enabled, we use what is effectively a copy of the 4.4BSD + * getcap code to fetch entries. There are disadvantages to this; mainly that + * getcap(3) does its own resolution, meaning that entries read in in this way + * can't reference the terminfo tree. The only thing it buys is faster startup + * time, getcap(3) is much faster than our tic parser. + */ + +#include "curses.priv.h" + +#include +#include +#include "tic.h" + +MODULE_ID("$Id: read_termcap.c,v 1.102 2021/09/04 10:29:15 tom Exp $") + +#if !PURE_TERMINFO + +#define TC_SUCCESS 0 +#define TC_NOT_FOUND -1 +#define TC_SYS_ERR -2 +#define TC_REF_LOOP -3 +#define TC_UNRESOLVED -4 /* this is not returned by BSD cgetent */ + +static const char * +get_termpath(void) +{ + const char *result; + + if (!use_terminfo_vars() || (result = getenv("TERMPATH")) == 0) + result = TERMPATH; + TR(TRACE_DATABASE, ("TERMPATH is %s", result)); + return result; +} + +/* + * Note: + * getcap(), cgetent(), etc., are BSD functions. A copy of those was added to + * this file in November 1995, derived from the BSD4.4 Lite sources. + * + * The initial adaptation uses 518 lines from that source. + * The current source (in 2009) uses 183 lines of BSD4.4 Lite (441 ignoring + * whitespace). + */ +#if USE_GETCAP + +#if HAVE_BSD_CGETENT +#define _nc_cgetcap cgetcap +#define _nc_cgetent(buf, oline, db_array, name) cgetent(buf, db_array, name) +#define _nc_cgetmatch cgetmatch +#define _nc_cgetset cgetset +#else +static int _nc_cgetmatch(char *, const char *); +static int _nc_getent(char **, unsigned *, int *, int, char **, int, const char + *, int, char *); +static int _nc_nfcmp(const char *, char *); + +/*- + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Casey Leedom of Lawrence Livermore National Laboratory. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* static char sccsid[] = "@(#)getcap.c 8.3 (Berkeley) 3/25/94"; */ + +#define BFRAG 1024 +#define BSIZE 1024 +#define MAX_RECURSION 32 /* maximum getent recursion */ + +static size_t topreclen; /* toprec length */ +static char *toprec; /* Additional record specified by cgetset() */ +static int gottoprec; /* Flag indicating retrieval of toprecord */ + +/* + * Cgetset() allows the addition of a user specified buffer to be added to the + * database array, in effect "pushing" the buffer on top of the virtual + * database. 0 is returned on success, -1 on failure. + */ +static int +_nc_cgetset(const char *ent) +{ + if (ent == 0) { + FreeIfNeeded(toprec); + toprec = 0; + topreclen = 0; + return (0); + } + topreclen = strlen(ent); + if ((toprec = typeMalloc(char, topreclen + 1)) == 0) { + errno = ENOMEM; + return (-1); + } + gottoprec = 0; + _nc_STRCPY(toprec, ent, topreclen); + return (0); +} + +/* + * Cgetcap searches the capability record buf for the capability cap with type + * `type'. A pointer to the value of cap is returned on success, 0 if the + * requested capability couldn't be found. + * + * Specifying a type of ':' means that nothing should follow cap (:cap:). In + * this case a pointer to the terminating ':' or NUL will be returned if cap is + * found. + * + * If (cap, '@') or (cap, terminator, '@') is found before (cap, terminator) + * return 0. + */ +static char * +_nc_cgetcap(char *buf, const char *cap, int type) +{ + register const char *cp; + register char *bp; + + bp = buf; + for (;;) { + /* + * Skip past the current capability field - it is either the + * name field if this is the first time through the loop, or + * the remainder of a field whose name failed to match cap. + */ + for (;;) { + if (*bp == '\0') + return (0); + else if (*bp++ == ':') + break; + } + + /* + * Try to match (cap, type) in buf. + */ + for (cp = cap; *cp == *bp && *bp != '\0'; cp++, bp++) + continue; + if (*cp != '\0') + continue; + if (*bp == '@') + return (0); + if (type == ':') { + if (*bp != '\0' && *bp != ':') + continue; + return (bp); + } + if (*bp != type) + continue; + bp++; + return (*bp == '@' ? 0 : bp); + } + /* NOTREACHED */ +} + +/* + * Cgetent extracts the capability record name from the NULL terminated file + * array db_array and returns a pointer to a malloc'd copy of it in buf. Buf + * must be retained through all subsequent calls to cgetcap, cgetnum, cgetflag, + * and cgetstr, but may then be freed. + * + * Returns: + * + * positive # on success (i.e., the index in db_array) + * TC_NOT_FOUND if the requested record couldn't be found + * TC_SYS_ERR if a system error was encountered (e.g.,couldn't open a file) + * TC_REF_LOOP if a potential reference loop is detected + * TC_UNRESOLVED if we had too many recurrences to resolve + */ +static int +_nc_cgetent(char **buf, int *oline, char **db_array, const char *name) +{ + unsigned dummy; + + return (_nc_getent(buf, &dummy, oline, 0, db_array, -1, name, 0, 0)); +} + +/* + * Getent implements the functions of cgetent. If fd is non-negative, + * *db_array has already been opened and fd is the open file descriptor. We + * do this to save time and avoid using up file descriptors for tc= + * recursions. + * + * Getent returns the same success/failure codes as cgetent. On success, a + * pointer to a malloc'd capability record with all tc= capabilities fully + * expanded and its length (not including trailing ASCII NUL) are left in + * *cap and *len. + * + * Basic algorithm: + * + Allocate memory incrementally as needed in chunks of size BFRAG + * for capability buffer. + * + Recurse for each tc=name and interpolate result. Stop when all + * names interpolated, a name can't be found, or depth exceeds + * MAX_RECURSION. + */ +#define DOALLOC(size) typeRealloc(char, size, record) +static int +_nc_getent( + char **cap, /* termcap-content */ + unsigned *len, /* length, needed for recursion */ + int *beginning, /* line-number at match */ + int in_array, /* index in 'db_array[] */ + char **db_array, /* list of files to search */ + int fd, + const char *name, + int depth, + char *nfield) +{ + register char *r_end, *rp; + int myfd = FALSE; + char *record = 0; + int tc_not_resolved; + int current; + int lineno; + + /* + * Return with ``loop detected'' error if we've recurred more than + * MAX_RECURSION times. + */ + if (depth > MAX_RECURSION) + return (TC_REF_LOOP); + + /* + * Check if we have a top record from cgetset(). + */ + if (depth == 0 && toprec != 0 && _nc_cgetmatch(toprec, name) == 0) { + if ((record = DOALLOC(topreclen + BFRAG)) == 0) { + errno = ENOMEM; + return (TC_SYS_ERR); + } + _nc_STRCPY(record, toprec, topreclen + BFRAG); + rp = record + topreclen + 1; + r_end = rp + BFRAG; + current = in_array; + } else { + int foundit; + + /* + * Allocate first chunk of memory. + */ + if ((record = DOALLOC(BFRAG)) == 0) { + errno = ENOMEM; + return (TC_SYS_ERR); + } + rp = r_end = record + BFRAG; + foundit = FALSE; + + /* + * Loop through database array until finding the record. + */ + for (current = in_array; db_array[current] != 0; current++) { + int eof = FALSE; + + /* + * Open database if not already open. + */ + if (fd >= 0) { + (void) lseek(fd, (off_t) 0, SEEK_SET); + } else if ((_nc_access(db_array[current], R_OK) < 0) + || (fd = open(db_array[current], O_RDONLY, 0)) < 0) { + /* No error on unfound file. */ + if (errno == ENOENT) + continue; + free(record); + return (TC_SYS_ERR); + } else { + myfd = TRUE; + } + lineno = 0; + + /* + * Find the requested capability record ... + */ + { + char buf[2048]; + register char *b_end = buf; + register char *bp = buf; + register int c; + + /* + * Loop invariants: + * There is always room for one more character in record. + * R_end always points just past end of record. + * Rp always points just past last character in record. + * B_end always points just past last character in buf. + * Bp always points at next character in buf. + */ + + for (;;) { + int first = lineno + 1; + + /* + * Read in a line implementing (\, newline) + * line continuation. + */ + rp = record; + for (;;) { + if (bp >= b_end) { + int n; + + n = (int) read(fd, buf, sizeof(buf)); + if (n <= 0) { + if (myfd) + (void) close(fd); + if (n < 0) { + free(record); + return (TC_SYS_ERR); + } + fd = -1; + eof = TRUE; + break; + } + b_end = buf + n; + bp = buf; + } + + c = *bp++; + if (c == '\n') { + lineno++; + /* + * Unlike BSD 4.3, this ignores a backslash at the + * end of a comment-line. That makes it consistent + * with the rest of ncurses -TD + */ + if (rp == record + || *record == '#' + || *(rp - 1) != '\\') + break; + } + *rp++ = (char) c; + + /* + * Enforce loop invariant: if no room + * left in record buffer, try to get + * some more. + */ + if (rp >= r_end) { + unsigned pos; + size_t newsize; + + pos = (unsigned) (rp - record); + newsize = (size_t) (r_end - record + BFRAG); + record = DOALLOC(newsize); + if (record == 0) { + if (myfd) + (void) close(fd); + errno = ENOMEM; + return (TC_SYS_ERR); + } + r_end = record + newsize; + rp = record + pos; + } + } + /* loop invariant lets us do this */ + *rp++ = '\0'; + + /* + * If encountered eof check next file. + */ + if (eof) + break; + + /* + * Toss blank lines and comments. + */ + if (*record == '\0' || *record == '#') + continue; + + /* + * See if this is the record we want ... + */ + if (_nc_cgetmatch(record, name) == 0 + && (nfield == 0 + || !_nc_nfcmp(nfield, record))) { + foundit = TRUE; + *beginning = first; + break; /* found it! */ + } + } + } + if (foundit) + break; + } + + if (!foundit) { + free(record); + return (TC_NOT_FOUND); + } + } + + /* + * Got the capability record, but now we have to expand all tc=name + * references in it ... + */ + { + register char *newicap, *s; + register int newilen; + unsigned ilen; + int diff, iret, tclen, oline; + char *icap = 0, *scan, *tc, *tcstart, *tcend; + + /* + * Loop invariants: + * There is room for one more character in record. + * R_end points just past end of record. + * Rp points just past last character in record. + * Scan points at remainder of record that needs to be + * scanned for tc=name constructs. + */ + scan = record; + tc_not_resolved = FALSE; + for (;;) { + if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0) { + break; + } + + /* + * Find end of tc=name and stomp on the trailing `:' + * (if present) so we can use it to call ourselves. + */ + s = tc; + while (*s != '\0') { + if (*s++ == ':') { + *(s - 1) = '\0'; + break; + } + } + tcstart = tc - 3; + tclen = (int) (s - tcstart); + tcend = s; + + icap = 0; + iret = _nc_getent(&icap, &ilen, &oline, current, db_array, fd, + tc, depth + 1, 0); + newicap = icap; /* Put into a register. */ + newilen = (int) ilen; + if (iret != TC_SUCCESS) { + /* an error */ + if (iret < TC_NOT_FOUND) { + if (myfd) + (void) close(fd); + free(record); + FreeIfNeeded(icap); + return (iret); + } + if (iret == TC_UNRESOLVED) { + tc_not_resolved = TRUE; + /* couldn't resolve tc */ + } else if (iret == TC_NOT_FOUND) { + *(s - 1) = ':'; + scan = s - 1; + tc_not_resolved = TRUE; + continue; + } + } + + /* not interested in name field of tc'ed record */ + s = newicap; + while (*s != '\0' && *s++ != ':') ; + newilen -= (int) (s - newicap); + newicap = s; + + /* make sure interpolated record is `:'-terminated */ + s += newilen; + if (*(s - 1) != ':') { + *s = ':'; /* overwrite NUL with : */ + newilen++; + } + + /* + * Make sure there's enough room to insert the + * new record. + */ + diff = newilen - tclen; + if (diff >= r_end - rp) { + unsigned pos, tcpos, tcposend; + size_t newsize; + + pos = (unsigned) (rp - record); + newsize = (size_t) (r_end - record + diff + BFRAG); + tcpos = (unsigned) (tcstart - record); + tcposend = (unsigned) (tcend - record); + record = DOALLOC(newsize); + if (record == 0) { + if (myfd) + (void) close(fd); + free(icap); + errno = ENOMEM; + return (TC_SYS_ERR); + } + r_end = record + newsize; + rp = record + pos; + tcstart = record + tcpos; + tcend = record + tcposend; + } + + /* + * Insert tc'ed record into our record. + */ + s = tcstart + newilen; + memmove(s, tcend, (size_t) (rp - tcend)); + memmove(tcstart, newicap, (size_t) newilen); + rp += diff; + free(icap); + + /* + * Start scan on `:' so next cgetcap works properly + * (cgetcap always skips first field). + */ + scan = s - 1; + } + } + + /* + * Close file (if we opened it), give back any extra memory, and + * return capability, length and success. + */ + if (myfd) + (void) close(fd); + *len = (unsigned) (rp - record - 1); /* don't count NUL */ + if (r_end > rp) { + if ((record = DOALLOC((size_t) (rp - record))) == 0) { + errno = ENOMEM; + return (TC_SYS_ERR); + } + } + + *cap = record; + if (tc_not_resolved) { + return (TC_UNRESOLVED); + } + return (current); +} + +/* + * Cgetmatch will return 0 if name is one of the names of the capability + * record buf, -1 if not. + */ +static int +_nc_cgetmatch(char *buf, const char *name) +{ + register const char *np; + register char *bp; + + /* + * Start search at beginning of record. + */ + bp = buf; + for (;;) { + /* + * Try to match a record name. + */ + np = name; + for (;;) { + if (*np == '\0') { + if (*bp == '|' || *bp == ':' || *bp == '\0') + return (0); + else + break; + } else if (*bp++ != *np++) { + break; + } + } + + /* + * Match failed, skip to next name in record. + */ + bp--; /* a '|' or ':' may have stopped the match */ + for (;;) { + if (*bp == '\0' || *bp == ':') + return (-1); /* match failed totally */ + else if (*bp++ == '|') + break; /* found next name */ + } + } +} + +/* + * Compare name field of record. + */ +static int +_nc_nfcmp(const char *nf, char *rec) +{ + char *cp, tmp; + int ret; + + for (cp = rec; *cp != ':'; cp++) ; + + tmp = *(cp + 1); + *(cp + 1) = '\0'; + ret = strcmp(nf, rec); + *(cp + 1) = tmp; + + return (ret); +} +#endif /* HAVE_BSD_CGETENT */ + +/* + * Since ncurses provides its own 'tgetent()', we cannot use the native one. + * So we reproduce the logic to get down to cgetent() -- or our cut-down + * version of that -- to circumvent the problem of configuring against the + * termcap library. + */ +#define USE_BSD_TGETENT 1 + +#if USE_BSD_TGETENT +/* + * Copyright (c) 1980, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgment: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* static char sccsid[] = "@(#)termcap.c 8.1 (Berkeley) 6/4/93" */ + +#define PBUFSIZ 512 /* max length of filename path */ +#define PVECSIZ 32 /* max number of names in path */ +#define TBUFSIZ (2048*2) + +/* + * On entry, srcp points to a non ':' character which is the beginning of the + * token, if any. We'll try to return a string that doesn't end with a ':'. + */ +static char * +get_tc_token(char **srcp, int *endp) +{ + int ch; + bool found = FALSE; + char *s, *base; + char *tok = 0; + + *endp = TRUE; + for (s = base = *srcp; *s != '\0';) { + ch = *s++; + if (ch == '\\') { + if (*s == '\0') { + break; + } else if (*s++ == '\n') { + while (isspace(UChar(*s))) + s++; + } else { + found = TRUE; + } + } else if (ch == ':') { + if (found) { + tok = base; + s[-1] = '\0'; + *srcp = s; + *endp = FALSE; + break; + } + base = s; + } else if (isgraph(UChar(ch))) { + found = TRUE; + } + } + + /* malformed entry may end without a ':' */ + if (tok == 0 && found) { + tok = base; + } + + return tok; +} + +static char * +copy_tc_token(char *dst, const char *src, size_t len) +{ + int ch; + + while ((ch = *src++) != '\0') { + if (ch == '\\' && *src == '\n') { + while (isspace(UChar(*src))) + src++; + continue; + } + if (--len == 0) { + dst = 0; + break; + } + *dst++ = (char) ch; + } + return dst; +} + +/* + * Get an entry for terminal name in buffer bp from the termcap file. + */ +static int +_nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name) +{ + static char *the_source; + + register char *p; + register char *cp; + char *dummy = NULL; + CGETENT_CONST char **fname; + char *home; + int i; + char pathbuf[PBUFSIZ]; /* holds raw path of filenames */ + CGETENT_CONST char *pathvec[PVECSIZ]; /* point to names in pathbuf */ + const char *termpath; + string_desc desc; + + *lineno = 1; + fname = pathvec; + p = pathbuf; + cp = use_terminfo_vars()? getenv("TERMCAP") : NULL; + + /* + * TERMCAP can have one of two things in it. It can be the name of a file + * to use instead of /etc/termcap. In this case it better start with a + * "/". Or it can be an entry to use so we don't have to read the file. + * In this case it has to already have the newlines crunched out. If + * TERMCAP does not hold a file name then a path of names is searched + * instead. The path is found in the TERMPATH variable, or becomes + * "$HOME/.termcap /etc/termcap" if no TERMPATH exists. + */ + _nc_str_init(&desc, pathbuf, sizeof(pathbuf)); + if (cp == NULL) { + _nc_safe_strcpy(&desc, get_termpath()); + } else if (!_nc_is_abs_path(cp)) { /* TERMCAP holds an entry */ + if ((termpath = get_termpath()) != 0) { + _nc_safe_strcat(&desc, termpath); + } else { + char temp[PBUFSIZ]; + temp[0] = 0; + if ((home = getenv("HOME")) != 0 && *home != '\0' + && strchr(home, ' ') == 0 + && strlen(home) < sizeof(temp) - 10) { /* setup path */ + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "%s/", home); /* $HOME first */ + } + /* if no $HOME look in current directory */ + _nc_STRCAT(temp, ".termcap", sizeof(temp)); + _nc_safe_strcat(&desc, temp); + _nc_safe_strcat(&desc, " "); + _nc_safe_strcat(&desc, get_termpath()); + } + } else { /* user-defined name in TERMCAP */ + _nc_safe_strcat(&desc, cp); /* still can be tokenized */ + } + + *fname++ = pathbuf; /* tokenize path into vector of names */ + while (*++p) { + if (*p == ' ' || *p == NCURSES_PATHSEP) { + *p = '\0'; + while (*++p) + if (*p != ' ' && *p != NCURSES_PATHSEP) + break; + if (*p == '\0') + break; + *fname++ = p; + if (fname >= pathvec + PVECSIZ) { + fname--; + break; + } + } + } + *fname = 0; /* mark end of vector */ +#if !HAVE_BSD_CGETENT + (void) _nc_cgetset(0); +#endif + if (_nc_is_abs_path(cp)) { + if (_nc_cgetset(cp) < 0) { + return (TC_SYS_ERR); + } + } + + i = _nc_cgetent(&dummy, lineno, pathvec, name); + + /* ncurses' termcap-parsing routines cannot handle multiple adjacent + * empty fields, and mistakenly use the last valid cap entry instead of + * the first (breaks tc= includes) + */ + *bp = '\0'; + if (i >= 0) { + char *pd, *ps, *tok; + int endflag = FALSE; + char *list[1023]; + size_t n, count = 0; + + pd = bp; + ps = dummy; + while (!endflag && (tok = get_tc_token(&ps, &endflag)) != 0) { + bool ignore = FALSE; + + for (n = 1; n < count; n++) { + char *s = list[n]; + if (s[0] == tok[0] + && s[1] == tok[1]) { + ignore = TRUE; + break; + } + } + if (ignore != TRUE) { + list[count++] = tok; + pd = copy_tc_token(pd, tok, (size_t) (TBUFSIZ - (2 + pd - bp))); + if (pd == 0) { + i = -1; + break; + } + *pd++ = ':'; + *pd = '\0'; + } + } + } + + FreeIfNeeded(dummy); + FreeIfNeeded(the_source); + the_source = 0; + + /* This is not related to the BSD cgetent(), but to fake up a suitable + * filename for ncurses' error reporting. (If we are not using BSD + * cgetent, then it is the actual filename). + */ + if (i >= 0) { +#if HAVE_BSD_CGETENT + char temp[PATH_MAX]; + + _nc_str_init(&desc, temp, sizeof(temp)); + _nc_safe_strcpy(&desc, pathvec[i]); + _nc_safe_strcat(&desc, ".db"); + if (_nc_access(temp, R_OK) == 0) { + _nc_safe_strcpy(&desc, pathvec[i]); + } + if ((the_source = strdup(temp)) != 0) + *sourcename = the_source; +#else + if ((the_source = strdup(pathvec[i])) != 0) + *sourcename = the_source; +#endif + } + + return (i); +} +#endif /* USE_BSD_TGETENT */ +#endif /* USE_GETCAP */ + +#define MAXPATHS 32 + +/* + * Add a filename to the list in 'termpaths[]', checking that we really have + * a right to open the file. + */ +#if !USE_GETCAP +static int +add_tc(char *termpaths[], char *path, int count) +{ + char *save = strchr(path, NCURSES_PATHSEP); + if (save != 0) + *save = '\0'; + if (count < MAXPATHS + && _nc_access(path, R_OK) == 0) { + termpaths[count++] = path; + TR(TRACE_DATABASE, ("Adding termpath %s", path)); + } + termpaths[count] = 0; + if (save != 0) + *save = NCURSES_PATHSEP; + return count; +} +#define ADD_TC(path, count) filecount = add_tc(termpaths, path, count) +#endif /* !USE_GETCAP */ + +NCURSES_EXPORT(int) +_nc_read_termcap_entry(const char *const tn, TERMTYPE2 *const tp) +{ + int found = TGETENT_NO; + ENTRY *ep; +#if USE_GETCAP_CACHE + char cwd_buf[PATH_MAX]; +#endif +#if USE_GETCAP + char *p, tc[TBUFSIZ]; + char *tc_buf = 0; +#define MY_SIZE sizeof(tc) - 1 + int status; + static char *source; + static int lineno; + + TR(TRACE_DATABASE, ("read termcap entry for %s", tn)); + + if (strlen(tn) == 0 + || strcmp(tn, ".") == 0 + || strcmp(tn, "..") == 0 + || _nc_pathlast(tn) != 0) { + TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", tn)); + return TGETENT_NO; + } + + if (use_terminfo_vars() && (p = getenv("TERMCAP")) != 0 + && !_nc_is_abs_path(p) && _nc_name_match(p, tn, "|:")) { + /* TERMCAP holds a termcap entry */ + tc_buf = strdup(p); + _nc_set_source("TERMCAP"); + } else { + /* we're using getcap(3) */ + if ((status = _nc_tgetent(tc, &source, &lineno, tn)) < 0) + return (status == TC_NOT_FOUND ? TGETENT_NO : TGETENT_ERR); + + _nc_curr_line = lineno; + _nc_set_source(source); + tc_buf = tc; + } + if (tc_buf == 0) + return (TGETENT_ERR); + _nc_read_entry_source((FILE *) 0, tc_buf, FALSE, TRUE, NULLHOOK); + if (tc_buf != tc) + free(tc_buf); +#else + /* + * Here is what the 4.4BSD termcap(3) page prescribes: + * + * It will look in the environment for a TERMCAP variable. If found, and + * the value does not begin with a slash, and the terminal type name is the + * same as the environment string TERM, the TERMCAP string is used instead + * of reading a termcap file. If it does begin with a slash, the string is + * used as a path name of the termcap file to search. If TERMCAP does not + * begin with a slash and name is different from TERM, tgetent() searches + * the files $HOME/.termcap and /usr/share/misc/termcap, in that order, + * unless the environment variable TERMPATH exists, in which case it + * specifies a list of file pathnames (separated by spaces or colons) to be + * searched instead. + * + * It goes on to state: + * + * Whenever multiple files are searched and a tc field occurs in the + * requested entry, the entry it names must be found in the same file or + * one of the succeeding files. + * + * However, this restriction is relaxed in ncurses; tc references to + * previous files are permitted. + * + * This routine returns 1 if an entry is found, 0 if not found, and -1 if + * the database is not accessible. + */ + FILE *fp; + char *tc, *termpaths[MAXPATHS]; + int filecount = 0; + int j, k; + bool use_buffer = FALSE; + bool normal = TRUE; + char *tc_buf = 0; + char pathbuf[PATH_MAX]; + char *copied = 0; + char *cp; + struct stat test_stat[MAXPATHS]; + + termpaths[filecount] = 0; + if (use_terminfo_vars() && (tc = getenv("TERMCAP")) != 0) { + if (_nc_is_abs_path(tc)) { /* interpret as a filename */ + ADD_TC(tc, 0); + normal = FALSE; + } else if (_nc_name_match(tc, tn, "|:")) { /* treat as a capability file */ + tc_buf = strdup(tc); + use_buffer = (tc_buf != 0); + normal = FALSE; + } + } + + if (normal) { /* normal case */ + char envhome[PATH_MAX], *h; + + copied = strdup(get_termpath()); + for (cp = copied; *cp; cp++) { + if (*cp == NCURSES_PATHSEP) + *cp = '\0'; + else if (cp == copied || cp[-1] == '\0') { + ADD_TC(cp, filecount); + } + } + +#define PRIVATE_CAP "%.*s/.termcap" + + if (use_terminfo_vars() && (h = getenv("HOME")) != NULL && *h != '\0' + && (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) { + /* user's .termcap, if any, should override it */ + _nc_STRCPY(envhome, h, sizeof(envhome)); + _nc_SPRINTF(pathbuf, _nc_SLIMIT(sizeof(pathbuf)) + PRIVATE_CAP, + (int) (sizeof(pathbuf) - sizeof(PRIVATE_CAP)), + envhome); + ADD_TC(pathbuf, filecount); + } + } + + /* + * Probably /etc/termcap is a symlink to /usr/share/misc/termcap. + * Avoid reading the same file twice. + */ +#if HAVE_LINK + for (j = 0; j < filecount; j++) { + bool omit = FALSE; + if (stat(termpaths[j], &test_stat[j]) != 0 + || !S_ISREG(test_stat[j].st_mode)) { + omit = TRUE; + } else { + for (k = 0; k < j; k++) { + if (test_stat[k].st_dev == test_stat[j].st_dev + && test_stat[k].st_ino == test_stat[j].st_ino) { + omit = TRUE; + break; + } + } + } + if (omit) { + TR(TRACE_DATABASE, ("Path %s is a duplicate", termpaths[j])); + for (k = j + 1; k < filecount; k++) { + termpaths[k - 1] = termpaths[k]; + test_stat[k - 1] = test_stat[k]; + } + --filecount; + --j; + } + } +#endif + + /* parse the sources */ + if (use_buffer) { + _nc_set_source("TERMCAP"); + + /* + * We don't suppress warning messages here. The presumption is + * that since it is just a single entry, they won't be a pain. + */ + _nc_read_entry_source((FILE *) 0, tc_buf, FALSE, FALSE, NULLHOOK); + free(tc_buf); + } else { + int i; + + for (i = 0; i < filecount; i++) { + + TR(TRACE_DATABASE, ("Looking for %s in %s", tn, termpaths[i])); + if (_nc_access(termpaths[i], R_OK) == 0 + && (fp = safe_fopen(termpaths[i], "r")) != (FILE *) 0) { + _nc_set_source(termpaths[i]); + + /* + * Suppress warning messages. Otherwise you get 400 lines of + * crap from archaic termcap files as ncurses complains about + * all the obsolete capabilities. + */ + _nc_read_entry_source(fp, (char *) 0, FALSE, TRUE, NULLHOOK); + + (void) fclose(fp); + } + } + } + if (copied != 0) + free(copied); +#endif /* USE_GETCAP */ + + if (_nc_head == 0) + return (TGETENT_ERR); + + /* resolve all use references */ + if (_nc_resolve_uses2(TRUE, FALSE) != TRUE) + return (TGETENT_ERR); + + /* find a terminal matching tn, if we can */ +#if USE_GETCAP_CACHE + if (getcwd(cwd_buf, sizeof(cwd_buf)) != 0) { + _nc_set_writedir((char *) 0); /* note: this does a chdir */ +#endif + for_entry_list(ep) { + if (_nc_name_match(ep->tterm.term_names, tn, "|:")) { + /* + * Make a local copy of the terminal capabilities, delinked + * from the list. + */ + *tp = ep->tterm; + _nc_free_entry(_nc_head, &(ep->tterm)); + + /* + * OK, now try to write the type to user's terminfo directory. + * Next time he loads this, it will come through terminfo. + * + * Advantage: Second and subsequent fetches of this entry will + * be very fast. + * + * Disadvantage: After the first time a termcap type is loaded + * by its user, editing it in the /etc/termcap file, or in + * TERMCAP, or in a local ~/.termcap, will be ineffective + * unless the terminfo entry is explicitly removed. + */ +#if USE_GETCAP_CACHE + (void) _nc_write_entry(tp); +#endif + found = TGETENT_YES; + break; + } + } +#if USE_GETCAP_CACHE + chdir(cwd_buf); + } +#endif + + return (found); +} +#else +extern +NCURSES_EXPORT(void) +_nc_read_termcap(void); +NCURSES_EXPORT(void) +_nc_read_termcap(void) +{ +} +#endif /* PURE_TERMINFO */ diff --git a/third_party/ncurses/resizeterm.c b/third_party/ncurses/resizeterm.c new file mode 100644 index 000000000..eda6d104e --- /dev/null +++ b/third_party/ncurses/resizeterm.c @@ -0,0 +1,540 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + * and: Juergen Pfeifer * + ****************************************************************************/ + +/* + * This is an extension to the curses library. It provides callers with a hook + * into the NCURSES data to resize windows, primarily for use by programs + * running in an X Window terminal (e.g., xterm). I abstracted this module + * from my application library for NCURSES because it must be compiled with + * the private data structures -- T.Dickey 1995/7/4. + */ + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: resizeterm.c,v 1.52 2021/10/23 17:12:33 tom Exp $") + +/* + * If we're trying to be reentrant, do not want any local statics. + */ +#if USE_REENTRANT +#define EXTRA_ARGS , CurLines, CurCols +#define EXTRA_DCLS , int CurLines, int CurCols +#else +static int current_lines; +static int current_cols; +#define CurLines current_lines +#define CurCols current_cols +#define EXTRA_ARGS /* nothing */ +#define EXTRA_DCLS /* nothing */ +#endif + +#if NCURSES_SP_FUNCS && !defined(USE_SP_WINDOWLIST) +#define UNUSED_SP (void) sp +#else +#define UNUSED_SP /* nothing */ +#endif + +#ifdef TRACE +static void +show_window_sizes(const char *name) +{ + SCREEN *sp; + WINDOWLIST *wp; + + _nc_lock_global(curses); + for (each_screen(sp)) { + _tracef("%s resizing: %p: %2d x %2d (%2d x %2d)", name, (void *) sp, + *(ptrLines(sp)), + *(ptrCols(sp)), + screen_lines(sp), screen_columns(sp)); + for (each_window(sp, wp)) { + _tracef(" window %p is %2ld x %2ld at %2ld,%2ld", + (void *) &(wp->win), + (long) wp->win._maxy + 1, + (long) wp->win._maxx + 1, + (long) wp->win._begy, + (long) wp->win._begx); + } + } + _nc_unlock_global(curses); +} +#endif + +/* + * Return true if the given dimensions do not match the internal terminal + * structure's size. + */ +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_DCLx int ToLines, int ToCols) +{ + T((T_CALLED("is_term_resized(%p, %d, %d)"), (void *) SP_PARM, ToLines, ToCols)); + returnCode(ToLines > 0 + && ToCols > 0 + && (ToLines != screen_lines(SP_PARM) + || ToCols != screen_columns(SP_PARM))); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(bool) +is_term_resized(int ToLines, int ToCols) +{ + return NCURSES_SP_NAME(is_term_resized) (CURRENT_SCREEN, ToLines, ToCols); +} +#endif + +/* + */ +static ripoff_t * +ripped_window(WINDOW *win) +{ + ripoff_t *result = 0; + ripoff_t *rop; + + if (win != 0) { +#ifdef USE_SP_RIPOFF + SCREEN *sp = _nc_screen_of(win); +#endif + for (each_ripoff(rop)) { + if (rop->win == win && rop->line != 0) { + result = rop; + break; + } + } + } + return result; +} + +/* + * Returns the number of lines from the bottom for the beginning of a ripped + * off window. + */ +static int +ripped_bottom(WINDOW *win) +{ + int result = 0; + + if (win != 0) { + ripoff_t *rop; + +#ifdef USE_SP_RIPOFF + SCREEN *sp = _nc_screen_of(win); +#endif + for (each_ripoff(rop)) { + if (rop->line < 0) { + result -= rop->line; + if (rop->win == win) { + break; + } + } + } + } + return result; +} + +/* + * Return the number of levels of child-windows under the current window. + */ +static int +child_depth(WINDOW *cmp) +{ + int depth = 0; + + if (cmp != 0) { +#ifdef USE_SP_WINDOWLIST + SCREEN *sp = _nc_screen_of(cmp); +#endif + WINDOWLIST *wp; + + for (each_window(sp, wp)) { + WINDOW *tst = &(wp->win); + if (tst->_parent == cmp) { + depth = 1 + child_depth(tst); + break; + } + } + } + return depth; +} + +/* + * Return the number of levels of parent-windows above the current window. + */ +static int +parent_depth(WINDOW *cmp) +{ + int depth = 0; + + if (cmp != 0) { + WINDOW *tst; + while ((tst = cmp->_parent) != 0) { + ++depth; + cmp = tst; + } + } + return depth; +} + +/* + * FIXME: must adjust position so it is within the parent! + */ +static int +adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS) +{ + int result; + int bottom = CurLines + _nc_screen_of(win)->_topstolen - stolen; + int myLines = win->_maxy + 1; + int myCols = win->_maxx + 1; + ripoff_t *rop = ripped_window(win); + + T((T_CALLED("adjust_window(%p,%d,%d)%s depth %d/%d currently %ldx%ld at %ld,%ld"), + (void *) win, ToLines, ToCols, + (rop != 0) ? " (rip)" : "", + parent_depth(win), + child_depth(win), + (long) getmaxy(win), (long) getmaxx(win), + (long) getbegy(win) + win->_yoffset, (long) getbegx(win))); + + if (rop != 0 && rop->line < 0) { + /* + * If it is a ripped-off window at the bottom of the screen, simply + * move it to the same relative position. + */ + win->_begy = (NCURSES_SIZE_T) (ToLines - ripped_bottom(win) - 0 - win->_yoffset); + if (rop->hook == _nc_slk_initialize) + _nc_format_slks( +#if NCURSES_SP_FUNCS + _nc_screen_of(win), +#endif + ToCols); + } else if (win->_begy >= bottom) { + /* + * If it is below the bottom of the new screen, move up by the same + * amount that the screen shrank. + */ + win->_begy = (NCURSES_SIZE_T) (win->_begy + (ToLines - CurLines)); + } else { + if (myLines == (CurLines - stolen) + && ToLines != CurLines) { + myLines = ToLines - stolen; + } else if (myLines == CurLines + && ToLines != CurLines) { + myLines = ToLines; + } + } + + if (myLines > ToLines) { + myLines = ToLines; + } + + if (myCols > ToCols) + myCols = ToCols; + + if (myCols == CurCols + && ToCols != CurCols) + myCols = ToCols; + + result = wresize(win, myLines, myCols); + returnCode(result); +} + +/* + * If we're decreasing size, recursively search for windows that have no + * children, decrease those to fit, then decrease the containing window, etc. + */ +static int +decrease_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS) +{ + bool found; + int depth = 0; + WINDOWLIST *wp; + + T((T_CALLED("decrease_size(%p, %d, %d)"), (void *) SP_PARM, ToLines, ToCols)); + UNUSED_SP; + + do { + found = FALSE; + TR(TRACE_UPDATE, ("decreasing size of windows to %dx%d, depth=%d", + ToLines, ToCols, depth)); + for (each_window(SP_PARM, wp)) { + WINDOW *win = &(wp->win); + + if (!IS_PAD(win)) { + if (child_depth(win) == depth) { + found = TRUE; + if (adjust_window(win, ToLines, ToCols, + stolen EXTRA_ARGS) != OK) + returnCode(ERR); + } + } + } + ++depth; + } while (found); + returnCode(OK); +} + +/* + * If we're increasing size, recursively search for windows that have no + * parent, increase those to fit, then increase the contained window, etc. + */ +static int +increase_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS) +{ + bool found; + int depth = 0; + WINDOWLIST *wp; + + T((T_CALLED("increase_size(%p, %d, %d)"), (void *) SP_PARM, ToLines, ToCols)); + UNUSED_SP; + + do { + found = FALSE; + TR(TRACE_UPDATE, ("increasing size of windows to %dx%d, depth=%d", + ToLines, ToCols, depth)); + for (each_window(SP_PARM, wp)) { + WINDOW *win = &(wp->win); + + if (!IS_PAD(win)) { + if (parent_depth(win) == depth) { + found = TRUE; + if (adjust_window(win, ToLines, ToCols, + stolen EXTRA_ARGS) != OK) + returnCode(ERR); + } + } + } + ++depth; + } while (found); + returnCode(OK); +} + +/* + * This function reallocates NCURSES window structures, with no side-effects + * such as ungetch(). + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(resize_term) (NCURSES_SP_DCLx int ToLines, int ToCols) +{ + int result = OK EXTRA_ARGS; + int was_stolen; + + T((T_CALLED("resize_term(%p,%d,%d) old(%d,%d)"), + (void *) SP_PARM, ToLines, ToCols, + (SP_PARM == 0) ? -1 : screen_lines(SP_PARM), + (SP_PARM == 0) ? -1 : screen_columns(SP_PARM))); + + if (SP_PARM == 0 || ToLines <= 0 || ToCols <= 0) { + returnCode(ERR); + } + + _nc_nonsp_lock_global(curses); + + was_stolen = (screen_lines(SP_PARM) - SP_PARM->_lines_avail); + if (NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_ARGx ToLines, ToCols)) { + int myLines = CurLines = screen_lines(SP_PARM); + int myCols = CurCols = screen_columns(SP_PARM); + +#ifdef TRACE + if (USE_TRACEF(TRACE_UPDATE)) { + show_window_sizes("before"); + _nc_unlock_global(tracef); + } +#endif + if (ToLines > screen_lines(SP_PARM)) { + result = increase_size(NCURSES_SP_ARGx + myLines = ToLines, + myCols, + was_stolen EXTRA_ARGS); + CurLines = myLines; + CurCols = myCols; + } + + if ((result == OK) + && (ToCols > screen_columns(SP_PARM))) { + result = increase_size(NCURSES_SP_ARGx + myLines, + myCols = ToCols, + was_stolen EXTRA_ARGS); + CurLines = myLines; + CurCols = myCols; + } + + if ((result == OK) + && (ToLines < myLines || + ToCols < myCols)) { + result = decrease_size(NCURSES_SP_ARGx + ToLines, + ToCols, + was_stolen EXTRA_ARGS); + } + + if (result == OK) { + screen_lines(SP_PARM) = (NCURSES_SIZE_T) ToLines; + screen_columns(SP_PARM) = (NCURSES_SIZE_T) ToCols; + +#ifdef USE_TERM_DRIVER + CallDriver_2(SP_PARM, td_setsize, ToLines, ToCols); +#else + lines = (NCURSES_SIZE_T) ToLines; + columns = (NCURSES_SIZE_T) ToCols; +#endif + + SP_PARM->_lines_avail = (NCURSES_SIZE_T) (ToLines - was_stolen); + + if (SP_PARM->oldhash) { + FreeAndNull(SP_PARM->oldhash); + } + if (SP_PARM->newhash) { + FreeAndNull(SP_PARM->newhash); + } +#ifdef TRACE + if (USE_TRACEF(TRACE_UPDATE)) { + SET_LINES(ToLines - was_stolen); + SET_COLS(ToCols); + show_window_sizes("after"); + _nc_unlock_global(tracef); + } +#endif + } + } + + if (result == OK) { + /* + * Always update LINES, to allow for call from lib_doupdate.c which + * needs to have the count adjusted by the stolen (ripped off) lines. + */ + SET_LINES(ToLines - was_stolen); + SET_COLS(ToCols); + } + + _nc_nonsp_unlock_global(curses); + + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +resize_term(int ToLines, int ToCols) +{ + int res; + _nc_sp_lock_global(curses); + res = NCURSES_SP_NAME(resize_term) (CURRENT_SCREEN, ToLines, ToCols); + _nc_sp_unlock_global(curses); + return (res); +} +#endif + +/* + * This function reallocates NCURSES window structures. It is invoked in + * response to a SIGWINCH interrupt. Other user-defined windows may also need + * to be reallocated. + * + * Because this performs memory allocation, it should not (in general) be + * invoked directly from the signal handler. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(resizeterm) (NCURSES_SP_DCLx int ToLines, int ToCols) +{ + int result = ERR; + + T((T_CALLED("resizeterm(%p, %d,%d) old(%d,%d)"), + (void *) SP_PARM, ToLines, ToCols, + (SP_PARM == 0) ? -1 : screen_lines(SP_PARM), + (SP_PARM == 0) ? -1 : screen_columns(SP_PARM))); + + if (SP_PARM != 0 && ToLines > 0 && ToCols > 0) { + result = OK; + SP_PARM->_sig_winch = FALSE; + + if (NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_ARGx ToLines, ToCols)) { +#if USE_SIGWINCH + ripoff_t *rop; + bool slk_visible = (SP_PARM != 0 + && SP_PARM->_slk != 0 + && !(SP_PARM->_slk->hidden)); + + if (slk_visible) { + slk_clear(); + } +#endif + result = NCURSES_SP_NAME(resize_term) (NCURSES_SP_ARGx ToLines, ToCols); + +#if USE_SIGWINCH + clearok(CurScreen(SP_PARM), TRUE); /* screen contents are unknown */ + + /* ripped-off lines are a special case: if we did not lengthen + * them, we haven't moved them either. repaint them, too. + * + * for the rest - stdscr and other windows - the client has to + * decide which to repaint, since without panels, ncurses does + * not know which are really on top. + */ + for (each_ripoff(rop)) { + if (rop->win != StdScreen(SP_PARM) + && rop->win != 0 + && rop->line < 0) { + + if (rop->hook != _nc_slk_initialize) { + touchwin(rop->win); + wnoutrefresh(rop->win); + } + } + } + + /* soft-keys are a special case: we _know_ how to repaint them */ + if (slk_visible) { + NCURSES_SP_NAME(slk_restore) (NCURSES_SP_ARG); + NCURSES_SP_NAME(slk_touch) (NCURSES_SP_ARG); + NCURSES_SP_NAME(slk_refresh) (NCURSES_SP_ARG); + } +#endif + } +#if USE_SIGWINCH + safe_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */ +#endif + } + + returnCode(result); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +resizeterm(int ToLines, int ToCols) +{ + return NCURSES_SP_NAME(resizeterm) (CURRENT_SCREEN, ToLines, ToCols); +} +#endif diff --git a/third_party/ncurses/safe_sprintf.c b/third_party/ncurses/safe_sprintf.c new file mode 100644 index 000000000..bed01ad77 --- /dev/null +++ b/third_party/ncurses/safe_sprintf.c @@ -0,0 +1,293 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2012,2013 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997-on * + ****************************************************************************/ + +#include "curses.priv.h" +#include + +MODULE_ID("$Id: safe_sprintf.c,v 1.35 2021/10/03 00:25:09 tom Exp $") + +#if USE_SAFE_SPRINTF + +typedef enum { + Flags, Width, Prec, Type, Format +} PRINTF; + +#define VA_INTGR(type) ival = (int) va_arg(ap, type) +#define VA_FLOAT(type) fval = va_arg(ap, type) +#define VA_POINT(type) pval = (void *)va_arg(ap, type) + +/* + * Scan a variable-argument list for printf to determine the number of + * characters that would be emitted. + */ +static int +_nc_printf_length(const char *fmt, va_list ap) +{ + size_t length = BUFSIZ; + char *buffer; + char *format; + int len = 0; + size_t fmt_len; + char fmt_arg[BUFSIZ]; + + if (fmt == 0 || *fmt == '\0') + return 0; + fmt_len = strlen(fmt) + 1; + if ((format = typeMalloc(char, fmt_len)) == 0) + return -1; + if ((buffer = typeMalloc(char, length)) == 0) { + free(format); + return -1; + } + + while (*fmt != '\0') { + if (*fmt == '%') { + static char dummy[] = ""; + PRINTF state = Flags; + char *pval = dummy; /* avoid const-cast */ + double fval = 0.0; + int done = FALSE; + int ival = 0; + int prec = -1; + int type = 0; + int used = 0; + int width = -1; + size_t f = 0; + + format[f++] = *fmt; + while (*++fmt != '\0' && len >= 0 && !done) { + format[f++] = *fmt; + + if (isdigit(UChar(*fmt))) { + int num = *fmt - '0'; + if (state == Flags && num != 0) + state = Width; + if (state == Width) { + if (width < 0) + width = 0; + width = (width * 10) + num; + } else if (state == Prec) { + if (prec < 0) + prec = 0; + prec = (prec * 10) + num; + } + } else if (*fmt == '*') { + VA_INTGR(int); + if (state == Flags) + state = Width; + if (state == Width) { + width = ival; + } else if (state == Prec) { + prec = ival; + } + _nc_SPRINTF(fmt_arg, + _nc_SLIMIT(sizeof(fmt_arg)) + "%d", ival); + fmt_len += strlen(fmt_arg); + if ((format = _nc_doalloc(format, fmt_len)) == 0) { + free(buffer); + return -1; + } + --f; + _nc_STRCPY(&format[f], fmt_arg, fmt_len - f); + f = strlen(format); + } else if (isalpha(UChar(*fmt))) { + done = TRUE; + switch (*fmt) { + case 'Z': /* FALLTHRU */ + case 'h': /* FALLTHRU */ + case 'l': /* FALLTHRU */ + done = FALSE; + type = *fmt; + break; + case 'i': /* FALLTHRU */ + case 'd': /* FALLTHRU */ + case 'u': /* FALLTHRU */ + case 'x': /* FALLTHRU */ + case 'X': /* FALLTHRU */ + if (type == 'l') + VA_INTGR(long); + else if (type == 'Z') + VA_INTGR(size_t); + else + VA_INTGR(int); + used = 'i'; + break; + case 'f': /* FALLTHRU */ + case 'e': /* FALLTHRU */ + case 'E': /* FALLTHRU */ + case 'g': /* FALLTHRU */ + case 'G': /* FALLTHRU */ + VA_FLOAT(double); + used = 'f'; + break; + case 'c': + VA_INTGR(int); + used = 'i'; + break; + case 's': + VA_POINT(char *); + if (prec < 0) + prec = (int) strlen(pval); + if (prec > (int) length) { + length = length + (size_t) prec; + buffer = typeRealloc(char, length, buffer); + if (buffer == 0) { + free(format); + return -1; + } + } + used = 'p'; + break; + case 'p': + VA_POINT(void *); + used = 'p'; + break; + case 'n': + VA_POINT(int *); + used = 0; + break; + default: + break; + } + } else if (*fmt == '.') { + state = Prec; + } else if (*fmt == '%') { + done = TRUE; + used = 'p'; + } + } + format[f] = '\0'; + switch (used) { + case 'i': + _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, ival); + break; + case 'f': + _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, fval); + break; + default: + _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, pval); + break; + } + len += (int) strlen(buffer); + } else { + fmt++; + len++; + } + } + + free(buffer); + free(format); + return len; +} +#endif + +#define my_buffer _nc_globals.safeprint_buf +#define my_length _nc_globals.safeprint_used + +/* + * Wrapper for vsprintf that allocates a buffer big enough to hold the result. + */ +NCURSES_EXPORT(char *) +NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_DCLx + const char *fmt, + va_list ap) +{ + char *result = NULL; + + if (SP_PARM != NULL && fmt != NULL) { +#if USE_SAFE_SPRINTF + va_list ap2; + int len; + + begin_va_copy(ap2, ap); + len = _nc_printf_length(fmt, ap2); + end_va_copy(ap2); + + if ((int) my_length < len + 1) { + my_length = (size_t) (2 * (len + 1)); + my_buffer = typeRealloc(char, my_length, my_buffer); + } + if (my_buffer != NULL) { + *my_buffer = '\0'; + if (len >= 0) { + vsprintf(my_buffer, fmt, ap); + } + result = my_buffer; + } +#else +#define MyCols _nc_globals.safeprint_cols +#define MyRows _nc_globals.safeprint_rows + + if (screen_lines(SP_PARM) > MyRows || screen_columns(SP_PARM) > MyCols) { + if (screen_lines(SP_PARM) > MyRows) + MyRows = screen_lines(SP_PARM); + if (screen_columns(SP_PARM) > MyCols) + MyCols = screen_columns(SP_PARM); + my_length = (size_t) (MyRows * (MyCols + 1)) + 1; + if (my_length < 80) + my_length = 80; + my_buffer = typeRealloc(char, my_length, my_buffer); + } + + if (my_buffer != NULL) { +# if HAVE_VSNPRINTF + /* SUSv2, 1997 */ + int used; + while ((used = vsnprintf(my_buffer, my_length, fmt, ap)) + >= (int) my_length) { + my_length = (size_t) ((3 * used) / 2); + my_buffer = typeRealloc(char, my_length, my_buffer); + } +# else + /* ISO/ANSI C, 1989 */ + vsprintf(my_buffer, fmt, ap); +# endif + result = my_buffer; + } +#endif + } else if (my_buffer != NULL) { /* see _nc_freeall() */ + free(my_buffer); + my_buffer = NULL; + my_length = 0; + } + return result; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char *) +_nc_printf_string(const char *fmt, va_list ap) +{ + return NCURSES_SP_NAME(_nc_printf_string) (CURRENT_SCREEN, fmt, ap); +} +#endif diff --git a/third_party/ncurses/strings.c b/third_party/ncurses/strings.c new file mode 100644 index 000000000..d6a49277e --- /dev/null +++ b/third_party/ncurses/strings.c @@ -0,0 +1,144 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2000-2012,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey * + ****************************************************************************/ + +/* +** lib_mvcur.c +**/ + +#include "curses.priv.h" +#include "tic.h" + +MODULE_ID("$Id: strings.c,v 1.10 2020/02/02 23:34:34 tom Exp $") + +/**************************************************************************** + * Useful string functions (especially for mvcur) + ****************************************************************************/ + +#if !HAVE_STRSTR +NCURSES_EXPORT(char *) +_nc_strstr(const char *haystack, const char *needle) +{ + size_t len1 = strlen(haystack); + size_t len2 = strlen(needle); + char *result = 0; + + while ((len1 != 0) && (len1-- >= len2)) { + if (!strncmp(haystack, needle, len2)) { + result = (char *) haystack; + break; + } + haystack++; + } + return result; +} +#endif + +/* + * Initialize the descriptor so we can append to it. Note that 'src' may + * be a null pointer (see _nc_str_null), so the corresponding strcat and + * strcpy calls have to allow for this. + */ +NCURSES_EXPORT(string_desc *) +_nc_str_init(string_desc * dst, char *src, size_t len) +{ + if (dst != 0) { + dst->s_head = src; + dst->s_tail = src; + dst->s_size = len - 1; + dst->s_init = dst->s_size; + if (src != 0) + *src = 0; + } + return dst; +} + +/* + * Initialize the descriptor for only tracking the amount of memory used. + */ +NCURSES_EXPORT(string_desc *) +_nc_str_null(string_desc * dst, size_t len) +{ + return _nc_str_init(dst, 0, len); +} + +/* + * Copy a descriptor + */ +NCURSES_EXPORT(string_desc *) +_nc_str_copy(string_desc * dst, string_desc * src) +{ + *dst = *src; + return dst; +} + +/* + * Replaces strcat into a fixed buffer, returning false on failure. + */ +NCURSES_EXPORT(bool) +_nc_safe_strcat(string_desc * dst, const char *src) +{ + if (PRESENT(src)) { + size_t len = strlen(src); + + if (len < dst->s_size) { + if (dst->s_tail != 0) { + _nc_STRCPY(dst->s_tail, src, dst->s_size); + dst->s_tail += len; + } + dst->s_size -= len; + return TRUE; + } + } + return FALSE; +} + +/* + * Replaces strcpy into a fixed buffer, returning false on failure. + */ +NCURSES_EXPORT(bool) +_nc_safe_strcpy(string_desc * dst, const char *src) +{ + if (PRESENT(src)) { + size_t len = strlen(src); + + if (len < dst->s_size) { + if (dst->s_head != 0) { + _nc_STRCPY(dst->s_head, src, dst->s_size); + dst->s_tail = dst->s_head + len; + } + dst->s_size = dst->s_init - len; + return TRUE; + } + } + return FALSE; +} diff --git a/third_party/ncurses/term.h b/third_party/ncurses/term.h new file mode 100644 index 000000000..cce6387c0 --- /dev/null +++ b/third_party/ncurses/term.h @@ -0,0 +1,893 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2013,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/****************************************************************************/ +/* Author: Zeyd M. Ben-Halim 1992,1995 */ +/* and: Eric S. Raymond */ +/* and: Thomas E. Dickey 1995-on */ +/****************************************************************************/ + +/* $Id: MKterm.h.awk.in,v 1.82 2021/09/24 17:02:46 tom Exp $ */ + +/* +** term.h -- Definition of struct term +*/ + +#ifndef NCURSES_TERM_H_incl +#define NCURSES_TERM_H_incl 1 + +#undef NCURSES_VERSION +#define NCURSES_VERSION "6.4" + +#include "ncurses_dll.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H + * definition (based on the system for which this was configured). + */ + +#ifndef __NCURSES_H + +typedef struct screen SCREEN; + +#if 1 +#undef NCURSES_SP_FUNCS +#define NCURSES_SP_FUNCS 20221231 +#undef NCURSES_SP_NAME +#define NCURSES_SP_NAME(name) name##_sp + +/* Define the sp-funcs helper function */ +#undef NCURSES_SP_OUTC +#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) +typedef int (*NCURSES_SP_OUTC)(SCREEN*, int); +#endif + +#endif /* __NCURSES_H */ + +#undef NCURSES_CONST +#define NCURSES_CONST const + +#undef NCURSES_SBOOL +#define NCURSES_SBOOL char + +#undef NCURSES_USE_DATABASE +#define NCURSES_USE_DATABASE 1 + +#undef NCURSES_USE_TERMCAP +#define NCURSES_USE_TERMCAP 0 + +#undef NCURSES_XNAMES +#define NCURSES_XNAMES 1 + +/* We will use these symbols to hide differences between + * termios/termio/sgttyb interfaces. + */ +#undef TTY +#undef SET_TTY +#undef GET_TTY + +/* Assume POSIX termio if we have the header and function */ +/* #if HAVE_TERMIOS_H && HAVE_TCGETATTR */ +#if 1 && 1 + +#undef TERMIOS +#define TERMIOS 1 + +#include +#define TTY struct termios + +#else /* !HAVE_TERMIOS_H */ + +/* #if HAVE_TERMIO_H */ +#if 0 + +#undef TERMIOS +#define TERMIOS 1 + +#include +#define TTY struct termio + +#else /* !HAVE_TERMIO_H */ + +#if (defined(_WIN32) || defined(_WIN64)) +#if 0 +#include +#define TTY struct winconmode +#else +#include +#define TTY struct termios +#endif +#else +#undef TERMIOS +#include +#include +#define TTY struct sgttyb +#endif /* MINGW32 */ +#endif /* HAVE_TERMIO_H */ + +#endif /* HAVE_TERMIOS_H */ + +#ifdef TERMIOS +#define GET_TTY(fd, buf) tcgetattr(fd, buf) +#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf) +#elif 0 && (defined(_WIN32) || defined(_WIN64)) +#define GET_TTY(fd, buf) _nc_console_getmode(_nc_console_fd2handle(fd),buf) +#define SET_TTY(fd, buf) _nc_console_setmode(_nc_console_fd2handle(fd),buf) +#else +#define GET_TTY(fd, buf) gtty(fd, buf) +#define SET_TTY(fd, buf) stty(fd, buf) +#endif + +#ifndef GCC_NORETURN +#define GCC_NORETURN /* nothing */ +#endif + +#define NAMESIZE 256 + +/* The cast works because TERMTYPE is the first data in TERMINAL */ +#define CUR ((TERMTYPE *)(cur_term))-> + +#define auto_left_margin CUR Booleans[0] +#define auto_right_margin CUR Booleans[1] +#define no_esc_ctlc CUR Booleans[2] +#define ceol_standout_glitch CUR Booleans[3] +#define eat_newline_glitch CUR Booleans[4] +#define erase_overstrike CUR Booleans[5] +#define generic_type CUR Booleans[6] +#define hard_copy CUR Booleans[7] +#define has_meta_key CUR Booleans[8] +#define has_status_line CUR Booleans[9] +#define insert_null_glitch CUR Booleans[10] +#define memory_above CUR Booleans[11] +#define memory_below CUR Booleans[12] +#define move_insert_mode CUR Booleans[13] +#define move_standout_mode CUR Booleans[14] +#define over_strike CUR Booleans[15] +#define status_line_esc_ok CUR Booleans[16] +#define dest_tabs_magic_smso CUR Booleans[17] +#define tilde_glitch CUR Booleans[18] +#define transparent_underline CUR Booleans[19] +#define xon_xoff CUR Booleans[20] +#define needs_xon_xoff CUR Booleans[21] +#define prtr_silent CUR Booleans[22] +#define hard_cursor CUR Booleans[23] +#define non_rev_rmcup CUR Booleans[24] +#define no_pad_char CUR Booleans[25] +#define non_dest_scroll_region CUR Booleans[26] +#define can_change CUR Booleans[27] +#define back_color_erase CUR Booleans[28] +#define hue_lightness_saturation CUR Booleans[29] +#define col_addr_glitch CUR Booleans[30] +#define cr_cancels_micro_mode CUR Booleans[31] +#define has_print_wheel CUR Booleans[32] +#define row_addr_glitch CUR Booleans[33] +#define semi_auto_right_margin CUR Booleans[34] +#define cpi_changes_res CUR Booleans[35] +#define lpi_changes_res CUR Booleans[36] +#define columns CUR Numbers[0] +#define init_tabs CUR Numbers[1] +#define lines CUR Numbers[2] +#define lines_of_memory CUR Numbers[3] +#define magic_cookie_glitch CUR Numbers[4] +#define padding_baud_rate CUR Numbers[5] +#define virtual_terminal CUR Numbers[6] +#define width_status_line CUR Numbers[7] +#define num_labels CUR Numbers[8] +#define label_height CUR Numbers[9] +#define label_width CUR Numbers[10] +#define max_attributes CUR Numbers[11] +#define maximum_windows CUR Numbers[12] +#define max_colors CUR Numbers[13] +#define max_pairs CUR Numbers[14] +#define no_color_video CUR Numbers[15] +#define buffer_capacity CUR Numbers[16] +#define dot_vert_spacing CUR Numbers[17] +#define dot_horz_spacing CUR Numbers[18] +#define max_micro_address CUR Numbers[19] +#define max_micro_jump CUR Numbers[20] +#define micro_col_size CUR Numbers[21] +#define micro_line_size CUR Numbers[22] +#define number_of_pins CUR Numbers[23] +#define output_res_char CUR Numbers[24] +#define output_res_line CUR Numbers[25] +#define output_res_horz_inch CUR Numbers[26] +#define output_res_vert_inch CUR Numbers[27] +#define print_rate CUR Numbers[28] +#define wide_char_size CUR Numbers[29] +#define buttons CUR Numbers[30] +#define bit_image_entwining CUR Numbers[31] +#define bit_image_type CUR Numbers[32] +#define back_tab CUR Strings[0] +#define bell CUR Strings[1] +#define carriage_return CUR Strings[2] +#define change_scroll_region CUR Strings[3] +#define clear_all_tabs CUR Strings[4] +#define clear_screen CUR Strings[5] +#define clr_eol CUR Strings[6] +#define clr_eos CUR Strings[7] +#define column_address CUR Strings[8] +#define command_character CUR Strings[9] +#define cursor_address CUR Strings[10] +#define cursor_down CUR Strings[11] +#define cursor_home CUR Strings[12] +#define cursor_invisible CUR Strings[13] +#define cursor_left CUR Strings[14] +#define cursor_mem_address CUR Strings[15] +#define cursor_normal CUR Strings[16] +#define cursor_right CUR Strings[17] +#define cursor_to_ll CUR Strings[18] +#define cursor_up CUR Strings[19] +#define cursor_visible CUR Strings[20] +#define delete_character CUR Strings[21] +#define delete_line CUR Strings[22] +#define dis_status_line CUR Strings[23] +#define down_half_line CUR Strings[24] +#define enter_alt_charset_mode CUR Strings[25] +#define enter_blink_mode CUR Strings[26] +#define enter_bold_mode CUR Strings[27] +#define enter_ca_mode CUR Strings[28] +#define enter_delete_mode CUR Strings[29] +#define enter_dim_mode CUR Strings[30] +#define enter_insert_mode CUR Strings[31] +#define enter_secure_mode CUR Strings[32] +#define enter_protected_mode CUR Strings[33] +#define enter_reverse_mode CUR Strings[34] +#define enter_standout_mode CUR Strings[35] +#define enter_underline_mode CUR Strings[36] +#define erase_chars CUR Strings[37] +#define exit_alt_charset_mode CUR Strings[38] +#define exit_attribute_mode CUR Strings[39] +#define exit_ca_mode CUR Strings[40] +#define exit_delete_mode CUR Strings[41] +#define exit_insert_mode CUR Strings[42] +#define exit_standout_mode CUR Strings[43] +#define exit_underline_mode CUR Strings[44] +#define flash_screen CUR Strings[45] +#define form_feed CUR Strings[46] +#define from_status_line CUR Strings[47] +#define init_1string CUR Strings[48] +#define init_2string CUR Strings[49] +#define init_3string CUR Strings[50] +#define init_file CUR Strings[51] +#define insert_character CUR Strings[52] +#define insert_line CUR Strings[53] +#define insert_padding CUR Strings[54] +#define key_backspace CUR Strings[55] +#define key_catab CUR Strings[56] +#define key_clear CUR Strings[57] +#define key_ctab CUR Strings[58] +#define key_dc CUR Strings[59] +#define key_dl CUR Strings[60] +#define key_down CUR Strings[61] +#define key_eic CUR Strings[62] +#define key_eol CUR Strings[63] +#define key_eos CUR Strings[64] +#define key_f0 CUR Strings[65] +#define key_f1 CUR Strings[66] +#define key_f10 CUR Strings[67] +#define key_f2 CUR Strings[68] +#define key_f3 CUR Strings[69] +#define key_f4 CUR Strings[70] +#define key_f5 CUR Strings[71] +#define key_f6 CUR Strings[72] +#define key_f7 CUR Strings[73] +#define key_f8 CUR Strings[74] +#define key_f9 CUR Strings[75] +#define key_home CUR Strings[76] +#define key_ic CUR Strings[77] +#define key_il CUR Strings[78] +#define key_left CUR Strings[79] +#define key_ll CUR Strings[80] +#define key_npage CUR Strings[81] +#define key_ppage CUR Strings[82] +#define key_right CUR Strings[83] +#define key_sf CUR Strings[84] +#define key_sr CUR Strings[85] +#define key_stab CUR Strings[86] +#define key_up CUR Strings[87] +#define keypad_local CUR Strings[88] +#define keypad_xmit CUR Strings[89] +#define lab_f0 CUR Strings[90] +#define lab_f1 CUR Strings[91] +#define lab_f10 CUR Strings[92] +#define lab_f2 CUR Strings[93] +#define lab_f3 CUR Strings[94] +#define lab_f4 CUR Strings[95] +#define lab_f5 CUR Strings[96] +#define lab_f6 CUR Strings[97] +#define lab_f7 CUR Strings[98] +#define lab_f8 CUR Strings[99] +#define lab_f9 CUR Strings[100] +#define meta_off CUR Strings[101] +#define meta_on CUR Strings[102] +#define newline CUR Strings[103] +#define pad_char CUR Strings[104] +#define parm_dch CUR Strings[105] +#define parm_delete_line CUR Strings[106] +#define parm_down_cursor CUR Strings[107] +#define parm_ich CUR Strings[108] +#define parm_index CUR Strings[109] +#define parm_insert_line CUR Strings[110] +#define parm_left_cursor CUR Strings[111] +#define parm_right_cursor CUR Strings[112] +#define parm_rindex CUR Strings[113] +#define parm_up_cursor CUR Strings[114] +#define pkey_key CUR Strings[115] +#define pkey_local CUR Strings[116] +#define pkey_xmit CUR Strings[117] +#define print_screen CUR Strings[118] +#define prtr_off CUR Strings[119] +#define prtr_on CUR Strings[120] +#define repeat_char CUR Strings[121] +#define reset_1string CUR Strings[122] +#define reset_2string CUR Strings[123] +#define reset_3string CUR Strings[124] +#define reset_file CUR Strings[125] +#define restore_cursor CUR Strings[126] +#define row_address CUR Strings[127] +#define save_cursor CUR Strings[128] +#define scroll_forward CUR Strings[129] +#define scroll_reverse CUR Strings[130] +#define set_attributes CUR Strings[131] +#define set_tab CUR Strings[132] +#define set_window CUR Strings[133] +#define tab CUR Strings[134] +#define to_status_line CUR Strings[135] +#define underline_char CUR Strings[136] +#define up_half_line CUR Strings[137] +#define init_prog CUR Strings[138] +#define key_a1 CUR Strings[139] +#define key_a3 CUR Strings[140] +#define key_b2 CUR Strings[141] +#define key_c1 CUR Strings[142] +#define key_c3 CUR Strings[143] +#define prtr_non CUR Strings[144] +#define char_padding CUR Strings[145] +#define acs_chars CUR Strings[146] +#define plab_norm CUR Strings[147] +#define key_btab CUR Strings[148] +#define enter_xon_mode CUR Strings[149] +#define exit_xon_mode CUR Strings[150] +#define enter_am_mode CUR Strings[151] +#define exit_am_mode CUR Strings[152] +#define xon_character CUR Strings[153] +#define xoff_character CUR Strings[154] +#define ena_acs CUR Strings[155] +#define label_on CUR Strings[156] +#define label_off CUR Strings[157] +#define key_beg CUR Strings[158] +#define key_cancel CUR Strings[159] +#define key_close CUR Strings[160] +#define key_command CUR Strings[161] +#define key_copy CUR Strings[162] +#define key_create CUR Strings[163] +#define key_end CUR Strings[164] +#define key_enter CUR Strings[165] +#define key_exit CUR Strings[166] +#define key_find CUR Strings[167] +#define key_help CUR Strings[168] +#define key_mark CUR Strings[169] +#define key_message CUR Strings[170] +#define key_move CUR Strings[171] +#define key_next CUR Strings[172] +#define key_open CUR Strings[173] +#define key_options CUR Strings[174] +#define key_previous CUR Strings[175] +#define key_print CUR Strings[176] +#define key_redo CUR Strings[177] +#define key_reference CUR Strings[178] +#define key_refresh CUR Strings[179] +#define key_replace CUR Strings[180] +#define key_restart CUR Strings[181] +#define key_resume CUR Strings[182] +#define key_save CUR Strings[183] +#define key_suspend CUR Strings[184] +#define key_undo CUR Strings[185] +#define key_sbeg CUR Strings[186] +#define key_scancel CUR Strings[187] +#define key_scommand CUR Strings[188] +#define key_scopy CUR Strings[189] +#define key_screate CUR Strings[190] +#define key_sdc CUR Strings[191] +#define key_sdl CUR Strings[192] +#define key_select CUR Strings[193] +#define key_send CUR Strings[194] +#define key_seol CUR Strings[195] +#define key_sexit CUR Strings[196] +#define key_sfind CUR Strings[197] +#define key_shelp CUR Strings[198] +#define key_shome CUR Strings[199] +#define key_sic CUR Strings[200] +#define key_sleft CUR Strings[201] +#define key_smessage CUR Strings[202] +#define key_smove CUR Strings[203] +#define key_snext CUR Strings[204] +#define key_soptions CUR Strings[205] +#define key_sprevious CUR Strings[206] +#define key_sprint CUR Strings[207] +#define key_sredo CUR Strings[208] +#define key_sreplace CUR Strings[209] +#define key_sright CUR Strings[210] +#define key_srsume CUR Strings[211] +#define key_ssave CUR Strings[212] +#define key_ssuspend CUR Strings[213] +#define key_sundo CUR Strings[214] +#define req_for_input CUR Strings[215] +#define key_f11 CUR Strings[216] +#define key_f12 CUR Strings[217] +#define key_f13 CUR Strings[218] +#define key_f14 CUR Strings[219] +#define key_f15 CUR Strings[220] +#define key_f16 CUR Strings[221] +#define key_f17 CUR Strings[222] +#define key_f18 CUR Strings[223] +#define key_f19 CUR Strings[224] +#define key_f20 CUR Strings[225] +#define key_f21 CUR Strings[226] +#define key_f22 CUR Strings[227] +#define key_f23 CUR Strings[228] +#define key_f24 CUR Strings[229] +#define key_f25 CUR Strings[230] +#define key_f26 CUR Strings[231] +#define key_f27 CUR Strings[232] +#define key_f28 CUR Strings[233] +#define key_f29 CUR Strings[234] +#define key_f30 CUR Strings[235] +#define key_f31 CUR Strings[236] +#define key_f32 CUR Strings[237] +#define key_f33 CUR Strings[238] +#define key_f34 CUR Strings[239] +#define key_f35 CUR Strings[240] +#define key_f36 CUR Strings[241] +#define key_f37 CUR Strings[242] +#define key_f38 CUR Strings[243] +#define key_f39 CUR Strings[244] +#define key_f40 CUR Strings[245] +#define key_f41 CUR Strings[246] +#define key_f42 CUR Strings[247] +#define key_f43 CUR Strings[248] +#define key_f44 CUR Strings[249] +#define key_f45 CUR Strings[250] +#define key_f46 CUR Strings[251] +#define key_f47 CUR Strings[252] +#define key_f48 CUR Strings[253] +#define key_f49 CUR Strings[254] +#define key_f50 CUR Strings[255] +#define key_f51 CUR Strings[256] +#define key_f52 CUR Strings[257] +#define key_f53 CUR Strings[258] +#define key_f54 CUR Strings[259] +#define key_f55 CUR Strings[260] +#define key_f56 CUR Strings[261] +#define key_f57 CUR Strings[262] +#define key_f58 CUR Strings[263] +#define key_f59 CUR Strings[264] +#define key_f60 CUR Strings[265] +#define key_f61 CUR Strings[266] +#define key_f62 CUR Strings[267] +#define key_f63 CUR Strings[268] +#define clr_bol CUR Strings[269] +#define clear_margins CUR Strings[270] +#define set_left_margin CUR Strings[271] +#define set_right_margin CUR Strings[272] +#define label_format CUR Strings[273] +#define set_clock CUR Strings[274] +#define display_clock CUR Strings[275] +#define remove_clock CUR Strings[276] +#define create_window CUR Strings[277] +#define goto_window CUR Strings[278] +#define hangup CUR Strings[279] +#define dial_phone CUR Strings[280] +#define quick_dial CUR Strings[281] +#define tone CUR Strings[282] +#define pulse CUR Strings[283] +#define flash_hook CUR Strings[284] +#define fixed_pause CUR Strings[285] +#define wait_tone CUR Strings[286] +#define user0 CUR Strings[287] +#define user1 CUR Strings[288] +#define user2 CUR Strings[289] +#define user3 CUR Strings[290] +#define user4 CUR Strings[291] +#define user5 CUR Strings[292] +#define user6 CUR Strings[293] +#define user7 CUR Strings[294] +#define user8 CUR Strings[295] +#define user9 CUR Strings[296] +#define orig_pair CUR Strings[297] +#define orig_colors CUR Strings[298] +#define initialize_color CUR Strings[299] +#define initialize_pair CUR Strings[300] +#define set_color_pair CUR Strings[301] +#define set_foreground CUR Strings[302] +#define set_background CUR Strings[303] +#define change_char_pitch CUR Strings[304] +#define change_line_pitch CUR Strings[305] +#define change_res_horz CUR Strings[306] +#define change_res_vert CUR Strings[307] +#define define_char CUR Strings[308] +#define enter_doublewide_mode CUR Strings[309] +#define enter_draft_quality CUR Strings[310] +#define enter_italics_mode CUR Strings[311] +#define enter_leftward_mode CUR Strings[312] +#define enter_micro_mode CUR Strings[313] +#define enter_near_letter_quality CUR Strings[314] +#define enter_normal_quality CUR Strings[315] +#define enter_shadow_mode CUR Strings[316] +#define enter_subscript_mode CUR Strings[317] +#define enter_superscript_mode CUR Strings[318] +#define enter_upward_mode CUR Strings[319] +#define exit_doublewide_mode CUR Strings[320] +#define exit_italics_mode CUR Strings[321] +#define exit_leftward_mode CUR Strings[322] +#define exit_micro_mode CUR Strings[323] +#define exit_shadow_mode CUR Strings[324] +#define exit_subscript_mode CUR Strings[325] +#define exit_superscript_mode CUR Strings[326] +#define exit_upward_mode CUR Strings[327] +#define micro_column_address CUR Strings[328] +#define micro_down CUR Strings[329] +#define micro_left CUR Strings[330] +#define micro_right CUR Strings[331] +#define micro_row_address CUR Strings[332] +#define micro_up CUR Strings[333] +#define order_of_pins CUR Strings[334] +#define parm_down_micro CUR Strings[335] +#define parm_left_micro CUR Strings[336] +#define parm_right_micro CUR Strings[337] +#define parm_up_micro CUR Strings[338] +#define select_char_set CUR Strings[339] +#define set_bottom_margin CUR Strings[340] +#define set_bottom_margin_parm CUR Strings[341] +#define set_left_margin_parm CUR Strings[342] +#define set_right_margin_parm CUR Strings[343] +#define set_top_margin CUR Strings[344] +#define set_top_margin_parm CUR Strings[345] +#define start_bit_image CUR Strings[346] +#define start_char_set_def CUR Strings[347] +#define stop_bit_image CUR Strings[348] +#define stop_char_set_def CUR Strings[349] +#define subscript_characters CUR Strings[350] +#define superscript_characters CUR Strings[351] +#define these_cause_cr CUR Strings[352] +#define zero_motion CUR Strings[353] +#define char_set_names CUR Strings[354] +#define key_mouse CUR Strings[355] +#define mouse_info CUR Strings[356] +#define req_mouse_pos CUR Strings[357] +#define get_mouse CUR Strings[358] +#define set_a_foreground CUR Strings[359] +#define set_a_background CUR Strings[360] +#define pkey_plab CUR Strings[361] +#define device_type CUR Strings[362] +#define code_set_init CUR Strings[363] +#define set0_des_seq CUR Strings[364] +#define set1_des_seq CUR Strings[365] +#define set2_des_seq CUR Strings[366] +#define set3_des_seq CUR Strings[367] +#define set_lr_margin CUR Strings[368] +#define set_tb_margin CUR Strings[369] +#define bit_image_repeat CUR Strings[370] +#define bit_image_newline CUR Strings[371] +#define bit_image_carriage_return CUR Strings[372] +#define color_names CUR Strings[373] +#define define_bit_image_region CUR Strings[374] +#define end_bit_image_region CUR Strings[375] +#define set_color_band CUR Strings[376] +#define set_page_length CUR Strings[377] +#define display_pc_char CUR Strings[378] +#define enter_pc_charset_mode CUR Strings[379] +#define exit_pc_charset_mode CUR Strings[380] +#define enter_scancode_mode CUR Strings[381] +#define exit_scancode_mode CUR Strings[382] +#define pc_term_options CUR Strings[383] +#define scancode_escape CUR Strings[384] +#define alt_scancode_esc CUR Strings[385] +#define enter_horizontal_hl_mode CUR Strings[386] +#define enter_left_hl_mode CUR Strings[387] +#define enter_low_hl_mode CUR Strings[388] +#define enter_right_hl_mode CUR Strings[389] +#define enter_top_hl_mode CUR Strings[390] +#define enter_vertical_hl_mode CUR Strings[391] +#define set_a_attributes CUR Strings[392] +#define set_pglen_inch CUR Strings[393] + +#define BOOLWRITE 37 +#define NUMWRITE 33 +#define STRWRITE 394 + +/* older synonyms for some capabilities */ +#define beehive_glitch no_esc_ctlc +#define teleray_glitch dest_tabs_magic_smso + +/* HPUX-11 uses this name rather than the standard one */ +#ifndef micro_char_size +#define micro_char_size micro_col_size +#endif + +#ifdef __INTERNAL_CAPS_VISIBLE +#define termcap_init2 CUR Strings[394] +#define termcap_reset CUR Strings[395] +#define magic_cookie_glitch_ul CUR Numbers[33] +#define backspaces_with_bs CUR Booleans[37] +#define crt_no_scrolling CUR Booleans[38] +#define no_correctly_working_cr CUR Booleans[39] +#define carriage_return_delay CUR Numbers[34] +#define new_line_delay CUR Numbers[35] +#define linefeed_if_not_lf CUR Strings[396] +#define backspace_if_not_bs CUR Strings[397] +#define gnu_has_meta_key CUR Booleans[40] +#define linefeed_is_newline CUR Booleans[41] +#define backspace_delay CUR Numbers[36] +#define horizontal_tab_delay CUR Numbers[37] +#define number_of_function_keys CUR Numbers[38] +#define other_non_function_keys CUR Strings[398] +#define arrow_key_map CUR Strings[399] +#define has_hardware_tabs CUR Booleans[42] +#define return_does_clr_eol CUR Booleans[43] +#define acs_ulcorner CUR Strings[400] +#define acs_llcorner CUR Strings[401] +#define acs_urcorner CUR Strings[402] +#define acs_lrcorner CUR Strings[403] +#define acs_ltee CUR Strings[404] +#define acs_rtee CUR Strings[405] +#define acs_btee CUR Strings[406] +#define acs_ttee CUR Strings[407] +#define acs_hline CUR Strings[408] +#define acs_vline CUR Strings[409] +#define acs_plus CUR Strings[410] +#define memory_lock CUR Strings[411] +#define memory_unlock CUR Strings[412] +#define box_chars_1 CUR Strings[413] +#endif /* __INTERNAL_CAPS_VISIBLE */ + + +/* + * Predefined terminfo array sizes + */ +#define BOOLCOUNT 44 +#define NUMCOUNT 39 +#define STRCOUNT 414 + +/* used by code for comparing entries */ +#define acs_chars_index 146 + +typedef struct termtype { /* in-core form of terminfo data */ + char *term_names; /* str_table offset of term names */ + char *str_table; /* pointer to string table */ + NCURSES_SBOOL *Booleans; /* array of boolean values */ + short *Numbers; /* array of integer values */ + char **Strings; /* array of string offsets */ + +#if NCURSES_XNAMES + char *ext_str_table; /* pointer to extended string table */ + char **ext_Names; /* corresponding names */ + + unsigned short num_Booleans;/* count total Booleans */ + unsigned short num_Numbers; /* count total Numbers */ + unsigned short num_Strings; /* count total Strings */ + + unsigned short ext_Booleans;/* count extensions to Booleans */ + unsigned short ext_Numbers; /* count extensions to Numbers */ + unsigned short ext_Strings; /* count extensions to Strings */ +#endif /* NCURSES_XNAMES */ + +} TERMTYPE; + +/* + * The only reason these structures are visible is for read-only use. + * Programs which modify the data are not, never were, portable across + * curses implementations. + * + * The first field in TERMINAL is used in macros. + * The remaining fields are private. + */ +#ifdef NCURSES_INTERNALS + +#undef TERMINAL +#define TERMINAL struct term +TERMINAL; + +typedef struct termtype2 { /* in-core form of terminfo data */ + char *term_names; /* str_table offset of term names */ + char *str_table; /* pointer to string table */ + NCURSES_SBOOL *Booleans; /* array of boolean values */ + int *Numbers; /* array of integer values */ + char **Strings; /* array of string offsets */ + +#if NCURSES_XNAMES + char *ext_str_table; /* pointer to extended string table */ + char **ext_Names; /* corresponding names */ + + unsigned short num_Booleans;/* count total Booleans */ + unsigned short num_Numbers; /* count total Numbers */ + unsigned short num_Strings; /* count total Strings */ + + unsigned short ext_Booleans;/* count extensions to Booleans */ + unsigned short ext_Numbers; /* count extensions to Numbers */ + unsigned short ext_Strings; /* count extensions to Strings */ +#endif /* NCURSES_XNAMES */ + +} TERMTYPE2; +#else + +typedef struct term { /* describe an actual terminal */ + TERMTYPE type; /* terminal type description */ +} TERMINAL; + +#endif /* NCURSES_INTERNALS */ + + +#if 0 && !0 +extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term; +#elif 0 +NCURSES_WRAPPED_VAR(TERMINAL *, cur_term); +#define cur_term NCURSES_PUBLIC_VAR(cur_term()) +#else +extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term; +#endif + +#if 0 || 0 +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames); + +#define boolnames NCURSES_PUBLIC_VAR(boolnames()) +#define boolcodes NCURSES_PUBLIC_VAR(boolcodes()) +#define boolfnames NCURSES_PUBLIC_VAR(boolfnames()) +#define numnames NCURSES_PUBLIC_VAR(numnames()) +#define numcodes NCURSES_PUBLIC_VAR(numcodes()) +#define numfnames NCURSES_PUBLIC_VAR(numfnames()) +#define strnames NCURSES_PUBLIC_VAR(strnames()) +#define strcodes NCURSES_PUBLIC_VAR(strcodes()) +#define strfnames NCURSES_PUBLIC_VAR(strfnames()) + +#else + +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[]; + +#endif + +/* + * These entrypoints are used only by the ncurses utilities such as tic. + */ +#ifdef NCURSES_INTERNALS + +extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf); +extern NCURSES_EXPORT(int) _nc_read_entry2 (const char * const, char * const, TERMTYPE2 *const); +extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE2 *); +extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE2 *, char *, int); +extern NCURSES_EXPORT(char *) _nc_first_name (const char *const); +extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const); +extern NCURSES_EXPORT(char *) _nc_tiparm(int, const char *, ...); + +#endif /* NCURSES_INTERNALS */ + + +/* + * These entrypoints are used by tack 1.07. + */ +extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *); +extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const); + +/* + * Normal entry points + */ +extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *); +extern NCURSES_EXPORT(int) del_curterm (TERMINAL *); + +/* miscellaneous entry points */ +extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *); +extern NCURSES_EXPORT(int) setupterm (const char *,int,int *); + +/* terminfo entry points, also declared in curses.h */ +#if !defined(__NCURSES_H) +extern NCURSES_EXPORT(char *) tigetstr (const char *); +extern NCURSES_EXPORT_VAR(char) ttytype[]; +extern NCURSES_EXPORT(int) putp (const char *); +extern NCURSES_EXPORT(int) tigetflag (const char *); +extern NCURSES_EXPORT(int) tigetnum (const char *); + +#if 1 /* NCURSES_TPARM_VARARGS */ +extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ +#else +extern NCURSES_EXPORT(char *) tparm (const char *, long,long,long,long,long,long,long,long,long); /* special */ +#endif + +extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ + +#endif /* __NCURSES_H */ + +/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */ +#if !defined(NCURSES_TERMCAP_H_incl) +extern NCURSES_EXPORT(char *) tgetstr (const char *, char **); +extern NCURSES_EXPORT(char *) tgoto (const char *, int, int); +extern NCURSES_EXPORT(int) tgetent (char *, const char *); +extern NCURSES_EXPORT(int) tgetflag (const char *); +extern NCURSES_EXPORT(int) tgetnum (const char *); +extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int)); +#endif /* NCURSES_TERMCAP_H_incl */ + +/* + * Include curses.h before term.h to enable these extensions. + */ +#if defined(NCURSES_SP_FUNCS) && (NCURSES_SP_FUNCS != 0) + +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tigetstr) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(putp) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetflag) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetnum) (SCREEN*, const char *); + +#if 1 /* NCURSES_TPARM_VARARGS */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, ...); /* special */ +#else +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, long,long,long,long,long,long,long,long,long); /* special */ +#endif + +/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgetstr) (SCREEN*, const char *, char **); +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgoto) (SCREEN*, const char *, int, int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetent) (SCREEN*, char *, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetflag) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetnum) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tputs) (SCREEN*, const char *, int, NCURSES_SP_OUTC); + +extern NCURSES_EXPORT(TERMINAL *) NCURSES_SP_NAME(set_curterm) (SCREEN*, TERMINAL *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(del_curterm) (SCREEN*, TERMINAL *); + +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(restartterm) (SCREEN*, NCURSES_CONST char *, int, int *); +#endif /* NCURSES_SP_FUNCS */ + +/* + * Debugging features. + */ +extern GCC_NORETURN NCURSES_EXPORT(void) exit_terminfo(int); + +#ifdef __cplusplus +} +#endif + +#endif /* NCURSES_TERM_H_incl */ diff --git a/third_party/ncurses/term.priv.h b/third_party/ncurses/term.priv.h new file mode 100644 index 000000000..57a12bd33 --- /dev/null +++ b/third_party/ncurses/term.priv.h @@ -0,0 +1,335 @@ +/**************************************************************************** + * Copyright 2021 Thomas E. Dickey * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/* + * $Id: term.priv.h,v 1.7 2021/11/20 23:33:33 tom Exp $ + * + * term.priv.h + * + * Header file for terminfo library objects which are private to + * the library. + * + */ + +#ifndef _TERM_PRIV_H +#define _TERM_PRIV_H 1 +/* *INDENT-OFF* */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ncurses_cfg.h" + +#undef NCURSES_OPAQUE +#define NCURSES_INTERNALS 1 +#define NCURSES_OPAQUE 0 + +#include /* PATH_MAX */ +#include /* sig_atomic_t */ +#include /* time_t */ +#include "term.h" /* time_t */ + +#ifdef USE_PTHREADS +#if USE_REENTRANT +#include +#endif +#endif + +/* + * State of tparm(). + */ +#define STACKSIZE 20 + +typedef struct { + union { + int num; + char * str; + } data; + bool num_type; +} STACK_FRAME; + +#define NUM_VARS 26 + +typedef struct { + const char * tparam_base; + + STACK_FRAME stack[STACKSIZE]; + int stack_ptr; + + char * out_buff; + size_t out_size; + size_t out_used; + + char * fmt_buff; + size_t fmt_size; + + int static_vars[NUM_VARS]; +#ifdef TRACE + const char * tname; +#endif +} TPARM_STATE; + +typedef struct { + char * text; + size_t size; +} TRACEBUF; + +typedef struct { + const char * name; + char * value; +} ITERATOR_VARS; + +/* + * Internals for term.h + */ +typedef struct term { /* describe an actual terminal */ + TERMTYPE type; /* terminal type description */ + short Filedes; /* file description being written to */ + TTY Ottyb; /* original state of the terminal */ + TTY Nttyb; /* current state of the terminal */ + int _baudrate; /* used to compute padding */ + char * _termname; /* used for termname() */ + TPARM_STATE tparm_state; +#if NCURSES_EXT_COLORS + TERMTYPE2 type2; /* extended terminal type description */ +#endif +#undef TERMINAL +} TERMINAL; + +/* + * Internals for soft-keys + */ +typedef struct { + WINDOW * win; /* the window used in the hook */ + int line; /* lines to take, < 0 => from bottom*/ + int (*hook)(WINDOW *, int); /* callback for user */ +} ripoff_t; + +/* + * Internals for tgetent + */ +typedef struct { + long sequence; + bool last_used; + char * fix_sgr0; /* this holds the filtered sgr0 string */ + char * last_bufp; /* help with fix_sgr0 leak */ + TERMINAL * last_term; +} TGETENT_CACHE; + +#define TGETENT_MAX 4 + +#include "term_entry.h" /* dbdLAST */ + +#ifdef USE_TERM_DRIVER +struct DriverTCB; /* Terminal Control Block forward declaration */ +#endif + +/* + * Global data which is not specific to a screen. + */ +typedef struct { + SIG_ATOMIC_T have_sigtstp; + SIG_ATOMIC_T have_sigwinch; + SIG_ATOMIC_T cleanup_nested; + + bool init_signals; + bool init_screen; + + char * comp_sourcename; + char * comp_termtype; + + bool have_tic_directory; + bool keep_tic_directory; + const char * tic_directory; + + char * dbi_list; + int dbi_size; + + char * first_name; + char ** keyname_table; + int init_keyname; + + int slk_format; + + int getstr_limit; /* getstr_limit based on POSIX LINE_MAX */ + + char * safeprint_buf; + size_t safeprint_used; + + TGETENT_CACHE tgetent_cache[TGETENT_MAX]; + int tgetent_index; + long tgetent_sequence; + int terminal_count; + + char * dbd_blob; /* string-heap for dbd_list[] */ + char ** dbd_list; /* distinct places to look for data */ + int dbd_size; /* length of dbd_list[] */ + time_t dbd_time; /* cache last updated */ + ITERATOR_VARS dbd_vars[dbdLAST]; + +#if HAVE_TSEARCH + void * cached_tparm; + int count_tparm; +#endif /* HAVE_TSEARCH */ + +#ifdef USE_TERM_DRIVER + int (*term_driver)(struct DriverTCB*, const char*, int*); +#endif + +#define WINDOWLIST struct _win_list + +#ifndef USE_SP_WINDOWLIST + WINDOWLIST * _nc_windowlist; +#define WindowList(sp) _nc_globals._nc_windowlist +#endif + +#if USE_HOME_TERMINFO + char * home_terminfo; +#endif + +#if !USE_SAFE_SPRINTF + int safeprint_cols; + int safeprint_rows; +#endif + +#ifdef USE_PTHREADS + pthread_mutex_t mutex_curses; + pthread_mutex_t mutex_prescreen; + pthread_mutex_t mutex_screen; + pthread_mutex_t mutex_update; + pthread_mutex_t mutex_tst_tracef; + pthread_mutex_t mutex_tracef; + int nested_tracef; + int use_pthreads; +#define _nc_use_pthreads _nc_globals.use_pthreads +#if USE_PTHREADS_EINTR + pthread_t read_thread; /* The reading thread */ +#endif +#endif +#if USE_WIDEC_SUPPORT + char key_name[MB_LEN_MAX + 1]; +#endif + +#ifdef TRACE + bool trace_opened; + char trace_fname[PATH_MAX]; + int trace_level; + FILE * trace_fp; + int trace_fd; + + char * tracearg_buf; + size_t tracearg_used; + + TRACEBUF * tracebuf_ptr; + size_t tracebuf_used; + + char tracechr_buf[40]; + + char * tracedmp_buf; + size_t tracedmp_used; + + unsigned char * tracetry_buf; + size_t tracetry_used; + + char traceatr_color_buf[2][80]; + int traceatr_color_sel; + int traceatr_color_last; +#if !defined(USE_PTHREADS) && USE_REENTRANT + int nested_tracef; +#endif +#endif /* TRACE */ + +#if NO_LEAKS + bool leak_checking; +#endif +} NCURSES_GLOBALS; + +extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals; + +#define N_RIPS 5 + +#ifdef USE_PTHREADS +typedef struct _prescreen_list { + struct _prescreen_list *next; + pthread_t id; + struct screen * sp; +} PRESCREEN_LIST; +#endif + +/* + * Global data which can be swept up into a SCREEN when one is created. + * It may be modified before the next SCREEN is created. + */ +typedef struct { +#ifdef USE_PTHREADS + PRESCREEN_LIST *allocated; +#else + struct screen * allocated; +#endif + bool use_env; + bool filter_mode; + attr_t previous_attr; + TPARM_STATE tparm_state; + TTY * saved_tty; /* savetty/resetty information */ + bool use_tioctl; + NCURSES_SP_OUTC _outch; /* output handler if not putc */ +#ifndef USE_SP_RIPOFF + ripoff_t rippedoff[N_RIPS]; + ripoff_t * rsp; +#endif +#if NCURSES_NO_PADDING + bool _no_padding; /* flag to set if padding disabled */ +#endif +#if BROKEN_LINKER || USE_REENTRANT + chtype * real_acs_map; + int _LINES; + int _COLS; + int _TABSIZE; + int _ESCDELAY; + TERMINAL * _cur_term; +#endif +#ifdef TRACE +#if BROKEN_LINKER || USE_REENTRANT + long _outchars; + const char * _tputs_trace; +#endif +#endif +} NCURSES_PRESCREEN; + +extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen; + +extern NCURSES_EXPORT(void) _nc_free_tparm(TERMINAL*); + +#ifdef __cplusplus +} +#endif + +/* *INDENT-ON* */ + +#endif /* _TERM_PRIV_H */ diff --git a/third_party/ncurses/term_entry.h b/third_party/ncurses/term_entry.h new file mode 100644 index 000000000..34f783521 --- /dev/null +++ b/third_party/ncurses/term_entry.h @@ -0,0 +1,239 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2015,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1998-on * + ****************************************************************************/ + +/* $Id: term_entry.h,v 1.63 2022/09/24 15:04:59 tom Exp $ */ + +/* + * term_entry.h -- interface to entry-manipulation code + */ + +#ifndef NCURSES_TERM_ENTRY_H_incl +#define NCURSES_TERM_ENTRY_H_incl 1 +/* *INDENT-OFF* */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "curses.h" +#include "term.h" + +/* + * These macros may be used by programs that know about TERMTYPE: + */ +#if NCURSES_XNAMES +#define NUM_BOOLEANS(tp) (tp)->num_Booleans +#define NUM_NUMBERS(tp) (tp)->num_Numbers +#define NUM_STRINGS(tp) (tp)->num_Strings +#define EXT_NAMES(tp,i,limit,index,table) (i >= limit) ? tp->ext_Names[index] : table[i] +#else +#define NUM_BOOLEANS(tp) BOOLCOUNT +#define NUM_NUMBERS(tp) NUMCOUNT +#define NUM_STRINGS(tp) STRCOUNT +#define EXT_NAMES(tp,i,limit,index,table) table[i] +#endif + +#define NUM_EXT_NAMES(tp) (unsigned) ((tp)->ext_Booleans + (tp)->ext_Numbers + (tp)->ext_Strings) + +#define for_each_boolean(n,tp) for(n = 0; n < NUM_BOOLEANS(tp); n++) +#define for_each_number(n,tp) for(n = 0; n < NUM_NUMBERS(tp); n++) +#define for_each_string(n,tp) for(n = 0; n < NUM_STRINGS(tp); n++) + +#if NCURSES_XNAMES +#define for_each_ext_boolean(n,tp) for(n = BOOLCOUNT; (int) n < (int) NUM_BOOLEANS(tp); n++) +#define for_each_ext_number(n,tp) for(n = NUMCOUNT; (int) n < (int) NUM_NUMBERS(tp); n++) +#define for_each_ext_string(n,tp) for(n = STRCOUNT; (int) n < (int) NUM_STRINGS(tp); n++) +#endif + +#define ExtBoolname(tp,i,names) EXT_NAMES(tp, i, BOOLCOUNT, (i - (tp->num_Booleans - tp->ext_Booleans)), names) +#define ExtNumname(tp,i,names) EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names) +#define ExtStrname(tp,i,names) EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names) + +/* + * The remaining type-definitions and macros are used only internally by the + * ncurses utilities. + */ +#ifdef NCURSES_INTERNALS + +/* + * see db_iterator.c - this enumeration lists the places searched for a + * terminal description and defines the order in which they are searched. + */ +typedef enum { + dbdTIC = 0, /* special, used by tic when writing entry */ +#if NCURSES_USE_DATABASE + dbdEnvOnce, /* the $TERMINFO environment variable */ + dbdHome, /* $HOME/.terminfo */ + dbdEnvList, /* the $TERMINFO_DIRS environment variable */ + dbdCfgList, /* the compiled-in TERMINFO_DIRS value */ + dbdCfgOnce, /* the compiled-in TERMINFO value */ +#endif +#if NCURSES_USE_TERMCAP + dbdEnvOnce2, /* the $TERMCAP environment variable */ + dbdEnvList2, /* the $TERMPATH environment variable */ + dbdCfgList2, /* the compiled-in TERMPATH */ +#endif + dbdLAST +} DBDIRS; + +#define MAX_USES 32 +#define MAX_CROSSLINKS 16 + +typedef struct entry ENTRY; + +typedef struct { + char *name; + ENTRY *link; + long line; +} ENTRY_USES; + +struct entry { + TERMTYPE2 tterm; + unsigned nuses; + ENTRY_USES uses[MAX_USES]; + int ncrosslinks; + ENTRY *crosslinks[MAX_CROSSLINKS]; + long cstart; + long cend; + long startline; + ENTRY *next; + ENTRY *last; +}; + +extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head; +extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail; +#define for_entry_list(qp) for (qp = _nc_head; qp; qp = qp->next) +#define for_entry_list2(qp,q0) for (qp = q0; qp; qp = qp->next) + +#define MAX_LINE 132 + +#define NULLHOOK (bool(*)(ENTRY *))0 + +/* + * Note that WANTED and PRESENT are not simple inverses! If a capability + * has been explicitly cancelled, it is not considered WANTED. + */ +#define WANTED(s) ((s) == ABSENT_STRING) +#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING)) + +#define ANDMISSING(p,q) \ + { \ + if (PRESENT(p) && !PRESENT(q)) \ + _nc_warning(#p " but no " #q); \ + } + +#define PAIRED(p,q) \ + { \ + if (PRESENT(q) && !PRESENT(p)) \ + _nc_warning(#q " but no " #p); \ + if (PRESENT(p) && !PRESENT(q)) \ + _nc_warning(#p " but no " #q); \ + } + +/* + * These entrypoints are used only by the ncurses utilities such as tic. + */ + +/* alloc_entry.c: elementary allocation code */ +extern NCURSES_EXPORT(ENTRY *) _nc_copy_entry (ENTRY *oldp); +extern NCURSES_EXPORT(char *) _nc_save_str (const char *const); +extern NCURSES_EXPORT(void) _nc_init_entry (ENTRY *const); +extern NCURSES_EXPORT(void) _nc_merge_entry (ENTRY *const, ENTRY *const); +extern NCURSES_EXPORT(void) _nc_wrap_entry (ENTRY *const, bool); + +/* alloc_ttype.c: elementary allocation code */ +extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE2 *, TERMTYPE2 *); + +/* free_ttype.c: elementary allocation code */ +extern NCURSES_EXPORT(void) _nc_free_termtype1 (TERMTYPE *); +extern NCURSES_EXPORT(void) _nc_free_termtype2 (TERMTYPE2 *); + +/* lib_termcap.c: trim sgr0 string for termcap users */ +extern NCURSES_EXPORT(char *) _nc_trim_sgr0 (TERMTYPE2 *); + +/* parse_entry.c: entry-parsing code */ +#if NCURSES_XNAMES +extern NCURSES_EXPORT_VAR(bool) _nc_user_definable; +extern NCURSES_EXPORT_VAR(bool) _nc_disable_period; +#endif +extern NCURSES_EXPORT(int) _nc_parse_entry (ENTRY *, int, bool); +extern NCURSES_EXPORT(int) _nc_capcmp (const char *, const char *); + +/* write_entry.c: writing an entry to the file system */ +extern NCURSES_EXPORT(void) _nc_set_writedir (const char *); +extern NCURSES_EXPORT(void) _nc_write_entry (TERMTYPE2 *const); +extern NCURSES_EXPORT(int) _nc_write_object (TERMTYPE2 *, char *, unsigned *, unsigned); + +/* comp_parse.c: entry list handling */ +extern NCURSES_EXPORT(void) _nc_read_entry_source (FILE*, char*, int, bool, bool (*)(ENTRY*)); +extern NCURSES_EXPORT(bool) _nc_entry_match (char *, char *); +extern NCURSES_EXPORT(int) _nc_resolve_uses (bool); /* obs 20040705 */ +extern NCURSES_EXPORT(int) _nc_resolve_uses2 (bool, bool); +extern NCURSES_EXPORT(void) _nc_free_entries (ENTRY *); +extern NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */ +extern NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2)(TERMTYPE2 *, bool); + +/* trace_xnames.c */ +extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *); + +#endif /* NCURSES_INTERNALS */ + +/* + * These entrypoints were used by tack before 1.08. + */ + +#undef NCURSES_TACK_1_08 +#ifdef NCURSES_INTERNALS +#define NCURSES_TACK_1_08 /* nothing */ +#else +#define NCURSES_TACK_1_08 GCC_DEPRECATED("upgrade to tack 1.08") +#endif + +/* alloc_ttype.c: elementary allocation code */ +extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, const TERMTYPE *) NCURSES_TACK_1_08; + +/* lib_acs.c */ +extern NCURSES_EXPORT(void) _nc_init_acs (void) NCURSES_TACK_1_08; /* corresponds to traditional 'init_acs()' */ + +/* free_ttype.c: elementary allocation code */ +extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *) NCURSES_TACK_1_08; + +#ifdef __cplusplus +} +#endif + +/* *INDENT-ON* */ + +#endif /* NCURSES_TERM_ENTRY_H_incl */ diff --git a/third_party/ncurses/termcap.h b/third_party/ncurses/termcap.h new file mode 100644 index 000000000..531e39769 --- /dev/null +++ b/third_party/ncurses/termcap.h @@ -0,0 +1,73 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2000,2001 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* $Id: termcap.h.in,v 1.20 2021/06/17 21:26:02 tom Exp $ */ + +#ifndef NCURSES_TERMCAP_H_incl +#define NCURSES_TERMCAP_H_incl 1 + +#undef NCURSES_VERSION +#define NCURSES_VERSION "6.4" + +#include "ncurses_dll.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include + +#undef NCURSES_OSPEED +#define NCURSES_OSPEED short + +extern NCURSES_EXPORT_VAR(char) PC; +extern NCURSES_EXPORT_VAR(char *) UP; +extern NCURSES_EXPORT_VAR(char *) BC; +extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed; + +#if !defined(NCURSES_TERM_H_incl) +extern NCURSES_EXPORT(char *) tgetstr (const char *, char **); +extern NCURSES_EXPORT(char *) tgoto (const char *, int, int); +extern NCURSES_EXPORT(int) tgetent (char *, const char *); +extern NCURSES_EXPORT(int) tgetflag (const char *); +extern NCURSES_EXPORT(int) tgetnum (const char *); +extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int)); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* NCURSES_TERMCAP_H_incl */ diff --git a/third_party/ncurses/tic.h b/third_party/ncurses/tic.h new file mode 100644 index 000000000..9b20610e9 --- /dev/null +++ b/third_party/ncurses/tic.h @@ -0,0 +1,396 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2012,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996 on * + ****************************************************************************/ + +/* + * $Id: tic.h,v 1.86 2022/09/17 16:01:45 tom Exp $ + * tic.h - Global variables and structures for the terminfo compiler. + */ + +#ifndef __TIC_H +#define __TIC_H +/* *INDENT-OFF* */ +#ifdef __cplusplus +extern "C" { +#endif + +#include "ncurses_cfg.h" + +#include "curses.h" /* for the _tracef() prototype, ERR/OK, bool defs */ + +/* +** The format of SVr2 compiled terminfo files is as follows: +** +** Header (12 bytes), containing information given below +** Names Section, containing the names of the terminal +** Boolean Section, containing the values of all of the +** boolean capabilities +** A null byte may be inserted here to make +** sure that the Number Section begins on an +** even word boundary. +** Number Section, containing the values of all of the numeric +** capabilities, each as a short integer +** String Section, containing short integer offsets into the +** String Table, one per string capability +** String Table, containing the actual characters of the string +** capabilities. +** +** In the SVr2 format, "short" means signed 16-bit numbers, which is sometimes +** inconvenient. The numbers are signed, to provide for absent and canceled +** values. ncurses6.1 introduced an extension to this compiled format, by +** making the Number Section a list of signed 32-bit integers. +** +** NOTE that all short integers in the file are stored using VAX/PDP-style +** byte-order, i.e., least-significant byte first. +** +** There is no structure definition here because it would only confuse +** matters. Terminfo format is a raw byte layout, not a structure +** dump. If you happen to be on a little-endian machine with 16-bit +** shorts that requires no padding between short members in a struct, +** then there is a natural C structure that captures the header, but +** not very helpfully. +*/ + +#define MAGIC 0432 /* first two bytes of a compiled entry */ +#define MAGIC2 01036 /* first two bytes of a compiled 32-bit entry */ + +#undef BYTE +#define BYTE(p,n) (unsigned char)((p)[n]) + +#define IS_NEG1(p) ((BYTE(p,0) == 0377) && (BYTE(p,1) == 0377)) +#define IS_NEG2(p) ((BYTE(p,0) == 0376) && (BYTE(p,1) == 0377)) +#define LOW_MSB(p) (BYTE(p,0) + 256*BYTE(p,1)) + +#define IS_TIC_MAGIC(p) (LOW_MSB(p) == MAGIC || LOW_MSB(p) == MAGIC2) + +#define quick_prefix(s) (!strncmp((s), "b64:", (size_t)4) || !strncmp((s), "hex:", (size_t)4)) + +/* + * The "maximum" here is misleading; XSI guarantees minimum values, which a + * given implementation may exceed. + */ +#define MAX_NAME_SIZE 512 /* maximum legal name field size (XSI:127) */ +#define MAX_ENTRY_SIZE1 4096 /* maximum legal entry size (SVr2) */ +#define MAX_ENTRY_SIZE2 32768 /* maximum legal entry size (ncurses6.1) */ + +#if NCURSES_EXT_COLORS && HAVE_INIT_EXTENDED_COLOR +#define MAX_ENTRY_SIZE MAX_ENTRY_SIZE2 +#else +#define MAX_ENTRY_SIZE MAX_ENTRY_SIZE1 +#endif + +/* + * The maximum size of individual name or alias is guaranteed in XSI to be at + * least 14, since that corresponds to the older filename lengths. Newer + * systems allow longer aliases, though not many terminal descriptions are + * written to use them. The MAX_ALIAS symbol is used for warnings. + */ +#if HAVE_LONG_FILE_NAMES +#define MAX_ALIAS 32 /* smaller than POSIX minimum for PATH_MAX */ +#else +#define MAX_ALIAS 14 /* SVr3 filename length */ +#endif + +/* location of user's personal info directory */ +#define PRIVATE_INFO "%s/.terminfo" /* plug getenv("HOME") into %s */ + +/* + * Some traces are designed to be used via tic's verbose option (and similar in + * infocmp and toe) rather than the 'trace()' function. So we use the bits + * above the normal trace() parameter as a debug-level. + */ + +#define MAX_DEBUG_LEVEL 15 +#define DEBUG_LEVEL(n) ((n) << TRACE_SHIFT) + +#define set_trace_level(n) \ + _nc_tracing &= TRACE_MAXIMUM, \ + _nc_tracing |= DEBUG_LEVEL(n) + +#ifdef TRACE +#define DEBUG(n, a) if (_nc_tracing >= DEBUG_LEVEL(n)) _tracef a +#else +#define DEBUG(n, a) /*nothing*/ +#endif + +/* + * These are the types of tokens returned by the scanner. The first + * three are also used in the hash table of capability names. The scanner + * returns one of these values after loading the specifics into the global + * structure curr_token. + */ + +#define BOOLEAN 0 /* Boolean capability */ +#define NUMBER 1 /* Numeric capability */ +#define STRING 2 /* String-valued capability */ +#define CANCEL 3 /* Capability to be cancelled in following tc's */ +#define NAMES 4 /* The names for a terminal type */ +#define UNDEF 5 /* Undefined */ + +#define NO_PUSHBACK -1 /* used in pushtype to indicate no pushback */ + +/* + * The global structure in which the specific parts of a + * scanned token are returned. + */ + +struct token +{ + char *tk_name; /* name of capability */ + int tk_valnumber; /* value of capability (if a number) */ + char *tk_valstring; /* value of capability (if a string) */ +}; + +/* + * Offsets to string capabilities, with the corresponding functionkey codes. + */ +struct tinfo_fkeys { + unsigned offset; + chtype code; + }; + +typedef short HashValue; + +/* + * The file comp_captab.c contains an array of these structures, one per + * possible capability. These are indexed by a hash table array of pointers to + * the same structures for use by the parser. + */ +struct name_table_entry +{ + const char *nte_name; /* name to hash on */ + int nte_type; /* BOOLEAN, NUMBER or STRING */ + HashValue nte_index; /* index of associated variable in its array */ + HashValue nte_link; /* index in table of next hash, or -1 */ +}; + +/* + * Use this structure to hide differences between terminfo and termcap tables. + */ +typedef struct { + unsigned table_size; + const HashValue *table_data; + HashValue (*hash_of)(const char *); + int (*compare_names)(const char *, const char *); +} HashData; + +struct alias +{ + const char *from; + const char *to; + const char *source; +}; + +#define NOTFOUND ((struct name_table_entry *) 0) + +/* + * The file comp_userdefs.c contains an array of these structures, one per + * possible capability. These are indexed by a hash table array of pointers to + * the same structures for use by the parser. + */ +struct user_table_entry +{ + const char *ute_name; /* name to hash on */ + int ute_type; /* mask (BOOLEAN, NUMBER, STRING) */ + unsigned ute_argc; /* number of parameters */ + unsigned ute_args; /* bit-mask for string parameters */ + HashValue ute_index; /* index of associated variable in its array */ + HashValue ute_link; /* index in table of next hash, or -1 */ +}; + +/* + * The casts are required for correct sign-propagation with systems such as + * AIX, IRIX64, Solaris which default to unsigned characters. The C standard + * leaves this detail unspecified. + */ + +/* out-of-band values for representing absent capabilities */ +#define ABSENT_BOOLEAN ((signed char)-1) /* 255 */ +#define ABSENT_NUMERIC (-1) +#define ABSENT_STRING (char *)0 + +/* out-of-band values for representing cancels */ +#define CANCELLED_BOOLEAN ((signed char)-2) /* 254 */ +#define CANCELLED_NUMERIC (-2) +#define CANCELLED_STRING (char *)(-1) + +#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */ +#define VALID_NUMERIC(s) ((s) >= 0) +#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING) + +/* termcap entries longer than this may break old binaries */ +#define MAX_TERMCAP_LENGTH 1023 + +/* this is a documented limitation of terminfo */ +#define MAX_TERMINFO_LENGTH 4096 + +#ifndef TERMINFO +#define TERMINFO "/usr/share/terminfo" +#endif + +#ifdef NCURSES_TERM_ENTRY_H_incl + +/* + * These entrypoints are used only by the ncurses utilities such as tic. + */ +#ifdef NCURSES_INTERNALS +/* access.c */ +extern NCURSES_EXPORT(unsigned) _nc_pathlast (const char *); +extern NCURSES_EXPORT(bool) _nc_is_abs_path (const char *); +extern NCURSES_EXPORT(bool) _nc_is_dir_path (const char *); +extern NCURSES_EXPORT(bool) _nc_is_file_path (const char *); +extern NCURSES_EXPORT(char *) _nc_basename (char *); +extern NCURSES_EXPORT(char *) _nc_rootname (char *); + +/* comp_captab.c */ +extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool); +extern NCURSES_EXPORT(const HashData *) _nc_get_hash_info (bool); +extern NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool); + +/* comp_hash.c: name lookup */ +extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry + (const char *, int, bool); +extern NCURSES_EXPORT(struct user_table_entry const *) _nc_find_user_entry + (const char *); + +/* comp_scan.c: lexical analysis */ +extern NCURSES_EXPORT(int) _nc_get_token (bool); +extern NCURSES_EXPORT(void) _nc_panic_mode (char); +extern NCURSES_EXPORT(void) _nc_push_token (int); +extern NCURSES_EXPORT_VAR(int) _nc_curr_col; +extern NCURSES_EXPORT_VAR(int) _nc_curr_line; +extern NCURSES_EXPORT_VAR(int) _nc_syntax; +extern NCURSES_EXPORT_VAR(int) _nc_strict_bsd; +extern NCURSES_EXPORT_VAR(long) _nc_comment_end; +extern NCURSES_EXPORT_VAR(long) _nc_comment_start; +extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos; +extern NCURSES_EXPORT_VAR(long) _nc_start_line; +#define SYN_TERMINFO 0 +#define SYN_TERMCAP 1 + +/* comp_error.c: warning & abort messages */ +extern NCURSES_EXPORT(const char *) _nc_get_source (void); +extern GCC_NORETURN NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2); +extern NCURSES_EXPORT(void) _nc_get_type (char *name); +extern NCURSES_EXPORT(void) _nc_set_source (const char *const); +extern NCURSES_EXPORT(void) _nc_set_type (const char *const); +extern GCC_NORETURN NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2); +extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2); +extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings; + +/* comp_scan.c */ +extern NCURSES_EXPORT_VAR(struct token) _nc_curr_token; + +/* comp_userdefs.c */ +NCURSES_EXPORT(const struct user_table_entry *) _nc_get_userdefs_table (void); +NCURSES_EXPORT(const HashData *) _nc_get_hash_user (void); + +/* captoinfo.c: capability conversion */ +extern NCURSES_EXPORT(char *) _nc_captoinfo (const char *, const char *, int const); +extern NCURSES_EXPORT(char *) _nc_infotocap (const char *, const char *, int const); + +/* home_terminfo.c */ +extern NCURSES_EXPORT(char *) _nc_home_terminfo (void); + +/* init_keytry.c */ +#if BROKEN_LINKER +#define _nc_tinfo_fkeys _nc_tinfo_fkeysf() +extern NCURSES_EXPORT(const struct tinfo_fkeys *) _nc_tinfo_fkeysf (void); +#else +extern NCURSES_EXPORT_VAR(const struct tinfo_fkeys) _nc_tinfo_fkeys[]; +#endif + +/* lib_tparm.c */ +#define NUM_PARM 9 + +extern NCURSES_EXPORT_VAR(int) _nc_tparm_err; + +extern NCURSES_EXPORT(int) _nc_tparm_analyze(TERMINAL *, const char *, char **, int *); +extern NCURSES_EXPORT(void) _nc_reset_tparm(TERMINAL *); + +/* lib_trace.c */ +extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing; +extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *); +extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *); + +/* lib_tputs.c */ +extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */ + +/* comp_main.c: compiler main */ +extern const char * _nc_progname; + +/* db_iterator.c */ +extern NCURSES_EXPORT(const char *) _nc_next_db(DBDIRS *, int *); +extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *); +extern NCURSES_EXPORT(void) _nc_first_db(DBDIRS *, int *); +extern NCURSES_EXPORT(void) _nc_last_db(void); + +/* write_entry.c */ +extern NCURSES_EXPORT(int) _nc_tic_written (void); + +#endif /* NCURSES_INTERNALS */ + +/* + * These entrypoints were used by tack before 1.08. + */ + +#undef NCURSES_TACK_1_08 +#ifdef NCURSES_INTERNALS +#define NCURSES_TACK_1_08 /* nothing */ +#else +#define NCURSES_TACK_1_08 GCC_DEPRECATED("upgrade to tack 1.08") +#endif + +/* comp_hash.c: name lookup */ +extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry + (const char *, const HashValue *) NCURSES_TACK_1_08; +extern NCURSES_EXPORT(const HashValue *) _nc_get_hash_table (bool) NCURSES_TACK_1_08; + +/* comp_scan.c: lexical analysis */ +extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *) NCURSES_TACK_1_08; + +/* comp_expand.c: expand string into readable form */ +extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int) NCURSES_TACK_1_08; + +/* comp_scan.c: decode string from readable form */ +extern NCURSES_EXPORT(int) _nc_trans_string (char *, char *) NCURSES_TACK_1_08; + +#endif /* NCURSES_TERM_ENTRY_H_incl */ + +#ifdef __cplusplus +} +#endif + +/* *INDENT-ON* */ +#endif /* __TIC_H */ diff --git a/third_party/ncurses/trace_buf.c b/third_party/ncurses/trace_buf.c new file mode 100644 index 000000000..d37e5844c --- /dev/null +++ b/third_party/ncurses/trace_buf.c @@ -0,0 +1,121 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997-on * + ****************************************************************************/ +/* + * trace_buf.c - Tracing/Debugging buffers (attributes) + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: trace_buf.c,v 1.21 2020/02/02 23:34:34 tom Exp $") + +#ifdef TRACE + +#define MyList _nc_globals.tracebuf_ptr +#define MySize _nc_globals.tracebuf_used + +static char * +_nc_trace_alloc(int bufnum, size_t want) +{ + char *result = 0; + + if (bufnum >= 0) { + if ((size_t) (bufnum + 1) > MySize) { + size_t need = (size_t) (bufnum + 1) * 2; + if ((MyList = typeRealloc(TRACEBUF, need, MyList)) != 0) { + while (need > MySize) + MyList[MySize++].text = 0; + } + } + + if (MyList != 0) { + if (MyList[bufnum].text == 0 + || want > MyList[bufnum].size) { + MyList[bufnum].text = typeRealloc(char, want, MyList[bufnum].text); + if (MyList[bufnum].text != 0) + MyList[bufnum].size = want; + } + result = MyList[bufnum].text; + } + } +#if NO_LEAKS + else { + if (MySize) { + if (MyList) { + while (MySize--) { + if (MyList[MySize].text != 0) { + free(MyList[MySize].text); + } + } + free(MyList); + MyList = 0; + } + MySize = 0; + } + } +#endif + return result; +} + +/* + * (re)Allocate a buffer big enough for the caller's wants. + */ +NCURSES_EXPORT(char *) +_nc_trace_buf(int bufnum, size_t want) +{ + char *result = _nc_trace_alloc(bufnum, want); + if (result != 0) + *result = '\0'; + return result; +} + +/* + * Append a new string to an existing buffer. + */ +NCURSES_EXPORT(char *) +_nc_trace_bufcat(int bufnum, const char *value) +{ + char *buffer = _nc_trace_alloc(bufnum, (size_t) 0); + if (buffer != 0) { + size_t have = strlen(buffer); + size_t need = strlen(value) + have; + + buffer = _nc_trace_alloc(bufnum, 1 + need); + if (buffer != 0) + _nc_STRCPY(buffer + have, value, need); + + } + return buffer; +} +#else +EMPTY_MODULE(_nc_empty_trace_buf) +#endif /* TRACE */ diff --git a/third_party/ncurses/trace_tries.c b/third_party/ncurses/trace_tries.c new file mode 100644 index 000000000..df4d46937 --- /dev/null +++ b/third_party/ncurses/trace_tries.c @@ -0,0 +1,82 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1999-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1999 * + ****************************************************************************/ +/* + * trace_tries.c - Tracing/Debugging buffers (keycode tries-trees) + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: trace_tries.c,v 1.18 2020/02/02 23:34:34 tom Exp $") + +#ifdef TRACE +#define my_buffer _nc_globals.tracetry_buf +#define my_length _nc_globals.tracetry_used + +static void +recur_tries(TRIES * tree, unsigned level) +{ + if (level > my_length) { + my_length = (level + 1) * 4; + my_buffer = (unsigned char *) _nc_doalloc(my_buffer, my_length); + } + + if (my_buffer != 0) { + while (tree != 0) { + if ((my_buffer[level] = tree->ch) == 0) + my_buffer[level] = 128; + my_buffer[level + 1] = 0; + if (tree->value != 0) { + _tracef("%5d: %s (%s)", tree->value, + _nc_visbuf((char *) my_buffer), keyname(tree->value)); + } + if (tree->child) + recur_tries(tree->child, level + 1); + tree = tree->sibling; + } + } +} + +NCURSES_EXPORT(void) +_nc_trace_tries(TRIES * tree) +{ + if ((my_buffer = typeMalloc(unsigned char, my_length = 80)) != 0) { + _tracef("BEGIN tries %p", (void *) tree); + recur_tries(tree, 0); + _tracef(". . . tries %p", (void *) tree); + free(my_buffer); + } +} + +#else +EMPTY_MODULE(_nc_empty_trace_tries) +#endif diff --git a/third_party/ncurses/trace_xnames.c b/third_party/ncurses/trace_xnames.c new file mode 100644 index 000000000..e8f937fc7 --- /dev/null +++ b/third_party/ncurses/trace_xnames.c @@ -0,0 +1,79 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1999-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1999 * + ****************************************************************************/ +/* + * trace_xnames.c - Tracing/Debugging buffers (TERMTYPE extended names) + */ + +#include "curses.priv.h" + +MODULE_ID("$Id: trace_xnames.c,v 1.8 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(void) +_nc_trace_xnames(TERMTYPE *tp GCC_UNUSED) +{ +#ifdef TRACE +#if NCURSES_XNAMES + int limit = tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings; + + if (limit) { + int n; + int begin_num = tp->ext_Booleans; + int begin_str = tp->ext_Booleans + tp->ext_Numbers; + + _tracef("extended names (%s) %d = %d+%d+%d of %d+%d+%d", + tp->term_names, + limit, + tp->ext_Booleans, tp->ext_Numbers, tp->ext_Strings, + tp->num_Booleans, tp->num_Numbers, tp->num_Strings); + + for (n = 0; n < limit; n++) { + int m; + + if ((m = n - begin_str) >= 0) { + _tracef("[%d] %s = %s", n, + tp->ext_Names[n], + _nc_visbuf(tp->Strings[tp->num_Strings + m - tp->ext_Strings])); + } else if ((m = n - begin_num) >= 0) { + _tracef("[%d] %s = %d (num)", n, + tp->ext_Names[n], + tp->Numbers[tp->num_Numbers + m - tp->ext_Numbers]); + } else { + _tracef("[%d] %s = %d (bool)", n, + tp->ext_Names[n], + tp->Booleans[tp->num_Booleans + n - tp->ext_Booleans]); + } + } + } +#endif +#endif +} diff --git a/third_party/ncurses/tries.c b/third_party/ncurses/tries.c new file mode 100644 index 000000000..cf75f87ca --- /dev/null +++ b/third_party/ncurses/tries.c @@ -0,0 +1,146 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1997 * + ****************************************************************************/ + +/* +** tries.c +** +** Functions to manage the tree of partial-completions for keycodes. +** +*/ + +#include "curses.priv.h" + +MODULE_ID("$Id: tries.c,v 1.31 2020/02/02 23:34:34 tom Exp $") + +/* + * Expand a keycode into the string that it corresponds to, returning null if + * no match was found, otherwise allocating a string of the result. + */ +NCURSES_EXPORT(char *) +_nc_expand_try(TRIES * tree, unsigned code, int *count, size_t len) +{ + TRIES *ptr = tree; + char *result = 0; + + if (code != 0) { + while (ptr != 0) { + if ((result = _nc_expand_try(ptr->child, code, count, len + 1)) + != 0) { + break; + } + if (ptr->value == code) { + *count -= 1; + if (*count == -1) { + result = typeCalloc(char, len + 2); + break; + } + } + ptr = ptr->sibling; + } + } + if (result != 0) { + if (ptr != 0 && (result[len] = (char) ptr->ch) == 0) + *((unsigned char *) (result + len)) = 128; +#ifdef TRACE + if (len == 0 && USE_TRACEF(TRACE_MAXIMUM)) { + _tracef("expand_key %s %s", + _nc_tracechar(CURRENT_SCREEN, (int) code), + _nc_visbuf(result)); + _nc_unlock_global(tracef); + } +#endif + } + return result; +} + +/* + * Remove a code from the specified tree, freeing the unused nodes. Returns + * true if the code was found/removed. + */ +NCURSES_EXPORT(int) +_nc_remove_key(TRIES ** tree, unsigned code) +{ + T((T_CALLED("_nc_remove_key(%p,%d)"), (void *) tree, code)); + + if (code == 0) + returnCode(FALSE); + + while (*tree != 0) { + if (_nc_remove_key(&(*tree)->child, code)) { + returnCode(TRUE); + } + if ((*tree)->value == code) { + if ((*tree)->child) { + /* don't cut the whole sub-tree */ + (*tree)->value = 0; + } else { + TRIES *to_free = *tree; + *tree = (*tree)->sibling; + free(to_free); + } + returnCode(TRUE); + } + tree = &(*tree)->sibling; + } + returnCode(FALSE); +} + +/* + * Remove a string from the specified tree, freeing the unused nodes. Returns + * true if the string was found/removed. + */ +NCURSES_EXPORT(int) +_nc_remove_string(TRIES ** tree, const char *string) +{ + T((T_CALLED("_nc_remove_string(%p,%s)"), (void *) tree, _nc_visbuf(string))); + + if (string == 0 || *string == 0) + returnCode(FALSE); + + while (*tree != 0) { + if (UChar((*tree)->ch) == UChar(*string)) { + if (string[1] != 0) + returnCode(_nc_remove_string(&(*tree)->child, string + 1)); + if ((*tree)->child == 0) { + TRIES *to_free = *tree; + *tree = (*tree)->sibling; + free(to_free); + returnCode(TRUE); + } else { + returnCode(FALSE); + } + } + tree = &(*tree)->sibling; + } + returnCode(FALSE); +} diff --git a/third_party/ncurses/trim_sgr0.c b/third_party/ncurses/trim_sgr0.c new file mode 100644 index 000000000..1bd1bd589 --- /dev/null +++ b/third_party/ncurses/trim_sgr0.c @@ -0,0 +1,336 @@ +/**************************************************************************** + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 2005-2012,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas Dickey * + ****************************************************************************/ + +#include "curses.priv.h" + +#include + +#include "tic.h" + +MODULE_ID("$Id: trim_sgr0.c,v 1.21 2021/06/17 21:20:30 tom Exp $") + +#undef CUR +#define CUR tp-> + +#define CSI 233 +#define ESC 033 /* ^[ */ +#define L_BRACK '[' + +static char * +set_attribute_9(TERMTYPE2 *tp, int flag) +{ + const char *value; + char *result; + + value = TIPARM_9(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag); + if (PRESENT(value)) + result = strdup(value); + else + result = 0; + return result; +} + +static int +is_csi(const char *s) +{ + int result = 0; + if (s != 0) { + if (UChar(s[0]) == CSI) + result = 1; + else if (s[0] == ESC && s[1] == L_BRACK) + result = 2; + } + return result; +} + +static char * +skip_zero(char *s) +{ + if (s[0] == '0') { + if (s[1] == ';') + s += 2; + else if (isalpha(UChar(s[1]))) + s += 1; + } + return s; +} + +static const char * +skip_delay(const char *s) +{ + if (s[0] == '$' && s[1] == '<') { + s += 2; + while (isdigit(UChar(*s)) || *s == '/') + ++s; + if (*s == '>') + ++s; + } + return s; +} + +/* + * Improve similar_sgr a little by moving the attr-string from the beginning + * to the end of the s-string. + */ +static bool +rewrite_sgr(char *s, char *attr) +{ + if (s != 0) { + if (PRESENT(attr)) { + size_t len_s = strlen(s); + size_t len_a = strlen(attr); + + if (len_s > len_a && !strncmp(attr, s, len_a)) { + unsigned n; + TR(TRACE_DATABASE, ("rewrite:\n\t%s", s)); + for (n = 0; n < len_s - len_a; ++n) { + s[n] = s[n + len_a]; + } + _nc_STRCPY(s + n, attr, strlen(s) + 1); + TR(TRACE_DATABASE, ("to:\n\t%s", s)); + } + } + return TRUE; + } + return FALSE; /* oops */ +} + +static bool +similar_sgr(char *a, char *b) +{ + bool result = FALSE; + if (a != 0 && b != 0) { + int csi_a = is_csi(a); + int csi_b = is_csi(b); + size_t len_a; + size_t len_b; + + TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s", + _nc_visbuf2(1, a), + _nc_visbuf2(2, b))); + if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) { + a += csi_a; + b += csi_b; + if (*a != *b) { + a = skip_zero(a); + b = skip_zero(b); + } + } + len_a = strlen(a); + len_b = strlen(b); + if (len_a && len_b) { + if (len_a > len_b) + result = (strncmp(a, b, len_b) == 0); + else + result = (strncmp(a, b, len_a) == 0); + } + TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result, + _nc_visbuf2(1, a), + _nc_visbuf2(2, b))); + } + return result; +} + +static unsigned +chop_out(char *string, unsigned i, unsigned j) +{ + TR(TRACE_DATABASE, ("chop_out %d..%d from %s", i, j, _nc_visbuf(string))); + while (string[j] != '\0') { + string[i++] = string[j++]; + } + string[i] = '\0'; + return i; +} + +/* + * Compare, ignoring delays. Some of the delay values are inconsistent, and + * we do not want to be stopped by that. + * + * Returns the number of chars from 'full' that we matched. If any mismatch + * occurs, return zero. + */ +static unsigned +compare_part(const char *part, const char *full) +{ + const char *next_part; + const char *next_full; + unsigned used_full = 0; + unsigned used_delay = 0; + + while (*part != 0) { + if (*part != *full) { + used_full = 0; + break; + } + + /* + * Adjust the return-value to allow the rare case of + * stringstring + * to remove the whole piece. The most common case is a delay at the + * end of the string. The adjusted string will retain the delay, which + * is conservative. + */ + if (used_delay != 0) { + used_full += used_delay; + used_delay = 0; + } + if (*part == '$' && *full == '$') { + next_part = skip_delay(part); + next_full = skip_delay(full); + if (next_part != part && next_full != full) { + used_delay += (unsigned) (next_full - full); + full = next_full; + part = next_part; + continue; + } + } + ++used_full; + ++part; + ++full; + } + return used_full; +} + +/* + * While 'sgr0' is the "same" as termcap 'me', there is a compatibility issue. + * The sgr/sgr0 capabilities include setting/clearing alternate character set + * mode. A termcap application cannot use sgr, so sgr0 strings that reset + * alternate character set mode will be misinterpreted. Here, we remove those + * from the more common ISO/ANSI/VT100 entries, which have sgr0 agreeing with + * sgr. + * + * This function returns the modified sgr0 if it can be modified, a null if + * an error occurs, or the original sgr0 if no change is needed. + */ +NCURSES_EXPORT(char *) +_nc_trim_sgr0(TERMTYPE2 *tp) +{ + char *result = exit_attribute_mode; + + T((T_CALLED("_nc_trim_sgr0()"))); + + if (PRESENT(exit_attribute_mode) + && PRESENT(set_attributes)) { + bool found = FALSE; + char *on = set_attribute_9(tp, 1); + char *off = set_attribute_9(tp, 0); + char *end = strdup(exit_attribute_mode); + char *tmp; + size_t i, j, k; + + TR(TRACE_DATABASE, ("checking if we can trim sgr0 based on sgr")); + TR(TRACE_DATABASE, ("sgr0 %s", _nc_visbuf(end))); + TR(TRACE_DATABASE, ("sgr(9:off) %s", _nc_visbuf(off))); + TR(TRACE_DATABASE, ("sgr(9:on) %s", _nc_visbuf(on))); + + if (!rewrite_sgr(on, enter_alt_charset_mode) + || !rewrite_sgr(off, exit_alt_charset_mode) + || !rewrite_sgr(end, exit_alt_charset_mode)) { + FreeIfNeeded(off); + } else if (similar_sgr(off, end) + && !similar_sgr(off, on)) { + TR(TRACE_DATABASE, ("adjusting sgr(9:off) : %s", _nc_visbuf(off))); + result = off; + /* + * If rmacs is a substring of sgr(0), remove that chunk. + */ + if (PRESENT(exit_alt_charset_mode)) { + TR(TRACE_DATABASE, ("scan for rmacs %s", _nc_visbuf(exit_alt_charset_mode))); + j = strlen(off); + k = strlen(exit_alt_charset_mode); + if (j > k) { + for (i = 0; i <= (j - k); ++i) { + unsigned k2 = compare_part(exit_alt_charset_mode, + off + i); + if (k2 != 0) { + found = TRUE; + chop_out(off, (unsigned) i, (unsigned) (i + k2)); + break; + } + } + } + } + /* + * SGR 10 would reset to normal font. + */ + if (!found) { + if ((i = (size_t) is_csi(off)) != 0 + && off[strlen(off) - 1] == 'm') { + TR(TRACE_DATABASE, ("looking for SGR 10 in %s", + _nc_visbuf(off))); + tmp = skip_zero(off + i); + if (tmp[0] == '1' + && skip_zero(tmp + 1) != tmp + 1) { + i = (size_t) (tmp - off); + if (off[i - 1] == ';') + i--; + j = (size_t) (skip_zero(tmp + 1) - off); + (void) chop_out(off, (unsigned) i, (unsigned) j); + found = TRUE; + } + } + } + if (!found + && (tmp = strstr(end, off)) != 0 + && strcmp(end, off) != 0) { + i = (size_t) (tmp - end); + j = strlen(off); + tmp = strdup(end); + chop_out(tmp, (unsigned) i, (unsigned) j); + free(off); + result = tmp; + } + TR(TRACE_DATABASE, ("...adjusted sgr0 : %s", _nc_visbuf(result))); + if (!strcmp(result, exit_attribute_mode)) { + TR(TRACE_DATABASE, ("...same result, discard")); + free(result); + result = exit_attribute_mode; + } + } else { + /* + * Either the sgr does not reference alternate character set, + * or it is incorrect. That's too hard to decide right now. + */ + free(off); + } + FreeIfNeeded(end); + FreeIfNeeded(on); + } else { + /* + * Possibly some applications are confused if sgr0 contains rmacs, + * but that would be a different bug report -TD + */ + } + + returnPtr(result); +} diff --git a/third_party/ncurses/tty_update.c b/third_party/ncurses/tty_update.c new file mode 100644 index 000000000..fcc776e3b --- /dev/null +++ b/third_party/ncurses/tty_update.c @@ -0,0 +1,2291 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * + ****************************************************************************/ + +/*----------------------------------------------------------------- + * + * lib_doupdate.c + * + * The routine doupdate() and its dependents. + * All physical output is concentrated here (except _nc_outch() + * in lib_tputs.c). + * + *-----------------------------------------------------------------*/ + +#define NEW_PAIR_INTERNAL 1 + +#include "curses.priv.h" + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +#if defined __HAIKU__ && defined __BEOS__ +#undef __BEOS__ +#endif + +#ifdef __BEOS__ +#undef false +#undef true +#include +#endif + +#if defined(TRACE) && HAVE_SYS_TIMES_H && HAVE_TIMES +#define USE_TRACE_TIMES 1 +#else +#define USE_TRACE_TIMES 0 +#endif + +#if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT +#include +#endif + +#if USE_TRACE_TIMES +#include +#endif + +#if USE_FUNC_POLL +#elif HAVE_SELECT +#if HAVE_SYS_SELECT_H +#include +#endif +#endif + +#include + +MODULE_ID("$Id: tty_update.c,v 1.314 2022/07/23 22:12:59 tom Exp $") + +/* + * This define controls the line-breakout optimization. Every once in a + * while during screen refresh, we want to check for input and abort the + * update if there's some waiting. CHECK_INTERVAL controls the number of + * changed lines to be emitted between input checks. + * + * Note: Input-check-and-abort is no longer done if the screen is being + * updated from scratch. This is a feature, not a bug. + */ +#define CHECK_INTERVAL 5 + +#define FILL_BCE(sp) (sp->_coloron && !sp->_default_color && !back_color_erase) + +static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT); +static NCURSES_CH_T normal = NewChar(BLANK_TEXT); + +/* + * Enable checking to see if doupdate and friends are tracking the true + * cursor position correctly. NOTE: this is a debugging hack which will + * work ONLY on ANSI-compatible terminals! + */ +/* #define POSITION_DEBUG */ + +static NCURSES_INLINE NCURSES_CH_T ClrBlank(NCURSES_SP_DCLx WINDOW *win); + +#if NCURSES_SP_FUNCS +static int ClrBottom(SCREEN *, int total); +static void ClearScreen(SCREEN *, NCURSES_CH_T blank); +static void ClrUpdate(SCREEN *); +static void DelChar(SCREEN *, int count); +static void InsStr(SCREEN *, NCURSES_CH_T *line, int count); +static void TransformLine(SCREEN *, int const lineno); +#else +static int ClrBottom(int total); +static void ClearScreen(NCURSES_CH_T blank); +static void ClrUpdate(void); +static void DelChar(int count); +static void InsStr(NCURSES_CH_T *line, int count); +static void TransformLine(int const lineno); +#endif + +#ifdef POSITION_DEBUG +/**************************************************************************** + * + * Debugging code. Only works on ANSI-standard terminals. + * + ****************************************************************************/ + +static void +position_check(NCURSES_SP_DCLx int expected_y, int expected_x, const char *legend) +/* check to see if the real cursor position matches the virtual */ +{ + char buf[20]; + char *s; + int y, x; + + if (!_nc_tracing || (expected_y < 0 && expected_x < 0)) + return; + + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + memset(buf, '\0', sizeof(buf)); + NCURSES_PUTP2_FLUSH("cpr", "\033[6n"); /* only works on ANSI-compatibles */ + *(s = buf) = 0; + do { + int ask = sizeof(buf) - 1 - (s - buf); + int got = read(0, s, ask); + if (got == 0) + break; + s += got; + } while (strchr(buf, 'R') == 0); + _tracef("probe returned %s", _nc_visbuf(buf)); + + /* try to interpret as a position report */ + if (sscanf(buf, "\033[%d;%dR", &y, &x) != 2) { + _tracef("position probe failed in %s", legend); + } else { + if (expected_x < 0) + expected_x = x - 1; + if (expected_y < 0) + expected_y = y - 1; + if (y - 1 != expected_y || x - 1 != expected_x) { + NCURSES_SP_NAME(beep) (NCURSES_SP_ARG); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_2("\033[%d;%dH", + expected_y + 1, + expected_x + 1), + 1, NCURSES_SP_NAME(_nc_outch)); + _tracef("position seen (%d, %d) doesn't match expected one (%d, %d) in %s", + y - 1, x - 1, expected_y, expected_x, legend); + } else { + _tracef("position matches OK in %s", legend); + } + } +} +#else +#define position_check(expected_y, expected_x, legend) /* nothing */ +#endif /* POSITION_DEBUG */ + +/**************************************************************************** + * + * Optimized update code + * + ****************************************************************************/ + +static NCURSES_INLINE void +GoTo(NCURSES_SP_DCLx int const row, int const col) +{ + TR(TRACE_MOVE, ("GoTo(%p, %d, %d) from (%d, %d)", + (void *) SP_PARM, row, col, SP_PARM->_cursrow, SP_PARM->_curscol)); + + position_check(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol, "GoTo"); + + TINFO_MVCUR(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol, + row, col); + position_check(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol, "GoTo2"); +} + +#if !NCURSES_WCWIDTH_GRAPHICS +#define is_wacs_value(ch) (_nc_wacs_width(ch) == 1 && wcwidth(ch) > 1) +#endif /* !NCURSES_WCWIDTH_GRAPHICS */ + +static NCURSES_INLINE void +PutAttrChar(NCURSES_SP_DCLx CARG_CH_T ch) +{ + int chlen = 1; + NCURSES_CH_T my_ch; +#if USE_WIDEC_SUPPORT + PUTC_DATA; +#endif + NCURSES_CH_T tilde; + NCURSES_CH_T attr = CHDEREF(ch); + + TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)", + _tracech_t(ch), + SP_PARM->_cursrow, SP_PARM->_curscol)); +#if USE_WIDEC_SUPPORT + /* + * If this is not a valid character, there is nothing more to do. + */ + if (isWidecExt(CHDEREF(ch))) { + TR(TRACE_CHARPUT, ("...skip")); + return; + } + /* + * Determine the number of character cells which the 'ch' value will use + * on the screen. It should be at least one. + */ + if ((chlen = _nc_wacs_width(CharOf(CHDEREF(ch)))) <= 0) { + static const NCURSES_CH_T blank = NewChar(BLANK_TEXT); + + /* + * If the character falls into any of these special cases, do + * not force the result to a blank: + * + * a) it is printable (this works around a bug in wcwidth()). + * b) use_legacy_coding() has been called to modify the treatment + * of codes 128-255. + * c) the acs_map[] has been initialized to allow codes 0-31 + * to be rendered. This supports Linux console's "PC" + * characters. Codes 128-255 are allowed though this is + * not checked. + */ + if (is8bits(CharOf(CHDEREF(ch))) + && (isprint(CharOf(CHDEREF(ch))) + || (SP_PARM->_legacy_coding > 0 && CharOf(CHDEREF(ch)) >= 160) + || (SP_PARM->_legacy_coding > 1 && CharOf(CHDEREF(ch)) >= 128) + || (AttrOf(attr) & A_ALTCHARSET + && ((CharOfD(ch) < ACS_LEN + && SP_PARM->_acs_map != 0 + && SP_PARM->_acs_map[CharOfD(ch)] != 0) + || (CharOfD(ch) >= 128))))) { + ; + } else { + ch = CHREF(blank); + TR(TRACE_CHARPUT, ("forced to blank")); + } + chlen = 1; + } +#endif + + if ((AttrOf(attr) & A_ALTCHARSET) + && SP_PARM->_acs_map != 0 + && ((CharOfD(ch) < ACS_LEN) +#if !NCURSES_WCWIDTH_GRAPHICS + || is_wacs_value(CharOfD(ch)) +#endif + )) { + int c8; + my_ch = CHDEREF(ch); /* work around const param */ + c8 = CharOf(my_ch); +#if USE_WIDEC_SUPPORT + /* + * This is crude & ugly, but works most of the time. It checks if the + * acs_chars string specified that we have a mapping for this + * character, and uses the wide-character mapping when we expect the + * normal one to be broken (by mis-design ;-). + */ + if (SP_PARM->_screen_unicode + && _nc_wacs[CharOf(my_ch)].chars[0]) { + if (SP_PARM->_screen_acs_map[CharOf(my_ch)]) { + if (SP_PARM->_screen_acs_fix) { + RemAttr(attr, A_ALTCHARSET); + my_ch = _nc_wacs[CharOf(my_ch)]; + } + } else { + RemAttr(attr, A_ALTCHARSET); + my_ch = _nc_wacs[CharOf(my_ch)]; + } +#if !NCURSES_WCWIDTH_GRAPHICS + if (!(AttrOf(attr) & A_ALTCHARSET)) { + chlen = 1; + } +#endif /* !NCURSES_WCWIDTH_GRAPHICS */ + } else +#endif + if (!SP_PARM->_screen_acs_map[c8]) { + /* + * If we found no mapping for a given alternate-character set item + * in the terminal description, attempt to use the ASCII fallback + * code which is populated in the _acs_map[] array. If that did + * not correspond to a line-drawing, etc., graphics character, the + * array entry would be empty. + */ + chtype temp = UChar(SP_PARM->_acs_map[c8]); + if (temp) { + RemAttr(attr, A_ALTCHARSET); + SetChar(my_ch, temp, AttrOf(attr)); + } + } + + /* + * If we (still) have alternate character set, it is the normal 8bit + * flavor. The _screen_acs_map[] array tells if the character was + * really in acs_chars, needed because of the way wide/normal line + * drawing flavors are integrated. + */ + if (AttrOf(attr) & A_ALTCHARSET) { + int j = CharOfD(ch); + chtype temp = UChar(SP_PARM->_acs_map[j]); + + if (temp != 0) { + SetChar(my_ch, temp, AttrOf(attr)); + } else { + my_ch = CHDEREF(ch); + RemAttr(attr, A_ALTCHARSET); + } + } + ch = CHREF(my_ch); + } +#if USE_WIDEC_SUPPORT && !NCURSES_WCWIDTH_GRAPHICS + else if (chlen > 1 && is_wacs_value(CharOfD(ch))) { + chlen = 1; + } +#endif + if (tilde_glitch && (CharOfD(ch) == L('~'))) { + SetChar(tilde, L('`'), AttrOf(attr)); + ch = CHREF(tilde); + } + + UpdateAttrs(SP_PARM, attr); + PUTC(CHDEREF(ch)); +#if !USE_WIDEC_SUPPORT + COUNT_OUTCHARS(1); +#endif + SP_PARM->_curscol += chlen; + if (char_padding) { + NCURSES_PUTP2("char_padding", char_padding); + } +} + +static bool +check_pending(NCURSES_SP_DCL0) +/* check for pending input */ +{ + bool have_pending = FALSE; + + /* + * Only carry out this check when the flag is zero, otherwise we'll + * have the refreshing slow down drastically (or stop) if there's an + * unread character available. + */ + if (SP_PARM->_fifohold != 0) + return FALSE; + + if (SP_PARM->_checkfd >= 0) { +#if USE_FUNC_POLL + struct pollfd fds[1]; + fds[0].fd = SP_PARM->_checkfd; + fds[0].events = POLLIN; + if (poll(fds, (size_t) 1, 0) > 0) { + have_pending = TRUE; + } +#elif defined(__BEOS__) + /* + * BeOS's select() is declared in socket.h, so the configure script does + * not see it. That's just as well, since that function works only for + * sockets. This (using snooze and ioctl) was distilled from Be's patch + * for ncurses which uses a separate thread to simulate select(). + * + * FIXME: the return values from the ioctl aren't very clear if we get + * interrupted. + */ + int n = 0; + int howmany = ioctl(0, 'ichr', &n); + if (howmany >= 0 && n > 0) { + have_pending = TRUE; + } +#elif HAVE_SELECT + fd_set fdset; + struct timeval ktimeout; + + ktimeout.tv_sec = + ktimeout.tv_usec = 0; + + FD_ZERO(&fdset); + FD_SET(SP_PARM->_checkfd, &fdset); + if (select(SP_PARM->_checkfd + 1, &fdset, NULL, NULL, &ktimeout) != 0) { + have_pending = TRUE; + } +#endif + } + if (have_pending) { + SP_PARM->_fifohold = 5; + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + } + return FALSE; +} + +/* put char at lower right corner */ +static void +PutCharLR(NCURSES_SP_DCLx const ARG_CH_T ch) +{ + if (!auto_right_margin) { + /* we can put the char directly */ + PutAttrChar(NCURSES_SP_ARGx ch); + } else if (enter_am_mode && exit_am_mode) { + int oldcol = SP_PARM->_curscol; + /* we can suppress automargin */ + NCURSES_PUTP2("exit_am_mode", exit_am_mode); + + PutAttrChar(NCURSES_SP_ARGx ch); + SP_PARM->_curscol = oldcol; + position_check(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol, + "exit_am_mode"); + + NCURSES_PUTP2("enter_am_mode", enter_am_mode); + } else if ((enter_insert_mode && exit_insert_mode) + || insert_character || parm_ich) { + GoTo(NCURSES_SP_ARGx + screen_lines(SP_PARM) - 1, + screen_columns(SP_PARM) - 2); + PutAttrChar(NCURSES_SP_ARGx ch); + GoTo(NCURSES_SP_ARGx + screen_lines(SP_PARM) - 1, + screen_columns(SP_PARM) - 2); + InsStr(NCURSES_SP_ARGx + NewScreen(SP_PARM)->_line[screen_lines(SP_PARM) - 1].text + + screen_columns(SP_PARM) - 2, 1); + } +} + +/* + * Wrap the cursor position, i.e., advance to the beginning of the next line. + */ +static void +wrap_cursor(NCURSES_SP_DCL0) +{ + if (eat_newline_glitch) { + /* + * xenl can manifest two different ways. The vt100 way is that, when + * you'd expect the cursor to wrap, it stays hung at the right margin + * (on top of the character just emitted) and doesn't wrap until the + * *next* graphic char is emitted. The c100 way is to ignore LF + * received just after an am wrap. + * + * An aggressive way to handle this would be to emit CR/LF after the + * char and then assume the wrap is done, you're on the first position + * of the next line, and the terminal out of its weird state. Here + * it is safe to just tell the code that the cursor is in hyperspace and + * let the next mvcur() call straighten things out. + */ + SP_PARM->_curscol = -1; + SP_PARM->_cursrow = -1; + } else if (auto_right_margin) { + SP_PARM->_curscol = 0; + SP_PARM->_cursrow++; + /* + * We've actually moved - but may have to work around problems with + * video attributes not working. + */ + if (!move_standout_mode && AttrOf(SCREEN_ATTRS(SP_PARM))) { + TR(TRACE_CHARPUT, ("turning off (%#lx) %s before wrapping", + (unsigned long) AttrOf(SCREEN_ATTRS(SP_PARM)), + _traceattr(AttrOf(SCREEN_ATTRS(SP_PARM))))); + VIDPUTS(SP_PARM, A_NORMAL, 0); + } + } else { + SP_PARM->_curscol--; + } + position_check(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol, + "wrap_cursor"); +} + +static NCURSES_INLINE void +PutChar(NCURSES_SP_DCLx const ARG_CH_T ch) +/* insert character, handling automargin stuff */ +{ + if (SP_PARM->_cursrow == screen_lines(SP_PARM) - 1 && + SP_PARM->_curscol == screen_columns(SP_PARM) - 1) { + PutCharLR(NCURSES_SP_ARGx ch); + } else { + PutAttrChar(NCURSES_SP_ARGx ch); + } + + if (SP_PARM->_curscol >= screen_columns(SP_PARM)) + wrap_cursor(NCURSES_SP_ARG); + + position_check(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol, "PutChar"); +} + +/* + * Check whether the given character can be output by clearing commands. This + * includes test for being a space and not including any 'bad' attributes, such + * as A_REVERSE. All attribute flags which don't affect appearance of a space + * or can be output by clearing (A_COLOR in case of bce-terminal) are excluded. + */ +static NCURSES_INLINE bool +can_clear_with(NCURSES_SP_DCLx ARG_CH_T ch) +{ + if (!back_color_erase && SP_PARM->_coloron) { +#if NCURSES_EXT_FUNCS + int pair; + + if (!SP_PARM->_default_color) + return FALSE; + if (!(isDefaultColor(SP_PARM->_default_fg) && + isDefaultColor(SP_PARM->_default_bg))) + return FALSE; + if ((pair = GetPair(CHDEREF(ch))) != 0) { + NCURSES_COLOR_T fg, bg; + if (NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx + (short) pair, + &fg, &bg) == ERR + || !(isDefaultColor(fg) && isDefaultColor(bg))) { + return FALSE; + } + } +#else + if (AttrOfD(ch) & A_COLOR) + return FALSE; +#endif + } + return (ISBLANK(CHDEREF(ch)) && + (AttrOfD(ch) & ~(NONBLANK_ATTR | A_COLOR)) == BLANK_ATTR); +} + +/* + * Issue a given span of characters from an array. + * Must be functionally equivalent to: + * for (i = 0; i < num; i++) + * PutChar(ntext[i]); + * but can leave the cursor positioned at the middle of the interval. + * + * Returns: 0 - cursor is at the end of interval + * 1 - cursor is somewhere in the middle + * + * This code is optimized using ech and rep. + */ +static int +EmitRange(NCURSES_SP_DCLx const NCURSES_CH_T *ntext, int num) +{ + int i; + + TR(TRACE_CHARPUT, ("EmitRange %d:%s", num, _nc_viscbuf(ntext, num))); + + if (erase_chars || repeat_char) { + while (num > 0) { + int runcount; + NCURSES_CH_T ntext0; + + while (num > 1 && !CharEq(ntext[0], ntext[1])) { + PutChar(NCURSES_SP_ARGx CHREF(ntext[0])); + ntext++; + num--; + } + ntext0 = ntext[0]; + if (num == 1) { + PutChar(NCURSES_SP_ARGx CHREF(ntext0)); + return 0; + } + runcount = 2; + + while (runcount < num && CharEq(ntext[runcount], ntext0)) + runcount++; + + /* + * The cost expression in the middle isn't exactly right. + * _cup_ch_cost is an upper bound on the cost for moving to the + * end of the erased area, but not the cost itself (which we + * can't compute without emitting the move). This may result + * in erase_chars not getting used in some situations for + * which it would be marginally advantageous. + */ + if (erase_chars + && runcount > SP_PARM->_ech_cost + SP_PARM->_cup_ch_cost + && can_clear_with(NCURSES_SP_ARGx CHREF(ntext0))) { + UpdateAttrs(SP_PARM, ntext0); + NCURSES_PUTP2("erase_chars", TIPARM_1(erase_chars, runcount)); + + /* + * If this is the last part of the given interval, + * don't bother moving cursor, since it can be the + * last update on the line. + */ + if (runcount < num) { + GoTo(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol + runcount); + } else { + return 1; /* cursor stays in the middle */ + } + } else if (repeat_char != 0 && +#if BSD_TPUTS + !isdigit(UChar(CharOf(ntext0))) && +#endif +#if USE_WIDEC_SUPPORT + (!SP_PARM->_screen_unicode && + (CharOf(ntext0) < ((AttrOf(ntext0) & A_ALTCHARSET) + ? ACS_LEN + : 256))) && +#endif + runcount > SP_PARM->_rep_cost) { + NCURSES_CH_T temp; + bool wrap_possible = (SP_PARM->_curscol + runcount >= + screen_columns(SP_PARM)); + int rep_count = runcount; + + if (wrap_possible) + rep_count--; + + UpdateAttrs(SP_PARM, ntext0); + temp = ntext0; + if ((AttrOf(temp) & A_ALTCHARSET) && + SP_PARM->_acs_map != 0 && + (SP_PARM->_acs_map[CharOf(temp)] & A_CHARTEXT) != 0) { + SetChar(temp, + (SP_PARM->_acs_map[CharOf(ntext0)] & A_CHARTEXT), + AttrOf(ntext0) | A_ALTCHARSET); + } + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_2(repeat_char, + CharOf(temp), + rep_count), + 1, + NCURSES_SP_NAME(_nc_outch)); + SP_PARM->_curscol += rep_count; + + if (wrap_possible) + PutChar(NCURSES_SP_ARGx CHREF(ntext0)); + } else { + for (i = 0; i < runcount; i++) + PutChar(NCURSES_SP_ARGx CHREF(ntext[i])); + } + ntext += runcount; + num -= runcount; + } + return 0; + } + + for (i = 0; i < num; i++) + PutChar(NCURSES_SP_ARGx CHREF(ntext[i])); + return 0; +} + +/* + * Output the line in the given range [first .. last] + * + * If there's a run of identical characters that's long enough to justify + * cursor movement, use that also. + * + * Returns: same as EmitRange + */ +static int +PutRange(NCURSES_SP_DCLx + const NCURSES_CH_T *otext, + const NCURSES_CH_T *ntext, + int row, + int first, int last) +{ + int rc; + + TR(TRACE_CHARPUT, ("PutRange(%p, %p, %p, %d, %d, %d)", + (void *) SP_PARM, + (const void *) otext, + (const void *) ntext, + row, first, last)); + + if (otext != ntext + && (last - first + 1) > SP_PARM->_inline_cost) { + int i, j, same; + + for (j = first, same = 0; j <= last; j++) { + if (!same && isWidecExt(otext[j])) + continue; + if (CharEq(otext[j], ntext[j])) { + same++; + } else { + if (same > SP_PARM->_inline_cost) { + EmitRange(NCURSES_SP_ARGx ntext + first, j - same - first); + GoTo(NCURSES_SP_ARGx row, first = j); + } + same = 0; + } + } + i = EmitRange(NCURSES_SP_ARGx ntext + first, j - same - first); + /* + * Always return 1 for the next GoTo() after a PutRange() if we found + * identical characters at end of interval + */ + rc = (same == 0 ? i : 1); + } else { + rc = EmitRange(NCURSES_SP_ARGx ntext + first, last - first + 1); + } + return rc; +} + +/* leave unbracketed here so 'indent' works */ +#define MARK_NOCHANGE(win,row) \ + win->_line[row].firstchar = _NOCHANGE; \ + win->_line[row].lastchar = _NOCHANGE; \ + if_USE_SCROLL_HINTS(win->_line[row].oldindex = row) + +NCURSES_EXPORT(int) +TINFO_DOUPDATE(NCURSES_SP_DCL0) +{ + int i; + int nonempty; +#if USE_TRACE_TIMES + struct tms before, after; +#endif /* USE_TRACE_TIMES */ + + T((T_CALLED("_nc_tinfo:doupdate(%p)"), (void *) SP_PARM)); + + _nc_lock_global(update); + + if (SP_PARM == 0) { + _nc_unlock_global(update); + returnCode(ERR); + } +#if !USE_REENTRANT + /* + * It is "legal" but unlikely that an application could assign a new + * value to one of the standard windows. Check for that possibility + * and try to recover. + * + * We do not allow applications to assign new values in the reentrant + * model. + */ +#if NCURSES_SP_FUNCS + if (SP_PARM == CURRENT_SCREEN) { +#endif +#define SyncScreens(internal,exported) \ + if (internal == 0) internal = exported; \ + if (internal != exported) exported = internal + + SyncScreens(CurScreen(SP_PARM), curscr); + SyncScreens(NewScreen(SP_PARM), newscr); + SyncScreens(StdScreen(SP_PARM), stdscr); +#if NCURSES_SP_FUNCS + } +#endif +#endif /* !USE_REENTRANT */ + + if (CurScreen(SP_PARM) == 0 + || NewScreen(SP_PARM) == 0 + || StdScreen(SP_PARM) == 0) { + _nc_unlock_global(update); + returnCode(ERR); + } +#ifdef TRACE + if (USE_TRACEF(TRACE_UPDATE)) { + if (CurScreen(SP_PARM)->_clear) + _tracef("curscr is clear"); + else + _tracedump("curscr", CurScreen(SP_PARM)); + _tracedump("newscr", NewScreen(SP_PARM)); + _nc_unlock_global(tracef); + } +#endif /* TRACE */ + + _nc_signal_handler(FALSE); + + if (SP_PARM->_fifohold) + SP_PARM->_fifohold--; + +#if USE_SIZECHANGE + if ((SP_PARM->_endwin == ewSuspend) + || _nc_handle_sigwinch(SP_PARM)) { + /* + * This is a transparent extension: XSI does not address it, + * and applications need not know that ncurses can do it. + * + * Check if the terminal size has changed while curses was off + * (this can happen in an xterm, for example), and resize the + * ncurses data structures accordingly. + */ + _nc_update_screensize(SP_PARM); + } +#endif + + if (SP_PARM->_endwin == ewSuspend) { + + T(("coming back from shell mode")); + NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_ARG); + + NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_ARG); + NCURSES_SP_NAME(_nc_screen_resume) (NCURSES_SP_ARG); + SP_PARM->_mouse_resume(SP_PARM); + + SP_PARM->_endwin = ewRunning; + } +#if USE_TRACE_TIMES + /* zero the metering machinery */ + RESET_OUTCHARS(); + (void) times(&before); +#endif /* USE_TRACE_TIMES */ + + /* + * This is the support for magic-cookie terminals. The theory: we scan + * the virtual screen looking for attribute turnons. Where we find one, + * check to make sure it is realizable by seeing if the required number of + * un-attributed blanks are present before and after the attributed range; + * try to shift the range boundaries over blanks (not changing the screen + * display) so this becomes true. If it is, shift the beginning attribute + * change appropriately (the end one, if we've gotten this far, is + * guaranteed room for its cookie). If not, nuke the added attributes out + * of the span. + */ +#if USE_XMC_SUPPORT + if (magic_cookie_glitch > 0) { + int j, k; + attr_t rattr = A_NORMAL; + + for (i = 0; i < screen_lines(SP_PARM); i++) { + for (j = 0; j < screen_columns(SP_PARM); j++) { + bool failed = FALSE; + NCURSES_CH_T *thisline = NewScreen(SP_PARM)->_line[i].text; + attr_t thisattr = AttrOf(thisline[j]) & SP_PARM->_xmc_triggers; + attr_t turnon = thisattr & ~rattr; + + /* is an attribute turned on here? */ + if (turnon == 0) { + rattr = thisattr; + continue; + } + + TR(TRACE_ATTRS, ("At (%d, %d): from %s...", i, j, _traceattr(rattr))); + TR(TRACE_ATTRS, ("...to %s", _traceattr(turnon))); + + /* + * If the attribute change location is a blank with a "safe" + * attribute, undo the attribute turnon. This may ensure + * there's enough room to set the attribute before the first + * non-blank in the run. + */ +#define SAFE(scr,a) (!((a) & (scr)->_xmc_triggers)) + if (ISBLANK(thisline[j]) && SAFE(SP_PARM, turnon)) { + RemAttr(thisline[j], turnon); + continue; + } + + /* check that there's enough room at start of span */ + for (k = 1; k <= magic_cookie_glitch; k++) { + if (j - k < 0 + || !ISBLANK(thisline[j - k]) + || !SAFE(SP_PARM, AttrOf(thisline[j - k]))) { + failed = TRUE; + TR(TRACE_ATTRS, ("No room at start in %d,%d%s%s", + i, j - k, + (ISBLANK(thisline[j - k]) + ? "" + : ":nonblank"), + (SAFE(SP_PARM, AttrOf(thisline[j - k])) + ? "" + : ":unsafe"))); + break; + } + } + if (!failed) { + bool end_onscreen = FALSE; + int m, n = j; + + /* find end of span, if it is onscreen */ + for (m = i; m < screen_lines(SP_PARM); m++) { + for (; n < screen_columns(SP_PARM); n++) { + attr_t testattr = + AttrOf(NewScreen(SP_PARM)->_line[m].text[n]); + if ((testattr & SP_PARM->_xmc_triggers) == rattr) { + end_onscreen = TRUE; + TR(TRACE_ATTRS, + ("Range attributed with %s ends at (%d, %d)", + _traceattr(turnon), m, n)); + goto foundit; + } + } + n = 0; + } + TR(TRACE_ATTRS, + ("Range attributed with %s ends offscreen", + _traceattr(turnon))); + foundit:; + + if (end_onscreen) { + NCURSES_CH_T *lastline = + NewScreen(SP_PARM)->_line[m].text; + + /* + * If there are safely-attributed blanks at the end of + * the range, shorten the range. This will help ensure + * that there is enough room at end of span. + */ + while (n >= 0 + && ISBLANK(lastline[n]) + && SAFE(SP_PARM, AttrOf(lastline[n]))) { + RemAttr(lastline[n--], turnon); + } + + /* check that there's enough room at end of span */ + for (k = 1; k <= magic_cookie_glitch; k++) { + if (n + k >= screen_columns(SP_PARM) + || !ISBLANK(lastline[n + k]) + || !SAFE(SP_PARM, AttrOf(lastline[n + k]))) { + failed = TRUE; + TR(TRACE_ATTRS, + ("No room at end in %d,%d%s%s", + i, j - k, + (ISBLANK(lastline[n + k]) + ? "" + : ":nonblank"), + (SAFE(SP_PARM, AttrOf(lastline[n + k])) + ? "" + : ":unsafe"))); + break; + } + } + } + } + + if (failed) { + int p, q = j; + + TR(TRACE_ATTRS, + ("Clearing %s beginning at (%d, %d)", + _traceattr(turnon), i, j)); + + /* turn off new attributes over span */ + for (p = i; p < screen_lines(SP_PARM); p++) { + for (; q < screen_columns(SP_PARM); q++) { + attr_t testattr = AttrOf(newscr->_line[p].text[q]); + if ((testattr & SP_PARM->_xmc_triggers) == rattr) + goto foundend; + RemAttr(NewScreen(SP_PARM)->_line[p].text[q], turnon); + } + q = 0; + } + foundend:; + } else { + TR(TRACE_ATTRS, + ("Cookie space for %s found before (%d, %d)", + _traceattr(turnon), i, j)); + + /* + * Back up the start of range so there's room for cookies + * before the first nonblank character. + */ + for (k = 1; k <= magic_cookie_glitch; k++) + AddAttr(thisline[j - k], turnon); + } + + rattr = thisattr; + } + } + +#ifdef TRACE + /* show altered highlights after magic-cookie check */ + if (USE_TRACEF(TRACE_UPDATE)) { + _tracef("After magic-cookie check..."); + _tracedump("newscr", NewScreen(SP_PARM)); + _nc_unlock_global(tracef); + } +#endif /* TRACE */ + } +#endif /* USE_XMC_SUPPORT */ + + nonempty = 0; + if (CurScreen(SP_PARM)->_clear || NewScreen(SP_PARM)->_clear) { /* force refresh ? */ + ClrUpdate(NCURSES_SP_ARG); + CurScreen(SP_PARM)->_clear = FALSE; /* reset flag */ + NewScreen(SP_PARM)->_clear = FALSE; /* reset flag */ + } else { + int changedlines = CHECK_INTERVAL; + + if (check_pending(NCURSES_SP_ARG)) + goto cleanup; + + nonempty = min(screen_lines(SP_PARM), NewScreen(SP_PARM)->_maxy + 1); + + if (SP_PARM->_scrolling) { + NCURSES_SP_NAME(_nc_scroll_optimize) (NCURSES_SP_ARG); + } + + nonempty = ClrBottom(NCURSES_SP_ARGx nonempty); + + TR(TRACE_UPDATE, ("Transforming lines, nonempty %d", nonempty)); + for (i = 0; i < nonempty; i++) { + /* + * Here is our line-breakout optimization. + */ + if (changedlines == CHECK_INTERVAL) { + if (check_pending(NCURSES_SP_ARG)) + goto cleanup; + changedlines = 0; + } + + /* + * newscr->line[i].firstchar is normally set + * by wnoutrefresh. curscr->line[i].firstchar + * is normally set by _nc_scroll_window in the + * vertical-movement optimization code, + */ + if (NewScreen(SP_PARM)->_line[i].firstchar != _NOCHANGE + || CurScreen(SP_PARM)->_line[i].firstchar != _NOCHANGE) { + TransformLine(NCURSES_SP_ARGx i); + changedlines++; + } + + /* mark line changed successfully */ + if (i <= NewScreen(SP_PARM)->_maxy) { + MARK_NOCHANGE(NewScreen(SP_PARM), i); + } + if (i <= CurScreen(SP_PARM)->_maxy) { + MARK_NOCHANGE(CurScreen(SP_PARM), i); + } + } + } + + /* put everything back in sync */ + for (i = nonempty; i <= NewScreen(SP_PARM)->_maxy; i++) { + MARK_NOCHANGE(NewScreen(SP_PARM), i); + } + for (i = nonempty; i <= CurScreen(SP_PARM)->_maxy; i++) { + MARK_NOCHANGE(CurScreen(SP_PARM), i); + } + + if (!NewScreen(SP_PARM)->_leaveok) { + CurScreen(SP_PARM)->_curx = NewScreen(SP_PARM)->_curx; + CurScreen(SP_PARM)->_cury = NewScreen(SP_PARM)->_cury; + + GoTo(NCURSES_SP_ARGx CurScreen(SP_PARM)->_cury, CurScreen(SP_PARM)->_curx); + } + + cleanup: + /* + * We would like to keep the physical screen in normal mode in case we get + * other processes writing to the screen. This goal cannot be met for + * magic cookies since it interferes with attributes that may propagate + * past the current position. + */ +#if USE_XMC_SUPPORT + if (magic_cookie_glitch != 0) +#endif + UpdateAttrs(SP_PARM, normal); + + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + WINDOW_ATTRS(CurScreen(SP_PARM)) = WINDOW_ATTRS(NewScreen(SP_PARM)); + +#if USE_TRACE_TIMES + (void) times(&after); + TR(TRACE_TIMES, + ("Update cost: %ld chars, %ld clocks system time, %ld clocks user time", + _nc_outchars, + (long) (after.tms_stime - before.tms_stime), + (long) (after.tms_utime - before.tms_utime))); +#endif /* USE_TRACE_TIMES */ + + _nc_signal_handler(TRUE); + + _nc_unlock_global(update); + returnCode(OK); +} + +#if NCURSES_SP_FUNCS && !defined(USE_TERM_DRIVER) +NCURSES_EXPORT(int) +doupdate(void) +{ + return TINFO_DOUPDATE(CURRENT_SCREEN); +} +#endif + +/* + * ClrBlank(win) + * + * Returns the attributed character that corresponds to the "cleared" + * screen. If the terminal has the back-color-erase feature, this will be + * colored according to the wbkgd() call. + * + * We treat 'curscr' specially because it isn't supposed to be set directly + * in the wbkgd() call. Assume 'stdscr' for this case. + */ +#define BCE_ATTRS (A_NORMAL|A_COLOR) +#define BCE_BKGD(sp,win) (((win) == CurScreen(sp) ? StdScreen(sp) : (win))->_nc_bkgd) + +static NCURSES_INLINE NCURSES_CH_T +ClrBlank(NCURSES_SP_DCLx WINDOW *win) +{ + NCURSES_CH_T blank = blankchar; + if (back_color_erase) + AddAttr(blank, (AttrOf(BCE_BKGD(SP_PARM, win)) & BCE_ATTRS)); + return blank; +} + +/* +** ClrUpdate() +** +** Update by clearing and redrawing the entire screen. +** +*/ + +static void +ClrUpdate(NCURSES_SP_DCL0) +{ + TR(TRACE_UPDATE, (T_CALLED("ClrUpdate"))); + if (0 != SP_PARM) { + int i; + NCURSES_CH_T blank = ClrBlank(NCURSES_SP_ARGx StdScreen(SP_PARM)); + int nonempty = min(screen_lines(SP_PARM), + NewScreen(SP_PARM)->_maxy + 1); + + ClearScreen(NCURSES_SP_ARGx blank); + + TR(TRACE_UPDATE, ("updating screen from scratch")); + + nonempty = ClrBottom(NCURSES_SP_ARGx nonempty); + + for (i = 0; i < nonempty; i++) + TransformLine(NCURSES_SP_ARGx i); + } + TR(TRACE_UPDATE, (T_RETURN(""))); +} + +/* +** ClrToEOL(blank) +** +** Clear to end of current line, starting at the cursor position +*/ + +static void +ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, int needclear) +{ + if (CurScreen(SP_PARM) != 0 + && SP_PARM->_cursrow >= 0) { + int j; + + for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) { + if (j >= 0) { + NCURSES_CH_T *cp = + &(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]); + + if (!CharEq(*cp, blank)) { + *cp = blank; + needclear = TRUE; + } + } + } + } + + if (needclear) { + UpdateAttrs(SP_PARM, blank); + if (clr_eol && SP_PARM->_el_cost <= (screen_columns(SP_PARM) - SP_PARM->_curscol)) { + NCURSES_PUTP2("clr_eol", clr_eol); + } else { + int count = (screen_columns(SP_PARM) - SP_PARM->_curscol); + while (count-- > 0) + PutChar(NCURSES_SP_ARGx CHREF(blank)); + } + } +} + +/* +** ClrToEOS(blank) +** +** Clear to end of screen, starting at the cursor position +*/ + +static void +ClrToEOS(NCURSES_SP_DCLx NCURSES_CH_T blank) +{ + int row, col; + + row = SP_PARM->_cursrow; + col = SP_PARM->_curscol; + + if (row < 0) + row = 0; + if (col < 0) + col = 0; + + UpdateAttrs(SP_PARM, blank); + TPUTS_TRACE("clr_eos"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + clr_eos, + screen_lines(SP_PARM) - row, + NCURSES_SP_NAME(_nc_outch)); + + while (col < screen_columns(SP_PARM)) + CurScreen(SP_PARM)->_line[row].text[col++] = blank; + + for (row++; row < screen_lines(SP_PARM); row++) { + for (col = 0; col < screen_columns(SP_PARM); col++) + CurScreen(SP_PARM)->_line[row].text[col] = blank; + } +} + +/* + * ClrBottom(total) + * + * Test if clearing the end of the screen would satisfy part of the + * screen-update. Do this by scanning backwards through the lines in the + * screen, checking if each is blank, and one or more are changed. + */ +static int +ClrBottom(NCURSES_SP_DCLx int total) +{ + int top = total; + int last = min(screen_columns(SP_PARM), NewScreen(SP_PARM)->_maxx + 1); + NCURSES_CH_T blank = NewScreen(SP_PARM)->_line[total - 1].text[last - 1]; + + if (clr_eos && can_clear_with(NCURSES_SP_ARGx CHREF(blank))) { + int row; + + for (row = total - 1; row >= 0; row--) { + int col; + bool ok; + + for (col = 0, ok = TRUE; ok && col < last; col++) { + ok = (CharEq(NewScreen(SP_PARM)->_line[row].text[col], blank)); + } + if (!ok) + break; + + for (col = 0; ok && col < last; col++) { + ok = (CharEq(CurScreen(SP_PARM)->_line[row].text[col], blank)); + } + if (!ok) + top = row; + } + + /* don't use clr_eos for just one line if clr_eol available */ + if (top < total) { + GoTo(NCURSES_SP_ARGx top, 0); + ClrToEOS(NCURSES_SP_ARGx blank); + if (SP_PARM->oldhash && SP_PARM->newhash) { + for (row = top; row < screen_lines(SP_PARM); row++) + SP_PARM->oldhash[row] = SP_PARM->newhash[row]; + } + } + } + return top; +} + +#if USE_XMC_SUPPORT +#if USE_WIDEC_SUPPORT +#define check_xmc_transition(sp, a, b) \ + ((((a)->attr ^ (b)->attr) & ~((a)->attr) & (sp)->_xmc_triggers) != 0) +#define xmc_turn_on(sp,a,b) check_xmc_transition(sp,&(a), &(b)) +#else +#define xmc_turn_on(sp,a,b) ((((a)^(b)) & ~(a) & (sp)->_xmc_triggers) != 0) +#endif + +#define xmc_new(sp,r,c) NewScreen(sp)->_line[r].text[c] +#define xmc_turn_off(sp,a,b) xmc_turn_on(sp,b,a) +#endif /* USE_XMC_SUPPORT */ + +/* +** TransformLine(lineno) +** +** Transform the given line in curscr to the one in newscr, using +** Insert/Delete Character if idcok && has_ic(). +** +** firstChar = position of first different character in line +** oLastChar = position of last different character in old line +** nLastChar = position of last different character in new line +** +** move to firstChar +** overwrite chars up to min(oLastChar, nLastChar) +** if oLastChar < nLastChar +** insert newLine[oLastChar+1..nLastChar] +** else +** delete oLastChar - nLastChar spaces +*/ + +static void +TransformLine(NCURSES_SP_DCLx int const lineno) +{ + int firstChar, oLastChar, nLastChar; + NCURSES_CH_T *newLine = NewScreen(SP_PARM)->_line[lineno].text; + NCURSES_CH_T *oldLine = CurScreen(SP_PARM)->_line[lineno].text; + int n; + bool attrchanged = FALSE; + + TR(TRACE_UPDATE, (T_CALLED("TransformLine(%p, %d)"), (void *) SP_PARM, lineno)); + + /* copy new hash value to old one */ + if (SP_PARM->oldhash && SP_PARM->newhash) + SP_PARM->oldhash[lineno] = SP_PARM->newhash[lineno]; + + /* + * If we have colors, there is the possibility of having two color pairs + * that display as the same colors. For instance, Lynx does this. Check + * for this case, and update the old line with the new line's colors when + * they are equivalent. + */ + if (SP_PARM->_coloron) { + int oldPair; + int newPair; + + for (n = 0; n < screen_columns(SP_PARM); n++) { + if (!CharEq(newLine[n], oldLine[n])) { + oldPair = GetPair(oldLine[n]); + newPair = GetPair(newLine[n]); + if (oldPair != newPair + && unColor(oldLine[n]) == unColor(newLine[n])) { + if (oldPair < SP_PARM->_pair_alloc + && newPair < SP_PARM->_pair_alloc + && (isSamePair(SP_PARM->_color_pairs[oldPair], + SP_PARM->_color_pairs[newPair]))) { + SetPair(oldLine[n], GetPair(newLine[n])); + } + } + } + } + } + + if (ceol_standout_glitch && clr_eol) { + firstChar = 0; + while (firstChar < screen_columns(SP_PARM)) { + if (!SameAttrOf(newLine[firstChar], oldLine[firstChar])) { + attrchanged = TRUE; + break; + } + firstChar++; + } + } + + firstChar = 0; + + if (attrchanged) { /* we may have to disregard the whole line */ + GoTo(NCURSES_SP_ARGx lineno, firstChar); + ClrToEOL(NCURSES_SP_ARGx + ClrBlank(NCURSES_SP_ARGx + CurScreen(SP_PARM)), FALSE); + PutRange(NCURSES_SP_ARGx + oldLine, newLine, lineno, 0, + screen_columns(SP_PARM) - 1); +#if USE_XMC_SUPPORT + + /* + * This is a very simple loop to paint characters which may have the + * magic cookie glitch embedded. It doesn't know much about video + * attributes which are continued from one line to the next. It + * assumes that we have filtered out requests for attribute changes + * that do not get mapped to blank positions. + * + * FIXME: we are not keeping track of where we put the cookies, so this + * will work properly only once, since we may overwrite a cookie in a + * following operation. + */ + } else if (magic_cookie_glitch > 0) { + GoTo(NCURSES_SP_ARGx lineno, firstChar); + for (n = 0; n < screen_columns(SP_PARM); n++) { + int m = n + magic_cookie_glitch; + + /* check for turn-on: + * If we are writing an attributed blank, where the + * previous cell is not attributed. + */ + if (ISBLANK(newLine[n]) + && ((n > 0 + && xmc_turn_on(SP_PARM, newLine[n - 1], newLine[n])) + || (n == 0 + && lineno > 0 + && xmc_turn_on(SP_PARM, + xmc_new(SP_PARM, lineno - 1, + screen_columns(SP_PARM) - 1), + newLine[n])))) { + n = m; + } + + PutChar(NCURSES_SP_ARGx CHREF(newLine[n])); + + /* check for turn-off: + * If we are writing an attributed non-blank, where the + * next cell is blank, and not attributed. + */ + if (!ISBLANK(newLine[n]) + && ((n + 1 < screen_columns(SP_PARM) + && xmc_turn_off(SP_PARM, newLine[n], newLine[n + 1])) + || (n + 1 >= screen_columns(SP_PARM) + && lineno + 1 < screen_lines(SP_PARM) + && xmc_turn_off(SP_PARM, + newLine[n], + xmc_new(SP_PARM, lineno + 1, 0))))) { + n = m; + } + + } +#endif + } else { + NCURSES_CH_T blank; + + /* it may be cheap to clear leading whitespace with clr_bol */ + blank = newLine[0]; + if (clr_bol && can_clear_with(NCURSES_SP_ARGx CHREF(blank))) { + int oFirstChar, nFirstChar; + + for (oFirstChar = 0; + oFirstChar < screen_columns(SP_PARM); + oFirstChar++) + if (!CharEq(oldLine[oFirstChar], blank)) + break; + for (nFirstChar = 0; + nFirstChar < screen_columns(SP_PARM); + nFirstChar++) + if (!CharEq(newLine[nFirstChar], blank)) + break; + + if (nFirstChar == oFirstChar) { + firstChar = nFirstChar; + /* find the first differing character */ + while (firstChar < screen_columns(SP_PARM) + && CharEq(newLine[firstChar], oldLine[firstChar])) + firstChar++; + } else if (oFirstChar > nFirstChar) { + firstChar = nFirstChar; + } else { /* oFirstChar < nFirstChar */ + firstChar = oFirstChar; + if (SP_PARM->_el1_cost < nFirstChar - oFirstChar) { + if (nFirstChar >= screen_columns(SP_PARM) + && SP_PARM->_el_cost <= SP_PARM->_el1_cost) { + GoTo(NCURSES_SP_ARGx lineno, 0); + UpdateAttrs(SP_PARM, blank); + NCURSES_PUTP2("clr_eol", clr_eol); + } else { + GoTo(NCURSES_SP_ARGx lineno, nFirstChar - 1); + UpdateAttrs(SP_PARM, blank); + NCURSES_PUTP2("clr_bol", clr_bol); + } + + while (firstChar < nFirstChar) + oldLine[firstChar++] = blank; + } + } + } else { + /* find the first differing character */ + while (firstChar < screen_columns(SP_PARM) + && CharEq(newLine[firstChar], oldLine[firstChar])) + firstChar++; + } + /* if there wasn't one, we're done */ + if (firstChar >= screen_columns(SP_PARM)) { + TR(TRACE_UPDATE, (T_RETURN(""))); + return; + } + + blank = newLine[screen_columns(SP_PARM) - 1]; + + if (!can_clear_with(NCURSES_SP_ARGx CHREF(blank))) { + /* find the last differing character */ + nLastChar = screen_columns(SP_PARM) - 1; + + while (nLastChar > firstChar + && CharEq(newLine[nLastChar], oldLine[nLastChar])) + nLastChar--; + + if (nLastChar >= firstChar) { + GoTo(NCURSES_SP_ARGx lineno, firstChar); + PutRange(NCURSES_SP_ARGx + oldLine, + newLine, + lineno, + firstChar, + nLastChar); + memcpy(oldLine + firstChar, + newLine + firstChar, + (unsigned) (nLastChar - firstChar + 1) * sizeof(NCURSES_CH_T)); + } + TR(TRACE_UPDATE, (T_RETURN(""))); + return; + } + + /* find last non-blank character on old line */ + oLastChar = screen_columns(SP_PARM) - 1; + while (oLastChar > firstChar && CharEq(oldLine[oLastChar], blank)) + oLastChar--; + + /* find last non-blank character on new line */ + nLastChar = screen_columns(SP_PARM) - 1; + while (nLastChar > firstChar && CharEq(newLine[nLastChar], blank)) + nLastChar--; + + if ((nLastChar == firstChar) + && (SP_PARM->_el_cost < (oLastChar - nLastChar))) { + GoTo(NCURSES_SP_ARGx lineno, firstChar); + if (!CharEq(newLine[firstChar], blank)) + PutChar(NCURSES_SP_ARGx CHREF(newLine[firstChar])); + ClrToEOL(NCURSES_SP_ARGx blank, FALSE); + } else if ((nLastChar != oLastChar) + && (!CharEq(newLine[nLastChar], oldLine[oLastChar]) + || !(SP_PARM->_nc_sp_idcok + && NCURSES_SP_NAME(has_ic) (NCURSES_SP_ARG)))) { + GoTo(NCURSES_SP_ARGx lineno, firstChar); + if ((oLastChar - nLastChar) > SP_PARM->_el_cost) { + if (PutRange(NCURSES_SP_ARGx + oldLine, + newLine, + lineno, + firstChar, + nLastChar)) { + GoTo(NCURSES_SP_ARGx lineno, nLastChar + 1); + } + ClrToEOL(NCURSES_SP_ARGx blank, FALSE); + } else { + n = max(nLastChar, oLastChar); + PutRange(NCURSES_SP_ARGx + oldLine, + newLine, + lineno, + firstChar, + n); + } + } else { + int nLastNonblank = nLastChar; + int oLastNonblank = oLastChar; + + /* find the last characters that really differ */ + /* can be -1 if no characters differ */ + while (CharEq(newLine[nLastChar], oldLine[oLastChar])) { + /* don't split a wide char */ + if (isWidecExt(newLine[nLastChar]) && + !CharEq(newLine[nLastChar - 1], oldLine[oLastChar - 1])) + break; + nLastChar--; + oLastChar--; + if (nLastChar == -1 || oLastChar == -1) + break; + } + + n = min(oLastChar, nLastChar); + if (n >= firstChar) { + GoTo(NCURSES_SP_ARGx lineno, firstChar); + PutRange(NCURSES_SP_ARGx + oldLine, + newLine, + lineno, + firstChar, + n); + } + + if (oLastChar < nLastChar) { + int m = max(nLastNonblank, oLastNonblank); +#if USE_WIDEC_SUPPORT + if (n) { + while (isWidecExt(newLine[n + 1]) && n) { + --n; + --oLastChar; /* increase cost */ + } + } else if (n >= firstChar && + isWidecBase(newLine[n])) { + while (isWidecExt(newLine[n + 1])) { + ++n; + ++oLastChar; /* decrease cost */ + } + } +#endif + GoTo(NCURSES_SP_ARGx lineno, n + 1); + if ((nLastChar < nLastNonblank) + || InsCharCost(SP_PARM, nLastChar - oLastChar) > (m - n)) { + PutRange(NCURSES_SP_ARGx + oldLine, + newLine, + lineno, + n + 1, + m); + } else { + InsStr(NCURSES_SP_ARGx &newLine[n + 1], nLastChar - oLastChar); + } + } else if (oLastChar > nLastChar) { + GoTo(NCURSES_SP_ARGx lineno, n + 1); + if (DelCharCost(SP_PARM, oLastChar - nLastChar) + > SP_PARM->_el_cost + nLastNonblank - (n + 1)) { + if (PutRange(NCURSES_SP_ARGx oldLine, newLine, lineno, + n + 1, nLastNonblank)) { + GoTo(NCURSES_SP_ARGx lineno, nLastNonblank + 1); + } + ClrToEOL(NCURSES_SP_ARGx blank, FALSE); + } else { + /* + * The delete-char sequence will + * effectively shift in blanks from the + * right margin of the screen. Ensure + * that they are the right color by + * setting the video attributes from + * the last character on the row. + */ + UpdateAttrs(SP_PARM, blank); + DelChar(NCURSES_SP_ARGx oLastChar - nLastChar); + } + } + } + } + + /* update the code's internal representation */ + if (screen_columns(SP_PARM) > firstChar) + memcpy(oldLine + firstChar, + newLine + firstChar, + (unsigned) (screen_columns(SP_PARM) - firstChar) * sizeof(NCURSES_CH_T)); + TR(TRACE_UPDATE, (T_RETURN(""))); + return; +} + +/* +** ClearScreen(blank) +** +** Clear the physical screen and put cursor at home +** +*/ + +static void +ClearScreen(NCURSES_SP_DCLx NCURSES_CH_T blank) +{ + int i, j; + bool fast_clear = (clear_screen || clr_eos || clr_eol); + + TR(TRACE_UPDATE, ("ClearScreen() called")); + +#if NCURSES_EXT_FUNCS + if (SP_PARM->_coloron + && !SP_PARM->_default_color) { + NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx + (short) GET_SCREEN_PAIR(SP_PARM), + 0, + FALSE, + NCURSES_SP_NAME(_nc_outch)); + if (!back_color_erase) { + fast_clear = FALSE; + } + } +#endif + + if (fast_clear) { + if (clear_screen) { + UpdateAttrs(SP_PARM, blank); + NCURSES_PUTP2("clear_screen", clear_screen); + SP_PARM->_cursrow = SP_PARM->_curscol = 0; + position_check(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol, + "ClearScreen"); + } else if (clr_eos) { + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + GoTo(NCURSES_SP_ARGx 0, 0); + UpdateAttrs(SP_PARM, blank); + TPUTS_TRACE("clr_eos"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + clr_eos, + screen_lines(SP_PARM), + NCURSES_SP_NAME(_nc_outch)); + } else if (clr_eol) { + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < screen_lines(SP_PARM); i++) { + GoTo(NCURSES_SP_ARGx i, 0); + NCURSES_PUTP2("clr_eol", clr_eol); + } + GoTo(NCURSES_SP_ARGx 0, 0); + } + } else { + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < screen_lines(SP_PARM); i++) { + GoTo(NCURSES_SP_ARGx i, 0); + for (j = 0; j < screen_columns(SP_PARM); j++) + PutChar(NCURSES_SP_ARGx CHREF(blank)); + } + GoTo(NCURSES_SP_ARGx 0, 0); + } + + for (i = 0; i < screen_lines(SP_PARM); i++) { + for (j = 0; j < screen_columns(SP_PARM); j++) + CurScreen(SP_PARM)->_line[i].text[j] = blank; + } + + TR(TRACE_UPDATE, ("screen cleared")); +} + +/* +** InsStr(line, count) +** +** Insert the count characters pointed to by line. +** +*/ + +static void +InsStr(NCURSES_SP_DCLx NCURSES_CH_T *line, int count) +{ + TR(TRACE_UPDATE, ("InsStr(%p, %p,%d) called", + (void *) SP_PARM, + (void *) line, count)); + + /* Prefer parm_ich as it has the smallest cost - no need to shift + * the whole line on each character. */ + /* The order must match that of InsCharCost. */ + if (parm_ich) { + TPUTS_TRACE("parm_ich"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(parm_ich, count), + 1, + NCURSES_SP_NAME(_nc_outch)); + while (count > 0) { + PutAttrChar(NCURSES_SP_ARGx CHREF(*line)); + line++; + count--; + } + } else if (enter_insert_mode && exit_insert_mode) { + NCURSES_PUTP2("enter_insert_mode", enter_insert_mode); + while (count > 0) { + PutAttrChar(NCURSES_SP_ARGx CHREF(*line)); + if (insert_padding) { + NCURSES_PUTP2("insert_padding", insert_padding); + } + line++; + count--; + } + NCURSES_PUTP2("exit_insert_mode", exit_insert_mode); + } else { + while (count > 0) { + NCURSES_PUTP2("insert_character", insert_character); + PutAttrChar(NCURSES_SP_ARGx CHREF(*line)); + if (insert_padding) { + NCURSES_PUTP2("insert_padding", insert_padding); + } + line++; + count--; + } + } + position_check(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol, "InsStr"); +} + +/* +** DelChar(count) +** +** Delete count characters at current position +** +*/ + +static void +DelChar(NCURSES_SP_DCLx int count) +{ + TR(TRACE_UPDATE, ("DelChar(%p, %d) called, position = (%ld,%ld)", + (void *) SP_PARM, count, + (long) NewScreen(SP_PARM)->_cury, + (long) NewScreen(SP_PARM)->_curx)); + + if (parm_dch) { + TPUTS_TRACE("parm_dch"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(parm_dch, count), + 1, + NCURSES_SP_NAME(_nc_outch)); + } else { + int n; + + for (n = 0; n < count; n++) { + NCURSES_PUTP2("delete_character", delete_character); + } + } +} + +/* + * Physical-scrolling support + * + * This code was adapted from Keith Bostic's hardware scrolling + * support for 4.4BSD curses. I (esr) translated it to use terminfo + * capabilities, narrowed the call interface slightly, and cleaned + * up some convoluted tests. I also added support for the memory_above + * memory_below, and non_dest_scroll_region capabilities. + * + * For this code to work, we must have either + * change_scroll_region and scroll forward/reverse commands, or + * insert and delete line capabilities. + * When the scrolling region has been set, the cursor has to + * be at the last line of the region to make the scroll up + * happen, or on the first line of region to scroll down. + * + * This code makes one aesthetic decision in the opposite way from + * BSD curses. BSD curses preferred pairs of il/dl operations + * over scrolls, allegedly because il/dl looked faster. We, on + * the other hand, prefer scrolls because (a) they're just as fast + * on many terminals and (b) using them avoids bouncing an + * unchanged bottom section of the screen up and down, which is + * visually nasty. + * + * (lav): added more cases, used dl/il when bot==maxy and in csr case. + * + * I used assumption that capabilities il/il1/dl/dl1 work inside + * changed scroll region not shifting screen contents outside of it. + * If there are any terminals behaving different way, it would be + * necessary to add some conditions to scroll_csr_forward/backward. + */ + +/* Try to scroll up assuming given csr (miny, maxy). Returns ERR on failure */ +static int +scroll_csr_forward(NCURSES_SP_DCLx + int n, + int top, + int bot, + int miny, + int maxy, + NCURSES_CH_T blank) +{ + int i; + + if (n == 1 && scroll_forward && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx bot, 0); + UpdateAttrs(SP_PARM, blank); + NCURSES_PUTP2("scroll_forward", scroll_forward); + } else if (n == 1 && delete_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + NCURSES_PUTP2("delete_line", delete_line); + } else if (parm_index && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx bot, 0); + UpdateAttrs(SP_PARM, blank); + TPUTS_TRACE("parm_index"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(parm_index, n), + n, + NCURSES_SP_NAME(_nc_outch)); + } else if (parm_delete_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + TPUTS_TRACE("parm_delete_line"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(parm_delete_line, n), + n, + NCURSES_SP_NAME(_nc_outch)); + } else if (scroll_forward && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx bot, 0); + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < n; i++) { + NCURSES_PUTP2("scroll_forward", scroll_forward); + } + } else if (delete_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < n; i++) { + NCURSES_PUTP2("delete_line", delete_line); + } + } else + return ERR; + +#if NCURSES_EXT_FUNCS + if (FILL_BCE(SP_PARM)) { + int j; + for (i = 0; i < n; i++) { + GoTo(NCURSES_SP_ARGx bot - i, 0); + for (j = 0; j < screen_columns(SP_PARM); j++) + PutChar(NCURSES_SP_ARGx CHREF(blank)); + } + } +#endif + return OK; +} + +/* Try to scroll down assuming given csr (miny, maxy). Returns ERR on failure */ +/* n > 0 */ +static int +scroll_csr_backward(NCURSES_SP_DCLx + int n, + int top, + int bot, + int miny, + int maxy, + NCURSES_CH_T blank) +{ + int i; + + if (n == 1 && scroll_reverse && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + NCURSES_PUTP2("scroll_reverse", scroll_reverse); + } else if (n == 1 && insert_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + NCURSES_PUTP2("insert_line", insert_line); + } else if (parm_rindex && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + TPUTS_TRACE("parm_rindex"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(parm_rindex, n), + n, + NCURSES_SP_NAME(_nc_outch)); + } else if (parm_insert_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + TPUTS_TRACE("parm_insert_line"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(parm_insert_line, n), + n, + NCURSES_SP_NAME(_nc_outch)); + } else if (scroll_reverse && top == miny && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < n; i++) { + NCURSES_PUTP2("scroll_reverse", scroll_reverse); + } + } else if (insert_line && bot == maxy) { + GoTo(NCURSES_SP_ARGx top, 0); + UpdateAttrs(SP_PARM, blank); + for (i = 0; i < n; i++) { + NCURSES_PUTP2("insert_line", insert_line); + } + } else + return ERR; + +#if NCURSES_EXT_FUNCS + if (FILL_BCE(SP_PARM)) { + int j; + for (i = 0; i < n; i++) { + GoTo(NCURSES_SP_ARGx top + i, 0); + for (j = 0; j < screen_columns(SP_PARM); j++) + PutChar(NCURSES_SP_ARGx CHREF(blank)); + } + } +#endif + return OK; +} + +/* scroll by using delete_line at del and insert_line at ins */ +/* n > 0 */ +static int +scroll_idl(NCURSES_SP_DCLx int n, int del, int ins, NCURSES_CH_T blank) +{ + int i; + + if (!((parm_delete_line || delete_line) && (parm_insert_line || insert_line))) + return ERR; + + GoTo(NCURSES_SP_ARGx del, 0); + UpdateAttrs(SP_PARM, blank); + if (n == 1 && delete_line) { + NCURSES_PUTP2("delete_line", delete_line); + } else if (parm_delete_line) { + TPUTS_TRACE("parm_delete_line"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(parm_delete_line, n), + n, + NCURSES_SP_NAME(_nc_outch)); + } else { /* if (delete_line) */ + for (i = 0; i < n; i++) { + NCURSES_PUTP2("delete_line", delete_line); + } + } + + GoTo(NCURSES_SP_ARGx ins, 0); + UpdateAttrs(SP_PARM, blank); + if (n == 1 && insert_line) { + NCURSES_PUTP2("insert_line", insert_line); + } else if (parm_insert_line) { + TPUTS_TRACE("parm_insert_line"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_1(parm_insert_line, n), + n, + NCURSES_SP_NAME(_nc_outch)); + } else { /* if (insert_line) */ + for (i = 0; i < n; i++) { + NCURSES_PUTP2("insert_line", insert_line); + } + } + + return OK; +} + +/* + * Note: some terminals require the cursor to be within the scrolling margins + * before setting them. Generally, the cursor must be at the appropriate end + * of the scrolling margins when issuing an indexing operation (it is not + * apparent whether it must also be at the left margin; we do this just to be + * safe). To make the related cursor movement a little faster, we use the + * save/restore cursor capabilities if the terminal has them. + */ +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_scrolln) (NCURSES_SP_DCLx + int n, + int top, + int bot, + int maxy) +/* scroll region from top to bot by n lines */ +{ + NCURSES_CH_T blank; + int i; + bool cursor_saved = FALSE; + int res; + + TR(TRACE_MOVE, ("_nc_scrolln(%p, %d, %d, %d, %d)", + (void *) SP_PARM, n, top, bot, maxy)); + + if (!IsValidScreen(SP_PARM)) + return (ERR); + + blank = ClrBlank(NCURSES_SP_ARGx StdScreen(SP_PARM)); + +#if USE_XMC_SUPPORT + /* + * If we scroll, we might remove a cookie. + */ + if (magic_cookie_glitch > 0) { + return (ERR); + } +#endif + + if (n > 0) { /* scroll up (forward) */ + /* + * Explicitly clear if stuff pushed off top of region might + * be saved by the terminal. + */ + res = scroll_csr_forward(NCURSES_SP_ARGx n, top, bot, 0, maxy, blank); + + if (res == ERR && change_scroll_region) { + if ((((n == 1 && scroll_forward) || parm_index) + && (SP_PARM->_cursrow == bot || SP_PARM->_cursrow == bot - 1)) + && save_cursor && restore_cursor) { + cursor_saved = TRUE; + NCURSES_PUTP2("save_cursor", save_cursor); + } + NCURSES_PUTP2("change_scroll_region", + TIPARM_2(change_scroll_region, top, bot)); + if (cursor_saved) { + NCURSES_PUTP2("restore_cursor", restore_cursor); + } else { + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + } + + res = scroll_csr_forward(NCURSES_SP_ARGx n, top, bot, top, bot, blank); + + NCURSES_PUTP2("change_scroll_region", + TIPARM_2(change_scroll_region, 0, maxy)); + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + } + + if (res == ERR && SP_PARM->_nc_sp_idlok) + res = scroll_idl(NCURSES_SP_ARGx n, top, bot - n + 1, blank); + + /* + * Clear the newly shifted-in text. + */ + if (res != ERR + && (non_dest_scroll_region || (memory_below && bot == maxy))) { + static const NCURSES_CH_T blank2 = NewChar(BLANK_TEXT); + if (bot == maxy && clr_eos) { + GoTo(NCURSES_SP_ARGx bot - n + 1, 0); + ClrToEOS(NCURSES_SP_ARGx blank2); + } else { + for (i = 0; i < n; i++) { + GoTo(NCURSES_SP_ARGx bot - i, 0); + ClrToEOL(NCURSES_SP_ARGx blank2, FALSE); + } + } + } + + } else { /* (n < 0) - scroll down (backward) */ + res = scroll_csr_backward(NCURSES_SP_ARGx -n, top, bot, 0, maxy, blank); + + if (res == ERR && change_scroll_region) { + if (top != 0 + && (SP_PARM->_cursrow == top || + SP_PARM->_cursrow == top - 1) + && save_cursor && restore_cursor) { + cursor_saved = TRUE; + NCURSES_PUTP2("save_cursor", save_cursor); + } + NCURSES_PUTP2("change_scroll_region", + TIPARM_2(change_scroll_region, top, bot)); + if (cursor_saved) { + NCURSES_PUTP2("restore_cursor", restore_cursor); + } else { + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + } + + res = scroll_csr_backward(NCURSES_SP_ARGx + -n, top, bot, top, bot, blank); + + NCURSES_PUTP2("change_scroll_region", + TIPARM_2(change_scroll_region, 0, maxy)); + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + } + + if (res == ERR && SP_PARM->_nc_sp_idlok) + res = scroll_idl(NCURSES_SP_ARGx -n, bot + n + 1, top, blank); + + /* + * Clear the newly shifted-in text. + */ + if (res != ERR + && (non_dest_scroll_region || (memory_above && top == 0))) { + static const NCURSES_CH_T blank2 = NewChar(BLANK_TEXT); + for (i = 0; i < -n; i++) { + GoTo(NCURSES_SP_ARGx i + top, 0); + ClrToEOL(NCURSES_SP_ARGx blank2, FALSE); + } + } + } + + if (res == ERR) + return (ERR); + + _nc_scroll_window(CurScreen(SP_PARM), n, + (NCURSES_SIZE_T) top, + (NCURSES_SIZE_T) bot, + blank); + + /* shift hash values too - they can be reused */ + NCURSES_SP_NAME(_nc_scroll_oldhash) (NCURSES_SP_ARGx n, top, bot); + + return (OK); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_scrolln(int n, int top, int bot, int maxy) +{ + return NCURSES_SP_NAME(_nc_scrolln) (CURRENT_SCREEN, n, top, bot, maxy); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_screen_resume) (NCURSES_SP_DCL0) +{ + assert(SP_PARM); + + /* make sure terminal is in a sane known state */ + SetAttr(SCREEN_ATTRS(SP_PARM), A_NORMAL); + NewScreen(SP_PARM)->_clear = TRUE; + + /* reset color pairs and definitions */ + if (SP_PARM->_coloron || SP_PARM->_color_defs) + NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG); + + /* restore user-defined colors, if any */ + if (SP_PARM->_color_defs < 0 && !SP_PARM->_direct_color.value) { + int n; + SP_PARM->_color_defs = -(SP_PARM->_color_defs); + for (n = 0; n < SP_PARM->_color_defs; ++n) { + if (SP_PARM->_color_table[n].init) { + _nc_init_color(SP_PARM, + n, + SP_PARM->_color_table[n].r, + SP_PARM->_color_table[n].g, + SP_PARM->_color_table[n].b); + } + } + } + + if (exit_attribute_mode) + NCURSES_PUTP2("exit_attribute_mode", exit_attribute_mode); + else { + /* turn off attributes */ + if (exit_alt_charset_mode) + NCURSES_PUTP2("exit_alt_charset_mode", exit_alt_charset_mode); + if (exit_standout_mode) + NCURSES_PUTP2("exit_standout_mode", exit_standout_mode); + if (exit_underline_mode) + NCURSES_PUTP2("exit_underline_mode", exit_underline_mode); + } + if (exit_insert_mode) + NCURSES_PUTP2("exit_insert_mode", exit_insert_mode); + if (enter_am_mode && exit_am_mode) { + if (auto_right_margin) { + NCURSES_PUTP2("enter_am_mode", enter_am_mode); + } else { + NCURSES_PUTP2("exit_am_mode", exit_am_mode); + } + } +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_screen_resume(void) +{ + NCURSES_SP_NAME(_nc_screen_resume) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_screen_init) (NCURSES_SP_DCL0) +{ + NCURSES_SP_NAME(_nc_screen_resume) (NCURSES_SP_ARG); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_screen_init(void) +{ + NCURSES_SP_NAME(_nc_screen_init) (CURRENT_SCREEN); +} +#endif + +/* wrap up screen handling */ +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_screen_wrap) (NCURSES_SP_DCL0) +{ + if (SP_PARM != 0) { + + UpdateAttrs(SP_PARM, normal); +#if NCURSES_EXT_FUNCS + if (SP_PARM->_coloron + && !SP_PARM->_default_color) { + static const NCURSES_CH_T blank = NewChar(BLANK_TEXT); + SP_PARM->_default_color = TRUE; + NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx + -1, + 0, + FALSE, + NCURSES_SP_NAME(_nc_outch)); + SP_PARM->_default_color = FALSE; + + TINFO_MVCUR(NCURSES_SP_ARGx + SP_PARM->_cursrow, + SP_PARM->_curscol, + screen_lines(SP_PARM) - 1, + 0); + + ClrToEOL(NCURSES_SP_ARGx blank, TRUE); + } +#endif + if (SP_PARM->_color_defs) { + NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG); + } + } +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_screen_wrap(void) +{ + NCURSES_SP_NAME(_nc_screen_wrap) (CURRENT_SCREEN); +} +#endif + +#if USE_XMC_SUPPORT +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_do_xmc_glitch) (NCURSES_SP_DCLx attr_t previous) +{ + if (SP_PARM != 0) { + attr_t chg = XMC_CHANGES(previous ^ AttrOf(SCREEN_ATTRS(SP_PARM))); + + while (chg != 0) { + if (chg & 1) { + SP_PARM->_curscol += magic_cookie_glitch; + if (SP_PARM->_curscol >= SP_PARM->_columns) + wrap_cursor(NCURSES_SP_ARG); + TR(TRACE_UPDATE, ("bumped to %d,%d after cookie", + SP_PARM->_cursrow, SP_PARM->_curscol)); + } + chg >>= 1; + } + } +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_do_xmc_glitch(attr_t previous) +{ + NCURSES_SP_NAME(_nc_do_xmc_glitch) (CURRENT_SCREEN, previous); +} +#endif + +#endif /* USE_XMC_SUPPORT */ diff --git a/third_party/ncurses/unctrl.c b/third_party/ncurses/unctrl.c new file mode 100644 index 000000000..3dd243b31 --- /dev/null +++ b/third_party/ncurses/unctrl.c @@ -0,0 +1,147 @@ +/* generated by MKunctrl.awk */ + +#include "curses.priv.h" +#include + +#undef unctrl + +NCURSES_EXPORT(NCURSES_CONST char *) safe_unctrl(SCREEN *sp, chtype ch) +{ +static const short unctrl_table[] = { + 0, 3, 6, 9, 12, 15, 18, 21, + 24, 27, 30, 33, 36, 39, 42, 45, + 48, 51, 54, 57, 60, 63, 66, 69, + 72, 75, 78, 81, 84, 87, 90, 93, + 96, 98, 100, 102, 104, 106, 108, 110, + 112, 114, 116, 118, 120, 122, 124, 126, + 128, 130, 132, 134, 136, 138, 140, 142, + 144, 146, 148, 150, 152, 154, 156, 158, + 160, 162, 164, 166, 168, 170, 172, 174, + 176, 178, 180, 182, 184, 186, 188, 190, + 192, 194, 196, 198, 200, 202, 204, 206, + 208, 210, 212, 214, 216, 218, 220, 222, + 224, 226, 228, 230, 232, 234, 236, 238, + 240, 242, 244, 246, 248, 250, 252, 254, + 256, 258, 260, 262, 264, 266, 268, 270, + 272, 274, 276, 278, 280, 282, 284, 286, + 289, 292, 295, 298, 301, 304, 307, 310, + 313, 316, 319, 322, 325, 328, 331, 334, + 337, 340, 343, 346, 349, 352, 355, 358, + 361, 364, 367, 370, 373, 376, 379, 382, + 385, 389, 393, 397, 401, 405, 409, 413, + 417, 421, 425, 429, 433, 437, 441, 445, + 449, 453, 457, 461, 465, 469, 473, 477, + 481, 485, 489, 493, 497, 501, 505, 509, + 513, 517, 521, 525, 529, 533, 537, 541, + 545, 549, 553, 557, 561, 565, 569, 573, + 577, 581, 585, 589, 593, 597, 601, 605, + 609, 613, 617, 621, 625, 629, 633, 637, + 641, 645, 649, 653, 657, 661, 665, 669, + 673, 677, 681, 685, 689, 693, 697, 701, + 705, 709, 713, 717, 721, 725, 729, 733, + 737, 741, 745, 749, 753, 757, 761, 765,}; + +#if NCURSES_EXT_FUNCS +static const short unctrl_c1[] = { + 768, 770, 772, 774, 776, 778, 780, 782, + 784, 786, 788, 790, 792, 794, 796, 798, + 800, 802, 804, 806, 808, 810, 812, 814, + 816, 818, 820, 822, 824, 826, 828, 830, + 832, 834, 836, 838, 840, 842, 844, 846, + 848, 850, 852, 854, 856, 858, 860, 862, + 864, 866, 868, 870, 872, 874, 876, 878, + 880, 882, 884, 886, 888, 890, 892, 894, + 896, 898, 900, 902, 904, 906, 908, 910, + 912, 914, 916, 918, 920, 922, 924, 926, + 928, 930, 932, 934, 936, 938, 940, 942, + 944, 946, 948, 950, 952, 954, 956, 958, + 960, 962, 964, 966, 968, 970, 972, 974, + 976, 978, 980, 982, 984, 986, 988, 990, + 992, 994, 996, 998,1000,1002,1004,1006, + 1008,1010,1012,1014,1016,1018,1020,1022,}; +#endif /* NCURSES_EXT_FUNCS */ + +static const char unctrl_blob[] = + "^\100\0^\101\0^\102\0^\103\0^\104\0^\105\0^\106\0^\107\0" + "^\110\0^\111\0^\112\0^\113\0^\114\0^\115\0^\116\0^\117\0" + "^\120\0^\121\0^\122\0^\123\0^\124\0^\125\0^\126\0^\127\0" + "^\130\0^\131\0^\132\0^\133\0^\134\0^\135\0^\136\0^\137\0" + "\040\0\041\0\042\0\043\0\044\0\045\0\046\0\047\0" + "\050\0\051\0\052\0\053\0\054\0\055\0\056\0\057\0" + "\060\0\061\0\062\0\063\0\064\0\065\0\066\0\067\0" + "\070\0\071\0\072\0\073\0\074\0\075\0\076\0\077\0" + "\100\0\101\0\102\0\103\0\104\0\105\0\106\0\107\0" + "\110\0\111\0\112\0\113\0\114\0\115\0\116\0\117\0" + "\120\0\121\0\122\0\123\0\124\0\125\0\126\0\127\0" + "\130\0\131\0\132\0\133\0\134\0\135\0\136\0\137\0" + "\140\0\141\0\142\0\143\0\144\0\145\0\146\0\147\0" + "\150\0\151\0\152\0\153\0\154\0\155\0\156\0\157\0" + "\160\0\161\0\162\0\163\0\164\0\165\0\166\0\167\0" + "\170\0\171\0\172\0\173\0\174\0\175\0\176\0^?\0" + "~\100\0~\101\0~\102\0~\103\0~\104\0~\105\0~\106\0~\107\0" + "~\110\0~\111\0~\112\0~\113\0~\114\0~\115\0~\116\0~\117\0" + "~\120\0~\121\0~\122\0~\123\0~\124\0~\125\0~\126\0~\127\0" + "~\130\0~\131\0~\132\0~\133\0~\134\0~\135\0~\136\0~\137\0" + "M-\040\0M-\041\0M-\042\0M-\043\0M-\044\0M-\045\0M-\046\0M-\047\0" + "M-\050\0M-\051\0M-\052\0M-\053\0M-\054\0M-\055\0M-\056\0M-\057\0" + "M-\060\0M-\061\0M-\062\0M-\063\0M-\064\0M-\065\0M-\066\0M-\067\0" + "M-\070\0M-\071\0M-\072\0M-\073\0M-\074\0M-\075\0M-\076\0M-\077\0" + "M-\100\0M-\101\0M-\102\0M-\103\0M-\104\0M-\105\0M-\106\0M-\107\0" + "M-\110\0M-\111\0M-\112\0M-\113\0M-\114\0M-\115\0M-\116\0M-\117\0" + "M-\120\0M-\121\0M-\122\0M-\123\0M-\124\0M-\125\0M-\126\0M-\127\0" + "M-\130\0M-\131\0M-\132\0M-\133\0M-\134\0M-\135\0M-\136\0M-\137\0" + "M-\140\0M-\141\0M-\142\0M-\143\0M-\144\0M-\145\0M-\146\0M-\147\0" + "M-\150\0M-\151\0M-\152\0M-\153\0M-\154\0M-\155\0M-\156\0M-\157\0" + "M-\160\0M-\161\0M-\162\0M-\163\0M-\164\0M-\165\0M-\166\0M-\167\0" + "M-\170\0M-\171\0M-\172\0M-\173\0M-\174\0M-\175\0M-\176\0~?\0" +/* printable values in 128-255 range */ + "\200\0\201\0\202\0\203\0\204\0\205\0\206\0\207\0" + "\210\0\211\0\212\0\213\0\214\0\215\0\216\0\217\0" + "\220\0\221\0\222\0\223\0\224\0\225\0\226\0\227\0" + "\230\0\231\0\232\0\233\0\234\0\235\0\236\0\237\0" + "\240\0\241\0\242\0\243\0\244\0\245\0\246\0\247\0" + "\250\0\251\0\252\0\253\0\254\0\255\0\256\0\257\0" + "\260\0\261\0\262\0\263\0\264\0\265\0\266\0\267\0" + "\270\0\271\0\272\0\273\0\274\0\275\0\276\0\277\0" + "\300\0\301\0\302\0\303\0\304\0\305\0\306\0\307\0" + "\310\0\311\0\312\0\313\0\314\0\315\0\316\0\317\0" + "\320\0\321\0\322\0\323\0\324\0\325\0\326\0\327\0" + "\330\0\331\0\332\0\333\0\334\0\335\0\336\0\337\0" + "\340\0\341\0\342\0\343\0\344\0\345\0\346\0\347\0" + "\350\0\351\0\352\0\353\0\354\0\355\0\356\0\357\0" + "\360\0\361\0\362\0\363\0\364\0\365\0\366\0\367\0" + "\370\0\371\0\372\0\373\0\374\0\375\0\376\0\377\0" +; + + int check = (int) ChCharOf(ch); + const char *result; + +(void) sp; + if (check >= 0 && check < (int)SIZEOF(unctrl_table)) { +#if NCURSES_EXT_FUNCS + if ((sp != 0) + && (sp->_legacy_coding > 1) + && (check >= 128) + && (check < 160)) + result = unctrl_blob + unctrl_c1[check - 128]; + else + if ((check >= 160) + && (check < 256) + && ((sp != 0) + && ((sp->_legacy_coding > 0) + || (sp->_legacy_coding == 0 + && isprint(check))))) + result = unctrl_blob + unctrl_c1[check - 128]; + else +#endif /* NCURSES_EXT_FUNCS */ + result = unctrl_blob + unctrl_table[check]; + } else { + result = 0; + } + return (NCURSES_CONST char *)result; +} + +NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype ch) +{ + return safe_unctrl(CURRENT_SCREEN, ch); +} diff --git a/third_party/ncurses/unctrl.h b/third_party/ncurses/unctrl.h new file mode 100644 index 000000000..9ad4ed3a3 --- /dev/null +++ b/third_party/ncurses/unctrl.h @@ -0,0 +1,68 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2001,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* + * unctrl.h + * + * Display a printable version of a control character. + * Control characters are displayed in caret notation (^x), DELETE is displayed + * as ^?. Printable characters are displayed as is. + */ + +/* $Id: unctrl.h.in,v 1.12 2020/02/02 23:34:34 tom Exp $ */ + +#ifndef NCURSES_UNCTRL_H_incl +#define NCURSES_UNCTRL_H_incl 1 + +#undef NCURSES_VERSION +#define NCURSES_VERSION "6.4" + +#ifdef __cplusplus +extern "C" { +#endif + +#include "curses.h" + +#undef unctrl +NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype); + +#if 1 +NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(unctrl) (SCREEN*, chtype); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* NCURSES_UNCTRL_H_incl */ diff --git a/third_party/ncurses/use_screen.c b/third_party/ncurses/use_screen.c new file mode 100644 index 000000000..71672fe9d --- /dev/null +++ b/third_party/ncurses/use_screen.c @@ -0,0 +1,63 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2007-2009,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2007 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: use_screen.c,v 1.12 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +use_screen(SCREEN *screen, NCURSES_SCREEN_CB func, void *data) +{ + SCREEN *save_SP; + int code = OK; + TR_FUNC_BFR(1); + + T((T_CALLED("use_screen(%p,%s,%p)"), + (void *) screen, + TR_FUNC_ARG(0, func), + (void *) data)); + + /* + * FIXME - add a flag so a given thread can check if _it_ has already + * recurred through this point, return an error if so. + */ + _nc_lock_global(curses); + save_SP = CURRENT_SCREEN; + set_term(screen); + + code = func(screen, data); + + set_term(save_SP); + _nc_unlock_global(curses); + returnCode(code); +} diff --git a/third_party/ncurses/use_window.c b/third_party/ncurses/use_window.c new file mode 100644 index 000000000..a15e6c040 --- /dev/null +++ b/third_party/ncurses/use_window.c @@ -0,0 +1,54 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2007-2009,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2007 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: use_window.c,v 1.13 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(int) +use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data) +{ + int code = OK; + TR_FUNC_BFR(1); + + T((T_CALLED("use_window(%p,%s,%p)"), + (void *) win, + TR_FUNC_ARG(0, func), + data)); + + _nc_lock_global(curses); + code = func(win, data); + _nc_unlock_global(curses); + + returnCode(code); +} diff --git a/third_party/ncurses/varargs.c b/third_party/ncurses/varargs.c new file mode 100644 index 000000000..f2a85390a --- /dev/null +++ b/third_party/ncurses/varargs.c @@ -0,0 +1,192 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 2001-2008,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 2001 * + ****************************************************************************/ + +#include "curses.priv.h" + +#include + +MODULE_ID("$Id: varargs.c,v 1.12 2020/02/02 23:34:34 tom Exp $") + +#ifdef TRACE + +#define MAX_PARMS 10 + +typedef enum { + atUnknown = 0, atInteger, atFloat, atPoint, atString +} ARGTYPE; + +#define VA_INT(type) ival = (int) va_arg(ap, type) +#define VA_FLT(type) fval = va_arg(ap, type) +#define VA_PTR(type) pval = (char *)va_arg(ap, type) +#define VA_STR(type) sval = va_arg(ap, type) + +#define MyBuffer _nc_globals.tracearg_buf +#define MyLength _nc_globals.tracearg_used + +/* + * Returns a string that represents the parameter list of a printf-style call. + */ +NCURSES_EXPORT(char *) +_nc_varargs(const char *fmt, va_list ap) +{ + static char dummy[] = ""; + + char buffer[BUFSIZ]; + const char *param; + int n; + + if (fmt == 0 || *fmt == '\0') + return dummy; + if (MyLength == 0) + MyBuffer = typeMalloc(char, MyLength = BUFSIZ); + if (MyBuffer == 0) + return dummy; + *MyBuffer = '\0'; + + while (*fmt != '\0') { + if (*fmt == '%') { + char *pval = 0; /* avoid const-cast */ + const char *sval = ""; + double fval = 0.0; + int done = FALSE; + int ival = 0; + int type = 0; + ARGTYPE parm[MAX_PARMS]; + int parms = 0; + ARGTYPE used = atUnknown; + + while (*++fmt != '\0' && !done) { + + if (*fmt == '*') { + VA_INT(int); + if (parms < MAX_PARMS) + parm[parms++] = atInteger; + } else if (isalpha(UChar(*fmt))) { + done = TRUE; + switch (*fmt) { + case 'Z': /* FALLTHRU */ + case 'h': /* FALLTHRU */ + case 'l': /* FALLTHRU */ + done = FALSE; + type = *fmt; + break; + case 'i': /* FALLTHRU */ + case 'd': /* FALLTHRU */ + case 'u': /* FALLTHRU */ + case 'x': /* FALLTHRU */ + case 'X': /* FALLTHRU */ + if (type == 'l') + VA_INT(long); + else if (type == 'Z') + VA_INT(size_t); + else + VA_INT(int); + used = atInteger; + break; + case 'f': /* FALLTHRU */ + case 'e': /* FALLTHRU */ + case 'E': /* FALLTHRU */ + case 'g': /* FALLTHRU */ + case 'G': /* FALLTHRU */ + VA_FLT(double); + used = atFloat; + break; + case 'c': + VA_INT(int); + used = atInteger; + break; + case 's': + VA_STR(const char *); + used = atString; + break; + case 'p': + VA_PTR(void *); + used = atPoint; + break; + case 'n': + VA_PTR(int *); + used = atPoint; + break; + default: + break; + } + } else if (*fmt == '%') { + done = TRUE; + } + if (used != atUnknown && parms < MAX_PARMS) { + parm[parms++] = used; + for (n = 0; n < parms; ++n) { + used = parm[n]; + param = buffer; + switch (used) { + case atInteger: + _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) + "%d", ival); + break; + case atFloat: + _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) + "%f", fval); + break; + case atPoint: + _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) + "%p", pval); + break; + case atString: + param = _nc_visbuf2(1, sval); + break; + case atUnknown: + default: + _nc_STRCPY(buffer, "?", sizeof(buffer)); + break; + } + MyLength += strlen(param) + 2; + MyBuffer = typeRealloc(char, MyLength, MyBuffer); + if (MyBuffer != 0) { + _nc_SPRINTF(MyBuffer + strlen(MyBuffer), + _nc_SLIMIT(MyLength - strlen(MyBuffer)) + ", %s", param); + } + } + } + used = atUnknown; + } + } else { + fmt++; + } + } + + return (MyBuffer ? MyBuffer : dummy); +} +#else +EMPTY_MODULE(_nc_varargs) +#endif diff --git a/third_party/ncurses/version.c b/third_party/ncurses/version.c new file mode 100644 index 000000000..938065d3a --- /dev/null +++ b/third_party/ncurses/version.c @@ -0,0 +1,43 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1999-2004,2005 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1999 * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: version.c,v 1.7 2020/02/02 23:34:34 tom Exp $") + +NCURSES_EXPORT(const char *) +curses_version(void) +{ + T((T_CALLED("curses_version()"))); + returnCPtr("ncurses " NCURSES_VERSION_STRING); +} diff --git a/third_party/ncurses/visbuf.c b/third_party/ncurses/visbuf.c new file mode 100644 index 000000000..e1489dda0 --- /dev/null +++ b/third_party/ncurses/visbuf.c @@ -0,0 +1,378 @@ +/**************************************************************************** + * Copyright 2019-2020,2021 Thomas E. Dickey * + * Copyright 2001-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1996-on * + * and: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* + * visbuf.c - Tracing/Debugging support routines + */ + +#define NEED_NCURSES_CH_T +#include "curses.priv.h" + +#include "tic.h" +#include + +MODULE_ID("$Id: visbuf.c,v 1.53 2021/02/27 20:07:57 tom Exp $") + +#define NUM_VISBUFS 4 + +#define NormalLen(len) (size_t) (((size_t)(len) + 1) * 4) +#define WideLen(len) (size_t) (((size_t)(len) + 1) * 4 * (size_t) MB_CUR_MAX) + +#ifdef TRACE +static const char d_quote[] = StringOf(D_QUOTE); +static const char l_brace[] = StringOf(L_BRACE); +static const char r_brace[] = StringOf(R_BRACE); +#endif + +#if USE_STRING_HACKS && HAVE_SNPRINTF +#define VisChar(tp, chr, limit) _nc_vischar(tp, chr, limit) +#define LIMIT_ARG ,size_t limit +#else +#define VisChar(tp, chr, limit) _nc_vischar(tp, chr) +#define LIMIT_ARG /* nothing */ +#endif + +static char * +_nc_vischar(char *tp, unsigned c LIMIT_ARG) +{ + if (c == '"' || c == '\\') { + *tp++ = '\\'; + *tp++ = (char) c; + } else if (is7bits((int) c) && (isgraph((int) c) || c == ' ')) { + *tp++ = (char) c; + } else if (c == '\n') { + *tp++ = '\\'; + *tp++ = 'n'; + } else if (c == '\r') { + *tp++ = '\\'; + *tp++ = 'r'; + } else if (c == '\b') { + *tp++ = '\\'; + *tp++ = 'b'; + } else if (c == '\t') { + *tp++ = '\\'; + *tp++ = 't'; + } else if (c == '\033') { + *tp++ = '\\'; + *tp++ = 'e'; + } else if (UChar(c) == 0x7f) { + *tp++ = '\\'; + *tp++ = '^'; + *tp++ = '?'; + } else if (is7bits(c) && iscntrl(UChar(c))) { + *tp++ = '\\'; + *tp++ = '^'; + *tp++ = (char) ('@' + c); + } else { + _nc_SPRINTF(tp, _nc_SLIMIT(limit) + "\\%03lo", (unsigned long) ChCharOf(c)); + tp += strlen(tp); + } + *tp = 0; + return tp; +} + +static const char * +_nc_visbuf2n(int bufnum, const char *buf, int len) +{ + const char *vbuf = 0; + char *tp; + int count; + + if (buf == 0) + return ("(null)"); + if (buf == CANCELLED_STRING) + return ("(cancelled)"); + + if (len < 0) + len = (int) strlen(buf); + + count = len; +#ifdef TRACE + vbuf = tp = _nc_trace_buf(bufnum, NormalLen(len)); +#else + { + static char *mybuf[NUM_VISBUFS]; + int c; + + if (bufnum < 0) { + for (c = 0; c < NUM_VISBUFS; ++c) { + FreeAndNull(mybuf[c]); + } + tp = 0; + } else { + mybuf[bufnum] = typeRealloc(char, NormalLen(len), mybuf[bufnum]); + vbuf = tp = mybuf[bufnum]; + } + } +#endif + if (tp != 0) { + int c; + + *tp++ = D_QUOTE; + while ((--count >= 0) && (c = *buf++) != '\0') { + tp = VisChar(tp, UChar(c), NormalLen(len)); + } + *tp++ = D_QUOTE; + *tp = '\0'; + } else { + vbuf = ("(_nc_visbuf2n failed)"); + } + return (vbuf); +} + +NCURSES_EXPORT(const char *) +_nc_visbuf2(int bufnum, const char *buf) +{ + return _nc_visbuf2n(bufnum, buf, -1); +} + +NCURSES_EXPORT(const char *) +_nc_visbuf(const char *buf) +{ + return _nc_visbuf2(0, buf); +} + +NCURSES_EXPORT(const char *) +_nc_visbufn(const char *buf, int len) +{ + return _nc_visbuf2n(0, buf, len); +} + +#ifdef TRACE +#if USE_WIDEC_SUPPORT + +#if defined(USE_TERMLIB) +#define _nc_wchstrlen _my_wchstrlen +static int +_nc_wchstrlen(const cchar_t *s) +{ + int result = 0; + while (CharOf(s[result]) != L'\0') { + result++; + } + return result; +} +#endif + +static const char * +_nc_viswbuf2n(int bufnum, const wchar_t *buf, int len) +{ + const char *vbuf; + char *tp; + int count; + + if (buf == 0) + return ("(null)"); + + if (len < 0) + len = (int) wcslen(buf); + + count = len; +#ifdef TRACE + vbuf = tp = _nc_trace_buf(bufnum, WideLen(len)); +#else + { + static char *mybuf[NUM_VISBUFS]; + mybuf[bufnum] = typeRealloc(char, WideLen(len), mybuf[bufnum]); + vbuf = tp = mybuf[bufnum]; + } +#endif + if (tp != 0) { + wchar_t c; + + *tp++ = D_QUOTE; + while ((--count >= 0) && (c = *buf++) != '\0') { + char temp[CCHARW_MAX + 80]; + int j = wctomb(temp, c), k; + if (j <= 0) { + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "\\u%08X", (unsigned) c); + j = (int) strlen(temp); + } + for (k = 0; k < j; ++k) { + tp = VisChar(tp, UChar(temp[k]), WideLen(len)); + } + } + *tp++ = D_QUOTE; + *tp = '\0'; + } else { + vbuf = ("(_nc_viswbuf2n failed)"); + } + return (vbuf); +} + +NCURSES_EXPORT(const char *) +_nc_viswbuf2(int bufnum, const wchar_t *buf) +{ + return _nc_viswbuf2n(bufnum, buf, -1); +} + +NCURSES_EXPORT(const char *) +_nc_viswbuf(const wchar_t *buf) +{ + return _nc_viswbuf2(0, buf); +} + +NCURSES_EXPORT(const char *) +_nc_viswbufn(const wchar_t *buf, int len) +{ + return _nc_viswbuf2n(0, buf, len); +} + +/* this special case is used for wget_wstr() */ +NCURSES_EXPORT(const char *) +_nc_viswibuf(const wint_t *buf) +{ + static wchar_t *mybuf; + static unsigned mylen; + unsigned n; + + for (n = 0; buf[n] != 0; ++n) { + ; /* empty */ + } + if (mylen < ++n) { + mylen = n + 80; + if (mybuf != 0) + mybuf = typeRealloc(wchar_t, mylen, mybuf); + else + mybuf = typeMalloc(wchar_t, mylen); + } + if (mybuf != 0) { + for (n = 0; buf[n] != 0; ++n) { + mybuf[n] = (wchar_t) buf[n]; + } + mybuf[n] = L'\0'; + } + + return _nc_viswbuf2(0, mybuf); +} +#endif /* USE_WIDEC_SUPPORT */ + +/* use these functions for displaying parts of a line within a window */ +NCURSES_EXPORT(const char *) +_nc_viscbuf2(int bufnum, const NCURSES_CH_T *buf, int len) +{ + char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + + if (result != 0) { + int first = 0; + +#if USE_WIDEC_SUPPORT + if (len < 0) + len = _nc_wchstrlen(buf); +#endif /* USE_WIDEC_SUPPORT */ + + /* + * Display one or more strings followed by attributes. + */ + while (first < len) { + attr_t attr = AttrOf(buf[first]); + int last = len - 1; + int j; + + for (j = first + 1; j < len; ++j) { + if (!SameAttrOf(buf[j], buf[first])) { + last = j - 1; + break; + } + } + + (void) _nc_trace_bufcat(bufnum, l_brace); + (void) _nc_trace_bufcat(bufnum, d_quote); + for (j = first; j <= last; ++j) { + const char *found = _nc_altcharset_name(attr, (chtype) + CharOf(buf[j])); + if (found != 0) { + (void) _nc_trace_bufcat(bufnum, found); + attr &= ~A_ALTCHARSET; + } else +#if USE_WIDEC_SUPPORT + if (!isWidecExt(buf[j])) { + PUTC_DATA; + + for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) { + int k; + char temp[80]; + + PUTC_ch = buf[j].chars[PUTC_i]; + if (PUTC_ch == L'\0') { + if (PUTC_i == 0) + (void) _nc_trace_bufcat(bufnum, "\\000"); + break; + } + PUTC_INIT; + PUTC_n = (int) wcrtomb(PUTC_buf, + buf[j].chars[PUTC_i], &PUT_st); + if (PUTC_n <= 0 || buf[j].chars[PUTC_i] > 255) { + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "{%d:\\u%lx}", + _nc_wacs_width(buf[j].chars[PUTC_i]), + (unsigned long) buf[j].chars[PUTC_i]); + (void) _nc_trace_bufcat(bufnum, temp); + break; + } + for (k = 0; k < PUTC_n; k++) { + VisChar(temp, UChar(PUTC_buf[k]), sizeof(temp)); + (void) _nc_trace_bufcat(bufnum, temp); + } + } + } +#else + { + char temp[80]; + VisChar(temp, UChar(buf[j]), sizeof(temp)); + (void) _nc_trace_bufcat(bufnum, temp); + } +#endif /* USE_WIDEC_SUPPORT */ + } + (void) _nc_trace_bufcat(bufnum, d_quote); + if (attr != A_NORMAL) { + (void) _nc_trace_bufcat(bufnum, " | "); + (void) _nc_trace_bufcat(bufnum, _traceattr2(bufnum + 20, attr)); + } + result = _nc_trace_bufcat(bufnum, r_brace); + first = last + 1; + } + } + return result; +} + +NCURSES_EXPORT(const char *) +_nc_viscbuf(const NCURSES_CH_T *buf, int len) +{ + return _nc_viscbuf2(0, buf, len); +} +#endif /* TRACE */ diff --git a/third_party/ncurses/vsscanf.c b/third_party/ncurses/vsscanf.c new file mode 100644 index 000000000..273e5183a --- /dev/null +++ b/third_party/ncurses/vsscanf.c @@ -0,0 +1,357 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2004,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * State-machine fallback written by Thomas E. Dickey 2002 * + ****************************************************************************/ + +/* + * This function is needed to support vwscanw + */ + +#include "curses.priv.h" + +#if !HAVE_VSSCANF + +MODULE_ID("$Id: vsscanf.c,v 1.21 2020/02/02 23:34:34 tom Exp $") + +#if !(HAVE_VFSCANF || HAVE__DOSCAN) + +#include + +#define L_SQUARE '[' +#define R_SQUARE ']' + +typedef enum { + cUnknown + ,cError /* anything that isn't ANSI */ + ,cAssigned + ,cChar + ,cInt + ,cFloat + ,cDouble + ,cPointer + ,cLong + ,cShort + ,cRange + ,cString +} ChunkType; + +typedef enum { + oUnknown + ,oShort + ,oLong +} OtherType; + +typedef enum { + sUnknown + ,sPercent /* last was '%' beginning a format */ + ,sNormal /* ...somewhere in the middle */ + ,sLeft /* last was left square bracket beginning a range */ + ,sRange /* ...somewhere in the middle */ + ,sFinal /* last finished a format */ +} ScanState; + +static ChunkType +final_ch(int ch, OtherType other) +{ + ChunkType result = cUnknown; + + switch (ch) { + case 'c': + if (other == oUnknown) + result = cChar; + else + result = cError; + break; + case 'd': + case 'i': + case 'X': + case 'x': + switch (other) { + case oUnknown: + result = cInt; + break; + case oShort: + result = cShort; + break; + case oLong: + result = cLong; + break; + } + break; + case 'E': + case 'e': + case 'f': + case 'g': + switch (other) { + case oUnknown: + result = cFloat; + break; + case oShort: + result = cError; + break; + case oLong: + result = cDouble; + break; + } + break; + case 'n': + if (other == oUnknown) + result = cAssigned; + else + result = cError; + break; + case 'p': + if (other == oUnknown) + result = cPointer; + else + result = cError; + break; + case 's': + if (other == oUnknown) + result = cString; + else + result = cError; + break; + } + return result; +} + +static OtherType +other_ch(int ch) +{ + OtherType result = oUnknown; + switch (ch) { + case 'h': + result = oShort; + break; + case 'l': + result = oLong; + break; + } + return result; +} +#endif + +/*VARARGS2*/ +NCURSES_EXPORT(int) +vsscanf(const char *str, const char *format, va_list ap) +{ +#if HAVE_VFSCANF || HAVE__DOSCAN + /* + * This code should work on anything descended from AT&T SVr1. + */ + FILE strbuf; + + strbuf._flag = _IOREAD; + strbuf._ptr = strbuf._base = (unsigned char *) str; + strbuf._cnt = strlen(str); + strbuf._file = _NFILE; + +#if HAVE_VFSCANF + return (vfscanf(&strbuf, format, ap)); +#else + return (_doscan(&strbuf, format, ap)); +#endif +#else + static int can_convert = -1; + + int assigned = 0; + int consumed = 0; + + T((T_CALLED("vsscanf(%s,%s,...)"), + _nc_visbuf2(1, str), + _nc_visbuf2(2, format))); + + /* + * This relies on having a working "%n" format conversion. Check if it + * works. Only very old C libraries do not support it. + * + * FIXME: move this check into the configure script. + */ + if (can_convert < 0) { + int check1; + int check2; + if (sscanf("123", "%d%n", &check1, &check2) > 0 + && check1 == 123 + && check2 == 3) { + can_convert = 1; + } else { + can_convert = 0; + } + } + + if (can_convert) { + size_t len_fmt = strlen(format) + 32; + char *my_fmt = malloc(len_fmt); + ChunkType chunk, ctest; + OtherType other, otest; + ScanState state; + unsigned n; + int eaten; + void *pointer; + + if (my_fmt != 0) { + /* + * Split the original format into chunks, adding a "%n" to the end + * of each (except of course if it used %n), and use that + * information to decide where to start scanning the next chunk. + * + * FIXME: does %n count bytes or characters? If the latter, this + * will require further work for multibyte strings. + */ + while (*format != '\0') { + /* find a chunk */ + state = sUnknown; + chunk = cUnknown; + other = oUnknown; + pointer = 0; + for (n = 0; format[n] != 0 && state != sFinal; ++n) { + my_fmt[n] = format[n]; + switch (state) { + case sUnknown: + if (format[n] == '%') + state = sPercent; + break; + case sPercent: + if (format[n] == '%') { + state = sUnknown; + } else if (format[n] == L_SQUARE) { + state = sLeft; + } else { + state = sNormal; + --n; + } + break; + case sLeft: + state = sRange; + if (format[n] == '^') { + ++n; + my_fmt[n] = format[n]; + } + break; + case sRange: + if (format[n] == R_SQUARE) { + state = sFinal; + chunk = cRange; + } + break; + case sNormal: + if (format[n] == '*') { + state = sUnknown; + } else { + if ((ctest = final_ch(format[n], other)) != cUnknown) { + state = sFinal; + chunk = ctest; + } else if ((otest = other_ch(format[n])) != oUnknown) { + other = otest; + } else if (isalpha(UChar(format[n]))) { + state = sFinal; + chunk = cError; + } + } + break; + case sFinal: + break; + } + } + my_fmt[n] = '\0'; + format += n; + + if (chunk == cUnknown + || chunk == cError) { + if (assigned == 0) + assigned = EOF; + break; + } + + /* add %n, if the format was not that */ + if (chunk != cAssigned) { + _nc_STRCAT(my_fmt, "%n", len_fmt); + } + + switch (chunk) { + case cAssigned: + _nc_STRCAT(my_fmt, "%n", len_fmt); + pointer = &eaten; + break; + case cInt: + pointer = va_arg(ap, int *); + break; + case cShort: + pointer = va_arg(ap, short *); + break; + case cFloat: + pointer = va_arg(ap, float *); + break; + case cDouble: + pointer = va_arg(ap, double *); + break; + case cLong: + pointer = va_arg(ap, long *); + break; + case cPointer: + pointer = va_arg(ap, void *); + break; + case cChar: + case cRange: + case cString: + pointer = va_arg(ap, char *); + break; + case cError: + case cUnknown: + break; + } + /* do the conversion */ + T(("...converting chunk #%d type %d(%s,%s)", + assigned + 1, chunk, + _nc_visbuf2(1, str + consumed), + _nc_visbuf2(2, my_fmt))); + if (sscanf(str + consumed, my_fmt, pointer, &eaten) > 0) + consumed += eaten; + else + break; + ++assigned; + } + free(my_fmt); + } + } + returnCode(assigned); +#endif +} +#else +extern +NCURSES_EXPORT(void) +_nc_vsscanf(void); /* quiet's gcc warning */ +NCURSES_EXPORT(void) +_nc_vsscanf(void) +{ +} /* nonempty for strict ANSI compilers */ +#endif /* !HAVE_VSSCANF */ diff --git a/third_party/ncurses/wcwidth.h b/third_party/ncurses/wcwidth.h new file mode 100644 index 000000000..885c42e77 --- /dev/null +++ b/third_party/ncurses/wcwidth.h @@ -0,0 +1,328 @@ +/* + * This is an implementation of wcwidth() and wcswidth() (defined in + * IEEE Std 1002.1-2001) for Unicode. + * + * http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html + * http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html + * + * In fixed-width output devices, Latin characters all occupy a single + * "cell" position of equal width, whereas ideographic CJK characters + * occupy two such cells. Interoperability between terminal-line + * applications and (teletype-style) character terminals using the + * UTF-8 encoding requires agreement on which character should advance + * the cursor by how many cell positions. No established formal + * standards exist at present on which Unicode character shall occupy + * how many cell positions on character terminals. These routines are + * a first attempt of defining such behavior based on simple rules + * applied to data provided by the Unicode Consortium. + * + * For some graphical characters, the Unicode standard explicitly + * defines a character-cell width via the definition of the East Asian + * FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes. + * In all these cases, there is no ambiguity about which width a + * terminal shall use. For characters in the East Asian Ambiguous (A) + * class, the width choice depends purely on a preference of backward + * compatibility with either historic CJK or Western practice. + * Choosing single-width for these characters is easy to justify as + * the appropriate long-term solution, as the CJK practice of + * displaying these characters as double-width comes from historic + * implementation simplicity (8-bit encoded characters were displayed + * single-width and 16-bit ones double-width, even for Greek, + * Cyrillic, etc.) and not any typographic considerations. + * + * Much less clear is the choice of width for the Not East Asian + * (Neutral) class. Existing practice does not dictate a width for any + * of these characters. It would nevertheless make sense + * typographically to allocate two character cells to characters such + * as for instance EM SPACE or VOLUME INTEGRAL, which cannot be + * represented adequately with a single-width glyph. The following + * routines at present merely assign a single-cell width to all + * neutral characters, in the interest of simplicity. This is not + * entirely satisfactory and should be reconsidered before + * establishing a formal standard in this area. At the moment, the + * decision which Not East Asian (Neutral) characters should be + * represented by double-width glyphs cannot yet be answered by + * applying a simple rule from the Unicode database content. Setting + * up a proper standard for the behavior of UTF-8 character terminals + * will require a careful analysis not only of each Unicode character, + * but also of each presentation form, something the author of these + * routines has avoided to do so far. + * + * http://www.unicode.org/unicode/reports/tr11/ + * + * Markus Kuhn -- 2007-05-26 (Unicode 5.0) + * + * Permission to use, copy, modify, and distribute this software + * for any purpose and without fee is hereby granted. The author + * disclaims all warranties with regard to this software. + * + * Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c + */ + +#ifndef _WCWIDTH_H_incl +#define _WCWIDTH_H_incl 1 + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ncurses_cfg.h" +#include "ncurses_dll.h" + +#include + +struct interval { + int first; + int last; +}; + +/* auxiliary function for binary search in interval table */ +static int bisearch(wchar_t ucs, const struct interval *table, int max) { + int min = 0; + int mid; + + if (ucs < table[0].first || ucs > table[max].last) + return 0; + while (max >= min) { + mid = (min + max) / 2; + if (ucs > table[mid].last) + min = mid + 1; + else if (ucs < table[mid].first) + max = mid - 1; + else + return 1; + } + + return 0; +} + + +/* The following two functions define the column width of an ISO 10646 + * character as follows: + * + * - The null character (U+0000) has a column width of 0. + * + * - Other C0/C1 control characters and DEL will lead to a return + * value of -1. + * + * - Non-spacing and enclosing combining characters (general + * category code Mn or Me in the Unicode database) have a + * column width of 0. + * + * - SOFT HYPHEN (U+00AD) has a column width of 1. + * + * - Other format characters (general category code Cf in the Unicode + * database) and ZERO WIDTH SPACE (U+200B) have a column width of 0. + * + * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF) + * have a column width of 0. + * + * - Spacing characters in the East Asian Wide (W) or East Asian + * Full-width (F) category as defined in Unicode Technical + * Report #11 have a column width of 2. + * + * - All remaining characters (including all printable + * ISO 8859-1 and WGL4 characters, Unicode control characters, + * etc.) have a column width of 1. + * + * This implementation assumes that wchar_t characters are encoded + * in ISO 10646. + */ + +NCURSES_EXPORT(int) mk_wcwidth(wchar_t ucs) +{ + /* sorted list of non-overlapping intervals of non-spacing characters */ + /* generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c" */ + static const struct interval combining[] = { + { 0x0300, 0x036F }, { 0x0483, 0x0486 }, { 0x0488, 0x0489 }, + { 0x0591, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 }, + { 0x05C4, 0x05C5 }, { 0x05C7, 0x05C7 }, { 0x0600, 0x0603 }, + { 0x0610, 0x0615 }, { 0x064B, 0x065E }, { 0x0670, 0x0670 }, + { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED }, + { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A }, + { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, { 0x0901, 0x0902 }, + { 0x093C, 0x093C }, { 0x0941, 0x0948 }, { 0x094D, 0x094D }, + { 0x0951, 0x0954 }, { 0x0962, 0x0963 }, { 0x0981, 0x0981 }, + { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD }, + { 0x09E2, 0x09E3 }, { 0x0A01, 0x0A02 }, { 0x0A3C, 0x0A3C }, + { 0x0A41, 0x0A42 }, { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, + { 0x0A70, 0x0A71 }, { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC }, + { 0x0AC1, 0x0AC5 }, { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD }, + { 0x0AE2, 0x0AE3 }, { 0x0B01, 0x0B01 }, { 0x0B3C, 0x0B3C }, + { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 }, { 0x0B4D, 0x0B4D }, + { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 }, { 0x0BC0, 0x0BC0 }, + { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 }, { 0x0C46, 0x0C48 }, + { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 }, { 0x0CBC, 0x0CBC }, + { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD }, + { 0x0CE2, 0x0CE3 }, { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D }, + { 0x0DCA, 0x0DCA }, { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, + { 0x0E31, 0x0E31 }, { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, + { 0x0EB1, 0x0EB1 }, { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC }, + { 0x0EC8, 0x0ECD }, { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, + { 0x0F37, 0x0F37 }, { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, + { 0x0F80, 0x0F84 }, { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 }, + { 0x0F99, 0x0FBC }, { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, + { 0x1032, 0x1032 }, { 0x1036, 0x1037 }, { 0x1039, 0x1039 }, + { 0x1058, 0x1059 }, { 0x1160, 0x11FF }, { 0x135F, 0x135F }, + { 0x1712, 0x1714 }, { 0x1732, 0x1734 }, { 0x1752, 0x1753 }, + { 0x1772, 0x1773 }, { 0x17B4, 0x17B5 }, { 0x17B7, 0x17BD }, + { 0x17C6, 0x17C6 }, { 0x17C9, 0x17D3 }, { 0x17DD, 0x17DD }, + { 0x180B, 0x180D }, { 0x18A9, 0x18A9 }, { 0x1920, 0x1922 }, + { 0x1927, 0x1928 }, { 0x1932, 0x1932 }, { 0x1939, 0x193B }, + { 0x1A17, 0x1A18 }, { 0x1B00, 0x1B03 }, { 0x1B34, 0x1B34 }, + { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C }, { 0x1B42, 0x1B42 }, + { 0x1B6B, 0x1B73 }, { 0x1DC0, 0x1DCA }, { 0x1DFE, 0x1DFF }, + { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2063 }, + { 0x206A, 0x206F }, { 0x20D0, 0x20EF }, { 0x302A, 0x302F }, + { 0x3099, 0x309A }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B }, + { 0xA825, 0xA826 }, { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F }, + { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB }, + { 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, { 0x10A0C, 0x10A0F }, + { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, { 0x1D167, 0x1D169 }, + { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B }, { 0x1D1AA, 0x1D1AD }, + { 0x1D242, 0x1D244 }, { 0xE0001, 0xE0001 }, { 0xE0020, 0xE007F }, + { 0xE0100, 0xE01EF } + }; + + /* test for 8-bit control characters */ + if (ucs == 0) + return 0; + if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) + return -1; + + /* binary search in table of non-spacing characters */ + if (bisearch(ucs, combining, + sizeof(combining) / sizeof(struct interval) - 1)) + return 0; + + /* if we arrive here, ucs is not a combining or C0/C1 control character */ + + return 1 + + (ucs >= 0x1100 && + (ucs <= 0x115f || /* Hangul Jamo init. consonants */ + ucs == 0x2329 || ucs == 0x232a || + (ucs >= 0x2e80 && ucs <= 0xa4cf && + ucs != 0x303f) /* CJK ... Yi */ + || (ucs >= 0xac00 && ucs <= 0xd7a3) /* Hangul Syllables */ + || (ucs >= 0xf900 && ucs <= 0xfaff) /* CJK Compatibility Ideographs */ + || (ucs >= 0xfe10 && ucs <= 0xfe19) /* Vertical forms */ + || (ucs >= 0xfe30 && ucs <= 0xfe6f) /* CJK Compatibility Forms */ + || (ucs >= 0xff00 && ucs <= 0xff60) /* Fullwidth Forms */ + || (ucs >= 0xffe0 && ucs <= 0xffe6) +#if !defined(SIZEOF_WCHAR_T) || (SIZEOF_WCHAR_T >= 4) + || (ucs >= 0x20000 && ucs <= 0x2fffd) + || (ucs >= 0x30000 && ucs <= 0x3fffd) +#endif + )); +} + + +NCURSES_EXPORT(int) mk_wcswidth(const wchar_t *pwcs, size_t n) +{ + int w, width = 0; + + for (;*pwcs && n-- > 0; pwcs++) + if ((w = mk_wcwidth(*pwcs)) < 0) + return -1; + else + width += w; + + return width; +} + + +/* + * The following functions are the same as mk_wcwidth() and + * mk_wcswidth(), except that spacing characters in the East Asian + * Ambiguous (A) category as defined in Unicode Technical Report #11 + * have a column width of 2. This variant might be useful for users of + * CJK legacy encodings who want to migrate to UCS without changing + * the traditional terminal character-width behaviour. It is not + * otherwise recommended for general use. + */ +NCURSES_EXPORT(int) mk_wcwidth_cjk(wchar_t ucs) +{ + /* sorted list of non-overlapping intervals of East Asian Ambiguous + * characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */ + static const struct interval ambiguous[] = { + { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 }, + { 0x00AA, 0x00AA }, { 0x00AE, 0x00AE }, { 0x00B0, 0x00B4 }, + { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 }, + { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 }, + { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED }, + { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA }, + { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 }, + { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B }, + { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 }, + { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 }, + { 0x0148, 0x014B }, { 0x014D, 0x014D }, { 0x0152, 0x0153 }, + { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE }, + { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 }, + { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA }, + { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 }, + { 0x02C4, 0x02C4 }, { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB }, + { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB }, + { 0x02DD, 0x02DD }, { 0x02DF, 0x02DF }, { 0x0391, 0x03A1 }, + { 0x03A3, 0x03A9 }, { 0x03B1, 0x03C1 }, { 0x03C3, 0x03C9 }, + { 0x0401, 0x0401 }, { 0x0410, 0x044F }, { 0x0451, 0x0451 }, + { 0x2010, 0x2010 }, { 0x2013, 0x2016 }, { 0x2018, 0x2019 }, + { 0x201C, 0x201D }, { 0x2020, 0x2022 }, { 0x2024, 0x2027 }, + { 0x2030, 0x2030 }, { 0x2032, 0x2033 }, { 0x2035, 0x2035 }, + { 0x203B, 0x203B }, { 0x203E, 0x203E }, { 0x2074, 0x2074 }, + { 0x207F, 0x207F }, { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, + { 0x2103, 0x2103 }, { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, + { 0x2113, 0x2113 }, { 0x2116, 0x2116 }, { 0x2121, 0x2122 }, + { 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 }, + { 0x215B, 0x215E }, { 0x2160, 0x216B }, { 0x2170, 0x2179 }, + { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, { 0x21D2, 0x21D2 }, + { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, { 0x2200, 0x2200 }, + { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, { 0x220B, 0x220B }, + { 0x220F, 0x220F }, { 0x2211, 0x2211 }, { 0x2215, 0x2215 }, + { 0x221A, 0x221A }, { 0x221D, 0x2220 }, { 0x2223, 0x2223 }, + { 0x2225, 0x2225 }, { 0x2227, 0x222C }, { 0x222E, 0x222E }, + { 0x2234, 0x2237 }, { 0x223C, 0x223D }, { 0x2248, 0x2248 }, + { 0x224C, 0x224C }, { 0x2252, 0x2252 }, { 0x2260, 0x2261 }, + { 0x2264, 0x2267 }, { 0x226A, 0x226B }, { 0x226E, 0x226F }, + { 0x2282, 0x2283 }, { 0x2286, 0x2287 }, { 0x2295, 0x2295 }, + { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF }, + { 0x2312, 0x2312 }, { 0x2460, 0x24E9 }, { 0x24EB, 0x254B }, + { 0x2550, 0x2573 }, { 0x2580, 0x258F }, { 0x2592, 0x2595 }, + { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 }, + { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, { 0x25C0, 0x25C1 }, + { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB }, { 0x25CE, 0x25D1 }, + { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF }, { 0x2605, 0x2606 }, + { 0x2609, 0x2609 }, { 0x260E, 0x260F }, { 0x2614, 0x2615 }, + { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 }, + { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 }, + { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F }, + { 0x273D, 0x273D }, { 0x2776, 0x277F }, { 0xE000, 0xF8FF }, + { 0xFFFD, 0xFFFD }, { 0xF0000, 0xFFFFD }, { 0x100000, 0x10FFFD } + }; + + /* binary search in table of non-spacing characters */ + if (bisearch(ucs, ambiguous, + sizeof(ambiguous) / sizeof(struct interval) - 1)) + return 2; + + return mk_wcwidth(ucs); +} + + +NCURSES_EXPORT(int) mk_wcswidth_cjk(const wchar_t *pwcs, size_t n) +{ + int w, width = 0; + + for (;*pwcs && n-- > 0; pwcs++) + if ((w = mk_wcwidth_cjk(*pwcs)) < 0) + return -1; + else + width += w; + + return width; +} + +#ifdef __cplusplus +} +#endif + +#endif /* _WCWIDTH_H_incl 1 */ diff --git a/third_party/ncurses/win32_curses.h b/third_party/ncurses/win32_curses.h new file mode 100644 index 000000000..0c807a022 --- /dev/null +++ b/third_party/ncurses/win32_curses.h @@ -0,0 +1,75 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 2008-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 2008-on * + ****************************************************************************/ + +/* $Id: win32_curses.h,v 1.3 2021/06/17 21:26:02 tom Exp $ */ + +/* + * This is the interface we use on Windows to mimic the control of the settings + * of what acts like the classic TTY - the Windows Console. + */ + +#if (defined(_WIN32) || defined(_WIN64)) +#ifndef _NC_WIN32_CURSES_H +#define _NC_WIN32_CURSES_H 1 + +struct winconmode +{ + unsigned long dwFlagIn; + unsigned long dwFlagOut; +}; + +extern NCURSES_EXPORT(void*) _nc_console_fd2handle(int fd); +extern NCURSES_EXPORT(int) _nc_console_setmode(void* handle, const struct winconmode* arg); +extern NCURSES_EXPORT(int) _nc_console_getmode(void* handle, struct winconmode* arg); +extern NCURSES_EXPORT(int) _nc_console_flush(void* handle); + +/* + A few definitions of Unix functions we need to emulate +*/ +#define SIGHUP 1 +#define SIGKILL 9 + +#undef getlogin +#define getlogin() getenv("USERNAME") + +#undef ttyname +#define ttyname(fd) NULL + +#undef sleep +#define sleep(n) Sleep((n) * 1000) + +#undef gettimeofday +#define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz) + +#endif /* _NC_WIN32_CURSES_H */ +#endif /* _WIN32||_WIN64 */ diff --git a/third_party/ncurses/wresize.c b/third_party/ncurses/wresize.c new file mode 100644 index 000000000..e83e9cae4 --- /dev/null +++ b/third_party/ncurses/wresize.c @@ -0,0 +1,277 @@ +/**************************************************************************** + * Copyright 2019-2020,2021 Thomas E. Dickey * + * Copyright 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * + ****************************************************************************/ + +#include "curses.priv.h" + +MODULE_ID("$Id: wresize.c,v 1.42 2021/10/23 18:54:16 tom Exp $") + +static int +cleanup_lines(struct ldat *data, int length) +{ + while (--length >= 0) + FreeAndNull(data[length].text); + free(data); + return ERR; +} + +/* + * If we have reallocated the ldat structs, we will have to repair pointers + * used in subwindows. + */ +static void +repair_subwindows(WINDOW *cmp) +{ + WINDOWLIST *wp; + struct ldat *pline = cmp->_line; + int row; +#ifdef USE_SP_WINDOWLIST + SCREEN *sp = _nc_screen_of(cmp); +#endif + + _nc_lock_global(curses); + + for (each_window(SP_PARM, wp)) { + WINDOW *tst = &(wp->win); + + if (tst->_parent == cmp) { + +#define REPAIR1(field, limit) \ + if (tst->field > cmp->limit) \ + tst->field = cmp->limit + + REPAIR1(_pary, _maxy); + REPAIR1(_parx, _maxx); + +#define REPAIR2(field, limit) \ + if (tst->limit + tst->field > cmp->limit) \ + tst->limit = (NCURSES_SIZE_T) (cmp->limit - tst->field) + + REPAIR2(_pary, _maxy); + REPAIR2(_parx, _maxx); + +#define REPAIR3(field, limit) \ + if (tst->field > tst->limit) \ + tst->field = tst->limit + + REPAIR3(_cury, _maxy); + REPAIR3(_curx, _maxx); + + REPAIR3(_regtop, _maxy); + REPAIR3(_regbottom, _maxy); + + for (row = 0; row <= tst->_maxy; ++row) { + tst->_line[row].text = &pline[tst->_pary + row].text[tst->_parx]; + } + repair_subwindows(tst); + } + } + _nc_unlock_global(curses); +} + +/* + * Reallocate a curses WINDOW struct to either shrink or grow to the specified + * new lines/columns. If it grows, the new character cells are filled with + * blanks. The application is responsible for repainting the blank area. + */ +NCURSES_EXPORT(int) +wresize(WINDOW *win, int ToLines, int ToCols) +{ + int col, row, size_x, size_y; + struct ldat *pline; + struct ldat *new_lines = 0; + +#ifdef TRACE + T((T_CALLED("wresize(%p,%d,%d)"), (void *) win, ToLines, ToCols)); + if (win) { + TR(TRACE_UPDATE, ("...beg (%ld, %ld), max(%ld,%ld), reg(%ld,%ld)", + (long) win->_begy, (long) win->_begx, + (long) win->_maxy, (long) win->_maxx, + (long) win->_regtop, (long) win->_regbottom)); + if (USE_TRACEF(TRACE_UPDATE)) { + _tracedump("...before", win); + _nc_unlock_global(tracef); + } + } +#endif + + if (!win || --ToLines < 0 || --ToCols < 0) + returnCode(ERR); + + size_x = win->_maxx; + size_y = win->_maxy; + + if (ToLines == size_y + && ToCols == size_x) + returnCode(OK); + + if (IS_SUBWIN(win)) { + /* + * Check if the new limits will fit into the parent window's size. If + * not, do not resize. We could adjust the location of the subwindow, + * but the application may not like that. + */ + if (win->_pary + ToLines > win->_parent->_maxy + || win->_parx + ToCols > win->_parent->_maxx) { + returnCode(ERR); + } + pline = win->_parent->_line; + } else { + pline = 0; + } + + /* + * Allocate new memory as needed. Do the allocations without modifying + * the original window, in case an allocation fails. Always allocate + * (at least temporarily) the array pointing to the individual lines. + */ + new_lines = typeCalloc(struct ldat, (unsigned) (ToLines + 1)); + if (new_lines == 0) + returnCode(ERR); + + /* + * For each line in the target, allocate or adjust pointers for the + * corresponding text, depending on whether this is a window or a + * subwindow. + */ + for (row = 0; row <= ToLines; ++row) { + int begin = (row > size_y) ? 0 : (size_x + 1); + int end = ToCols; + NCURSES_CH_T *s; + + if (!IS_SUBWIN(win)) { + if (row <= size_y) { + if (ToCols != size_x) { + s = typeMalloc(NCURSES_CH_T, (unsigned) ToCols + 1); + if (s == 0) + returnCode(cleanup_lines(new_lines, row)); + for (col = 0; col <= ToCols; ++col) { + bool valid = (col <= size_x); + if_WIDEC({ + if (col == ToCols + && col < size_x + && isWidecBase(win->_line[row].text[col])) { + valid = FALSE; + } + }); + s[col] = (valid + ? win->_line[row].text[col] + : win->_nc_bkgd); + } + } else { + s = win->_line[row].text; + } + } else { + s = typeMalloc(NCURSES_CH_T, (unsigned) ToCols + 1); + if (s == 0) + returnCode(cleanup_lines(new_lines, row)); + for (col = 0; col <= ToCols; ++col) + s[col] = win->_nc_bkgd; + } + } else if (pline != 0 && pline[win->_pary + row].text != 0) { + s = &pline[win->_pary + row].text[win->_parx]; + } else { + s = 0; + } + + if_USE_SCROLL_HINTS(new_lines[row].oldindex = row); + if (row <= size_y) { + new_lines[row].firstchar = win->_line[row].firstchar; + new_lines[row].lastchar = win->_line[row].lastchar; + } + if ((ToCols != size_x) || (row > size_y)) { + if (end >= begin) { /* growing */ + if (new_lines[row].firstchar < begin) + new_lines[row].firstchar = (NCURSES_SIZE_T) begin; + } else { /* shrinking */ + new_lines[row].firstchar = 0; + } + new_lines[row].lastchar = (NCURSES_SIZE_T) ToCols; + } + new_lines[row].text = s; + } + + /* + * Dispose of unwanted memory. + */ + if (!(win->_flags & _SUBWIN)) { + if (ToCols == size_x) { + for (row = ToLines + 1; row <= size_y; row++) { + FreeAndNull(win->_line[row].text); + } + } else { + for (row = 0; row <= size_y; row++) { + FreeAndNull(win->_line[row].text); + } + } + } + + FreeAndNull(win->_line); + win->_line = new_lines; + + /* + * Finally, adjust the parameters showing screen size and cursor + * position: + */ + win->_maxx = (NCURSES_SIZE_T) ToCols; + win->_maxy = (NCURSES_SIZE_T) ToLines; + + if (win->_regtop > win->_maxy) + win->_regtop = win->_maxy; + if (win->_regbottom > win->_maxy + || win->_regbottom == size_y) + win->_regbottom = win->_maxy; + + if (win->_curx > win->_maxx) + win->_curx = win->_maxx; + if (win->_cury > win->_maxy) + win->_cury = win->_maxy; + + /* + * Check for subwindows of this one, and readjust pointers to our text, + * if needed. + */ + repair_subwindows(win); + +#ifdef TRACE + TR(TRACE_UPDATE, ("...beg (%ld, %ld), max(%ld,%ld), reg(%ld,%ld)", + (long) win->_begy, (long) win->_begx, + (long) win->_maxy, (long) win->_maxx, + (long) win->_regtop, (long) win->_regbottom)); + if (USE_TRACEF(TRACE_UPDATE)) { + _tracedump("...after:", win); + _nc_unlock_global(tracef); + } +#endif + returnCode(OK); +} diff --git a/third_party/ncurses/write_entry.c b/third_party/ncurses/write_entry.c new file mode 100644 index 000000000..f07dd847c --- /dev/null +++ b/third_party/ncurses/write_entry.c @@ -0,0 +1,945 @@ +/**************************************************************************** + * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * write_entry.c -- write a terminfo structure onto the file system + */ + +#include "curses.priv.h" +#include "hashed_db.h" + +#include "tic.h" + +#if 1 +#define TRACE_OUT(p) DEBUG(2, p) +#define TRACE_NUM(n) if (VALID_NUMERIC(Numbers[n])) { \ + TRACE_OUT(("put Numbers[%u]=%d", (unsigned) (n), Numbers[n])); } +#else +#define TRACE_OUT(p) /*nothing */ +#define TRACE_NUM(n) /* nothing */ +#endif + +MODULE_ID("$Id: write_entry.c,v 1.120 2022/04/23 19:59:10 tom Exp $") + +static int total_written; +static int total_parts; +static int total_size; + +static int make_db_root(const char *); + +#if !USE_HASHED_DB +static void +write_file(char *filename, TERMTYPE2 *tp) +{ + char buffer[MAX_ENTRY_SIZE]; + unsigned limit = sizeof(buffer); + unsigned offset = 0; + + if (_nc_write_object(tp, buffer, &offset, limit) == ERR) { + _nc_warning("entry is larger than %u bytes", limit); + } else { + FILE *fp = ((_nc_access(filename, W_OK) == 0) + ? safe_fopen(filename, BIN_W) + : 0); + size_t actual; + + if (fp == 0) { + perror(filename); + _nc_syserr_abort("can't open %s/%s", _nc_tic_dir(0), filename); + } + + actual = fwrite(buffer, sizeof(char), (size_t) offset, fp); + if (actual != offset) { + int myerr = ferror(fp) ? errno : 0; + if (myerr) { + _nc_syserr_abort("error writing %s/%s: %s", + _nc_tic_dir(0), + filename, + strerror(myerr)); + } else { + _nc_syserr_abort("error writing %s/%s: %u bytes vs actual %lu", + _nc_tic_dir(0), + filename, + offset, + (unsigned long) actual); + } + } else { + fclose(fp); + DEBUG(1, ("Created %s", filename)); + } + } +} + +/* + * Check for access rights to destination directories + * Create any directories which don't exist. + * + * Note: there's no reason to return the result of make_db_root(), since + * this function is called only in instances where that has to succeed. + */ +static void +check_writeable(int code) +{ + static const char dirnames[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + static bool verified[sizeof(dirnames)]; + + char dir[sizeof(LEAF_FMT)]; + char *s = 0; + + if (code == 0 || (s = (strchr) (dirnames, code)) == 0) + _nc_err_abort("Illegal terminfo subdirectory \"" LEAF_FMT "\"", code); + + if (verified[s - dirnames]) + return; + + _nc_SPRINTF(dir, _nc_SLIMIT(sizeof(dir)) LEAF_FMT, code); + if (make_db_root(dir) < 0) { + _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir); + } + + verified[s - dirnames] = TRUE; +} +#endif /* !USE_HASHED_DB */ + +static int +make_db_path(char *dst, const char *src, size_t limit) +{ + int rc = -1; + const char *top = _nc_tic_dir(0); + + if (src == top || _nc_is_abs_path(src)) { + if (strlen(src) + 1 <= limit) { + _nc_STRCPY(dst, src, limit); + rc = 0; + } + } else { + if ((strlen(top) + strlen(src) + 6) <= limit) { + _nc_SPRINTF(dst, _nc_SLIMIT(limit) "%s/%s", top, src); + rc = 0; + } + } +#if USE_HASHED_DB + if (rc == 0) { + static const char suffix[] = DBM_SUFFIX; + size_t have = strlen(dst); + size_t need = strlen(suffix); + if (have > need && strcmp(dst + (int) (have - need), suffix)) { + if (have + need <= limit) { + _nc_STRCAT(dst, suffix, limit); + } else { + rc = -1; + } + } else if (_nc_is_dir_path(dst)) { + rc = -1; + } + } +#endif + return rc; +} + +/* + * Make a database-root if it doesn't exist. + */ +static int +make_db_root(const char *path) +{ + int rc; + char fullpath[PATH_MAX]; + + if ((rc = make_db_path(fullpath, path, sizeof(fullpath))) == 0) { +#if USE_HASHED_DB + DB *capdbp; + + if ((capdbp = _nc_db_open(fullpath, TRUE)) == NULL) { + rc = -1; + } else if (_nc_db_close(capdbp) < 0) { + rc = -1; + } +#else + struct stat statbuf; + + if ((rc = stat(path, &statbuf)) == -1) { + rc = mkdir(path +#ifndef _NC_WINDOWS + ,0777 +#endif + ); + } else if (_nc_access(path, R_OK | W_OK | X_OK) < 0) { + rc = -1; /* permission denied */ + } else if (!(S_ISDIR(statbuf.st_mode))) { + rc = -1; /* not a directory */ + } +#endif + } + return rc; +} + +/* + * Set the write directory for compiled entries. + */ +NCURSES_EXPORT(void) +_nc_set_writedir(const char *dir) +{ + const char *destination; + char actual[PATH_MAX]; + + if (dir == 0 +#ifndef USE_ROOT_ENVIRON + && use_terminfo_vars() +#endif + ) + dir = getenv("TERMINFO"); + + if (dir != 0) + (void) _nc_tic_dir(dir); + + destination = _nc_tic_dir(0); + if (make_db_root(destination) < 0) { + char *home = _nc_home_terminfo(); + + if (home != 0) { + destination = home; + if (make_db_root(destination) < 0) + _nc_err_abort("%s: permission denied (errno %d)", + destination, errno); + } + } + + /* + * Note: because of this code, this logic should be exercised + * *once only* per run. + */ +#if USE_HASHED_DB + make_db_path(actual, destination, sizeof(actual)); +#else + if (chdir(_nc_tic_dir(destination)) < 0 + || getcwd(actual, sizeof(actual)) == 0) + _nc_err_abort("%s: not a directory", destination); +#endif + _nc_keep_tic_dir(actual); +} + +/* + * Save the compiled version of a description in the filesystem. + * + * make a copy of the name-list + * break it up into first-name and all-but-last-name + * creat(first-name) + * write object information to first-name + * close(first-name) + * for each name in all-but-last-name + * link to first-name + * + * Using 'time()' to obtain a reference for file timestamps is unreliable, + * e.g., with NFS, because the filesystem may have a different time + * reference. We check for pre-existence of links by latching the first + * timestamp from a file that we create. + * + * The _nc_warning() calls will report a correct line number only if + * _nc_curr_line is properly set before the write_entry() call. + */ + +NCURSES_EXPORT(void) +_nc_write_entry(TERMTYPE2 *const tp) +{ +#if USE_HASHED_DB + + char buffer[MAX_ENTRY_SIZE + 1]; + unsigned limit = sizeof(buffer); + unsigned offset = 0; + +#else /* !USE_HASHED_DB */ + + struct stat statbuf; + char filename[PATH_MAX]; + char linkname[PATH_MAX]; +#if USE_SYMLINKS + char symlinkname[PATH_MAX]; +#if !HAVE_LINK +#undef HAVE_LINK +#define HAVE_LINK 1 +#endif +#endif /* USE_SYMLINKS */ + + unsigned limit2 = sizeof(filename) - (2 + LEAF_LEN); + char saved = '\0'; + + static int call_count; + static time_t start_time; /* time at start of writes */ + +#endif /* USE_HASHED_DB */ + + char name_list[MAX_TERMINFO_LENGTH]; + char *first_name, *other_names; + char *ptr; + char *term_names = tp->term_names; + size_t name_size = strlen(term_names); + + if (name_size == 0) { + _nc_syserr_abort("no terminal name found."); + } else if (name_size >= sizeof(name_list) - 1) { + _nc_syserr_abort("terminal name too long: %s", term_names); + } + + _nc_STRCPY(name_list, term_names, sizeof(name_list)); + DEBUG(7, ("Name list = '%s'", name_list)); + + first_name = name_list; + + ptr = &name_list[name_size - 1]; + other_names = ptr + 1; + + while (ptr > name_list && *ptr != '|') + ptr--; + + if (ptr != name_list) { + *ptr = '\0'; + + for (ptr = name_list; *ptr != '\0' && *ptr != '|'; ptr++) + continue; + + if (*ptr == '\0') + other_names = ptr; + else { + *ptr = '\0'; + other_names = ptr + 1; + } + } + + DEBUG(7, ("First name = '%s'", first_name)); + DEBUG(7, ("Other names = '%s'", other_names)); + + _nc_set_type(first_name); + +#if USE_HASHED_DB + if (_nc_write_object(tp, buffer + 1, &offset, limit - 1) != ERR) { + DB *capdb = _nc_db_open(_nc_tic_dir(0), TRUE); + DBT key, data; + + if (capdb != 0) { + buffer[0] = 0; + + memset(&key, 0, sizeof(key)); + key.data = term_names; + key.size = name_size; + + memset(&data, 0, sizeof(data)); + data.data = buffer; + data.size = offset + 1; + + _nc_db_put(capdb, &key, &data); + + buffer[0] = 2; + + key.data = name_list; + key.size = strlen(name_list); + + _nc_STRCPY(buffer + 1, + term_names, + sizeof(buffer) - 1); + data.size = name_size + 1; + + total_size += data.size; + total_parts++; + _nc_db_put(capdb, &key, &data); + + while (*other_names != '\0') { + ptr = other_names++; + assert(ptr < buffer + sizeof(buffer) - 1); + while (*other_names != '|' && *other_names != '\0') + other_names++; + + if (*other_names != '\0') + *(other_names++) = '\0'; + + key.data = ptr; + key.size = strlen(ptr); + + total_size += data.size; + total_parts++; + _nc_db_put(capdb, &key, &data); + } + } + } +#else /* !USE_HASHED_DB */ + if (call_count++ == 0) { + start_time = 0; + } + + if (strlen(first_name) >= limit2) { + _nc_warning("terminal name too long."); + saved = first_name[limit2]; + first_name[limit2] = '\0'; + } + + _nc_SPRINTF(filename, _nc_SLIMIT(sizeof(filename)) + LEAF_FMT "/%.*s", UChar(first_name[0]), + (int) (sizeof(filename) - (LEAF_LEN + 2)), + first_name); + + if (saved) + first_name[limit2] = saved; + + /* + * Has this primary name been written since the first call to + * write_entry()? If so, the newer write will step on the older, + * so warn the user. + */ + if (start_time > 0 && + stat(filename, &statbuf) >= 0 + && statbuf.st_mtime >= start_time) { +#if HAVE_LINK && !USE_SYMLINKS + /* + * If the file has more than one link, the reason for the previous + * write could be that the current primary name used to be an alias for + * the previous entry. In that case, unlink the file so that we will + * not modify the previous entry as we write this one. + */ + if (statbuf.st_nlink > 1) { + _nc_warning("name redefined."); + unlink(filename); + } else { + _nc_warning("name multiply defined."); + } +#else + _nc_warning("name multiply defined."); +#endif + } + + check_writeable(first_name[0]); + write_file(filename, tp); + + if (start_time == 0) { + if (stat(filename, &statbuf) == -1 + || (start_time = statbuf.st_mtime) == 0) { + _nc_syserr_abort("error obtaining time from %s/%s", + _nc_tic_dir(0), filename); + } + } + while (*other_names != '\0') { + ptr = other_names++; + while (*other_names != '|' && *other_names != '\0') + other_names++; + + if (*other_names != '\0') + *(other_names++) = '\0'; + + if (strlen(ptr) > sizeof(linkname) - (2 + LEAF_LEN)) { + _nc_warning("terminal alias %s too long.", ptr); + continue; + } + if (strchr(ptr, '/') != 0) { + _nc_warning("cannot link alias %s.", ptr); + continue; + } + + check_writeable(ptr[0]); + _nc_SPRINTF(linkname, _nc_SLIMIT(sizeof(linkname)) + LEAF_FMT "/%.*s", ptr[0], + (int) sizeof(linkname) - (2 + LEAF_LEN), ptr); + + if (strcmp(filename, linkname) == 0) { + _nc_warning("self-synonym ignored"); + } else if (stat(linkname, &statbuf) >= 0 && + statbuf.st_mtime < start_time) { + _nc_warning("alias %s multiply defined.", ptr); + } else if (_nc_access(linkname, W_OK) == 0) +#if HAVE_LINK + { + int code; +#if USE_SYMLINKS +#define MY_SIZE sizeof(symlinkname) - 1 + if (first_name[0] == linkname[0]) { + _nc_STRNCPY(symlinkname, first_name, MY_SIZE); + } else { + _nc_STRCPY(symlinkname, "../", sizeof(symlinkname)); + _nc_STRNCPY(symlinkname + 3, filename, MY_SIZE - 3); + } + symlinkname[MY_SIZE] = '\0'; +#endif /* USE_SYMLINKS */ +#if HAVE_REMOVE + code = remove(linkname); +#else + code = unlink(linkname); +#endif + if (code != 0 && errno == ENOENT) + code = 0; +#if USE_SYMLINKS + if (symlink(symlinkname, linkname) < 0) +#else + if (link(filename, linkname) < 0) +#endif /* USE_SYMLINKS */ + { + /* + * If there wasn't anything there, and we cannot + * link to the target because it is the same as the + * target, then the source must be on a filesystem + * that uses caseless filenames, such as Win32, etc. + */ + if (code == 0 && errno == EEXIST) + _nc_warning("can't link %s to %s", filename, linkname); + else if (code == 0 && (errno == EPERM || errno == ENOENT)) + write_file(linkname, tp); + else { +#if MIXEDCASE_FILENAMES + _nc_syserr_abort("can't link %s to %s", filename, linkname); +#else + _nc_warning("can't link %s to %s (errno=%d)", filename, + linkname, errno); +#endif + } + } else { + DEBUG(1, ("Linked %s", linkname)); + } + } +#else /* just make copies */ + write_file(linkname, tp); +#endif /* HAVE_LINK */ + } +#endif /* USE_HASHED_DB */ +} + +static size_t +fake_write(char *dst, + unsigned *offset, + size_t limit, + char *src, + size_t want, + size_t size) +{ + size_t have = (limit - *offset); + + want *= size; + if (have > 0) { + if (want > have) + want = have; + memcpy(dst + *offset, src, want); + *offset += (unsigned) want; + } else { + want = 0; + } + return (want / size); +} + +#define Write(buf, size, count) fake_write(buffer, offset, (size_t) limit, (char *) buf, (size_t) count, (size_t) size) + +#undef LITTLE_ENDIAN /* BSD/OS defines this as a feature macro */ +#define HI(x) ((x) / 256) +#define LO(x) ((x) % 256) +#define LITTLE_ENDIAN(p, x) (p)[0] = (unsigned char)LO(x), \ + (p)[1] = (unsigned char)HI(x) + +#define WRITE_STRING(str) (Write(str, sizeof(char), strlen(str) + 1) == strlen(str) + 1) + +static int +compute_offsets(char **Strings, size_t strmax, short *offsets) +{ + int nextfree = 0; + size_t i; + + for (i = 0; i < strmax; i++) { + if (Strings[i] == ABSENT_STRING) { + offsets[i] = -1; + } else if (Strings[i] == CANCELLED_STRING) { + offsets[i] = -2; + } else { + offsets[i] = (short) nextfree; + nextfree += (int) strlen(Strings[i]) + 1; + TRACE_OUT(("put Strings[%d]=%s(%d)", (int) i, + _nc_visbuf(Strings[i]), (int) nextfree)); + } + } + return nextfree; +} + +static size_t +convert_shorts(unsigned char *buf, short *Numbers, size_t count) +{ + size_t i; + for (i = 0; i < count; i++) { + if (Numbers[i] == ABSENT_NUMERIC) { /* HI/LO won't work */ + buf[2 * i] = buf[2 * i + 1] = 0377; + } else if (Numbers[i] == CANCELLED_NUMERIC) { /* HI/LO won't work */ + buf[2 * i] = 0376; + buf[2 * i + 1] = 0377; + } else { + LITTLE_ENDIAN(buf + 2 * i, Numbers[i]); + TRACE_OUT(("put Numbers[%u]=%d", (unsigned) i, Numbers[i])); + } + } + return SIZEOF_SHORT; +} + +#if NCURSES_EXT_NUMBERS +static size_t +convert_16bit(unsigned char *buf, NCURSES_INT2 *Numbers, size_t count) +{ + size_t i, j; + size_t size = SIZEOF_SHORT; + for (i = 0; i < count; i++) { + unsigned value = (unsigned) Numbers[i]; + TRACE_NUM(i); + for (j = 0; j < size; ++j) { + *buf++ = value & 0xff; + value >>= 8; + } + } + return size; +} + +static size_t +convert_32bit(unsigned char *buf, NCURSES_INT2 *Numbers, size_t count) +{ + size_t i, j; + size_t size = SIZEOF_INT2; + for (i = 0; i < count; i++) { + unsigned value = (unsigned) Numbers[i]; + TRACE_NUM(i); + for (j = 0; j < size; ++j) { + *buf++ = value & 0xff; + value >>= 8; + } + } + return size; +} +#endif + +#define even_boundary(value) \ + ((value) % 2 != 0 && Write(&zero, sizeof(char), 1) != 1) + +#if NCURSES_XNAMES +static unsigned +extended_Booleans(TERMTYPE2 *tp) +{ + unsigned result = 0; + unsigned i; + + for (i = 0; i < tp->ext_Booleans; ++i) { + if (tp->Booleans[BOOLCOUNT + i] == TRUE) + result = (i + 1); + } + return result; +} + +static unsigned +extended_Numbers(TERMTYPE2 *tp) +{ + unsigned result = 0; + unsigned i; + + for (i = 0; i < tp->ext_Numbers; ++i) { + if (tp->Numbers[NUMCOUNT + i] != ABSENT_NUMERIC) + result = (i + 1); + } + return result; +} + +static unsigned +extended_Strings(TERMTYPE2 *tp) +{ + unsigned short result = 0; + unsigned short i; + + for (i = 0; i < tp->ext_Strings; ++i) { + if (tp->Strings[STRCOUNT + i] != ABSENT_STRING) + result = (unsigned short) (i + 1); + } + return result; +} + +/* + * _nc_align_termtype() will extend entries that are referenced in a use= + * clause - discard the unneeded data. + */ +static bool +extended_object(TERMTYPE2 *tp) +{ + bool result = FALSE; + + if (_nc_user_definable) { + result = ((extended_Booleans(tp) + + extended_Numbers(tp) + + extended_Strings(tp)) != 0); + } + return result; +} +#endif + +NCURSES_EXPORT(int) +_nc_write_object(TERMTYPE2 *tp, char *buffer, unsigned *offset, unsigned limit) +{ + char *namelist; + size_t namelen, boolmax, nummax, strmax, numlen; + char zero = '\0'; + size_t i; + int nextfree; + short offsets[MAX_ENTRY_SIZE / 2]; + unsigned char buf[MAX_ENTRY_SIZE]; + unsigned last_bool = BOOLWRITE; + unsigned last_num = NUMWRITE; + unsigned last_str = STRWRITE; +#if NCURSES_EXT_NUMBERS + bool need_ints = FALSE; + size_t (*convert_numbers) (unsigned char *, NCURSES_INT2 *, size_t) = convert_32bit; +#else +#define convert_numbers convert_shorts +#endif + +#if NCURSES_XNAMES + /* + * Normally we limit the list of values to exclude the "obsolete" + * capabilities. However, if we are accepting extended names, add + * these as well, since they are used for supporting translation + * to/from termcap. + */ + if (_nc_user_definable) { + last_bool = BOOLCOUNT; + last_num = NUMCOUNT; + last_str = STRCOUNT; + } +#endif + + namelist = tp->term_names; + namelen = strlen(namelist) + 1; + + boolmax = 0; + for (i = 0; i < last_bool; i++) { + if (tp->Booleans[i] == TRUE) { + boolmax = i + 1; + } + } + + nummax = 0; + for (i = 0; i < last_num; i++) { + if (tp->Numbers[i] != ABSENT_NUMERIC) { + nummax = i + 1; +#if NCURSES_EXT_NUMBERS + if (tp->Numbers[i] > MAX_OF_TYPE(NCURSES_COLOR_T)) { + need_ints = TRUE; + } +#endif + } + } + + strmax = 0; + for (i = 0; i < last_str; i++) { + if (tp->Strings[i] != ABSENT_STRING) + strmax = i + 1; + } + + nextfree = compute_offsets(tp->Strings, strmax, offsets); + + /* fill in the header */ +#if NCURSES_EXT_NUMBERS + if (need_ints) { + convert_numbers = convert_32bit; + LITTLE_ENDIAN(buf, MAGIC2); + } else { + convert_numbers = convert_16bit; + LITTLE_ENDIAN(buf, MAGIC); + } +#else + LITTLE_ENDIAN(buf, MAGIC); +#endif + LITTLE_ENDIAN(buf + 2, min(namelen, MAX_NAME_SIZE + 1)); + LITTLE_ENDIAN(buf + 4, boolmax); + LITTLE_ENDIAN(buf + 6, nummax); + LITTLE_ENDIAN(buf + 8, strmax); + LITTLE_ENDIAN(buf + 10, nextfree); + + /* write out the header */ + TRACE_OUT(("Header of %s @%d", namelist, *offset)); + if (Write(buf, 12, 1) != 1 + || Write(namelist, sizeof(char), namelen) != namelen) { + return (ERR); + } + + for (i = 0; i < boolmax; i++) { + if (tp->Booleans[i] == TRUE) { + buf[i] = TRUE; + } else { + buf[i] = FALSE; + } + } + if (Write(buf, sizeof(char), boolmax) != boolmax) { + return (ERR); + } + + if (even_boundary(namelen + boolmax)) { + return (ERR); + } + + TRACE_OUT(("Numerics begin at %04x", *offset)); + + /* the numerics */ + numlen = convert_numbers(buf, tp->Numbers, nummax); + if (Write(buf, numlen, nummax) != nummax) { + return (ERR); + } + + TRACE_OUT(("String offsets begin at %04x", *offset)); + + /* the string offsets */ + convert_shorts(buf, offsets, strmax); + if (Write(buf, SIZEOF_SHORT, strmax) != strmax) { + return (ERR); + } + + TRACE_OUT(("String table begins at %04x", *offset)); + + /* the strings */ + for (i = 0; i < strmax; i++) { + if (VALID_STRING(tp->Strings[i])) { + if (!WRITE_STRING(tp->Strings[i])) { + return (ERR); + } + } + } + +#if NCURSES_XNAMES + if (extended_object(tp)) { + unsigned ext_total = (unsigned) NUM_EXT_NAMES(tp); + unsigned ext_usage = ext_total; + + if (even_boundary(nextfree)) { + return (ERR); + } + + nextfree = compute_offsets(tp->Strings + STRCOUNT, + (size_t) tp->ext_Strings, + offsets); + TRACE_OUT(("after extended string capabilities, nextfree=%d", nextfree)); + + if (tp->ext_Strings >= SIZEOF(offsets)) { + return (ERR); + } + + nextfree += compute_offsets(tp->ext_Names, + (size_t) ext_total, + offsets + tp->ext_Strings); + TRACE_OUT(("after extended capnames, nextfree=%d", nextfree)); + strmax = tp->ext_Strings + ext_total; + for (i = 0; i < tp->ext_Strings; ++i) { + if (VALID_STRING(tp->Strings[i + STRCOUNT])) { + ext_usage++; + } + } + TRACE_OUT(("will write %u/%lu strings", ext_usage, (unsigned long) strmax)); + + /* + * Write the extended header + */ + LITTLE_ENDIAN(buf + 0, tp->ext_Booleans); + LITTLE_ENDIAN(buf + 2, tp->ext_Numbers); + LITTLE_ENDIAN(buf + 4, tp->ext_Strings); + LITTLE_ENDIAN(buf + 6, ext_usage); + LITTLE_ENDIAN(buf + 8, nextfree); + TRACE_OUT(("WRITE extended-header @%d", *offset)); + if (Write(buf, 10, 1) != 1) { + return (ERR); + } + + TRACE_OUT(("WRITE %d booleans @%d", tp->ext_Booleans, *offset)); + if (tp->ext_Booleans + && Write(tp->Booleans + BOOLCOUNT, sizeof(char), + tp->ext_Booleans) != tp->ext_Booleans) { + return (ERR); + } + + if (even_boundary(tp->ext_Booleans)) { + return (ERR); + } + + TRACE_OUT(("WRITE %d numbers @%d", tp->ext_Numbers, *offset)); + if (tp->ext_Numbers) { + numlen = convert_numbers(buf, tp->Numbers + NUMCOUNT, (size_t) tp->ext_Numbers); + if (Write(buf, numlen, tp->ext_Numbers) != tp->ext_Numbers) { + return (ERR); + } + } + + /* + * Convert the offsets for the ext_Strings and ext_Names tables, + * in that order. + */ + convert_shorts(buf, offsets, strmax); + TRACE_OUT(("WRITE offsets @%d", *offset)); + if (Write(buf, SIZEOF_SHORT, strmax) != strmax) { + return (ERR); + } + + /* + * Write the string table after the offset tables so we do not + * have to do anything about alignment. + */ + for (i = 0; i < tp->ext_Strings; i++) { + if (VALID_STRING(tp->Strings[i + STRCOUNT])) { + TRACE_OUT(("WRITE ext_Strings[%d]=%s", (int) i, + _nc_visbuf(tp->Strings[i + STRCOUNT]))); + if (!WRITE_STRING(tp->Strings[i + STRCOUNT])) { + return (ERR); + } + } + } + + /* + * Write the extended names + */ + for (i = 0; i < ext_total; i++) { + TRACE_OUT(("WRITE ext_Names[%d]=%s", (int) i, tp->ext_Names[i])); + if (!WRITE_STRING(tp->ext_Names[i])) { + return (ERR); + } + } + + } +#endif /* NCURSES_XNAMES */ + + total_written++; + total_parts++; + total_size = total_size + (int) (*offset + 1); + return (OK); +} + +/* + * Returns the total number of entries written by this process + */ +NCURSES_EXPORT(int) +_nc_tic_written(void) +{ + TR(TRACE_DATABASE, ("_nc_tic_written %d entries, %d parts, %d size", + total_written, total_parts, total_size)); + return total_written; +} diff --git a/third_party/pcre/BUILD.mk b/third_party/pcre/BUILD.mk index b71a4ce5d..81b30fc56 100644 --- a/third_party/pcre/BUILD.mk +++ b/third_party/pcre/BUILD.mk @@ -40,7 +40,7 @@ $(THIRD_PARTY_PCRE_A).pkg: \ $(THIRD_PARTY_PCRE_A_OBJS) \ $(foreach x,$(THIRD_PARTY_PCRE_A_DIRECTDEPS),$($(x)_A).pkg) -$(THIRD_PARTY_PCRE_A_OBJS): private CPPFLAGS += -DHAVE_CONFIG_H +$(THIRD_PARTY_PCRE_A_OBJS): private CPPFLAGS += -DHAVE_CONFIG_H -DNDEBUG o/$(MODE)/third_party/pcre/%.com.dbg: \ $(THIRD_PARTY_PCRE) \ diff --git a/usr/share/terminfo/1/1178 b/usr/share/terminfo/1/1178 new file mode 100644 index 0000000000000000000000000000000000000000..a78743db03a01ccafca832f167635bc03d601fbb GIT binary patch literal 437 zcmb7=K}!Nr6otPrLY)#?W*1@>Jxm9&=R~%!fr^GxTymEazv9`DU=Eu=6jdBA5PH=8n6##RZclyeN)I2TGBvxws zt)tVD&}Yx@S$2O$*)|~M*gL1WKjPv?B1>Iz#a+R@FL3t%+k5y!rr3Mr>7Nbfo@b30 zB&DoJkQf;uV`Rrnt!YFJ6Pp_|?S7-4YLyC$EFcGxM3Sr{=g1kNaJZSvB2C4OFAZ4h QZ?!tRS`1aSkavYDpEN=7v;Y7A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/1/1730-lm b/usr/share/terminfo/1/1730-lm new file mode 100644 index 0000000000000000000000000000000000000000..4aeeb984a5d9502380cb651ea6bbd72b7740ff6e GIT binary patch literal 411 zcmb1Qv|tBv;t0Rrr;$0k@U&9dQXb<3XT@$SQ*B%#F5Emp)gIj;Zg7h`+~Wa{e{Q8Gp71he z`aAVM`juI4I`5tQF(&yFqQl=d2T_G+iaiJqimkwmZ8L17$}z)p-JkMvPD9XkA^g=% zXA9y0;*e|MPC<2uBh|2`6uG=$A9|n1V|G_WkLVKv;+hx|31LM{x1w!Q`Wot5VPht} Gu!CtBv;t0Rrr;$0k@U&9dQXb<3XT@$SQ*B%#F5Emp)gIj;Zg7h`+~Wa{e{Q8Gp71he z`aAVM`juI4I`5tQF(&yFqQl=d2T_G+iaiJqimkwmZ8L17$}z)p-JkMvPD9XkA^g=% zXA9y0;*e|MPC<2uBh|2`6uG=$A9|n1V|G_WkLVKv;+hx|31LM{x1w!Q`Wot5VPht} Gu!CtBv;t0Rrr;$0k@U&9dQXb<3XT@$SQ*B%#F5Emp)gIj;Zg7h`+~Wa{e{Q8Gp71he z`aAVM`juI4I`5tQF(&yFqQl=d2T_G+iaiJqimkwmZ8L17$}z)p-JkMvPD9XkA^g=% zXA9y0;*e|MPC<2uBh|2`6uG=$A9|n1V|G_WkLVKv;+hx|31LM{x1w!Q`Wot5VPht} Gu!CtBv;t0Rrr;$0k@U&9dQXb<3XT@$SQ*B%#F5Emp)gIj;Zg7h`+~Wa{e{Q8Gp71he z`aAVM`juI4I`5tQF(&yFqQl=d2T_G+iaiJqimkwmZ8L17$}z)p-JkMvPD9XkA^g=% zXA9y0;*e|MPC<2uBh|2`6uG=$A9|n1V|G_WkLVKv;+hx|31LM{x1w!Q`Wot5VPht} Gu!Cp|v=jLt^H{C51PxG%PJ%O7!F99H49&s1Zh^{Fk<@@)hFWxkZqXgOOZQ~l zb??&ypIrB$q(}4^;}bvn6yq~`?t3rjCB358^oHKjJ9!-1p!Xs18zQu~kn9S@`fN`rb2d#ujnZTA4v(OpnEHnjWp>xoAXd2@6xocj5n?^2=oZohjlE);k6Fz`!X}k@5 zVj1Dd5;lv++7Vt;ruZHtpaTzZD{*G;PK%_(;PDDvfwSVs>L5?48>*w)R!p_n*MX*o zCNSb*1gLu$1!^897Pv%r^I)bFs_*ByGFH#kR{fHm)Rj zK~Y3e6h%=KMNt$*Q4~ceilQjxt#^;lIon=gPknyh@9&)Fobx@;vrw1HJSmZP@WvqNtBc9@#qH6oY3+z+8l&lq}9n-)>|>(PwNl=%#o z$P5X2N~K)pdbdC-q*4;HoUT^tsZG!#DL)&A8OeIrMco29$;+T08TK^{56GcOcVtqJ z%Sqg6I0NV40$h?S)N61#y(zr%FTPe1=letT6d z(>WT3i{SrHOqWbMKe4jnAMaFZLYHZ+uF?i=X1-O^x=ypWPTj0M+OK&X(A_$!<9bjJ zGkz3~=?OiBp4IbuQ7`LNy{MgMMJnZiDTRhaJ2_GUK!fvak_cHkaDv zgVl(?Q+mp{Nk5XBGH$saacjLvN|{95iY`v*S5T2D%HM&O;i;!ut9&}-wpKYvHFCIPk0;NrDY&4;!vI2>Z? z@)G?D`xRc5I8mn2M>&yVw-QON3%SzN2sdXGq QYEF-@`64xxK4u?&0HaMZ@Bjb+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/4/4027ex b/usr/share/terminfo/4/4027ex new file mode 100644 index 0000000000000000000000000000000000000000..a7d999f1b46c75d41744c79347e4193d403d9e5a GIT binary patch literal 681 zcma)2%}T>S5T2D%HM&O;i;!ut9&}-wpKYvHFCIPk0;NrDY&4;!vI2>Z? z@)G?D`xRc5I8mn2M>&yVw-QON3%SzN2sdXGq QYEF-@`64xxK4u?&0HaMZ@Bjb+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/4/4410-w b/usr/share/terminfo/4/4410-w new file mode 100644 index 0000000000000000000000000000000000000000..78d1777faa19ec7061c6003ddfc560cf29e7f831 GIT binary patch literal 1152 zcmaJYF!2ZYQ~U)cCdS0Yc;1^CWJ2Og&OPUzGw*fYonB*4XqYb3Tl$t* z_B_kfwPdFcWdjA}dVb zzoZLvmHcptE&=#HfzN@j&~;K}euFF;hq@!X98J;#s41F}{X8wwbE#HPD}X~y>VW&S zFMZ!XphKyS=oR=FsIV&YeHUl~Vs%3H{T|c{cEAqV5qr(vuw(S^Wcr?cko-|r-~SwP zaKhR8&k|?P^!-}mQ{p@gkW%6s+|_y6=B~lZO&EEl z^bqt25FE?%Fzx|)j9Dp70){EP31AwSqCr&4K{4!%BvG=W$W|89p&=NKEJBcy1?5r| z<)#Lq+ghrjs_L4K5-p`LEe;J6BeKCtVMZyXq9hedW|fi|C1xy{!+S=F6-$arDIF#0 zSTc`WL`f!=EZ~w+l8q&cxX@kTu^gEpMv4g*Fs;H2Fbm89MPMFS0K^tC)%$>9+PctU z))O>v3H0xKRk>!A<)ox{>UYK0Y>~1OOjXRSD~FsRoG^t$G@cWCT#NU)n?~_$gWJM1 zAk9FUkX9g5;^~t|Gl7{wp5?Y9wvBUdkgpDLn=X=)!HZk?OX<9)@9_~{&eO=q=x8!I zHl}GyOUuh^YwPQk%I4Fn%uySux+UcbM$x4(aK PZB1*4SG=9n(=GZ7iid`2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/5/5051 b/usr/share/terminfo/5/5051 new file mode 100644 index 0000000000000000000000000000000000000000..ec3766c15e5dd99b01f87136841fbdd54fa56a37 GIT binary patch literal 399 zcmb1Qv|vzUU}k7ykY>nC%GE7Mt^rb}2BwBJV8YYMS0Ny^s5n0_F-O5UKewQ?B(+FE zBQIaU(J$CjFE}z-lYxPefiPeUVEF%E0*DzHn1JN}|EypV#QOiAgMkak;{l8C0Z9QQ sIfx3%Ng*1TNsg;T7}yzjYF!2ZYQ~U)cCdS0Yc;1^CWJ2Og&OPUzGw*fYonB*4XqYb3Tl$t* z_B_kfwPdFcWdjA}dVb zzoZLvmHcptE&=#HfzN@j&~;K}euFF;hq@!X98J;#s41F}{X8wwbE#HPD}X~y>VW&S zFMZ!XphKyS=oR=FsIV&YeHUl~Vs%3H{T|c{cEAqV5qr(vuw(S^Wcr?cko-|r-~SwP zaKhR8&k|?P^!-}mQ{p@gkW%6s+|_y6=B~lZO&EEl z^bqt25FE?%Fzx|)j9Dp70){EP31AwSqCr&4K{4!%BvG=W$W|89p&=NKEJBcy1?5r| z<)#Lq+ghrjs_L4K5-p`LEe;J6BeKCtVMZyXq9hedW|fi|C1xy{!+S=F6-$arDIF#0 zSTc`WL`f!=EZ~w+l8q&cxX@kTu^gEpMv4g*Fs;H2Fbm89MPMFS0K^tC)%$>9+PctU z))O>v3H0xKRk>!A<)ox{>UYK0Y>~1OOjXRSD~FsRoG^t$G@cWCT#NU)n?~_$gWJM1 zAk9FUkX9g5;^~t|Gl7{wp5?Y9wvBUdkgpDLn=X=)!HZk?OX<9)@9_~{&eO=q=x8!I zHl}GyOUuh^YwPQk%I4Fn%uySux+UcbM$x4(aK PZB1*4SG=9n(=GZ7iid`2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/5/5620 b/usr/share/terminfo/5/5620 new file mode 100644 index 0000000000000000000000000000000000000000..1bb40715fdaeac6142fcc6281d95d8ec60469312 GIT binary patch literal 630 zcmaKoJxjw-6o%ib;1}ZH=3O$F;vmunZHt9stw_)oL<0(ODUCvV~+Rzatz|rcKr{mENC@xG&MZRL^lC{>t=T|2w1g z4b^XPM|zJ3JWBVInRzx|>lZ_>a*l~PsN;P8cbq4L*xCR5Dvk$Ck4kzD5s0<{Eq ghh%mWs3zbgAa8Ej!70DJ3)O%sK;@~-LmtNQ4ZnvDzyJUM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/5/5630-24 b/usr/share/terminfo/5/5630-24 new file mode 100644 index 0000000000000000000000000000000000000000..a575613b553df8a2f715cec44f17ba087c5d0897 GIT binary patch literal 1186 zcmb`FL1+_E5Qb-Ld2lHfs6eDMGCy?OIycC*>TWg4L&+Q*wb z7e)Ee%pu$9WNoCD#x}hgH2p=`LOPmXY6Q)>dfIl<^`JSwOvIEd z#!^=A=TS35!?at^hG+}LSi`h~b}H?n{d5qN(VY#?Lq}*__i;Sci_=tAI!R~9Q#z~e zQ$USgO&qtBR;Z1*4sAeJ={nuiyiAVc+XF27yL6u((qnqs%RleMm%r3W?cjQi^SAVY zKG7z9p|A9fzS9pHVyQ{N_woVd!|FCX$7AgBxbEBPgZ=uv_M5YA)y5wy`rZDWuJAR! z!MFGh-{S}Th@bE?e!;K!4Zr)(^WXnvzmNQxEpL{#Qi?3EWO>ICPCyb(V8X2NT@%{I zFCj4nmGB?5ykpQLGy_$jTmxo{Ip<*oAvH%x^YtDiiKEz;wV5r$l1`XW4WUKkWM;R_ z@`~W@)YNvMKAGH6s3agys2RDYa5{l<0@6v3q@6-70eL0Oxbn_*xjl&?Ld2lHfs6eDMGCy?OIycC*>TWg4L&+Q*wb z7e)Ee%pu$9WNoCD#x}hgH2p=`LOPmXY6Q)>dfIl<^`JSwOvIEd z#!^=A=TS35!?at^hG+}LSi`h~b}H?n{d5qN(VY#?Lq}*__i;Sci_=tAI!R~9Q#z~e zQ$USgO&qtBR;Z1*4sAeJ={nuiyiAVc+XF27yL6u((qnqs%RleMm%r3W?cjQi^SAVY zKG7z9p|A9fzS9pHVyQ{N_woVd!|FCX$7AgBxbEBPgZ=uv_M5YA)y5wy`rZDWuJAR! z!MFGh-{S}Th@bE?e!;K!4Zr)(^WXnvzmNQxEpL{#Qi?3EWO>ICPCyb(V8X2NT@%{I zFCj4nmGB?5ykpQLGy_$jTmxo{Ip<*oAvH%x^YtDiiKEz;wV5r$l1`XW4WUKkWM;R_ z@`~W@)YNvMKAGH6s3agys2RDYa5{l<0@6v3q@6-70eL0Oxbn_*xjl&?q}Ho6vcm&l49kH(Xl}nqj`Ny33`2{A|&~!2ofa-BIGtRPL`BSno|y8AOt}W z2tgnSf*=Gz5D0zZJKnR- z2R^dFCR=Q?!zVuTg|FRN2xB^3Z*hKuMHBvnY)o upgHsqJwjc`Mct?e^`bu1k1nGDG>C>!BWgkyP&0BI)Ph=38)`>!bdkRXF0rTp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/6/6053-dg b/usr/share/terminfo/6/6053-dg new file mode 100644 index 0000000000000000000000000000000000000000..ee16edb36af37b6e6755ffa831c716483bbd3334 GIT binary patch literal 816 zcmd6f>q}Ho6vcm&l49kH(Xl}nqj`Ny33`2{A|&~!2ofa-BIGtRPL`BSno|y8AOt}W z2tgnSf*=Gz5D0zZJKnR- z2R^dFCR=Q?!zVuTg|FRN2xB^3Z*hKuMHBvnY)o upgHsqJwjc`Mct?e^`bu1k1nGDG>C>!BWgkyP&0BI)Ph=38)`>!bdkRXF0rTp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/6/605x b/usr/share/terminfo/6/605x new file mode 100644 index 0000000000000000000000000000000000000000..ee16edb36af37b6e6755ffa831c716483bbd3334 GIT binary patch literal 816 zcmd6f>q}Ho6vcm&l49kH(Xl}nqj`Ny33`2{A|&~!2ofa-BIGtRPL`BSno|y8AOt}W z2tgnSf*=Gz5D0zZJKnR- z2R^dFCR=Q?!zVuTg|FRN2xB^3Z*hKuMHBvnY)o upgHsqJwjc`Mct?e^`bu1k1nGDG>C>!BWgkyP&0BI)Ph=38)`>!bdkRXF0rTp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/6/605x-dg b/usr/share/terminfo/6/605x-dg new file mode 100644 index 0000000000000000000000000000000000000000..ee16edb36af37b6e6755ffa831c716483bbd3334 GIT binary patch literal 816 zcmd6f>q}Ho6vcm&l49kH(Xl}nqj`Ny33`2{A|&~!2ofa-BIGtRPL`BSno|y8AOt}W z2tgnSf*=Gz5D0zZJKnR- z2R^dFCR=Q?!zVuTg|FRN2xB^3Z*hKuMHBvnY)o upgHsqJwjc`Mct?e^`bu1k1nGDG>C>!BWgkyP&0BI)Ph=38)`>!bdkRXF0rTp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/6/630-lm b/usr/share/terminfo/6/630-lm new file mode 100644 index 0000000000000000000000000000000000000000..4aeeb984a5d9502380cb651ea6bbd72b7740ff6e GIT binary patch literal 411 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/7/730MTG-41r b/usr/share/terminfo/7/730MTG-41r new file mode 100644 index 0000000000000000000000000000000000000000..1a675a03d7a8b1ab98d6b9937f2f3234bbb72fb9 GIT binary patch literal 1913 zcmbtT&u<%55T3Ua(E_58K#0xu;=q9eLLhPAz=eA+{0j&vGT%HqQ5&c@)X6vV&CHwk z-prdlruyj^Jxoigt7EQOO~#x`cigQ*k57$&Rq6v%&rVrwzg5ZBtXeLUUAES8#mq9q zf>q5{3c2E3o=E9`5eh#sHAqd+Vd{d_)V~QjN(MYc9rOTnv-u=hbV5f@QZJpR0UCuh zM$?cHy+JuD=xCW%XkD`g?a*6b@6!8p9r|Osq5U`MbNZ6L1^CCzPq4R>#$I>Us5|im9XuR7wr0k@lLiDpZr;)B8ECJr2qU@maN?N@@da zN4=vygubD(ZmC1YqsCF=DWlo+fM&A~^0d)!3>m}P{?zzP>w~*~ZQM3?4aJAKlOJb^ zn*0oRX?Ae!{oBsJ_Vw@Z^zj)UR<8~%>J=O6e-{+WN}-|pD;zi$2e|HKdG{K2>RPyYL!S-ba)9Ng*t zY}H{#Gjxa^Av3abcFDCffnDmYOGlDFC&<45fQ2m1{D-N8|$9Bk7u)+at1(_Q-CU zNE_{x&@Inz*r)8O@NCNwZ`j>-(0;eP?Rc5HmzFKdn!Gp(X<5UP(%0=}EX&RYP7o_2 z6VJVZ15$1;8swn7C>7Vz&ylRZD!1_LEmsc8Tp<&VR18mot|!UFb)_mtPEFX=z{QrJ zKB(8C9%#Hp}1PMg7(-!L6Upz>JdBJX$SNm&M>2(J$vhP`SRS{{QSbg z($ckS`Fx>JEG{pXO678;va(XGuCCT$x(3P%>wj6D`5_rX%G_x#&<#LY6$4g*Qo;0emQFY?Q77t3VA{1J;2J zU=!E^>Ocd)eL_5Jh_;28k8l_m0WeD8D*#3?9Re7c^sB&m03(&gNQJKf7l3Ktb>Jd^ z0>TKefJ?wEF6YW8iI>gxIaHZZq`TV2>!>VL!RxOvwE?KL&VrB_q-l}FR zg3VxkO2=-8$ATwY(7mE9oNwl)I%q!pGIJf(iCJw zZ&8j4I$EY>TGOmS+w>0D`}84QgZ`ARYyS=Ul5W$t;6KqX^cU@DZ<}g1+kr;_`E~5- zX7dU4lrq(`>X>>#y{KMRF_lz-N~u9Lyu0R%3e^Po)P7EDkApHod`8Wyl3EAbR`02g zp|9(#o9dA9xN*dI#%MM@pxNw&JZYRZ28|(Ye{OuC^}$`gHtrZZhT?Ya;3rw4CO^lW znjKvG;I{Lxef_&Uy?lxXc!)&U2S1MR^T+!<$2lbw$=&dE2TmPk zEQkkgEO33fiNAnjVu9y~krcyQFi#AaopN>ATDSv#R^Q)~G7$=|keMz)XMij)2h0OF zD$D_kh%aI72yj}bo6#%KQu72b383~@p>$8Ba!tneh+IH>BwdrUdqg(U9@$M3X``JI zy6O21yU(r)&$b-#hTUZcyYH5_9WQh5(z0b)6Bi~REo(?pdb_-gW!c%l31Ver;<=Y` zK+5ewgB+9>rQ%xpIg<5PB>Qw%Vfflis4Dn^(2|Nu2kj7sR_FpxY!cZ2lZOi z1C6(69Mo^onCxALoov}j&~7^@NOF%|J#1$??0_D|8DgGH#a}OxOnwy zK3^yli%UzTQn_5IEH789D=W3y>gw9s`ufJk=4QR#Xl!js?{HEE<>Id_rSx{WiI?1j zR6Q-_daev0l*}3CL`(3!=}5U!E;Oqj3Qz-9fi++q*Z?+x zI?w=cpAZilqHQ7OBOC&T0gO`k8h{Z@hX6(<{W@?Cz(}PrQsEoGd0+~76Sx4NfG`3q z;36=C%enH&qGkA&Gsuq;MTnFg1&-^*;(j98-E$Emj?`lbS*hD2jnU(?+osrln_3g{ E5B<&nOaK4? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/7/730MTGr-24 b/usr/share/terminfo/7/730MTGr-24 new file mode 100644 index 0000000000000000000000000000000000000000..1bb2632dac7d51d4a79057fa74ecc6a7b339b1fa GIT binary patch literal 1913 zcmbtT&2Jl35TCab(E_58K#0AbKbg5+H%ZfddDGK;poG3-@057Z6gk{N~w-+CasjPJT1LnR)Zx zn|ZUxR6iY~hiOT5b3$s-zlHBkeV3Ra#AgPw(fn_Bbdrh|j78RaP5dJL(_$VBMfas(b6!2AmxL!e4&k<^+Pw1n*@tE#t%J5jD#58qIq)A?2@a?*1{d|bNc?Cl!;LKDw(M=bQZ_~^S}at zqtba`3GrpD9R>Pzx|w+iT56sIrU2CbGL-JARIbVR9+3-ZkECmIZjZ=D+9SJZB5kyj zLbtr2X`ixd!gDQ0tZ8@KVf)<*w&P{*URtp%Yx3eGq-70DN?*5^wJbXqI-y@dCZ2l* z2PEBIG{`}DnPg1MAWyRXs@%e}w_G_WdxcCml0KdUT~CmS>q=FQoEo=lp^Gg+15mF; zJ^=0n{>_p2>fcDs7QIdP@+7Ua~X@~S6&M-4!d-m4p^5wa?`T2!~rKM}v z3WZ{^R9apxmn)TOb!DYiTV1W!*Vfk8H#Rmmx3(IMW^;R6dWVy;C>MVfDW$L5jlbZ= zrRo_e*K=h6p=8c5Ct8B7SYFjDE)fD6Dh@H%i2Kmq9t zU;&qaSzOMQPZll1x12?OCSHO_+L_RCJwF!26Ft3`Fycr(9+#E6J<=FGKJ7O7`)z7X F$UkvW0$l(A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/8/8510 b/usr/share/terminfo/8/8510 new file mode 100644 index 0000000000000000000000000000000000000000..2874d511c91ced0214a77389dce5eb056d1482a7 GIT binary patch literal 431 zcmb1QRA5kJU}k7$2xLgkEXmKPNzSw|H8iLJ6V7@Hog>4AlX_YE1*d)HBN&B>EOj8RA zy^8;ZAc!Ccf*^t*c<|uCg9il<9z1vuK@dTZ#_ztgAjOMa-e-4qW@mQhEz_=!;Rsy# zfSRh-N`2vQS21^MeYu#o^OGejzu=|9Tg=*pu3V)wTdV@g`5F^tJ(O1dJrvT|i33!* zupRY!6L!IaJ(TM8eem(#4jkvM8v)KCL~s&O#3;v+#He#_t$qQMl%{Y6Ij#ki9DM~# zSix<|cgS5wcMtcuKEOjf!eczaQ#`|SyueFpU*R?0;4R+aJwD2dzKx z3%{KhYfwt(x7FcNJCvIdS~f)qavvdms(+KEaZ`-i8I@C(Dk%G(C$^f=|NB*xB+wj2(8l#F({haT!d7#+#u&W6)?>cr^V7aOh<#Z#QkDzoE1YDZX7bC?{1{XTbzsA z9D|dvig}=tl%kuTzw^v9=cW%6|6GL3r6M9gfybzr8%u&b$w^gF2xytfNHc mNS5TtRbr7m;Y+AlQuJUx?$?-l(o%o~Nr;3=g!GVJ(uY4oCX-MA literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/9/955-w b/usr/share/terminfo/9/955-w new file mode 100644 index 0000000000000000000000000000000000000000..437f5ce55ad2072f1879c3c01210ab1be65e80af GIT binary patch literal 1048 zcmbW0&uddb5XZku)Eb*uQ7O_936iIwX#4W=qpdYkZJQshwLg?9E!Z@DNs~01H2o0^ z3O#rc{|iA7K@bE%1VQlN!Gi}63LZRo@F0R9f*{84zF3gr#XjC=c6MfGXJ(geQvn=- z3-7S1mRAcsk;w7d^@hBVEoCPQcDC%}+*j)ihAiJ)xwHf*=Wht=`cvBY_or@RCl1i! z!gkc_P1pr5_E4+W_rcGc0UYD30~Tc%QJg>webnPfIjidR5uC>)^(kCNhGPx|$5X`$ z)^LOREppqj-N9Xs_i!H%@DPvi7*FsN&+weq7kG(Rc#SuBi}(0|kNAYo_=2zaM(=n0 zz)xq7UrE+oQVo)`;y9B9fy+Ou*(lX7?Q)25HremSJ#DijQtQAAJejGBWb2mz47AJA5 z<8TUAeO{;(IZe)xelkD?Nt`4|(yP1J*lQRv#7-orn;C=5Leh|dxb(B3s*K7}2}n&Y zN!HgQ=9om+#jHqp-D$R{T&JjQV{ab5mHm7_2jSyu2{=|a$Qgg2q)N#2Wvcu-?%p*4$yNSH)Olys49(u3b|zmcH; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/9/9term b/usr/share/terminfo/9/9term new file mode 100644 index 0000000000000000000000000000000000000000..10f55953380f66f3e384da86de7f3aea852ddb00 GIT binary patch literal 850 zcmb1QRAFFZU|{HFWMi-_NiE8)3CKyzvs3^vGxHL26jF0ba}rDPixkp;ID&zJ@&A7Y bhW{9V35ytpqEUg-5E!;0z{0@Jzy*W=RG}Xx literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/A/Apple_Terminal b/usr/share/terminfo/A/Apple_Terminal new file mode 100644 index 0000000000000000000000000000000000000000..7e62542a71ccc00abacb3d740a8e5f2494e768ea GIT binary patch literal 1958 zcmbVNU1%It6h8N^nkY0ytSA`@QF^sSV|MP$>`y1{wrOo+ldv^eq_|2Ovzu(Xvzy88 zw%InjsV@pe6cP179|RE*go4l)MW}-MM3YA>;{60Fo(N5e2Ep3Nb&T%8ZtoLX*-Y}${_ zhar(LzX${jTn3H*G!4@I)ahP&i*-6AI#+-s={CBThUo!PbO3Re9;cHuMYG^J$^*|r z7HEme(5qCZCbhv{q?hPb=r`ysdI$PFdY?XozD^(04f+!7TS#<$Pd|YF)U|Iy|GX9Z zg?^(y=ui5aq!<)KVviUWBZBMp0r!hhp^eq)B*Z~6(dFHRd(oS9Urh@>)*gmjoSWPyK-Y^*DM)-of+T+_E z@6TWEQ}cR{@9k}#cjX82n!GMQk)O%04xeOMpo$e+p^}!n&Ju@?RR| zPtsj*O+qr-3-JCJQi3`LISM%qnIY?0?GMlpxK{z#3>iD_ra4u!=<23gq&2tSCn*?JN(3z>t*_Tb6e zNrNeaX+|9fW+x%XVI|nbnOSTr%iGG>fpysEl645$^pJ01$jm0ejUx{~kO@t15?X(47?LMZ+qPmE_Lzec~#k!h~x0w(^;3P&cBs3LVvgos4W3 z)QhMGsw0{NO)0;^#c9PDeI`RO#Hg`T51grKR)d%jF=b zRI1gLl`vdgt<~!FM&rVTix=0{n$1g>E?-_>Z?)R(4Q}Am5NyXFhPZ#iIuOTdCm_5L z$Jd-?`&gSzRjl>9mCl!VBYye6_CNg z3(zc1+IQ1@gd7HKa2$*~VXO62TaBxRV`ig@#$_jrFTEKbRRvXaQoiR$Sw1hcqulLN zZpU}jyF2Rndo)OQ(<|o7bUVH@kJ1<=C{0HYiP0UH%Mk6sS7?MD>Q0E?j(EZcnA3n~ zx7+HFYLrwl;8~)#+`H$%Y~MqB7bC_U9_KUVm_LB6zX5ZQa9Uu7`ACqiITDzr~HtptTll{wP zx0|F%p%g(2Qc%Q)`k;dJNnaGCP$&uoK@e2X2L(X{K?GkaScHz>IkOuBt*AKReD}NO ze&_7H=giIQR)e&M9;2+<)znv+F6Y+-JI)ky#d5&IwQOZByv&OoOO=(}bXXR{OVv`T zSgwShN{5eS3z=dqJh8G=na;P9QY1$F@Pr5a$v8$^=@Bshu4gM9qC0naH#?dUMPyME z?WEnbkDjCh@I>h_4bdna1wTfUz|*i9ng{xRfl5@RRpA!}U!qs&ReFQoqIc*jJRj0E zx*;pRf0Mqdv)?e@uJb=IlJfl~nD1{>t!k$Vsl95y>QJsqs4mr~hOm}`O{lbbK~1S? z@T|(Kg2Zs#y`Q35Ru|MIs9sZVs&_HIzY+0~x(@!a`awK9tTt<(Wn25L16JAc{VFVY zYSx-{!FtiUB%aF~{!gq=g?}#i<%Zw)zqY=`?0f6SO}<99zaM{w`d91LM$B#Nj-@s0 zxo?f$Z4pn9WxIYzx9L6laow(;(NUe$-MU|o=m~vXpVZTOK`-i>Ue_1(%lfi@U0=~} z>#O=b{eixwZ|Ix)GyTP;Y(dU@<2V0O*NFa3|D=D>xAgD-F|HB+e@4|5L^n6JHf^B? zD0ITk+9k)%B<+&1Gi5m3S-?Q(gc-v49E``hs{bz<1Ps9OER4r46V2g@37Nyt1M7y3 z!A7VB7|jD5KpY}3&LWQ?&VB)pnQSOct)O`ZGbHj{s1p+}#~u+IQ6o_>3j3&Y;Zi(r| zEXFR;^YN!(r(xarw^KhCS3?ds(jdGG@f>Q9;RfN1vc$=Ra6!E+APT^#gTqDTcye5v z9yQ>S4M6n|J zES5@(i{hoNR5C4!3SA7$kO4%M?go@b%bYZ S{CRkQ;NyerKRU)1r9S~Pe_k{I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/E/Eterm-256color b/usr/share/terminfo/E/Eterm-256color new file mode 100644 index 0000000000000000000000000000000000000000..eaa3447602dea4577d4e76d2ed9b9eb0f17388a2 GIT binary patch literal 2402 zcmcguU1%It6h3$E*0dHAm6mANVp<(bQ(|`R%X4U*yakOfIXR0t$BU7`a6p0W& zZ18{&52}l{(tXgvTOLy3bGJA*IJO{)$f6kSq+PU^9-(S@d^$vJ)JaF6KSO=M0mv|o z1H*8VrfH5AML#e20=+~p(`)o5y-k0a zP&-vz?NR$wjdE2+)u|@chPf=HNA;@Xs$UI3A5(cXDKQ+k`7@;!)H!tltXI?<>K%;l zuSI;Mu0a1-{UDwlR;9JqvaNkqwNwD|Rb-vYXw;z82`#0HWG^`#R9|x>@j=Vu?GWt+Sr2yINT9HOZ=E=!}t`0 z#}cdgA2kYSf#XRCk9Ee+;fjeeilG5g59xw*P&v@g0~|mKBrnAzk0Hf=0gp9VP%l+L z%`=!bq37ah7+#J&LN>xiqFnqS7!J=A5EDgU3w5bc_6Kg@1<70~wq4ffo&}j#p6&xU z4x2{MF|0d6a6Hj{!IWTHFvDmPjN+DRfy+_ zRi%AZ;fylH$wc9TdSd_|fL%wM^JROoUF;q;;F7g~^)Ka!>Xt|(P#m-mz2Fj;nmvd< z(VZ0Mg(mDee*JXPUbc&YV+U*-s9vOE%9W{9WP6zM?I6#zj9o0ZhbruV;w`id$)sXj zqwE|kDJaTz@??Mi@bJjU`1r&`E|EyZ9M1|g@|kbWDX80nvpRvHO6(r;H1 zy3%V`_-@3P?8f7Kj?>3z1YJQ-&=*VzMrSU=x=9F1lo7rWz7f7j%B=8>@LgfLlHV1+ z8}VH}J;q~n_|~F{xYUE)P?M7YTm!=!WpOism%&Xt?j*c23|=5-D=3T%JjQKZGQPiJ zSKCVtj>d{zYnw++Z!Nd@b~E1QGx2BfHaX~We3sHH_TzTZmABbLJS;g$@nyuoe2qP5 z54q{UkJf}UgcQ-~D}{TTggc21@!p1b{B9H7i{I=k@}FP}4s|)~N_v3yzaXche5KAOAvZa2!ffK=ss29n?cd=>$n7xj#~RT=Ohnb?H@_+aSG8 zNn50g(6W5oq^C*tOOJi_b1r;YWc#VUmwFG=L}P=`kOXwHz-sDjj1bP2YzK58^j4;} eGPV8CVW^$GC4{G|`)PQ9(7RjNf251Wr@sM4hlLLS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/E/Eterm-88color b/usr/share/terminfo/E/Eterm-88color new file mode 100644 index 0000000000000000000000000000000000000000..68826517302a232c1d938d721c88fa30f187446e GIT binary patch literal 2394 zcmcguU1%It6h3$E*0dH|m6mANYJVI{D>XZJX7=#r~z6^4?qiVdvdh>;oF=G97_;IWKoP((;C`9kI@!*eA-1l)KB}NKSzgwLy%z_ z1BT%Qm1&C3h<;x1MS7Vo(QEW3y-k-1Ga`yJ!WhW;l;QehZ_gyAx^ zQms~TwO(yfTa~Las$F%e9?WGSdsR*yQiG}heN>gygv4;%;?Ja-QRmbJuwGGbsCO{F zKNs#b1^rqzbvh9<+sf9EZ6txR=rkl)SGpi_I02;beHba zd-VZ*L>Kh9KB1>|U7y!4>5KYR{kncjU)JyG5A+p%O<&ia=`ZGGyY)@;?Qi}guNm{5 z{z?C;Z|Fa?iY<*bz5mZR+<4zu?A=%k-9zz%_NZNU?0jICjh(N+;f?^h;|EO-#%CZr zHdtN%s8K*S98W`dY&U)pS4@=S7`Xu@vi*O!y_tX&NpJ7C*D^&%Bhu1uvO+ryM^2PLLu?CJ`;u+k1F-c8GpOe)4T z%1*(Of}(6kj}8tF508wDjg5~Ni>1=U#N=eTeBwl`t$^xFu@k8Qio(PQq)!;01EFg38Fylib#t@%_5J z#jZIx8g;wPHcyyb8@KpQGv4Ae@#pb2Ip}hHYU#TDlwEb@ZFYf&nv)b?Mhwhvwexnt zO$UCoCY&Lph)!Q4+*>5vNi2x>7R2Lso9KT0W?z;61WRzJSHNzihiE;#k5hs?%Fs62 zLEY3#17K^qi&?WF^Bgrt((A1OVqd6uub^eWA5kY1;x zEz(73Sw3#k(u7`ACqiITDzr~HtptTll{wP zx0|F%p%g(2Qc%Q)`k;dJNnaGCP$&uoK@e2X2L(X{K?GkaScHz>IkOuBt*AKReD}NO ze&_7H=giIQR)e&M9;2+<)znv+F6Y+-JI)ky#d5&IwQOZByv&OoOO=(}bXXR{OVv`T zSgwShN{5eS3z=dqJh8G=na;P9QY1$F@Pr5a$v8$^=@Bshu4gM9qC0naH#?dUMPyME z?WEnbkDjCh@I>h_4bdna1wTfUz|*i9ng{xRfl5@RRpA!}U!qs&ReFQoqIc*jJRj0E zx*;pRf0Mqdv)?e@uJb=IlJfl~nD1{>t!k$Vsl95y>QJsqs4mr~hOm}`O{lbbK~1S? z@T|(Kg2Zs#y`Q35Ru|MIs9sZVs&_HIzY+0~x(@!a`awK9tTt<(Wn25L16JAc{VFVY zYSx-{!FtiUB%aF~{!gq=g?}#i<%Zw)zqY=`?0f6SO}<99zaM{w`d91LM$B#Nj-@s0 zxo?f$Z4pn9WxIYzx9L6laow(;(NUe$-MU|o=m~vXpVZTOK`-i>Ue_1(%lfi@U0=~} z>#O=b{eixwZ|Ix)GyTP;Y(dU@<2V0O*NFa3|D=D>xAgD-F|HB+e@4|5L^n6JHf^B? zD0ITk+9k)%B<+&1Gi5m3S-?Q(gc-v49E``hs{bz<1Ps9OER4r46V2g@37Nyt1M7y3 z!A7VB7|jD5KpY}3&LWQ?&VB)pnQSOct)O`ZGbHj{s1p+}#~u+IQ6o_>3j3&Y;Zi(r| zEXFR;^YN!(r(xarw^KhCS3?ds(jdGG@f>Q9;RfN1vc$=Ra6!E+APT^#gTqDTcye5v z9yQ>S4M6n|J zES5@(i{hoNR5C4!3SA7$kO4%M?go@b%bYZ S{CRkQ;NyerKRU)1r9S~Pe_k{I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/L/LFT-PC850 b/usr/share/terminfo/L/LFT-PC850 new file mode 100644 index 0000000000000000000000000000000000000000..20c5b42c213f1e8bcf90dd645d60f68d292a7db6 GIT binary patch literal 1295 zcmbu7O=wd=5XWc7qD2ueTChP$4-euY^zFX)lC)85(^zAhlu(Nw%_We=nwr#9(yEw~ ziU&o|gCc?y6-5L+Xu*TvN3{pRgWy5z&6_vDgEx83?j$x~p$8w#&hI}v``^5I=@enu z2J7G_e8KXuTAdpF6f2bl=~=rKSApt#Sn}bJqm{)XUO;SP$ZgylTd@Ra2_t1`W3haHyRzj zf4f0HPw|-IDLjK0@QP>&KEh{MhHvm4e!wsI4Q*nR*djW_4&nP=hS>l<(_yT9<}II{AsrXSE;v@I@j25Y5gzk!Vq?2 z1ovPPhjA2-Vjd@P8fUSN7w|G($6Gj$5Ag{u;7eS@5BLcKxpCM)-#3tRCTU3pazm8t zVOo?Xt7KKBHL-sM<5pE!6Din8r4;>70=WT-eu^wb1_B|QvR9!+>cu@yOH5Pr@8W7Q z#z&|>LBckzc*Veake#WT<8{&5QF@~C8EwmekHLzO&K$wQTmP9Cb{p-MAJ rTk$th?4sC3v5R6C#V(3n6uT&PQS9Qdi^DDsyEyFPu#3Yk4!QgR76kR- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/M/MtxOrb b/usr/share/terminfo/M/MtxOrb new file mode 100644 index 0000000000000000000000000000000000000000..535ea37bb9661fd01e42eafae0b47423f6ae1045 GIT binary patch literal 187 zcmb1Q)M5YuJqAq%-;xUdqNJMi)V$Q9%wz@M#FC=S3I(80W=Ud>f{(L{LP}N z!~g#bKnwybP#VJH2l9k~Sd>8uMI0ha3@OX-&xw)YU&KG>e?kAe|AjF8^I-Vr!vJCW Qf+SUJj0_Cy{<$##08iglhJ3<4lF0`LQQLO?9aAcZ21P(g?#%ka;Mk>Ov&Kj(iz|GfW&F#Pji W_~*j_Vfun3Rcwq54D9~7F#rJjqHxXt literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/N/NCR260VT300WPP b/usr/share/terminfo/N/NCR260VT300WPP new file mode 100644 index 0000000000000000000000000000000000000000..c41956f610e038284a461d760acf9c04813682f0 GIT binary patch literal 1850 zcmbVNZD?C%6h7~LqnpsJFz|z3l{j+M;g8+>-kUFOZPs?h+PNj$+$M`kKhkzxk~Zzq zq=Q;vh!lkW8ls}82pgy%Oc3|OfvBLOAcBY@_(z2O5n+D>k@%dGduzv#p)Wb-Jm>5E zIOinkQ;*W^bQ|qaCNV#?WHN56>AP;b(O5k+d<5$8$Dy7ml~_%hyzB0TF)7w$d#*B_ ztS^9-h962MtJ7yE7bcb}L`ptgrl4S{=cv=U3ly&;Fp)*u=^olmhCzjT+Pj zewLmG-vGTxuhT`yOLUp8K=S&8J_q`mzNPQ!C%Q_%i~UcWbgN>25BM%Yoz4NsqY*v^ zc{0LJt4TGZYO0}{YDKN8b81~}sPpP2_+JCPsV=B@qS*J;`|1PW%b<_c$Lh1l&S&xZ z0{U0#2lcDErpVf1^;r*ColXGaHE4}kV}gsq*R2<c*gbg4gTs4mN=&?7jNRfKDwn>^*Oz+H}rY^ihe_1 z(C_L?`a^w1f2zOK-{|l3kNRi*i@vIV)7SJL`mg`A`_{8`Vykv@+>^L7ad%>GVjJy9 z^?L(kmz_DM;W?GiX&9%nl!YJYkCS8NrADN(@f;t?jgOT(~5jYr0H?@Xaq}FI>e2sJ+c^zgp(ix|l<67Qy-f#tpiZs~{F(94IJ>?tT-7}U51uG6+39J2Sgz5i6j z9^jqjnUBdy+p$Hk1~x=?@hqssr+Baw4}*??j>2*fq~FDk4kBU_d3Gosz%K1o>IB~jv5 z&EepHS(@4ZEnY6ZekB^EEZNc7@f%#Hzy~)n&Z^T4Jtt({00vzMmoKhtR}bJycVQMV z=Y)06$UDuQ&UCL6MiViLA9IwuJ73&?RKK_kc^q;P@)(VePfX0r%+8)ZU9Hw?_4@q$ z!ouR>nKRAi@^Y)yZm+DYaeoR~9>hYH$4dGwJ!X%Q78_}?%!cvB+{MydBYoZ)=<^#D;O_6<4{+bf_4@v^D?AerdaRn7?f?A*@s!kZHPI@4ps#Avk26#}WD*ylh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/N/NCRVT100WPP b/usr/share/terminfo/N/NCRVT100WPP new file mode 100644 index 0000000000000000000000000000000000000000..d5cdb64003254e9fc7ddca5352e6587e38b56e3f GIT binary patch literal 1509 zcmbVMJ!lj`6n?W2)FKI1QMWna1`;f?vp@I49(TzlLP$(JqbOt*a^^1COZGOGu*oIi zNE*RPMXW@yNM~Uu*x3n!ofaZ!k;W#Cl@=E3o0;7;;cVi-oAe zUc+1A3B&h7e}u2_9nlZ?CF~y3O9lx4$R*qd1q#C%)N>K$zB>t?M^qy&@e+pn`D#T> z5b3S12pJde9rW*!hvd14dr97qcZfbkrw$?=hKB+TD`BWBmXcFOlt+l4C{JqVrc zwSUaw+=nhE3_t&aljl#if9cBet&2HX#{Y{xIN?_hm7mIQrLX5S^n&Wp25m7~vuR7G zwe@rXA9E3DV<}xQ1=1%~huLf*T`;6eo8piMX_E&Lff0i|Im692<|w zu}F_bnpOBY9zGp^++ZF$ts?ZL3whzPn(^0Jf=o9~olUsE$c(stnW7)-MuzDkor(En zRh*34iV%y-VY;h2C8l{Q9oBr+sa!zQaMi)GI;3HJaxP`nxhj*L!4}G(UaO#7N0~*r zf!sLC7|JN9S5S$;W6yHV!kSJOvZ5|w;q+uh!ithd=WvKed^pM@77kQejrbxK@D6p` zV7w30wrt)@$*?na)@FHIw~#js+b}&o9NAaWYusQC)GVmj0~Tpvk+eixc^dT5dOx-C z9Jd*5WoU;6HlsGTb%dsb=rV*WD{T{97PWEK@+v0q_o_O@%Q$s8f(e+PuT~cqmzG?& z(O6zyS@FDP)A!fbf?#7~bFSkB#3wK&KI*05E6ky;>eH!f{P&HD6xo%6$}#j z017%98X8(E8fa1>BpO7K0wD@23PeRkMMbl`89QdV!6Qi=$_odjP|88;mzFKZVSv0*oL zAr?|Z{WL&>$ep1HD$y0X20cTw;5lG{ZqqWX_xEU3toM&#pU_i!M$hR5^h=4qqSv%3 z>Mi)4DDSsmKLMZH{+G7({wsZ>AM}%c(Qo>Lj=NO1I;gnPVPWt4+V*(ca_(QNA9<}# zt4#KtSL5m`RHc2YsuopUt-yOMkvD2ny;mR9N42Gn1>Q$NKluM%gFza&U?jK{l!EDC zCI~AxXb<&JSkX1zFuLk=!|JNm_YsO0s2gSixO`&Rb+oG8&<5OE%JQLKm%orT?(U% z@Fr1~`@H}d^AK!>jb&|O;Y2tU&V+}A3(Pjh%#RoYTCMl+yQCF1t18O} zGI(wvr_b@FjaaYirpvTr-$EuWnLws3nTIsm)p^H|ZlbW&daac!=;i@E->V&kMcUV? dru7CKD`T`WMk`~qc^RFI(aIQO8GDSe{{?_h)ad{K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/P/P12-M b/usr/share/terminfo/P/P12-M new file mode 100644 index 0000000000000000000000000000000000000000..c4dd32141f0efc92e1692a94f55bacf68d0db902 GIT binary patch literal 666 zcma)3%SyvQ6g@Gb;-lh9X^dpy(1jFDtksgLtyUM?cbJfx(8?x5kR8>l8-6&JY5Q;QHqA0$@M+jkk3*I6!MJT&a zcA#wWOzT<>-9l!uOpLAao?xCeS)DZ!*KCHFJZEsLCp$jDz0t7?qTI2I+%C23DL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/P/P12-M-W b/usr/share/terminfo/P/P12-M-W new file mode 100644 index 0000000000000000000000000000000000000000..7a52b60953882f736415e566f6ce9e89185adb14 GIT binary patch literal 694 zcma)3T}uK%6g}HUMW6IkxCt9L_z+9&YL;jpmVuZXOP_>6nJXx`x|9-;5kU{pYp=Zq zLC|~jZ~FKh+nv#jdZ}T~J?Gqe=k6@ylh!bT9$X_JxksgAM>jM_J88Hrwunt_r(q_S zRg2d(-B3#vmHUEIFXw8dYDLXeY*h~#YQ9>oI~CQb+671wnoIDvxq|175+s7>r6>X& zLU*DMgBT_~1`U(Y5hfi$lwyo9hXhuLJufYy=b6M7VFTOP6}i1uWgmw^6(|;ks^gUS zTxdSyuXXY7&fk+RaYJWs33tC{+~Wa{KXOmxo(V6l?6}m80rUsr#?(BNRVZmFSyp1M z&g_G48Dp-&>=b$-!T(P0=YK^PeAHkOO!(jYACQ+ICm^RFC&jiPtF28{B^%d`B9GxB znMFc|21&%?YkZIp=9l0tB9no#1!WV;I?psOXVYC|7F-On1>WO^ScBErS@@hyuo%x7 i-0G3G4|8v{?X)Pj?F_fGO`GS(qpUW_3PUVL|AtQ<1}63Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/P/P12-W b/usr/share/terminfo/P/P12-W new file mode 100644 index 0000000000000000000000000000000000000000..2fe870dbc535c37e247b6f7213e7d89ec4e3879e GIT binary patch literal 1140 zcmd5)J8u&~5S~3y2#^p7Ara*$PAF?3L4Z_xQL=LO zPzecpX#hT#JUUJ(I*r&Fnx`^dqDAn_bQM^Gtk7+0LtDE>>!PiF1ieL1=qWv;ZSWW3 ze@UJ=r{erdk55zI;=(&cRD6$t=H4zJG>ssH1D_Ef+sCmfT_>`ZX?x$Vr)1;zA2jD6} zrotxwA)s#pXCUVx6-XJPH;(`_5x{4Vq`>G6@Ekh?LT2)wC6IJ90>rg$)kxSN&ex=3 zwDC>T^=6sKT?=T=uf72B{fAs5=o{vKAQ%c}1apFU!AVAwX5>+dkYs>io=zUbg9s__ z5bh+Ng&o3m;^AT;yn+TKWXLeco^Nol25YxT^g5>{pQX<9f$W&Or1d$jj04@(okC6* z*fyYHLPO9@LbIU0E<~J>*ByLSqxD7-o79~{dU-?_$Su+SemAW*VHnw!kzEB#3wK&KI*05E6ky;>eH!f{P&HD6xo%6$}#j z017%98X8(E8fa1>BpO7K0wD@23PeRkMMbl`89Q2qqbL^B!qS~EkWNLamsxMdPNhu=yb`pF=W!!X>ysTYR#D?9} zg;+=t_0s?iB6o%+s6L&@UzaieA&E zsJGyEqP*XN{RDh&`(N7D`>*tke$Y?)MZf6}I_^^4>Y(CEhlRcGYun>(%ejB8e&n?} ztuonnUX81(P?h$ns#;WawF2+4MBb=P^VMW(;!|1Bh4XdkK-$y83pl+B6;PQ!KlRMklcC#Z}CyKNmp&~GxEb$)# zb`d-Zi~wbz1n7-J;Is}hOtLAqdJQ_`fKb9p`ne8~tM`I&ZCJ6Aw#f4}0}Yfhb}5W5 z!ka`{?)L&<%tNphHkP%Cg%jaaI1?TcE->31Ge2SsXtmzM?~+#d2_j0{f-6a6a$E2@ ziSS_&{P-G>Fr`c~;ai-XgSX=iJn^tna3*s$b#d$x$O&{pqmHue6MyC7HMCn dn${a|tc=mh7_E%a=4Es;Mk`~CW$ZD={uiTW)bRiS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/P/P14-M b/usr/share/terminfo/P/P14-M new file mode 100644 index 0000000000000000000000000000000000000000..39dd310720abf005cd3c3561b386b426fbb3a3a4 GIT binary patch literal 666 zcma)3%SyvQ6g@Gb;-lh9X^dpy(1jFDjMdVrtyUM?W&f0)shu3_^nXK`*7g zp$}1Nun88_cl8tU8sseGJmj3%He{{6sj8IHx>2T(ArxtZL{WT)j}XH87Q97dicof; z>_FM#nbx%&x`oVQnHXE;J;6L{vN~&+*KCHRc+TKfPjtM=z0t7?qTI2I+%C23DLV-np4D!_pcC(S;j?B=4kf>guNEYG+li!8Wm_?NqI$ zMb+kYO*hp-QRP18R*tjfLaC@`i;k*C4E3mVTycx4TXJ%cB-EGSmbr%S4-q7S@24mN zZ9=!B2LTL_9)X5&=rBo7Axbeum_-uH#J;~GqVHS8HemzX*cG|GMr9v|Lggstg{t73 zxF$58@z=Wicjxa(SGc9KcZB<2Gam4Wrysdzaxa9}Ms`%{L?3!Xabsc*$|{rd5@ zp3an_o j!L2^k^d|R4(@u(V(@t|cQ@2O_c$Ad`EZ5Is^l$hAGPEZC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/P/P14-W b/usr/share/terminfo/P/P14-W new file mode 100644 index 0000000000000000000000000000000000000000..1d7df53b710aff295e42eeca63d45879279a70fe GIT binary patch literal 1140 zcmd5)J8u&~5S~3y2#^p7Ara*$PAF?3L4414Q=fjt&6ty5%d;4p{MkWw!vSB z|0TVqcfvjZKMJ$<6ZB`um!AE#r>*@)Kj>aZGB-07I0wO&t;_cX_L zJ0}o7sX}#D@@CaVwFGv(S9MFZ)T+7<>#=yY)pPYqy-{z~do}1-d(asM{@-WJ@tl-% z$}vvfnRbefTfIX2XqeopZs^$8^@5I#u4{c4u3&|RpynZS<5PZmx}SEfPm_ug9e}F@ znF^cyhk(8boPnH&R3K%D-aG=#L;#;bk^-YQz;o;n2${)ymO#?c2oTr0RU=`8IA4>B z(Z)AT*PCS`cP*efzxo2i_aAbNpl_J_fnX?@5zGnZ1t%Fznvq8-LXrW7c{+Iz4E#h!Ah$&O``xtOgkfY?Ms{UnS0*d_ OkzE?dL6uKnK-q(cB92kEPjG=tT;ZDS8{G1Fr)~s6Tj?i_o>{-Jyy6Y-iu=%> zPe91{hB~FyS)m{JoA1}*Ki}+s`x_GxF_GwrJH{x@GOgK`7(xugGb@GM8q8goJ4le5 zr)ECq(>$vspJuy6ow8&*w9b6drz3|}*(zzvlf)Ex)L>F^S#qek>{Cs8%H$v_BW2PV z4&!i|0$=P&qly2fi9jIr!2cz6j}VebwNsBUwqR_+sKThIZNo_G&E7CSF%MxLz})XC z6A>7c*~oCyT)Vr_>Cf`Hg|g%ds$HIv#+Jl|E?m^p(B7hiJP`@y9NiK%;#3=>KxZl4 z1vY|Uf<>?dL6uKnK-q(cB92kEPjG=tT;ZDS8{G1Fr)~s6Tj?i_o>{-Jyy6Y-iu=%> zPe91{hB~FyS)m{JoA1}*Ki}+s`x_GxF_GwrJH{x@GOgK`7(xugGb{P*8q8goJ4le5 zqh>Da(*mm{pJuy6o#x1PXr1|@Pe%@|vQ^TSCy6QYsKKP-=E$MuvQIVXDU*Y!jFd@d zIE=$-@_ex;jVAt^CIW%f1OJ!QJwiw#)lNOa*n+VMqY9&z0$%&}@#DCL?gQ`+Rb&E7y02Sz(gDK?3J;0o8j_SLVwVI@q}SBzp36QwP;x&v_xaRhNmJ&I}+dK9@7 z`WS-+=aawRdB+F}a6X(b*!!^eVEeFJ#sb*I)VP}C7SVw?hiG%ZP318&4Z$`v7f2S7& z|3sYKhE#=u%g)UC&g{+xlGkQ2jS;-y3*lXGe{IL19eZ}X*Vrz2(kR)`G<27$8F)yN z84isjNnFmrfYO5)Lk?4{=TO2TOq5wyQ045X6G^hBYCWYLu5v;X`#4ZuEA1TPM5$BG zoz#=>UHs6J`>){NC;QL%+quFGZhy^ z4uux^E=Hljc;`Q1ykZD>7;nZ0^g8q{=q~hz+8*>my16UbHPgD}D;mTRL<{1uH`nKh zIu$pIv>~4imno)*9?FljK#ue*iDo6^vScg671hpgRifR+GkLvAQI5_h$>A@>Hx*75 AK>z>% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/P/P8-W b/usr/share/terminfo/P/P8-W new file mode 100644 index 0000000000000000000000000000000000000000..8f254d3604fcd521d7b155ab6a90e2717ba6b1c8 GIT binary patch literal 614 zcma)(TT8=05QR^SsCcRPq%;Qd;LryNnr*Bpskd68Sd=Q2f<-7ag%(U3wNlXfrs(hV z@+kNZ;_f!IDimCHX3lqJcQ%l?!mx-byxJFK_*p;kUgy6b1by>ku9hhD$sY9$}d085om#95aYvf$L?MSc3(d>lD&FyYfUB zZpoUB=zv!-p@3tYNUs!i$~c$mg6C@FiTC^;TJY%A{`bkzGyZn2&_Vat+&fNBJf0)> z6O)+3>`I2MZ$m3UJA_uDCIuFG)uD7LVC3a74F&o;|3~^OCJ=}Irhh=qLfwO!hnkbS z2-S!-?`oBd#Tp{p4SrF9b_T5k?Q}TZ<8xI?>?UYOJRBscM;*GiA83_a;W2?$YQVN& aHoy(p9^j@xr;jypJx!e$)#u6O--~Y}J0CRw literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/P/P9 b/usr/share/terminfo/P/P9 new file mode 100644 index 0000000000000000000000000000000000000000..2a55145e92a53431c3b4802e6a6b298cfa5be038 GIT binary patch literal 1145 zcmd5)J#Q015S=|x_)tP5gaG9PI$3Nwh;Q#Mmt!NqBm#%Tks(D0E`o@o#3CkEFi0d0 zP|(rP(9lxRK$8j~(IAQx2vJZ`ASx;A#=G->?C)nps{H5ca`%2&F2mPd9^qc-*;vUtj4lC|-RM5GBjz8J)T>IC`p{~^# zmCC*gYC>HDt8`9P)v~IqHAIgk^G0o{_v(ZCsJ7J!&$+2onimvHKsH;{tjIL^ZAE{`Gdf_HvS5A$F`E%WEH@mcbqDTjkD#AwN75+oO zF9XM51y~tYg6Yj8z@!cc8Dvvr^agm!34xfI%yS(iU+)LvTEAkXY*6QG1{-J-niW5| zglGzFdESe#FnkC!f}vp^MuM?mBA5z}2xg2X&&ZD$hqXuV<9Ep@`~)GT9m1U?Gqpqb zoMia05Pp0O7BeIaqVO#)E+E?V23Fj!WHwB#No*9^IJ9wQlhh6;HjRR5KD^G*{#I3{ z4@7t#Ag|B!rHx3pbknBVa%@23HjP1(HXQ~HwXO4x5#2;%qxD9+mg(jpz1XiU`9(U= d?WXl60wXdSk};X8I8yoiR=+%{|j^%)I9(I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/P/P9-8 b/usr/share/terminfo/P/P9-8 new file mode 100644 index 0000000000000000000000000000000000000000..8191a9bd8dc3adefd3fecabeac8265090521e448 GIT binary patch literal 652 zcma)3O-sW-5PfSz#gB?7rE4Symx59>vDTJUZM8zt27+H86%nh_l<;VlTSvn|bfe>}11+*&HS@ggeYI|FT@GB%_I@FM}(Clif62X-AVr z`ND7$My2W%!5CUg<*slM1XBb?2!b3%pil9Bj39&w;?sy?0VZO^<497p39HCpi*gWb zs~7|hWjSvThd5H+al3MYGsTJ&ONv!dqkN^foblJX{Zqy}#3>^N8UH14(qABX45xWud!j_&Tr5W$&nABEBE~|1!u1J|^$#Z!;De56n92YkI6}|x( C?-<(v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/P/P9-8-W b/usr/share/terminfo/P/P9-8-W new file mode 100644 index 0000000000000000000000000000000000000000..93e3da9586201fa24c3c49dce55ead4037655fd6 GIT binary patch literal 694 zcma)3T}uK%6g}HUMIS~_MVl~zLk}Uf+h&SZS_V=YOP_>6AFiN~x|9-;5ZOJ`_ndR@ox8Klu(FClbm1BS#W^mXlp?`!@U-rDWC_}?XOfG| z62)MI70aGvVU{n|jt;8DN|_y$ZKh8dELSt={8!aBCFBXhgW${r4-%2O;zRl^x^ zLuxVOuXXY7&fk+RaYJWs33tC{+~Wa{KXOmxo(V6_?5NU-KJ*4+#^fBd6==)Qvb@M0 zo!k50GRhr;+bMKIf&ZP}&;N=J3{!(e$iV;R|A4vxH32mRH7U0Rl{Gh2wQNi`3L=^X zGI2th1}VhyYhsWTnJ*z)WF`%56WRu}HIeZyXVYC&J{BM2^P9KTfe-}+qN1XrqFKI~b7YGA09KxFzIpBJ%z0cHI!eRzo#veA zPGhx|Pu=T943&Ipu~#n6colZ1@?N9u`GN6jo#tAr?X^1fWm1X=zkdO?qAlDwMpn)q zDj{Jn4Z-J zFX=VC6ZQf4QJA%#pg%*t^zE;GZS6PuK|kpi{iZ*7?~oc%ht-(kPR9hT_4<0EuQ|5c zIf3{|6{@q6H>)nHC9v!Ls#~h9R@Hr2kHxdCo~u{tje4uzt6|65gH8hYf1h#3bCS*} z$2d7>+9^72^$P8y1i4k+(2=j}1sxe(*ZMA8!3vE)%|qrUru_8uAnn?K#uX(x09Oez z6*l<~0eurV133?=K*|ukc?6hg0el8Y3XI+W&$2@xWG3%f0!g<=3RK4;KsJ6*M3rLxw^2e1n5ESi4Q4*EuczEOn+2WXIektszYI{8LUEaGLxq%NwpP2A5sfSu?S5cY0^yINz=4R7K#d@ z1{W1{=)#3A1aYI_!i5OpLJ)+4|EAaP-VB!5g`46{&Ue1^-IH_YoIB(co1{KELOHgr zEEFxn7zzy)78}?a=DTyX_jGWwR9z=O^<4s<@!QCQCiZ{IW1YWZ7rlNq$_1D zWN3?dyPD0Fi5R}F2?7dZG>x-P5SOb55$8k-9im>S{iMmAGh|VaF4731F&YP6gU!$l znuSl&D&?pI#(7KP9lB2s=?Oif7xWU!YkEWP=snmM`bIm{!$fW`uun41Pr~=RoO6xo z>^!@`d@RhOY?Q^>6q{i;v40D8n%v6O%kR)%F9b5+huN=@>{AElGe z`CX}qXZm~XSGqI)wcnlnKzXEeI^V9-M#NtOZ|g$8S$VwLrBFBf5Op#=Yte8LL8TK1d5a{xN zxquZh2MX$(nId&AW~Km^4e$#HiZGN?qi{G`y9)0!#f~V90-~9eW7?gzC-Dd1SS@n! z6y6}b83K4Eghglw@Cp!FrcZ!hKmZ_hcnn5_LdRq<7;$uz)GKbAn3HUG%Jn!*#v`tu zbUo@w9Yv%^r8Fi2^QY14>4Iq3vPlh*8YFd$R8cV|ax0Ob9ud?8^>wJVr}{ws9W?;z z)gxJv9M&tiFnt;0*CV9H=_s1&Tqm__)UH#zO6?-G%QQcqNF1Lop(ZBzj$SS E1A{Re4gdfE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/Q/Q310-vip-H b/usr/share/terminfo/Q/Q310-vip-H new file mode 100644 index 0000000000000000000000000000000000000000..8cf4e9272f2b878d88ac11c4453ce62b09578ea6 GIT binary patch literal 1299 zcmdT@T}V`65IuvD_76n`&C5b=P@#NxSKTdFMGbc~wOz|1Z)U5mw*Ixbt`-;+1VIo* zK@bE%5ClOG2tgD?4?zz-^bqtA1VIo4K@bE%Z0EbX;gUW2(&d|(GiT=BIrG8YCQ)of z1*YVg%%(F{v3dGX*chTj&@oj7auHS~C+8EnRCXpg?F%}!wYI_b`$7TVM0zTf1;jfL zMvH8qk8?^4dG9Ghoa73uWL|-_*no{*WixhSH&L~h83Yj~sz(!A8QakA@%elg66nQI z^dpHBxilucN)Bgn4i|{8(yn8H{;5}aju&`|S9py#c#C&yI-PwvYDc_@!$ zVM*WeX#79E@>rgTx_v0eI;h(XJptVh?O@_h`!kN;1c&{ZfDI#94UO@?&{jrmhCOba z)&-q~MxogjS|^!y#u$y&ti{#_plu92n(ei~<&12PXXTZVuxTuM=m8du$*CJ@G{&(f zP-FPhh641Yjgx~;t9!(Xr_1S++P zT`J#KT#YNbCQIkgW$db%5r-C_1!*1_A;ze^q-O2l1-YG-5yx;y2CJZR zFqyI8@xh7YGaHKZe;f4TyI-PwvYDc_@!$ zVM*WeX#79E@>rgTx_v0eI;h(XJptVh?O@_h`!kN;1c&{ZfDI#94UO@?&{jrmhCOba z)&-q~MxogjS|^!y#u$y&ti{#_plu92n(ei~<&12PXXTZVuxTuM=m8du$*CJ@G{&(f zP-FPhh641Yjgx~;t9!(Xr_1S++P zT`J#KT#YNbCQIkgW$db%5r-C_1!*1_A;ze^q-O2l1-YG-5yx;y2CJZR zFqyI8@xh7YGaHKZe;f4TGI8-nKN_mocZ8xl_qS# z3QWo~nMr3VEYXQvDmy(m6$m*sHI}nIfqXid3WVLjM0zrn1;jrP zqKz!j&+_|m6#ScIr9}*gZ0?pS2ke>b}_2*GlLK!jOx&c7Gf*fe7;cVL;}4y zf_@AlMJ|mAzmmgQoX17RS83NVNB`8XJjV;X#4EhU8@$CkyvGOfAMpvF@daP;4d3wt zKk}JelP)h{uE@0oS#jzOxhc2gw%n1sa!>Bd19>Qq zWNuO4(rElYzVcX}hkFu&=@q^OzR-iMvT)~&Dz-70JN3RquE{?c$|^#@vXcf8Ziwe58cnAF*)_34aPY3 zxYbU`HDQ;Yv~hCKDfJFpu^dH3CFR~I!;&IOu_KDh80bN$3$2AlpnITEXakhJlt86c zu}9^5ORI53&t&Nwx{O^lGvd%(T8LKd-GGgcU2Pj|e|a_;PXOW_2+>9s z=;t|M8*<)Lf_aiFu#$Nh)?x!TdX>%Cg*}Waz04qp5TiOYqJ`Lsc8|~Hx)4Plj$r^X zB*-N(;Z-s?hx53|_$uu>7U-XPmFIYYmw1KOc!RfihxhnE{v$r&Grr&}zTrE5;3s}j zYl)P~8d)z^>L%GDD&?}n%W}D$#NARUfkK|&Czq@FEC0jiF(mcU%#Mh36!mpW53@nq zki?7l#dk-^UifEav1fUrc}}^sWYXm#=89Y^%JNfh$W6H=x8;u9m3wku9>_y^BnwOW zmPh0N@s-E&MAYp^Db_*VZsqgZ)jev(augL6l)Ix03yLVkj>s=#pogIWXbm(3-3JXr8=&l^1S++PT`J#S zSdA;XCQawirR=Jy5r-C_1!+~@eHm8VuysMYVPeEyQj>P@g51uEuwytRg;mfjOlmAX zJ~R=V9G)6KlbjjNjLe?OCeDuWt$t6#X($&v4m|;Npw-Y?=w4_Yv>w_BjY1DWk3a{Y I`P+=(H(I@|C;$Ke literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/Q/Q310-vip-w-am b/usr/share/terminfo/Q/Q310-vip-w-am new file mode 100644 index 0000000000000000000000000000000000000000..b710a2ad61c382cef881615866da3db06abb6f4b GIT binary patch literal 1295 zcmdT@T}V`65IuvD_76orG%rGKP_gpeU4OP*6*XKnHP^Dpo7w8Fw*Ixbu3KPGAOt}a z1wjx5K@bE%AOukmJp?`U&_mEe5ClOG1VIo4v7PVkhD-M7OP6ov%$%8f=gbFpyR={{ z$}lC*WHy=dXXof^L&h+Q1|8$ilZ&B0HaQo~B+@gn>GGgcU2Pj|e|a_;PXOW_2+>9s z=;t|M8*<)Lf_aiFu#$Nh)?x!TdX>%Cg*}Waz04qp5TiOYqJ`Lsc8|~Hx)4Plj$r^X zB*-N(;Z-s?hx53|_$uu>7U-XPmFIYYmw1KOc!RfihxhnE{v$r&Grr&}zTrE5;3s}j zYl)P~8d)z^>L%GDD&?}n%W}D$#NARUfkK|&Czq@FEC0jiF(mcU%#Mh36!mpW53@nq zki?7l#dk-^UifEav1fUrc}}^sWYXm#=89Y^%JNfh$W6H=x8;u9m3wku9>_y^BnwOW zmPh0N@s-E&MAYp^Db_*VZsqgZ)jev(augL6l)Ix03yLVkj>s=#pogIWXbm(3-3JXr8=&l^1S++PT`J#S zSdA;XCQawirR=Jy5r-C_1!+~@eHm8VuysMYVPeEyQj>P@g51uEuwytRg;mfjOlmAX zJ~R=V9G)6KlbjjNjLe?OCeDuWt$t6#X($&v4m|;Npw-Y?=w4_Yv>w_BjY1DWk3a{Y I`P+=(H(I@|C;$Ke literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/X/X-hpterm b/usr/share/terminfo/X/X-hpterm new file mode 100644 index 0000000000000000000000000000000000000000..99dd05ad4aa8d132bbf463f405a3df26e72a10a0 GIT binary patch literal 1387 zcmeHHQA-q26#i}zT9LjOMF(OZx-(WtJFBLm+2)FvZm?y>_Rz!TthzSaPP?ljyHP<9 z1VIo4fguTk5ClOG6oC+hkq`tyPd)W7dYI0+yY0)=L$A>t=DXkd&b{9`_rlBpbqss4 z8;{jTHS3qN#e6m0Q75CRNZN5CBId4Uyht`b?`6t`Vx+y`xrYJ8Pi-hwXDWpt*l)y} zI^fZaZD{6rJ9coU3A@mSeK^Rx9leY}&~NYrW1QavMofH~aon&JCe572C0u4UgPe&A zC}Pntarrf>tlYpY+{PW;#Xa1|13bhdR+sr*!7A3Uj;DBr=N!MlOT5AxY~U^4;{&$v z37_!=U-6Bze>=Y82ijD4R|ji7s!t85Wo9eCSs{C#sMS#Bwb}@2VgLWizj*`i)TW{w zny?4d39>TLrD%f2K;xjXLj%sBXxewQn`p2l?Z-?!#Gf6pehQQVok0sPafbv(L1!BQ zyIJlqT4jneo-?ElN%7#yyeL+;A-3Q((gDZ^T>}+CB~TeO4_W{%f@V#HBxo2k0-6L} zFuhEG&VwA&lvRpyYgWk-oHnPpBE5UsP0Gxc*0fVQUN{l^L!u^M z?UJphbib7GJ9Sn2#~CWI>-vb)s&olCs{Jm3Ze8iE#dh3gVMu%Hg00!*cR~6B~$?VH0(?1=WOW;75RbtI7(J zZKJ0HU5fXRJ%WC+gBVhg5JnLvWFdtd`9++=d8HHz7mB`6xJc*{E|a~2tGJFExQSc1 zL;M~+5AYC=@EA|=49|(bz)QTsYrMf*yu*8Zz(;(-XDs0hsq3w8`0*E|P|&n0&D2(Q zb+4jcLZ`IT+8OOOp}VW`l}y{;*OrQk!%^zQBW7DYXy%~L4&+0RJ zZa&{K+d5Y_zhmLa;@6UUMvT>)rs+-cOJh6EFKawVCTq|g$R^E@Ibw#5E+Pb#8}Sv{ zh+lzlLy?CYZQTq96v&zRCY~{s;fwj?oM{-wg4`!Fri|8eBqEzbtochcKWihbHI!%# otf^tq1plbn$Xbr~1xmC4YkAh1O0*`{X4Stz^{fyLApw!ZFN+P31ONa4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/a210 b/usr/share/terminfo/a/a210 new file mode 100644 index 0000000000000000000000000000000000000000..0289de76ede3441d4f26a30809c5e6628d6d42ef GIT binary patch literal 571 zcmb`Dzb^w}9LArE5RG;fJc)F99UAU>Ev<-1(?}y0B*I{Dw0ekTF{1AnBt;JFvBz;ni7U!hdG*W`lnb1IgE$BNj*_S2{TeJ z3oAkmr#RESX#cs+7r2z_3fH*7E$(oS2Rz~_>^|$67wxawqci^3-|!AjgM(lI9)J_d zODi*Js+3w&o)eYmmERXf2e=5%gQct{FK+*^z$N|y9CpAW_h_=8RTijNlXtR*W$wT_ z-101c)7`CDfxGHg0?QA|;2b!GP8fCqMp|%$jF1&Zgi#?UuO1Ivb`t?mlt5EgXk@{WFmc2re1s?3*-}7B17Z> L8Sjz`;!$P`Onn9D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/a980 b/usr/share/terminfo/a/a980 new file mode 100644 index 0000000000000000000000000000000000000000..90c5c1570e10abf22e4e9650d4afb0dc60b6940d GIT binary patch literal 444 zcmb`A-Ae*d5XFD1iQ%sLnhlCkSD{{Z*RNGXG&cwWDHMbt$lAxy1?jCP|MB(iCgOw9 zi!_}F;(cO`mnC<)Td-r=qfiL$2pR*9i*sjjRB=ffuc?+{PtoaT6K{I(nMNF8|fe( H($(u*$nNqa literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aa4080 b/usr/share/terminfo/a/aa4080 new file mode 100644 index 0000000000000000000000000000000000000000..078a29061d455389dacddfb3d694feb5021dc640 GIT binary patch literal 473 zcmbVIT?+wG5Iu{+`r2ptD#nTjyPHJh;~$VDNxCF?uq1Env!BiETG~>`)IDeBoSE}* zlTsc<_;JM^!ZgKkxj)vlhISFcp}uM6`nH&}M?k{&k}$ySR^kWv7y}3~J}QnOMm&uj zWx_apdC#5yc;?BOd;0gZh2si$XXWzxrIO~bmGRa*lCg4Q|%4Ni15c|5l6<;%SbCa!ngzRj18&) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa b/usr/share/terminfo/a/aaa new file mode 100644 index 0000000000000000000000000000000000000000..4057ed848a461b5b9233660999ec00878cae1887 GIT binary patch literal 1289 zcmcgsO=uHA6n-;RTdksa@X&=)O145vHM>bRX%k}8)*92Mn?|kD6-nBN4fKyTl&ZB* z5HB7SL_|Dz@F3_xMZtmx5fMR;f_E<-1W)2kS-&@#Bpy7Q@V)Pw_r95ZZzrTp^ivl# z(O3E?i^bwP&>IS_7w4yoE7iDCEG;gtrxq4EQp?ke%N;2$spR2Muw$;gaDIhIkoqX9 zYb~lJcyiQ2?O1K29pw8hw1?WL6HoX32#ru0JO=pwIAR`{q$#!b{c|)!vs!P0uhDh7 zsn)mYuHvWkLf5zG9esxWPCpTUa~5b4&7xK86@0$$?-vI|n`jrEqDyp(L&6r0=od*b zC`Pm+qj_B9#fH|^y^Z)tJX4h|@kV?QpP;{pZ{i2|m)@~m?vlIZK3UrnkO!qB`>>A7 zO~kA9O3i`UbneDKY7N)_Q@7+Dc~9P#59CAnSU!=@bBxn!HAG_@j?#&5&$hJX~11F}G5 z9>LJwIF4;# zZ-5U2;Hk}?DK{M}FI-)@d4%niXxxmmw9QIb%TOa5HY*XGb!+$aW0|Pr;A0Ln<${@)g3l>p1YpWOKA(BxCcl|I@(Lc#?aKv4k(~%uUcTFT4G|Y pY7JtVsFs*QnP#dbhES#DO9{h^R}! zy<5SRxKmt+2r4KpT)1!{V!?$A7X=k$JojbNVsY(*bI-Y-$vf}8w2LeqAW7?VTb4?t zjye1C3b>OwZQH(dtvplnrKiiKdc9;p9;(>RWX&#BeVsmQ#y;ry=IWC^XR1>7S(V!4 zgi~EQOe9DxMVs0ajTUBd)B?Sec9ZM2P#d+=et2=+2n|pMJOsGz2x1->qk_s^cbq0X z<+@W)(^R7cRax=sYjoXHH^Fy-2lNQ>3GftnMla|Uy@BHOj^5J;`beMX3w@<;^qn^7 zC;cWNc8SJBtH*6(pE%~}MrSKl#H{Kph&6Fb+=0F)?u&=u$KDsu#Y^#8y!A5I{VdkS zhWLT}m*|$R+Y4-8{a$V4AHD6f|0B=KFWntrMJ9xL_sp*`RJ^XfH|`{4+GO7f1s+ zU>Jx@BLq0aIm9+YnAKmXA{$wbn z_G53&y?RKCl4f9g17!oL0Xs$?&<_j%@NQ&)llTm5cJq$`m}y$i6;n&ArkO3q7n#$= zu;RXARB>-HsJMp>VRqS@W#(CCo@M4)W;JW3BEc%Q0ZoC_{jqZ;hMNMW8x=n45k9Nx zvqvS^s1kh9O7LxWRcHrjp13l>ji7q1PTeY#x=?O-?`M$~Q!l0;=c*G+=n0lV-3fa# zv{eo3PQ(N~VXF+U(|UH6b=_t+9WbwpyhtlC%+9=pSiXYSnsB z5E1djU#QiNA!!5 z(UrYh@veBNE1TlEcrD&SzZW0GXYg0EI*| z45ebs1Atnx)p`4(>QKcayqx7kF{zduRm{>(q_X&JSbi^%0dl}F5SvG^b#Rkmd~J6L z8J9DOT8Oe@#Mz=vTHEMn(3G^rN^p+{ESFgQP$(5i>n3@iYJ)vw#mVx}vxl^YrH2{3KHxCW4`5&~3mnBZu;0xO1K_F7o6D!q zZTS8`-d$tP4pkhsV!ZLfB+3NeYp#Wj0q*uzlX2;c#j)EfoH QfN|g$a2%KbP5>wA4vX3vYzFr~obfagtMoCaoSR?R){BIT*5 z^)mQ6-JqLlev9rXen=ZS|CC=NyQpYM5l#eQ)>92A|x6h}os zSRx{N#0ilUL)tN-IW4Bds@CWo_9~j?*AjV-S@xr1Gz3A$qo5LK9?`#EBQul%D3{J+>#%p z;m*=doTK4(U&fF!+);n86^SM=8T0o>m`4F~(K4@Dt7ey(JH^ui2Xb+9F=Xaa)P_(B zcf)W8fFv*pq=860Rsva??067=%U(n*7PmRoK)7y+mD&-EvP~J4woum?FJZGDj2M^O zW7x!M+X4h!YszpFp}6J7HxUUH@fy$-klKH)T#0l;py+ypTRq0Tsyx@I1Q)6VACwY&TEPN7 z9)?>Zj$GnINS$`T%*`Q=-H(;F-3;DgcIpd}!wIM>V4mcK)o|R5vkaTnh?Y^aYH4Y) zXT@CXHakJpm=4Fxstw7fpQ2X%f?N$^7W<9EchG}_KAj1`0nofN1xy2{fiu8aU?FgWIl#!+KTlQ*W{^@cEYWv z1`2{k+D1*(f;R<0jQS`C9t4757ONZE<;y@{-=UrXO(N=_V_-!b^2gm|>UPr&YetzPvi5P9fYCN=JE& z!B9GqF-`J7)dsss#YuVS*+bZa>tP137dQy?0T|fJ0f%u6?050Q0Mu0H%@;D~R(-#} zkX&ZY7NUlG3vt6e1=nylH-y?1Tg%L~%v{UNwalj0&&1qmyaqH0GMCPs8!=QBXnH-u zqqgy^CeJ+@!HpWh+cAPy6rRFAgz}e&BNLo(&5Ap8X`J|mO{raa2^VhGtPgN`C6Ur8 zmaeWut&D6$qq-8a(YUTSRwi^M35iAKXmhobC5SOxF4pX!VGl!j!+-~1Qtt>b0vrX7 N0mp$+-~@1z{s61}=UD&% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-22 b/usr/share/terminfo/a/aaa-22 new file mode 100644 index 0000000000000000000000000000000000000000..1030af8527de5b589bd3183bde1eb9d8da2d368d GIT binary patch literal 1257 zcmcgsO-NKx6h8MVW<@PpNcbQ`=DJYKd3SzmhRIR0$-g&hS@R&doJt%M}Dkog$e)K+Y4u_sUU)PS&- z>L>{6X%{t8Gu{*gG3uopcmN23A*>_77>%1a2u{-^OhT#YF*zT{> zOL_L^Pk+Iw*dPUjl zjk8Af*dZN~VXF+U#cYqY1HTYmNQewACtIk)(~-K>9cB-(rSSZd{x*WHqT$($xNF+#qG;L}lHn!N4qef~% zSWgWU1dX(dnyD3U3W6y0Qx-e~1i=W_F<^owbsPkzX_{t?UIMSuCAy;HYji{N1A1)s z*Xbp_gZ@Zguzmx+13%~&1ym>a`9aVic8J|#kJu}k#Xiw0+C;n9FB}mQ2aO|bxJUGh ziqRWqx7NGjq25^+&&6x;7W%#TAU=b?niD_8Z$YwN*3L9ZOSa2S#9eX;>&oU%&4J!b z?(#qOwp{;DU6t46O?gY+mUrYmd0#$~PvleiOumq>q~%Z2Hq6oTBWJN>Eq@@CvZJvy zg27NK$~*w51zVlBFRBhzJi=j#6UC%ja8xl%JCVxbw_*9cKnBPG!$5Qvi_MGUCd2qT z?gD}YXX2ZS%Zd?Wi#BO(qn<&tr7c#RYdl~jh}BKYl@%DSo=HQAV|+D67zH35l1W@&q^l4XcVTrS4!p0yqJjq(29&=XC%8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-24-rv b/usr/share/terminfo/a/aaa-24-rv new file mode 100644 index 0000000000000000000000000000000000000000..bb2536488f0fc68f0533d11da88a305dfd18814f GIT binary patch literal 1303 zcmcgsO=uHA6n-<7+FGo55VVVsYF5xv%x*VHOJZ#LXZn+FTD3}7B&i#;khCEQq1Co{ z@ZimZC|*5yC@9#2iU&bK4?TEL=)r^FNf11VH^udPla2P^*@SPtZ{GW6_q~~6J4A$z z&<^@cA7w6=>o%?Ka&0BKunWN|K6spQTGf!e&A zUnCNwev1BRU({3ZWT=JqW7b5?y$a-t2i{8le<;0`R;^jMKmj&8oTQU8Fn} ze7y|5PB-YLn%|;3iXYO3pMOfPX$$%*eaH9{_ytJOEOv=@!O!=+y<(p@AP$O7p^KxU zTNolN`osy56vMt_)aSIA605$hul+l&i^nSSOuQ7E;yv^y@kM+C|L|8d$yV7W_sGMt zzRHqOIU+|f8<)2+-u2^upXqt`{Mh|} zgVdZ^+KF@2oSw@VQkpXsj2q!d0+aDzJj^@>=p{qHW~}O6x_gSJ^Bizvddbw?6ty9g z!rjoEK_CfafHV+}MT;P#PNo$L;cr?c#G z<@Ra4#A@3D1RP^Za}s7K))OjdnQYh6T3Wk+aDOmvaYqxucuzvr%e^&f9Uv`2nvL>p zgl$Z1v||qe!@vlD-t81Hie+G@pC1Om(`Y@DO)RfD&RDj0i8-0I6c1%1iU+f%;sGuQ z-mAWsnZ3;HWo9q4@;ZsIS-@*RS3qk2xpF1a4S}NT5pMMu_p0(-qY_-G5`0if@M(qS z@$t}{8gb+jCrowP-MTx6ICei;+;%f~huP_02p1=yu7G}$7gnv99%E_g)vzxkde!iy z!JZYp)T4KTs!=~2)vLXbeEKPB^-VOU#)D@QzWKg+@0-bc`eudnGeF+nQM@%`LQMW=h4y#bSAG;gI9DPFH5nFA@pTA5ELuh>a9`^3+5v z*lwY16a-DQ3%fS_QV_&wfU@8rAP7dVjsfE|q4z;>jwWf!=vDA_x3G>hGW?+=2#VxMRc`$d~*7aiiDaD*!ki?rw!1ICdvJR-)# ziqRWq>+56jTxZtATk%1Bg8m}Di67u!=EPRHL++G&WbI5y9+0l=#y%-mv0mHE)Ewx| z#BTm0S9kqCbz9z*_vHimP(G4RDfALDI>1LdTecT_n`%?M@jZdiUFkOA_*Fc6!;V)IhJ+VUMY z8OGOf=aEQoHomz;SutF;Xp=r*j$>fIhc5%* zsr8;Oq%W@cey)&MX3i9%n)?f`=DvcXxt9xq_mc54vzM8@%UOydkrtveNDUcoj zSFXiyO`zzF2)Ek7z3M#Is0A0Q1y4!~9#^=6e+$cBB92UQ!qMaIQsoly6V_Jq0+jK< z^~lu`wpZgxm1OCtYShR`JsMTjn2EZoY8x3>)dVC4nWgQuN|qod@Nh9^4+VQ@${PVZ W0G)cHz!-1>I0>8r#(~qo8TtdEap=YX literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-28 b/usr/share/terminfo/a/aaa-28 new file mode 100644 index 0000000000000000000000000000000000000000..f916a5c28d219d97d34ee39095d14786dba0f301 GIT binary patch literal 1269 zcmcgsO=uHA6n-;RTdksa@X!@0B~ziLn%yLutqHMdYmMp8rd6wSMUpmR3;m-FrT!HP z;>Cl4h=>Od9t1t8C|K|yA|mKf@b1Nf;7PnG>-VOU#)D@QzWKg+@0-bc`<65bMXgjv zU+JSPl}a6scR4#d+nik(pId0o&Wx897fa>2g@caQJUumgZjnfk{%G3JMy#jUQ=kUg zi|r=bLSfiIJE)0T@JnHspgzih2Y@gf!a4$s(wN?d;aQrXNuyW6*XTOk)cf0XSMyVP zVe)JAjy^+wr=M7Va}=l(^`cSi6nuXe?iPDQlh`L(M5|~M2ZSSBaY$rDx9BsDyx}1+ zB36uEKU-TLiDx>qCfk)3XjeFI3u2BmvR12Pz7Cf%#6#gx&V2L;~!3jr?yF-=7iJ!2xnirsq z2d+o14zsao_}S5*P(e0jKE?)6eME literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-30 b/usr/share/terminfo/a/aaa-30 new file mode 100644 index 0000000000000000000000000000000000000000..4057ed848a461b5b9233660999ec00878cae1887 GIT binary patch literal 1289 zcmcgsO=uHA6n-;RTdksa@X&=)O145vHM>bRX%k}8)*92Mn?|kD6-nBN4fKyTl&ZB* z5HB7SL_|Dz@F3_xMZtmx5fMR;f_E<-1W)2kS-&@#Bpy7Q@V)Pw_r95ZZzrTp^ivl# z(O3E?i^bwP&>IS_7w4yoE7iDCEG;gtrxq4EQp?ke%N;2$spR2Muw$;gaDIhIkoqX9 zYb~lJcyiQ2?O1K29pw8hw1?WL6HoX32#ru0JO=pwIAR`{q$#!b{c|)!vs!P0uhDh7 zsn)mYuHvWkLf5zG9esxWPCpTUa~5b4&7xK86@0$$?-vI|n`jrEqDyp(L&6r0=od*b zC`Pm+qj_B9#fH|^y^Z)tJX4h|@kV?QpP;{pZ{i2|m)@~m?vlIZK3UrnkO!qB`>>A7 zO~kA9O3i`UbneDKY7N)_Q@7+Dc~9P#59CAnSU!=@bBxn!HAG_@j?#&5&$hJX~11F}G5 z9>LJwIF4;# zZ-5U2;Hk}?DK{M}FI-)@d4%niXxxmmw9QIb%TOa5HY*XGb!0@ zJ6m^&1gVdrruM~VifeMzPMvUDsf|3Zopwi_$P=t{(UeO^s zMVIInJz~EwMNAy@E7Cp>h+$Fn_2$_vdsjSEnGNw=ycTbv--{38Gx)22;-~m6NVdwx znSD}|Ju(EpPp-h$o0&!hX7gj0|B>6O`hV)Gye@CbTk^KNBk#%k@{xQZpUP+Qg?uG7 zXPUNQkD6o6!DKaOB$zUyu{4~~U@FQy0_e+ze%`pK_v)o1?3OuDO6tp|Udqx=gtGW; zXwD#z0dl}N5M6{Z*jV8tf35H`oCHVWO%q|oh&79pHqg(gpHd}SoO?W=C5Y8u)d)Do zq~@eee#L^8%lFpT$F(yE_XkrE9%C$+veK$a9;nga0BJGOZ1ij+Y{RuNgFOTs28IC) zY-fR^I0kn5`C$NR8uRAz>2vFjGm=l#nKSu_;-P#@@nGImJira1cFnJ4=2~X1W#(FD zRqLdq<^o;=ng^*%=gyTFZwNHK8R1cTcvh9?9+lummEi3t!7B=v@&BPYtHhBaCrq{C zkY1W0zF}4BFTI2dS8LV}ak(2$>PeQS?nZoRZABxx8}*|x-8Fm}*WCmp7MZ2(jZRh} jrg6DgvyFyr3}sIMHh@X(Nni>%1{?=Y04IS{z-jseWp(oo literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-30-rv b/usr/share/terminfo/a/aaa-30-rv new file mode 100644 index 0000000000000000000000000000000000000000..505f50f9c6ecc281233df14b4034b75901004acb GIT binary patch literal 1325 zcmcgsOK4L;6umQwt%^ki75Y$8$rH4M=H*`!W741LCw*zPt@f!TH9-SO8j=vI*6v&g zE?l^CA&OfUE(!{Eq2fYN&_x$66uM9l+zPIIo;!JIyKwCbXU>^BXJ+o58PY8hbewk3 zclsf7xtz!E_0*cntU$?1#g(irEY@7f@MtWdcoB! z<_n8Ng4CyIQ#+zH1W$%K=_q*wC0SzrjN7%{Tn-C7hn(2B@T!~q8p08Bcey>;)L)BLj*;? zI3Dv8VqS+wS{c`k7pnFXWnhCEv<-@`L;&*X3vVMQ+G% zQnTi%1NW#|{;OzGnl{hwHhz7@vc|HJCFW!{pm-=7QaqUTDIVa2 z;Jx8^nc2(CUS{?(E3Xv~`byXabPc5Lf-_el-4;l?72#4(a;<8db5w#8Re~=~3BEaR z5q~L~)g+Ew;Q^nzd5@l7KpdwZE^m7!e8TK>9!DNGpq_(%nkO~_Q9a5spf`e!4CxKS zkp_E~^{QX*0X4!-IIK4!kbL_o+U;zRZ$ixDym9#^YA{i!ISH5miZ`c#Y2Yky4wwOE JfjQtj{RPG9_=W%g literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-30-rv-ctxt b/usr/share/terminfo/a/aaa-30-rv-ctxt new file mode 100644 index 0000000000000000000000000000000000000000..fb8f018f418f862c0d8aa524e2806d7b08594339 GIT binary patch literal 1337 zcmcgsJ!n%=6h8M_YHP9L;9wt0s(FHzU|xP(5@XXp)8Cg?ZKY2nX%lLoO+)esskX(z z!OcMwR|kiJf*n*G1O**BI4E>*5S#?TN!%2l-?@3I9h^=0?)RN@zx&=f_g-Fyn4uH2 zhrZA!nayT>LBFqD_08KgdzHh6P8N%vWO;76>`5-oWh<3zZn=Cq==UrZiusDCoUi7~ zmAt1~$mN$~o=Ub_C@y&Bmy343W)lfgKSev*74<3hq^X6DB5a~&a-0_0PaSj&wK-0h zhA0Id0~}`p;}kGWvnqC+E0m{2SFeC?&`r9f;@fmr@gv%F=bzCV+J^o{KQR6Regjf8 zi+!S9@bew#pg1HBizA{_=;EaC2}6WMk2oWeV$gLAyF4x?#hR<@YyXZL;)$AhE?$W( z@d5g?_$t1Gf4VE0WUFkG2jp>CUlo#3IV6V>jmkS1@45NE&vcyoZtlT9=63u3mwqTW zl$}Ra$zL(qbqtvWf+KY44tl$EMlxB^1<3>1=Krrf!hnYtJy=3Uu zjWxYX&zQ;F9q~mirSD$;cjSFKad2{z&H?&MVCNEor3-t|AYP#a?w~fPc;y# zTcS(tNJe&yN*kzal$WsC9keKy+oN?8t6d9_u#8E~N(A^#i&{FgGWQ1xiCZM>F3xfBW>t$vyGkclY%dEUsA{9Mb|Uj z>M8D3&2x=PaG^@@K`Ftftp-U+g!ZaS*l-H?3xDQb0JkgGz>V!v_tCVDW@ ar#S(b0Gc-^fhpiTZ~?doOan8(CHe!JApb=G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-30-s b/usr/share/terminfo/a/aaa-30-s new file mode 100644 index 0000000000000000000000000000000000000000..0a11df5c28513f47df258b9904ff61d28f96ad2c GIT binary patch literal 1362 zcmcgs&rcIU6n-;H6h({&56Z@*AzcrWhHl$!OIiyBgj#+qprYv#Y-?38P_SDO5s5L; z1OJN`4;m9<;=#YbD+gkT(ddDL2TV-X?@hPm;N2zP`@VVeP3OIt30)#i7fGY9bWSUk zN}*^t;c|m6cj=G#pr3tlo74k9*yEss6|%5~M!C3^d43 zHl~oAqISA~Q5zj2&ugbn>Y{G!?0FWAP!2o}c-|!93@}Rtnpc_U^pduf^1RpJH}sBn z)c7NPQoKuhiudUU9nxvxd4>ofT0jCwiGDF8Mxpr2i%BsfW<^2Fi?X;U9*C-_i8Zky zwtUA6pI?b>@z&RkwMX%b_^xIS#BU*GhxEMjvRn3mV*r1b<)9pvIe+ANbMm&V%7+-c z@;%~?{Lq?ftnj?gerETdnWp3a@}At6-{enuAb-h2`A3r0rnPIQv@_aSO?L`(9QUX@ z(fbHF-N^^jrWMa%FcwT(%z40AHI1j{Go#0-jPh`i6P1*)8Zjz4>Od-ox1l>jKo*z+ zCP+`{PCT6Azi4<>cg&QD9maT{WamjJxU6Lalf%*Gs3x2;o2yv!GFX!AOSD3a6$6{J z?2*2fy*Zt+%q4bmJvqHkPZIB*^~-CnOu}ML>rN)Z5u zM>DEXJ`}%6XOQ$b={EYdk+w0kaSrw{a0M6vaAu_D|(XaS@yjw@GUqA5^xBg3s; z;$GD}*Qf*+ss!J#5`4|!Mf}&%oi*aj9iE7&XA&|hWx_Extp3BP;613PV)V1Uo=6!f zmJy>K^JVlX8#C&bpN$)J)0YXOo`l53=I8`|9yhzd?@CpKM-t&zq6TXa1)Mk%HoCCU asXYnU0NS^wff?W$a2>b-%mO!oTl5!Dy8D*^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-30-s-ctxt b/usr/share/terminfo/a/aaa-30-s-ctxt new file mode 100644 index 0000000000000000000000000000000000000000..a9eae4b3261e05c97e2daeebd25591a737557853 GIT binary patch literal 1372 zcmcgsOKTHR6h8N+Xnk}m*g=ev5jB)%@-7LnX={yrP1F)h`120-?^Ez3-?a=&i9?iojK>;OM1mPT_7KQrIWr= zsnpl#TX0+MBbJd+$II4g{%pOxR`+LD%cVx6R9UO{M?(IUX2HNBW+bIs_shiHg?V=;3R5$fdFP%p}O2ufDa^ML-sVUeQV2%njuOmA|fGDQ2b=XkQfzXVoJ=2 zIZ+VvqAc!;d!i=lUPaU64Y4U+db+*#(0&k~bY@R{7r%sp?vbbDS*g@TfFDc7Wm2X+ zPpQ0|m1S9lzbIeBZpk+Xx%LXB-g}Yle=?nl|I0gaSALXVB30 z-9E!9&{3SD;Y1c;a)vV&NL#UZ2F`dO9b+B?%yr9rXgxNAX5|{Y%N(er%=NHY$-@CI{+$cU3+V^$ks8?KGn?GfNAFbZI!>>O|%%fQYczYIW4XP@%L z%!5tG87n4R%-Ld8^GGqSdAJzXJj4y5cEhV>=2~X1W#(FDU5n|%JUwU$qz{Wb*J83G z&~!V(qh97&b)I|Ff*aL>PgM&(+R!roe+;Kd99iH*SYM4kvr;B(bGy{LEEU`VeLc)8 zT<#`PW{PFlbfcb(97dz28}p)Z)3rRAFx@014mC%|@Oqr=65l1=5$;o%uaS0|5C!Zw f0yd_wF{wQT*Z{`2r-2z@7PtZ21m=KSz-{^qh3W#S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-30-s-rv b/usr/share/terminfo/a/aaa-30-s-rv new file mode 100644 index 0000000000000000000000000000000000000000..d677272a516cc1336eaeb294a902145217e57275 GIT binary patch literal 1410 zcmcgs&rcIk5T3V75HWD@Kq4DWC0!0Q)oy>2HiZJ>S}0pVP+2uCwt*%TYFiqRAJKy` znxOIEAL7k}2R(W6Y+^hb6Azl0=tUFPZ(g_7#Jfwr_kA;OhBt5Cq=UkwVN&TMMb$!~ z;131-b$_k7$6AW?#)c7RQOuG@0O8z;WiV&I3!dOgE(G z4&A3mQaR2u@N;@WFQxsO-bnsHpCo^w@1%+o!f^s3j&&TE0H#Go%!zp@{uaemaa|Nd zNt8uJ+!9-2N9>Ec;+}ZmMjX2QL_8I*T;0m;te?dE zRV-yeS#|AgWmkEq9Kw36yv6!XdGGGD;(7h*dVc(~(~0??>X)LZ-D zI;0M(BkCD7sA~2y9l<+lc4!rgso5EC(uhP;FlM~T2y+I|tA@U7?CU9fQlnY-si*kOp!`+A`e6-mS@AfrW{0#H#P zVYD+@b1EWZi8v>;5pE^MD*bTcussNOJKX>iP*UJdD|L5-N} zj_Hj!Bu|1#M{xjNdyPj+7KsXiJU`NCLM-DE;IMEp3zxU%01H4ztc$=rumD^F7J((; IGH``{1AHd~y8r+H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-30-s-rv-ct b/usr/share/terminfo/a/aaa-30-s-rv-ct new file mode 100644 index 0000000000000000000000000000000000000000..c9314e25018d1bb94b19f189b4ad40d84ae4f25f GIT binary patch literal 1420 zcmcgs&rcIU6n-;n5HWD@UImAL4`&s zuu@%jN?T4}t<)&h>ZL%VTr5?I1gTFj10MNFZ;F#M)Ji829-bcjZfrujFfg#`E*|!Owj8XXe23Kh-z+ zUH+24rPNxqHmyTDrXANhwNqNR)}!h6A|1v%>UQJ?hMaCs1k+|Lo?C?O`Ab%mCA*Cv-a=O7UMLw4vK(%ES(nyic;d z4GOMUDp3KM9z{Y;3oCCOW)rC-o0^Dv=0v3fNo?R7@nZwta$dq_HDqGun$lcOP9M;d z#G7aR>Y9s_@R+l@oe6WbYx+#SZ)81qBi2*mDNqAN zu-!ykC=45D2Q^U(o)m_0>Zcrd5D3FztfRmfjq80Fo}o#aGI|Ysm9EhZy}w0wG(Vx| zCjXM&(P!xI^b_lEi2`+8&yBp3<^C|-&3m|s_i_ujavSewmpwkn8SdeJB#hB*4qNlmH=xXkfg5bSiyu#uY7O${)g|#=x#N8P@1~diI1CYwK z7^(^sy&jQP+oV^Wmm0N@LbZ@dX(8k4oW{R}6)clPCMDtOad+6|36eLgt>y<%#tYXY zw-1TEl1SMpk*-~d85ylbV|FEOqMluGj7->-BqRozqpj6SmLbORaxrEf1^Z~q9|n8? Vo%$odC~yoo4x9kSfRn%}`UB($=+^)M literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-36-rv b/usr/share/terminfo/a/aaa-36-rv new file mode 100644 index 0000000000000000000000000000000000000000..448866686a7818fbd0725ef3e9614ebbeeb77a63 GIT binary patch literal 1315 zcmcgsOK1~O6us{$wkj48ROle2k`c6ocJi5|B*vyc(@#2SwXJqkk~%>HNgI+7s@CpY z2rgW>b0Lab7cL44cA?@zP|!seE)=>@5Znr`9M653*e+Z<;kVzS#HX&QnTl& z4RzG)&=oXk%^ve7jEI>;XWXBNFpmLx#n5jUH}!7aInCW72b{QG3F=Oo_9B$V+tBPm zAO&QB3=oM&%OImkTgziVGv13|$gE&I8jrE9g>cgzEq5SjvP~J)Bm;|#^At9FjTYsj z_h~U=wQT|dwlSsI$siW!Eos?Y_ws5+yMS=NKN05aCj5y|Qk|XiY@K_6G?O$7saObG z=vqk48Ulua5dimKrGZgQ1Ka()7ywV}8nU_MwN=|5%f*(NQ@OC>p`59BFc(xjzz2f& zy60tPFEe|Y*~_fFb}|wyVH?m@kg5frT!~Ce;Lyzor+R{ORpWd{CHSC9aM6_D%JmlU zN21vc;>cwl2&&2lbY}r^+oG{KewucB8#oP!dE7UOZy^T@d0LZz1t58A3YZ4Y0B3<2U>2AI G&e0!_Y4r>M literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-40 b/usr/share/terminfo/a/aaa-40 new file mode 100644 index 0000000000000000000000000000000000000000..c76c952e9e9dbd3dfbf9c7eab91a6f481b856992 GIT binary patch literal 1269 zcmcgsOK1~O6us|NZMBNx!bJxpluVVD>da&^Nll1NTWd@|lUA+L5lPyJE%ZklO8pfI z;>Lx7h=>apE(BeuC|GbIA|mKgaPP*2;7Z&n;T=MHHRCbdxm zeWj1GR4R44*5&NnTqL_VF~1ne&Q6q;mP+OM#e=RDnVFtDw?rgJeH7KS78@z{6sU>z zW4npAP#8AR4r-xR{8AXksh@J-K_Co=v5o>`G_Lkxc$OwYZryTu;SBKC?_(I(o(0pSQw91zL!QYPK}tO5yZ}8$r(XDnzrL! z2AhFsI?kL2%mv%LWM45m%<@s*PII7~G8Y`PoTFxha(Fk4pclvj1z-q>&tkE8sb6gb zu9f1iYb_v=H^w zwf90Xb73_I^2Ou|bGGOz?kjqVdy9_Z9xe#pi`vV~US{?(vzJ+UgG}6+!OwuEKxzP7 zxe`NFfuc7e+-f`bs`6Z;5?rVfJSio3T-G%HEsS89I5NozM~%DFEKd+WVP(}XKp78Q zjoduU_DUjUrdT>=#nm!akGf_huA`n=v9(N?l_VqvnWL@MN|qtU@o+I_9|ikp${z-N W0G;|Hz$kDWI02jl#(-16Y5D_?h3L2d literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-40-rv b/usr/share/terminfo/a/aaa-40-rv new file mode 100644 index 0000000000000000000000000000000000000000..ee6046b72a920a60676b8d239bc34892106ba1d4 GIT binary patch literal 1315 zcmcgsJ!n%=82#>5Y*j2GsL+RyN}i}CG%tDiDT%S^pXpEf(rR1nQ%P!q29h=;Aylp1 z90UgkHwRH%9UKY@c2IE;6m;m|pwK}F}eqXh*oLpG&B&+j_RZp@!pR3h!`Ne9F>Gzb13x!&Dwa_S3YXwiEm@h06 z2~wY;P3?;25Ih-br{n1Dq+R4V?X-_N=_qz~oDdCD3Oo)t&IH;iV20*Y-*GNefl98v z4ZchF=)USdpht?I)0#W}nm*D7^l$8lU4T76hd3Y(iB2f~j)*Ryixa{p3=tB&;*>~= zAu%G-V$yX?yL>@h5_eqPoV(SoikE8Sjd(BC#aHN`;+OaXZj(*detA$HmYVEw`+agi zPRVKXX5~Y)kKOpznvV0tjXnLx*mmFl($D0od?DB5EBRKwlON}6&zGkckp*G_~2C2Rw_22!=)lPi&K2^_i^;Z#p@u4<%;UN>B6 zuxDAX1obXZJ>rHVdOZrs)lboGcY}NbVh;C>;#Cl4h=>Od9t1t8C|K|yB1O=n;N6P{!IOAX*6&RxjR(&reDi(t-Zzu?_AO}=idw0T zzS2ioDwR51?@D%dwmG{nKDW@Eof$7JE|$u33x`~vV%|>HQtLr}-JZ zH2F1Jr_a#e=_l6T90lq`y=WA>1>YZrd&NG{B=(CI(JI=+LE(smI4m-vTl5)6-tdqZ z5i3S-oUN^o#dDom6K}-_@d^5i_$GdUf0+|o!qUjy52kz9%qxAi_40UV2d{C12!(`Hz{qgl6+~W8~3X7T%#6Ts1`gaEqGkfDg0Yl!4h#~f)kD&cZVvE6F*^XH7`IJ z4_uF29btPVnNlg1j;gpu#%fVlRpKU^P!-$Aq^fw37-WvNS1Vb97{kNGn0*xNqbYv~ X@Bwt{4+A5>3E(7f3K#`W183+DSq$j- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-48-rv b/usr/share/terminfo/a/aaa-48-rv new file mode 100644 index 0000000000000000000000000000000000000000..ab26f86d6e297379d345da8e6bd513c371810616 GIT binary patch literal 1315 zcmcgsOK1~O6us{$wkj48ROle2k`c6&W|GOLB*vyc(@#2SwXJqkk~%>HNgI+7s@CpY z2rgW>b0Lab7cL44cA?@zP|!seE)=>@5Znr`9M653*e+Z<;k7MG}r-zE4(YiPOiayXL^e^m)U4T76hd3Y(iB2f~j)*Ryi{qk47$PkC#7U77 z!(voq#FXcl@%X&BC~kYYId`jF6ED=rYw=EOh%eAT#82@X+$Ni@{qmqZEH&Bd_50MserBwK@n}58wie8$JzDNSFv2!vRFe!WGR{-j>@`}H zkKU)nh}E_U2-wDyW+#JzcqmZPvbpZ%)r@ul;eLO@Ks^Wj6i=+1aXrq`)azkSM)bPj zNrOErdL^WHf$C8&9M$VFNUnaGc6%E*4TyQ%H;Qi|2Mc*xlYj*vd20%o2F?Iyff-;H Im;=ty9|$@1EdT%j literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-60 b/usr/share/terminfo/a/aaa-60 new file mode 100644 index 0000000000000000000000000000000000000000..827c6ead7b7d2bafcfbe402c385d7a1d900586d8 GIT binary patch literal 1237 zcmcgsO=uHQ5T5reZB_K(p?L=-%Tco6g`c=sxJ5^stJQ9%X8g9i_;-@LrESUkJoo9~-%X0!8lLYjq1ZM20x z(i2%I6gnMiH8VHYk|`DEOD&n%Vxe3v`17TGj@2?VJ$I^1BuHI~*0mPZ68Ge&ky1$O zsGfqLk#?&g z5wD4xs&ZF65Rb)E=;z{vcm;l=@Ax1-i?8Cl&Vry$HpnKqTLyt43y40j`8ut=`G3?l z_x_K(ESKbpydW>hEAqO$A#ce$@}9geAIeA4@W!bDdo;Yr8HB9i^@md7n3F~_5K6_E z`vG$yY_5dQn;oWqh|_5{{G_>Hn|_wI!^+~fVR$`22FL+JKx`Hv%pt)cz8<2i{(=$b z=kGTX#LBUf{Bf)W+&_X=!%N#%GGfhegR*LQF5j`dHe{TH-4#kjdE~)RDw0+M@$j`_ zy2)_Ja50|?+ePYPUbh!G2=oCsoSOv><2JC@#a{-Xr*^hnK7Dr0^ZN6NW#&vis<=1r zDDKJIio1Cr^q$kb%-qY&z0BOpta`n4%$~txKvN*~f_ZW!hH3&sR~1#nV#1Q-R507rpiz!-2GI6;2^ DOFie< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-60-dec-rv b/usr/share/terminfo/a/aaa-60-dec-rv new file mode 100644 index 0000000000000000000000000000000000000000..31f764f3aa75e2f22c0b587b6c346c6ef5b0a988 GIT binary patch literal 1432 zcmcIkOK($06h3pOYH1^gs!El}sK~S#1hEXhey7)RV<)600j_xzD3_{sa!p=-Vc(cM z`43fhRX5#r(M5L%sVW;5bX6oIR;cW%ZjsnuzB9gv@B=#5H{W+2bLY&Qktf7Foghj7 z(nZ;5G!nUF!f!4o`oq0)rxPppm%9B}xxLgF3>tp7e`fCNY^>e&oAK;)thLr@4&sBL z5o`|P{pK(>T=SbMCtIpkk8j<(pl-oEGg-{=`OZ%k(>m2)R2^E;Hvc zb1pOIGMiklluhyRL8~CsORn4qT>MC&=#k)~PVreyoNF|K3pIkJr5sUHxEL8#S4RsqaBtR9b_Y!(}5jHTldm>PaoGo zKJw&sP=IXnnrR&z(amw~kgC#$*auBt<(Fb=MIouhXmfu^jmGWUD=X{k8yl@wyWQz@ zyS?6>JN^D(5Cof>!{Ob#TU*=PJ3G6(dwcu)Sa*}u$%;CaLb3*b84 TOTcB|3UC$p2Dk=X2X4@7WeW+` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-60-rv b/usr/share/terminfo/a/aaa-60-rv new file mode 100644 index 0000000000000000000000000000000000000000..836944567ba4dfb923b48712966d43c410868a37 GIT binary patch literal 1283 zcmcgsJ!n%=6h8O**CJIM9PC3#HBZnI%Q^7Z&ZK z4fLK~%3Lnzv;4kFeLgik?MYQ8XDXi5)MTz&&E;n*2Q9y+RGcnUJ1d2Hp;9e)>cxCv zhDeb5DO%H7G`5hFp%zLY+DMzpbz7*7+G!8o?79)^r!;s7aNQBCW575~sMvMSQb8-% zEkRZ3BF!mhQTx|vNvoT5msX+Q&^xRjflt6^`byvFClvpFlMtIkt7sED#7?nG>=qru z6#Iow1VkevqPa^P5=E^WJL~JRxUF{Xi$`KbJcoWIUW>Qj5BkIx@lE^?zr=RgIOUOh zWl%;CMdekji`rj*rt4nQ-qJtz{?7Yf`i5MVx8xmpPd<plCeCQ4?Y9PHls!^7LXvxs)y=MyxD*^uHBEv?hHf$TAjneHt;0VwUpiesu z9K$iN)6EY9kkf24lTBV)aGZf`Y?e8d4J+=;T8ewKLB%~>5OOc;TxQN?=3HjZWmdUP zG7>D|HJ}S1b=O?E5`3*npy-C+Ru6Em%H|rC;6jz)p(w$V@fY!r!f@)u&N%Ay z{3LvQ0a0A=+E>6g%$a)lc}zr&+dRw%YvH&VXBjqY5iKpV7SJ-lIrC;YWOjgRQEf-f uS`3oMo~Bm)f_xof0{1-#pa&a$+9QAspm}=~7z2(2CxDZ{IB*I$O@9D$i1gq9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-60-s b/usr/share/terminfo/a/aaa-60-s new file mode 100644 index 0000000000000000000000000000000000000000..d0877a6e994c4e1e152187e3bc583f562f025878 GIT binary patch literal 1296 zcmcgsJ!n%=6h8OXpSDtQaFAYyQ1V2q)x0DxNlA!JTkEqwzO-tUK9QtGY@vTNu~e;9 zL>Ctqmo5$+igZwP=-^PnLBv5&#KA!~5uC(Lk>_`AZd$?JmhXJu{qA}9p7YKl&EgR4 zqdNLRpJcIEY)eGi$_u%vsZefqbb2|v)pG%-GPvD{j&6f2j@M1u66 zUh=_}n z$cPTnZ8BWL{UR?GjIKVr86S$rdS^{M7q7%y=+EM-_zwPQo~V=cvQh4owP#wSCF3%Q zb-TQQcuU^i*sJ9%8E5&Qom$5K+eu`x=nH2Y=3c;>v8`+Nb*t4X9pmLV8>O^06SYb%?SSRt+faTNkOT6- z0I8(%6OlCkCn7V-x6?Lm=;M1*O^r~?j<<4fTgJv8*naTQjBloum?^JXG(&_OSHO zjn@qv1$qFq?zzBmJO=hV_%HxDwa)W}?3G2|?=7U}nRA7>=I%m5b5|j%xswY*?p2e^ z%(={*%gnjVI@ixSQSKfz2GXyeE7xM6CQx+M;Z_fDuX>+r)Pf7ug6E_K4=XZ`-wfr? z5jz)nBdUkpW|c+>ueq9P#$Uoz^}wwooL)($tu)K1Rf!uJ+jQer#W8Nes@O&*tx5_K z!*!_v$78Z%{B`Jx@P$PA!_bR4h!MPT7#_Ot(5ZI<@Bp;$4FW^JN#GQ48W;x70B7kB DL+J0~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-60-s-rv b/usr/share/terminfo/a/aaa-60-s-rv new file mode 100644 index 0000000000000000000000000000000000000000..41b6c222ebd2efd3269883fe3224e5e4c6fa0841 GIT binary patch literal 1344 zcmcgsO=uHA6n-;mtv@Y-3fetbwX0wV&E~&sNSn5{v45Mkww10(QWI>TX+si2)mpsu z=FNkLf`}(C9ux$ z3w@$>naO0lVV}3`EmfBi^Yg8V(#%4sHBp$!l*^gyLa9B}(K?r(&y_vpN~UtL>?!4{ zxl%dTTFqy33q*p{Bbb3YX|uk>W{Mig#&jz+P_5QTP1Hh1kVCB&qCQH3hk#mb1mhSm zNz-&rIoD`KF|S^Sx`8Hw?E2NB}8dn2d-o(@rQvh3rTHWYsBRM|rk^ zpmqz*Fjbry;vs8J8N5N#=rE$hpG)ZdEWKZpzdLHUalg+F_~wjM+OxPkY@CJN)fNkK zZ9{FbKwM?cRqCwWZZg7TI4Hz{?O^JlFsBzd3G@Lt1t$rd!fRl+i$4Y+X5$c2>G-8( z*BwYl7nu|3pyJ+iSaDC+8L$3=Y zT^C&H39ePGbB;=IqDpYfl;FPk^7unB+$ynio)`S8?_M)I10UUs6#lv+e8L>5uSOOf zSC_%;z>83o3Gao{vC0Zal@z!~}jMPvOi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-ctxt b/usr/share/terminfo/a/aaa-ctxt new file mode 100644 index 0000000000000000000000000000000000000000..282c36211ff30eb04bd039b6aacdefbe3de7e749 GIT binary patch literal 1287 zcmcgsOK1~O6us}Y)T-#hg-8cVD48x=Vly-OX+mt;T4R5c)-N5Aq)BN5ZCa9PiB;=D zK}5ub3m1YeR1_?@5D^h{DY$nlxKZ3GE<^;!b6+Q^3)d!`d(Qp5nS0+2=@5g|O)d0^ z-pE3s5VFFdqFZ+_uvQ{dsRT0BnWbtVvp7?z)e5DhYM&JjER-v=wPc`HSS?rP0>!0@ zJ6m^&1gVdrruM~VifeMzPMvUDsf|3Zopwi_$P=t{(UeO^s zMVIInJz~EwMNAy@E7Cp>h+$Fn_2$_vdsjSEnGNw=ycTbv--{38Gx)22;-~m6NVdwx znSD}|Ju(EpPp-h$o0&!hX7gj0|B>6O`hV)Gye@CbTk^KNBk#%k@{xQZpUP+Qg?uG7 zXPUNQkD6o6!DKaOB$zUyu{4~~U@FQy0_e+ze%`pK_v)o1?3OuDO6tp|Udqx=gtGW; zXwD#z0dl}N5M6{Z*jV8tf35H`oCHVWO%q|oh&79pHqg(gpHd}SoO?W=C5Y8u)d)Do zq~@eee#L^8%lFpT$F(yE_XkrE9%C$+veK$a9;nga0BJGOZ1ij+Y{RuNgFOTs28IC) zY-fR^I0kn5`C$NR8uRAz>2vFjGm=l#nKSu_;-P#@@nGImJira1cFnJ4=2~X1W#(FD zRqLdq<^o;=ng^*%=gyTFZwNHK8R1cTcvh9?9+lummEi3t!7B=v@&BPYtHhBaCrq{C zkY1W0zF}4BFTI2dS8LV}ak(2$>PeQS?nZoRZABxx8}*|x-8Fm}*WCmp7MZ2(jZRh} jrg6DgvyFyr3}sIMHh@X(Nni>%1{?=Y04IS{z-jseWp(oo literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-db b/usr/share/terminfo/a/aaa-db new file mode 100644 index 0000000000000000000000000000000000000000..524ad36e9e389e2bca2d979c3494d456ab07f2c7 GIT binary patch literal 1268 zcmcgsO=uHQ5T5rewY8{t5V4C=HCs?AW|M4^ni!k@nf|${RxRBgvdIRmwly@d_*W5% z;6)ETC@6UFAm~A)hYCFu@u29@lSfa2;7PnGuHU?Fk{&#}%QxTmX6C(}c@xqqOxi`8 z=qr7cj^lK=`J3t4*|zjt{_{f4jyrf<;vWZLS<^c*p_z+m&zrlP$Uwh z9z``RveZO-5on-B^1LS6O0Be?+M!MArwn))@VqSS7%)zgYVCPBD$+$?FM{vVJz7%h zhxAzSGOhUWReDdKp}*5l*x$e(K#E4OMQjs%zUS=_JH>9XN9+^2I4C-VAxzOJj)}DB z^D_o~9ucEr!Po11>-M>Lr6RAz8}UJWg8m}Di67u!{*DIOEL-GuS>1C$wo6mSu|6tq z!!Fh$)eO(O9{M?C^P* zjAjo8l7<;gVKEd)n#_ZMUNZC>#)5uWcTezgiXCo3FNJhBLoIM+fL@>nNCR151Tbe{ z3^w({@wH%r-*B*mK%Aqonu)MtL~BWEgMkBv{E$k~Vti<)7AIC4vf;3eQ5>S#sZekl zHXOVFUsoU*;f{s_$#4q4<@MgGm3EUBCCx(d7FxEjw9t%&rmQ}oA3*OG8np(nl^gEj z!+;HqXLG4*w`_Yb7r)A!&P5dW=Aw#wav{at+9YYnz3%5Sb1pOIGIK7o%C%EwXd0ga zaVzTnxpE~&sscr?d$`p@+^dRnjY@E#O7NJJ;8_Ky@Modf^TeJ42SRGv9lDz*zFw8; z&)>yutBLE!IlU4~=n0k~y%O^BXJ+o58PY8hbewk3 zclsf7xtz!E_0*cntU$?1#g(irEY@7f@MtWdcoB! z<_n8Ng4CyIQ#+zH1W$%K=_q*wC0SzrjN7%{Tn-C7hn(2B@T!~q8p08Bcey>;)L)BLj*;? zI3Dv8VqS+wS{c`k7pnFXWnhCEv<-@`L;&*X3vVMQ+G% zQnTi%1NW#|{;OzGnl{hwHhz7@vc|HJCFW!{pm-=7QaqUTDIVa2 z;Jx8^nc2(CUS{?(E3Xv~`byXabPc5Lf-_el-4;l?72#4(a;<8db5w#8Re~=~3BEaR z5q~L~)g+Ew;Q^nzd5@l7KpdwZE^m7!e8TK>9!DNGpq_(%nkO~_Q9a5spf`e!4CxKS zkp_E~^{QX*0X4!-IIK4!kbL_o+U;zRZ$ixDym9#^YA{i!ISH5miZ`c#Y2Yky4wwOE JfjQtj{RPG9_=W%g literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-rv-ctxt b/usr/share/terminfo/a/aaa-rv-ctxt new file mode 100644 index 0000000000000000000000000000000000000000..fb8f018f418f862c0d8aa524e2806d7b08594339 GIT binary patch literal 1337 zcmcgsJ!n%=6h8M_YHP9L;9wt0s(FHzU|xP(5@XXp)8Cg?ZKY2nX%lLoO+)esskX(z z!OcMwR|kiJf*n*G1O**BI4E>*5S#?TN!%2l-?@3I9h^=0?)RN@zx&=f_g-Fyn4uH2 zhrZA!nayT>LBFqD_08KgdzHh6P8N%vWO;76>`5-oWh<3zZn=Cq==UrZiusDCoUi7~ zmAt1~$mN$~o=Ub_C@y&Bmy343W)lfgKSev*74<3hq^X6DB5a~&a-0_0PaSj&wK-0h zhA0Id0~}`p;}kGWvnqC+E0m{2SFeC?&`r9f;@fmr@gv%F=bzCV+J^o{KQR6Regjf8 zi+!S9@bew#pg1HBizA{_=;EaC2}6WMk2oWeV$gLAyF4x?#hR<@YyXZL;)$AhE?$W( z@d5g?_$t1Gf4VE0WUFkG2jp>CUlo#3IV6V>jmkS1@45NE&vcyoZtlT9=63u3mwqTW zl$}Ra$zL(qbqtvWf+KY44tl$EMlxB^1<3>1=Krrf!hnYtJy=3Uu zjWxYX&zQ;F9q~mirSD$;cjSFKad2{z&H?&MVCNEor3-t|AYP#a?w~fPc;y# zTcS(tNJe&yN*kzal$WsC9keKy+oN?8t6d9_u#8E~N(A^#i&{FgGWQ1xiCZM>F3xfBW>t$vyGkclY%dEUsA{9Mb|Uj z>M8D3&2x=PaG^@@K`Ftftp-U+g!ZaS*l-H?3xDQb0JkgGz>V!v_tCVDW@ ar#S(b0Gc-^fhpiTZ~?doOan8(CHe!JApb=G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-rv-unk b/usr/share/terminfo/a/aaa-rv-unk new file mode 100644 index 0000000000000000000000000000000000000000..388a0cb4c8ed8c3fe9d9aabea678584de9f7c30a GIT binary patch literal 484 zcmb1QRAOLY;AUuHn8A>kn5bJ+rdyhqUE`RSr{GwWlwYI(}@elXCk7;Xw+kdF2MVpD7L zTp(o#q0FrWfr^6oU}aE3+8n4^+EUsADDDB0l8*KQGF9zW3(QnY46RkIK};jn g5)&xXShd6)$}~|eF@-V>RTUB9=BgzYK=E7#0G*sJ!~g&Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-s b/usr/share/terminfo/a/aaa-s new file mode 100644 index 0000000000000000000000000000000000000000..0a11df5c28513f47df258b9904ff61d28f96ad2c GIT binary patch literal 1362 zcmcgs&rcIU6n-;H6h({&56Z@*AzcrWhHl$!OIiyBgj#+qprYv#Y-?38P_SDO5s5L; z1OJN`4;m9<;=#YbD+gkT(ddDL2TV-X?@hPm;N2zP`@VVeP3OIt30)#i7fGY9bWSUk zN}*^t;c|m6cj=G#pr3tlo74k9*yEss6|%5~M!C3^d43 zHl~oAqISA~Q5zj2&ugbn>Y{G!?0FWAP!2o}c-|!93@}Rtnpc_U^pduf^1RpJH}sBn z)c7NPQoKuhiudUU9nxvxd4>ofT0jCwiGDF8Mxpr2i%BsfW<^2Fi?X;U9*C-_i8Zky zwtUA6pI?b>@z&RkwMX%b_^xIS#BU*GhxEMjvRn3mV*r1b<)9pvIe+ANbMm&V%7+-c z@;%~?{Lq?ftnj?gerETdnWp3a@}At6-{enuAb-h2`A3r0rnPIQv@_aSO?L`(9QUX@ z(fbHF-N^^jrWMa%FcwT(%z40AHI1j{Go#0-jPh`i6P1*)8Zjz4>Od-ox1l>jKo*z+ zCP+`{PCT6Azi4<>cg&QD9maT{WamjJxU6Lalf%*Gs3x2;o2yv!GFX!AOSD3a6$6{J z?2*2fy*Zt+%q4bmJvqHkPZIB*^~-CnOu}ML>rN)Z5u zM>DEXJ`}%6XOQ$b={EYdk+w0kaSrw{a0M6vaAu_D|(XaS@yjw@GUqA5^xBg3s; z;$GD}*Qf*+ss!J#5`4|!Mf}&%oi*aj9iE7&XA&|hWx_Extp3BP;613PV)V1Uo=6!f zmJy>K^JVlX8#C&bpN$)J)0YXOo`l53=I8`|9yhzd?@CpKM-t&zq6TXa1)Mk%HoCCU asXYnU0NS^wff?W$a2>b-%mO!oTl5!Dy8D*^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-s-ctxt b/usr/share/terminfo/a/aaa-s-ctxt new file mode 100644 index 0000000000000000000000000000000000000000..a9eae4b3261e05c97e2daeebd25591a737557853 GIT binary patch literal 1372 zcmcgsOKTHR6h8N+Xnk}m*g=ev5jB)%@-7LnX={yrP1F)h`120-?^Ez3-?a=&i9?iojK>;OM1mPT_7KQrIWr= zsnpl#TX0+MBbJd+$II4g{%pOxR`+LD%cVx6R9UO{M?(IUX2HNBW+bIs_shiHg?V=;3R5$fdFP%p}O2ufDa^ML-sVUeQV2%njuOmA|fGDQ2b=XkQfzXVoJ=2 zIZ+VvqAc!;d!i=lUPaU64Y4U+db+*#(0&k~bY@R{7r%sp?vbbDS*g@TfFDc7Wm2X+ zPpQ0|m1S9lzbIeBZpk+Xx%LXB-g}Yle=?nl|I0gaSALXVB30 z-9E!9&{3SD;Y1c;a)vV&NL#UZ2F`dO9b+B?%yr9rXgxNAX5|{Y%N(er%=NHY$-@CI{+$cU3+V^$ks8?KGn?GfNAFbZI!>>O|%%fQYczYIW4XP@%L z%!5tG87n4R%-Ld8^GGqSdAJzXJj4y5cEhV>=2~X1W#(FDU5n|%JUwU$qz{Wb*J83G z&~!V(qh97&b)I|Ff*aL>PgM&(+R!roe+;Kd99iH*SYM4kvr;B(bGy{LEEU`VeLc)8 zT<#`PW{PFlbfcb(97dz28}p)Z)3rRAFx@014mC%|@Oqr=65l1=5$;o%uaS0|5C!Zw f0yd_wF{wQT*Z{`2r-2z@7PtZ21m=KSz-{^qh3W#S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-s-rv b/usr/share/terminfo/a/aaa-s-rv new file mode 100644 index 0000000000000000000000000000000000000000..d677272a516cc1336eaeb294a902145217e57275 GIT binary patch literal 1410 zcmcgs&rcIk5T3V75HWD@Kq4DWC0!0Q)oy>2HiZJ>S}0pVP+2uCwt*%TYFiqRAJKy` znxOIEAL7k}2R(W6Y+^hb6Azl0=tUFPZ(g_7#Jfwr_kA;OhBt5Cq=UkwVN&TMMb$!~ z;131-b$_k7$6AW?#)c7RQOuG@0O8z;WiV&I3!dOgE(G z4&A3mQaR2u@N;@WFQxsO-bnsHpCo^w@1%+o!f^s3j&&TE0H#Go%!zp@{uaemaa|Nd zNt8uJ+!9-2N9>Ec;+}ZmMjX2QL_8I*T;0m;te?dE zRV-yeS#|AgWmkEq9Kw36yv6!XdGGGD;(7h*dVc(~(~0??>X)LZ-D zI;0M(BkCD7sA~2y9l<+lc4!rgso5EC(uhP;FlM~T2y+I|tA@U7?CU9fQlnY-si*kOp!`+A`e6-mS@AfrW{0#H#P zVYD+@b1EWZi8v>;5pE^MD*bTcussNOJKX>iP*UJdD|L5-N} zj_Hj!Bu|1#M{xjNdyPj+7KsXiJU`NCLM-DE;IMEp3zxU%01H4ztc$=rumD^F7J((; IGH``{1AHd~y8r+H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aaa-s-rv-ctxt b/usr/share/terminfo/a/aaa-s-rv-ctxt new file mode 100644 index 0000000000000000000000000000000000000000..c9314e25018d1bb94b19f189b4ad40d84ae4f25f GIT binary patch literal 1420 zcmcgs&rcIU6n-;n5HWD@UImAL4`&s zuu@%jN?T4}t<)&h>ZL%VTr5?I1gTFj10MNFZ;F#M)Ji829-bcjZfrujFfg#`E*|!Owj8XXe23Kh-z+ zUH+24rPNxqHmyTDrXANhwNqNR)}!h6A|1v%>UQJ?hMaCs1k+|Lo?C?O`Ab%mCA*Cv-a=O7UMLw4vK(%ES(nyic;d z4GOMUDp3KM9z{Y;3oCCOW)rC-o0^Dv=0v3fNo?R7@nZwta$dq_HDqGun$lcOP9M;d z#G7aR>Y9s_@R+l@oe6WbYx+#SZ)DO9{h^R}! zy<5SRxKmt+2r4KpT)1!{V!?$A7X=k$JojbNVsY(*bI-Y-$vf}8w2LeqAW7?VTb4?t zjye1C3b>OwZQH(dtvplnrKiiKdc9;p9;(>RWX&#BeVsmQ#y;ry=IWC^XR1>7S(V!4 zgi~EQOe9DxMVs0ajTUBd)B?Sec9ZM2P#d+=et2=+2n|pMJOsGz2x1->qk_s^cbq0X z<+@W)(^R7cRax=sYjoXHH^Fy-2lNQ>3GftnMla|Uy@BHOj^5J;`beMX3w@<;^qn^7 zC;cWNc8SJBtH*6(pE%~}MrSKl#H{Kph&6Fb+=0F)?u&=u$KDsu#Y^#8y!A5I{VdkS zhWLT}m*|$R+Y4-8{a$V4AHD6f|0B=KFWntrMJ9xL_sp*`RJ^XfH|`{4+GO7f1s+ zU>Jx@BLq0aIm9+YnAKmXA{$wbn z_G53&y?RKCl4f9g17!oL0Xs$?&<_j%@NQ&)llTm5cJq$`m}y$i6;n&ArkO3q7n#$= zu;RXARB>-HsJMp>VRqS@W#(CCo@M4)W;JW3BEc%Q0ZoC_{jqZ;hMNMW8x=n45k9Nx zvqvS^s1kh9O7LxWRcHrjp13l>ji7q1PTeY#x=?O-?`M$~Q!l0;=c*G+=n0lV-3fa# zv{eo3PQFsyOR%TsVHO3E)%@HR29Fi&%oc14D>q(kk7%u%LSx382}5S{~!PW literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/abm80 b/usr/share/terminfo/a/abm80 new file mode 100644 index 0000000000000000000000000000000000000000..8cbee81177aafb14080a447921ad390f2a135e5c GIT binary patch literal 253 zcmb7;&kBM-9E86ug214^2l3ZogEpZeG@^WrUO`1D!Vs)m?{3?Y=V%Ty-@qIuPzzRc zIdUS+$|QQF<)gUi>{(y$MP2JM%`YF)NrY1Tmf}p)_;%QQ)uBhpMrW n^LGDl9+)9>WQh34*i?HH>d2{dg6`0m;i5wMhJ+QlTQY^g%>WUliZcTC~>GcsWX2iiimQ?DKkF zYeW!S*xi}g-8r}wZwYId#|PdKHRDQoeA z?P3lK$XQl|usyJK!_<<=Eo@sp-JkS5r|jb(GpphVwHa?1bYn6#*`KLe4>CCG`GrSz zI(9oRuD||y^V{Wr${TnBZh{INf`=m65rH3wl4yx!cM6d=pI1ZyyaF%53-AGa1SQx7 uW3bL^-mynP$#r%a^BLi&lZ5GgB-^2inrT~wsk&`R^HRgu<+18abNB?y*#VRQ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/abm85e b/usr/share/terminfo/a/abm85e new file mode 100644 index 0000000000000000000000000000000000000000..8032df8d757634978e4d46021ff28d7541d8b216 GIT binary patch literal 524 zcmbVIO-sX25S$=ItsiG`K!O-!EfOsRQbeI@!J?w{qIl~^#Mq{dX)cPMJqaQrBH~YN z+`LAN7Y{CPXJ>b3*~iXnOISt@5BNl*={vT2ci{O^*zf6;og>|`_jRwQmrLta-S4+u zXc{v1EBUEwCz!w-;&>PXV-gd~No`8;S(qvo6cz>7#4VImK2j%W!%>w@Y@?#sp28Xq zag1RqtV=Bte-wXG{ZZpN!&7M{yr}MLs(DM}`=2wJ@qf_|u!eDP6^y_eaLWib3{y9a zqR}#f(l%SPy0QKLCh{?TM2HOk_AF0WgjHrC8YTy=(tQ5D^g( zUHZ%1#&s7vb!gztn|br*$MBm|7O{j79`Fsb+)StHcSnt;W4BvscIQ}4r}ovB=`^k_ zwb`y(P!tTp)5~+GM+y0yY4n} z=t;AOLlnG8(aR;A?njN3-X=+;f!G90tqwH%}CR4cZew<|Zy OU|w?nigECgHT(b#@dm{J literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/abm85h-old b/usr/share/terminfo/a/abm85h-old new file mode 100644 index 0000000000000000000000000000000000000000..ff67b042a5ef01cc04d33df7af510ee8652f5cd0 GIT binary patch literal 551 zcmbVJO-sW-5Pd<4TE(+CAbW|mmKrP+BBD~iu&5|SP`ssWB+;gcn_yAu*^3||A|n1( z<7C^k_2R){=gph9vpdV|oVJMtWblYDSar`VJ4L_M?D{?4^;zg1xLzdvwy10!3A4N} zI&S0$t`e87^g5Qbg|u&%p=lVgU&&C{aDoZUB96afV2op88P=v0pFvK=yut!wk=;N^ z<-O_z%P^I)h7D8{+fi7>A&v*NHD)3E6Z`W(jpLUQKD;w!uWI+LU-RCNAAg=n&;B=l zf~pt?ErBA?9cWz-R`i_6=>@%^2c?uE%cGj+VbK|=2FimjKv!zDK#Oz@l1R`4J8+E;X)04%Sa$&wTCiPu~;zXfbUl^Y$_LfH`hUzQj!qhmC zFn* zu~}%56x&3LXcK$HK5tko9BHd)$gwsu%Mt#<1jSS}hX&s?%Tur6DlSf3ipXVAYH z_Ph1xqR+wtN%oC?wp{j~QO$bqak+e0u9R!!ld@56k%4TM?XpvL%VV-2$K{lqmGkli zc}~76Uzcyo_vFX&s{BHJC9lbEQZ_2-AoxR+C)Lvz;wHxe>wrgkXR(rR- z-#%>j+9URaJ#AO)yW4%$e$jr}zF@y=e`sI1%h2~jj>LS}?b=@($-RE9f&ey$G zm&hNXrL>$9c{QR+t{TXyl2!v#FnB{y9f`c&1AGR;7<)baFO32^=zf?wAUPcraTP&a zT{OdC40b_UBV$$vY}p6tq(q|w491~cRyo)4Gs9R^XPvB5hDEd4=ZG}3)S~j4nLYO) z%}$m?o^2)vmeyV^hhKzQn^0}Sa=~!JcGq#5THucTCi3e_U|!Zo9Ha%7z2+&rGn5FC zJmmdqmq+^{2OtMwaRXTLZp!Gi(HYj-G2Bq7uno2(kJvxNX@t>fL`&t|;Y2egv2)Mt z)ewGW^L)ItA)PgX4Mmn6HNu-QK6`6~moyeWdqcWvgx4N{_^g5v;@N(7(rV7Fsx4}u zj}rZuyX{ocFvdMFK#3Gry^~ZBEaso0<$B*~+4h{|tjf{+rj*S(I|Y|YiyQMt34J=|1`=@>H+Y9~fFMlVL+U>I=DfO7_%Gl+A>O_Yr=9b+a!h^fbV*EYWTIli{IQH zE4)`6b2YI!T=ZsD9#(~-%AzP02;R5hNyrog_aYpF@Ew_ipgiFy1Z4>glAhUQJ_tF2tj;e(+KNX>DtR-qqO( b-M0G>>#z&DvwJV}!S0>VM-GHk8K-{$p-tWu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/act4 b/usr/share/terminfo/a/act4 new file mode 100644 index 0000000000000000000000000000000000000000..b24bd133a271eed05f4a8c8ceab2a9c462bdc8f3 GIT binary patch literal 473 zcmbV^(F*}V5XQel5$BEQ3iohhi^8pYbMY4lNnYvlK#4dcy!gl0?sb=vkZEV;H?!Y- zhGwFQIPSP%?)lDjz4Ue)f3aIX$&?@F@(5`79@-E>6lDT2S%pYIM?Rnm`WQ$W1=Cp8 ziOeZx!K}3Z#OmdG|1!VxJcOE4*v~)Qyz}|AyC8`ybj!7Qvx~CjHtd>&iskYKSCpfz xO&9Lms7@Yjxq3ZfO-5bviM5#AcZdyD_mDveDHLHK5m^FDu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/act5 b/usr/share/terminfo/a/act5 new file mode 100644 index 0000000000000000000000000000000000000000..66b296fabe0dca9da3239ba8e70b102a05dbba73 GIT binary patch literal 498 zcmbV^&#M7Z6vw}VB0qLSBg|rsTNLJEWg6Mpyq=e2OOpj9Vvw-2;IAI{PNO8Dce>}C z&pG#dzN(_3h#;=GU~D_h<9uqb7S3cfe?U$AXj?$R=TLfZ-Hb>eAgb$z5J$?R0)Fr- z=+B$_q7Fn3G4f`q{ZGuEuGdfVE6U`hUg46Gv^40z8z(B0O-n9cn^={RMGmnV6Z;mip6oVa$RUCZRD|wUX=zoLR>~b> Pz9x!nS2ybxBH0dZ<5&_) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/addrinfo b/usr/share/terminfo/a/addrinfo new file mode 100644 index 0000000000000000000000000000000000000000..33ab39cfa9ddf2d459bce3dfc7123941594c354c GIT binary patch literal 351 zcmb1QRAFFZU}k7yP-aL>Nh!+AOUtiGE-fm~FVY3^Q;UlelX6lOJb~gR`FRWsi~$V) z|4RTd15n?8AYcKKY+x1#g9w8dkOh+c|6hthhCv?80`Z0)P-I|d;AP-p;AW6lEihC~ ZRxL16O=jR?;9!tqkYwPH0eYW{0RV8X0J{JH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/adds200 b/usr/share/terminfo/a/adds200 new file mode 100644 index 0000000000000000000000000000000000000000..07a979a17eaf7266c59be87b8546752a56505739 GIT binary patch literal 728 zcmb7?!An$87{z~YFrC5y7YQ=A#jAWySj3y>IO8H}lJOFlG?|D|iwQ@J?j%-|6-kR0 zEn2t`YT-fzi3o%s2!bFG{|lkN<#p!GvrP->!THWP_kQ<&=RIED8)bwOeBd`vmzI}S z+U0P)E21!5f6#0`>+tnj?T$a2?EB>qJdS_7I&nNCcmiZpwKs;8Kdy3JhT7r4jb->&6UwZ!dIuZdsrI(2WvZ+XXiHrV7NTk_lN zsP3j6pHlvu@E7*PU-`y&e(;lD>25dE|JMCuPamk`kUnzsW2P|sYz3Bj_8RE=8K66$R&k5&+VIdGkgo1D(htqtg08R;< OA~_}F;(cO`mnC<)Td-r=qfiL$2pR*9i*sjjRB=ffuc?+{PtoaT6K{I(nMNF8|fe( H($(u*$nNqa literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/addsviewpoint b/usr/share/terminfo/a/addsviewpoint new file mode 100644 index 0000000000000000000000000000000000000000..0efc7fba5f2d83c54e8f3e6c90b2c7ec85fa96f9 GIT binary patch literal 471 zcmb1QRA*3QU}k7yC}t?jOf4_S&&(^SNlZy8M(`Y6T!IzCV3G_Bj0}VUBSQeg|Njy| z%)r0|B>(?sVPIq61G6LP0ihznof$3O=1cqdWG`QMKFe@9%&xO+YaCua-DB%?{uru&7@GwYwtJoNt*)d3G zgJ?ZNEg&;ewZKqST|r${TQym=zzD`<;9}rl;FmT?00tQ&gA|Avz#yFi3_d;veh36f caxpL&GB6o2Fex%HDKRi91J#NGbw~jv0CL#vPyhe` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/addsvp60 b/usr/share/terminfo/a/addsvp60 new file mode 100644 index 0000000000000000000000000000000000000000..3c28adffab491960f3d4811c3467e035adbd887e GIT binary patch literal 520 zcma)&-A4pr6o;Q#eQ51mMs{xIqG@Q8+1c5Tiii#ytU8IjKwz7@NL{_pyL_|dT zU#Bx~Q@iS-4$nEi^Zt%=c#B4fImQ|AP8`*|e%w8}j?TNiE7AL%&ZT}_4#N$5bLfD< z-(k=uNoE8?fSlwc8DoMetqM4}q84f`<+jB0+SK{^a#F z&06cFLtcUge*50r@0*WdV3tG%EATNA@3_3WGv=w)Zf2|XqcvjyfzK7Gi!l*6K^QKQ zS*#T20CRR)0!et*NuDuBSFowb@49tiShBj|(#Hul>9?_qn*A5J${~)eYr7ns_3T^j zO#C_B1-iJ#E$-3B1M{P;KD(ZQ)1lL7-n72_P@nFP=U2S_YJYs%fBMTeFyd>FPz9({ zs1DSQ?iuZ8eZ8u?x>t@YU(7O6SU?);1}Z2MLn@9fYUzudWU~jcCn2h2pVUa59FPVH PJxm9&=R~%!fr^GxTymEazv9`DU=Eu=6jdBA5PH=8n6##RZclyeN)I2TGBvxws zt)tVD&}Yx@S$2O$*)|~M*gL1WKjPv?B1>Iz#a+R@FL3t%+k5y!rr3Mr>7Nbfo@b30 zB&DoJkQf;uV`Rrnt!YFJ6Pp_|?S7-4YLyC$EFcGxM3Sr{=g1kNaJZSvB2C4OFAZ4h QZ?!tRS`1aSkavYDpEN=7v;Y7A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/adm12 b/usr/share/terminfo/a/adm12 new file mode 100644 index 0000000000000000000000000000000000000000..b0f05904614b2966ffba9b69dd10962e15ae4faa GIT binary patch literal 636 zcmb`D&nrYx6vsbT%CC8`)SS{w-9|=w_nF~IvXCZG7$SCJtA@4h{5eX=!otGB!otGB z!a|brZ*bhXGxPT5)aQJ^=iFcCy`mYT%p^^|IX*pe>E-6`dh8t-x{>$YZrEekW{`1y z{t-q`L!ah;1{k8?ZyRNbX>~Kcn$?^rDOF$RpUYU%-U_SK{Mv@kTh!U_>^<`CitA3N zb;C`lZ@E)<&jXJ<@yrXayoI&*pdUd$gXU-GjsMc`kC22SvWFZZ%eLWcDK6QvJ+Y0n zZ5d`l|9gQEC6TyGq*gRJQ&CW$akNtHRJqEwZ6WkJc5 J#i%{7;}| z^D;l+n82`+W8h%mVc=$v4rh=KVvr7Gkak59 H*v+K!wZ< ztPKBwfSrMpfd|au2a-BKtOw>907)YtHeoOa^FeCSffZE77D_u{sB~sl51pGX;#82|P z1Wj!OLo`q%1xYjwiH$H1#>xQ8Wl{@vGD4sPoGQu~ z*co^kq*QDS_3ap>Ll~qZ8KiAh3k+4&71UL=Rg+Z{cs+qE;Iyc<|#O2!bCyC@AcqhYCF`A}R=i zAP9osKV8QVYw1NC^3MCrWD-KAy)v`-Jn+eB=Q>IHI|uEGCGhw=yj}8qO6GjVgz~&d ziO^D+8j;YvtrjH5qB;#*f6tD_irZOrzCJYBw0y*|_{mWJY``6%3$94%(xY$tna#Iu z=Fa)O^GER~o_XPwH{M-$^i}_@KTvIo@(C(Jbx}8{HJ!$~TB+(tpX)UFLHVi~#tE1} z9isM8HPoD4ItYSEKl2NIA^Q!~9;zirN_ZO~-lnK2+7fMxS|Sq;E;TVG!PGH}m?caD Ivy8gr3k?J3t^fc4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/adm3 b/usr/share/terminfo/a/adm3 new file mode 100644 index 0000000000000000000000000000000000000000..428cd6e184de904c2ba76ffcc0796278f28a4e47 GIT binary patch literal 342 zcmb1QY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/adm31 b/usr/share/terminfo/a/adm31 new file mode 100644 index 0000000000000000000000000000000000000000..c757bd29aec6cd065dbf196eb349158ef373d45a GIT binary patch literal 502 zcmb`D%}c{T5XE0qP^!6$1G1O3Qbm$RQ+w#aLs6jz@dG~&f|?X7HmzxELBvB55&!A< zvfZ}+0S^4$yqTTdWp~Z-uz`7u@PoUk9r*8!vtwnP8n*h6sy7T(FYc>mCsl(aiqq#- z603G6iU9|+`0Hm~&YU32RtYdi&9Vh7qF|iMn>Xo7rrM_N5D$T=^Vvy+wo^sTxC5hg z9HB9t&F{(MV%izkSGK;vE!{nuctU~{uXw|UT^rf_Y4exO;}iZzzxi$#Qi7aAt|2wu z^>tAd^_G6n-SWipZ`QGd6)Zz8A*YZR$f0lXASo?V&Oj)2?r=O8j!()YAiHFbgrq|D KN!7LI7VrycPv-jo literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/adm31-old b/usr/share/terminfo/a/adm31-old new file mode 100644 index 0000000000000000000000000000000000000000..fb6d9e6b4155010d0478e894ce2d3be30cd3eca8 GIT binary patch literal 470 zcmb`D&r8EV5QV>}pj2}&4oEL+rT!pkYPE+R1Vt}`6jAgbsKtY*tp$6KAmSfxeA#ZP zcy^X==FQvLU6R$P$~yCWY2Egpvvhm#)XxW5nyc2l0}-?Mt!J)g&M1nifH~!&SYVNg zSFv8$kZSmDOL<2mWWFzFr_l~hhi`9neSg4V=u7h?%$)u?UA|vNj|-`5Zn)!tM_w2) z4twvR=AnLsIyw12`BUE=V-4&ayTZC|n7Vqc?l#@M8#bp>|7MLPR#?U^u^#q{9k)b+ gjV9&Iq>nTiB{5Mdnj#Y|u`AkQPwb0M9PX>|1GdrN4gdfE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/adm36 b/usr/share/terminfo/a/adm36 new file mode 100644 index 0000000000000000000000000000000000000000..7c2ec350d98058f0bdedd2976bf8b92fea9c7fb0 GIT binary patch literal 1160 zcmds0J8u&~5T1=9@e(!#ND-?@6kZ;p@ICEVW4yAR!Vn@MMN}uD9J1p)e96VWIEn3~ zLX;pxLCL?NLv;KFL_tA8L3PaToy|oN5(O12&CEC7e6u@ykDKfo+=n}mW1pGd4(!t8 z@!G>%_2pH&1i&D(&LqEiO*41`7hwV7f3oIjAAmXX^Kc1nz@pywHXuA8RM%OP{E9}& zk!$c2o@Mel?m`G-VqU<@lz$EHW{UTOKBd{085_r6Gx$%J`Ic(Fr}4*M^r*dlrn)(H zg~jo8va@S3!&Dfu275)!n+%)Pzdgr)ILBo5{|ElaF2Ggbp4}za;@+b|)ir8_R|-{I z#Tg;CL}-dOiqI167RhRGS@qC|%DrZxYAJPH#~dLyNGWp)%2QzC3_1yyr-mS(HcVw{ ztnwQ7N+>OqWt2;s+;h+}P?{)hlnzQ4C6&!3vPut%qph$w*!26IV&p#`bfV%gG7Upd z*`Q;V$(m$!GJPRMYM?3_sIms6p|hpkBj+gRDp#fvXbyGzRs9&aX9%ep!jhPX2u*=1 zw+K23q>`;mZ;nR$*KiLFeU>RgB$|~0}lf?kOiUnfGjQsZUF`W D1RD(D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/adm3a+ b/usr/share/terminfo/a/adm3a+ new file mode 100644 index 0000000000000000000000000000000000000000..4a74c19ba58c426a95b42539587dee7f211f0254 GIT binary patch literal 939 zcmb1Q6kZ;nR$*KiLFeU>RgB$|~0}lf?kmQ20 M_<$@f25tcc0IHr0Gynhq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/adm42 b/usr/share/terminfo/a/adm42 new file mode 100644 index 0000000000000000000000000000000000000000..95d9e9a9dd76619af17bc9067f1b2c1800bf7fa7 GIT binary patch literal 459 zcmaiw&r3o<6h_ZO!hV9w=t8`Ola++}6oXO;Bt!}di=vf8g-D3cqFvCk|GMeUFfVkI z7iPY5ne%OCCn~T4Pjrp7+v??5QL;AAI$NF!9QZ8z`$+E! zHBM;z-MQJE@uS$K=hNB?Z(K15d*->kW4O?NS=i=H$0Pqb4$f=H$-f=fn=Un+H9xbz z#yip{ub&{N$Sv}Kv`tzwrMP6u=Ec$PDQ9!U}k7%n9Y!wl51k5n^#=p6YQw~52m!#$@x%UCdC0q4NL#I)+vh(QXtT%tRR73zqGNs+kC-C*#!v(mR!)3YZNrdOBRk zOa^IBX*UHpg05mX4sbOkekhH2R`a52b1&8i2oIT-*_ CuK}U} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/adm5 b/usr/share/terminfo/a/adm5 new file mode 100644 index 0000000000000000000000000000000000000000..aebdc514ef6a57daaef2ab8ec1b82dd9b80c05a4 GIT binary patch literal 953 zcmb1Q9Rr+w?SgVO=Uf@*W!@$nK%OIso;O0CSPFI|y+giSPm0TnyX-3;=Go1*rf4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aepro b/usr/share/terminfo/a/aepro new file mode 100644 index 0000000000000000000000000000000000000000..d8b036ccbb216dec745ae7d7610db44b583c09b2 GIT binary patch literal 199 zcmb1QG+3AYYnpjghAT6?0IQob@V4U7Rj&NHx%K|eIYA*lZ2X@s*F z2jFhE0rp|F1Bj2nDUj#`7Y}hwp{1c4deLXm`qAt&1UW=kp#ViF!yGKQ_#Ie+dk#Is zb=je6^$Gf?XwT7JqP>DQumY=y)?gjp!h84tpWrKeho8V%6KiHI%wyH+QP##zGRcyN z(`Y+C-7JfFL+lE>&L-Inc5BP2B^SAi>wWf!{jM(8GCps~wAH?0w25zDw|R&C?N9&z zZVUJLF@Ayz9`ZB1hiCZ!&+$ATinfj~yMm{DAk7KIy&vB(Ku#?&q(A|*vc(3Ftd1Z(N@;9WzXb(N$s zQ%Gzfd&p%^(aykKsxJn%Nf#N2K{f_f&}~^A2L@w+I(X$Icp*mYNjn@rZIddg&`(*Y z5E_DdGun<&QZz)E^iz>d?(i%4Li`b&ub)CaCsi1Pv9a;-QYnhc<*BJkWoBk}c5ZHd z9usnC($IWlZJ;zsNt2W`NlBBGwM?3%q)AFQKB4GEC{j_RqDV!NiXs(7DvDGTsVGv> zq@qbhlZqx4O)8pHv{TV4!p}pv&&=I+K`i>G{fZWmKVk>DAc@PEE8;5Vnz)X+A#P$G z5D#MBPP{$lq2nE4t+$3Pc%GEB;sVOc=EGaEk$jQu0RY=P(QgHN)07(HALIER$ oX8cbQU|=9g`F~at)stpA^;L5*NJrbdf(SPdp;}<5ni9eQ06q2_TmS$7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aixterm-16color b/usr/share/terminfo/a/aixterm-16color new file mode 100644 index 0000000000000000000000000000000000000000..37f0254a333d0353c71e3eb7bb2858ac70b33f11 GIT binary patch literal 1889 zcmcgrJ7`ov6umPEXq2F!7P_E|Fvbt!oA=&+!WtKi(Wn~;8bK0J7B?iT`?5)V`N+DB zh)qE8Qz#Z{AzFyo*xA|Hh=pKhCpI=>BO>dWdv_J1AP8pQ&OP^c?#z8}HmDw2N2{o+ zmbDkl^YQ3(w9}?fS1Z-&3y1a%B=?FhIfOuYqF71xMKhIRT%AtNmE-ZGO(!|`94SSz zSSxZ$4bpO2PmMpU)rdA4M4F@Rv=V1n1H6%Tk%dmNKZ897$x|;Kgf2h^A#NR~VW3k~ zqB2d;9M#x=nHK0OqZ`<7F={mKK;MPjhdhEjrl<6bo&&w0m-L$6(mQ%jAL%oFC9OJC zr&_BLINv6H(jj5;YX(w`VP40QzJv?-fOYf1-y z!kn4(O{t$&z}1iEk{IcQ?1c-3P0Y2bSU;lguKh~X literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aixterm-m b/usr/share/terminfo/a/aixterm-m new file mode 100644 index 0000000000000000000000000000000000000000..3bc46d72c636e016f80cc7b2988bcd312e285798 GIT binary patch literal 1538 zcmdT@J!lkB5S};wq6Uj7q6^^=7Lr1I@9kbTVZkGR=Aw5HNeCfV#3MPlB)50D^DYUZ zHW3BWh!&DAg`kaAT4^C-qm`XtVWpj&or3GUH+Q*!LW)!_%*;36%zSU(?A;mR!AaN$ z74ZS{3v2a4Ejkz77#qwc2F9jMmdIAhmAPWA5)~4YlrNO?rNl_oDCO&w8VCXW*eJjR zF%E~}G{i9gl8@v4a1@S1C*dwQ4~k;a@&WmfECoX_YMD6BG~*SRB9w!xP=G~3*DQYv z*5R&28|3d>6vq!KJ|f#B+ah}mPvIH7AoL2}!h84#pWq98gYWPIe$p!+5XVHPh~rbD zOSqy(NWuZx?oTL&sV^(0#H=Was<{5w)cOwQj`$tlYv!MK@a=QH68r0)m3B|OTYX3C zUf@COz!T`;S?ocH0baln%-{shU>=KD!4;3jV26MT*@aWCinud}c54Zg!e z&;d>^?c^>|xJ+iEyWlP>cYd@DLw8xb^JzFjRGR)4PHu>7fNY#BOO_fTry_EGkzAia z!M5`avZB)jWT<51bPp2rOXN(^Sn47;a}+c71m*ixO3VS1X%$3cIS&N%8<$4&np@Ev9&(LeLy#y7r0l_{uj7)RCTX(vpTcFLl zA?aDE`AJw@Tv{rXqNrT1R_pafV`XJ^b#09rX2_J!n^DbG@(va6Q1K2G?@%>6d54O3 zsO;jT=1-tmMYD=#70oJ|RWz$;R?)1YS;b=&k5xQY@mR%U6^~UsqhfwR-O^k_NAL&G CE$;^a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aixterm-m-old b/usr/share/terminfo/a/aixterm-m-old new file mode 100644 index 0000000000000000000000000000000000000000..5b47369e480a4567433cb1bb9a957b31a18f4e0b GIT binary patch literal 1530 zcmdUuJ!n%=6vxj!3iSg&Ks#teg7O@M;=A{~G?6!iwzf@c1C<6T#=+PInwpoiHMIpr z3Mx7%2#SN?&_NIfLF^zd^|PDc;G%9WA}-=0E`6SRPGSlQ9Xk2of6o7$d++b%9$t2< z09s)kRMj&qlxAzisjw|JLL+d?URu#_zULiv zzx;Ehx#!y|>&=~Ob3fEC1=xaHu@(2=emsa8Q<%mc%wi7ncp6JMfirj!ui$mOg?Dit z*Y?K$^YjCJgbUaLTOgLt#Pa==j*@J4O3s9KMthq!a3+j1nt@H!%Fy2;mhU2UkOoOv zQo5Uh4k`F!6jIhD{{-JUh7OZ)1MTw8G8NWXrF$SYLV1Ak+V>}^u=GxnZ+B|n*q-)N zHo30mq+O|a&2>Gg__XULq-vLxlvF={*j5<}^w?^jNk?oa!RK{?JNBwN!Ee(ECfbYh zZL$qxe14cOg|33o* w6T^QrzycOwgNt*(S=?|InwBBUOA7%}6#j;iBx|{w3D<}`M%jr($s?5HweVgLMx+$spL1q9L$h+~yWit}=Y*6n z0&ru47v|f%p1qe3tM%z@98!(>(pZpC_r_|yQ|S*-@EfIz_d7_i2XMh-c^{_{izU5r zLK1n-&5e?!E1cBOWYr<=VSovH`}!0!Y#rIj;q0E1FWk8@-~R4A;D^v!gf2ux9(Ady znoP>2Jmzc(FT@aHM5Su9kk%7Lh#09{B10z#t;KO`NRi_ CwaD)P literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aj830 b/usr/share/terminfo/a/aj830 new file mode 100644 index 0000000000000000000000000000000000000000..cccfdb431d04529d2ece2f9b8f482ff3f0fbea31 GIT binary patch literal 357 zcmb1QRAdlfU|{HC5N1fsvM@HN0g*;Pvc@qlCAFwHKTp9cF*!d8$N(w>14cOg|33o* w6T^QrzycOwgNt*(S=?|InwBBU14cOg|33o* w6T^QrzycOwgNt*(S=?|InwBBUOX za>O52neRJuzL_)QnR90*Z|Ci_oi@|Mym`Y|Wo*1QU9X>AZdzOGleOyf>{w;%Wc5^K ztbVda#O9v@qhfx>*{l(l=vumoR@eCvubwBeX#-lkjoyLLZ>8JNvPcK1mrC>j*dL^0 zz!{pQMOvl{urJcR^a;8I>oNK=T?T)hzD-ZjGxP%ejDCUopXpWl2fYDn6R)mrMv>n( zu#?$4!0*fK)m4{6-pzZsgAZ^o5Aq0qh$naodKG1!PxBI==ZmoK;|KUt&3+oUfuH3s z8RcvIB>#|q!Y}e~`A_^;euM3tw%L?>Yi>&}pWBry7|+36Uv4B<&W+}d=DrKh_j6BY zEv5alP5Z~N$P%AzU1wPAwZFGmH(W(o+iq>`Ce!Dg&7Rw>omOaSDX=5+_cZm@)sl6W zb;KICW~_N@(Yj!L%(~xt(E5z^1?#f)E$b=kN7f70&#hlszq4Mk{%*Z#+4e^J20L%R z%YKjT+68;B-EEib5&Nh;WzX4X>~r=#*iYKe*w5Qn?3e79?X`3L zU$sBjui3BLtu32cwzS;bvVQBOb^I6B@vYzc>fVc4jC)(2`#(gx`Zx`xb;HID`SM}9 zhBi^Y>`Xgzo->g;bG|cCgCjT&=+2k@gWx++gtJz6{MXbD-E;x80k{-wp|XNMNRJ3|Rv6=gK^c(bq5}j`8em7&0^C>1`M?0ppRejd7@9$k@{; zp+GcEqK-==-&yijoSn|Z-IO2Ck794uU8sTt(j=Ood?E?aM^3vlS9I#wU}q9rALJ&|Q? zPmmx32T){5gH(1*HU=Icvx!Zo*-5QMO{XlXFPT#I!>qGx6FMVTgpe*mnlV|oB;!KH zMP=X380}5OY(jpRwM!$79ck=HV@Fx+EFV+lLdHd9#5R84%Q(n5RQA$XW5*gh*4S|t z+hnkpq{@Yii^_;?{D`d_WE?7cX`rzKjU8z0Ad78Q53!XC85fliTUQrBvNcf-vvz5y zu|tg=n%Hu7Au(~ZO-MbS1++Wm)b;!zjN+tF936*CN>EJ0A`&Z0^3gCg-$+_Je)n$k zA^1_W;@pZ4!gbvhXP4vO=8x=>R9(7?60Wc0kH}~k3Hc(}h9Vz>=PVUgoHnN(n1P*1 zig|i_T<#P1Wg{Z((isaGma+yQY7*wm)*eN|eLvYd_vbAGYN2)k@dnP37Q4 z)kd9oPnD=llQaYU0eX-gp~vVe^aOo}o~GyMr}QHInto5O(BJ4^#C$Dp<}G|P-@@-@ zpNqVg@8EtO<|91LGd$0W<~4L5U*b>mqx?m_%-`hi;mz|rU*VVdW&R_-%CGaA%$Sme z*Ig@Z#Jlo(x)JZdJl=WRXb0xClU#~uH??EdJ=8~oc<&vdF}(LGRKsiU9DM|{y`Mfw z57DFad3v0_O5ebYe?ZUTrFVsXNx#9I|3a_PKk46OaVuthBjYeV?hqb0C(kRlsVw`9pm<0xj1ks$gNOzx6T7Y zBo^*nNdjYt6PF^YIPcv!l}yVr1E=uqPJPOmtT>_vn)JA=BwF?fXJ1>8>Q&UZT>`yi zLZwJ4R!WotJ?BEDNGVoIlma;ey);yclwzes$j`n@osyrOD%k7WFfXO%d&yj6xT5-;$tw0{-w2HyqK^I4(M6p#>Rh0%fch4w)J3Hs8k(db{O@Ox zh8F115RLTFiT#~{KqwFi!~zMRUy6wRBKC{eFJeE$uKxW{fRKRDfDnODy9fH90-*w- z0-*w-_Q;4mGGdR6*drtM$cViM4nYAz0zv~q1VZf}5fum(2o(qw2(>hL7gQirAXFe! sAk@Jg=?jDkgbIWTggRW3f(FAS=))z*!zHN0rG#qL#YI{WSgg{20L|XHj{pDw literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/alacritty+common b/usr/share/terminfo/a/alacritty+common new file mode 100644 index 0000000000000000000000000000000000000000..5b327d028f787dba425af372046268484c68edcd GIT binary patch literal 3617 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/alt3 b/usr/share/terminfo/a/alt3 new file mode 100644 index 0000000000000000000000000000000000000000..c9400757849df9b8094246ef8d7d02eee5a45863 GIT binary patch literal 891 zcmb7?y-OQ$7{|X)rL?A;f({jLFd#<-U(Ogqgox(Fw0SWq6zY(r(ZnWgG$9EsNdAWo z4$`4RhYlS&bZ~I!(4m8agM)*EgM))m3dKPjAk$=+Jc+`Z2(4NLM4Y zpG;s<*Nzi*qq@C%;z;S57k*<0 zyVzrI9|yF04soQjW4FHQ-u6k0`RxnG`Gddi)xSHgPxb5!7kBLZ@9nL6ZK5_FX}8+F z-~5SmO1C@}Q~IP|p2?ut;+LQpFtZ6WJC7Ys}<}q)1BSEqQ0)5};?>M*si- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/alt4 b/usr/share/terminfo/a/alt4 new file mode 100644 index 0000000000000000000000000000000000000000..a6344d429f35df0c72ca771753611418e6c568c6 GIT binary patch literal 1195 zcmaiz%WG3X6vn@4mD)#2(W=!krD(=fYU#a6nn#m9Vjm{0k6P5yg^(IkYn!&|LoFH* z1<`*%>BfyH2!$>bMHEF8bm78<3m1YeT(}TH5J3=$-`w0Pq@sb}IcL6eX6BrGb2keo zHlhOW@LUY1=cZ1)jaUO=0Tg33^%9g} zE!JBVPWTZ-3);BqKo@!tXVixQ9HJkxYV zltT`>A}03_K=$y&SP_!}xdU=~IY{{RGH+wWko8jA83t5?+-(?5Z88zk4JBF_xFTM5 zR9P+Ex}+P{1-x`n-%^%u6{5od5hqcyi*%AM(oNWj*iB*%-SPo_2>16v_Ok7AIC#hz zYsmKBL(ZOq>_;_fP{zl=fySWPbxp>rvTDxiU!_#0S!IHGfm5oKtXE-O7h*}Qi0fFf z3PYMG<@3OBc&vHcoAykYlfmhhIp4|9sn*lRynp%nra#wn_&8+L>T@@nJLrdb<5 Qjn=iSRV`{QK!PNMUm%jV!~g&Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/alt5 b/usr/share/terminfo/a/alt5 new file mode 100644 index 0000000000000000000000000000000000000000..c9400757849df9b8094246ef8d7d02eee5a45863 GIT binary patch literal 891 zcmb7?y-OQ$7{|X)rL?A;f({jLFd#<-U(Ogqgox(Fw0SWq6zY(r(ZnWgG$9EsNdAWo z4$`4RhYlS&bZ~I!(4m8agM)*EgM))m3dKPjAk$=+Jc+`Z2(4NLM4Y zpG;s<*Nzi*qq@C%;z;S57k*<0 zyVzrI9|yF04soQjW4FHQ-u6k0`RxnG`Gddi)xSHgPxb5!7kBLZ@9nL6ZK5_FX}8+F z-~5SmO1C@}Q~IP|p2?ut;+LQpFtZ6WJC7Ys}<}q)1BSEqQ0)5};?>M*si- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/alt7 b/usr/share/terminfo/a/alt7 new file mode 100644 index 0000000000000000000000000000000000000000..c6457f54b925ba4bef8006fe56c4d46ab3f85ff3 GIT binary patch literal 864 zcma*l%}W$<7zgn0BPpgk(LqFdL>6>dV-t6#@f8-@d|kDSkWxCRjhnWOx@^%-_i31f;xz27!H!Z=H}8e$9MFeR%n&hXdNF|KVk!$*upkG;WKuy%e6i1 zvwp!>9N>`2^Nxb*r^}z?|LlLm_X{U};Ad{_*M+^aubgoG_Z54W-y{Fkzd>I}{%_=a z@|qM&NN!4*R7jN=(MysF$&>?8t%vfe595JJ&Yi8{8h!Rwx7$KBGpF$r) zyKKr*20F*VA}6PrV+=ZfHu!O*Ra3Rvuc=0L9ZQ!Sb!|%*bctO$*jV}u$OD6)k%vr4 zxnKbi?G`DSO(QX`XA% mItwkY<8NYb8zH^yGEFlyLZkGYTpFVky`XWLpqG@UNdu>7wYg{j literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/alt7pc b/usr/share/terminfo/a/alt7pc new file mode 100644 index 0000000000000000000000000000000000000000..b8f9c5cb1a6e7645b743b9e662c986e40971d470 GIT binary patch literal 875 zcmbu7%}Z2a6vm&ESbkkwv`{*z19F*S2mT}N&F8f&x`p&%_< zh>I33T(oH6qD6}qEy9Hag1C?%a3MkTUl;^$&%MsjVhR_%@H^)@AMbh3g?m-%P>oXj zM4L>^^zDxLVXtX;tmP`VIKSwYMV`>RV!Ct^clm~GYY=o(<2T_Ff25EvD z#KyFsBT#W9&_mUapG>E!u6o!CUO$9p2*u zKH?K|yV#@sjC~y7kjj{&!20U%=gT?uuQ)F1IKj7k?t4+~?3EwPpZ=p(*yGnZ^+I2f z5AKynQU1RZm!wiI%N3~+l?G{)utcOun#F=f>Y*vqtGX3&X?nzn!ctZnr>Au=IClnJ=f7?UFDQs4wfMc zGHme~xlNTMT_iznl5WyNddV%)NBS+UBm)+2>mYQ1%gKnv1+5A{(#b|n(+q#%Ov`NZ zoICFbgvuFL^I%a3hfD*+JI`NDz=tbKaGec7?7ko8z+w>x1rjM#osuy)T zSI(+&H(1Eos%QWd{2W&m#dl>?=2GavG#m%$5Y}hzViCh=|%* zFB|o&+u=Ad$#G8;(o14fQd+88dw@e2zx=Gvc|j#qP{Re9XyI1)cV6~h);vgklbgvuFL^I%a3hfD*+JI`NDz=tbKaGec7?7ko8z+w>x1rjM#osuy)T zSI(+&H(1Eos%QWd{2W&m#dl>?=2GavG#m%$5Y}hzViCh=|%* zFB|o&+u=Ad$#G8;(o14fQd+88dw@e2zx=Gvc|j#qP{Re9XyI1)cV6~h);vgklbgvuFL^I%a3hfD*+JI`NDz=tbKaGec7?7ko8z+w>x1rjM#osuy)T zSI(+&H(1Eos%QWd{2W&m#dl>?=2GavG#m%$5Y}hzViCh=|%* zFB|o&+u=Ad$#G8;(o14fQd+88dw@e2zx=Gvc|j#qP{Re9XyI1)cV6~h);vgklbgvuFL^I%a3hfD*+JI`NDz=tbKaGec7?7ko8z+w>x1rjM#osuy)T zSI(+&H(1Eos%QWd{2W&m#dl>?=2GavG#m%$5Y}hzViCh=|%* zFB|o&+u=Ad$#G8;(o14fQd+88dw@e2zx=Gvc|j#qP{Re9XyI1)cV6~h);vgkl9o^5w{!?2BHy?=7hxMXiG>4y`imZ43;ihEiFZ(jY0ec27?$327|$1 zFc=I5gTY`h7z_r3M8se+h@pPpQH^NA;v~=WUcUGJ&KXXf)B`BO8ypf!q*qe*4F*#y zsW$tDOZ6K4eqa(Ms6{3N^5p`Qp~9@IU_~>tRQ8oDy3R##3Bu1l_qHsLo`@|K1qST>Tx}3(<8ll(ym8*Y}nkCkADeMkCKa;Bx9s|iRx7PM!zLE;7CxNN?l6bF{&p9 zV?CZUQnAo#)JTWIsc70*OWQg+xbGyRe2a`~kTH#w8#2z^Pn^U>+{8n?WRMJzVd7Ks zbC7_FUgCjFsN4muj6ZWJWJHzx4$}$964#c=3<;4inI#btC39q+#7LYhkVOq2`$f~S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/altos-3 b/usr/share/terminfo/a/altos-3 new file mode 100644 index 0000000000000000000000000000000000000000..c9400757849df9b8094246ef8d7d02eee5a45863 GIT binary patch literal 891 zcmb7?y-OQ$7{|X)rL?A;f({jLFd#<-U(Ogqgox(Fw0SWq6zY(r(ZnWgG$9EsNdAWo z4$`4RhYlS&bZ~I!(4m8agM)*EgM))m3dKPjAk$=+Jc+`Z2(4NLM4Y zpG;s<*Nzi*qq@C%;z;S57k*<0 zyVzrI9|yF04soQjW4FHQ-u6k0`RxnG`Gddi)xSHgPxb5!7kBLZ@9nL6ZK5_FX}8+F z-~5SmO1C@}Q~IP|p2?ut;+LQpFtZ6WJC7Ys}<}q)1BSEqQ0)5};?>M*si- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/altos-4 b/usr/share/terminfo/a/altos-4 new file mode 100644 index 0000000000000000000000000000000000000000..a6344d429f35df0c72ca771753611418e6c568c6 GIT binary patch literal 1195 zcmaiz%WG3X6vn@4mD)#2(W=!krD(=fYU#a6nn#m9Vjm{0k6P5yg^(IkYn!&|LoFH* z1<`*%>BfyH2!$>bMHEF8bm78<3m1YeT(}TH5J3=$-`w0Pq@sb}IcL6eX6BrGb2keo zHlhOW@LUY1=cZ1)jaUO=0Tg33^%9g} zE!JBVPWTZ-3);BqKo@!tXVixQ9HJkxYV zltT`>A}03_K=$y&SP_!}xdU=~IY{{RGH+wWko8jA83t5?+-(?5Z88zk4JBF_xFTM5 zR9P+Ex}+P{1-x`n-%^%u6{5od5hqcyi*%AM(oNWj*iB*%-SPo_2>16v_Ok7AIC#hz zYsmKBL(ZOq>_;_fP{zl=fySWPbxp>rvTDxiU!_#0S!IHGfm5oKtXE-O7h*}Qi0fFf z3PYMG<@3OBc&vHcoAykYlfmhhIp4|9sn*lRynp%nra#wn_&8+L>T@@nJLrdb<5 Qjn=iSRV`{QK!PNMUm%jV!~g&Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/altos-5 b/usr/share/terminfo/a/altos-5 new file mode 100644 index 0000000000000000000000000000000000000000..c9400757849df9b8094246ef8d7d02eee5a45863 GIT binary patch literal 891 zcmb7?y-OQ$7{|X)rL?A;f({jLFd#<-U(Ogqgox(Fw0SWq6zY(r(ZnWgG$9EsNdAWo z4$`4RhYlS&bZ~I!(4m8agM)*EgM))m3dKPjAk$=+Jc+`Z2(4NLM4Y zpG;s<*Nzi*qq@C%;z;S57k*<0 zyVzrI9|yF04soQjW4FHQ-u6k0`RxnG`Gddi)xSHgPxb5!7kBLZ@9nL6ZK5_FX}8+F z-~5SmO1C@}Q~IP|p2?ut;+LQpFtZ6WJC7Ys}<}q)1BSEqQ0)5};?>M*si- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/altos2 b/usr/share/terminfo/a/altos2 new file mode 100644 index 0000000000000000000000000000000000000000..d44e475d07740eb9af80ec60c00e80509dc54f86 GIT binary patch literal 857 zcmb`FyDvjw7>9o^5w{!?2BHy?=7hxMXiG>4y`imZ43;ihEiFZ(jY0ec27?$327|$1 zFc=I5gTY`h7z_r3M8se+h@pPpQH^NA;v~=WUcUGJ&KXXf)B`BO8ypf!q*qe*4F*#y zsW$tDOZ6K4eqa(Ms6{3N^5p`Qp~9@IU_~>tRQ8oDy3R##3Bu1l_qHsLo`@|K1qST>Tx}3(<8ll(ym8*Y}nkCkADeMkCKa;Bx9s|iRx7PM!zLE;7CxNN?l6bF{&p9 zV?CZUQnAo#)JTWIsc70*OWQg+xbGyRe2a`~kTH#w8#2z^Pn^U>+{8n?WRMJzVd7Ks zbC7_FUgCjFsN4muj6ZWJWJHzx4$}$964#c=3<;4inI#btC39q+#7LYhkVOq2`$f~S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/altos3 b/usr/share/terminfo/a/altos3 new file mode 100644 index 0000000000000000000000000000000000000000..c9400757849df9b8094246ef8d7d02eee5a45863 GIT binary patch literal 891 zcmb7?y-OQ$7{|X)rL?A;f({jLFd#<-U(Ogqgox(Fw0SWq6zY(r(ZnWgG$9EsNdAWo z4$`4RhYlS&bZ~I!(4m8agM)*EgM))m3dKPjAk$=+Jc+`Z2(4NLM4Y zpG;s<*Nzi*qq@C%;z;S57k*<0 zyVzrI9|yF04soQjW4FHQ-u6k0`RxnG`Gddi)xSHgPxb5!7kBLZ@9nL6ZK5_FX}8+F z-~5SmO1C@}Q~IP|p2?ut;+LQpFtZ6WJC7Ys}<}q)1BSEqQ0)5};?>M*si- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/altos4 b/usr/share/terminfo/a/altos4 new file mode 100644 index 0000000000000000000000000000000000000000..a6344d429f35df0c72ca771753611418e6c568c6 GIT binary patch literal 1195 zcmaiz%WG3X6vn@4mD)#2(W=!krD(=fYU#a6nn#m9Vjm{0k6P5yg^(IkYn!&|LoFH* z1<`*%>BfyH2!$>bMHEF8bm78<3m1YeT(}TH5J3=$-`w0Pq@sb}IcL6eX6BrGb2keo zHlhOW@LUY1=cZ1)jaUO=0Tg33^%9g} zE!JBVPWTZ-3);BqKo@!tXVixQ9HJkxYV zltT`>A}03_K=$y&SP_!}xdU=~IY{{RGH+wWko8jA83t5?+-(?5Z88zk4JBF_xFTM5 zR9P+Ex}+P{1-x`n-%^%u6{5od5hqcyi*%AM(oNWj*iB*%-SPo_2>16v_Ok7AIC#hz zYsmKBL(ZOq>_;_fP{zl=fySWPbxp>rvTDxiU!_#0S!IHGfm5oKtXE-O7h*}Qi0fFf z3PYMG<@3OBc&vHcoAykYlfmhhIp4|9sn*lRynp%nra#wn_&8+L>T@@nJLrdb<5 Qjn=iSRV`{QK!PNMUm%jV!~g&Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/altos5 b/usr/share/terminfo/a/altos5 new file mode 100644 index 0000000000000000000000000000000000000000..c9400757849df9b8094246ef8d7d02eee5a45863 GIT binary patch literal 891 zcmb7?y-OQ$7{|X)rL?A;f({jLFd#<-U(Ogqgox(Fw0SWq6zY(r(ZnWgG$9EsNdAWo z4$`4RhYlS&bZ~I!(4m8agM)*EgM))m3dKPjAk$=+Jc+`Z2(4NLM4Y zpG;s<*Nzi*qq@C%;z;S57k*<0 zyVzrI9|yF04soQjW4FHQ-u6k0`RxnG`Gddi)xSHgPxb5!7kBLZ@9nL6ZK5_FX}8+F z-~5SmO1C@}Q~IP|p2?ut;+LQpFtZ6WJC7Ys}<}q)1BSEqQ0)5};?>M*si- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/altos7 b/usr/share/terminfo/a/altos7 new file mode 100644 index 0000000000000000000000000000000000000000..c6457f54b925ba4bef8006fe56c4d46ab3f85ff3 GIT binary patch literal 864 zcma*l%}W$<7zgn0BPpgk(LqFdL>6>dV-t6#@f8-@d|kDSkWxCRjhnWOx@^%-_i31f;xz27!H!Z=H}8e$9MFeR%n&hXdNF|KVk!$*upkG;WKuy%e6i1 zvwp!>9N>`2^Nxb*r^}z?|LlLm_X{U};Ad{_*M+^aubgoG_Z54W-y{Fkzd>I}{%_=a z@|qM&NN!4*R7jN=(MysF$&>?8t%vfe595JJ&Yi8{8h!Rwx7$KBGpF$r) zyKKr*20F*VA}6PrV+=ZfHu!O*Ra3Rvuc=0L9ZQ!Sb!|%*bctO$*jV}u$OD6)k%vr4 zxnKbi?G`DSO(QX`XA% mItwkY<8NYb8zH^yGEFlyLZkGYTpFVky`XWLpqG@UNdu>7wYg{j literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/altos7pc b/usr/share/terminfo/a/altos7pc new file mode 100644 index 0000000000000000000000000000000000000000..b8f9c5cb1a6e7645b743b9e662c986e40971d470 GIT binary patch literal 875 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 U*&*|6lbTa%p>G+2uX6AJKkl#_umAu6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/amiga-vnc b/usr/share/terminfo/a/amiga-vnc new file mode 100644 index 0000000000000000000000000000000000000000..e1ebe0cdac524e868965b081019d1ae67f082b6b GIT binary patch literal 1456 zcmdr|&ubG=5S|G_JSgfxk*?q#d{imo?q)aH@?f`VtyE1kU=?u>5|fg~<`+pVNUOc* z!Aq|my!0w~DhT5LB8WmSMHKYlMb?=y8`JcXlLsHnH{Z-RKi+#2=z{@gp^h`Dar9Ph!6yg=sv3C-4*+Xre;C<`iB+ z4>jf`isN~_iZ}aw=otfgo3y)F#)sI$4SbGU_!77A^+?AKz8%VZz>h=GVAKftJVp(- z?2cJCGXB2`_x|}GeCu!gffK1T90em%b=9#|RjZDps$EJf7|}Iy*U8xL(-$Z)OJ;Ql zE|YbPCvd?>GcL@0uaA3vd`ViSW&*pAuLMHiN^E zVQ?8dhAcyl!Dnzq;m5inyVB!Id-CYe<}V0sS~*Wdew2SeNHHP2Uow0vA-57zNC@u{ ziAM`rObGpMh4`3Hr$I${b&ncCeuc&VDK`mu>bn0#1!`4II+Gkusj6Da$U3FDQthw0 K^0&$zRQ(1d5+Gmz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/amp219 b/usr/share/terminfo/a/amp219 new file mode 100644 index 0000000000000000000000000000000000000000..39f23d67e5a7a5cc36945eba5a8a7288473ec90e GIT binary patch literal 709 zcmbtSJxc>Y5PgdhKhVZ1xE3kyARx-^B_TPC2{8&mQN%*T10fJK2e}wxL<_aFv9Yza zw6yfESXkNE*jU-DGn+N3#KMJr@6Ei~nLTc2g~B98aE~=nk2{AKz6vglSg?wz!cOWu z>NQjKv))Nu?;c0(Q}7af*v2@LBu9}TrL{yF9t%nuU${gwRLcw^$g;{Y zbUM)ipO|C@=&J$}?yzWjtj}WnAC5HL6>sU8P-tEI}^QOO>1ELnkOngABIt E4G+9LLI3~& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/amp219w b/usr/share/terminfo/a/amp219w new file mode 100644 index 0000000000000000000000000000000000000000..d45bd6492d098763bf9b0933fb324af697f4344f GIT binary patch literal 696 zcmbtRJxc>Y5Pgf^iiL%sE<%JmR8Y9xOGtw8LX1UF6brHNY{Uo&Trk8!L9t3>V=H!+ zmX`hy3o9EN8!IcTb!M}Pl~{N%@4cBfGt2JHh$W1o4|j;fVWW9`u2uf*(yHaIv|M5{ zr9z!LI!R8!pRmxzFs4ZLV~~_F5(@~3jmcvhJEV3g_HaO0MPeOxjcMV+W^Gry#tm+* zzIT-eJUV5}Q%`lKyZG$tFL)*OhIf466JIbG5MyFOaNndwW2PO?iaFsq-QDwFo)?R5 zWANu@EpkG}`xwGF{JM<&rt)=l#cyh&7GzwJvEJ|snINKM(<_9`y@Froflhz5LTwTK zLmHy@mvJ#n2+LkU^GwNcF|1LRX}DDV2r6eA7Mz#vdcSbQXVeJN2|Y5PgdhKhVZ1xE3kyARx-^B_TPC2{8&mQN%*T10fJK2e}wxL<_aFv9Yza zw6yfESXkNE*jU-DGn+N3#KMJr@6Ei~nLTc2g~B98aE~=nk2{AKz6vglSg?wz!cOWu z>NQjKv))Nu?;c0(Q}7af*v2@LBu9}TrL{yF9t%nuU${gwRLcw^$g;{Y zbUM)ipO|C@=&J$}?yzWjtj}WnAC5HL6>sU8P-tEI}^QOO>1ELnkOngABIt E4G+9LLI3~& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ampex-219w b/usr/share/terminfo/a/ampex-219w new file mode 100644 index 0000000000000000000000000000000000000000..d45bd6492d098763bf9b0933fb324af697f4344f GIT binary patch literal 696 zcmbtRJxc>Y5Pgf^iiL%sE<%JmR8Y9xOGtw8LX1UF6brHNY{Uo&Trk8!L9t3>V=H!+ zmX`hy3o9EN8!IcTb!M}Pl~{N%@4cBfGt2JHh$W1o4|j;fVWW9`u2uf*(yHaIv|M5{ zr9z!LI!R8!pRmxzFs4ZLV~~_F5(@~3jmcvhJEV3g_HaO0MPeOxjcMV+W^Gry#tm+* zzIT-eJUV5}Q%`lKyZG$tFL)*OhIf466JIbG5MyFOaNndwW2PO?iaFsq-QDwFo)?R5 zWANu@EpkG}`xwGF{JM<&rt)=l#cyh&7GzwJvEJ|snINKM(<_9`y@Froflhz5LTwTK zLmHy@mvJ#n2+LkU^GwNcF|1LRX}DDV2r6eA7Mz#vdcSbQXVeJN2|(#_Z1YB5>V<@0@e*eZLm1Wu}JF}Ij)H1YDN|9MTwmGO-yu{O2v**qDyYb0i{7?OXG!YlsM>@!wJuKKx#<5-d#2)&;k$Gg* zBcWO%#T;^o>}9Lvm3$3plnfPh?~mhb)%U!7O}fab^pG}EH-{2>rL~^M3X~0HQ`u7L S%C^!_c9dqCC4D%0G|4xtHS+BM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ampex175 b/usr/share/terminfo/a/ampex175 new file mode 100644 index 0000000000000000000000000000000000000000..837bc26b4bd1b154cd72eee3937d43d80144a2a3 GIT binary patch literal 412 zcma)&&r1U_5QV>1LFu|T58^=SC048mt5_*0(n3WLL>I(@AodqXZOa}!DD>n%K2FlL z>`59(=6jj<29o{KE@d|OA)`Ob#$UCD*y`gxckH)xQgr^0c~9?eW5EK`&<(&o>5)dCxtQyiWhk6!Yuz z+}<4{4dfH~My_0zxO%Pb8gA&a(?7Josj|%u)rbgrMpEP+nIKc-2Khi{NKe{cJR;rP Mq=ge%ve^u(bQEv<-1(?}y0B*I{Dw0ekTF{1AnBt;JFvBz;ni7U!hdG*W`lnb1IgE$BNj*_S2{TeJ z3oAkmr#RESX#cs+7r2z_3fH*7E$(oS2Rz~_>^|$67wxawqci^3-|!AjgM(lI9)J_d zODi*Js+3w&o)eYmmERXf2e=5%gQct{FK+*^z$N|y9CpAW_h_=8RTijNlXtR*W$wT_ z-101c)7`CDfxGHg0?QA|;2b!GP8fCqMp|%$jF1&Zgi#?UY5PgdhKhVZ1xE3kyARx-^B_TPC2{8&mQN%*T10fJK2e}wxL<_aFv9Yza zw6yfESXkNE*jU-DGn+N3#KMJr@6Ei~nLTc2g~B98aE~=nk2{AKz6vglSg?wz!cOWu z>NQjKv))Nu?;c0(Q}7af*v2@LBu9}TrL{yF9t%nuU${gwRLcw^$g;{Y zbUM)ipO|C@=&J$}?yzWjtj}WnAC5HL6>sU8P-tEI}^QOO>1ELnkOngABIt E4G+9LLI3~& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ampex219w b/usr/share/terminfo/a/ampex219w new file mode 100644 index 0000000000000000000000000000000000000000..d45bd6492d098763bf9b0933fb324af697f4344f GIT binary patch literal 696 zcmbtRJxc>Y5Pgf^iiL%sE<%JmR8Y9xOGtw8LX1UF6brHNY{Uo&Trk8!L9t3>V=H!+ zmX`hy3o9EN8!IcTb!M}Pl~{N%@4cBfGt2JHh$W1o4|j;fVWW9`u2uf*(yHaIv|M5{ zr9z!LI!R8!pRmxzFs4ZLV~~_F5(@~3jmcvhJEV3g_HaO0MPeOxjcMV+W^Gry#tm+* zzIT-eJUV5}Q%`lKyZG$tFL)*OhIf466JIbG5MyFOaNndwW2PO?iaFsq-QDwFo)?R5 zWANu@EpkG}`xwGF{JM<&rt)=l#cyh&7GzwJvEJ|snINKM(<_9`y@Froflhz5LTwTK zLmHy@mvJ#n2+LkU^GwNcF|1LRX}DDV2r6eA7Mz#vdcSbQXVeJN2|(#_Z1YB5>V<@0@e*eZLm1Wu}JF}Ij)H1YDN|9MTwmGO-yu{O2v**qDyYb0i{7?OXG!YlsM>@!wJuKKx#<5-d#2)&;k$Gg* zBcWO%#T;^o>}9Lvm3$3plnfPh?~mhb)%U!7O}fab^pG}EH-{2>rL~^M3X~0HQ`u7L S%C^!_c9dqCC4D%0G|4xtHS+BM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ampex232w b/usr/share/terminfo/a/ampex232w new file mode 100644 index 0000000000000000000000000000000000000000..2efbbde5e4ec6be67441a54b7f787f6d2aebe7b1 GIT binary patch literal 508 zcmbu3u}eZx6vltAD3o-K=tR81hmn-er-Fk?RxfjKFp6+2m6m4;5=l5T2sJb`G&D3c zL_|dYq8(p1THLzu`@Zj$ci~tpz)6XH=Wr z;Iebk2W!N5yrfv5`m<)4CmQZzIO<7KsvBffvr3+V>ay39o(CRz;+Yp-!_zl&=iT^+@oB&Kf9(^gA}QnuX&_rpFXJTbq?2-* zPS5*|EFzmO5!DuO1Ivb`t?mlt5EgXk@{WFmc2re1s?3*-}7B17Z> L8Sjz`;!$P`Onn9D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/annarbor4080 b/usr/share/terminfo/a/annarbor4080 new file mode 100644 index 0000000000000000000000000000000000000000..078a29061d455389dacddfb3d694feb5021dc640 GIT binary patch literal 473 zcmbVIT?+wG5Iu{+`r2ptD#nTjyPHJh;~$VDNxCF?uq1Env!BiETG~>`)IDeBoSE}* zlTsc<_;JM^!ZgKkxj)vlhISFcp}uM6`nH&}M?k{&k}$ySR^kWv7y}3~J}QnOMm&uj zWx_apdC#5yc;?BOd;0gZh2si$XXWzxrIO~bmGRa*lCg4Q|%4Ni15c|5l6<;%SbCa!ngzRj18&) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi b/usr/share/terminfo/a/ansi new file mode 100644 index 0000000000000000000000000000000000000000..6de79787ad2d3fd89a05b113e11d98c012f4314a GIT binary patch literal 1481 zcmds%J!n%=6vxkf78@*u3LRP_rOVT3Tg^*enuMn&)qqh`2-=}ENKNx<`!ruB(N^0O zoE#lQ6s&`TgM(mE7Z*QTH&>xr&_Th`&p{XC|GbYRgB6?vANQ)MJ@rwo<^%7ABH}9S^`?w7gZ(1nYwP5i>;5l(`7_-R#uLVut^81q?{`F(I)r9l-{c<$|i=gVI6_91POYPC)Dd#4bSW48)EM08D|p AO8@`> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+cpr b/usr/share/terminfo/a/ansi+cpr new file mode 100644 index 0000000000000000000000000000000000000000..afa048db9238bbda717ec904ee7994ff49655e08 GIT binary patch literal 658 zcmb1Q)L;Msbw&Y(#Ju86?c{=@n!M!FqTL#ARyB$j{yL8*;-}* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+csr b/usr/share/terminfo/a/ansi+csr new file mode 100644 index 0000000000000000000000000000000000000000..b33d2e04dc9e7d37cd535f99fc9fd2358c875d71 GIT binary patch literal 349 zcmb1QG-m*TMh0<)#Ju86?d0O38b`liPle*-qWqj3-J;a=%=|osf}GM~h2+wr;`}0o z;>5C41vQ1D)Z&u-qErTk|6l;4A-s`73IcsE!XO>3nyFe~sG4G}T41D_Qp6x_!60qU F003E)6&L^j literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+cup b/usr/share/terminfo/a/ansi+cup new file mode 100644 index 0000000000000000000000000000000000000000..d1b653d113820c21832154ecabe96bf28b67eca4 GIT binary patch literal 101 zcmb1Q)MNkwUItNy#Ju86?c~ye8b`liPld#!;{2S_l2nD{(xT%0BHhH4l%mw);>^5s h28RDw07z7jK{{GBQ?L#ARyB$4@lUnMq3*g8X23InweWz#wG)Wk{JMX C3tz?n literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+erase b/usr/share/terminfo/a/ansi+erase new file mode 100644 index 0000000000000000000000000000000000000000..39c766a551e565ea94210ed616be52ad66dd8f1d GIT binary patch literal 77 zcmb1QRAK-D4hDXP#Ju86?bM>g;?x>PzhF;=z`(%H Tz|9~X?I9iQ1*E)z*oy%Gk0=?3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+idc b/usr/share/terminfo/a/ansi+idc new file mode 100644 index 0000000000000000000000000000000000000000..90fc17df010c64bc4650053d2820b6aaf525be1e GIT binary patch literal 306 zcmb1QRA&HzTm}_}#Ju86?aY+q8b`liPle39;?$xN{gl+4)RI(% BXY0K_I4AR-4yI4}SJOyG4- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+idl b/usr/share/terminfo/a/ansi+idl new file mode 100644 index 0000000000000000000000000000000000000000..335f7970852f2cf2b0de7b6ed28a9af084128c84 GIT binary patch literal 294 zcmb1QRAK;udcZ6LS=RBD%#T`31!c4FCUg i0CoHa0~RO^;f*|!6X<^)2I=T1AT~~CkoI8UWB>qQH5cvx literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+local b/usr/share/terminfo/a/ansi+local new file mode 100644 index 0000000000000000000000000000000000000000..4a3abd05396b36888f567d96df096378aff62803 GIT binary patch literal 348 zcmb1QG-CjPVg?h2#Ju86?VSAN#GD#OzhF;=y!@iv#2nq+{FGFMg2bZ4+|-iPqRgt) z6our{qT>7_-R#uLVut@%0Rvc^1x#`PNgf>PuxcIzf&x(YN-`(`S=tQJ(M~|@0>sWh Z>_2>Wq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+local1 b/usr/share/terminfo/a/ansi+local1 new file mode 100644 index 0000000000000000000000000000000000000000..5ec73b88a7f6fd3addbf1c1dbc1ee8d1d85b8577 GIT binary patch literal 110 zcmb1Q)MNkw5e5N<#Ju86?VSAN#2mvKN55cCg}nTt+{7H+-29YOh2+wr;`}1r?9|F) e28RDw0YsbyEXx5Tc^IUloq*T{h@FAhkpTd=G%_9l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+pp b/usr/share/terminfo/a/ansi+pp new file mode 100644 index 0000000000000000000000000000000000000000..7ab68b197e64e7805070f28bfcae489881a5609a GIT binary patch literal 318 zcmb1QlwuHPU|^_Z;A2S4E6&s|D5!Dt3-(kfD9X$$Ni9++$S*1Z%3}kJ4F5+EU|?Wj R;AD`F&IDo;5Mi3h000{__+kJ6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+rca b/usr/share/terminfo/a/ansi+rca new file mode 100644 index 0000000000000000000000000000000000000000..13d52d4785eaabc1017f9373d4df460ac0d84306 GIT binary patch literal 350 zcmb1QG-d#S1_n8X#Ju86?V{ww8b`liPlck?oWzpMvQ&lS(xT%0BHhH4l%mw);>^5s t1r0;pq{QOX6io((|7ZYH1Wm!P;_@>{N2?YXs#Y7;s%opIxTA7Y7yxY^6^sA? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+rca2 b/usr/share/terminfo/a/ansi+rca2 new file mode 100644 index 0000000000000000000000000000000000000000..2c1175943106ff4d0471189ff55b926c534bb8e0 GIT binary patch literal 332 zcmb1Q)M5aE1_m*P#Ju86?V{vFqZ&uQU{8gj)SSeU%(7I4;^NG_ gbcX+EfB{1UO~J6@ax+Lrt7fVe7^WQC&Cyp+t6%>2A!28RD+0AyXP zKohv&rtrgAWEeYuT0|J6qfK*xgawE&2N4EfLe*Ziz*x1!+FaEd#54giO(9HkAk#wC HI+pWQC&Cyp+t6%>2A!YlXz( z;?msAymW<<)FL3An4^%9SgZijW37;vU!stbnal8>48Xv^3fIR4WbreIFi3($OL05WqK0P@u;PXGV_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi+sgrdim b/usr/share/terminfo/a/ansi+sgrdim new file mode 100644 index 0000000000000000000000000000000000000000..29b7a517bf3ce441fc144f3092dbdf6f9892eb25 GIT binary patch literal 463 zcmc(XF$=;l5Ju0z#l^)%1v!x5;G(sqg$&}@#l_Jn+R_G^v^MAF=>OJ4Qr)|FaPJ-m z-!~hi;N}T85ZcJKDcVe`$KiNNv1mn8$}6_H&LqiN8;-)5yOO#<%3FIyg{3fPBOG;2 zc&V!l;MHTg)X=6!cE>P*>8EMo`E{Xh5WpnN{0Vb0Ssv7urf$T Ko96jg|9Kds QqoaV>IGsV-gMpI)0P0*38~^|S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi-color-2-emx b/usr/share/terminfo/a/ansi-color-2-emx new file mode 100644 index 0000000000000000000000000000000000000000..4eab4da7191a5531bff9d34cbdd112ae0a0ef2a6 GIT binary patch literal 1716 zcmb_ce`r;86#v|FrBpJl5ZoSyEUzQ<&3oU^&AayAT(!5vQdgNhQ|ErW_qL~-X3i(4 zKeAtgP=p{7q96#0(h7v2vR0BH6oYgs2#O#G!b&g%yPfa%-aDKY82E*A&gXo-=bi88 z-tW1u(x}2B%t6_B(roJ=?2Wb$6b80MW6{py&fSeqx3<)@u4`SO$ptYO1^{Jh>Ex!= zXN6dW>8ODBFKaroXqFv-#81NvRN`S>S%o-~sFQuqTaFg-D>d&oS&g+=ALMQ564Zws zcva#E_G|tiKE!7@64V^maZLM@0XHu3Y=F<= zW47_2V72B3(a&!8^JG7wYZgwaj84gZ4zgb)o-lqBKW02ip0`BIUp3@Vf@;atOoRBc zMofDrYr0!e;4Na=m5P-@6kc}fIgy+=@a^tKBvRO#^`q%r?Yg9&eKJ@M3?CbP0&@kM%U>E!3=xeooJf(n-7^4=KQQn$mDI#<=(%7;P(CJIyYo3=8^o`v;}Z7*#Q z1)?O97v-6>IxH))xD~t#{5aUvz8?G-xB;92XTgo&<=`f8Gk6Vn1^5~8YH$m9B{+v! z>M8YOmqL&gV7pdEvBQp2w(6}Rt9n_r)#)?wfY}u?v5;w=WRgKmDPXD}srK7E5fWBF zbcMvyfM`<0a9yly$wfHUV*f&_tidW#*e=?(iw)}Av0caZbq={{DHq8xYsgLbFfK4) z69SVyn-b{wFfFjwhjoe-TCOE0|BdQxwa76N^y^wYXUPN6c{LUGnN8E$4t4$2J<;>U zmhryt3a5+T_y07or!=~Cbld3Q#-Sg#f3@T2%RlV=@|8b#{V{xD_o?#xd;SK`mR|mq zWzq%Jvl9FocrW-_@N?kj!E3=UfY*Uv1n0r)!7qVd2fqQ{0Nx1R1a1Rw2DgJdz@6YO za5wl(@LS*>a4&cZxDPBR6v6%A0dNVt75p}ML?p<7%XD|F5t!;%l2Yn@DpOyCp2@hL P1vQ%Xz0U9VyLU7z5Q2Vi&iVd6zw_=n z_xJnVS8A1G4oXn48tj(d{_ap~U$$>^C>mJ!IGs_W095u3DEG|To_{Ex=hb+S?to7$D=n&O| zt$0V`UhLES01o3b9QSk1={TbOMW0=gIO^-GxQ6Svft$F6+Ze+g+{HcIm)?s-+j_*B zVm)C^6RpNmel)Yc`=@1ny3ToSLgot-W@r7`4-(H?KZ+l*=1{TtyqFo4R7Ebusag|H z{Ge6^dUrf0$Te}#zwn7!vPTb@_u%h>`G@oo?Wd3F03D(ubd)}!Pw8{|g1)BXbb`L6 z@8~oQ(>Xd%7iffjqDwSNSLqsEryF#WZqaQTqdRn$?$Q1K*h$b)5Me)Vm)OtPrFKC6 z|2WGIJyi9iJ>Py5Q&EGLA6HJRm|CpXQ(YnPfRwrkRafO}ANEX)Wd#LYO_Zs4*X&w1 z9Gq-$hSWVMksiVBvKNy{Ij+N~xjBSCLhWy#zpL({8fgs*Iv)bdrw@10{^ zUv3=jIhnnjJJtJr-;Vt7rs2)Q{p$zLZaKE~^jl}Pee?EjgTD^_vi;}6!5x2qr^&O- zk)@JZ^~_T6PVjr+72wyvE5WP4uY*^E*MKwNwcvH&UEtl|H^A$`8^A5#H^HsoHgG$* z1KbJT1AZUe1?~oK1owcYLJr&u?gQt+o4_A{_eu+LyX9)PEf<;SRV^jdekwDcgA)2K Os0$h!SLT+hi~1)ILq1>t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi-emx b/usr/share/terminfo/a/ansi-emx new file mode 100644 index 0000000000000000000000000000000000000000..837380764870f95940191fe6add38e1cec3ef6be GIT binary patch literal 1718 zcmb`He~4676vw~sJTW(vwIEn`z-sd~h^g<*d$Y6aTb)_g+F8xgUCV4N-S)RTvpc%0 znd{2wkA7JDmwyQ*6oC)~{ZJtY@<$Uv5JaN1{a_&x1VPvm48dOK-uK?p_5%#OaL)Oj z&pmVRnS1X{txXG6RtKIjBM{7VFA7xJaW>=7V4@+Qe_vJX~ZmwqkpfccNF+Aok&9 zi4!=Y`MWrdQ>a8W7j>M{{!+v)OS}^4tGI?~T*nRE#4YLAH0Byr#(bmN2!eZ!`-~bR zVJsG{#)DA|vw!*}GN05n_N>arS=o0{c0uB#@w50TBTYfjAQp~Qw3>3Xj#@QYFaEGr z6Le&zCaw+R(f{DHtAgOI+pPQh=i>Yry+iNOaeALVpbzO2Iz^w-XY@Ipr3!sTU(+}A zEuE)}G)X_v6#YV%=?Yz?Ycx&Q=?2}TTLjZI=bBaKd^2A2&ctf7*1X@e%%yjD-T%{F z%51u=-5)a_H}Ap%BnobyILCKg-}6d|LOxMgFJOb1iq?QtcC2pSDyOXOJnj~h7t5y7 zMfqK6(J!GztXa%)O5)SXY2~TO2F-jo<9iy~zU%m2Mi*)6X=y8OOAB!`l6pnO!p;=d zC9~6Px_?QNW7{j&NH@||q999TGiu|Uw8$OcP2hE4U;8HTYVaCx7Mue&gV%yvz^&kR z@CNXc;LYGR@J4VR3)DB(M^KJMPK51SSw+VjXWVMCMy=$kq}3A=HzEgOl8Q;|3`s{d z<%lF7N`}ik8Urf=y)jrBfffbE8dKwzT#92Y3oob68mW^GyQH_hVk7#dY~QiNK1cnG zluOGgYt;8b>57b~Co&zulWipE<65@xk$aZctXO3K zxN}bD$GyMzP4|DaYjW^(@rTlxp)ZFIl`Fd|dnzM4M!(p5a^Kk(&+R|)(r*WT9lLb! z`|-CA{Q<6)wZbdQW{PUfTJS62SHWArPl2BXZv{UC-UfaaTmWweKL>sd{5tq~@DA`! za3}Z$a2L26+ym|f_kj0kJf_jGDj0zvUBlCX(@3cDU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi-generic b/usr/share/terminfo/a/ansi-generic new file mode 100644 index 0000000000000000000000000000000000000000..1b72658c62e9f6fcfd200c26d6f57e65ed5716b0 GIT binary patch literal 756 zcmaJ;J4gdT5PhrS4{Sv}kTfew2$-JU)I`P{?R>SEYjWb` ztL3IPJn_xUny2PuZ7W-~JX|W;*%Bbob-FBpG+cL#8vD?XL5yP(5;O3TJC78$C}s$* zyG?8oc9B!L>lRSb>Hu|84IJY{IcJK`ae+(S!8h=^!ZkTJ9qw(1ZuNBXovPmJo(CNt z|D9>gKj9fKc%{xayyJu7=dYgMHTq69vTD_O=S0dFG+^QU&RwCIJ{4nM4>y(ItLyoh6+RP`dJs444 s*SlIUB5FIi!0k>XCSxoE(g|r9{Bc9l32S#wI({u9(utC!wGtS@7nh4A0{{R3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi-m b/usr/share/terminfo/a/ansi-m new file mode 100644 index 0000000000000000000000000000000000000000..df6fd79849a834696a53669e1eaa5393185371c3 GIT binary patch literal 1370 zcmds$J7`m36vxk}MT=5U=+GLGyL`TCLhen{Bt+@Mf~lq@kPbB&YSP5^YV$C;wbiBt zCr1Yn1?%A8;2>Dk#l=VC<|=3lIwz4L9yi$~Mrki? zrjqzB(uIod&R1<$EEKB)qlsZ<+~?`_yVYv7w>m?DVcIraVMq9`<+o^*(5$^`?qYxd2?}tot2sR4E zC~n1Ll%xrZxS9p&RGVD;~ z@0jKz)F0C-y`)$4mOj!3{iID|yKp9Vif*x|5t*h2J_7ZLYp^$3D$X11myuupL#?&% z|KfN5^oc)+PvW!K5Ux~`w&J(#O8KT>qOR0&xDyb2smqcov&WhkktI!Lqeu)w?1!ME z&;S&NMj%zo!v@%>Y(i{;4dZ9BCXaK6mqTyF_ROpp{(j9xV&LXN9j;UY32Oo`X~BpC zyfG`&??9uO$5Y{YZY=+zHTglQk1iWwA$BjlL zC?kv-&~Kx!ne_t$cD5I&+86|eYz%W&lM$Sr?{%1Zb{yL2?(%ed*H5*jS5E(!`Z9h0 z%$u`MX4djg3onXGrP{e#xmKAlR%aice>V4g{=tQB7r!pNufASfUiyU*Nl3-F+>a|c K03C#S2I)7Sj2VUi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi-mini b/usr/share/terminfo/a/ansi-mini new file mode 100644 index 0000000000000000000000000000000000000000..3f85d4be28abaecf90491badbddd18e337273d2b GIT binary patch literal 418 zcmb1Qv}90YU}k7y&|yf-E6&u-&CJWJNzAKMaP$lIR47R;0tzJND3oWGWGED*78hsc zW)_!ZCMzTs7nkN1lw{`T6*Dj}GGG7pR4p)6O|e!jFj7tNVBi9&0FnS9=o13~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi-mono b/usr/share/terminfo/a/ansi-mono new file mode 100644 index 0000000000000000000000000000000000000000..df6fd79849a834696a53669e1eaa5393185371c3 GIT binary patch literal 1370 zcmds$J7`m36vxk}MT=5U=+GLGyL`TCLhen{Bt+@Mf~lq@kPbB&YSP5^YV$C;wbiBt zCr1Yn1?%A8;2>Dk#l=VC<|=3lIwz4L9yi$~Mrki? zrjqzB(uIod&R1<$EEKB)qlsZ<+~?`_yVYv7w>m?DVcIraVMq9`<+o^*(5$^`?qYxd2?}tot2sR4E zC~n1Ll%xrZxS9p&RGVD;~ z@0jKz)F0C-y`)$4mOj!3{iID|yKp9Vif*x|5t*h2J_7ZLYp^$3D$X11myuupL#?&% z|KfN5^oc)+PvW!K5Ux~`w&J(#O8KT>qOR0&xDyb2smqcov&WhkktI!Lqeu)w?1!ME z&;S&NMj%zo!v@%>Y(i{;4dZ9BCXaK6mqTyF_ROpp{(j9xV&LXN9j;UY32Oo`X~BpC zyfG`&??9uO$5Y{YZY=+zHTglQk1iWwA$BjlL zC?kv-&~Kx!ne_t$cD5I&+86|eYz%W&lM$Sr?{%1Zb{yL2?(%ed*H5*jS5E(!`Z9h0 z%$u`MX4djg3onXGrP{e#xmKAlR%aice>V4g{=tQB7r!pNufASfUiyU*Nl3-F+>a|c K03C#S2I)7Sj2VUi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi-mr b/usr/share/terminfo/a/ansi-mr new file mode 100644 index 0000000000000000000000000000000000000000..92ab01a574db69a42d2a4bda12b197e90c9576ea GIT binary patch literal 377 zcmb1Qlw?q2U}k7yP-aNXE6&u-Evm^)%~dE$%~41$El_au3-)ASU}V4m7($E;0Sy2D zO8_wg0~3(^|DT0{n}Hw9`u|@TOpAg^Ngyc;6$hysZa|TNoq?A@I@&`z+6zc|1F;ta O7m#!TVrL+B1o8mWl>q|) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi-mtabs b/usr/share/terminfo/a/ansi-mtabs new file mode 100644 index 0000000000000000000000000000000000000000..052de5e9e066b54f8446a73c7cbb41facbd487c9 GIT binary patch literal 464 zcmb1Q3}8@WU}k7%uwqEeE6&u-ElEr&u1UuLb7m0ZAh;3#4lJ0W-MYEEw1scp0RlJ*1<( ofRr~7gJ{)E)dEA+6l>K2Bh?fS1}=~aAa(&_XCQV2if}Rj0Q#^Vu>b%7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi-nt b/usr/share/terminfo/a/ansi-nt new file mode 100644 index 0000000000000000000000000000000000000000..b6bc8b8f576d8726fc0ec20ecccc67988fe960a6 GIT binary patch literal 476 zcmb1Qv}53BU}k7%$YV&%E6&u-E2$|cu80S*YkV`4i}H)}(@GS=GxJjN%ZnBKLKKqo z^NRCxQWXOHgFPb@9Q}el6>{@aQW+Q-8IS-YLjVH@gCxWM{|pRFK=S{876wiRUNB3L zL5V>H$kG7ww1A`@m<3XW4Hz+)L*;Ftv?C7nu1MnUNNjATg2cR`YW$&eFabT`1msce zi20^eK$Z&-Llp5!M+XBrr9fN^#2|JEFthtvyAdv@1WTTN}tOIn(nrfsQP>or|h&vw&R1|rK6 zf}jYBNQeR{FzS6b`wm@R_5mV$)2p^QmtCbB1s<4r{?BjbnKS1(lcj9K7GxlD9gOIJg84_WHVcs%RM3D#B2(!MKQVOkfh%aRWDTTjF=b?qLcK?A%AGGrxY%-^lcD&-s-^qDm~0s5Sk3 zg(>BM@<^Fho|t?_{AW|mDc^p|OrH7v2cC>C)~Zk%Eu$5*k}_xwt))y_Pa7$hRN6}U z(&E+^^M zKfV1vJ*4cQYd^AswPI?o8r9UWPmQ|NaJ7IvV%10&?-#2O)3gEcg@!X#k)gaP=P?6L z!#jPNxf|mL+EVSrOk(wpFB8x0p zY*4`i=3U4Y)Pd`b>&VY2SiOCnBh&e@BQ5l_>s$Aio|(S)r(X1b7g?-t&(41xnH&9d;a&Xh*mv+MY18--hVM6PUILGU4}+V)&EO;87H}*0 zC^!f{20jkH488(x1Gj@az#;Gn@JVnO+zIXicY`OuSHV5tUT`1y6j< z4ucVcIh=0;WH~apF?a*%0ERHAcpO6#Ttyn3h3bZU9O4jFg<#oYsG3qJU5-}|s`<#g zO04=O0Y#^QWoBWOhnesJF00RI$_Nu3rBOq`n$Zm$Hr@jmLLrQCMA@Ffn8zp`ZREuu z9i0uts+p<ynss%=>DIP!pCm{A<-~f`&KZ$nxq%o#?&U}n%a7rHudhBYnsb8 zcWq45l<^0@wjdUYg8m0ms8j@@P;FBX1VIqgNI?h)f*@9eg3xo`clWNvDq6_F%=>wt zcV>3>-ko)^emssQEX3ZW@p7eO_39 zFc*yH<1>YPp;#&x^6}#IO#EmGh~efh7H)2p^kHlmwOX^-?Z4IN1>JH2+!gKa!8$xF z+^YAFiC-U`s45#^!)@%lh5E1sgR%}|SEP?&ea1obq z1z+Gxe1)&^jhufgwuGzrF^XNrPw0u={x1KeocYI`gi)*6VzpYQ_BX4XGTt^$8)uC7 zwEn*MB~4e2<-bMNbAJ98y?(w@>o3Ny#x>&))5>Y`6uAwT(g#W9lfI=_ z#Zwry<99mQ@vaWLtHbMD(~|SuwC@Gd2xq~=U?1EM?gnoHKMC#u_k#Pto530IR`3XT z5d1870Q?MCy^HT!eo|bZ&{k+`bQC%oU4^bfFDd9HHL5gEr+F&P(`lYc^PC_m?C4M_ zYlZb4-*$aFWY@RC6!nip73DOg(bjgWpeHJhU|RS^3KJiD2>Y;>==YZ}sw#kB@#nd+Fu#bH5+E zHotuQyM+%<+yLJvZT7em+8@$2Uj@Gg-U%KB?*cyu-VNRZejc0yzW{y_{5tpz@ECY6 zcprEiydV4$I1es>i{Jy`H^Fa#C%`4}LGUD4>P!D+@H9989|oTUpOQz*P{~B)M+7^| W;vBhpJs6H2HZ>lp28H9L2IntHgMNqr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi43m b/usr/share/terminfo/a/ansi43m new file mode 100644 index 0000000000000000000000000000000000000000..be5691893bf0209fcf2a2b12f960a6d341708385 GIT binary patch literal 735 zcmb1QbZ1awU}l)iV98jJoS0XfscT}an_B~7nHcBRWG3b679=Z_q!#67<|XDR6cpvB z7bWHvE0kxJWGI*zE97M6r4}n_vm6k%at zWBC7{gMpVpgh2wx`u|^sL6^Z0$T9`}y?~TA5QAvdOw|HI)f8*h0wdKF51@b(5QAtJAa({~ zM<5OWVqYLOG|B~%rXa!)L|A|bb2woFmM{R32G)jP8pH-+A7F%GGn)&lR@ENlj1p^e zRcjE_2*@;nFpUwSCP1bsMAQt(G=wnCflLbs(-I_Vq-qVc(Sw1LL0dpaP**}v(%^Oi zOX9|~AL$=6He}t*-k)4TP=E~1ipQ<0%+^C&X H_m2SpCooph literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi77 b/usr/share/terminfo/a/ansi77 new file mode 100644 index 0000000000000000000000000000000000000000..b7c11b18531c53e262ffdd38c2e73217d9857b28 GIT binary patch literal 543 zcmaiwy-UMT6vaQf`igpeM&@$ACRiC#SRW}2}CidX-ULMad7D1;Nalk z;2;QsApV8V^U}0^PChvA{_c6_UP7h{b0}dL9sD4O(@2P0=df8bmljs4W_lgOVUUDo zc})oO<}^v8Rtyv{I64npm1$rMlaLY^!U*dGrZK}RWeEZ{X*25_-n&!{Ue>Eb?;PjO z2?Fiy3>Ro=eK(!bxzpVHK0lB;)MMX~@+srz+6$0uST(1zO4i;s5{u literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi80x25 b/usr/share/terminfo/a/ansi80x25 new file mode 100644 index 0000000000000000000000000000000000000000..4043099f37cef6decd107ceae59ad5c134b69d18 GIT binary patch literal 1502 zcmcJONoW&L5QgUsMI$N}Y_T;Kf*7e_HCT+m7(0^Xiv`WGD;Dc}GpLz3UUS5)o%0X$A zNM3cEyMlpmmi2IFAnXlmYqyLdE*bQA3hIkYvK{n!OzBzH44*gPG38g)mzn%Qw`UtE zMMQ#LaiMdnh76QSzZO{r%A;f)NuU*a-$3hVJ#B#AOxa|EcYs_fge|3Vs-;FKSuNDA zRaY$Trx4T-n22SL#(cD1>@hll+{sw}6#VIU%^5mN7w8gQrYm%nZqRMILw9Ks`%l1A zdPXl|wXfo5<~uJ`Q`mn`pJ5tvWvUN8R~& zbP?)#Jo>v=G=BMy{l!l$Kl@s}QyE7wv8E96U*DXIok0;?Y;Q%ttSp}kE4ZFKKu zM3NEmKm}SJftU7`pb1ogY9LK(K^>?E4WJRobt*s+C=IIzA69xz~g~Ok%vRK zh98Vfj@}&mKK^ZD7Drk^3D^hZgAAJE4y$}mj`r%9?%QCpbzu|ACPY)0D>R{ s2EZT)g9sP`!(arAf-x`-b_LQYKm24CUjF#rGn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi80x25-mono b/usr/share/terminfo/a/ansi80x25-mono new file mode 100644 index 0000000000000000000000000000000000000000..4baf2844bbcc390b10590d0a73c56eff73ea8271 GIT binary patch literal 1478 zcmb`GOGuPa6vxlGh+0rdVWmSc2opU}#&K+pa%sl zTC`}@HI*2p)bDW_cO&6(`&>rJ8Vl>1 zDxsXNJ;Y2zf_~yc$C&CVnbIh{!V?OI!l~#1BE6?i^o>H4#3`J{8N82|SB1k?9m(ecuI4&! z&>KD z3z@2gY@vnhtAz~JLZ)dUBejruTF9na$PW$T@P;ljGY&s;>!*+|^ zX0nT8fn$xx9LQ+Y3YlxNdubh-ODS`ER+{-uM?&Yl?jJp0dhfea`(F1y^(=ay`Cbja z9DXtKX!QBmbnxN$*NLUcpJ-_VW#A}~_u2|1)(K7l9MXZKIb5I{^nhOA27RC(cz}Eh nAMk?#FbIY~01Sf>Fbc*%5R8KfAn(utj)N1R9h?MmZ%)&1r5@}i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi80x25-raw b/usr/share/terminfo/a/ansi80x25-raw new file mode 100644 index 0000000000000000000000000000000000000000..e3621f7c22fb8c7e28d708217db550269bb9d068 GIT binary patch literal 1459 zcmcJOOK4M35Qb+CK3b%xXpwpeMB$2E6!U0IC6qROYg_xW)%0q$Hc?}nhe>Oz76lhB zT!^@Ep(rRQC@3f>C@3f>C@3f>C@8oPaUtl!MHdqPIk`<66#@khd^7*dnKN_lAz8^a z@Mm&0XXzYWq|0=buG3ArO?T-&J*3Cj ze+r({OL}eBzRjJP={#G#$Noq9Lf>hM6fffC?BF%Lj%U}1uF{zxH*g1cb07EX__xJ%n;wSu!U+^n_!|(V5f8x*lmA~;1{>fAP zi&@QA#i~RtRi&y-In*j;s&ZAK+{&jmsA@I08x%Sf{7-!g&6WK|)u9ZlpB7RH8CHv7 zZGvkB;?1a;berK_GcsT%J!ZHCi8|1Nzlvd1yXs+uphRv_ouD1~VlZwoUROYSzXaOo z-rEpKMyLgCXn71?+P8x~uo-j!Y1#$4K@ZphdVyT04K#peun|mOrx98YlEYd^S1n|O z7BW{0X{v>E(?VKmA^o(Fp<2ktPT=Ck5E)gH%sy6_3_qgj`?<^-sU8h@0)8_fffs=- zDyOu1R0}Zw31Kg2TforkS7ZP$qjvA`>cY^&4kU)0Y4M literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi80x30 b/usr/share/terminfo/a/ansi80x30 new file mode 100644 index 0000000000000000000000000000000000000000..44227ab461635ccc77441250767efd41ac97885b GIT binary patch literal 1496 zcmcJOOGp$@6o$_|NEsCgDOr;-L=y&CqvJFKljLL6G2hSBG1Ht;N9W~xv@mE9(ITQn zi=v&>rq8s#A5_ZrhJ<_y0t=r!h5)Rq_nA&++(DMdtr zUU8vgs)`b66a89XB~mV>pd^8o>GMQdLu+Xr^k%Y<4b}m2r~rF0l~Og;L&<8QR;@Z> zelLZghQN3%ax`Y6`LZ9Q6NsIR#ZSSWj^~`Avvh$j(Pg?qSLp`braN?(CUE`)Jf&y! zB9{9qUNhHuzM91Od-_CEG()Ubs$`X>wyK?KevW9nj^rt)s#GMcaT2Ke-fn28yI6*Ne0khXBgw}(kSPSW@g^bWb=4v5L zwUBOFNJ}lGpB6Gy3;D1ST-?w>2D=2KkL4kQ4c_ei%%(k(J?O}C*h~&_EO25n8`2t$ zS|R0$qTViekO5kOR)v(2x?{chZCgV7wa)3Tuie*uDLrp`@A)SK_k)l79t}Pmx;6Y@ zWFm5N^!wPi@fnmfgCejG$O|_CiM4}+09SV7qHZtf1YMvT_&^Wn1%4pkN)UuV81#XD pFaQR@5Eup{AOc3g7?2lrgBGwKw1NXbeo2Rbi;)(zO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi80x30-mono b/usr/share/terminfo/a/ansi80x30-mono new file mode 100644 index 0000000000000000000000000000000000000000..35630cc4345110a5c33ecfa847929174028fabc7 GIT binary patch literal 1252 zcmb7?OGuPa6vxlGh*nTZVWmSd2w(I-8OO1a2Fv%`$wyi`WtubU=sbKoni#YQdQi}! zMT-_KTC|8>v}j>v<-&yv7eWRt3R*-28AY{l`kySfn@1Fm8-aB``G%lo_luRqs zraFUxp&U!5f3hPmL>SEcu|%W8RH~&l~WVC2KBpHdaEpJ$s0m zhy=ajLdUp{)=@fz|FTlhl0b<%zm7K3R@x4oK{;fHb%1;-#$HatKqId zpa@jpqcXYjEydV{Lh-Ui)qz@&>&Iq~Z#GeS<}nCyViZ8vVB8s48C?sSffF1CGO!*r zfJSfxGy%Cv4JZNSpc2HcQVOjPlV&YssupsD7ILl@GE@thriF~uLgr~9hiV}|G=$5W zI?0qL!N^0o$z+EYyPw54B-O(XtHW+M#IeG$MPv?SG-`v)H5`6gkLFU!+>w=PdEK7S zakuMx_vfB_-jv=~eNTK#{-=SL122Z3k31ZGHZ~J_F#cs?dFlsRT0t2&3glf|fW$h$ zDS%75a5a|)bb)Tr1H7OY^Z_4`{~`c_pdSo?K`;b{!3Y=yV;}^^!32;ubb;gG1ZV>% JfqXZo=@%T#69oVO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi80x43 b/usr/share/terminfo/a/ansi80x43 new file mode 100644 index 0000000000000000000000000000000000000000..e0d6ec3e63b03994b8183fb8315691d6f92e77cb GIT binary patch literal 1496 zcmcJOOGp$@6o$_|NEsCgDOr;+L=#3?qchVCOpotX{FMro8p zK6RWsLcsy6<#2m&z~?ZJKo#|Sy?M0-MmY%iy~cE_CByFvdX2diwI#+t$m88gN)eHu zS6t|rs-i^NM!yzViIhVrC`q7Y`aF@=&{|pty@@PjhjoH%%Ew+zrBqGzP_mk+RjZDe z-%DYrK`kc37kIxPw5%G zh~>VD*UWXEuO@N+o<7kO%@C`VDp{qeEo!HlpCj6#Be|+TRjL}*pqjOR?vK3laqlA3 z^SJkSuc-g>ALk2KEj{{Ly;C35NA+2KQB&%NnpQs*aRMjuDo)~LPUVekbscP5guoQyP1~LYBIQ82KQc=QXtmk zGlervp0+vZG=;NF9v1?6z=gkx!JTc+$1dcGmno_WlmlA;Tc&Ilvr}8UIC|5)8{tVr z$N^<&c?4G4mxBgS0V;tstp+uq7Sw@yAlE4a1)vy|fZ6L5LhC_Ntc7&dLPlsIbG4AB zT1Yo7q@@28RTrkL4kQ9p3Ey%%(k(9dTwk?Ix!<7C13!g|tPZ zHb{A*sJ9CqWPnznRUu`h?pSYr+m_INt#i8TYxi|uO3$0#d;ZD5{ov!iN0Envw}u`J zPmJ6g{XX_>d(^1@9(V(s7{z?I#&sM`xVK^N!-KF|Ytfgi}X5(FU-27RC( p41fq21VdmLjDS%v2INKEpatv)t>6HVU(z8UxfcD3GQk>CzX5uq;-dfn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi80x43-mono b/usr/share/terminfo/a/ansi80x43-mono new file mode 100644 index 0000000000000000000000000000000000000000..009a1934564b2cb5367f54c50a87e2b0f7175a34 GIT binary patch literal 1252 zcmb7?OGuPa6vxlGh*nTZVWmSc2wzm9jN{lygXR0}-3n7CR1uY_ijG|gN{m-38C`EMPchCPk@0~ke8W++|N~RTR zQ=P%UkS!nMZ5e_1JLNuWfXUq_p1D{Y5PryR1wIzT=ZV=t#_s;4F>SuIf;@xtLY z>ZBg>BRU$*OwiPtnzM8ckqgo2CD_aHimP;uuG0;=Nw?@W-J$#Rh#u24@-twT=4d`z zyAbb*oxR#FBELlM=p%i_+a_@`r*b-H@an2?*rp@-T)@@rln`A7cGUH>1Q1wyy zr?Qk)?NOd{X^<%TgH=8Iu^B9CUF$$n-FzyVjjIIUEzzGfm8CVY* zKqEK;nt)uT29$tuPzhpJDTUUDNwXF*RSP*n3prN{8LEX$(?UjSA@j75L$#0}8p7pG zon*?BVC13PWU|AH-OpkilImfH)nPXr;#lF>A~FXu8nr>@8V*0LM{_AV{JoN)Dt)L7X1@f*fKw=%> z6u>22xSGoYxwP?{IdeNdq4|^isQaRO71C*?0 zYSXGS9`{igY6y(SGe_e-RxkD#oj~qnJbw!QbfV@AouvzOi7wL>x=J_bHr=7SG=cpm z;3++$7xCIxi8FJZ=c`HVzo$<$MKi=|rAk#9YKz*T=GTa}>r8=is=caKHL4aJpZlZk zd?LCC^*j;%-76Nq{Kx*nrZAIszNjhnLrtrnia3drc@?K{DyQ>CHu7f9 zo}0Lp+u6fC?B}IVU(AW{f9kuK*%2ORgS&;6(`qufT?Y3a zxN;!gb6lRz8Y zy9tqGgnUqemPg>FeI;lFRbVfWrZu1z)PZ`?0OUFqzzIr08JN9JF|-~ehqaKdTF3}3 zWUdy{R14{*g|yT{`e`9UwU7@R#l;PsWUxyz_E;V=*bvR$&urQ))e%RI!)9_wU_lU< zxscXa)(R<46pMBuf(+0Kv?`{o^zG}-Z`+ePu60d!f9<*MOY42pch5f=xF3An|0wcs z=+^Lqk%{Qd(eGp5#%FM(1(bk&Kwh{RNUj4M1h}#r7j=6<7w85(zz2FkAMgYDR)Qb| t!k`}vfI$!eLtq$;fG8LRV?bWi4O+o|&;||w`6V3!Qftw#C=+ty>NlO43{A#LMfsPzkB}YdGFl$(z%9qPztS3 zo9YY(hH@>L{xcncA+Imf9}EPw%(H|fENL{746#mOfMNa}H>U=V7qAj!yI)ie^4(kBByXzfD0CwBH~yNLV}y`zux74MwHDV)X`ypLB`g~K)-$>##DW+yjrv-U5ns=E~T zu0l=6y|uF<{>(q}fA0GK=q%6iJTLGfFYz0G%kTLEf8u5S#y@$5l}c3W)kd{hZB^-N zr^-;f)LxaPtZKhHpbn}cRi>(xQ#Gh&)v8RcR!X7`WO7xQTvagDK&;_4`m+sp`)}zm z`mKh$0)Zk>fse}M%C{6_7YfD87F7poL9QR0J-*pQ>6ynM#EDS=U4wCFVP$kJXa-Jj z7|6hS&;T025zqwWDm9=4l!HnTyGkjvK1`amkf~b85n9N(TF6i>WSSN-QVW@KOcEG`fO|_^kDqU#PZ}1w6uaUa1_Y9 zwg8EBfKvdMbm3|)59k8jpa*zCFX#h4Apb=G1VKL-0E1u%41*Cc3dTSPjDravZ|DNY O!3od?P6GLEPSY>C9T%ej literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi80x60 b/usr/share/terminfo/a/ansi80x60 new file mode 100644 index 0000000000000000000000000000000000000000..7449cff5ee9d7d4e2b59219fa25486de98713bd7 GIT binary patch literal 1496 zcmcJOOGwmF6vodzNEsCgDOr;+L=y&Ce;suOM#;yhV?OeoI%b+P>gYI*I_hX)&?2Hm zM2i+hK`mOeh+ed4(Ze2#77-Cq7SST8MGJc@6oUHBopH1f(nS}3_k8Ev^SE0LXE(x7#e-gNL9Np)2mOApIW^lz^ZNo`bADxQskyJ;Mr|Zt_G5Gcv6IpGDcIAooHKNmF3=^qOjqbC-JsiahwjoO&Yys% z^o(9ab6>@3<~uJ`Q#gN5pJt&cby_=JxGeRkgi(D2rXo; z7SdD;>86FW)I$1cAw#v04;#kCO&w&iOEB_S9x~bB&E3zi?3V11Bg0{{IK;8SiONjK ztVlEqQl2Q{Wy6E)qg7~CL}|%8HyUr-;@You&UAh4zV1uvdDDB(Kh<|X@Oa=+=;83K zkq4ub;hSUM$G=U?qNEuVgMC0=xCuzC9UKI>vKtq5dqF4Y0^Ps|dO$Dm1Nl}0pdSRm r02l;AAOwcN2p9!nFb2kfyr>(rfc>Bq902l5Is_!ws$WqiWJc9*#!}+3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansi80x60-mono b/usr/share/terminfo/a/ansi80x60-mono new file mode 100644 index 0000000000000000000000000000000000000000..3f2f4c5d24e9b13351710bb9405564520ae519eb GIT binary patch literal 1252 zcmb7?OGuPa6vxlGh+0rdVWmSc2w(I-8OPC)Cd>ER$wyi`WtubU=sbKoni#YQdQi}! zMT-_KTC|8>v}j>v<-&yv7eWRt3R*-28AY{l`k(8}gi=Hoe)s&(^WM4hrE&r7pd?zR zR@D&<4CYwU{S)nhL2s@lBsv%fPLvLKJcSL#X2}PA9`kM_eBOY^ELn4bv!MdY?b$=j zL?q}H6FSDVlt>3C{FjxCmN<&n`9#`8TWA|}8fB3k)&cUU2zwb-Q5`ix$!d<+6)zla zr4H&QKcXX%%s5T1sX0sM5V;VEUV^?ylny}aSEsLK3-iF4%>7jkMp^Tom|gN+CRUl?qbZl0yP!$ z*3Me-r~i@vbJzbzXLy$9c%Bz{k>BuJe$OBH6EE>M{>jU%RJ>ZRHmc2Pt4dWnRhrtR z_NokJRXJ+EI;aX&sj5^?Rj-;^%QW0=zoowP?{IdeNdq4|^isQaRO71C*?0 zYSXGS9`{igY6y(SGe_e-RxkD#oj~qnJbw!QbfV@AouvzOi7wL>x=J_bHr=7SG=cpm z;3++$7xCIxi8FJZ=c`HVzo$<$MKi=|rAk#9YKz*T=GTa}>r8=is=caKHL4aJpZlZk zd?LCC^*j;%-76Nq{Kx*nrZAIszNjhnLrtrnia3drc@?K{DyQ>CHu7f9 zo}0Lp+u6fC?B}IVU(AW{f9kuK*%2ORgS&;6(`qufT?Y3a zxN;!gb6lRz8Y zy9tqGgnUqemPg>FeI;lFRbVfWrZu1z)PZ`?0OUFqzzIr08JN9JF|-~ehqaKdTF3}3 zWUdy{R14{*g|yT{`e`9UwU7@R#l;PsWUxyz_E;V=*bvR$&urQ))e%RI!)9_wU_lU< zxscXa)(R<46pMBuf(+0Kv?`{o^zG}-Z`+ePu60d!f9<*MOY42pch5f=xF3An|0wcs z=+^Lqk%{Qd(eGp5#%FM(1(bk&Kwh{RNUj4M1h}#r7j=6<7w85(zz2FkAMgYDR)Qb| t!k`}vfI$!eLtq$;fG8LRV?bWi4O+o|&;||w`6V3!Qftw#C=+ty>NlO43{A#LMfsPzkB}YdGFl$(z%9qPztS3 zo9YY(hH@>L{xcncA+Imf9}EPw%(H|fENL{746#mOfMNa}H>U=V7qAj!yI)ie^4(kBByXzfD0CwBH~yNLV}y`zux74MwHDV)X`ypLB`g~K)-$>##DW+yjrv-U5ns=E~T zu0l=6y|uF<{>(q}fA0GK=q%6iJTLGfFYz0G%kTLEf8u5S#y@$5l}c3W)kd{hZB^-N zr^-;f)LxaPtZKhHpbn}cRi>(xQ#Gh&)v8RcR!X7`WO7xQTvagDK&;_4`m+sp`)}zm z`mKh$0)Zk>fse}M%C{6_7YfD87F7poL9QR0J-*pQ>6ynM#EDS=U4wCFVP$kJXa-Jj z7|6hS&;T025zqwWDm9=4l!HnTyGkjvK1`amkf~b85n9N(TF6i>WSSN-QVW@KOcEG`fO|_^kDqU#PZ}1w6uaUa1_Y9 zwg8EBfKvdMbm3|)59k8jpa*zCFX#h4Apb=G1VKL-0E1u%41*Cc3dTSPjDravZ|DNY O!3od?P6GLEPSY>C9T%ej literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansis b/usr/share/terminfo/a/ansis new file mode 100644 index 0000000000000000000000000000000000000000..4043099f37cef6decd107ceae59ad5c134b69d18 GIT binary patch literal 1502 zcmcJONoW&L5QgUsMI$N}Y_T;Kf*7e_HCT+m7(0^Xiv`WGD;Dc}GpLz3UUS5)o%0X$A zNM3cEyMlpmmi2IFAnXlmYqyLdE*bQA3hIkYvK{n!OzBzH44*gPG38g)mzn%Qw`UtE zMMQ#LaiMdnh76QSzZO{r%A;f)NuU*a-$3hVJ#B#AOxa|EcYs_fge|3Vs-;FKSuNDA zRaY$Trx4T-n22SL#(cD1>@hll+{sw}6#VIU%^5mN7w8gQrYm%nZqRMILw9Ks`%l1A zdPXl|wXfo5<~uJ`Q`mn`pJ5tvWvUN8R~& zbP?)#Jo>v=G=BMy{l!l$Kl@s}QyE7wv8E96U*DXIok0;?Y;Q%ttSp}kE4ZFKKu zM3NEmKm}SJftU7`pb1ogY9LK(K^>?E4WJRobt*s+C=IIzA69xz~g~Ok%vRK zh98Vfj@}&mKK^ZD7Drk^3D^hZgAAJE4y$}mj`r%9?%QCpbzu|ACPY)0D>R{ s2EZT)g9sP`!(arAf-x`-b_LQYKm24CUjF#rGn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansis-mono b/usr/share/terminfo/a/ansis-mono new file mode 100644 index 0000000000000000000000000000000000000000..4baf2844bbcc390b10590d0a73c56eff73ea8271 GIT binary patch literal 1478 zcmb`GOGuPa6vxlGh+0rdVWmSc2opU}#&K+pa%sl zTC`}@HI*2p)bDW_cO&6(`&>rJ8Vl>1 zDxsXNJ;Y2zf_~yc$C&CVnbIh{!V?OI!l~#1BE6?i^o>H4#3`J{8N82|SB1k?9m(ecuI4&! z&>KD z3z@2gY@vnhtAz~JLZ)dUBejruTF9na$PW$T@P;ljGY&s;>!*+|^ zX0nT8fn$xx9LQ+Y3YlxNdubh-ODS`ER+{-uM?&Yl?jJp0dhfea`(F1y^(=ay`Cbja z9DXtKX!QBmbnxN$*NLUcpJ-_VW#A}~_u2|1)(K7l9MXZKIb5I{^nhOA27RC(cz}Eh nAMk?#FbIY~01Sf>Fbc*%5R8KfAn(utj)N1R9h?MmZ%)&1r5@}i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansisysk b/usr/share/terminfo/a/ansisysk new file mode 100644 index 0000000000000000000000000000000000000000..55c1aa7b9d3e1f65c644bbaf4a99f765fc991456 GIT binary patch literal 1831 zcmb`G|7#p&5XPU|saOkQM3ANtJ)&z0Y0lf-yX>Z$nxq%o#?&U}n%a7rHudhBYnsb8 zcWq45l<^0@wjdUYg8m0ms8j@@P;FBX1VIqgNI?h)f*@9eg3xo`clWNvDq6_F%=>wt zcV>3>-ko)^emssQEX3ZW@p7eO_39 zFc*yH<1>YPp;#&x^6}#IO#EmGh~efh7H)2p^kHlmwOX^-?Z4IN1>JH2+!gKa!8$xF z+^YAFiC-U`s45#^!)@%lh5E1sgR%}|SEP?&ea1obq z1z+Gxe1)&^jhufgwuGzrF^XNrPw0u={x1KeocYI`gi)*6VzpYQ_BX4XGTt^$8)uC7 zwEn*MB~4e2<-bMNbAJ98y?(w@>o3Ny#x>&))5>Y`6uAwT(g#W9lfI=_ z#Zwry<99mQ@vaWLtHbMD(~|SuwC@Gd2xq~=U?1EM?gnoHKMC#u_k#Pto530IR`3XT z5d1870Q?MCy^HT!eo|bZ&{k+`bQC%oU4^bfFDd9HHL5gEr+F&P(`lYc^PC_m?C4M_ zYlZb4-*$aFWY@RC6!nip73DOg(bjgWpeHJhU|RS^3KJiD2>Y;>==YZ}sw#kB@#nd+Fu#bH5+E zHotuQyM+%<+yLJvZT7em+8@$2Uj@Gg-U%KB?*cyu-VNRZejc0yzW{y_{5tpz@ECY6 zcprEiydV4$I1es>i{Jy`H^Fa#C%`4}LGUD4>P!D+@H9989|oTUpOQz*P{~B)M+7^| W;vBhpJs6H2HZ>lp28H9L2IntHgMNqr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansiterm b/usr/share/terminfo/a/ansiterm new file mode 100644 index 0000000000000000000000000000000000000000..1b72658c62e9f6fcfd200c26d6f57e65ed5716b0 GIT binary patch literal 756 zcmaJ;J4gdT5PhrS4{Sv}kTfew2$-JU)I`P{?R>SEYjWb` ztL3IPJn_xUny2PuZ7W-~JX|W;*%Bbob-FBpG+cL#8vD?XL5yP(5;O3TJC78$C}s$* zyG?8oc9B!L>lRSb>Hu|84IJY{IcJK`ae+(S!8h=^!ZkTJ9qw(1ZuNBXovPmJo(CNt z|D9>gKj9fKc%{xayyJu7=dYgMHTq69vTD_O=S0dFG+^QU&RwCIJ{4nM4>y(ItLyoh6+RP`dJs444 s*SlIUB5FIi!0k>XCSxoE(g|r9{Bc9l32S#wI({u9(utC!wGtS@7nh4A0{{R3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ansiw b/usr/share/terminfo/a/ansiw new file mode 100644 index 0000000000000000000000000000000000000000..e3621f7c22fb8c7e28d708217db550269bb9d068 GIT binary patch literal 1459 zcmcJOOK4M35Qb+CK3b%xXpwpeMB$2E6!U0IC6qROYg_xW)%0q$Hc?}nhe>Oz76lhB zT!^@Ep(rRQC@3f>C@3f>C@3f>C@8oPaUtl!MHdqPIk`<66#@khd^7*dnKN_lAz8^a z@Mm&0XXzYWq|0=buG3ArO?T-&J*3Cj ze+r({OL}eBzRjJP={#G#$Noq9Lf>hM6fffC?BF%Lj%U}1uF{zxH*g1cb07EX__xJ%n;wSu!U+^n_!|(V5f8x*lmA~;1{>fAP zi&@QA#i~RtRi&y-In*j;s&ZAK+{&jmsA@I08x%Sf{7-!g&6WK|)u9ZlpB7RH8CHv7 zZGvkB;?1a;berK_GcsT%J!ZHCi8|1Nzlvd1yXs+uphRv_ouD1~VlZwoUROYSzXaOo z-rEpKMyLgCXn71?+P8x~uo-j!Y1#$4K@ZphdVyT04K#peun|mOrx98YlEYd^S1n|O z7BW{0X{v>E(?VKmA^o(Fp<2ktPT=Ck5E)gH%sy6_3_qgj`?<^-sU8h@0)8_fffs=- zDyOu1R0}Zw31Kg2TforkS7ZP$qjvA`>cY^&4kU)0Y4M literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/ap-vm80 b/usr/share/terminfo/a/ap-vm80 new file mode 100644 index 0000000000000000000000000000000000000000..b06370a5289c95d5b2bc65c5a8095b19e37480a0 GIT binary patch literal 203 zcmb1Q)MQX&U}g|uaAZgh4Rdj4281H)biZK3SA2W2BH8X zLjc47{}Mn90}KqD4BTM82#_>}%h&)}_6$5KHpT`9`gRPm4BRlLoN9rgs=9)@sm0061zHuV4i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apl b/usr/share/terminfo/a/apl new file mode 100644 index 0000000000000000000000000000000000000000..679a5744156214ad39b0705bd622bc2f998884cd GIT binary patch literal 424 zcmb1QRA*3QU}k7%uwuwe%GFIQ$f*HgPbXgmAgxf6T9liamzbkaoS9pilUR~p#K6D^ zMhtiXBSQcK2ZJQT|NjgOOhEGge-;Kdpa_V?#h}EX0%WOyc^W`c3(Nw^Q4i?gHB%2P zYXDVa1f@;z>LJfm1^5A>P!EGoN#DX9QLi$0m-&LytPm*{GZlKrR{NZ)oBsAa; z=)lZ7`|u7k>}BJEHcfu`;4`;bW_OX7AhF+Dn|(opL)7~Nb)K00{?26;aKb5Pjb1)odj4Jbi^=6!5XrDqbq}RLSXs)yYj3G(|D>2ckp`oP(uI)juErmi% zoOE<`HLi}1t}e#GL}M5j7#J8B92`uj-+Oljj4qD8-1ool|Nj5||Ghu2mtCi;)JX%Z zpk&;#*(km#h>5bG6TW{%I zkm2_c_C0-|k0;bm0sl;2X`6Ovm-c9%4(L1mpr7r$VDDglolbU^od;KeOY91}7U;)a zd^Q;91{(#t8F;?M*{!OZ)!ZzDsyKIl`OXc85zpV5tB0eOo zV8_e+i*_9S|5)@N?=!9>m6VcGI_Vs#X}-u^jc0A{MtF7=f}V$&RMWRYF*6(oza5I{ zVm}goJ2Hv1ICY6Lc&}=DA{2{=?6F{<3B@eoCquDlG)~>1W-*9qZDRdF3}5L%da)-+ zZzr|)DZiv_fY#IFKm(Wo)_}V}3b+S&KozI~4p0Yf029C%nj|zw6~CF#3hF4i3mOms zbijZvhlB<`!AYOsxKBil@FI*Mj0qD{<0z-whHW|^mOWBX(-`mwsTOr%ree5BIXxWZ z3DLnF=1uO|8n=ZX0X2MzkS;@(?;8l2+%Af=DEGQ~u7}(Hm?r5A?z93_05qI-ffCKl zWiks3`TWw-^0MO;i=|Sz?7Ax}tE-iY=T)nuolq`bJ!Y*KAtD_A^igM(RynD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apollo_15P b/usr/share/terminfo/a/apollo_15P new file mode 100644 index 0000000000000000000000000000000000000000..3acdf2131cd669c2ced29fa4ba0809a8301ae623 GIT binary patch literal 1308 zcmdT?Jxo(k6h8N1QpE^^F)_Ts2747^Li*bGcx_&3LoudNDiv9@{?JgMh1d2$|0on< z;-sUit8sO7bagQfCK|)Qz`(%3;NakZ-@WfWexi$`H}5;=JKs6?o_9~~02`!h6rf>N zQVLGZwrfu{Bi9|5G^iQDa&@j0ESBqzUFZ-o`H{O2U@;+{Tr5Xt=`tP4)dNqY&>6Z! z1L!m&b(1FPF4(k;W?&xyMY3hwq&7X1%su1q@CCi1*HGTjTTg#S?@v{T$`ACBKAliM zd;AN1qix!uUD~64I-no)lYaSip6_99uK+vGE`qDT6?Tl7wtIv|FQT# z-Y2bOm1$*O3D5;n^SsO*jTbHMM0jx(LUa)(qvmgi5=J-)ekYWO3V$S=+LA$8l6u7+ zyjL|p5lTcv^|oY$y?rC#etAsCYTeC*~hSca?sWSNgqjzsUEK?vb(qT2G~c z4v+)ZfP26+a35#@O`rwXKpVITOaS9(lG1Ed{ANlksbl0UXg~yr0y=a#Bs6ddcDe-H zT_Vm1mtk~a448zP#Botew+tJ^v|=SSj{(O>HK`Xf6~oQS>0v8Ri4M*v@A8JFaZAJz zP~D|SMP~Oc^?dJFNh901c-cph~l|g~GzZ;^NZM^0IAL zD%EPO<~S=WtE=^TqtR@(TJ84QTBozVzOm8mZf_L(L;4Mo40h50 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apollo_19L b/usr/share/terminfo/a/apollo_19L new file mode 100644 index 0000000000000000000000000000000000000000..76d387e19764afea048f7f69936019e3ce60cfd1 GIT binary patch literal 1308 zcmdT?Jxmlq6n?XqpcuKrm>9N@;Eh5|$nD)O%Vv+e0LBo#lM`w5{Ncg@cd&Q2aQ|=+ z6DuukZH=v^rLB#zFwqza3JMAe3JVJh{APBSpJ-$0WWV>m_q{jsc3!5B4bU~}rXf~P za&Eo0OuvU^6nBg?$9%$&qoLn)FOE?~KF47xao=LwQ4Qef=H1KUE^X1InNx^25>!cD#(gXvf+Ak6HhC zp9v+c%qR;=H(ek#%ZuFAc;4o2l;_tV#Fk*D)a>nW+=wK=?}Xzq;g5tK;WZCR3&t>qr^gE{QUW*LwLvh}+(nrsy2*v#nY@tyQbFTD{(AG@GqfyS=`?vC-*lZfrHX)&fzDu^sve`qLB;I)1Ir%;HA zla8*g#?{f$)x|iNXbb}b0|NttgM$Np_rCY|i7t-byziXveCOPI-aWbfY>=)|fQDI7 z$vYL>t~{Nu*p*s0C4&JO3>22@j-BriG5L|Z5MVJOo?L92&eCN%l&c4xNTD-yiTcrL zMCv9@(p|6_8O_2z0t#fyxJhk#CYgK2;o%Epb7X++G28o?Qf2fh+7PyYA`!pZNZUr|WDS?3Nczv03&& z@+Z=^U^}eKp0k(iEBJS*iZiy^4%=mWY+ot|NBW>Lq=@{8w1OQk<1gBA_WxtCf4omx z$tp9-f)bz$q~`cCcQjtGxD(-p8ieQ)Oh(P!4#kad0{l)W9u@vbIJG5%vIO;tJ$SEb zZXy(qi0YK*r$cd5#Mw|h7E4ecs8RBAnorC>i0&#ul$U~DxnJb_N%u(E0IjFeKnIux z)_{A!3~(Q408O9;*gzY&2}}SfG)Zc(~Whc3~rS~S&TRO_(G6d?wB%k4tJ^obpQ>g9H2~dbNT$@;?mN}%Id0ZmrCVw zrQ$f%YOPkUHyX`mtJQ9=t#vx<>l+*0?&jv!7A}%Bi_&6bLuqw5jFYkuH2+QDDd6c8 bFy-86Syb|z71knA-552;VvpxZeMr9nbJ%z? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apple-80 b/usr/share/terminfo/a/apple-80 new file mode 100644 index 0000000000000000000000000000000000000000..2d118a729f83d56709962c1339e22a337417aff0 GIT binary patch literal 207 zcmb1QRA*3QU}g|uaA!y?D9B0GwJ@l01ThpmJr&9`OEMISa}$e7Qj2mGEDRKq^K%#& z85sxzMuq@}|NkX`3jhCS0^xwhZ<_mLr(w3?y9{gcx{LYzz&w^z9gU pU<_Fh11P`^6OdCaFj7@lP*>GfO;#;1gfSVo7$g}ufQHL6001(iE=d3Y literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apple-ae b/usr/share/terminfo/a/apple-ae new file mode 100644 index 0000000000000000000000000000000000000000..a5a2335317a995c4b4f676116f25c0c7cf2486e8 GIT binary patch literal 421 zcmb1Q6lYLlU}k7$@MlOYD9B0GO-!wE40iVPRB){*C`v6ZW?*DwKmrgBsu)n3ks*MA zgF%Af|9=JsP9XXJKQ{v}13#E0$e_uf4P@zpdHO)o5X=Ip!Ul{POri4TP}&kny)_aW zq}vY4cR&-zX0j7hjSG}^BSH^0b5O-RP)zY=@MU0Eu`x9;(6<8y0S|*L12==5YJrie ux`Mi@wra9!fgy~^z{Ma53^q{)d0Pp)wUu@zEtOLG!SGV{_EfF#}NNe;{CC;AId1vxFIR81#TF12E4BNSc6IAXU@@W<;220aarKrEQ4NL#hky z7}$Y6m)26TF*Y!;V~`GEkd9=KwpA@KR8?0{SJhTcRxL1sF&VfR_?VTUwG@lv@*;Q&N-&VkxBM7b!S`WE65UlZ*0;85kHD zAQ(u20f>(d7#RW>{{NQ%Vi;gxU}9ha^Vxu;99%{L$WnsyV5(7R6*PG@B)$d`8&%g( x;psE*Fvv1+GsvkH7^$i&sHskzu`&-9orS%ng|Ng@c_S_* zpy5?&Jms)g+64D|N|h_XhrpAAs^>omsjc`S_xg91Jb77h_3br1+3(ALpeZ8AA&fjT uI;=t!R%0t>wA~eHWKlpIF(kYFWNUy#PxW~8`%`GVw`^TXzHY>#A>aYJQ92d? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apple-videx b/usr/share/terminfo/a/apple-videx new file mode 100644 index 0000000000000000000000000000000000000000..9ab2869da1de5b91f62827534e2fffbebf116f35 GIT binary patch literal 466 zcmb1Q^kPtBU}k7%aAHU-D9B0GEz3+vt*CJXu@%ZQOEMI|0$?(~B(*44!NNcxIX|Z~ zH%}ocKd~qUq9`-3EVZaO6{3uRff0-t@B+pF1`Y-ZhW~KDz`)7C4d(MQs4}PnS(;#; zHjvZ>v*1cG82V6oBPeZ3Kt0F+3%qKqz_K<_HFkK_VmOCP0S5*i6&qs%1ARLNSzu7e qsTLTisw=3gYO5xz78t^q3|tJ7z@U?1kY|uGW{@%hA&8JDFa!bWni8x4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apple-videx2 b/usr/share/terminfo/a/apple-videx2 new file mode 100644 index 0000000000000000000000000000000000000000..62d35b26f3d1226de0a8f78eb6eb695fdfb3eb94 GIT binary patch literal 452 zcmb1QbYfs-U}k7%h+#-9D9B0GEz3+vtuU%_1aTBRJ+&3e^%cTEVhYKLMJWmz#hJO8 zIf+FICHV?2i6x1-sVSL>3K@o`Mh2P;42&QYz`(&E!SMe-0|O_J{QsYuL4-jJ%#vp? zXRrjatie26AZZU~fmC4!j%e~OXndG1cO-F7BsNSQL3@K`eW7anp>!Z#JqX>Tu!7-c zhBC0L*cciZ=-V;yGVlPIW?Dd|ECV-;DW_Usq^ho>hC!Y| V%9ugQ2*^f=a4~SI*jNC~0RSW~3X%W- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apple-videx3 b/usr/share/terminfo/a/apple-videx3 new file mode 100644 index 0000000000000000000000000000000000000000..4d99501c6f79046c696936f43821c4d442096882 GIT binary patch literal 370 zcmb`BOKZYV5QV=W^f!oS(d*-CK@=Yar6ANQVitmJK@{9b6e8AHK~$g$(l_V9(Ijrzuld>=O|I<;k9Rc-~8@>zD&Pmg5$vio9``n{2$(& zIL^Dw0(a|=Kk!J&ahvETSL^8{^WFoS>CQIKj`et9z$+sr_{_L|7ssEeXOZFxMd*Z9 qHf-CPsoA;>Y}m;tdP7q*Mk6##h4Rdj4281H)biZK3SA2W2BH8X zLjc47{}Mn90}KqD4BTM82#_>}%h&)}_6$5KHpT`9`gRPm4BRlLoN9rgs=9)@sm0061zHuV4i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apple2e b/usr/share/terminfo/a/apple2e new file mode 100644 index 0000000000000000000000000000000000000000..34cca2bacdf661f07d24aed5ad70a1fea7842fd4 GIT binary patch literal 395 zcmb1Q6k_0KU}k7%@MK6VD9A}QO097O(F*$dsSJz^$bgX{fZ_jt2_R+wVh~_r;ARkl zvZWYgfGjyE@Be=VI18c{l~iI-fy%2vX$>UxT1aeNB(^>h8`V4n&k(A{7)qNG&|^+O z9%8ZsiYjLYS18||ft`Uz#m3OUK;Mo*R>j5yNO1!xEg;RsAj!bNAP)>*eg-}u6ygJN Vxqw&{7;L;SO+Zm`1~CRs1^~hH@`3;W literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/apple2e-p b/usr/share/terminfo/a/apple2e-p new file mode 100644 index 0000000000000000000000000000000000000000..d9682667fc234569b2939a9f3ef2e1b4d31404c7 GIT binary patch literal 431 zcmb1QlxN^)U}k7%NMuMXD9A}QO4Ti>aRjjx^z~B}$}$rb0uqap6LT0C8IS>E0K@

A^`|1IDwh+0(AiopgdZwI9vkkmUNv0aha?nrD@ z^AJ2ws2Xo5?Mpz9KLL4&$q^{3q8VbL{CEa-1|Ag~LjwbSI|f-58xtVK4WzVyw47>z zk*d0ax~jHnvTA`LjLE>oAj!bN0Ez>C20kDZ;sbKIfLIh5oV+l@fTH3IVho%N0MfVn AeEl7~~iffGlMoR%OrxlG+TqU>Ue#G=?Em))-2g0%>z7+Z9TqY5DJkLmXWli0?y! zT5S4>6Z2!>VUT6uW{^`YFj7@lP*>GfO;#;1gfSVo7^EeEfhOW?#2~{U52Vc)_!;ZorQ>s$sm^{DElmMOp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/appleIIe b/usr/share/terminfo/a/appleIIe new file mode 100644 index 0000000000000000000000000000000000000000..1311b90c397a4ccf9d4c22a318cb6fa8b45c16c9 GIT binary patch literal 461 zcmaiwT}uK{5Qd*EF+WnT%8IOmcr+?RB|;(!kqGbl3(Im8L2cQRZiFuT+1s3DPlzNA z%*-?IJ9941nfFYSeSUbw55t)mjV2$fl#GL5HL#xQcU15`Th141JdNgGeq_{i@oA#5 z9~e9ju$jakIKjzpZorQ>s$sm^{DElmMOp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/appleIIgs b/usr/share/terminfo/a/appleIIgs new file mode 100644 index 0000000000000000000000000000000000000000..1311b90c397a4ccf9d4c22a318cb6fa8b45c16c9 GIT binary patch literal 461 zcmaiwT}uK{5Qd*EF+WnT%8IOmcr+?RB|;(!kqGbl3(Im8L2cQRZiFuT+1s3DPlzNA z%*-?IJ9941nfFYSeSUbw55t)mjV2$fl#GL5HL#xQcU15`Th141JdNgGeq_{i@oA#5 z9~e9ju$jakIKjzpZorQ>s$sm^{DElmMOp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/arm100 b/usr/share/terminfo/a/arm100 new file mode 100644 index 0000000000000000000000000000000000000000..2729a3db57f9b4dbc71e18331c5af2275b02f846 GIT binary patch literal 1474 zcmdUuKWGzC9LIkzRjdV57b)~mGUQ1jD0j)F7fnr?Mj==$HFk?bW7{-obIJAczfB6R zuCC(hAgF_&f`Wn$4h{|u4h{|u4h|0DRP_7aUDBu>q_}wG`}=)<|K7d#j*PQ79i_w6 zWmBGV8?|Z-=vd8QxdoD9C`}yx|Tk?=+ zXRRKM?2_x%{zvcK<9WvRIQK8^$mconS8vxnXFLb!5Gh$+Aj$c>87+EM0;TT0lJeJ#hf|n z&h?rcFJ3YYwV^qv1zmye)LR#-bhmDx7n#hFZ1qjmn Kq-i47Q2z-G2Rvo~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/arm100-am b/usr/share/terminfo/a/arm100-am new file mode 100644 index 0000000000000000000000000000000000000000..2729a3db57f9b4dbc71e18331c5af2275b02f846 GIT binary patch literal 1474 zcmdUuKWGzC9LIkzRjdV57b)~mGUQ1jD0j)F7fnr?Mj==$HFk?bW7{-obIJAczfB6R zuCC(hAgF_&f`Wn$4h{|u4h{|u4h|0DRP_7aUDBu>q_}wG`}=)<|K7d#j*PQ79i_w6 zWmBGV8?|Z-=vd8QxdoD9C`}yx|Tk?=+ zXRRKM?2_x%{zvcK<9WvRIQK8^$mconS8vxnXFLb!5Gh$+Aj$c>87+EM0;TT0lJeJ#hf|n z&h?rcFJ3YYwV^qv1zmye)LR#-bhmDx7n#hFZ1qjmn Kq-i47Q2z-G2Rvo~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/arm100-w b/usr/share/terminfo/a/arm100-w new file mode 100644 index 0000000000000000000000000000000000000000..c19035a96991238587eff331e87361f759f17447 GIT binary patch literal 1478 zcmdUuKWGzC9LIkzRjdUQ7b)}*GW1CzD0jI_FPhrF3c(twwObq-)29FKlFKD&(l#v! zPOh%v>L93tpn`&e4h{|u4h{|u4h{|u;#Bne-u-FS4pLk^^8Nijzkl!Edq?`%7#*d< zw82IqMc39;^+c-^K+*1ux^`k}v0j=SPsS^yrdyw@$4gb)DK-|bT66J4x$4F>HD$ET zflQK!$sc(S0z94-{yKG2ihk_!bkhiRp+Xd)eRPES=op=pohDtNi=ZhPO~YQ1Xz%9cWSKUq*6h8=@XDgMXS*81ElUiSAM9qoB0yr?dbv0hoV);bmf& zvt#~T(BygXk}+r%nuOZWC1?t|3^kx8v;tXB3pxvpL!;2JW+`HW!`gy!23{UtEGR*A zN)YW5Ff)X1-GVWMNeg2xz+@Ik$&g}-z&TV#^xr*uz6{5JBcwRsUpZjTJWKDGi#_eGP=9~ MK}JZLCSncspEdD50{{R3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/arm100-wam b/usr/share/terminfo/a/arm100-wam new file mode 100644 index 0000000000000000000000000000000000000000..c19035a96991238587eff331e87361f759f17447 GIT binary patch literal 1478 zcmdUuKWGzC9LIkzRjdUQ7b)}*GW1CzD0jI_FPhrF3c(twwObq-)29FKlFKD&(l#v! zPOh%v>L93tpn`&e4h{|u4h{|u4h{|u;#Bne-u-FS4pLk^^8Nijzkl!Edq?`%7#*d< zw82IqMc39;^+c-^K+*1ux^`k}v0j=SPsS^yrdyw@$4gb)DK-|bT66J4x$4F>HD$ET zflQK!$sc(S0z94-{yKG2ihk_!bkhiRp+Xd)eRPES=op=pohDtNi=ZhPO~YQ1Xz%9cWSKUq*6h8=@XDgMXS*81ElUiSAM9qoB0yr?dbv0hoV);bmf& zvt#~T(BygXk}+r%nuOZWC1?t|3^kx8v;tXB3pxvpL!;2JW+`HW!`gy!23{UtEGR*A zN)YW5Ff)X1-GVWMNeg2xz+@Ik$&g}-z&TV#^xr*uz6{5JBcwRsUpZjTJWKDGi#_eGP=9~ MK}JZLCSncspEdD50{{R3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/at b/usr/share/terminfo/a/at new file mode 100644 index 0000000000000000000000000000000000000000..b48ef93d33406f0934cecb007347e51cb49172bc GIT binary patch literal 856 zcmbV~??;_s7{@=SqB@*j=X~Gv=2@~$Iz)^(t!$kdr#fq8Y|i>IYtpIb)E0-sh=|y` z5g8d{M2v_S5fQO}=-Kt$d!FN@IO%rX*Y|s0-|uzZ_lrB77$i+I9f`mA<^D`1Opli< z#j=IN;@StJmgCb~Kh&(?hlXs(x~2+{;QuyoJj8G%^0d)O5I~dVAZVeLq+=-_(8D8o z?UbS4@_?&9aXIu}UxQ>LWjMlTb8Y?KaS3-&g1RW_gc&zDHdLckGU*+=f3I&iL8D@#}_uSXVjXH^-cC z${)@+=Yq>R^|lw?w{~U!A%#ZJ7|Nkpuhi#tcXfLYy*aOxi76UF&(R_pMhoaE%Ayyj zI?yNd8Ev8!{sC&$^SuB7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/at-color b/usr/share/terminfo/a/at-color new file mode 100644 index 0000000000000000000000000000000000000000..608e45420287020211bd17a09032e575a6eef743 GIT binary patch literal 1966 zcmeH`VQUjX5Qd-BLbVX|qc{lpau!iBcWv6#+LqXgwkp)NS}md^Y1C9DX>x5XRtkb3 z2!bH!4-fjjHdWi{pi{j#JJ`u?_8Rg?nKiBP0bLsl4Uw_RsI`acc8*(r#@JcwpE35V^@AYG z92c193T3J+vBD~A+%Wo0bKT-LckJG~>p6{G)FSs<=uy^v-S^O}k9f=zoAvZ3v!g1_ z?6a0Np10WXqCtOI7kSMa-tvz3eBdLW_{^6&wOL2M8vFX&b-(e-oUcDQ9<(iP=pc?9 zM2;Zi$Z4nSI$en_XP1+A%3kCm2avIYtpIb)E0-sh=|y` z5g8d{M2v_S5fQO}=-Kt$d!FN@IO%rX*Y|s0-|uzZ_lrB77$i+I9f`mA<^D`1Opli< z#j=IN;@StJmgCb~Kh&(?hlXs(x~2+{;QuyoJj8G%^0d)O5I~dVAZVeLq+=-_(8D8o z?UbS4@_?&9aXIu}UxQ>LWjMlTb8Y?KaS3-&g1RW_gc&zDHdLckGU*+=f3I&iL8D@#}_uSXVjXH^-cC z${)@+=Yq>R^|lw?w{~U!A%#ZJ7|Nkpuhi#tcXfLYy*aOxi76UF&(R_pMhoaE%Ayyj zI?yNd8Ev8!{sC&$^SuB7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/at386 b/usr/share/terminfo/a/at386 new file mode 100644 index 0000000000000000000000000000000000000000..3da9542721b9b610a74e7fe73a11d6b912ed5056 GIT binary patch literal 1420 zcmc(fJ!n%=6vxj^#YUv)phJBW0`iIqV%|r-e3T|_v?aE-+GyLPLxYL2n&zW<*0y=A zf{5Vip|v=jLt^H{C51PxG%PJ%O7!F99H49&s1Zh^{Fk<@@)hFWxkZqXgOOZQ~l zb??&ypIrB$q(}4^;}bvn6yq~`?t3rjCB358^oHKjJ9!-1p!Xs18zQu~kn9S@`fN`rb2d#ujnZTA4v(OpnEHnjWp>xoAXd2@6xocj5n?^2=oZohjlE);k6Fz`!X}k@5 zVj1Dd5;lv++7Vt;ruZHtpaTzZD{*G;PK%_(;PDDvfwSVs>L5?48>*w)R!p_n*MX*o zCNSb*1gLu$1!^897IYtpIb)E0-sh=|y` z5g8d{M2v_S5fQO}=-Kt$d!FN@IO%rX*Y|s0-|uzZ_lrB77$i+I9f`mA<^D`1Opli< z#j=IN;@StJmgCb~Kh&(?hlXs(x~2+{;QuyoJj8G%^0d)O5I~dVAZVeLq+=-_(8D8o z?UbS4@_?&9aXIu}UxQ>LWjMlTb8Y?KaS3-&g1RW_gc&zDHdLckGU*+=f3I&iL8D@#}_uSXVjXH^-cC z${)@+=Yq>R^|lw?w{~U!A%#ZJ7|Nkpuhi#tcXfLYy*aOxi76UF&(R_pMhoaE%Ayyj zI?yNd8Ev8!{sC&$^SuB7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/atari-color b/usr/share/terminfo/a/atari-color new file mode 100644 index 0000000000000000000000000000000000000000..608e45420287020211bd17a09032e575a6eef743 GIT binary patch literal 1966 zcmeH`VQUjX5Qd-BLbVX|qc{lpau!iBcWv6#+LqXgwkp)NS}md^Y1C9DX>x5XRtkb3 z2!bH!4-fjjHdWi{pi{j#JJ`u?_8Rg?nKiBP0bLsl4Uw_RsI`acc8*(r#@JcwpE35V^@AYG z92c193T3J+vBD~A+%Wo0bKT-LckJG~>p6{G)FSs<=uy^v-S^O}k9f=zoAvZ3v!g1_ z?6a0Np10WXqCtOI7kSMa-tvz3eBdLW_{^6&wOL2M8vFX&b-(e-oUcDQ9<(iP=pc?9 zM2;Zi$Z4nSI$en_XP1+A%3kCm2avIYtpIb)E0-sh=|y` z5g8d{M2v_S5fQO}=-Kt$d!FN@IO%rX*Y|s0-|uzZ_lrB77$i+I9f`mA<^D`1Opli< z#j=IN;@StJmgCb~Kh&(?hlXs(x~2+{;QuyoJj8G%^0d)O5I~dVAZVeLq+=-_(8D8o z?UbS4@_?&9aXIu}UxQ>LWjMlTb8Y?KaS3-&g1RW_gc&zDHdLckGU*+=f3I&iL8D@#}_uSXVjXH^-cC z${)@+=Yq>R^|lw?w{~U!A%#ZJ7|Nkpuhi#tcXfLYy*aOxi76UF&(R_pMhoaE%Ayyj zI?yNd8Ev8!{sC&$^SuB7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/atari-old b/usr/share/terminfo/a/atari-old new file mode 100644 index 0000000000000000000000000000000000000000..0539eb37971c5cc92ada2ca2a9a074397fe70cd4 GIT binary patch literal 426 zcmb1Q6lPFkU}k7%2w+GoNi53L&Cf}xaRjjxic1(67#RoyMxb5}21$nhaKOO83KRix zxfxWzv^tp70+PC5mI0WAYd~TcLuJgMv?UgmHfUn@XnZ8&;7li|8doUoL4+Q-W}+G1 zP*eRFq&=j)7^J-!KxCw9fuX9pg1V}IYtpIb)E0-sh=|y` z5g8d{M2v_S5fQO}=-Kt$d!FN@IO%rX*Y|s0-|uzZ_lrB77$i+I9f`mA<^D`1Opli< z#j=IN;@StJmgCb~Kh&(?hlXs(x~2+{;QuyoJj8G%^0d)O5I~dVAZVeLq+=-_(8D8o z?UbS4@_?&9aXIu}UxQ>LWjMlTb8Y?KaS3-&g1RW_gc&zDHdLckGU*+=f3I&iL8D@#}_uSXVjXH^-cC z${)@+=Yq>R^|lw?w{~U!A%#ZJ7|Nkpuhi#tcXfLYy*aOxi76UF&(R_pMhoaE%Ayyj zI?yNd8Ev8!{sC&$^SuB7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/atari_st-color b/usr/share/terminfo/a/atari_st-color new file mode 100644 index 0000000000000000000000000000000000000000..608e45420287020211bd17a09032e575a6eef743 GIT binary patch literal 1966 zcmeH`VQUjX5Qd-BLbVX|qc{lpau!iBcWv6#+LqXgwkp)NS}md^Y1C9DX>x5XRtkb3 z2!bH!4-fjjHdWi{pi{j#JJ`u?_8Rg?nKiBP0bLsl4Uw_RsI`acc8*(r#@JcwpE35V^@AYG z92c193T3J+vBD~A+%Wo0bKT-LckJG~>p6{G)FSs<=uy^v-S^O}k9f=zoAvZ3v!g1_ z?6a0Np10WXqCtOI7kSMa-tvz3eBdLW_{^6&wOL2M8vFX&b-(e-oUcDQ9<(iP=pc?9 zM2;Zi$Z4nSI$en_XP1+A%3kCm2avIYtpIb)E0-sh=|y` z5g8d{M2v_S5fQO}=-Kt$d!FN@IO%rX*Y|s0-|uzZ_lrB77$i+I9f`mA<^D`1Opli< z#j=IN;@StJmgCb~Kh&(?hlXs(x~2+{;QuyoJj8G%^0d)O5I~dVAZVeLq+=-_(8D8o z?UbS4@_?&9aXIu}UxQ>LWjMlTb8Y?KaS3-&g1RW_gc&zDHdLckGU*+=f3I&iL8D@#}_uSXVjXH^-cC z${)@+=Yq>R^|lw?w{~U!A%#ZJ7|Nkpuhi#tcXfLYy*aOxi76UF&(R_pMhoaE%Ayyj zI?yNd8Ev8!{sC&$^SuB7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/aterm b/usr/share/terminfo/a/aterm new file mode 100644 index 0000000000000000000000000000000000000000..c1fb40595ed2d946092e4c5e199e5b2d50e62bdb GIT binary patch literal 2192 zcmbtVOKe+36ut8%ZCaoyDy1cLq!yHi0+ov2y!Y%FlV1~3r%hs$4@xmgq1VUYu1q+Z63l<0oiH|w=+793H5l=p6 z&fGaOes}I0%>mU&57KVRt8I0u(sVJm(KUl+xHMfj#NE^RRF+8L2gp+uTit3Ho&@cn z`>6aE&kpKDoXDa&x|a^n1NhH}5%H;)V$@H=(4+J;cmgPw)4~~=qXjC7-V}a@o~IX~ zF3?4~g!Xm1LT}J@8GDaDm9|{|9_^1+{WDsv%H?|CF11JPQ%&lSYE~`ki1O5Gl|RgQQ+*3Y3O-=iD#L2c{9+R+||q z{er%rU)Hba*Yst5O~0jY|31GRx$!T3wK?zT5A;X+roQzb=hf!_pZ1IDe}1LEt*W22 zs;j466iC{q?Sf;cqjtgA=^_H|EGQO8n&W6s0Nhqx$9|QS2{F0@p%~C%{49==hzy!; zpbHqF2C$z4IiN5MUYHFYQ<&pIUJeI3kjycec91)L!2_t@{`7tLLe59Q< zk7C7apbf3Vy&_hrtbr^#!WoW7-KZB0Wvi?8(|P#ZbD*O@>o~|b=*AOU>Iw9QfMG-& zpRG<Kg4_Epgq;E%aY>U{X277w99i>2wc4GflfpuURSOk`6Vj`8AnVFrPo134{ zW^=iGeqo_dSX?X?mzGMU<>i%?)z!7N_4PAn&Ys=a*xWqFJNgs_T8;)D3PN%L;{1wS zv83A!@>sR93Nsm|G!SCpGfe?TDsIGVq(nxlWu&A=O6pb?m2$e`cPoDRALH>_jx)|| zgk51z*cT29%SYuzSeu}*%rfFP;y2^Uy_O)~ZbbX&2;Gv)avRFuKznFEHPQXJ z?+#OtJc>{|b<3TXpb;9woi~A5nzqxObT{p#Mmk6~ybgsZN?mk}25>u`q*F9S8Ol-t z_aR<_^OO{DBI0~1BB(+D#ifAU3vpcb%I7#|hjSHYtN~a%z5*1fYmCN5 zXuhZ0X9|G^8R$Je*i&HyWAOoKFmxYV``FswI|4a4R%JvILr)?Ch92tU_-KLwkuo$t L=>RUxPZ|0J($YX5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att2300 b/usr/share/terminfo/a/att2300 new file mode 100644 index 0000000000000000000000000000000000000000..cb9e0683df7dc3d437f1f2b23a87831b098f41ad GIT binary patch literal 1031 zcmcIiF=!J}82(G_i~f;uu&Uj^m41!4*+gkwczTK~@{Y7Qu!iYxbtkrtG+Qn4Hw5K1FNB8OJYZ z?-k)S;SGA&o_Ip+;3M|1k5BlFFZhZB9O4_k<458-O6u{XCrvP0f8rN@;}1DcaEddk zf0Hhy7S)QH?pT}btWVUmCyuZE=WNzJznzS_sdB2IELE9vqRn&8cU40zVHMeSE!%!f zrB2{#`sP5J-W_vLG`$)wvxEMAbchfEf8 zk*UOFGnJVtOjRa_={8f1aF@^^JRqbYBqPrj!Er?JTSRb=2yPU?-6D8|2>uw$C$gE! kK7H#Y5-$mQ992?kiK!*0mY`aaYQ8bLExIc28OchBe{r@z2LJ#7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att2350 b/usr/share/terminfo/a/att2350 new file mode 100644 index 0000000000000000000000000000000000000000..0bceae2ed6f8fd65564afe00ca33ee332d53e1cd GIT binary patch literal 1012 zcmcIiJ4gdT5PjQ6&CQB#0OhqL*MKcNbzT1hKKPv9YnS zv9PePu&}VTwY9aiwYBn`ndBlU2o~<~-n`kJnR~ZfpPE1qnlY$SDp#$BN28&mWG0x= zSZQlTGw*0~cEPDwxoXj|wM@QZ742L}ON6u?r*vT1n&p^zK%oW-P@HhOf_C)6b%7>g z*KI*3{Gz%sfFP+M$%ctTga{InbFH@~WG9K)`pJUCWn_L-y6!sdZ4$N!+bCeKQDb8t zhd9OwPH~2FT;LK{xW)}`>os@vc;D#p9Q=$Ac*GN)sqzJ{c%%4U@A`20`M#9$cA6W? z+xd#Eznpzl{lD@lzv@u|)vpHs+0n=!=ZDp#YC{(S*>oT~Pho+;Q7`IcLpR6ua#%Oh z=->+a_X62zLXxmTSRzDriQ<+=EFvW$7K_rsz;E)(7?rwM6;zkkiP(MidC}5}u2n7ms+ikm0N(&x1 za3IlxCLBC?@Mw$&6Muj|#b01zVoW@Y&&+m_4T+OHAMg9@On2Vx4R)Uf=_Axg$$GYv?Pr%C=W+>PdZPwb9(DRdtJqQMjbCu!vf{1pO(x zMAu35maGzh5Cpvdy+$`lSNSb+XcX?As>W!79>Y!2w5sQ5fnF%L0xkm{HK+yc(t+v= zaY#qX9n&l52~cJgCWH?(0J&N{6`}+8k{z-mcFbP0H|zxUJC(j?AC!JnEX3!Yh9{io zFaOEEp2@x|{{#G!{bIk_A5}k3EGEvMDMU5#DRGhdNGtLU?wh>ia^K>m1{yi7_yqD4 zkQ&Q#XgmaR7_(NK04!Vf#(^ndlKR1p2eRCZ5=mJ}s#IiqG=PSuNE*_zkg-%nyKTUj zu92$iy1r(DqNU}huKdlv0QId)!Gg{G(5<8a6;yt6pi6sTCn2wTkESbYC zq9hYb=5fg=$;OfeT<8JtOpVNvBgF*sm{xuom;q*i0x$>619FR;>Lb9iT~m5F>v8J4 z0{Qp7D%`M2YEr6q=6B`SY?8JTPF2pWt%jT-oG^()3_d3J_zv%KKMe|8i@UOE!P=p< zVV%&X%Mza|N+uJ)kt=8^tyS=y9>2$mM`v(W7*EWp0 Le8sy-Gu@=W+ZBO` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4410-w b/usr/share/terminfo/a/att4410-w new file mode 100644 index 0000000000000000000000000000000000000000..78d1777faa19ec7061c6003ddfc560cf29e7f831 GIT binary patch literal 1152 zcmaJYF!2ZYQ~U)cCdS0Yc;1^CWJ2Og&OPUzGw*fYonB*4XqYb3Tl$t* z_B_kfwPdFcWdjA}dVb zzoZLvmHcptE&=#HfzN@j&~;K}euFF;hq@!X98J;#s41F}{X8wwbE#HPD}X~y>VW&S zFMZ!XphKyS=oR=FsIV&YeHUl~Vs%3H{T|c{cEAqV5qr(vuw(S^Wcr?cko-|r-~SwP zaKhR8&k|?P^!-}mQ{p@gkW%6s+|_y6=B~lZO&EEl z^bqt25FE?%Fzx|)j9Dp70){EP31AwSqCr&4K{4!%BvG=W$W|89p&=NKEJBcy1?5r| z<)#Lq+ghrjs_L4K5-p`LEe;J6BeKCtVMZyXq9hedW|fi|C1xy{!+S=F6-$arDIF#0 zSTc`WL`f!=EZ~w+l8q&cxX@kTu^gEpMv4g*Fs;H2Fbm89MPMFS0K^tC)%$>9+PctU z))O>v3H0xKRk>!A<)ox{>UYK0Y>~1OOjXRSD~FsRoG^t$G@cWCT#NU)n?~_$gWJM1 zAk9FUkX9g5;^~t|Gl7{wp5?Y9wvBUdkgpDLn=X=)!HZk?OX<9)@9_~{&eO=q=x8!I zHl}GyOUuh^YwPQk%I4Fn%uySux+UcbM$x4(aK PZB1*4SG=9n(=GZ7iid`2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4410v1 b/usr/share/terminfo/a/att4410v1 new file mode 100644 index 0000000000000000000000000000000000000000..d7d7336bc66004b8cb23a52c0f0ee0922c1c0dc0 GIT binary patch literal 1129 zcmaJk+zFbXlUA|Z6=u{)1+x0 zF1qNVpbLdAT)1%QLP78!_*47^f*^w9xpy+sq2Pt{o%5YDb2In5xyj~foUYSb`j#mA zzGdoKOYcFMq4NFC(3>sXDX7A|Ck!>KshhRRfm>~=Nwu}rXztdks!qfxT!LBHFj}N5 zbc2H75?ula0s>zGkJBwuWqzA1nudBHyBV6J$50EjB>Pobr{_{_qLu-d8q@~&XdwL{ zIHnV+PU#i+3@Eb-3jz;l0AjU=90Xmcm+Y9Guv7M$yT;$l(qb z>zDuJU(aRVrT&5Xll@}9*&o?Ei5H2Bdj>&0@i}psMo4k^F86d^vbksQQUgX#ah`yl z0)k_C4#p!OhcPS89AKEjn*|nu1sX-QTol93ND?J0ifm;uT^fVo$|3|QSAQKF^f7saN-#E5LLl3!AsRFtG*$+F^@QDVlD6?|uuSh1v_IO!-!$C6c? zB1$r`WDSRml58wl$AKOK&*aDqF;Yx0k7?zXfMs9>C;+R#8X#T~Q=JD4)7FI+v!11q zYanr7dU#Sn=D`-jn9aeJd5|ZmqzhzgWJM1 zAk9#kkX9&D;^}{nW$;o7L zYD&{KHj2gV?VX)+d2erjzfy7CYPDALyn4OSXf}QS;GorNw+|0Houi{}x7X|U2ZQ0s QOSY!f#V6iR>ggu^1)@=eBLDyZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4410v1-w b/usr/share/terminfo/a/att4410v1-w new file mode 100644 index 0000000000000000000000000000000000000000..96225b8ef915f6e68d3e5dae17cb826d57ba66dc GIT binary patch literal 1135 zcmaJJb3WvK|$~z_*47^f*^wHGqc&!rQpEx@xIUQWapjSWHU5M*XbR7PptXA zY3f>APj>q7R^)xZd*-K#cZ#Zb>Yiw+ddg7OYn7H;ZK_GNz0qiH*Q%;c#3)=sSy-@F zbcJqEFj%5W06{>|OVCleMXJnilSPwo4`h|2X?g-TOY^c`q7`~B-8#4oxYVEyv`>e! z9|T8qEZqschModtR$)Ql0S!Q`&On2p2ltX4v14|^-mtgq6!m+VeqbM^ev%vnp9dQ5 zaFM_MC;xUX`yu^L@Gth8{b7G)?Id0#F76ow^~9INWf~&I;oIEPdCBIU!AlJ^@{02m zG6M*W<#{w70eOsBai#&o6ul{64w$83u;qdbJ0nF;Yt#Qlq@8dDl2z2 z7~R%VbyZb2bx^dF!kpN2kQh-LsuboGClw{BShAovW|Ww*WD(yPB~~mcDo#2|(y?R- zr-+hFELp}Oqa+(kR&bz)z%w~ALyQy?EMQuNd0+up1d6~CundS-#8e*xhH2}&iK22%F4eAC2e4OPZcVySv$B zC&^~B3B^7HEVWpnP?0KDOVJl!eCfX+1yN8$p&$r8D!%#P_?E@IgJh&1R+ zy$si!rKjlydYuxpLPQcEdV-#W-%kfg(GeO#euT#99Q+i$K^1CJOl!13S83ZkdyTHs zO~Y=}9lA^R=}Y>GzNQEC4Lvmacl0CuOpn0-puZ@g5s@VSB%`nqFb0f^b7BhqO(03$ zf_+=eiK=LbWw9zch_}Q$Vq07jH^fbGOMEEqh)<#36JLl2@DG7+#rNU|@ss#PJQBYm z=Jgx=@8VDKx3J_cxlbOHFG@!iByf61!N%Fk45BC4- zh*hz!n#{I!y;t#pb<4WFqxvK3W6LgGq^D>%*(J50nyxBq)$~+(8A5g*rfrvAg?kNP z&m|k~rW#b`(;V)6rVU{fXya)9lZqj@u6C;MFO$6ncQTb+md*m>vhH?lE4=S;t?ozlh&hI%78M@qE&qq;v2vw22v@ z49o&^0A@OYEln%{y!A1_?C}i9DY94KrU2e9CRLgQ&I4v#1x#?q*WCizFtJ~?XB#m^ zE=3+iS&Dp$0*Z1Jg%ss!_p^9|nHKkF$atUdi5cZYpS;p1+>%M5uas~{Mv3}_`!b5= zds9=6S6<3wGLg|h`irwI)D}JLyi_b0>%-0<%3{2pcGlC=;YWLS43i59&2zVoDsrY7 zsIF?}U}Ehl&7ueDr_=`xQkv!J$E9H^hRElYuJdDg726k5xuD`bYIZSTjHKy8gg^PZjOg?kw+5pO)rMHP^j*bjsHxC%(4Cp D!NHCU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4415+nl b/usr/share/terminfo/a/att4415+nl new file mode 100644 index 0000000000000000000000000000000000000000..b9a8de81d91b5e2ef564b80dcd47cf4ee40510f0 GIT binary patch literal 471 zcmb1Qj9>tPDGc5Wi6tc_CWfZkc{w#DC6%ToMg|}zP!z^YPt8j$%1l;p3{eYF04dc6 z$tWaeB<7{37AvIX7b)cBmq7TLdFcu{iAkwB#SH%k0r&@W!#@;A3r8_f;8z0%>1fpg yL)8>()dC~c9909O6l()(!$JiG1vjubkO2cA6~%D%24Hm{F)Lj|Gd)AIVg>*Y3{h|Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4415-nl b/usr/share/terminfo/a/att4415-nl new file mode 100644 index 0000000000000000000000000000000000000000..d2713dab0c39706fe4d74cc25f7988b72c299f5f GIT binary patch literal 1380 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 J&-BP#>pwU=l+FME literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4415-w-rv-n b/usr/share/terminfo/a/att4415-w-rv-n new file mode 100644 index 0000000000000000000000000000000000000000..3d13a44cf410a9c49ab6d579c0e733e4670c3091 GIT binary patch literal 1410 zcmZ8gO^6&t6n@n$#veB8(byo3qyw^zzStZq>`}TBBVvqw@4xkX}WG>AjoO7M-qWdXFi5g|hG#Jqx zbSLlxJxCTkOc}&iXr0ajH|YhcQo+8|vFP=q-9%v3KY_dY?X|kLVVCN?*`- z^u5x5q@U;)`W5^S`jZk`5xnJD_z<=VTNmfWCh#R#k{l{K1kQg+a!FhfHL)!^q9=x8 zA`ZkW$bD7Z6z>8*hTRgMh|k35;!E+B_*$)#B;NqP6+eid#c$$w@wYe>$F%#j6B_UG zkoKJRqIOB~it;^epk3E)Xs>H;YJWlbNBdXloPBgG=xcgSXJuR8QJ5qneWLHrI7eRA zujxkVA|0azGD=p%>N-|MT3y$w^dMwwaATwNG~gK+Bd6>+`___Gd5Wh;zZpX~3mfBV z{uhcNIF7WNz$eHU0nVh7!_u>`bvh33x8PhEC}8K+;qqV?fJ#=*4DymWN)<)=#cD&^TuirAb$2r6+R{xGSBkbUf+Wm=$xf5XeG- zX;8<~4Fer<9qBZ0@>x*Mj!b_x52)kya&I9Sr#pHrM;Wp z0Dn4rM-?&x!U4Eq+bVLT>swQ+n}ds`Ye^PeP%ot(sGrg-XWvc@QZYb0Z^;&ambYT# zLMj)m__$SFv?Lj;bT>9dJw8r_Lh|ZCuhP=e>C>6a^0IATzFaO}y;`f)>&@o&b`-T* z?RKZr?e6UKdi{PJ4+g{GXfz)0?oK9qd(-Lu{=vcRPT8tMT=SzDC%5e6xG5L8B>_K| RVu1IF>?s-eUrb0{?SHb^sQLf^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4418 b/usr/share/terminfo/a/att4418 new file mode 100644 index 0000000000000000000000000000000000000000..490134783924a096f1e44fbb9b1320cc6245de34 GIT binary patch literal 906 zcma)2J!n%=6#lLjMQJMz7V$1Yc#1ffq)8L#kVd0K`(wZq#0X7jNZaJS1_ndpLsq46cv-p8X)uJes zN@V-gv}nG3qZ|_#%f@5#9lr}G{I?WJFy<-&oFN-CfI(cgZUi@Ro9>Q{M#&js91}J! z;DJ?RCY_cri)Zw6sJTo7P3PK(tlPz&%e-*<(y1}8@EULM*2eGf9{V`J2OAx_nvYID zIhA>jTA%R+U-6BV-|-W_sK1Zcbxs*`K@F0RU&AL>$o~APs*dk;^523gswq`cW!vqk zdakOft`?QALUkTP(3PUDBp*@ZlS1OWB`-{P^>Hsudi5d`cL~t~agWFoi4tiV!{l^8 zN(yEEQ7XVCCIU-hh}@_TeJieWW4_L%=_`o|p(&E*LC;bb38`Honna6`$_CMco`>cZ z_J6|IPAOwpGyT`dv^FD$TVor@mE;08Be$@IM`fWixQJ@CR%sI5;>6f*`oMy1F{JxVp;qJJ+j=^yl)vpL5>1_ndn#su5hk34BMas&Sl7 z`{P%;J-W;vmoHx`C&VZGR5G#94myCse@pGbm|+6wBO7xP12}Kp5Jqr??wXBK_UDgPb$F+v{}xnHO{`Stq*C z3((xc{`VQ%DP;_6X8szP)@I~zYit9#l3c)MB IcZqxW4Ka?#fdBvi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4420 b/usr/share/terminfo/a/att4420 new file mode 100644 index 0000000000000000000000000000000000000000..8187d8a275394ecb74f80e72158267ca3a61b91a GIT binary patch literal 543 zcmbVG&r8EF6#goTA_yME2a-!2qM(+Ef*?)@8^dB@Q>YB3t3eUBl{F3~>e0IgFM|K7 zHF-&Q76bi$z3(+y_13VCS$yIfiBi>Su=AqSgt;RhrJ7_?7zaL{MGq`IYwgHRA{506 zni_!_jYTnsMJ%ye#s;>u+GZDM+|%Cy4%wToIX{*dk5HS=OkPK0>dRWoC86dBZCpAZ zJMKER{TuWkaqqGR^pR8Miea*|^P7*Ine2IW0hiH-m)KS1DDr*J??h44 z*~v<^5;eohMe6|y$K+T@O~9Bz*7czur!fe@CH6OzE4YQ*q^$Esc#l!AzUnjnTI;HwmQ5iEu{h!PzDe#NVK?1#`!>f8eqeD;6*C1nz z>0$OL2@GL(X(-I<1T-6=83+8OD|toV+5kXgR=QdJ3t zZ#;)Qf#hu~JBPIeHY+@&KB5-g90~5xa#X-sqcm<^*2TclG1#qK>dqnL55YEYDci+C z76XvUqr2&0n+Vgoqa*3+jP*TYDMnw1*IgD}neQRrbyU}PiTdj7x)9H45J^Tho12kL! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4424-1 b/usr/share/terminfo/a/att4424-1 new file mode 100644 index 0000000000000000000000000000000000000000..860c736e5b2dfe0e137afd9e5a26dfa69ce81683 GIT binary patch literal 796 zcmaKoO=uHQ5Xb*ZDSklj#knlVEA=3xn^n=EHC9WiDXF$tZGtv6A8xzdY?IwKn=d>G zf(RlWJa`ZULGapZuU@@+_3Bjw4?gF;-ISI}A3O7YGxMJ}!=5p&VFDv~gJ(uL2yEN3 z&rkJ&AWCSd>Q;luubL`09nY*dE#ECiW-aud1Wv;<>&-^!n{$AHBj-rUSb&t{tQ)~7 zPGB5_vpiq&IfpB_%9Pd74EtHOIplR*z#{HzdZ@jWB|OF&a}`dK3DHhS%C4s8c)|Be zw!dlwpI7^e*GzBm4)6CfL)C{Q^D((U9ZLcZ|2($q7k=Xp za)y+5*#39s4Jz<28Uq!DBm5~*$q3&Pl_qGGb2%znw?Q2c`@@PH=!R0@BxnYd1ucN) zL6a#^T7S!+zWz#_W$gnR&-iSLxsC+_t+LeH-`gm zsU6ggEQo>U#h_NvrRzh;4}sg`5^otp7N%v!4-uT7RkXv4;}7S9&tL!P|K)kZd+z$cH2**+rrOlWAw`Rb?xJiXGS}58GYst1 zQR3I>q(SUKcc9x;+kKMt^b3BQvG>py&_`I=HI-U0*P&xN<7484IHj>k>=UEKZNpPM={HOTA}mWh=7vr!ntLtUeH=zY3MT^SJ~ z3m`f`Z^3^+$4Ju-BR!f|&X7!RiA%4=HwrA{F;l0`O_Trvs{|;|rTzSp+ z)a|x?$G&en@ie_nhscTbvaWl&Xms7z#We`25=`ES$Kfsm?0HJt+twfJ;w29EuF2Cu zNO`oU6MMdK%kbv`Kgh$L>!}{A*MJE+3>(&9d=rUd6D+}Gz;42eEGFQb+^@OoFVGQ4 zH8w$&*)DS7((w`BbR9FW1?OY3a z;+Ix)UB9Q&X_j|QM&kEZzePJe3D6C>m^+SGViMkmhAo}AUm zVZCrf8*=hAfb*o5yg@r7jhm<0*}1vJ#ZswUu2ibkT5V-zb+uk^G}hLd%_O;fdwqRl zV{^0B+S+QjJDu(Aot^)y;u`!l_@2Y3y!2@=%{7?j3Pjwwxd<(Ha?}}e3BQxmAtxbc mi}-g#*5l6z-wZyo;-{eL6<(ra<9dE72-8s}JA?k2rvCtAY>?vs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att4425-nl b/usr/share/terminfo/a/att4425-nl new file mode 100644 index 0000000000000000000000000000000000000000..86c8672065bb9f7fcc5cd537481f26f20d4e7a1a GIT binary patch literal 1634 zcmdT@O>7%g5T3VNQCgIi3sTEU$cMa&2&L?`Ma7E&RP^Dg|)C1yLsiIP^y;O*6-EW?46y?T|m(0vJ-@JMA z-gx#+F+p$8YcwRjGYfI-d#*oRjoNYC>_f0#j~$ymGn-)NT@EJFc4Dy>ZC0v{M75TP z3ZE@S4I-icSqUuSC9cq`bc#Ntj$Q#g1449!UV%MLZ;_-S8b*ACrYR3Q1Gz@?RG<>A zQG>R1Zj1Kl3yr>}n{+NPY5wr3e;a4aF_YN| z^OCk7nID^>`H9Be-37CFz&m`x|IuIlkMF6PO>^J8ZCc?R9i;)XLb)pIjw~u!cV%${ zM6v{xv%)EuOAxlarRD6&cVzK>b`R#{=s2hx#?uNNSJ`FQ3lP`KL63D=huJHTX*vPz zSD;)KXv4}|fl32iht;%J9>?_k8a;cFPJ*hi@*+k($@(jUBd%?aT4B~lAWhZ?U@{sU zalq;v+)ueGsXUd6^j)2#ay;eQ@UkhD2~;M-Fj&FitJV&#=qsoE4U+Yl;br~EDfr!| zSm8LZi!S9CAw|d%WEp}c=JBTdDumz8z0i-m3~&*`Et-YQK)6Y+gVr6W2;b@YUfEiz z#x!soyL2zOxCYaGz}L{s`97HF1Fok-TvP+Dtifa-aDB}vo`Oi)ZgD-4NK7*46oLAS z!wqcCx_DQZ&1mgGFTzWrcliCAy7~IN-pHUY0S^gZ*OpmX_hmgL+cH+JRP4KeUKe_R zeitUWe7nCj=#l~AX{jolmX@(~y-R0gd_pdrl!~kz9Ya0cNj{*J)?=Hag@r<4dAU?7 zm)F*!s8Xp`YqffPeSKr2(TL;C&8@BN?VX)wb9cAZYPa|H_V@qoimmXs&i6bw?4-^* zDel1>cOc-o%?22_x5up^n=B-?$%@I^CH<>m&iEt37lTi%coi^JOF2`cdmY(?j}|egl6@Pv~!YSMZiDYyjkdS#eU# z!54wiXdd>8xGrvrMNt+NQAOMk9kC^Lbbd4%ireBd@H^tJcrey@=E3JXr)l=hq4|YrMGJI@j*u0}s%$$lRH4~3KSxuL8f?5evoQ+(+MBbkZGUJ*1s{nV^gz$fQU=p$YNnFF{%*MO@4x5#zSxP3b!cGB3ZS(RpD4e7{X zjMKf~?KPR75H3V3Cnx0Wgz%0!#oKDaduwuTLbw90D82=CX}fVJlgXT8&56M#52w2r zTySx+sF2szgIz|HMfdRj`)Tue?)b`}Ga+9RF4vX?+4f~SkOP@0S1OKOP%ot(sGrg- zFEN-54O1~hJ||U!r{!c~-ALuUOpeORlvHFD>1FJvd#P*4>1$i0rKNItWo31>R$E`M z*Bgyyv(;+1JDrVN6Rv6EFGlP%}oO{ka_r7=UTlSK;jPn@4W4spi zC~_QiwI4;X;l-xkjN-6a&{+i#$Ul)wF^?pB$Pr>3Q6SO3dfw2Lzg(}We;R%23&RU=(1R90h(#tlOA z1Tju1M`vS@^Q1Y*p(6Q8z);e`D2HlD9}F_m5^`C3qooyNd$y~bF60vAEKbu>+=3^{ zytRCjSRg9IB2gu{ZTU9)I9zX{9M`7gLSq;_OT%ofS2AKQ7kUZfT+anBO`X|X==)5M zex4B=nhHKsFFoROqFan1ujQ2nWCGwGl literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att500 b/usr/share/terminfo/a/att500 new file mode 100644 index 0000000000000000000000000000000000000000..6eddf88b82e240d9b47fe318d6f28a3f33c5d0ef GIT binary patch literal 1892 zcmcIkO^91n82#?MSKC_JK}2l5Xe0GmhcTL$|M*7Zw6;#Qd2ia8(RLmKrcGuhGfA4v zB=cjE7Gc~}1YL}aQWy{gixk>L7ZqKIxNsrjLZJ&6E((@Xw1|j^#PhvO>WEeB!b{Hm z&O7(s+@J56h92j|IBmfeq&lSp(fl78VA1EEq<%xv< zBfkiIp!m`dwcFc(ZrMl%ZA7D@I}x|jgJe=K1<|9QGUOr-1EVxfS;|v^s*whrUGiDG{qb6Cx37R*1+D=<&`dZ!kUS~h`b*o2JR?`-JMukwR-Tg= z()E#P*+M@1O_p0sc0rikF zRj&#vOT|=5J*5WJUbSCk)Il|>j;L{!Re4oVB~?{*wWM0=RduV?{a@N^w>jG>wW3a| zb4q(-w1KveSEd(mb4d{L^Y_r=Mi22IC7VU)iV3c+;jX{ST|;n?t(N3 zduq?J>`)VN59ys@#DR`xu{QK@zx6a?hPI-Pl~9H4gdezyPN7ON^EJPUmZ%3piK}Rl zSqEvX(vCDSUkLNze=OT-p3+_%0b)aY=~RmQAMjU&9XJy}9?EXgZWcHOVl|Ue{&sRaZg%dmXx8C8~>W#Gi>wl+H z$)ff`I6Ry@({yqjj~0j*b&OXW_I(sIb4N-4w=}X%ILV#lCVh^RW@%lfV-QFu*Y>&Q zRU|mU?&L!cnQ2}`C1y6wN*q*mZ6r8vKz)zj9k|+I z7taH@%MQEx6#!Orao`R+e+l4QPz8WagfQca(6U#}20gL8R*usvn<5$jh5+}9` zB#RqyTvBE+05CDnJ#$EdM#HmGX<|&BEWvL?wQnL&LuK;6B)DR*8l`e zJR%K;VG6Vc*oUh10XPOHnNEWR=aDX=*$_g#3^9nq99QSzHr!*<+GU@G0+f;J(B`-U zeR$}1JodfT+eoiRk=8ptzkzp1AK(-0!Wa1ZM~Bwm{OG&yfBaRYsVASG@CyzK%AXKZ zVjAfJN0bSO2=a^{Uqc@kH%Havh^Tk`q(=Fkcr@Z+{mDdTSQ-1Ld*~T=@135B=i-HU zDPDdytUML2qmjRX7OSAd z(Pk-lfRaXAM6>NGYLJA*X|pQU0IS0qWDSwh=)_D%ge=LxxBJcsZ^`ATD{(Atgd=qv)O93+iPp<>l+)L&gSOUR=3;h z_4{~9e+7Z@Eq>6V`yrbeB74N8cN5$JI`f^r@zFGbbVyFhc0l~y- ACIA2c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att505-22 b/usr/share/terminfo/a/att505-22 new file mode 100644 index 0000000000000000000000000000000000000000..bbf0d9a1a0969f9627684f6a45de7e8880107c7e GIT binary patch literal 1179 zcmb`GJ#5oZ5XbKU;!7aJK!xz)4hDf#$$qhuKxm+Z&?s%C01=BjBqD7{nyihygLc!qf#OCI$uuR`j^L*a;|0k+5|C``yQTzLVv1A`NHYAY2fi zMZVQ?OlL;QUL$~_=hz{WQghk!Sv`}*2EE?YDXY&Xvv-qOy|dEvO7)s<=~C*IQfBpel6;PQYoVDKOw7(hQmfVbm)ShXl-XbpdX}Jtn1G_BmLAGEyDd z9Cu*=5B-kEzE^4o>Gdd5YS-sC@DAw%e1bjr0$=~=Q0ki>efRy3zp6C#>MQ8hIp>K#AnQNAx8jX0=3naBi{v46Uco^kj7>6v&g zUWk|CmDmxx_>Q;#@jdVV@ve_zPaJ`hpt&-wxheGK0!bRhXjn!eW;CQxpu!C_@;A}q z6_f{a{2t~YOz=@udP)o)oQI)uQwX&>&>R;wOZ|Vr?auKx!LV*ZEbJ& zdj0-jfR|WS%q$PRg?<`QMrc|q%6gep@{W>sl)R(l9VPE5c{@p8&M470E8Ia0*Wfpq CgJs_U literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att505-24 b/usr/share/terminfo/a/att505-24 new file mode 100644 index 0000000000000000000000000000000000000000..ead33f945ac23d717bf22d18f000b965418d4631 GIT binary patch literal 1147 zcmb`GJ#5oZ5XbKU;!7aJ0IKT69Sj1glKtYOUl3GE)GBSI02YfG5|K0{bz;{}(xy!_ zbU;i@OiWBHtOy~Hn3$NDn3$Lt7#LXTt3Z^iU0&0 zS^{!#8pc2=fMcjioq%(2k?ArRa1Ch^&4Lu_ETmxp7CE~Nci{n(QZDa#C_xp;hbH@N z=)zuH@g&}rdV}z98>iY2d4S(RIp!fwb zCMJ-svqzDAe3VMWKJmUv4YJb%qT1n_9mIR*hZ&;UAbT)A>IFxr8LdAmw?s$miKpV3 zcrISxJ6`_B_q_VYyIza8;uM?*&6QcrUBca5Cdr~0fn^luj6fPiO58@H{SI2%Ls>wZ zC+9Ir4s8|9vTCSF5+<9HQ$v@@Bqg)yp4iES4>PXW>~&(!nM;__+=QpOH_&XfG}=wH zTXbp#|AbysrWqlb7OP}Uu-dFi))XnV-tU^HqplfN`#@82WTg*uh$D280f&ABXW_wYj;q)oyQZ@9cCsySv>kXcKsgoT6^5 iY1SE1$umfvLGlceXOKLDTK#v8n?=H6B92YkdQ>d*L!?_2MAH~C|K zF(*W=I4D%?sF0$ADx$q|`JCtz168f^Bh)c*U5ttw;xYBcww%g)Yg4=zUv}ia?eM&P zyJLU+Rr}|*2#gxTXVe)7j3#4u&ihxD=KrjJ%xE>t_!$4GdYJLx6sg~gU!w63C{jvh zWWkb2TNVN`+0Q^Pp{!-ueiy!q3c9rCiD<;6w0BIft)5K zPzSTM*F0tMjjVdjvMqO=Vo)E(;~iFTlEgJ)5$5G-B1KFRY3^iu&IIiRLN#@jh!MKE zZq+v1?`Bz;eU$ows#z_DJfSYCBZHn$^>joP)k0PDXGlF=nnUC+m=V;%RE7MqM;5}e z&?#M6v;)#setmc<5{YLqt2e(b~PskU_cWJl`OczQmw zFg-mplg;LG`TX2mvADRnw6wguva-7Bx@&8tlGkHFop`q0>Re!CtU6puPA$5J+*1DlKR>^H@(N{V9=`#Ar(in( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att510d b/usr/share/terminfo/a/att510d new file mode 100644 index 0000000000000000000000000000000000000000..e780315e2aad3a4c213f337ad5417abf7769d2d2 GIT binary patch literal 1386 zcmbVKO-NKx6h8M7W~N?UbzY&>%<)t{`6#K!Fe2oX~sVK5BoA$3ze zzmL4I?kFWr+Y#ADCD2N#jP}xgItcEelhg`-76@Togf3AZSro@SpHEVXGKx*pb-Dp| zn-=LV{C!$d`Z7JH6|iT(bKtd7-@?9A%+3FPjenqz^oc&x7y3%y=sW$OpM}`3g8xl_ zh_igYgzaQ|;5Qpph#g=x>^KXu7S_RfSRaeARAEJqIc%QY!t8-k9K zaXY|9ql&ll%lrzDt;KDg<+-)lMr*dNP5-m++&X2R-{cE?k>BC>)~Q?1w)x5>zRVx; zC;y#gg}>lhv=?uxjI?O|Fic2`cEEYhNh6s^>taTq6}7@@m(zq4EK{TnVTB;H0wF4e z)pfJpfj>>!Ap^d})eNb116@=O>$hPHGoYL_zBo)!GNmcwv#A1tEsZZJnZj<;jdpd4r>X$8gz;zC0xkj*q@5oDV!#j}Goj}2AbcBuN~1kM1W?sBy4&iF z*p{?2kkx5r^@?;Ai9EGZP8EsVM=6~}A~PsOrcp%ZQA8&5CSaO_%K8!{^+6dn)OCA= zHGsH#&R}6(p$|A-fOe85tMQ6vk@kypgK$LFG=wSV2B^=aK2X0)>tzb3_-nuw1BeHO zY0G7eB3mwE6~ZJfL_4TL7ZqKIxNsrjLZJ&6E((@Xw1|j^#PhvO>WEeB!b{Hm z&O7(s+@J56h92j|IBmfeq&lSp(fl78VA1EEq<%xv< zBfkiIp!m`dwcFc(ZrMl%ZA7D@I}x|jgJe=K1<|9QGUOr-1EVxfS;|v^s*whrUGiDG{qb6Cx37R*1+D=<&`dZ!kUS~h`b*o2JR?`-JMukwR-Tg= z()E#P*+M@1O_p0sc0rikF zRj&#vOT|=5J*5WJUbSCk)Il|>j;L{!Re4oVB~?{*wWM0=RduV?{a@N^w>jG>wW3a| zb4q(-w1KveSEd(mb4d{L^Y_r=Mi22IC7VU)iV3c+;jX{ST|;n?t(N3 zduq?J>`)VN59ys@#DR`xu{QK@zx6a?hPI-Pl~9H4gdezyPN7ON^EJPUmZ%3piK}Rl zSqEvX(vCDSUkLNze=OT-p3+_%0b)aY=~RmQAMjU&9XJy}9?EXgZWcHOVl|Ue{&sRaZg%dmXx8C8~>W#Gi>wl+H z$)ff`I6Ry@({yqjj~0j*b&OXW_I(sIb4N-4w=}X%ILV#lCVh^RW@%lfV-QFu*Y>&Q zRU|mU?&L!cnQ2}`C1y6wN*q*mZ6r8vKz)zj9k|+I z7taH@%MQEx6#!Orao`R+e+l4QPz8xQmfh6~w`*rs00b}H?bHg~fE0G%*z~|$XUD|X z=a^L;-<-qkNz2eJ-E|x8{8R6;xtHheH#;9S(V{NDmECBeMfLx=wgd5{j%~y5g*9)S z_N2ELa69`!XGLe!`PP|Ef9Oy9{Oqhkci$TaUit}Ez=iIvzTe$MlcAqAIYC97f)uV% zSb_Jno^TrY=iU>q>h4cGVTlllkeEIaeIkOWW=walj$YRNQIlP3vg=K@M_H59E77yj5wOAX@-80+v#S?i8UUM5n~WFtu+Un2PzaUKYU^&o z6;JiRkFA__T2?%p?LxOpEo-(cu#RU^kx;x+rAUqnS$)O*_U}@O&q>;73hXoSaYjY< Maq>~gbx{m|0Lv!qxBvhE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5320 b/usr/share/terminfo/a/att5320 new file mode 100644 index 0000000000000000000000000000000000000000..fd5f22e74a809659b0327acb15aa8a3863a55821 GIT binary patch literal 1865 zcmeHGU279T6ulc?v|0oa1cR~&s{_95N7AM&BCQn)Qbg^8T0zI%X*#ky3AxQmfh6~w`*rs00b}H?bHg~fE0G%*z~|$XUD|X z=a^L;-<-qkNz2eJ-E|x8{8R6;xtHheH#;9S(V{NDmECBeMfLx=wgd5{j%~y5g*9)S z_N2ELa69`!XGLe!`PP|Ef9Oy9{Oqhkci$TaUit}Ez=iIvzTe$MlcAqAIYC97f)uV% zSb_Jno^TrY=iU>q>h4cGVTlllkeEIaeIkOWW=walj$YRNQIlP3vg=K@M_H59E77yj5wOAX@-80+v#S?i8UUM5n~WFtu+Un2PzaUKYU^&o z6;JiRkFA__T2?%p?LxOpEo-(cu#RU^kx;x+rAUqnS$)O*_U}@O&q>;73hXoSaYjY< Maq>~gbx{m|0Lv!qxBvhE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5410 b/usr/share/terminfo/a/att5410 new file mode 100644 index 0000000000000000000000000000000000000000..41072d6638c22ee6d9ecf136ac75c49919eaead2 GIT binary patch literal 1136 zcmaJz;E)(7?rwM6;zkkiP(MidC}5}u2n7ms+ikm0N(&x1 za3IlxCLBC?@Mw$&6Muj|#b01zVoW@Y&&+m_4T+OHAMg9@On2Vx4R)Uf=_Axg$$GYv?Pr%C=W+>PdZPwb9(DRdtJqQMjbCu!vf{1pO(x zMAu35maGzh5Cpvdy+$`lSNSb+XcX?As>W!79>Y!2w5sQ5fnF%L0xkm{HK+yc(t+v= zaY#qX9n&l52~cJgCWH?(0J&N{6`}+8k{z-mcFbP0H|zxUJC(j?AC!JnEX3!Yh9{io zFaOEEp2@x|{{#G!{bIk_A5}k3EGEvMDMU5#DRGhdNGtLU?wh>ia^K>m1{yi7_yqD4 zkQ&Q#XgmaR7_(NK04!Vf#(^ndlKR1p2eRCZ5=mJ}s#IiqG=PSuNE*_zkg-%nyKTUj zu92$iy1r(DqNU}huKdlv0QId)!Gg{G(5<8a6;yt6pi6sTCn2wTkESbYC zq9hYb=5fg=$;OfeT<8JtOpVNvBgF*sm{xuom;q*i0x$>619FR;>Lb9iT~m5F>v8J4 z0{Qp7D%`M2YEr6q=6B`SY?8JTPF2pWt%jT-oG^()3_d3J_zv%KKMe|8i@UOE!P=p< zVV%&X%Mza|N+uJ)kt=8^tyS=y9>2$mM`v(W7*EWp0 Le8sy-Gu@=W+ZBO` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5410-w b/usr/share/terminfo/a/att5410-w new file mode 100644 index 0000000000000000000000000000000000000000..78d1777faa19ec7061c6003ddfc560cf29e7f831 GIT binary patch literal 1152 zcmaJYF!2ZYQ~U)cCdS0Yc;1^CWJ2Og&OPUzGw*fYonB*4XqYb3Tl$t* z_B_kfwPdFcWdjA}dVb zzoZLvmHcptE&=#HfzN@j&~;K}euFF;hq@!X98J;#s41F}{X8wwbE#HPD}X~y>VW&S zFMZ!XphKyS=oR=FsIV&YeHUl~Vs%3H{T|c{cEAqV5qr(vuw(S^Wcr?cko-|r-~SwP zaKhR8&k|?P^!-}mQ{p@gkW%6s+|_y6=B~lZO&EEl z^bqt25FE?%Fzx|)j9Dp70){EP31AwSqCr&4K{4!%BvG=W$W|89p&=NKEJBcy1?5r| z<)#Lq+ghrjs_L4K5-p`LEe;J6BeKCtVMZyXq9hedW|fi|C1xy{!+S=F6-$arDIF#0 zSTc`WL`f!=EZ~w+l8q&cxX@kTu^gEpMv4g*Fs;H2Fbm89MPMFS0K^tC)%$>9+PctU z))O>v3H0xKRk>!A<)ox{>UYK0Y>~1OOjXRSD~FsRoG^t$G@cWCT#NU)n?~_$gWJM1 zAk9FUkX9g5;^~t|Gl7{wp5?Y9wvBUdkgpDLn=X=)!HZk?OX<9)@9_~{&eO=q=x8!I zHl}GyOUuh^YwPQk%I4Fn%uySux+UcbM$x4(aK PZB1*4SG=9n(=GZ7iid`2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5410v1 b/usr/share/terminfo/a/att5410v1 new file mode 100644 index 0000000000000000000000000000000000000000..d7d7336bc66004b8cb23a52c0f0ee0922c1c0dc0 GIT binary patch literal 1129 zcmaJk+zFbXlUA|Z6=u{)1+x0 zF1qNVpbLdAT)1%QLP78!_*47^f*^w9xpy+sq2Pt{o%5YDb2In5xyj~foUYSb`j#mA zzGdoKOYcFMq4NFC(3>sXDX7A|Ck!>KshhRRfm>~=Nwu}rXztdks!qfxT!LBHFj}N5 zbc2H75?ula0s>zGkJBwuWqzA1nudBHyBV6J$50EjB>Pobr{_{_qLu-d8q@~&XdwL{ zIHnV+PU#i+3@Eb-3jz;l0AjU=90Xmcm+Y9Guv7M$yT;$l(qb z>zDuJU(aRVrT&5Xll@}9*&o?Ei5H2Bdj>&0@i}psMo4k^F86d^vbksQQUgX#ah`yl z0)k_C4#p!OhcPS89AKEjn*|nu1sX-QTol93ND?J0ifm;uT^fVo$|3|QSAQKF^f7saN-#E5LLl3!AsRFtG*$+F^@QDVlD6?|uuSh1v_IO!-!$C6c? zB1$r`WDSRml58wl$AKOK&*aDqF;Yx0k7?zXfMs9>C;+R#8X#T~Q=JD4)7FI+v!11q zYanr7dU#Sn=D`-jn9aeJd5|ZmqzhzgWJM1 zAk9#kkX9&D;^}{nW$;o7L zYD&{KHj2gV?VX)+d2erjzfy7CYPDALyn4OSXf}QS;GorNw+|0Houi{}x7X|U2ZQ0s QOSY!f#V6iR>ggu^1)@=eBLDyZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5410v1-w b/usr/share/terminfo/a/att5410v1-w new file mode 100644 index 0000000000000000000000000000000000000000..96225b8ef915f6e68d3e5dae17cb826d57ba66dc GIT binary patch literal 1135 zcmaJJb3WvK|$~z_*47^f*^wHGqc&!rQpEx@xIUQWapjSWHU5M*XbR7PptXA zY3f>APj>q7R^)xZd*-K#cZ#Zb>Yiw+ddg7OYn7H;ZK_GNz0qiH*Q%;c#3)=sSy-@F zbcJqEFj%5W06{>|OVCleMXJnilSPwo4`h|2X?g-TOY^c`q7`~B-8#4oxYVEyv`>e! z9|T8qEZqschModtR$)Ql0S!Q`&On2p2ltX4v14|^-mtgq6!m+VeqbM^ev%vnp9dQ5 zaFM_MC;xUX`yu^L@Gth8{b7G)?Id0#F76ow^~9INWf~&I;oIEPdCBIU!AlJ^@{02m zG6M*W<#{w70eOsBai#&o6ul{64w$83u;qdbJ0nF;Yt#Qlq@8dDl2z2 z7~R%VbyZb2bx^dF!kpN2kQh-LsuboGClw{BShAovW|Ww*WD(yPB~~mcDo#2|(y?R- zr-+hFELp}Oqa+(kR&bz)z%w~ALyQy?EMQuNd0+up1d6~CundS-#8e*xhH2}&iK22%F4eAC2e4OP1_ndpLsq46cv-p8X)uJes zN@V-gv}nG3qZ|_#%f@5#9lr}G{I?WJFy<-&oFN-CfI(cgZUi@Ro9>Q{M#&js91}J! z;DJ?RCY_cri)Zw6sJTo7P3PK(tlPz&%e-*<(y1}8@EULM*2eGf9{V`J2OAx_nvYID zIhA>jTA%R+U-6BV-|-W_sK1Zcbxs*`K@F0RU&AL>$o~APs*dk;^523gswq`cW!vqk zdakOft`?QALUkTP(3PUDBp*@ZlS1OWB`-{P^>Hsudi5d`cL~t~agWFoi4tiV!{l^8 zN(yEEQ7XVCCIU-hh}@_TeJieWW4_L%=_`o|p(&E*LC;bb38`Honna6`$_CMco`>cZ z_J6|IPAOwpGyT`dv^FD$TVor@mE;08Be$@IM`fWixQJ@CR%sI5;>6f*`oMy1F{JxVp;qJJ+j=^yl)vpL5>1_ndn#su5hk34BMas&Sl7 z`{P%;J-W;vmoHx`C&VZGR5G#94myCse@pGbm|+6wBO7xP12}Kp5Jqr??wXBK_UDgPb$F+v{}xnHO{`Stq*C z3((xc{`VQ%DP;_6X8szP)@I~zYit9#l3c)MB IcZqxW4Ka?#fdBvi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5420 b/usr/share/terminfo/a/att5420 new file mode 100644 index 0000000000000000000000000000000000000000..c1ff8e5aa105f1c8aab1b4a3faf0ada6fc321883 GIT binary patch literal 1384 zcmZWo-)kII6h8Nk__J*aQm`E;`_Nk{Y0{b5nVns4=(e#=gEpq6NyRQmV>ZcVySv$B zC&^~B3B^7HEVWpnP?0KDOVJl!eCfX+1yN8$p&$r8D!%#P_?E@IgJh&1R+ zy$si!rKjlydYuxpLPQcEdV-#W-%kfg(GeO#euT#99Q+i$K^1CJOl!13S83ZkdyTHs zO~Y=}9lA^R=}Y>GzNQEC4Lvmacl0CuOpn0-puZ@g5s@VSB%`nqFb0f^b7BhqO(03$ zf_+=eiK=LbWw9zch_}Q$Vq07jH^fbGOMEEqh)<#36JLl2@DG7+#rNU|@ss#PJQBYm z=Jgx=@8VDKx3J_cxlbOHFG@!iByf61!N%Fk45BC4- zh*hz!n#{I!y;t#pb<4WFqxvK3W6LgGq^D>%*(J50nyxBq)$~+(8A5g*rfrvAg?kNP z&m|k~rW#b`(;V)6rVU{fXya)9lZqj@u6C;MFO$6ncQTb+md*m>vhH?lE4=S;t?ozlh&hI%78M@qE&qq;v2vw22v@ z49o&^0A@OYEln%{y!A1_?C}i9DY94KrU2e9CRLgQ&I4v#1x#?q*WCizFtJ~?XB#m^ zE=3+iS&Dp$0*Z1Jg%ss!_p^9|nHKkF$atUdi5cZYpS;p1+>%M5uas~{Mv3}_`!b5= zds9=6S6<3wGLg|h`irwI)D}JLyi_b0>%-0<%3{2pcGlC=;YWLS43i59&2zVoDsrY7 zsIF?}U}Ehl&7ueDr_=`xQkv!J$E9H^hRElYuJdDg726k5xuD`bYIZSTjHKy8gg^PZjOg?kw+5pO)rMHP^j*bjsHxC%(4Cp D!NHCU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5420+nl b/usr/share/terminfo/a/att5420+nl new file mode 100644 index 0000000000000000000000000000000000000000..b9a8de81d91b5e2ef564b80dcd47cf4ee40510f0 GIT binary patch literal 471 zcmb1Qj9>tPDGc5Wi6tc_CWfZkc{w#DC6%ToMg|}zP!z^YPt8j$%1l;p3{eYF04dc6 z$tWaeB<7{37AvIX7b)cBmq7TLdFcu{iAkwB#SH%k0r&@W!#@;A3r8_f;8z0%>1fpg yL)8>()dC~c9909O6l()(!$JiG1vjubkO2cA6~%D%24Hm{F)Lj|Gd)AIVg>*Y3{h|Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5420-nl b/usr/share/terminfo/a/att5420-nl new file mode 100644 index 0000000000000000000000000000000000000000..d2713dab0c39706fe4d74cc25f7988b72c299f5f GIT binary patch literal 1380 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 J&-BP#>pwU=l+FME literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5420-w-rv-n b/usr/share/terminfo/a/att5420-w-rv-n new file mode 100644 index 0000000000000000000000000000000000000000..3d13a44cf410a9c49ab6d579c0e733e4670c3091 GIT binary patch literal 1410 zcmZ8gO^6&t6n@n$#veB8(byo3qyw^zzStZq>`}TBBVvqw@4xkX}WG>AjoO7M-qWdXFi5g|hG#Jqx zbSLlxJxCTkOc}&iXr0ajH|YhcQo+8|vFP=q-9%v3KY_dY?X|kLVVCN?*`- z^u5x5q@U;)`W5^S`jZk`5xnJD_z<=VTNmfWCh#R#k{l{K1kQg+a!FhfHL)!^q9=x8 zA`ZkW$bD7Z6z>8*hTRgMh|k35;!E+B_*$)#B;NqP6+eid#c$$w@wYe>$F%#j6B_UG zkoKJRqIOB~it;^epk3E)Xs>H;YJWlbNBdXloPBgG=xcgSXJuR8QJ5qneWLHrI7eRA zujxkVA|0azGD=p%>N-|MT3y$w^dMwwaATwNG~gK+Bd6>+`___Gd5Wh;zZpX~3mfBV z{uhcNIF7WNz$eHU0nVh7!_u>`bvh33x8PhEC}8K+;qqV?fJ#=*4DymWN)<)=#cD&^TuirAb$2r6+R{xGSBkbUf+Wm=$xf5XeG- zX;8<~4Fer<9qBZ0@>x*Mj!b_x52)kya&I9Sr#pHrM;Wp z0Dn4rM-?&x!U4Eq+bVLT>swQ+n}ds`Ye^PeP%ot(sGrg-XWvc@QZYb0Z^;&ambYT# zLMj)m__$SFv?Lj;bT>9dJw8r_Lh|ZCuhP=e>C>6a^0IATzFaO}y;`f)>&@o&b`-T* z?RKZr?e6UKdi{PJ4+g{GXfz)0?oK9qd(-Lu{=vcRPT8tMT=SzDC%5e6xG5L8B>_K| RVu1IF>?s-eUrb0{?SHb^sQLf^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5420_2 b/usr/share/terminfo/a/att5420_2 new file mode 100644 index 0000000000000000000000000000000000000000..f46c163524b85cb8bee09228b36659b0b90f6803 GIT binary patch literal 1638 zcmdT@U1%Le6h3EG!5`X!P^&KJ1v^qHm7Te}_innySXJ z&zzlkfcMj0x|<&5uf2&*Ckk!wn(ZAOePpyCyii}LPSpyw5C?_Hg<6}4DIf66dBAj% z?x6eVdCJ@yB?ayrAAuTk2zVSzS^0cv-gB+Xvh^4tlS8Yqw-x_cpyZ zZqnZL-nuE;xyS!cdHX+}=c4zax8;55`4uxx{?p`F^sH_eT}^bu>S_x@afbXM{~560 zSpi`(WzDSXgSxt7%@FeDNx%?p=q>woBxjOfPW&}OL;Blcf@?&U0Vv8+*#qVNkRDr`KMPTT7@apXkQmG{feTDN%an3)z=<|+kILtbo0L@YqxJ1`cx)VFXaY$P%@23_jD(*I+57wM#;rt z9*0OpIW5ZUUO!*X#WM1-PU^CDKzDZQsXcij)*XLLC%E%;Cq9aLA{+^Y#O}He(Wz4t z6VuZ(Gjnri&eUr4`uzODLZi`awp#6Wr?a@Yw6wguveNCYuCA^1dh6>Oa#-1+n&1j0 zK~su7e8`j@Go`!}czKx9BOlLWRZdwk^3w1U@eHdYprv`hpspl=vBfYdmE(a|aDB$< EU+uD&vH$=8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5420_2-w b/usr/share/terminfo/a/att5420_2-w new file mode 100644 index 0000000000000000000000000000000000000000..e7f47e7a800a0116914d410c062b0c6a9088bf40 GIT binary patch literal 1650 zcmdT@U1%It6h3E0!5`X!P_+)|fL^JTl(~0jb~l}3tgT~EViqS@n%ysrx!-{E6A>e64O( zBBpG>GiL$6PY=-J^g5+>6c9N8A-*4e7d=T&({AcRyq|_>7=D!Aq6#%>fjYECC+U=3 zdz#KzpQfL}e@^FUgD%iF^c`KLpEfhU&^5XN{s;ZFsSNWdr|B4Q6d318uE5uTG;P5y z@G`IQI-lfId>Zjt{*1ribNm&5%@_GwzQmWI{>WGOXZY*D4Zg|0@^Ab*-{L)7MI zla}LaYOIfuPr$p2Q%UilD8=SKqhJt-vEYa zJ8V>gF=C1^qwoa@tO|=d1xkvv?IBFDeUoA=8R`)!%PLZ~B`@`eeBUZ4A|vv7t0X-lMOY=4i&IsB zDK~xJPpk&g8PwiZYs$+1*~gkckE4iz=?k+J4pEt|oV6iK1$IqbkOorw8#-)Dz)I zD5Pkw`yd@VHaZNpPM={HOTA}mWh=7vr!ntLtUeH=zY3MT^SJ~ z3m`f`Z^3^+$4Ju-BR!f|&X7!RiA%4=HwrA{F;l0`O_Trvs{|;|rTzSp+ z)a|x?$G&en@ie_nhscTbvaWl&Xms7z#We`25=`ES$Kfsm?0HJt+twfJ;w29EuF2Cu zNO`oU6MMdK%kbv`Kgh$L>!}{A*MJE+3>(&9d=rUd6D+}Gz;42eEGFQb+^@OoFVGQ4 zH8w$&*)DS7((w`BbR9FW1?OY3a z;+Ix)UB9Q&X_j|QM&kEZzePJe3D6C>m^+SGViMkmhAo}AUm zVZCrf8*=hAfb*o5yg@r7jhm<0*}1vJ#ZswUu2ibkT5V-zb+uk^G}hLd%_O;fdwqRl zV{^0B+S+QjJDu(Aot^)y;u`!l_@2Y3y!2@=%{7?j3Pjwwxd<(Ha?}}e3BQxmAtxbc mi}-g#*5l6z-wZyo;-{eL6<(ra<9dE72-8s}JA?k2rvCtAY>?vs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5425-nl b/usr/share/terminfo/a/att5425-nl new file mode 100644 index 0000000000000000000000000000000000000000..86c8672065bb9f7fcc5cd537481f26f20d4e7a1a GIT binary patch literal 1634 zcmdT@O>7%g5T3VNQCgIi3sTEU$cMa&2&L?`Ma7E&RP^Dg|)C1yLsiIP^y;O*6-EW?46y?T|m(0vJ-@JMA z-gx#+F+p$8YcwRjGYfI-d#*oRjoNYC>_f0#j~$ymGn-)NT@EJFc4Dy>ZC0v{M75TP z3ZE@S4I-icSqUuSC9cq`bc#Ntj$Q#g1449!UV%MLZ;_-S8b*ACrYR3Q1Gz@?RG<>A zQG>R1Zj1Kl3yr>}n{+NPY5wr3e;a4aF_YN| z^OCk7nID^>`H9Be-37CFz&m`x|IuIlkMF6PO>^J8ZCc?R9i;)XLb)pIjw~u!cV%${ zM6v{xv%)EuOAxlarRD6&cVzK>b`R#{=s2hx#?uNNSJ`FQ3lP`KL63D=huJHTX*vPz zSD;)KXv4}|fl32iht;%J9>?_k8a;cFPJ*hi@*+k($@(jUBd%?aT4B~lAWhZ?U@{sU zalq;v+)ueGsXUd6^j)2#ay;eQ@UkhD2~;M-Fj&FitJV&#=qsoE4U+Yl;br~EDfr!| zSm8LZi!S9CAw|d%WEp}c=JBTdDumz8z0i-m3~&*`Et-YQK)6Y+gVr6W2;b@YUfEiz z#x!soyL2zOxCYaGz}L{s`97HF1Fok-TvP+Dtifa-aDB}vo`Oi)ZgD-4NK7*46oLAS z!wqcCx_DQZ&1mgGFTzWrcliCAy7~IN-pHUY0S^gZ*OpmX_hmgL+cH+JRP4KeUKe_R zeitUWe7nCj=#l~AX{jolmX@(~y-R0gd_pdrl!~kz9Ya0cNj{*J)?=Hag@r<4dAU?7 zm)F*!s8Xp`YqffPeSKr2(TL;C&8@BN?VX)wb9cAZYPa|H_V@qoimmXs&i6bw?4-^* zDel1>cOc-o%?22_x5up^n=B-?$%@I^CH<>m&iEt37lTi%coi^JOF2`cdmY(?j}|egl6@Pv~!YSMZiDYyjkdS#eU# z!54wiXdd>8xGrvrMNt+NQAOMk9kC^Lbbd4%ireBd@H^tJcrey@=E3JXr)l=hq4|YrMGJI@j*u0}s%$$lRH4~3KSxuL8f?5evoQ+(+MBbkZGUJ*1s{nV^gz$fQU=p$YNnFF{%*MO@4x5#zSxP3b!cGB3ZS(RpD4e7{X zjMKf~?KPR75H3V3Cnx0Wgz%0!#oKDaduwuTLbw90D82=CX}fVJlgXT8&56M#52w2r zTySx+sF2szgIz|HMfdRj`)Tue?)b`}Ga+9RF4vX?+4f~SkOP@0S1OKOP%ot(sGrg- zFEN-54O1~hJ||U!r{!c~-ALuUOpeORlvHFD>1FJvd#P*4>1$i0rKNItWo31>R$E`M z*Bgyyv(;+1JDrVWagfQca(6U#}20gL8R*usvn<5$jh5+}9` zB#RqyTvBE+05CDnJ#$EdM#HmGX<|&BEWvL?wQnL&LuK;6B)DR*8l`e zJR%K;VG6Vc*oUh10XPOHnNEWR=aDX=*$_g#3^9nq99QSzHr!*<+GU@G0+f;J(B`-U zeR$}1JodfT+eoiRk=8ptzkzp1AK(-0!Wa1ZM~Bwm{OG&yfBaRYsVASG@CyzK%AXKZ zVjAfJN0bSO2=a^{Uqc@kH%Havh^Tk`q(=Fkcr@Z+{mDdTSQ-1Ld*~T=@135B=i-HU zDPDdytUML2qmjRX7OSAd z(Pk-lfRaXAM6>NGYLJA*X|pQU0IS0qWDSwh=)_D%ge=LxxBJcsZ^`ATD{(Atgd=qv)O93+iPp<>l+)L&gSOUR=3;h z_4{~9e+7Z@Eq>6V`yrbeB74N8cN5$JI`f^r@zFGbbVyFhc0l~y- ACIA2c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5620 b/usr/share/terminfo/a/att5620 new file mode 100644 index 0000000000000000000000000000000000000000..1bb40715fdaeac6142fcc6281d95d8ec60469312 GIT binary patch literal 630 zcmaKoJxjw-6o%ib;1}ZH=3O$F;vmunZHt9stw_)oL<0(ODUCvV~+Rzatz|rcKr{mENC@xG&MZRL^lC{>t=T|2w1g z4b^XPM|zJ3JWBVInRzx|>lZ_>a*l~PsN;P8cbq4L*xCR5Dvk$Ck4kzD5s0<{Eq ghh%mWs3zbgAa8Ej!70DJ3)O%sK;@~-LmtNQ4ZnvDzyJUM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5620-1 b/usr/share/terminfo/a/att5620-1 new file mode 100644 index 0000000000000000000000000000000000000000..7212c7a1b666f7d0f6b6d5c396b8f336e7bdf65f GIT binary patch literal 547 zcmb7=%}c{T5XE0q@QdO>yttPfj0aIjg0+Qus9Gf0mWmB1$@k8uoVKPYcC{1j0 zX+QP#o&7k7?Tb!(2w0dp))kg;id@b-GcYIB0#>mmY8_kHrrMEem(eBrs7gI{{x=?? zPIrS$zTKR;ts~toE+t?ojv$kaW{VlI3%Y_h;-%jPel8K!9IciW<*lG%MUEA? zWULZg`g?{~BdicM2@QhN$*9CisKCnpO;xh$vccgC=|aO>;~Be>=OgLr5mIuUFNkPl jf_I3sor!uTnwgL{x2@oa-+lsPA4VBQiOM|G#4vsU-!cty literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att5620-34 b/usr/share/terminfo/a/att5620-34 new file mode 100644 index 0000000000000000000000000000000000000000..a23f838bcbf8b9a616639034de08fedbf0fffe67 GIT binary patch literal 632 zcmaJ-Jxjw-6g^eJFT}ykEJ2JosHACaiv_9HA!rMt1%gwvR5Cp-&LHq;Hdv9K#Iv61G#T?}CgN&$VuN)2EX-{GG40grf+?q@yoqN7r;TD?(x#|J)j{)It|!SGzeTc@x=;Al0iC~E~}D{`#B zC1aJ~(%&<@Dq)4NNvIQ?c1lH7LU~s9Z>o@0lMN1ENERC28qe6}EFVc$kC2k+ju9J^By*MA0OmOHrdYsuIEN>=2mX!P7ZT7 zU*ukPd4xTVbBeQ^=PUg8TV4ByHLJ7S;@hk{J+y(gknXhV&MCOlKziS(FK+qVpf7Iw z+*SmR;r;2(abWx9cN6FY9i$&J%OGkZFqSm7H2x8ofK+uW#vj3x)t!hmeov|b0k}ZW z%V)bw;dKQl8syK);dh+je;di01@TV>VCvwHwq;@HaggO;q_kbjwhIzkCB0kAZb zLWj@+fsP22FIvD!fE}U@pxYq<(2>v?a2B9jp)lqU6Nm}K1Y#lsvLFZW*9w_C4JHA~ e7dThoT!C{1ZYH8YHrSG{4$Z)GbCJubjnYpQ#6m3q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att605-pc b/usr/share/terminfo/a/att605-pc new file mode 100644 index 0000000000000000000000000000000000000000..06ec8ffd3dd057ec9e683997ad90d1afeb974f50 GIT binary patch literal 1529 zcmcgr&r4KM6h8MLW>ywSKX4)*)ksCkd(W9soY1r~(|p(bweUepC@6`Dh=_=Yh=_=$@7~dA!l2xAhwq&4o_p?h?>YBPf!Ix3 zXdO+6Yuu4Y1WbQXymP#&rLe^SH^MO^-f1Md`lCj)H`GNWC-mVPf9D9Y^8QO4Hlv>#oz~MP{+q;f-Y!w zkuKA9&2G?5_*=jvaEI>Ew2mvCIeJ9%v_OyPDLto`^qSt%d-_P9=__)+qm(R>BUI*k zZ58|T*o5_bu>;n-BC{9~S9Iujx3;~o{bEpar8g`_(>zoElDI1FrdOuK4EU^gn2xC2 z`QK)lyI0E>RwzBmh%Aa1;+1$K-iZ(5llUUOi64SFn{zpjH}h65;GMjS3wb{mv&{i6 z=L)Xo8m?o9o4AeJ`4pewv;6m4_54Flrb;i5t#U`^?*Gpx_zHX6c3MLl$m7;}+&Z{= zKzVQ28@Ifnpf_%NL$wH014n?vfbCO}DxeW)AkRKC55ymZv6Qiu@tuPyQ>-*?d{O+# zJZ@AOUqrDK%HYa^=D5eLghWZuHX|u&D-oT32;>C*v`|+UTsm3bs{!*izyaja+DZ5( zpc!ZZS^;(IluW9YW0)TYR81-m6&;1sl`DNsl(;5p=dY$jyrv!MGYq3f#jFt6@=!e+ zKysxotgIil6TSrXqRvvvrL}OV!yjB~^9c1kJ3kd!j84ZM^vxw^2X7C}4BsD_OrK~5 z@#|B<z%!q&f-mNK`5Df)XW4WJ**o(GiIb zNOaUe=Nwe+pmPp7=QIQ8oJ33_CJ~c}$zfmw7zOZrQfUtYLjX#YI9K9aiE|}xC1ZeU oqNTnq6pW851T8m!1-H_&@X~%WXpQeVX#33y#4s~4^O>0a1Rw+I;{X5v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att605-w b/usr/share/terminfo/a/att605-w new file mode 100644 index 0000000000000000000000000000000000000000..5e37491f78dc558c9ed8d7bfcc443278a8d16612 GIT binary patch literal 1379 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 P_B(FC3pQQG&G*qCWkiJO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att615 b/usr/share/terminfo/a/att615 new file mode 100644 index 0000000000000000000000000000000000000000..d160c58de75fffbdf8cdfffdd8cfa7b3bdd4c1bc GIT binary patch literal 1607 zcmb7DO>A355T4zwXe%H^2vF%m=n3UjX@Tm!m-qafZmFA4LI|lhlvG7ApqMzZo7l0P zIEmdlIlu)8At69QLU2Hp5Eq0v^w1M0kb2?5g+mVrap-|VB@jPSB=gPMj!LNnyyTnt zW@dMGXJ&m!JWdbN-E>5}r}B+PDu~;oGlyqf5bdUYcfML)udHZyB)z=Qa)H;X`PBlE zu>V~l1e+wLX&)V=PVZw&0z`Z0F6d6@VRC8E#)oKxo}y8jfHg_yDMxu)pen7|=q9yj z+p;(4O?n&bUHX7Ng8qaqTmNVDIekf2z`vnu^gHcXuM(ZkUSL1K-#|}yI`@l*#3Avh zcuX7?N5wG_ij+8RqbGZ7#>BXo1kdj7>E^gyo<;necvTcdO|-=8;w|yM_*i^ucYOhQ zUHoYI4J&U#{vv)8e~KMzpOfe1?HSoF$`9og8@VdK>aF-%Uc2MkJMI5}zHk4L_q$s> z-^=Ur2lOS>=I;b8|t{PNB>IvnmNTt;YbxNI96KYCL zs~Po@dRfh>g8KJ6mHxw;TeDPDQ*Ehtl#`pKy>u@*Iq!m33%r8%YN1zHg=50WO+q~n zu>M}PfoT5T>ut$>CY3kqQUkHc$NoQZH>bO>^u zThr}SLJkh$OZi^LtEIe#4m`~?1`WG31dX~h0*$+Ln2&11PP%pin)Y;sH;;IY0dL`e zr)fVq38otB-kWLC++04txL7PMEiEsX%azK?O0`<6)$6OPYio_h`ufJk=4P|mYF)f| z=~BDBwY9yyTdJ?|SLce3KN+Ns1t~6Umdi@`#bgqG7Z_JAWZ`m;T(mb^2k?xuSe|WQ zYG|iH*#_e=DOfZEWhi~2Ei}CMX5P#sPctTJjIn*M#+d31mQFI6{LKGk z@-xXa3l$Wk2nu$gP^61?p<+Qn#El3-K^Nl6g&R@Cg`f)+Avk{LPNrZNf(zfwcg}at zx%b_BeqO(F=w7;;PO2X{*K8&n@3dpbitW+qf$1nLKbo?mbJfynx#CA9GT({ zsYTm{y+AM1Ww6)i3cUsWHeECR8}u&Sqz}PAr(5&~?HDhsPG=vmALvtu)e+UNj)HeO z#~=sPDK)5El~BWK1ooI3hnxfgHKk@$MqL1(1^(?RAiks;YD>MSE~_`xRdqw%R3DpN zpF#ejem8u_$UPc2(g*ZGeGeFR>Y~wip0K6g)3;3IOa1lkif{C{`aAuD{z?C=f7QR~ zKlP6OOKaZC2e^+9^AYanqkN19_!JMa%LyLl5gy}lp5%b1c!o24foHkE%Ut0Gukj{t zvz+`qzr?TbtNc1&;WzmzU*qfi4!_SI@JA+o=k5M4`;-58+Nb;lf5qQ(B%7gqbdVxh zYssoPR^GR2u9a`VF%ij5LOlV9{zrTQjxj)V+Vx79Nf5^^8FLZF!+;x?_-HreyPo*Z z0cWWX(knwaB3u!1iKc`lZ;N=D4#80t5ibebMcP|D{(x)SBRCJIM^f;oe7g-Z=Er@{ zcVfQd;Wp5&Ew@T8!f+QOC&nTtZFvjc+2d!-^<88c6o7ezkzBA$kuV3$0eJxa5bBF9 zP*_-4UM?0(rE zw38Tg5|UU((n`t{rIRu%HNb@!LYvkBv?W|ctE80`ir6ysVG-B>Fj#@~6B`5cJCOda z0r(IC>Gvkk1ZH8&Otb)WF02Dp0Oy3bL?FKN0OlY-LBjxg9KZksj{~qnv@FC|6+Qz< z#iQatuLE>9z%YeV(2qeQqY#Y_pOr-zkMKz#1TaOROo<~OCkl$MHjho&1oFzJt*mc5 QZY=I4lBuERkWGgE2AR88V*mgE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att615-103k-w b/usr/share/terminfo/a/att615-103k-w new file mode 100644 index 0000000000000000000000000000000000000000..2f7f6651dfcdd8059069a39bf00feb19c9d01cf8 GIT binary patch literal 1695 zcmcIjO=w(I6h8N!V58Qyiwe={;w|zdg+|_c^WMzF7oDWWI@a{PsH2UU3Yli|(_|(y zNoJCnbQ%y9bx}}3q@ashkfK?oe^K^uk_dYTm8NMLI0$G z*1zd({k#4{6Zdd0@8tu0ko))$TinkBe1skLIm5#|!egA{ah~8jPx2|A<`OS(nQL6< zCd@_J{v*w~zQ5f6m`@#-FwM(I0^X$?p9Jxf{IMl;{=zqj>a2y3hXT6||o&<5dvN0E6+z)uZ#7DcK&QkK{iJ?FawkT_+!N5c>qhq zX8??m^kr;e40s%P0+7TX1M&b;e*nr{tR!y8iCrQWXgnjkMCKXK_%4x^jYpO>MAkJ# z?$wY`N>;WVue4%W)-mz9C9vI3!fP0u^>J?87vzlGN%!8;l)xr(D96s)wUk{CT{{#S zfO=i(f%;wQg9cril&#vZ(_K3anz6%*Odhi9`|R2Mc1SlhL%R$EzFU0qwN*Bg!X^^J{Yv(?(%JbSj?K6h?w>w2nAh~J82bkCrh zy4y`jVpEbbnl$ z2}DxwO`r~(hAlnO0#Lbl1*ihpC&nQn@tp+F2N5nbj-ZbLXn^P;0CtR$#duHgBp^3# zi37EcP~8a46h8|6AT%h!H3!9EaRfZOwWpWkZaIm#5pRfsSQHJ>5$}o*#Ch?F-E{%- zn)uQ3>sH=?{6+jG{uCS5Hu9LfJ0sf#`H}q6M!uF8`ztQVZ|}MGUi<%_@5(>&es_oG zdwEU%Ab*nA<!r;Nc^A6!WoSsO-pVnRnW~d|WC$%5pF3^F;cS`Db0cOBwaJHeb z#9j}4(q25^`cRIUp+v3Oo3MZOA50VwkYDBDCX(vqW_ zgqvkOhc^lDv!2OK!WpfH(^|rLE#V$oqIoCa-e@$ND=Vw3t=8IFyM6lf znKPZv*|Y2GTcvs$e>JY?zXWYE@{2&=dsW?6ICSKk&-3EbOX-xnC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att620 b/usr/share/terminfo/a/att620 new file mode 100644 index 0000000000000000000000000000000000000000..9e7cdc8106fd7b68095158f25560a6b053cecc2d GIT binary patch literal 1616 zcmb7DO>A355T1Ptg#rcj5Q$(_dX>5;5ejs6usW+2|&9=)7eY z=p*_B>{I%JzJmUiE?WP0^aK4!m%x9ftMmsY*1Ja}$y2~H0Dt>?I!XFOzc?Tc3MB@` zknlw$vSP$W^Sw1=VnR%UPwnpM=6F~hNBlie63e0`I^sj|vG`1UEiT$!-$VW)ZdiWH z$~%z1i+kcvky!f!XV!T*Bijw<8|RXZTz0PXR{Z2#edO9l?f-wiYyZf5{XWmH&JE|L z^P6+qx$E3>{&IwTT<(?o;tV}O`zTdZORC|kvQ~{imDk`HPZf_qy$!H_AU+Pq zD8M=wL{+>=5I?9|a}mZHKoD{~-wo*?V*fELF`)Mw3hKq}Nnz@+Y1%_4(Sh(CN7fmiS0len|mKWNX z9hz!TyupynVc;zQb2JkG=3g)X=2n;j-T^S50{U;@Gw>Ps418u2*aEfzJV(R1*MSWH xS1~x(;9P@q4Q^ys0q(fZzbG^WKeaM)71Ib5bE>F4KNt?9bezea#QU3}zX3$oYH$Dm literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att620-103k b/usr/share/terminfo/a/att620-103k new file mode 100644 index 0000000000000000000000000000000000000000..ff3179212f7d22fb9e5cb80b64ab75dd1986a189 GIT binary patch literal 1706 zcmb_bONd)#6h8kw+EHt*Qi|3fM(ouYWc1#f+&sM2I8)nBA9HVOr;eRaY&yxjl1$!{ zd88wv*hM$9P*4#R=|a(kf)5lbxX^_gp`Z(K<-(09q9EACT)*=tDcHfCx%vL{opb)z zdHi=Pn|9N78dAS=uGvgD*062Gik*>(2PUG>ylBdbPFG5;@}d_NPhlkroU7#Oc_O9% z-9af)Ngbz~=q?I-KhX?;=my#b8HRf(N_(|`kkYh|MraJ$5t^hd<)}avYG`kpI`q6| zFVRKX0DFaAr#B%l(YxCIA$>xh(-+|1(iOT&p|);QVR#F0D{zO}t@fyU)P3M#XsXR{ zNDV7nxhk#psS)T0)M5C>ffMSKI<3yA9C$&`@5iuJ&ck0)Ew!#Ls15a+dRx7xK2n$U zs;@Erss8TnpvM6NH!^k@w;Q{_!mw^MwY+}c7mZJiE86qD@ndhsPsY#2FUD`iAI4wC zRb$gI_(mS!?YxtB@tqvud-;BTkRRelIL1l#IK%t-5Fh1$Px2&Z`B|RkSuS#g8{FnK zevV(@3oIvJ@caA$f6SlpW&RTW&Hw4UKE|#3SNb+v?f+%@hQH$< z_*af(r)Yq7P$X;4n^oJ)duG)!^K}@;BH1GlM*)%l@{hqV3W&@&ZV5dJVml?R&OzA^ zIC1fhbX}g~iv2h+PLUz&HW0Ur!Ir_1AubbA!jjj9IN0FmPT0yl883;_L&lxk`e8+um|u5vjDaT<^jx+JjmSalfWt9X+Sb?5|{vxg98vc!;%3_#`{DvsVz_R ziLBF>V|^k!Ym02FiR`P1Bv=zqYF9EXCtr(3qX)%i=fV0vaW^nI6UV)gFO1WYsBYep z6u}{KDa*{5)r8sfY||6!f;wI5fX2Ht4(fJkOpfY6Pj>YrXv*};vN&xvrP^je%4d3X zGewf9x9jy9YMIWS&E;lhW@i@`ip5f?TwYwPRI1fltzK_5n$1>gX{p^_US3&QU0qx2 zbk3h&U%wWx<>9MIT#pXhiHGfkgf}I@C8ffdr1VM^a4@7%tTuq+1T7Ry3c5%UOWHpu z0?Pmz%a^KRp^vKjQspH8FT$6quL4cr9CYc76#(@MYCr|RIRP%=i)|7>H~2_v;6ok+ z&<6ft0D6GJ1$bV;Gl1khDh5>CM~!{7RPYq!AxK0NpxnV}nS>?@P5=RbUJ9gFYb-YAb(eB!7j2~>^(*IFt)ycO+g749-06-?+&>YA?Z@qe6Q8b@+m%Id1dA(i;7m2& zC=eV!I}PN_V25%{-f9`Ukjt95l=ZKzk(Tk2i)p}M5s zx(xZd`m?u#mIDTEWNb5TH+F(WQNw6yefnf&LmdG`|06yI$0#5=>v(0%B#7;lwK)f4AK$w6N4Q;erj0ZilbZ*KS#iKC<52o<|+adJG5S8nHC| zY2WI?bbZga6Ta=?QqYbimrMAmIhc-|RKc!;qqqwAQJsNL6=#PXH%?rva(JabN;K4faFn3QGkv8Q&yQN$q)jlgNA8b99r) z&e|i}Y9jk;A_dmOm)@04%PG|3@%RDp*#)r8N5V}k&bqia>IFG1HR;tYMKK&Am$J;P zSxcHN-!^@r9;nl!4yfCsE~wX|2|20@JJqvOplQ>u$jceCCEYfQ(mvCtn<y1XU*=n`hOG};3^76{c>gw8Bw|n;N`ueqm zEg!$SzofVI8OfI48s<0`W}(n1%pl4Fl){0LCCV1i%i_ zxDcOL_zWO*kBb8x576TPBNaXceGnQMg=lwpQWjxI!ec-PV3tCe6iAY*= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att620-w b/usr/share/terminfo/a/att620-w new file mode 100644 index 0000000000000000000000000000000000000000..462de521f66d0a96a3fde2792f52867c66000902 GIT binary patch literal 1620 zcmb7DO>A355T1PtEd>hdArir=^eXkCzfq+YlnAr3tt#G$G{Dgr&eSvyfFm4KIgGvCbY z&hE^t9~UQRh#sO*@u4htIvM4Ub$f-mC+1vG?FMP(E;edg^$qRjvg_4d7kIr<-mDM_ z``;HrunD|D571+j3_i9TfapFt0G%Ym>h$MLsco^XC$UrB_kQf$6#WCTD zQ86Y05s91_x6#62&7_zXGvKrPd-^% zEUR)=*5$w7sr4V$+?i!tUY1wn`!ZFUr-O8uQYCNIYX)9Ldrjq4HsP2`l}dB zdUfOTF)HM~iXK-H|d0^?agg&Z&RLs~`be-W6W)TsXmNK}UiSSS`DFUT^B_eBUc zGVv&U^??p+Yz&Z(R*pZVeE(@2jBBK_@MpE(gBj{b2WcHdxD>SV`EqF;ufSA%QXN@G zCU6z-)3yS|g`zIANU35Ix&l;zC14rAHnR$>A>P2+Dd0JPt9==m15ocIl$)e|7gWIZJ`T6BI3MD^=ndo| z*Wd3^Oeq|~m-4;5*UWew9eA2)1giQ}frfn=f<}Fs=A(MBgbF#I~aPBQ& y8^Bcz&NVpK;9P?nnGJwD9`G*;4Z%;Xf?TBx0;RlH(te=QVU&rpxpR1b^Yj-1QfsXM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att630 b/usr/share/terminfo/a/att630 new file mode 100644 index 0000000000000000000000000000000000000000..ab86495f6001b27fd8c651da2bbeee1f3cf105fd GIT binary patch literal 1146 zcmb`FL1+_E5Qb+UXcdA74}yCMlvfo5lkFxcuC%ra22DfN;Gui5xMBlIx~W@hY-$k{ z6ciK`6ciK`6ciNkAc!{)UV8QF)vH$z>p!!*BzRCPeenPDy?OIycC*>d!!$w}+QaKS z7lx(Ld~dQoQqKW$%Z;|b0K1S2&o8zb?YSlqQ@R*SS-qc^ni(3RLwcB@Efir5(GJ?F zw2SuAeo$U_HoOEKq;cIx(Nq$TQB~ zIg0KMu3NcWnZ(zB)Jg5&dW-Y-^ohREI(?(>^n-rVFUqjgWZ}cSPx*kl z4KMN-yF9M@uKHlVKCk@cEUsGnXGOo;#_1a0;9Go$@9_hE#83Dczu;H=hTrjrO`iYp zKl^>=uWWg2>b@`Rd^YYL}R zsHPyD^hnw%)KidG(u^zb+%$ei;zeX9oQ8N2evYg$vdUzkkqpk82@@1e=-S2=w1G~H z4zL(w!33kGX95Qnx@F_GXd5oi$`4=bK#LG2)k0_qx&$plm!U3n1zLf6&?Ld2lHfs6eDMGCy?OIycC*>TWg4L&+Q*wb z7e)Ee%pu$9WNoCD#x}hgH2p=`LOPmXY6Q)>dfIl<^`JSwOvIEd z#!^=A=TS35!?at^hG+}LSi`h~b}H?n{d5qN(VY#?Lq}*__i;Sci_=tAI!R~9Q#z~e zQ$USgO&qtBR;Z1*4sAeJ={nuiyiAVc+XF27yL6u((qnqs%RleMm%r3W?cjQi^SAVY zKG7z9p|A9fzS9pHVyQ{N_woVd!|FCX$7AgBxbEBPgZ=uv_M5YA)y5wy`rZDWuJAR! z!MFGh-{S}Th@bE?e!;K!4Zr)(^WXnvzmNQxEpL{#Qi?3EWO>ICPCyb(V8X2NT@%{I zFCj4nmGB?5ykpQLGy_$jTmxo{Ip<*oAvH%x^YtDiiKEz;wV5r$l1`XW4WUKkWM;R_ z@`~W@)YNvMKAGH6s3agys2RDYa5{l<0@6v3q@6-70eL0Oxbn_*xjl&?p|v=jLt^H{C51PxG%PJ%O7!F99H49&s1Zh^{Fk<@@)hFWxkZqXgOOZQ~l zb??&ypIrB$q(}4^;}bvn6yq~`?t3rjCB358^oHKjJ9!-1p!Xs18zQu~kn9S@`fN`rb2d#ujnZTA4v(OpnEHnjWp>xoAXd2@6xocj5n?^2=oZohjlE);k6Fz`!X}k@5 zVj1Dd5;lv++7Vt;ruZHtpaTzZD{*G;PK%_(;PDDvfwSVs>L5?48>*w)R!p_n*MX*o zCNSb*1gLu$1!^897+axwkO|#S5R54>Q+iZSpvYXva zHpy|5m73o7oK_4pkpbtJM_~wgG{sV&V^*eWWLqie7NxpNw^W&a- z?>Tq(tC055Zt7EibD_})9j84oesJ6Zu{^(-ajdCod8M*w6-&#ta-n6d9d;dWVY+1j zm#T%OB9YSn9ifz%q|VYq^aS1QeqtE_(F3##`bj!KHudRvKOLt*8m2K=F}*>PG(+>$ zpr($tX_Ma8>^-_dAAx;B*Jum+2Hn*DTl5uuOW%Y43j9X4pc_V zoFBQV$PI8dXwQ)|hI25yIrI5Jv(JH@a^ZDkAMHV59UWa<1euw&?L5HSflQ!(IV~3y_ zJF3XytlijSPw%xOGDqlPGD9=TW~1)IYtrOop)fNuJ3BwWuuv{nDvOKNYOPkUFD)%E zHySG|tE+2k&1S20`SSXDyS=foxw+jPC&FJ{E_S5fO~2@-mj#IZk~D%z&Q2o7^-_M2 M4l~({c)1hw4~+_RD*ylh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att730 b/usr/share/terminfo/a/att730 new file mode 100644 index 0000000000000000000000000000000000000000..6bc6b74ba1bf64fc809dde49fbdb2e3e7f5c6746 GIT binary patch literal 1882 zcmbtT&u<%55T3V_QV^v<2&B+OVx?xIAT_YN_S#N1#Yt1z(5Bu%0%^M{ZHS%3iJioW z^V4=K!J$YXp$Z8kT0m+KJpkg+0|yQqKe-oI$EI>+R&^)AJA2> zPv{zb4t<@z(*B!to4%(z;J?yc`ir);SE)GO2kZyrcc7)?_*wP5>QFB!OLeMlbwoKT zsWPfx4XER-Gs9{`je?Kw<}_>Um1hx;R9=FSspiTp#ABqpdaSRZh_52dP3J}*TX>%6F5HQ$u2A(gTQQ!<6g!Ic0t_V*=Qlc4Q z>0Oa5Q#%}G5y=vSr(+)cc!WRO+3z{d>p~ICz?TV}I?P0n4E(@N1g?*}KzokdDLo6r zn>D+SnXkybrLJ%Xd_-T~lO7QYr^w7LLFa)2Fb&KAxMWxa<`7@R*7nXlZy1 z7zfb!8&G0+*@Iup(Y}h?^(0XYl z+wt-bAFWuHHFj`3NHDy-=7bQV`P_Icn&}5S)LH#C8NbNf8bkk0QX6&FW z$-Q>64h#oM4umnJ8tr)Os7=H};1rE+;;VR3P3sZv>9URkMDS6A28 z*4H;SHaEAnYPEX3(YSnBW``%`(JuZf(n?>Cn|jqvN!RD4UC)*6gOVk~o@fcavmIGi z+Qozt60+o#S$HS83V^R9heEk3unMdJ>%a!E32Xs1pbj(u+$Y3~4KcP5`w^Z1P6Ak^ z@J#?Km^zgD765Q mwWGjsy+qPar8B)3u;NHPoRX7zJTe%)KCLk&cE{A*kbeN~v-yYs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att730-24 b/usr/share/terminfo/a/att730-24 new file mode 100644 index 0000000000000000000000000000000000000000..cf1e9a2042de51f038be78dd9ad9ef486dab2122 GIT binary patch literal 1898 zcmbtTO>Y}z5T17@r65X!5J;hm#7bnNAQ9MI@7hi_#Yt0|&?eqM0%^M{ZHV*X#7^SG z`Lx|ia3~T;s6qmX@*&Yf4}duIz<~n?kb2<2g?lgj1%#ACmuFrlQ5&c@)X6jR%*;Ep z@665~Qz<$|kJG&BXql{5GbyLb^XpI}Obv)pdX(B=Ci*uDZoos-LXSWv$+KipyN-5JHyx*b8iIA2CLm+FNJT2^XoXg3 zQ?mxWM_0iWh(Huapc zRJ-a_FDXa)Dyw=`pE|jFW=IXIQSkBooMw%K@+{)9DyXtr2fLy^P}iV8*I74Ii_vO4 zW0*#gyaFUi2C~OEZuA)g+Wx}$O6!AFzccO_JH}n(5Fg>ESfXwGJa=ez@a)6eUH_`< z-Q&q{$T=S1K|aF~kMRV@e37SkmKS)5S9ybLe1+fVtNbB<%%AXQe4W4M8+?<${_n5obYgV0TdZh*T$ zdyd>GGY7+)GdoY1FUq~8u5br@SYO_g9ubPB$jmQ87l3JC2ABnK$*2g-Bff;QLqMNS zH{+Ag((o8C4xsVZp!7hcZB0h@h+IH>Bwdr?JtBp)N2+NeGqiI;YhKW>d+n<5>88VP z*j;wG`_f9b;}z~dTCpr^?A#cnWu20go-VIoS@v}3gsBQL@vc|#fSlWn0Xb+d&iPsf zMUwMVatqI{x$>aGyJW(VOEpKHArse?t{i!4+OCE!N`eNUUXyyDev|s3L6fGWb{%%6 zX=gyQc376=Zo7Kao^G{6dW_7B8Hc-zw@H^SO-|0t%+AiwFD#Tw~KSt*x(bY;10BZEbJYYV~@farv^$4o@neUHny~m7Xp){j!^uuFp%mo-5l2B};}q z(Gq-bJ94hHiwUJ9WXUVD@J{j-0AEQSh4NKk4Oj;@fK6Zv*am7q9cTc!PlOj6VQdlh zBRT~P0$8Q!bpR`vj{vMp{te(w04tTpN=0u0Zvzv+S>POi2BH|SfD6DoxST8BD@KM7 txq$pQy$F%BoOyW9?&B(`&647Yd6IGgftKxm;YBC=n_B zFGArbrUt|aJx<49Ci*u*tz^JM)IyIzC&}|u7~m zXhX9Gy-!!cKBjB*8T57fQv1K5Tl78M2LF}r&|kEzy-Fp?0pK7Yze77ZNuE~Es#f)a zvQ(SuP%kS-`6{b=RIfU@b7oKtsS)t8y_{x^{qij0u_~ytS_8YHK2+DBztCAXRf}=N zc+N15BzYA`k_=?Gaop%N`n7$-_)6>jRlhUt8r#M_;{YGxXIP@G{35q&w*Ty-+nxWa z>)q$caL76C=K(&$5s&gX$9$0|d4}hCkym(~YkY-2;H&%*f5M;g=X{;N=9_$rzvUnJ zHvh;!@z4AV-{IfxtNLHJ{{4UA`*Z%_yZk5r{m`uKheq~SdNlhUoAG%%NKcU&+eLfH zwF{xW|QGXf0LVaT8i z;fnA?_!7+u%j^liOh@1-i||Vjo{o9&;}OAZTaV{BuL(sk3tu*L>M&EG9|obD3f%yA zf%Y7^Q)U*1H*0pBFptT-rLJ%Xd`Ms3lO7R@Cdte%K^K52U>cYKaLK3$%ptyrvx7jd zPB-I|(9-ZIFb1IU*P--4rEN`ycZpm;dn8?xpNGsi)Zu%8BEnT0Nc0E_N4@#B{ zd!i-y?snu{X%`bpNyw5{X5pRWD*(QdJPPHjz$&l?tOFasCa?w6fI83saGwY-Hp18< z>_>D87yz(J(Hj6(FdqR}nf#l;TL4xnkClqv2HpY2fwRCl01ZSjU;!6^cX2sazE_M4 uA94Ztae4tFXUC!AdMQ6hXR=)vu;NI4DJ>`Ucw{hoeRjr_+8a}IL;e9LxBWQ) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att7300 b/usr/share/terminfo/a/att7300 new file mode 100644 index 0000000000000000000000000000000000000000..b41843d6a40a7d583c1dab1a8ab7da28442fbab6 GIT binary patch literal 1011 zcmaKpZ)lBC9LImZmc~kZfx`9TzPZ$1tmod1u|>Pv%r^I)bFs_*ByGFH#kR{fHm)Rj zK~Y3e6h%=KMNt$*Q4~ceilQjxt#^;lIon=gPknyh@9&)Fobx@;vrw1HJSmZP@WvqNtBc9@#qH6oY3+z+8l&lq}9n-)>|>(PwNl=%#o z$P5X2N~K)pdbdC-q*4;HoUT^tsZG!#DL)&A8OeIrMco29$;+T08TK^{56GcOcVtqJ z%Sqg6I0NV40$h?S)N61#y(zr%FTPe1=letT6d z(>WT3i{SrHOqWbMKe4jnAMaFZLYHZ+uF?i=X1-O^x=ypWPTj0M+OK&X(A_$!<9bjJ zGkz3~=?OiBp4IbuQ7`LNy{MgMMJnZiDTRhaJ2_GUK!fvak_cHkaDv zgVl(?Q+mp{Nk5XBGH$saacjLvN|{95iY`v*I>gxIaHZZq`TV2>!>VL!RxOvwE?KL&VrB_q-l}FR zg3VxkO2=-8$ATwY(7mE9oNwl)I%q!pGIJf(iCJw zZ&8j4I$EY>TGOmS+w>0D`}84QgZ`ARYyS=Ul5W$t;6KqX^cU@DZ<}g1+kr;_`E~5- zX7dU4lrq(`>X>>#y{KMRF_lz-N~u9Lyu0R%3e^Po)P7EDkApHod`8Wyl3EAbR`02g zp|9(#o9dA9xN*dI#%MM@pxNw&JZYRZ28|(Ye{OuC^}$`gHtrZZhT?Ya;3rw4CO^lW znjKvG;I{Lxef_&Uy?lxXc!)&U2S1MR^T+!<$2lbw$=&dE2TmPk zEQkkgEO33fiNAnjVu9y~krcyQFi#AaopN>ATDSv#R^Q)~G7$=|keMz)XMij)2h0OF zD$D_kh%aI72yj}bo6#%KQu72b383~@p>$8Ba!tneh+IH>BwdrUdqg(U9@$M3X``JI zy6O21yU(r)&$b-#hTUZcyYH5_9WQh5(z0b)6Bi~REo(?pdb_-gW!c%l31Ver;<=Y` zK+5ewgB+9>rQ%xpIg<5PB>Qw%Vfflis4Dn^(2|Nu2kj7sR_FpxY!cZ2lZOi z1C6(69Mo^onCxALoov}j&~7^@NOF%|J#1$??0_D|8DgGH#a}OxOnwy zK3^yli%UzTQn_5IEH789D=W3y>gw9s`ufJk=4QR#Xl!js?{HEE<>Id_rSx{WiI?1j zR6Q-_daev0l*}3CL`(3!=}5U!E;Oqj3Qz-9fi++q*Z?+x zI?w=cpAZilqHQ7OBOC&T0gO`k8h{Z@hX6(<{W@?Cz(}PrQsEoGd0+~76Sx4NfG`3q z;36=C%enH&qGkA&Gsuq;MTnFg1&-^*;(j98-E$Emj?`lbS*hD2jnU(?+osrln_3g{ E5B<&nOaK4? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att730r-24 b/usr/share/terminfo/a/att730r-24 new file mode 100644 index 0000000000000000000000000000000000000000..1bb2632dac7d51d4a79057fa74ecc6a7b339b1fa GIT binary patch literal 1913 zcmbtT&2Jl35TCab(E_58K#0AbKbg5+H%ZfddDGK;poG3-@057Z6gk{N~w-+CasjPJT1LnR)Zx zn|ZUxR6iY~hiOT5b3$s-zlHBkeV3Ra#AgPw(fn_Bbdrh|j78RaP5dJL(_$VBMfas(b6!2AmxL!e4&k<^+Pw1n*@tE#t%J5jD#58qIq)A?2@a?*1{d|bNc?Cl!;LKDw(M=bQZ_~^S}at zqtba`3GrpD9R>Pzx|w+iT56sIrU2CbGL-JARIbVR9+3-ZkECmIZjZ=D+9SJZB5kyj zLbtr2X`ixd!gDQ0tZ8@KVf)<*w&P{*URtp%Yx3eGq-70DN?*5^wJbXqI-y@dCZ2l* z2PEBIG{`}DnPg1MAWyRXs@%e}w_G_WdxcCml0KdUT~CmS>q=FQoEo=lp^Gg+15mF; zJ^=0n{>_p2>fcDs7QIdP@+7Ua~X@~S6&M-4!d-m4p^5wa?`T2!~rKM}v z3WZ{^R9apxmn)TOb!DYiTV1W!*Vfk8H#Rmmx3(IMW^;R6dWVy;C>MVfDW$L5jlbZ= zrRo_e*K=h6p=8c5Ct8B7SYFjDE)fD6Dh@H%i2Kmq9t zU;&qaSzOMQPZll1x12?OCSHO_+L_RCJwF!26Ft3`Fycr(9+#E6J<=FGKJ7O7`)z7X F$UkvW0$l(A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/att730r-41 b/usr/share/terminfo/a/att730r-41 new file mode 100644 index 0000000000000000000000000000000000000000..1a675a03d7a8b1ab98d6b9937f2f3234bbb72fb9 GIT binary patch literal 1913 zcmbtT&u<%55T3Ua(E_58K#0xu;=q9eLLhPAz=eA+{0j&vGT%HqQ5&c@)X6vV&CHwk z-prdlruyj^Jxoigt7EQOO~#x`cigQ*k57$&Rq6v%&rVrwzg5ZBtXeLUUAES8#mq9q zf>q5{3c2E3o=E9`5eh#sHAqd+Vd{d_)V~QjN(MYc9rOTnv-u=hbV5f@QZJpR0UCuh zM$?cHy+JuD=xCW%XkD`g?a*6b@6!8p9r|Osq5U`MbNZ6L1^CCzPq4R>#$I>Us5|im9XuR7wr0k@lLiDpZr;)B8ECJr2qU@maN?N@@da zN4=vygubD(ZmC1YqsCF=DWlo+fM&A~^0d)!3>m}P{?zzP>w~*~ZQM3?4aJAKlOJb^ zn*0oRX?Ae!{oBsJ_Vw@Z^zj)UR<8~%>J=O6e-{+WN}-|pD;zi$2e|HKdG{K2>RPyYL!S-ba)9Ng*t zY}H{#Gjxa^Av3abcFDCffnDmYOGlDFC&<45fQ2m1{D-N8|$9Bk7u)+at1(_Q-CU zNE_{x&@Inz*r)8O@NCNwZ`j>-(0;eP?Rc5HmzFKdn!Gp(X<5UP(%0=}EX&RYP7o_2 z6VJVZ15$1;8swn7C>7Vz&ylRZD!1_LEmsc8Tp<&VR18mot|!UFb)_mtPEFX=z{QrJ zKB(8C9%#Hp}1PMg7(-!L6Upz>JdBJX$SNm&M>2(J$vhP`SRS{{QSbg z($ckS`Fx>JEG{pXO678;va(XGuCCT$x(3P%>wj6D`5_rX%G_x#&<#LY6$4g*Qo;0emQFY?Q77t3VA{1J;2J zU=!E^>Ocd)eL_5Jh_;28k8l_m0WeD8D*#3?9Re7c^sB&m03(&gNQJKf7l3Ktb>Jd^ z0>TKefJ?wEF6YW8i*p zqpM~nE9qKJ(TaM_Q9&;pv^Lxl{suT(rvtVb8AZkzT&B0Yp*j3DIjF({6TVUpAo zW-x14=4?OjP-}M07XGZ(_6zm z%z|-YioC2$6on@8kz%#q6agbZJqasS?2h7B8l}`lV>XRdaf1F~zZs|T9+5z>Bh(r0 z8TCaTm+REimG{+`wUdqe%?te@b(y}+l#KFLIa}UdGH-Uyb6309duRJ^2e0|(!d>yW K^a1V%AH*k%0bD-- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avatar0 b/usr/share/terminfo/a/avatar0 new file mode 100644 index 0000000000000000000000000000000000000000..4a3f7f95d6c0c0922a02cf576143c92bc3317898 GIT binary patch literal 645 zcmb1Q)MSulU}l)iz|NRhmROQlWKaX46-rWzax?Q1a}-i@OLG!S@{1I5Qp-|v6bu*` z7#WZN3WtF)fPsTSlHorPFo4Pb|CyjPD}xZ2B?=}bfTT232BiAme>nz4IA0aW(qzzO zFa*;7{+q(ZK`I9)umrl%70I3MK(;3mAJf$*79$u1%S8#hzp>Y5lFK$NFr(BVc=p=wFe0RO{h^VFa{B3Ai^9-l!!5c zB+XSzRI3e*ENWF#RjUnZA?iz1)eF>tYOFzABe05E7}prcMUpiG%bG!?t%0ru>oEZu z&!lS2pe>*ys4Jl-X>dD%C2?cgkMxfj8?tU@@6WlFdm!&Yx^pceZZ(uRrfrOA9Xil|aO+1Xx_7Fd zAUG`j0(Ilcdh;3~;tzP?o_o$a=RWR;q+kqwoM1@ODw?fX38mH{vaMT%?V@JLdZBD+ zcFB?ry`md(LIEUr>X(4Dgb-qAQ$b+6?Q>@kgMtkUj1rDgj|=7GCot*qDJaC|kVaO# zr~-4Y>tz35Ez)(%o(orquX^;~iyzPj)(sZoW|HT*nc{h{09X*L3(ODJ59R}tB49l< zn$)J-5>46+H>nWw?DrxJo^u}PyBass4rCn264*>~%q+KgHJMtdbDdWc^-kXAaWhUC z)sZQYsQ<_`NspTmZl+_abh_A?r|*4Sg%X(_n2FBD5-;lk?R?{N^KI*F=V|xKcrIKQ k?@JA{wb!y*`)l@H`Lc3zaC>-h^l|)NeXTv#Pa9wO22+?>?f?J) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avatar1 b/usr/share/terminfo/a/avatar1 new file mode 100644 index 0000000000000000000000000000000000000000..15b4ae0edb0951c27572fb3644beec9b429a1d35 GIT binary patch literal 697 zcmchSTQ37q5Xb+gbq|8Xi3-W0M*p zqpM~nE9qKJ(TaM_Q9&;pv^Lxl{suT(rvtVb8AZkzT&B0Yp*j3DIjF({6TVUpAo zW-x14=4?OjP-}M07XGZ(_6zm z%z|-YioC2$6on@8kz%#q6agbZJqasS?2h7B8l}`lV>XRdaf1F~zZs|T9+5z>Bh(r0 z8TCaTm+REimG{+`wUdqe%?te@b(y}+l#KFLIa}UdGH-Uyb6309duRJ^2e0|(!d>yW K^a1V%AH*k%0bD-- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avt b/usr/share/terminfo/a/avt new file mode 100644 index 0000000000000000000000000000000000000000..d38aa508e932054b06a0142e0562c8f38ccc2a0d GIT binary patch literal 1226 zcmZWnPe>F|82{d^SPAK&OEn-a?i1P&=grQ#GtO$6L8674QP9xAb|o#>H60Vv4jqCZ zI(bUSi_oDc2i*JTbZ0868OW|Yo1Io+a7`j zX*cbsSCDF`7W@D;QkHD;DT?|ipbPLLuo7LND$UY7-K1M|7s?XdqZL{OdqU4>jb73l zTBrAzf20li3jd9M&`;t8+VLlTnn7Qtm~*?p`!mIM_7FTx zIAKBEkcVaY1oXcu^imzC;{wc}Qz>r(z6WMIy}<579fKc)oyrs)E^TG!s3B8S%<~n1 zVz7NXKWEy!OO;*#I-KY7C(mOnY=Kju`Xs-yNo>yL-8j67LR>+k@>O~cTBovd6L7Yb z=Ma^>ibc~Q2Ln1CUs(uMp08}1!~)n6>H|;}Ki2|9r|m3D(BthMMdV4{7!By8!7VsOW)1uR`Zh2GI}IC# zj=l=$DULY~<8E`Gv7^B9?O9M2^Bi-1+uZjoH(Sq8IVQZaR(SdC?_5>OTv`*ZuZeHX zHuKAwY2H%Q4#gUW>@eiVi4#hkXY1F~D$5tibd$W~J(bBUP+g|T4{!5v$RnH?7JTV5 zwPoleG`FofGR!Axy9`xA3o>*Q>dMgbz$;uMFLA$kQ*lL4h7EGGUi$G1>ZLup@qBT7 ND}k?%$`{p7^arygYkL3y literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avt+s b/usr/share/terminfo/a/avt+s new file mode 100644 index 0000000000000000000000000000000000000000..0d338a8ba17e05b42da58102013836c95e1ad60a GIT binary patch literal 441 zcmb1QRAUfiU}5NBh-FADE72~lan8?6PAw==a10AkC@x7XDJ@pW$;?YtNX|&iOHVCk zfCEMdi;>|!80?4A5FTNY0j{16&O+5Ch$1cp<|(0wp{gHTJP!uxXalWsAZcW6WLhq5 z#0z4AXf7bb(ArQDELRQ`R0I-00U)$605Uy*LRugppg2Ue5lFRkw6$u1p=t_9+M59Y D>{=~% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avt-ns b/usr/share/terminfo/a/avt-ns new file mode 100644 index 0000000000000000000000000000000000000000..67312e8ab6bf43efae9fd535c71a6ede58b77505 GIT binary patch literal 1143 zcmZ8fF-#Oe6#cUj1ri~4>L%t+ZcIF5va`3x-LiKeLgEEAfEqP!ERZ8|$Q{V-K>#Tz zC@d(9G0}p;!oq^W*jQ*{VnbtNVeE{Z#)JwjY}WT@mjm70fB(&!|NqSW`NzdcIz=t? zn0^^!^TF9#{lUOYZG2)jNc3O7mZ;4n>cLphs3)c?wFx4DA54FdZ!TjM0VC8(N9jF; z7CH!ij80IRZ1N}!hsdYf@MExXx<@nApha4xHLSyM9rt)j8{nJtn%>Ym`aoOs5$jL% zg}%Z6pl#aGv0?a!+5~4!iJF)f%bJJb3jC_(Yru!Fb@50%(F#Y0;WM!zo{JZ;@-p_D z;+1&2FDi=tAGgG3@fA_u#cvV9w;Ex1#ON}zMvu{F3}O|1Hx1vIGO9-1STcS>-EQve zMnrzcF#TI}hz^tK%Zi*;vh2xOTbAb_WbOh=razP_Wb(b>7gL39_7Gf6IAK|>$TPBh z0s21`O4QEjcmUHcD&KKr38(U19KJ#>Dxk5btPIK*Z7a)LDt#ZBf=+Zg^%Cc=c-!f(wcC6O+2g7#gkC)YAR}deKOfs7*JX{sP&wUX=g< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avt-rv b/usr/share/terminfo/a/avt-rv new file mode 100644 index 0000000000000000000000000000000000000000..cddc50fa2f88f9f70e85c804f06956b930060446 GIT binary patch literal 1247 zcmZ`%J!lj`6n--oGzK)-85bl+ZbVNGcjoqTx7kbl1&{cXL`A{HBIXVgOia9N5)u^= zv`ArPWuXZ62Gl|kR73(rMToQ`t!=?ihlO-pFrzHo7f`eMWeAG?u*Cb84y3u5no#T8vYIJt#~g! zS|;A{Ni2%b;!DDOOX3f)B!rB2{NJyYj?7?JP6l!>;z8IkIV|VoC3!{8FX!Ksx8;Jo zCm+hE(oHoQ`IHa;?{g^SgePb^Js@6f|Ps3H5us2iAmwJHrXUd%% zLHHJM!g+mBZBx~K;QvynPz$G{0Z!PhwLglu2WGqq{H}x@M(l?j%#=NrcC$0onkj3> zg)unI&IG0~;~1_|r_aNCoLAykzR$k6?7T5rm*kKA28MIF8jp)8#tPPV8@Di;DI3@A zL6umrt`2m12C-Ya`O!b<>^W4Dj#vS%+Y7Xdt=bQ?F}zQ^MJ!8!af`#wRt=#6=eQH5 zXJK;=KHzq_U3rtP+haPRt;!w_g7_ZFggzWp@hiE2xPFsm3VeKqo!EK6-j;RECTES42wptWjJk(~f!TgzQQfif= zA_yXif{3684;}tc zossF5H&Aa4R2t_-tCbnI=0!)2Oht>8Xx(kO^@ba56$@@PTCNt{ot0{|;Z1wZMzmC{ zxBv`a6#WEt#SK}CnSgfK3~!KWgLR0vKo7)0fepSt1`eD+JB=~}r=bc>n1>5+8GYZs zh7;a_dx#&yGk5{7;2nH`kLZ7fFYpcRclZfQ@JmN`vmQoSi|i7+%5G@v`!~_v*7z>! z`zR0CL-t5B6z%&@*i-hLy$qSxp?%BVvrlWHg4locSN4M~VbpK7!PsQ@{x+0;BW;Ws zCG`2;31xQIn!zi<%OJIueOfsPfzy zi)9n(VZ{4m*+H^MWHg|J1$kcV5QTln|5YImos^Cjz@40wnG)Jj6lLX6kA&;gGdOdvN13Q{mMu+bp@izKBZ|*)M^A$#ZG{D~-)@ux`tP-B2X4@h?g8G0b{r39 zd=ljl%32Tw8uG+)O0ie#Bq4ulasj8-_ zv<6gP1KVu&(RwucRv5X4F^foBq>@FTgc-_HdPN3A;Uw^Mm=`Wh0eA{JV_Dj+U;{8= z7iD@WTi67Z@T?FfR#{7U$&eiso(y41cn%9z?;L(2`XlU*Dc&GVF!DX JhYo%4@CWSCXcPbd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avt-rv-s b/usr/share/terminfo/a/avt-rv-s new file mode 100644 index 0000000000000000000000000000000000000000..cddc50fa2f88f9f70e85c804f06956b930060446 GIT binary patch literal 1247 zcmZ`%J!lj`6n--oGzK)-85bl+ZbVNGcjoqTx7kbl1&{cXL`A{HBIXVgOia9N5)u^= zv`ArPWuXZ62Gl|kR73(rMToQ`t!=?ihlO-pFrzHo7f`eMWeAG?u*Cb84y3u5no#T8vYIJt#~g! zS|;A{Ni2%b;!DDOOX3f)B!rB2{NJyYj?7?JP6l!>;z8IkIV|VoC3!{8FX!Ksx8;Jo zCm+hE(oHoQ`IHa;?{g^SgePb^Js@6f|Ps3H5us2iAmwJHrXUd%% zLHHJM!g+mBZBx~K;QvynPz$G{0Z!PhwLglu2WGqq{H}x@M(l?j%#=NrcC$0onkj3> zg)unI&IG0~;~1_|r_aNCoLAykzR$k6?7T5rm*kKA28MIF8jp)8#tPPV8@Di;DI3@A zL6umrt`2m12C-Ya`O!b<>^W4Dj#vS%+Y7Xdt=bQ?F}zQ^MJ!8!af`#wRt=#6=eQH5 zXJK;=KHzq_U3rtP+haPRt;!w_g7_ZFggzWp@hiE2xPFsm3VeKqo!EK6-j;REF|82{d^SPAK&OEn-a?i1P&=grQ#GtO$6L8674QP9xAb|o#>H60Vv4jqCZ zI(bUSi_oDc2i*JTbZ0868OW|Yo1Io+a7`j zX*cbsSCDF`7W@D;QkHD;DT?|ipbPLLuo7LND$UY7-K1M|7s?XdqZL{OdqU4>jb73l zTBrAzf20li3jd9M&`;t8+VLlTnn7Qtm~*?p`!mIM_7FTx zIAKBEkcVaY1oXcu^imzC;{wc}Qz>r(z6WMIy}<579fKc)oyrs)E^TG!s3B8S%<~n1 zVz7NXKWEy!OO;*#I-KY7C(mOnY=Kju`Xs-yNo>yL-8j67LR>+k@>O~cTBovd6L7Yb z=Ma^>ibc~Q2Ln1CUs(uMp08}1!~)n6>H|;}Ki2|9r|m3D(BthMMdV4{7!By8!7VsOW)1uR`Zh2GI}IC# zj=l=$DULY~<8E`Gv7^B9?O9M2^Bi-1+uZjoH(Sq8IVQZaR(SdC?_5>OTv`*ZuZeHX zHuKAwY2H%Q4#gUW>@eiVi4#hkXY1F~D$5tibd$W~J(bBUP+g|T4{!5v$RnH?7JTV5 zwPoleG`FofGR!Axy9`xA3o>*Q>dMgbz$;uMFLA$kQ*lL4h7EGGUi$G1>ZLup@qBT7 ND}k?%$`{p7^arygYkL3y literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avt-w b/usr/share/terminfo/a/avt-w new file mode 100644 index 0000000000000000000000000000000000000000..ced6270b62cad39a573c737e7769ef529811c6d4 GIT binary patch literal 1226 zcmZWnJ!lj`6n--o{0T-Y!MGqfawB*#urs&k-DNL-Mo2J9jEbU*Ma%^gOiaw}8S-Oc zVW}XgY$OmH!9r0Gv`C>KXpure#KOWtTP>`_^?S3MA9a)W-Z$U9_sz_kw^w9oKh@D9 zb)|-`g{?CS*0)v{dM2+7k4%M4-DgfW>6~dAo*b{XRKuaLRwWYnhjFwxSz@*Ei4(Mq z_RtELI@$umqZH5u#39%)U8YH@(JbAdn{*4zBHg8Xv<&o=oer(E$bN}_f#SXb!M$tZbQ05UkV7>C3yey|=P0nEzf4Aiwxg?k61Nlg% zQ&E&jW#Rw-I#W(?p0-j0Ie{8eQ(9GgHDy#~8bt0AT%Qvh&6IP+4&eSw`4C4CB@4J< zUSC%&s?rPoFNHp;=W;xN6SQkx8b|Db8Ltn%J7Gr=Pr#06${tI**%{iEDQm|02{_FT zhtR(9eC=Z-W|&RS!+Ts^8WBcaZ{VccKuAm$P-q|v|{l@RCYH60Xfb}i# z-C8rxPqlfS(VG}|47A5CKSo?I%yq`jP^+q3B&V3vB~w))r$F_YGLPTdh^S7k3=6*U z85$LO3CwMa3k4BD3kwU26k=ncSlFbou@F14Q-oB}!eagA?dB3)c4of$c7EQ@o82Nqd#Q~c z(l2B3s^8n}t<5iu)N945SwA*>=5(xFi>Z_yE7mKGYAsf+m!=NX>alr$(r?ViD&^V~ zk-!VlPiR|i#B$6yZKs{|9!wi;1>Qw_C`mTC6a=H>(M8xvNRei!P7PY1n{*p~5ZuG* z9@A6cWqM6-=pB8a75WJO6Mdm?us>*()^uzT{GkrPSu>(8nqo=gAh-d0OXEAxcOm!1 z1Mx^R932Et#53_+yoi{WkzE$A#M@0#VeJ2UMSK=t5%pdC7GwlLJ7kBEF!~JF7&4B) z3!ihw1!Kmj8NRV-`~t%b%a=PKK-@NZZdxLMb>GSlWhg^UUFtm(xUAlJ-6 z)3f@m{*)b`14=ecPd7$M*G54!7=j$vf2tKmV|0Q#L}nZ87zQym0XYdd1s;PE;J0wh zVF-_p2Zvss<=PEE72*_QeSJL0B+pQLs2l?BtQl^<@tvz`noDcI^)+yXL4_5(R44gQvd}h-Co) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avt-w-rv b/usr/share/terminfo/a/avt-w-rv new file mode 100644 index 0000000000000000000000000000000000000000..97adedd60f0a833120de45880622492072e4ef12 GIT binary patch literal 1253 zcmZ`%&ubGw6n--)T7|X;5B^xthGqm)qPvq#lXa8UTES42TCEDM9%@r;vA=9L4Yd{Y z(2F2F^yI}$!M{L3Jt%^Th@gia6a+nZ@Zdo~#6ux|Z?gR%;wJCCZ@zu+o0)xYmpDLs zsg4%uOss!8OjS~o({rmJH8s~YJ~l8o5jJ<8?Q5!v3&4)jBy%B=CoEG&ovf zwf+b?N%gdYo`R~QO~5;8Hzi4vPt|HS1#}UyA2vW&Xq?J4LpN!jZi88*J9L+pfbP>{ zC_Jav^p=*f{y?ATE8-9OMJpslwYpvG5&Ojg&;#*EJQFX0_<4o+#^87G%dq$2qxfu? zTE-XgReTfQBj#rme~T5dS=KWC@3+agOd=~SJ7qWGY1johCU3}jc}p&=)i23=@_~FP zpU4-oEmp01u@3lupT3wCoTtsyKvtlJ)r6x;zM9agGzlVo8Lnsr-HCiU*A9Fvk#FM& z!ZUyiW}WM*Rh5o{|4X4rTe%z!u!4f)cq52iFzpuMJ0o@o@g(d-BJZ-aovct(BJVKH zjKVqWa0tiOuJ8CxT348j&%(Q0o#O=0W1n4f?kF`zDx<4FS1jGYXL9){*_wj!1#M?W z5_xUg?KmqItc$(kyj8)m(?c8RUh4R^@vH&Vwv-`ogK3FIS}f# z&RIcx26oND2KGVwU|Po~&1J2?oC=b@h9LICF`*9!Rs3=`Anvb|Oo6Z6;Se&9n{Q@Z zJz25=)M2vf5PR@RdwOA~V5h+s$r9jWoO1-mjo=pGM1k$=GN4n#X~t#{xFt#MgIPhj z26$(~@b>HPS=G=iZ2;>V;M?UE9;&I9HOAS%*u$V*c9~(~f&s46X0TGKbcw87R2Pj} ziL5MbP2_ndSLa4`aAlbFmCsPC(2Zbvopn{1iP$z3IuXpOFc-m`3Ox^alr=I6{l%cw f6g?F-sli6&*T$+yTg->&#&K5y-&~a&b&Ti_K_zkH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avt-w-rv-ns b/usr/share/terminfo/a/avt-w-rv-ns new file mode 100644 index 0000000000000000000000000000000000000000..1c369ccab5eedef29fd9ccfbb08954cc68eb2b5e GIT binary patch literal 1203 zcmZuvO=uHQ5T3Uw{#2`81a(0Z%u|en?%Qmdtee(fFj&R<4+al42{xFYHrcfJ2Nm@o zC@3BjL_B!#Am~9sL{LFNym-))7Y`mq@Z?Ew{pRi3R&mLE^Ub$2^CoX+l_=6W>Y*F7 zC^kCjr>D~G$#k=Gc6+N?u8#Zht%ncBYt6XI*zt0!-fcAFjaH@F-)zM@{;1#W#Ot+Y zwZC1RthPJV_++h8Z4n9lVEPIDOc<$17@-BUf?h%Bp?TmdX*H$DCXa$(7nSH3{3xtU zC#gkUIz{K{65=4ZifM1r9q@rk_iN3&prSJ5Ee(LOHVvXRcX>n0p z5!W>jf*bHRHNOqK3%e)oiw9ca>>zj~9*d{qd8E9I{A=-6e3+9J=KhPH#W(Q-S--?$ zW4RFot6}R6*BCZNj6=pzMB&pkCX8w0f^pfnW{6l2^uYf2^v2B6QJPPEWR_%2jw@O5 zZ3vkYfTCI2l`LfPL*T>7!T@^+t|nY?MxB!zWo0Myzd97Dm&@@1%+jDzZXJF* z%yx>vt&utgKLXp6EI327G+9u5K(+x;3^-nSw&N)en=-{};tbH?x;!ViE@N&6oCYn4 zx-|ZfDbw!bVH}<6zsH##?~flQ^roT!BSIZNl$~8o{fe$ZwqX<{`(ph zkZJTm+D2v%{9fG7-hHtBumjMGWD4jp&e;LuJLTKNStZM}yPzuM8Rq(%^6jShVs(Vh zA>os?!pG0P=dN1j)|zmCO+2f+miMExc1BTi6src=VaV2q3(8z)>m5nU%5gIDQC+k( z6*6!v3&4)jBy%B=CoEG&ovf zwf+b?N%gdYo`R~QO~5;8Hzi4vPt|HS1#}UyA2vW&Xq?J4LpN!jZi88*J9L+pfbP>{ zC_Jav^p=*f{y?ATE8-9OMJpslwYpvG5&Ojg&;#*EJQFX0_<4o+#^87G%dq$2qxfu? zTE-XgReTfQBj#rme~T5dS=KWC@3+agOd=~SJ7qWGY1johCU3}jc}p&=)i23=@_~FP zpU4-oEmp01u@3lupT3wCoTtsyKvtlJ)r6x;zM9agGzlVo8Lnsr-HCiU*A9Fvk#FM& z!ZUyiW}WM*Rh5o{|4X4rTe%z!u!4f)cq52iFzpuMJ0o@o@g(d-BJZ-aovct(BJVKH zjKVqWa0tiOuJ8CxT348j&%(Q0o#O=0W1n4f?kF`zDx<4FS1jGYXL9){*_wj!1#M?W z5_xUg?KmqItc$(kyj8)m(?c8RUh4R^@vH&Vwv-`ogK3FIS}f# z&RIcx26oND2KGVwU|Po~&1J2?oC=b@h9LICF`*9!Rs3=`Anvb|Oo6Z6;Se&9n{Q@Z zJz25=)M2vf5PR@RdwOA~V5h+s$r9jWoO1-mjo=pGM1k$=GN4n#X~t#{xFt#MgIPhj z26$(~@b>HPS=G=iZ2;>V;M?UE9;&I9HOAS%*u$V*c9~(~f&s46X0TGKbcw87R2Pj} ziL5MbP2_ndSLa4`aAlbFmCsPC(2Zbvopn{1iP$z3IuXpOFc-m`3Ox^alr=I6{l%cw f6g?F-sli6&*T$+yTg->&#&K5y-&~a&b&Ti_K_zkH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/avt-w-s b/usr/share/terminfo/a/avt-w-s new file mode 100644 index 0000000000000000000000000000000000000000..ced6270b62cad39a573c737e7769ef529811c6d4 GIT binary patch literal 1226 zcmZWnJ!lj`6n--o{0T-Y!MGqfawB*#urs&k-DNL-Mo2J9jEbU*Ma%^gOiaw}8S-Oc zVW}XgY$OmH!9r0Gv`C>KXpure#KOWtTP>`_^?S3MA9a)W-Z$U9_sz_kw^w9oKh@D9 zb)|-`g{?CS*0)v{dM2+7k4%M4-DgfW>6~dAo*b{XRKuaLRwWYnhjFwxSz@*Ei4(Mq z_RtELI@$umqZH5u#39%)U8YH@(JbAdn{*4zBHg8Xv<&o=oer(E$bN}_f#SXb!M$tZbQ05UkV7>C3yey|=P0nEzf4Aiwxg?k61Nlg% zQ&E&jW#Rw-I#W(?p0-j0Ie{8eQ(9GgHDy#~8bt0AT%Qvh&6IP+4&eSw`4C4CB@4J< zUSC%&s?rPoFNHp;=W;xN6SQkx8b|Db8Ltn%J7Gr=Pr#06${tI**%{iEDQm|02{_FT zhtR(9eC=Z-W|&RS!+Ts^8WBcaZ{VccKuAm$P-q|v|{l@RCYH60Xfb}i# z-C8rxPqlfS(VG}|47A5CKSo?I%yq`jP^+q3B&V3vB~w))r$F_YGLPTdh^S7k3=6*U z85$LO3CwM$O`>5aQ!aWgpGC7zEt5G!0s@g?-4-w-O@WjC)>g{X_?s96c5NhBG@?oj-F__ z#nd{^D0;rk2sD>|QFD!3invnjy8RRBNrW3zryKI?Cj96A z<_##s^y&$AU|qHeO;}fUd};@<96PStL9sDlg28Gy1S%8ahNzR1my@72(aFgpYEf0I ejVcV(ioW|&()D1u4bbnaqBb&~+1Q*^ruYInY*JkS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/a/awsc b/usr/share/terminfo/a/awsc new file mode 100644 index 0000000000000000000000000000000000000000..14400e7bd43331871ead07756f593c593273986d GIT binary patch literal 1017 zcmb1Qv|wOjP-2+C=+BT?UYuOxoS#>gT9lreSE3M-nw*iBpOc@SnOdyi7#^%po?nz* zT#{IlnV+XnnwOGVq~ILlAI!kO7{KuVzXT9705N$0StkR~MQmV`xEREdOq2w&rIGlu zNNkv`N(^d1Q7yQPK7%ow4O0W6&5=Yck=V#;klEHyHMUUNo(Mh2`l-Wq91vTnMG8Q12BH8X zLjc47{}MpVz`z6~|Nm!U-~rSB|BEo_GZ+HdCSbl9gC&CS!9 xBLh1IX-_B}p;}<5s;;1}s;!zV9jRJi1miGpF-Utba4<+a18HeT1|Z^M008rq2CD!7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/basic4 b/usr/share/terminfo/b/basic4 new file mode 100644 index 0000000000000000000000000000000000000000..d95df02a5b1067a078ef2163eb8ff38f39339a7d GIT binary patch literal 606 zcmaiwze_?<6vw~MqAZA}pnR2YdDIfmXHP7oLXA+!EbYhemNW%lsEJxZx%a2^XEa1Z zLqkJDLqkJDLqkJD5Zu1^^%AO~3!ig7_ndPtmm5%~FpM6Y!LQT`PN!ICIeS(o6HjXi zsoKiHVN-MJT6`^^)@lc(GN9mlDO@@DF$N(3A9|TbFp2=P5aXDEK{LrL<{4vHKoTjp zE5s@`Jll4&ja`&o+jnCfEgX9jLY&gh$pyLWR)x6g`Zetax46SS9`J~#Zs*yv7cakd zJMx`>*V{k+pC{fq{Q&`=@>TCs`Y{C6)*ZcJ>ZO?82ZL&j_Ns`1dq|)c0 LMj^%C!~i}47Hr=OmV7=I1GtBqrsgDkLVCWR|5eFfcL@28;{=4FCU205Jmt6OjD>pM`;sK@iLm zVbEnT2eK@|JZm6n3ub{-VF&h5c_%3CibK5zlDHQV8@s9h|NB7I_(5rqo2dbUkjx1| zVpGHHQ8R`^2!w%CMFayo122QLmWqwBfq}jqgLDXkbR>hct!jaxs=9)@s0aD96CTz{9}JAg#e5tqDRL3|vqlJ|K&Wfm?t90PoBha{vGU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bct510a b/usr/share/terminfo/b/bct510a new file mode 100644 index 0000000000000000000000000000000000000000..c194bc3d11fef1e4df89b9bea8c8e46ef12ed4b6 GIT binary patch literal 1247 zcmb_aJxo(k6#niD(Te<-hza`Cuw2Cm*w-Hlz5$Dppnwmw(Lgn^&_WAsDNue4k1ocA z!NIt@YC;$s92^`R92^`R95iuoa4^xt#W)!2cW?U;VjN7kdEa-wbIyI|o_pRqBHC~W z`*BjV8;N2uZ21%J_(a7TK#v8n?=H6B92YkdQ>d*L!?_2MAH~C|K zF(*W=I4D%?sF0$ADx$q|`JCtz168f^Bh)c*U5ttw;xYBcww%g)Yg4=zUv}ia?eM&P zyJLU+Rr}|*2#gxTXVe)7j3#4u&ihxD=KrjJ%xE>t_!$4GdYJLx6sg~gU!w63C{jvh zWWkb2TNVN`+0Q^Pp{!-ueiy!q3c9rCiD<;6w0BIft)5K zPzSTM*F0tMjjVdjvMqO=Vo)E(;~iFTlEgJ)5$5G-B1KFRY3^iu&IIiRLN#@jh!MKE zZq+v1?`Bz;eU$ows#z_DJfSYCBZHn$^>joP)k0PDXGlF=nnUC+m=V;%RE7MqM;5}e z&?#M6v;)#setmc<5{YLqt2e(b~PskU_cWJl`OczQmw zFg-mplg;LG`TX2mvADRnw6wguva-7Bx@&8tlGkHFop`q0>Re!CtU6puPA$5J+*1DlKR>^H@(N{V9=`#Ar(in( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bct510d b/usr/share/terminfo/b/bct510d new file mode 100644 index 0000000000000000000000000000000000000000..e780315e2aad3a4c213f337ad5417abf7769d2d2 GIT binary patch literal 1386 zcmbVKO-NKx6h8M7W~N?UbzY&>%<)t{`6#K!Fe2oX~sVK5BoA$3ze zzmL4I?kFWr+Y#ADCD2N#jP}xgItcEelhg`-76@Togf3AZSro@SpHEVXGKx*pb-Dp| zn-=LV{C!$d`Z7JH6|iT(bKtd7-@?9A%+3FPjenqz^oc&x7y3%y=sW$OpM}`3g8xl_ zh_igYgzaQ|;5Qpph#g=x>^KXu7S_RfSRaeARAEJqIc%QY!t8-k9K zaXY|9ql&ll%lrzDt;KDg<+-)lMr*dNP5-m++&X2R-{cE?k>BC>)~Q?1w)x5>zRVx; zC;y#gg}>lhv=?uxjI?O|Fic2`cEEYhNh6s^>taTq6}7@@m(zq4EK{TnVTB;H0wF4e z)pfJpfj>>!Ap^d})eNb116@=O>$hPHGoYL_zBo)!GNmcwv#A1tEsZZJnZj<;jdpd4r>X$8gz;zC0xkj*q@5oDV!#j}Goj}2AbcBuN~1kM1W?sBy4&iF z*p{?2kkx5r^@?;Ai9EGZP8EsVM=6~}A~PsOrcp%ZQA8&5CSaO_%K8!{^+6dn)OCA= zHGsH#&R}6(p$|A-fOe85tMQ6vk@kypgK$LFG=wSV2B^=aK2X0)>tzb3_-nuw1BeHO zY0G7eB3mwE6~ZJfL_4THq(g7#tX!fNU=?-v>zg191>TD475Me*}=uhO$9A+ZbjtYy|U@v(;+?qDTk{^mq0QHs)0c| KkU`oN=pz8o1{ul# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bee b/usr/share/terminfo/b/bee new file mode 100644 index 0000000000000000000000000000000000000000..7d56ce96b7f4939cdf59ffe150e3583c9eb48c2e GIT binary patch literal 509 zcmcJIZA$_{6onrVLZKfJ-7kI_4J7CVgh0f%WKkm{h#-*EU3>vyQ4oTKenr1`y)*7$ zAbo6@bI-YF&b@P)6UyZI;hSj`Etb0|QBH!%X0zOu+6N1A9M5lkbZurtnqH`tW+%@X zMc18UxKdSh-L=*m#XU9G`@H3c%&F6Ks_SaNfajC!t2%Frcf|)|CWOpSQhxi2H8I=l zeV6gqpLsv`Uz{Kf}jOx4UxeCH+7Mgj^*2WcTAvyQ4oTKenr1`y)*7$ zAbo6@bI-YF&b@P)6UyZI;hSj`Etb0|QBH!%X0zOu+6N1A9M5lkbZurtnqH`tW+%@X zMc18UxKdSh-L=*m#XU9G`@H3c%&F6Ks_SaNfajC!t2%Frcf|)|CWOpSQhxi2H8I=l zeV6gqpLsv`Uz{Kf}jOx4UxeCH+7Mgj^*2WcTA*8l(947@-VKbR-TAj}{JW=TM0L8?)K0-B66 z8Xu%u4T~76DFegP1G~!rNE!h{fR}+)h(Ulsh=GfN6&OG~46NJ?+zf&$HpZp~b_}u# U3<~lL!YVd~W%C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/beehiveIIIm b/usr/share/terminfo/b/beehiveIIIm new file mode 100644 index 0000000000000000000000000000000000000000..1b813c84791f5f8c92c133bb1dabd10791a29630 GIT binary patch literal 422 zcmb1Q)L~F#U}k7%FkwhaP0h$GOEs=Z$}rBYf$}^(J#%Y35{rs5ixr$83KWcU85kHD z2m{6d1`Y-hhX4N=7?^*8l(947@-VKbR-TAj}{JW=TM0L8?)K0-B66 z8Xu%u4T~76DFegP1G~!rNE!h{fR}+)h(Ulsh=GfN6&OG~46NJ?+zf&$HpZp~b_}u# U3<~lL!YVd~WHk8=%b>8c`whVQlV}9duXab3zmisZ4+!TDY5EOYlkis z#KFNq1Q8SjCnsH;9K=Z+oI1IA zyu$~4#Aj^a3%)Y`jq)8o@H5W+#TV|BsA4og)UEX3|r#>sP_Ky`hRc`g){mVZ0<%!*R*1Y#Z-ZXh@_5WkP zmrt?_J#dO{#jSg8X~eDjZfS{*&?%myI!{p@$It$uQEG@ibcOuaIK`8caY}(QLGfyY zV1bZTW)LW|R#PPD5ie~?RT@fsi;t1ztz>4EG)M6~Wqw-G^9?QL1;&pV4jE<*hYgP# zD%hP`Gja$^JqmQT*Ew^VKt-0mf&P{ zRV)``H~pNum&%Xc6}?E8z3D?-qGM>0pu5q+w=?NG?h$uBu?G(gCT7MOYaoc(Z|eKn A!2kdN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bg1.25 b/usr/share/terminfo/b/bg1.25 new file mode 100644 index 0000000000000000000000000000000000000000..79fbd64a38691a6b4b489ddf0cfa85fcd1473d88 GIT binary patch literal 523 zcmb1Qlw@FFU}l)fu$Cby-B8cSw8qKFPr)g(#Jwo7AVUEp!oU#9@c+L95Hm0^0m=XW zSr`NvB*83Y1`{xC0Vb^&>=@j@EH5w#Qi~3Pp)wIrItGi%1T?WsI6nu-%4aBID20o_ z%&&loR72@HhDL@KAiEuiyBYc!CPT$x>dB#}!_AlvXW=quA;WS8b_QMs>1Yq>XfG8T zLsJ7gAjez9#t1~iL{u}Sqg4wGRa2~03yf4#Jb+S83>-kx8HmkHtPMdTjzH`S)Tjm0 zX`TxtVAuyL>ck)&z#tvSARWXY9n2u@!XORQ57Y+KV9OBTW(dSaKx_=eCJbCaO%_1c OZ~_goH_rf*ISc?=yd)<8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bg1.25nv b/usr/share/terminfo/b/bg1.25nv new file mode 100644 index 0000000000000000000000000000000000000000..023e3aa724d33ec754e9e26c6b5b6e6652e7eade GIT binary patch literal 570 zcmbVGJxjx27(73~4{&hQcL~^lcF-m^rr6qQlv?Ts)glOSuu`#sv<*c%39f=52!bdG zg5cob;NU1uPX4EON#A4;TnyZE_uTv3k;%R!fC1d$8%HPFtZuZrXO^|CSkCEsr{*=3 zz*DAM?M}1iDqW|3+@8T6e1Dk$`Z;}n5aXB#)fCbpXTrINJc^+zhcmeS{Z-}5zT^Y) zq0}A8=aQrBMZ8~9UEvxxu@l|gO6Okk10L~2{Y<>z6>rjy?*GH@amPoj{_6R}7ltqf zVV8tmPUJKrmFKdN$msz`j_L?o^)$7fRXts;m-u91m~)j_NN2UcSs}ITuuT+9Z~Hf6|ys6gyM>_Su_)*x8VR`xBSQq%~Ym?zR0Whld+9brMQ IreM1G0RcfUnE(I) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bg1.25rv b/usr/share/terminfo/b/bg1.25rv new file mode 100644 index 0000000000000000000000000000000000000000..05245e794fdc1cd3a062505fd03355095d35f997 GIT binary patch literal 572 zcmbVGJxjx27(73~4{&hQcL~^lAD~T4OtH1qD7DlNszngupwiF=DwZgn1Xn>21VI!8 zL2z(zaBvhSC;wBtq;E0^E(Y$od+vSi$Y|FTfF9i88;5mmS~vannQd<>ws*SfAG8`u z=qcmA+jjjES801S_jm%>K@cnwKsRR)^kNtzks5;$aVDDc$fFpkax}x+-(OX}>`LAv z?@R4VK9?M4FOvO|>I&DmNu2oRRyy~RAMl7L>Sy8wuXvMweE%PQPdYvl^;gd)zR-su z2&W{Raw?~p={%RUR89{$c2rL|YD-gVS+%9BwGy9f^m8r~b4FGRoh4#}!O1Xb9dX1c zm`(cW^h{nj1+xLsVJ;RIXI+MDhzi6O#5P0~Vg-WrY-Qg9Dn*UZiCMzHAVV4c>;MZo IH3h4Q9};mf4FCWD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bg2.0 b/usr/share/terminfo/b/bg2.0 new file mode 100644 index 0000000000000000000000000000000000000000..9c0b11d5d572267748580bae8e8eafcc28023acb GIT binary patch literal 560 zcmb1QG-Oa?U}k7%*ujvLZlq^Wlay|(XJ}C4dH(y3TfW}=A|!TDuCRuw}XLlayCW_}w~qzg*-F-&5Z3S`d!;yDZp z7?wcAVd_bvR{(XdW>^O|V;ciI122Pgv}&emfuU-OwQ7NpYDy7Mz(YFPOU1^})W8nN z@m8@h0?{xL)l8rcgnAF4loJC7kaPxOMpbz+eA4*=poAPxfJ qV4xxwAckrOYP4kta5DsABOo>gViN{w3kGR(1}>lx7C<*~G5`Q{4h>BJ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bg2.0nv b/usr/share/terminfo/b/bg2.0nv new file mode 100644 index 0000000000000000000000000000000000000000..50ff52d6c024eded63a49505b95b6e6a97d7be73 GIT binary patch literal 609 zcmb78Jxjw-6g^eJ4{&txEkPR54mC+zDp*@h{is%LwK&x!rKJt@i%`1guB(HCgM)*E zgM%PAI5;>6f}{9z;z@j|;2`+moOAEF_gvm|D2rJP;}oB$*uA=AbsHy@x)IgdeQGSK zdxdH4DW=`q^ri}DO2<)}RB2(z%s-hkHD* zek7joj2Gz#`~TBdrr+>BxbcBeOhS}ZTkYy6BMHu-SM@HB8# zn~9(O97iU`$XQ~Q*kvH%C6X;tfJ~x6U(*)SqMS)IA-6f}{9z;z@j|;2`+moOAEF_gvn1%)li2af(kg+eT9Jx+l$cDyavBY3?hg zbF|_$+>XMTGUeG_+dH(CuG6v)rV+eY$bV358@@kB0DTysj$r}`s_&<<6zXco6>>GK z>LCXkzu%6WG^E;8N7lzu&!k4#^Im_!>JnGD?m5xUjdX6M-r*h(tRIOdJmW?B(fZq=+w(_cLs4b61Sy*fFf}YWeY%1}B5oqM74ii87WsXb?kr#-0 zVuOK1kjUdH(y3TfW}=A|!TDuCRuw}XLlayCW_}w~qzg*-F-&5Z3S`d!;yDZp z7?wcAVd_bvR{(XdW>^O|V;ciI122Pgv}&emfuU-OwQ7NpYDy7Mz(YFPOU1^})W8nN z@m8@h0?{xL)l8rcgnAF4loJC7kaPxOMpbz+eA4*=poAPxfJ qV4xxwAckrOYP4kta5DsABOo>gViN{w3kGR(1}>lx7C<*~G5`Q{4h>BJ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bg3.10nv b/usr/share/terminfo/b/bg3.10nv new file mode 100644 index 0000000000000000000000000000000000000000..50ff52d6c024eded63a49505b95b6e6a97d7be73 GIT binary patch literal 609 zcmb78Jxjw-6g^eJ4{&txEkPR54mC+zDp*@h{is%LwK&x!rKJt@i%`1guB(HCgM)*E zgM%PAI5;>6f}{9z;z@j|;2`+moOAEF_gvm|D2rJP;}oB$*uA=AbsHy@x)IgdeQGSK zdxdH4DW=`q^ri}DO2<)}RB2(z%s-hkHD* zek7joj2Gz#`~TBdrr+>BxbcBeOhS}ZTkYy6BMHu-SM@HB8# zn~9(O97iU`$XQ~Q*kvH%C6X;tfJ~x6U(*)SqMS)IA-6f}{9z;z@j|;2`+moOAEF_gvn1%)li2af(kg+eT9Jx+l$cDyavBY3?hg zbF|_$+>XMTGUeG_+dH(CuG6v)rV+eY$bV358@@kB0DTysj$r}`s_&<<6zXco6>>GK z>LCXkzu%6WG^E;8N7lzu&!k4#^Im_!>JnGD?m5xUjdX6M-r*h(tRIOdJmW?B(fZq=+w(_cLs4b61Sy*fFf}YWeY%1}B5oqM74ii87WsXb?kr#-0 zVuOK1kjU*8l(947@-VKbR-TAj}{JW=TM0L8?)K0-B66 z8Xu%u4T~76DFegP1G~!rNE!h{fR}+)h(Ulsh=GfN6&OG~46NJ?+zf&$HpZp~b_}u# U3<~lL!YVd~W%C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bitgraph b/usr/share/terminfo/b/bitgraph new file mode 100644 index 0000000000000000000000000000000000000000..50ff52d6c024eded63a49505b95b6e6a97d7be73 GIT binary patch literal 609 zcmb78Jxjw-6g^eJ4{&txEkPR54mC+zDp*@h{is%LwK&x!rKJt@i%`1guB(HCgM)*E zgM%PAI5;>6f}{9z;z@j|;2`+moOAEF_gvm|D2rJP;}oB$*uA=AbsHy@x)IgdeQGSK zdxdH4DW=`q^ri}DO2<)}RB2(z%s-hkHD* zek7joj2Gz#`~TBdrr+>BxbcBeOhS}ZTkYy6BMHu-SM@HB8# zn~9(O97iU`$XQ~Q*kvH%C6X;tfJ~x6U(*)SqMS)IA-}s4aT*;#|_wC7^hy;K754)s#X(5CrjB*-E9x7$R6HUcHF;kJsrM zW7?AryqWjln_=1Qpv4x;yz$9kJj$ncHhY}TT$nv2$tbxEb33;AB(-7oa1R0B(os|p zaK$=3oP#Cp&aJTOr*k!$-nD#>wC||)X!|^4|6d0j>h@9P!g1+4>SF(v#k>82IWOi# zxwA;{2Rc1_nkT zgaAfHMur9k4hDUO|NlWE|Nk=s@&Es<3|tJn3<5y5Jc9{X#2ido0!bSnwr6kx^FeB1 zzy~Vg&kzD;MS{sVhD3%m47J%nky0elawIm)JOo_@maT=VX@Jtr3~dZOc=S!eBZn{> z!I}zGzXYyl8H02tFbJeQq`erVy%|8HTB2%!p=ye=ijA4R9h_UKT400_bOHvZv@?UW zBZG7RgS4-TjiG@SNO2%geTox^Z~+kx4AMbR8qD#5DFo^Us>)!H1}cLXqgHGHG)%47 U(2;?c3&?;tA`;>VE(T5p0BUFitN;K2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300 b/usr/share/terminfo/b/bq300 new file mode 100644 index 0000000000000000000000000000000000000000..ea516b589f3ed4ef6d0275088bd70b4452b55d94 GIT binary patch literal 1685 zcmb_cO=uHA6n--+Xa!LafA^AVSM;_!yPKp&8?8UI+S1yph*4=ZZPU6*(>7@v+f+n7 zc<|sw5E1m?K@bmu7ZDLb6g;TlMNcY-hn@sMFJ=ASBvGpe5e)sl_sutN-b~(1x>h)} ziWX5$959ZLxVAmrTnvK9!TqkXBdy&Xk+$B#U@qcB;&$Z3a8S(V#v+Bj(d=NZHy{%D ztAYh2AUaWRHHG?PP$v|Tqy@Bs)>1uLdS(-CrY35pR*c$dKll)EgnB5ASfmoo&{?Q3 zyrlUuU8U=ElkU)6x)0|OJ)!6H3hF(5qA#>waBd@bt5#u{MBG``Vb~(tM3*=y4#PPn z(qc&Dp~itJ;Iud=E+F#fqPV2h74S82L)@(TmDw=7h4F21PdpS)p#7$%dc`y8b+P5)L3Dd#{7)`HLCx|x*H6~h#IZ`xaxnM_V+sN z#y(>qEg>^y4O)4}N++zmveKh4+yPLFnc9P}7vMNAsRc$ez%i-(0AXiEW)OA&+ksA? z9dH`TW=b{8EH+biLz&EtHcUUuGfc@?0CECzBbW5JLX3S)9xHvkLs-ZOcD53eG0yaO zZ>3X}&Q1E6hAqC`gp&GPddF1MO*rfF$mBIil>xcDtIrhUVLW5<8XP0C8_`odqpPC= zr1Fu)X0k4Rv#loDYJ#`WQ(RpOzL!D3WAd5m^B{DC%s81bGOUh;rl-s08E#qS z1>pJc%P=?btKu6-Dcx_S`|W8%Uz4h6-EE~C|7)VFm%57cU7hdhe20Gkc>MTzq;ajO bXbzOLQVH8puIEQ%@y4SkU;+F*@wUGMTWJU< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-8 b/usr/share/terminfo/b/bq300-8 new file mode 100644 index 0000000000000000000000000000000000000000..7c0d8f5eee9169f5b4cc882b93aa9111026a2e2a GIT binary patch literal 1548 zcmcIk-)kII6#njQ!5`pTq3TfB+8v3CI&)_yyLC%8#uQ_lN~~3jd1?A%vzyLtcC))l z(mg`!A>f>N~f-xXsbW;$!-(`&sH|421!zQ^H^kpLS1O3aI)F&6)HjD)N(RtwR?c#Uk)Lpgu)y< zJ&MddI~Zjdps^FXsO~|*W%eOL882Xx(KHUxzDgX$8#qp1#}e9DAMSejCu!w*UK<_jimtkNB3Id8uR6Z*w=$}~V=w57_hjC?N4Zly@*n;~ zetY#L{jvT`f1$tD-|5Txs{T>`^snCE-tB(T_5Z2w{m%UFayRtv`T;xw>o@&Q=%23o z9pj%~fsGbnXY3)^!w|bIJp&s~F%4TYal&BQu?E>o#EYTh5V>Xas8rCGEv1j=MV51@I6jDxO z!XeVvkRC<)I!7oo5mviCO zanjJQwxoE!-{*b#XSjX83U3Avan#XmB3(nej&y*ui?oLmCl(g!^~J@drL$*~q}6J- zmzO)8Zg*v+*X#EOgVoiwwR7jz*Uz8d*x20M+8S~>?mqbq$R&GE@w?!5t&x2i*=I?J f?A|yg>ol_0yA_eV5Xs6Tsf(m8JnX(1`Of|V;KmIq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-8-pc b/usr/share/terminfo/b/bq300-8-pc new file mode 100644 index 0000000000000000000000000000000000000000..8fd3b2ea3655a0e71320b6bf6618a1a2b2723f94 GIT binary patch literal 1529 zcmcgsOKTHR6h3z<_yBi>szYI{8LUEaGLxq%NwpP2A5sfSu?S5cY0^yINz=4R7K#d@ z1{W1{=)#3A1aYI_!i5OpLJ)+4|EAaP-VB!5g`46{&Ue1^-IH_YoIB(co1{KELOHgr zEEFxn7zzy)78}?a=DTyX_jGWwR9z=O^<4s<@!QCQCiZ{IW1YWZ7rlNq$_1D zWN3?dyPD0Fi5R}F2?7dZG>x-P5SOb55$8k-9im>S{iMmAGh|VaF4731F&YP6gU!$l znuSl&D&?pI#(7KP9lB2s=?Oif7xWU!YkEWP=snmM`bIm{!$fW`uun41Pr~=RoO6xo z>^!@`d@RhOY?Q^>6q{i;v40D8n%v6O%kR)%F9b5+huN=@>{AElGe z`CX}qXZm~XSGqI)wcnlnKzXEeI^V9-M#NtOZ|g$8S$VwLrBFBf5Op#=Yte8LL8TK1d5a{xN zxquZh2MX$(nId&AW~Km^4e$#HiZGN?qi{G`y9)0!#f~V90-~9eW7?gzC-Dd1SS@n! z6y6}b83K4Eghglw@Cp!FrcZ!hKmZ_hcnn5_LdRq<7;$uz)GKbAn3HUG%Jn!*#v`tu zbUo@w9Yv%^r8Fi2^QY14>4Iq3vPlh*8YFd$R8cV|ax0Ob9ud?8^>wJVr}{ws9W?;z z)gxJv9M&tiFnt;0*CV9H=_s1&Tqm__)UH#zO6?-G%QQcqNF1Lop(ZBzj$SS E1A{Re4gdfE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-8-pc-rv b/usr/share/terminfo/b/bq300-8-pc-rv new file mode 100644 index 0000000000000000000000000000000000000000..385d7270eea5bcb270f1633300f9b62bcee7e85c GIT binary patch literal 1533 zcmcgsOKTHR6h3!Ue1JRgHHc%)&=xGrBd;21TH9jj!$wgkRIsnKNjiB=CP~vr1VKd? z%|fu?T@*J8Zn_Z!7cN8)7lI%N{+jW-H`9u`ExqJ?=R1#k&fIe^InO5P3>~8a+g9ev zwqf+ddrI>?Zf*TmHC^#$UClOZt)BHVT53>RPB-R?v+jbnSalpNuFYk=isq(kX}6Nr z^2LR;7B{r{qEpQmDntywKm-AWuoSwTC10*Xlma7C=rEmv_X24$a+z$3(N*e)HAJJp zn~>Xdm!_Z>DMtlz!F<0d@gY5?XS7K#=q0^^=QX{h9eM}$nZD9bI>JQmY2Z1@d|!pW z7;xY3V4ds=Gg*`+SU($PqimAhVN;0TgWPBHY$?divHadHQS;yBAzEh-*b~+Q+hW`7 z4fIa1=RNztK7xN@U!><7@H_j#ezIRIr1*ZP(hU^LQX)!RNhp2N9tga??QQ~7H z@UQR)aq~LD#FJLUfiWam25b;AKs-f!0xYz_tx)p>H$oevb{WJYd3Yhon8TB%qjsT8 z82e)I2?;~wcT6E4F(WTkGKQQmI$0vgLY6w6j5wid5u;BqL}iQVsGYDnO6s(g5gAqn zU^_Ac5EEuRqlzu)t=)hQTOuqT%Q7Ma=Kq6V3 z^-@V3*mg*blNuv+h*VKADRR9;Oiu`Efri`E{^JdUM%vyesHrFNBDq)haAkTL7oaCd z9iihmRQp1yRi{>iT2*S5sa2twnc3OJ#igZOZh6^p^7%rcSS*#wW!J4#Jg-`<)#~+? pl}2NAb!}~ZePg4EVaO}RGZ6QzcH?Qt@rk+GVsz%1d;sFn{059%9ftq_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-8-pc-w b/usr/share/terminfo/b/bq300-8-pc-w new file mode 100644 index 0000000000000000000000000000000000000000..604e91911e2520087d65f31842c0bc4b8c26e86f GIT binary patch literal 1519 zcmcgsOKTHR6h3z<_yBi>szYI{8LUEaUU`|4)V5;iLux@O7NKdIG-)R9q-okD3!flr za8W^rE?nqB5H|`gT!R$ON%8_ z(}qGr#igNo^I9!gsV2&bshLVWQ%x%~V@fvJSS%#U%Sx(d+e%1T%v39iZW_u`!LH@< z6(WY8C!Byn7~MsO6Xc4g2bSv+Npy&M;q50yM9z>&LAppIu*PWucoi~B*J%zqMXQvj zGMMYO1>UCn^pKv=GkQTU;dxDO=pDTW`$FGnhk6*#?FIG;=DH`L`#tWu3RBs6c7a(e z%%W_J#o08QWj7GN3Ax1*Ea~N@S$6L&Ui06ljA)Iu*gf_bY>REPSI}?0cRsL>>=XEB z_EmVk1AnleY=`|~1Cr~i(peyXG|7|#Qdk-mcFgm-Zds}e-rVza^IiAOf1cgQ{^|$P zqXX*n^nm*8?|ycxZAs6i!*rY+HKP`FbvdFI4RyIpj=4fk+?gO}k~sbqj+3L0B1}%q z@Y^uP1xtgCK`xOqL(VjqujLrN_Ay8EwMZV+$nodkg~Wok6Vq*Z5M?a97le<%17^e+D9ZCjn&kPIkp`F?{5BxSStu<> zq0m{m0&N*Q!V9ASA13V>c6aP4`~f&-n;d+F9)vbR09`+fbc_O zG2G;SYzB+rt)nDg_Qu4X#JJO*Ml)fLczVjys3ZI+A~Y&xun~wqgIP}(`M@T|4v`!r zd7NZkF~)PNk)Rsk)Bv@*)coVMK>b~B0902aIi4I=t2i(WpSV$yNsg;%0)oj+bbGdxJP$(8lrE>4#QPC{(atNt1SyrkhRE*fxSx zMGwtEu;4q07X>f92!aO>B8Ue;5Cs34^*1l8qFzfMncw{0%)FVMd5;_yBXorJQAs@4 zrWT!eyd%|7p6;l1_)DwTs@X~~=^IYmF=~Y%Z;bXC^V#~;!lXZAQOTP%-@M zQr53z4a>2O=>@M^ELDgEevvQ%g@|?3I!d8hyJ#JZNTc0!2-Xv1D9;&kC`sq32fKb6 z1YUt$r<*heoufG_kq;Jz4TbmU0X?P-dP>je1uQS=HEq!wu#fbazSADTv4?@j6bnNg z`eekz@U&V&_Eh_bJZ#?+W0piM!&VXo78u z=i(LgR&?gAcqiV2e-NLP#+U)eS_sqLkMB+Y_Zw#=EdS+>m?pQJNOazGA} z93sZQ+yf-7i*S?7*sh07zhZf?K1eUgQIaEIu{CMO8V6)Nwnln;oTOWX6_QDMGGlpq zJJKX@E(se;0;0ZS4Ds;Ai%MmZh)JN5%|SMz^zn@A#V)wC?=&E9*H!HseMnRha-(V%8n#TBU1r0fw%?q zdaBF~J7_yadXn^h(m7*>V}o?kOf$7X6D{ieu_i#>mbDYqGSfv4?lJ>hnVH1}m}$}n zXg`{2T_`nc)T~ppO3g)TR%l{kax#~jot>MTpZC0Cu~b@ED3=!(eZNu(f@*bXsa9KF ouGjC}Sy@?KU0Z8l80t##4EUb)vv?Y6d^}f&M`sPG2f&Z!CmWp{@&Et; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-8rv b/usr/share/terminfo/b/bq300-8rv new file mode 100644 index 0000000000000000000000000000000000000000..93c01becd0e12131b74f7fa3a7a1bc2db9f4b4a1 GIT binary patch literal 1556 zcmcIk-)kII6#nk5U=@5TR67)=c1I$mcIM7bcI!$u#uQ_lO8P@B%}di}lihT7v%k|c z$vzb6gNoCKQm9u1QADIgD1|;$D2lXDsECUH&h)!?r!ApS5p>w^obR6V&AEHdz03{~ zVmr2?A^wo3TcPjoEw=mX6TLWgKRg~P-!1MvUF*8-O25+XRNVUVe8nyL?wRGdS8sFx z!CwYLNC`2+iZ3Iz&lb#(0TRz)8>2hn+RSc*DBw+ub2W*BwC@u~@c~ZIFJK7`w8_$R zVC@B5#3%S1SMUYCX5>5kfFE&_>=)d_U)Umyb{p+>%hL1}`kfh1Q&;R3BVvzugONat zijo*7J3zcgOp6(DoZdViiIbMi(N;uF)U)_7o2D(UyJB5@EIuQB+uge?qmi$Tn{IA~MTLF|mMOrGx*7&FKd_J5q9o;km6UAaI_o;xWcQbtvd;@n%2 zKSsiw-C%Y!EU8zU&aA4!nJud-O&HTeh82t{R-G|A?(DuxpI0Vr3bTM|rm9suY}ieDl^Z#A!hc zF6x7b{jjnuwmvALAc6>@4?ZZOh@gm~zo$L-POAh#5wyvvI(4eLZmMoG%fu=y!F*K2 zJ9)I`InJ8g#B@(13^NDzdCJM;)*LO>Gp?sH$40|OxiSt2{-w}_ln^+}E`J~~&m2Zc z0!YloVyerLF_|`a2(TXAjC!$+b|=OIv^>a`h zHf)gggeZw}s<*O9Qe#{f)8eeSNOoCV6*uYcrd1EbBk`F0iFj_5SG2FiTk&3e6d9Q$ zZPKRI&syn9Uj}l$i8rQdl2m2G@To6KtNye7Tb}zSbKx81b9Ku{KgiFn{#X7lugM$o zw!ACv%ZKu@eEL)G&+hiU=*4g9`@J)NUG9~9Bj;feV!LElUHf?6t}6TZ7-DZ2abLU* z@pfoCE8U0K?O_^mL1jY*y@nOZHWQl=??SwTtbHa{?ahU;(>?>M!$F)aQzZ&P7#G~o z>R=n6?*-H}e8T)6hgi>?Q#P&;u*T;}N*5_zRmc|GH)NeI66)rFfle>4R#vS6RfIKA zP(>O~n`}rEXqGElU35G-vz6XgI-?u2fgYw9tFSe8KYsvXuZg$^5vNgZ6VYx&dl2pA z2muprPMdW!%F%}49y;l=1Q)?Q=##oo9dZdpc!UpYOFAVRn`w8Xo)eq6JN5mkXJ4bU zsqySw;zEdQiKDKl@+6N#=U@e}dSU5?1zlRt2Xtvn{og)V1?vUA)e& z^SbO4T)v%$)rSR~v~`(?CJ;>`Y9Oj18pn|%gM&ju!^0yZCr^f9xm>A?j#jI++Su6m zc)i|eoH{izar*S+1(1_uME@MRC=vn WD?I&zr#J5DI#1WR+s!AVKeJD8eGBve literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-pc b/usr/share/terminfo/b/bq300-pc new file mode 100644 index 0000000000000000000000000000000000000000..a02e3c0c14f7e90642eab0202b8a0255aa2849f8 GIT binary patch literal 1635 zcmcgsJ#14~6h8MF#GfiEAqeF$JW8Gf1Je7o9SkuAib9)|@G~F`QcRr0A-3cAhs2Or zmCDdcRi$=lhjw6Sx2lyoRb8M1OPPRy1qOr=Oe`RQgp|v7&a;UE5-h0CKHvH7cg{Wc z`n)4=QG2O}R#QdwB+kwRuDh!`I)Ah|R&V5McHjo~>|~>84d9%k&%lL4VOdP_EK7x=uI1?$JYfO4}9Z_5t?_ zGbRgvu)~cRP+zDM>XaH$G>Ve zKh@vrU-ci@EpCfB`G_8QkYE_REq6Anb>+&-zgb z?qE!da0g(Yz=mN%Ft2yP%K5$RwN}pUT_9_R3o$Blgdv+M0lbp6gG+{7A;r2t$V{$x z5*s?iG_9fMq+-y|r-4nU}C@J@n6LZNR<9%F3Chy7mML@u(Mhq!lri&Ku z!8Pnd@S)EUsg4SueuOL*JAE0%-vm0<2Jo%C6f-}~=*8G4iYw>|O12*gj|7v9agZ4| zQ6!0W`^cB-C+kxLr4!s&AwyllHxOlCmkf3Zmy{4!6T+`%5*9K<4BM&zG=!`)St+ux zM@nZozmZ8f83)t{4PzQCsUc_-t4UDL$&@*{&uQR2J7aiPPKK-jT7x6HgFx1iSy&6! zgw4R}G%}LUkB?7GoI5u)RVtOsmCE#VwK_9XtJUj`MzeYT{Os)9T&s2A!o`d8^9u`Y zZdg17m>?bwYbOs@++JyZAf5GigfYGt@WL_BWQ8|6xs2=iK^P@d>Ao|gkYGGun9i4! CBNGk) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-pc-rv b/usr/share/terminfo/b/bq300-pc-rv new file mode 100644 index 0000000000000000000000000000000000000000..9842defe454b4fbfa8c6929304967cd55932c677 GIT binary patch literal 1639 zcmcgsONg0D;p9Li*oL(?h&krsPsMe)VcTF_xiq@S}nFy8_lPp zXp8iZI;Od)Jg~_hn?792R;qoz?wF1~K3vV|-8=P>Y`wqK=Vx?3JC^k;S-nuoWc9eI z50vt?La{<5@M{_qP?+dO{go7`Cqms|M3Uyva#~Gm$xxAvw3#|-2kpgM7xe&-!j4lf zW#DU6rv{w{3xbOZFVj`JPB-Z`-KG0b9@1laO3%RF(0lq!>jmd_0Jka@1WEW^O&$a( zaZvP#W1?3KioEc}glLE};vC`^V3))dajltqUEG*m#WjC@ZXtR{+!K$)6R;QJm3RmL zvAO1p_$EjO!Cbiz7z9g!%j62VO0JPP@DW*1dJs&=X?aSXk!RKW`KB5K59DLTpUx_+ z6FmP-X+{36e<@%8r=8yZ;XWVaC;3$_iu~LE`?uAWM3zP7(PGll#;{Sgj7-8P+eXHR z;0ys$T6!Pcei-|ol2Q$>&nPvDQV{b4)5wQi!sD=8n3}I^gZyd&0$p?6+mrHWib`@;{ZMr=u`v1r?O(q z>^P$pVuw;pg_c51q)^fl{`$$blB& zk}Aa26yd8GhPezL!`dIbs4l1%s!>qONEA4^ z!>Hn(jV$iUNRXDI1=ylB2&5evht**<*eI+*y}f;XgM&juCr^%yu~;gV%cG;d zU#V29wc6O&`1r&`y*@cPH8njwGt=OPg+qV|;^ELX@?eGSRn2!)XDuFKj4uW}a|AS6 Zil6h8l7;uRs8Ft`>S<|bnyxzBb+nKB-!$1ucVq9oIq&P>O&oj$dtZ6szv zA`%uXSXi(V5-YL6!p5wyuwfx0tZYa~EUxeTw&VFxQyrBrZedvJQZHae3iB!i}H1;=L6%^Smhhju!X4nAk54 ziz8x0Oo+57h^lCcS#b{W3$RP#in!Lwy)JHiui~D+er_RpN8A&S#1pXR;-z>C|Djd$ zS$q{FJ#W5T4D`I^zz(@mu9jr;Bp)RPfCXX(iT1bY$? z)8c#J_QKfzloW$70AnAu+%(({pQhlp!?wYOV1qETyP?Ic?&e}GZge+D>oFj@8ICYS z!)bt-)_S<5!yUq`D{z>p>kXrj6O4@SqhZc;_-sq1S}Hf{rn)z~Mn77rd#MxSAvc@$Ux literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-pc-w-rv b/usr/share/terminfo/b/bq300-pc-w-rv new file mode 100644 index 0000000000000000000000000000000000000000..9448787a84b6ee1957fa53d114ae11ed38a923f1 GIT binary patch literal 1643 zcmcgsJ#14~6h8NwswD`u5~9$&4liw<6oyFe*N!p7kffENNehS}!mX4LJ8_7ApY1r# zkA*~rR;ntsLp#8b0XEc1ovJQv2bN}P8CYOI2*Jcsq*h|MeCIwJ1WX`Q%jY}a`_8%N z9-nvQelbD&=q)OXeX+AO&$frFbHlCSaC!Y?Ghc7ahNfqGW^1ugFi(t|OZoQM%50c3 z!~AkStmn;AC6_lH&o$>N#b&8oCldH}jR`1B&?fHKPfCAccv6Z;(hk~7{WL(9jvSza zG)iN13{O*Z8aNI6oMtEo-=sEm=mMBh-)j7xF47iVp&#jI`W4FWbd9#@FR#8 zf^(C=!gH~V%TG>m&F4Q? z5&cR0BK{D6f?XFk#a;LZ-827+M}nkMZ^%BNQttrw$am#?@_ktVUy>!QE43om<$1X& zztqoPcU7f+lh-ugexmd``1=K=7kRz@hP?GZ-E`+A@3}Akk^jkEvDf>1U$xrXu|2Uj zX*U^JYtgDYRxV{#T`Lzt@D>0WBYPa~6Bzqvk}?p+VC>UwP=uR^XaQ~q#1V#cq6lz`#t@hExk7?<4L&p7-ZTz!f?bMyI>DJf-|gyD zSLddK;^3jc9!1H36ZDPQxR-K1s3Mc4v|9jp3;{!eVWeR28MI-34DY+#l&+2npf0Df zn2F{wiN6UgwcsGsTEtJqfuwOzUG0(IAauK#zWMSj`rrrO^uTA5rTRW zJXcModW1XB%8?$K>=7=hLtIT0el?3QpCMovr~)t$GDgTqkbyJ0bei)Usf3lXKwVHj zqTW;02Mr=M4(eE`5+^6E2Hvxk$GfspWMpV3uIMcS8K1RaZCDdlgVkwfW_EUdeqrI< zxuvCIu~aITE0t=sRtv*=z0qhkmzP_um6djTb#-lReSKr2!vl+!02{>1VI1JaipHyl n@9D`pyuw&tEO_n|XuQk^t!&D6T+a{UiIL2X#^xS$d|IUZQ>)pdpM#Xc9aPT%sAuAy%nQyYxO( z818GnP9M=HbUin>q|LVpvRwDRB|b z6_FFmq6Ad~wt;uW2VxJAKi9;*RyV*Oi%-Qt(~oAu@H31*7hj2Q#g9T^h=rH-=8R>a0%t z-#R14xY0)KWM-`;tK?X@lvPqzt_;In0AMJg7hNk{^NR(e&og>9V=Df-DXz?d_eNMq`&- z7QFyGAAT8TFTX0jfvnQ~R=VGwHuN>ANb7DZ-S~eex_YUrIN#OzuFiM(2Y|Nl=ZUxd7a)=aS^xk5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-w b/usr/share/terminfo/b/bq300-w new file mode 100644 index 0000000000000000000000000000000000000000..db2b4f01acd87b414b93edcdd4cc7c2fc871b132 GIT binary patch literal 1667 zcmb_cO=uHA6n--+_yeLK^=}Wh+Ld|`c4v2!)@Y;kho~*uT8kK!s%aZ*lBPdtjcqDo zJ$UfoMGz76(1Rcz1TP{Yf+%=U!Hb?$5Dz^G1-;1nz1c*qJxHOU-}k=x=DnH8n@QJ- zb+n2WQBE8-PW8LCy?JD;sgTK3ceK08u6A5ieY!7G$mRx#1pdlk0SSl+RIjE$e+-&{ zB9gR#s%S0Mkfmof(H3f?CfbWp3$=rf0LQ44QiugA(l}j$3W95zuhUJsO_Ow=9?&B= zPw6?mqPI|==qpXr2En-v;B8t3K^$>cSqDKvG>bOTA&$a1AyT4OIV3hxFaUZemENhcQL*v9*QU81=JhyUVKKJDrZfLAL1vplnW(SECnx@E96SK zMs`7`Wv}+}9c59LpZ@GNZ~cjhPwqHL988x*HA0h!}h4ST$d#{db)fqt#eQOUX=HXRN$qrD9fI zS*ZaSZVxD7Cifxi2RP11O2B9WIL4KqLD&__G{R0`2XGK*0i4>BnN+poOU$HQTOza0 zhUsT{hAAG+fSin3$4h#=LX>??9xHvkBPiqqI~&G$lrufvTj^A#bK`!xcB^kUVo7~2 zy<;-s#+>zeWO7Yhr9m!}&s#@X)u&Ca!7-}$AbN^t^y*jvQu)YYGZFTq8UH5Gsc{fa zb%4LCaxgm33bX--;5bp9cj`4aFe_U#6L&1a!e^>9jZe@>`ECbLfD3qJ?na7k18<~7 zOGR)~w6nb;nk$00&{Mp+7JM&f0FTLMs>y@U4KnM=jFO2Oy>y)OhhkAHWd z*Msy!Hv;Kcu`DMySVOpEs|y!p#mG$1Vr)@)1!&C(Py`A33 zzm@K{rwx5gD%85$N;m%RL|2!(it}Ba@9KPqe*k#=_<5vot;t9Z6t|Kw+flCPN22u& N$4|oo_<7=O{{ovs0#^V4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-w-8rv b/usr/share/terminfo/b/bq300-w-8rv new file mode 100644 index 0000000000000000000000000000000000000000..0ae3353e74b512ec4050e3ef8edc096513d7f44c GIT binary patch literal 1559 zcmcIk-)j_C7(MqYSOwn%Z3ki6WFS%^Gk0cpR<~wjj5O6)thH6li_vVd8)rBBGchq) zu&56r&VwT2v=1#}p$MfQ_Q8jiq7kcms7g~#}W8EmSKR@m(*Deg7sdnsEd9mDTm+jiZOxgB)WuIM$y0v;6 z5d6!a1tlSHiCuRfHO~fmX$nYe#5P8E!Zw)!_z1BVqx8mci2N~e44>g7?JVX|M~f;= zdxpQj6KFWq=hz^0?Kbjuqtf(k+MStBQ(Fv(A@RQ0&4?%R zq9{hG4iX;`lj5j2POG02;*?R-4X z)IW*GCi0a0n|LPv6n_a@rs;rm$oknWJsHSQ?lu0tESjbb*)@9Q??}J?C0~@6U&~y5 zE%LIuZ{vT+udlu#Z_BUbH}YF~U;ZE;%183&fA#+QZg29Q{7-$~bmo7Tdn$jIo3Is$ zQ*|1iGgEXL%9&{)@#m0CB!`e3hURtY2_)Va(@07x7tt9vszP;u*pK8Wk|R`uYl#}{ zZAsk0HCRI~l3a~Zq7+6+$&0KZwh8!N$e2bznE&G>>zQ+F#*{+V1UyOUBBiTJxoGf% zoI66noH<}B?-$j34QonOU`>@&h2(3>X$mzJD%J=MPqsg#4OFC=joCmCQ%O|RAA6EN z0Eyp2GKQGbD6fb36U4_5f65U;CcJ{CJtXC7BDjY(e+ zWMeb!k<4;p2an&!G#jLRjOlbipEZ8d56s>qd&73qX!Z8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bq300-w-rv b/usr/share/terminfo/b/bq300-w-rv new file mode 100644 index 0000000000000000000000000000000000000000..fc38b54df5eb2281a98bab0453fa7480bfb40f7f GIT binary patch literal 1683 zcmb_cO=uHA6n--+_yeLK{_Z8!uINGBo!w1Zqm9-dqPF-iVpOUoZLOO$O`6o$rXtpZ z2M=BZ5kU_g1o0qv5fKqY!Gj83^rV7#@FWO&k@b7CiCR5~VCeU~Z@zi+X7XmzMPen* zr)g9WdyFGPu5GUvSy8Hvbyk8Pws*Iy>{uyR&6UczSbi{@i#e`}9UTlR`9hgU;I9D| zkbsy#wFMOFk3kbqM3Sb^Tv|jeWa*jZw2C^YlQv`2O}oMSfCJP+S;Pv}Xq?VKh2aIw z7wIxxrR#KyZqr>j59kp+r58|d=>vVHC4zI?!E3Y%!xZ9%h7QBD=n^}{Ua=p}A(0gW zq6k$5MuAgeLYzb7&v|h{t4rW3;+nYL@T1u-Y>aW4G4HTxP@c^E|_pN(3M$Fqd&jk1HhD*W|I%$J>X6oM7jpm`ZS_$9pTC zs&sD34_a6Ib_YuOoS=8i#NDK`xQI-)QmP;1GWkpirnY{Q*WehjO^BZ2L+R?M0I4{Y z&2-d{F8rH7r^Z1z)i(aF%E4&c4qzv+3yzcEd8bWtJF~JiGjYe_EPSSB)A$4(RP1#C z1-O7m=0>FGHt26#+9Q%ezqZjjkVW`azt(WO(I zKb%ZhNefazdXaR0x*nt-xp7FxO6EDa-5SOvTRB{ml_WDw)3HVK6`(aEKnLqM5& zdJZ4%?d|Iu7&v}B2=e(tVQ{cm92zQ>%H`qVN~KyI898yHRy%oebaZU2ULWU{MK1u) zhhK)doL?2+Kt}0)E8TBT8~U15q;}MSB3x}3T6NRF{l`K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bsdos-pc b/usr/share/terminfo/b/bsdos-pc new file mode 100644 index 0000000000000000000000000000000000000000..c4ce9b492eb535c2e570cb37d2a99cda10748be1 GIT binary patch literal 1285 zcmb1QlxI+55MZcfoXMC}oRVLxTaaAi>Ex>r;H=;j?4s`}1`Y;EhW}Uq2ZI9xGf;+sfe9?n!obeJ4QBB(C@?4iS!!UO29VSNvkbtb z34;}bJ(vYD)CI`$Wbk7M2GS7>aZvFzhAg-WnALeeks>6~5+pWE4T7#SI__dGr;n*8J2+QwG7)B_5)cbaOk=S6u-i79Z22;tI%ge*pJLI#37EX zW|R#Jfr0@HtxCpbqHOPFoXp71z{?<=%pe`@4a8nRteUA>V5pj6ty*BDn&QF01r+iC z<{s&2XCQV2VqYLOG|UB(rXT{$vH-En;e-iT!T>}XSQ~?He_8{RBYjag= z5Yq_AG=wmX5uzqQrYS_!457dr$h3fnT7pD@`f?dK8MFm-1a&3!Bn@sSuq19w`;q=J zV?)->?EN{nau4Jk&95ssQh223NO640;nFQ-2g?stY_9xV^{M)C&5hbQb^n0wG&Z+3 U0SAdO*u|hgF@dun0SgK;092hVC;$Ke literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bsdos-pc-m b/usr/share/terminfo/b/bsdos-pc-m new file mode 100644 index 0000000000000000000000000000000000000000..5ea4c1970eb404db494d6d4f07051f3bf8885517 GIT binary patch literal 1249 zcmb1QG+@>X z3=E76U<{&Q0GSOIV+>&6V31_^|DS<@2}u6`&%(gYzzt^cGbk`90a^hB&Br8bcOb1xOVLbA1Wd1G*v7CQ$U1>T*F~WC6^83T@+Me?5hJn-5Ns11 z;s_O^tf3VG#f+7V>etqzNqI17m=+f<-`jzzm=REf}QD!OjL*t!fVvF0nROwFWVb5lj;x z(-b0V24osSnC3vH1%zn{5(Nt9f;5_{mPkk2TDYlNGjK9!3+M>yO6W-%+)iLg+?e(w z{bR<4tee^Ub8h7x$UB-}S8$~8NYRnv_>#k=TgncWAF9|~`MK&-_2ZfwwR7tJ0i6m7 IK2X2_01KubK>z>% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bsdos-pc-mono b/usr/share/terminfo/b/bsdos-pc-mono new file mode 100644 index 0000000000000000000000000000000000000000..5ea4c1970eb404db494d6d4f07051f3bf8885517 GIT binary patch literal 1249 zcmb1QG+@>X z3=E76U<{&Q0GSOIV+>&6V31_^|DS<@2}u6`&%(gYzzt^cGbk`90a^hB&Br8bcOb1xOVLbA1Wd1G*v7CQ$U1>T*F~WC6^83T@+Me?5hJn-5Ns11 z;s_O^tf3VG#f+7V>etqzNqI17m=+f<-`jzzm=REf}QD!OjL*t!fVvF0nROwFWVb5lj;x z(-b0V24osSnC3vH1%zn{5(Nt9f;5_{mPkk2TDYlNGjK9!3+M>yO6W-%+)iLg+?e(w z{bR<4tee^Ub8h7x$UB-}S8$~8NYRnv_>#k=TgncWAF9|~`MK&-_2ZfwwR7tJ0i6m7 IK2X2_01KubK>z>% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bsdos-pc-nobold b/usr/share/terminfo/b/bsdos-pc-nobold new file mode 100644 index 0000000000000000000000000000000000000000..3c56fae64460497a1ab55dc6eb63699e8e209be8 GIT binary patch literal 1300 zcmeH`&1(~35XPTZ3$04A-mH6BgtrK7Y_{2Sql;AAP*ZKSkc$w|+Qe3Cl8xPHtER<+ zhzAcnhzR!RRZtYK^&^5;LD1^azd*fsGS19)lRa4R=Ea4X`Ry|^JHx>4QN8Fv7nanj zn)VBxAFJeJWpCOm7HY%UbpOe$IXPnHy|V8W&zTGTp2;adL5xHAL|HV2Npzqajo&;S zIE<~70k%lK4ei(=v=b)w67|U2KJtA+aq%_|Vn~QTnkE{<31lgr!s!it26N4daCDiJ z`G{JLa9Godi>Oil25#au?qFr3_U<2h8jbsse}IP)AK^LHh~93}^^WxS_&|PLDh5<* zew6G@^k~h04lm&U!)w*lt-qSSqVB17bi&BP$Q>s;My4<5ilqy#t_(BEU^ zM#zqkO^{huiF}fsP>RWEI$IKP_Hoye$jmk_-x?;$$eWQ%Qye8bN;XCo%<1I8vdKgU z+$73)2;3?P_XyB}DHx8d&7<`Y%T?FWE@PsFHeoVQ2MMhJ9l}(A2UsP!#EnT^HFAei zquRwb^mg^_itXOt9sfMlcJ|54kJ+#1AJ45{Tq}Mmy(qu&mMis3_4&GgruzEwvnwwb mUM)Vo`u*Cs>tAXgmsXd5(y9r^wdE=aS(@)+Hz~L+U+ou~WHP+~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bsdos-ppc b/usr/share/terminfo/b/bsdos-ppc new file mode 100644 index 0000000000000000000000000000000000000000..b142cb9c67c52f399855785d4476e061479ed25a GIT binary patch literal 1287 zcmb1QRAf+N5MZcfoXMC}oRVLxTTqZ(6Odn?S`^@{;1ukl?;os?oS#>mpOebKz{mi` zAPNSM*$ zz@!O-6@xvP1v1nH$ns?HV+aP)5e#uq@ic}kxC)rnc|egOB+(KiHcSnIu3)GE$~Q2y zFmy2VFie1|oq|`-|Nk?<^0OJ1fa$di+Zgr(StoGlx(F1%!f+i(-UO@AXGGYK%re9w zj;v;s4GV#S0Sv85#%7{y?`53K$j-paAf3!09qkRoUO=pxsajyDnqsY5V5FMj!N3I+ z@&M)@>1bylb_8NyAT~721(K#90?e`ivCQFw30T4aL>gEdf@u&NgnhtfIRRN7V4ife z3y^jLVs{|+1Y(FiydaCgF7bsiK$^fJJ}?GID_8`i2h0FE(1JnQ9PDh6)vER&;Sy_e zRcjE_2*@;qFpUwSCP1bsMAQtSz#Pc5fQVXxM1lHp88{iV1#|>;CG;c>ZYQuLZcO`; z{xM@i*3InwIk$2ThgD>zbkr07U-e97U`EoBGG4^?cg{9N^^`f<&T+BtRqfbKLl Ww>AL>i80v4pg=K!vmgNr3Nirc)-JCA literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bsdos-sparc b/usr/share/terminfo/b/bsdos-sparc new file mode 100644 index 0000000000000000000000000000000000000000..7a1bba83e2a07c90c3d5752792dd4dfcdb77ad56 GIT binary patch literal 984 zcmb_aJ1+!L7(Ey9ek3{+2D#aYc-$FlcWi|9NW3(^+@e&F!3|^3GYtaFX$j zIb+tDA6;{dR5s&g5BC58KAJ=lg+f08sG(RW)S({DoVBBuxsT%j#Smc#qg;F1(qkd& zPo{j1|57esiFygYzec?NquInZQaHdd&T)w=T;m3}xTEW%PTRs9i|d{X|!b&Uw_sVk|1lS+9@1$AdxuZwG=tXpYY^N>S(q0nJ5=?Xa!XwLK zGQ*lCG(|K;HQ7wom?ovkWKw#|IA56Oz5akV6@9T~&m1S7Lry$XoUBsf(p!4A#^kiu o$yqWlPh$}oJ36W7S4S2Iie*gdg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/b/bterm b/usr/share/terminfo/b/bterm new file mode 100644 index 0000000000000000000000000000000000000000..134f63e816c93c71f6198ca0df976c1ee7979982 GIT binary patch literal 1155 zcmc&zJ1+!L6#lM4L_89eSY#8XpxU{!i;2Q|g%ClbFq+-0FwA&tc4Z5XM59ruR4R=| zq0uN55|JqU2ZcsdD$P3Q?CivPgw7=AJKy=vckaFOYEi9dLnB-@rP8^@tiPRJU-F_` zZZ?-sc~Mr}wUh@a{CFwMpjd3C_Tj(P3VAuF2tzPqI{gSN$IaplNiMW zDbtt@^f@e4ILhL6?m`1nevL2`R12? zrMpz!;_ln2`%rx#_83;*tx+sK{n9T_J^#^H_J7VVc*PsN@oH74npCrDSDos!=YQ+& ze>hJf*wa?SsvZ$%JmTmH%99kF4cFK(jZD9>p^eNqeduJN7|;n1H6^l4AAiI#eS+Q) z;y(R;5huoi7Fmi<8gsN}7+;h*&*|~FPW~ZfqIfOC5cj;s^nO>*+vh&1ybIk0i zo)3=9V&3aD>UXT#Fvd~|5Zwy1hCK3)L?yvCeE)*N_xnyn83-9Kf;gs)H4E2p#hg_= zYl?Mj8Q=HsD&JEaz{6`C;vIT;Z@zuNN96%N;|snS==WKzz{ zMY*KPWkpgPnU@7gOHPXFmt|F|Qd4VPHsqFU$!%%MuI$M})lRzFav;5b?hnTPr?K^a z{;v{-?Jieh;2KZcZthA2JZHPvqO$tgVj#2~FYBbNl(XP;94|LA5k&-C1y{hcqu7w` zUJdTlz$OnZtK`v(jZ*tn{dG?c|ZR z0fs;q?1PiwDX;(*!6mQ+E<@8Q_7$3L%`_7SwcSN9ZDz3t-UlC;p}YlmG1IlkodjFk jQ{YaLt@$ao>g-xG;HzM;$46?r>EIVcamIE_nl^<$gRc}x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c100-1p b/usr/share/terminfo/c/c100-1p new file mode 100644 index 0000000000000000000000000000000000000000..67fa7a47e415b290dfa1f037f86c957d8d0e5c38 GIT binary patch literal 810 zcmbVI&ubG=5dJ1o5+fBGl}J7;FYTr&YGM*inl|e;CDFEuHARZXACxq$Jy^SoN>KdGjVEc}yXSeS8qNTPzfMZr9!IZh6mp zfyx!Vp1ZSYiaD>dy=5AMkkJSrx)lQ>;J|ZeNejMzM&bMYOiUSwgeryvQlT{oJ7gz3 z>v}d6*KjM;zJEvgp5h5SJi{JdqK8*u>^0sf@8csr;dAKug0J`$Jm!DHcl-!_Kj9-H zBNCHia$J0WOmRw*l9IDx#FA;%7v!Rpq^wp|YU0R(G-Xk)%S~yi?|;{AS(n{I_umfn zyP@@O{r3`uWzRaJ;5tF;$P==&`gQ9s$c>1)Kq^;4HL|Vnd+?=EL?Apnfn1=EL9L2OoeB!!f)7?_%6Fi<8gsN}7+;h*&*|~FPW~ZfqIfOC5cj;s^nO>*+vh&1ybIk0i zo)3=9V&3aD>UXT#Fvd~|5Zwy1hCK3)L?yvCeE)*N_xnyn83-9Kf;gs)H4E2p#hg_= zYl?Mj8Q=HsD&JEaz{6`C;vIT;Z@zuNN96%N;|snS==WKzz{ zMY*KPWkpgPnU@7gOHPXFmt|F|Qd4VPHsqFU$!%%MuI$M})lRzFav;5b?hnTPr?K^a z{;v{-?Jieh;2KZcZthA2JZHPvqO$tgVj#2~FYBbNl(XP;94|LA5k&-C1y{hcqu7w` zUJdTlz$OnZtK`v(jZ*tn{dG?c|ZR z0fs;q?1PiwDX;(*!6mQ+E<@8Q_7$3L%`_7SwcSN9ZDz3t-UlC;p}YlmG1IlkodjFk jQ{YaLt@$ao>g-xG;HzM;$46?r>EIVcamIE_nl^<$gRc}x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c100-rv b/usr/share/terminfo/c/c100-rv new file mode 100644 index 0000000000000000000000000000000000000000..e9a07708a7c0a32df102fc8c8cdefb3078fcbd6b GIT binary patch literal 838 zcmbVJU279T6g@X0iGe~*(Q1#>NxRz=OG8rIG)=c@B(=6!`XLk>>j!OIMYQgcN>B(G zeDEIx5fptE{AK!&7{ zknr8449K7i$wj#=SJZP=F($T5%9LbfMhdD+vLqF$soq2s{z^LEB$>?yl$`!lB| zl1P9{;39bb^lZ#>u7`K3;4YiS6n**w{g5}oL2wOR2UkFqx4_K`!jr~WPNA%)lb|u6 z3qA#JYf`yfna>fy%LG!r)}hO^_PF_sRL7nKi{9p(BT zkLVkzZl=A&wUS3#1{eb!uni7@XTUkI0M3I&Z~+=taj4L6%TX~YP|KYLvr#Yh!TaEY ws41_(J&byW+)1;xJq+%Qu{Jr(+6p~03O2&V{@zl{$%bE$#5v0;YS;{Z0X^^+CIA2c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c100-rv-4p b/usr/share/terminfo/c/c100-rv-4p new file mode 100644 index 0000000000000000000000000000000000000000..e9a07708a7c0a32df102fc8c8cdefb3078fcbd6b GIT binary patch literal 838 zcmbVJU279T6g@X0iGe~*(Q1#>NxRz=OG8rIG)=c@B(=6!`XLk>>j!OIMYQgcN>B(G zeDEIx5fptE{AK!&7{ zknr8449K7i$wj#=SJZP=F($T5%9LbfMhdD+vLqF$soq2s{z^LEB$>?yl$`!lB| zl1P9{;39bb^lZ#>u7`K3;4YiS6n**w{g5}oL2wOR2UkFqx4_K`!jr~WPNA%)lb|u6 z3qA#JYf`yfna>fy%LG!r)}hO^_PF_sRL7nKi{9p(BT zkLVkzZl=A&wUS3#1{eb!uni7@XTUkI0M3I&Z~+=taj4L6%TX~YP|KYLvr#Yh!TaEY ws41_(J&byW+)1;xJq+%Qu{Jr(+6p~03O2&V{@zl{$%bE$#5v0;YS;{Z0X^^+CIA2c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c104 b/usr/share/terminfo/c/c104 new file mode 100644 index 0000000000000000000000000000000000000000..e7cf57142974133e63a9ed11225a24b5a9946919 GIT binary patch literal 832 zcmbVJU279j5Iqx-#6X~?XthV`Cf#j{r6Gw)nx@+{l2}ueekj4l`av2$9<*jrDGC9D z5B`H7f}+oYzsz6Y(>i<8gsN}7+;h*&*|~FPW~ZfqIfOC5cj;s^nO>*+vh&1ybIk0i zo)3=9V&3aD>UXT#Fvd~|5Zwy1hCK3)L?yvCeE)*N_xnyn83-9Kf;gs)H4E2p#hg_= zYl?Mj8Q=HsD&JEaz{6`C;vIT;Z@zuNN96%N;|snS==WKzz{ zMY*KPWkpgPnU@7gOHPXFmt|F|Qd4VPHsqFU$!%%MuI$M})lRzFav;5b?hnTPr?K^a z{;v{-?Jieh;2KZcZthA2JZHPvqO$tgVj#2~FYBbNl(XP;94|LA5k&-C1y{hcqu7w` zUJdTlz$OnZtK`v(jZ*tn{dG?c|ZR z0fs;q?1PiwDX;(*!6mQ+E<@8Q_7$3L%`_7SwcSN9ZDz3t-UlC;p}YlmG1IlkodjFk jQ{YaLt@$ao>g-xG;HzM;$46?r>EIVcamIE_nl^<$gRc}x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c108 b/usr/share/terminfo/c/c108 new file mode 100644 index 0000000000000000000000000000000000000000..ad192f887b898e4914db9543f059046ad320f30a GIT binary patch literal 950 zcmbVJQA<=&5dLN>G{G>#j6Sfl+g@)Znro?>yQ!g;VTn>wmSO9v?H3a+Vr0}HAbRqoqt0W#A&h09dw;$Co7J7&ULDtnByAPsdAEzS7!t2{uzKG6oND00Wb!h1Wn|3`an3o z*OoD{d2l=kwt;<|HYV!PD`pwk0hWNB;1RIhzlSx_fZeUIfiiC+i!_D$hQU!VtOTen?h_#D8>|r6yu6X z`?r}3aa!h0(9;)(Z0^-3=nG1hn_1~idmaQgg8?uO=D;oBI(6c$JcWvkA$x=D? m8oSscYz)VvcF@{^uA3c97^li$yd!;LV&MF-siU)fpo?E8Au+)K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c108-4p b/usr/share/terminfo/c/c108-4p new file mode 100644 index 0000000000000000000000000000000000000000..290bb6100bfbaef06974c35f41bab8e7c459003d GIT binary patch literal 933 zcmbVJT}xD95PoJWG|4^;GkU<@-S&7Q(_Hgob5ClhX<4F?)S_kU`VoHZF-1)zg`h5k zq9}qO5ClOG1fh#A>b?sh=)Sw6oB9cDbB>!)&`mGz%rnn0@60i7f43R zq9qmXTrxG5>~|+KtYM28rDpn6g>e&u{S$!bRq@cbGgR5{Bkf41538ipKhoKXK)`1^ zu@{GY>nQqs98i55!>Y$Hj!E3Z1GN|NSoKqtB`jkFt60N2Hk7}{8@yF~k4=2QN3}lT zGrpl%ylNNaio|`ZOKwU+`eaasWK=z_%7jeGU73@4xi1fuFUli%BG1%%Aur{XEXlI0 z$f~T#y88b2Y{)y={OkRfZT?lhZ`*%VQ16~V7IMKl?g~5QCu+g`uoJ0LR354F90|*f zSaqJVdu*%LniR{vWm_dy%(9Jb6yZdIhsO!ec&KCtj&~_)v^`r zrVOt9qm?~1S$y9KGSwUu>t2eATRuf`PLNTV;tLP{uz1LG{G>#j6Sfl+g@)Znro?>yQ!g;VTn>wmSO9v?H3a+Vr0}HAbRqoqt0W#A&h09dw;$Co7J7&ULDtnByAPsdAEzS7!t2{uzKG6oND00Wb!h1Wn|3`an3o z*OoD{d2l=kwt;<|HYV!PD`pwk0hWNB;1RIhzlSx_fZeUIfiiC+i!_D$hQU!VtOTen?h_#D8>|r6yu6X z`?r}3aa!h0(9;)(Z0^-3=nG1hn_1~idmaQgg8?uO=D;oBI(6c$JcWvkA$x=D? m8oSscYz)VvcF@{^uA3c97^li$yd!;LV&MF-siU)fpo?E8Au+)K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c108-rv b/usr/share/terminfo/c/c108-rv new file mode 100644 index 0000000000000000000000000000000000000000..239316133d73265beda331157c0a6c3036a0469a GIT binary patch literal 940 zcmbVJ-%C_c5dLOM+=QZxGWx*I+Fm!3HP=!%cT+RGUd)0{bT0$MU9&nOU;_`X_HB1Q<>S6$&Qbt(tzlvV$tJyQ?1`e zI!KCVG%wP`ZaZ&jdTvL5RADjmd zfibWbG?8EFeZlyCTgJqe!HEFa4E8WN$C z0`;Z9F|b`*sj6z=q&jF8)vv6FqpV{Mqnu(#8*@yTtAxmOAjiT0{fCLkKor8lb6U_UtE&1?ZYiPE$oy8`U%ECIX9*te&IeJxCzQZQpT t3_cTw*LWV{8}I!tYC3)32)nb)|o0gkeX4GeRNJzZR4wo1(=v;HM|{VZv3Gps+_ zT*>ByVnlIRF{+q!Zkzc^78i{_r~g{%RNZc_z4vd9u{D)WI|S|nJzx}E0uO*Yzy`1p zYy!jJDQF+HVKuGa>Q1>I)VBzNHSS|w1_!|_?yJp#mr#*4WS^h$-g2<7lJR5ZjCV3? xD!{z6BX=2FdkI8qoR#{pI}i;!Ppkvzq8VetSk(rTv2_2`;I;1Q^K%2Bjh~#RGX?+v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c108-rv-8p b/usr/share/terminfo/c/c108-rv-8p new file mode 100644 index 0000000000000000000000000000000000000000..239316133d73265beda331157c0a6c3036a0469a GIT binary patch literal 940 zcmbVJ-%C_c5dLOM+=QZxGWx*I+Fm!3HP=!%cT+RGUd)0{bT0$MU9&nOU;_`X_HB1Q<>S6$&Qbt(tzlvV$tJyQ?1`e zI!KCVG%wP`ZaZ&jdTvL5RADjmd zfibWbG?8EFeZlyCTgJqe!HEFa4E8WN$C z0`;Z9F|b`*sj6z=q&jF8)vv6FqpV{Mqnu(#8*@yTtAxmOAjiT0{fCLkKor8lb6U_UtE&1?ZYiPE$oy8`U%ECIX9*te&IeJxCzQZQpT tG$Sdaj6Sfl+g`VlHP=#a?xu!XN+lUdT8gf_tNC-UX0Dj1MEFod zQ4|D$AP9mW2tD*re?U+W^xm8F5d90;+^g9S=%vG%`R1E5=ggUzLvjU$$ig$^`Vx^6 zJDi!?fUxaMCDOx*lr!eJ!}cFkPir?$jUJoK3EMdF-qbDAH*7L}$&?vNCsTmvR&mj@ zH>t8;OYUKP{h*4wvK0ZJ$F?IE2R!RAk{zi0Ta-d(;d>;|j3 zBN!_^UIp$C#vXTW|xSPQmr+!$Nx=;+t#!98FD*a+5n`@9Aku&D-a zoRoNhIr@Y;lVC46pv9DwRPh3sqM1~`Imdwea1Se3Mw^3dYTzu>g(@L3?Vn|qpV?J02RppZO@OT^NE@=*&$i3?U~_$kIGU%@#xH{NAbZO+`L<<G$Sdaj6Sfl+g`VlHP=#a?xu!XN+lUdT8gf_tNC-UX0Dj1MEFod zQ4|D$AP9mW2tD*re?U+W^xm8F5d90;+^g9S=%vG%`R1E5=ggUzLvjU$$ig$^`Vx^6 zJDi!?fUxaMCDOx*lr!eJ!}cFkPir?$jUJoK3EMdF-qbDAH*7L}$&?vNCsTmvR&mj@ zH>t8;OYUKP{h*4wvK0ZJ$F?IE2R!RAk{zi0Ta-d(;d>;|j3 zBN!_^UIp$C#vXTW|xSPQmr+!$Nx=;+t#!98FD*a+5n`@9Aku&D-a zoRoNhIr@Y;lVC46pv9DwRPh3sqM1~`Imdwea1Se3Mw^3dYTzu>g(@L3?Vn|qpV?J02RppZO@OT^NE@=*&$i3?U~_$kIGU%@#xH{NAbZO+`L<<^oBi_!0F#Q1k%57}od7d~ tv>$`C4@?n^2AUS+1;jw3f}DUDXmpSZ5W51g8xXq#u?G-)f-E;=000ls2;Kky literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c301 b/usr/share/terminfo/c/c301 new file mode 100644 index 0000000000000000000000000000000000000000..d5228f94d8cf1ca2398169327109ef3983d8e878 GIT binary patch literal 551 zcmb`Du}i~17{y;iQ3{y#XUyd|T>FAM{@AvNe?j6a3R>vHs@Q5F@yPYVwvdiXON)}03o8+pl?%aeI zogfVLquVeFu0!2j;fUVtCt#U?hIC~B?GRGVQyK+K@I8rX&0m%8hl-=BxD zA$B2J#cE}>vI*fSSR$PmJ<}-ZC1crWi&LX#4GsUAXkrG!WffaUo`dYzeny3Sv1*l> iR2U>m&EBxj0NT+Mya$lWHaRnfL`W3=H!C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/c321 b/usr/share/terminfo/c/c321 new file mode 100644 index 0000000000000000000000000000000000000000..d5228f94d8cf1ca2398169327109ef3983d8e878 GIT binary patch literal 551 zcmb`Du}i~17{y;iQ3{y#XUyd|T>FAM{@AvNe?j6a3R>vHs@Q5F@yPYVwvdiXON)}03o8+pl?%aeI zogfVLquVeFu0!2j;fUVtCt#U?hIC~B?GRGVQyK+K@I8rX&0m%8hl-=BxD zA$B2J#cE}>vI*fSSR$PmJ<}-ZC1crWi&LX#4GsUAXkrG!WffaUo`dYzeny3Sv1*l> iR2U>m&EBxj0NT+Mya$lWHaRnfL`W3=H!C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/ca22851 b/usr/share/terminfo/c/ca22851 new file mode 100644 index 0000000000000000000000000000000000000000..0207839f44b7c3dd18beb31dcc8cca26a30a77df GIT binary patch literal 362 zcmb1QRAOLaU}k7yFknbdG%~UijI+XIQOs2Gh?&pCjY|bs_zw#w zXzdwRz?as#V_f%>^vvx4+^Uae4_fz8%QwwNjqA?Ds3{1uI;mRoGFg<{gKJuSI2eLb V$Iu4(pgkx69Y7&y3)+D;cmed-uoD0P literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cad68-3 b/usr/share/terminfo/c/cad68-3 new file mode 100644 index 0000000000000000000000000000000000000000..726319ef8f2f48b165b215d3c8b6877398dc7e92 GIT binary patch literal 170 zcmb1Qv}aIbU}g|u;9^KlOfj?2HLgicPX-bojzUsmab~hYZhl^7Nq&(+Nl{{6aY15H zYF-IYEG1Q;II}8M!B`D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cbblit b/usr/share/terminfo/c/cbblit new file mode 100644 index 0000000000000000000000000000000000000000..1e1d2da9f76b33079527d2cc0947df9c6879cf06 GIT binary patch literal 554 zcmZvY%}T>i5QR@vtd+VE-8h?6xCAOf{aFYuL~Dao5G$nqfFMZ|3AAac4b;*HaO=h= z5D{_h<9VH=NqS4YFf-pdIT*S!u%DQq)#IJ@X8oqEeLz_2hIV^YvkPBANW<|SRcX{qTZ^XxJ{{M;#C_*dEd w?mFlI+AG|e@!0gucx3wgA2pB#T7ZtA6Ufy#1;}Iem~D^)T7uS~Rc6)k0e@2QeE<@HpeG*U{y2_A z(uU*U|L25ID#IiXtj9P(PXAq8;)-3BsiDrbi9k=*+a2Q{S)Z5~UG#KsWF`~57^l?i z&ndOA{L=F4T)VFH^v&$N8~xaOW8ZK0pZMC6@C|CqVM!K5K^A2shZh?Qx}_%Q4oU6o z*g4`Y9D+iS54r~3P>TXVZBYgVc_zo4F|NU56*hcwPocixplT9GH4~Rc3e><@HpeG*U{y2_A z(uU*U|L25ID#IiXtj9P(PXAq8;)-3BsiDrbi9k=*+a2Q{S)Z5~UG#KsWF`~57^l?i z&ndOA{L=F4T)VFH^v&$N8~xaOW8ZK0pZMC6@C|CqVM!K5K^A2shZh?Qx}_%Q4oU6o z*g4`Y9D+iS54r~3P>TXVZBYgVc_zo4F|NU56*hcwPocixplT9GH4~Rc3e>X6#{{NQ%Vi;gxV1n{k zfV2!;Mh?hQfb(FgDW{e2nyCVoRfDS0fYMqFJPh0nOsWM&s_F{rs@kf_ss)BHCW9n{ P1cNvO7m(&)-~_S&4@anI literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cdc721-esc b/usr/share/terminfo/c/cdc721-esc new file mode 100644 index 0000000000000000000000000000000000000000..a5f4b0c0be813a1514deaa14c0e1e890a082a4d2 GIT binary patch literal 655 zcmb`E-AhzK7{-4`iTtQm1|(Z{A5IsC4L7S5F#?ThcR~8FRcMz~MBTa&#Wh{EqTBw6 zAczPAAqWCN2!e=+F1qNhyDs`ePVdg1BJUk$=Ka0TJM+vilMXWE$?=@u)F0F@4;O|W zZq}a_8*9yt#%fqvY%Yc-5(NC$+Q}iQRrNwZg)T&VB(2A6JH6L2y6NSl=RVFcXms9Z z7r4ZT(I{7Z9>-%zyvjAM8<&~jme=n1xk`rH|!ei@s@YI zXP*N;@R3ix`Z-ziC5d18#`lDeXE zzet)h_5%ZSgyWn>lW2-lWU#%nsMP8iQvF$#<>pK+leN-~PGwWBtxm|@l)EiADOZu3 zl9QX4TasH=EgYAdQFpO0v=A`HFc O#tPo+UOQAxsqqImAuNml literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cdc721ll b/usr/share/terminfo/c/cdc721ll new file mode 100644 index 0000000000000000000000000000000000000000..0cb491fcdad7eab8201ee978745f144573f46b8b GIT binary patch literal 312 zcmb1QRAEqKU}lJ5&|yeUNj5h!%*m;7c5zk+%goNqOIIk*EXh#F$p^A>GV@Z485kHD z2m{6zhX4O1fEWfC7?_|u79cGHmyrXq6yQ9VYRYLPyk@F^W!0c+G@!H=0}lf?1Cwfj gk*d0ax~jHnvTA`LjL9I$Ai*Hczy+i^7&w6}00V}vZ2$lO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cdc752 b/usr/share/terminfo/c/cdc752 new file mode 100644 index 0000000000000000000000000000000000000000..442a60975894750ee761fdec08c88697c73b3150 GIT binary patch literal 395 zcmb1Q$ul-n83gRtKeV|Wsqc$0&^sonE8R?0G!bI8vp zzxkZqo*(=~a_ZjmJ>Bp5+;eZ%Ni#x$TRsR6!dj(z71V>AW*mo~!(oFca&`Sjq?7{* zOY5bNeyaw^>x@w}YO5mSl&tdY{?~hFwL6Fj4Vtu6ud&W1TdKC%VV6BZ4mskO6HYnf zJoaDMe95)VH~M=~bjLjpJo3adFTBRi-%R)R&HJwJ9wg&3jEneQr|cDS1#ip?y^jAS zNs%GR5Sc7lWF0u6=7)b-AP-76mrX?ypYDqx_KZ<%R*rWaxuO2*z zCx6&F*DoFYoVex{p`+!x*X}1yCEtR3so( zM$QzbF=xra3f6?yt=hmAwuLHSs|&9&dW?;E8mVVXuOnT$jd{cSpTD2n|Gpo;=K918 z7U6)-LD!(B+xOibyM0e?%wrX^vKks-0aWuOd|9NXmPeUKaln*ocBrX2@VV2-(!=yX z?YB<%juMrmCrPG~6EVszp@94bnyb4URHdi&l*0Dc Sg|(~))n$~rFY^(d(GcG}OdLM| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cgc2 b/usr/share/terminfo/c/cgc2 new file mode 100644 index 0000000000000000000000000000000000000000..d513db5ced6a2bb1013c0c53d774075371ccb585 GIT binary patch literal 338 zcmah=O$&lR6dW@mN;(8V_#ifjgrGxK=B-~5blp}d4{GdsivIhyg&*amfq8Fc-aOYj zVhI~(tRQ$4glqpPuELDBVHd6v!O}cSid?cn@=V>ijI+XIQOs2Gh?&pCjY|bs_zw#w zXzdwRz?as#V_f%>^vvx4+^Uae4_fz8%QwwNjqA?Ds3{1uI;mRoGFg<{gKJuSI2eLb V$Iu4(pgkx69Y7&y3)+D;cmed-uoD0P literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cgc3 b/usr/share/terminfo/c/cgc3 new file mode 100644 index 0000000000000000000000000000000000000000..726319ef8f2f48b165b215d3c8b6877398dc7e92 GIT binary patch literal 170 zcmb1Qv}aIbU}g|u;9^KlOfj?2HLgicPX-bojzUsmab~hYZhl^7Nq&(+Nl{{6aY15H zYF-IYEG1Q;II}8M!B`D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/chromatics b/usr/share/terminfo/c/chromatics new file mode 100644 index 0000000000000000000000000000000000000000..935a1cf43170a962f6dcb8fa6721db6a1aea3e0a GIT binary patch literal 523 zcmc(bO-sW-5Qg7T@iQL1_<^eu>0u6=7)b-AP-76mrX?ypYDqx_KZ<%R*rWaxuO2*z zCx6&F*DoFYoVex{p`+!x*X}1yCEtR3so( zM$QzbF=xra3f6?yt=hmAwuLHSs|&9&dW?;E8mVVXuOnT$jd{cSpTD2n|Gpo;=K918 z7U6)-LD!(B+xOibyM0e?%wrX^vKks-0aWuOd|9NXmPeUKaln*ocBrX2@VV2-(!=yX z?YB<%juMrmCrPG~6EVszp@94bnyb4URHdi&l*0Dc Sg|(~))n$~rFY^(d(GcG}OdLM| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/ci8510 b/usr/share/terminfo/c/ci8510 new file mode 100644 index 0000000000000000000000000000000000000000..2874d511c91ced0214a77389dce5eb056d1482a7 GIT binary patch literal 431 zcmb1QRA5kJU}k7$2xLgkEXmKPNzSw|H8iLJ6V7@Hog>GUjm5#|7QS`Obi?h z++Y?TgCdw#1(WJPQX9+ysU-#IgLN6=&})K29N7j7s2Uq6?ZDu|;6sEyWHSh{Ll}4& zq@z8gy%?mu89-#TYNl#|p{h}ewQ7M8kn#WuIROJlI@%eC9T|8Sr0p1_{hff=1&D!y V{*FKid&3-%IFQbewq@XA005H2``rKl literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cit101 b/usr/share/terminfo/c/cit101 new file mode 100644 index 0000000000000000000000000000000000000000..ca8e56b67833b151456e862c4db4917ba60f8a91 GIT binary patch literal 592 zcmb`Aze~eF7>3{Ipg1@nX{uK^_4h{|u zj*d=F{#*6EGll3N4jy@)_q#9O-K`j_*uX6A@qz9jb8KhK=#CrP=3#c7m{*rKnb|pW zY#T82hhLY0HYSs00;1Lo7O<%6C9LV(q_!HqD z+~xb}$%h~NX}_3{`OH(E&v?P>AI=r;_|N(c@0f#-O(ESD^N6Ul2G+>2dOOz0wR%l9 z>X@fHqCz)F4I&WooK>5gkYGram5M}uvcBuub}1Ax@>2+vUP_gfe5D|vDwNk3GW7er dVvig{#C5Vy_+-o{W#ptH)R~B?${^8B@d8;~Mo5=~PoQKS`{BCQ%ywK!N1s|FfrY;8k_BK`@%!NI}7 z!NI}7!NI}7!9frNLD0Vv&r3pET?8L|=iGDOeJ>9Zlg2QK0i5Csdyc0iH2c_?ju*Uo zHEtA2Q=$P#=q;%~^xEN!RKy@g;Rg%!5yUVaL(O6do7f7v+kuAXcB0zG z0jqkHj?hM@Z_4*in9hE5eE&Sk7r10~g=^g47I(PELwE8qs-7Z$#tUA%yWt!DuW!8R zoqYUp<0s^@;wTMGN$$@pjU=tfR$eYI(^iP^UlVz@vLpwJK^Dn^R->eZ=vC$-F)>6< ziKx4xaxpBdMiJSC+Ho3ct6FK=s#n=<*`C_w?@w@VmGC20iSRCKjjWRm!m}3duuO8u Sxg3e!k%63sJPTQeYy#gle;(BU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cit101e-132 b/usr/share/terminfo/c/cit101e-132 new file mode 100644 index 0000000000000000000000000000000000000000..550f3748631aa641fd1e55b28f52067882634f71 GIT binary patch literal 610 zcmbVKJxjwt7=D6_IOyOaJ&>Ygl9HxYsz@ugBK0H0kK$lKtToU`YhxQK6mjw&2o53+ z4h{|u4h{|u;@}_%f*|OBsm~>$EiQrw&)0kJy&T+ylu?YK2dDT((RTHyZbkI**imL7 z7m*=+XuG8_E8$|bTn7|%meL(MWxq!`K`(~T@)oFr2w~XEBbe}Xikw7>oW?vhu<2E| zJoe9R2j0RST{TDtXrS5E)oL9xoe}3<)r-Ji;)?DXH@L+e?(u-fcGpwjo&$ZsE8g0> z{vH0$@0|2OeEu=<3nH)Ds-vs1-D%Z{QEDt@MShX8L`ePBk!2}O%z>04W{DZSOo~fN zl$cit1O4Q)!h=4-!>TF^K`3;v0LmXT%IET071z6{FHd zj`Vt@?4a)`N?#0vUsh1SAjZ(~52&M1G4AIHO!+!PP9aUsU=f?x@~hiEckk^4-ogQ0 zJxGUWq1`jp>6|c~5$8SCi@;yvitZXWxWygr@qov0>M3x~fxh4sZ(+ClhX3MF ze{B4MC~3Cl8d`jRR&(Q&21_|nTBfWJQh!b4SjrF!AZ3YpV$P_N5|WZt<^qw&FgZ~n zB^~J;j7X7vnH}hD+tr(ua>LTS@@~`e^cH`B7<;SyhC>i$k>DsI5;>sh=YS52!f#hrG806Xk7#^e6MrPJzPjaQW#+j;1u5|nT{6Kj7U|Rj2&f` z@)0-5Ez>E>tjHz1(vVxKEf+2H9ZBkoLGa4b2?jBSj(0#EMF`_wp1_o+Gvp*vA38<8k-iuI~*T(Aj=EL=)|vsZQsZ>5Mq&;>YZ#8&=Ke`~$q`#e?9#vwq)nxBj|#7KePl?=x@Syq%pT$Nj5~WcxjI1>7M(ZUa#t$+h2VS6kbPSo@vU{={GYkvsg#D!fU1=^&}lj_rZAyMaBZ*xdvP zcNNxD;U$F2ki@*`;t$-eZz3@RNz^I+X)1IAH}FzG13C}6fiKeqs15mRFfBIauc~mm z+JpH$%ssKHtQhlz)<_omhGZtS{ZsXdhkba2 zXL6>sRLtkE)<%Xi6Z4&R>-=nZDN`GnI6xO`J`qh5{->gbG|`R2i1b^R#w7cH?qT;X ztY^m^*aHh$?UzFtgH%<`hT!2i)fgrP8^K`QWu|UO0(7N%%=Hu#+$M%w;1mbcT<1$WTIB+-_zOyc_Jp5 z!3J!G39Od2Sg_^}S&Ozc*P+pOmgJe>D9kY!^4cRFdg3~_ZGsw6ay*y@MU!Y?3%S@P z6=HH0NN%i@oHlx?wGyU+N!jerGaJ>ONgLx=={P);%;3}Z$A}ZeI5A0_Bu)`i#56I( zD;y?yb(F>s!5RG{G%JPB3~F3318CL@giZ7j4(f#>Q6gNTpE!uR&8dcYMHkfgE8@Y_ z;R}i2Gl_`zp(Q?8Hns`ue8`teqz-@E1Q$)V+RMLanTudL#R F_yaIIPCWns literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cit80 b/usr/share/terminfo/c/cit80 new file mode 100644 index 0000000000000000000000000000000000000000..c8220a83e517afc60ffad1d17c6b9756b8f45606 GIT binary patch literal 424 zcmb1Q6k||hU}k7y2xCajEU_@C0g}29DnCQP!hnH+k%2H^3}E>GUjm5#|7QS`Obi?h z++Y?TgCdw#1(WJPQX9+ysU-#IgLN6=&})K29N7j7s2Uq6?ZDu|;6sEyWHSh{Ll}4& zq@z8gy%?mu89-#TYNl#|p{h}ewQ7M8kn#WuIROJlI@%eC9T|8Sr0p1_{hff=1&D!y V{*FKid&3-%IFQbewq@XA005H2``rKl literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/citc b/usr/share/terminfo/c/citc new file mode 100644 index 0000000000000000000000000000000000000000..ca8e56b67833b151456e862c4db4917ba60f8a91 GIT binary patch literal 592 zcmb`Aze~eF7>3{Ipg1@nX{uK^_4h{|u zj*d=F{#*6EGll3N4jy@)_q#9O-K`j_*uX6A@qz9jb8KhK=#CrP=3#c7m{*rKnb|pW zY#T82hhLY0HYSs00;1Lo7O<%6C9LV(q_!HqD z+~xb}$%h~NX}_3{`OH(E&v?P>AI=r;_|N(c@0f#-O(ESD^N6Ul2G+>2dOOz0wR%l9 z>X@fHqCz)F4I&WooK>5gkYGram5M}uvcBuub}1Ax@>2+vUP_gfe5D|vDwNk3GW7er dVvig{#C5Vy_+-o{W#ptH)R~B?${^8B@dg>GV>J76ml~2Qi~M|Qj37xArJ$_ jOo3u%KrwS;JqBq<2I(Nx0wYxe;}q2bL)B!EQAG>@Df|l9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/citoh-8lpi b/usr/share/terminfo/c/citoh-8lpi new file mode 100644 index 0000000000000000000000000000000000000000..a8d2ed0cbf36ec52ff12684148f64314aa3a218a GIT binary patch literal 444 zcmb1Q)M8L$U}k7$2w_OhEXmK%wa6*RtN}9>GV>HH6ml~2Qi~M|Qj37xArJ$_ jOo3u%KrwS;JqBqf2I(Nx0wYxe;}q2bL)B!EQAG>@PKFBe literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/citoh-comp b/usr/share/terminfo/c/citoh-comp new file mode 100644 index 0000000000000000000000000000000000000000..b1bb63168535f2303b16d5e6c3696b9b6a46b7d5 GIT binary patch literal 462 zcmc)E%?g4*5C`zT6@6icAcERM78o72*wswE_6Bt-=%zvvmQ=@XU3%*ptpxJ{T6T73 zegnJPR|XiPj5}g@;q|nidZ#G9rKJ`gwWK=-mrLN|vy`9w^>c12$q?&{n}#U=tx+E~L$cVR2!a sT+Af}nMJlBv&kGXhs?FP6c(4#!l)Bpeg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/citoh-elite b/usr/share/terminfo/c/citoh-elite new file mode 100644 index 0000000000000000000000000000000000000000..9f70d7a4396f85ed34fa1205d7e1193311fe3cf4 GIT binary patch literal 438 zcmb1Qlx9$4U}k7$h+#<1EXmK%P0h(HNv#316*BV_z+46>U__%~;t-mVA%TH|!HMDj ze+C97Ac+cCFho%0*)Zfe!6H0xaX}zU1c=2LB;jJHW(*Y11I<0*43P}%47?0n4AP1W z(h&^OO45-GK*Yl!?aCmnVPIgXV_;~mV_;;eV_a Z)MJniQY|o2H84(5EihC~1{qnz003P@2e$wK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/citoh-pica b/usr/share/terminfo/c/citoh-pica new file mode 100644 index 0000000000000000000000000000000000000000..83f0e01836fb111496da7925c56ff0a0375e17f5 GIT binary patch literal 428 zcmb1Qlw?q2U}k7$2w_OhEXmK%EyzqxtN}9>GV>HbJO(IWM5AHi5So!8fPsU-iQ)f$ z1_mY|i3(USL{R0~FyuMGB0O+$K_E*6h{YHr;bN#}3>41+%{~4Mfeh>nybN3n(uxey z5e(8w(vb{6#KR!%#~`g?U|^|ZU}&ymU}UOeU~H^oU}6ZwKrvIGm>E#a+*pr6I!Lv^ SNY%hNMYX_CH5p`75d#2ri3Jb< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/citoh-prop b/usr/share/terminfo/c/citoh-prop new file mode 100644 index 0000000000000000000000000000000000000000..2caacb2f8cdbea2a656c69842ceb21f2dc6aa487 GIT binary patch literal 462 zcmb1Qv}RCaU}k7$2w_OhEXmK%Ehx$_sDUzzYcdOpAsmIwJOz+ceo;wgeqLgZLUBQ2 za%Nt-LT-LaDgzWSqR}vM2+hdwzn+7^iQ)f$1_mY|i3(USL{R0~FyuMGB0O+$K_E*6 zh{YHr;bN#}3>41+%{~4Mfeh>nybN3n(uxey5e(8w(vb{6#KRyRz#y$*U|^|ZU}&ym uU}UOeU~H^oU}6ZwKrvIGm>E#a+*pr6I!Lv^NY%hNMYX_CH5p`75d#1K&J;%g literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/citoh-ps b/usr/share/terminfo/c/citoh-ps new file mode 100644 index 0000000000000000000000000000000000000000..2caacb2f8cdbea2a656c69842ceb21f2dc6aa487 GIT binary patch literal 462 zcmb1Qv}RCaU}k7$2w_OhEXmK%Ehx$_sDUzzYcdOpAsmIwJOz+ceo;wgeqLgZLUBQ2 za%Nt-LT-LaDgzWSqR}vM2+hdwzn+7^iQ)f$1_mY|i3(USL{R0~FyuMGB0O+$K_E*6 zh{YHr;bN#}3>41+%{~4Mfeh>nybN3n(uxey5e(8w(vb{6#KRyRz#y$*U|^|ZU}&ym uU}UOeU~H^oU}6ZwKrvIGm>E#a+*pr6I!Lv^NY%hNMYX_CH5p`75d#1K&J;%g literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/coco3 b/usr/share/terminfo/c/coco3 new file mode 100644 index 0000000000000000000000000000000000000000..9d523da8889a08fc287f935a1b7386e4fdf0637f GIT binary patch literal 377 zcmaiwQA+|r6otRFEVHHO$cGutNzg)Fjam~SBxp%0NGO5`+4e0OK@b8T`sdqq+#d9$ z%gmW`58oY_Ir2_9VT%_MVjJ7e!p_1`6fMS+ua9p%v_sp`LAQR{(hpCe9wqbSQ%4ba z{9oQ91rAA5WG^d65#RX(8l2H2kgm&xXz21Qr)fIiI&-VZ8*aIC$$gfOd0r!y-0Md2 zw$ZQdTG#iCnPg|oE`GItUT+TAW}lpy2BxNKreR_;ZU5P7KMqjh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/coherent b/usr/share/terminfo/c/coherent new file mode 100644 index 0000000000000000000000000000000000000000..e6e3856d35b312c32688be30ac6bdda2f7816393 GIT binary patch literal 456 zcmb7=%}c{T5XFB{L0hPIoy%UfMf`w>ASyy_R9cI*f*=L)5`qe{S!=yW@BZ0wvusQc zA~-Pf-psr=huMrySZA3p9vCb< zU*Pq{iVgjC6g0O1@BZ{u-v8k}lW_IHeV~P0AVcH|nP?m9j_T-booc&ZQKX0T-S;Fx Z&X5t(MJ)1$+?3UAyh6@{q=^h@@C|0E0^G+-7M?l$-5GV6}=R1!(XYQHl^tcF9FLlzK zc%mc=xq@?}QcgK`HCe%_dpy-G!5*o5I6s$9zpDAirA+l$HEuJ^p7Y$^xn2&r*x zPAlr#jHML~ZN@=hM2#Dxuwww*Z3QFL#wGZzsPR)k1egRSs2!}^ps;S4dZ}(R>Pdvm z3@E@!Nv2I5&>kB+ghErdbna~CK!z+aP@~2jHEtsx$Z(P6&(%xDxqU2(0$tzWC6aZ6 zweFQ{O7=+(NDfL4F&iFc8Rj*y)A0Np;`$i272|EmvGCrcm}m%YDoju# z(w_%~wYcTc4X^3*2ZEvNNm8#O>J3?Dh#xXv!z-u7o>^D;))Kz9ZTJ`9Z*~hF`C&x% i(SF3*=_s04fHJTII24(psY{ei7?i!K176A|4f+HB6(Pa^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/colorscan b/usr/share/terminfo/c/colorscan new file mode 100644 index 0000000000000000000000000000000000000000..ca8d9edaa8566561137a591ea4a2ff3c09b7fd5c GIT binary patch literal 440 zcmbV_%?klh6vdB^B9euT%w{$d$zn!IQVNqq`IspSN{vC0uduZ8k3Z*)A)=I9zjJQ) zp8H-VkVO(9T(NP6&OH>Gy#HCA;O6B zMcJj0^E~fqfvS6*+*lk%2QlJZIeN`F9x#3DBLCb?h5a05m( B{rLa@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/commodore b/usr/share/terminfo/c/commodore new file mode 100644 index 0000000000000000000000000000000000000000..775ba0954feda1dab5d4e3dd8232e135db3d08d6 GIT binary patch literal 1032 zcmb1QRAXRbP+{m}EMQ2^&&|zG$uCN+NzyemvZ!%}@fDmve1+W1i<8gsN}7+;h*&*|~FPW~ZfqIfOC5cj;s^nO>*+vh&1ybIk0i zo)3=9V&3aD>UXT#Fvd~|5Zwy1hCK3)L?yvCeE)*N_xnyn83-9Kf;gs)H4E2p#hg_= zYl?Mj8Q=HsD&JEaz{6`C;vIT;Z@zuNN96%N;|snS==WKzz{ zMY*KPWkpgPnU@7gOHPXFmt|F|Qd4VPHsqFU$!%%MuI$M})lRzFav;5b?hnTPr?K^a z{;v{-?Jieh;2KZcZthA2JZHPvqO$tgVj#2~FYBbNl(XP;94|LA5k&-C1y{hcqu7w` zUJdTlz$OnZtK`v(jZ*tn{dG?c|ZR z0fs;q?1PiwDX;(*!6mQ+E<@8Q_7$3L%`_7SwcSN9ZDz3t-UlC;p}YlmG1IlkodjFk jQ{YaLt@$ao>g-xG;HzM;$46?r>EIVcamIE_nl^<$gRc}x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/concept-avt b/usr/share/terminfo/c/concept-avt new file mode 100644 index 0000000000000000000000000000000000000000..d38aa508e932054b06a0142e0562c8f38ccc2a0d GIT binary patch literal 1226 zcmZWnPe>F|82{d^SPAK&OEn-a?i1P&=grQ#GtO$6L8674QP9xAb|o#>H60Vv4jqCZ zI(bUSi_oDc2i*JTbZ0868OW|Yo1Io+a7`j zX*cbsSCDF`7W@D;QkHD;DT?|ipbPLLuo7LND$UY7-K1M|7s?XdqZL{OdqU4>jb73l zTBrAzf20li3jd9M&`;t8+VLlTnn7Qtm~*?p`!mIM_7FTx zIAKBEkcVaY1oXcu^imzC;{wc}Qz>r(z6WMIy}<579fKc)oyrs)E^TG!s3B8S%<~n1 zVz7NXKWEy!OO;*#I-KY7C(mOnY=Kju`Xs-yNo>yL-8j67LR>+k@>O~cTBovd6L7Yb z=Ma^>ibc~Q2Ln1CUs(uMp08}1!~)n6>H|;}Ki2|9r|m3D(BthMMdV4{7!By8!7VsOW)1uR`Zh2GI}IC# zj=l=$DULY~<8E`Gv7^B9?O9M2^Bi-1+uZjoH(Sq8IVQZaR(SdC?_5>OTv`*ZuZeHX zHuKAwY2H%Q4#gUW>@eiVi4#hkXY1F~D$5tibd$W~J(bBUP+g|T4{!5v$RnH?7JTV5 zwPoleG`FofGR!Axy9`xA3o>*Q>dMgbz$;uMFLA$kQ*lL4h7EGGUi$G1>ZLup@qBT7 ND}k?%$`{p7^arygYkL3y literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/concept100 b/usr/share/terminfo/c/concept100 new file mode 100644 index 0000000000000000000000000000000000000000..e7cf57142974133e63a9ed11225a24b5a9946919 GIT binary patch literal 832 zcmbVJU279j5Iqx-#6X~?XthV`Cf#j{r6Gw)nx@+{l2}ueekj4l`av2$9<*jrDGC9D z5B`H7f}+oYzsz6Y(>i<8gsN}7+;h*&*|~FPW~ZfqIfOC5cj;s^nO>*+vh&1ybIk0i zo)3=9V&3aD>UXT#Fvd~|5Zwy1hCK3)L?yvCeE)*N_xnyn83-9Kf;gs)H4E2p#hg_= zYl?Mj8Q=HsD&JEaz{6`C;vIT;Z@zuNN96%N;|snS==WKzz{ zMY*KPWkpgPnU@7gOHPXFmt|F|Qd4VPHsqFU$!%%MuI$M})lRzFav;5b?hnTPr?K^a z{;v{-?Jieh;2KZcZthA2JZHPvqO$tgVj#2~FYBbNl(XP;94|LA5k&-C1y{hcqu7w` zUJdTlz$OnZtK`v(jZ*tn{dG?c|ZR z0fs;q?1PiwDX;(*!6mQ+E<@8Q_7$3L%`_7SwcSN9ZDz3t-UlC;p}YlmG1IlkodjFk jQ{YaLt@$ao>g-xG;HzM;$46?r>EIVcamIE_nl^<$gRc}x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/concept100-rv b/usr/share/terminfo/c/concept100-rv new file mode 100644 index 0000000000000000000000000000000000000000..e9a07708a7c0a32df102fc8c8cdefb3078fcbd6b GIT binary patch literal 838 zcmbVJU279T6g@X0iGe~*(Q1#>NxRz=OG8rIG)=c@B(=6!`XLk>>j!OIMYQgcN>B(G zeDEIx5fptE{AK!&7{ zknr8449K7i$wj#=SJZP=F($T5%9LbfMhdD+vLqF$soq2s{z^LEB$>?yl$`!lB| zl1P9{;39bb^lZ#>u7`K3;4YiS6n**w{g5}oL2wOR2UkFqx4_K`!jr~WPNA%)lb|u6 z3qA#JYf`yfna>fy%LG!r)}hO^_PF_sRL7nKi{9p(BT zkLVkzZl=A&wUS3#1{eb!uni7@XTUkI0M3I&Z~+=taj4L6%TX~YP|KYLvr#Yh!TaEY ws41_(J&byW+)1;xJq+%Qu{Jr(+6p~03O2&V{@zl{$%bE$#5v0;YS;{Z0X^^+CIA2c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/concept108 b/usr/share/terminfo/c/concept108 new file mode 100644 index 0000000000000000000000000000000000000000..ad192f887b898e4914db9543f059046ad320f30a GIT binary patch literal 950 zcmbVJQA<=&5dLN>G{G>#j6Sfl+g@)Znro?>yQ!g;VTn>wmSO9v?H3a+Vr0}HAbRqoqt0W#A&h09dw;$Co7J7&ULDtnByAPsdAEzS7!t2{uzKG6oND00Wb!h1Wn|3`an3o z*OoD{d2l=kwt;<|HYV!PD`pwk0hWNB;1RIhzlSx_fZeUIfiiC+i!_D$hQU!VtOTen?h_#D8>|r6yu6X z`?r}3aa!h0(9;)(Z0^-3=nG1hn_1~idmaQgg8?uO=D;oBI(6c$JcWvkA$x=D? m8oSscYz)VvcF@{^uA3c97^li$yd!;LV&MF-siU)fpo?E8Au+)K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/concept108-4p b/usr/share/terminfo/c/concept108-4p new file mode 100644 index 0000000000000000000000000000000000000000..290bb6100bfbaef06974c35f41bab8e7c459003d GIT binary patch literal 933 zcmbVJT}xD95PoJWG|4^;GkU<@-S&7Q(_Hgob5ClhX<4F?)S_kU`VoHZF-1)zg`h5k zq9}qO5ClOG1fh#A>b?sh=)Sw6oB9cDbB>!)&`mGz%rnn0@60i7f43R zq9qmXTrxG5>~|+KtYM28rDpn6g>e&u{S$!bRq@cbGgR5{Bkf41538ipKhoKXK)`1^ zu@{GY>nQqs98i55!>Y$Hj!E3Z1GN|NSoKqtB`jkFt60N2Hk7}{8@yF~k4=2QN3}lT zGrpl%ylNNaio|`ZOKwU+`eaasWK=z_%7jeGU73@4xi1fuFUli%BG1%%Aur{XEXlI0 z$f~T#y88b2Y{)y={OkRfZT?lhZ`*%VQ16~V7IMKl?g~5QCu+g`uoJ0LR354F90|*f zSaqJVdu*%LniR{vWm_dy%(9Jb6yZdIhsO!ec&KCtj&~_)v^`r zrVOt9qm?~1S$y9KGSwUu>t2eATRuf`PLNTV;tLP{uz1LG{G>#j6Sfl+g@)Znro?>yQ!g;VTn>wmSO9v?H3a+Vr0}HAbRqoqt0W#A&h09dw;$Co7J7&ULDtnByAPsdAEzS7!t2{uzKG6oND00Wb!h1Wn|3`an3o z*OoD{d2l=kwt;<|HYV!PD`pwk0hWNB;1RIhzlSx_fZeUIfiiC+i!_D$hQU!VtOTen?h_#D8>|r6yu6X z`?r}3aa!h0(9;)(Z0^-3=nG1hn_1~idmaQgg8?uO=D;oBI(6c$JcWvkA$x=D? m8oSscYz)VvcF@{^uA3c97^li$yd!;LV&MF-siU)fpo?E8Au+)K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/concept108-w-8 b/usr/share/terminfo/c/concept108-w-8 new file mode 100644 index 0000000000000000000000000000000000000000..ea54a6dfbc7c5bfd66515997cb47d9b6f6a8b45a GIT binary patch literal 970 zcmbVJ-%C_c5dLN>G$Sdaj6Sfl+g`VlHP=#a?xu!XN+lUdT8gf_tNC-UX0Dj1MEFod zQ4|D$AP9mW2tD*re?U+W^xm8F5d90;+^g9S=%vG%`R1E5=ggUzLvjU$$ig$^`Vx^6 zJDi!?fUxaMCDOx*lr!eJ!}cFkPir?$jUJoK3EMdF-qbDAH*7L}$&?vNCsTmvR&mj@ zH>t8;OYUKP{h*4wvK0ZJ$F?IE2R!RAk{zi0Ta-d(;d>;|j3 zBN!_^UIp$C#vXTW|xSPQmr+!$Nx=;+t#!98FD*a+5n`@9Aku&D-a zoRoNhIr@Y;lVC46pv9DwRPh3sqM1~`Imdwea1Se3Mw^3dYTzu>g(@L3?Vn|qpV?J02RppZO@OT^NE@=*&$i3?U~_$kIGU%@#xH{NAbZO+`L<<G$Sdaj6Sfl+g`VlHP=#a?xu!XN+lUdT8gf_tNC-UX0Dj1MEFod zQ4|D$AP9mW2tD*re?U+W^xm8F5d90;+^g9S=%vG%`R1E5=ggUzLvjU$$ig$^`Vx^6 zJDi!?fUxaMCDOx*lr!eJ!}cFkPir?$jUJoK3EMdF-qbDAH*7L}$&?vNCsTmvR&mj@ zH>t8;OYUKP{h*4wvK0ZJ$F?IE2R!RAk{zi0Ta-d(;d>;|j3 zBN!_^UIp$C#vXTW|xSPQmr+!$Nx=;+t#!98FD*a+5n`@9Aku&D-a zoRoNhIr@Y;lVC46pv9DwRPh3sqM1~`Imdwea1Se3Mw^3dYTzu>g(@L3?Vn|qpV?J02RppZO@OT^NE@=*&$i3?U~_$kIGU%@#xH{NAbZO+`L<<3_cTw*LWV{8}I!tYC3)32)nb)|o0gkeX4GeRNJzZR4wo1(=v;HM|{VZv3Gps+_ zT*>ByVnlIRF{+q!Zkzc^78i{_r~g{%RNZc_z4vd9u{D)WI|S|nJzx}E0uO*Yzy`1p zYy!jJDQF+HVKuGa>Q1>I)VBzNHSS|w1_!|_?yJp#mr#*4WS^h$-g2<7lJR5ZjCV3? xD!{z6BX=2FdkI8qoR#{pI}i;!Ppkvzq8VetSk(rTv2_2`;I;1Q^K%2Bjh~#RGX?+v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons25 b/usr/share/terminfo/c/cons25 new file mode 100644 index 0000000000000000000000000000000000000000..4043099f37cef6decd107ceae59ad5c134b69d18 GIT binary patch literal 1502 zcmcJONoW&L5QgUsMI$N}Y_T;Kf*7e_HCT+m7(0^Xiv`WGD;Dc}GpLz3UUS5)o%0X$A zNM3cEyMlpmmi2IFAnXlmYqyLdE*bQA3hIkYvK{n!OzBzH44*gPG38g)mzn%Qw`UtE zMMQ#LaiMdnh76QSzZO{r%A;f)NuU*a-$3hVJ#B#AOxa|EcYs_fge|3Vs-;FKSuNDA zRaY$Trx4T-n22SL#(cD1>@hll+{sw}6#VIU%^5mN7w8gQrYm%nZqRMILw9Ks`%l1A zdPXl|wXfo5<~uJ`Q`mn`pJ5tvWvUN8R~& zbP?)#Jo>v=G=BMy{l!l$Kl@s}QyE7wv8E96U*DXIok0;?Y;Q%ttSp}kE4ZFKKu zM3NEmKm}SJftU7`pb1ogY9LK(K^>?E4WJRobt*s+C=IIzA69xz~g~Ok%vRK zh98Vfj@}&mKK^ZD7Drk^3D^hZgAAJE4y$}mj`r%9?%QCpbzu|ACPY)0D>R{ s2EZT)g9sP`!(arAf-x`-b_LQYKm24CUjF#rGn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons25-debian b/usr/share/terminfo/c/cons25-debian new file mode 100644 index 0000000000000000000000000000000000000000..52afc7975ea2cfeb57ff24ef8cfe9029119b2bd8 GIT binary patch literal 1519 zcmcJOPe{{Y7{{OY&C-Z65HTCkC`L(Gb8{{DA^vwW|GUg|`DboZ=l<%ZQwyUG9SWjL zhYm$S9XbR_b?6Xf<)K4|hzOI2=n&K)%0oqgeV=!8S_tW(7e3GXeV+IE^X}cYRoH18 zZ6=>ME8XEx)MUx`czb-V(DAAvueZ!mq338g;MK={v3`BxOyA>j`=b$;+pFJ=f`BjN z)tA;gs`bIJ$D2n&5D}wRN~oBiM#`XEnqOvRPzhzDCXLpq^9;(QEXsl2L1waI*FX`K z!`i5Zny3YeR~vOI5H`^) zT11=ZQ2ymV@~))3Yfvvz-rv0v{;PkSFJHC#=&X1v-ir_7llUy=#5eI%%!@TLU2c$> zGE3%2o!l;W%3X4g+$YV_Dm7Uw%cV`$$Oh?LNe-)jx$XE``l(JXAsu9!y zOAw}jjoGNF-O7$Ks`n9i9AQd8EuDZhPr&emI&c`&g9gBTn?N&gfJ2}K@QrFg1+al? zuyCVFXf=zAmEf*Q@CYS%v=ZD@3GSu@w^V}rDZxXP;LkgXyX)MfJHWxjdwED_g|~1& zqoJ6yW12~`8Z>syaFVhR(vpZ;Ao-ON-hOzHL0XSim6X3_Z?18+JI!^g_j})${z+f< zz>NPv;C1j}XnOET?D6oOk*WBj(c5El<6kF!prjpCfmXne+y*%20zCj%cH*K=FX#n* zpda|a0PuqV;4dZw!XN?$!4Qao7#Id4APz>s7#IiqqE2uWbbwCK1^CBw3~;Vly&_L2 GOsd~%66^W^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons25-iso-m b/usr/share/terminfo/c/cons25-iso-m new file mode 100644 index 0000000000000000000000000000000000000000..fead95f85ecb687d141fdc30536ee5ba0c7691dc GIT binary patch literal 1476 zcmb`GOH7kN5XWaX2GB$$8XwST8j{bb2-4D8v_Y{vHr_5929_Ja16wbQV6X! z<6{(Rq?jP02z%@mGMs_e^*v zeK-6!d!_=ng139`^iB8Q9k@4me`sd-!N?<&Hi9B>67c;t0FJeQR)E9WaYVZlw1W=N x30$BHbOSfwZ{h_$;0HY*0D_{5ExFnogZgH#a|~iIE43KFqAF zl!`hO6m;m&p`b&D4jnplh=_;|K^;1H=ui;U|9Lm3g^(V4;rBlO=i_~zcki|>%0WpK zM;F=35yg@&}X+>_l^_<-0qypJfnntUbk^D6&a(XQY^-nj^;p+lp-QQ zuc**5RYtLtNWYd?v6Mxda3qFS>3l40ppCQ{dK;ya4b}lNDHnSo6;U}=L&>V6My*;R zei!+n`oU-K*bQ=rhgH4`Q`e#j7N>L#3+4HKOf0lCAPosj5&ls$ToEf7IQGdbgq8 zM!mm#h5h&c$S-|r<^|YGSlfmUQxDLV;0kI~J z$!{^WHZ4ep$)9Fwbs~@hocOC4T$$!v>_WD97ExuO1X#PVS!7E$JG8Zlqc`2V7M?_e zEKrP=Ct#(038(>wKq-)><)8vof+|oA2M-41JW9f zS|R0$!rmTuklnNft@3HtgXE_v3A+=UPBxFVooYYrxz~BN>zwy|_e9SH-=zOy?^NJY z@N(ak{^^0MgV#dWhh~OnM{nV1JtzQ&fxL7bkXSP~25@y3F6?rHHqZ__fCqGfF5m_7 x?eqX2@Pl3u071|P`oRDg1R*d4hJn1S3p9Wupb;De@{2kSq&8i@rcB6)sNZ%{Y-VZ@(6@gNu^htSRgNlkuqCpdl z??eX&2L}fS2L}fS2L=WP1_lRB9E@==(Lw#sZ7FC-l);;P_x$JF^SHfjQ&l;o(RT8v zX?6tzgJx?u5^`C>5l^>Y+h{P$8}t-pg(DSVx4WdJEM1~OpF4dtCwh?X8V`GXK97r( zA|gSrxX>}xNJ*4JKi61ER7A-rNuWf1o+taj?q z$`$jy6oMKCld;HD%trHNpQahauEpZBus7m4x9BcCq{sAxp3*aVPA}*sy`tARe*@mq z9L>ja7veQ5omZIzrKwDnqgLmLF3^!;Ri+wLvuaZg?ce(???K#q z1T`1;{_GX?=l^oPcGdc$3u;j$tzN7&$W&<5H<24|JQSq)PI z#2P)uP_D73b4A*XA+xck3V{+(g};iyS!gQ7E)QU0a(tdegm+ z!IOwk1ZvUp46L-T18txlGyrMZ1e!q$I09OMT&EV4fl6=~EMKP_S`U(9Eu^a!GC~WP ztA#YxLb_=oEwzw-TF6i>X0(fAffJK? zkk)9_3Mo$%_446C`e`Ftl~dN<>=e`0&V;Vn-ur#mJ<0tSz2|*X{tJPbfwM!?!D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons25-koi8r-m b/usr/share/terminfo/c/cons25-koi8r-m new file mode 100644 index 0000000000000000000000000000000000000000..e5cab4c9851f3866c647d13c1f8af5c88260bfff GIT binary patch literal 1524 zcmcJOOGuPa6vxj!h*{Bt%1Q@g5JoCc#~H_w1}op@D<5g06ixw?fv}nA>4}SOj&-327-#4kMnbK%8 zdDJw!f`LJcEu86}47sdgJl+1N3I>9c(QKwS=*gE{S=j9^YAi8IIOua5N3$i988*7c z!ycc{<1+5{qiqiU84@1+n8(*(SkSY(zi$5gZ<61hq@5V;kL&cWV^SKOof^nf1H zJUynT^o*X<3wlYfkbe!{&|7*Jt9>8uS)9AnenkE=eWRbmYQ5T~(o}}ZR{3gaRU}fV zBbBN~wJ4|RP%iDyFR6PJ_nts~hjm-pE^c zJE!t4PUj5X%UNvUJl@CqxrocSl54qvo4JkKxtn{rp937`5uV^FUj6PX=~!4v(SNFu zZ`$B&qcyaF49*IJvl6BXh&6dkp&V0B=O5`Xg)F9?3IvKk1^y}qXMwpGt57Ijj;K0N z18jaQIkH&I4sGq?=p|Q_-k=3SoJ9^oS7Y`mSlOorG=o}j7|8T`&;T025zqwWT-Bfi zl!HTH@m!_QdNXO(LZ)gVTWBHsY9T|lkZD@TNG)WZ7P6@p@~g*ic!P@!`4WuYS`QiQ z@D|T!HXV@aA&13bH#x+yz{!nDD`YI13u%i+ZIE(pQ7;c3q@UJeYAI#z%t|p|=}hRl z)_b?_x+l5+oOi}I?LQm1G;n(8{P66^#nB66XU1<&%uU@yLmMaqM}b^-E09pa%sl zTC`}@HI*2p)bDW_cO&6(`&>rJ8Vl>1 zDxsXNJ;Y2zf_~yc$C&CVnbIh{!V?OI!l~#1BE6?i^o>H4#3`J{8N82|SB1k?9m(ecuI4&! z&>KD z3z@2gY@vnhtAz~JLZ)dUBejruTF9na$PW$T@P;ljGY&s;>!*+|^ zX0nT8fn$xx9LQ+Y3YlxNdubh-ODS`ER+{-uM?&Yl?jJp0dhfea`(F1y^(=ay`Cbja z9DXtKX!QBmbnxN$*NLUcpJ-_VW#A}~_u2|1)(K7l9MXZKIb5I{^nhOA27RC(cz}Eh nAMk?#FbIY~01Sf>Fbc*%5R8KfAn(utj)N1R9h?MmZ%)&1r5@}i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons25l1 b/usr/share/terminfo/c/cons25l1 new file mode 100644 index 0000000000000000000000000000000000000000..df810962d1951d93c8c85e8452cbaffa46b74e60 GIT binary patch literal 1510 zcmcJOO-K`97{{OYLCUB|$Vgklh!#Pbo4U4GlHab>{5ExFnogZgH#a|~iIE43KFqAF zl!`hO6m;m&p`b&D4jnplh=_;|K^;1H=ui;U|9Lm3g^(V4;rBlO=i_~zcki|>%0WpK zM;F=35yg@&}X+>_l^_<-0qypJfnntUbk^D6&a(XQY^-nj^;p+lp-QQ zuc**5RYtLtNWYd?v6Mxda3qFS>3l40ppCQ{dK;ya4b}lNDHnSo6;U}=L&>V6My*;R zei!+n`oU-K*bQ=rhgH4`Q`e#j7N>L#3+4HKOf0lCAPosj5&ls$ToEf7IQGdbgq8 zM!mm#h5h&c$S-|r<^|YGSlfmUQxDLV;0kI~J z$!{^WHZ4ep$)9Fwbs~@hocOC4T$$!v>_WD97ExuO1X#PVS!7E$JG8Zlqc`2V7M?_e zEKrP=Ct#(038(>wKq-)><)8vof+|oA2M-41JW9f zS|R0$!rmTuklnNft@3HtgXE_v3A+=UPBxFVooYYrxz~BN>zwy|_e9SH-=zOy?^NJY z@N(ak{^^0MgV#dWhh~OnM{nV1JtzQ&fxL7bkXSP~25@y3F6?rHHqZ__fCqGfF5m_7 x?eqX2@Pl3u071|P`oRDg1R*d4hJn1S3p9Wupb;De@{2kSq&8i@rcB6)sNZ%{Hr_5929_Ja16wbQV6X! z<6{(Rq?jP02z%@mGMs_e^*v zeK-6!d!_=ng139`^iB8Q9k@4me`sd-!N?<&Hi9B>67c;t0FJeQR)E9WaYVZlw1W=N x30$BHbOSfwZ{h_$;0HY*0D_Y-VZ@(6@gNu^htSRgNlkuqCpdl z??eX&2L}fS2L}fS2L=WP1_lRB9E@==(Lw#sZ7FC-l);;P_x$JF^SHfjQ&l;o(RT8v zX?6tzgJx?u5^`C>5l^>Y+h{P$8}t-pg(DSVx4WdJEM1~OpF4dtCwh?X8V`GXK97r( zA|gSrxX>}xNJ*4JKi61ER7A-rNuWf1o+taj?q z$`$jy6oMKCld;HD%trHNpQahauEpZBus7m4x9BcCq{sAxp3*aVPA}*sy`tARe*@mq z9L>ja7veQ5omZIzrKwDnqgLmLF3^!;Ri+wLvuaZg?ce(???K#q z1T`1;{_GX?=l^oPcGdc$3u;j$tzN7&$W&<5H<24|JQSq)PI z#2P)uP_D73b4A*XA+xck3V{+(g};iyS!gQ7E)QU0a(tdegm+ z!IOwk1ZvUp46L-T18txlGyrMZ1e!q$I09OMT&EV4fl6=~EMKP_S`U(9Eu^a!GC~WP ztA#YxLb_=oEwzw-TF6i>X0(fAffJK? zkk)9_3Mo$%_446C`e`Ftl~dN<>=e`0&V;Vn-ur#mJ<0tSz2|*X{tJPbfwM!?!D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons25r-m b/usr/share/terminfo/c/cons25r-m new file mode 100644 index 0000000000000000000000000000000000000000..e5cab4c9851f3866c647d13c1f8af5c88260bfff GIT binary patch literal 1524 zcmcJOOGuPa6vxj!h*{Bt%1Q@g5JoCc#~H_w1}op@D<5g06ixw?fv}nA>4}SOj&-327-#4kMnbK%8 zdDJw!f`LJcEu86}47sdgJl+1N3I>9c(QKwS=*gE{S=j9^YAi8IIOua5N3$i988*7c z!ycc{<1+5{qiqiU84@1+n8(*(SkSY(zi$5gZ<61hq@5V;kL&cWV^SKOof^nf1H zJUynT^o*X<3wlYfkbe!{&|7*Jt9>8uS)9AnenkE=eWRbmYQ5T~(o}}ZR{3gaRU}fV zBbBN~wJ4|RP%iDyFR6PJ_nts~hjm-pE^c zJE!t4PUj5X%UNvUJl@CqxrocSl54qvo4JkKxtn{rp937`5uV^FUj6PX=~!4v(SNFu zZ`$B&qcyaF49*IJvl6BXh&6dkp&V0B=O5`Xg)F9?3IvKk1^y}qXMwpGt57Ijj;K0N z18jaQIkH&I4sGq?=p|Q_-k=3SoJ9^oS7Y`mSlOorG=o}j7|8T`&;T025zqwWT-Bfi zl!HTH@m!_QdNXO(LZ)gVTWBHsY9T|lkZD@TNG)WZ7P6@p@~g*ic!P@!`4WuYS`QiQ z@D|T!HXV@aA&13bH#x+yz{!nDD`YI13u%i+ZIE(pQ7;c3q@UJeYAI#z%t|p|=}hRl z)_b?_x+l5+oOi}I?LQm1G;n(8{P66^#nB66XU1<&%uU@yLmMaqM}b^-E09Oz76lhB zT!^@Ep(rRQC@3f>C@3f>C@3f>C@8oPaUtl!MHdqPIk`<66#@khd^7*dnKN_lAz8^a z@Mm&0XXzYWq|0=buG3ArO?T-&J*3Cj ze+r({OL}eBzRjJP={#G#$Noq9Lf>hM6fffC?BF%Lj%U}1uF{zxH*g1cb07EX__xJ%n;wSu!U+^n_!|(V5f8x*lmA~;1{>fAP zi&@QA#i~RtRi&y-In*j;s&ZAK+{&jmsA@I08x%Sf{7-!g&6WK|)u9ZlpB7RH8CHv7 zZGvkB;?1a;berK_GcsT%J!ZHCi8|1Nzlvd1yXs+uphRv_ouD1~VlZwoUROYSzXaOo z-rEpKMyLgCXn71?+P8x~uo-j!Y1#$4K@ZphdVyT04K#peun|mOrx98YlEYd^S1n|O z7BW{0X{v>E(?VKmA^o(Fp<2ktPT=Ck5E)gH%sy6_3_qgj`?<^-sU8h@0)8_fffs=- zDyOu1R0}Zw31Kg2TforkS7ZP$qjvA`>cY^&4kU)0Y4M literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons30 b/usr/share/terminfo/c/cons30 new file mode 100644 index 0000000000000000000000000000000000000000..44227ab461635ccc77441250767efd41ac97885b GIT binary patch literal 1496 zcmcJOOGp$@6o$_|NEsCgDOr;-L=y&CqvJFKljLL6G2hSBG1Ht;N9W~xv@mE9(ITQn zi=v&>rq8s#A5_ZrhJ<_y0t=r!h5)Rq_nA&++(DMdtr zUU8vgs)`b66a89XB~mV>pd^8o>GMQdLu+Xr^k%Y<4b}m2r~rF0l~Og;L&<8QR;@Z> zelLZghQN3%ax`Y6`LZ9Q6NsIR#ZSSWj^~`Avvh$j(Pg?qSLp`braN?(CUE`)Jf&y! zB9{9qUNhHuzM91Od-_CEG()Ubs$`X>wyK?KevW9nj^rt)s#GMcaT2Ke-fn28yI6*Ne0khXBgw}(kSPSW@g^bWb=4v5L zwUBOFNJ}lGpB6Gy3;D1ST-?w>2D=2KkL4kQ4c_ei%%(k(J?O}C*h~&_EO25n8`2t$ zS|R0$qTViekO5kOR)v(2x?{chZCgV7wa)3Tuie*uDLrp`@A)SK_k)l79t}Pmx;6Y@ zWFm5N^!wPi@fnmfgCejG$O|_CiM4}+09SV7qHZtf1YMvT_&^Wn1%4pkN)UuV81#XD pFaQR@5Eup{AOc3g7?2lrgBGwKw1NXbeo2Rbi;)(zO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons30-m b/usr/share/terminfo/c/cons30-m new file mode 100644 index 0000000000000000000000000000000000000000..35630cc4345110a5c33ecfa847929174028fabc7 GIT binary patch literal 1252 zcmb7?OGuPa6vxlGh*nTZVWmSd2w(I-8OO1a2Fv%`$wyi`WtubU=sbKoni#YQdQi}! zMT-_KTC|8>v}j>v<-&yv7eWRt3R*-28AY{l`kySfn@1Fm8-aB``G%lo_luRqs zraFUxp&U!5f3hPmL>SEcu|%W8RH~&l~WVC2KBpHdaEpJ$s0m zhy=ajLdUp{)=@fz|FTlhl0b<%zm7K3R@x4oK{;fHb%1;-#$HatKqId zpa@jpqcXYjEydV{Lh-Ui)qz@&>&Iq~Z#GeS<}nCyViZ8vVB8s48C?sSffF1CGO!*r zfJSfxGy%Cv4JZNSpc2HcQVOjPlV&YssupsD7ILl@GE@thriF~uLgr~9hiV}|G=$5W zI?0qL!N^0o$z+EYyPw54B-O(XtHW+M#IeG$MPv?SG-`v)H5`6gkLFU!+>w=PdEK7S zakuMx_vfB_-jv=~eNTK#{-=SL122Z3k31ZGHZ~J_F#cs?dFlsRT0t2&3glf|fW$h$ zDS%75a5a|)bb)Tr1H7OY^Z_4`{~`c_pdSo?K`;b{!3Y=yV;}^^!32;ubb;gG1ZV>% JfqXZo=@%T#69oVO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons43 b/usr/share/terminfo/c/cons43 new file mode 100644 index 0000000000000000000000000000000000000000..e0d6ec3e63b03994b8183fb8315691d6f92e77cb GIT binary patch literal 1496 zcmcJOOGp$@6o$_|NEsCgDOr;+L=#3?qchVCOpotX{FMro8p zK6RWsLcsy6<#2m&z~?ZJKo#|Sy?M0-MmY%iy~cE_CByFvdX2diwI#+t$m88gN)eHu zS6t|rs-i^NM!yzViIhVrC`q7Y`aF@=&{|pty@@PjhjoH%%Ew+zrBqGzP_mk+RjZDe z-%DYrK`kc37kIxPw5%G zh~>VD*UWXEuO@N+o<7kO%@C`VDp{qeEo!HlpCj6#Be|+TRjL}*pqjOR?vK3laqlA3 z^SJkSuc-g>ALk2KEj{{Ly;C35NA+2KQB&%NnpQs*aRMjuDo)~LPUVekbscP5guoQyP1~LYBIQ82KQc=QXtmk zGlervp0+vZG=;NF9v1?6z=gkx!JTc+$1dcGmno_WlmlA;Tc&Ilvr}8UIC|5)8{tVr z$N^<&c?4G4mxBgS0V;tstp+uq7Sw@yAlE4a1)vy|fZ6L5LhC_Ntc7&dLPlsIbG4AB zT1Yo7q@@28RTrkL4kQ9p3Ey%%(k(9dTwk?Ix!<7C13!g|tPZ zHb{A*sJ9CqWPnznRUu`h?pSYr+m_INt#i8TYxi|uO3$0#d;ZD5{ov!iN0Envw}u`J zPmJ6g{XX_>d(^1@9(V(s7{z?I#&sM`xVK^N!-KF|Ytfgi}X5(FU-27RC( p41fq21VdmLjDS%v2INKEpatv)t>6HVU(z8UxfcD3GQk>CzX5uq;-dfn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons43-m b/usr/share/terminfo/c/cons43-m new file mode 100644 index 0000000000000000000000000000000000000000..009a1934564b2cb5367f54c50a87e2b0f7175a34 GIT binary patch literal 1252 zcmb7?OGuPa6vxlGh*nTZVWmSc2wzm9jN{lygXR0}-3n7CR1uY_ijG|gN{m-38C`EMPchCPk@0~ke8W++|N~RTR zQ=P%UkS!nMZ5e_1JLNuWfXUq_p1D{Y5PryR1wIzT=ZV=t#_s;4F>SuIf;@xtLY z>ZBg>BRU$*OwiPtnzM8ckqgo2CD_aHimP;uuG0;=Nw?@W-J$#Rh#u24@-twT=4d`z zyAbb*oxR#FBELlM=p%i_+a_@`r*b-H@an2?*rp@-T)@@rln`A7cGUH>1Q1wyy zr?Qk)?NOd{X^<%TgH=8Iu^B9CUF$$n-FzyVjjIIUEzzGfm8CVY* zKqEK;nt)uT29$tuPzhpJDTUUDNwXF*RSP*n3prN{8LEX$(?UjSA@j75L$#0}8p7pG zon*?BVC13PWU|AH-OpkilImfH)nPXr;#lF>A~FXu8nr>@8V*0LM{_AV{JoN)Dt)L7X1@f*fKw=%> z6u>22xSGoYxwP?{IdeNdq4|^isQaRO71C*?0 zYSXGS9`{igY6y(SGe_e-RxkD#oj~qnJbw!QbfV@AouvzOi7wL>x=J_bHr=7SG=cpm z;3++$7xCIxi8FJZ=c`HVzo$<$MKi=|rAk#9YKz*T=GTa}>r8=is=caKHL4aJpZlZk zd?LCC^*j;%-76Nq{Kx*nrZAIszNjhnLrtrnia3drc@?K{DyQ>CHu7f9 zo}0Lp+u6fC?B}IVU(AW{f9kuK*%2ORgS&;6(`qufT?Y3a zxN;!gb6lRz8Y zy9tqGgnUqemPg>FeI;lFRbVfWrZu1z)PZ`?0OUFqzzIr08JN9JF|-~ehqaKdTF3}3 zWUdy{R14{*g|yT{`e`9UwU7@R#l;PsWUxyz_E;V=*bvR$&urQ))e%RI!)9_wU_lU< zxscXa)(R<46pMBuf(+0Kv?`{o^zG}-Z`+ePu60d!f9<*MOY42pch5f=xF3An|0wcs z=+^Lqk%{Qd(eGp5#%FM(1(bk&Kwh{RNUj4M1h}#r7j=6<7w85(zz2FkAMgYDR)Qb| t!k`}vfI$!eLtq$;fG8LRV?bWi4O+o|&;||w`6V3!Qftw#C=+ty>NlO4(LIB24YgM))64h{?q3=9km4w^U^<6xqL1NDDy9|oc^-sE@B|D1cyxu>^Zx+tR^ zluFCgA)S6-$ZGVM4BqomX>f=9aEgO2SAJcgo`ZgmOFyt5aeYpX^`OC|cXqV~L;BrT zqrv0$x%6JY&%cL+AR}7VQUUf7 zDyJH%hvL;3vr#V+X(lIikr&Z$>|~fmR^^P+B}A^pqT{d=iHs?lrWtxjkLd|LqZjm& zUeRlMi}QD2mgZV7RxeOC2M7aY?95gP3jy?luYYM=P1=V%3#U? zTg|NnOj>)(Z)w*8X05#xfqYPkk4oprH5OoJjGl-S0(rgCHP(?xTzA{ zO$lzP1ou;dFI9qn=pcsIIZ2np!RSM^lgjJ>#D1-U;8N|3=_u?^N(s=yuG=sB%zn^pT3kTj6aR2}S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons50-iso8859 b/usr/share/terminfo/c/cons50-iso8859 new file mode 100644 index 0000000000000000000000000000000000000000..862714a2f92720420d00c3adf4c4809a30ced6e5 GIT binary patch literal 1522 zcmcJOO-K`97{{OYL26Nvkdd{75iN`~H|KJ(BtPaysrhZ{%ru=koo+fmriqaUi$2V( ztdxp66clvm(4nA1hYlS&bcl$E4nZ9{c<4|N)c<)mr-e`+dg1pz|L5a*!PU&^?E$n6)uy6{XUOrFa;Ttq>`E{y5K$)}wXJTlD&KqbQt*4F9TggW0uuhOcIoR{5 zkjkhEN>(j3Xw@9?J1GFw4@M)Av4{=V%RWx05u1p_Ct;_eHPbXhH|RFqp?maz9?~Ov zOi$?<^3TBwdP%P$wXdUR7CJ9hZ;^jbpJ=ADn%`>5$({CEag%qs$5m8 zI_=N?R(Cz>-GX`(_5SP?_TT*_zx1i)M?a{K>a+Ty=G0g9P5n^BF>K&99LsSW&s*5U z+c=Sv*urV-;Juv5E-v6AF6BzD;d*Z57H(%B2e^-yKmA`$g#J_Cf0;eP<7{--(MnoN zMt6bHeE_Bqh&6l70js&CaX~uGfmCx#0Rq{e0Dl#uJHwKLUC0v8DykF|1A7-Xt86xl zQ`>ZL^rm~)z>|oO35wA2IIOfU2G!soC;`&643vWkPzkDlT&D=QKt9+H=C6|rtp~|r zEu^a!GC~WPtA#YxLb_=oEwzw-TF6i>!Ks(qc?H14&;GDKwi2QNURAQ1-QB!7j}C< zD`*4lzzaG+C-4FJcDjKd1V9hy1wqgU`oRDg1R*d4hJn1S8`OitpaC2K@{2kKq}HZi JQzoQE)Gu`u=cWJv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons50-koi8r b/usr/share/terminfo/c/cons50-koi8r new file mode 100644 index 0000000000000000000000000000000000000000..06ba5ddffbcf1539ff2bd5dc6e57d31ab9285453 GIT binary patch literal 1508 zcmcJOJ4_Q$6o$_|A&43uQSm{8X-G=c1SphJVuM0?%KITGts+p0l$N%XHxg7-R1yuE zXnZF+I5;>sI5;>sI5;pcFfcGUXyRaugNY96e{M@bLm~{`|0A*cZ`9*s;yZ6sgzNt#0JdNe)_doz}Eo9@vgdO}a>89k>L^palDYkGt8 zx8NPk&}=k!E>^SDdAXX$`2u~UFZ7*QZB#o{vPxAMYI%<6TpcM;MXE;Ct0v{t{{27l z9>%=KP%|;_?_Lpq_8;dfSFJrdr{>jydapjHPwKP!s=lco>Zf9k=MB7>xA9I+;=P>0 zseFLbIg4}nARl4}mvA{(b3He)lUul*JGqL7y+-s1htro)omZ_l#ZOm=ZB zaH29B(i(|cA?1l8UJg9S9$Jr9#gw)?eUJHCYh2rO=Yy^r-o)-pz6<_|o{NF0-gEtv z1D6M{4qX{OKXPaE?)WVfI6(Bks1-zge_<$eCcMS}Fbd>7UEl;b30lA@AitwCKyoem4P`=hRQ(2SBjU0E literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons50-koi8r-m b/usr/share/terminfo/c/cons50-koi8r-m new file mode 100644 index 0000000000000000000000000000000000000000..472deb48c28569b465de2be3f428c7c6f6d6ccf6 GIT binary patch literal 1298 zcmb7?NodnS6vp2?O09|uYF!#Cp^&0N+B9vNVyN1^ri)!{Z5!>DrZ&ymbdOTCRqKMN zh-gvp;K753A|f6u4iwfzF{qvLiY`DOF&up*m`& zHYgdL)UA~};e8aQaf-stB{K7LF`?oWvDjt0hRlsbb^-BLYR4VAOZVtLEz(1JOi$=3 zJ)`IJ0_!iqD|$_D5_{jKYLb1I$M;zONMGnXv0AM*sce<2@>PjizAF|h(;25~P#wyp zdX!uH#bx^*q}(H@cPaOKueks4kM%!S{eSk8`mDaHZ|a9yQq1YRir4Z6-ppCNopU&s zcX1wDxtMqJ9xmrD~-lKr1*1+JM}v9#n!FupcDvRRygNlVUBTs}^#E7ILl@ z(o_rSriHZBLi%YThiW0edJ2~}xXDl=$@r@ckiia@yr0FiS9Xs%tPZ=$A;t<*6qkjN ziEI(1EuOVO%Cp5?F&t!oR-$VanYZR`vs~&;>$@^|d+4e+bNGyJ&OaMC9lS7da_sE* z{KWamb5p0LZ$=kpuA`s}RD(l6p1TuBt`GDB+}(v6yF6eJ90fzb3x3{A#LMfsPzkB}YdGFl$(z%9qPztS3 zo9YY(hH@>L{xcncA+Imf9}EPw%(H|fENL{746#mOfMNa}H>U=V7qAj!yI)ie^4(kBByXzfD0CwBH~yNLV}y`zux74MwHDV)X`ypLB`g~K)-$>##DW+yjrv-U5ns=E~T zu0l=6y|uF<{>(q}fA0GK=q%6iJTLGfFYz0G%kTLEf8u5S#y@$5l}c3W)kd{hZB^-N zr^-;f)LxaPtZKhHpbn}cRi>(xQ#Gh&)v8RcR!X7`WO7xQTvagDK&;_4`m+sp`)}zm z`mKh$0)Zk>fse}M%C{6_7YfD87F7poL9QR0J-*pQ>6ynM#EDS=U4wCFVP$kJXa-Jj z7|6hS&;T025zqwWDm9=4l!HnTyGkjvK1`amkf~b85n9N(TF6i>WSSN-QVW@KOcEG`fO|_^kDqU#PZ}1w6uaUa1_Y9 zwg8EBfKvdMbm3|)59k8jpa*zCFX#h4Apb=G1VKL-0E1u%41*Cc3dTSPjDravZ|DNY O!3od?P6GLEPSY>C9T%ej literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons50l1 b/usr/share/terminfo/c/cons50l1 new file mode 100644 index 0000000000000000000000000000000000000000..862714a2f92720420d00c3adf4c4809a30ced6e5 GIT binary patch literal 1522 zcmcJOO-K`97{{OYL26Nvkdd{75iN`~H|KJ(BtPaysrhZ{%ru=koo+fmriqaUi$2V( ztdxp66clvm(4nA1hYlS&bcl$E4nZ9{c<4|N)c<)mr-e`+dg1pz|L5a*!PU&^?E$n6)uy6{XUOrFa;Ttq>`E{y5K$)}wXJTlD&KqbQt*4F9TggW0uuhOcIoR{5 zkjkhEN>(j3Xw@9?J1GFw4@M)Av4{=V%RWx05u1p_Ct;_eHPbXhH|RFqp?maz9?~Ov zOi$?<^3TBwdP%P$wXdUR7CJ9hZ;^jbpJ=ADn%`>5$({CEag%qs$5m8 zI_=N?R(Cz>-GX`(_5SP?_TT*_zx1i)M?a{K>a+Ty=G0g9P5n^BF>K&99LsSW&s*5U z+c=Sv*urV-;Juv5E-v6AF6BzD;d*Z57H(%B2e^-yKmA`$g#J_Cf0;eP<7{--(MnoN zMt6bHeE_Bqh&6l70js&CaX~uGfmCx#0Rq{e0Dl#uJHwKLUC0v8DykF|1A7-Xt86xl zQ`>ZL^rm~)z>|oO35wA2IIOfU2G!soC;`&643vWkPzkDlT&D=QKt9+H=C6|rtp~|r zEu^a!GC~WPtA#YxLb_=oEwzw-TF6i>!Ks(qc?H14&;GDKwi2QNURAQ1-QB!7j}C< zD`*4lzzaG+C-4FJcDjKd1V9hy1wqgU`oRDg1R*d4hJn1S8`OitpaC2K@{2kKq}HZi JQzoQE)Gu`u=cWJv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons50l1-m b/usr/share/terminfo/c/cons50l1-m new file mode 100644 index 0000000000000000000000000000000000000000..481103247b617a0513a235161800b63990d41c9f GIT binary patch literal 1270 zcmb7?J4};N6vxlKF@Pp2(fEKy(~x{d#bR4pi#90omX|yPg(?E2K%p;MC=U%r245g3 zDk>(LIB24YgM))64h{?q3=9km4w^U^<6xqL1NDDy9|oc^-sE@B|D1cyxu>^Zx+tR^ zluFCgA)S6-$ZGVM4BqomX>f=9aEgO2SAJcgo`ZgmOFyt5aeYpX^`OC|cXqV~L;BrT zqrv0$x%6JY&%cL+AR}7VQUUf7 zDyJH%hvL;3vr#V+X(lIikr&Z$>|~fmR^^P+B}A^pqT{d=iHs?lrWtxjkLd|LqZjm& zUeRlMi}QD2mgZV7RxeOC2M7aY?95gP3jy?luYYM=P1=V%3#U? zTg|NnOj>)(Z)w*8X05#xfqYPkk4oprH5OoJjGl-S0(rgCHP(?xTzA{ zO$lzP1ou;dFI9qn=pcsIIZ2np!RSM^lgjJ>#D1-U;8N|3=_u?^N(s=yuG=sB%zn^pT3kTj6aR2}S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons50r b/usr/share/terminfo/c/cons50r new file mode 100644 index 0000000000000000000000000000000000000000..06ba5ddffbcf1539ff2bd5dc6e57d31ab9285453 GIT binary patch literal 1508 zcmcJOJ4_Q$6o$_|A&43uQSm{8X-G=c1SphJVuM0?%KITGts+p0l$N%XHxg7-R1yuE zXnZF+I5;>sI5;>sI5;pcFfcGUXyRaugNY96e{M@bLm~{`|0A*cZ`9*s;yZ6sgzNt#0JdNe)_doz}Eo9@vgdO}a>89k>L^palDYkGt8 zx8NPk&}=k!E>^SDdAXX$`2u~UFZ7*QZB#o{vPxAMYI%<6TpcM;MXE;Ct0v{t{{27l z9>%=KP%|;_?_Lpq_8;dfSFJrdr{>jydapjHPwKP!s=lco>Zf9k=MB7>xA9I+;=P>0 zseFLbIg4}nARl4}mvA{(b3He)lUul*JGqL7y+-s1htro)omZ_l#ZOm=ZB zaH29B(i(|cA?1l8UJg9S9$Jr9#gw)?eUJHCYh2rO=Yy^r-o)-pz6<_|o{NF0-gEtv z1D6M{4qX{OKXPaE?)WVfI6(Bks1-zge_<$eCcMS}Fbd>7UEl;b30lA@AitwCKyoem4P`=hRQ(2SBjU0E literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons50r-m b/usr/share/terminfo/c/cons50r-m new file mode 100644 index 0000000000000000000000000000000000000000..472deb48c28569b465de2be3f428c7c6f6d6ccf6 GIT binary patch literal 1298 zcmb7?NodnS6vp2?O09|uYF!#Cp^&0N+B9vNVyN1^ri)!{Z5!>DrZ&ymbdOTCRqKMN zh-gvp;K753A|f6u4iwfzF{qvLiY`DOF&up*m`& zHYgdL)UA~};e8aQaf-stB{K7LF`?oWvDjt0hRlsbb^-BLYR4VAOZVtLEz(1JOi$=3 zJ)`IJ0_!iqD|$_D5_{jKYLb1I$M;zONMGnXv0AM*sce<2@>PjizAF|h(;25~P#wyp zdX!uH#bx^*q}(H@cPaOKueks4kM%!S{eSk8`mDaHZ|a9yQq1YRir4Z6-ppCNopU&s zcX1wDxtMqJ9xmrD~-lKr1*1+JM}v9#n!FupcDvRRygNlVUBTs}^#E7ILl@ z(o_rSriHZBLi%YThiW0edJ2~}xXDl=$@r@ckiia@yr0FiS9Xs%tPZ=$A;t<*6qkjN ziEI(1EuOVO%Cp5?F&t!oR-$VanYZR`vs~&;>$@^|d+4e+bNGyJ&OaMC9lS7da_sE* z{KWamb5p0LZ$=kpuA`s}RD(l6p1TuBt`GDB+}(v6yF6eJ90fzb3xgYI*I_hX)&?2Hm zM2i+hK`mOeh+ed4(Ze2#77-Cq7SST8MGJc@6oUHBopH1f(nS}3_k8Ev^SE0LXE(x7#e-gNL9Np)2mOApIW^lz^ZNo`bADxQskyJ;Mr|Zt_G5Gcv6IpGDcIAooHKNmF3=^qOjqbC-JsiahwjoO&Yys% z^o(9ab6>@3<~uJ`Q#gN5pJt&cby_=JxGeRkgi(D2rXo; z7SdD;>86FW)I$1cAw#v04;#kCO&w&iOEB_S9x~bB&E3zi?3V11Bg0{{IK;8SiONjK ztVlEqQl2Q{Wy6E)qg7~CL}|%8HyUr-;@You&UAh4zV1uvdDDB(Kh<|X@Oa=+=;83K zkq4ub;hSUM$G=U?qNEuVgMC0=xCuzC9UKI>vKtq5dqF4Y0^Ps|dO$Dm1Nl}0pdSRm r02l;AAOwcN2p9!nFb2kfyr>(rfc>Bq902l5Is_!ws$WqiWJc9*#!}+3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons60-iso b/usr/share/terminfo/c/cons60-iso new file mode 100644 index 0000000000000000000000000000000000000000..d0c29a701beb11c950991dca7de8278483a57b11 GIT binary patch literal 1518 zcmcJOO-K`97{{OYLCUB|sK{Evh!#ego1cp*`7w2+=C`Rc({$=|y6L7)6C)26eVAEU zDHU}nDCp3kLqUfQ9XfRA5D^g_f;x2Y(4iox|MPB63n4x9!tZ_l&+|SX@7`_OR4&C) z47t@Lw|IN}>1K~*BqS2ue(y*@pUah7X*Wv9>v0(elMpppt!eubEyk9P=03kMKHY5e zxO-gw-J}!|33^3@jwvdmXv(BtORQ+hrp>5{qE-4lnl{iz+5)|UQYZt~2C^s*dm$B3 zIaNc+s-s4&TEc!8`Jnp2XgD$!wxN94$LS1W6XEzI>{KLYnr7%G-J!d5pB~a9dQ4B~ z89m4O3-FR&(d%&Tn@G(<=f&zB&Ogv+nxh}YYOUI&;?ypcq!#Chw(3ZZva3>6p=wmU z_GkadyAknjL%of7fAYMtmek$T9j^=e7!<#skx3iIV zay%!nnN!)ynVijbc5pG5aTV8c12=Iicd&=7PkgR`Di(|R&E z9R}w?m?9w7E(?VKmA^o(Fp<2j?4dUX47BW~R7<#N$GGxG;zn|H(U$O(XWLt*G zCQb^RuuO$a3q{i)<%vRGIy}g3T7y>kwC6#>)5O@lTboWckF}j@KkdHPdA94E=Y01> z&js(K?_%#%-zER$z?J^#fvbbpg4c&;hG$1_p|lLGrlixl6bM86kp5A_`qKtM> zGA&bwboji%Y@^#`@SKlGgDdERQyg$Q^Xm%r9Q3)J`hoq3>vM9l4j4>&M^|egsNbD! zG`L+}r{3f9`u30zM8v2S7b+&Gnv&=ch5xd)pk@svsPiP+NSkRJbQ)!n71joFsQ`Nk zl~WDXL-A^i+K3kpH@r)^&rWtxjkLd|LqZjm& zUeRlMi}QD2mgZoc)7FCat~Yx3p<~v({dUKt3qNN2Rmp8Vj&9N7*y6ss@!H%Y)4t-z=Gl-S0(rgCHP(?xTzA{ zO$lzP1ou;dFI9qn=pcsIIY^ho!N^0klg%}{o(b=y?}qj1mm`J;uQdiKm5)?%}Z4@AtZmd#q-o-y87s z?j@y&NYE=LbWBkVCC~x-waiMOd`d)39L4MN1lmMfX$N!)S;z)!2YFP8y_AknEj2*N zYNBSX+)>|0A*g;Z7LANYZ6sgz37SOgdNe)-doz}Eo9@vgdO}a>89k>L^palDYkGt8 zx8NO3(@ZpXHdeFPd8wMi`8<83FZ7*QtykMrvPxAMYH5z>TpcM;MXFlWsYd10{{27l z9>%=KP}4E*?_Lpq<{#(FSFJuetLD_adapjHPwKP!s=lco>Zf9k=XJc1xA1mO;@zCW zsl1QVIg72lpAWKwOSqh?xQ-jy$<5rx9o)sMpT3fcz<=tylG$M%WrNE}YiI)*TxAAV zIm{6t*5oyXGEMC*i_&fiWtrN`5O9Dp{8bFDJaZv-p+LM$Q8l0v?EM?nLS>r{XuPznx%h3gbU>p@big>=*Buv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons60-koi8r-m b/usr/share/terminfo/c/cons60-koi8r-m new file mode 100644 index 0000000000000000000000000000000000000000..2d0608799031c6ca6568c459ddef268ede7eed1b GIT binary patch literal 1298 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cons60r-m b/usr/share/terminfo/c/cons60r-m new file mode 100644 index 0000000000000000000000000000000000000000..2d0608799031c6ca6568c459ddef268ede7eed1b GIT binary patch literal 1298 zcmb7?OGwmF6vodzh*{Bt${r5JAdFNnI*vLcO;)~bQuC3fPWc+g9Ovoyp2A8idk_^7 zB?T>7v}hp_(V|6*7A;z|XwjlYP*Bh!qD4>(r|;Z(gi%Bne)oLex%ZrV=gvP%IVqdg z(jv{UI}{wTSt91Z@whVkLf#Uw)e(=Uyrt48>5$)JoXD3IbHwPLig^8guiLoIW-3Thb*3f#|1f4^LWJh#>QmVjQL;ID5pt4o2%2y?7>8@C;OlO>`UbQQi z>Q-*;7nbaMkaCZp-lg2{z2g4EKi2a+T)zNsH-Q8B0U3SQ0Ycq3==R?gvE z-obfnWgGA0-CWMq?BoV+<~Hu+F7D$29^xQJc$}j=%?4K|Eu&RraMc=IPK5nHqRDFt z7nu5ceo2QZY&G@QB2f-%@lhFErIrfJLYcS%QH`J;6bCRB$W&-?=x7(Cry^1MfOZHm zN%lh5q4xbFCr8hY z&5fU*I5&A}>SlC)`Z@|aK{Yr8&=ykH3UfFH^oBi_!0F#Q1k%57}od7d~ tv>$`C4@?n^2AUS+1;jw3f}DUDXmpSZ5W51g8xXq#u?G-)f-E;=000ls2;Kky literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/contel301 b/usr/share/terminfo/c/contel301 new file mode 100644 index 0000000000000000000000000000000000000000..d5228f94d8cf1ca2398169327109ef3983d8e878 GIT binary patch literal 551 zcmb`Du}i~17{y;iQ3{y#XUyd|T>FAM{@AvNe?j6a3R>vHs@Q5F@yPYVwvdiXON)}03o8+pl?%aeI zogfVLquVeFu0!2j;fUVtCt#U?hIC~B?GRGVQyK+K@I8rX&0m%8hl-=BxD zA$B2J#cE}>vI*fSSR$PmJ<}-ZC1crWi&LX#4GsUAXkrG!WffaUo`dYzeny3Sv1*l> iR2U>m&EBxj0NT+Mya$lWHaRnfL`W3=H!C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/contel320 b/usr/share/terminfo/c/contel320 new file mode 100644 index 0000000000000000000000000000000000000000..8b4ec9cc548c23f540b1dd33883ad18d3494a840 GIT binary patch literal 560 zcmb1QbYKu=U}b1!*u{{XpI4HaV{Bkh17#TjSs<=6SVF<6v^X;_wYXRzxU#q;HMdy7 zSr;g)kY5C17#T1yFfu>^oBi_!0F#Q1k%57}od7d~ tv>$`C4@?n^2AUS+1;jw3f}DUDXmpSZ5W51g8xXq#u?G-)f-E;=000ls2;Kky literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/contel321 b/usr/share/terminfo/c/contel321 new file mode 100644 index 0000000000000000000000000000000000000000..d5228f94d8cf1ca2398169327109ef3983d8e878 GIT binary patch literal 551 zcmb`Du}i~17{y;iQ3{y#XUyd|T>FAM{@AvNe?j6a3R>vHs@Q5F@yPYVwvdiXON)}03o8+pl?%aeI zogfVLquVeFu0!2j;fUVtCt#U?hIC~B?GRGVQyK+K@I8rX&0m%8hl-=BxD zA$B2J#cE}>vI*fSSR$PmJ<}-ZC1crWi&LX#4GsUAXkrG!WffaUo`dYzeny3Sv1*l> iR2U>m&EBxj0NT+Mya$lWHaRnfL`W3=H!C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cops b/usr/share/terminfo/c/cops new file mode 100644 index 0000000000000000000000000000000000000000..2370fc908be00a529f092227f5534148c28dc4e3 GIT binary patch literal 370 zcmb1Qlwn|EU}k7yuwzKhFDN!Nr~y%6LKn(WFf?FbWDH>V|6c-#8G!2l0|5&I4+9^V zCBUEornSJN4v^FXvp}jS0|rRu7$LDSO*H|_nnBfAKxr$ydN55PM#P4Joq?A@LdC|| sK;Mo*j6s}1K()Y7Rb4?{Ra-S#wZI6*WZ+`p0EQ7akmO>JgtEC90R2Yy3IG5A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cops-10 b/usr/share/terminfo/c/cops-10 new file mode 100644 index 0000000000000000000000000000000000000000..2370fc908be00a529f092227f5534148c28dc4e3 GIT binary patch literal 370 zcmb1Qlwn|EU}k7yuwzKhFDN!Nr~y%6LKn(WFf?FbWDH>V|6c-#8G!2l0|5&I4+9^V zCBUEornSJN4v^FXvp}jS0|rRu7$LDSO*H|_nnBfAKxr$ydN55PM#P4Joq?A@LdC|| sK;Mo*j6s}1K()Y7Rb4?{Ra-S#wZI6*WZ+`p0EQ7akmO>JgtEC90R2Yy3IG5A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cops10 b/usr/share/terminfo/c/cops10 new file mode 100644 index 0000000000000000000000000000000000000000..2370fc908be00a529f092227f5534148c28dc4e3 GIT binary patch literal 370 zcmb1Qlwn|EU}k7yuwzKhFDN!Nr~y%6LKn(WFf?FbWDH>V|6c-#8G!2l0|5&I4+9^V zCBUEornSJN4v^FXvp}jS0|rRu7$LDSO*H|_nnBfAKxr$ydN55PM#P4Joq?A@LdC|| sK;Mo*j6s}1K()Y7Rb4?{Ra-S#wZI6*WZ+`p0EQ7akmO>JgtEC90R2Yy3IG5A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/crt b/usr/share/terminfo/c/crt new file mode 100644 index 0000000000000000000000000000000000000000..720cd338ae8baea9fd71f0ec84b479f9e55706c4 GIT binary patch literal 1575 zcmb7EOKTHR6h8M>w2FcVf;b=*J3c^7=FX&POxv{9N7bseJ}3sYv5z#Gq|;TFaN){D$M2j>3qepi~~wnO4G$$P$=hHE}TQ1NXdufQAqG8E(!~wFhI?;g+h6n zBCco6)J=I$ri^RIzSyz-I5(dJOUi2Q<4wTMY!dTs0TN5k+K@_uz*T~>K0U(KmI;QNv5v3jbWL%)pjSKv45t$L?Es1RD~rF9y4 z)p9+lJ4N>{R~ns1b^l)@gMU>T=M4R4ywQD0kLZG)lsVISLEqMQS2VwIwSQ#~R=DmX z{anA)ul3s%&imIMRyy`kf6{Ac16f(SVEc|enznsok5*7{^9X%b_BiMSz}#T!qjl`S z@5RdY0zJS0aFVRu@zxI01)V4%I2^nQgd{5o9xM6AA=nSLc6e+rL4v#@f)Sq)V^BpmzB*Vcr=rou(F&vMXTiq7;|Ft1wU4u$W_K-LGEgGEQrknPCO2GziiUI1&Q@f z^Dd2p?DQF65IBp9ljL!yU1Ex(iA&^g2xw!G;7~uVKkkq}ZU7hX$U2N6ITL?@h?7f# zk0q7vCDFemcxf5pRYhkHaq;UNpRlqqv%ETNxqaq|FGJ;il4FieDdBn#IbC)bhW1lc=5{`UCY{0B!&P literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/crt-vt220 b/usr/share/terminfo/c/crt-vt220 new file mode 100644 index 0000000000000000000000000000000000000000..720cd338ae8baea9fd71f0ec84b479f9e55706c4 GIT binary patch literal 1575 zcmb7EOKTHR6h8M>w2FcVf;b=*J3c^7=FX&POxv{9N7bseJ}3sYv5z#Gq|;TFaN){D$M2j>3qepi~~wnO4G$$P$=hHE}TQ1NXdufQAqG8E(!~wFhI?;g+h6n zBCco6)J=I$ri^RIzSyz-I5(dJOUi2Q<4wTMY!dTs0TN5k+K@_uz*T~>K0U(KmI;QNv5v3jbWL%)pjSKv45t$L?Es1RD~rF9y4 z)p9+lJ4N>{R~ns1b^l)@gMU>T=M4R4ywQD0kLZG)lsVISLEqMQS2VwIwSQ#~R=DmX z{anA)ul3s%&imIMRyy`kf6{Ac16f(SVEc|enznsok5*7{^9X%b_BiMSz}#T!qjl`S z@5RdY0zJS0aFVRu@zxI01)V4%I2^nQgd{5o9xM6AA=nSLc6e+rL4v#@f)Sq)V^BpmzB*Vcr=rou(F&vMXTiq7;|Ft1wU4u$W_K-LGEgGEQrknPCO2GziiUI1&Q@f z^Dd2p?DQF65IBp9ljL!yU1Ex(iA&^g2xw!G;7~uVKkkq}ZU7hX$U2N6ITL?@h?7f# zk0q7vCDFemcxf5pRYhkHaq;UNpRlqqv%ETNxqaq|FGJ;il4FieDdBn#IbC)bhW1lc=5{`UCY{0B!&P literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cs10 b/usr/share/terminfo/c/cs10 new file mode 100644 index 0000000000000000000000000000000000000000..ca8d9edaa8566561137a591ea4a2ff3c09b7fd5c GIT binary patch literal 440 zcmbV_%?klh6vdB^B9euT%w{$d$zn!IQVNqq`IspSN{vC0uduZ8k3Z*)A)=I9zjJQ) zp8H-VkVO(9T(NP6&OH>Gy#HCA;O6B zMcJj0^E~fqfvS6*+*lk%2QlJZIeN`F9x#3DBLCb?h5a05m( B{rLa@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cs10-w b/usr/share/terminfo/c/cs10-w new file mode 100644 index 0000000000000000000000000000000000000000..0b391568ce4828dc99e8e5172dfad27fba8cab5e GIT binary patch literal 450 zcmb1QG+^LoU}k7y$YDq>HZ;&JuW?B%Nz6@6$xKvm&dF#`h=ko^Cjg@GGrHi#w6paG_}z@!e4Gyt6FM5#igz3vHpMR&GG3S#nYW9Ags)|QS pt9Yn16&kpB_PY+EM1b^>MMP72(hb{XPlmD{wwq-{2hru5IuDRw_fr4> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/ct8500 b/usr/share/terminfo/c/ct8500 new file mode 100644 index 0000000000000000000000000000000000000000..53dbac59fd6e766c7d3b92d7b714369494343c35 GIT binary patch literal 417 zcmb1QlwjaxU}k7%h-OGGu`o3-s0m5UE-A{-%dAj<2rw`*GQa?k8Nl%Wza)^)%)km{ z{r}I-zy&k`#1df81k>7JQWr=X0I@NH8JG`JfetJgY`}8%P!&!Lu5h&;V3r?4AY24p z_rUT)7{Z_~i)4`IWMBsdf;20Gv0k!w nAO>k!25F!U6$WWV25AK-l9!H>&SsF7VUXqlDwSqr;A8**v|0A0 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/ctrm b/usr/share/terminfo/c/ctrm new file mode 100644 index 0000000000000000000000000000000000000000..799ed147151a6ab08c7a171153c939366ad49207 GIT binary patch literal 1513 zcmeHFziU%b6#ia|rWHgH1oa_y@W#<5sRfDJ<_9EL#TaOQZFx-yElrHiR~_1bleoC} zcL+{`i-sI5;>sI5@bt$o0GD-ozxjNLOz-Kfd!_&i&4LIpv+iX&l9(cW!ng z3cGu`g{U2NH+#+Pg?4vmyBXaI0S|wiVaY2&>l384#@a#S+YPgY)!SC&Z`dmuVNVDp>0rZn$hqViynbNV3P`pE%a^(E6!E&+r^C#+a9*{57*T zc#C&v{o?L?b@3a%=pC0p7#dy_i6vnemC%7w8d9mG~;g~ zhQshv@QeOc_-ime-cwjQ{`u literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cx b/usr/share/terminfo/c/cx new file mode 100644 index 0000000000000000000000000000000000000000..ca16eaba0dbe2ec5b4d22a196ef4b78744c6d798 GIT binary patch literal 1608 zcmcgtOHUI~6h3z(il{(LSm=ZV7eio0XF7dlkka}H;bHL^Vl`4rOQD^%ObZk!taRbR zXo4oj#KeE$!nknd%9Sfu8WUY;VxkLO>G+-7M?l$-5GV6}=R1!(XYQHl^tcF9FLlzK zc%mc=xq@?}QcgK`HCe%_dpy-G!5*o5I6s$9zpDAirA+l$HEuJ^p7Y$^xn2&r*x zPAlr#jHML~ZN@=hM2#Dxuwww*Z3QFL#wGZzsPR)k1egRSs2!}^ps;S4dZ}(R>Pdvm z3@E@!Nv2I5&>kB+ghErdbna~CK!z+aP@~2jHEtsx$Z(P6&(%xDxqU2(0$tzWC6aZ6 zweFQ{O7=+(NDfL4F&iFc8Rj*y)A0Np;`$i272|EmvGCrcm}m%YDoju# z(w_%~wYcTc4X^3*2ZEvNNm8#O>J3?Dh#xXv!z-u7o>^D;))Kz9ZTJ`9Z*~hF`C&x% i(SF3*=_s04fHJTII24(psY{ei7?i!K176A|4f+HB6(Pa^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cx100 b/usr/share/terminfo/c/cx100 new file mode 100644 index 0000000000000000000000000000000000000000..ca16eaba0dbe2ec5b4d22a196ef4b78744c6d798 GIT binary patch literal 1608 zcmcgtOHUI~6h3z(il{(LSm=ZV7eio0XF7dlkka}H;bHL^Vl`4rOQD^%ObZk!taRbR zXo4oj#KeE$!nknd%9Sfu8WUY;VxkLO>G+-7M?l$-5GV6}=R1!(XYQHl^tcF9FLlzK zc%mc=xq@?}QcgK`HCe%_dpy-G!5*o5I6s$9zpDAirA+l$HEuJ^p7Y$^xn2&r*x zPAlr#jHML~ZN@=hM2#Dxuwww*Z3QFL#wGZzsPR)k1egRSs2!}^ps;S4dZ}(R>Pdvm z3@E@!Nv2I5&>kB+ghErdbna~CK!z+aP@~2jHEtsx$Z(P6&(%xDxqU2(0$tzWC6aZ6 zweFQ{O7=+(NDfL4F&iFc8Rj*y)A0Np;`$i272|EmvGCrcm}m%YDoju# z(w_%~wYcTc4X^3*2ZEvNNm8#O>J3?Dh#xXv!z-u7o>^D;))Kz9ZTJ`9Z*~hF`C&x% i(SF3*=_s04fHJTII24(psY{ei7?i!K176A|4f+HB6(Pa^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cyb110 b/usr/share/terminfo/c/cyb110 new file mode 100644 index 0000000000000000000000000000000000000000..b1763bf71c205413c0b9974379607895228cb659 GIT binary patch literal 476 zcmb1QlxI+5U}k7%C}T*jOfobysL4&q0a4DCNvTD7sTB%9zAjLJfq{{MFkoZ|VEF%E z0*DzHn1JN}|11pL45DC`EQ2Y7Ign)u=2-(tTOhV)@C5TgYSBS3noJlP|Ns9;hGYye zbW;X~p9^s}{6EM#VNLqkdAXU@@Rz#R-165-Or5%XSL#hj%7+e_G z8F(3ZRBX(Q>=^h}Y>e#~1Rxx7)dE9Rbp>@*ZPjGe0wWlcfeRQ`91NTcd_WeA=3@W= D8BY2; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cygwin b/usr/share/terminfo/c/cygwin new file mode 100644 index 0000000000000000000000000000000000000000..8219fa6afcc04edd1faa74328c19026b2bb50071 GIT binary patch literal 1518 zcmbtSOGuPa6h8MN`3TL3qMQgTeh4y~|KU6uO3lniTK3q)B&JS2a%LQD)GVDL(n;`vhSRKW{k|xx^TYpoyR@rKj*(CYAda$H8ifS z>CVyak>2=N_2J_UrDtM8(e`9-f4sD-f3UPhB1DSZ!&0|CZi>i!~U*|mYKIym14a?Z`RxN z4qdJty+>E+ga27^sZLERtb0_S((Sri_pR{WQvLtMpVX;kb-%2y=v*o!Pq^L_ZiG4n zVQusp3DbzwEzppWu#8AO9Qz^lln1PVR6|-I%@EU!F#`OaaHZq#f#om+*zeDRBWYen zZ^#sFHOh^sC%|{2088>M;Bqv_w3ugN6~k&srb|WRAOdeW^m?QTk^@!{o%(W)8{8gXD@ua_-X9T_(bXlN;oMh zfwE-97A$btjU{WcWS5rg(w4p37U$TKZ%e+(F9_pCLPi9`hkbECrLPmnVh2M`kpH_a OOJe3^S^D|lJ^Tc}9w}}B literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/c/cygwinB19 b/usr/share/terminfo/c/cygwinB19 new file mode 100644 index 0000000000000000000000000000000000000000..4831774ae4a1ff6571d62b80d00f445857754df0 GIT binary patch literal 1625 zcmb_aTS!z<6kT^$P+!?kWP*r!Gs%}k%l4T zJ2f3`JsggdSw(}TJN9nPYU%3hY>0=Wk*rX(C(Cs@Heg_C817=aq@BhtBogUjGsi+~ z#Jp)9V1c(?%&;Sk7aXLXGG)m{_0$rrbbcL?cHM&kW=qBBo;}hSehdSfqInMh()q6$b|FruA zeWi?QdmA#UtHjK(8MDmhpc%8x=1LLD#452+aFbZ6m}PYd<}1*wP_aM?{MzAD=nGnU zR$N;~bxEL2Cv%2HQ@M3Y+fqw+t+uJ&te{-L3Mh|NsIf?)?bBRS1uC>ak$eToL;8Yd ziMq*vWeu6dX57r(kZZQMisLE$NySbo6)7d(i-~zk?uuMDO?gr^;Eymd{-?HYPmEZw9utR zN)@>aTmjw+-VWXg-ihL6Zu^iK{>#SePcDXLItt)QpXR-COIQj`4 zTg5v%-jR4d2(AH-fKP#I!FAwza09pz+yrh0w}3<7R`6-?D7XzA2DgJdz@1>ZQv@6Z p$H3j-GvKq5Uz$`pw0V!vf{5BL5cKOtb9D2nR`aKr+pek+{{RqROMUU!P z0Yybhc1?uGq64+nfkbV0=SaA;wL3l(9ULg_8H|_Ks2q_X%iu`x025{PL)Z zcAzAOb|Rlg`Lq|6`@t3Dp-N-};09`ew!+$|9hy#eQiS>y#c7NZper;*)9|`BJNiij^i)nFFEFrf1SKas3)e6WhH+K6o;`>KF zTU+&?b=9Z~Y*O1OTjUwpE<>_c#^k6>$g7)FWxH+1U)$ooH{>08PtM5MEk3uMGp>Jj zPCk*gU>oJ)YqkZ=Fr?lVJPFqTW3NTEn68BaYv|Krh8C(vpc=;BZ#etlYAuYw)xb`` znqf^aUGIlFSri#e4zBbtxmU%ZO6;t5pRT-v_vQeb-x(>dH0<_c$C)`(1#85g7ROIQ z_)My`q4UyO^KsPif^{I>%^BUJ)XQqv6)R-no46R9EY@Z6cLUWd_)-d*vcOGMgb$;j zF$=tvitsK9Fqbad*%q>SIAV=AL^d~}0q@B7*8E&L>~m{AMg!=u&|Hf;fKDsw1R55) zfVzclpvOWlM^S+p*3&L@3DBW}!-YqRkM6TCcI2FY*s~J;8ky^Tf8kl*hyLdS3xmm6 z>S8LM8ag-pa^&&o{Md`}M-$&JEl++*yt{li`3qaL!5m2{fpe8ZoGgZV3kKp~H9kX4 z(oo|z)VNLcYD|M`OjU2HdYwNyOeEyfLYPm`H30Fux}a>P*XQu^M_{TsGC4Bz8wzFy A3IG5A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d132 b/usr/share/terminfo/d/d132 new file mode 100644 index 0000000000000000000000000000000000000000..84a24b9996ee48d047f8aa1245152a7e736195d1 GIT binary patch literal 405 zcmb7Ay9&ZU5S&x-5lk(*5=1#c5F`olfgplfX<=budl1kRN)W*m>HX|;BNEdHW?_a| zW@d|Ri7reO@x%tc?K-iq?&@??;W>!nb*hgY_7uJ&guotJTMVGUtaa(li7KOkCU0$q zg&uPs0}N9?$>g089PWFW8!N75-)&G?jr2ZRz?lbeLg) c4yb}IbOr4|TTlcVgFKMShQTn6B=$fJFQM=LTL1t6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d2 b/usr/share/terminfo/d/d2 new file mode 100644 index 0000000000000000000000000000000000000000..ee16edb36af37b6e6755ffa831c716483bbd3334 GIT binary patch literal 816 zcmd6f>q}Ho6vcm&l49kH(Xl}nqj`Ny33`2{A|&~!2ofa-BIGtRPL`BSno|y8AOt}W z2tgnSf*=Gz5D0zZJKnR- z2R^dFCR=Q?!zVuTg|FRN2xB^3Z*hKuMHBvnY)o upgHsqJwjc`Mct?e^`bu1k1nGDG>C>!BWgkyP&0BI)Ph=38)`>!bdkRXF0rTp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d2-dg b/usr/share/terminfo/d/d2-dg new file mode 100644 index 0000000000000000000000000000000000000000..ee16edb36af37b6e6755ffa831c716483bbd3334 GIT binary patch literal 816 zcmd6f>q}Ho6vcm&l49kH(Xl}nqj`Ny33`2{A|&~!2ofa-BIGtRPL`BSno|y8AOt}W z2tgnSf*=Gz5D0zZJKnR- z2R^dFCR=Q?!zVuTg|FRN2xB^3Z*hKuMHBvnY)o upgHsqJwjc`Mct?e^`bu1k1nGDG>C>!BWgkyP&0BI)Ph=38)`>!bdkRXF0rTp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d200 b/usr/share/terminfo/d/d200 new file mode 100644 index 0000000000000000000000000000000000000000..55446063ff3060b3092fb0c906ec2d3137afec74 GIT binary patch literal 960 zcmb`F{Y#Tk7>2JW!_3T;xSC6Eruk}Vi@EucXbhX2!bF8 zf*=TjAP9mW2!bF8f?8+uh18;-dO7d&aoy)W4+l=zS_n`^rDZG=kHzxE5Y0^Ilj+5D z@8o<6@z(mhw_A6e_6Yrz2ZReaO{eUn%Y@ z6zWl_Z}Mp~t+bcws815~_*Ji;mz>4e?~?(S_m}D+QVes1W1QqPXF1O(<0WOn-<$FC zl%Ic}wz8V}r#|~vbIznuv8YOFSFCghwy?ZEuV1rU9)j*J%GUp3B zr>>#9XaQYEi|7WriEg3W=nfVBS(R+25_yBg5xIny_j27XEGE5d%IhoQxKC=mY;cKm zdW+RwHn7wB&>qx__98d2AMHZ}D25tQ6WWfN-JLwtf?ClIv=gt<8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d200-dg b/usr/share/terminfo/d/d200-dg new file mode 100644 index 0000000000000000000000000000000000000000..55446063ff3060b3092fb0c906ec2d3137afec74 GIT binary patch literal 960 zcmb`F{Y#Tk7>2JW!_3T;xSC6Eruk}Vi@EucXbhX2!bF8 zf*=TjAP9mW2!bF8f?8+uh18;-dO7d&aoy)W4+l=zS_n`^rDZG=kHzxE5Y0^Ilj+5D z@8o<6@z(mhw_A6e_6Yrz2ZReaO{eUn%Y@ z6zWl_Z}Mp~t+bcws815~_*Ji;mz>4e?~?(S_m}D+QVes1W1QqPXF1O(<0WOn-<$FC zl%Ic}wz8V}r#|~vbIznuv8YOFSFCghwy?ZEuV1rU9)j*J%GUp3B zr>>#9XaQYEi|7WriEg3W=nfVBS(R+25_yBg5xIny_j27XEGE5d%IhoQxKC=mY;cKm zdW+RwHn7wB&>qx__98d2AMHZ}D25tQ6WWfN-JLwtf?ClIv=gt<8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d210 b/usr/share/terminfo/d/d210 new file mode 100644 index 0000000000000000000000000000000000000000..3e8242ac0915e6b5411cd1a4717af8779d39e7ee GIT binary patch literal 1333 zcmbu9Pl$|R9LImZAMz)Zq_le(>XA0(`SZ>Wy(^Z{PR4ZGMa;D1hl1${bvm2xAsZ*my%9=@WWr#DWGwbzi z%+J#$x=J_bHr=C#^n{+%D|#0v@6+zbq;p9Z@7A4tO7qW2ztIn${rc-w^L|R)eV;N{ zeP@_Q{^)ma{Yy3W-*@Py)cF)o@))~xpP;I#T1M4#)v~Hy@s0idRA`lt2SV06I_M>w;%OhUycEQSfDDZ+G?tzLoe!9N zAR7g7UCcoqzLJUlpwnxyMu%$E&CImagf&d7;OYdOu{TCVId}I zYp-f$YPy)KT=~?hR=;Yi=`7VowThv(i?#DLmP)=EENY8Kw=iPiz(xnnFgM8|1_stl zvKFs3cnJpXjgBiu#}%Wad!wU!qoaGHqkE&HdxMu}05T?m3_u1Tqa(-yWC5}OS%54+ z79b0d1;_&Azd7M;TYxM;79jtjiZg&5Kn@@WkORm81R1IPj70CE7C GDlGuSm?{wf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d210-dg b/usr/share/terminfo/d/d210-dg new file mode 100644 index 0000000000000000000000000000000000000000..6d1e8319b4dcf6ac186f4bf93b7dc41971455f77 GIT binary patch literal 990 zcmb`F{Yw;46o#LZl45>US}Np~VTkGgDLAJGOHIgs`7h;-2tx!y=~onh>Y$Z@BMtRLVMXE?`s zE^vt}jFKdktxQIHrz4$>^!I6N-P}Lx3xBPq9bH^kdCU_>p7LxRUpwvpXV2Zd7k|ur zxr)5vHE(#!JKpnwk9^`YU--&5zVm~h?pNnqffZSamD^U^X4Mw69ad+)HCUrHTin{M z%et-C`s{=a*l9a!LpE#|?Xr#7n2lRt1(Z{Gc*N+WqBHKPby3uB#(#i1|US--AZbRWypmP$8;DRpE_R9!9t)Q61WacDrx#Q9as&8qi*}4>h9ws0lSAk6-*Py}1AY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d211 b/usr/share/terminfo/d/d211 new file mode 100644 index 0000000000000000000000000000000000000000..10fd18414e1f37448d30803f50559cc29134cde0 GIT binary patch literal 1283 zcmbu9U4&F&7{{OI-M;mqh}DphPHJ`Wew^7UXQ-W>?9`_3NFy3%VzQgDyRBq&ktoF~ zN_0d-L_|bHL`1|AOX@0JbW>O9qMOtE{LdN9?p1Wg`+q*(_x+vcKgMj}0a{Oew3_dz zhBc<+rO>I=r|S8U=DFrXeJo!YI$GUxBwz8n`N`%)t2s%`geMJMJw!>;?-!Bsnk0*8 zIjusrmNwBApADeePMV6y={3Ej_t=@u&VI<^To${mh4Evy|0#=K>ATN&+;69 z<}dt>fACNK&7_v7m1>>pR~yx4HK4Q_R3%kbRdqleQzzAFbw-V;33WkTQdiV(& zTIzofxtiVQWz;W;K`UsRpb-Ua8#JoEQTD4!%e)Rtma7fKz1NIkR8YlWCyYX*$FvUGo$ne#E&!E literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d211-7b b/usr/share/terminfo/d/d211-7b new file mode 100644 index 0000000000000000000000000000000000000000..0e61fe94dc223775eee56c7d9d69250e5197ebce GIT binary patch literal 1372 zcmbu9QG}FH6vxjwyHv}Tm00aVpZHeNa?icr?38a+yG?d$d)Vq>W3|kh@8M&18#`06 zRzy*hB$7xXi6oLpB8eoDNUDdTht#r|&QtVp@Be?!J@@;4=NPjdx5GMU zgVp$vDw?^kI5lsz;Ive3l%wHnCYvo+qtf8Pk=+NPlC6pA*=(NGqkJYRMpJnsnm$s= z01=iv5+IC0v)OGI0NK6SY=>3Q>0K9WgkI}5`)CU&D0=6r+>^pi9}kD@KG+Y3ygwW= zWypfd;b?Gjx7j=u; zpWt(Rg>Uf#e!&G?#2@$z+o*%OsGBxWFZEGEDGkvc8l!QVq>QRmr#U)FXXpZ5rfYPQ z?$CXDL{I4jy(S^PqZRh|&@-X;+HKS>r*R(FIIg5|O~;iHn;5cd1XkL8mvcQ6gI3%s zOxrC6joScC)DW|~mQN*h`-@_-DTGGh6(r%H=0cKV21v9iQ>sIWKtmhyVMu{~x__ z^Irco^UW&fE$?{G2R`zN&wSx4-}vr+aILMgm~F64w$-*-vn6b&wVH43)?rlf$Z7P0rmEBHmp1xALp5+!ePKbu4_f>I zG=Z+5Ni>D(P&3+r9-$K@-DnqTMZ3`+_f0-(Lwiv>+K2X|4s-x@qAuj|19>97%>V!Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d214 b/usr/share/terminfo/d/d214 new file mode 100644 index 0000000000000000000000000000000000000000..3e8242ac0915e6b5411cd1a4717af8779d39e7ee GIT binary patch literal 1333 zcmbu9Pl$|R9LImZAMz)Zq_le(>XA0(`SZ>Wy(^Z{PR4ZGMa;D1hl1${bvm2xAsZ*my%9=@WWr#DWGwbzi z%+J#$x=J_bHr=C#^n{+%D|#0v@6+zbq;p9Z@7A4tO7qW2ztIn${rc-w^L|R)eV;N{ zeP@_Q{^)ma{Yy3W-*@Py)cF)o@))~xpP;I#T1M4#)v~Hy@s0idRA`lt2SV06I_M>w;%OhUycEQSfDDZ+G?tzLoe!9N zAR7g7UCcoqzLJUlpwnxyMu%$E&CImagf&d7;OYdOu{TCVId}I zYp-f$YPy)KT=~?hR=;Yi=`7VowThv(i?#DLmP)=EENY8Kw=iPiz(xnnFgM8|1_stl zvKFs3cnJpXjgBiu#}%Wad!wU!qoaGHqkE&HdxMu}05T?m3_u1Tqa(-yWC5}OS%54+ z79b0d1;_&Azd7M;TYxM;79jtjiZg&5Kn@@WkORm81R1IPj70CE7C GDlGuSm?{wf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d214-dg b/usr/share/terminfo/d/d214-dg new file mode 100644 index 0000000000000000000000000000000000000000..6d1e8319b4dcf6ac186f4bf93b7dc41971455f77 GIT binary patch literal 990 zcmb`F{Yw;46o#LZl45>US}Np~VTkGgDLAJGOHIgs`7h;-2tx!y=~onh>Y$Z@BMtRLVMXE?`s zE^vt}jFKdktxQIHrz4$>^!I6N-P}Lx3xBPq9bH^kdCU_>p7LxRUpwvpXV2Zd7k|ur zxr)5vHE(#!JKpnwk9^`YU--&5zVm~h?pNnqffZSamD^U^X4Mw69ad+)HCUrHTin{M z%et-C`s{=a*l9a!LpE#|?Xr#7n2lRt1(Z{Gc*N+WqBHKPby3uB#(#i1|US--AZbRWypmP$8;DRpE_R9!9t)Q61WacDrx#Q9as&8qi*}4>h9ws0lSAk6-*Py}1AY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d215 b/usr/share/terminfo/d/d215 new file mode 100644 index 0000000000000000000000000000000000000000..10fd18414e1f37448d30803f50559cc29134cde0 GIT binary patch literal 1283 zcmbu9U4&F&7{{OI-M;mqh}DphPHJ`Wew^7UXQ-W>?9`_3NFy3%VzQgDyRBq&ktoF~ zN_0d-L_|bHL`1|AOX@0JbW>O9qMOtE{LdN9?p1Wg`+q*(_x+vcKgMj}0a{Oew3_dz zhBc<+rO>I=r|S8U=DFrXeJo!YI$GUxBwz8n`N`%)t2s%`geMJMJw!>;?-!Bsnk0*8 zIjusrmNwBApADeePMV6y={3Ej_t=@u&VI<^To${mh4Evy|0#=K>ATN&+;69 z<}dt>fACNK&7_v7m1>>pR~yx4HK4Q_R3%kbRdqleQzzAFbw-V;33WkTQdiV(& zTIzofxtiVQWz;W;K`UsRpb-Ua8#JoEQTD4!%e)Rtma7fKz1NIkR8YlWCyYX*$FvUGo$ne#E&!E literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d215-7b b/usr/share/terminfo/d/d215-7b new file mode 100644 index 0000000000000000000000000000000000000000..0e61fe94dc223775eee56c7d9d69250e5197ebce GIT binary patch literal 1372 zcmbu9QG}FH6vxjwyHv}Tm00aVpZHeNa?icr?38a+yG?d$d)Vq>W3|kh@8M&18#`06 zRzy*hB$7xXi6oLpB8eoDNUDdTht#r|&QtVp@Be?!J@@;4=NPjdx5GMU zgVp$vDw?^kI5lsz;Ive3l%wHnCYvo+qtf8Pk=+NPlC6pA*=(NGqkJYRMpJnsnm$s= z01=iv5+IC0v)OGI0NK6SY=>3Q>0K9WgkI}5`)CU&D0=6r+>^pi9}kD@KG+Y3ygwW= zWypfd;b?Gjx7j=u; zpWt(Rg>Uf#e!&G?#2@$z+o*%OsGBxWFZEGEDGkvc8l!QVq>QRmr#U)FXXpZ5rfYPQ z?$CXDL{I4jy(S^PqZRh|&@-X;+HKS>r*R(FIIg5|O~;iHn;5cd1XkL8mvcQ6gI3%s zOxrC6joScC)DW|~mQN*h`-@_-DTGGh6(r%H=0cKV21v9iQ>sIWKtmhyVMu{~x__ z^Irco^UW&fE$?{G2R`zN&wSx4-}vr+aILMgm~F64w$-*-vn6b&wVH43)?rlf$Z7P0rmEBHmp1xALp5+!ePKbu4_f>I zG=Z+5Ni>D(P&3+r9-$K@-DnqTMZ3`+_f0-(Lwiv>+K2X|4s-x@qAuj|19>97%>V!Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d216+ b/usr/share/terminfo/d/d216+ new file mode 100644 index 0000000000000000000000000000000000000000..c4c16b4ac76f6459b99ac460f0beead6a0929443 GIT binary patch literal 1170 zcmb7Ae`t(x82>ysGK*T;va~(jeth@CZMwT{XLD>ecV`=I#}a=S&hBNm?atlYemJ*H zL_|bHMAV8zEs8{~lu~M?gp^XsA4(~ulseD*-a95G-rnbVKF{a*JkRs}ewWaCEJg;h zDAN*jI$TwQkvWTD(QLR|dUUF8BavFO zm`}_jwnnT;w4DxzpjNOa2l?XV&qt14u-m23mRrDHGw~K67mG63zgk*+3B9au)TheU z7&rkQ0Ph9I!Gqu-@Gy7;yiXLr@6D0{jrHOJVmrX?`U)?1q&H=cr%x;@)u_X0wMwd} zOI+NeG_P{&w9{mAl$NX9?AN&(6>n8qTUsD}wR%gw(h5Z2>(mwXD(-M7&2Cq2%m;4; zcY(Kow<9p#Thdq5Ul=ZqRK#rYvcb}!@?kZyR1U9Sb(dIBOn&ZGq9}@@ zD2k#e3WOpGq@aibAqav%2%;hgf}lTwAP9mWSogkr4I_veySwL}d+zS{-ZI*V#YjU2 zrQ1R-XQh2079O&@+#^O(D$yH^2ek%0ruPLSnzyd4(YIOi8Z|8()4UD#EiFykwCKK& zt|h|pPR-@kBH@_c4Z?B`8F(#4?k2h_5h_p-LvJ zP=k6i_gicuHlS7TCTz8s5IQZ?C9&7Sss2GL8p3RID>PzfJ?Z7Yi4D_ z(%!Vypm=nR*^?=4b_>9_ZL4?|M%GbU%f$5 z>$5t-CXUWxdMQo`8m3V?NQdbt9jB9Yn$FUBx=5GlDqW`uxjeIZe|GdP%S8Exn`n^npIoC;CiZ=qr7r@AQL`WV6k+&BH=)pi#^R_WO~kdYr0b z+=wpKVJ1?m7xRmG#ny|}iMGw@6x0OvW+6ws{Bw|H6dVpIG-v0s&q{o`$i|{H4y=?v0xs;5$1+^ck-@))$sVzQK;tvnnsxC#|-QhIYrAboD5B}eJGBJj5vifR>i zI+gBlC=cd?w}ackJHR^;9PcXZ&X43p3t}a`rSathMT5l&HMBw=Z(L%JSV+t`R|oh2 zcmzBO9s~D)Df#o2p r!5;7$@LF&USQh7j^T7q+Lb-+l7lD_9i@_yed0Q#C3~UFl1Z(&SnTF*J literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d216+dg b/usr/share/terminfo/d/d216+dg new file mode 100644 index 0000000000000000000000000000000000000000..5b3edb18f4056177282f1b4c9de020e493010898 GIT binary patch literal 1031 zcmb`F`%4sY6vaO`qhd?#p_R*enyfL)9`5=oO|x3pg2*t0BGWc^N=vs@x9nj>e_s#; zK@bE%5ClOG1VPaDo!!y0pr86ObI!Tve(${ubK^EjJypbP(Q>I|*P-0arI3SV(YkCz zqB~5av&F186y$^X?2MN_dGXBPh?jO%-a;@x9V~d$c`rTW&EClcm{C3zitqxZ(oXln z8i%FQTGp|ltTqw)rBb|%35P1H&83YQeGykGLmY^lQ;ySR zo#8C!7-ob~E^&o%vgFE{8`0gVh;K#wtJ`Wd^Ur*KC0kfgrP5QUpZykx9iQ{UIWKwj zhrfE-|Bqg~d2jxj`Sv&G9q;+TM?UeHFMQ=2-}&Kw@LF4MF{`%Cw#~L%gC%U2HJNWM z)@p|>X&u&WJ=SLfcG@y_*3Q|mjo7GNwlSNq>lWCQ-L|~VS<%*0%_cUYOoq*VA>~i{ zg`_`8oCdcUJE%eFIuZ`ulc0{;`bG_+!A7^nTdQ1cJglBW579hYKt*&H-9wA$K6>Cb ztji*5ZH4ylb8@=t^l3+?`rU+8jBO#8v0-y7Pg$f@&#`ij%x7i;{Wwi39i z&afci2aSF&8bepnIGR8kPy^bD9-$@l7(GD+lttIkB+8)x-9R_d6q-i2&}}q>W>Fqp zLrIiE?WhBFqAt{pj-q3z2f2yIQ6K6@ZD==YLVM6&_f0-(M*C0;+K&#PR&)>@LWhyZ EPx|!63;+NC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d216-dg b/usr/share/terminfo/d/d216-dg new file mode 100644 index 0000000000000000000000000000000000000000..5b3edb18f4056177282f1b4c9de020e493010898 GIT binary patch literal 1031 zcmb`F`%4sY6vaO`qhd?#p_R*enyfL)9`5=oO|x3pg2*t0BGWc^N=vs@x9nj>e_s#; zK@bE%5ClOG1VPaDo!!y0pr86ObI!Tve(${ubK^EjJypbP(Q>I|*P-0arI3SV(YkCz zqB~5av&F186y$^X?2MN_dGXBPh?jO%-a;@x9V~d$c`rTW&EClcm{C3zitqxZ(oXln z8i%FQTGp|ltTqw)rBb|%35P1H&83YQeGykGLmY^lQ;ySR zo#8C!7-ob~E^&o%vgFE{8`0gVh;K#wtJ`Wd^Ur*KC0kfgrP5QUpZykx9iQ{UIWKwj zhrfE-|Bqg~d2jxj`Sv&G9q;+TM?UeHFMQ=2-}&Kw@LF4MF{`%Cw#~L%gC%U2HJNWM z)@p|>X&u&WJ=SLfcG@y_*3Q|mjo7GNwlSNq>lWCQ-L|~VS<%*0%_cUYOoq*VA>~i{ zg`_`8oCdcUJE%eFIuZ`ulc0{;`bG_+!A7^nTdQ1cJglBW579hYKt*&H-9wA$K6>Cb ztji*5ZH4ylb8@=t^l3+?`rU+8jBO#8v0-y7Pg$f@&#`ij%x7i;{Wwi39i z&afci2aSF&8bepnIGR8kPy^bD9-$@l7(GD+lttIkB+8)x-9R_d6q-i2&}}q>W>Fqp zLrIiE?WhBFqAt{pj-q3z2f2yIQ6K6@ZD==YLVM6&_f0-(M*C0;+K&#PR&)>@LWhyZ EPx|!63;+NC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d216-unix b/usr/share/terminfo/d/d216-unix new file mode 100644 index 0000000000000000000000000000000000000000..c4c16b4ac76f6459b99ac460f0beead6a0929443 GIT binary patch literal 1170 zcmb7Ae`t(x82>ysGK*T;va~(jeth@CZMwT{XLD>ecV`=I#}a=S&hBNm?atlYemJ*H zL_|bHMAV8zEs8{~lu~M?gp^XsA4(~ulseD*-a95G-rnbVKF{a*JkRs}ewWaCEJg;h zDAN*jI$TwQkvWTD(QLR|dUUF8BavFO zm`}_jwnnT;w4DxzpjNOa2l?XV&qt14u-m23mRrDHGw~K67mG63zgk*+3B9au)TheU z7&rkQ0Ph9I!Gqu-@Gy7;yiXLr@6D0{jrHOJVmrX?`U)?1q&H=cr%x;@)u_X0wMwd} zOI+NeG_P{&w9{mAl$NX9?AN&(6>n8qTUsD}wR%gw(h5Z2>(mwXD(-M7&2Cq2%m;4; zcY(Kow<9p#Thdq5Ul=ZqRK#rYvcb}!@?kZyR1U9Sb(dIBOn&ZGq9}@@ zD2k#e3WOpGq@aibAqav%2%;hgf}lTwAP9mWSogkr4I_veySwL}d+zS{-ZI*V#YjU2 zrQ1R-XQh2079O&@+#^O(D$yH^2ek%0ruPLSnzyd4(YIOi8Z|8()4UD#EiFykwCKK& zt|h|pPR-@kBH@_c4Z?B`8F(#4?k2h_5h_p-LvJ zP=k6i_gicuHlS7TCTz8s5IQZ?C9&7Sss2GL8p3RID>PzfJ?Z7Yi4D_ z(%!Vypm=nR*^?=4b_>9_ZL4?|M%GbU%f$5 z>$5t-CXUWxdMQo`8m3V?NQdbt9jB9Yn$FUBx=5GlDqW`uxjeIZe|GdP%S8Exn`n^npIoC;CiZ=qr7r@AQL`WV6k+&BH=)pi#^R_WO~kdYr0b z+=wpKVJ1?m7xRmG#ny|}iMGw@6x0OvW+6ws{Bw|H6dVpIG-v0s&q{o`$i|{H4y=?v0xs;5$1+^ck-@))$sVzQK;tvnnsxC#|-QhIYrAboD5B}eJGBJj5vifR>i zI+gBlC=cd?w}ackJHR^;9PcXZ&X43p3t}a`rSathMT5l&HMBw=Z(L%JSV+t`R|oh2 zcmzBO9s~D)Df#o2p r!5;7$@LF&USQh7j^T7q+Lb-+l7lD_9i@_yed0Q#C3~UFl1Z(&SnTF*J literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d216e+ b/usr/share/terminfo/d/d216e+ new file mode 100644 index 0000000000000000000000000000000000000000..c4c16b4ac76f6459b99ac460f0beead6a0929443 GIT binary patch literal 1170 zcmb7Ae`t(x82>ysGK*T;va~(jeth@CZMwT{XLD>ecV`=I#}a=S&hBNm?atlYemJ*H zL_|bHMAV8zEs8{~lu~M?gp^XsA4(~ulseD*-a95G-rnbVKF{a*JkRs}ewWaCEJg;h zDAN*jI$TwQkvWTD(QLR|dUUF8BavFO zm`}_jwnnT;w4DxzpjNOa2l?XV&qt14u-m23mRrDHGw~K67mG63zgk*+3B9au)TheU z7&rkQ0Ph9I!Gqu-@Gy7;yiXLr@6D0{jrHOJVmrX?`U)?1q&H=cr%x;@)u_X0wMwd} zOI+NeG_P{&w9{mAl$NX9?AN&(6>n8qTUsD}wR%gw(h5Z2>(mwXD(-M7&2Cq2%m;4; zcY(Kow<9p#Thdq5Ul=ZqRK#rYvcb}!@?kZyR1U9Sb(dIBOne_s#; zK@bE%5ClOG1VPaDo!!y0pr86ObI!Tve(${ubK^EjJypbP(Q>I|*P-0arI3SV(YkCz zqB~5av&F186y$^X?2MN_dGXBPh?jO%-a;@x9V~d$c`rTW&EClcm{C3zitqxZ(oXln z8i%FQTGp|ltTqw)rBb|%35P1H&83YQeGykGLmY^lQ;ySR zo#8C!7-ob~E^&o%vgFE{8`0gVh;K#wtJ`Wd^Ur*KC0kfgrP5QUpZykx9iQ{UIWKwj zhrfE-|Bqg~d2jxj`Sv&G9q;+TM?UeHFMQ=2-}&Kw@LF4MF{`%Cw#~L%gC%U2HJNWM z)@p|>X&u&WJ=SLfcG@y_*3Q|mjo7GNwlSNq>lWCQ-L|~VS<%*0%_cUYOoq*VA>~i{ zg`_`8oCdcUJE%eFIuZ`ulc0{;`bG_+!A7^nTdQ1cJglBW579hYKt*&H-9wA$K6>Cb ztji*5ZH4ylb8@=t^l3+?`rU+8jBO#8v0-y7Pg$f@&#`ij%x7i;{Wwi39i z&afci2aSF&8bepnIGR8kPy^bD9-$@l7(GD+lttIkB+8)x-9R_d6q-i2&}}q>W>Fqp zLrIiE?WhBFqAt{pj-q3z2f2yIQ6K6@ZD==YLVM6&_f0-(M*C0;+K&#PR&)>@LWhyZ EPx|!63;+NC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d216e-dg b/usr/share/terminfo/d/d216e-dg new file mode 100644 index 0000000000000000000000000000000000000000..5b3edb18f4056177282f1b4c9de020e493010898 GIT binary patch literal 1031 zcmb`F`%4sY6vaO`qhd?#p_R*enyfL)9`5=oO|x3pg2*t0BGWc^N=vs@x9nj>e_s#; zK@bE%5ClOG1VPaDo!!y0pr86ObI!Tve(${ubK^EjJypbP(Q>I|*P-0arI3SV(YkCz zqB~5av&F186y$^X?2MN_dGXBPh?jO%-a;@x9V~d$c`rTW&EClcm{C3zitqxZ(oXln z8i%FQTGp|ltTqw)rBb|%35P1H&83YQeGykGLmY^lQ;ySR zo#8C!7-ob~E^&o%vgFE{8`0gVh;K#wtJ`Wd^Ur*KC0kfgrP5QUpZykx9iQ{UIWKwj zhrfE-|Bqg~d2jxj`Sv&G9q;+TM?UeHFMQ=2-}&Kw@LF4MF{`%Cw#~L%gC%U2HJNWM z)@p|>X&u&WJ=SLfcG@y_*3Q|mjo7GNwlSNq>lWCQ-L|~VS<%*0%_cUYOoq*VA>~i{ zg`_`8oCdcUJE%eFIuZ`ulc0{;`bG_+!A7^nTdQ1cJglBW579hYKt*&H-9wA$K6>Cb ztji*5ZH4ylb8@=t^l3+?`rU+8jBO#8v0-y7Pg$f@&#`ij%x7i;{Wwi39i z&afci2aSF&8bepnIGR8kPy^bD9-$@l7(GD+lttIkB+8)x-9R_d6q-i2&}}q>W>Fqp zLrIiE?WhBFqAt{pj-q3z2f2yIQ6K6@ZD==YLVM6&_f0-(M*C0;+K&#PR&)>@LWhyZ EPx|!63;+NC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d216e-unix b/usr/share/terminfo/d/d216e-unix new file mode 100644 index 0000000000000000000000000000000000000000..c4c16b4ac76f6459b99ac460f0beead6a0929443 GIT binary patch literal 1170 zcmb7Ae`t(x82>ysGK*T;va~(jeth@CZMwT{XLD>ecV`=I#}a=S&hBNm?atlYemJ*H zL_|bHMAV8zEs8{~lu~M?gp^XsA4(~ulseD*-a95G-rnbVKF{a*JkRs}ewWaCEJg;h zDAN*jI$TwQkvWTD(QLR|dUUF8BavFO zm`}_jwnnT;w4DxzpjNOa2l?XV&qt14u-m23mRrDHGw~K67mG63zgk*+3B9au)TheU z7&rkQ0Ph9I!Gqu-@Gy7;yiXLr@6D0{jrHOJVmrX?`U)?1q&H=cr%x;@)u_X0wMwd} zOI+NeG_P{&w9{mAl$NX9?AN&(6>n8qTUsD}wR%gw(h5Z2>(mwXD(-M7&2Cq2%m;4; zcY(Kow<9p#Thdq5Ul=ZqRK#rYvcb}!@?kZyR1U9Sb(dIBOne_s#; zK@bE%5ClOG1VPaDo!!y0pr86ObI!Tve(${ubK^EjJypbP(Q>I|*P-0arI3SV(YkCz zqB~5av&F186y$^X?2MN_dGXBPh?jO%-a;@x9V~d$c`rTW&EClcm{C3zitqxZ(oXln z8i%FQTGp|ltTqw)rBb|%35P1H&83YQeGykGLmY^lQ;ySR zo#8C!7-ob~E^&o%vgFE{8`0gVh;K#wtJ`Wd^Ur*KC0kfgrP5QUpZykx9iQ{UIWKwj zhrfE-|Bqg~d2jxj`Sv&G9q;+TM?UeHFMQ=2-}&Kw@LF4MF{`%Cw#~L%gC%U2HJNWM z)@p|>X&u&WJ=SLfcG@y_*3Q|mjo7GNwlSNq>lWCQ-L|~VS<%*0%_cUYOoq*VA>~i{ zg`_`8oCdcUJE%eFIuZ`ulc0{;`bG_+!A7^nTdQ1cJglBW579hYKt*&H-9wA$K6>Cb ztji*5ZH4ylb8@=t^l3+?`rU+8jBO#8v0-y7Pg$f@&#`ij%x7i;{Wwi39i z&afci2aSF&8bepnIGR8kPy^bD9-$@l7(GD+lttIkB+8)x-9R_d6q-i2&}}q>W>Fqp zLrIiE?WhBFqAt{pj-q3z2f2yIQ6K6@ZD==YLVM6&_f0-(M*C0;+K&#PR&)>@LWhyZ EPx|!63;+NC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d217-unix b/usr/share/terminfo/d/d217-unix new file mode 100644 index 0000000000000000000000000000000000000000..9e55d79379f24a8a0443deeb69b6d6be5bfb8642 GIT binary patch literal 1144 zcmb7Ae`t(x82>ysGK*T;va~(jeth@CHr?HRJ2sp5Za>s^Eb)io>|S=;?%d7YHfKLX zL_|bHM6F2FqDa(ADWz6QNGYZKp_Ecesq?(=z0;(`+xtAv=lMLJ=Xt*0?+U8Ia-<=H z(rp2kv#v584vvm#{+Qq1s)zL<|DauK?r!sJvTIVc2g7!)wQ_T3`&N5sZ$JkT%r6z@ zJo%8093+!~O?)!BK=LKX6r6)1luE2Hd58FF6B(*xvL20SF>|lQwqXOh1aHI^iwU65 zLj4k>7EbjKTUkQlgozK~2#(sB;Q}t<3a*)zDNB3Pinpzpn)Iii{%id%9^jFw zn6Y%T5?_hEG4ooQn^;e7!Hv{xGTJYGuKw?_=f8UWqSohi1Wg>8$3!VcBb1^Jhbehi6dAdlK=_*~PDY`+o=nhTOJ-Sa1=`qdF6M9O|=sC^O3wlYf=`FpZ_w<22 z(kJ>%U+61+qwn;Cl4P?jv@OC?u&+(b1NM56sUl9*J849h>NOLowTOAeG_mz!&7$pg zIt8_ZwJhX{mp>O-M#15bLPvHUd#uEhhioiMW8XSy@g|J2vC)_+Tch9vcnG`?90SL} z!{8C{D0sgpe&3rR1DYDd`NejEJB<|{?n-USoJ^fqRI15 z!C-!o0Wssbdcg<4W8iV{1ULegd+Y)WFA^Or;yvI# za1h)N9sm!5L*Ou2ZYv{P;3{x6xCUGct^?PDi3H#fpGeG;d=b(GFGD^GC6-vcOMIDyOjROLiE7kY zdBA2Hun{eSH({&IgwScDE{VN1PWBJl*@(n(3m?J}9K#8m!Wo>y1zf@vT(c^Zw)UnS zZ`(0B=}$lP*ZN&Nz#~gBZR=(vz7l(5<>fRxv66g(tEtvv^k4jJ{oiBzfAt1MZOrKi zTR1X@>7_Ug(Fl#vK{`xF={TLF({z^3(?z;WSLr%U(ha&rcW8?4(S3SIk7=5o&{KLw z&uNBU&`WwvZ|NPqrw{azKGA3TLSN|{eWxFkActeVV*wU}TN}ju;6MQBD&|%l6K3?N z4l9vbomfCj7uz6KE7~@9W-^qKseIgOa%C#ssEnqhK>EC9OO`USMG$B+6;&$kb}Pf> zQa&sMZwI%7cYt>yIMJ2go!gTW$%_{C7ROf(6bu#)so_=fc=Hl_#6n``xjMiHz@y+X z@HjXImhadN7G5Lwqy1-khpV#9d)wQ(tFn{;r9ht8Ewlg%x*&=w=w192Llg0% z2mmFYf@QE=)CyP+)ldtDMh>>a4rn8_8}b6_gl;$>^Nxy*qT?_Kr$~ozA&Fdr8;QCF z6QUj@tE1>~l6gY@nds**2~#i)Z{RJwgBh5GPcSE$FUj0|;+0xl$HGX8@=H`cDpM7t z^3gg~OWq}`8Y#myG^y4k!fOwzL+Z$aF~^>&7ZiD^UP=7*cUhkCtIzwtSo@-<%nGSl{>mfa6bYGyytnO>4KnuO>UEqyFu?Ra(u9f5Io@R3Vc0szPu9QS(gp425 zv$Jes6$g9@)c9o-9hvv6>236aMiVsp!|~7smVSnRb);(Z}XmAlCso&odXv z8jr1K#X7OR*o@dZvGrmb#BL+o4!JDkS|QgACA7JeOclg}E0##pyvWWAE?QDt@(`qt zlk)@byH90iC(qoe$D9u910AsRb(l${)uErrI+pWOj1FyKkl}$2s8hUpn-1$rb-!Px z1FF|b)mA!SrFKiTpV)YE{qVYx4Wl)uw}hL{R*!E!r_a|yZixF7cT46P>63~3#3UoV zG}1-man^X8H6C}-c-%$faTkrpT{Iqd(Ma!&kd0xo5wa1o@tACdY=vxvY=vxvY=vxv zY=vxvY=vxvY=vxvY=vxv?1b!u?1b!u?1b!u?1b!u?1b!u?1b!u?1b!u?3kSHG5l|! zrVnJ}BVf6&aAX55g@YXEj*pjbu;Yty$zIXbd|V_A%TQnPujtG14WJ+mBuGgP_9eRn jR%Y-nfgelSCCJ2*b_wd~CeSYaf7wN9`Ll2P%~jt3Xya5f literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d220-7b b/usr/share/terminfo/d/d220-7b new file mode 100644 index 0000000000000000000000000000000000000000..70f6d094df9866f2a892a68b6c53bdd1f36d1d0a GIT binary patch literal 2054 zcmchWO>9*~6vxk;TRy7cD}Tnfd?c z%$)n1IWv7l?Sw8^3k`L>qvo91Q9e0W9Z$!LZ`7yi?~hLwtCb^z10%&M%@rF{#d7gv zBP}*h)#{)WEcwY`F{Fke%U-6|{#yzAh?ivm80I^m6IKPc4!WTSwt=OQhdr@BFnB>5TmAdj4Zx!ipW7lONzXJ^^feC9LKYr%g3U&BrK7Jh&` z@DtpFNAL^$9%lZ`*D59ZUzTh8X(ZA~^DnA}Y`y9tw~+Oyous?+tP0KW83xo~9^tHG z>bN?wWX!Rz)D4Q_vlR z+=~Nv2#??~9LIO?6wcy2p2JV@B3{DF_$hvlU*dKA2EW4}@h<+1_wh0Qihm$RozdFp zrD#K>qgNvz?TISUU?kMTxwh}&`H|69-nr;u%RfKoznUHHINz~?UU6Z}y-D3cYOK1U zr>(9fdfMsQAO-eQWA%xdg_Xg$S(4W|UKp#8a2tlz)R&sn#YvgPaVJg!aTC^1s2Mso z)cQ@*ZyMZ>fZVSX^YIv7p~hR@xA!rLS@_{@by`kz!Zy}v zDYs6iac=wAE-tY;b*({(2RdnT?rxo~*7Y?yq0bs8XLnKwCna!Hf_FE+*FCwhxoN6* zW_!BjbkFS85A~UCQ0VQGy;9lo>Pe23ve~?B;j>l>Y^Ac+geBI5CDw$>S`#X3O{lCj zp|aM5%38S?D&2XdSZX;{wGG{Rq+3S z=f`x`&Fdb%XR?-Us?WyrdQKh=1!)k1G|9nQPDxx?!IUHxOO&J}mMBS?9uQID|Ai9H L^6&Qc53`;E;}1x< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d220-dg b/usr/share/terminfo/d/d220-dg new file mode 100644 index 0000000000000000000000000000000000000000..90763dfb3c3cc413a6e8e52363455f11a46e0220 GIT binary patch literal 1486 zcmcIj{c99w5Pl{V4Qe%(M3ay_u8D8XG%9;%qK)TA6Yt_z(W-@l81=l{=$XsqylzbD zCEC)WC@qSLs7MQfAQXjyB3KXvK`0aiq0ry_3;YYjb@l^^4G0E&*`0Z2o_%KK9qt+> ziDuLwFJo1?M8aN?J3OAsxEX7+Q*_Fif|csovn9RTN-1Y$hYQ1H%XP{_`Jz(!qLtcg z4GrfUh#)wjn`{C38lG3L@6=O`FSWPl0aXD%12a*Lxr%FH;kDO-nBsPzeV5OQGXu~@bG`Sh0-9N*CdP8dR|Ll!ww(U zc5A0~Q@U-Olm_P@>rh8Q~6u|k!SK;{+-lqI=B7rt^S3)e2b@3 z>BBXzWNpU^Mn5X8GUKMST8*1BPTC~>bRx>s8mBJIbQ*V_aps4Cs=9nZ zlX03&QfvE~ZsW$|#<6Xa1owgc;C}D`jxHT+DJ&UkEw&%)aAPBF$Cr(ovCqM3P`6SK zR={y^0z3(pzzlc@%z`=40SCat;1Mtn9t8)%0yqQ~!GmBNOn|GvPOuAH4Xy#d0K37p zpboMQTn}ylZEy+L0=9xn_3{R617qMaupQKaI>6=N3UDQ8fjv3)>Igmll45qubQqnf m_nj!-RG5qeMx6+{FD!Gj4iJ`J3mN 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d400-dg b/usr/share/terminfo/d/d400-dg new file mode 100644 index 0000000000000000000000000000000000000000..f604db9abacb6e9f5d242981c143ab43f4a7956c GIT binary patch literal 1154 zcmbVKZAes65Iv(|Vr3sFrs!d_u2yEP>soD^QtUqaAhnV{AgfJZrkRWoe80>RhaZ|HmnH!XOK{TF-2deFMyEEPvh_2hdA+{|L)xs4~EeLekoh^13L@;Gd z1_G&r_r2qU7b9F<<(dc;uevCW=$oGqwBz49H{ z?Pub!eb$Utk6pkeKXb*$tBTh>eggv-#1L-c7KSl`+qi>KZ|AOGd*8J3n^aAAQPPN+B zAhKNuVZNKm(g(}U$~J;ENC%@C$W^ajE;7Jc%+AbXOp&oXWMW>j*Gy|CtxdG{(%Kaa zhO1~bu$I>LU=ZA-6&qAbj;rPvcna(UyTAn44IT$ifIZ+zeYx4HA`5Alt37eG{c7vf z8feuAG3U&r_B2rCnJPExC^dbiW2L%8)Yvgo?xsV2Cd1g7lbNtdq#JwoWT0JTZbPoI z^GvySP{br^j9qKW!98FDxEI`q)6Mz2;<;tnAd z)bZ))dci*MG}sSzfGYj~*a$X(Hh2(h1`mNPU@LeSYy*#g?Vw(<1PpGa|SAwg+ u)nEi%1FED7a4lE~>NppG`QSouk&eKC1z;h#7+eCXv?6dBSPU))1Na5OQqq|K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d410 b/usr/share/terminfo/d/d410 new file mode 100644 index 0000000000000000000000000000000000000000..d395550f05a2c843ab57ef2c9152580480b75fc4 GIT binary patch literal 1502 zcmbu7O>9h26vxj!SA2ywi1?U<`naV?dOzOGv|fEoJEBzMqal%zP&%QsO|_#HsTCF$ zVr3yOkyu$-v9YqUA(5~k5;knuuwg^wIp@rqM8rnC=Kjxr&bjw@`~EX4RVOS14NdBV z9*UfuA#o%Hb_F+69;^+v?5>VgCk97a%B6wcU58rAw6DEPTUsWo6T{U>PzvO!mxihX zkfzIN0U&9b&VqTcP~0L|3$3sT9DNF~6}H1Ja(kd(rU&5&RK%SWP1Dmb0+Zw~!sV=U z4X$VI20Rq^6rN|Dmsx#9^^N$q@E$(GXZQ-=0n}`@KrL3w75`5;(KKC^)iqh=+25Y^ zG;dYysza5??NtNn7}aWaYD`V2Y4S7bYSv-KZI!4yzkTN3Po*(U=V3Exnl2S(_wUb^ z|2X@%+uAXYF_v&Q_TvB^#p77Tb9f%7@iJb)>v$7yVS;z@9^S_X_y`~46MTj*@HM`} z5BLec;5Yn%O3%>?^%A{8uhvFy)=n4oHr=E5=>7VzuHReHbLjVwtN6VneYCimVKeT` zP;AD%8S14*H!ZFqwo@=yjGv;?!~I;PM1|J@TK$k~D>RYGkCH@jk&9=kyLuy{MqAWO z-O)y6PpiwuT`unOaaS}#5V|l|aj}a#>@=GKjn2@v5PSOLft$*0?9L!NX|fLzdYPmf zl0HbRb(ct;Wwl;3h(@A$(Sm4Ev_rI$v=@>xBt4LnU_Nmr5`IH5{SCv>NQdthv#(*w z4Z|_Xh(j8t6|v+=PSFd?`$Vz*<9+y2xn&0*t@*fUVnaTdS~0HM$kg(g^`;hO)|v6V znc)-lT?HQT5sI1tou*c3GS#Tr#1x8`XuQPaB_K}$on3!!?Z}$Zbz^PkH`g{?Xr0

VbKnp-J7;#n_tF z`D1lbE1FB|T&N3uwZ6=b(m-jjuRl}h=;_?HKU1JHYYK7BWQIzE<8s#h!&`U{AK^26gP$-#O;>Z&0>$67 zDC9RQ_2cidKY)xB{w_r9th z+)#+knaStBA!&t=AIEd%*B3{KCcnj~~ zeSCnA@G(Bc=lBxe;5+<)pYRKQ$6q*6&(L%ALfxWU^%|Yi8+1W;>HYeUKB`aX0X?ki z`mz@Cbv>E>ADVmJE=pY#tWi0t+NhXBRTmXIsj-EE)hA{IrUc_gNVamnxwnIaV=qNF zG*Ql0D8)&h#c>iRjkp4{s8tDx4Mn?2+HKPAlJ>ZtjuWT3*CsYuYew1RXz3(v^NFKB zLkqN_)$kiOQ|zV)H{cKDTNq<6uvinsI1w)ri)2M|B6*RuBI{WA$^{C(W(Q289OlB; z45oX`FgA4fV}ju?3Wm=I!!HSjCsn41Ib|swr|XB?#dNcAw_{>JY~pj(Y*deGE{T$e zY8O>=T*qlm>z-<9=F?^z)v{zOd|+KvYl=#^rMYU2P9h26vxj!m-q-Rksv1IDX+AM`|)N*z4|C4MOA!6LMqYLOc**fn9ej(A3-c6 z77`0#!O9AW#Lhy(LL?SlNGv245(|li#6n`>IrpAdX|V7n=luWo+;`vao_lAJ=!XR$ zp-J4A#Yn3)`N1`fF>-ps<$l+4X{|6&8wk2f!=*C=LqVZy|MqSBfwTZnQhI9obX zE}ad^!$G55ECu;suv`l&r-~&I0wz5?5Fp?JB*{Vw0HmBGQ(y+n_HHh;Kr6I^rjdp9 zuo1SA+X20Pb}#IQgWetSIZ298hAR0HXrz@fxRko9@X)*G@G`BuO7#utxc6`2J$!`E z@D;wpPnarZiFsm?aC=(fbCR^A+M24H``6P>^Q%QxY!uz(_J~7bko07_swPIodGeRV zowVY<@lZS#PbQ6B4RHo0$sAljnRel`a}!VYugb*CpW5-?Z~nRR-{TEfz#iO(hp-=y z;V_Qi7+%5acoT2qJ$!(V@F_mS7x)^-@g07^PxuAD;SUsYx@?y7S33+o`aH!l{i_ z9j1F@>LgoTJ=51k;$ja)FEmlkRwzYr-idLE9T%bsG*hYKlQR^ZD(=*Ar-?hGAzB{m zdZtgu^fS4Jb2*wjPVd>+&`;5fs%KUz_leCEyC{4MZl|sdrSv%`T6s~1#j->!S(Y42 zo@E_NhZEOxfx`9K1v4r8gK>R&(>q}t)>qtSym347#;y0peZ(7gRAq|Dr7WeRe|OB? zM%3w~Zru(%a+CW`H5-nFH4}$%NMjRLb8Z}^W16=#=3+iAMqw>Ww&E6agtexy)EvgN z31#@03?G`|(=v2gCzhXV8CqIdHr#f4Rc*ycYkg%S9Bqe8TP|%v>GYs^jph^9=?VMK zYQ782m!Oq@MJxY`R{j#S@|U2MzXYxPC1~X@LGvAI25Idlr?j~RD!AEo_q6WZuGihW zAGNg+1VIplQ7}{lK@bE%5ClOqq(V@lKnOxXPzDM?5ClP;-gE8=Mn!-1ao+cN-sgK? zzUMo9buxe&l%P!3#?lGLZcUFZq!VosI!;uFm`oK?R*#qUrcx7DvTLZfd(cYi%+{n1 zSb1+Mp*ANw;R3a3)vfC_Wc12;ehf(I1(x2$VM!Oe8^7X^GI2a@RZ`2ke|gloW})R#3fwD z6`|cq_ud@4v0D{&W8u+{Rt)_zw4?zWa)gv4SUmn{#E4`2IfW*X;X) zVP1XSAFGT1k!SRziGQ4Se3ddK(=sRXvM3+Ohw_npET71y@|k=g%W_)I$~ieN7v!Q` zlFM>MuF5sJE;r?td@Z--j(jWM%RTu)ev}9DP#(#OJe8m1XZb~bmEYudL98TJ8haKm z=sS20bX`=MoMT3p0*sr{ut1&e^l0q2u`Yl(Y6GQ4pD_0-+oLh$I4B2`RjAjjUp=Y< z*|t$p-N5c5Wp@Lr@luKI?2pquK(~+X2;GCWo!CWpnEg>-pLX=Bsk*?{3Gh8|3e1BA za2lKeXTdq}U46pq)J_e`@S@J7G~Uwa(io=urj5#_;w8#J^=WnmRc@PEFu68Og{1Mi zO-CTdBc;lC)kP&?3gyPDC>A=kJs7ArUW4gSo54)GDL9VtY}<5zhrwZR1U!QAjmH`% z)=zH8HlJuIY?^MG**t6JUIy2I`Umyz&4UZz``{v&1J(9Xa1=~~9{4sm2EGGkz;W;x zH~~(ASx_(MfN^jem;kqfZQ!fm4zL~E396CTz}LY}&<59ojo=1wqh8*CP2eVQGuRBO Op%!op*b2S^TKE&Cirb$6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d410-w b/usr/share/terminfo/d/d410-w new file mode 100644 index 0000000000000000000000000000000000000000..b7ffad0dda6784b778873f4bd82694c6083992ee GIT binary patch literal 1541 zcmbu7Piz!*6vyB1{Rkj|62V055?Cw0($*M$e`cqYS)pAPsrFA4i7_@BtGk7TZ7Fow zHl+1HLV^c9>4m*;;y_49NJukIXBv&~|4?EUd0$BI?DeqS|; zZE>l7u2EkqHWrG@jat1pf2LLkr9h6XbXCC@kfu9m0U&9bu7ej~i?|n|5BgyU9GwL? z00-d+xwm0TrtiTAFeC0W(KI~)O;{qo0&98a5`3Avui&=0AK|CG^GjZTrTUxr-{C$y zgg@ag_?zB#gW96Dt5+1i(@xPe-JRFIyz=Z>hoSjiWz~qPkeg7))yGul^1IHcCAC6+ zO?{hpm~ma*P&c1C=UxxKglXD~Mbb3w7iIVS$D9A--e)~+6yL&0Jcb|QCs@N%xQK0B z#fx|uzs7Iy3SPx)cmr?YcX$WC#~<)#yo>kn4}5@+@G(9?(ChVPy-n}XyYwDCq^*v1 zSy%M9p4P|pNBUDer?cla^#=Ms6lVN8Bonl_nub|)rk0pRZ))SzsL}i#4Qg%t%C*`O~ki@kM zGcKW@kC)lSG&@Pxg~ZcOChfvNC8vziWD+{Gn@$Bf6VS2NT_AOq)q2q&8i|%fW6@#J z{h}kJ=P-1}U=wjA6W*ejsjlH{q{Gh^GubuOuHl?y#3?msMJy$f&;Pr}Y=2Q= z|Fu7U33=)vMzwr0Y!X90nAUKT*~qj?x%H+M<<^`$p>>nc89h26vxj!SA2ywi1?U<`naV?dOzOGv|fEoJEBzMqal%zP&%QsO|_#HsTCF$ zVr3yOkyu$-v9YqUA(5~k5;knuuwg^wIp@rqM8rnC=Kjxr&bjw@`~EX4RVOS14NdBV z9*UfuA#o%Hb_F+69;^+v?5>VgCk97a%B6wcU58rAw6DEPTUsWo6T{U>PzvO!mxihX zkfzIN0U&9b&VqTcP~0L|3$3sT9DNF~6}H1Ja(kd(rU&5&RK%SWP1Dmb0+Zw~!sV=U z4X$VI20Rq^6rN|Dmsx#9^^N$q@E$(GXZQ-=0n}`@KrL3w75`5;(KKC^)iqh=+25Y^ zG;dYysza5??NtNn7}aWaYD`V2Y4S7bYSv-KZI!4yzkTN3Po*(U=V3Exnl2S(_wUb^ z|2X@%+uAXYF_v&Q_TvB^#p77Tb9f%7@iJb)>v$7yVS;z@9^S_X_y`~46MTj*@HM`} z5BLec;5Yn%O3%>?^%A{8uhvFy)=n4oHr=E5=>7VzuHReHbLjVwtN6VneYCimVKeT` zP;AD%8S14*H!ZFqwo@=yjGv;?!~I;PM1|J@TK$k~D>RYGkCH@jk&9=kyLuy{MqAWO z-O)y6PpiwuT`unOaaS}#5V|l|aj}a#>@=GKjn2@v5PSOLft$*0?9L!NX|fLzdYPmf zl0HbRb(ct;Wwl;3h(@A$(Sm4Ev_rI$v=@>xBt4LnU_Nmr5`IH5{SCv>NQdthv#(*w z4Z|_Xh(j8t6|v+=PSFd?`$Vz*<9+y2xn&0*t@*fUVnaTdS~0HM$kg(g^`;hO)|v6V znc)-lT?HQT5sI1tou*c3GS#Tr#1x8`XuQPaB_K}$on3!!?Z}$Zbz^PkH`g{?Xr0

VbKnp-J7;#n_tF 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 Op%!op*b2S^TKE&Cirb$6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d411-w b/usr/share/terminfo/d/d411-w new file mode 100644 index 0000000000000000000000000000000000000000..b7ffad0dda6784b778873f4bd82694c6083992ee GIT binary patch literal 1541 zcmbu7Piz!*6vyB1{Rkj|62V055?Cw0($*M$e`cqYS)pAPsrFA4i7_@BtGk7TZ7Fow zHl+1HLV^c9>4m*;;y_49NJukIXBv&~|4?EUd0$BI?DeqS|; zZE>l7u2EkqHWrG@jat1pf2LLkr9h6XbXCC@kfu9m0U&9bu7ej~i?|n|5BgyU9GwL? z00-d+xwm0TrtiTAFeC0W(KI~)O;{qo0&98a5`3Avui&=0AK|CG^GjZTrTUxr-{C$y zgg@ag_?zB#gW96Dt5+1i(@xPe-JRFIyz=Z>hoSjiWz~qPkeg7))yGul^1IHcCAC6+ zO?{hpm~ma*P&c1C=UxxKglXD~Mbb3w7iIVS$D9A--e)~+6yL&0Jcb|QCs@N%xQK0B z#fx|uzs7Iy3SPx)cmr?YcX$WC#~<)#yo>kn4}5@+@G(9?(ChVPy-n}XyYwDCq^*v1 zSy%M9p4P|pNBUDer?cla^#=Ms6lVN8Bonl_nub|)rk0pRZ))SzsL}i#4Qg%t%C*`O~ki@kM zGcKW@kC)lSG&@Pxg~ZcOChfvNC8vziWD+{Gn@$Bf6VS2NT_AOq)q2q&8i|%fW6@#J z{h}kJ=P-1}U=wjA6W*ejsjlH{q{Gh^GubuOuHl?y#3?msMJy$f&;Pr}Y=2Q= z|Fu7U33=)vMzwr0Y!X90nAUKT*~qj?x%H+M<<^`$p>>nc8)i5Tq}H4?g(dgCGckAc%^hDD=SxA4Ft4cQUDc5TV1Kd%pAC z@0@$iy}QLZf(NkyP0oi>%lkpkLVaRswU!^aiTog!#<|r(HLkiNQ9YWgPPv8Q%4qQ^ zx1c$>T?N(W-1%s3BARz6>h9B8#GQVn7Qu0lers-hbx_7V*o-6rMAsy_L*x5!zhWZ5 z0QO>^;)58)VN?_y#dE1{3^k0WXewQkq>foEC|*P(W8T198M=sfa9#07_&8%e$^574 zKTGlF_yS+zD}0S_@GZW_kN6qCraLz>?eCfYBlEW3|N8#?-~GSvx86pQ-05u8HA$MC z%}%G&?esdn#uuFLQr7PL;QXZc7w5N>xp9-Xd$;%9CAXt*QuU@=GMZETz%9%cX%|;I zq*J=2TXsnx{jysIWk`mlAR|(e$E7S4c}AX<<8neyN+jblDRr5ZSQcej8gf?7$$5EQ z-joY+N#2&raz(DnHF;OwllSEVxf>h7un3mb!ceVjW_%O$2FKQ;AdS{pRUS~)h}x5$ z1_cZH6&$oI%fkxQ9@FTMTE+L3P*i9^o38q6LyO(;Y<8)&oy9CDwxboz8(7}2DO!`^ zQHCXkV+@aZUOwa#nJ`?|)RJmOwSqNm$hJQVE`xL6JQ#xu;AwCXTmsLiLWi^6+D5g* zCOBH5s`i4~FvBCZpY-U4?Kv!m;lDG74d2rg>L6yHrDyugs+k$kB`%n#Xa+4EWK4^R zTFoHKmdl&?kcmob0?q5UDQzZdS3y{@iajRweG_?}8PsDBtksX#&sH`q?3*65;x|k# zeGN}lD?wkwZVj2(v&ni*wk`W~_E_t2FL)e$9vlNtp!(XW?UUQ4woZ4{yJmCoj)l(C zI~UE;Lprz}{w1}Vntibs!4+^7Y=EzVGoW78Nl49n=fe z5&_r;=0W{)41f=VyTLu+UQp+J1bh@60`=gn;5M)W+^)B4z)o-nxD)IGwYMDD4fcS& Hpo@P1K%(yn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d412+25 b/usr/share/terminfo/d/d412+25 new file mode 100644 index 0000000000000000000000000000000000000000..35535f5a9e6ce4aa4ce3ad899ca6e5d6d52275e9 GIT binary patch literal 1371 zcmb7CU1%It6#nMa-(W>T;!jCFrcH0!xJf!Q-HmOdscCm7>8iN8YOB=Ltvi}+Hfw$+ z-I!!m5Clc6ASi+$2!bF8;)~#e4?g%H2!bF8qM|4Yeel5t5gE^&Of(N7bl7vxcfRwT zbI-kZcR5YmfF0;^-j{mb4@Op6jn$E$uu;#CZ4dk)myy;NYjMq;idxZ9t?3pgtJ9@> z-J(|K4ivR4=PpM}jcD0zwA}l(ojd?km;^Uacov120iHB0%4COW(xl8-5kW0~bsruS& z72PSmejBq(`o)z28I&OzmID$iDXvhq$P_I zOIy~YBhSdQ@|-*`FUkdZMP8NH;HulYkS@%08m%fIls`Vh>v8f3Yd$w4w$&O{8&TeZxt_Dwo4}&w{8PuLWw|8z& zbNBo}YiKbS?^_u>zrSr(Z`Om`!#}20SF{!H#zZ~Y?bKbf4&O2{- zrIJPo3Q#E1W2uA_uSxA1O(p98LoY8l@#?6MN2fMw3^CcA>$aM`j5pZbZzb1vv@~t9 zlKQcgN&S*FgijvcW!VVdpRWPLH2eM(OvN;K>eZfVCIOh$bV6#vB&JpEwKl~(cn z?_`5!-`^DGkL~xlwY2Wk|G(Y#yr&Gxu#CtdIV?xznEWii$Z< zP!!0vjXA~TY|2wMm7^H*3bfK5r`t)ljqWzOTWmYAj&2t>M15`A(W0hG16zB+gWw=I z1m?hDa38oI903pL6<(lrN>GR|b*5WmhsJu1F1nj-%srAnL?Ng?&AMQftu>=2TdygX zG+vWw4CHvE6dA8LuOv)vw(;iV7dllJ43rtK+%&4qV5Y(39LIRJZ5qL?U>CRz+>YML zzKZ^Z1B)_C_g3c?4_ED5vfqp>1E+!d2lekA0!P80z{6k`RNFhj9xw%Z;E&)ga5tC+ zd%-@i9~=NPpdQWv<6teA0PDbda22>3Yyj7QYUC^MYj7=SgA2h5a1mIkhc{pqxENdl RE(O(4HMktC0at()-U76l<9z@C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d412+s b/usr/share/terminfo/d/d412+s new file mode 100644 index 0000000000000000000000000000000000000000..ba50cb60525aea792d121f6a020b99fe92f1b49c GIT binary patch literal 1423 zcmb7D4QO0N5dPjoiKa-gO=!_%cxk$6;(6(NFPE5@wwm*9(_X=zjn*i&?bUml%g>qg zUYaz?sUQ@Tf}jYZP$;wrf*=S5K@bE%5EO-iA_|2QnLZS3IyZ2H91;yiL=bLZ7 z*`1xed&ntc3!2d4T&Hrz57GsN{}?)$l}V#?6h6@68`{ zb5fbwnUk87TdBIw$sX?PYvs^gtVEM;EhAKW@hd1dZd6)xC&gC|fjX*EpWSEanB*a4KO=;~k66;C+0A zi-Lc^Pf6}l;(rzYyTzAr1y^wm*YPL*!VTQSEyOm{oG3w1sC%IwOCQj`6}oO zCf1_BMr*7nv!+Pw8Bc@Y~R+I2dS)r|i^GT5J zK$|4$p1%p3nz;C+RLY*LpJ!cQeT4Od=Vde>Nc4I+Flvu=)*tfZV{5?$DKj@QCOw)P z&4ZW0C%`pu1YQ821TTV@z^6nZ_ca$tdT)_G3+s~DF|kqB&zeqcH+6FxUDW!YG3dJQ zp#>~gR8JUsu3xRHxj|W?oC@=5#Lz*)w5qU8jd0O$85QkQVWA|lRmwh)C#sd8ziv`{RCEWYlkA8c)P!l%ysl}( zc-${1*kRszcz=kC^1g?`FM*GMkD~O()b{CZGo77h9 z!H7*^WE>9 zd+wQ8qy|xgX_&44rT(}bYZ}gFN=-w>vHp0=)WD8KLels|+Dlv8-JDxYXRSngcSmxU zm5}VnnuMf9tW3_@Ep@EHe7|drWV~b6P+u{h&1P}~R?!{E}s#J|KXDtp^-(M2?`p}!b|9cwV zx!&uNN(%&6)53sR{FblmzrT-vQ0{tBZ<>

N(w6z!=2+wL33xyF0QeyI5Yk^C zUw&d)cIjY!uJL5VYZzW}YUPM7eI^$-mp>}jFJ``2A9xfz1}=lof(u|7)e*4pB5}bY z9snN$XTZn7C%{?oAUFq>fl7%OxEUM=%OBAKUI$(e-T>YRmVay$_;c`PupGP;ybN3q cUM|zs;1%Eo@JetaSbB?qSAmfZmr?AYt_hok@ei!3)KjYgXCLvYpZhw4`U1B7!a;;`~c%e zv6)yApn$y?AwGz4Jc}u!X&g^m0_?EIW+@1_2?)Z2dl>-*z>_y5FS97Y^J=xpK| z#~G*B@tlG)=nONy?%YjSyYrLt3-LYY*M#}~AKvcW-?v%rN8d&DmUS7K1iR~)KIxZT zk`qtzQjj6pCnGW@B^j4Vc}|YVQJI$GazakYX*nY`smldfkd`dTvRsze<%+x^SLIE) zCU46-a$Vk&_vMCsARo#{^0C~MPvo{dgiX+}1TE9TkXANxz6o{*$JU}CiPl&u$EZ3) zJK`}YTCj)Upk=i@N=TbzbeJ~f`y_~pUC40dFM}?-;o0no?j9|rL8%Abcx;1~4={x_ zHJsLPQo|Vyk9po;UY}2e;U%U{P&3X7*4U73e;#@Xx&U2-HlZ!(MQ9tk1bvkXUe0!F z8)b(Z;jlu5c8WHt;ZfVq0Y5o1IgfP5b|03*@ZZ~$^O&r>k{Pk|T;8mhxdNAF(L^OP zZ0R6nx=hqoI Roly3cg+2+*L3cx4{0*9|_#^-T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d412-dg b/usr/share/terminfo/d/d412-dg new file mode 100644 index 0000000000000000000000000000000000000000..11f56017af9bf394b84677efe13b24e0017e4be0 GIT binary patch literal 1199 zcmb_aZD{!H#zZ~Y?bKbf4&O2{- zrIJPo3Q#E1W2uA_uSxA1O(p98LoY8l@#?6MN2fMw3^CcA>$aM`j5pZbZzb1vv@~t9 zlKQcgN&S*FgijvcW!VVdpRWPLH2eM(OvN;K>eZfVCIOh$bV6#vB&JpEwKl~(cn z?_`5!-`^DGkL~xlwY2Wk|G(Y#yr&Gxu#CtdIV?xznEWii$Z< zP!!0vjXA~TY|2wMm7^H*3bfK5r`t)ljqWzOTWmYAj&2t>M15`A(W0hG16zB+gWw=I z1m?hDa38oI903pL6<(lrN>GR|b*5WmhsJu1F1nj-%srAnL?Ng?&AMQftu>=2TdygX zG+vWw4CHvE6dA8LuOv)vw(;iV7dllJ43rtK+%&4qV5Y(39LIRJZ5qL?U>CRz+>YML zzKZ^Z1B)_C_g3c?4_ED5vfqp>1E+!d2lekA0!P80z{6k`RNFhj9xw%Z;E&)ga5tC+ zd%-@i9~=NPpdQWv<6teA0PDbda22>3Yyj7QYUC^MYj7=SgA2h5a1mIkhc{pqxENdl RE(O(4HMktC0at()-U76l<9z@C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d412-unix b/usr/share/terminfo/d/d412-unix new file mode 100644 index 0000000000000000000000000000000000000000..2b44c593a6f7027267c1f4b5603c8f4122181fa3 GIT binary patch literal 1347 zcmb7CU1%It6#nMa-(ZV`L`z9NrcH0!xJf!Q*~GTdv}t!I=~{7htF2N~x9(`tBx`;q zO`2r2P$(#33k9W6C=>)i5Tq}H4?g(dgCGckAc%^hDD=SxA4Ft4cQUDc5TV1Kd%pAC z@0@$iy}QLZf(NkyP0oi>%lkpkLVaRswU!^aiTog!#<|r(HLkiNQ9YWgPPv8Q%4qQ^ zx1c$>T?N(W-1%s3BARz6>h9B8#GQVn7Qu0lers-hbx_7V*o-6rMAsy_L*x5!zhWZ5 z0QO>^;)58)VN?_y#dE1{3^k0WXewQkq>foEC|*P(W8T198M=sfa9#07_&8%e$^574 zKTGlF_yS+zD}0S_@GZW_kN6qCraLz>?eCfYBlEW3|N8#?-~GSvx86pQ-05u8HA$MC z%}%G&?esdn#uuFLQr7PL;QXZc7w5N>xp9-Xd$;%9CAXt*QuU@=GMZETz%9%cX%|;I zq*J=2TXsnx{jysIWk`mlAR|(e$E7S4c}AX<<8neyN+jblDRr5ZSQcej8gf?7$$5EQ z-joY+N#2&raz(DnHF;OwllSEVxf>h7un3mb!ceVjW_%O$2FKQ;AdS{pRUS~)h}x5$ z1_cZH6&$oI%fkxQ9@FTMTE+L3P*i9^o38q6LyO(;Y<8)&oy9CDwxboz8(7}2DO!`^ zQHCXkV+@aZUOwa#nJ`?|)RJmOwSqNm$hJQVE`xL6JQ#xu;AwCXTmsLiLWi^6+D5g* zCOBH5s`i4~FvBCZpY-U4?Kv!m;lDG74d2rg>L6yHrDyugs+k$kB`%n#Xa+4EWK4^R zTFoHKmdl&?kcmob0?q5UDQzZdS3y{@iajRweG_?}8PsDBtksX#&sH`q?3*65;x|k# zeGN}lD?wkwZVj2(v&ni*wk`W~_E_t2FL)e$9vlNtp!(XW?UUQ4woZ4{yJmCoj)l(C zI~UE;Lprz}{w1}Vntibs!4+^7Y=EzVGoW78Nl49n=fe z5&_r;=0W{)41f=VyTLu+UQp+J1bh@60`=gn;5M)W+^)B4z)o-nxD)IGwYMDD4fcS& Hpo@P1K%(yn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d412-unix-25 b/usr/share/terminfo/d/d412-unix-25 new file mode 100644 index 0000000000000000000000000000000000000000..35535f5a9e6ce4aa4ce3ad899ca6e5d6d52275e9 GIT binary patch literal 1371 zcmb7CU1%It6#nMa-(W>T;!jCFrcH0!xJf!Q-HmOdscCm7>8iN8YOB=Ltvi}+Hfw$+ z-I!!m5Clc6ASi+$2!bF8;)~#e4?g%H2!bF8qM|4Yeel5t5gE^&Of(N7bl7vxcfRwT zbI-kZcR5YmfF0;^-j{mb4@Op6jn$E$uu;#CZ4dk)myy;NYjMq;idxZ9t?3pgtJ9@> z-J(|K4ivR4=PpM}jcD0zwA}l(ojd?km;^Uacov120iHB0%4COW(xl8-5kW0~bsruS& z72PSmejBq(`o)z28I&OzmID$iDXvhq$P_I zOIy~YBhSdQ@|-*`FUkdZMP8NH;HulYkS@%08m%fIls`Vh>v8f3Yd$w4w$&O{8&TeZxt_Dwo4}&w{8PuLWw|8z& zbNBo}YiKbS?^_u>zrSr(Z`Om`!#}20SFqg zUYaz?sUQ@Tf}jYZP$;wrf*=S5K@bE%5EO-iA_|2QnLZS3IyZ2H91;yiL=bLZ7 z*`1xed&ntc3!2d4T&Hrz57GsN{}?)$l}V#?6h6@68`{ zb5fbwnUk87TdBIw$sX?PYvs^gtVEM;EhAKW@hd1dZd6)xC&gC|fjX*EpWSEanB*a4KO=;~k66;C+0A zi-Lc^Pf6}l;(rzYyTzAr1y^wm*YPL*!VTQSEyOm{oG3w1sC%IwOCQj`6}oO zCf1_BMr*7nv!+Pw8Bc@Y~R+I2dS)r|i^GT5J zK$|4$p1%p3nz;C+RLY*LpJ!cQeT4Od=Vde>Nc4I+Flvu=)*tfZV{5?$DKj@QCOw)P z&4ZW0C%`pu1YQ821TTV@z^6nZ_ca$tdT)_G3+s~DF|kqB&zeqcH+6FxUDW!YG3dJQ zp#>~gR8JUsu3xRHxj|W?oC@=5#Lz*)w5qU8jd0O$85QkQVWA|lRmwh)C#sd8ziv`{RCEWYlkA8c)P!l%ysl}( zc-${1*kRszcz=kC^1g?`FM*GMkD~O()b{CZGo77h9 z!H7*^WE>9 zd+wQ8qy|xgX_&44rT(}bYZ}gFN=-w>vHp0=)WD8KLels|+Dlv8-JDxYXRSngcSmxU zm5}VnnuMf9tW3_@Ep@EHe7|drWV~b6P+u{h&1P}~R?!{E}s#J|KXDtp^-(M2?`p}!b|9cwV zx!&uNN(%&6)53sR{FblmzrT-vQ0{tBZ<>

N(w6z!=2+wL33xyF0QeyI5Yk^C zUw&d)cIjY!uJL5VYZzW}YUPM7eI^$-mp>}jFJ``2A9xfz1}=lof(u|7)e*4pB5}bY z9snN$XTZn7C%{?oAUFq>fl7%OxEUM=%OBAKUI$(e-T>YRmVay$_;c`PupGP;ybN3q cUM|zs;1%Eo@JetaSbB?qSAmfZmr?AYt_hok@ei!3)KjYgXCLvYpZhw4`U1B7!a;;`~c%e zv6)yApn$y?AwGz4Jc}u!X&g^m0_?EIW+@1_2?)Z2dl>-*z>_y5FS97Y^J=xpK| z#~G*B@tlG)=nONy?%YjSyYrLt3-LYY*M#}~AKvcW-?v%rN8d&DmUS7K1iR~)KIxZT zk`qtzQjj6pCnGW@B^j4Vc}|YVQJI$GazakYX*nY`smldfkd`dTvRsze<%+x^SLIE) zCU46-a$Vk&_vMCsARo#{^0C~MPvo{dgiX+}1TE9TkXANxz6o{*$JU}CiPl&u$EZ3) zJK`}YTCj)Upk=i@N=TbzbeJ~f`y_~pUC40dFM}?-;o0no?j9|rL8%Abcx;1~4={x_ zHJsLPQo|Vyk9po;UY}2e;U%U{P&3X7*4U73e;#@Xx&U2-HlZ!(MQ9tk1bvkXUe0!F z8)b(Z;jlu5c8WHt;ZfVq0Y5o1IgfP5b|03*@ZZ~$^O&r>k{Pk|T;8mhxdNAF(L^OP zZ0R6nx=hqoI Roly3cg+2+*L3cx4{0*9|_#^-T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d413-dg b/usr/share/terminfo/d/d413-dg new file mode 100644 index 0000000000000000000000000000000000000000..11f56017af9bf394b84677efe13b24e0017e4be0 GIT binary patch literal 1199 zcmb_aZD{!H#zZ~Y?bKbf4&O2{- zrIJPo3Q#E1W2uA_uSxA1O(p98LoY8l@#?6MN2fMw3^CcA>$aM`j5pZbZzb1vv@~t9 zlKQcgN&S*FgijvcW!VVdpRWPLH2eM(OvN;K>eZfVCIOh$bV6#vB&JpEwKl~(cn z?_`5!-`^DGkL~xlwY2Wk|G(Y#yr&Gxu#CtdIV?xznEWii$Z< zP!!0vjXA~TY|2wMm7^H*3bfK5r`t)ljqWzOTWmYAj&2t>M15`A(W0hG16zB+gWw=I z1m?hDa38oI903pL6<(lrN>GR|b*5WmhsJu1F1nj-%srAnL?Ng?&AMQftu>=2TdygX zG+vWw4CHvE6dA8LuOv)vw(;iV7dllJ43rtK+%&4qV5Y(39LIRJZ5qL?U>CRz+>YML zzKZ^Z1B)_C_g3c?4_ED5vfqp>1E+!d2lekA0!P80z{6k`RNFhj9xw%Z;E&)ga5tC+ zd%-@i9~=NPpdQWv<6teA0PDbda22>3Yyj7QYUC^MYj7=SgA2h5a1mIkhc{pqxENdl RE(O(4HMktC0at()-U76l<9z@C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d413-unix b/usr/share/terminfo/d/d413-unix new file mode 100644 index 0000000000000000000000000000000000000000..307399a04bf0bedde1ca8d80e71c42054c8d6565 GIT binary patch literal 1335 zcmb7CU1%It6#nK^Z4Fi=Bw9-HF>QL&#{6_C#<}1@~FjO8X9CHKJ?G04o zE=2Q_(Skc!bA#dTCm$Uhb7x+vMsOUY-}<((IwfquHY5okx+ckO>feQX6cai0;{XmS zK8z7Og0iCHcqY}2ql$?XO{Z&;)G&ud#Y?DX%v*RTL+5ZFpD6wmpJmMF+5Uy@U#9pg zT)|a*jc@QRuHk$9i0k+zjoiqzzh(RH*>3y&ukVlljsJ$VoXRkxa;x)MQR#S&|j0%WLwwydiJO+j3Uk zmG|U=T$D@lzI-4b%13fpHe)Lo7Qm8P7^;=btZ#BXxv>o|mwFqlDi5h@SnY97oxp-V z1&1xm(vU*6BkGN+m3?0cML`oevX3f8nC+x{H50?vaAU<@vTXTT+J8GKn4I-Kp+HmV&qz|jg7 zwdd4^7(QY9Nsq4Ep2JcY{yTG6_dQLa4q^^kdbZcBnc03_;=n`&Ghpdl#x$9z*$l8` zxx9%-O;lVLXkMR9X)#f&3c|8g>^HIRo5=IbfF65jy?(rLwz6qq-*lT*ziv9y*YH%e zn(M9G(4dJuo2=Jl+p)e;A<-(yVPd@bG1)jX*-h27iP70fvi4`|+M0?IQm*qZ+al3 zF2b81V75^cnbbn9)InXeiyTVPZtA0c8YGv7C_}GMmU8qay+y}pf=-Z6lQczTnx%j$ zv_w_^K^l}rSIrzYy^90a8}Io#IkC}R!+Awy6!oV zx6X=kzo>@9Ubnf)k6(+0-jV~(h-O$SXp@F?`?KIB@Emv^9DoNM1^(G%CMI1YS-n_Nc(Nm2X+9PmbNcRzFxj zTiB?utrBY4uBy)HH7rprJISgJ^{c?r$#PA)E&X)*SiR#J@GbU zPq&miW;=tnh1S#U6}7li2G_&CEmjcIFLn~V3|;|O!S91-z;ab5z`~2f2aEU}@Fchh zJ_Vivm%!8DGFUEDO2`}afRkYPbM%5=0PhCx0q+INoG*f30{4UE;AZf4a0_^c+^zz* Wg4@9D;100#)(P$cC&1lc6L$fON%5Hg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d413-unix-s b/usr/share/terminfo/d/d413-unix-s new file mode 100644 index 0000000000000000000000000000000000000000..70868c484e14f6961cece95c7d7dfb8b5f4c49f2 GIT binary patch literal 1409 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 Otq1x7G!5Mab@2~ddGqD~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d414-unix b/usr/share/terminfo/d/d414-unix new file mode 100644 index 0000000000000000000000000000000000000000..f16031a03f6548baa4c4153a1f97987d9d7c02e1 GIT binary patch literal 1321 zcmb7CU1%It6#nMa-(ZV`L`z9NwoPu@n4ivUHZjR+YSPUlS=+j@+D56VTX!^Rk~N8w zCMH>1C=^=676e5Q1VJbigwmHnAAIP84?>|J2!g06EfxCUgAXDyo;#V;K8Vm^&%NLI z&Uel|=ic4sWbq_6p~kr+<&2l_bt}A-o#v zCQ!y?jAr6BiYl1LqT(e~6Xq;FNYHtFjLV9z;A+BrmF(Aa|2oFs;5u<YQJ_@dJLs zFSv=@apX>-{XN-cZ~QO(t(Or+4?3H5jiOp-tJC7NJDrZF{yFEzn6;6g zonIB-a(;`MJ9l{-yT9)txgULvs<+&eQ5)kY?qRk`qokxsTBKFlWw)fITY4oc12QN% z8Iio~mx2`Kpu8f7<%k@WKqh5cDl#vjEXj&g<)oaF({e`Mmvi!=d?cU9r}CM6E?>w6 zxhP-C!`KY^!(c(p_tgq!&NJ!G^!SFCj=c?5l|!l;QG3x&G>vF5&A2d znpe%JRtH32MobQ@Hn^xE`#r?LWi^6+D5g*8aP^^r1rYnApMtYKk?C3 z+p}Nr{eNfntDdVV)IrQ1OV4$gH8awH_dbFt<4t|hblln!o(e^afjW?$?L za1~qwtKfU!9H>`y6jWX%0jT1)z)5flJO)mKGvF*(0rf()L>lY@Gob!Cdcdc_Ua$}B q2X)S8z-Pe$P!HY??f{#>X1!elwtzdqU0^Gyy|sbuUT;!jCFrcH0!m~1*T-HmOdscAQpX8q|()JCbPTX!_uY}TZm zbYqfLK@b$Nf}j)%g+ieq2;z(2gAYFVP$(1%f*>l2qR-a4zweX1H)d%{zv zXhA{2e#^2vs!;6_^(NFNeP0Ph#SV1os=qFD*nnrVOP$>u%bc-pbfSF&%MWXc)?|2y zVTs{1!zs_phdh`G!{q=hspf!Iu%->!_7}iq@Hlt^jKM|lB-jL(z*khE!`W_aquOB` z9Ia4MdtPmn;ghzX^yrrDIV^|awVA_~?`aBk5VP0P^E=I|nIF<6E}Ce}3|l(Lm<|(l znqihLmpAc*iArk%%`4cHE)#XDAe^*{-6r;Z6M3E))?@dr)sNTDRyHl{o19tkTc$sK z4Np}oLB3@}BPRB2vR;#I%RZew*6z3+JPbYuPJ>5KdF|NN*)8?Wb3Ki|h5mTkV(-cA zO|x{r4sM5kQLUcN}AEnpA0Rd3gTz2G)*JJ<(mZ~fo^m;(nv G7ykgtD(wvb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d414-unix-s b/usr/share/terminfo/d/d414-unix-s new file mode 100644 index 0000000000000000000000000000000000000000..4147d9d13051725c68a2d43957e63dfc168ba10b GIT binary patch literal 1403 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 HeiirwD6F(= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d430-unix b/usr/share/terminfo/d/d430-unix new file mode 100644 index 0000000000000000000000000000000000000000..0035471f8a9827815818342912cfa77f8c48a50c GIT binary patch literal 1730 zcmcIiU1%It6#nK!trjaKBvMNDuxWZXN%P~(W)qWcO}oivlC0Hki8fJc>b5(Y-!-X| zCQUM}AP9#*D7sC5|I{~XxA^@5A1EPFXdI>{D5?$DjgM#}pgu@sS zG>R9EZX88S7&K$nFf3sn3xXFBM9e#QFGBC*LtGNPhOZ;$o5)`lf7Re`@g1&V9pB>z z{D>R4iQD+aMD9e|-y;8eog|MYXqrkiPd+WuG6nPoy-9D;+w?A7po{bYeMBGAC-f(4k)C+d5gsq}$R@r;pVhkARPZUjmPVPoQvqYVY)(nflp= zQuBO^-?)%C)3m6T_Q}QdT3GxzNNv!jD9UqE)0UssE$BF(# z^k>HY9ADr|T*M_@##i_T-{A-RWFl7*?k|b{HPKfY$3VaRYy5ZoA=`@MYptDf#&NrK ztCh9}tU)U){yFPwgX+k)*7sunX#H%EE1S5EZST8|w!_~c?3=e_v>W@DEy!+4kxf06 zral^=JIJLxjZlF`sYoT7q%z%06`H1p=@B|c$LR$5G)MCk&=Q5zq*aROIeMO6pcm<7 zI!CY4YxD-aNpI2H^bWmC@6r2PZre`pE$#=K`4{NZO}iESfAvM`Zo3{k!QKS8BI0=> z6}6aE?w~u<@?7J!P+^VVWP9D*o2usSJPz4RU3DTkbPF3KF#&Rm0Qhs@ZAbEM6(xv>A5WH#4*ssED zR{4&j3Uck(M*XmLx1gqQR%O&$Hd6iOH5_5Bxw%M(MpfwOWLcALOFx~yR%_e{J_dda zJPSUK>a(Zz&hKe-FZ2X`OZ{Q*a{BDPrdqjO2G_$sAyO03FLn~V23`k8;Ag;#U|H1( zu;4=R!9so#JO{3WPl4yb4e$au0Lwz9guKxZI0u$L$1wO#@CbN6_yAbuJP5uEJPMYJ zyTNb2vT?I~qd%^p_ePHRWA3OlgfCs@gxLD&cX`!eW)a&%hLZqj$zj-ERo@s3) kQU_HiyNXnLW3zgRX${Ht)?3e_9Ro^GgN1*T{*Q|N32zeRC;$Ke literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d430-unix-25-ccc b/usr/share/terminfo/d/d430-unix-25-ccc new file mode 100644 index 0000000000000000000000000000000000000000..ac3b8fe22288be2b250257fb094bbc2046783644 GIT binary patch literal 1749 zcmb7CU1(fY5dQAO-(p2VA{w*9ZPSxBO*Xyv?rxGcn!4HDyUqHyHfp2P)XnZ~v(0An zx7&?LRs}&�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 T+jWg$NO5X1^N*|lqs#sT{z3P5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d430-unix-s-ccc b/usr/share/terminfo/d/d430-unix-s-ccc new file mode 100644 index 0000000000000000000000000000000000000000..9846dc9e8ef068cc719ea37e5ca1473876b6704d GIT binary patch literal 1809 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 HeiirwD6F(= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d430c-unix b/usr/share/terminfo/d/d430c-unix new file mode 100644 index 0000000000000000000000000000000000000000..0035471f8a9827815818342912cfa77f8c48a50c GIT binary patch literal 1730 zcmcIiU1%It6#nK!trjaKBvMNDuxWZXN%P~(W)qWcO}oivlC0Hki8fJc>b5(Y-!-X| zCQUM}AP9#*D7sC5|I{~XxA^@5A1EPFXdI>{D5?$DjgM#}pgu@sS zG>R9EZX88S7&K$nFf3sn3xXFBM9e#QFGBC*LtGNPhOZ;$o5)`lf7Re`@g1&V9pB>z z{D>R4iQD+aMD9e|-y;8eog|MYXqrkiPd+WuG6nPoy-9D;+w?A7po{bYeMBGAC-f(4k)C+d5gsq}$R@r;pVhkARPZUjmPVPoQvqYVY)(nflp= zQuBO^-?)%C)3m6T_Q}QdT3GxzNNv!jD9UqE)0UssE$BF(# z^k>HY9ADr|T*M_@##i_T-{A-RWFl7*?k|b{HPKfY$3VaRYy5ZoA=`@MYptDf#&NrK ztCh9}tU)U){yFPwgX+k)*7sunX#H%EE1S5EZST8|w!_~c?3=e_v>W@DEy!+4kxf06 zral^=JIJLxjZlF`sYoT7q%z%06`H1p=@B|c$LR$5G)MCk&=Q5zq*aROIeMO6pcm<7 zI!CY4YxD-aNpI2H^bWmC@6r2PZre`pE$#=K`4{NZO}iESfAvM`Zo3{k!QKS8BI0=> z6}6aE?w~u<@?7J!P+^VVWP9D*o2usSJPz4RU3DTkbPF3KF#&Rm0Qhs@ZAbEM6(xv>A5WH#4*ssED zR{4&j3Uck(M*XmLx1gqQR%O&$Hd6iOH5_5Bxw%M(MpfwOWLcALOFx~yR%_e{J_dda zJPSUK>a(Zz&hKe-FZ2X`OZ{Q*a{BDPrdqjO2G_$sAyO03FLn~V23`k8;Ag;#U|H1( zu;4=R!9so#JO{3WPl4yb4e$au0Lwz9guKxZI0u$L$1wO#@CbN6_yAbuJP5uEJPMYJ zyTNb2vT?I~qd%^p_ePHRWA3OlgfCs@gxLD&cX`!eW)a&%hLZqj$zj-ERo@s3) kQU_HiyNXnLW3zgRX${Ht)?3e_9Ro^GgN1*T{*Q|N32zeRC;$Ke literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d430c-unix-25-ccc b/usr/share/terminfo/d/d430c-unix-25-ccc new file mode 100644 index 0000000000000000000000000000000000000000..ac3b8fe22288be2b250257fb094bbc2046783644 GIT binary patch literal 1749 zcmb7CU1(fY5dQAO-(p2VA{w*9ZPSxBO*Xyv?rxGcn!4HDyUqHyHfp2P)XnZ~v(0An zx7&?LRs}&�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 T+jWg$NO5X1^N*|lqs#sT{z3P5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d430c-unix-s-ccc b/usr/share/terminfo/d/d430c-unix-s-ccc new file mode 100644 index 0000000000000000000000000000000000000000..9846dc9e8ef068cc719ea37e5ca1473876b6704d GIT binary patch literal 1809 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d450-dg b/usr/share/terminfo/d/d450-dg new file mode 100644 index 0000000000000000000000000000000000000000..f604db9abacb6e9f5d242981c143ab43f4a7956c GIT binary patch literal 1154 zcmbVKZAes65Iv(|Vr3sFrs!d_u2yEP>soD^QtUqaAhnV{AgfJZrkRWoe80>RhaZ|HmnH!XOK{TF-2deFMyEEPvh_2hdA+{|L)xs4~EeLekoh^13L@;Gd z1_G&r_r2qU7b9F<<(dc;uevCW=$oGqwBz49H{ z?Pub!eb$Utk6pkeKXb*$tBTh>eggv-#1L-c7KSl`+qi>KZ|AOGd*8J3n^aAAQPPN+B zAhKNuVZNKm(g(}U$~J;ENC%@C$W^ajE;7Jc%+AbXOp&oXWMW>j*Gy|CtxdG{(%Kaa zhO1~bu$I>LU=ZA-6&qAbj;rPvcna(UyTAn44IT$ifIZ+zeYx4HA`5Alt37eG{c7vf z8feuAG3U&r_B2rCnJPExC^dbiW2L%8)Yvgo?xsV2Cd1g7lbNtdq#JwoWT0JTZbPoI z^GvySP{br^j9qKW!98FDxEI`q)6Mz2;<;tnAd z)bZ))dci*MG}sSzfGYj~*a$X(Hh2(h1`mNPU@LeSYy*#g?Vw(<1PpGa|SAwg+ u)nEi%1FED7a4lE~>NppG`QSouk&eKC1z;h#7+eCXv?6dBSPU))1Na5OQqq|K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d460 b/usr/share/terminfo/d/d460 new file mode 100644 index 0000000000000000000000000000000000000000..d395550f05a2c843ab57ef2c9152580480b75fc4 GIT binary patch literal 1502 zcmbu7O>9h26vxj!SA2ywi1?U<`naV?dOzOGv|fEoJEBzMqal%zP&%QsO|_#HsTCF$ zVr3yOkyu$-v9YqUA(5~k5;knuuwg^wIp@rqM8rnC=Kjxr&bjw@`~EX4RVOS14NdBV z9*UfuA#o%Hb_F+69;^+v?5>VgCk97a%B6wcU58rAw6DEPTUsWo6T{U>PzvO!mxihX zkfzIN0U&9b&VqTcP~0L|3$3sT9DNF~6}H1Ja(kd(rU&5&RK%SWP1Dmb0+Zw~!sV=U z4X$VI20Rq^6rN|Dmsx#9^^N$q@E$(GXZQ-=0n}`@KrL3w75`5;(KKC^)iqh=+25Y^ zG;dYysza5??NtNn7}aWaYD`V2Y4S7bYSv-KZI!4yzkTN3Po*(U=V3Exnl2S(_wUb^ z|2X@%+uAXYF_v&Q_TvB^#p77Tb9f%7@iJb)>v$7yVS;z@9^S_X_y`~46MTj*@HM`} z5BLec;5Yn%O3%>?^%A{8uhvFy)=n4oHr=E5=>7VzuHReHbLjVwtN6VneYCimVKeT` zP;AD%8S14*H!ZFqwo@=yjGv;?!~I;PM1|J@TK$k~D>RYGkCH@jk&9=kyLuy{MqAWO z-O)y6PpiwuT`unOaaS}#5V|l|aj}a#>@=GKjn2@v5PSOLft$*0?9L!NX|fLzdYPmf zl0HbRb(ct;Wwl;3h(@A$(Sm4Ev_rI$v=@>xBt4LnU_Nmr5`IH5{SCv>NQdthv#(*w z4Z|_Xh(j8t6|v+=PSFd?`$Vz*<9+y2xn&0*t@*fUVnaTdS~0HM$kg(g^`;hO)|v6V znc)-lT?HQT5sI1tou*c3GS#Tr#1x8`XuQPaB_K}$on3!!?Z}$Zbz^PkH`g{?Xr0

VbKnp-J7;#n_tF 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 Op%!op*b2S^TKE&Cirb$6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d460-w b/usr/share/terminfo/d/d460-w new file mode 100644 index 0000000000000000000000000000000000000000..b7ffad0dda6784b778873f4bd82694c6083992ee GIT binary patch literal 1541 zcmbu7Piz!*6vyB1{Rkj|62V055?Cw0($*M$e`cqYS)pAPsrFA4i7_@BtGk7TZ7Fow zHl+1HLV^c9>4m*;;y_49NJukIXBv&~|4?EUd0$BI?DeqS|; zZE>l7u2EkqHWrG@jat1pf2LLkr9h6XbXCC@kfu9m0U&9bu7ej~i?|n|5BgyU9GwL? z00-d+xwm0TrtiTAFeC0W(KI~)O;{qo0&98a5`3Avui&=0AK|CG^GjZTrTUxr-{C$y zgg@ag_?zB#gW96Dt5+1i(@xPe-JRFIyz=Z>hoSjiWz~qPkeg7))yGul^1IHcCAC6+ zO?{hpm~ma*P&c1C=UxxKglXD~Mbb3w7iIVS$D9A--e)~+6yL&0Jcb|QCs@N%xQK0B z#fx|uzs7Iy3SPx)cmr?YcX$WC#~<)#yo>kn4}5@+@G(9?(ChVPy-n}XyYwDCq^*v1 zSy%M9p4P|pNBUDer?cla^#=Ms6lVN8Bonl_nub|)rk0pRZ))SzsL}i#4Qg%t%C*`O~ki@kM zGcKW@kC)lSG&@Pxg~ZcOChfvNC8vziWD+{Gn@$Bf6VS2NT_AOq)q2q&8i|%fW6@#J z{h}kJ=P-1}U=wjA6W*ejsjlH{q{Gh^GubuOuHl?y#3?msMJy$f&;Pr}Y=2Q= z|Fu7U33=)vMzwr0Y!X90nAUKT*~qj?x%H+M<<^`$p>>nc89h26vxj!SA2ywi1?U<`naV?dOzOGv|fEoJEBzMqal%zP&%QsO|_#HsTCF$ zVr3yOkyu$-v9YqUA(5~k5;knuuwg^wIp@rqM8rnC=Kjxr&bjw@`~EX4RVOS14NdBV z9*UfuA#o%Hb_F+69;^+v?5>VgCk97a%B6wcU58rAw6DEPTUsWo6T{U>PzvO!mxihX zkfzIN0U&9b&VqTcP~0L|3$3sT9DNF~6}H1Ja(kd(rU&5&RK%SWP1Dmb0+Zw~!sV=U z4X$VI20Rq^6rN|Dmsx#9^^N$q@E$(GXZQ-=0n}`@KrL3w75`5;(KKC^)iqh=+25Y^ zG;dYysza5??NtNn7}aWaYD`V2Y4S7bYSv-KZI!4yzkTN3Po*(U=V3Exnl2S(_wUb^ z|2X@%+uAXYF_v&Q_TvB^#p77Tb9f%7@iJb)>v$7yVS;z@9^S_X_y`~46MTj*@HM`} z5BLec;5Yn%O3%>?^%A{8uhvFy)=n4oHr=E5=>7VzuHReHbLjVwtN6VneYCimVKeT` zP;AD%8S14*H!ZFqwo@=yjGv;?!~I;PM1|J@TK$k~D>RYGkCH@jk&9=kyLuy{MqAWO z-O)y6PpiwuT`unOaaS}#5V|l|aj}a#>@=GKjn2@v5PSOLft$*0?9L!NX|fLzdYPmf zl0HbRb(ct;Wwl;3h(@A$(Sm4Ev_rI$v=@>xBt4LnU_Nmr5`IH5{SCv>NQdthv#(*w z4Z|_Xh(j8t6|v+=PSFd?`$Vz*<9+y2xn&0*t@*fUVnaTdS~0HM$kg(g^`;hO)|v6V znc)-lT?HQT5sI1tou*c3GS#Tr#1x8`XuQPaB_K}$on3!!?Z}$Zbz^PkH`g{?Xr0

VbKnp-J7;#n_tF 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 Op%!op*b2S^TKE&Cirb$6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d461-w b/usr/share/terminfo/d/d461-w new file mode 100644 index 0000000000000000000000000000000000000000..b7ffad0dda6784b778873f4bd82694c6083992ee GIT binary patch literal 1541 zcmbu7Piz!*6vyB1{Rkj|62V055?Cw0($*M$e`cqYS)pAPsrFA4i7_@BtGk7TZ7Fow zHl+1HLV^c9>4m*;;y_49NJukIXBv&~|4?EUd0$BI?DeqS|; zZE>l7u2EkqHWrG@jat1pf2LLkr9h6XbXCC@kfu9m0U&9bu7ej~i?|n|5BgyU9GwL? z00-d+xwm0TrtiTAFeC0W(KI~)O;{qo0&98a5`3Avui&=0AK|CG^GjZTrTUxr-{C$y zgg@ag_?zB#gW96Dt5+1i(@xPe-JRFIyz=Z>hoSjiWz~qPkeg7))yGul^1IHcCAC6+ zO?{hpm~ma*P&c1C=UxxKglXD~Mbb3w7iIVS$D9A--e)~+6yL&0Jcb|QCs@N%xQK0B z#fx|uzs7Iy3SPx)cmr?YcX$WC#~<)#yo>kn4}5@+@G(9?(ChVPy-n}XyYwDCq^*v1 zSy%M9p4P|pNBUDer?cla^#=Ms6lVN8Bonl_nub|)rk0pRZ))SzsL}i#4Qg%t%C*`O~ki@kM zGcKW@kC)lSG&@Pxg~ZcOChfvNC8vziWD+{Gn@$Bf6VS2NT_AOq)q2q&8i|%fW6@#J z{h}kJ=P-1}U=wjA6W*ejsjlH{q{Gh^GubuOuHl?y#3?msMJy$f&;Pr}Y=2Q= z|Fu7U33=)vMzwr0Y!X90nAUKT*~qj?x%H+M<<^`$p>>nc8)i5Tq}H4?g(dgCGckAc%^hDD=SxA4Ft4cQUDc5TV1Kd%pAC z@0@$iy}QLZf(NkyP0oi>%lkpkLVaRswU!^aiTog!#<|r(HLkiNQ9YWgPPv8Q%4qQ^ zx1c$>T?N(W-1%s3BARz6>h9B8#GQVn7Qu0lers-hbx_7V*o-6rMAsy_L*x5!zhWZ5 z0QO>^;)58)VN?_y#dE1{3^k0WXewQkq>foEC|*P(W8T198M=sfa9#07_&8%e$^574 zKTGlF_yS+zD}0S_@GZW_kN6qCraLz>?eCfYBlEW3|N8#?-~GSvx86pQ-05u8HA$MC z%}%G&?esdn#uuFLQr7PL;QXZc7w5N>xp9-Xd$;%9CAXt*QuU@=GMZETz%9%cX%|;I zq*J=2TXsnx{jysIWk`mlAR|(e$E7S4c}AX<<8neyN+jblDRr5ZSQcej8gf?7$$5EQ z-joY+N#2&raz(DnHF;OwllSEVxf>h7un3mb!ceVjW_%O$2FKQ;AdS{pRUS~)h}x5$ z1_cZH6&$oI%fkxQ9@FTMTE+L3P*i9^o38q6LyO(;Y<8)&oy9CDwxboz8(7}2DO!`^ zQHCXkV+@aZUOwa#nJ`?|)RJmOwSqNm$hJQVE`xL6JQ#xu;AwCXTmsLiLWi^6+D5g* zCOBH5s`i4~FvBCZpY-U4?Kv!m;lDG74d2rg>L6yHrDyugs+k$kB`%n#Xa+4EWK4^R zTFoHKmdl&?kcmob0?q5UDQzZdS3y{@iajRweG_?}8PsDBtksX#&sH`q?3*65;x|k# zeGN}lD?wkwZVj2(v&ni*wk`W~_E_t2FL)e$9vlNtp!(XW?UUQ4woZ4{yJmCoj)l(C zI~UE;Lprz}{w1}Vntibs!4+^7Y=EzVGoW78Nl49n=fe z5&_r;=0W{)41f=VyTLu+UQp+J1bh@60`=gn;5M)W+^)B4z)o-nxD)IGwYMDD4fcS& Hpo@P1K%(yn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d462+25 b/usr/share/terminfo/d/d462+25 new file mode 100644 index 0000000000000000000000000000000000000000..35535f5a9e6ce4aa4ce3ad899ca6e5d6d52275e9 GIT binary patch literal 1371 zcmb7CU1%It6#nMa-(W>T;!jCFrcH0!xJf!Q-HmOdscCm7>8iN8YOB=Ltvi}+Hfw$+ z-I!!m5Clc6ASi+$2!bF8;)~#e4?g%H2!bF8qM|4Yeel5t5gE^&Of(N7bl7vxcfRwT zbI-kZcR5YmfF0;^-j{mb4@Op6jn$E$uu;#CZ4dk)myy;NYjMq;idxZ9t?3pgtJ9@> z-J(|K4ivR4=PpM}jcD0zwA}l(ojd?km;^Uacov120iHB0%4COW(xl8-5kW0~bsruS& z72PSmejBq(`o)z28I&OzmID$iDXvhq$P_I zOIy~YBhSdQ@|-*`FUkdZMP8NH;HulYkS@%08m%fIls`Vh>v8f3Yd$w4w$&O{8&TeZxt_Dwo4}&w{8PuLWw|8z& zbNBo}YiKbS?^_u>zrSr(Z`Om`!#}20SF{!H#zZ~Y?bKbf4&O2{- zrIJPo3Q#E1W2uA_uSxA1O(p98LoY8l@#?6MN2fMw3^CcA>$aM`j5pZbZzb1vv@~t9 zlKQcgN&S*FgijvcW!VVdpRWPLH2eM(OvN;K>eZfVCIOh$bV6#vB&JpEwKl~(cn z?_`5!-`^DGkL~xlwY2Wk|G(Y#yr&Gxu#CtdIV?xznEWii$Z< zP!!0vjXA~TY|2wMm7^H*3bfK5r`t)ljqWzOTWmYAj&2t>M15`A(W0hG16zB+gWw=I z1m?hDa38oI903pL6<(lrN>GR|b*5WmhsJu1F1nj-%srAnL?Ng?&AMQftu>=2TdygX zG+vWw4CHvE6dA8LuOv)vw(;iV7dllJ43rtK+%&4qV5Y(39LIRJZ5qL?U>CRz+>YML zzKZ^Z1B)_C_g3c?4_ED5vfqp>1E+!d2lekA0!P80z{6k`RNFhj9xw%Z;E&)ga5tC+ zd%-@i9~=NPpdQWv<6teA0PDbda22>3Yyj7QYUC^MYj7=SgA2h5a1mIkhc{pqxENdl RE(O(4HMktC0at()-U76l<9z@C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d462+s b/usr/share/terminfo/d/d462+s new file mode 100644 index 0000000000000000000000000000000000000000..ba50cb60525aea792d121f6a020b99fe92f1b49c GIT binary patch literal 1423 zcmb7D4QO0N5dPjoiKa-gO=!_%cxk$6;(6(NFPE5@wwm*9(_X=zjn*i&?bUml%g>qg zUYaz?sUQ@Tf}jYZP$;wrf*=S5K@bE%5EO-iA_|2QnLZS3IyZ2H91;yiL=bLZ7 z*`1xed&ntc3!2d4T&Hrz57GsN{}?)$l}V#?6h6@68`{ zb5fbwnUk87TdBIw$sX?PYvs^gtVEM;EhAKW@hd1dZd6)xC&gC|fjX*EpWSEanB*a4KO=;~k66;C+0A zi-Lc^Pf6}l;(rzYyTzAr1y^wm*YPL*!VTQSEyOm{oG3w1sC%IwOCQj`6}oO zCf1_BMr*7nv!+Pw8Bc@Y~R+I2dS)r|i^GT5J zK$|4$p1%p3nz;C+RLY*LpJ!cQeT4Od=Vde>Nc4I+Flvu=)*tfZV{5?$DKj@QCOw)P z&4ZW0C%`pu1YQ821TTV@z^6nZ_ca$tdT)_G3+s~DF|kqB&zeqcH+6FxUDW!YG3dJQ zp#>~gR8JUsu3xRHxj|W?oC@=5#Lz*)w5qU8jd0O$85QkQVWA|lRmwh)C#sd8ziv`{RCEWYlkA8c)P!l%ysl}( zc-${1*kRszcz=kC^1g?`FM*GMkD~O()b{CZGo77h9 z!H7*^WE>9 zd+wQ8qy|xgX_&44rT(}bYZ}gFN=-w>vHp0=)WD8KLels|+Dlv8-JDxYXRSngcSmxU zm5}VnnuMf9tW3_@Ep@EHe7|drWV~b6P+u{h&1P}~R?!{E}s#J|KXDtp^-(M2?`p}!b|9cwV zx!&uNN(%&6)53sR{FblmzrT-vQ0{tBZ<>

N(w6z!=2+wL33xyF0QeyI5Yk^C zUw&d)cIjY!uJL5VYZzW}YUPM7eI^$-mp>}jFJ``2A9xfz1}=lof(u|7)e*4pB5}bY z9snN$XTZn7C%{?oAUFq>fl7%OxEUM=%OBAKUI$(e-T>YRmVay$_;c`PupGP;ybN3q cUM|zs;1%Eo@JetaSbB?qSAmfZmr?AYt_hok@ei!3)KjYgXCLvYpZhw4`U1B7!a;;`~c%e zv6)yApn$y?AwGz4Jc}u!X&g^m0_?EIW+@1_2?)Z2dl>-*z>_y5FS97Y^J=xpK| z#~G*B@tlG)=nONy?%YjSyYrLt3-LYY*M#}~AKvcW-?v%rN8d&DmUS7K1iR~)KIxZT zk`qtzQjj6pCnGW@B^j4Vc}|YVQJI$GazakYX*nY`smldfkd`dTvRsze<%+x^SLIE) zCU46-a$Vk&_vMCsARo#{^0C~MPvo{dgiX+}1TE9TkXANxz6o{*$JU}CiPl&u$EZ3) zJK`}YTCj)Upk=i@N=TbzbeJ~f`y_~pUC40dFM}?-;o0no?j9|rL8%Abcx;1~4={x_ zHJsLPQo|Vyk9po;UY}2e;U%U{P&3X7*4U73e;#@Xx&U2-HlZ!(MQ9tk1bvkXUe0!F z8)b(Z;jlu5c8WHt;ZfVq0Y5o1IgfP5b|03*@ZZ~$^O&r>k{Pk|T;8mhxdNAF(L^OP zZ0R6nx=hqoI Roly3cg+2+*L3cx4{0*9|_#^-T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d462-dg b/usr/share/terminfo/d/d462-dg new file mode 100644 index 0000000000000000000000000000000000000000..11f56017af9bf394b84677efe13b24e0017e4be0 GIT binary patch literal 1199 zcmb_aZD{!H#zZ~Y?bKbf4&O2{- zrIJPo3Q#E1W2uA_uSxA1O(p98LoY8l@#?6MN2fMw3^CcA>$aM`j5pZbZzb1vv@~t9 zlKQcgN&S*FgijvcW!VVdpRWPLH2eM(OvN;K>eZfVCIOh$bV6#vB&JpEwKl~(cn z?_`5!-`^DGkL~xlwY2Wk|G(Y#yr&Gxu#CtdIV?xznEWii$Z< zP!!0vjXA~TY|2wMm7^H*3bfK5r`t)ljqWzOTWmYAj&2t>M15`A(W0hG16zB+gWw=I z1m?hDa38oI903pL6<(lrN>GR|b*5WmhsJu1F1nj-%srAnL?Ng?&AMQftu>=2TdygX zG+vWw4CHvE6dA8LuOv)vw(;iV7dllJ43rtK+%&4qV5Y(39LIRJZ5qL?U>CRz+>YML zzKZ^Z1B)_C_g3c?4_ED5vfqp>1E+!d2lekA0!P80z{6k`RNFhj9xw%Z;E&)ga5tC+ zd%-@i9~=NPpdQWv<6teA0PDbda22>3Yyj7QYUC^MYj7=SgA2h5a1mIkhc{pqxENdl RE(O(4HMktC0at()-U76l<9z@C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d462-unix b/usr/share/terminfo/d/d462-unix new file mode 100644 index 0000000000000000000000000000000000000000..2b44c593a6f7027267c1f4b5603c8f4122181fa3 GIT binary patch literal 1347 zcmb7CU1%It6#nMa-(ZV`L`z9NrcH0!xJf!Q*~GTdv}t!I=~{7htF2N~x9(`tBx`;q zO`2r2P$(#33k9W6C=>)i5Tq}H4?g(dgCGckAc%^hDD=SxA4Ft4cQUDc5TV1Kd%pAC z@0@$iy}QLZf(NkyP0oi>%lkpkLVaRswU!^aiTog!#<|r(HLkiNQ9YWgPPv8Q%4qQ^ zx1c$>T?N(W-1%s3BARz6>h9B8#GQVn7Qu0lers-hbx_7V*o-6rMAsy_L*x5!zhWZ5 z0QO>^;)58)VN?_y#dE1{3^k0WXewQkq>foEC|*P(W8T198M=sfa9#07_&8%e$^574 zKTGlF_yS+zD}0S_@GZW_kN6qCraLz>?eCfYBlEW3|N8#?-~GSvx86pQ-05u8HA$MC z%}%G&?esdn#uuFLQr7PL;QXZc7w5N>xp9-Xd$;%9CAXt*QuU@=GMZETz%9%cX%|;I zq*J=2TXsnx{jysIWk`mlAR|(e$E7S4c}AX<<8neyN+jblDRr5ZSQcej8gf?7$$5EQ z-joY+N#2&raz(DnHF;OwllSEVxf>h7un3mb!ceVjW_%O$2FKQ;AdS{pRUS~)h}x5$ z1_cZH6&$oI%fkxQ9@FTMTE+L3P*i9^o38q6LyO(;Y<8)&oy9CDwxboz8(7}2DO!`^ zQHCXkV+@aZUOwa#nJ`?|)RJmOwSqNm$hJQVE`xL6JQ#xu;AwCXTmsLiLWi^6+D5g* zCOBH5s`i4~FvBCZpY-U4?Kv!m;lDG74d2rg>L6yHrDyugs+k$kB`%n#Xa+4EWK4^R zTFoHKmdl&?kcmob0?q5UDQzZdS3y{@iajRweG_?}8PsDBtksX#&sH`q?3*65;x|k# zeGN}lD?wkwZVj2(v&ni*wk`W~_E_t2FL)e$9vlNtp!(XW?UUQ4woZ4{yJmCoj)l(C zI~UE;Lprz}{w1}Vntibs!4+^7Y=EzVGoW78Nl49n=fe z5&_r;=0W{)41f=VyTLu+UQp+J1bh@60`=gn;5M)W+^)B4z)o-nxD)IGwYMDD4fcS& Hpo@P1K%(yn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d462-unix-25 b/usr/share/terminfo/d/d462-unix-25 new file mode 100644 index 0000000000000000000000000000000000000000..35535f5a9e6ce4aa4ce3ad899ca6e5d6d52275e9 GIT binary patch literal 1371 zcmb7CU1%It6#nMa-(W>T;!jCFrcH0!xJf!Q-HmOdscCm7>8iN8YOB=Ltvi}+Hfw$+ z-I!!m5Clc6ASi+$2!bF8;)~#e4?g%H2!bF8qM|4Yeel5t5gE^&Of(N7bl7vxcfRwT zbI-kZcR5YmfF0;^-j{mb4@Op6jn$E$uu;#CZ4dk)myy;NYjMq;idxZ9t?3pgtJ9@> z-J(|K4ivR4=PpM}jcD0zwA}l(ojd?km;^Uacov120iHB0%4COW(xl8-5kW0~bsruS& z72PSmejBq(`o)z28I&OzmID$iDXvhq$P_I zOIy~YBhSdQ@|-*`FUkdZMP8NH;HulYkS@%08m%fIls`Vh>v8f3Yd$w4w$&O{8&TeZxt_Dwo4}&w{8PuLWw|8z& zbNBo}YiKbS?^_u>zrSr(Z`Om`!#}20SFqg zUYaz?sUQ@Tf}jYZP$;wrf*=S5K@bE%5EO-iA_|2QnLZS3IyZ2H91;yiL=bLZ7 z*`1xed&ntc3!2d4T&Hrz57GsN{}?)$l}V#?6h6@68`{ zb5fbwnUk87TdBIw$sX?PYvs^gtVEM;EhAKW@hd1dZd6)xC&gC|fjX*EpWSEanB*a4KO=;~k66;C+0A zi-Lc^Pf6}l;(rzYyTzAr1y^wm*YPL*!VTQSEyOm{oG3w1sC%IwOCQj`6}oO zCf1_BMr*7nv!+Pw8Bc@Y~R+I2dS)r|i^GT5J zK$|4$p1%p3nz;C+RLY*LpJ!cQeT4Od=Vde>Nc4I+Flvu=)*tfZV{5?$DKj@QCOw)P z&4ZW0C%`pu1YQ821TTV@z^6nZ_ca$tdT)_G3+s~DF|kqB&zeqcH+6FxUDW!YG3dJQ zp#>~gR8JUsu3xRHxj|W?oC@=5#Lz*)w5qU8jd0O$85QkQVWA|lRmwh)C#sd8ziv`{RCEWYlkA8c)P!l%ysl}( zc-${1*kRszcz=kC^1g?`FM*GMkD~O()b{CZGo77h9 z!H7*^WE>9 zd+wQ8qy|xgX_&44rT(}bYZ}gFN=-w>vHp0=)WD8KLels|+Dlv8-JDxYXRSngcSmxU zm5}VnnuMf9tW3_@Ep@EHe7|drWV~b6P+u{h&1P}~R?!{E}s#J|KXDtp^-(M2?`p}!b|9cwV zx!&uNN(%&6)53sR{FblmzrT-vQ0{tBZ<>

N(w6z!=2+wL33xyF0QeyI5Yk^C zUw&d)cIjY!uJL5VYZzW}YUPM7eI^$-mp>}jFJ``2A9xfz1}=lof(u|7)e*4pB5}bY z9snN$XTZn7C%{?oAUFq>fl7%OxEUM=%OBAKUI$(e-T>YRmVay$_;c`PupGP;ybN3q cUM|zs;1%Eo@JetaSbB?qSAmfZmr?AYt_hok@ei!3)KjYgXCLvYpZhw4`U1B7!a;;`~c%e zv6)yApn$y?AwGz4Jc}u!X&g^m0_?EIW+@1_2?)Z2dl>-*z>_y5FS97Y^J=xpK| z#~G*B@tlG)=nONy?%YjSyYrLt3-LYY*M#}~AKvcW-?v%rN8d&DmUS7K1iR~)KIxZT zk`qtzQjj6pCnGW@B^j4Vc}|YVQJI$GazakYX*nY`smldfkd`dTvRsze<%+x^SLIE) zCU46-a$Vk&_vMCsARo#{^0C~MPvo{dgiX+}1TE9TkXANxz6o{*$JU}CiPl&u$EZ3) zJK`}YTCj)Upk=i@N=TbzbeJ~f`y_~pUC40dFM}?-;o0no?j9|rL8%Abcx;1~4={x_ zHJsLPQo|Vyk9po;UY}2e;U%U{P&3X7*4U73e;#@Xx&U2-HlZ!(MQ9tk1bvkXUe0!F z8)b(Z;jlu5c8WHt;ZfVq0Y5o1IgfP5b|03*@ZZ~$^O&r>k{Pk|T;8mhxdNAF(L^OP zZ0R6nx=hqoI Roly3cg+2+*L3cx4{0*9|_#^-T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d462e-dg b/usr/share/terminfo/d/d462e-dg new file mode 100644 index 0000000000000000000000000000000000000000..11f56017af9bf394b84677efe13b24e0017e4be0 GIT binary patch literal 1199 zcmb_aZD{!H#zZ~Y?bKbf4&O2{- zrIJPo3Q#E1W2uA_uSxA1O(p98LoY8l@#?6MN2fMw3^CcA>$aM`j5pZbZzb1vv@~t9 zlKQcgN&S*FgijvcW!VVdpRWPLH2eM(OvN;K>eZfVCIOh$bV6#vB&JpEwKl~(cn z?_`5!-`^DGkL~xlwY2Wk|G(Y#yr&Gxu#CtdIV?xznEWii$Z< zP!!0vjXA~TY|2wMm7^H*3bfK5r`t)ljqWzOTWmYAj&2t>M15`A(W0hG16zB+gWw=I z1m?hDa38oI903pL6<(lrN>GR|b*5WmhsJu1F1nj-%srAnL?Ng?&AMQftu>=2TdygX zG+vWw4CHvE6dA8LuOv)vw(;iV7dllJ43rtK+%&4qV5Y(39LIRJZ5qL?U>CRz+>YML zzKZ^Z1B)_C_g3c?4_ED5vfqp>1E+!d2lekA0!P80z{6k`RNFhj9xw%Z;E&)ga5tC+ zd%-@i9~=NPpdQWv<6teA0PDbda22>3Yyj7QYUC^MYj7=SgA2h5a1mIkhc{pqxENdl RE(O(4HMktC0at()-U76l<9z@C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d463-dg b/usr/share/terminfo/d/d463-dg new file mode 100644 index 0000000000000000000000000000000000000000..11f56017af9bf394b84677efe13b24e0017e4be0 GIT binary patch literal 1199 zcmb_aZD{!H#zZ~Y?bKbf4&O2{- zrIJPo3Q#E1W2uA_uSxA1O(p98LoY8l@#?6MN2fMw3^CcA>$aM`j5pZbZzb1vv@~t9 zlKQcgN&S*FgijvcW!VVdpRWPLH2eM(OvN;K>eZfVCIOh$bV6#vB&JpEwKl~(cn z?_`5!-`^DGkL~xlwY2Wk|G(Y#yr&Gxu#CtdIV?xznEWii$Z< zP!!0vjXA~TY|2wMm7^H*3bfK5r`t)ljqWzOTWmYAj&2t>M15`A(W0hG16zB+gWw=I z1m?hDa38oI903pL6<(lrN>GR|b*5WmhsJu1F1nj-%srAnL?Ng?&AMQftu>=2TdygX zG+vWw4CHvE6dA8LuOv)vw(;iV7dllJ43rtK+%&4qV5Y(39LIRJZ5qL?U>CRz+>YML zzKZ^Z1B)_C_g3c?4_ED5vfqp>1E+!d2lekA0!P80z{6k`RNFhj9xw%Z;E&)ga5tC+ zd%-@i9~=NPpdQWv<6teA0PDbda22>3Yyj7QYUC^MYj7=SgA2h5a1mIkhc{pqxENdl RE(O(4HMktC0at()-U76l<9z@C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d463-unix b/usr/share/terminfo/d/d463-unix new file mode 100644 index 0000000000000000000000000000000000000000..307399a04bf0bedde1ca8d80e71c42054c8d6565 GIT binary patch literal 1335 zcmb7CU1%It6#nK^Z4Fi=Bw9-HF>QL&#{6_C#<}1@~FjO8X9CHKJ?G04o zE=2Q_(Skc!bA#dTCm$Uhb7x+vMsOUY-}<((IwfquHY5okx+ckO>feQX6cai0;{XmS zK8z7Og0iCHcqY}2ql$?XO{Z&;)G&ud#Y?DX%v*RTL+5ZFpD6wmpJmMF+5Uy@U#9pg zT)|a*jc@QRuHk$9i0k+zjoiqzzh(RH*>3y&ukVlljsJ$VoXRkxa;x)MQR#S&|j0%WLwwydiJO+j3Uk zmG|U=T$D@lzI-4b%13fpHe)Lo7Qm8P7^;=btZ#BXxv>o|mwFqlDi5h@SnY97oxp-V z1&1xm(vU*6BkGN+m3?0cML`oevX3f8nC+x{H50?vaAU<@vTXTT+J8GKn4I-Kp+HmV&qz|jg7 zwdd4^7(QY9Nsq4Ep2JcY{yTG6_dQLa4q^^kdbZcBnc03_;=n`&Ghpdl#x$9z*$l8` zxx9%-O;lVLXkMR9X)#f&3c|8g>^HIRo5=IbfF65jy?(rLwz6qq-*lT*ziv9y*YH%e zn(M9G(4dJuo2=Jl+p)e;A<-(yVPd@bG1)jX*-h27iP70fvi4`|+M0?IQm*qZ+al3 zF2b81V75^cnbbn9)InXeiyTVPZtA0c8YGv7C_}GMmU8qay+y}pf=-Z6lQczTnx%j$ zv_w_^K^l}rSIrzYy^90a8}Io#IkC}R!+Awy6!oV zx6X=kzo>@9Ubnf)k6(+0-jV~(h-O$SXp@F?`?KIB@Emv^9DoNM1^(G%CMI1YS-n_Nc(Nm2X+9PmbNcRzFxj zTiB?utrBY4uBy)HH7rprJISgJ^{c?r$#PA)E&X)*SiR#J@GbU zPq&miW;=tnh1S#U6}7li2G_&CEmjcIFLn~V3|;|O!S91-z;ab5z`~2f2aEU}@Fchh zJ_Vivm%!8DGFUEDO2`}afRkYPbM%5=0PhCx0q+INoG*f30{4UE;AZf4a0_^c+^zz* Wg4@9D;100#)(P$cC&1lc6L$fON%5Hg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d463-unix-s b/usr/share/terminfo/d/d463-unix-s new file mode 100644 index 0000000000000000000000000000000000000000..70868c484e14f6961cece95c7d7dfb8b5f4c49f2 GIT binary patch literal 1409 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 Otq1x7G!5Mab@2~ddGqD~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d464-unix b/usr/share/terminfo/d/d464-unix new file mode 100644 index 0000000000000000000000000000000000000000..f16031a03f6548baa4c4153a1f97987d9d7c02e1 GIT binary patch literal 1321 zcmb7CU1%It6#nMa-(ZV`L`z9NwoPu@n4ivUHZjR+YSPUlS=+j@+D56VTX!^Rk~N8w zCMH>1C=^=676e5Q1VJbigwmHnAAIP84?>|J2!g06EfxCUgAXDyo;#V;K8Vm^&%NLI z&Uel|=ic4sWbq_6p~kr+<&2l_bt}A-o#v zCQ!y?jAr6BiYl1LqT(e~6Xq;FNYHtFjLV9z;A+BrmF(Aa|2oFs;5u<YQJ_@dJLs zFSv=@apX>-{XN-cZ~QO(t(Or+4?3H5jiOp-tJC7NJDrZF{yFEzn6;6g zonIB-a(;`MJ9l{-yT9)txgULvs<+&eQ5)kY?qRk`qokxsTBKFlWw)fITY4oc12QN% z8Iio~mx2`Kpu8f7<%k@WKqh5cDl#vjEXj&g<)oaF({e`Mmvi!=d?cU9r}CM6E?>w6 zxhP-C!`KY^!(c(p_tgq!&NJ!G^!SFCj=c?5l|!l;QG3x&G>vF5&A2d znpe%JRtH32MobQ@Hn^xE`#r?LWi^6+D5g*8aP^^r1rYnApMtYKk?C3 z+p}Nr{eNfntDdVV)IrQ1OV4$gH8awH_dbFt<4t|hblln!o(e^afjW?$?L za1~qwtKfU!9H>`y6jWX%0jT1)z)5flJO)mKGvF*(0rf()L>lY@Gob!Cdcdc_Ua$}B q2X)S8z-Pe$P!HY??f{#>X1!elwtzdqU0^Gyy|sbuUT;!jCFrcH0!m~1*T-HmOdscAQpX8q|()JCbPTX!_uY}TZm zbYqfLK@b$Nf}j)%g+ieq2;z(2gAYFVP$(1%f*>l2qR-a4zweX1H)d%{zv zXhA{2e#^2vs!;6_^(NFNeP0Ph#SV1os=qFD*nnrVOP$>u%bc-pbfSF&%MWXc)?|2y zVTs{1!zs_phdh`G!{q=hspf!Iu%->!_7}iq@Hlt^jKM|lB-jL(z*khE!`W_aquOB` z9Ia4MdtPmn;ghzX^yrrDIV^|awVA_~?`aBk5VP0P^E=I|nIF<6E}Ce}3|l(Lm<|(l znqihLmpAc*iArk%%`4cHE)#XDAe^*{-6r;Z6M3E))?@dr)sNTDRyHl{o19tkTc$sK z4Np}oLB3@}BPRB2vR;#I%RZew*6z3+JPbYuPJ>5KdF|NN*)8?Wb3Ki|h5mTkV(-cA zO|x{r4sM5kQLUcN}AEnpA0Rd3gTz2G)*JJ<(mZ~fo^m;(nv G7ykgtD(wvb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d464-unix-s b/usr/share/terminfo/d/d464-unix-s new file mode 100644 index 0000000000000000000000000000000000000000..4147d9d13051725c68a2d43957e63dfc168ba10b GIT binary patch literal 1403 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d470-7b b/usr/share/terminfo/d/d470-7b new file mode 100644 index 0000000000000000000000000000000000000000..128577dc5da3ba5f75d65a6c420ad5bf41fef003 GIT binary patch literal 2297 zcmchWPi)jh6vyApw4#K+;heZgRdoLRc7H9iRSHWiU?Y}jB#qI+ZpuQp7V_&> zZJUr_V&VZ#goJoAT)Y@>98B<{2?uW6xN+l#Cp@vfH*eZBEhI)Gzh>t9o%d$;GxKJ; zQw+f_*aj_etGAKm=Inv|%pw`m`eZR#e!n@>yfisou8*7=Jvv^lW9~?~HB-*ZXIe$M z{bi#GLcpqz2Lh6wgl_jWZ0o;m0HT5!02%W=@Cs~>ZaeIOJ{SOtBM%4RT{w#F7>vd2 zM{o*0jqdZyYkuNx1^T`<%k@WAIeYUXR;wL$V>8T zd0BoZugdH42l=D?N&X^l%RBN9c~9P#59CAnNIsTN0voAr z=~=5ALC-qf7{$P0Y@|Mz4!j(V>!2K=cxhq;h1yAMW3UDLN*lW@BXT2`+po2!6>7tUX(?ynSmF)5qs|&X>sL()%Hmx1f z#TMP%sso~p7xql=ZttDhfAP)Yjk&%~|GfTc080C-Y3s(O^70zX zb+xIk@n*8#L`<6OKGsrW@GsrW@GsrW@GsrW@GsrW@GsrW@ zGsrW@(hJ7hnyT~7k^Ok(rl$_C-2c=#zY6--q1&~3VQ@*;bm4WghL42;Zb|p0oF!Z6 zg=|SL@>9Y*4q_0K6l^4JaB&84L&g@lp~4oqA;%}RmYeD3FwS`4Tu(?m^1lH8_ahT} I_=TYV1}iXo)c^nh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d470-dg b/usr/share/terminfo/d/d470-dg new file mode 100644 index 0000000000000000000000000000000000000000..7c8ae2460e6decd576cb24fc54a5dd22e2691831 GIT binary patch literal 1557 zcmb_b4`@ws6#mX5iSjwNgqcAt6PgloF*#QA#PLl%8|%yM#rG+db!e=R4>8e&?L-&6i3P!jD$D?Td$J zSuGXuExitKY_vJm9H_Gsc4u>YAX?p6U%N68)!4#7Ya$S>3v_Ic+Yo{KWX(7I%`QhK zGhSuj;|IjA5y0oh2V)3^VWi?51W<$$lq;@42w_wyieSE*SA%*ia?w&(XEMvth}DYM zVuQ!DA>pAUcDm>Yj(N-p&z@9!+QnyZ7Uyst7toK3xP;5Nf~#)inwNXSvo}3EaGET0 z>yPm}xQqLm@eq%_yk}}(;Wgg;QnyfIlF2m464jZ^GFSiZ&i~18)|*-f+}8dBvt2r+ zOL`6eRgNiNG3xhmJ?rregha!($}BY7-O z?MUtIK@dzM&YUU-1Yq z7K7g;gQjJlV?(CJb&#)-I+Ya`CO9U9@eY%RJaDn129?HO5Tn6p4hmH3TYwygwk(Xv zEo5yLvbGSp7&k~GD?*H|W^6rUYb-0gfUzbn^O6>6xL!NTcY4|Z?g2Z&onQ*=0=vOo zU=O%k|Go*@OCE+}tkyKEY*eXMX<}@Z1^>S61j9jX(kyViuA+Xr=Y;tg(jkHIyF@$6$~2NvP=YA2R4E0!3}6D-d5B;sbg}Y zY)5&jw5z0h$}ZD06&wcY`gC<^uovtD_ku}K+uj7WfN{_UH-lTitzawI25tk}!45D1 z>Tp3Y1kM1%;7qU*oCVGXtH3#+HZm8S2hImAa1vMqP6ms0cmtMzrQj5>4Ah3o!D(Ox zI2{at)p6En3)Rk&O07~;ZnUSGpFB6_ZZSQ(&&)L`lMeNnlI&vBK?f=o?$celYYn=N POKQ*|BflK|pAP#9>qN=_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d470c b/usr/share/terminfo/d/d470c new file mode 100644 index 0000000000000000000000000000000000000000..ed3af2f92493564d65688b6e76fc15c06d2062ee GIT binary patch literal 2220 zcmcgrU1(fI6h3oqs@9*T3I%ad(&(g3i*RS=?r!32tVuSQng-iS^Rf>Tn`Il_l+>=< zY7>2`AmW3FC@entG2K4jrwwDdF09F$>xj8?UDNQGxKvtN9t0TC1VIr9{O0s z!?d+^zl>|2okXTA6(UA`h_=%`VE57}jnO`GG7Iz=Jx+7N4$>m3M`(!}V9x=!wp!Gt z)56cvW|28hZxrk;`WWmB`l`rWDB?E~FM@wd-_wuuGhL=%=@0p;+sxhOKBHf}3n)7% zVyTGN?k3MXB=r$9ZoG-Y>Soa_Nqn|gb;7jGDdAo7YLU@Z@0fSZ`~R40?icgBX3RF$ z*_ zCCqBR)R>l_ZPfBMbM>+sRssN1}p+UVX~&A1Q`)iTvQ4{@-wCP91W74sa;4}S uJ>Jm1G0Um+jpdw5-&mEqadqF!HmBr`Ti!QlOWE>&XngZq*49(Er1jreLWD*D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d470c-7b b/usr/share/terminfo/d/d470c-7b new file mode 100644 index 0000000000000000000000000000000000000000..128577dc5da3ba5f75d65a6c420ad5bf41fef003 GIT binary patch literal 2297 zcmchWPi)jh6vyApw4#K+;heZgRdoLRc7H9iRSHWiU?Y}jB#qI+ZpuQp7V_&> zZJUr_V&VZ#goJoAT)Y@>98B<{2?uW6xN+l#Cp@vfH*eZBEhI)Gzh>t9o%d$;GxKJ; zQw+f_*aj_etGAKm=Inv|%pw`m`eZR#e!n@>yfisou8*7=Jvv^lW9~?~HB-*ZXIe$M z{bi#GLcpqz2Lh6wgl_jWZ0o;m0HT5!02%W=@Cs~>ZaeIOJ{SOtBM%4RT{w#F7>vd2 zM{o*0jqdZyYkuNx1^T`<%k@WAIeYUXR;wL$V>8T zd0BoZugdH42l=D?N&X^l%RBN9c~9P#59CAnNIsTN0voAr z=~=5ALC-qf7{$P0Y@|Mz4!j(V>!2K=cxhq;h1yAMW3UDLN*lW@BXT2`+po2!6>7tUX(?ynSmF)5qs|&X>sL()%Hmx1f z#TMP%sso~p7xql=ZttDhfAP)Yjk&%~|GfTc080C-Y3s(O^70zX zb+xIk@n*8#L`<6OKGsrW@GsrW@GsrW@GsrW@GsrW@GsrW@ zGsrW@(hJ7hnyT~7k^Ok(rl$_C-2c=#zY6--q1&~3VQ@*;bm4WghL42;Zb|p0oF!Z6 zg=|SL@>9Y*4q_0K6l^4JaB&84L&g@lp~4oqA;%}RmYeD3FwS`4Tu(?m^1lH8_ahT} I_=TYV1}iXo)c^nh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d470c-dg b/usr/share/terminfo/d/d470c-dg new file mode 100644 index 0000000000000000000000000000000000000000..7c8ae2460e6decd576cb24fc54a5dd22e2691831 GIT binary patch literal 1557 zcmb_b4`@ws6#mX5iSjwNgqcAt6PgloF*#QA#PLl%8|%yM#rG+db!e=R4>8e&?L-&6i3P!jD$D?Td$J zSuGXuExitKY_vJm9H_Gsc4u>YAX?p6U%N68)!4#7Ya$S>3v_Ic+Yo{KWX(7I%`QhK zGhSuj;|IjA5y0oh2V)3^VWi?51W<$$lq;@42w_wyieSE*SA%*ia?w&(XEMvth}DYM zVuQ!DA>pAUcDm>Yj(N-p&z@9!+QnyZ7Uyst7toK3xP;5Nf~#)inwNXSvo}3EaGET0 z>yPm}xQqLm@eq%_yk}}(;Wgg;QnyfIlF2m464jZ^GFSiZ&i~18)|*-f+}8dBvt2r+ zOL`6eRgNiNG3xhmJ?rregha!($}BY7-O z?MUtIK@dzM&YUU-1Yq z7K7g;gQjJlV?(CJb&#)-I+Ya`CO9U9@eY%RJaDn129?HO5Tn6p4hmH3TYwygwk(Xv zEo5yLvbGSp7&k~GD?*H|W^6rUYb-0gfUzbn^O6>6xL!NTcY4|Z?g2Z&onQ*=0=vOo zU=O%k|Go*@OCE+}tkyKEY*eXMX<}@Z1^>S61j9jX(kyViuA+Xr=Y;tg(jkHIyF@$6$~2NvP=YA2R4E0!3}6D-d5B;sbg}Y zY)5&jw5z0h$}ZD06&wcY`gC<^uovtD_ku}K+uj7WfN{_UH-lTitzawI25tk}!45D1 z>Tp3Y1kM1%;7qU*oCVGXtH3#+HZm8S2hImAa1vMqP6ms0cmtMzrQj5>4Ah3o!D(Ox zI2{at)p6En3)Rk&O07~;ZnUSGpFB6_ZZSQ(&&)L`lMeNnlI&vBK?f=o?$celYYn=N POKQ*|BflK|pAP#9>qN=_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d555 b/usr/share/terminfo/d/d555 new file mode 100644 index 0000000000000000000000000000000000000000..9ec684248371946110225b0d11c62e4bcb441258 GIT binary patch literal 1476 zcmbu7O>9h26vxj!SA0d=AmU?^YUwR4iFfaPZ>II?W7-j=8l@qTkx)9Jv`sPEMrwtH zg;-h0OC(lSR&1=SY)B+5h=dIrHf-1sdCocWCK0g_uety8pL5>*-QNGq8r2LdK|`ZD zu1BLNnk$V|M_P7QCM)Mh##>6o;r?9*TS_zlr9hrqsjGq^NYhoc0FX3I=fNUq5VsW8 zK|6GUrB5EV!gkn2ZVwE~^Z*=&vbYnXX?hCA;R5+txSVya!S&4DfQRCq!t<>2GOMqs zz7hWx-or=u3}4|pfSRwCsAX!E;{Pcpnx@TJZOtmr{`R!dyj^WkU8+cKuNqcIsaCRG zlj^*hAwQ?CW*uhSR*Aav+h^|mR2tKC5jK&g=?YPH|NdRSe#0NA^a99Ks*&FbxaE zxM?bV+|QMZRCo>18iZU&zL88cK@!FVE{>(?Kkgum(=li-w|+ zXkN4++9lde+7C$yl0Ha^u$Z_K3Exo6VBK&u(&4kk?5mqn-Ed4Y;*iE@g)9-tNxHDy zCyawX?!$-5DLZ&;)x`x98}i;%3vtbcrW$3|nQE9>Yo;PI$2)3o<$1(gC~5|Dn`*w% zRKg|`Qz%ZNaT1f0fE)#MrtR#y@z#m;lO5+aRX1F0pWZlQW;-Dn<1lNH%DYy=w6!pq zWF>GbQQLs0HsGlZIBFYk)HdL#ZNO36fTOnZ1z90m%VaBLD`Xom*$LSR*$LSR*$LSR z*$LSR*$LSR*$LSR*$LSR*$LST*$deV*$deV*$deV*$deV*$deV*$deV*$de-nSQVX F@C%b&IB@^~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d555-7b b/usr/share/terminfo/d/d555-7b new file mode 100644 index 0000000000000000000000000000000000000000..add2136562d7658dddcbe0713e619b014e0a431c GIT binary patch literal 1539 zcma))OKgl$6vxj!*ZWby0&OHyeAOy(AK%QBuO4Mks_{yMG(wq%p;Loti_C(M2n$wL zNF;Ww?5s#Ex)HHp#flXxY_MURbI;eL!NS*^^Z(y-AHRFgv{9{w1)!lp-O|NuHoGc+ zv{vY^_Gh*Y3=N#^AIucG_H}RBn<>y-rZkkvuR2<)X3D3F1E3U4_++3!?S^`NAq4_U^?r_NUdJ#%cAwLYGX{832Qg;;| z1@{!5rr^O-H>&>Y~sq);vzBZa~SFu{B zwvyYW4yb<8lj*K=YE;$8Usl)C3ZHRD-Bb4`jJftz{osn4f;^fXGQ06_*c{%IlWF7bdTPv59%ZOxE|8Ox~8vaA>Ytb>Hndr&+VYpL%|xA zqKb`*NmOxBv6~8;C|G@BMqpYnZiHkr*PHsfNH}&=^g;vWY?)G=%!v|$8YgXW(j+I{anzlY%T6sBY%VVyYCF?jT|V40(mEQQUja>Rx%AS; zrj3<7Ryu0aj)r5c^xjI-tqDu42}`UAO}8dA-I~yJYeLhl2~D^1n^^%_8$eb-RzTJS zkQ0y-kQ0y-kQ0y-kQ0y-kQ0y-kQ0y-kQ0y-kQ0y>kQa~_kQa~_kQa~_kQa~_kQa~_ PkQa~_kQa~_knMrrHa##* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d555-7b-w b/usr/share/terminfo/d/d555-7b-w new file mode 100644 index 0000000000000000000000000000000000000000..6981c94b8861abb06a2a652e6712eab6cae7b5d9 GIT binary patch literal 1564 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 PkQa~_kQa~_knMrrWpOZ6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d577-7b-w b/usr/share/terminfo/d/d577-7b-w new file mode 100644 index 0000000000000000000000000000000000000000..d97c6637dca3a2d74af8a5fa61845df3cb36e6b0 GIT binary patch literal 1564 zcma))J!n)x5XWa{6{BdP2r3@R8S`RH4D82!7+;KuUPv@X)F2olXyP4unv17g?t;V* zR4fDw!9ujq$|?$iorR!<2o@HCg?V9nfcoB-*3)e`S0;g%;5kY#$h~xr*Hx%aT>4VExd#G@F70NC-@v+ z;46HK@9`sk#;^Dtf8uWxvQ9S0HFAS&l5Nt+4%sdHL!yG5aVDP&f^WL0Jd+FesZK-%o|z6i#iZs!->Rsgmq*^~6XIiHn02gHTU7 zU80l0tslrYjcABs=HBQSzT}_PWkbWjpb1p-3r|CT#8u}@k zQPo6?a-Zm?*iYeGa65HvD5Wnt(aMW5ES4q3l4i-UWLdVebU1N6=O|pCJ+O?jKN#1i zH-odrVSUAI#v8XIZ`^us+(*1|M^&Uqxs;}Ka$(2ZZHhXb)2-WqNA7apDW`+!pkl%x z3}|eEa>k8Q@tEcaWJCR=g~I)X}lP-qB3+JrKEOok85@M#%3tusw$8^<@5 zHcxCl-&WZ&*<5X@1yik%*qVu(P&z(nUZeShb$r79vzqTh^Cf8IU(w3HqLse{t^6fu zHP-fYjBmz_bFa-d^SisV85yQfhS?4_+jVVs3`0sOr9{+1 zYPC{ItyW422`Lh#lqf}tQc5YM<2~mdCFCz(=Y5~&d*1i$d%n|`D@&1s3}nivNK09H zc}dI8Ud0L@<4vh1tHw>ZolWgld|5+n^*SrAJ##fxSY2*stJ`I@Caidk)v>3=g$RO` zhM!rm2A(%r1Bht$ykQuQkr<;q3l<7ch+^d>h@ljf%Brw9=v$6j)CFvHkUeh=8n8k6 zCTtCrHY7rpL|4Gh;9RKmg?K^nQot{x9|O38tGI?i4BNeZ{@vwluz%rplZ`NmYDRbAzM}o6XBIdT)IX?y z?-1Av9tMwqNlGQQZ zC2NRnP!07#l7i(o0N5Vs2YpdW_7(N%ztVHfNr_bE)s^bmXjlj2T@Cdp}N z!bS4)a3$+}2R~%)D%=zIEBuyq{>bVhs(*@q3{T-X{0%SRU;5a^YK2;()+zp`4Wdc1 zDXV>1<=NW~L-PS;)v&6N8&gNrQL3l1r_QU3YM%TRbuH^KkXdp-CeCdqot zlO{>OD7$w*cD~26Z+qKr+=t_M7{A10Si`e8i)~!MZ}EHl5r4w#cmr?ZZM=&=<9+-E zAK>r!5dXp__zYj*Kllnkf1sD^)w)-2)LZqCwz{axx}rz*0ewV&rH|`VI(=_bFQ)%P zZqk27GDeH5X_#4OYO$I1rZ!5A3N5Z7wryA<#sy0j5dV=!7t-RW*+PpfR>vWv?;E=Ns*#IBv2bTOU2ILEF?vomyGh&`P$Y3H_8 zGRkh6j6;WZ)2Tpb3_8}j%cRb-S}z(zBhi9rQM4qwLv)yQ6gpMt?19b*EF-RD!dnzG z(KVcnbokw3#=EB4HJp=-IHd-yh^0Vs^36S_`-@`x+Wz<>rE@ltTVF(v%pWJcNKZWk5Kju7&fh9kEus1O-vzqiONfCUIOzJ*x9Y;`kI@k zx6BM)_^35-slUB#&dd)%r@`T-5zD`^$X>`^$X>`^$X>`^$X>`^$X>`^$X>`n$U(?K i$U(?K$U(?K$U(?K$U(?K$U(?K$U(?~$@B*vgZ}_&=|VpM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d578 b/usr/share/terminfo/d/d578 new file mode 100644 index 0000000000000000000000000000000000000000..93c15357787f6ec9ee4497d595e905cc5f9a47aa GIT binary patch literal 1470 zcmbu7O>9h26vxj!SA2ywi1?VKs@&?Z@b0~DW?FB2OgoKI6CaHxbRngUR;NwNn2KN{ z78YV5O(bt+WyQwI%7#S3f=Jk~VZ(+Ekq{Z@oOzRobR*v6{?GrN^X~7?`_HUbEwBbO zG^yiyB$MmBR2;4hx9%OC8a+E)ZY>rD`g)JF7HI%Vfn4>{Pz8seR$EI807+}L1+WB` zi(3J0&< zPwES*uf)HGx9}c5!e{sjKLFH1wM?y4{GC>d()UbiDycl1?`olWt4b@UB63AlQiD`a zB)i5`SoWmIJ;9b0j5AY#A!YB9)U*a2lhad10e!*|}6O~@1m+Mt} zo!+30-lnb2>7BYq@6!i${oJE^5&a)hLvBAwKP|3i+)P_D5}9ddM*67HO^d6Kf+{Q) z+beIYqB3?-NGB zU+=?*$|<{fYsE!56B+W}RB}<>hNhB9tTUA`vDQpy%q8AYe=5r(-a;WWpvzRUO=dJ~ zHW7v5BpN3%ISI&7KxZ~jw3RnbZkkHZY^!WJ-(KyQH5ax*JkDX(Bb8^ZglX$xGRaEd zR-(26Pi??c8*tP%;HYiDQQLr{wgE?N_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d578-7b b/usr/share/terminfo/d/d578-7b new file mode 100644 index 0000000000000000000000000000000000000000..526b9016e1349bd70dd5099fcd42d5ee340c8db5 GIT binary patch literal 1533 zcma))O>9h26vxj!*LSE0NyQ|L@~S1}e!S_F*PyhaXi~Z$nvm8^(xFp>F%>EyELd3~ zk=U`avm&vu5wT#!iWMttu))T2&ONV5gN4_e^Z%c7-+jM(&vb>_1kIqKNnO{aLb0o( zI6BokQXk3hDo>P8kBsMgdxm!R9mx06TD~%oFLsPp>iO!)QW=zj8IKeS)F7nkatZ*X zoTjs2J}e4u3A8{ftOrY#hb^!b`pEUeKv>-mLvSd#qamkh2`W${e-Ppt(Z`@S3)twnN_dcs{)cL6Zxtbd?yXj};U!CcdKegq* z-~4muzw1`)z!($Uf&Dm$2k{7&aU9R!dAy9*@CM$(yLb;D;6r?jPw_dv!Z-L1Kj0_) zia#*LIeL*^rgOSQw`-$|daLf!`}B}LtVi^iKB*h}q89R1J(vC;a>H&9rM(oaQ6;L` zsFXxC7nOEXV+RGRPfP>m1>+hdJGq}5?jhkAq!@rE%7rSWI4QC?PU55yS79-=sv)tV z=r&2WO}bsu9gpXRZDNxyGs&itnq%~WPaORjS}=`Vo8i6NDfUr>v-1)8{KnYxEY<`u zPQ;7EA_b97k)lYK$YvJ4Y%c|0um=`U4in)E1~V{i7#li#m|*xs!SMcI_#?saj4Bi{ zrvjy8bn$Szm~J-Xc1#S2ZM?5mh^C^tOQIyA+C{ZauH&qxbx*Z4i&-;{>IJe@-mp2U zH$~;eQ9@ATWGqgGm|Z)ND#gjcKyuUHd?ZcP}vHDT!1grQp#hHm9IvjVaHP-fYjBmz_bFa-d^SisV85yQfhS?4_+jVVs3`0sOr9{+1 zYPC{ItyW422`Lh#lqf}tQc5YM<2~mdCFCz(=Y5~&d*1i$d%n|`D@&1s3}nivNK09H zc}dI8Ud0L@<4vh1tHw>ZolWgld|5+n^*SrAJ##fxSY2*stJ`I@Caidk)v>3=g$RO` zhM!rm2A(%r1Bht$ykQuQkr<;q3l<7ch+^d>h@ljf%Brw9=v$6j)CFvHkUeh=8n8k6 zCTtCrHY7rpL|4Gh;9RKmg?K^nQot{x9|O38tGI?i4BNeZ{@vwluz%rplZ`NmYDRbAzM}o6XBIdT)IX?y z?-1Av9tMwqNluO1Ivb`t?mlt5EgXk@{WFmc2re1s?3*-}7B17Z> L8Sjz`;!$P`Onn9D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/d800 b/usr/share/terminfo/d/d800 new file mode 100644 index 0000000000000000000000000000000000000000..7c605c869b6405a8887e197daff32f3216af203a GIT binary patch literal 574 zcmb1Q6k9x!oZ-$C9^0sxkLfT)OTcHU<5)4U_>yXA~1?EfPsTSg5m#v z1_mY|`Tsu)13!Z>m?h4j0j9Npqz;2IkThqo28)2yIl);V9t5~E_y9!%8A73Qkqog| zRKZk3=tQ`RR3IypA(x?$p_HMLp_ZW$F4GESbwcT0xD2XUl<+1pOo5s@9f#>N8Q2+k z8Kk2Ptqnb-qm8_POm83t(W;rM1%|3A)~W?Yswo}}T);4ujS0pd^~4g=zFpdJ?>hMEdw`Z91bBqSsnrd6aD yW*B5eX4~gP8S1;!V`B;*BI80oaqN$T(+lQ2=R;Ks%1g3KT@rnaSnfyE@c zaLLjwTefWZAtolo#Gg{nyVJn|T@d2Ro8EKIyS?YV+qdWg^$1hAhmP7(hw;ZWZT4E* z*+D1n)r3l$$-z#xxms!_aW{!}N)MY!lw@;&k_Qsh!=dtg1o>ZM1j{JNJKz>3a39l{ zk@YMpcuKV_s~WK`D$myoepPUPhBR>>KF`=4ORDt^x*wfJ}i2A1%JjD z99_frwdgs<3DxNzjx(uzBYwv@e&8oYc~fJ|evGRLHL0|kzNqx;GivTiW#IV#`0)+D z)VrbYU)*3-t*J5ShUu8pF|EL)Wz))7aCZrH-FQxV!L)p-sm{VPrsW!QmAL}_wjA7{ zay}6J3-GM^ou8mXdPDj``a=2|OHQO0h1@gzfS)|L22%d!}7W_7$ z(uS@;`xu4ZVE?>XGU5Lp6g^KD)WF16jxqy&pG$zp7&nfA~)3W^8J1?s+v+c8|nUbzOn9f(quP{x1IS;8mIY!Q+fa;4blZu_Ow&>=hVWv z&dBlq@!bo4seeJ=zqr9g^-xVgw@u$&#W?SM~4;mHUB;3=BWI2!BK!n{vgxy92Jxg?X zF~PTR&qB~6G m5M|7SYj9=3nCRLI@q*B=*-!H1I9B82og|G5V4A|gjPU-@YyD3=@LF&SQt2tQTC%>6_b8l`}mTpW`@C6?+BnqMv{EDL5jFZiF^6pH# zTi=gQkAmm9WarFgc-n|JS2DFQI1XEl%v3uJ!df#9+l}c=5(b3*!4`FIi8}hBpjp5N zjNmiIF=6LP6!DE}(M}~|*($BqQr=G4q_y6`F7~Z+korFmyx2(gw2ph+lOFx}{55yd zoo>p1aE9|YkOI%T1|ChM2&Mol{fAJ6Z7!X5Lp6g^KD)$


3~jr3qU-&l9rX|k8b+s<4&jnjPIDLsIa2NKkyp^#w=2E`v@3@dQt z4R8fhxP=+aN__`)JfvEYszGduDvGBSzo@ue_9b3nOFBDM|1FYp6T|KEk?#J89=^ZG z{c2`V@kbou(_i>LS2IWWLiP1G$2aL56Ho9Rr}%+!RTLAR;0LFK%#AJyH|UEz>iZYdWFHYNnI3;k_X=b?Y(d3Dfeqp(Yz^Ov?@C zI&&5JbuGL`uZdL#NG`Xc&T%WkZfgu8l?Ea$Nsh_E||u-k~BXNfK^ zCioWaTL`*@dKbD59bg>#8Rr+wvdJEp{m?a`l{HGgl&;A?xyR%^ mL>V*T8eCa0Cc5@Qydd-!>?e709IO0F*&hr;;i{xr3cP1 z@&ECPn1*bqJ(aks6{y5ht&~Rb8=)#2TcjG>@Yqt7#s=GPg}ups2l>SdCaK&W!M}r& zQTKfe88RC(7cv(z*I0MEa?Nr_u9EG2%mG%I6Ra@DSi#I1Q^hW!WZ;znze6Z@Aj^-=Evv-v-S2|MCD_-2b;qFXax N982(9HtNF;ZUJ{mDW3oU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-128x40 b/usr/share/terminfo/d/darwin-128x40 new file mode 100644 index 0000000000000000000000000000000000000000..236e8460e599f5244a3b6b34bee63baea0dbd6c2 GIT binary patch literal 1217 zcmds1O>5Lp6g^KD)7>bC8gDxboitAKMW^%tN*+j1kB7n`Ca{3w4>5sN zIPwO#gc;nx9Ok9Ig$C|ZtxDA-wnP=hlZu~LTrT?pFR>+^ovQx^$(f1K_W4+Me@u_w zpXWg}GpzU!AMo)nd`H#HF;1vH{pR>AoiD_%_=fNJfk{;qQ_M1^)r`8Xw3<8Zl>K?N zc&;;Y{C|Asf?w)i(DyHHa7jH>Q_yYGH<@d?p~>o|o3r7)CbV?>5$Q40@|mF)8*5C< zP3AiD0rabSc!kQ{B?PD7TlFj7Lr3&R^hNYV^tD&qST76r^b%RlV>b|CcMxH>5kb!~ zU0zJ^E!?#b^aza}bOSoTB=l3x*UXB^?wS42HKCPtO23q@$viV;9hi{kYvC%7^Om{C oXWhM{m-)U!?e1d%22`v3p{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-128x40-m b/usr/share/terminfo/d/darwin-128x40-m new file mode 100644 index 0000000000000000000000000000000000000000..7276a978a9a0e459592541de6acc0ee3db53e7f3 GIT binary patch literal 987 zcmds0Jx?1!6r2qO2@;{8NR(BCCA10@7My*-mM-Dbg@qH&q)FkVK(@(&?7Pd^2p5*1 zNSTtBHf`GckVr@M{~u_xq5WkPU<_kW)$|KPCK{Mjl!rIBvH4$oJ+%ius_(M9xri@$5?`9 z0go_`=UBj^onN7hH&mN;st~JIY5gwa4;h=Z)*tZ+2i7^v{9}X@8|j|b$(Y+8)3?v> z^B~(9W_*rs`2HWci)`l-Kd65GllWzw-^43i;}8B~Mrb|DPHRrgi)TWLg*zwp7sc{D z=Qi>1cty-YHq?=d9o6zwTu`lqM)3=wDjU0`8r$&1QkBLw+i-=w!`_1YT=1r;oGzhs z2d+`0K7;g`^_laT^O=2!r O`QliD-?CAA`?vwaBPq22 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-128x48 b/usr/share/terminfo/d/darwin-128x48 new file mode 100644 index 0000000000000000000000000000000000000000..844e2c9de87506b5b6aba4eaa5af2a80123aa473 GIT binary patch literal 1217 zcmds1O>5Lp6g^KD)((D42qO4X;(0fjI;}3Gxbl*F&bc@Dy!Y}Jxu(`}9hWgsTWXl@=Xv**+YE<( zIO=T|2ZMB6wWM-3vxA*tbHnLo>28+nI5)dlk`)V1i&U#pwTNv|W%;n?CpA~gKE*R^OXo%1e}(kK#CZE+qPsVt$L~+` zu$~#!e262w`wQRudgcQ@QhoZ(@mV@wh+pvy-|+*}sw`)iRa{cD>Wb28?zmI+=hecg z&e-w)@$EByseeY_zqr9Abx+Mecg(=#uIWW4Z<=1ghWC=t)}8yL2TaQ+hT3ebGcC86 z8_YH6=gsH>mHV0y9D{GwuY3y~(;L$l(-+g%S#cA+EZo;iWI2!BK!n{vgxy92J0paBhEL>iplSqy~s6@l}$>&lCH@;Gh!W>i05nLB9HTixy$4| m#5ptN8eCa0A-eWLydd%$_LDq0j#YlG><@;aa9-5oE&K!_gz_5z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-128x48-m b/usr/share/terminfo/d/darwin-128x48-m new file mode 100644 index 0000000000000000000000000000000000000000..4087dcc76b7ad36e0ada3a9f3c76e0b677cc7bc3 GIT binary patch literal 987 zcmds0F;Ck-7=2fUQY6}ep;b>6k)jjLfQl1CESUmrGDHp3v5)05Q z;0b2%3bV-Dc@7?ysn+aNCDyFcdOhQ>8Jo1$TiC{~b@np<8^Q-0>7Lffn0qv)Z=XNr zLAEo@c!X2@_=nujZ08rwsLuaNTv+Flc!g`+;5Vj(*3;~?UWgg-Qb;j-=cImK6dpOZ ziT{t^iD}4&>Z;gLEnme&)ko?Nlqk?+a&KIQ-`%n4SQW2|6ig{e}H;2KyoQ0@@C4x|TJ z#uVfR_ZQTvikH-p?h)&&n NaV)`a*{IK7@CP<3Db)Y~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-144x48 b/usr/share/terminfo/d/darwin-144x48 new file mode 100644 index 0000000000000000000000000000000000000000..4791612a7af142694b2f19a392f1a7700319f54e GIT binary patch literal 1217 zcmds1J#W-N6r6>E5GevF1&9@jrDz2y5a;uPPcr!+If)ZrPG~3&is&wIhm38Upj>eh z6qFPcw6wIe{17B0gv3uVv(LV82^1)z;>mAj-t(K?^%lOM)^QPMF;rV>l)lXK-WA{4 zk!_9p+r|Dcom6e9yv=NXr`X)^dRe-gB|F~bUY2CVl2>^EB@ZO1r$gZ#X3#+ShnT?{ zJb440z&y@l0gF;!LJK#j)}(3^JEF?+Zp{yBu9kg>N7$Cmle+&5>7j|q_Qh0pZ%R+z zALUU!Gp_kH-r((D_}F@68y2A9<>H3!`_LzDZaADO&q`UM-oQ$j~~Z)@J$a6o7cpj*%(W})wKzF}5Pe%?zWx<5#y9)`z$Tr+31#%pxY^~f6hM{m$)cq~|1WQ)(B>(^b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-144x48-m b/usr/share/terminfo/d/darwin-144x48-m new file mode 100644 index 0000000000000000000000000000000000000000..a489ec63b23c5a6cf892f4a15cd4860cfbfe17e8 GIT binary patch literal 987 zcmds0Jx?1!6r2r35+sv?B2iY6Euj^mK=IiJwseG#;KGWN97&VHNnzPeOl033XGgfO z1O+7pMOs=~T7C!;5<<#P+05=8U^`9fJo(Mcn|pJ+vUJZy4KFZ*IpK<7@H2{<%Z}>~ z-STp8)M~{0yTScjv2$)G+;7J_+qq^K^uumD_p%oTVY3s5z4lTr2?N6ZV2gUZ#0efD z56uD|U>?tq#e$s|QN|k8rkyIps#RLQOZijECav{nd_luH-%|evf{Be}PwRNh9gOMQ z=hHk)cSb26;t0q8ko%SHoZ^h?{IA4?buNilxW)~BV^(OLVJG!O%!{W&itL?}_zPlb z%DGMafBZ^hAnR&ZMUHBDDk`W}Or!XnP?hz!q#E1s#8Q>U8@AyJdz-xl`L*CZq;h(M z(jB-)-S+{c&#cd!&z#R(eZ%R>b;}+3nr!c54zR+UV1+rx3TD=sDs~C3ffWO#4x!wE zEJKzs3;CY=d9|UURW<4n;jxwN#y;10s%19Lc0DNhG53$1O{T(4k6N5@c-GDQbpD z?ZC*$ip0dq$_GJ0LP&fR_ubhkX<HIirG4@DA_)A@`w}^AVq^zWkB+YMgJx@A!eA_=OpfWwY$OZi+cEFQiyHb8>%K ztXy!$iL1x=FZreJC3FAd25aK6n1yVszDjJ>^;J?<-IRv&iqMkn4bl^~=5v!;H0o^4 zO?HF*2y&< zGz)l!45l!HS-YM?8Ov13+X_|H`dV+M{3&IV*7`HPV9z@Hss9bZy@_N_>v+WNkLa8C z4|$Nz3{(DrpZN73x!>u`ADmL1JxZKg=Yn{ND_r9*#)Z}s?4(|ajCd`in7MTle^%rk zI5&x>$BSYDvaSwPmNm*V*qOck|v0DyK^* z-GXb>U4Mu4nf00Tne&;euQ?sLYPl^}$o4#D11ro9R+w$9U}lx6LWkfQcx#~4CY0Nd zWyli7A-6ccq}EhaRDI7;o{@P7Vmq01= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-200x64 b/usr/share/terminfo/d/darwin-200x64 new file mode 100644 index 0000000000000000000000000000000000000000..c3f13da7adf9b15f574474d89a2a1024d6b98802 GIT binary patch literal 1217 zcmds1PfOfD9DUOsYz0y9(9%H+$e#=trH5?~va8)KX%eI29v0d| zk3IJ4wbx$#2>k#BK?FZa`eu@~>z{*2PyLbKdv9Lm%}nNyXJQ#+7(rWXiB5EwB#oJJ zsnnTsyUp$Ns2%l2RWq_SAJGFOc0* z+PBOb-~mSQ6yumM<4II7PnGAYR5jyg*?Pfm3eJ~(i+9*I&TipkDx_-!17+a?EkGatoz@Ff4(GM!nv`9|ukHQUCw| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-200x64-m b/usr/share/terminfo/d/darwin-200x64-m new file mode 100644 index 0000000000000000000000000000000000000000..e962810399c6d56283477ac194d0b372a70b7714 GIT binary patch literal 987 zcmds0F;Ck-7=2d;S|ng#Xw?%U5;_3`B2HWq$!(w|Lqu9kyL3nyP!gJ;#C8o;GDL!b zk+Ex6R#tujKL7~{A@Ng=cV`0umd^d;@4a`=-}9X;-CI$`G)6EXT+t7HM^Sw-m(BK< z-No*pu^so?!Na<2*O|?**NivUGW9Un3p>rsd^ZfjdMggQ&4o-7284ZJi+Z@kIbLEF zngzVT6y9J4vvxg)BHmLaZ_88_>udcvpQwASD81KZZwN&Q^}k0z2it>Ynge@NfG zf6D!IW{~nBj&S@Bxj*U5Uz|{#K1-Zg=Yn{ND_r9SV?yh3c2bjKO1u_Q%-lPPKPwiV zICqKvkC((aWKFeI%7wFZLdr|G|&g0l&d7TkH^> Ps=0A2!MkkK##h_|=rbw| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-200x75 b/usr/share/terminfo/d/darwin-200x75 new file mode 100644 index 0000000000000000000000000000000000000000..3c069905bed08c7f5930bb30816cfbe6ea382e26 GIT binary patch literal 1217 zcmds1O>5Lp6g^KD)!Ac8+7o_CX})9ONsD=)d{oO^T6doOR1>uL?NxPrdgQiJ48mUV8` zYqdeJIP7lc2mNGJHKlSk(}SISbKU8r$zB@oI5#_KoaPHo=>e2Hkf0t9h0mD428ut# z1Xkh58{h(Fa1C>qm-+@8xJ$JvRg>5fRTK{^eo}F{>{C3$wsc-p{Z~j%O^mkB$GZDt zdi4G*52~4A#qaPQhkxNas%DPyf$HOLj!)A0Li~zv_>Lc#R7EkxEMr>DsH;k=xsy)W zpH~ZKIwQyb$G6YU2)m64 zdY0+(VuEjB(L&H8GR_Cwc%R@N!~Qo1Jd%#d|pLY}XM%RJ6& q<{p#x5M|7SYj9=3nCRLI@q*B=*-!H1I9BD3EP1$iBOriEv>F z3Q9^^T3T9uLVf@eQWPmaWiz{XfPscOPkuA==HA?{EZu9-z$_*(ElOe-{EVX3d?BA7 zy5;%)sJ$8Q?*zAV&Cc1iaK96;RkN)y7=*n}_H925!d5p9`<+}i2?N6ZV2gUZ#4kKU z1DXXq!33DK?U!rmhDs{)~(X|Q_5dcHfgQD;X5|1vz7Y02<~hods@e1?%tTb zetw^a>CPzSLmc7w5xJ9e=M-mD=MNGW*105J;Wz%^FD8Z7Q|zQ(h#B!xNRhd55`RwQ z?m5?q|Bv5^DafYUQIVtCo{9>p9n&ao6Y8@0kDV5VF zxHnKT>b4IceP(^;eCB-SnoCYkE?Vx&4`h2EbAT1*1S`xjRxq>3RIx`W87LcYyM#&? zvI6O167n?)75Lp6g^KD)a@C$;>ye1bI!f*p7&nfVy>!nT*D>w)s`A0Z?dd&v$j|t z+^!G1+xbC18C6ZGoXzxLC*Ry~I%%?(#yif9P8z5Ayi*rrDt=sXx$P4?#kO>ItNu$QCniS6=VRUdF+Ey8 z&4X%YSn)f&$KhZ2j;fgt_(=8XH^*n`d?9|tH+;trOsb-oVwN$jX4GY+)$DPn?9ZwB zQ=O6H|KnR{{8ImnzJKw8OX{wgf^M6>$z0P7O;$7AoDJ^Xgf(Uzz2zr+3 z@?wH-VbMa+BQ$!@4d?)q&<{DkU{*|4H~XP$LMv;Oekom(d1lBuFd^^P!bM)^HFJ;2 ncZf1(!acaNU`%xFgLpycFW67=@42AQe9&O<#4@U9Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-256x96-m b/usr/share/terminfo/d/darwin-256x96-m new file mode 100644 index 0000000000000000000000000000000000000000..2c7281a533b7d12605ca6e58303e6cac6b3c121c GIT binary patch literal 987 zcmds0K~EDw7=5D$l>|I+&^RG9X(qs-!EH-hvPyyW&{$xr7Z24$(pC#;cb5gz9-8QZ zBS)@WxpL))n3xa~f6Dk~b_=CmJo}~Jd+&Suy`4#ueIe>tz(dT5ycqgl!?2aft`&ys zg-n0c-j43;Ytfb;FAnXses3%K6JjN$z z7VrS`c#cJ+?Yx8%UQun@sY5DV_O0_d@ekqO+lcqHjwalb2|a#3 z&BJ78l<;?);_M%C=gH0mE~&2mN?cp#2k|Fv@C&~&Beb4n$Msaqi)TWL#ak!#(_&@H z87KZfUKO*DO?99`N3~rQW>q_)k^4fZ$>tkUoo)EuQjNwo+i;a#VQ)cx%({=LoIas= z3wfjN`WvLjtjC|HN~H><4tzYJTB@F)10s%H9LcmPG!hZCIAvi73{_G{kg<(h)C`g6 z(2qoSzN~)=B2)k8Xi!sNYx-VMHR(b$L`W&bUbQxoIu^NH@xgdV>? z%Y$-eSn?kB@#!yopUasq_)7KdH^+f=4v9xN#&`U{v?_`j<|wYHS#?cmHFwe(_2<>X zna-@mxQCG}X%K(|fbWUlFkCaaom&W87f(A4cGq^C^Fr-qtrJYrgI zFjtump82og|GBw-a{39Sf)70x!Xr3(gP7pFLIh9-rR!m^zhWZzv5kX=|x zijZUf3QV8Sprqe;yE-6 zc!VW9!wOdIyoLhaQ0>^MO!TbM`hCKO37fRmAMg=%>wHf9V+2zh!#%Cz3HNkDkDfo| zezG%2_&a{!{2y``$<8HyQeFL(xVFv>@fN@E8+Vu!TFHqaG70V??QgcxHD8vmyjPr z&ZztT2I({FGv_nsGgsSoIT}Qb_W+-z*>8L2H2AuQC<^4Q7;dQ>UPuTn){D>X!9elIJ4$-NY NPmU${B^$MWfIq}PDB}PC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-80x30 b/usr/share/terminfo/d/darwin-80x30 new file mode 100644 index 0000000000000000000000000000000000000000..4f2ec6fd3bf25c76f8480a6ad0e731f891ab9ff7 GIT binary patch literal 1213 zcmds1J#W)c6g>|HN~H><4pclrEmcpYLq!}L9LcmPG*TnJoU$;a3{}#SAY&W1s2L*B zp(7(JD=RBM1PKWt@l(usH%>`g22?R|<$KP#*Y~{l{03iFb=<&J^wp*sByY2)*w9~m~kTROXC{}qxG6XWgkiSGV{9=|`$ zgK}nA@*$4!{x5tV%9)S&MD_WM* zb;geWk8hvzOZ{{D{>2Ths0}p(-8OxbxuzSMtZKSB8{SJoQ@0z*Z{hf3y0#NX^VxlyUVtuJv4y> zM~_~;diClLF)<+|{*>X(bg89YJoBaBd+&Suy`4#ueI`7tU>=V|UJQe?C~9mJGs9eF zqdRKW7Rl`9mu5PCqVbBXZt<+jK48le`4!f=Ol#K$y{$PuGx&*3Nz;kF8 zFo$J4#VXQvet{xhQ@ycMh3HwO^IU*Hm7{v-D_+4+X=R6qVn{It$5;%{8x8h@}Tv|eJ5>#j)pS*qRn3@2?lZxYwH?wf+wh$wkH$N;;R<`3{TA|5)_p+bbP0tC ze#8#=4!+r9hv@8@ OPmU${B^&kOBW?hxK`7h+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-90x30 b/usr/share/terminfo/d/darwin-90x30 new file mode 100644 index 0000000000000000000000000000000000000000..68cbee6862daecc433a6e5be379392df43940c23 GIT binary patch literal 1213 zcmds1O>5Lp6g|%_S_{QO7mAPCKzV2v;$)IGBe9)o2ORuL>qc;NQD&+$5|fy=bQS}; zaOu*mTeoigAwr=D{*-v$olKop7gAh#$vx-Xn|t1Sd5c_Db)*Y^Dc0`R0bxPLtg<-f^zA(>TqS9B}|j9!OA+hkA-BTtV@Nn8G?7 zc>|oo94=u2i&9@j4Y#P)rD_nHqKe`{$&X7OF8c(}uq~YzW&ahD6BDED^Re#Um>#`9 z&HZv_Q1Uyx$A`c0eJp1_;WO2j-yC11^No0jBYejXOsk@pVGiShno}2*Rtv|SVSiCA zo$8Dn{~zBt3)%p+Ul-K(>iN_TA-dWEYl_ zB4x_7Y15|74~Y~hio{P@X4i)?&`|T_H#2YU&F#w4%?S_lc!VdSAo{_16xA{-*?vBo zX%Fhhaql!3jb%HgD`Bq@S2ohMFzAG>MtZRw24Srkhwa8v+C~9kf3QV8UIK@h#0zK^ zFo9V-M+yseeu)y^P`$NNndn)i^>)Jh37fRm2l#+v>zpM18G;)d!#%CzF}FLWub$uL zezG%2_zS+`+dXpMlbs*oeyw=QCGbcUp4Ia#OC7?S0GvR+tm4FvnQI%o9BL+Pj}uLhip%H{n$Oz}FO*c~?i2R~v5d?5rwd4(HKP&()jmcA7Tl8#}F+ zy+Nl-Qx)T^CWH0f>Wb4$y8R?xcWyM3IO#cq+oJQ0ByQaVlsu54A1{S0n6P=L`8OzTrE5;H=8BX<}Fx)Fm~e=G4{0&aiLP ztz(^0;{Q|kgkQRN!rZ^O!HT-C&Oz5r$E2=lg(fYSR*wyDgH+S?2b70|)gzN?Y}_NP zR*4njF7#ReZ0Xp>59=n`~*Dd@+XzhEjRT{K&vS2UsZ1$uvIU6XodhvUG6JYWrHc%Iip ppWsbIDbeL3Tv|9LyY@=FAoLgPH+ga%>-^l=Ukpp(w74fv@e`C*_TB&h literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-f b/usr/share/terminfo/d/darwin-f new file mode 100644 index 0000000000000000000000000000000000000000..835c991715ec8179296f60d9185b677eb395f404 GIT binary patch literal 1227 zcmds1ziSjh6#hmFqaXxq#6dg=gGmv{-t1*BtmdM*z!86J)J8b22zR;M!Me9@)Tjis zu&}VSv`w2fZT^seAcB9!`pw%txkL*IRzCK9-}m0UH}htSy`}p_Rc8B}N%sxIc$CcnNLc_@TF$xg&8%c=9Q;vzcNLBNi|Mo z#vT73ubuIx>u2oy7cclkb<}0(wi%k#GriEHRnyCuu-k-|Zm*N>(H);CYB6z_?zl-` zrQd<>RKp8Yw)Tt|IIuSKeG!YHu+xRVgO0dI#Quo=5&PQ>FV@S#1AUt;bGd^=xRXS< z<3zA$nO!y}_zr3gf&rmEfUZLaxCH%x^$Vt9(na$kv^5htU3HpM6_Mv6H*67FhJgt= wX$u!Q+;jR4ov#z6^n^R|9Ko3Axo5IL=r6d-SsBhLzf|t8LsK{}>fs~&1XNr4A^-pY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-f2 b/usr/share/terminfo/d/darwin-f2 new file mode 100644 index 0000000000000000000000000000000000000000..1400c3aade3e03d6a5fded405f07747608db1621 GIT binary patch literal 1235 zcmds1%W4!s6g{PjL_rX;36_!(DPk6Z^i;xT$}2!2OCfVdFgx3sr#t9Rg1o&YPg2W7^t>7h@U4(d$Cu3 z)oG>sgIHAEsnXVPzngB=O6_61H;lTao2_WnP2<+6Tk5sq_6sJWVY&b)_rV$Uq^T^M zM)pUW#yW1e9B>XZn8jSNo<|ic%&fa?o!D?H%kCHaxZr%_C)h^MMWP~}V05BlJix(3 z^yP#e=TGzNqULSE@9-WU{-W<=QFDkRs!zXle0Gs9#IN{<@A!eMe5pBlZr7Dj3u;k$ z$B{g~tb$XKamWA18)v-f<{A6`#S4b&sk#K+Gy{`(rW2T?Y&t0ec8Ac=&AX&~bm0?4 z4F>Meh3oVheFJ*C986JJ`;1r-uwLNj!k6VQe*+zIhmhSNyF+$2*StutI_~S+WH*%@ zBjM3g?}A_y|7%z0&_9DSpQRub*OLyZ$7iJ4dqja{HXvI@3xAf@eMFFjBX2C!gYcU?7bAkl+I zkG=Nl)vF)Gq)B7qN147ER*HJ@>}21cdHmkaWD^!e4ojHAoXCoSe;kI5x4mI=H|lqM znzA*?TF`GrwXI|$@DGD-EBU4u_(7u`1-(`Z5cYvx^pi_K>z9Pq;2HB+z%o|seia3* z({0*anOw0>>(8-%i`BHX{*E8mwaH$b@58@0F`Cmlnn;f({N3*lbr8=CV?D(g&Y#fx z70>*}1>NPN#+6O3$$#({H@HPYXgy1e)+;eDUJEIf$H^#P5vd2sUE}%bnwW*GtBwjC z)pS*uR?Ub(<|nBl>z^o9!sxxB3WJY?(K4|`e1P0ZyD#XR9w|Sjta1Nw0_m~qvFEYp zu~#oSU0Jl+mK#)iA9H{;<^*fZG1jnCWGmApWevSIly8#?ZO8&-9tp@VoPVcED$J=P z*HNyqY1-__Ix5VlA@_OZ@_rS}@Hz*?A;It9g@n&{@XeOHWT$HWa9je@)_vW^KOovB A761SM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-m-b b/usr/share/terminfo/d/darwin-m-b new file mode 100644 index 0000000000000000000000000000000000000000..fa4c97741d9d3d97354942083713106dce3d34ef GIT binary patch literal 1011 zcmds0O=}ZT6g^KDexOwmL46cQ}Gw{HC*f*^wbWIXR?Qqzjy+RNN?&O39@dyj#+svcn$=P{$^)VpLeO*^GQslC;G zm5nwMkqwdFsvY&R)n%_^lc9}!-mQU6Y^R^uLC+iA?bz66rM8W`w*e&&q^PG$<@rhE ze=Sem0mpC=mvId@WPKBL+^1TSRfE_RmFG_ieo^pvtQ|nbso%W~9Wfj+7%>!Gpz5I3 zC)E4Ub?6#SLqFyGJ+o-iIrBCQswQ;0OkEjE-=u-r;<{!+Ua*N%yw4l8 UaBIPs=&!iHk)?24)U)UK1u3FNrvLx| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/darwin-m-f b/usr/share/terminfo/d/darwin-m-f new file mode 100644 index 0000000000000000000000000000000000000000..09b00e77929ff81cadc79bb4e0e5ebcef95a2f07 GIT binary patch literal 1025 zcmds0O-mb56g{slYzq~ko6?7LKpyHM;A9dL8Eb5f5VUn{SB2n0@?nHzW*pmEMX-x5 zy6CdYZr!@=wm(D=MCi|$o_A+bqNUJvFF7CgzI)%h1m>|?!4xJjq1M%h@Le3Y3WGxT zq`i|I?uBCOVx6t%u#;@9I;|)?i25C8w!0Iyj+{XhMy*~F4LWmxk{=}KM?)b^?-GBD zX*mP#;2|F239@_!RV?vjMNaGFhPX6+k?ZSRvwPoQ8(pb{c|F1V8y&;( zTR-MKpK|?-FZlWobKmlwGn~_X|6}5ZR4&MuxWYAl!cl2DO=MxzoGK_+m48>V`l71c zsthOoKV4G~pqpmT#I9-kCN7$G!h*L;YUt)VWrMJKqp88dbHZw!SS6l8Zx{V>I}o?B&^YcsoSmU>Jp#^)qte-VVP}{Yh3c*82HjS{^UDt@V6bn7{ z(4$AMUcGwthX@4`{2kk8W;bnAgr577=VRWFd56G07aN$w7@mq%aTxB$akJ1Zw2NO` zjpSe_%zV{&Yco3Vlg$;Y8HIaM;9IX7LC;UZM$fm}jj;LI>PBJI>?Bdwp9X~a!36za z2&CyS@ld=pHQ*7RVH{J)&aY6x94kwvS|!(vOVf>9w{p$y{fKR}O(w|mF?zQ;`uh(D zvR?*#zkXMb@}BRx{=iQh|HIr#-gAmGy7PMz7bbH_{)H=C;|3EVO{a(~UI-IfK9Op&zD8LmwBBl}G4YnrS|wJ9WytNK zJ4EL=U2<8IW4ooyl=Sg0zCn7t!Q-^YX^+$OMLUoSMmutzYF?$+7^C+Xqn8=OnFUTc z0jZ>ER#Uk{s&pVLkY$WOzGMH4T2%2H)pH$3x!M=CFJ<1=UOzNDIy}HX|;BNEdHW?_a| zW@d|Ri7reO@x%tc?K-iq?&@??;W>!nb*hgY_7uJ&guotJTMVGUtaa(li7KOkCU0$q zg&uPs0}N9?$>g089PWFW8!N75-)&G?jr2ZRz?lbeLg) c4yb}IbOr4|TTlcVgFKMShQTn6B=$fJFQM=LTL1t6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/datamedia2500 b/usr/share/terminfo/d/datamedia2500 new file mode 100644 index 0000000000000000000000000000000000000000..1897702753778b66d4d2b97b3f444c26322647ea GIT binary patch literal 467 zcmb`A%?pA+5XGMcB@*GSMN}l*6i+I63yF}RTM%@Nmh8|$GUylt{o~vEg+iBt2Hx)b z%{*pw$$^IfUbrF4qc{j28N0LmoLyK&X-jsA_^KpGTX0Tn_d6A)9Ju6s!dn$ZPRVpb3*;9}hyMb!QG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/datapoint b/usr/share/terminfo/d/datapoint new file mode 100644 index 0000000000000000000000000000000000000000..4fa6a8499e83dd61ac333e0c6e523d05258fad10 GIT binary patch literal 371 zcmb1QRA5kJU}k7y5NAj!Fg7+bs7XmINi4|E%qyvJfw2@o5)2HC41@t=5X1lfl0eMB zzyu`!|7T%fXW#_0{{QD@;03by!8}1ADGU_{sT*!U6zFeW23dIqIR<$KE(Tc!4h9JZ HDIf~~-j4j$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dataspeed40 b/usr/share/terminfo/d/dataspeed40 new file mode 100644 index 0000000000000000000000000000000000000000..c9cf50f53f1bed50b6e834f1946d3285ec726696 GIT binary patch literal 524 zcmb7-ze~eF6vw|IOBWY)5T8PaqfXLGOdE$IiX9@wLTT%$63lHK3XMad9gB|s$Jck) zAok+o!Ta&~zW2U&9`w;ch);Z@s#b|ym&-a`$Lq4FiseGuR;o?H{q7$Zm|k zUf_$t7{;7&7z55BjyPX9Hb&rzyRM^%bHb70&au7lU+ztY9vd^lGixsm-FG_Vw}0** zUN@=0yK|iX^8LVuY0L2i%0Z753w0|q?u3eEM#CDprahJ)+$7?S7H9xUL1UqM_F`1m n8&Cpzt?6lBFM0nI$JSKx@(E3Z>f5WS`v)`=%DPeny5F}u(P9xe literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dd5000 b/usr/share/terminfo/d/dd5000 new file mode 100644 index 0000000000000000000000000000000000000000..97d85915c45c8af2bad50dcddf867502afc062a7 GIT binary patch literal 430 zcmb1Qlx0w3U}k7y2w_M`%_&K&Nl7s^FfgbAa}-h%OA-}8d5HmE=Ex9x$g~pa@hEh>$6+tq!B#=VHlBOM`gNw7Pf~)_5 zI5;>sI5;>sI6C@o#CMmEwkYC}_xs9wcL_<3=&%6`a04cBoM0Td-Ql3f%IX-M;5JVb z%W6y9O2L5i?9ljSn~-3@(Qd&L3j-s&_uN-Tnq6;sCXud zy5P_F5nRBfNUoCn8g8?WyG%vV{gi&l^dqV#c!rlONl$uBlDCB4;R8N@bfw+@`rEb}DjTlbryl-JrJC%$p@usiND-n?)fe(ab~x zJMsQ9AH;7#?d`m&iGg}5N~ft}nKGsn4(XYl2#hnsDw-bPbLkZppRxsXzlC*x)y6u+ zZi}CeRmZ9^pYq4AF^_Hnt)eRW2s(!n2g5@sd!U^6`pUrT1g;Wxx&t>5HmE=Ex9x$g~pa@hEh>$6+tq!B#=VHlBOM`gNw7Pf~)_5 zI5;>sI5;>sI6C@o#CMmEwkYC}_xs9wcL_<3=&%6`a04cBoM0Td-Ql3f%IX-M;5JVb z%W6y9O2L5i?9ljSn~-3@(Qd&L3j-s&_uN-Tnq6;sCXud zy5P_F5nRBfNUoCn8g8?WyG%vV{gi&l^dqV#c!rlONl$uBlDCB4;R8N@bfw+@`rEb}DjTlbryl-JrJC%$p@usiND-n?)fe(ab~x zJMsQ9AH;7#?d`m&iGg}5N~ft}nKGsn4(XYl2#hnsDw-bPbLkZppRxsXzlC*x)y6u+ zZi}CeRmZ9^pYq4AF^_Hnt)eRW2s(!n2g5@sd!U^6`pUrT1g;Wxx&t>_Nh~QXR>;ZBO9iTc0!9eU$nc*e vz(AsUHWJm7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dec-vt100 b/usr/share/terminfo/d/dec-vt100 new file mode 100644 index 0000000000000000000000000000000000000000..1f428c9ca8712ccd518c1e2c389396b8b068fe23 GIT binary patch literal 1278 zcmdT?OK1~O6uoZ@v=(h}QIHOlF7j-1O?OhT3R= zjVqb#^4XfFYg*&NTxzP<%Q~g3*H`J4T5q;kb(Xx9a*2q^ANdCX4in2igCR zb^YV>^e6+$ppsJB=p?CWzQSFdXKe09d1eDbEDtlGrY}a~rj`J|6p6=#-xrRwOrR`5 z9ij){tC}8*#G|4*C4DEDSqvn-MXW!F;VWU37sEk$tH}45Jv|C+0W&}yxB|=qR{;;G z0yV$^Hi2AGzmj@EJx^{<2ckd>FrdpV-~ykZ(n?V;(is9}MZ*b4nxh>)-sNqwjVlrj0f z;a(@thPmzUWP*<4an^wffV-w$phSy{OG~+2KEJxUw&pm+VyRRvyYBk>#zv*$dDUvI zwz*laZ*6UF@9Z=hySsaPc!s1^kQUqOA5{l5OqztCx865iGd_z97Mva`iAtWfH9Z zK_t@XD4nJbI!j#Dd#IlVXo$v;U8ZU9HDHczs?iu_D6f?37FDcLjqcDr+NQ@Ue?~9q zHN9zgJ|cbvz5(AGwI7H-8`^b$k;Yot3D(YB_Y~`3Ue*P54ln>e>t|s^`3*PX7~%wr zu-QglA9dXu$mdytKMyh_S<)7iN|7a%+J6rAi=6|OwC5oatQ<%vpHRlIKZ6Bz-8YCGu`@WB z@kC{2h?wJB&)U9HCSFYWocQfh%JEekL)YP+RR3yjL1O)g{7YdVi_8F5fmu|H zpd2@P757ONx?)KqKtKw=r228~v_W=S0489OXB0!~OmYJyruKw9mZ}WxiOD@7msUe^ zRV8F6vw$VZFDY!|(7ogdk_UFVs?NjQ4sa)A@Q{=O(yB`f(qESbw@qF{9^|3CwDoZZ zx5HCtG!NA;X`GHxEEbQa(+dlWi%UznTs~hYEHB&k%1W_VDmhNMT&Yy6tE+2k>+2gE zwc6(9mh1xVKrw!;M|N3uG%8g8gzBHA3aag*u2uJhYNV;`rjQ;}c}(Ro7 z@Y0J1J%|Wi^r9F41_ebB{DV9ge{Yf&)FHo*_vX#a&Koiyrs*UdqSv$<+lXw(XcfK1 z%UuVy_hY#6i7|bC4mElyECl7sVqK5Cuv)1Ve7#YL%DUy~ex>H=L80Uk3H9re5F7$C z)JLbNqs9THL@_#!+&Mb0;)|4~t29Crh;Gp|covwa2lNQKM(fms@_3^38ST<@xR>-w z#c$~yeV|Y9pMh^G*XjI%{_c5ROM;olLAX9~R2+kz5CcLN7kYD-dTR945os|Bp9Lnx zjF{`?yZdxH_Ypr7o~Vfi+*7eDUO?acQ}tfOAH^5wSMgo^5I@D~Sf_I)b{72qF!r;H zu}Z9;w7jgyz?4N-29_*_NZ2J%R?FXp+yPksD$3Fkt^hJt(#I1hQ-+KI*MS*e3b5ik z{aW6Px3QC!kGDx1G>}eKK_-*Kt5WO~IdFqF5LLV4`0$pRvUo0^NtWZomSH4D*z+uJ zI;`n8HO`o2knMvUrX*8}b7_$2T26@V9M|M;pX3kE;jkROHg^}81@2+SOzkkI6%R36 z1~@kk;D$NAVaD{e5v67A8U;%xU;#GZP``%Syy`2rLYb*O!}n8}(LFP{XZBZdBUOz$ z%l0YJtOSXAxe$7ZsPMS%MG5?$3^X%MT8j8M-rtZJ8C;Q(Yf6``1?zOJ1DotxQwFwd zAx=rR%4I_`!ox@pO_whEi;HFHF!sayp%MIirYnnCT39F)mX=DT<>i$X->+6{wbj)i kSX&FjdOeEP*EcpAjm^!it!8t3yVYv9cer_Y0mVN30n(Cg*#H0l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dec-vt340 b/usr/share/terminfo/d/dec-vt340 new file mode 100644 index 0000000000000000000000000000000000000000..b8854f65fc6c10bd90de9bc5b627c8321291b282 GIT binary patch literal 1055 zcmZWo&1(}u6n_&1t5^_J(5~o$8SO#Ie#NA2ZK`cGXxr3UiWrf`W}Bqlq}$E5Y15>7 z@Y0J1J%|Wi^r9F41_ebB{DV9ge{Yf&)FHo*_vX#a&Koiyrs*UdqSv$<+lXw(XcfK1 z%UuVy_hY#6i7|bC4mElyECl7sVqK5Cuv)1Ve7#YL%DUy~ex>H=L80Uk3H9re5F7$C z)JLbNqs9THL@_#!+&Mb0;)|4~t29Crh;Gp|covwa2lNQKM(fms@_3^38ST<@xR>-w z#c$~yeV|Y9pMh^G*XjI%{_c5ROM;olLAX9~R2+kz5CcLN7kYD-dTR945os|Bp9Lnx zjF{`?yZdxH_Ypr7o~Vfi+*7eDUO?acQ}tfOAH^5wSMgo^5I@D~Sf_I)b{72qF!r;H zu}Z9;w7jgyz?4N-29_*_NZ2J%R?FXp+yPksD$3Fkt^hJt(#I1hQ-+KI*MS*e3b5ik z{aW6Px3QC!kGDx1G>}eKK_-*Kt5WO~IdFqF5LLV4`0$pRvUo0^NtWZomSH4D*z+uJ zI;`n8HO`o2knMvUrX*8}b7_$2T26@V9M|M;pX3kE;jkROHg^}81@2+SOzkkI6%R36 z1~@kk;D$NAVaD{e5v67A8U;%xU;#GZP``%Syy`2rLYb*O!}n8}(LFP{XZBZdBUOz$ z%l0YJtOSXAxe$7ZsPMS%MG5?$3^X%MT8j8M-rtZJ8C;Q(Yf6``1?zOJ1DotxQwFwd zAx=rR%4I_`!ox@pO_whEi;HFHF!sayp%MIirYnnCT39F)mX=DT<>i$X->+6{wbj)i kSX&FjdOeEP*EcpAjm^!it!8t3yVYv9cer_Y0mVN30n(Cg*#H0l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dec-vt400 b/usr/share/terminfo/d/dec-vt400 new file mode 100644 index 0000000000000000000000000000000000000000..f00ed59192cebc1ab736c5fdc613da6cbe1987fa GIT binary patch literal 1065 zcmZWm&ubG=5S|wg{-Ss&1$7Zp$b)*Q+1+eR!p6qhR#MxN`l}Rz*tJQMw!6(X*`#fn z^k6{{1-vShEz(`^GEky*s=(f-2lNP**HdK==sCTFdPQ%P|CZj< zNBRW)1^B9BC&ekz=?nt>HFT)YK%EoALc*RGQ4tq*FE`$^Q$0H^=EQC2JAfmKVzn3V zpXtHh6iu-&9zz|77veSSyMO-rp#0C`8|-)SL;MuKL@Lzjq(fui|JVFsbU*YkG(cKj zu1epK1zY;2EL0JQl|Wf7e=U+W^ynCznMm4F;!o(WU0FK8TY!uicQF$s$}khaI4}>) z0cK=xK+7AEHV)PDkv3@~I>K=eWH4F0E5S;U1vPR7p4T;&3vH^D$+>(cUXG+q9q(k# zSw1wag|BKHG0LEr3$mEvObL!9L56KwRUBv82EY9>Fw2k6;ldnVoVyO(0B#~Xl?#w;Djc^D^p!qYTtS;*4TlH;tbluB!B u>+7!Tc^ey*itlf3R;#sI5Y+39#@5#M_RdbTxx3qHwcC5#M+`)foY+LMehvCkJuVL0lZ1oSdAToSXzvp68sGv=r@75PZq`pWi+A+^=)rJ1;C~ z$Dbo!%G~Tswoq~EePa{Dp;>R)%~qXaA++LD=R?WCfzV9RD`9Bbah>W~Xg)i$SOF0H z2Y!SA-)}+t+tUKQ*aINpB>J<^0U_u_x{UE83_%Kc0;W)JqD?~{)%O>`g(apMY`|@# zyRZ!p;34e5F2|q49=u?p{8vn`;SKt?jp#e{?;Gs5feaqEZ?_r!hiSUeFs;u&ZBI3n-o ze%zF{q!oKu53fzFrAS+2@0dFNQ;57zzHv@IX;PM-e9 z{p`v;c?wR0kyef>nJO1oC9QI03=A3RtLUzwk#F>84lqa^!azS7`Gk(T=#l}>qZ>f$ zL%WVP3T>!S55*+WBo<}Gi0pl_hnP@qNHg1UDTq~6rLbOCrFsCafSW7(F4XHB5#pS z#xU9h+5|@?nlRD?nwq<)E)0`Rz%^pT!8PQ-u(3rmP)1lKRH;i<=u&aO)rdJ`tl_Ihl^c!oP3~m4b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/decid+cpr b/usr/share/terminfo/d/decid+cpr new file mode 100644 index 0000000000000000000000000000000000000000..fe54801d77b26a3d66bf9c9c66c8e400f6f0e98a GIT binary patch literal 682 zcmb1QRAT@EO(30;nw*)Uom@~sT>g?&l@P8DH zh5%JUfPsOVL4ZM-K{{GBQ#Hj}H6;khG|K}L_Nvj=28Kq)CZ=ZQ7M8Ke4AM~y0H0}I A*Z=?k literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/decpro b/usr/share/terminfo/d/decpro new file mode 100644 index 0000000000000000000000000000000000000000..e73dc12216fa051e6de0de0905aff1e0cd9ff4d1 GIT binary patch literal 543 zcmbtQ+e*Vg5Iv;|ir}+2AbD^NsGwE~f*{nU_98+-5DJ2=F|8(PvQ2t#+Mn~PC6^%GiMvd7W>bS=P8hBLxliJU5 z#)|PZ#?`L>X(w*=ercDW3e`ZjSnh_9XF}I>aU@J3a|s1qbBuqGil74M2E=>~R0eH> zvg*C0e0D0Js%m=!*-9G8VHKNbHe0QByVJ34$8p_m*YkW|%3d!B!m!^T42HweXgr=w NrqkIhistjh0$)^hAi)3t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/decwriter b/usr/share/terminfo/d/decwriter new file mode 100644 index 0000000000000000000000000000000000000000..3a68990beda2559d64476f34038665051fb8213f GIT binary patch literal 354 zcmb1Qlw(k1U}R`w;9*E9H>ycVO)f9WEJ-b@Nhz;!adn1p6g)i{pnwsLhKWOH#ukSE r{}~vVfFvql0gJFB0R{#|V5-Vu z_{u03N+Su!uE`2NDO1 z*ccd?qpGomsR44QDTmQi;1~` zvqDK~QEp~lVootom4c&Ru%|+9eo86>KETNEA14rCU|=-GBac(#sKjUp;0XZ+c$zX` zSOI6_(LhBh1;*Ko($T8+s_8DOB}Ue&)*xo6YKaMy>7-g>3S|bVmY4&XxeQ?S1%|5C z7PYE2swKv%sWw1;AOWLVRW+aiAf_RRS)y8PQma}6HWefYde0pH|RITe>NZ`1KM*)dD?axkFHr$^gs`}ZT!Nl8#jChuo6-$-4QjmFcf6%NjFT>@lY++S<|r7 XRAfIxQjvp9#r}y(`j%?5m8^OL6}eR* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dg+fixed b/usr/share/terminfo/d/dg+fixed new file mode 100644 index 0000000000000000000000000000000000000000..1cb3cd387c1e59814adfd5546e3d3da4e0789e1b GIT binary patch literal 1045 zcmb1Qv|*5C5Man;+{=)XuAP=yk(yHD1|k)b^KS9=7ZYOxXN8i~ zqTI~9#GGQF97r@bKP8m`A7Etoj}r(mFff|pk;kcVRAMv)@Pq&ZJWa7Ph{D-;G*D4W znW2C|&M`&KDFsNW78t6k8>p*lt0ptZIic{ta`qshYKvM`8`TokYNJ|JHC2d^A&3bS aGO1OqQMHB&0y$topd?7p8qH`b83q8nwj;Ly literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dg-ansi b/usr/share/terminfo/d/dg-ansi new file mode 100644 index 0000000000000000000000000000000000000000..fd5d2875c0274b604a06a1fbf8247b728a3bcdcf GIT binary patch literal 957 zcmb1QRAyjeU}orL%w|YQH!?J+NlDjD%qz~UaY-ymRB%ttOD#&wQ2$9uMneEI1kxF#qm8_Pgf|d_Xw^*B0z=glYt;fH)f5k) nfD;gdXcr)M24Y7bHn+|Nk|to%0Exs@%L~*D)WZc-?!*89F<}=f literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dg-generic b/usr/share/terminfo/d/dg-generic new file mode 100644 index 0000000000000000000000000000000000000000..5189f7503555a7804a380ba85eb6a8c145bee555 GIT binary patch literal 792 zcmd6l?MqZa7{!09k)q{GXzHSen|aNwkoBc3ArKZ8f*=qHk&x@|ZCh)%b=}N25QHEI zf*=TjAP53M2>c)jLJ$Q0O@5hXucL^FpPONxbDnd~Gt7sH$A)R8ngjO9Wbb6dLRiYB z*BpAupd5IqiWt1|%3&#=D_D{%c*&HPf1L@5#W=AJn;1_prrjQ>velRiT#V3|T3RA@ zHL8_N+&Pt;F`cf{vFgzs@gAr2(eK#p9zWIOY12SZpBTtb97FlMEbvAg%dp_`yPkiPJU-`y& ze(;k`w)n+1JM6N@Z~pL?8ZL8*dYb&=pr7`O2|rDo4%%s>flj+yXl(7G%l^76)ixTp zVa=lzR6+}=jNYI{^cF3lWoq4c9nI9CRTQ9Eltvj8qUR`!UZ5PBLoZPR4Wc15j7HF1 gbPtW9`{)50L)TC@x{i8~@1tIH1NEVss2|0jxy3DSv!xXF3r~3YsDRuCTH!MHo zNVAA0C!EsajB_ryOw}tpb8Yd);@1wd&dFTeXT9ye-+W)-mSt9PSz#^cSA%xYuLNy8 yvTW&YkpgbsoQVmE^q+B=$T1t_^@N8!A_L?J86qR(8F@iokvHT$buk_}J^Kj` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dg200 b/usr/share/terminfo/d/dg200 new file mode 100644 index 0000000000000000000000000000000000000000..f24ff5665166ea34f5617f5642af530e34bfba37 GIT binary patch literal 434 zcmaiwT}uK%6o#MGD6s@D`p_i~8?h2Wuo?tGAj&RDM1+NSyO?z&VrHLs)gK?vE<-46 z_zrW<;eDTh!?=!6BhN2=o?aS3Fc0Hd>|GDX!)ZM7!q!74>U!$qIINd*k1-X!kke|+ z2AgR&rob-yHZ{i8>Ch$#mnGq7g*ettv$$pN#1f~R=@f9z1(#gWq)kL8O>Zo7Yx`Z= zlg+dB_-~TUCvJ}|O6;&r*`GB0fj_DH16&GJsc?XV`W+Inr=I*EugDa6LuSZ3@_~FJ OU�i|2YkQO^P}V&Gu_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dg210 b/usr/share/terminfo/d/dg210 new file mode 100644 index 0000000000000000000000000000000000000000..fd5d2875c0274b604a06a1fbf8247b728a3bcdcf GIT binary patch literal 957 zcmb1QRAyjeU}orL%w|YQH!?J+NlDjD%qz~UaY-ymRB%ttOD#&wQ2$9uMneEI1kxF#qm8_Pgf|d_Xw^*B0z=glYt;fH)f5k) nfD;gdXcr)M24Y7bHn+|Nk|to%0Exs@%L~*D)WZc-?!*89F<}=f literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dg211 b/usr/share/terminfo/d/dg211 new file mode 100644 index 0000000000000000000000000000000000000000..394e4a73b2c43eb564a05abfbec66e031395a494 GIT binary patch literal 427 zcmah_%L>9U5S*%L#TG<-)FP!|<56wFidS$1$d4Qps$0-Jw{`lD)qVP+N6o1i+ZP~xqEOqB96DwS%DD(NXR=IpPU;Vtc yK?NoZ)KC}KKYfh$1}ySXU@fsj^&NJwGoj@Ptx1ePKsu zrDDWQRVu+DN4o!A$cAyPV}v#7g!~e5N^xmkv!Y6tIOAM*7X*Y~*J3Bi&3kwSiK@bE%5CjVg3k&P@o0;WMxWZZ-_}=e(Z)S(L4|dOp0OxTGhawlf z%_s@xis87wn-!D7zgiB&ji+t6f#yw{8;;$*pO%s>Zc{ zj6J%29N-8~@D$JR953+F?!Kzeysr7i@-5zx@9_a2@d=;th1u8o#PoG$m~S)Be8&&` zv^y8YjEDZ0{&E7BL|b%3_aB+z9pUBb8oc~EWhnb{6iU@gq}Ho6vcm&l49kH(Xl}nqj`Ny33`2{A|&~!2ofa-BIGtRPL`BSno|y8AOt}W z2tgnSf*=Gz5D0zZJKnR- z2R^dFCR=Q?!zVuTg|FRN2xB^3Z*hKuMHBvnY)o upgHsqJwjc`Mct?e^`bu1k1nGDG>C>!BWgkyP&0BI)Ph=38)`>!bdkRXF0rTp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dg6053-old b/usr/share/terminfo/d/dg6053-old new file mode 100644 index 0000000000000000000000000000000000000000..ab17856dfc1bfe990cebcb3d38ac688824e30675 GIT binary patch literal 992 zcmeH`UrPc(6vcm=QA!(xRN4}k1zF#U)lecN2sVTu5P~3xXmiaTq|CH`_~0k#D^D}q zAQe68TbG%8&b{YyxD1Tvlqi$o!?`2r*2CJ~&O0jxy3DSv!xXF3r~3YsDRuCTH!MHo zNVAA0C!EsajB_ryOw}tpb8Yd);@1wd&dFTeXT9ye-+W)-mSt9PSz#^cSA%xYuLNy8 yvTW&YkpgbsoQVmE^q+B=$T1t_^@N8!A_L?J86qR(8F@iokvHT$buk_}J^Kj` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dg605x b/usr/share/terminfo/d/dg605x new file mode 100644 index 0000000000000000000000000000000000000000..ee16edb36af37b6e6755ffa831c716483bbd3334 GIT binary patch literal 816 zcmd6f>q}Ho6vcm&l49kH(Xl}nqj`Ny33`2{A|&~!2ofa-BIGtRPL`BSno|y8AOt}W z2tgnSf*=Gz5D0zZJKnR- z2R^dFCR=Q?!zVuTg|FRN2xB^3Z*hKuMHBvnY)o upgHsqJwjc`Mct?e^`bu1k1nGDG>C>!BWgkyP&0BI)Ph=38)`>!bdkRXF0rTp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dg6134 b/usr/share/terminfo/d/dg6134 new file mode 100644 index 0000000000000000000000000000000000000000..981a25fdb400c25bc71853fa596253c3f64c8c87 GIT binary patch literal 434 zcmaiwT}uK%6o#KIF-Ze2GHr>Yfh$1}ySXU@fsj^&NJwGoj@Ptx1ePKsu zrDDWQRVu+DN4o!A$cAyPV}v#7g!~e5N^xmkv!Y6tIOAM*7X*YdJz#3(SO^U z+Gc;l^t|~T&T*c{If02R1O4z#sa!Q(FJ{}%IoE0DePfx1?{=+{@rtffa2jRHwynC; zaO(NmuGcDf#<$WLtA1ZHmiJ(aPQGRhR`5G^G4h=3b81*mGs`>+EV9H3YltABVP|tR z8yPV=;@Cs~8^ay;h?5{mic`)=lOfAFIWD;5ife8tV5m@~K@*=2JzjX_jdwoy=cP cNpy@(PznXnI@&-X6b_?Jw1pyQ8%0r!KgY_-5C8xG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dgkeys+15 b/usr/share/terminfo/d/dgkeys+15 new file mode 100644 index 0000000000000000000000000000000000000000..02c3b7e363c7d29346e68353f4dd1f2e4221843d GIT binary patch literal 806 zcmd6h|3{nw0EeH%RAP)#8;`eEYwOE&yRI**HD50IIn}E%jXH3Rh|1`akZHrt^Xp z+WvA!`?;^{4`=spOOjp&7~%mBdCUl-jPaBSCYfS}Su*5^D6mY-8XIh~!z*@q%^TkG zj`w`vBcJ%p9{YUZfJ2Tr<}2U$&Izadz*T&SF_y55Yq*Xta04qijWhTRpJNR+VgqjC z7H;DXu3#GHFoRhPF^74a#|Rg25evA4MV!S1-o+&LUtm zLa-1l1Pj4Jun;T+3&BFL5G(`>!9uXGv$M0&H}6bi9dzJwmVIyTcV-{wQ9nERjs4{- z<;G~T-Mw{wSlw6}mqj@k4>yW_IqD6oZZ%jgX6K4=Ib5v8!UrWY2^6sySV__v z*0=0!Zh6Ds-+CK&aUT!y7*FvWFYy|0@g5)X8DH@oKkyU3KyK%5?&W?S34cl^Ll{K8hp&!W{indV%Y5bS0h7IFkvM8#pn z5yeqOTX9S=RmbTxvuS41Os5I1b*|;Et)915^|>{w4osXiTz=P7%+$z2zG5L?v5*^C z$c-%IMiz1-3%QZ$gG`WFhD?wNvXCJc8Hc+U=LZgX+%zF>@pb-?6e^G%#8cn#n4O#RKb9b5?m>3E| zK`aP`F&io>D=RB2D=R80D=I50D=Q*9AJPyM^!=#lqYFT~pWl|a_XRT!H(fnjmTdAf=^Ho~O ziv5V-&wn52be=EfF0Q+A3B9=i8ai{J1m!>qpOFp=f%J>Y4kN z&n*1?uQfE$#yf0a3)}dBUF_i#KI03%;v2qW9|!n>L;S=Me&IKcaZWDCMd^_%(kIts zKwO69j@*}NnU$yVOe&JeioBLJS(isr;&%Ct3_&v8I0-7A?8iyE#_@z zi8);41oCm@_mGbjca4HkGddQXEaImX+*IOvipML;2PmsG#8VCNR70%R5UVxBY7Mbk zL#$RlSShPUSt%=J4N*4AM%gGEWut7Ajj~ZT%0}5J8)c(xl#Q}ecFIoKDLZAS?3A6d QQ+CQu*(p0^r|eNa0qPbmHUIzs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dgmode+color b/usr/share/terminfo/d/dgmode+color new file mode 100644 index 0000000000000000000000000000000000000000..2fc3d8c8a83e97dad0eadbd20030955fc2d6b4f8 GIT binary patch literal 1053 zcmb1QbYYNX5Man;+{=)Xo|~VNs-2vllV4Qh3?daW^V0Ga(tr$?#F9h>_td=9qQo2p z7ZY;>XN8i~qTI~9#GGQFDg_sJ1(0S2e1MVRKTaUPz`!VgM;@ofQHjwIz!L%t@HEBF zAPQ&W(LhBhWrhL3 z1s5YD1AP}GV*_V}lGLKy%)G>$VxUq57k34a5e)bMBg223fP=vS=oXyPqY|SbKvoDa zz|#~vgD9L$mQf^YQf5eGkaJ9tb4meHss)Cs>IUkn+N#M6a!x2buw1oKt*V-;JxHS3 e5X3A|tv0Dutx>gx3IaJ`L7*f^5Y;SlbprqcRv?A| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dgunix+ccc b/usr/share/terminfo/d/dgunix+ccc new file mode 100644 index 0000000000000000000000000000000000000000..7ae82c09c531834cf17c408cecd13aee8e8c7d5e GIT binary patch literal 1026 zcmeH_PY=OB5XEON&f+K`>#!Gs{nO$~R~rrv5{WC-N~O9|Bocgfw#7kW`w6_u+x^X( z&1AAwG=&S9=7ZYOx zXN8i~qTI~9#GGQF98gp@)Xy_QAvZrIl>r}M{Erg|FfcHhGT@XRl^6{HvO<6Xo~GCt zMB!|*j3QZ+GD87_oMVcdQwoq$EihD7H&9pAR!wG*b3);PG7JFdIVSZ0 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/diablo b/usr/share/terminfo/d/diablo new file mode 100644 index 0000000000000000000000000000000000000000..6d9b14d4fa57c0025ebd0f0cb810857c64596e0b GIT binary patch literal 429 zcmb1Q^kNWTU}ETE&}T@=OiaqjH#9RbsDU!gjS)<^s2NbO!qD6RCRJ0BT9jW=;{w*L z0MgC?1&lDdg@J?N|9=J`{{No|O#c7R3a0tNq##u6|9@dPOAO8e>4E`C1{oA_c?KmE zK1`h|R#BMjK+@_!muZ1rr^CR`AZ^4T&8eEHT41P}%)kW9-B5)Q=Cx{kj zkU|lcWl%uj!_+Ec6@|$TB&`Z`nFiQ(S`5-g4APvcnW_bbs>uvoz(A7bVvu%WkPc^% Vc4d%OV~`F4i5W6*GDwFq003QJ7>ED> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/diablo1620 b/usr/share/terminfo/d/diablo1620 new file mode 100644 index 0000000000000000000000000000000000000000..cc643490b8e995f17e6d5795567e5d3ef166c917 GIT binary patch literal 391 zcmb1QG-ME9U}ETEP-IBSOiaqjH#9RcsDU!g;Y<@#gPP2O;>;Qsup$MJDh4QEgwrhy z91Q=VfC0*42GhJ?k{>QB2xp1FSumZX(Bc&7CdDRF)k*?gCIfbz9D}qGgEXgVrfPwq YYBB>CFp#9V7^Gc5v>^j0gLEhZ046{cO8@`> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/diablo1620-m8 b/usr/share/terminfo/d/diablo1620-m8 new file mode 100644 index 0000000000000000000000000000000000000000..e406b9858f2b3176181dc493e98d001bf434aa6b GIT binary patch literal 417 zcmb1Qv}X`tU}ETE&}B%;OiaqjH#9Rc(9N}|f$>bhJQuK>0!UJ!T;D<=IX|Z~H%}oa zHLXM;H?b%^GmilZ7~ymc0|&!@C}4oHn87qJnB<4c3c^_;a28A_AzB4E`C1{oA_c?KmE zK1`h|R#BMjK+@_!muZ1rr^CR`AZ^4T&8eEHT41P}%)kW9-B5)Q=Cx{kj zkU|lcWl%uj!_+Ec6@|$TB&`Z`nFiQ(S`5-g4APvcnW_bbs>uvoz(A7bVvu%WkPc^% Vc4d%OV~`F4i5W6*GDwFq003QJ7>ED> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/diablo1640-m8 b/usr/share/terminfo/d/diablo1640-m8 new file mode 100644 index 0000000000000000000000000000000000000000..e406b9858f2b3176181dc493e98d001bf434aa6b GIT binary patch literal 417 zcmb1Qv}X`tU}ETE&}B%;OiaqjH#9Rc(9N}|f$>bhJQuK>0!UJ!T;D<=IX|Z~H%}oa zHLXM;H?b%^GmilZ7~ymc0|&!@C}4oHn87qJnB<4c3c^_;a28A_AzB;Qsup$MJDh4QEgwrhy z91Q=VfC0*42GhJ?k{>QB2xp1FSumZX(Bc&7CdDRF)k*?gCIfbz9D}qGgEXgVrfPwq YYBB>CFp#9V7^Gc5v>^j0gLEhZ046{cO8@`> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/diablo1730 b/usr/share/terminfo/d/diablo1730 new file mode 100644 index 0000000000000000000000000000000000000000..6d9b14d4fa57c0025ebd0f0cb810857c64596e0b GIT binary patch literal 429 zcmb1Q^kNWTU}ETE&}T@=OiaqjH#9RbsDU!gjS)<^s2NbO!qD6RCRJ0BT9jW=;{w*L z0MgC?1&lDdg@J?N|9=J`{{No|O#c7R3a0tNq##u6|9@dPOAO8e>4E`C1{oA_c?KmE zK1`h|R#BMjK+@_!muZ1rr^CR`AZ^4T&8eEHT41P}%)kW4E`C1{oA_c?KmE zK1`h|R#BMjK+@_!muZ1rr^CR`AZ^4T&8eEHT41P}%)kW;Qsup$MJDh4QEgwrhy z91Q=VfC0*42GhJ?k{>QB2xp1FSumZX(Bc&7CdDRF)k*?gCIfbz9D}qGgEXgVrfPwq YYBB>CFp#9V7^Gc5v>^j0gLEhZ046{cO8@`> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/diablo630 b/usr/share/terminfo/d/diablo630 new file mode 100644 index 0000000000000000000000000000000000000000..6d9b14d4fa57c0025ebd0f0cb810857c64596e0b GIT binary patch literal 429 zcmb1Q^kNWTU}ETE&}T@=OiaqjH#9RbsDU!gjS)<^s2NbO!qD6RCRJ0BT9jW=;{w*L z0MgC?1&lDdg@J?N|9=J`{{No|O#c7R3a0tNq##u6|9@dPOAO8e>4E`C1{oA_c?KmE zK1`h|R#BMjK+@_!muZ1rr^CR`AZ^4T&8eEHT41P}%)kWuO1Ivb`t?mlt5EgXk@{WFmc2re1s?3*-}7B17Z> L8Sjz`;!$P`Onn9D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dialogue80 b/usr/share/terminfo/d/dialogue80 new file mode 100644 index 0000000000000000000000000000000000000000..1265d5eddbf8c0390c3e954a7e2d7f4d57d86da8 GIT binary patch literal 481 zcmc(b%}WAN6vcmogkQA@0_kpM;Y+ZMlT0d%f}lh}UuO1Ivb`t?mlt5EgXk@{WFmc2re1s?3*-}7B17Z> L8Sjz`;!$P`Onn9D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/digilog b/usr/share/terminfo/d/digilog new file mode 100644 index 0000000000000000000000000000000000000000..7c3572b53a131272a657db0ac2406e111a06dec2 GIT binary patch literal 354 zcmb1Q6k$+fU}k7y5MoHlOwY{8Pp^T}3dY993`7CO0EYkn1%Q}=feA>001K4<|DTP4 l1IXqA^LcOpM~g7lrVlKn_FvWI?HZH#S+L{MD81U79GlV+`Hv|4lU z;K73j@gnHOlNX^@!Hb~Q2%bE7unHdZ;KhTrMLme?%-fH)(1PUPCi9=)o0&KB_H8HQ zup72Ofptk%am==7`bIKGBKh)EDOW92CL*Ji$;d!zFrAL%O7?gTfZ;EA5Z%9sFvkgj zv+fguUMy*WO(Gw{iQ8cZ@*Yq@2LrQ?(+`JHQ!oMi9{E%dj8n!9ih?!yC^gD3D5=HWHGfw!=L`HyIy;0t{9YQF`0{Jv}b zGUk8c>$kCOEX=xCH;c0#mc%<)|2c-4(=5v@Q8Bwg-P{K8)jb#gp=Nb`v;2eo{!f!6 zskt+@Ho334X=`_NNS#vHJO!=L4q-DHHdE-1qLJqXZp+*nTtS1|3b&FN=tm$CJo*blSq^Cc literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/djgpp203 b/usr/share/terminfo/d/djgpp203 new file mode 100644 index 0000000000000000000000000000000000000000..a77689c7e9d626ebd865c101642aa438c4336e2a GIT binary patch literal 377 zcmb1Qlw(k1U}k7%5M@ZoN-rodGBB=5%_}LYR7lG&QgHEd4+u~&(lan-U|?h*3>X6# zI2a@u{{LrSU;>h;fCVhVh9QosigX?al8IbMY+NSs5TOQHFCU5OL3#z@dW0F+8F(4E PfZ@UcCV9Dl6ej}!*Bb6LxESEo5QbTE7()RsH5-N%)C`5;8>Y9I#vGQIKAHGxD<2JB!#c;lnD_?! zO~YH*##iiM7kk*pH+;td4snDZod1bm_>E(nnA%h0qpp|z8RyT@LEUtZ`sgt^G)Orr z(B-=Jb(Lx+|N5_W?R&2B#DDC)+U+LtZ(m@N=E(|Pp$k2*f^jSG^6U$2;_Vr`;o9|Q zcEhvl;~dDbiFa36M%ctZXUnpAvM95a*pl-su1H!W)e>Jw+twIlA(mk)@}Fk~iB%Sv z4qH5PcDZRuQlDt6fUBmtJD31oR*j4*@-R@lZrc>aJ*;R#Afp-uttsvrCYu zpab*vy*F%Q)T#joCNbrgxWn4#Mn3ge5A#Z-rzc%|1u>Gfna z|I`Y{|TZMpQM3Xn$)CETIR dqvj8TZ@@b+D;q|p+naGF!cA(ukVB4t`X2=O1G)eJ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dku7003-dumb b/usr/share/terminfo/d/dku7003-dumb new file mode 100644 index 0000000000000000000000000000000000000000..e53ba328b0a6b6f68ed46fc0d56354f5ad955c27 GIT binary patch literal 402 zcmb1Q)MsE|U}k7%aAHWwE;TnWFxE{e%}uKD$j?iyEKkkJQE(~+5-#4M3Lr@ZkfcIx zeo86>Ljc47|B^ub|33qmWMW`t-~_X{8DtpbfGhfLS25!~-=fdi0UR43XHF zrW%7~O`&Scp|mAlJ^%k(6OhNW=l_2@xE==vUItlt2I**T1`w&5sajyDnqsY5V5FMj g!NAQR%OJ@h!5{^cGRgqr90m>~L0&EfE@1cp0ISCXL;wH) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dku7102 b/usr/share/terminfo/d/dku7102 new file mode 100644 index 0000000000000000000000000000000000000000..0fb7b53c07e07f982977bf5974784627b241b1a6 GIT binary patch literal 1466 zcmeHGO-~b16uq}GN;E*CQIv@ZMxO++&>31fbt+Xb5e2kHH+EdK(hmyLQl}pX6n45Y zG49wIH!e(!3thS~E_A`d1@T|-8|t~QC5FHcaN$eux#ymD@B6rK+RvkOn!2dWn}OO& zHCV`%bAEBYnO&+!&5+fctb5+TgL8D`|l1bx;Y>Lwjx(zl%_vs~@A8NT)n zUhTwf^>Ezam;74iZSgz)0QR|4^_9Qz56!nbimb2${+llaTCKsrF!11*g4#HA=3wrB z<=^PQTA&#)+!P(dcWt<11%P!IFar~>imGC&tfMNH%I4`fq-mJxSP! zlEA)YQRc}+#~Sd7>kG!bkv_Oj#F=nR%Q0;y5%&xiX-Tsx2konn@f7)SIl-*Hp!B12 zBX<&9@3Pk$v)%{E(m19utTCc-Tw_$Dtx*~`3%dnF*CdpV=?2Rtn#}DH*-k4`qKVXL zA}!ZM%0or!#=(l95dnQ~{ZJv5kgUp>YO0zORgT0KXt+(oppiC>fLd)D1+|q^lH{1G z^{8C0a@wc8bLhLu8>Q2kOg>*IEDkMQ^)8n#mPePDE0t$ge7{<)4c3E=;gyl+YISvO TZGFAj+}POM#7R?l%pUp!Q1b(^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dku7102-old b/usr/share/terminfo/d/dku7102-old new file mode 100644 index 0000000000000000000000000000000000000000..cc3ccb557a36c70125efef1f069968702a39adc9 GIT binary patch literal 1449 zcmeHGO-~b16uqxe0TUoD2J+Njg%(NbLXC_c1zKpOL+kWIfr4&K zT(~jr*cf9>j7wwU#)S(P{tf>~$8%qssDU5g!k3rFHQjl3#1Y zO~aa~l=H3GM!BrrXcTJo#Xz$RLrc%yRP%tbCNh?#RMAK!=d`Qa^S*p=R2lMk5rZF=P{Dl1)jdOVke2h&fsUmw*j=M$Zvn z(rem9d`s`>1L7C@O5YH}@H_pWpA;(HM&2XX?Gydth!_&b#7Qv%Ckl)UOE_Xiq(w$# zk>3Iq#CQ(n!yW)*_uk^>R!z+A({wyMqFgzIP z1MeND;ojbNW^e6(=ihh%FLEy;y#?yQ?^=43s~{^Qy{m|G((@5AbQsKr8Q@PLy#Tnv zmh>(oFtQ}GcM^$<2}j>)WB{`<47LUrKo3Eo8su2O>E zRtYXPO4N^Ilpt*;bwkw=Lr-y4by9EXbvLfNoLi8wj*LOt9ce>a9T|sobl2zNgkB%e z3xm4bIoq}UnusP_+>l&uadBm3b@k!s+ITtYpIX0AsZ^_v&ILiORzK62XpTKT|3u%| V*xcOOYPGhvcXn{t1$1tJegVCl0@DBh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dku7102-sna b/usr/share/terminfo/d/dku7102-sna new file mode 100644 index 0000000000000000000000000000000000000000..6147bfbe13fe70b181d485e51e8bcdd723b7eddb GIT binary patch literal 1441 zcmeHGO-~b16uq}0N=PUP2_IohY=TdsSnW(Zbm|}#)c65N2@4{FfkJ8dXiM!E0)-ei z#*GUTSGrR-CT?8mLKh}#;@|Lx)N^0k1%V&n!k3Ea>30Q4( z3VAzqQaAPLnE@K6Ael6R%%M@bPPd^ZX@=$yS11ME0`}=CJwtp!ujmcpTY66)5Wmnj z`i@wy|D@mahnPjTf!np}U_W<%aJN!hid(JQUHPpLi)kprspSAwlbYzDg(7(9HSFiW`&VY}Pb8zQRoH@Sszw>W& z!1F!y8Qub&#&>Oa;S9*S2bu&Vstr{zRmxQbOQq7(0qYK67V-ZuydrQzEW;Z|5F~(U zAmqlJs%&O>Rq|`Y&LPCd){Vr2SnO)dF&4FLi5*$j+7TUcqens{M_sUULPxemSym>R zs3OL%tsASx^6_(Qcg!^{*L2+YXx8wsEMb<6MZ@bWkgcoR> zK-xn3mG#YpR9sdS!m6gqZdAFFTab~4j6m8AX+v5K8HIF|o0G*cRrag3F6B0!_O2W! z7fH*@$z(d6$!uQOx|BVi8_ZwX-Yyg#T`U$$rSecESRLNE{8;Vo?(OaG*J=j`hleO# Iz`gnDFP@0_P5=M^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dku7103-sna b/usr/share/terminfo/d/dku7103-sna new file mode 100644 index 0000000000000000000000000000000000000000..17cfc916e65ab4842180396ee9710ecea7a47a29 GIT binary patch literal 1439 zcmeHGO-~b16uq}0iX@bTgpYIbbA&g1`@O;Y-iC=brcOdo%Y<18h?tby9&J_$u3F z%M3?CYxA}=)_ncqyYp8dvs*n7MKWqK9<;V^{pnq|nuhAIv1;9tg8Myb3ojJPpzw>W& zVBY8X3~zx>;=4AyNET$>22BAH)w(L0D($MGrP3Mdf^`cpOZa~nUJ1A+mf=kx2$H}I z5O(8EO*S*U8u_(h=MfU)YesTD9={xSj74o*Vn^4sc0`BW*r5>3QxELC(4lQnmXnDV zYKVy|YsQMPbo3nC9d}L3H61rGmNPsoOPXb4(eMU}WGtg{TECGrp#2Jy(E5OOGtBA$ zEK74lb5ygfc~o;uv!hu$H4R(`&?ZTxMY^MMh!!(#A;)P)O0TvpFyCMzfyhmgapg zU+V)v`3nG%L%=kxeHxnKNRxC34pZC)?QjB4$xJu&!vN?oM3DuU$)Tb>o2j~7*{*4Z7M|L8LJqJhVyH@PjB7t#}V3LfzT2iaJx**i5 zp)M5Q7)cXkx=a5L#dgWAv!vM9$g!o#ra?*HOD3-*E#4ktpZlTVElm7J0}xR)tLg>DGl z5~*QFv1wXbukmras$3Q;D)Z#0P7-dsBwVhQpq&m@B5E?od&}q2)D+M1xar(O zRj?2vA*2T90yQ2?3j&h@GoT5gmMY3znN+1=GGRSdX65p1AYU9&kSe) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dm1520 b/usr/share/terminfo/d/dm1520 new file mode 100644 index 0000000000000000000000000000000000000000..2e9dc219b1ff015179ad709fba1ba57ccefc0dd3 GIT binary patch literal 414 zcmb1Qlx0w3U}k7%uwqEbH8eFcr~y-kH7I2a@t z{{LrSU;>i=|FbZ#0YyM8E(RqA6(CCu%+mmpT3{APj(R``ubFyaSp%pVBPeZxR}Xn^ yGlQFH!NAVI%fQ1R%fQVbr&?g7s;;1}s;!!=T3`rcGH@|S0z*lLK^}$0$p8QjV*48a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dm1521 b/usr/share/terminfo/d/dm1521 new file mode 100644 index 0000000000000000000000000000000000000000..2e9dc219b1ff015179ad709fba1ba57ccefc0dd3 GIT binary patch literal 414 zcmb1Qlx0w3U}k7%uwqEbH8eFcr~y-kH7I2a@t z{{LrSU;>i=|FbZ#0YyM8E(RqA6(CCu%+mmpT3{APj(R``ubFyaSp%pVBPeZxR}Xn^ yGlQFH!NAVI%fQ1R%fQVbr&?g7s;;1}s;!!=T3`rcGH@|S0z*lLK^}$0$p8QjV*48a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dm2500 b/usr/share/terminfo/d/dm2500 new file mode 100644 index 0000000000000000000000000000000000000000..1897702753778b66d4d2b97b3f444c26322647ea GIT binary patch literal 467 zcmb`A%?pA+5XGMcB@*GSMN}l*6i+I63yF}RTM%@Nmh8|$GUylt{o~vEg+iBt2Hx)b z%{*pw$$^IfUbrF4qc{j28N0LmoLyK&X-jsA_^KpGTX0Tn_d6A)9Ju6s!dn$ZPRVpb3*;9}hyMb!QG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dm3025 b/usr/share/terminfo/d/dm3025 new file mode 100644 index 0000000000000000000000000000000000000000..5f70c5b0817828b0b99364f9e08154ce0c1e889b GIT binary patch literal 476 zcmd5&O$z~06g`8&h@HsYSj=OgG#`;NsfmTi#}p!^#>c`!S+J38{p@k)F`9)R;CA1+ z=bU@*>-9=X0TsmY!~^@2rJId=&%1c1!~W=%1L+|QB_zM9f+K~Azf z>d={4QZ*P`eA;lN4rYTGvvNPqEYewGjZH*vKm3Sm#C_lK4|w~&>W(C`ppj;q9ncUo zc(au_o1$8-ikjGovk_9Lpgw;hbwLhNn%(5BDLLe7wqfakkU23xuFQ$fh32$iU;U2B IMHOkh06(bz5dZ)H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dm3045 b/usr/share/terminfo/d/dm3045 new file mode 100644 index 0000000000000000000000000000000000000000..bc75a27c6fdcc8fcf3e1c1710834ff5bc45ad61d GIT binary patch literal 487 zcmaiw+e-pL9EHEFpd0lTMf2i=n-4*lW&}x)6)c4yK|(zQTNV@;o0?rH3L>O`+Ue}2 z#qFhGzTupi^E(f->@2dvI0L?Ewadkg%Im)0^V?Ug8$TCX9~^Blva&9GaA+{a64t_) zPHQKaWj<01tWlIIN3NoCOKdX?W9bTAElOBB`ZBZ!nWUFy>WNA#B5_Pp_h+1Q!8Nzs z(V@>vCi|ASkIZehCw8CzCjL%+r4s`tnZwlc)zS{;2y+;#Q#UBNgQGQ8Ut}JI-)Cj;z9Jqqj(Zt((|s`X?_5^$n)6% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dm80 b/usr/share/terminfo/d/dm80 new file mode 100644 index 0000000000000000000000000000000000000000..432468cb8255682090ade0a4045f6d8f46ca3fa2 GIT binary patch literal 974 zcmdUuzfaph6vw}AkxG$B)B%as3qm;r6p7ez2(6=_1S&-!s%{KM2n&Z0$OQu?KoT-A zu(GnUvaqo5hg3-XGskM5?YZ0QRJHj`FXA9pHUKs;q zm+3v}&OEIm5~Nv~%9{lO;|X&AfNV?B?z)?s)#~>4&Q859WuvjX>-&3q`}+q6L2!83Y#tpQAD^7G aTJ3hHb9&nCLLV>b6KT4Nv6RYZ3U~yzzc<4G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dm80w b/usr/share/terminfo/d/dm80w new file mode 100644 index 0000000000000000000000000000000000000000..86da6fc3225adb8f56d99fc76a343811737402ec GIT binary patch literal 1024 zcmdUuzfaph6vv+nQd=aFu~ofTh?D4m@J~Wz6a)kjKvmbOUa)XT0=dKlhd?kO1QS9G z6$3+u4y;|fc4cAd(m$lC)b0A-`B2ls(6yHCd!P4x-*-7h_6uzi@-P57?Ocoal-W%q z9wl;@S_+epSE71okUL=+^`>Dtwy{Q}7mwkNK|9ihunGb6J z_zyF5#Fc#m>r^7e9`n^9@lJU<`6xOb99z< z2Zi5&w#)H#*8`qcF;0a%Xb!1_OCE^3{82I`P)7o_CCnn2brhGxLn-RPjMG4INj#E5 z4P~lE_kB%yHbb-VBuiQ1Tg<20Mszd8mLpq*tah>GF`rZH6-#ogl4pK)^D=%|tE*wS zzFw_vY;0~e8k{$qtyUawZMECm+ey;t?Cf;AySsaPz25$QnjRb+9)dnLr@u7uDi;3N HP7!_qJo8BS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dmchat b/usr/share/terminfo/d/dmchat new file mode 100644 index 0000000000000000000000000000000000000000..3ea6a130e6f011f170d6652a87e66c2868bca09b GIT binary patch literal 471 zcmb_VO$&lh5F86iBEnlD8IS0tc*%rrQA7nDBj_558g(%HqEis`$6u=^1$7D9$Gn-@ z9dnigU}Zusns-X;@FF@N)Eeu33TFWdA_4u8H9p@@3@hAPT@ z?{H&f@Fn;7zLQCmkb{gGG$^vFH+vo1>O;|D>9k4Ft3cK1aysqDMyb7`B~?$1MQK6n E9stzV~+Rzatz|rcKr{mENC@xG&MZRL^lC{>t=T|2w1g z4b^XPM|zJ3JWBVInRzx|>lZ_>a*l~PsN;P8cbq4L*xCR5Dvk$Ck4kzD5s0<{Eq ghh%mWs3zbgAa8Ej!70DJ3)O%sK;@~-LmtNQ4ZnvDzyJUM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dmd-24 b/usr/share/terminfo/d/dmd-24 new file mode 100644 index 0000000000000000000000000000000000000000..14c34312049c55a037f6dd6e65d83c3c5a6cda48 GIT binary patch literal 632 zcmaJ-Jxjw-6g^eJFT}w`%#y)~gGw4|TP#Sm4nbQGEhxk#m?ojv$kaW{VlI3%Y_h;-%jPel8K!9IciW<*lG%MUEA? zWULZg`g?{~BdicM2@QhN$*9CisKCnpO;xh$vccgC=|aO>;~Be>=OgLr5mIuUFNkPl jf_I3sor!uTnwgL{x2@oa-+lsPA4VBQiOM|G#4vsU-!cty literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dmd-34 b/usr/share/terminfo/d/dmd-34 new file mode 100644 index 0000000000000000000000000000000000000000..a23f838bcbf8b9a616639034de08fedbf0fffe67 GIT binary patch literal 632 zcmaJ-Jxjw-6g^eJFT}ykEJ2JosHACaiv_9HA!rMt1%gwvR5Cp-&LHq;Hdv9K#Iv61G#T?}CgN&$VuN)2EX-{GG40grf+?q@yoqN7r;TD?(x#|J)j{)It|!SGzeTc@x=;Al0iC~E~}D{`#B zC1aJ~(%&<@Dq)4NNvIQ?c1lH7LU~s9Z>o@0lMN1ENERC28qe6}EFVc$kC2kyttPfj0aIjg0+Qus9Gf0mWmB1$@k8uoVKPYcC{1j0 zX+QP#o&7k7?Tb!(2w0dp))kg;id@b-GcYIB0#>mmY8_kHrrMEem(eBrs7gI{{x=?? zPIrS$zTKR;ts~toE+tM5?YZ0QRJHj`FXA9pHUKs;q zm+3v}&OEIm5~Nv~%9{lO;|X&AfNV?B?z)?s)#~>4&Q859WuvjX>-&3q`}+q6L2!83Y#tpQAD^7G aTJ3hHb9&nCLLV>b6KT4Nv6RYZ3U~yzzc<4G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dmdt80w b/usr/share/terminfo/d/dmdt80w new file mode 100644 index 0000000000000000000000000000000000000000..86da6fc3225adb8f56d99fc76a343811737402ec GIT binary patch literal 1024 zcmdUuzfaph6vv+nQd=aFu~ofTh?D4m@J~Wz6a)kjKvmbOUa)XT0=dKlhd?kO1QS9G z6$3+u4y;|fc4cAd(m$lC)b0A-`B2ls(6yHCd!P4x-*-7h_6uzi@-P57?Ocoal-W%q z9wl;@S_+epSE71okUL=+^`>Dtwy{Q}7mwkNK|9ihunGb6J z_zyF5#Fc#m>r^7e9`n^9@lJU<`6xOb99z< z2Zi5&w#)H#*8`qcF;0a%Xb!1_OCE^3{82I`P)7o_CCnn2brhGxLn-RPjMG4INj#E5 z4P~lE_kB%yHbb-VBuiQ1Tg<20Mszd8mLpq*tah>GF`rZH6-#ogl4pK)^D=%|tE*wS zzFw_vY;0~e8k{$qtyUawZMECm+ey;t?Cf;AySsaPz25$QnjRb+9)dnLr@u7uDi;3N HP7!_qJo8BS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dmterm b/usr/share/terminfo/d/dmterm new file mode 100644 index 0000000000000000000000000000000000000000..17fc3793e84d3abc7f71d81b245fb669911636ad GIT binary patch literal 488 zcma)&-$#RC6vscS=m)#6&dqM#CUvpB`%Pr4>6h3_ED_W8q}7{g6EPxEL_|bHbP?%q z?CtFF)aa_iIp6O&=leYm&vaypA%?l(lSa^Oo&~)|vvVBOyUkd?J36hO5Q$JB3@0^F zb*M4IC=-@NnPHZB659D>DX^eyk&@l^wS)LlT4s$thT*1DR9$a}w(L;*B1=daDI(j*mX6Xc6N;Kuq+(4;#79zy3NnZ~b4VU3 hAS%<7%l1|glf?L#6ef+yV6vDTCXXrTN~JZ%`3BxUi=`xy2SJQPE8Bq(Zpmyqny_R}_z0^-zX@|)&j)?ncH|!I& zJ+N!F=V%`tpqJ=%I!tfFe}ulEZ|Hk7x>ox=;mN92n~KJt^T0C_yH=a2(rS*f)ir8? z@>EXcRkK>D3eY>yy3}pz4z)p5U{}?M8gIl&t~%bY9yZETYOgw=UQvhDJL)6#nfgZk zltlcZj;TLkpHM2rQ8Q8(rRJpOrsk!tNtNO0HQsu@le`K3y++%YI(UXLhtA+XnPnpD zRTFi%5&L%P{nRI>_c`$E#Q%LmuhovGeog(6I+2>Br|KCxt*_G8YEQ>{nO>>a=ykeV z_v%5tP4CjX^`rV}y;twohxF_EE&Z>F@MW{hL0nwRMg)-MYk@ZOylCup%pO zEw>8RTI+Ueqcvb{u|}JU> z<=vnkUsV{6+i$wP=qy89BF@+i*i%Gnqx97ouv0No#?SR)J~z(9nJPR!kBe9{;Im~G z*@d{J+|s2+B<6CxMr1#Rx+cmsVfmnU?jk3XxnVJugaxKcbB17fv5z>k#qg{$%l5`8 zT|n{zFVJITo-hvqW`fIGqe z*orKi$w~K6I^wf!BRg*o%r0Z=?KoY^urIW$v17+LN70Y$7-!T% zQ)vDA?(Pj6Hg4?e+q7x(=KlUlWnf@%aA@eRyM~AFzPno8vSsVmZQDjhwr}6DW9QD% z(Xp{{-obTf`N(WigdHl}jJ_B1F7sw`4`epJ;WWE1y`bUb&2ag2ORk>;^Y$Vb=gWj6 zW|C7*!lHz;3Fm~}Ou`s%GA0Xh{bXDmNbW##2a-ETawm5v7S1M|6Gm?1cb$a2gneNr z4kdRexkJevCb`Y6bD~%{n{ZATxs4yWg}sD*VJG$^w}*Ykrg%I0q4E6UBw#eR;z?~Bm* zx;ggF?3lgCu6pK@+hyZ&LgUNT^#yj1UG}iav5eyDcxt#mLAaASCEh?0)jevrdPF^`o>BYMi>M8V zG-{qHG!<3Wbh;4r(dBd{%}4d)P(TYQPfgT{3aA6CSx*~K{S0Hh<5-gT zkPcx@Z=mLRk3Oa&^d(mH10AJb=@0sgG}bjuU5MJ|3N;tC&GlGYR^gD`Oh#TTHu&r5 z@ehQX;U^Qs?;$^HnJ@;JmjdVIjM+EZ)n2>YZ^s-WR|C&5k4`Rnawol59@+Z4>B;ly z3k5=#rPUDVYT09SP0Kt6pCMof86rSCHx}Dj zY-h2Z#de6z?M+aCkbuyD5P?uz3T;qg@5sg&nZwy#=i2wiq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dp3360 b/usr/share/terminfo/d/dp3360 new file mode 100644 index 0000000000000000000000000000000000000000..4fa6a8499e83dd61ac333e0c6e523d05258fad10 GIT binary patch literal 371 zcmb1QRA5kJU}k7y5NAj!Fg7+bs7XmINi4|E%qyvJfw2@o5)2HC41@t=5X1lfl0eMB zzyu`!|7T%fXW#_0{{QD@;03by!8}1ADGU_{sT*!U6zFeW23dIqIR<$KE(Tc!4h9JZ HDIf~~-j4j$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dp8242 b/usr/share/terminfo/d/dp8242 new file mode 100644 index 0000000000000000000000000000000000000000..59ae84aba4bfa951e5f9ca378d0540161fda2e82 GIT binary patch literal 547 zcmaiwy-or_5XXPO0fK-99$(YgtQa*$4`MViv9VLs7z-PV6DTN@iy^V0z!*c~3+M|N zAG14?Z6qozkz&dZJ#WuxJL4mF-{O02TRI-8np1&Z-~e|rx9DN$^(8}s%#2>Ibm?`ULtM(bjRFS+6xmp%h- zx#xj#=skw{Da_BaJJBogJpIQv)i1ops^0ks_$S|FDPoINtx=&$PI-=MPMT^%b(Oah zLH$oQbrz^04J3_Z5G&XPDNWucUv{--gk@cmBrAR7SX^?_BQITjZYXOmXT~|zs&uq0 mCtA12kfxYN%BG`k>nLr--c7L>D03sl25m)yDz6uR;o?H{q7$Zm|k zUf_$t7{;7&7z55BjyPX9Hb&rzyRM^%bHb70&au7lU+ztY9vd^lGixsm-FG_Vw}0** zUN@=0yK|iX^8LVuY0L2i%0Z753w0|q?u3eEM#CDprahJ)+$7?S7H9xUL1UqM_F`1m n8&Cpzt?6lBFM0nI$JSKx@(E3Z>f5WS`v)`=%DPeny5F}u(P9xe literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/ds40-2 b/usr/share/terminfo/d/ds40-2 new file mode 100644 index 0000000000000000000000000000000000000000..c9cf50f53f1bed50b6e834f1946d3285ec726696 GIT binary patch literal 524 zcmb7-ze~eF6vw|IOBWY)5T8PaqfXLGOdE$IiX9@wLTT%$63lHK3XMad9gB|s$Jck) zAok+o!Ta&~zW2U&9`w;ch);Z@s#b|ym&-a`$Lq4FiseGuR;o?H{q7$Zm|k zUf_$t7{;7&7z55BjyPX9Hb&rzyRM^%bHb70&au7lU+ztY9vd^lGixsm-FG_Vw}0** zUN@=0yK|iX^8LVuY0L2i%0Z753w0|q?u3eEM#CDprahJ)+$7?S7H9xUL1UqM_F`1m n8&Cpzt?6lBFM0nI$JSKx@(E3Z>f5WS`v)`=%DPeny5F}u(P9xe literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dt-100 b/usr/share/terminfo/d/dt-100 new file mode 100644 index 0000000000000000000000000000000000000000..5792c0af0f12e0f6df07cf9176987e99b44eb5f9 GIT binary patch literal 654 zcma)$KS)AR6vn^TAF`mDgzym&=-xHPRKZv%5hK6Wp zYH4U_YHDg~YG`O`YG??8AP9mWi0qvAUb;AR;ro5(p7Wi{^+=O&qaVlcNSdkm{kxhu z!&iYD5axe%oD8-qB8M^Ft}lFS{| zn6^BVE2}MUBExT9BVW@C<(%gAn*}xR)wk7r0KJZ|hjx2{B#?kU43N7qi7E1S+lL5Z zh+~OvNvsmrNgK#o(@l#!*F8Bf>Xx88vnuMHRLiRNanR}5dxxF-5l(Q5Go0fBm$W~NgUc?q$QDWSq%~3+W5kF~2^? zK}`%uqMyGsM_M8AIvy-=hB*}uK1`G3$S!Bp;w+~kS(G{XXA-<;Ppp*v876}%U_r1D kSQu;uECLqA2*fmoQ7o29nx^aJa&=-xHPRKZv%5hK6Wp zYH4U_YHDg~YG`O`YG??8AP9mWi0qvAUb;AR;ro5(p7Wi{^+=O&qaVlcNSdkm{kxhu z!&iYD5axe%oD8-qB8M^Ft}lFS{| zn6^BVE2}MUBExT9BVW@C<(%gAn*}xR)wk7r0KJZ|hjx2{B#?kU43N7qi7E1S+lL5Z zh+~OvNvsmrNgK#o(@l#!*F8Bf>Xx88vnuMHRLiRNanR}5dxxF-5l(Q5Go0fBm$W~NgUc?q$QDWSq%~3+W5kF~2^? zK}`%uqMyGsM_M8AIvy-=hB*}uK1`G3$S!Bp;w+~kS(G{XXA-<;Ppp*v876}%U_r1D kSQu;uECLqA2*fmoQ7o29nx^aJa8+`f(OMohAtTyO;fif5-DTT zJ225kiFeMj%|vD~HSZ0Nj1S?rCt(zhQ%?elP(toOBbvw^rx_u1Ba8@TQH&8MNmH0{ zyR$BNuJGoNr0O!#xt@*9{M5D^?P4!q$^P5V=La~%5l(Q5Go0fBm$I*ZeQ4kg9TjYyQ|#_oLqYqtY&wp&IhEvZ$j3A?v5n>FIc*g)qcL#KLHhYlJAan>HgdZXR u(E$;J=!6JCXeufp$5DY~a%sslEi08ur!yJbURzsV-`D_MNO#iS7(M~106w$; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dt80 b/usr/share/terminfo/d/dt80 new file mode 100644 index 0000000000000000000000000000000000000000..432468cb8255682090ade0a4045f6d8f46ca3fa2 GIT binary patch literal 974 zcmdUuzfaph6vw}AkxG$B)B%as3qm;r6p7ez2(6=_1S&-!s%{KM2n&Z0$OQu?KoT-A zu(GnUvaqo5hg3-XGskM5?YZ0QRJHj`FXA9pHUKs;q zm+3v}&OEIm5~Nv~%9{lO;|X&AfNV?B?z)?s)#~>4&Q859WuvjX>-&3q`}+q6L2!83Y#tpQAD^7G aTJ3hHb9&nCLLV>b6KT4Nv6RYZ3U~yzzc<4G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dt80-sas b/usr/share/terminfo/d/dt80-sas new file mode 100644 index 0000000000000000000000000000000000000000..b1c406afd77999348732e1b32a499e55bfda1971 GIT binary patch literal 580 zcmah?YfAz_6g`&E%j&B&MGLh^NVKa(Mn!2`5flgtWf8ggD$7=PSM&Wbh=>S@hzNo{ zM1QKkV&gQ6kVG@wbLO6N@0n4X8(ru|17C=nK552KjjE!WY9Cn1-fsCjCm|zk@n5z62jP{uL$c7DIT%cF~bvvtvTx?kY<_& zoqHzZ0>dKLt~uXuzNLJJd)`@D7C$h(!QDsBPk&5XTmSJhUOEz9@kX_GS|1(WPu?eb zFbJ|DW@XVOxJ0)YV;m!sa!d96Ry`mt2@Z^7fUUI$+6f>5jGz}|m;l)Y*#w#L*g0&$ zNv{KBS|ZCNNYkhZvO}eQmTGMdW2hBGw&{;D`Vft(aDtwy{Q}7mwkNK|9ihunGb6J z_zyF5#Fc#m>r^7e9`n^9@lJU<`6xOb99z< z2Zi5&w#)H#*8`qcF;0a%Xb!1_OCE^3{82I`P)7o_CCnn2brhGxLn-RPjMG4INj#E5 z4P~lE_kB%yHbb-VBuiQ1Tg<20Mszd8mLpq*tah>GF`rZH6-#ogl4pK)^D=%|tE*wS zzFw_vY;0~e8k{$qtyUawZMECm+ey;t?Cf;AySsaPz25$QnjRb+9)dnLr@u7uDi;3N HP7!_qJo8BS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dtc300s b/usr/share/terminfo/d/dtc300s new file mode 100644 index 0000000000000000000000000000000000000000..da2b83c085af213a3fa9551968cb5c62b9a62883 GIT binary patch literal 354 zcmb1Q6l4%!U}WfGkYh+GNj5exD6Vk{aaI5^7@&X=PPZ`p|Ifg{1SDC27y;P9JWjY6 zH=M-_XCYMMVhLcV6~Yj~rI&uDTR?pvhY|?3Qe+dFlqI&{^A z)qncYr!#%Knd)4z_)NmY>Z=n@{;BTIuWX1T`t^!6aGFD;pjYyeN3yo>*q-gTY!Ati bK=#NQNg*RjJXXTc3^4`dsCq@pTu5>U(!c8> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dtterm b/usr/share/terminfo/d/dtterm new file mode 100644 index 0000000000000000000000000000000000000000..01bd438412b3b0d2c4a2b5565a57277991655a06 GIT binary patch literal 1557 zcmb7^Pe>GT6vyB1mrx0*mm(Yw77Zm4%=~6%|1_5CztU6?iICPnZFN`OS=V)3|C^@@ zl0YcBc=6h)L(sLZor4b1r9-DqK_DHR-g`3}#3Hso_I=;y_kQp9XWsmFnneqog(jF0 zpJc}Or%K*NcTaC?W@>THpD(sjV5TsU2N3)NZUQ^l1PsF|IFA%mwNsFSLyQ7QsKXta z;R5KK*9O<29Y=3tuOC+kg1cy=Fvg?fFbP?vJS;#NX&tuV3GBd2c*XHO*oW8fhB*j6 zME*1SFA;x5|1IJm_zpkdCmg^b)QNi0B+iKz5d;^}E~8x)hH%hROGZBIRqG8LPlopMf(BH_LorDdiA`Av zqBzG~b~Z7eViXz?JrX;QqLiz`OwQ?Wa+lhbVcf(Wac8admPTmiQQ|oio1*DKK9jYD z*o9`AM2gi^#3qlKHnYPTXHBpsNtMA$(t{Qw;MC|Ld$G@FriW!1ssL@ukyHf+D?m%} z5Us+1^-6#i2Mvd41w-$kxbG@AuDjGx*s(*j5TmG#=!8*+vO|m^njyv!6T0is5=q@} z(5D)87qmV&4ddez6Vub#?Ck8^Tt4r4g~I%NvAD2MDlIPh{?bypyu7@!vbwsqw!Xfx zvAMZL504dQ#R^~P(%KB{goWjzaV-_sRfWvOQd~F1DT?cA@g$4igT?t)_#Wu4;XT8f xm>EHg6=*j-?HZ=CY$p~^Bp*Bk?LJ1Wq-!VX&RASQB0HkW*Zc&1{{LqHs{4-ySTID; R6bvIS8v{E7F9R140szw?1nB?( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dumb-emacs-ansi b/usr/share/terminfo/d/dumb-emacs-ansi new file mode 100644 index 0000000000000000000000000000000000000000..b6df432d2faf9fc7f2bd62e704a82bf814ec6874 GIT binary patch literal 898 zcmb1Qv|`|35Man;bYe&;%}vrx%}q=$)=kVS&a80-F%>|f3MHvUxtV#1ISS>OB^e5i ze!-p!$@w|?ML;qowU~i{kpTo4|NrM;_>UEEFgP&q;*ev&Ar3Q$2}7P8EW!g97l5;1 zdIl>k26w3hoHbb8IuzU`g(no1vB+s)5hK^1dJGl}Tny6DhPgn(1Vn(a5s<~jzzJj- ZTUwh~f`p90;$YHPwZKp{1;jUjvH(X`^lAVA literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dvtm b/usr/share/terminfo/d/dvtm new file mode 100644 index 0000000000000000000000000000000000000000..567b8bef8c82da15768aee7ce6f5cedc35bafc66 GIT binary patch literal 1715 zcmbVNO=w(I6h8O9LSiI8AWF>$mf#CfLFV1}CNty1=BH7In6zS0f(bIyyd;xk-ehJn zNt$1wF5F}zBDm6ph>(qfAa1%Tg}Ugbi*CB~xJt;SZ1j z@isNnS&EJr&D2l(@QE~?p{J>nx~Q98LTrlOpd5|R81%a|3C_z2fpC%LX_4xpw}h|K z$Fu|W34KbRWB!_U={wnpq95pnsGsRq%)iC%ADH)mKY@KZqgqsldPY5`x>S#PMS1E~ z)vsPxQ8Wx(RAXvfO{zR}0GvFEs;brz`H|XDpJD#uv8->@PvZQg{!z{PN!_YD^q7vK z_khM2*ONN016>rS1pe}Hk0ZW%WW~;|{ubW%|MGe7`0*p+uj%WDSvU19eOp#{z;|Q+ z-r;@}-Pgb9-}RpUTPv%{YPFuSp0%F0Z0q>XIPK2Mr#v(HA9>j$_Rb&S{ogwe#b@NK zcVabZ<*g=arNo3iXIC6M@a>ARgBlEX7L-d&m|@Is0X)Z1Z$6ZbgdDZN$^m^QRl<)+ zL=n>kU;r4UHgGBgIiNHGyfg=ROlkIoybwR-#6-wsh9#<$$Y9}>*pV26pm^ss%nt9= zkkiP(o%_;7_I=m){N7TW+mEOb`Vj1Hg9d@j2O#6{(h-ie5l6xtPjpH+Eu0a~GMgl` z*pf4ZRWDl-&u=dPmjSMURCx42@CC%-i-{OH5PXa{e1Zt1pT{NTMJaicyb({v!?{j5 zM4nIsKB3P^CX=WL+Jw4uUE`Jp=m|HGua~s@>`Jd)_Z{13X&}9ZbnJ?2Z(^NptUbt- z?S~wewd-y6bi3_SB1cb9;?gRx1}pprk(;R%s@~6ac*} zQcP2Tk!BhRHqsm;eKOKaBh7Rhhe{(|iFX_E@;S!ivmE{kGhGQxZ*S6aoM Ucc6OE<(?$}yTMRoi5eKE2V}$%Z2$lO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/d/dvtm-256color b/usr/share/terminfo/d/dvtm-256color new file mode 100644 index 0000000000000000000000000000000000000000..f255d5b341df0291e7951395428a2b7a7a2a8f6e GIT binary patch literal 1845 zcmbVNO^6&t6n<45NQ`U}5JfYBL$G93BHh(Jf3{|l7@@5ClDFE;%GY+wZ-ZU0K~2OwGKnzWVBW zHC6Sd>4U0D`|;_hZ=GlZp2FW!V_wMKz%&)wHUEM~K_EmYP?qaK5Q7s&~-8_m8ZP z)K{Y1P=BaB`ffd<59kS9lo3|Yx<^E&TePKxyO0HdB`!&t$*WAXCA-9 zHQoQntL!j$WC!j4?)k)Ujhb^|$gVhFJG*Iwa#N;ldY*|w)3YY(L-1z-wcL~)L;nJT z`=RUkzv&>MMtdRE5LH`<@hAytp?d~#3~`e70SgJh1C(G0N^A%iN~{Y62_EmRTjTpEl6(1HmQwpC2J&ouX&ka9J;i*l!y5i5vA#5`hw>h(tB^y%5z zxw$iE;y6hycVO)f9WEJ-b@Nhz;!adn1p6g)i{pnwsLhKWOH#ukSE r{}~vVfFvql0gJF`1SbuKT;EJ-a=@MM4jMl>2G4xt%682ycVO)f9WEJ-b@Nhz;!adn1p6g)i{pnwsLhKWOH#ukSE r{}~vVfFvql0gJFoi#5VDF&@KL%c^t02Urb%r- zzzg@D2j?&|@t!b)hfloYwNjU2O)|VJSBt9L?lq)PbuKT;EJ-a=@C;)Bih}@zM9^SCIKjx!!tnn;0|OI~ zL6?H54~MrNsHSwUc$hGJv9$6RwQ^mp0)`kSV1}lFy&A7E zOkzqz)0o8^M-GuK^66$gBGWXlRDI@qZD3Q>dfq&Jeg3CE?AP-byveEeKc+u04ijjH!k`HBGp#gSip^qE z?8>Rqa1TNl*~Oog{2(7F1`2`>#14T{V#m=36?H54~MrNsHSwUc$hGJv9$6RwQ^mp0)`kSV1}lFy&A7E zOkzqz)0o8^M-GuK^66$gBGWXlRDI@qZD3Q>dfq&Jeg3CE?AP-byveEeKc+u04ijjH!k`HBGp#gSip^qE z?8>Rqa1TNl*~Oog{2(7F1`2`>#14T{V#m=3LwO#mOMdARTRNX>DSe d3u34i7^pTZty*BHni33SgfIXAGC}XV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/ecma+italics b/usr/share/terminfo/e/ecma+italics new file mode 100644 index 0000000000000000000000000000000000000000..9069f9decc0634f049abef9512531ad8055682ed GIT binary patch literal 697 zcmb1Qlw|+`Cq{0D)a2Ym?aY$IoXq6n8dqmuM_m&O1t_0^;r}QY4FS4^0JikT${-zW KoC_q3fFuCtd5UHL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/ecma+sgr b/usr/share/terminfo/e/ecma+sgr new file mode 100644 index 0000000000000000000000000000000000000000..d0bf048134eeea5af13b28d5849a495e903b3cbc GIT binary patch literal 1057 zcmb1Qv}OQ-TE_bfsmZyC+QsQbHHjr9MVU#ZC8-L@i3N#CnK_vynW@DJY57G8B}JvF z3a-w+j=Clm3MHvUxtV#1ImHYN|49Z63~UVCaD4(mmMDW1gFKK{VbFq#8!=eGRgi4K z0BEqo>)I)JWe32yqgGNF0+$(XGDt@o8s-8?QxE}WS%6sPaKZ#EVE`fxtPR1m5m?p; zECUi#wO1`LR4uVKSG5K)jetxO2-6rLY64`MLPX7gOhX9M9LThQFfBo%K;c{lZ2=uY zT?su&gWCx#i5t^?q<_rVkaaVAf6lGk19?aD>k5t(9w|Cf9A9#{bW7R6@X6#I2a@u z{{LrSU;>i=|FbY~g6aSNc^Fg~G=OYvFkcTy8bW12>L>vwNamO!v2mGcL4+D)y;dZu z2kEti>#=8GXW(U!_K@~skoIPfj#Mo$R8?0{SJhTcRxL1sF&U(tfNB_|T^OXD8KfP7 Op~wZqyj(zvlK}u)ngXo= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/elks-ansi b/usr/share/terminfo/e/elks-ansi new file mode 100644 index 0000000000000000000000000000000000000000..12e480aee534a24c7264a24a159ce44c5d8c42f5 GIT binary patch literal 429 zcmb1QlwnX~U}k7%@McKO$u8DS%qz~UarN;IR&ewS_EbpD&nwQ)No8PQWFQO}0~k0M zBpLqyXJB9glK=m+Fz|rs|NjLT6d6>3Y)vp<7f2dHWkBk%0aG-2D>Ob#j~$Y@0}>l1 zk4`%gp$1ux3yJDMdfnlAJQ>&-cp0RlJ*1L@qEqxqz6L3rKM?006t81K9uo literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/elks-glasstty b/usr/share/terminfo/e/elks-glasstty new file mode 100644 index 0000000000000000000000000000000000000000..3c87714f5ab531e74ebb647628540635e706100e GIT binary patch literal 385 zcmb1Q)M8L$U}k7%5M)Tr$u8DS&q*vUE-9(3arN;IRsi#KLqZ}Ik`oIOlQMHMOEOc7 z85kHD2m{6d1`Y;EhX4N=7?^-0eE9VPT()x%p$1tm7m4aYdU@e`_!-z4c!8n9 M1;o5uK#G$A0H3@LkpKVy literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/elks-vt52 b/usr/share/terminfo/e/elks-vt52 new file mode 100644 index 0000000000000000000000000000000000000000..6d4d697653a167a47292c34bf706ff7eec9f4559 GIT binary patch literal 419 zcmb1QlwnX~U}k7%aAZi$$u8C{D={^yarN;IRtO6*HBv~<&nwQ)No8PQWFQO}0~k0M zBpLqyXJB9glK=m+FmQtD|NnUyR2ejYY;7=K4@eq9WkBjE0VYW1m?5!onQ1|U8f3jz zB&rALwT0`kXJBXGWsvre_F|CsW{{3lEihD7S5Q~gR!vqdFoH1|q@93j7^Gboq@5Y0 Q9f6_91;o5uK#G$A0ODl=SpWb4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/emots b/usr/share/terminfo/e/emots new file mode 100644 index 0000000000000000000000000000000000000000..37518ed6aa8b6349834bfe3000ffbe43afaec1a6 GIT binary patch literal 1142 zcmeHFJ#Q015Pge+NP?nBL`VoL(iLn9Vn=t56Oc^ge1NdP7DiZ5SV%cx$3DkrJ9p=g z#OFvbhpJS<}nLhyccD6 zby?T_lHKrJe==30ufpQIZWaf z1{bVJq{s)ZaCHLL=@zPO4tKCX>@KS)p-z#&ebx`KiO0;skr_P4OL7V@&-p>U%3d7~ z<@T9+cf@^SZ*hcUoZ=lm;3MfzT>U)k`7+F3hdDg?qWlft@dH1p^A~>O59Pn3T@Y8r zU@%QFUNd5LsOQf4+n8M;>G#ZO7 zEp2a`=FU#JT&Y-AwYs}otJ!wF-e@$NdwY)Kx}Mi+wcDLex4XZ8aM0`de!qWsh#ONh jF_lzrPsx-zsHgYkn)Gy8Vr8(3k5x<-Wze7Gd)fF0Gx&@_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/emu b/usr/share/terminfo/e/emu new file mode 100644 index 0000000000000000000000000000000000000000..5f8ef2460fe406cb4b6d04f3c2f049dcaee20934 GIT binary patch literal 1323 zcmbVLOK4M35IrM;Rgf+$A`ZnOJX{I6uW4EdsI@jyEYdV>YDJJpUTxaupEO1MfGa_3 zRqCf8-PnaL6w!q)bfF6sbfE}>2qFl&6kNHH=iK*66VTH3l6&UN@6P0eY^5eNqY)|k zLsq(cN^VOgQA$l(E$M910tkzTT*nU)`p|$au$}YTv#!^Oz2XCFuoj!J8QZYk$r}iw z9lOyfUKb*QJ#u>yb+Wb{$FRqaI`$Zj!@{WWyyKTp!AY;ewoiNPyx3`v&xpO^@mb7a z9=CA^_wW#p@f6STQgUzPzLWa_pYYYI{pMMB|9|6m{KRjkj%Wilk!?52tv@?zA||y_ z2Nfhzu8G#xSN;>Pt+DM}QZ>J<%KE;A74_Vu`}ByO&@*~Lujnnkr;jV@ub;h?_j#4? zepzMTQoAfS_k(`XI&1`w8#!ep!$!^&1doCHxH}LI2tNou1n#ac*e4M;eMJ5)oB(%$ zJHb6lI{GyXfd|3E-~s0omq*2|NQf4N5 zIe)b{Te?=hK6#^Zb87C)g8pSjQkf*UXidmW<>;ZMP+AJ5rBGT5rKM0>3Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/emu-220 b/usr/share/terminfo/e/emu-220 new file mode 100644 index 0000000000000000000000000000000000000000..6883678d94f12edb0acdfac6f8904eeb1700d33a GIT binary patch literal 1292 zcmb7DO-~b16us|-h?-au6OCaO65<4jlFmnm0UIcy7`~bUh6R~uQfQ%t4lQ(A@QcKS zaic3tj6{tlE?oF4T=^T^7&k6lxNzaZh4tJwgI3DMm!5OaJMZ0_ckiT~qMJ@pJH^CH znfGgbmSx->3uD*$dSDqwpSxHLy8Lo3-%BLakD8aD89GX5sG-&eL?TITsM<;0)T8{1 zG(@9xjndf7(E|7;utWuQ>QkBObWiE9$^&{tyV&p1b9$}(H}v+;`8%lhz(?RyjlR4S;(Krogz*%ul^dj==6Q)Q+I&@mu6(eFo-I)`f$U*rn z8Fl460Y4Rc;)Qr68qiXJ?MZCH0D>=Qd&3DgQ9%xU}$(8~@8@61$y4FC_# zpvg=X2!I+;2eyE1;1=#%oW#xavv8QW9dt8H>cwhc+?NvReZlik&h)C3qzK zdRw)C34{%$oTwvhfHaphByw3pPjOa|boC@l3o;Q(`>&gTbVApGv_jbrX@=5;9MF?K zml)K8n4a&@lcbH)G0J9_mseI+SJ&1`CEs6PFPAqqs?{K<)#~-Ft?lg{bl=MZwFaRw z{3w$LVhu1S*uw|PtOFQGW)_$OuJb*YubAqh$=RM|C=Ls#;o3^uYT~x~ST@)6%qjW} Dc$6_{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/emx-base b/usr/share/terminfo/e/emx-base new file mode 100644 index 0000000000000000000000000000000000000000..4be472514cfeda715ef90f5aaf71307689470162 GIT binary patch literal 1556 zcmcJOYfDsN5Xb*#iY^prLEt6A%;Q3(?b%&jZOt_|(K5?hX_|T4H7~omx@vjZ8Uo8Q zf*>fOAQGfNy1(yc-=WLPK7rMX=tbL{%dQX-1$JQO`9HsTo;kB~X48~3WFr|-0d= z6&a$ljD5EFomNColM5FL6Z>LOK2)Ge)><@Lybb=uiSC4o#Re@Mk##h|$1sWWxPU24 zV+Pl79XD_jw>g$@XPteRxUm?(5aRcVi=?lRkysYWux zQrL)C#3)d+ny8UU__tT5rPkKM}y$pT~z3P8Aa4x(sxG=O3X&rt$@?!M$nKx&j zk9{5gGVyuxee}+`pWq}ZQ~waU4;neAz!$;w;A7z9;0ACb_yo8K+zdVmZUJ8cPlHc^ zTfuGMc5nx{6YK{Ez+K?e;LG4E;BIgaxEI_9mi$tGKX?Ef1`mQ~z*ptfGHEhq{#udw Z{o1(egV2dEyn-= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/env230 b/usr/share/terminfo/e/env230 new file mode 100644 index 0000000000000000000000000000000000000000..26c22a1ebf90e6e2603faa99bc4ae615d50bb588 GIT binary patch literal 1008 zcmds$zfZzY5XY}-;*Ug~OpL^YfjUEfh)EHGFc67}i6agW!BT}%D8E!RE{=}I!NI}7 z)z#J2#l^)x#5nQ1dwpn824|bx_dfT1cdxHayCf+v592T=ol7OVt*GH1Cd;*Iwx5Go z1kFalDO-DPuvuzUExS+wkid6IunkkN2#f)Yp-#XwEWk1nV=G|5I#QBXDby?{T4Suw zc3{_6Ggbl{Ty*-ZC;SVz9P02U8N2ei*FGMs|I9a{=T_vqKg`e`_oD9s9+93z^$aiY z%K1$=)cXz}z#t(pwt+F~O8@fvquTzN*O4Y+76LidM9Bnlo1vH2z#@jKcc}5W(0s(hz|O$Sz{SA9AOj@j7yzL>532wG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/ep4000 b/usr/share/terminfo/e/ep4000 new file mode 100644 index 0000000000000000000000000000000000000000..6fb53c1e1b4189469699f73ff68fe5327d2b65ae GIT binary patch literal 370 zcmb1Qlx9$4U}WfG;A2QFFfphB5e7i2A~m_RAit2z#@jKcc}5W(0s(hz|O$Sz{SA9AOj@j7yzL>532wG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/ep4080 b/usr/share/terminfo/e/ep4080 new file mode 100644 index 0000000000000000000000000000000000000000..7f04a5a0bd3761027266abf63fda91baf3346f47 GIT binary patch literal 370 zcmb1Qlx9$4U}WfG;A2QFFtMls5(X9qHK`S;$)yGPMI{O#E(1^nGC<|QWEdF&82riC+R}zzdb!k)p!gU30W<=E zKp+qZ1P+HlAP`vOF}v(FbtG)^J?6{I>@2WF%wYmom}Twwbl|(LdlB|d;=!;ThdCYP zbcV6V7+3>I5)gn4agt189^5#AqS0l;ig=As!>*}yZ~BgGa%}a?=n&^)otM^Mk7auP zW>nvjyTd&mMoGH=(I!t;pYeiM@^6H9eBjgOY5#xp3*UAN*kAJ*mSt0z0dLlM)7x}Z z*f;ZxGfAvXKtU9Y+jvcdjs&j24SCYKscmTHG;jR;wYbf{gtRA b5p_I5p5TMm^eOs0I@6eGnyi*W!+rb!Gu%3; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/esprit b/usr/share/terminfo/e/esprit new file mode 100644 index 0000000000000000000000000000000000000000..049558ba2b94acc37140495825abd62c2f30b3b6 GIT binary patch literal 482 zcmaixOH0F05Jpd0q!JbD1JsOSK%yWBd9-PRQbADEg@_9mE(9$Rf)9c%BBh9kh=~6= zjvZ>xL zD$8n^%;c)h8n&v9ymEBi%GGwh{(DDbXJq1*>Y&h}=BU))Ep&$iRY#n1#s!yLam_7v z`7|j!_eFjrrN;}eS`QfV#=E}7CtrLQj?t5iuYZt5YI=29MP`vDWX?%_r|YDi(?zC` zc_yhN)5rp{j;tX2h^1YfR$P;cr}#>sG?blFWcMgM8|Xm|boUC_fY zm>ve_MA5n$v&^W9q8ug*vC6YWQPoadS-O^DwHL2{-gMZhi8E1qiLPmGPW1N^-Qq~q zF{hky!6jE*bHi;s4HD0NlDmWqc;-dx5o2C?)0g?+ldr^)KH2p88(Af%SC>s>5m`f) ztkAXER#>*$$Q-iFEO}%eSwXgu4df6hXji8h$0So$T*Xr=N>!;Tb)}&+&B&z PTs$gNsZpmvQ-9zWo%qt) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/eterm b/usr/share/terminfo/e/eterm new file mode 100644 index 0000000000000000000000000000000000000000..e4d36d3b1a86153a20fd5d923dde892cd4ae2f71 GIT binary patch literal 908 zcmb1Q)MnsgU}jKf{KSx2l3J8oZRs@>CC*u9EH@}(wxMS%=|nC z21YPq00Tyb0EYknC4iWLfr)_yNQ*MaFem`&|Nm7OOc~69ENd{&7Dze*u`7com=99n z%Mb)+M}x@(hE#?uFe{&-7)UoTv@&#p`5?70(2F4glc6p>kzp3YVum$9+qN?7V>k|^ zFW|NLCS3M5oJCz14NcSTk{B9~7~V3lGw?Dvww2=ifNYOmjp>@dC)wX-BON@I6=~YU!RH zIJz6?fvdYIg%zu{%5sw-^_Tq>oD>J9n6EOH7#oZxqZ%_gOup4x@cb<@Pf}fU|7Y?9 zNw}-V7g==@FA~MLT;o{711gpKu-2~-I0P+M*foNhu&OX#VqGp_W{{g0&>RD4HOk@` ztc`)3W42@t19(mcavNW!lrzeDL3Rcey|1&t*MV@C&?}%vSS?_U&?%r#Sl2;}X&&Lp nRULUuJ|thcyGdBk=vA%NR*Irf1%Oj!GquMy#Vi* z-fORu78zt=;)*pkXRBPkbe)sqI{SrTpB?wKaSsMhAq2jc=)?0;{C+QSzYg<%Iwyn( zVt$u|M2=P7?+T2Tue9@-OQ<|Js%Sp+`l8L#PO#}R_b_z_T}Qo&O)t zKcp`}Q_vVR0u4d7JX+E;OqrJ}c`RxPYJh5>7N`lTgO*Be6|5BO7@{gBu7hgaCy@Y6 G)CV`p_FPr~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/excel62 b/usr/share/terminfo/e/excel62 new file mode 100644 index 0000000000000000000000000000000000000000..af89827965119918168016a7c247a3926bdf788c GIT binary patch literal 1004 zcmdT@y>HV%9DN2PN+l98AW^(jq9*}jNE|1Dx=Nu0k+woqEDT;^5jP*TTeo#S>t+DN zfDi)%17cucWo2b$VPWA9K}c-o-NhC`%|F0N@BQBUecYX;^JVP{vN(;5_DXXHPh78L zM3ZPnRVQ?Ox6yVM@5#zy$pAD=Eo}>PxP&+cPLa>x94_D@RU9wiI&M(qlrzXBVp+L3 zuHZJ-6a7fV$Ed@l>cCUJixI|2hurV)dODSTKBd!+7kG)+c!Re|?OhVzC-K9KnRIqK zeoXp4;WO2j#C^p#d{_EMl94k%@e99E)#CU*F>9@#$VVqKv*!Nq+%xSg&O^5gO_H&p z+cm~bVgsVB+akz|h9v?+G-{Y{t-P?LHz>`CWT~J^<%u_0DhkV&ZMQ_25pGsklh3K~$Ew#I zXM4NZ>~wZ^JkR%cclY*!V1NJM;P5aEyWL)|-yaNy!_nyID2k4c$7ASM*Ys;SUM0V| Iv{IAOHXW literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/excel62-rv b/usr/share/terminfo/e/excel62-rv new file mode 100644 index 0000000000000000000000000000000000000000..71880dcdaa8b006dea6eeb2529fab2a4a2a61914 GIT binary patch literal 1043 zcmdT@J#W)c6g{R$d`Ki>K%#i@&?f-`DRJxsaFswQQfP%*RY(k8Vv*Oxshzlv<9syD zz`_KG0U-tk2E@R?%F4>h!otE2!QA&^OF_*a;7RA+bMD8x*Oq-nsUeRQ zS-%;^(>XN+-E<;$h17qks4rv6jvKQHOYdKdkdwC*du5&NF1ANYx1lK)O4qUR62m=$G5Ns>Ln zvh(;v{P~HvwOLSPO^XFOYu0g|!gczdRQo>R z9$^2eyfGa$r-Az?%q z|1(tXv_YMcY-U94BqL(6f=k8_#w1gv%S&Q{A;$<)X_L9t7ULd?dR7y?L77ciWEGhu zv`*BRQ%aR&sxsFGrA%h|qU<({a*XGhHGi@?{bP-W;tx7+Il!Qo*T o_WMyZ7{u{#I2w(|lgZK1bb5R|n?b$0pjo0pblm%m4rY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/excel62-w b/usr/share/terminfo/e/excel62-w new file mode 100644 index 0000000000000000000000000000000000000000..d534b10d5fe12e37f65350f6ff3d3f7fadbd5e31 GIT binary patch literal 1056 zcmdT@J#W)c6ul3SC`cqiNPz0aLVXep6^TERR<2U@OA1t|j7UbPrg5FLcH*YaSDR*m z0kN_m!~lo^AqEBp#K6GH%F4>Z!oqCMv!B&S%^%=N_uO;tJ@@%pex7D?l&8~_WAB;U z-*WwuHrpGf%m7<;A}4Tb4M$xQUA3gCjiy@EHFc}*wAG+hbBP#@Ek=)Nimp-|6P*H{ zp>uSFu7SnzEUnNQ*sVmZ12+)&5*5ey=>d6?he__xh#rAGp{I#{M$hS`bcp?q*Q>GW zn=zg_-qJhzKp*Lo?0uH`i_Bjq%w)6U`J428rypQHrTRs`=}*G{%8Hn|$S$$V>>-O| z7cpshC+aUwR3^>+-?i85EL|YQ);&N~v9;SX3ufVF1*)(O)Jk)rt z3NyUt#VjtGVy_^U(xPJDr5vOgU{>r`%!pBkDrc%3Kp6pUzG4S?={0HV%9DN2PN+l98AW^(jq9*}jNE|1Dx=Nu0k+woqEDT;^5jP*TTeo#S>t+DN zfDi)%17cucWo2b$VPWA9K}c-o-NhC`%|F0N@BQBUecYX;^JVP{vN(;5_DXXHPh78L zM3ZPnRVQ?Ox6yVM@5#zy$pAD=Eo}>PxP&+cPLa>x94_D@RU9wiI&M(qlrzXBVp+L3 zuHZJ-6a7fV$Ed@l>cCUJixI|2hurV)dODSTKBd!+7kG)+c!Re|?OhVzC-K9KnRIqK zeoXp4;WO2j#C^p#d{_EMl94k%@e99E)#CU*F>9@#$VVqKv*!Nq+%xSg&O^5gO_H&p z+cm~bVgsVB+akz|h9v?+G-{Y{t-P?LHz>`CWT~J^<%u_0DhkV&ZMQ_25pGsklh3K~$Ew#I zXM4NZ>~wZ^JkR%cclY*!V1NJM;P5aEyWL)|-yaNy!_nyID2k4c$7ASM*Ys;SUM0V| Iv{IAOHXW literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/excel64-rv b/usr/share/terminfo/e/excel64-rv new file mode 100644 index 0000000000000000000000000000000000000000..71880dcdaa8b006dea6eeb2529fab2a4a2a61914 GIT binary patch literal 1043 zcmdT@J#W)c6g{R$d`Ki>K%#i@&?f-`DRJxsaFswQQfP%*RY(k8Vv*Oxshzlv<9syD zz`_KG0U-tk2E@R?%F4>h!otE2!QA&^OF_*a;7RA+bMD8x*Oq-nsUeRQ zS-%;^(>XN+-E<;$h17qks4rv6jvKQHOYdKdkdwC*du5&NF1ANYx1lK)O4qUR62m=$G5Ns>Ln zvh(;v{P~HvwOLSPO^XFOYu0g|!gczdRQo>R z9$^2eyfGa$r-Az?%q z|1(tXv_YMcY-U94BqL(6f=k8_#w1gv%S&Q{A;$<)X_L9t7ULd?dR7y?L77ciWEGhu zv`*BRQ%aR&sxsFGrA%h|qU<({a*XGhHGi@?{bP-W;tx7+Il!Qo*T o_WMyZ7{u{#I2w(|lgZK1bb5R|n?b$0pjo0pblm%m4rY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/e/excel64-w b/usr/share/terminfo/e/excel64-w new file mode 100644 index 0000000000000000000000000000000000000000..d534b10d5fe12e37f65350f6ff3d3f7fadbd5e31 GIT binary patch literal 1056 zcmdT@J#W)c6ul3SC`cqiNPz0aLVXep6^TERR<2U@OA1t|j7UbPrg5FLcH*YaSDR*m z0kN_m!~lo^AqEBp#K6GH%F4>Z!oqCMv!B&S%^%=N_uO;tJ@@%pex7D?l&8~_WAB;U z-*WwuHrpGf%m7<;A}4Tb4M$xQUA3gCjiy@EHFc}*wAG+hbBP#@Ek=)Nimp-|6P*H{ zp>uSFu7SnzEUnNQ*sVmZ12+)&5*5ey=>d6?he__xh#rAGp{I#{M$hS`bcp?q*Q>GW zn=zg_-qJhzKp*Lo?0uH`i_Bjq%w)6U`J428rypQHrTRs`=}*G{%8Hn|$S$$V>>-O| z7cpshC+aUwR3^>+-?i85EL|YQ);&N~v9;SX3ufVF1*)(O)Jk)rt z3NyUt#VjtGVy_^U(xPJDr5vOgU{>r`%!pBkDrc%3Kp6pUzG4S?={04ywY z8Qx;3f~h8!{t7lhkWrKI|9>4I)(2t`Fo)6*-Y7YeL%@=eoq?A@I$AYTwZKp{#agw% zNHwJhC}8a&9c|>LVqWstT5vW#MK*Az}LBA@qK)*O6u_#r)Br&NtwM4(H#L&Qi SLE3^r+MGe!7vfV+pkDzA$Tigf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/f100 b/usr/share/terminfo/f/f100 new file mode 100644 index 0000000000000000000000000000000000000000..c775f9c853fbb3ea02c8b440e6e4a47b135ad122 GIT binary patch literal 653 zcmbu7&npCB7{|Ypgk@6>lBYC>8H&=(`q9en`n@Ozq&96F*6xa|{Sig&!Cj8dE|P4-Zlw2sM@qK5=RJ`KldVp@Spsw((Uhk7(n>*zy2 zW0*M30QVs>f+%JfV{TPBjuXcsvjoyuWn4$z^)|7EB6g^E$(~ztoP8YN(9^2-sH~51 zf>WH~92dC66|QlETi3nwp1JqpL%Byy`2Tw3yeB+!e<81U`*Z#~s~?a_RKXAFLNjCz zG7niWbGF&0x0xO05+wX9GjoBm;X@0m`EhF@G03bDvhB{E_6THI(wt|SkUV7ECfy!E zh(T#V3Z{V@4?GPBTKi5gyYBZO{*Gk_?eyGD1el7>SZ`GU5NZ URQ%Vy`4`A4#72#K1k_u90jE<7z5oCK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/f100-rv b/usr/share/terminfo/f/f100-rv new file mode 100644 index 0000000000000000000000000000000000000000..c33a95d40688b3a8fdbde74508486672455cb4a9 GIT binary patch literal 659 zcmbu7&nrYx6vw|WY5ba$h2)gp;yqJD@A=ip7{3Q)fs`Z`W8P?#Uk?*yVJ}N-8_B}L z!otGB!otErlKcfyN;Z_$^Sy7LVPWUi=brC5=bm%Vd);a+idqz4AD>9umet^9x6`iU zq?Q+z9LXddcYRAw%2|e{A-9wbobOPOVSE&xS4Fn~g;XJw zpbX`xpw`ij4%$xQd0pIlNFNdyqn-4lD&u+6n5CCQ8Vj^bSoL!o*u*w=sCUVpAM?C@ z9N;j}s`el1!_bCF59uX+ eq@N6s1Q{el;h&+Vf6dKTAPW#1#r_pgU;PD%$PN|& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/f110 b/usr/share/terminfo/f/f110 new file mode 100644 index 0000000000000000000000000000000000000000..53484991487730a51199e27f6c033dd211e0d92f GIT binary patch literal 668 zcmb7?%}Z2a6o;P|5kGPWT1a>xW-(V6!8CVrQK+Gg<1`kHicwL5+01|oNrzepx^Uyd zg*!JQNCZLzL5mhHTC`}k_-x8I$66U9{rp7T2&?>+b2m)qe|bkfW^ zZLaG3nZ;_YQYk;54a2)L)0Ntbh2(HlN~#8q$U=3lp8hMv9o0uQ@iIYdqiQtJsJw|* z+PKIi#Yt|`LmvZ*a}?x@;tuy1liuecPozOGMVT2zv&{2Sy1-JszRU`%tSR0Q$ML&1 zIS#gzzY?$6=8g0%?|9D#b$0m3CqDCquk5nNH@@?OeVqyIAlAcJqw4?rpB$Z;@Jrcm z{>bBkpusiDpSNaJTbvbXB7t3}1Dn7eVUymR?{y`+ysO?btnXCj&1Fv-?OegqzAoO< zSzYo4>;X28RW&Vz6|y2D`mvJDEAU0P=oL3G&y(sv%}P-aCex|jY$kK$zeA*DnUdpvZ|Kkr%_FAZ{nZ=fzAJ<29_x zIm#7RQcVrD)X96a(?J)#@_l5qXT?czkUP>5Mj4Y9ixW(dmz!sif^?acQhtr6Jmb0i zi&7lD?4|rG@mg%K$s6fgw%F#K+PtxkRN|_ zI8yYJU)qlauFUAO-NVMP34bZ@o4scLia&#Oor(OV)Sp5GZIq&jHU%wO zM+7245P{&LMT-_KTC`}^0KazLp1Y{ z7FYH@ci87|+&(iuQ>rfC3`VM@(%iz;K>5Ju=PTX5Ckkd4t}KBgS+P1-5C5dnN_^&? zI=4|v*Ev-hXjI(99`>=H1M&e!IYu9Y@`zGIZboj352S2s{61ZLNUp*U@-R-PM6B(?BEH;5nVpHLw4?BX6urr*+`nE;k zV)VDr%0aBl>*B2|(k1W3#<8+mwPS@yx@{-W%m| z-TgKfPc*F7dc}pfZ)-Z6D`s#5Vo)3xL*j%O79*k{PG;ig#*z;8!KSfG*u`yMqW{89 LVV)Mv47!EiP&fOe literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/f110-w b/usr/share/terminfo/f/f110-w new file mode 100644 index 0000000000000000000000000000000000000000..48bfe4fef4768acf952c7564a8141cd2b84608be GIT binary patch literal 670 zcmb7?%}W(w6o;P|5jDL8EkryJvv71F+MUrwk%ne^yBe8dl%(Lty@HUa*CGU61ks{J zyEY+61VIEr3l}X~v}n|H=Nb z2?xr4@mn4jMOCg^{$HzAwa!_Q8gf_{&DaDsiB0<}f#2q}`R)EZ)_WxLSHi zKo@VFp)R=|yMc{k3!2t~6+)30eb}h2DhNck=n-cz-1lFV())^o)iu21xfi()`r5`$t$6vX9R{N7kPA=zyfo55}!`565gHjD+-X=l(y F`~kNt_Dwx&;liEO1AIt*DVF$(x7GM>&P<4(Bu5cZma2BfGKpf)8s)C_v zLZNgx5qgmI6T^;Vh+$x7;AN1G_K=P?@&eM{Kn$W)GgS)=Ra2~03yf4#Jb(gD3>-kx h8HgQ$*gO|Vn1Bdm3^7EOL7qX5L54xvg+bbv0RU`@`)L3G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/f1720a b/usr/share/terminfo/f/f1720a new file mode 100644 index 0000000000000000000000000000000000000000..13837dc3b8736d9726b637bd1f2678b113c96e80 GIT binary patch literal 423 zcmb1Qlw=TMU}b1#h-XMMG&eG+0h5U}X*s3YsR|$wM+OYQ$PmEr|GxkbGXgOK0~3(^ z|DT0{hXEw^|Gx->Dwx&;liEO1AIt*DVF$(x7GM>&P<4(Bu5cZma2BfGKpf)8s)C_v zLZNgx5qgmI6T^;Vh+$x7;AN1G_K=P?@&eM{Kn$W)GgS)=Ra2~03yf4#Jb(gD3>-kx h8HgQ$*gO|Vn1Bdm3^7EOL7qX5L54xvg+bbv0RU`@`)L3G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/f200 b/usr/share/terminfo/f/f200 new file mode 100644 index 0000000000000000000000000000000000000000..70f088231abe5892538a1d4280000d304587450a GIT binary patch literal 679 zcmb7?%}Z2a6vlrq5{fAjh{+s~3Fa!1*qyOOh>DsY87(vm2@&#R1|w{AkU){3g$oxg zLR<(fTKES@5FrQ>1T9*$XyKwo3l}b21VTgv-Jbg)jO~2kcb?}xXWsLkd+(%NhGweR zz+55c`>TagK0jNW5AEH@)A`cUa(XaMrIiCmyh3#@+McG8it;1s*hrA95fv)9KqXfQ zZ@WsXY8{O6fN>_|Cz(>55qai#A}vzlnKTGic+LyCHP(44eZ^*!-{LiI*p}ak_VHzJ z<==_-VwXMkr62gnCqB!4;VTDx<2#2OajeV_PWUMe*RMo>CmLtZAOG<8Ob6$Jpw3-V ztQSFWIg0=HO*tFZE2_ojeQzP_wWM3TYu=2vkUOvLFJmKrW%|5 wQO|~CG&fv}>k+-8PuvpyVn7UvA#q!WN8|I+R8!a^Y@+NjsK)MKny3K(0OP;@Z2$lO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/f200-w b/usr/share/terminfo/f/f200-w new file mode 100644 index 0000000000000000000000000000000000000000..4fc13603b73716671b696a1aa81e8bdd657e2cc0 GIT binary patch literal 681 zcmb7?&r20i6vsaoiNcZyLgO8X3En7D+Pr6r2ouX+DK7eD zlXX*xDvofJbEMU;kqgRQ;SPfgF)V+CQQ4fx^N`2VA|)oIVK~i8Udfwfj(O<bf$r|fyu*nwNitMnK^JMHtpa_Hf;lvtE6o8f+}^$1{F|*WjP`bN+btz{OffVFTD*Y^35D z>}tiX@tG2N

_yluG z^UYC9s;mxi&5m?5H#h@4xm&FxP5@j(guIljhYcGggoS;m87}%nM1*vlp}}PI786ATK`mOe zh-eYCXwe@aL4*)Q5VUB~!bOV~En2i_5d;w;c>UcEVQSY4&-tDAocBHF+>e|aq?=|Q zW3EyRf_k<8#_h@Kd^x;+(;ExR<%Qakr?}Ve6^4plsdn|6SE+?wy$X(W#p+zL-3eux z_{=?3-%pgSv&!tEiQOC^ug<+3RPG2DxWp7Q@@JWoEr~K$Sd`WXsY|2i7I(NS?>-NB zD1F3}B>t3VJm-b{)nuPGdnx~wcrDg=!&~V)-t&Qv@;2Z+z#6B0u@XZ)v># zWV(@Q8vTE}$<|*LoQtBpu3ff6L{VpA|E-&IHlbJ4hAjpDa>4KMdi*}WHr$9fE>4J(;*=N_V`5yK*5z~Q{bZ^+>@qgf N@EEAx8B7yZU>o+*0c8LH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/falco b/usr/share/terminfo/f/falco new file mode 100644 index 0000000000000000000000000000000000000000..c927125d8300c6e7e79bdc31868f9ce466b34465 GIT binary patch literal 460 zcmb7=O-n*i5Qd*yf*)z%E*uCqC&7=n*90MO;ld(lAt8hiK`I&|sD13*`?GIzPUl{v zMbW@J^SpCrW^pP(g$s_^vts_Tnyz;r?~$q%?QX2CT7-bVBN&q7j5vlP&2gL|%c-L> zb(%_-&V`!Wst#S}?Q9a)zSE=cXyEc4_YBk7k*9Im`QCo={`p5gxozvjzs-D||1x{H z_aA;uZ!Yx*N=O|U$!(ZJ#z@a>B2%l@Ov6mgrkx-K&h`I_oFI?L1F}UHkynVkDQdC$ Qlq+PQ8$np|I|cH50eMvN*Z=?k literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/falco-p b/usr/share/terminfo/f/falco-p new file mode 100644 index 0000000000000000000000000000000000000000..e4b59d214f6d32b2cf2da9487f6e5b05da7a5566 GIT binary patch literal 513 zcmb7A!AiqG5PhLYYr&hKIG4Sw1*MQ^@gOKvYpr-tR45uSw2{VuBx#L^pobo$_|@y| zW)s1K;K021=FRLo?1tlE6E!UGg~{kCOxxLe{_JUJGxoJ5v=*;%{wT6h6ep2Lvph}{ zz(H9Km)1W{wZSDCSm&{ZB`B^snpibz4X)vi!9B)(?n89VtZ$X-89lJhIWCO4#*o>^ zJ;rvU)WoW!a*BlMueoqbd@|*%3OfXP{#^r3v@%LZi6BhbPGC= znI~JKCAVcLvz=0c{3HHF@{hT@pdsiA6g+^Yps2&`adSj42F(ho$2;1kAOxM50P+XS Ky(*@OWqboiH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/fbterm b/usr/share/terminfo/f/fbterm new file mode 100644 index 0000000000000000000000000000000000000000..eb923bcde08822cc1f87b8d50169aa539d966fd6 GIT binary patch literal 1720 zcmbuAO>9(E6vxlK!$*~m6jKa#B&md#(13N`eQ&-p#IZnW1BC#AP&+}T^TCXC+B(kg zA)RTu>IM>s2}uJ<2?-mFNflTS7lPI<3}K-Qzm~XgK}fVFvLKHCbKXoRwJvCUGv|MP z=iKw|yZ5|1ZL4ahjnqtK)#}R(6w`(L=_`>9>K`m6OT5Y20e_o`jV=rNhNYgS}Pp$MCS=5e0X6XTaCtQE@uk;(@$F(tBYRkcZNQ60*`+9R;-s#EQT=W9>Rd(mRukMV=5UnSKbsH7@t0{-H^?wYK{Q|h|< zR86bT)g84;SF3AbjjMS+Y5^UQs87EmJ~cm9ug@;Z)JGQj{BzbVysHrn>ykdF$MuB1 zpg-1=dP?8;pEEY*UPzxTao%bDg}$d}^|$(a{lgOPUHIgsM}O9y_f-3Q&vW-$UyE-g zts#HH%2^|}m5Ny-#!3~Ca85va{E0nqdtvNrMcobb>U-!#qh$VE7J0JaZi+j(e^MaVF@SxA^k#AT8-_5thwhk=;q-9ZFK%8b;-gW1j7O(5{b zn|OSXN8f_=(iqgKKz6`nImYJDi+PEOT`XM?JIo_?L^R530>XkUTpD5svUnR@!<~?2 z^5z8g)qx)>8D5M)Zyk6l$?z-!=vC5x>=5}QobldHiu_@2HP6U0Sgb+2#ecqQ=5d&`c0mU(*O_w01;;rl9F+dlQ6RcUti zE6v(rr`)PFD$}NzGDTPx`j=&uF@i}Zv>sw;J&aL|8=8QNG%0IVIqDK)1tqhVUai;2 zM>vi$Cpa^7jtlxFu5gW;sMhV*`j+dvU%C5V-0SK4gQ-47Jx`H8;{~t(%)PPp&iIIW zKJi5wu=@A?OJhIPxTS&}#G#gXIE vmc2IRn6iJ7l>(h7lCuQDc`q%4v?}5;l03$qj2Yla7i7j{WY9nXG5!wU-`y0w literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/fenixw b/usr/share/terminfo/f/fenixw new file mode 100644 index 0000000000000000000000000000000000000000..1f73e3468a655831aa03a6d73c88f794337019d1 GIT binary patch literal 631 zcmaKqy-UMD7{=e=ccJK}cuR%^1d;aAYL%ASRtNC|>S{(CX`o3%t)xTU1aZ*C!NGsP zO&lB?930%-1XovASC{y_*GMxNxaax3Uw226d96azG(zVzp#@!;&4&G;Yq5nL#}E5Q zj_>xue!b&*j;VY_wW`MTF`IHYMbd=Q+`B+VfcMWa|zG)_}AqiB{E zXc3fAk%TT|tx`$F+#5v|@G;+xIujra?=r*o#o}W9!_lev?f(IQ*eN@$_ zxaT?c7kZ_)f9Bp%`@s5)d%ox!^b<$P{f9iF{qdM4>;p=ZSSMlc2)hg07Ip__x@I8F zM$rr`v#~{DlY~*j3l#PSi9J{yi@hvc5Q{~wK=Vv%5G%`+V<|Mb$~|%)BbEorH<^kB z#Vj6iwxx(8VHhQR`Ak_DeAX^skI%26QibD2d>5O!EOR^vYf?G|QkUm31sE9s&!`L! KDyUKlzrinoy&Pr$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/fixterm b/usr/share/terminfo/f/fixterm new file mode 100644 index 0000000000000000000000000000000000000000..1e1d2da9f76b33079527d2cc0947df9c6879cf06 GIT binary patch literal 554 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 UzADtdYC`q#nHicEm>H+90Khc=3jhEB literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/foot-direct b/usr/share/terminfo/f/foot-direct new file mode 100644 index 0000000000000000000000000000000000000000..4a19b851f7a40c0fa29a16aa7d4f3c65062739cc GIT binary patch literal 3465 zcmbtWdyJe_6+dUbk3ws}Mokq4>H>bHVyW}JXZp1ry4!7cVRvTOM_oIt>0|aW?Y=rY zwA=1(s{~&VqN1Q^nxGgVzKF!PBr0k&{9$5!V-pQ(6BP`ou_PGA-?``8CB-EnakBUK zJLmlFJ@@Xt_q+FA!JFtRdM(xY!HY(xr<*s_>Wz_u%>}XBj@6svZ5n7hI6X1lXsb`v zM&{~MW5i5^KLv4?ekNX_OXyA1TIqMHb&ANQRj6?}t)~riJ#9wK0^LMCRH1jkekY9r z5789O(E`02_WS8B`Y_!K>mm9geFgk=`VM`MendZ|GxS^df1_vV-}E0?Hn&tkG&c^$PKq=ep28XIee8-1c9Y7cv=3>Z}H?HCC(j#*`(#-g=95z2#bY zt7z@AO4c6hUDl{IWgWFnTJN*&wmxQk%KD7;dFxT@+t%aO6V@5)N$V-=FV?fxdFw@M zm3^7L&R%bCus7S0z1{A#d+dIDuYJHiWH;;+_U-na_C59|?N8ee+mG1N->d(9)&8#i zL;KhE@9aOlV#}vjP@Y>M_Ue1pn&;CTFWBXavemtGFeGoDjxAmEPy zy0TU8Ch*ND!fCDDFPYk)i`F32g;Mmw349_jTyMg-<8V4qc4#p1LWxvRdMP{XCD~gk zyD1|#?iNzSdV_H}Q~F2vbwm>CwK6?s#?^B=dhsug2(IGNhG>$QX?w z<1j|gk|Euhi1cKPfhA)HiGNVSo-^+*IyX4A1C%`o{ePw*FO76-)F>OvGWU{GbY==p z6RYNoV7{FsTg^!!IkDoX(KfkcBxOh_L zcP~mYmaS5ZvEt=ju>3^UK&DzekXe@HpjjLB!sVb$oF{8v^@6mqECm{4^@Xqjgme$2 z&Ek~vDHoKzT*|0#GNuFag0x-|YVJ^ThnhP~bEi8jQO>7aP)2SO_uQ2Ilmlfqi8Obl zxg*UTrMb{Hj7&o4S#ou+TT5og5DZ}GNlF+voEezfSk-KnYXg~prr!f?^q@KRJgvv)7d z8KgOb|0gF|c&~KOoiuMT-Yb{jy|S8KM_15ww26wei+ZV#Zl(S79{K=%i0-4)^jZ1> zJxbrgJLAWAXZ(`R(jV!s^c+1;En3Bw@*6nI*YI2Ml8Et+=;R*m$17q#kMlGi(!QHWzUQg@rCc2W|OxKV@ z8|iI$8MzcuLN`(;-bW?sry&}q12jgHG)u>EtiBg7qmR(XG1>>|Vfqrr`we=G9;csR z#J`{?=?`>{o~D0b%rBD7Yj`cM<0~=hjl7uy&hs|Be|BT!x9}dWGWLL%%b5e-82I{! zUDuOUA9lS&)?rq+0B*72FpVJYrExDO=Q_@8Ikc;7M`U}*eJB?0D7d&!a!~>>M;-PJ z4$f^(bKDu3a76cY*WwP54CyzRelC8Zx5Ltb@9ViAD1}OqQmo|bK@}*4N|92mbTDTPXrQmiBwA*%RFfl{axDaAsbeAZP1Tjh50&BJB+`C@J$+%3J%$RyTg z#}M`HZl|FE>L^qDPHOL@js|tiQm0S7vsCG%NkT*|h literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/fortune b/usr/share/terminfo/f/fortune new file mode 100644 index 0000000000000000000000000000000000000000..518ed94a2a0f6fb00c4b7ba9097bbe595b66eec5 GIT binary patch literal 650 zcmaitJ4?fG6va_$7|GxUf7uvz2LsHyhUWjWDS0!cKNp?z3xnzgUArHwBIpwZf zm?`(7S5jP55Y}OW5Q2p*g$al&lH#HE66K_V3Sj|)AEJMg2%-x@0AhfKKoET+BM=w$ z!i-)pfh+OgwumqhA-0Jq5hHepUBX8c2$e_@WunM~H^U4o_MP#;16!g$ZO_Yvf#NW@ IIOS>l0BNr?0RR91 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/fos b/usr/share/terminfo/f/fos new file mode 100644 index 0000000000000000000000000000000000000000..518ed94a2a0f6fb00c4b7ba9097bbe595b66eec5 GIT binary patch literal 650 zcmaitJ4?fG6va_$7|GxUf7uvz2LsHyhUWjWDS0!cKNp?z3xnzgUArHwBIpwZf zm?`(7S5jP55Y}OW5Q2p*g$al&lH#HE66K_V3Sj|)AEJMg2%-x@0AhfKKoET+BM=w$ z!i-)pfh+OgwumqhA-0Jq5hHepUBX8c2$e_@WunM~H^U4o_MP#;16!g$ZO_Yvf#NW@ IIOS>l0BNr?0RR91 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/fox b/usr/share/terminfo/f/fox new file mode 100644 index 0000000000000000000000000000000000000000..210f592dbd033e25b65e1f1b3f9319304f53906d GIT binary patch literal 445 zcmb1Qlx0w3U}k7#h-FC2uc#?VH8eCZs0m0d%FfJFaLvh0Em8o9FfcGO5C)740Sy2D zO8_wg0~3&BVPIzvVh{zg{{NR}uwt+Qvh2Y;M+O%LPcRE4M?CN$Ll5z$Q%_|C*qu>8 z|MN0P8#73INPDT+7#bVdF-UtdfY_#brdmKwgld7Is=9)@sp`gQ`$AX!5O0Ox=PdH?_b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/freedom b/usr/share/terminfo/f/freedom new file mode 100644 index 0000000000000000000000000000000000000000..c775f9c853fbb3ea02c8b440e6e4a47b135ad122 GIT binary patch literal 653 zcmbu7&npCB7{|Ypgk@6>lBYC>8H&=(`q9en`n@Ozq&96F*6xa|{Sig&!Cj8dE|P4-Zlw2sM@qK5=RJ`KldVp@Spsw((Uhk7(n>*zy2 zW0*M30QVs>f+%JfV{TPBjuXcsvjoyuWn4$z^)|7EB6g^E$(~ztoP8YN(9^2-sH~51 zf>WH~92dC66|QlETi3nwp1JqpL%Byy`2Tw3yeB+!e<81U`*Z#~s~?a_RKXAFLNjCz zG7niWbGF&0x0xO05+wX9GjoBm;X@0m`EhF@G03bDvhB{E_6THI(wt|SkUV7ECfy!E zh(T#V3Z{V@4?GPBTKi5gyYBZO{*Gk_?eyGD1el7>SZ`GU5NZ URQ%Vy`4`A4#72#K1k_u90jE<7z5oCK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/freedom-rv b/usr/share/terminfo/f/freedom-rv new file mode 100644 index 0000000000000000000000000000000000000000..c33a95d40688b3a8fdbde74508486672455cb4a9 GIT binary patch literal 659 zcmbu7&nrYx6vw|WY5ba$h2)gp;yqJD@A=ip7{3Q)fs`Z`W8P?#Uk?*yVJ}N-8_B}L z!otGB!otErlKcfyN;Z_$^Sy7LVPWUi=brC5=bm%Vd);a+idqz4AD>9umet^9x6`iU zq?Q+z9LXddcYRAw%2|e{A-9wbobOPOVSE&xS4Fn~g;XJw zpbX`xpw`ij4%$xQd0pIlNFNdyqn-4lD&u+6n5CCQ8Vj^bSoL!o*u*w=sCUVpAM?C@ z9N;j}s`el1!_bCF59uX+ eq@N6s1Q{el;h&+Vf6dKTAPW#1#r_pgU;PD%$PN|& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/freedom100 b/usr/share/terminfo/f/freedom100 new file mode 100644 index 0000000000000000000000000000000000000000..c775f9c853fbb3ea02c8b440e6e4a47b135ad122 GIT binary patch literal 653 zcmbu7&npCB7{|Ypgk@6>lBYC>8H&=(`q9en`n@Ozq&96F*6xa|{Sig&!Cj8dE|P4-Zlw2sM@qK5=RJ`KldVp@Spsw((Uhk7(n>*zy2 zW0*M30QVs>f+%JfV{TPBjuXcsvjoyuWn4$z^)|7EB6g^E$(~ztoP8YN(9^2-sH~51 zf>WH~92dC66|QlETi3nwp1JqpL%Byy`2Tw3yeB+!e<81U`*Z#~s~?a_RKXAFLNjCz zG7niWbGF&0x0xO05+wX9GjoBm;X@0m`EhF@G03bDvhB{E_6THI(wt|SkUV7ECfy!E zh(T#V3Z{V@4?GPBTKi5gyYBZO{*Gk_?eyGD1el7>SZ`GU5NZ URQ%Vy`4`A4#72#K1k_u90jE<7z5oCK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/f/freedom110 b/usr/share/terminfo/f/freedom110 new file mode 100644 index 0000000000000000000000000000000000000000..53484991487730a51199e27f6c033dd211e0d92f GIT binary patch literal 668 zcmb7?%}Z2a6o;P|5kGPWT1a>xW-(V6!8CVrQK+Gg<1`kHicwL5+01|oNrzepx^Uyd zg*!JQNCZLzL5mhHTC`}k_-x8I$66U9{rp7T2&?>+b2m)qe|bkfW^ zZLaG3nZ;_YQYk;54a2)L)0Ntbh2(HlN~#8q$U=3lp8hMv9o0uQ@iIYdqiQtJsJw|* z+PKIi#Yt|`LmvZ*a}?x@;tuy1liuecPozOGMVT2zv&{2Sy1-JszRU`%tSR0Q$ML&1 zIS#gzzY?$6=8g0%?|9D#b$0m3CqDCquk5nNH@@?OeVqyIAlAcJqw4?rpB$Z;@Jrcm z{>bBkpusiDpSNaJTbvbXB7t3}1Dn7eVUymR?{y`+ysO?btnXCj&1Fv-?OegqzAoO< zSzYo4>;X28RW&Vz6|y2D`mvJDEAU0P=oL3G&y(sv%}P-aCex|jY$kK$zeA*DnUdpvZ|Kkr%_FAZ{nZ=fDsY87(vm2@&#R1|w{AkU){3g$oxg zLR<(fTKES@5FrQ>1T9*$XyKwo3l}b21VTgv-Jbg)jO~2kcb?}xXWsLkd+(%NhGweR zz+55c`>TagK0jNW5AEH@)A`cUa(XaMrIiCmyh3#@+McG8it;1s*hrA95fv)9KqXfQ zZ@WsXY8{O6fN>_|Cz(>55qai#A}vzlnKTGic+LyCHP(44eZ^*!-{LiI*p}ak_VHzJ z<==_-VwXMkr62gnCqB!4;VTDx<2#2OajeV_PWUMe*RMo>CmLtZAOG<8Ob6$Jpw3-V ztQSFWIg0=HO*tFZE2_ojeQzP_wWM3TYu=2vkUOvLFJmKrW%|5 wQO|~CG&fv}>k+-8PuvpyVn7UvA#q!WN8|I+R8!a^Y@+NjsK)MKny3K(0OP;@Z2$lO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gator b/usr/share/terminfo/g/gator new file mode 100644 index 0000000000000000000000000000000000000000..1a6fd6cf70cb037ea5fd16f5074bdcd0469dd27a GIT binary patch literal 544 zcmb1QRAUffU}k7%IL45kSdw2<;}M`>X<%TWkei>9nxkN3Y_5=+Tbh$tl9`vT;OOYc zz{mgrU>d?Vi2vGsajyDnv#HETB{Zqsit@^Z~=upfI%r8 z?aUzU3#0;o7(|=r!Uz)(3mH2A`945BTtLhVG5~CNfQpTYz8#F`t72oQh2T1%Ncun} RLHd$G+JR0SG)8L3)esH(1@uBxq?tXg0M jV=_oP0hKXGyD&&QGe|oE0}>SG)8L3)e vsH(1@uBxq?tXg0MV=_oP0hKXGyD&&QGe|oE0}>kDIM+1AngmJ0)QAqo9Ds^6A%j-I{^7UKs{VQ%nLFAYVQZaBy&NaMaD! z)zwu5adPtK#B*;$Y(aX-dED=w@5{GhWRb-rp6~V5~S8u&1>X!?NsXjV_{1tN=dGY-L#{b zy3yVst%r1dTq8;=aeSlwZBn^Q^d1j*97>H&{JT9TnHRj$y^Za7$4B!1IX0)Jf8iU` zSb%UE!m*pwJwmDUWoXGxQHHkcG%$x57HdR>C=_#6mzq~JgpzQ|xqy^cw4um06&F0x zrU%ig5(mT~aYP(*LW5c-IKHLEm#sjQw0dHjsyAWdz%V&5Y8(Aj;d){pv%K?9ngjd- DsGl`S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/glasstty b/usr/share/terminfo/g/glasstty new file mode 100644 index 0000000000000000000000000000000000000000..53f72cfd56b966056cb7b8e85bb47dc8c951fd38 GIT binary patch literal 407 zcmb1QbYxItU}R`#5N1fvNh~fdDXFYU1~D>|6~F=tKoNz^ypq(Sf}+%t%)E33$6#kq zPle?Cypp2)9EIeJ#G=GxpmZ?<&>X^mks*NL|9=JsCLsC$KMR-yvHt&O1G71hL?GhS oB)Nz%orefD$Zp~zQ9ZKW|NjLU*co^kco?`CIKY^fi-D5?0Q)l)=>Px# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gnome b/usr/share/terminfo/g/gnome new file mode 100644 index 0000000000000000000000000000000000000000..6266c34f166ba9ac87cdcda0698a06a996d7e873 GIT binary patch literal 3029 zcmb_eYlu}<6khx8L%z_lhiKkNO^#9#-g}<+cBo0`;T@fsdwqyj6GwK7Yy|b&_)<3&B-&8kwVOvkRqjP16NSQw}mqO>NYp|!NK*MPQ zRff2R(|z!-REQE}(Kwn&x1r)4$oN!GIclT@h+F7>;0m->S_`aHO2AI)1@_Z!dI-Fi z9;1Ww6g^Kz={Wi)=^Z)^mg}Q9`Vo8~jxT~Q#c`$bJN-pk4O633l^Um#YKoe!?ow%0 zsRU?ut7=uNaw?B_ky@%&fvV(OBqt23v_7Lh*Jt(j`X~LX{!=Hc5!P61yfw+1Zq2YltJ<1v<*mima;wc6`i}oQ zTeAABervyV;2JZZ9zr`ZMDD+<46VEndmOjk{2$zgu5oqtl=Yr9j7C$kXm{A%X}dMD zyB)i=2MMkju z?uD#7=oLMVG8~12;BjQ`X$e&!OqCg(Ic8=lnL)=ZamGw>%+?|xn&qCvya?;$Jhc+K=0WxVHnPNILm@$}TbW*^4jw23g5d@s);dy?} zbmYL52~V8or>;)pP7JS2-UBwz!&ObtG!XDClW80X*xY2;*95RzZ5FO4nMoE0o^(q0 z)sH9-j;g6tsszFDv9P>S@xHaffOm=ur|fFGJFquKX*=T3LFh^7BXlGT5oRPz+ug3+ zkA7%JWuB3>H;%E}s_cl8IT``WI$E(}<;pc{+S@xi)~#E=zEmogJ3G6&y1O@Q=;`V0 z-MDenrp=rC`nGJ@x^>&O?c4kNckI~7E4UO58)p!EdV31XSC1ZVP0@{bxr-hHme%AW z$83WrNSeKno}fp`bv9mL+|9ZZLja3f#fN?_1b2ecZPv-kx}S@a8uWhfFJn zK_{TvE=H-e<9dD&X0prhiWj-L*~rWC3E(m~2KlXZ&9}fgZy>@8Q& zI!_nq5?#ix`ABuWnxH1BY4|1gRHSC9231gt)pFH_LK;WiXu5&Mqt;}yQEdi!ltsNd znoIL&F)gFjsMtlDXdBL+2k8;oM^B*YVLC=9=yf_t@1pL<^eKHwU(-4I0hNEFKkz`; zp>~zJN!_e&Rd{e&W1MBY)ULcK@n*V_oK*wIk1MB;C*%tSLZOf=pOGiz3k5=E2Cmq^6&tu>16ORUUkC*V2?z}c5eT(; z39CS;K&U{dK&XZJi=YCb0-*w-0-?@t;JHAkK&U{dK&UMRZWz!~fZkGo+){wrQV8j9 DV3Rj( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gnome+pcfkeys b/usr/share/terminfo/g/gnome+pcfkeys new file mode 100644 index 0000000000000000000000000000000000000000..777894a264489c307f6ce8544e7b96806e99d09d GIT binary patch literal 2064 zcmc(gUuaxK7{$+br51y&_^1BqR=TukZL5&I_s-m1SCOP?%vQU*u30TzP?MU}ZPHCm zTdfc(BKARxPy`i0MTDXt3W5bGl@>%Fq&}z!BB%%|C&JIsYmuN+&b3SzO^_$HNUspo0#3OzxdF^e0SnN zcdl3D&!Gb}mgW|(n>^T^y}#SrU7Vbq+cmQhSUe{mt-GvW`vR=MrMLnGti?6hj1n^3 zj3N4?Y}?SlICkJ(K2P`GIVa2hkD`12*UEbNTL=5^F5q!InfH!SpAX|N_x;7i<9Gva z<6WG_hxizu<12iRpYc2X!TGXMR>>M!FPkKm8)aCwNlSLhr0kIg<&ZooN91XFR$h|h z@}``S_v8aPE1$`i@~!+RzsjEyMFY_#(duYjv@sft3Z3LI3XNg5CJLRnq`f=XT5NZ6 zq~ti#DP_5qbFHYxgVe^DKIy{pE1s|on<@Ab|E`# zM%7pjtQeV{kH-uN*~T>QGuvCXw`_0OK4jC?0lTr#w0M!$?U|k6U$C4 zI|6^BYc7{@C|<8+5QcG;XE0Ti{(mLE7!^m zl1i1QyCzM!Tker50hVC^7vVBog{!d+8*n|VdEA6yjG@kYJ8>VTF^hRtT)<;Ef~Rl{ z&*4S9iq~279h}4&-l((qly$$xclZgv;1B%G%FE?K*1lW{qGvS!^^>ZeHumx_G3<9z zwVSYXxDz|$slge%Au}X)(o=&octd7L^cHZN4bI>VnIaC~j4de+=PMk6r6nbLdzfNy z25-m|-cr1!cuVn?;w{D56lYVMO>s8G^$XekP7TiB4VghNJ=c;LQiC&iLpFq&ku8Zz zs^V0=sPw2bsdV|Dk}j1ll`fSom2OQd*0f?xE7r7P zO)K6$I!=d5i%O45lS;R~LtQFeDqSjFD&1!5F1l2@RJv5URJyI2zDuP`rAwttrQ2?5 S3$g6h8Oerz{2Kv_cp$R9f1?%yj5NSqdmF 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 Df7Llb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gnome-2012 b/usr/share/terminfo/g/gnome-2012 new file mode 100644 index 0000000000000000000000000000000000000000..e56a4ffa3e6e30566db577f45d941e6647e4e2d2 GIT binary patch literal 3039 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 S(4e&ly|oCrwFtGf7}4LyLvZ^5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gnome-fc5 b/usr/share/terminfo/g/gnome-fc5 new file mode 100644 index 0000000000000000000000000000000000000000..392a6e27681064f30303d5a529834ca1fc7594f5 GIT binary patch literal 2927 zcmcguX>3$g6h8OeQ5FNlg$RsjK_4hfn77aPfQqGM3hlgMDG~;f*0#`X+A?ifN&$_y z5EIk{V-QV16B7)ES@G=nD4%VIFGvAd_(I(I{}H?$-d)mK-nYAqGpyPLWy+Pf=iT3dQbO%+u= zrPd0MNT?sFN1$@mGg1?I8cma^e2r%`JpezEK?#~jQ)oKIFbf`!YA8!}v=Vj$tphfq zv``zcTDci@o9nSO@>o z`UscJpOfa2{V+Hm__%JbOY{KNXS`6;x2 z#@IK~>wxi!aah%k0^g1OACBnd@^Rx+JS^Xo$K-MOnfyY2BTvfj<&W~LyeKcr z8xrFZ6BAPt(-Sij*Bk*lVtyh@to+YCuOIW@D(m8$jfsx`C3}BjOJWp_qh!Hs zH+wC!B{X|&v!w)wvk{O@7VM?qWhl&Xt0h-V-62b3;mV>^+Flo4RAsb*s!$f8WTpC=q)JWFg8c7yXMMit6YTuPiqvCb}xEYs9ukD`sRw^}bA=^rU z5wvl$V9%_Gb;vN@)W8Am+pN(-Y<+?HGbRx{&_%BUYU&_{dfh7As^+VJ`*1L2z0 z!j+O~%srmvwBD9g6&~-dClT|Ye4|sDNdX+E6rZt><=w7WYdP}YSS`% z9diivzzmD5Wz7EZX6pnqq-2)HpmQ}fHa0bF*syV9dwWMmXJ=PevDn?+)6?6#X;Z1x z*Vo@aFtB;^mMvSiZre6ExPAN3(2gBDd7ajxV0#o|x9&?}p=wa$4JbGvFKWSMutHn; zLt8DjQX*Tew{GRdE?yv;ce7w~$H>O=MmF!I&6{cK-PC=oAm((;8O?SoW@J^7;*r>{ zsz)Bj^f;!+F}*lud`3de>6kN`5mWhXD`qEVS8?QXOrK-=9Mg|us?&sVYEH+T(TteN zkC>XBm~psy?heOvIHtofoj9gi9mLd}jya03HQXXs}-hn&CTPt1*CEWZA? z;p=~=;Pb3j5_bL`}(@Culg1|-Ne&PJl(|8 zO}scfUed^A@EClCfI(f94&Rn8gU8@A1dC|RD(YNZiQDSj!n}Ib&VTDkwlmKxjaSK&ZJj ztOB6|p#q@-q2^bth6;oVgbIWTgu0@Z`vRc?p#q@-p*G~Xpg}_(dP5#^Lmp~FKA=AV D&*mg5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gnome-rh62 b/usr/share/terminfo/g/gnome-rh62 new file mode 100644 index 0000000000000000000000000000000000000000..8b6fec71924d1ad1a084174fd8d60834b52edd9d GIT binary patch literal 1524 zcmc&!&1(};5TCb5t)B%&kSu~!B3M+qZ?{P$^vfy9kR-~8tH=FRMzmn5J9be!7g zp-LIqV#ymn<>x|rC3+#5IDd3@-1qXubb(08haHF@GkJbSDn+eyn5w^dTB#p8kwH7? z5Cy0mJvps|BGdymAkiQ&3LB!N#3R7VbXEA6V2(WU!4{}OtMIq!9<9p?S9?%rkKiBI z`4jl3bzZGLqYZjNuV|BA(_4B^AL%pJzQVr4lxk6X6j!QN+tfj2)_F~7#$)QF>XMvZ z6;&y)D@{ADiE;yYQ{7T`;P1lji`raqy-D9_Qfj-N|3PoAxuv}Pr#+kMje4g(s88yP z`liTeG4>i;wYHNTFpe1QMu%~F8{S9Pdxnhu|I$5fB#fQ3k4!h150`V8(}F zX8|$O)p7VC82ewcVzir6@Ut}CLD&E+1xwI=pyiPnHr+laoI~U=gdx?y@$jc$x*Y4c zBo)kV1Wuu@@`{IraE?W@mrMDGt%x0QBB5ILFj`+HGkF%qjkUD~b`f?7HUh=!g5p|X z!EV7bjJi`0kUWPl#1W?^agHRPqt8N9@j0^xUWUUxgd`dSoomW)gK#;?;fV<0a(_Dt z&K~AzqHv6M(dcM8Ju#8Z=JS)2Q&WY4=M{^kQn@@m?fWw`v$Jz^^YaS}i;I=Y($ezs z%F62M8eaZHCpz&6T!%s1f;BF4&~i>KbI>veTheXKnYQHHl8<}FS0RHjx}hQfbJt_= TYpwd+H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gnome-rh72 b/usr/share/terminfo/g/gnome-rh72 new file mode 100644 index 0000000000000000000000000000000000000000..ecf9a0aff2f10f36771426138050eb58bf500116 GIT binary patch literal 1618 zcmc&!&rcIk5T5s96g9#H6J>)bF^|YW(|x;ifmJ~fZLnBGOi0!c8d};yw=JdoE`%5l zTs0b_K~4BqJQyz?jM12Q@W8>7Cr=)%Gt&Z^Y7B|dm(Dle%=`Au&g^cRL@TsH13VF% zGMUZ!iPMFYqf1w=MF;uN(84+eA?Sd!(2G$YL=XqjhGB$vZy}DtIP(nSG|a&=vNgC3>*ycA zV|dCtRCKe-o}+(J-i>Bxjy{w6dn_?7MvgV3BXYL~27Z1fFu_4|de^;Zcoc?|%UoRUa<(e34YoGW{ zzE-)LIk~56PRTRUmR+((UX~F#BuC`vp03}m`?pzK=44Tp>+;?|slFkf z$pdf%3{Rz1-c)f{<+X|zFcCI9-H-k%8u_0DVK_t*v~Jy=!4H#33SBSS1++o50jNhb zeJ~u{w;kHI2^>sS!1nQL|B8P9YWI~Y3&b&wGudI`f2MI?=4Gf`@$+r+x;Q^q;; zJSwWeWMG?M9P3Sn*&{&wzasD5=!S)>*FdZCJ-6|haMb}g=QH|8DP*deCRl?X& zu1|ZNs#vcQ4ax;03gXoWo4B*$3ZjV{M&-aXpEjsplQCIu5g~E=2>Z;rRG^$EVnc%E!JDC$JYm6 ft~fplFO)^V$EU~9lhG5VUM-#wMfNtsoABW~d(~n_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gnome-rh80 b/usr/share/terminfo/g/gnome-rh80 new file mode 100644 index 0000000000000000000000000000000000000000..68af555bb69b2f566ad0bd3c1414c5264c971b76 GIT binary patch literal 1653 zcmc&!&1+LZ5T9KITfz2J5FbJcZlR(y?;~Hl*jU?YsHv&7LLpKbnlwq9m%gTH`juAc zO^OFS3ijfmhYEryoxiV-^(e{1zpe% zkHlMAX)?AheIV#8Hgv`hp>B_3C9cul4-M`H?m%Q^rJGOBqAxucDFvMG%MMBteTAfg*mGO!DaZ(fZIv(1xK6 zQFlNK;k*^1d5a)~sXAE1xbisuWoRkCLud@KzNm#Uu!;yIBZ~#{XQH~_-_uK+XOM*Q zB-47SP8nm}Hf_re*4HQCHZC+bKucaiqX#o|ims!LqTRrZ9>7dW4>5)rBZP*Z5g|E% zVUQw{Ch?p}I%iDBy6p4X1@wFts=;JfJMu56+PQmamN<(jI7aY)$?%|%qDO=a7a4O$#pVRAB^o}SL-3Wb@O+1X;zaZ07R zIoF+^FP9eYISL8d3j}Jb#-m6R$E`+z(coUQS3D%w!Yhsj5?XJ2n=d*%BXX0 zr@`$qxSa;K(`316kkVwm$$EUb@YT!UZKQ%F1iV3G3O$(_v8@Q*J)PO)PElm-F?^mD@y-u=l;|MarXvU1)cg(n`Z3p|Yhdbho7~lt-x; z9}zW*j~^%@!GstRUqllmQA{*O6H$Z47)?k-Ln1#6F$NPgnDsj|cZ&(&iwJn{+bjMI_ zib$wGQa^#tUw&gfk*D!Al`5C`ji>qW6B!hvDKw34Mg2SA@n|unsfkv=Zll$}wP;1^ z239J)z%mUgdqm*_^awppd+2%EM=!$j8ofzx(c4O^R6dRPEcoZhJ_r6SvMZH8NQiOb zDp4b@6E}$&!W6TFB|K57+=VtzED~waBv!y)CDw@b;J^Eo#jx0=Vs?vX#6DODFBo|ETg zEOvEla_olKrDuG3Z#-5Pn-z0n!G9ik`JDe&nIF|`h-Lqm>g};YY#dFbc){#3`z^B= zn*Fv}9Du{=0;J;wdntGs8gmr2&1(zjBd~(v;}B+v}T$Fv`Q2Y zpt}LVT#dC0CQ=!*l2*^ zv!BCr{H#`JBP$c0I>%35Z($~iyW@9*)zfiRWi(d}9;G}@RfCf&59d_|rz`!#^YIcz z+f>9t^Tu$EgjsL)`{qz+nIW4tOjnzh+3%Pm=m%z4Vl8D3O)@)c%#h+~x)OsMY3C3Phd?JqsQxAa6(?gg3EyQQvT3ZYpax;t(I3ud6A3P!sg8@*gP<2V|VVIH$uo9nR@QIo0YQr{-kD zDb2{KR}b$*^z52l)z7({)8(8la`H*Sols=cF9Yx@+3UdEoK)zh_$B1?<){P7J-2FM z!%O^WCzpEYDTA$XxB;fnbh-`SXN!_lk1upHwNioZLrgyn(}k(SYNT1ofPI#leV&9oi&!9%p0o}}kc^#Hv@uh1KGl-@<%kLd(`MJMTd zI)lpR=y&|1as_JFi0ko%zgh4hR?CO`g;z7$^k|=)P~RWbE5Xq>gR9BY z#n)Lp9pdQ_PltFq#2YKbZ!8LF@-+FH0!@5XBE-?;YVtJsnt}z?-bx!A7C8(qgU8@A z1b{3z7PBm7S#SB->aK)y@ ztx$lFfY5*tfl#yUtOB6|p#q@-q2^oefeM5QgbIWTgxZqfu|TLms6ePdsBL*}2x!Yg OZ_7h&%R_C;2lOXCJ|;o{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/go-225 b/usr/share/terminfo/g/go-225 new file mode 100644 index 0000000000000000000000000000000000000000..3576f2210c9743b9fd0d01cf0befe2a71e669899 GIT binary patch literal 699 zcmb7AyGjE=6g`85kIq6!9Fa&^!9q5>CPWD)#0SPljE{1wgh(PpvnC;d;4j!%Y2$}j zh=qlPg@uKMg@qva4>F#aEJ4x6%bv%*bLYONJ|`;l#K$ zy3{kA+1c*fBC~q_{5k{ zDkP+sr0SRow3q$GQ86Q=XB}F;W0g~u?^@*sq?eQ424$1b`eQwZ5#7N@m)v$*S&mQckqPQoKfTO`EIx((IV4k>Z*X zn)HUuydJq_uCWAJ;1vqH#2&HFl^n4`1XoN$E;9Rdp4~n4?Pj&uIIvsAQuCl?w_8pu T200Izgye)ghPjbv8m{3BEiXBG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/go140 b/usr/share/terminfo/g/go140 new file mode 100644 index 0000000000000000000000000000000000000000..84e1cbcf2995388037ddded4f488f8783601bbce GIT binary patch literal 617 zcmb1Q6lG9jU}l)f@RA`t-_XRMCcP-JAR|9dAw6Fg$Ymf3Ffs%%a4<+P{D%Vu20jKM zFkgm2A50sANmC$c3B)~W?YK*|Fs=>!aD>1bylb_C)8Aoc}flMEnXo(p1u z2rwfD$^dd~q-~|6?TvGQgn5p%h7-^ZX>;jl>mq3jpknFhLI(Y+%mV%5jKrc;{gT9_ z;?xrTvJyiB1E3K;4ATBiKn%3XKM;t6fH)W^4s?va3lIaH;tz6)y7%w4o`aO>C=zI6C+j+#DPn z92^`R92^`R9R+c6@>kT87-F}A56-#g+}zxEl8MYLrZI#oe4`#{Ira3s-gZJSXi4>8 zj$UfCBrU5;hk<|GY)Q?a<^mZEJ{eqK7~|-r2N=az>?fhbH5>Chd66if82j`EinXLu zffcLWnD?*`C!KYvE{W^3^Sj|D^|w@axW_}<>Gd9C{giZ`llp>Jy!B1>XZgQ=Pd0uG z-290z2)it7y)w0=sme0lI`QY^h8$|LUdzj&&Qj*X5`VO?SBN69NmPlPM>3j`iYOL- zB50OGLD**2BN?8UDe(?r2s_^v3mg{q5tOq=sB}E1?J8a8pyPIxldh(!T(JRRl?YyC lZ4ukV4*LvatrCo4MNv%67tt4(nkNbnRg6T&h=Q4hj~}oAK1Kil literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/go225 b/usr/share/terminfo/g/go225 new file mode 100644 index 0000000000000000000000000000000000000000..3576f2210c9743b9fd0d01cf0befe2a71e669899 GIT binary patch literal 699 zcmb7AyGjE=6g`85kIq6!9Fa&^!9q5>CPWD)#0SPljE{1wgh(PpvnC;d;4j!%Y2$}j zh=qlPg@uKMg@qva4>F#aEJ4x6%bv%*bLYONJ|`;l#K$ zy3{kA+1c*fBC~q_{5k{ zDkP+sr0SRow3q$GQ86Q=XB}F;W0g~u?^@*sq?eQ424$1b`eQwZ5#7N@m)v$*S&mQckqPQoKfTO`EIx((IV4k>Z*X zn)HUuydJq_uCWAJ;1vqH#2&HFl^n4`1XoN$E;9Rdp4~n4?Pj&uIIvsAQuCl?w_8pu T200Izgye)ghPjbv8m{3BEiXBG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/graphos b/usr/share/terminfo/g/graphos new file mode 100644 index 0000000000000000000000000000000000000000..7a627b3360e82156489541db6917107b0427c7a2 GIT binary patch literal 577 zcmZ`#J4gdT5Pi``g;`z@2l!Y~AK z_&d28`Y?i&2Rim(fYVYBVH^`=lf)F37)w||1Ce&6Lr#;`u2Bw5K4d<^F-}e0?rg_1 zYUf@0MTcLKUEvxx9VJa~HNP{;y~z(<9o=_l{89T)c-Hv^uXrPS|7Yrh`X|2dZTuhP zVbuex?v|LB3CZ@B9XobI*|BRk0t)j)z|XUinOWtkf+{3d;!iVp%27^2dx4l^gGb+? zp&N?@<$B`Qhzj9FS@5^X1YR=>QkCTud9TWm>MF5DtW%Rc7K!#lc}uunQ|{G7w$!AY Tkxq{cX^SfsVfm2p3i|O2=1vMM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/graphos-30 b/usr/share/terminfo/g/graphos-30 new file mode 100644 index 0000000000000000000000000000000000000000..c789400c88690eb79d71587daacf6a3a4b1e91ed GIT binary patch literal 595 zcmZ`#J4gdT5Pi``g;-d6AO~_-NZ>Aan!r_lkR&E1YMDxic!8+Vh=EhE5yZkmEG#T6 zEG#T6EG%qoZEbCB1wjzxe6!h$XLomTF3e(34wy*uWQ%74PM$}f1u z8`=9mQyU`*vuA z8JEHH9p4FQ&k-|h@aQ`7Ea2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gs5430 b/usr/share/terminfo/g/gs5430 new file mode 100644 index 0000000000000000000000000000000000000000..6640ef9e893070e99b99b7805bca48846a13aa95 GIT binary patch literal 1183 zcmb`GJ8Tm{5Qb*~@e&A8fFiEB6bAwcX>WagfQca(6U#}20gL8R*usvn<5$jh5+}9` zB#RqyTvBE+05CDnJ#$EdM#HmGX<|&BEWvL?wQnL&LuK;6B)DR*8l`e zJR%K;VG6Vc*oUh10XPOHnNEWR=aDX=*$_g#3^9nq99QSzHr!*<+GU@G0+f;J(B`-U zeR$}1JodfT+eoiRk=8ptzkzp1AK(-0!Wa1ZM~Bwm{OG&yfBaRYsVASG@CyzK%AXKZ zVjAfJN0bSO2=a^{Uqc@kH%Havh^Tk`q(=Fkcr@Z+{mDdTSQ-1Ld*~T=@135B=i-HU zDPDdytUML2qmjRX7OSAd z(Pk-lfRaXAM6>NGYLJA*X|pQU0IS0qWDSwh=)_D%ge=LxxBJcsZ^`ATD{(Atgd=qv)O93+iPp<>l+)L&gSOUR=3;h z_4{~9e+7Z@Eq>6V`yrbeB74N8cN5$JI`f^r@zFGbbVyFhc0l~y- ACIA2c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gs5430-22 b/usr/share/terminfo/g/gs5430-22 new file mode 100644 index 0000000000000000000000000000000000000000..bbf0d9a1a0969f9627684f6a45de7e8880107c7e GIT binary patch literal 1179 zcmb`GJ#5oZ5XbKU;!7aJK!xz)4hDf#$$qhuKxm+Z&?s%C01=BjBqD7{nyihygLc!qf#OCI$uuR`j^L*a;|0k+5|C``yQTzLVv1A`NHYAY2fi zMZVQ?OlL;QUL$~_=hz{WQghk!Sv`}*2EE?YDXY&Xvv-qOy|dEvO7)s<=~C*IQfBpel6;PQYoVDKOw7(hQmfVbm)ShXl-XbpdX}Jtn1G_BmLAGEyDd z9Cu*=5B-kEzE^4o>Gdd5YS-sC@DAw%e1bjr0$=~=Q0ki>efRy3zp6C#>MQ8hIp>K#AnQNAx8jX0=3naBi{v46Uco^kj7>6v&g zUWk|CmDmxx_>Q;#@jdVV@ve_zPaJ`hpt&-wxheGK0!bRhXjn!eW;CQxpu!C_@;A}q z6_f{a{2t~YOz=@udP)o)oQI)uQwX&>&>R;wOZ|Vr?auKx!LV*ZEbJ& zdj0-jfR|WS%q$PRg?<`QMrc|q%6gep@{W>sl)R(l9VPE5c{@p8&M470E8Ia0*Wfpq CgJs_U literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gs5430-24 b/usr/share/terminfo/g/gs5430-24 new file mode 100644 index 0000000000000000000000000000000000000000..ead33f945ac23d717bf22d18f000b965418d4631 GIT binary patch literal 1147 zcmb`GJ#5oZ5XbKU;!7aJ0IKT69Sj1glKtYOUl3GE)GBSI02YfG5|K0{bz;{}(xy!_ zbU;i@OiWBHtOy~Hn3$NDn3$Lt7#LXTt3Z^iU0&0 zS^{!#8pc2=fMcjioq%(2k?ArRa1Ch^&4Lu_ETmxp7CE~Nci{n(QZDa#C_xp;hbH@N z=)zuH@g&}rdV}z98>iY2d4S(RIp!fwb zCMJ-svqzDAe3VMWKJmUv4YJb%qT1n_9mIR*hZ&;UAbT)A>IFxr8LdAmw?s$miKpV3 zcrISxJ6`_B_q_VYyIza8;uM?*&6QcrUBca5Cdr~0fn^luj6fPiO58@H{SI2%Ls>wZ zC+9Ir4s8|9vTCSF5+<9HQ$v@@Bqg)yp4iES4>PXW>~&(!nM;__+=QpOH_&XfG}=wH zTXbp#|AbysrWqlb7OP}Uu-dFi))XnV-tU^HqplfN`#@82WTg*uh$D280f&ABXW_wYj;q)oyQZ@9cCsySv>kXcKsgoT6^5 iY1SE1$umfvLGlceXOKLDbhpJS<}nLhyccD6 zby?T_lHKrJe==30ufpQIZWaf z1{bVJq{s)ZaCHLL=@zPO4tKCX>@KS)p-z#&ebx`KiO0;skr_P4OL7V@&-p>U%3d7~ z<@T9+cf@^SZ*hcUoZ=lm;3MfzT>U)k`7+F3hdDg?qWlft@dH1p^A~>O59Pn3T@Y8r zU@%QFUNd5LsOQf4+n8M;>G#ZO7 zEp2a`=FU#JT&Y-AwYs}otJ!wF-e@$NdwY)Kx}Mi+wcDLex4XZ8aM0`de!qWsh#ONh jF_lzrPsx-zsHgYkn)Gy8Vr8(3k5x<-Wze7Gd)fF0Gx&@_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gsi b/usr/share/terminfo/g/gsi new file mode 100644 index 0000000000000000000000000000000000000000..5e5d97055c4e09e509c512f365d0b445a3e97d73 GIT binary patch literal 352 zcmb1Qlw=TKU}WfG5Mf9!&aBC;EG|hcs#E~76@ZM~%)G=L1}I>J(=81D|1&T!0ZCNA u0v2I|i*vwPTyPeuj-kurh5Lvf%o1c^XW(VvV&GtqVvx=NGB_EeJs1FAzzwzl literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gt100 b/usr/share/terminfo/g/gt100 new file mode 100644 index 0000000000000000000000000000000000000000..cc9ff857ace12d75db11af96bdc90a9d3b00a9fd GIT binary patch literal 456 zcmc(X%L;;E5QUEw-LQQ$8yEfA4Kg7JiXvKcGicEZSZD~QB5s0Ky||4+E&ff*2Ik{C zGsCo$B|0eL1qDq7K@k3R;6!pd;u4vYG9Dq7K@k3R;6!pd;u4vYG985o#=Br0G5i?A`U LGw?ES0nG;h^mZK5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/gt42 b/usr/share/terminfo/g/gt42 new file mode 100644 index 0000000000000000000000000000000000000000..4cba3d31b0ac372570ba51c24db0b0e80872210a GIT binary patch literal 108 zcmb1Q^=j2BeIlWaw8ff+CM~UP z9Yn;z!NH+J!44u03W6dIf*t(}TpR=k5jVv_M0kGZ=A~VnP4b=ZJ3sErIroILh!mZm zUG#;vf!OstZM$s(xiv!}IP~wO4P=XcLx5 z3pcFj2)SGIiAtzzXLsx)@kD2yi`U|vcn|$Sd=g*5-@_BXMIeOSE$e3v$-^=xPs2Cm zBJA>Zrd|;QD`D);KXN-&|4-eM_vHimP_D}jxhWsZr}CM6Az#Ti@~u?-H;@BHfFZ!X z0TX9qS!GyY^tYzj}X0B!CT4r5~@e@1) zXd0w%ojccJs4mcSEyAOo;#qZ`d(?s()q>Zf1@Fk5!C!{*7l|X2oJi;$w;II>;=9$Q z;ns_|YQ1NpgUhRF*Kk=TjA}BJ)=o5ORP8XDGOF=Vrj4otiLK^oZ@rU6h;dvlcJ85J c4?}swfCpew?;J1+oChud7lAS05^$OR0x~V@%m4rY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru+rv b/usr/share/terminfo/g/guru+rv new file mode 100644 index 0000000000000000000000000000000000000000..f2c32c03ba0625753ec89f2fa1eb385c1b26ea17 GIT binary patch literal 180 zcmb1QRA&GIV+JXP^wOeI?V_?85Ur4$k(igBTC9+kU!+i!T9#T=oT^ZknUb2%!0?}D c0AaQ;gLJf=sb!9ejiG^o9hjW~5z1fy0Gy9@+5i9m literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru+s b/usr/share/terminfo/g/guru+s new file mode 100644 index 0000000000000000000000000000000000000000..768593ef14b5075f21ee21222a423c1167888bcc GIT binary patch literal 402 zcmb1Qlwc5KU|{HA@L@{r9qlb0?ICT!%LQaHFi1xmnVMP~0wuvT aNE#?+XKI)Op)x?aR0|AMQ-D%N-V6Ze=^%dq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru+unk b/usr/share/terminfo/g/guru+unk new file mode 100644 index 0000000000000000000000000000000000000000..2f6dd54377aa297d466f880928b906055f4a8938 GIT binary patch literal 1274 zcmcgsziU%b6h8M_ZKa5VgV-w=HBZ4%`;wQJyz)ZYw6%@>^=j2BeIlWaw8ff+CM~UP z9Yn;z!NH+J!44u03W6dIf*t(}TpR=k5jVv_M0kGZ=A~VnP4b=ZJ3sErIroILh!mZm zUG#;vf!OstZM$s(xiv!}IP~wO4P=XcLx5 z3pcFj2)SGIiAtzzXLsx)@kD2yi`U|vcn|$Sd=g*5-@_BXMIeOSE$e3v$-^=xPs2Cm zBJA>Zrd|;QD`D);KXN-&|4-eM_vHimP_D}jxhWsZr}CM6Az#Ti@~u?-H;@BHfFZ!X z0TX9qS!GyY^tYzj}X0B!CT4r5~@e@1) zXd0w%ojccJs4mcSEyAOo;#qZ`d(?s()q>Zf1@Fk5!C!{*7l|X2oJi;$w;II>;=9$Q z;ns_|YQ1NpgUhRF*Kk=TjA}BJ)=o5ORP8XDGOF=Vrj4otiLK^oZ@rU6h;dvlcJ85J c4?}swfCpew?;J1+oChud7lAS05^$OR0x~V@%m4rY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-24 b/usr/share/terminfo/g/guru-24 new file mode 100644 index 0000000000000000000000000000000000000000..d714b0bf0ec17e9e4608745596ac01937463bff2 GIT binary patch literal 1252 zcmcgsziU%b6h7x#ZKa5VgW4w;G*7`&O{h(sce8=0LcU!5mnGA~10Iux}OYDTDu4!~=mU8Hpr z?V%Prg747Uqh2b22LY{zVMl>68aKYyS7?%^LtO^X(-N&3|2EwoUa z=^N}1;3x2l{-A>fmgj5T$j!W$_wjzV_%I*kV3}UYfa;*ly^q6uFNqQ z%_efDOPQ$NVHa6RvV1h{BkaTVF@)a(oCbOUOzancGdKngI^|&iYU%@z6m!eBf}p>c zUJ}k1UBf-aq~Y$OW4Oz@OcrWygtfv_D=f9bQY&m~F}@=+fTls_)}?bJhUx-M*CI0N z37OU8rAH&AQ6pqMM#zq0Gx&3`f<=lXf*8%9LGALt?81+FkEt5n>#di=F#u*vC-*FyI52)IST10_TA9 Mzy)9oxCmULzjJouP5=M^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-33 b/usr/share/terminfo/g/guru-33 new file mode 100644 index 0000000000000000000000000000000000000000..2f6dd54377aa297d466f880928b906055f4a8938 GIT binary patch literal 1274 zcmcgsziU%b6h8M_ZKa5VgV-w=HBZ4%`;wQJyz)ZYw6%@>^=j2BeIlWaw8ff+CM~UP z9Yn;z!NH+J!44u03W6dIf*t(}TpR=k5jVv_M0kGZ=A~VnP4b=ZJ3sErIroILh!mZm zUG#;vf!OstZM$s(xiv!}IP~wO4P=XcLx5 z3pcFj2)SGIiAtzzXLsx)@kD2yi`U|vcn|$Sd=g*5-@_BXMIeOSE$e3v$-^=xPs2Cm zBJA>Zrd|;QD`D);KXN-&|4-eM_vHimP_D}jxhWsZr}CM6Az#Ti@~u?-H;@BHfFZ!X z0TX9qS!GyY^tYzj}X0B!CT4r5~@e@1) zXd0w%ojccJs4mcSEyAOo;#qZ`d(?s()q>Zf1@Fk5!C!{*7l|X2oJi;$w;II>;=9$Q z;ns_|YQ1NpgUhRF*Kk=TjA}BJ)=o5ORP8XDGOF=Vrj4otiLK^oZ@rU6h;dvlcJ85J c4?}swfCpew?;J1+oChud7lAS05^$OR0x~V@%m4rY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-33-rv b/usr/share/terminfo/g/guru-33-rv new file mode 100644 index 0000000000000000000000000000000000000000..4092bc73c2bf11855223fdcbff4590a9eff7376f GIT binary patch literal 1278 zcmcgsziU%b6h8M_ZKa5VgV-k+HCMq>%QxASmJ>*wMeh#i8IJ;-)x=2+!}_ytIq6Nxt)a=f{0H=bn%b(M_jl z4}GC6Ik!|<>a5gnX*NxknNlf`smv@^0vzlz&A>vjRH%k3g?gbaPT<=;&!R!ff=2<*8;6|)rf6FGo_C#QY2Mc*aFv#6 zP5XD~p5}GhpiQk_(H4Dz`b^(oe*iy$U-SnpvZf1@9OV1?nYy(X8F;$szrR6P_-l^wwk5=%}(kN)3{vh f+(E+*hH}OM2f(Dx1z-}m2wVa#15>~i;41wEaH8!( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-33-s b/usr/share/terminfo/g/guru-33-s new file mode 100644 index 0000000000000000000000000000000000000000..86679419bc6bb8da8270b7a53995ce0bd238e26f GIT binary patch literal 1343 zcmcgsOHUI~6h8OX2#PFRm>4E8jbYS4(9TS!Ee=-7%kmsRL1okwEJ72&N(&JcHvR`U zZrr%g7>$3y1q(MWjB%mH1x6Q|7-NhJ6R+R7GeDwyC;iU%oyUEgdvDqx5_E`S^pWaf zGfRt0EtOlE90w}5un^BJPF-D$bL^Po#OF#2)0O5*b+WotArhoN!3=~H1;Z4A!&FOg zcspn(DOF4L)IbNZrcy5TP#!!0C^ZB-3XIbPUDA;iTBF-qDRl>Ym+sMh?LVZ)nxD}+ zJ%@TnALtwH6-wS1ZC{DEI=XHP zD;JJXYCVd)_$RYj@qhWHd@bL|_i{silAq;Q`Ca~$zoe3}SWV0bCa4DYXavp-Ox_6k z8rv*4m4(ya*yb|#0cP1UZ(6HnvspaFZixd$&n(+!F;8^}UqJ^M zDKdPt>LcvK_0hWD1#|;F0M5zJ1HBjq4%&G#05zM(G+fB8tOY?|A#)Kyit5)fX#5U3vY7A{!Yi&IU z3LZRo5EK;ZLBxZCh=>QF9{mfvcn}0ZyeS?;Wc}u4(_TEA@XhzlkGDJXCZvU9w2wB> z7kZ~A=4R$vwO%S#DzW0s*rl16L}FUUrl%?wW{H^0$IzONL_LL?^VCcUcpIsS!mydP zQw#0IJHpVV9`eBbKo}0f4g(`JYWy%fN8>aZ=?Zw37HHY{*XgF=d-Q--jCx6{^bzVa zeS`f0`~-f{A7b9b@_f9TxA6|%$-8(r$2iXWIl)QRoaKB}(GhVsdt8fj{p`A3;U^~Z zoL}=QzlZ+7pZF{IdvxMAlTxZlHO{oCJu0CN!FSYU*u}L>qaqBKqS%dpXmw<-YP2?rOnu*6|_yjcvjFG&pU3q0H-gWcZGWayXx3i zon`x=T|O%AlmyB-yPC4g9&JU)!*9b1x_}}u1PlP~MHokn)>YW7$jqA2q68_|ts0wi z&_iDol}y2HpF~T^WWnfZNm&_bwcW~+D4fkD@zpxlp2?xIYGvzP5u2z z3Z_jNsnKF5S!uF-bnPST!}T$R-whlAdH{^hBQY8RtgVW}0CT4AXbHno^PB{P5~LFU?}b0Y>C0!`N=GU@@D z)#Rl|BcxFyWIsm8l9E&Scd&walE}CuQfA4mc6p5Ca!qNp_A>6;EZROS<+V)C&WTLf zH66*e^{BRMZWK-1H7Al8yOxE-T0Pp*=wu#Z6qk#o`)Jt5Q2rp`1DMo54h#b)fRn%} KU<5b~oT0y1cjE2< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-44-s b/usr/share/terminfo/g/guru-44-s new file mode 100644 index 0000000000000000000000000000000000000000..fa8e8d4a58de8f48bc3db335c7012f30009b0999 GIT binary patch literal 1337 zcmcgsOHUI~6h8OX2#PFRm>4E8jp_J+pq*i+El#bJm*qKtg372VScE2k6$%j*HvR`U zZrr%g7>$3y1q(MWjB%mH1x6Q|7-NhJ6R+R7Ghm{7C;iU%oyUEgdvDqx4$}dO(FdxF zO)o7hH9Jo8;?4a0d_2D}d1WEav7?R?pDoW%EjBGyC#p+}M1u4un1PU@V3^|I5Y z+-|^<4 zD;JJXYCVcP|0lCq@qhV+d?jDYcXC61l%M1m`AzY-jK#)rJPSp(>xN|rWjLPRG7c+-uKBBWGnaE)XR!HXGG_$P zvnbEG7SkMWq+qlf8RFIR?CP1kq=&^bN&G5CCTukt+Lp*V+{fWy-0t(5Qt^y@HBaCtTDnI22qtU8fw`4e@_ zsvAX9X4Q&h+N@?EamxkTf$4FlGyJ0Tj_|5%eoWd~h8V|*BjBS8AD#MxfDfR3e;616 PP64NZQD6)>1DvJbAwKkc literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-76 b/usr/share/terminfo/g/guru-76 new file mode 100644 index 0000000000000000000000000000000000000000..0c2148df41392ca5c2b733f4bbccd8ae3808e917 GIT binary patch literal 1259 zcmcgsOKTHR6h8N=wW5Lx7t&D}BvV9N%%qt|m=OE2j&0hhRjYPHLK|rUwFWzV+PV-F zT)1!{C@9p0hzkV~5f?&T`U~8+5ClQoDK120{Lam!-MBX4JKuL6cjlaXLRv&CwbCZ~ zLht0{?3LMe$6jXE=c`dgcWiyCI(>0QA79knoIY`RYKBOV`Y2l0iKwSgbB>y+2yZhr zQ5-kZPHLh3cvBo()JHzJ2*mLa> zMjxR*(>K^3z)#>8{UIT?2!1}^Ep~`qVz<~M_6l93!~xMJ(jqHdkxwc*6Ydqhh!R~t zyJ1(w6P0-`UW+yH9{Pj$B))>bCntUjl2SIw#+eqmPqxX!@J%@nyR@EZRK)Re61(w_ z+(y;^Q@7-8c}L!r_vJ(RNIsTNhQIzYQ(y0lI);U=Xk_!I*3uy9Vnjxo)zo z7#Yi|DeIZ&VIYZereNhNXepg8C_Tj~&EZyanoF#3)=T5-*q)p7P+8O5de=D1^_{7F zmIo=O@*M@$CXdu;v70oTv;bWP2nTQjOcC?~M}a;7BL_Zk9LK<6CqE28O=IHWQep90 z81|Rk1?H|&R&j61R@_s{DDKwIlZM)*q?Va$nYoskYnfFo=Fjj9pbAJ`J9n`arsH;ld6|l#HMf$V@Vml!>u#)92KxRXQSRn~(%*7~-^6YhAeL z!i5VLA|j$LL|iB+h`11S=`V2OLJ$|?PH`dP_???cyK!y8cfRkQ$K;%QhV%%B_EQ^u zp?9*f+*nRz?8K6PS;>fF7ivK@=FeBkv4vWtQf|b8>U=%6RI8U`exp_o$_*kx>Z52= zN1_?xoDJ%v2^_akJB48-G(wsVn;aOUwYNYGn^R!Cq z>U=L`hUZINvA|VW6 ziC%Fy%IJ@HSd5D0NH=S@?0xY_MV^Y6;;ncO{Xu*ZU%}s_ir+%WHrXLtHJaQb6Ecaj zDOX|FHY2T!FkFv(8~=!HW&J;OOAJR)l`B-B|$@mgOt!80cX<@^U0^^;XeRGMQI;i9=e3TkX}d#0s@e65ovN z7^yVF*RsvFQOpH>@m!iGnTY37dDSP+)ar47G@CRRZM$&0IJy|a9Rh}d5dbs01z;3q zV6TrK1|X+3@^mqO@rvh-6|<|%{l&E6p`xvLuxKhC(9V#C+)Gg|Gv_jME;Hvct6W@w z$uoeeAa(EDxe}8tfu@@t9`zv4s^Z+E65OZ~ydWibOUWAkIy7&E*t5t1Q*Ak+mllX` zSEWXKFX6J)ru8G79%LNdVQK0?I+Cd^Z(0wm$ZP9?5y^}mWFfKF0(G@IS%H|t*|oG-oonBv>(Y&R@B$Sk~!Zz~N)Dtl>j1 zAwBC@Ov`+bywPu@iFePjsaJAiE;dj1yO>oo(m}1^+<|B&!R3!dGx4l0jxQoC%pW8p zNrs17J-9uX9%}c7fiu7efQ$0-z&T6<`vbfffSlGnO_s828@^vCrEfFmN(s%wrKIMe zlC62rxJm|c*TY<9&SmCYX3k~SxhUKY>bDoLn|>@lxfbIsfkOu#F7*`Gs^fe{E%=~X z@T+RUPa9jr-^K7(i9OdjVC&ZCH7jMp4F{=VvsBOnx;@O(oZd{irpwYcn~6}ycfAR- z>4e^-*|b8LGMi~gJaeA*VR=020=JYt5!%Y;ZqmjoL=iU*hleUWRO(Ft9)R+_^S~4^ P4O{>&0yDrR;4=LI2uSoU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-76-w b/usr/share/terminfo/g/guru-76-w new file mode 100644 index 0000000000000000000000000000000000000000..2fa3606c81d5205e1954e8b22856c1d9e728e0b2 GIT binary patch literal 1258 zcmcgsOKTHR6h7xx`arsH;ld6|lw3h2kV!K$DT%Rf)92KxRXQS}jkJYYgH3B|tqT`j zxNzY@L`2kuhzo@ZA}&N-`U~8+5X6PJQ(TBRe&=S=Y+Rf0o$tHnF*)a+A#EI|{nS8T z=$)Eby110^+{C3TqGFyKo1a@aw-}pRjoDr%Hhp1!k%-BB3~lL1R71$wq-Gk%X&W_C z7&cQYwb4HOP8d4WPX+KW5Qd|$nsXSQrD>Xt^a6O1R%qRvuhE9#+jN)i8}*#t z&_}4x^bPh0@Dun&e@Jm7%k#sqgHZ z{XcbG-B35xEp`o5x`&o^yl; z0bREBn!TC#a-&WWRx)#a2f6=*wL1-u(p&;xV~3GV#;v0b%reDUXF5wC0AH-g(X+mj{-h`N&REMIB*;| N0h|OTfK$L}`U}*6=iZZP7BM>2e~6Z$zAzXev^Chhx{dfOA$I8Y7A-aG#$k| zYHs^HhMeXOMAC+p$iT=)(iZaopjQli)3~d*>BW9F%j_to^opq$b95Z89C|}@dw?u3 z0t}Is)ZA38qPa%Oz|wi%z-~GQg|M}V!Qdg8NEt{nEz3`X%U1sVA~PWrFiqC&8TR$Uu-bBE0T_L{ezKodq!2q zHxX3kc9WJM%|Wpa+zw0!#XG&g1)vYWO*uK>BBp`eE?x{kPW_@r3Ym>9*BvO>x0thq zxZ>VILUB*QRNSpyAq}~=gIs3LW#(LF&Sh4)sND1~z${@m^;&##C5Gw(hxR>OYAe^O z;(SIW_@GMgvns)F8!O`{qq%Fuo>>lS^SGXj~^Yc?d_IY*6H9C`5Uzyxa%2Uei VpnPW(7z4(E3E&bi2}}W(=?|&%_J;rf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-76-wm b/usr/share/terminfo/g/guru-76-wm new file mode 100644 index 0000000000000000000000000000000000000000..88ea7a200017a05e65354396491cd1e91f2279be GIT binary patch literal 1280 zcmcgsOKTHR6h8M>`arsH;ld8eC>cQ|keOy?QYXf~O`lV%R_Ta@Hl+zPZD`Y%wJuzA z;lhOr5fM=rA}$mvh`11S=`V2OLJ$|?PH`dP_???cvvF<0cfRjD?&O?%hO~*}beJ0G z3%!%G%Ztl#*NLx|uCUZyN1rRs&n)Rv>$>Tt^y!7UC4IG6Dd?7MSH03qX<>1lNRav{ z+R>4yrckp@%`^;e7d28CHd8CL(INbL7~0fNS@19rhNH0KzywVyKMXI?G!-H}4_=}* z+Eo5E+ERR*?$Ujwp3@up2=$r1!Ttb#0>9`FNzo|y`C-^1TE!l*SL_q}#X(_+BO)$L zVT%rNBC6<$xK9j-5B))W5?{gJqZ7Y{kPWg)*3M}1fQ-uo zd`qsuZtP@g6=Ap;#kT&Dt5^L$bzR<&H{~sPN8XbUP}2PqAC%K;ARTmXXiWZiKRUH?*J!=mN%o z5x_3Nm~33944YDN$0S)X@IIE6^-T0I6h%3cu{#QADUrx1J;y1{0Lb1gI1GOJo# zfWQ{y4N?g*Y(Qi9v7@MCRLn@aMkNJ_y=JMU*2xOQBrX?Q f_tCJAq5M(62QaCB8W;!80B3=7zyxp}xIljae-i9< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-lp b/usr/share/terminfo/g/guru-lp new file mode 100644 index 0000000000000000000000000000000000000000..8abbf8d5de5ed0622e702498f0710587f5e15114 GIT binary patch literal 1282 zcmcgsOKTHR6h8M>`arsH;ld6|l#HMf$V@Vml!>u#)92KxRXQSRn~(%*7~-^6YhAeL z!i5VLA|j$LL|iB+h`11S=`V2OLJ$|?PH`dP_???cyK!y8cfRkQ$K;%QhV%%B_EQ^u zp?9*f+*nRz?8K6PS;>fF7ivK@=FeBkv4vWtQf|b8>U=%6RI8U`exp_o$_*kx>Z52= zN1_?xoDJ%v2^_akJB48-G(wsVn;aOUwYNYGn^R!Cq z>U=L`hUZINvA|VW6 ziC%Fy%IJ@HSd5D0NH=S@?0xY_MV^Y6;;ncO{Xu*ZU%}s_ir+%WHrXLtHJaQb6Ecaj zDOX|FHY2T!FkFv(8~=!HW&J;OOAJR)l`B-B|$@mgOt!80cX<@^U0^^;XeRGMQI;i9=e3TkX}d#0s@e65ovN z7^yVF*RsvFQOpH>@m!iGnTY37dDSP+)ar47G@CRRZM$&0IJy|a9Rh}d5dbs01z;3q zV6TrK1|X+3@^mqO@rvh-6|<|%{l&E6p`xvLuxKhC(9V#C+)Gg|Gv_jME;Hvct6W@w z$uoeeAa(EDxe}8tfu@@t9`zv4s^Z+E65OZ~ydWibOUWAkIy7&E*t5t1Q*Ak+mllX` zSEWXKFX6J)ru8G79%LNdVQK0?I+Cd^Z(0wm$ZP9?5y^}mWFfKF0(G@IS%H|t zX+zB}US8~;FMG@0O_8Cib6zzxzYw}|ercu>Dlg1?Gs_+klld6h)Pbm%;F+WrI*4d1 zZ6n`rp&ist9e9%O+cZQ4@EG9x6IiE!X)2o7_s>z8s)4=(UZH#R(8Q1EiQ!dRqjjS` z&<6d4`c2Hf-wLz=J9#(nWep{t1Kh!#+{K4E#z{WHInMJCkMIOf1&--}i+qk(0$snh zxxVDrrt*$I@mKx^{eyq84{lL)*Dke3?Nj@M$oC^EuJURS@vyp!_5Nn1dDjO)?(sir zP1pZZPt`N^T)j}MYE7-HSL%&=tKO@R>a+Tyv|FU@I7jWqXR#EtI}*-D?PLzYXgF&N zj{sIJYTbz5vJP35VF~9XQOQ`fm{loI8&Udr(s&!i*x)pWW( zOJMH}XA?5sSU4NcndW8CM&o(XNzx8xagcTpI+)EF00w~}02|>HfMd7}?Dopd0C*bv zFj>l7yY0ForS!6JUnyaDpp-P+Uy2#d>$9Zcy&ial#VagcVetwZFGh~Z$e=379ENmm z#CSuX>3T*+?UGqdU3xS^8Z|;r%?LTV$Q=GTw7W!-DN7+{j=tNfTp-z7V+~%03bxuD zzjajXUMgc{M8+&H5y*Hmo3K1P$R;f>8pxF8r6F;$1!`?{vIJ4Y=Hl&e(6ED{oC&}I WFsXAKm;z1!CxKJIG;kU?Lw^9866;_9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-rv b/usr/share/terminfo/g/guru-rv new file mode 100644 index 0000000000000000000000000000000000000000..4092bc73c2bf11855223fdcbff4590a9eff7376f GIT binary patch literal 1278 zcmcgsziU%b6h8M_ZKa5VgV-k+HCMq>%QxASmJ>*wMeh#i8IJ;-)x=2+!}_ytIq6Nxt)a=f{0H=bn%b(M_jl z4}GC6Ik!|<>a5gnX*NxknNlf`smv@^0vzlz&A>vjRH%k3g?gbaPT<=;&!R!ff=2<*8;6|)rf6FGo_C#QY2Mc*aFv#6 zP5XD~p5}GhpiQk_(H4Dz`b^(oe*iy$U-SnpvZf1@9OV1?nYy(X8F;$szrR6P_-l^wwk5=%}(kN)3{vh f+(E+*hH}OM2f(Dx1z-}m2wVa#15>~i;41wEaH8!( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/g/guru-s b/usr/share/terminfo/g/guru-s new file mode 100644 index 0000000000000000000000000000000000000000..86679419bc6bb8da8270b7a53995ce0bd238e26f GIT binary patch literal 1343 zcmcgsOHUI~6h8OX2#PFRm>4E8jbYS4(9TS!Ee=-7%kmsRL1okwEJ72&N(&JcHvR`U zZrr%g7>$3y1q(MWjB%mH1x6Q|7-NhJ6R+R7GeDwyC;iU%oyUEgdvDqx5_E`S^pWaf zGfRt0EtOlE90w}5un^BJPF-D$bL^Po#OF#2)0O5*b+WotArhoN!3=~H1;Z4A!&FOg zcspn(DOF4L)IbNZrcy5TP#!!0C^ZB-3XIbPUDA;iTBF-qDRl>Ym+sMh?LVZ)nxD}+ zJ%@TnALtwH6-wS1ZC{DEI=XHP zD;JJXYCVd)_$RYj@qhWHd@bL|_i{silAq;Q`Ca~$zoe3}SWV0bCa4DYXavp-Ox_6k z8rv*4m4(ya*yb|#0cP1UZ(6HnvspaFZixd$&n(+!F;8^}UqJ^M zDKdPt>LcvK_0hWD1#|;F0M5zJ1HBjq4%&G#05zM(G+fB8tOY?|A#*iCB@)_7Z3PCM-2uq4F@`^%3y|bj`5t--spnrsqC8RKdNqi6GjP>OJqZsFW0)D8h3$b?| z5r$F3kVKlR8IHf}HPL5z%?nn9+2?UT)Mm4G-@GgO9?_TzwIq zS5eIuHSEfYw1rimfVM*{k>zU9o4~))Q8_X$cf(w?yp_ znF~SCGAIgaIZOp@xwcI=bQQD+vO#O0ZBP}I6cP(zVQk|bXdjdY9e@r&DbNmRm)R4} qE{eHJ66_XzhQFj0^7&%6q?gakT;8@BHEr)y2K4YsbglszV^5+g>cV*2)t zV!mR!gz2&}=vs=>CI5sdD{=H;7(YE(106X)KL&*!f)_fo0Pjgm@i~JK!iWhsAY6L(FpgB;T*}7xLoUkQO z2xNhlK^veFXiZxDGl%e`ZO{&A7nA_)f#RS|&=$8xTQex^42bgUX{NW3%I9*Y*+S;* YeU@kFO8$3&Q1T`Tzg` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h100 b/usr/share/terminfo/h/h100 new file mode 100644 index 0000000000000000000000000000000000000000..0d0311b25678040919f80d020b9ae83843923ae3 GIT binary patch literal 707 zcmb_Z%Syvg6rAi-1h?YZWYJKt*fvsiQ;OB9tyZm%D!M4fv^IUDNgvvm6a+yK1VIp7 z2!bF8;?MX&dUL&zcHyp*iCB@)_7Z3PCM-2uq4F@`^%3y|bj`5t--spnrsqC8RKdNqi6GjP>OJqZsFW0)D8h3$b?| z5r$F3kVKlR8IHf}HPL5z%?nn9+2?UT)Mm4G-@GgO9?_TzwIq zS5eIuHSEfYw1rimfVM*{k>zU9o4~))Q8_X$cf(w?yp_ znF~SCGAIgaIZOp@xwcI=bQQD+vO#O0ZBP}I6cP(zVQk|bXdjdY9e@r&DbNmRm)R4} qE{eHJ66_XzhQFj0^7&%6q?gakT;8@BHEr)y2K4YsbglszV^5+g>cV*2)t zV!mR!gz2&}=vs=>CI5sdD{=H;7(YE(106X)KL&*!f)_fo0Pjgm@i~JK!iWhsAY6L(FpgB;T*}7xLoUkQO z2xNhlK^veFXiZxDGl%e`ZO{&A7nA_)f#RS|&=$8xTQex^42bgUX{NW3%I9*Y*+S;* YeU@kFO8$3&Q1T`Tzg` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19 b/usr/share/terminfo/h/h19 new file mode 100644 index 0000000000000000000000000000000000000000..63b3b318f6117985ed510d9f546d01e3bd5b92f6 GIT binary patch literal 627 zcmaKpOG^S#6vzKo&;#5@XXBzt!ZefyETo5JS%PUVaZ`;tIpf=Wn-l~=n-F;N@!H+-gN< zOVl)S(ZycC0sAx6;TWdkRMZlf!8{BDnBZs_Q<%n_MNYoMGSdog9|9a@1QD`ohOs5o z>a!Vd5E7byj2nvIu{HoMj1MPx#KwYLd zXdkoNIe;gA-_*v-85Uc^%QglItN{VQlJDV2|6)H(w>-?DYaDGsyTEt zy{Yo=qC?Dr3e=S;9UQq9RjCS(<|`_CK3~Wcv!$D|TFF%Vb)|9FY`1uI8r|#rOZ)=Z Ccp-}b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19-a b/usr/share/terminfo/h/h19-a new file mode 100644 index 0000000000000000000000000000000000000000..34216ac51f3f2e330f3d1b8a871744c74acb7d16 GIT binary patch literal 671 zcmaJkvO`YwH&jhn55qOtoso#or;giHn1S zgM)*EgM)*Mi;IhclL(@dlf?U8LYqMioO92;_q=-_j|@n045J;#_=cq>!j(f}BD2!4 z!j-K(+moAigIYSTk_?e2lvymzhHBe}2}o#tQZQ+iAr;Vtez-2sM(nyB=ti$leHg?D zsWCzrQQ|nJkcBR~MZx@p>#qBHL&U0|S*Qg(JH9@mcoL|eHuV{)b6nsOSGdLvZYjSL z-Fx5j;KxTldfPpI!ZTiesRup(=~uk@r{DjW^3kk+;tQShN^&_eM>J31QL&Y}su)bE zM-)S+f;vs4(*w)pRLtRpET@dfEiMb3azjaVG{x0;jX1_T8ds_+a(K}4?aUSQ2+n{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19-b b/usr/share/terminfo/h/h19-b new file mode 100644 index 0000000000000000000000000000000000000000..63b3b318f6117985ed510d9f546d01e3bd5b92f6 GIT binary patch literal 627 zcmaKpOG^S#6vzKo&;#5@XXBzt!ZefyETo5JS%PUVaZ`;tIpf=Wn-l~=n-F;N@!H+-gN< zOVl)S(ZycC0sAx6;TWdkRMZlf!8{BDnBZs_Q<%n_MNYoMGSdog9|9a@1QD`ohOs5o z>a!Vd5E7byj2nvIu{HoMj1MPx#KwYLd zXdkoNIe;gA-_*v-85Uc^%QglItN{VQlJDV2|6)H(w>-?DYaDGsyTEt zy{Yo=qC?Dr3e=S;9UQq9RjCS(<|`_CK3~Wcv!$D|TFF%Vb)|9FY`1uI8r|#rOZ)=Z Ccp-}b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19-bs b/usr/share/terminfo/h/h19-bs new file mode 100644 index 0000000000000000000000000000000000000000..cd50d9280d4f2475fa88226589b198834a7ae18a GIT binary patch literal 609 zcma)(TT22#6vzKo&;@#r{x1e?5tgDP6iD}r6?8B0rCM`!bv3tky;T$hK@jxPLr)Pz zAEPhRCz)n-42d2ZX6FAp=gc`XoEh{DVFaCc#uv=+^hCQl%44Zm%$Bi9ZYI=SR3_^Y60z3vm-487r?meD(jQrA~+A$ zByEB#;2da!tKb%R4qB{7F&qmAqoEluMW*h7```h12qwU7a0lG=N^+@HuME0K70L!K zXb7oj!@OHo=d3dyoGqq6LRM4_(huCBFS*4$ErpqCzck|6pS z{h9tv)2vS7gEY*1=bZ00!#4}AMJ!_yJ$yqCZmek?ZnaKA%~`rpvOKLozG5ndM`_j@ zW*u;0upD%`hEjO{VkyjE9*hAK+%h(WY0UMRo8Pv=*(yJNgt(RQ!@~U-W19kg=p1wbx&&Q;QlL}NnbVG9qF27sR8dz8Xz3+OkI z{h5BvG`o%w(L=+``M&SmIGh>r#W99nJmV8uWPZxA+5$Ru%DQyQ?G($|nqIU6^{~#G z)tnlzwBotV)UZ=gnQ0XalLZQnX&ENqL+7~Y^L&psbwGk(w-XbZFn$|}`}G9DOLf=WTD zPIoCN4oZowQUbIB+6E;-F;Eq>4oZV+Af1{~j4nn((eSdHDoXZ1`=A5RA?OH{0quZx z-Bz^P?d5=M>Q! RTF$z*uN-mfR^#mU1Yh|kBsl;8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19-u b/usr/share/terminfo/h/h19-u new file mode 100644 index 0000000000000000000000000000000000000000..f01531faa42be8eddfa98cbca69b8986638870d1 GIT binary patch literal 599 zcmaJ;%TB^T6g^cF9|?Qo-E?6g2E||`KB5Li5i}8e5)z|AsT7J7N^21xapS_3F&aO^ zpYeYfr!W#0#L3J(=iJv!?o3I3_%VzR{6G({%sCGUEobXS$(G%ct;b^lDZG zU+-X4s2JjcB?Wr9jHQt2)7c(B=j;-BXwYGxiaOVJC+dovmcU1W-F{vBj2FBP@b~BZ z$KUWSsz32Hu+KN2j1RN}+6V1{vPvzi1mu7cR8*z5@JB&gpah>P#Xy^&15g|k1=T>i zpcJSMGUzUX>9ueuGQZ)a@{(iF3Fs7b2FifaphM7+*NV19uYASPU}*)oddb%KH&GJf upfWWhlwIz74w+;ksE3SPsaPx*47GB7qgC@}tDbAz+qVwiZlihibb((I^&4CO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19-us b/usr/share/terminfo/h/h19-us new file mode 100644 index 0000000000000000000000000000000000000000..cbcbac1de175eedcf88f9a355853bbadca1c430c GIT binary patch literal 633 zcma)3TT22#6#lHB3-}(L7a!UpEX7E=P+?kT1!;GLsMMWWU2}CWdC4LOdg-Buh#>kI z{h5BvG`o%w(L=+``M&SmIGh>r#W99nJmV8uWPZxA+5$Ru%DQyQ?G($|nqIU6^{~#G z)tnlzwBotV)UZ=gnQ0XalLZQnX&ENqL+7~Y^L&psbwGk(w-XbZFn$|}`}G9DOLf=WTD zPIoCN4oZowQUbIB+6E;-F;Eq>4oZV+Af1{~j4nn((eSdHDoXZ1`=A5RA?OH{0quZx z-Bz^P?d5=M>Q! RTF$z*uN-mfR^#mU1Yh|kBsl;8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19a b/usr/share/terminfo/h/h19a new file mode 100644 index 0000000000000000000000000000000000000000..34216ac51f3f2e330f3d1b8a871744c74acb7d16 GIT binary patch literal 671 zcmaJkvO`YwH&jhn55qOtoso#or;giHn1S zgM)*EgM)*Mi;IhclL(@dlf?U8LYqMioO92;_q=-_j|@n045J;#_=cq>!j(f}BD2!4 z!j-K(+moAigIYSTk_?e2lvymzhHBe}2}o#tQZQ+iAr;Vtez-2sM(nyB=ti$leHg?D zsWCzrQQ|nJkcBR~MZx@p>#qBHL&U0|S*Qg(JH9@mcoL|eHuV{)b6nsOSGdLvZYjSL z-Fx5j;KxTldfPpI!ZTiesRup(=~uk@r{DjW^3kk+;tQShN^&_eM>J31QL&Y}su)bE zM-)S+f;vs4(*w)pRLtRpET@dfEiMb3azjaVG{x0;jX1_T8ds_+a(K}4?aUSQ2+n{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19g b/usr/share/terminfo/h/h19g new file mode 100644 index 0000000000000000000000000000000000000000..d5a19094157a043cb4c56bb7eb676423a1daf66d GIT binary patch literal 601 zcmaJ;TT22#7(G_d1$>Xb7oj!@OHo=d3dyoGqq6LRM4_(huCBFS*4$ErpqCzck|6pS z{h9tv)2vS7gEY*1=bZ00!#4}AMJ!_yJ$yqCZmek?ZnaKA%~`rpvOKLozG5ndM`_j@ zW*u;0upD%`hEjO{VkyjE9*hAK+%h(WY0UMRo8Pv=*(yJNgt(RQ!@~U-W19kg=p1wbx&&Q;QlL}NnbVG9qF27sR8dz8Xz3+Ok@japS_3h<=7Y z;}11vrm=QW49R&U=UzfGq$MzdZhYVyW^B%W2!L11mjAHD4d1japYd|7WcZfrFt6%f zTX~*m*;}?7rr4_Po+9X791vQIH*YPho^Ow zxl{b8xY@6X&v?OWhyC`Xj|kII294x@q}beiLnjigXjF%xv3b$R!u!X4E#ULZO(qbEV5Nce3tX#kjinuWNGF KuWl}$&hP`F3o11L literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19kermit b/usr/share/terminfo/h/h19kermit new file mode 100644 index 0000000000000000000000000000000000000000..41f40b096a38c4ccb3208f5add938e5f6fdcb9e6 GIT binary patch literal 629 zcmaJ;%Sr<=6g{JYBDfdtCJVk@japS_3h<=7Y z;}11vrm=QW49R&U=UzfGq$MzdZhYVyW^B%W2!L11mjAHD4d1japYd|7WcZfrFt6%f zTX~*m*;}?7rr4_Po+9X791vQIH*YPho^Ow zxl{b8xY@6X&v?OWhyC`Xj|kII294x@q}beiLnjigXjF%xv3b$R!u!X4E#ULZO(qbEV5Nce3tX#kjinuWNGF KuWl}$&hP`F3o11L literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h19us b/usr/share/terminfo/h/h19us new file mode 100644 index 0000000000000000000000000000000000000000..cbcbac1de175eedcf88f9a355853bbadca1c430c GIT binary patch literal 633 zcma)3TT22#6#lHB3-}(L7a!UpEX7E=P+?kT1!;GLsMMWWU2}CWdC4LOdg-Buh#>kI z{h5BvG`o%w(L=+``M&SmIGh>r#W99nJmV8uWPZxA+5$Ru%DQyQ?G($|nqIU6^{~#G z)tnlzwBotV)UZ=gnQ0XalLZQnX&ENqL+7~Y^L&psbwGk(w-XbZFn$|}`}G9DOLf=WTD zPIoCN4oZowQUbIB+6E;-F;Eq>4oZV+Af1{~j4nn((eSdHDoXZ1`=A5RA?OH{0quZx z-Bz^P?d5=M>Q! RTF$z*uN-mfR^#mU1Yh|kBsl;8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h29a-kc-bc b/usr/share/terminfo/h/h29a-kc-bc new file mode 100644 index 0000000000000000000000000000000000000000..0fc74c39a00adc8987116b2e9c5bf8f856842644 GIT binary patch literal 1413 zcmeHGziSg=7=At#)MCeiG++be$RH)TYvLvSq?#J!)W)<{tr(YUbM%7O8k19`L{Sh5 zigxu+5L_I@!NI}7!NI}7!NI}7!NI}7!R373uh$l#qnm#4ywCIgxcA=oJ8oE&aTqx~ zR?pO`Q}O#^#;z`oEiCrKZRrJm9Of?vEA2SUI+bjDC0ji^cPhJltrY+Y8%J2FEjNvB z=a`wnJ{&~ySIz+Y0K2dULm0*gMor%w%9x;j}Q2WPxy>4_=;~P`#r7wk@8Q&zfy09 zD_~}~I-rJ>(=zN_x5HSz=Eky=kPJ9PdZ`p0hIsoIM{WSUmn z>eyCGTOG%0br~36qH#{soFRn&DDg1BkjK9?(>y^`344a7PE6VnZE2at5p&EH-$++{ zR~uavy^#-7CEg7-C`HJxwmbP==y!vB>@W0!IDa#?3k4QTo40bL#uPmn?GE)Eah|w9 zTqNcR4%C<>&JmYb=aFj!CvH>`22lrt83vkWc^Th``lgWnCNjM#wu)tGlj7#1E;2{C zzjlgU?pf5fCrgK1q$q|7J+4doh<0^ZS0ZlBYFn0-tL{N&;7dL17gzSzHXn3KnwQ>U JGn*fwhTnM`YIpzu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h29a-kc-uc b/usr/share/terminfo/h/h29a-kc-uc new file mode 100644 index 0000000000000000000000000000000000000000..267fb7fa232445eec95ac88680d2a173d64ebc78 GIT binary patch literal 1432 zcmeHGziSg=7=At#)MCeiG@u9N$RH)TYvMJ2QcVqVYGYcfR*Xx$J9;74B;F-zixmn& zK}A>p0m0Eh92^`R92^`R92^`R92^`R99-h_eZ95_9o_Wcd7tO~k@w#BJu)h4ID#x5 ziDzQPE;Ytm-gw`;6K>0^LA%)t4JM89`S~-(QpXRBTPoBFmc6LywTwpFH~MWqh!d|9 z2Zq;=lTHi>Y&?pE*mBe8b`D||`*0A0zw!*R53mb+FoIDW#+dG##UzeVO=<5WZG~`A z#hi{T;2IiKi`p9uBHX}jtyi(8c^wZlKTa#2ke?GTh?i;XmFCxYgSS-g@E#xV5uflG zU+@**boP5%`y=I_nt!F<4kut{w>Th1gvuQfS&^qIX>Tx?PWg1o%j8wDChn2fiTmPV zn%SZA|Ij~nfu~|GhLNe8O|xs6zBIeG>BkIAEYjF#Y0eRf|0r=W#E{E>X{LUPC==E! zO_i9kBHH2-jjhZHNBLSh%6FvJ1*JFgVXBnZXM{Uw!Kz82L@ zq5A8{%%<2XR!i#?Hy?A5InMp1U5L47L0Ya_I#idCww#a!S(HbmBPV4k;>s+w)TZjr c3Df|5ql^8@Rm)3@KedaJ7x&r8;uomkH(DKY7XSbN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h29a-nkc-bc b/usr/share/terminfo/h/h29a-nkc-bc new file mode 100644 index 0000000000000000000000000000000000000000..7c095da70d4bb0a006e5ce903ce7f6d0ef871036 GIT binary patch literal 1435 zcmeHGziSg=7=At#)MCeiG@u9N$RH)TYhoHdsip=wwK1(#E2c|wIeH=2BwkW~lqw2B zLD8=M34)7*I5;>sI5;>sI5;>sI5;>sIJm^;`}(yibnI3?c;4rEf82ZT`yDqd$~b}~ z9*bvU+09o+TTOqo=C6c*>8nAj(F-l6t-|@)GuC3e9#}V2s1~*TrsXfi-F9qMTXn0| zwwl2$KWg|*Kw$kS7Gl#i(LXteY3##6^ta^*aD4vmgXFx_@5FF0}OfmOB0n-M1gRo zX-dR|6VYZDX4pO~ptsC@G*LzMn z&4MZYR*qDjq^Cx^Lp@7eBrXw`i8+D;m1l?x#1+(#^!&Gb0^OEgfE2hhNcl1K8NxVz^QK~2i z1x361CkQSM;^5%m;Nalk;Nalk;Nalk;NTLU@9VWHbnI3?c;4rEf82ZT`yDqd=5PcV zJQmNyvQ=_MTTOSg=dJ{Q=_`J#(G3iyjq>@~GsaTe^NkxS)N6Tu6ua%nH{4znw|KymN#y%WGe_PG~`vAMJ2SXUfVT|a$8I0o?)r9s= z(pCr?Rm|wfJQmh4Ak}V zYJ4rK8$$Khk*N)_S*(`UDQ-SeMCv&AmsURFo_T57YUzNBSjw1kOy*@l9+gEoE=wV| jX0@r7RaYHD&A^x1*sol*zcl%vRgk=NkIhVegbIEG!z^|2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/h80 b/usr/share/terminfo/h/h80 new file mode 100644 index 0000000000000000000000000000000000000000..6ab536b80448de1ada344e0eb8100fc9dfdaae85 GIT binary patch literal 1223 zcmb1Q)Me0SU}xxMv}VjmtV+$PNv%jtwlJv40O3?1;Q4ywY z8Qx;3f~h8!{t7lhkWrKI|9>4I)(2t`Fo)6*-Y7YeL%@=eoq?A@I$AYTwZKp{#agw% zNHwJhC}8a&9c|>LVqWstT5vW#MK*Az}LBA@qK)*O6u_#r)Br&NtwM4(H#L&Qi SLE3^r+MGe!7vfV+pkDzA$Tigf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/ha8675 b/usr/share/terminfo/h/ha8675 new file mode 100644 index 0000000000000000000000000000000000000000..b52144d48aa3ac418175cadb781e00f1a0d4ce10 GIT binary patch literal 709 zcmc(d|0_dL7{)(K2}z2O_m`Ef$x^;#tTe-DY%-SeBbjV!S(8#kQj#P|DW#NBN=hlE z{44&I>pjPv%|F2DKIeJf_dNG~?yb}AYoe1XKKUTKG8`Hj+>5Uii@7bo(cq)JDs{PQ zJSkkaO)+ z*=C1b_U+jrM;vp)DQBE>!6jE*bHgon_S|*vJ$~@G@*Dm}KmJ?t@Be$^nHOGp;~j}0 zlSl%YL8hESpA+y0oS?Jn6#7dN8AsyOAQQ+Kl0s&Yc_gDMv#f|B`WP}uONVqzR`N0` zeG-C35-X)fXhjz6glQy)tn&pC C;f~S( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/ha8686 b/usr/share/terminfo/h/ha8686 new file mode 100644 index 0000000000000000000000000000000000000000..6e18925d0a2ea1ec174c76f0b99c1497053be553 GIT binary patch literal 873 zcmc(bT}uK{5Qg7rqc4J>E{dj$$~Hw2cHLZ8h|*2PQpuDsqKhOiEC|dl`}(K-i6DZY zZO-nok3Ud{Gw;kZXU^H3S*8VS!oV}S)bDz(=iXPl!{O!as)_-^_xc%sXH`uTL9isL zKraImm=0+cCK3{*LQ0ETVh-GpNA=3*b!HodFe-&wMGc2vwQU`}h<_D(6MM%8h{kD> z)GISINAt8uE3`%%6sIJm$s&hb%7^Dcu&w>B_UhK(F8|-Y{JYOGRjENO>d+bS4!8`i zfe*kHb6}hC)wr25FU&z^6oP$l6;t3na1q=DH^4{Wox4Oa?08q<0SX_ns?de zJQw(ck9j?LYT3N*Rh+DqvHjeh=fo6lMOf09jj*iIjj*CI7onrk%i4Y^7e14ZPAq*= zjL_ETN0<==*HtUhbkv9RCjVT+7!M5amG~P&WT@m;G7fkj+zJPjP;*e7*TJRHIAnqy Rsl8Jd?v*?!c~tUb;1h>vrJ(=- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hazel b/usr/share/terminfo/h/hazel new file mode 100644 index 0000000000000000000000000000000000000000..6ab536b80448de1ada344e0eb8100fc9dfdaae85 GIT binary patch literal 1223 zcmb1Q)Me0SU}xxMv}VjmtV+$PNv%jtwlJv40O3?1;Q4ywY z8Qx;3f~h8!{t7lhkWrKI|9>4I)(2t`Fo)6*-Y7YeL%@=eoq?A@I$AYTwZKp{#agw% zNHwJhC}8a&9c|>LVqWstT5vW#MK*Az}LBA@qK)*O6u_#r)Br&NtwM4(H#L&Qi SLE3^r+MGe!7vfV+pkDzA$Tigf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hds200 b/usr/share/terminfo/h/hds200 new file mode 100644 index 0000000000000000000000000000000000000000..145559d702e377a7a8781fd48d8fc04ea89ce2d9 GIT binary patch literal 1649 zcmah~O=ui-6n`^MY*msVB2lMkT4yLR6y`I#VUXHnr5oFrq}x_-4koziCQT+u-Q8|V zHH&CZdJzwL5f6eO9)gHpha9SiNDHM0Dfn>^4X#PFo^J{T0l7& zQ?!@vgPYLncJTY@L2_u24pEksX`Ci#nw|nrXol*v2)05^>Oj9lm*`b!d0wYC!QQ5K zX#@IW`c(a!^f`T{>?-iOvMhVw$g&NHJRd-RSnw?S#Mm^xFupdf8Q&P+89y378^0NU zX!I}O-$rJzxyQWA%(6bn&7OM@?>7g`LDL6|&5AhzeY&W6#(dVCFSv9`%~kWFxo*B_ zzHHur|6B9>9ntM`euejL-nRdr-FwT7|JL>IstC12s|e1m`BpZJ$uwfQ}N zXDfM{_D~O5iL>CWdQLrdR(+@b92`LdP_>dLppHRA7fDCAX`Ww&V-zBKc<3Uq0#Pz1 zZYwzgB{Bt>fcX16J$G8k{torRa^omf<%tUCm6vl@sffe{2~+ArJQWC+wwRjeW(~T1 z2wKUbo?D82w={1hBW@hDp?pmGA@QSo?HHx&oYDn4v%kCb~i2$P5k2*3J@J9rO)~qBBhF-uwdK@2d z7kZTTxvtj(^jtyLR}2(G#Yk~jv7}g59O*&5Y)STW3UV4ED>@0OL1agdL-b{kWht51 zBC=%lJhnxSZxQLJA!(;XdM!Xgfe28RNdBJH$tsbB8foo1hoxY3*qL-%vFF5M`=DV? zL(nLv$O<&8l-nhQ%1)e0#fa1Db>{kVYs3*uhy01X@73jVK?G|XaK)Z$7E!5gjZeZgEHf~_! l2DaQF)S6IhLam9kCeoTn&x>%Lm3YVW=RtljSlN@)^bgN2Ko9@` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/he80 b/usr/share/terminfo/h/he80 new file mode 100644 index 0000000000000000000000000000000000000000..6ab536b80448de1ada344e0eb8100fc9dfdaae85 GIT binary patch literal 1223 zcmb1Q)Me0SU}xxMv}VjmtV+$PNv%jtwlJv40O3?1;Q4ywY z8Qx;3f~h8!{t7lhkWrKI|9>4I)(2t`Fo)6*-Y7YeL%@=eoq?A@I$AYTwZKp{#agw% zNHwJhC}8a&9c|>LVqWstT5vW#MK*Az}LBA@qK)*O6u_#r)Br&NtwM4(H#L&Qi SLE3^r+MGe!7vfV+pkDzA$Tigf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/heath b/usr/share/terminfo/h/heath new file mode 100644 index 0000000000000000000000000000000000000000..63b3b318f6117985ed510d9f546d01e3bd5b92f6 GIT binary patch literal 627 zcmaKpOG^S#6vzKo&;#5@XXBzt!ZefyETo5JS%PUVaZ`;tIpf=Wn-l~=n-F;N@!H+-gN< zOVl)S(ZycC0sAx6;TWdkRMZlf!8{BDnBZs_Q<%n_MNYoMGSdog9|9a@1QD`ohOs5o z>a!Vd5E7byj2nvIu{HoMj1MPx#KwYLd zXdkoNIe;gA-_*v-85Uc^%QglItN{VQlJDV2|6)H(w>-?DYaDGsyTEt zy{Yo=qC?Dr3e=S;9UQq9RjCS(<|`_CK3~Wcv!$D|TFF%Vb)|9FY`1uI8r|#rOZ)=Z Ccp-}b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/heath-19 b/usr/share/terminfo/h/heath-19 new file mode 100644 index 0000000000000000000000000000000000000000..63b3b318f6117985ed510d9f546d01e3bd5b92f6 GIT binary patch literal 627 zcmaKpOG^S#6vzKo&;#5@XXBzt!ZefyETo5JS%PUVaZ`;tIpf=Wn-l~=n-F;N@!H+-gN< zOVl)S(ZycC0sAx6;TWdkRMZlf!8{BDnBZs_Q<%n_MNYoMGSdog9|9a@1QD`ohOs5o z>a!Vd5E7byj2nvIu{HoMj1MPx#KwYLd zXdkoNIe;gA-_*v-85Uc^%QglItN{VQlJDV2|6)H(w>-?DYaDGsyTEt zy{Yo=qC?Dr3e=S;9UQq9RjCS(<|`_CK3~Wcv!$D|TFF%Vb)|9FY`1uI8r|#rOZ)=Z Ccp-}b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/heath-ansi b/usr/share/terminfo/h/heath-ansi new file mode 100644 index 0000000000000000000000000000000000000000..34216ac51f3f2e330f3d1b8a871744c74acb7d16 GIT binary patch literal 671 zcmaJkvO`YwH&jhn55qOtoso#or;giHn1S zgM)*EgM)*Mi;IhclL(@dlf?U8LYqMioO92;_q=-_j|@n045J;#_=cq>!j(f}BD2!4 z!j-K(+moAigIYSTk_?e2lvymzhHBe}2}o#tQZQ+iAr;Vtez-2sM(nyB=ti$leHg?D zsWCzrQQ|nJkcBR~MZx@p>#qBHL&U0|S*Qg(JH9@mcoL|eHuV{)b6nsOSGdLvZYjSL z-Fx5j;KxTldfPpI!ZTiesRup(=~uk@r{DjW^3kk+;tQShN^&_eM>J31QL&Y}su)bE zM-)S+f;vs4(*w)pRLtRpET@dfEiMb3azjaVG{x0;jX1_T8ds_+a(K}4?aUSQ2+n{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/heathkit b/usr/share/terminfo/h/heathkit new file mode 100644 index 0000000000000000000000000000000000000000..63b3b318f6117985ed510d9f546d01e3bd5b92f6 GIT binary patch literal 627 zcmaKpOG^S#6vzKo&;#5@XXBzt!ZefyETo5JS%PUVaZ`;tIpf=Wn-l~=n-F;N@!H+-gN< zOVl)S(ZycC0sAx6;TWdkRMZlf!8{BDnBZs_Q<%n_MNYoMGSdog9|9a@1QD`ohOs5o z>a!Vd5E7byj2nvIu{HoMj1MPx#KwYLd zXdkoNIe;gA-_*v-85Uc^%QglItN{VQlJDV2|6)H(w>-?DYaDGsyTEt zy{Yo=qC?Dr3e=S;9UQq9RjCS(<|`_CK3~Wcv!$D|TFF%Vb)|9FY`1uI8r|#rOZ)=Z Ccp-}b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/heathkit-a b/usr/share/terminfo/h/heathkit-a new file mode 100644 index 0000000000000000000000000000000000000000..34216ac51f3f2e330f3d1b8a871744c74acb7d16 GIT binary patch literal 671 zcmaJkvO`YwH&jhn55qOtoso#or;giHn1S zgM)*EgM)*Mi;IhclL(@dlf?U8LYqMioO92;_q=-_j|@n045J;#_=cq>!j(f}BD2!4 z!j-K(+moAigIYSTk_?e2lvymzhHBe}2}o#tQZQ+iAr;Vtez-2sM(nyB=ti$leHg?D zsWCzrQQ|nJkcBR~MZx@p>#qBHL&U0|S*Qg(JH9@mcoL|eHuV{)b6nsOSGdLvZYjSL z-Fx5j;KxTldfPpI!ZTiesRup(=~uk@r{DjW^3kk+;tQShN^&_eM>J31QL&Y}su)bE zM-)S+f;vs4(*w)pRLtRpET@dfEiMb3azjaVG{x0;jX1_T8ds_+a(K}4?aUSQ2+n{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hft b/usr/share/terminfo/h/hft new file mode 100644 index 0000000000000000000000000000000000000000..8229fba7f690e8e0a98f661ce1e2413e5666e40d GIT binary patch literal 1806 zcmbVLJ!n)x5T4yr68tSf5IqS2c@opOfA8LfL!wDAr{*AH2;vo*m}oA!m)z;)M-u}U z!A2|;EVL6W?9vGq7NTI0&Pu^Tun;T+t+entyL0anFJj>Kn4RyN+5L8QZr=fR7+PU3 zOtZB_VKnqbS}sjosVtr9$+hRkua1<)i|xHL#hGjEV}ZnP3^oiR3S`fFvQIP0;7Y}gGpmjs9<5Bb*e>D1G0Apui81irlQNgV!!yMeK zu8pGQD!Pq+1?>*nJ+%Aq5FW!5M9*Lqp2JIc18eXOKENmV0^i^V{K6YW(RQ|rwXl7x z4Y7x|^*F*5uFJ4KmSe;0BAeK>tGppnVGC?&1K+Iw3bXJ3yCRA{Zjs-t+F0Z>`^vtv zpA2{t-@{w^L4JsLa>>)Yo1f%4KE(5Uloxo3&+}!z!te42ys?uS-Swz;-c#P0XjG-K zeXEHV)e~PQ-X@x0Hzf1fWd1a|GicU(1+OH%vHo?K@k+`Y%fb!}W$|N4=6lgjpbets z(98r*=@6%&HW`bY)OiFVOm_63H$|Lm2JJGs0jDR8DI>9RwMEh>8OdnTa?6Q z%oTAJb4^^w+z>Z0_lf&4PZ3YWJaD`#2)zt8)BZ(xC>4Qq{Z)jiE5g(jVd{!7bw!xE XB1~NoQdFzZ?nT+Am>Aj5szbmZpHxBd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hft-c b/usr/share/terminfo/h/hft-c new file mode 100644 index 0000000000000000000000000000000000000000..5778800e03009af479d141c023b453108701f145 GIT binary patch literal 1800 zcmbVLO-L0{6h8NkkSJjhM)jy{G2up>`!jEpDJ-pgm4=aM^dJN^{CVT=^M_tVMTF2o z+C+gn2fFSvFpRjI6Q#d)2a_|Ey@Y=iBP z$>%cpGw9Bu8Sjp|Q^FnUT!*1MCEcMM)L5rG$F8r#w90xl+lHi)jvDhsWrkr?5%O+rf(6S~DX&lA=OkC@GQo+4(eJp0DSUgH@U5b`v%N@n3QUtWav=p>DKLUIWppg) zO#$kdE1Mb{YcuI$7`UN}P$JX>)p}GT^eLJ}CFbXgO+tO;G#gf44Bcu5z^ Peo7)2yt z5p2Xl!9qL1LQqKOe+tpg%2Wy#f`woqX!D%ic`rW~F>nuN=lf=MzMUQRwXi+V3_GF7 z-Y3RJs~tlfmD2E)Tu;7zs#qOs&sIv63+;p1bRdB-SoINMgU|@OApFPI2!|kn8369{ zn_vsvaBXPeBNWO67{OoSGSOOm1ux% z&|1i~7LKCpLvvmf#e@>Wy(=&yCbSsN!DbBQ@F!_4WYG?z4WbR81!Y{6TkIGvX@^qF zi*?A0o4=L2zFq}B;;yIyf0_!sqPwua#Xt;PlRk1h2K_N`fHqWq5( Fp}#JwI9dPz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hft-old b/usr/share/terminfo/h/hft-old new file mode 100644 index 0000000000000000000000000000000000000000..ccf948d90ae5c0d417194bb19c8352bfd0f200ce GIT binary patch literal 1214 zcmd^5KP&@L9R3c8B0?etx^(aiLh|0-yS7q75vjjvQVB_8XcTSIt7^)E!Dh4BY&M(C zW-!=n27`#*ZmZwDcXx^F+RaP8-}imL-@D&^ccaD_hA{|k{1~N!#?(=zc%EL_&c!n2 z!%}Sdq`KEAA5~*p`*o*WEmQylEyq9>&E^Q9^+Yg_PMQE6YTkuD3@9~(F^rR%P;Qbc zCrBifZ#HL;_S7;~NNpmA9o5-YwSXc@-VOh~71XHHz-iFG2-GF1D_r9Sx46SS9`J}K zHGQV~f>*qGci%nsx3+^nf}Nj%YRBIHy5lSOi{Gdl-RMU&pNZyIiPi`%vofm*R!p&) z$%+~Dx;GG^x=2V9vV;wS?NAX^;>1bUB!VJc<&8XguGu=%I;aI?=r3ZU{E#e%TqnV6&`Yafj_IFSHlF zH?=o?Z)tD&UTQCWZ)~ZCYE~v|)WSJ9jap%D{Wy``-7>H#6)$5-uKN6i0X~8d0~t zqg*%r?!!vGS#4LlsW2+fuchgwqIODUy!3jfx!r1~TAf-Qe=Q+Qn((!XF$DH;8!lqA zZrYe+|IY*558NOR;12HNftfdgalRyuCrqZ0ML;!!g2@*UqG(j_yfRkticS^l*5ANp zzoTQ-Hskxg8^^m=f5aZu0S>R#dXqm{@5shuoZu8^_{{tZzW%f08=Z4}#}8Bai3?m( z{jz<(A;h4F#<&QecsZsO?cn`V7NMEDU;^0mrm zDYFqqq$j8Q1-{B_$ch*Ef#){a-v`1_6#iyrSw*X;rfkuQh*m@r5!p-hFU&TI)h6|loQMALb$9J$x72Z+^ZmM? zAsHA##tSZv=QwbluJ;I|+vyTo`#88q-qmsd3Br5`EOS7bwpmVw!cdy3d}l~Q3kG97 zu9$51IU4YtCBzx!&N#o5FUhH(%>`cUTyS@pXIA-L|NK*I_|G=1ZHpbK2^CdP7o^+C e%=YcXv3*b(R7VLlPzBTgnV=4ThT!QS1sdLRobgBi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp b/usr/share/terminfo/h/hp new file mode 100644 index 0000000000000000000000000000000000000000..b3f1b13bb6638eff5aa3c2d86ea5494e9fa98637 GIT binary patch literal 534 zcmc&wO-sW-5Pd5}YpDpHq~oCn(~Bs!ih`)L)I-n~V!=bbNX#xaSVM>rd+6Wr_olPc zO)rIBon_y=dGoQuHq;qTu!BF$FiAg5VzM}zPtv(>ey1kSPlGV}3^Uzysb+4nuQ&;( zfa0?>rAp?6l@nbdKv5jBSg>s~0$Yp~ez%T&956q^xnw(nmyFkZZ*V8E?JKS8ls)GeT2A^OuX&$Dc1jt)H*ELA|FZ|W0QvL?dV_m`~W=}6-7 q@$J<;YN&!Z)dK~fA?TUQwC&Ol7P_F3^AZefy_-1ZZfau}6k`F&9wi0< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp+arrows b/usr/share/terminfo/h/hp+arrows new file mode 100644 index 0000000000000000000000000000000000000000..d0d3fbea88f390a148b968091746b5c18ac76141 GIT binary patch literal 244 zcmb1QlxF~e2nGp;i~{Y%qN4or;u?gUB<@1 n38r}%_!)$NEKvq&CkE*Z25A=tX*ULGX9nqD2I&w6X-5VCP8Y9I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp+color b/usr/share/terminfo/h/hp+color new file mode 100644 index 0000000000000000000000000000000000000000..3d6ef95832a284436990c4d62fa8a715afc49c91 GIT binary patch literal 965 zcmeIwJqyAx5C-7uqPW#f)S=6{2qo#~AmVBVLFg}NQ=x*=qD5OjetYeu-GUCz&5*oz z4}@@Js!d=HI+)r>OY^13PTA$P-5d8~ks7kP!jGlZUzZL;7{gcYp`XBC695=AziJ0H z%oaBm%KgkE9&^Ehrqx7w#8y|uwhY4QYT>rdg(pMFD?gxXaD%ypPtF*7;~EQ&2a`Gp pt|Bs9F`FzVa};yP1evRtOIDJ3ig{!enXi~n_Q0HD(!Q8d2p^}+xi4)PM9~xtN-hHfGtk{^44e!+4Ezj245Bpmg#?BTfec{`X@(4G zMht1j3~43|X{HQmW(;ZO3~3e&(rRf&iK+#Lswvs31xBhlssV|r_NwWLswE&IMK#q> b)jGw%2O_4ZTB4w84N_MO)R^T2A{-b1HlSU0 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp+pfk+arrows b/usr/share/terminfo/h/hp+pfk+arrows new file mode 100644 index 0000000000000000000000000000000000000000..4b54f5b81336d5c2b3f76414f8fe76ae2f52c685 GIT binary patch literal 266 zcmb1Q)MWsH2nGd)i~{X~v~2CfqN4or;u?tr3A0;woRu6}Usdz@b;BBF;vFod>TPi(-%KC}} zJm7Ju_KC`9Nv$URkGI_CU3bceAAfB3$^Y4goI*mmf!xC3VeDstZ+i>Y^zB&V;lbs3 n2bhwZqH zYWGA=4{OVv>4j|CvOLMu*i>r9@bp|T(pe8hz!(^u#R#jl=E(a2mV|BZCDXRiZPO}- z3&mu+v6Xy9C_x1(QAPM5nh_`6i7t|(IE!)88BCM3Z42{QQs@#c<0_$5T*pn)w}`FG zxQlzZuaIp&z{5Oxf~R;!_yz4(c!RfihxhnM)+gGZ@daP;4d3wtKgs@u-}pl}+ro-i z2`gng*iL5KyIBRRVuIBWu4Q#hXCW40jbu6NSRTdmx|>;J%bLrj76}Z&OHX2JZ&%l1`D+h0$I> ziy{{w+uNj5Qi-Zs)Y|D4)>3Dj1aMWOQINMn{*&IO0G-=|GRif`;WLg)(Fxuwb-xsC zQpmnW2g;?2lk8JqO=Q}orHff+@qx__;jkmQ&; z@^4sJBl0bXyU!3y+KNb~M2pCU zge8{r6)~O?wbB)nPF>`JVp-(sNl-YjAsi?~LK`Af7)sRK!G zZ>+DnfB%3!7#Io-2TwPS)Q%o9Ix{Dx2C{wUj-Nj|eb@@m)z3#4A{XoAOxFhI3|kFF fvXoQ|k=8}b&=L;4YGHYZknc-kP<)8-FuR}#$u?GtVq>ZzHDdfxsRs|+?9?PpS;e$K$|6(=!Ko z$Bk6(0y7FXQO7bgLbTCEAFIr+vEIi6Jj5eB#uGec{}~2&j+c0aH+Y8+_=r#Vj4$|# zZyfzw`Hmm>IizlI;ixfA!_CNdYy})bnR*YafXaeN;*=}}* zWPqcdzsUa^F@FkF23-JM;+&vp;Ix6lIOwu9)}dqycm#L#e%Ek1 z=Om*v=r*VY3PBO*4yX<4fU3523B+yBg62Ti?BFY)tDv0SzzMUwhZE)uF4~os%%Tk$ zl+4L3oyA;omvq4ULm;8AW2?D=oR<2ijHDa7vLcV08G1tYrJiKyd3WVOGpLt0#v!Tm t29C(yvBY-^E)x~gWXd!dGfk9q$89rnjV-CogY3rcb@Q(E0;mC6#xE^ZMuPwV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp236 b/usr/share/terminfo/h/hp236 new file mode 100644 index 0000000000000000000000000000000000000000..713202d6fa315829d8e7f64249308a1b45e46c78 GIT binary patch literal 271 zcmb1QRA*3QU}i95aAwFTFful)0h0=uc_pbud5Jj+Kq@yA#7NC8%}FfDFJfR|WFQO} z83Gvo|Caz_7+?U}0%5a3X?Y;62xhA?s559Y=t0F{IuNuWRK^raTVklRWpH4Sc4LtC zW{`GOEihD7S5Q~gR!vqdFoH1|I2fc|Tp755q!WX*7lX71gS3+;gS0ag11Wa~0DswS APXGV_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2382 b/usr/share/terminfo/h/hp2382 new file mode 100644 index 0000000000000000000000000000000000000000..3fa168412ad3048da43f39dbdea6eb100b71e3d8 GIT binary patch literal 1115 zcmZ`%O=uHA6#gbEt(9IB!8(OT$s|fqb~kAoNNCemq{Il(TA_mA(#@t#d)TI{p|tTL zc=6&z4;~b}c<~~r=)qbnf*=TjAP9mW2!bF8f*@pkGZRw`c9MPXd+&RH^LF<$fxXy; z+t`TA22L{VxT{95PLyg3r7(;Z-I;l}>P0mP#=u|>BdiZALdt!xNUraebUG=flc;Uj zLB0-jp$EO_BYYUc$dR5vp5!^4N11d5izKCN$PmjKUB(q$C3Fqfaf5V2-qQX%xQlxl zNqN7irF?`Zct+N9dS2iqUg0&~;4NA2=y{J1_=r#Vj4${~_BVXT5B$V0{6>Q=w4HS@ zDZ5xV+rxTTFX29RkO_8(^|Pa7nPWFms;Ngwtr@+tZG0%Wg zdo|ONrKLRz--hqNPr^^ZAAmmye+YgW-TKb`dMj!;_sHggj91^=cvXOJnHA1kp4!ZU z@Cr)PXmQ`(nsTs-{ZxM9CHz&nlQ=2Sga9bhElSx^+c;EtMSp00CNKyZ`_I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2382a b/usr/share/terminfo/h/hp2382a new file mode 100644 index 0000000000000000000000000000000000000000..3fa168412ad3048da43f39dbdea6eb100b71e3d8 GIT binary patch literal 1115 zcmZ`%O=uHA6#gbEt(9IB!8(OT$s|fqb~kAoNNCemq{Il(TA_mA(#@t#d)TI{p|tTL zc=6&z4;~b}c<~~r=)qbnf*=TjAP9mW2!bF8f*@pkGZRw`c9MPXd+&RH^LF<$fxXy; z+t`TA22L{VxT{95PLyg3r7(;Z-I;l}>P0mP#=u|>BdiZALdt!xNUraebUG=flc;Uj zLB0-jp$EO_BYYUc$dR5vp5!^4N11d5izKCN$PmjKUB(q$C3Fqfaf5V2-qQX%xQlxl zNqN7irF?`Zct+N9dS2iqUg0&~;4NA2=y{J1_=r#Vj4${~_BVXT5B$V0{6>Q=w4HS@ zDZ5xV+rxTTFX29RkO_8(^|Pa7nPWFms;Ngwtr@+tZG0%Wg zdo|ONrKLRz--hqNPr^^ZAAmmye+YgW-TKb`dMj!;_sHggj91^=cvXOJnHA1kp4!ZU z@Cr)PXmQ`(nsTs-{ZxM9CHz&nlQ=2Sga9bhElSx^+c;EtMSp00CNKyZ`_I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2392 b/usr/share/terminfo/h/hp2392 new file mode 100644 index 0000000000000000000000000000000000000000..3d91754cad6ee18b15849d4c23838a2bb67000c2 GIT binary patch literal 548 zcmbtOJxc>Y6r3YSR1`rG#Aji1R|%IyL6itdRFJ3`11dtAXby7NoVORhuo5I-VPRom zVPRn*2!bF8f?#E3E#iMU=Qhdx0e6|%dGj7`XVe(NFcN6u7j-W)Ig>dh9gQo;cO3;7 zyscvxZDo`Yh9fi+=%Nb4B>FIbLFzF~Xvfx^CQlL5nALSO+c|S>Cx=C?ikjC@##TIA zp>l~c;yiZ4uo>$Ms!Lqq8aKGb9qw5_==_L5y`^8<~@xC93 zizNCXOHza^BVwy+dTFyZAFE^2%jmj*ZV3H6qy$-otaGMTh-e|A9HiWSbz!M=Ub15C zr7EybT+deZs_)oAbw@dYt%BOFA3#>3tz69pG;I~p$<9oh&8FFI zrrFe{LSOVjd@A_ji?6;23cmP(MGyo<5ClOGghD|O1VIo4$8+xNMv}FEfwRmxzjJ=~ z-1D1r?;aEm4q+IhLiS&7TJ~7p-HiR_l;3XnVVEqtwPm;EC7GN|)>a#apf`%{?0O&@ddub zSNIy=QuH0Y-{S}Th@bE??&2QBzu;H=hTriA{={GSo4&DMkV-KqhQ-6;QNoABW8#QV z;;0y*D1Jse$n5xWafVPuyd*Zn?X6YsZ=nweeIh;+cf@ObQFM#m|9al&`=)PKVmmXC z7}}B9&i{X-{fPrKnU@p$`sET`u^~tsa!Ssm#vS80cz6xvmDrQCbYR|}vhGJ+;-;PUq=mGnJ$1vlsmiW8p_+~g)eZBey5y=6P8B(6 zs-~?rRWnD1Xln;;Z86Rch6=NBO<@O9M27GBefL^QF17lg~e1PR$i7hpR{C&2!d*bKbsi z?Bd7^Pk2-HGt2Xh%F5|0PhWj9%wEf_7uxxaQJ!gcaPhG9P*^2P@sw|>qGyz1d52Y) zBth|EEKzNp?_zy|%(}sMbKO`mU31Z_8PgOH)Nax0M2oftHK!BTvN3PgavE%y*Ynf7 z4S%skr(zg%OwXv$RQ@PuJXO?ZX7_M5bBkQ(^l%PydWzW|F3a2o*X4S+9CO#1%lB}3 P=3dpeDpt&Y`zrnc7Y5Qb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2397a b/usr/share/terminfo/h/hp2397a new file mode 100644 index 0000000000000000000000000000000000000000..70ea75de59c7d50e6776d9b677fef950a18046ea GIT binary patch literal 1779 zcmd^8-D@0G6#w09YGWX6T10Da!EN2UTa3o}+K+T&o7B?gW2>9pG;I~p$<9oh&8FFI zrrFe{LSOVjd@A_ji?6;23cmP(MGyo<5ClOGghD|O1VIo4$8+xNMv}FEfwRmxzjJ=~ z-1D1r?;aEm4q+IhLiS&7TJ~7p-HiR_l;3XnVVEqtwPm;EC7GN|)>a#apf`%{?0O&@ddub zSNIy=QuH0Y-{S}Th@bE??&2QBzu;H=hTriA{={GSo4&DMkV-KqhQ-6;QNoABW8#QV z;;0y*D1Jse$n5xWafVPuyd*Zn?X6YsZ=nweeIh;+cf@ObQFM#m|9al&`=)PKVmmXC z7}}B9&i{X-{fPrKnU@p$`sET`u^~tsa!Ssm#vS80cz6xvmDrQCbYR|}vhGJ+;-;PUq=mGnJ$1vlsmiW8p_+~g)eZBey5y=6P8B(6 zs-~?rRWnD1Xln;;Z86Rch6=NBO<@O9M27GBefL^QF17lg~e1PR$i7hpR{C&2!d*bKbsi z?Bd7^Pk2-HGt2Xh%F5|0PhWj9%wEf_7uxxaQJ!gcaPhG9P*^2P@sw|>qGyz1d52Y) zBth|EEKzNp?_zy|%(}sMbKO`mU31Z_8PgOH)Nax0M2oftHK!BTvN3PgavE%y*Ynf7 z4S%skr(zg%OwXv$RQ@PuJXO?ZX7_M5bBkQ(^l%PydWzW|F3a2o*X4S+9CO#1%lB}3 P=3dpeDpt&Y`zrnc7Y5Qb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621 b/usr/share/terminfo/h/hp2621 new file mode 100644 index 0000000000000000000000000000000000000000..e01ee357fa29b1c99c377c4c60daddbba6065bb6 GIT binary patch literal 622 zcma)3ze~eV7`z}_6+{pO@eOt`Swu=wCtBv;t0Rrr;$0k@U&9dQXb<3XT@$SQ*B%#F5Emp)gIj;Zg7h`+~Wa{e{Q8Gp71he z`aAVM`juI4I`5tQF(&yFqQl=d2T_G+iaiJqimkwmZ8L17$}z)p-JkMvPD9XkA^g=% zXA9y0;*e|MPC<2uBh|2`6uG=$A9|n1V|G_WkLVKv;+hx|31LM{x1w!Q`Wot5VPht} Gu!C?mSZPTa8azn3OiM~M#u!I1N?pJtrZIzA>NzaIVsr>8OXO9eg1X9MFFTv5vxPmS z4iq2a2*-JED^=%cqno?gggEx--rx@Rc)%l`@cd_2a$|s(A=Teg|D#_y>rKsjCw~l? z{0R~8H%vjSK)7NXqJfyr6C<(=zn&=D@K06V7ABH~0loop!w!M~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621-a b/usr/share/terminfo/h/hp2621-a new file mode 100644 index 0000000000000000000000000000000000000000..6baa75ccef8bbddd1d6a1fbeb305353e87517e61 GIT binary patch literal 592 zcma)3&npE{7(J7CC@H1nF3iHb4bsf3S4tY5Bttz)v9K5>&5UBqJa0;}u&}VOP_nU> zvQqxP>&%^BRxh{C`ObH~ANMvht1V&y4ZPw9eq^;RbIHBSgQnTgpQm;iT$4EtHQ7M3pOL{70Aj>eyG+TimPofJZ!0J>vy$1Lx`u|55MU^`Z8C zlD`IQ{)PznVGO*N9BR>*UHZyfc*_^K*_u&|Zh=&aYZ)5PJ~&Z1XlN wvLOz#gfXYk<^{V@{Txr3MZ^tpP4tPFNQfTM4715_gOoobyH=PO%P$P@3lp;z;{X5v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621-ba b/usr/share/terminfo/h/hp2621-ba new file mode 100644 index 0000000000000000000000000000000000000000..0bbecc60e11c9e90f613ebd470dfd8b39695259f GIT binary patch literal 606 zcmb_ZJxc>o5S&9aDu^Hm;ucIyKj9G=0Z2GiIaQ1Pt_#VTAhE3QO8BP=r!bw3I?&h;aae)G>@=921zNopZCRPd0RNC}J?qp?Jxg__{N#(wnenG1IF=LPhIsA1pMvb% zQ!Sh!DcpR6i5xW@w?|LjU9p71iD`g`kt^ecD0*?sTij{%!MA#HyD1f&XS z$|fX$;mVPdxK7kamFGk!Hb3BZjzVa!LBjbJZxyl)*UXTyjH3?%%vCj*(VEZ|q hFuNc+#3j)su81CSO;lnt8P`eaGt9N(Vl2I|jcY6r4jeDu^Hm;uctZ<8Iz^v4j+c_=X?41=m?_=JHpOR7#;zvsK0J z2VLLJpR#ebQPoP#mhuosI7xaNM)_zWOk643iSAJiaE%+>;tuzCU_R8F;Os6uh3o(`R~SB{jM_D*$v%+EOv zLAwM|TU>WHAod{k+2(B}RD?KC31dX(B|fkV-OuZr5Fw2g(Iz@Xm*^3fM4#{>I4^o9 W(^=(fnU144+Dq*r985$T1o#0w?h~;9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621-nl b/usr/share/terminfo/h/hp2621-nl new file mode 100644 index 0000000000000000000000000000000000000000..95ec9ade86ac88ec36a375cb87954b40e3ee820b GIT binary patch literal 570 zcmbVJO-sW-6r3Ph6+{pOaSui?UPL4*6a*=e7AZy{3W6Ryv_?oY)Y#S*L_B!t!Gj0E zn+To+e`MF$%||_Wa$)ApoA>s;C0RCBv4Ila@QpBWDvrI`jvpGnsiZlGdZF3AG2>?I zGVTHf@?#j89$Q&S8-@=lm*_|dZ;EjOlhh^5Vjc@vq+Y=mSxQ@TnOq^Z;p$vf@>9#4 zJ$PEF*;1b16z4^6D^nq^krb|!qkM?$(Cy;R`Z^59R0di4EVQr<)(N2 zrVsL`R(}usf{6Gt<{-)t4Y3d5LGgOiN^C2rrOL5_3!R_wb529h-i7ejcAP52A;b~e sf_gzN#IZ^kQ@V1w-~hUx*Ar&9M2F}SJ>rh&69Xb!u9gWKGwGTLKfu5f#Q*>R literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621-nt b/usr/share/terminfo/h/hp2621-nt new file mode 100644 index 0000000000000000000000000000000000000000..6c88515da87b658ac80f584205f8cc3bb158bba1 GIT binary patch literal 570 zcma)3ze~eF7=4FmMG!#{#1qV5vWS$VP!L2~D^iR?6a*a{S~JuLHMX$@5eEkc2M0l1 zoJA1)6FuKue&`^@gZIAoz3;~z$%0tK3QBm!CpxiL_1x8Na?=bfEv;d>dtoK5b{`PP zj}V#uv9gje1Og~EPfIEI6O3aRr!HX%GnmC3^%BZtrCh@ma+O#^&E&e0pGM|v!#7Ir zR_YK(I4OGDnd;yiapC40bnMX`;2O8M!#y7G_-9u-@r0KV)!$qHqhGn}&Fp(8e~lRV zfIQ=mn1-xCHsuba56w=?j$J!!q{_3yQ)rpU{i5}4>65@&&5JSR=xZR01N$E56wbIp3{RYlx5r6;y literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621-wl b/usr/share/terminfo/h/hp2621-wl new file mode 100644 index 0000000000000000000000000000000000000000..e01ee357fa29b1c99c377c4c60daddbba6065bb6 GIT binary patch literal 622 zcma)3ze~eV7`z}_6+{pO@eOt`Swu=wCtBv;t0Rrr;$0k@U&9dQXb<3XT@$SQ*B%#F5Emp)gIj;Zg7h`+~Wa{e{Q8Gp71he z`aAVM`juI4I`5tQF(&yFqQl=d2T_G+iaiJqimkwmZ8L17$}z)p-JkMvPD9XkA^g=% zXA9y0;*e|MPC<2uBh|2`6uG=$A9|n1V|G_WkLVKv;+hx|31LM{x1w!Q`Wot5VPht} Gu!CtBv;t0Rrr;$0k@U&9dQXb<3XT@$SQ*B%#F5Emp)gIj;Zg7h`+~Wa{e{Q8Gp71he z`aAVM`juI4I`5tQF(&yFqQl=d2T_G+iaiJqimkwmZ8L17$}z)p-JkMvPD9XkA^g=% zXA9y0;*e|MPC<2uBh|2`6uG=$A9|n1V|G_WkLVKv;+hx|31LM{x1w!Q`Wot5VPht} Gu!CtBv;t0Rrr;$0k@U&9dQXb<3XT@$SQ*B%#F5Emp)gIj;Zg7h`+~Wa{e{Q8Gp71he z`aAVM`juI4I`5tQF(&yFqQl=d2T_G+iaiJqimkwmZ8L17$}z)p-JkMvPD9XkA^g=% zXA9y0;*e|MPC<2uBh|2`6uG=$A9|n1V|G_WkLVKv;+hx|31LM{x1w!Q`Wot5VPht} Gu!C&5UBqJa0;}u&}VOP_nU> zvQqxP>&%^BRxh{C`ObH~ANMvht1V&y4ZPw9eq^;RbIHBSgQnTgpQm;iT$4EtHQ7M3pOL{70Aj>eyG+TimPofJZ!0J>vy$1Lx`u|55MU^`Z8C zlD`IQ{)PznVGO*N9BR>*UHZyfc*_^K*_u&|Zh=&aYZ)5PJ~&Z1XlN wvLOz#gfXYk<^{V@{Txr3MZ^tpP4tPFNQfTM4715_gOoobyH=PO%P$P@3lp;z;{X5v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621b b/usr/share/terminfo/h/hp2621b new file mode 100644 index 0000000000000000000000000000000000000000..4421e59ebb8aa33c91b3800671d89347e693466a GIT binary patch literal 716 zcmbtQJ4*vW7@R}YsE8nn;tHPNCWwXJ1q4xiMS>WG_yR2~l3X+|$eD*BpoN8ng@uJ6 zh=L#pHa6BGSoy2YxxGuo!peo2op1Kro$qc)8^;8?aF1avW1G{akvv_E>q_XgY$c-? z3zlB4)C*}npROm1iIN3qXe>?h^^fHrDMO3HaRxC(My!n-;N1W_TF}a>9i8YwFZ!uR zFiCbCLvffqP0V0X)$U1SMSLfUm{M+r(Z9Q6?%xl{g`4LUiTjI%9Pp5D~@~ZG@J^9 z=CSVZ-eTlC?yq+SZ9f?fl3Q^S``zSDbEVOX!DG`rZ^ZvfqbnzP5m|PSiXydLiUqAL zXvPk9YBa_k_A|}_<%gM6%(B2?RdGuF1T!wSH=8y;QWmH=W@lvC5?8pkmD?P#HeFKX zJ@r+F+~qzGc&O1M^~XHnDbIM$3tnpcnm4@V9q;+TM?UeHFRFg!8{hT(U$&vWez<-= z6@P8p`8P+se`ij5(qW8!NEKO>vq%k##fC`(6VK-?G;zztSM_@fh|04_bmU}s3OR?I z*R=S|7R(?QY@lZj%d<1R}we6Y`usdI{c)gO#U6Y39rimKnw7JnR0}HW90y7;~>$x_e cYRNB|mYKH6eKDn#l6`vFwDb)f9kD#eAH(1%s{jB1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621b-kx-p b/usr/share/terminfo/h/hp2621b-kx-p new file mode 100644 index 0000000000000000000000000000000000000000..bf52d6ff88fce7f69418459b2454d1815ec507ef GIT binary patch literal 781 zcmbV|PiPZC6vlsxXrm&6Ac*ha3eM(GirGymNJaZcN-$BPwW0?PNj91^(vC@LswfD8 zAP9mW2%;bef*=TjAP9mWc=F`cn>WuQcv;`hrrKT|m~YX$-5T%Xpkk7Q4vUHtx(_ksczUz8W{1igWf!F$NwUB> zE@)JDY|&woSbD5#d|mfVZgHDC+~uCK`???SkVib`DbIMW`~@$0#cSU1mUq1810PlW z#Am+f`G4yx-}t_v`iHWgPWh$yd&Av&54^Iso+rskPuh&I11TaUIgXS`F{l|Ens_#g zA`>?pKd;}LLsXtdss|27N01Z9DNT!y{e>yybV~Hhz>cpJ(x(=u)u@82(`VGD>gs1) zLFR0cD@YgVA$?>8xrz*smb0lK>NAHdAZJ}8XOMZ1j+#p~(@!Bb&CpE7#Y(2_S2geFO~Xv4$vrXo R<$U@xqo$#wwbL1A_ydZ~Ef)X) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621b-p b/usr/share/terminfo/h/hp2621b-p new file mode 100644 index 0000000000000000000000000000000000000000..60ff8b59b4c8badfe649cb01fdf915b77559c6ae GIT binary patch literal 739 zcmb7AJxe1|6g`8eQIQ2f5MSX4zN8Q_Gb4gT{6>ONh^q^`g+<-eFc@6GsC`rw{9=iK}5z4KZv8=YvtIZ{?ZxxKD4-=+4_ zS=&&1yI3jMs#IL7ER+BXZ^yDC{$WKaV_3){2wIRNB2z<*@p6nMRj8(_MLm9?3C-kf z=q3h%W6&e^GWsxNw9dSp(a0G`#xOl22!7!==E&xaS~eI23T5m>TvzSB^L?@d9O4Ma zIKe5-sLxII0+;4{g=^f9-Qo`S#?c+VdmiwJr!TkvQvEZ|Gx6n1?sNB7c-Cjl7qLVU zwP=L!Aktz2A_I-_oK%kVM?>aHKX3FOK5q!I3H7n+&~nx(PcW^D?E2 T%R(mB6Z!=@Wu99V!}0$Cl6xY6r4jeDu^Hm;uctZ<8Iz^v4j+c_=X?41=m?_=JHpOR7#;zvsK0J z2VLLJpR#ebQPoP#mhuosI7xaNM)_zWOk643iSAJiaE%+>;tuzCU_R8F;Os6uh3o(`R~SB{jM_D*$v%+EOv zLAwM|TU>WHAod{k+2(B}RD?KC31dX(B|fkV-OuZr5Fw2g(Iz@Xm*^3fM4#{>I4^o9 W(^=(fnU144+Dq*r985$T1o#0w?h~;9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621p b/usr/share/terminfo/h/hp2621p new file mode 100644 index 0000000000000000000000000000000000000000..9201e98fc02d83849450b074df5680d367644c64 GIT binary patch literal 590 zcmaJ;ze~eF7=1ysDu^Hm;vr_RSsdh2COqn0ppm&6sD=?u|(EdS}u{x#4;*2Hksb3WzGf~ zR+-sa?_nQ@{o3P9wQvU2cY71e9n literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2621p-a b/usr/share/terminfo/h/hp2621p-a new file mode 100644 index 0000000000000000000000000000000000000000..0c4e4fd7d36bcb184ff32eb85ab66d842414647b GIT binary patch literal 598 zcmaJ;F-yZh7=1ysDu^Hm;tggnSw!R#CAsbfjA7NG^$Z=YQ5#_#!Z39KXTF1Y1Z(cukO!W#kCf?!>_f!vf#Ph#>{Rw}m z7rYL1zcG6^&IkE(pf=e51<~LSnSk&is$vtOhJ@X~QPK%3sq&og*yIQNoTCu5%MkVX z6>k+{8)Apo!u6a=5W7jjm{POM2ex4Dv%Skq5tqaT(IH}@MYIXG$?0x$jijWX?4YE~ PR^d{~5<+4ueZGMoqdOGU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2622 b/usr/share/terminfo/h/hp2622 new file mode 100644 index 0000000000000000000000000000000000000000..6282a07bc27bd2211da147c27968ef2f814a5576 GIT binary patch literal 1195 zcmZ`%OGs2v82-*op&4q>!|VuZ&6%;L?A|*sbtWAj*fcZJ==eyZ#o(Q*juxYinyAnw zY9mC8+C+;8+O%mK1O;t+Py|6x1VIo4K@bE%(Ct6>>V%SK=KTNnzs~=i|J(zt3VX2= zw^8pL&uc+VTeekZIhLxEHW&kgy%=F@u@p>mKS9$(!lYFS2TI9yVmtXtP=;#MpqB7q zv?5A6hB(O)oWmID9HvQ{W&!h9vd|@5##KVAxQ?5oZxJV%aToV+-$JJO01wyD6FkK; z!Y^pQ!W+EBJG{q7vOdxNj4$|#Z}^TM_(}FJ{Kg-;$Tn8O%2+wu#db5(+{da}EfcJP zu$MJ5mHAnSwUA}66Kg2CrW0(CP=-yhE9_1&>roLsCiI-WWUtw(!!)na{@=Rc_~6*% z+!(2H);ReDN>C2&19xYXQDvCNT@k<13Z4LuOQ*=ILhmf1MUmIYc12W5DzmBtv z_0$SfDc-f z`@xBbWH+l=Qf-H!!q8y&VEADKU<6@=U^JoJy1&<&kmQ&-_HS6W*P4Otl?jGok8@Jd z<&>s`o|KxXxeayekhWE5Og6Q84$HS7?rvQyDJvqC5p5#x7X`7Tu86UW@Jd%$I#rSP ziDi)wlAy4*DXbME{!I}o4A?bIn<61Ps7-b$%u4BrdZ=Gkc+wtfnOzHQh)_nDexs65 zvnW)EY^4Z;tJq;ZrgqjB^|uC2H8-?);_1XtvbU%G^r4iiH{4gBKG?4gXoLPC-`@-?*qlLg+aK33Fbg@y+bbWC4u&tp;mXeAtvZ@H{O46oRFA8-; P$bO6os?EtSF&D*O#ZGK7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2622a b/usr/share/terminfo/h/hp2622a new file mode 100644 index 0000000000000000000000000000000000000000..6282a07bc27bd2211da147c27968ef2f814a5576 GIT binary patch literal 1195 zcmZ`%OGs2v82-*op&4q>!|VuZ&6%;L?A|*sbtWAj*fcZJ==eyZ#o(Q*juxYinyAnw zY9mC8+C+;8+O%mK1O;t+Py|6x1VIo4K@bE%(Ct6>>V%SK=KTNnzs~=i|J(zt3VX2= zw^8pL&uc+VTeekZIhLxEHW&kgy%=F@u@p>mKS9$(!lYFS2TI9yVmtXtP=;#MpqB7q zv?5A6hB(O)oWmID9HvQ{W&!h9vd|@5##KVAxQ?5oZxJV%aToV+-$JJO01wyD6FkK; z!Y^pQ!W+EBJG{q7vOdxNj4$|#Z}^TM_(}FJ{Kg-;$Tn8O%2+wu#db5(+{da}EfcJP zu$MJ5mHAnSwUA}66Kg2CrW0(CP=-yhE9_1&>roLsCiI-WWUtw(!!)na{@=Rc_~6*% z+!(2H);ReDN>C2&19xYXQDvCNT@k<13Z4LuOQ*=ILhmf1MUmIYc12W5DzmBtv z_0$SfDc-f z`@xBbWH+l=Qf-H!!q8y&VEADKU<6@=U^JoJy1&<&kmQ&-_HS6W*P4Otl?jGok8@Jd z<&>s`o|KxXxeayekhWE5Og6Q84$HS7?rvQyDJvqC5p5#x7X`7Tu86UW@Jd%$I#rSP ziDi)wlAy4*DXbME{!I}o4A?bIn<61Ps7-b$%u4BrdZ=Gkc+wtfnOzHQh)_nDexs65 zvnW)EY^4Z;tJq;ZrgqjB^|uC2H8-?);_1XtvbU%G^r4iiH{4gBKG?4gXoLPC-`@-?*qlLg+aK33Fbg@y+bbWC4u&tp;mXeAtvZ@H{O46oRFA8-; P$bO6os?EtSF&D*O#ZGK7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2623 b/usr/share/terminfo/h/hp2623 new file mode 100644 index 0000000000000000000000000000000000000000..78809dfe4eaee5d60c686337a55db12752101ddc GIT binary patch literal 1195 zcmZ`%OGs2v82-*op&4q>!|VuZ&6%;L?A|*sbtWAj*fcZJ==eyZ#o(Q*juxYinyAnw zY9mC8+C+;8+O%mK1O;t+Py|6x1VIo4K@bE%(Ct6>>V%SK=KTNnzs~=i|J(zt3VX2= zw^8pL&uc-=w`{A-ax7IRZ7>D~dojY+VkwyBeuAcngh{Iu4wRDZ#CGzPpbXWhK`r6K zXhoEC3~`bpIEOLPIZTr@%>w4JWT8vAjH`rJaUC~F-y%*j<1X&uzJ*Nl0UoZQCwPiy zgkR8pg*SMMcX*GFWPPIj8DH=f-|!tj@RRIc_>Dhwk!`Gmm9cWRi|uBnxsO$|S|(Tn zVJ~ZBD)X}tYaz>CC)QAOO()nOp$wa1SJ<6m)}tbNOz1g#$zHQnhiP7;{l9g?@xigj zxiM1Zta0)Ql%O2k2ky=&qslOkyCQz26+8hRmrjvah2B|2iz2U)?TV!~w#0=QM9P>{Dn{!^}qM(6gRf^v0oxbJt;L&a~tZ`A#JPBm~3kG9F}iE+}*lZQdUGNBicmXFA8EwT@hm$;gznibgCln z6U!nWBtcKgR*-8-xSFyu-Ozo^M>TeC4YHn!p#M6nPWN%OV=|d@3Z@8~MeXw60&<6cOzB4Vu z-jO4EEO&CUf2!|%_l4urM+H6U8VOv9yEF~3PWK|K?m84CtUKHwx Pko_1FRGX7uVlIlm(*!|VuZ&6%;L?A|*sbtWAj*fcZJ==eyZ#o(Q*juxYinyAnw zY9mC8+C+;8+O%mK1O;t+Py|6x1VIo4K@bE%(Ct6>>V%SK=KTNnzs~=i|J(zt3VX2= zw^8pL&uc-=w`{A-ax7IRZ7>D~dojY+VkwyBeuAcngh{Iu4wRDZ#CGzPpbXWhK`r6K zXhoEC3~`bpIEOLPIZTr@%>w4JWT8vAjH`rJaUC~F-y%*j<1X&uzJ*Nl0UoZQCwPiy zgkR8pg*SMMcX*GFWPPIj8DH=f-|!tj@RRIc_>Dhwk!`Gmm9cWRi|uBnxsO$|S|(Tn zVJ~ZBD)X}tYaz>CC)QAOO()nOp$wa1SJ<6m)}tbNOz1g#$zHQnhiP7;{l9g?@xigj zxiM1Zta0)Ql%O2k2ky=&qslOkyCQz26+8hRmrjvah2B|2iz2U)?TV!~w#0=QM9P>{Dn{!^}qM(6gRf^v0oxbJt;L&a~tZ`A#JPBm~3kG9F}iE+}*lZQdUGNBicmXFA8EwT@hm$;gznibgCln z6U!nWBtcKgR*-8-xSFyu-Ozo^M>TeC4YHn!p#M6nPWN%OV=|d@3Z@8~MeXw60&<6cOzB4Vu z-jO4EEO&CUf2!|%_l4urM+H6U8VOv9yEF~3PWK|K?m84CtUKHwx Pko_1FRGX7uVlIlm(*z)Dpx@nYh| z#CY*yJehdV3yCLBp8PAkm}ug~AJLeYn7F=~1r(yw&iB4~@6Eh#-t2B_!gg%LW1I+G zELw5PUIey%=cgL{MUF{=9eWxt0T!!IwUTk990l8h)B*DH%3KwIAt3x5Iqpx$|;McblO+g z4Oz5!9Zs2?RH=8}FxvSQmQ!bf1PHyy;Gk%Q`e(x_i_h)FCeC%(5pg;cbVBqiJE)*d zfvW2q$7W^Hj02i1L&=PFgj4Z&eT#^cOzSVc+Ryogws0!JH8aq)StK8wRT=~r;$wqL z79pk~W*}xEJcw%$a}Xtni&|L*;y46L9flau*BXLgvFZl1hDNg$t_jzI8-r`ZZGanx z+Xy#-D&3=6-9>eeT-~3B243B#z^f8mBWU@g;iyhdNhhN$ON+SX|3lXQLKCW}t~sjS zi?v4_Id9yO*_=Eki?;OSym?Db#W(|ptuuaF64WHUO)|e(CLv60(2r@IiKXq9hOVZX z=4kg|p*Z)@LyY`8x;uy1hxkU4CP*r#Hrn@4NM4mq8LlaoVJ1D89l)K4Gw8m`6X u5~arLM^sOj8y7TNH$|ybQXH8#WzsP+fxLavt7bvLV_f3B1@*NS()bOQM|}wZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2624-10p b/usr/share/terminfo/h/hp2624-10p new file mode 100644 index 0000000000000000000000000000000000000000..194ab137f331374fa0e1f11c870f7958d40cc20e GIT binary patch literal 1289 zcmZ`%&u>go6#hH1H88vOGsu9y)C?R?J=9OuyukF)OC9#p% zNW{iQtRxm}Bvw{d{t6ojiH#p25{blf?tN`(!=1U``R+OA-t*ma-xexi16JV?j>Inc zcE(QcvrPX+M4i9*Ma{d))zNYg7$s+D#F=yrwZUjNs*Q$a8oo1Jo-)QgW2`(jJ~;y- z5TZfM^&pfGhMVw(@zuJJ#|qS71;=7o&c0gIVKcU38}r?0MS*P>x*5;nJcij;Fu@px z0j4pl*)8109cFiN9}n0*$9RHgc&_;yjmrBTAMlY^pLu@8cl^Ll{9>(PxQu5l z)logIrS-ItHuHKbZKE9|X%{unezGV{&FpQVgVaICsL1>z_0j;Hp>uSBSJ80hm^)|3 z={mF9bdR3W>xHbh3+x@UPxOVp(es)xe8KZy<7G`)lZ`Eo08q6SYR{Kw|O1UTbxvg`{0j4_lTiYM-eYo5v_bt#@x0CF zp1^9(b=i?{I~8<6^eEe>pk0Bg>mJ4$WeSYFn#@DhN_EEbnM`A=NK`HRFTU8%`IYu~ zKFc+W(6w14A6-%!1Q+6Cqf7b_6A+USQxE~fRfuVbD#RtNtO#)!f~5{XoYL3ohhVYl z22-X+s|}t7&xV(Rmxk8_F9WX`UKaJbM-94*>K@L%KMjq%x=)c;C3t4k@)6Tjog9^J zQCXIj@T~ub?Ei&^RZ(4YP`wvxPq=c{yeUhLJS6?J4CJhJQw}?_LAi3uX-PjNZ%9AG zz+rny*j|XFmqd7DQ?w_$B+|?W9a2?-DTT>GlIxXavM%dD~@Ru%PHM NF7w`s`dTXm{02)hgn9q~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2624a b/usr/share/terminfo/h/hp2624a new file mode 100644 index 0000000000000000000000000000000000000000..b5a829ab86f0b528d7bab60e486d9287757eb8aa GIT binary patch literal 1265 zcmZ`%&rcIU6#gF7fEd(hH0qd$+G$ZlcDG9@v|<58ew0vtDj1EG?V<&>z)Dpx@nYh| z#CY*yJehdV3yCLBp8PAkm}ug~AJLeYn7F=~1r(yw&iB4~@6Eh#-t2B_!gg%LW1I+G zELw5PUIey%=cgL{MUF{=9eWxt0T!!IwUTk990l8h)B*DH%3KwIAt3x5Iqpx$|;McblO+g z4Oz5!9Zs2?RH=8}FxvSQmQ!bf1PHyy;Gk%Q`e(x_i_h)FCeC%(5pg;cbVBqiJE)*d zfvW2q$7W^Hj02i1L&=PFgj4Z&eT#^cOzSVc+Ryogws0!JH8aq)StK8wRT=~r;$wqL z79pk~W*}xEJcw%$a}Xtni&|L*;y46L9flau*BXLgvFZl1hDNg$t_jzI8-r`ZZGanx z+Xy#-D&3=6-9>eeT-~3B243B#z^f8mBWU@g;iyhdNhhN$ON+SX|3lXQLKCW}t~sjS zi?v4_Id9yO*_=Eki?;OSym?Db#W(|ptuuaF64WHUO)|e(CLv60(2r@IiKXq9hOVZX z=4kg|p*Z)@LyY`8x;uy1hxkU4CP*r#Hrn@4NM4mq8LlaoVJ1D89l)K4Gw8m`6X u5~arLM^sOj8y7TNH$|ybQXH8#WzsP+fxLavt7bvLV_f3B1@*NS()bOQM|}wZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2624a-10p b/usr/share/terminfo/h/hp2624a-10p new file mode 100644 index 0000000000000000000000000000000000000000..194ab137f331374fa0e1f11c870f7958d40cc20e GIT binary patch literal 1289 zcmZ`%&u>go6#hH1H88vOGsu9y)C?R?J=9OuyukF)OC9#p% zNW{iQtRxm}Bvw{d{t6ojiH#p25{blf?tN`(!=1U``R+OA-t*ma-xexi16JV?j>Inc zcE(QcvrPX+M4i9*Ma{d))zNYg7$s+D#F=yrwZUjNs*Q$a8oo1Jo-)QgW2`(jJ~;y- z5TZfM^&pfGhMVw(@zuJJ#|qS71;=7o&c0gIVKcU38}r?0MS*P>x*5;nJcij;Fu@px z0j4pl*)8109cFiN9}n0*$9RHgc&_;yjmrBTAMlY^pLu@8cl^Ll{9>(PxQu5l z)logIrS-ItHuHKbZKE9|X%{unezGV{&FpQVgVaICsL1>z_0j;Hp>uSBSJ80hm^)|3 z={mF9bdR3W>xHbh3+x@UPxOVp(es)xe8KZy<7G`)lZ`Eo08q6SYR{Kw|O1UTbxvg`{0j4_lTiYM-eYo5v_bt#@x0CF zp1^9(b=i?{I~8<6^eEe>pk0Bg>mJ4$WeSYFn#@DhN_EEbnM`A=NK`HRFTU8%`IYu~ zKFc+W(6w14A6-%!1Q+6Cqf7b_6A+USQxE~fRfuVbD#RtNtO#)!f~5{XoYL3ohhVYl z22-X+s|}t7&xV(Rmxk8_F9WX`UKaJbM-94*>K@L%KMjq%x=)c;C3t4k@)6Tjog9^J zQCXIj@T~ub?Ei&^RZ(4YP`wvxPq=c{yeUhLJS6?J4CJhJQw}?_LAi3uX-PjNZ%9AG zz+rny*j|XFmqd7DQ?w_$B+|?W9a2?-DTT>GlIxXavM%dD~@Ru%PHM NF7w`s`dTXm{02)hgn9q~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2624b b/usr/share/terminfo/h/hp2624b new file mode 100644 index 0000000000000000000000000000000000000000..b5a829ab86f0b528d7bab60e486d9287757eb8aa GIT binary patch literal 1265 zcmZ`%&rcIU6#gF7fEd(hH0qd$+G$ZlcDG9@v|<58ew0vtDj1EG?V<&>z)Dpx@nYh| z#CY*yJehdV3yCLBp8PAkm}ug~AJLeYn7F=~1r(yw&iB4~@6Eh#-t2B_!gg%LW1I+G zELw5PUIey%=cgL{MUF{=9eWxt0T!!IwUTk990l8h)B*DH%3KwIAt3x5Iqpx$|;McblO+g z4Oz5!9Zs2?RH=8}FxvSQmQ!bf1PHyy;Gk%Q`e(x_i_h)FCeC%(5pg;cbVBqiJE)*d zfvW2q$7W^Hj02i1L&=PFgj4Z&eT#^cOzSVc+Ryogws0!JH8aq)StK8wRT=~r;$wqL z79pk~W*}xEJcw%$a}Xtni&|L*;y46L9flau*BXLgvFZl1hDNg$t_jzI8-r`ZZGanx z+Xy#-D&3=6-9>eeT-~3B243B#z^f8mBWU@g;iyhdNhhN$ON+SX|3lXQLKCW}t~sjS zi?v4_Id9yO*_=Eki?;OSym?Db#W(|ptuuaF64WHUO)|e(CLv60(2r@IiKXq9hOVZX z=4kg|p*Z)@LyY`8x;uy1hxkU4CP*r#Hrn@4NM4mq8LlaoVJ1D89l)K4Gw8m`6X u5~arLM^sOj8y7TNH$|ybQXH8#WzsP+fxLavt7bvLV_f3B1@*NS()bOQM|}wZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2624b-10p b/usr/share/terminfo/h/hp2624b-10p new file mode 100644 index 0000000000000000000000000000000000000000..194ab137f331374fa0e1f11c870f7958d40cc20e GIT binary patch literal 1289 zcmZ`%&u>go6#hH1H88vOGsu9y)C?R?J=9OuyukF)OC9#p% zNW{iQtRxm}Bvw{d{t6ojiH#p25{blf?tN`(!=1U``R+OA-t*ma-xexi16JV?j>Inc zcE(QcvrPX+M4i9*Ma{d))zNYg7$s+D#F=yrwZUjNs*Q$a8oo1Jo-)QgW2`(jJ~;y- z5TZfM^&pfGhMVw(@zuJJ#|qS71;=7o&c0gIVKcU38}r?0MS*P>x*5;nJcij;Fu@px z0j4pl*)8109cFiN9}n0*$9RHgc&_;yjmrBTAMlY^pLu@8cl^Ll{9>(PxQu5l z)logIrS-ItHuHKbZKE9|X%{unezGV{&FpQVgVaICsL1>z_0j;Hp>uSBSJ80hm^)|3 z={mF9bdR3W>xHbh3+x@UPxOVp(es)xe8KZy<7G`)lZ`Eo08q6SYR{Kw|O1UTbxvg`{0j4_lTiYM-eYo5v_bt#@x0CF zp1^9(b=i?{I~8<6^eEe>pk0Bg>mJ4$WeSYFn#@DhN_EEbnM`A=NK`HRFTU8%`IYu~ zKFc+W(6w14A6-%!1Q+6Cqf7b_6A+USQxE~fRfuVbD#RtNtO#)!f~5{XoYL3ohhVYl z22-X+s|}t7&xV(Rmxk8_F9WX`UKaJbM-94*>K@L%KMjq%x=)c;C3t4k@)6Tjog9^J zQCXIj@T~ub?Ei&^RZ(4YP`wvxPq=c{yeUhLJS6?J4CJhJQw}?_LAi3uX-PjNZ%9AG zz+rny*j|XFmqd7DQ?w_$B+|?W9a2?-DTT>GlIxXavM%dD~@Ru%PHM NF7w`s`dTXm{02)hgn9q~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2624b-10p-p b/usr/share/terminfo/h/hp2624b-10p-p new file mode 100644 index 0000000000000000000000000000000000000000..3a846f106457bb702a9e7ad1e0bd8a86e7f5df45 GIT binary patch literal 1302 zcmZ`%&ubG~6#hhUhKyn zJcARx?%QcQb*;@Z{Wkx0-mT8NL0}Y1({rVYV<^t(H>&N1dn>4vj0Jb$W@Xig8-8W> zM&MRJ1VXroW4)+|TI~S7vVGH3|`p6ZH(=}Zv25mIKuIt=s}Ks9)oPBa2Ye~ z%UEPvs|8rWnvU+`J|1xN5RdSf{ZrPiDxTv7Ug8x#a`s6h3jM;pzj5}RpC9-MP?WaQ zE~?e`^3zC7w4V-;pu^P6d5jX<zMHlG4;oS?Xo9pU%<{4bvFM6EsDa=_*Z=$62^$ z*Q5D$U!{8-J)|e}n%>f9`iK7I9Fcl`l%s}7W27naj-&S*c%2XZhsfdRM07JY6}=J_ zv)F+Kh$KY3WKNrtVlb9XnLQ9g5Q7Soz9pU08_}xtZO&s^i;H&aU90A4zJ+>eB`ko@ zdrT%pAJo4X%i8?j3)siC4g+y#K$$$mu=1nI^edzKI%m+RT#oIC4(g_AB?n^Jbh^Dq z#H*J5zj!mw^?quZwTXDSKbGy{-UVn4ES6gol@`Gb`SsypeTYSf3d9mb0I>|Q0#Svy zt`!y_&Oor_afplhcw-POTAgIc)Yj^QXTh`KCE=yub-+u*>x9>Z20g1*Jxz65LE@98IFF=bks!WrBhIzrNuq#_murRDzC<&C+=HG)yuamb~8$gmNKcXlaCa4 z;w~v&QX!LjRqecW pQjNMk&+rcPP?Sm~#gVQhGmcpZ&GO!|`k2c(`~syVe6auk literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2624b-4p b/usr/share/terminfo/h/hp2624b-4p new file mode 100644 index 0000000000000000000000000000000000000000..b5a829ab86f0b528d7bab60e486d9287757eb8aa GIT binary patch literal 1265 zcmZ`%&rcIU6#gF7fEd(hH0qd$+G$ZlcDG9@v|<58ew0vtDj1EG?V<&>z)Dpx@nYh| z#CY*yJehdV3yCLBp8PAkm}ug~AJLeYn7F=~1r(yw&iB4~@6Eh#-t2B_!gg%LW1I+G zELw5PUIey%=cgL{MUF{=9eWxt0T!!IwUTk990l8h)B*DH%3KwIAt3x5Iqpx$|;McblO+g z4Oz5!9Zs2?RH=8}FxvSQmQ!bf1PHyy;Gk%Q`e(x_i_h)FCeC%(5pg;cbVBqiJE)*d zfvW2q$7W^Hj02i1L&=PFgj4Z&eT#^cOzSVc+Ryogws0!JH8aq)StK8wRT=~r;$wqL z79pk~W*}xEJcw%$a}Xtni&|L*;y46L9flau*BXLgvFZl1hDNg$t_jzI8-r`ZZGanx z+Xy#-D&3=6-9>eeT-~3B243B#z^f8mBWU@g;iyhdNhhN$ON+SX|3lXQLKCW}t~sjS zi?v4_Id9yO*_=Eki?;OSym?Db#W(|ptuuaF64WHUO)|e(CLv60(2r@IiKXq9hOVZX z=4kg|p*Z)@LyY`8x;uy1hxkU4CP*r#Hrn@4NM4mq8LlaoVJ1D89l)K4Gw8m`6X u5~arLM^sOj8y7TNH$|ybQXH8#WzsP+fxLavt7bvLV_f3B1@*NS()bOQM|}wZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2624b-4p-p b/usr/share/terminfo/h/hp2624b-4p-p new file mode 100644 index 0000000000000000000000000000000000000000..b60cbfed773cd175bbb08d9019332f172d23bab7 GIT binary patch literal 1298 zcmZ`%&ubG=5dJ1Xtv_m^P*9&}s(Fc8tGkqU9g zYP)ci?VIKruLgwBz^O1cF}DTVup4`^pYdVzAj3Y3LAF!4j2ZT2EU>NBd@N%{qr13| z2aF!#5gxOD%DPp>bG*PyyuwG0K50g=U+@**Ir_oRFZ>25Oq*#d)oMHVX`*IopF=s%TEX1(#qssIvqxw3h(4<_3?T7|-Q#BI<(R4C-yhp^Uru7eA&vU(JFR?Ze zEB8m!UEDhdt%1dIi@eezxFNqjIIIV;08xQhgzzDjAeJGj5VKlg4&oF9OTGXxu8%hc z!J^ek77cC9KDZ`a3vL3g4Yvbs5^g8lE;Q;{wdrZ9^Ay_u4mM!*yaHAgxJEGgIm1yC zotI8dd6pJ)&HtyY|E02O9D3rOnNYnv(_}ZJv}h@l>N@#IF-NW#cVxaGd!=VfU#^&U z>xVynJm>rx_P_jH`?K6D~JI65?u8$Q=}{$M^joEm8z zJuqfou*U6)#KjYnZBs{_Z28RG*!;-#fg8scj`|%-$>pwU=gnhk)b)7=cc6!&R4OTs bESfUq7`Z@RtMnr*D7d2%?=7p3xtzft!R&hE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2624b-p b/usr/share/terminfo/h/hp2624b-p new file mode 100644 index 0000000000000000000000000000000000000000..b60cbfed773cd175bbb08d9019332f172d23bab7 GIT binary patch literal 1298 zcmZ`%&ubG=5dJ1Xtv_m^P*9&}s(Fc8tGkqU9g zYP)ci?VIKruLgwBz^O1cF}DTVup4`^pYdVzAj3Y3LAF!4j2ZT2EU>NBd@N%{qr13| z2aF!#5gxOD%DPp>bG*PyyuwG0K50g=U+@**Ir_oRFZ>25Oq*#d)oMHVX`*IopF=s%TEX1(#qssIvqxw3h(4<_3?T7|-Q#BI<(R4C-yhp^Uru7eA&vU(JFR?Ze zEB8m!UEDhdt%1dIi@eezxFNqjIIIV;08xQhgzzDjAeJGj5VKlg4&oF9OTGXxu8%hc z!J^ek77cC9KDZ`a3vL3g4Yvbs5^g8lE;Q;{wdrZ9^Ay_u4mM!*yaHAgxJEGgIm1yC zotI8dd6pJ)&HtyY|E02O9D3rOnNYnv(_}ZJv}h@l>N@#IF-NW#cVxaGd!=VfU#^&U z>xVynJm>rx_P_jH`?K6D~JI65?u8$Q=}{$M^joEm8z zJuqfou*U6)#KjYnZBs{_Z28RG*!;-#fg8scj`|%-$>pwU=gnhk)b)7=cc6!&R4OTs bESfUq7`Z@RtMnr*D7d2%?=7p3xtzft!R&hE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2626 b/usr/share/terminfo/h/hp2626 new file mode 100644 index 0000000000000000000000000000000000000000..516fc4076e23d409d4e0ee39deb6e277e34d9b49 GIT binary patch literal 1232 zcmZ`%T}TvB6#mX`VHs)=MRoAi&CJfOKfA5#52ouzt8SVF!QwdT_QRT!6`J(Y zL%jsO^b$c35kWx&z4XvaPeCsc1VIo4MGyo*AOub4&a6gKclVz2-SeHld+zL@dThle z+(s%mT{7ZEe9>2hvMw$5=Ngn9L?HN!7<-FyaNX?;T^EBcuMG%b1D}If&$bFwq84@7 z%{YpFWLOU)&(gvaW?4H}VClL`xQr_vx`ykx!RRJ#;STG2xbN8?;W3_i$aSCLMH#)s zE4*g>hWA^%!+U(dM||Sb7v5j-4d3wt%lL_3d?s2)6;w%8w3)WhHmapMa@~4rq$X-1 zov}%+)IkR*O+9?_S6>+ou+H;7K{Mpg5?!Uc^nBIp-70#|=retxuk;|`x(|8(Ydr}p z2lU|Ij2UbXiWyX(3L**-E@%_lxX6T(rj~*jgy>a=n5LyfkD_Hsm)0M2QI-rohmtzG zS9->Nzn!M&xMi(S2%=f_O;j$w)&LlhZs_NM2T)CGD`HKMyWK* zVGpc`Vs|Ln#)-nkG+!YL?mVUHb5u^H7o3A5_$F*ALCiv&g_whIAkIO|L!5`0_KIft zwh-LK5r|Q*<2(fSp_-f1JgIlV)?pj4qp(fbG1zg~t+3lrAmXX>UsD+VM{J(mt?LW zJ7vj~j$F_$$*F>DR;Gk9>arA-i?S4F!L+f4HdYyP4a0#kKc;OB)5?iDRTXDW$w)fF z^(JLxB*G;p%hX>CdnEWbp&DwJPPLq@kqHPL8@=zwI37)#sn|e!Q%58-GB}nUI@EP| zS1vS^7~VP3nAeXOqvlxjXvcW-u{~CQ@!-k)so~RoXZFwTbzxfh_Sl}X*kYS#*Tvl zhu0=lU=yEx*vPg@RG|*Lae#3Mz36A1L6)V7QB1J5G0W0%=5Y@q6AM@DZQz8DH>~PYb*k@f|<#6Tk2qfA~zafhwtr zs%aZ-r=3(syUB6(&^~IQX3`mlsfF6<2qmeDPu}WTLVc{Wyw6jCY?`MV^nhNiczs+! zpBR0k1zM!X6^`?S_rKQjieDAFZ!Ht{wfRH=m8gaYK?HKzh&C+x{qeAtfEa-2R)>hD zB}A8^Wm%WzD!L-e2A}gGHxWN^UqlSG=HU!Kb zC3+zSl^#-}Q;B{hx>2iCl4ZsP%c9unkGFE7KrzWzNP#;~sQMh0R_O)j;0V46Tgng< z5R(v75H`d##3hIshzoAf6yFwtyEqAP%I!D{!F{OarZiXT9k6s*2CNXQFsulyD6AG( zt*Cad-{=lVwa7Q;QE|dRu4#2@9Shke8*fV~3 z;*cGgj$Ue=X}R32X1Y8$Z`kfoRF|q1Q|5IUGqsf0-d<_fb3@)^6gal1KF(qie*t~I BcEJDu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2626-12-s b/usr/share/terminfo/h/hp2626-12-s new file mode 100644 index 0000000000000000000000000000000000000000..e326b9e0a122042a2b5bd3145ff595f9080409ad GIT binary patch literal 1376 zcmZ`&&u<$=6#kyAs-;!Z69+m-xR9|6!E|QUcHBC0ohE8*#}Q7PrUa0X$$In4SnGIQ zQ_>(L!~uj^qIKcnL4#b;b^=sIy+h8cP>j=(7%Rz%mR!#b@{; zLSNw??lbxpKj0zjpYU_!{|%4uI6{BoFT6rFDhwrEqAcUf{20npkxEpiIkpz~S)@8G zQP8)2$Pan{S)S+$KqaO7spb>jNp+owdzND`i-=q8V4Sh%7(*w5R_3#M&$ohAF z{-7uHl>VlFD5MLC@vi(cRAh8Lv5;6yoJw*>l9Md|zowIZ@|P3LugOPAv4hi?fN&tv zZMCU3M15*Dr^*mZ5DV7GD^(WrmX^Mj?lHO}eZ%(Dtmf@!qxd^&p64;%x*u;q9IcoX zbFlyB)U4qfmNChDU3R418&*^yR;+GWaovi#6$?0TRfXkh1dfGBk7hjM>l%Zcr)$jg zoj@I^YKlF|(>mYNwIkd!5i*|MQLY*q(^V}?8PBl8I78zcdEzru+?Vujg=GWWl(H?2 z6KdMb1*gZ!aFf{ML-Zl`AqEfu#1P^(#0X+Ls;9w?gx~^iLaay4ScBjaZQTPENj(Qo z!!z(4csY1^cm;Sf@QRp-Iy)Wp-d4{|2~&bATe)e6Z3r4n72WmiifwSTsxDl zbQ@N4x@k{8pEA#*w(RlI?HhLTTu<7S2kKBZ+wz+9b25+z`cQ7Q<+OE`tW!(hk$0tE zV8OIGL7Qhx?gYbu`8cL{f|=oiuGw3Hft8s`hVSdhOe@1zc8;k3FubG0zfGIa6&Xy* z&Usma(0Cz!CF9r0#IKX7O^Bs&q4O~BIh9;FU%PVYYNp;=y46@&o_qVX=G01Q^Z-2wpsR@g#T=K@bE%Pzr(|2!i1HX1A?abdq`Rd-Kivo!vokY{h!q zMlx`=WWXr9Ke;$g;FBib>WEW?8!K0xsi< zhpyo|ZZNuuTe!pe9`1YRkMI~zJ> z#}E9(FSd!+P$gAU4Q-|^w2ih?ExGPas-t?^Pda0hny8fyQi?j*@>k~)I>tK7`wWed zLko13?$Yy>TklrTdq$sWk-pG_3fFze`(Nux#g7U-@Hb-yS^{DWm8gM;LWFbLh&C*` zLv5y(gy?}dqKufPB}Ip#Wl5LTA9P8U47NjUI$y8${4Z%8{2t3!r~C`>y)`C9JJdfD zYBM;)actzf79WJIP9?e^dX?^1;;<6kN*uu^rBW>WJg_VZheK`694K5!aSLg1g}*~ z*aqw}J$>?KgM>QYCWdJSq+t&Ncp-n$N2N`aGvv=9QDJ`4b-3EH${I zw9-m*xnW!XKV|%n8dc%F?8EALxSy~kXSI2m$;m^qWJ*WQ>hp3mCmYmJLLKU|6qR$b z6lcM-v5GcU7;_cFjxpb-c@@*dfexuGPFcxFD#H2lGSVO6l=&s*%@_7l4^q25H_uKv2LK41)*L(!A1!wskQ zT3v;sf6#h)kS))9=_NvicR_mQMFwWd~T+D1&1R;_{%yty?o4Ywv~t*s9P zH*OR+f{5TkaV5HOp=eWW22_g`}MT~<*1^E76hQ5yppVwwYu$j+MY+&0a zY(+Qr;|OC5IgGO|Vv41MSX*e{Ej09Tin>b5PCVrG@I#(c zb$A`*s_=DgDMt^zE}gvATyESo{!f|zqh|H>LG~H_wA@eJk<03yER^LL>DjU+myLUJ zwk-R!DWi>s^enj|y%YWD}gPA`_(qr>v|} z|1j*4;ol8i&?(vKl9e4Y17ToG@XeXmtgJnh96QxJkQgsbT+UBk7`}M8&@-7S9xNT2 zGN#Q-_GRnJz)auOqfV}N{?=5zI5*ljIe)B`Y^N6b7t?o6=$Uo~7Y;iZimpe02 ZGmgrKiMwMf0`opee@dtpfdl3Kt literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2626-s b/usr/share/terminfo/h/hp2626-s new file mode 100644 index 0000000000000000000000000000000000000000..4563ad938e88d27182fe4b9f2eb1e06bd13f467f GIT binary patch literal 1358 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2627a-rev b/usr/share/terminfo/h/hp2627a-rev new file mode 100644 index 0000000000000000000000000000000000000000..65bdb1d2af0c862f8e9352ee1330ce0c6705bac6 GIT binary patch literal 635 zcmb7BF-yZh7=1ysRS1G0h&PzQb`dp~LPZd%RHRsiYH?6-Xq!MImDZ%DD*g>Ya1n8E zaBy&NaBvX8Sp*UME$4UFYupMRy!XBD-MieEWYUnv1e11~x+lq}g; z9lu?-$nb*Dvm)R1npUmZXa*r*ptlS|>px3xDZ@YsLQIe)1d2mc2QWxFff0;i4CADy zFi$K5SDYcv5*CqDz1-=oymr=5RBA`@9`;d0%TndQwslQMcDd`2I^-3*YS;J)KjmlKx2fa0vwfL6 r$eAod18qP(KS@`z7WGGjfDjVegkwTP=$JH;Ng+M6oRM)1%QyQ4Q28Z& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2627c b/usr/share/terminfo/h/hp2627c new file mode 100644 index 0000000000000000000000000000000000000000..61f9e2c20cf79598efbd460f2aed23b923da83c2 GIT binary patch literal 639 zcmb7BO-sW-6r3R1DilEw#66gU6~%+u6f1&Ar6R>vs0xAzLYfpBNk43Bi{Rf-@FL>D zg9i^DJb3URf@cv#@W;f-n#Nnfg_$>R-rMZk&7`)7dBkvzZ&Vs)+FY{Faz#B5x?T6` zO?}orwQ6&EyWFh0HOtexZo8t_>bhr@%3cf5&|8`o>OU(iDMKs5_b2H1KJr710~n-^ zVFaTX!#MR67RbIY6{pB)Vi_5g2bJE+hRy~GO6@5=z#*Kdw-%}kT;eKneg8VrH&nN{ z!#y7Gh$lQpm6u5MPV66F|Jnb>{&%(KgZ$ZN_ZNiAAC!PdLFB|HL>>XpSjmP=I@w=k zCLLSl`+Uwg1no75;`EBS3b6&T&9;uYOLo?&q*57(oxnGOjLae}s;ab%l3|;!v?QZ+ y4Mu4jZqRd-Nr)83DL{Qa&I3h*`7zNXT11;TAv#1i!GRKN3MURG6cWS1y?y{=t|m?Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp262x b/usr/share/terminfo/h/hp262x new file mode 100644 index 0000000000000000000000000000000000000000..069aa6aa269d10eabd52125f49e323f6bf8c7920 GIT binary patch literal 506 zcma)$OG^VW6otQ{8{N2ZQ!hwC({Ur%C<;EO55z~sv04!Xp;)m(E5#|rMfd(GSN^dv z$=EO>2xf6|&OPUzWT{YO7Wm+c-cWDr_sL0AvUh3p^fq{T?et?~Qy|G5e(9_^X>v)+xNYvZ=YfvlU7i{Iv60{Z zzlu%Y*mZs)XGpZVuMd%Ow`$?qLd`?NvM>W_I6^KE6Kf&ouBC@uAx*?=w2@n+j+n9= t#P-G;4l4%T3n~Z$b)<$BHBvz>P!qLhrM9x+7-?FB;s!7nr+Ml1@%&csCS3pION1LE6Xw3FxP>{Zh6ed6}s0M0-TAcBjW_=H|t$kgCZtxo#s-RBfjcDq2 zd(_LtoDDbh&44C|`?{b#vtDf7K8+Zml=B)F2ovNfWHpy^*^POu z>8yku?CPwdaUTsFxIJo*V=YpSwc5rBPH~P4T;l3ipVNJf8{Fcastx{6r^YKfgwkOnWgQImoiH+!?xOjYMVDoK0Gd zo^*$q_h#nJ+nVsOi4s0I#*x=LY^Yg=%>^E**)VW;(djxy#}jRw-pF_KV-mjtf+K%I zhyZE2%?Ye(&m&U&j|zV>3$`LP+`ywLm1Z#W+~p9=G7 zfiL}jqxplTc=P;E{R`{oUpMbqLlrcn3(zHO-BtCdQTM`rPCcgg`Q#QAtb=&b1qGlh w&^3#~9%y9o6m+)JZn~~Kfqa`p(u`HCWuoqkPNYdfkk1Czq+0p@$l8|i30PeU#{d8T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2644a b/usr/share/terminfo/h/hp2644a new file mode 100644 index 0000000000000000000000000000000000000000..80f570ec250c0bfbcc931ea20876305c74f127a4 GIT binary patch literal 692 zcmb_XOG^S#6#j0D%&0{W6kRAIud`@l<0B&RmBC;}W-o*`<`}vO$p|5df*=TjAPRyY z2!bGJ9sM|O=iV8IBHDF^^PTg3=XGa-O<@*3+#$s3O*0-1?{##HRytNOKtemvsvS0J zEr8MI7-PN66}+HzR)mz}q)B-u`U!zPLO+Huf>Df7K8+Zml=B)F2ovNfWHpy^*^POu z>8yku?CPwdaUTsFxIJo*V=YpSwc5rBPH~P4T;l3ipVNJf8{Fcastx{6r^YKfgwkOnWgQImoiH+!?xOjYMelMG4J`4v_MkEa$12=gQd>INuHPMa=Yte}eVbwLS22;s2 z1~C9mr5tz}e1$X?g(1rXUsFD>Kn<}93bNo8*K1Nz?MAnk#8h>*HuZoKIQ4CUZ|N=T z;2Ypky)I-&)FwNs&^fV6=g<-n&W1%s9eE(a`LO7S1w{=-3m%RAuErJ3dDVoXrbm-M L#C3InAH0Qc(I6Y> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2645a b/usr/share/terminfo/h/hp2645a new file mode 100644 index 0000000000000000000000000000000000000000..25f9abe479349099e6f8882f69aee023b0d8abcc GIT binary patch literal 487 zcmb77O-sW-5PfR}ZLxZl&Ls!yN!&EricqZm5Q|2LJqR9Gv(SQQnvI~+TM>VDoK0Gd zo^*$q_h#nJ+nVsOi4s0I#*x=LY^Yg=%>^E**)VW;(djxy#}jRw-pF_KV-mjtf+K%I zhyZE2%?Ye(&m&U&j|zV>3$`LP+`ywLm1Z#W+~p9=G7 zfiL}jqxplTc=P;E{R`{oUpMbqLlrcn3(zHO-BtCdQTM`rPCcgg`Q#QAtb=&b1qGlh w&^3#~9%y9o6m+)JZn~~Kfqa`p(u`HCWuoqkPNYdfkk1Czq+0p@$l8|i30PeU#{d8T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2647a b/usr/share/terminfo/h/hp2647a new file mode 100644 index 0000000000000000000000000000000000000000..25f9abe479349099e6f8882f69aee023b0d8abcc GIT binary patch literal 487 zcmb77O-sW-5PfR}ZLxZl&Ls!yN!&EricqZm5Q|2LJqR9Gv(SQQnvI~+TM>VDoK0Gd zo^*$q_h#nJ+nVsOi4s0I#*x=LY^Yg=%>^E**)VW;(djxy#}jRw-pF_KV-mjtf+K%I zhyZE2%?Ye(&m&U&j|zV>3$`LP+`ywLm1Z#W+~p9=G7 zfiL}jqxplTc=P;E{R`{oUpMbqLlrcn3(zHO-BtCdQTM`rPCcgg`Q#QAtb=&b1qGlh w&^3#~9%y9o6m+)JZn~~Kfqa`p(u`HCWuoqkPNYdfkk1Czq+0p@$l8|i30PeU#{d8T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp2648 b/usr/share/terminfo/h/hp2648 new file mode 100644 index 0000000000000000000000000000000000000000..d6208cb163dcc000c9136394f02e2fa02b36dd9d GIT binary patch literal 731 zcmb78O-n*S6g{s+rPMa6Y2m_As7*f23Qf}t#Eh&g5ZXL^mC^^IE?OA0i697qCMe@wgH2#a}1-EH4E*a>jrXAs-KEV9mq~Xpo7qb9`s=VLzMdvAyjHg zW1KKaZx&h2m0D=VJPJBngM|&9ZE38ahP~zt>o{j02RPK#BOK!dr#Qm}E`QBA(^t60 z4Q{D>hkHEW5l?u=3tsW|$41NNKk=QkKIna7(oiZ&@2?Xxy3p&5nxip@AVgYZywNcx za}XH_pCu~+Y0o&BDea=>1!u#JZV2inAadU5IBm_-piR_gry&+OCK*`CPBBbFEH$Gh zS&(0hbxab`0<=LRj(Me@wgH2#a}1-EH4E*a>jrXAs-KEV9mq~Xpo7qb9`s=VLzMdvAyjHg zW1KKaZx&h2m0D=VJPJBngM|&9ZE38ahP~zt>o{j02RPK#BOK!dr#Qm}E`QBA(^t60 z4Q{D>hkHEW5l?u=3tsW|$41NNKk=QkKIna7(oiZ&@2?Xxy3p&5nxip@AVgYZywNcx za}XH_pCu~+Y0o&BDea=>1!u#JZV2inAadU5IBm_-piR_gry&+OCK*`CPBBbFEH$Gh zS&(0hbxab`0<=LRj(YKAgGB#Q46&f(Tl_;kb>CI%_X8x1W^zKPo6xB z_>t@EW|QhgoMqpZ%<7+X#N&$;k6_!;q zQ)rSkg_MDjbL=T)3rkqRDs1L!*kF`$Q{xunHt!vTTC0;f4oszso@N7$r#Q#Ouik{! z9dC7S9rr(YU7O_xefng2o=twiE8hN`n>qZ4y|dRx(5ZeO=K}SUus4ziJWR$q@lg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp45 b/usr/share/terminfo/h/hp45 new file mode 100644 index 0000000000000000000000000000000000000000..9cff16b981cb80afc710ca1eee53166579e0093d GIT binary patch literal 700 zcmb78OG`pQ6#k|~X4E1Gie_WrC=`)i9}$VK3@&D5_CjbQUPCt_-H0HGf*=TjAPRyY z2!bGJ)v9&$x27|5ua_cRbcXrP`Of*yV}fx^!-rcKtl2h_@kFQDCNRqZMFMtXztyk- zM$a+Ex{;gkoX)c{q#UQ5l&7Mf5a=WHV+bP{#TdntNDxXnr*WPzML&bQ=29-XzKB&F zRj`d69o01MqJ=$IqvkkfQ|3@-k8q3=oZ%c7xcsAY)K|F14eqFVj|V*B3D0=JE8g(l zqocd$KmLPeebWEJ6q9m>elMG4J`4v_MkEa$12=gQd>INuHPMa=Yte}eVbwLS22;s2 z1~C9mr5tz}e1$X?g(1rXUsFD>Kn<}93bNo8*K1Nz?MAnk#8h>*HuZoKIQ4CUZ|N=T z;2Ypky)I-&)FwNs&^fV6=g<-n&W1%s9eE(a`LO7S1w{=-3m%RAuErJ3dDVoXrbm-M L#C3InAH0Qc(I6Y> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp700 b/usr/share/terminfo/h/hp700 new file mode 100644 index 0000000000000000000000000000000000000000..15a4121bddd779513dd530f4d8d519eda1d629b3 GIT binary patch literal 1211 zcmeHGJ!=$E6g>|`qYzL~{20Vh9Kk@Cd9$-Skqzs|23-;*12&RPki{LGHM8p&SCeAV zUtnP&7FJePROVc6j!9K|j;uJ=qF~;3Es^p8r6sASZyj#~5Tor9@!_h#Pds~t{#3RPX zc{NR+v)Iv_#ozw>9F4c_*P^0UwVIi5 zp2*@Ew-_@_^wWr;N}MAC;xgg4NnS>q;d#dsp7tZ7UeS)Q8ySHv>t4b3FBr4*pCv9~ zh@8Dm`}fK2SjM`~r={WuYvF>hCtMURWh`RWqwGZJx49d;aP#B*O8lw4+F8H-w)^Jp z%X@2!ua}l-o*~$waLix$1~a+3qBVP+9vNA3>{79;?UHZIo)~wFPK6e#F((mKb0Aw6 II6Ei$4P$~3^#A|> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp700-wy b/usr/share/terminfo/h/hp700-wy new file mode 100644 index 0000000000000000000000000000000000000000..6161678da65b907228a5872bb74b6b4dc83ea517 GIT binary patch literal 626 zcmb7A(MkeQ5Iu_smGu-zI3P>78Aa`G8dg|AA=Xn8f=Dl#ZD~|&yBncI{XuViL+=q0 z1VIE5LG%Sd5J7)&n_YIb9tyfJGv~~iJDhuCQUXH=;|!mun;A_TJ8T{;6=X(gT9=L8 zgPp3=*xQmzP1{ImkR)`@57KEvDxeDk5W*c6BE%8qP7nGS2@!<~ol(kTlgMC(Q5N$a zcPE0g;CFIZ@le^zHEhE4m6lgeIiGV}a9nyFA+B(Z8{GOV*cjA1+_UoFtB+oN!t*cF z!L9$+7jNGy=Qob`Kem5>meB{&5CatxSzS}-KxNRZV(Lm#PAa2HO))0|h$!OxrM-wp z5CN4ytDt>QJ{{c6PqmR2Ad3guq=SwJX^|`%W-&ySX{zW@TMbjS>s8B8o$9)6II8Vz q)GP;-OJue2%m~{%VXsjTFD<%OF-f55c%p5r{}Tl=ss-?tXuTKnuP&NVL3#5$Lq zX}{Zb2eZKLX9~^MVkyiiL`DwL&ssF9^=M?3?C-CQ;7Dr~N z(+81GB${zcZl4Sy_YH{nUL@OB%SsVHW^qFQxG3L?q>y1QYD-o@G@CH4A9+{?P19j~O16p%Tjhy=(yvVbfi({{iRl0@zyW5~GOCyk6E zo?R?jbj?OZ&-m(19);xw+{xV3Y>=OO_Vjs2;d*duzH8z3V)xPwZOxf0F-f55c%p5r{}Tl=ss-?tXuTKnuP&NVL3#5$Lq zX}{Zb2eZKLX9~^MVkyiiL`DwL&ssF9^=M?3?C-CQ;7Dr~N z(+81GB${zcZl4Sy_YH{nUL@OB%SsVHW^qFQxG3L?q>y1QYD-o@G@CH4A9+{?P19j~O16p%Tjhy=(yvVbfi({{iRl0@zyW5~GOCyk6E zo?R?jbj?OZ&-m(19);xw+{xV3Y>=OO_Vjs2;d*duzH8z3V)xPwZOxf0F-f55c%p5r{}Tl=ss-?tXuTKnuP&NVL3#5$Lq zX}{Zb2eZKLX9~^MVkyiiL`DwL&ssF9^=M?3?C-CQ;7Dr~N z(+81GB${zcZl4Sy_YH{nUL@OB%SsVHW^qFQxG3L?q>y1QYD-o@G@CH4A9+{?P19j~O16p%Tjhy=(yvVbfi({{iRl0@zyW5~GOCyk6E zo?R?jbj?OZ&-m(19);xw+{xV3Y>=OO_Vjs2;d*duzH8z3V)xPwZOxf06@<1C5slC)7J8CO4vnI%CR73eMGyr+5ClQ+ zW~nNKSS|}uy6B%D zCuuj0`=<$D@iQvRGD-&pSy!0ClCop?;hJDSi#g1*TZE^wib9`pmESegl$YJ60-bCi zRH~)0jSdcq-bkx6=2Yt;GUTi;ajg@x(eMrKaE}K*eZ&)pJC-Nzp@^L$HlZ9J4K~bWJ+&kR@%%ohZT35f;9H!;l{osK4rV|urtu50zxZPS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp9845 b/usr/share/terminfo/h/hp9845 new file mode 100644 index 0000000000000000000000000000000000000000..fe0245881138eeedb433bd3e811c4a6eb37d42c9 GIT binary patch literal 959 zcmb1Qv@0MQH#j9|zB1dNP~APNg$WC&pR|6de{VSs^w zm4O4y=Vp)v(+Xfx8Az%Du_l8Km=9AAqV=I7Mkq4o3|1)o|NrfQ{7^J8WOGK@qaiTZ zLLh=c+C$olLE4)EM5-mK78t1-r6j8s7y_wC25Bb-X%_}*X9j6U2I&9>Xe2!bF8f*=TlAP53M5QHEI0wEBDpi@lG`|h@vu06x^eZJ54eV%!qcV^ft;M2_$ zhP+BTJ~lcUZntB3yI9JNhhdmoN*dL~%`#8Pv1L}cqimIX)HJSRoc@3rmp7ER)yyO+HdBa;(->JW6pAUTG6Q4QI{E#D#`NCJe@tqTXaLO4!`NeNN z{a@DQWm%tkmJKKlI`;3oFM3j?hdyKkDasr&k43+nPosQ1)nO0wX~E{b$mMuZzp#cI zh!$K$O2~EkwKmqok8OWkMD*N`O-FI^wEhZJCy~W=v`O%&ng*s)ZX`joylRqWV45+q zVCU#!+F58%k!!BAwPlK|BMn4{G?Dwr2C|7%-0THp8ks?sky~!nCFCX&xt)Cz+GR~- Nv31+q_I42$;19wB{ht5; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp98550-color b/usr/share/terminfo/h/hp98550-color new file mode 100644 index 0000000000000000000000000000000000000000..9ce774805dcd0457dae6189003e80ef4bc58f617 GIT binary patch literal 1802 zcmd^ATT4_?7+q(k(1MhLUfK`o!=5ouqvxEtsA=8}H7l=CgyP)1j?Oq|yo`Z7 z=_7zbKN;u_&~+`tM}aSL~Fm-Icl z?&AR-;t?L>37(REju&`|S9py#c#C&ZWmy?lnfu@E z-EarpY#asH2j&NBXPsatAOwACw^+Yao-18` zc5yAQxtO-qo=HzmJS2e=;t5SOf`xf3%45Cs8ic|41x+{nfncbrx~6gvtlZRxC~r=q z-Uz4kupZH)S_cWDGDHkVMf{RP1CEXcZC{UuBw5h2RpQ>$HllZfFX{9zvCNP2jLzc~ zVkX9G!@~3Dd4AzVgcr#30>YE`GnnTEg|{Hqh4Q?R@Up_I%JZs(we2!bF8f*=TlAP53M5QHEI0wEBDpi@lG`|h@vu06x^eZJ54eV%!qcV^ft;M2_$ zhP+BTJ~lcUZntB3yI9JNhhdmoN*dL~%`#8Pv1L}cqimIX)HJSRoc@3rmp7ER)yyO+HdBa;(->JW6pAUTG6Q4QI{E#D#`NCJe@tqTXaLO4!`NeNN z{a@DQWm%tkmJKKlI`;3oFM3j?hdyKkDasr&k43+nPosQ1)nO0wX~E{b$mMuZzp#cI zh!$K$O2~EkwKmqok8OWkMD*N`O-FI^wEhZJCy~W=v`O%&ng*s)ZX`joylRqWV45+q zVCU#!+F58%k!!BAwPlK|BMn4{G?Dwr2C|7%-0THp8ks?sky~!nCFCX&xt)Cz+GR~- Nv31+q_I42$;19wB{ht5; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp98550a-color b/usr/share/terminfo/h/hp98550a-color new file mode 100644 index 0000000000000000000000000000000000000000..9ce774805dcd0457dae6189003e80ef4bc58f617 GIT binary patch literal 1802 zcmd^ATT4_?7+q(k(1MhLUfK`o!=5ouqvxEtsA=8}H7l=CgyP)1j?Oq|yo`Z7 z=_7zbKN;u_&~+`tM}aSL~Fm-Icl z?&AR-;t?L>37(REju&`|S9py#c#C&ZWmy?lnfu@E z-EarpY#asH2j&NBXPsatAOwACw^+Yao-18` zc5yAQxtO-qo=HzmJS2e=;t5SOf`xf3%45Cs8ic|41x+{nfncbrx~6gvtlZRxC~r=q z-Uz4kupZH)S_cWDGDHkVMf{RP1CEXcZC{UuBw5h2RpQ>$HllZfFX{9zvCNP2jLzc~ zVkX9G!@~3Dd4AzVgcr#30>YE`GnnTEg|{Hqh4Q?R@Up_I%JZs(w6@<1C5slC)7J8CO4vnI%CR73eMGyr+5ClQ+ zW~nNKSS|}uy6B%D zCuuj0`=<$D@iQvRGD-&pSy!0ClCop?;hJDSi#g1*TZE^wib9`pmESegl$YJ60-bCi zRH~)0jSdcq-bkx6=2Yt;GUTi;ajg@x(eMrKaE}K*eZ&)pJC-Nzp@^L$HlZ9J4K~bWJ+&kR@%%ohZT35f;9H!;l{osK4rV|urtu50zxZPS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hp98721 b/usr/share/terminfo/h/hp98721 new file mode 100644 index 0000000000000000000000000000000000000000..7e57ca7080fe277c78af1a673f85c392ff0a9a4b GIT binary patch literal 562 zcmb7AOH0E*5dMOSkE0-nb16b{)J;l>6@<1C5slC)7J8CO4vnI%CR73eMGyr+5ClQ+ zW~nNKSS|}uy6B%D zCuuj0`=<$D@iQvRGD-&pSy!0ClCop?;hJDSi#g1*TZE^wib9`pmESegl$YJ60-bCi zRH~)0jSdcq-bkx6=2Yt;GUTi;ajg@x(eMrKaE}K*eZ&)pJC-Nzp@^L$HlZ9J4K~bWJ+&kR@%%ohZT35f;9H!;l{osK4rV|urtu50zxZPS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hpansi b/usr/share/terminfo/h/hpansi new file mode 100644 index 0000000000000000000000000000000000000000..15a4121bddd779513dd530f4d8d519eda1d629b3 GIT binary patch literal 1211 zcmeHGJ!=$E6g>|`qYzL~{20Vh9Kk@Cd9$-Skqzs|23-;*12&RPki{LGHM8p&SCeAV zUtnP&7FJePROVc6j!9K|j;uJ=qF~;3Es^p8r6sASZyj#~5Tor9@!_h#Pds~t{#3RPX zc{NR+v)Iv_#ozw>9F4c_*P^0UwVIi5 zp2*@Ew-_@_^wWr;N}MAC;xgg4NnS>q;d#dsp7tZ7UeS)Q8ySHv>t4b3FBr4*pCv9~ zh@8Dm`}fK2SjM`~r={WuYvF>hCtMURWh`RWqwGZJx49d;aP#B*O8lw4+F8H-w)^Jp z%X@2!ua}l-o*~$waLix$1~a+3qBVP+9vNA3>{79;?UHZIo)~wFPK6e#F((mKb0Aw6 II6Ei$4P$~3^#A|> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hpex b/usr/share/terminfo/h/hpex new file mode 100644 index 0000000000000000000000000000000000000000..d955aa613b0224bdfd14e4aa49cabcc1d77531f3 GIT binary patch literal 513 zcmaJ*!AiqG5PeZWTP&UgbwGMaKtz%%2tp4=MT%9adQtF_HVX-ggzg@yh#(@0Ab9d5 zcoy*+vGo;icptI%F=AHUF4-shzlxo2Ori#A(H^J`jb7wt4L9B{ z*tMIj>b{C85X&K`13Ca5u_fNpu%lrUbZo0>JlP1TN!~?p4*w?2e3?Xj;j5@Ch4Q6} ddwm7k=c`pvQXcnYz@O0DsPV-9&l$Ta_yx3C1i}CS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hpex2 b/usr/share/terminfo/h/hpex2 new file mode 100644 index 0000000000000000000000000000000000000000..6f8c911b04a3bf74a875b63e073d9f6887543ed0 GIT binary patch literal 1365 zcmeHG&ubGw6#hnpR>c-kP<)8-FuR}#$u?GtVq>ZzHDdfxsRs|+?9?PpS;e$K$|6(=!Ko z$Bk6(0y7FXQO7bgLbTCEAFIr+vEIi6Jj5eB#uGec{}~2&j+c0aH+Y8+_=r#Vj4$|# zZyfzw`Hmm>IizlI;ixfA!_CNdYy})bnR*YafXaeN;*=}}* zWPqcdzsUa^F@FkF23-JM;+&vp;Ix6lIOwu9)}dqycm#L#e%Ek1 z=Om*v=r*VY3PBO*4yX<4fU3523B+yBg62Ti?BFY)tDv0SzzMUwhZE)uF4~os%%Tk$ zl+4L3oyA;omvq4ULm;8AW2?D=oR<2ijHDa7vLcV08G1tYrJiKyd3WVOGpLt0#v!Tm t29C(yvBY-^E)x~gWXd!dGfk9q$89rnjV-CogY3rcb@Q(E0;mC6#xE^ZMuPwV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hpgeneric b/usr/share/terminfo/h/hpgeneric new file mode 100644 index 0000000000000000000000000000000000000000..b3f1b13bb6638eff5aa3c2d86ea5494e9fa98637 GIT binary patch literal 534 zcmc&wO-sW-5Pd5}YpDpHq~oCn(~Bs!ih`)L)I-n~V!=bbNX#xaSVM>rd+6Wr_olPc zO)rIBon_y=dGoQuHq;qTu!BF$FiAg5VzM}zPtv(>ey1kSPlGV}3^Uzysb+4nuQ&;( zfa0?>rAp?6l@nbdKv5jBSg>s~0$Yp~ez%T&956q^xnw(nmyFkZZ*V8E?JKS8ls)GeT2A^OuX&$Dc1jt)H*ELA|FZ|W0QvL?dV_m`~W=}6-7 q@$J<;YN&!Z)dK~fA?TUQwC&Ol7P_F3^AZefy_-1ZZfau}6k`F&9wi0< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hpsub b/usr/share/terminfo/h/hpsub new file mode 100644 index 0000000000000000000000000000000000000000..99f08db757beb770a52a128fe545c386a88188ad GIT binary patch literal 481 zcmah`O-lnY5Pea>4-`*=IwC9BRfLijdJ#O>DpLG_{s2L;-NjvPC2ZoMB8YhKXRni( z%2Gim%$t{aGw(9n;t(5{$0t6JYxA7E_6L#8%5m|eMkZ=DqoL9&DMp2zL@b-k0)pRn z2oab-#j(i<%z3_mWvpV|^DU1%9(Nh{IQMbj|88$Kj)EdX?bIfZnO|_;aVE8XTH~{R zRdw&xhcGh^Rl{KN=iYCp|2l6!e(zYs8mLc~pes0xRYSKM=^3bpB@ovxXaKrlDeXBp xoq}n1>4f6P)-B{qp{2=HnMteM1*Ea*u(Y6S=fZnA=zMAyn--hKypI(=!54K42{r%# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hpterm b/usr/share/terminfo/h/hpterm new file mode 100644 index 0000000000000000000000000000000000000000..99dd05ad4aa8d132bbf463f405a3df26e72a10a0 GIT binary patch literal 1387 zcmeHHQA-q26#i}zT9LjOMF(OZx-(WtJFBLm+2)FvZm?y>_Rz!TthzSaPP?ljyHP<9 z1VIo4fguTk5ClOG6oC+hkq`tyPd)W7dYI0+yY0)=L$A>t=DXkd&b{9`_rlBpbqss4 z8;{jTHS3qN#e6m0Q75CRNZN5CBId4Uyht`b?`6t`Vx+y`xrYJ8Pi-hwXDWpt*l)y} zI^fZaZD{6rJ9coU3A@mSeK^Rx9leY}&~NYrW1QavMofH~aon&JCe572C0u4UgPe&A zC}Pntarrf>tlYpY+{PW;#Xa1|13bhdR+sr*!7A3Uj;DBr=N!MlOT5AxY~U^4;{&$v z37_!=U-6Bze>=Y82ijD4R|ji7s!t85Wo9eCSs{C#sMS#Bwb}@2VgLWizj*`i)TW{w zny?4d39>TLrD%f2K;xjXLj%sBXxewQn`p2l?Z-?!#Gf6pehQQVok0sPafbv(L1!BQ zyIJlqT4jneo-?ElN%7#yyeL+;A-3Q((gDZ^T>}+CB~TeO4_W{%f@V#HBxo2k0-6L} zFuhEG&VwA&lvRpyYgWk-oHnPpBE5UsP0Gxc*0fVQUN{l^L!u^M z?UJphbib7GJ9Sn2#~CWI>-vb)s&olCs{Jm3Ze8iE#dh3gVMsB-6;{J50P%1CQlYtrA4hWLFlqv)=#rZ<2S}F(XxoS3Gasb6oYbn*XIx2}~ zbB76D(@kDI@S%sXW;4nf=)wl}y0Hn{upPVD-h&|wvmP^9M_I=Coxn-sPqLgc)(p-W zeI6O)*(zbq_;oDesn+{PW;#Xa1|Lp)-1nco$x;t8JO8J^<>`!Ded zukjXZc!v-8h|l%w33n&7zQlW*=7>$D_K;yd)*@p$wuC1N1jVd zgDRjZXdYAp)j?TPApwekj)A5@XG||spwl4RG-Xvn+?rLfMb4UOF3JoA?Ic7qr8R4} z#`Ffle+abTv;4b}N|vKXv^%J)I#>znv>ui+ZbUC>_W+AV_=?^uwHp0m?9*<)hymRg zYWcxvkb$(292642kYseQ*O1918{z5R33d9<%X#OcENUU1-Kv>O;vOT~xggb?w3Kr$ YOFs@@;h=UF%~2e0W%CvDz5=L-U)^&`xBvhE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hpterm-color2 b/usr/share/terminfo/h/hpterm-color2 new file mode 100644 index 0000000000000000000000000000000000000000..79ff77206d01fe41715a867dd9ec035f97d85827 GIT binary patch literal 1787 zcmeHG?@Lo*6n^eTXh90~MSCF@_HOBIa_^?I&}^lNnucXRG)SD=Y`RUa+nk%fpf7#t zOAtX21wjx+MGyp05ClOG1VIo4K@bFf3WC0rw9a|&G;H<{MDMugJkNQ~d*1V&ySq*6 zgd3H(rqw!QRwkNCdc%{6$&_z?z`K@r_PGX3)5R%c6QP7Fnw(CAGLtFS%vdJoQkz`6 zCZaR7fJQ%BWHe17W@`OrS|7?$rGf>u%Hg00!*cR~6B~$?VH0(?1=WOW;75RbtI7(J zZKJ0HU5fXRJ%WC+gBVhg5JnLvWFdtd`9++=d8HHz7mB`6xJc*{E|a~2tGJFExQSc1 zL;M~+5AYC=@EA|=49|(bz)QTsYrMf*yu*8Zz(;(-XDs0hsq3w8`0*E|P|&n0&D2(Q zb+4jcLZ`IT+8OOOp}VW`l}y{;*OrQk!%^zQBW7DYXy%~L4&+0RJ zZa&{K+d5Y_zhmLa;@6UUMvT>)rs+-cOJh6EFKawVCTq|g$R^E@Ibw#5E+Pb#8}Sv{ zh+lzlLy?CYZQTq96v&zRCY~{s;fwj?oM{-wg4`!Fri|8eBqEzbtochcKWihbHI!%# otf^tq1plbn$Xbr~1xmC4YkAh1O0*`{X4Stz^{fyLApw!ZFN+P31ONa4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hterm b/usr/share/terminfo/h/hterm new file mode 100644 index 0000000000000000000000000000000000000000..dd85da7b7ead20d3873cb5e44324b40216e4693e GIT binary patch literal 3631 zcmb_eZH$~%6+UO)cegE}X&{t<6NQq#fQ^-Tzh`($x9kV(uKO``yLH{^CN14dxg&$;J0_uM=8-uK@74&F%D(gu2v+uElWrfSutuIbv5>ddj~)uu|s=3fYgK{1;D z;uX70Yv~GVyvg5M+JOj{+7WRjy$iiFZ3yt8J^=hpWqePAK|}KZf6@bdnxBAnhQG$o@DKPo{x!eE zf9CVtur1c+F3w$&yF9lg7v`jGPp&sNlG~jd%T;nu!Sl57uFfj8Z^Hjqqn*$F^DSa> zPP_BQmT%{|$h5hn)$$7GD(6~L+X{@VKWpiYMyJ#33^}9D9%sLE$f-Feoew*AJNG%C zc1}BwJ7031a=zt!&w1AQrSqcmvhx?`yz_6T-Cgfq=H}gN+%0b4-spC^{q9b8+`ZkM zap&C=?uz?S_g?pY_aXOD_l)~h_pJL}_s8z@?hEeQjsNxfIrkO!RX5kx-nOAl{g=1x zu~swg^aXYCKlUcRX8daYeB0T#i2bSc|Ge$R3nG4hL49?`|GCzdYtL84X$`HXe8rpb z=6!E6^X3C@vIa+Z5YU^i1pVOmp$OZkTmNfngI>A_u3nUmAfCmi2*VF%O?4WTE|i=N7g{-guPay6{S`@`fTM&t5#yo~Jol^1@@tGXx zItZINqFJ~D(=;&6I^yZg+x$Y|hV2N)c=MG_^RU7!LOYc0@C=w=5w1{v7|Dlayn!#Z z+fa6*jKJf^@KpTNV9{VnFem_rd&Lr?8%8322_Kfp@Us9}g)l9{IyKsFhd-Ua2@-xr zXa;T!Oh6Bu=J(1_j4{|WB$e^(Xc{s&;~8igG6v(3?v1glX-M}oD3L%sL!$1Npujuj zFMC_P$=fNvKRGk_VX>3j2`w}g7C^$2FHW(u?DWmx52T1R{L?%Q|Zz`=tvGlvcxK0G^HtAvsS!%gxxuhHvEF<1zv;ztv z8<)kJJJ#H>=8kP{yAw0zqUDk@avOi(TMjKp%6^t;?nHAZnme(%&EECXOu1;eq>S9g zkKD?kgrzJhVOuq~cqrS`H@p8PZz1xgOf6jYP)lqr zGBw}U5>pGcHfi=~CHlW)2{A5gGC}+(9FF!=tG~{XnGae#+fYJNlLk@CTGbTcIOP$J zDXJ3X@WSe(k5ScO^8{N*m*Oqu;U%?=y6}!F(>R@^57Ecz6Ldd4NS~!A=*xI5J%iWM zv-Au44gHp0q1Wgi)Sz}=&zEtYuiF{3m`5?>`4Gx^;9h-j0{jM!fy7Ebm;k^#)Y*xGK>-qfs@NmAY9xR#`~{bcRe z6=r(rH1Cm6uaihAR!WporBKhcNGVoIlv1To&OAShlwzesDHRIrcc?=O>?vYD_~wv8 zIV+JxDOO69QlUh%B$_4BEQw}GG)t@@v4+GN5^G4@>PXICbfgq3B}%E1+^+};l_I5B zDN#y=0{Q$a2DZru7MizE>qTVlE8Ikb-c%K9bMqLD?V`~lb#_x{4|Ub3t4=*34c4jL zL*)?~nWB+8jSbS_?ygWE5{Ly7ffO(#MZ_TyheR9_aR_41P&X7HBp@^(L?G1O;X$ZC zs6ePds6eQF(qo_W*e5;qNsoQfdroC3xo=U3WN%TI$D;3fYCDa(K6)GGSty>O10|ZBGm;JtMnhE%&O}E literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hterm-256color b/usr/share/terminfo/h/hterm-256color new file mode 100644 index 0000000000000000000000000000000000000000..8ac4e038de3d14b24087aca24e7e8e7074f597d2 GIT binary patch literal 3861 zcmb_eYiwLc6+UP0^`CyvOt|Gw=EG)?)&cMx^e4AYa2hdaU6^{mXg>`youL# zb~mw`*yf?~Xpsu^N2MZ)N(Dt~r9csdLZK8Po`p!X0u_PC4@xD&tzxn)746wAH|dNv-8#Eu9@n5rF^{7s_dk_pue9EK^~zwTB2nY<%4t&-AngFe}ukBj|0C;3WNc5SH#3sin;FZL zGEc+ujIyqeD!uQ({x`*)%lzvSJ{c=(y?NwYSuR&&u3Q^=oppnClj^lWhQ^+*@r_2O z)oTq|qt-ra(mG;Qt&`S=t^2G8tj}1FT8~>#T2EWwwSH)wv3_O!&U(fAt98!$kCnAI z*;m^+`$l`4?b|!;PP^aUZI9ar?XtaKFWRg2NA3IV2kp<l#+OOG}mTb%BmTOytskeMf;dw90p4XdN%SCKWZauy&`;JTaZZ~#6d+Y*_ zCokx)kNCg#ew=+in=6ge2HHfql2djTJZCC(7JO%_3PW%hqBmFa`+@I86Et3To>%pN zUb-BnUbGHBn#HFG#q(!XcLtpZ@TL(ahF%&vkd~f;;lfm9{KE z3(^qd(00KxpngTLO1WVKAC`Q5PkMKu?M54c#fxAmd5MyFB?}^b7jn2)G*P;t#9|ls zVOb0>^$}G7%QCE&M$g;f&E#$cg`W|q#Fc^t=z&rFUP(nMgH1(3Da&n5MUqpNfu=U~@LW<4tRohtZsjDas{s76!@b za25(q9XsqyV{e=^S8~M`JN49aQc)wQzE*vxp;kR-A#j$_Pjo+o8fi6wns-v{axZP9 z{re9bICSXn;d1%Nk)uavXDgMtx%v5pg=5F6)mp7yKYskgiN(dGrMvGwdGge$<>i%? zRoR1aw2nkhR7ZlXAHD-kRx(IsuVhPL5m4K=W>kBqd(oOv*3y?VQu0GHSat`4aY_Vm zPz3Z@F~bsrd4mOwzH1QvDxyiq4~<_M>DZBu9qHJSiEU0|sxfb{pb@c^-S-Rz21AWr z8td4xjvedRv5BqDu9u`5^9BnV5nI_2TVr4_)aa#wjveUOfsP%R*lP6$)q>4#(f_kL{3ydg>BPcyT7TPiB+D@2PL= zR;M01)2bJ&IOxTu7pk6Tda>#Sx;Lf1fKvE>i4x#f;|PnylHuw#A9C#t2E7s_w*{gPXD9^WqA`{%{ji2-_0&3sOoxnfJb1XNl^cZse3Oz;7(D#t-&*??_HJznD(4Ua+Kj`0N z@kZXv*C699d^5MPhgvk{+mLlX5Azrqm4+9}jZ^tF)*ZnO2~5^0x6yF}V0(k{{3MDmVcA`Ov-SVN*g>IAq18bS?` zhFC));L9~uQlecx_ySoArp@>LCEFyszk|yMkkV8Ta2{{C^XQ&$tBq&I5kRTz!_6`q% zg#-%;77{EZ*gl!DPiE|s8T(|$KACagjy+%?K|z9p1PKXtXiQj0u#jLO!9s#9?%oR) y5-cQGNU)G#clXIyNU)G#A;Cg|9W6?O!)OuwXc6>i5$tF&p=xDmiE1L2D)e8pr{z5W literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/htx11 b/usr/share/terminfo/h/htx11 new file mode 100644 index 0000000000000000000000000000000000000000..91424b20cd42b800fc2d36c6f45a031ca8154522 GIT binary patch literal 549 zcmbu5T}uK%6oy|3BKrl=d$UB-61La~mUSUmMrH+8RM?$_u_pLYOYO=AK@bH&5dDRI zXC0^6#jYD>&UxPR2{WHr#}cOSf-j7MFqWsaSWm~k#n97UE3UO$fuFx<_d0>^NR_8o zo&JrZHITvYu|APDn&cXo!5qHR1KB!lbQTL(6mpGP7Q137kAm@OOA2e){F5o8Vsuq( z-Da-DcPx(^yOw(x3I({w2oHF~(?rd)Sj0q!y?G1_2M1`oy)w!jl( fPr)Xv@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hurd b/usr/share/terminfo/h/hurd new file mode 100644 index 0000000000000000000000000000000000000000..4624d7c018f7625c70cd3eb9d900c6198ba4a4b5 GIT binary patch literal 1587 zcmbu9OK1~e5Xa|RwXM>E3Lb0}BN_zzaQE9ylMv}cD=peIMyr-aB(-VtXkOi<=_`$( z9(qxs2qGwmC<-Fz!BbCyf_U-Z!IK9M9z1#SiSP z7q&x8yj7ypX1FjE9k=%lp0oF3U>{4TvgyRQJv(mZ$4w9dECakKAjgWnRBC|Ix>o~q z!%i&Q40S*?yI~L5;ULlxT0zD2!g#J%r8+a;RCKJ;`Q zD0?gVT@T^zIY%WiKm>YQ&x9us78%QzG}3( zrpAH4tXC?}Z?LXXzt#^cmz1y)S29XoDJWN!CFSOSc3k^}N__ht``-P-eGk`Jd$LZh zvWJcO=j9$Rl@-Mn9D#ah0$b1#b7V9}*z3qhN7w}080Jo)ovf|()zB*I$HXx-@?FxI zz@G*~6y0&O9yHxZpq@tap=nwY)k(r6i43ZD6S=Bl5b=(N5j2%T7H%iGP*PC@7Y5)8 zs$K+}AGhPDhe?g10NNR}vzXDGmWDVn0G_H z8GIF>0dS_f0`xS_3{-%6a)zeDFjN7Ykq?Kasj7;Da#Pwmi7?n)7*R7SRvle*W6tYx zcnKwqL|mb|7jNx)9wKdMJzOBy7e0ebCa<+S=CE-ma>l(CFyIL?jZ8 z#$xgK8F(3Z7`Pa?fxcD%(g3q8{g(g$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hz1420 b/usr/share/terminfo/h/hz1420 new file mode 100644 index 0000000000000000000000000000000000000000..5f82b7e683dbb1d8585a1dbfd28f028c37ce6972 GIT binary patch literal 405 zcmb1Q6k||hU}k7%uw=-nGBhzVsPRawO3f+B%u7`OaTypG83+T$0EYknC4iWLfeA?d z|Ifm}&cFp`@iHiYX(ceJ0wmSIEKM*8Qi~3B&}8({_#pL0Sj5oH83?{9++F6t5a4By zmSK?QXONa)kQP)eFj7rcEihD7S5Q~gR!s(m4+nz)gES9=v@nCTJcG0(gR~S-kdFZX Dto#0* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hz1500 b/usr/share/terminfo/h/hz1500 new file mode 100644 index 0000000000000000000000000000000000000000..c0e7c63c1feb0841d81b24123483f09671885410 GIT binary patch literal 452 zcmb1Q6k||hU}k7yC}PN{GBh(D!s3s80D**bNm!VFEp^l%SPC~`T(7=wNPEfVL2!!latBnn6Rqa$uRMi#K zRkc;ERn-$fbh2uJA&kjT$IVbD#K6HIz);7-P$#TnV*)Zmo}o^Xp-u|I<3duw#Q*^M CZ2flt literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hz1510 b/usr/share/terminfo/h/hz1510 new file mode 100644 index 0000000000000000000000000000000000000000..96d7e73678efc042caed6bd46a9c4c42e11b4952 GIT binary patch literal 382 zcmb1Q6k||hU}k7y&|%1^GBhY0hc8Y@{(~X1>cD z&M~w+ECg}G27A|TJFV+@M8m^PuRCA5^t74l@aZb8hXMB?MhZ#Y9~0)Mn0e~L>&qW*|L#Au z^4+rLcPBwbPzt1jGUnMax8~V4xBMTJMHFdJ0+a)lR2D#-1`BeF>G*Ru`=B5G8ilFP G&KT~ev);o1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hz1520-noesc b/usr/share/terminfo/h/hz1520-noesc new file mode 100644 index 0000000000000000000000000000000000000000..2e30d6841e829aadf3b3c9351e55a17b38c96359 GIT binary patch literal 395 zcmc&w%L>9k44kTaA1{#E422wff}RM4K&d< z%*7OQW}#6F#>lXh!76Ll#+pb=SNYu!&))M7ec-!Y&;-;2d7yzPVv&kMiZndQGpGX^ SqJ=)F3mSoDpfSkjXMF(~Y5ykx literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/h/hz1552 b/usr/share/terminfo/h/hz1552 new file mode 100644 index 0000000000000000000000000000000000000000..ddb8dd191e3b1102c11485517e2dc1031eba632b GIT binary patch literal 867 zcmeHFO-sW-5PeZWEf#Mg&ZU=FwWw{Sf}jR#wbh8W;=xa_+BA`tn5L=K(t{^K1o7a( zg9i`(32%ZwEKXu`eSz^S%|QQ{rl}qa)?%G-Otr z$T9C=7l$}T!K-OrEO}8!1s3Z%qls(JZQtYOm(#BKsaxE6Q}?au2Rz~l&v z3SG#maO%aZDC1AZhB$^WhE@ycV{WwuFpLpHjbakhtUSie%RFbOd4m@WZg+IfqTvOt zOvqB5nlO8jEW(2K{!AWih^Qj^MRuI6qnPbxRnz{^Z!WLxeBxf zS_Q3uc0lW(Jc0R literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/i100 b/usr/share/terminfo/i/i100 new file mode 100644 index 0000000000000000000000000000000000000000..cc9ff857ace12d75db11af96bdc90a9d3b00a9fd GIT binary patch literal 456 zcmc(X%L;;E5QUEw-LQQ$8yEfA4Kg7JiXvKcGicEZSZD~QB5s0Ky||4+E&ff*2Ik{C zGsCo$B|0eL1qDq7K@k3R;6!pd;u4vYG9BzW{?KgEo+*2j&?7NngxhB4n*wJXN(pmuO z5=CksC`s|K50s>M*iuqTDW#M=c=4~4_2)sKbMAL%jMj@Md+T@4`JHpmx##!YzLm5b ztI>oC{iJg5P+PJ+7%SVoC%3~B2O#`j6qCk~O%e)7UouVT zt?aF_EXjMo=)eZcqi7RCY;}H~?QZPBKFjx`WNigUUA}hh2u3+Fj*~czvzWj+Tws0? zmwBJW6=rd1mc%yl}kM^ z%!M^hr|1k#(0RH8-nchJMfjEP?7)+n{tw>_WoTZC zMSPv{v%c9Zx~j$xeKTg#LQ_I>b=vl4HW1oX&#o8BZCq`;(C#|z5L$?7QF?cps>+0> z#NtgF{qF|e4}KW>Sow71bM?!ynUSx@zn%CFm4X`J`3D(V#A;EhMXDC9TEuEmt3|FB oy;=lo`6^mUwbTaQD*38TqSyF&vKbf{83+SLh5&~D|0RK#fq@A~{{PRy zzzL@R|L0{;0JD_9qzaJK0Ad{m2QVL`76x1}L_jjWSVhCIio#49I68`foq?A@I@-t! zNcaJnolU|~J^4aUG-zU*u1Cpfe^gNBxeo}N0>kgfw({z?5z^BLueh8VN zIch>L&?2o;53Jw+SmS5(1$_zjHC?A~pueXZbdzp_{i@eF@;CY&{Ex)`6Z+2j+FiOw zf6?D`pB~U7+Aem9J>mtyyT*X8h*!k{ZT0(ygeh_f=k@>lj*EB2gzynn6`@#$UfZ-mUsvcNht>>j>u=^sN5%C)V2XUui1p0*7^gD8?)DBW0P;=`jhi; z(>d`5Pe*>V!Fuvjw;uV)7V~^AzmnJG5Awzq_ig=Vn|J)2ibP!*pU2qj41=|hq`_ZHh^)}=!$OTA=jElB6Lc77; z5MTka2z9a?>M&&4ufYlND>wX*!9Js-0wV{*3D})T!L7e`#5T=0k0Ao7N8mpWIY(>2 z^ffZdCm@{Ow%B?PG69){$8zEEt*pkJ#yq2K0?S3nNmv}#RCZ!=k;(>=Rq?gVO37@My+#gMFE|-uFxKaj}AzKIJ&=@W}>3$VW<9>4ArX=!U)l0(t{#eOw|PXq?J!#W%upmAVHG3tGc7fK<{@R z+pqs|?7%Qqz;;lI#_2HFHhPMlrM*dC@mx$(4+@E_o;s@Hx~c`-e00G@Us&O_`6a#$ u=ERe$sZP3w$&IJR)$3}8M?1bhq1KSn)Fe%psCnxANtc?%a>=FDkp2bSSvaBq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/iTerm2.app b/usr/share/terminfo/i/iTerm2.app new file mode 100644 index 0000000000000000000000000000000000000000..d0850e35333e66741e4ff02efaa753ce2391cf1e GIT binary patch literal 2515 zcmb_dTWnNC82;xhvET&^J_sH!OX7$G(KF|^yE)Ls(n5i5ccm?h(^Sj#7J*>qUzpVs?}yj>MUm%N5)E(WVt$7Db>d(k~@)drGaF= zC)rOV^xuF$29HMe3pAgWP$PcaIn`*8XdEJ%M^_ zd5%~Yn(~VI#ktmwL!Fq*H5+>SU(S2hDeGhF3+pTE8|$=n);e$fZc$=>;`+prL^J;X z;p7#zClgL0NOUH;{-a*sWy-c)#=FuH?1dz>0YD)QjYBHZqz~xp@S+wF=UnF zXNK*f>qbuG)Zw^n`&>K4N`qg;dAEyI23@0qIImg5ufTS7po>U^1jDzlb{*%QR@N1a z(Jrn<>Y_tH?;zRvHY9#4S8?t>q%BB2a8v-Ns8Sl!8Z(Tp1I%NT`F7+&wm34+V^oog z2AMG0JdZf5Dt4>pVS5eP9gup4xlb)}O~Dnl!*8eszl9cEO~E~Chda}vw<)-@Wi@o@ zMLuQ)i3hD5$HABZJyJ4a=|cKODp~X74DuwUaRfiJu$IoPrW`lxp(ir zeN$8W_a8VgJv}osJA06)a2rxK#jBl7;f3#PvsXBn!u2pPn=xV1ImfdA;yG}65sR+R z2#aSGgk@yHN-~+nj9eX)ia8x~#<1(ejCkFm7qf3z@!rP_;$#eRv*8#ZD~pk%T+a`} zR64VL02U`N6Zsk5ejbCXQLi%QOUdc+(+Hw70}S57lP*Y_`~uP-=Bo2bPiEYxD$UP;_uYpH{B)JsKrh<4F#nxcp4ae9iL zr=#==y+QBN2lNqrrthY2={x$K&eL!7C(Xm%vlv%p0yp6Tx)!H$G2KWv(=xh)?jo1c z)JpB>t$-Wx0kl0#V^pUDX#G)olAgsac$8kI6Z96Hr1$9*hL^=T)dyG$-UzP4XA;B* z4xbDT;{6;?gqoFWWPMncE4=&cqB(fVF&r2Q4Q0#*QjX!kP#C*j%)a4_*=EWy92g2? z*NfQ)+eNb#m18(C6oSl`!F(Fb_fJL2;VrA8z)%P>pG7X>^NS)wAybYAigU*&u`H*( zSscIR$>nmT9N?q6d|512Q&L+ywRKPd{~qe?q5d3=ws(6BK109|(r8C_J4_&4AZ(!V zQ(C8Kv@@SW3=lCu!~hWkL<|ryUF&-h14IlEF+jw0_p@KvvK6>xBWoaHfQSJirmq0I QuK>5N0JE%YQ{qhnMujTMm3&!C8;?IPMLX$MU@K9`MCv&C7DT?IhiGu3c)3bc`1oS zDGCKesl~}fnFS@8`FX`a-T%RWg@FUi;s%mp4C-LE4wy6ql4f8QL?tfL8m}4`yt25= zBuCr>Xj33V6hksY4nrwJ9YZ_A1RQqHWSGOS94fa8hZss%=>DIP!pLnjd70wSD2gd>mutBwFN9AKOP7z3ml xEDe_mhKcyV7$C#IYCr~p86hwR&~$SU8{(i8Fc0Jkd-Du1nZqD$3)Yd&002~E2zCGf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm+16color b/usr/share/terminfo/i/ibm+16color new file mode 100644 index 0000000000000000000000000000000000000000..5641595cbd4b9402a74bd6bf28f71a09ced43fe1 GIT binary patch literal 1098 zcmb1Q)M8*@;AhBWRAJ0a%GEYBOU}>9FRJl$@>NL8tSCt>%2fc1D5RvOW#(m;Waj4; zGyKO11Q-|?aY~L#jD`S(A;7?pfhYA*XgF5w7Z`pqs1_KiR$J7n>Z?|p)v9W#RvXu< zYD-6}robd}RRa=L?N!qgRjUnaRc%#EOjJ|BJfK1#&kV{l0rL!@JfKlPIb#SfMb$bN z(;lD(TG#`0x;@P4HmW6Hrm+FgE}&b0UR4iL2QsZyQ*s%ws8rVg$$}MDTN;5hfmH$k D_=rJ; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm+color b/usr/share/terminfo/i/ibm+color new file mode 100644 index 0000000000000000000000000000000000000000..bb16054824dfc002adbb1e1d33634b3002b2f228 GIT binary patch literal 962 zcmb1QRA69W5MVH16l2Ux%GFNJ&&e;U@pST40J9WQQqwZ?GD|Y^^NJb%;{+TG4h+nA z WOwb%*g60SlG)I`AIl|BY>LJfnC%GE7Mt^rb}2BwBJV8YYMS0Ny^s5n0_F-O5UKewQ?B(+FE zBQIaU(J$CjFE}z-lYxPefiPeUVEF%E0*DzHn1JN}|EypV#QOiAgMkak;{l8C0Z9QQ sIfx3%Ng*1TNsg;T7}yzj@*ZPjGe T0wWlcft!JYL54w&fr|kEY$yw% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm3101 b/usr/share/terminfo/i/ibm3101 new file mode 100644 index 0000000000000000000000000000000000000000..5c1853e8b8cf872ab59273f5b39592fb1c78de6a GIT binary patch literal 422 zcmb1Qlwwe0U}k7#@M6eJ$~87LFs#W0lb%k#3Lu8Ap#cK}BLfD&5Mm5q`2Sx5h#44| zfFuh8I|CO3FOc>BzW{?KgEo+*2j&?7NnA_#&YsI5itr?+)x^BN=GJZ0gVnQv!zcD{MM^|TI~ zuoQWEL)r9LYtR;ydJ}s+3A};q(LyeD5+M9pR3_D1E=fqD4vnxDSi;uYWvItW7p+DU znmO9+Sim;QXva3kI}yiD>~^uWee4gSABWgyFpRw0AIC(Px3=V>Q#j5349?*KF5wEU z;yUw5++cePQ@D-0xQ~aJ#v?qzGrYh{%;2@VYwcU--{F18rQiQqAMnvt_*7MAj^p_% z{%_rJvi2;a7S?&XNSEmvP0~%8qC0et9?&#Brl<70Mmns8DOvl9W@tH9LG`FzP`wb_ zZwi6&J>N8&j44DGL#PBFgX)Ib0TqYZ57h@1<0!f@#iof(jL$?{gz1Xeu(;pl((Xts z%||-fcn6@8ULDjv{?C*bK<(jf*p;huxpGq}-W_4285za^V~{b#7-k%1WEtFGST1a| zMS5*mi-tAsu@(HT@w-`S|p?n<^zD3=NEZV}p3q3uGG zWtx%NTTPKCWd?ZyrUN6NN5AA|$L8{1k9;eBKlbDJ&xv0r7N8~oiS}k(5 c=+z=vi()O3wP@BNTFYd#T-9<{Cd{AZH@PXxBme*a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm3161 b/usr/share/terminfo/i/ibm3161 new file mode 100644 index 0000000000000000000000000000000000000000..dad679d25c87441556402d9d75aae7ed19602945 GIT binary patch literal 1016 zcmd5)O=}ZT6g^J`t0)$6A->JL#dCzBc9JngTQ!Ll8nK!#1nbH+i8gI22_5?(K`4lV zB6Oi3BIu$E1rb3P1vi2q2!bGp|GKJ=l)b z_<#jf9Uf168Lt`VbaQGZ)47wKldL8xOLZaN@5r{@3~8raov7D_W&njhOT}b)D;laI z+OQR22&`fZ!!=lk4N z$M_Fv$Adn~o0(!I9*7?>#O^3DOq7T+Q6bI{XNeJ_O7PZ1E_qa^ysLc++Bai8ud{B} zwFkvbVBMT+o3>kMN@%`C(|=EWp}no?9-)*;&Sr%6wP=^nVoXb-z1If(61GC$wi}}# z$3E3QkAFG0*!UWJJO6$1$JEd1U(hM&F}}Y>7%^+asS&G2yc#iU#H|s#M*JEvY~-sL IIcj+JH}s;!-T(jq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm3161-C b/usr/share/terminfo/i/ibm3161-C new file mode 100644 index 0000000000000000000000000000000000000000..432a5907acd2cc19cff2243bc19cbf4552bc3411 GIT binary patch literal 1286 zcmd5*&ubG=5dKC5t0)%nP<)qthvy1KG3nZ()tF5yG}6`-@la2uNldp*LKC;ONDvC5 zpa?xEhzNS|9_(&PVh=W= zMl0k^RC^M=iG2gjY-YrYLThyRl;xKiRj-z>ShMH7TG=Y(8-BwpmP-KP@1cmSO@&3u zp#xnA0$>B%AlQU0*cL`RuovAN?GIUkt;6WU;gAQxQMfoB$659x7{lq1kK=6UiOR z+KlZ`L+S)n7GlTEOv2cfZMsdt%q0JWP#OLVY7lAw%7q$(Itk@4cQ~Ems*_`IC4}&_ zI+Bh{>>WnV>VO*Me@a;isA0aDT{MXsq6PAtonlNd3XCG7#5l(&GbR}xgKv$;#Y-KK zy*hWHb0@a)b;eHH=9sAQjqTc|Y5IjGg=Si`=ijO$bg)%DD3r&AZ6%yFcOaK4? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm3162 b/usr/share/terminfo/i/ibm3162 new file mode 100644 index 0000000000000000000000000000000000000000..1f5b5f362813563051c48d5b8c711baaf7923b7b GIT binary patch literal 1267 zcmd5*O>0w85Iv)Uttb|8VV%vp;`J2@(xkCPYhw}%wtmKi3*D3?t!>)0q!^>Yiil7U z1x4sWK}66+7YZVRE(*FR2!bF8g7^#k0>Q7{b>_X-Sn0}LE}Xe@X5Kw_&V{#`TCoi) zF-Z$l%ujU2y5iFVnM0l?-ca#Wxs)}syW zl5G!IOkzUNja>nEt``~Xi}C}qXK@TC0zQaBu#cb=^;KEd6sl6G;T$gD5@v82SA}20 z4T-b3iQBk~`Qe1Na;_?9 zgjJ*SbdhH03SFmJx6gjDm3G#x1U`Q}5I4Kwrj0%bZnJAKrChO4QS~j9(1J=lW)=&9%k6Nl& zKkeIT+oLqDG*hRY|8^5f`|8~tN<}6*+oiO>PP>(6Lt0SnowmZsv>oQ%DcggwkK><8 zpC`Udex3SO`F{FG_2-#iXMcm^;BlG1Brs~$s8gd>je0d|)~H*fc8&TqYS`$j7(HtA JtiF0OjXx-X%9Q{B literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm3163 b/usr/share/terminfo/i/ibm3163 new file mode 100644 index 0000000000000000000000000000000000000000..dad679d25c87441556402d9d75aae7ed19602945 GIT binary patch literal 1016 zcmd5)O=}ZT6g^J`t0)$6A->JL#dCzBc9JngTQ!Ll8nK!#1nbH+i8gI22_5?(K`4lV zB6Oi3BIu$E1rb3P1vi2q2!bGp|GKJ=l)b z_<#jf9Uf168Lt`VbaQGZ)47wKldL8xOLZaN@5r{@3~8raov7D_W&njhOT}b)D;laI z+OQR22&`fZ!!=lk4N z$M_Fv$Adn~o0(!I9*7?>#O^3DOq7T+Q6bI{XNeJ_O7PZ1E_qa^ysLc++Bai8ud{B} zwFkvbVBMT+o3>kMN@%`C(|=EWp}no?9-)*;&Sr%6wP=^nVoXb-z1If(61GC$wi}}# z$3E3QkAFG0*!UWJJO6$1$JEd1U(hM&F}}Y>7%^+asS&G2yc#iU#H|s#M*JEvY~-sL IIcj+JH}s;!-T(jq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm3164 b/usr/share/terminfo/i/ibm3164 new file mode 100644 index 0000000000000000000000000000000000000000..0b862b5c1eb8e3b4e05ce805c2819446f4f268f4 GIT binary patch literal 1345 zcmd5*UxgxhB4n*wJXN(pmuO z5=CksC`s|K50s>M*iuqTDW#M=c=4~4_2)sKbMAL%jMj@Md+T@4`JHpmx##!YzLm5b ztI>oC{iJg5P+PJ+7%SVoC%3~B2O#`j6qCk~O%e)7UouVT zt?aF_EXjMo=)eZcqi7RCY;}H~?QZPBKFjx`WNigUUA}hh2u3+Fj*~czvzWj+Tws0? zmwBJW6=rd1mc%yl}kM^ z%!M^hr|1k#(0RH8-nchJMfjEP?7)+n{tw>_WoTZC zMSPv{v%c9Zx~j$xeKTg#LQ_I>b=vl4HW1oX&#o8BZCq`;(C#|z5L$?7QF?cps>+0> z#NtgF{qF|e4}KW>Sow71bM?!ynUSx@zn%CFm4X`J`3D(V#A;EhMXDC9TEuEmt3|FB oy;=lo`6^mUwbTaQD*38TqSyFC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm5051 b/usr/share/terminfo/i/ibm5051 new file mode 100644 index 0000000000000000000000000000000000000000..ec3766c15e5dd99b01f87136841fbdd54fa56a37 GIT binary patch literal 399 zcmb1Qv|vzUU}k7ykY>nC%GE7Mt^rb}2BwBJV8YYMS0Ny^s5n0_F-O5UKewQ?B(+FE zBQIaU(J$CjFE}z-lYxPefiPeUVEF%E0*DzHn1JN}|EypV#QOiAgMkak;{l8C0Z9QQ sIfx3%Ng*1TNsg;T7}yzjKn4RyN+5L8QZr=fR7+PU3 zOtZB_VKnqbS}sjosVtr9$+hRkua1<)i|xHL#hGjEV}ZnP3^oiR3S`fFvQIP0;7Y}gGpmjs9<5Bb*e>D1G0Apui81irlQNgV!!yMeK zu8pGQD!Pq+1?>*nJ+%Aq5FW!5M9*Lqp2JIc18eXOKENmV0^i^V{K6YW(RQ|rwXl7x z4Y7x|^*F*5uFJ4KmSe;0BAeK>tGppnVGC?&1K+Iw3bXJ3yCRA{Zjs-t+F0Z>`^vtv zpA2{t-@{w^L4JsLa>>)Yo1f%4KE(5Uloxo3&+}!z!te42ys?uS-Swz;-c#P0XjG-K zeXEHV)e~PQ-X@x0Hzf1fWd1a|GicU(1+OH%vHo?K@k+`Y%fb!}W$|N4=6lgjpbets z(98r*=@6%&HW`bY)OiFVOm_63H$|Lm2JJGs0jDR8DI>9RwMEh>8OdnTa?6Q z%oTAJb4^^w+z>Z0_lf&4PZ3YWJaD`#2)zt8)BZ(xC>4Qq{Z)jiE5g(jVd{!7bw!xE XB1~NoQdFzZ?nT+Am>Aj5szbmZpHxBd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm5081-c b/usr/share/terminfo/i/ibm5081-c new file mode 100644 index 0000000000000000000000000000000000000000..abbdc0345f568934375180b13c7e8bf1bdee46c2 GIT binary patch literal 615 zcmZ{g-z!8x6vw}dqOC2@&dYeXqz(5jyAdzDeyqi2tzVIsb=~!A*Ip}G8?~iGDW#NB zQc5YMlm{iHy!(^Jnb|8+rkQg-=R4=jIZcyq0xhV;F+Q=jlnMkiGLg7efx7iyJNoOU)S;E;|&1~Avvak!eLQyQQZM(V59^gZDd0x41$-7ZP z3Q{)n0czORp&ot&n51k(8-h$7Ix^XIX^Nm%dnpG!FJ+u5jTtOz#rE_Z3Yv;utX|z= zF8zwj9v`5>bciFI;1p*##|18Ng=K+~WZ&@5;UlmbnH(maRiR{;%zhCnO2 YF+*In&srt|el-%0Vpc~nf`SV80$dsUuK)l5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm5151 b/usr/share/terminfo/i/ibm5151 new file mode 100644 index 0000000000000000000000000000000000000000..377b3a077b6224718aa1ca876ff4437c4b0f00cf GIT binary patch literal 1251 zcmbW0O=uHA6vy8@g%&>#r3V`+0ojWv?#%8cDSHS_#YUSz#UNr3v`wU`Nt2ptQv5=s z;GuXC4+nzr7CYj88_ z(0VDN+Z2~ccS!e0_u(Nth9^W%;RU>e75E6BU=_Z?clZhG@SEPdUueBU42U5yEF9tk zq|F~!j8I=jOo)OwBhHI@W-<%+l=Zgu6o{vT-f%Rf7`{kO91xa zE*!+YxDWTE#1y9S2HdZ`FVS;3$Q*j#7DUEMn z=roj5%EC4(W$ELH6~{=Uq)Aeq6x3*uX7OieNf}E1U3^2<^b~<>+p0tcNYfN@)>iud zJSE08L-I|N^p&YeKV^dJN*kohncZ_;k28DPbpy^49FiQO<0B@^8bi;b^sUojQwi*O z8Q6-sBK>Vly9}(Oxv;%Oz60hZZRJDuviP{lICG^m!688XeC} z^2{X9O!CZR)X6iGJTqwrMe9xW1j_vg)MgP0mQm7-CIGz3{AG&qOL@1A?OZ@1V3)ldaF z@j8|}TL@HOXO6UX#vO>a4d;i);@RBzNWO0xgn(5a6VVNoPy^vVzDhU)E{UtF_Rlqi= z&7^BHN6{TabKc8&Bg)IRufUWyqP=VywqPiYKS^z-4Xp*O8?6&9DBxnx6>-g6N8B(s5x2~3 z!~^C*#1qUD5l<3tOcuNp4s%Tt*w>mSY)KQgqzPNnge_^pmNa2YnoxeR3qvo8exxG$ E3luCm*#H0l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm5154-c b/usr/share/terminfo/i/ibm5154-c new file mode 100644 index 0000000000000000000000000000000000000000..f7fce9a89b30dc292743c0e72a4bc2b159df804b GIT binary patch literal 609 zcmZ{g?<<2*6vw|q(Q4(ToHzH)V`VVZMw2(QU&cJo>_=GCN{LcRDW#;8 zQc5W=l$7$`pLCt)dPFO?d(Qcs@4e@q)9rOc(T8>%;}gZTtz02JklAM#_6`p*MJ8in z%2-bunOs%`&5~IWp<=aMO7DrCVr^YiYiT2E)@y=;s2kZ_rBpO>fCJylj#l`Q>=PE^ zkg|sjXk*`jPB`IWlCm59@GuRkOlR*`G=eb|r3~3o$}m#`NvtX*W9ucDiYj()y;^79 z{gXFrK0uS{5Jxz{Db8??3tZv~*R0;K-Qo`Sc)%m`6PuLJ%3IXBUj994z4@EJ;*G1` zRpkf&f(tYQngvBbQBX=Ndo{OkYaT75m3=?RpT*a@Kta$1C1l=B<#%vbJj~NjDr?Hi=ZTE3A7A~gXTdAp2Ov~W`^cP)x`{kK)SpoOj6xpU_th;HZJGn0al;I0SXJ>NO^+~1pfcym~tfP>Hk z(`pfmm&=_L1@nEGT+*6krZhS>nQTwyCyLcVa=bWODUIF)rC`$|i5i66&<4f;Ag{*k zf>ziI2iPBl4j_(^tEYI4SzXZMa$|m*-nz@dId*v%fl;`^ZrasrFb}uu9md?NyZam; zvL3OXu%5vJJcmVgFX0Wmg(dh3-(VS5U=`M29ex6+W@SvP+OOKw5p|sXN!IpHhe~r_ zx9V3zYD5*()Rt4VO_e!yOWoa+Z{@$^-S7YGFlKq1{jJoURaVrhT2t%lmukWm+=qwo z7`Edn3^B$G_TeDr@e&rWgtIt@cklr|#+|+C|338;7w`o(!yZTsXA{Hy9L}y(g^P(Oa!W?2gioTbo_ z&e%%i&Qs(n_J$O>w^8JX_P*{SxrVVn(p82UW}sm#&}~_cGv^zIIrhr-jH`9o?P{Fz zVvnt68;T7!swuWdVYh_4BpY*FV-i-FU^=i!2J|{!|~B zOp0VuB$FbU6xBOrQY4ciHy&ThptVr6P_$6AP_$6AP_$6AP_$42p#(w+gc1lP5K17F Pz)|EQA+leH{j~l73DW2J literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm6153-40 b/usr/share/terminfo/i/ibm6153-40 new file mode 100644 index 0000000000000000000000000000000000000000..08f7db623539fed3710e1ca7d9379e7f2a8644b0 GIT binary patch literal 1239 zcmbV~O=wd=5XWc7f*(~BKMop@hwy4W)V|%fFNs7bO@zjnfTg0v2wIy+pG`tSQ){Vs zC|<;af(N~M^XAFkJXEV5ym?aWLGU1W5EKu3(&y|>(gp$+T=?(&XLk1YvO^9C4f|jd z{D21-UarPv;16i;#>sTSG2Tg6CMKtyKIhz2*epAxaHd|Fn0NZ68mNS|@(~aMIu<7a z`e6%fhbRI-+M}okdSNH*A%74CK~fBCJwbblGz1x&o8I;sfjrel;Vcy461mWJ)L;hY z)_NCO?k2@W(k;>*(p|U@58)BH$M6J};2EsI8+Z%v;Uj#8ukamy!5=zBu~qC6dqqq{ z(IL{tt4|D4Us4QAQb+MA7O7=iSu*t9%k)#5eI% z{1!dfi@R|@I(Qh5Vt~gngE<_Dwz(u@`_i!`pfLJjbE9NMiBAMuhZe6;i zk#(DL>&h)4d2S_Pz{k z#XL*~_G>b*MDtAhibC6%A89LNZIf>s1GGnmW6hbiA&z;nxnpZX=D3+kxG9&cBCFZ@ z>s3uQ;A)(#WSbzHbW>Hh`eAyxvRZv!d);`|d^x*x?Zw>6^{4cK^CYQx60$Wqo|)vC zNuHVHnaNfs&rI^nq#cx}c;t#HiYbaIiYbaIiYbaIiYbaIK2vHMYxPEayx1; z4YRGi#>}_eEzAq3+o-#!d+-1r!DDn!;3+J^b6AGA@D4t}C-?&2;0OGIHC*LvJKN3n zu^2PvFlzIshxOsUBpYNoHo`8la>uFKhE9Xcu(=I&Cw~c7-~V%mF)N#_cT)ea^O=2R z-`P+0n|1MSzK0*+9zV)Y@Q|P68J^?Ae3W0}S9z5;`8;3Xcldq26?Q_bn2i;4n9iVV z_9MS8{L;|6P5E`{m$I+}TUq=#V#N$<5Oo$+KFMY@3&Rf0+q8uJJKoJ z3Eg=Sx{ke=2;JL6=!o{3?iPi%v47HaM%pIdHWuiXEXSF1ZG#+pWqZc;2JCV(mGDzO zT8UPZRqI`iHl%JGtst8~oAgsvxb|^ssj^aiQG3&P-F!8(c>U$<@{MQsf-#iPGzrlf z9nDP8%mmF$(9A?@C(TUI%!C_MAZg^1D3U0WD3U0WD3U0WD3U0WD2gbGD2gbGD2gbG IC<-Zm0GnL(ssI20 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm6154 b/usr/share/terminfo/i/ibm6154 new file mode 100644 index 0000000000000000000000000000000000000000..f97c87a249b37504191e3a455da751a7ba37859a GIT binary patch literal 1808 zcmbVLO-NKx6h8O9Kv5zpf=sGe^xQ=F?$4VUd4#Efqd6cM7%73}MAke<)3VH>A}EMx z6ValLyB0x)d$_ULx>M!Z2dK|EUs%| zoverTvjQ95v}&-bJ9szmu(FiUD0p^$D6!li}FABsQ2+2JpvbK{?{ zzPXfkU@gy}`l8Yo4NiLFHB)Ld( zk>n!DMUsmm7ey|LTokz|a#7@>tc#K%{`~fzVtOLno8B$=s5`E_&@EUlh>L_v;xgfi zxJtMtt`qJP_YeVMf9A6FsgZke*sd9L)ZWS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm6154-c b/usr/share/terminfo/i/ibm6154-c new file mode 100644 index 0000000000000000000000000000000000000000..5f9b30a0ce5412015b14e31341215b33b1c85410 GIT binary patch literal 604 zcmZ{g?<+%L6vw|qky?4}yl~%K(xSVKp^5f`8K(K&ky1)2rIeCV zN-3qhP*Tc!|IXvwXLphE^qlkkobU7N^t3vL(2jZ>;R~7MhHmQpMwd}x^tpR`n4-a$ zVxba9mGn(xC8dP&xqLy16m)YfV-%HerfBB$GT=aU*lJ15vRBxMLx?sGppJ6`8qo|V zlMpTFgo~+LRvKroBp(K(3K5nX;XK8Wz%mT!WMvkjh?1nTU0b(Sn0J5G`!*lokm(pF zIK>&xae+%*;TkvW-g4aG9uIiL6Z12N5HB)Y^mn}eyYhGEPyL2>KJ_6_e)2CkL1Ul^ zP!u!{N~oq=?NB;Ymuje{r-uAlysZfo0tG-ZP?i$I3Pouhv;-QZbe~^}=BK2_Xv)f4 zH9aibv_(4W^9B3Z209pjaLDQfaZpV6d4-^KCfL7)E3=yk~v|EF- Q+3Jit(yAS)E`{>=2EP6Hi~s-t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm6155 b/usr/share/terminfo/i/ibm6155 new file mode 100644 index 0000000000000000000000000000000000000000..8a9fec7a5e456ef40bc78c8ba4cb2f1ae4191b37 GIT binary patch literal 1225 zcmbW0O=wd=5XWc7f*(Z`KMpk@58<^p`*z>HBod)C5gKCxEfp!>uuf>`RvyZLL>efQ5D#%yfU@237=<&*d#zKNgWx9GuMJb-=Z z;Q$`T2v1@Lb2x?*cnPmy6`Qz>D|j34;ZE2Kv0^q>%uzT)ve7U5b?KKzwrt9;E5DS5 zJygolk0VyhkcLU4qykCL(vqywlK8u5>l|u=Okguzp~V`~G=;o_Nv#`{SXP?kHc72) zP3oi#K_Fd_0cWlk1R-bcbPzW8_t%0~5h?RDc-^X0yuOp_t$Mn0-V1IL z^{UiYx0HAto%k;CA+ZUzK(bg!7LTJlfo8o|@+PD=+`S5O-h}do3($z60{$+^Vi#H` zT0dGJnjhdI?P4zDlC>zavKWh;=vf3JNVewDn=&pogLVmBuTz%BOd_$uE1RTIHYQEh zIw7QUQV?@FAv7^pErd@jO)f(&DsQ)}UAQ%%rS#ot(szpX&h8?8 zF|bX#$mtmL#=r`?l+|(IObk%RUfI^TScgqlav3k@AyfzrLA@F^2z`pC5lVs?gjp{a z!071MSh*Yo#rtEO%tZ3 g2~*RAscFL0G+}C*kRs|ryD!QP#l*<|R;>d50FsqMo&W#< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm8507 b/usr/share/terminfo/i/ibm8507 new file mode 100644 index 0000000000000000000000000000000000000000..4870e2387e2ec86785ad044a68b031cee7949d2e GIT binary patch literal 1830 zcmbVLJ!lkB5T5rgpd?5XQPe{{iw$Wc?{DueoDy?Ua?wO0N+KRe)C9cbHYDcqqZdU* zBw!J2#6rPBJHf&(onT=h3Kr?C6f6V_!9q~hd2e=;co74)FmJwZ=FRu!&F=1D8g{@| z7-!3g(#0U_3q4Oh<9u3}`JQ}V$|h3zR7+|wHPGFe8ZJ#ulrLNb#$e4ug!RK_*bU)7 zp3QIs5|{ztF5du6&yuOp_t$Mn0-V1IL z^{UiYx0HAto%k;CA+ZUzK(bg!7LTJlfo8o|@+PD=+`S5O-h}do3($z60{$+^Vi#H` zT0dGJnjhdI?P4zDlC>zavKWh;=vf3JNVewDn=&pogLVmBuTz%BOd_$uE1RTIHYQEh zIw7QUQV?@FAv7^pErd@jO)f(&DsQ)}UAQ%%rS#ot(szpX&h8?8 zF|bX#$mtmL#=r`?l+|(IObk%RUfI^TScgqlav3k@AyfzrLA@F^2z`pC5lVs?gjp{a z!071MSh*Yo#rtEO%tZ3 g2~*RAscFL0G+}C*kRs|ryD!QP#l*<|R;>d50FsqMo&W#< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm8512 b/usr/share/terminfo/i/ibm8512 new file mode 100644 index 0000000000000000000000000000000000000000..fd97cbefe76b4f2ffc46441b1038a211bd2c8476 GIT binary patch literal 1905 zcmcgrO-NKx6h8Mlq!eip5;YM*JhC8r_vbkyllfDkriP?NIh)iGH0OG2aneobbTruz8;%Yj)x&{{o7LE=(+1hY zPUDXiP10UloivlxO>l*4gDciBTjIKk z)~tx@dcYc1|eP_sWL0kk}5|;s2#8tpGaUF1vxEJtR;}yREI@E*? hHK9XI=ui_n)PxQ-A>2Y2%6@ldC^|sZ_{mng@C)VkMD73p literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm8513 b/usr/share/terminfo/i/ibm8513 new file mode 100644 index 0000000000000000000000000000000000000000..fd97cbefe76b4f2ffc46441b1038a211bd2c8476 GIT binary patch literal 1905 zcmcgrO-NKx6h8Mlq!eip5;YM*JhC8r_vbkyllfDkriP?NIh)iGH0OG2aneobbTruz8;%Yj)x&{{o7LE=(+1hY zPUDXiP10UloivlxO>l*4gDciBTjIKk z)~tx@dcYc1|eP_sWL0kk}5|;s2#8tpGaUF1vxEJtR;}yREI@E*? hHK9XI=ui_n)PxQ-A>2Y2%6@ldC^|sZ_{mng@C)VkMD73p literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm8514 b/usr/share/terminfo/i/ibm8514 new file mode 100644 index 0000000000000000000000000000000000000000..63ddfe356f330b9d96664811c38dd7aa22bbb5c6 GIT binary patch literal 1829 zcmbtTJ!lj`6n--oFc>6Yut*lLo?PRLzMAV$&X2@-P#le^82UVbDI zF`y6;6hv%9EVK|T1Pi-#7J`M4PO(TK*a;Tt!ue+2Z7!aH5VG**ecyZYzIpR@w}lBf z1dTAke#XYGg-KuP#cX$f+<>;>_{d~&@@D)(PgguYc5A9Qd>a@8daP$)92xsO^6Re8%XrNjR&}<&^jOuJvLI68ib1&xdOv53I#+Zn_q-`aNnY3 zTpw9fE3$$188s5TtL?2-VKEW4Qg>SG1zu-5l!vN(#r`e)lrbmXn35vjQ-vupr9?gh`!STkpT)_g(YnwE z(E7m{cP?e)PSz!eG}=3Lh!W~*J-Czc==kgJrp8uNtaTANC|`rp(f~6qZ*-4(F8(C zFhH0TDIBAD5#m_fnS}B2LZMg;!-Dw@6`6-6qFR1~QwQc4&k*aM1 p`}(H|UDJfFX+qaDp=+AZHBIQ6CZt>G!m}Tj8H$dO`N>*c_zO{MLIMB) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm8514-c b/usr/share/terminfo/i/ibm8514-c new file mode 100644 index 0000000000000000000000000000000000000000..5d2de43bd38dba48757a149d2780145514488cdd GIT binary patch literal 597 zcmZ{g?<<2*6vw|qVYTwwd2`=9)>`yzLxdOR#|*0(qsg27WXzt~kH%V&Qc5YMl#-NE zN+~atl#=)Ur0d*g&!UyvbI$pk@4e@o``ljJ1p3g9Q+y+v*c}=24E87ML4Qan6iFjz z6h$gqD&*n^qM9vliBdV9PZ^c6;2o!DJJ1O` z986O7zy&wcfSKv+eI^ZK)QnP2TT#jYQv^|Lm`c*pb1+OQTDj_4Vc!3f*DS8%km(pF z{O4yl#|18Ng=^ffddqf)dpzI~Pt4D3Qofj8QR{mBcc=B_Z~lgNuKHm6#23GU12hL( z00lwwpqN(hXinkO+*(pAc$>(N#mBlpQ=myu2((SHpr9b_fYw2?l+nj1p^t$IX69pJ z(aWJqdsHJotd9#8xf3@W2Q7nEKvB>tXbltwErB9@4K?ma4V(dOnqwIPYIw$@!(mtT Pd=VYpjjL#GK?Z&Ry-D_5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibm8604 b/usr/share/terminfo/i/ibm8604 new file mode 100644 index 0000000000000000000000000000000000000000..4870e2387e2ec86785ad044a68b031cee7949d2e GIT binary patch literal 1830 zcmbVLJ!lkB5T5rgpd?5XQPe{{iw$Wc?{DueoDy?Ua?wO0N+KRe)C9cbHYDcqqZdU* zBw!J2#6rPBJHf&(onT=h3Kr?C6f6V_!9q~hd2e=;co74)FmJwZ=FRu!&F=1D8g{@| z7-!3g(#0U_3q4Oh<9u3}`JQ}V$|h3zR7+|wHPGFe8ZJ#ulrLNb#$e4ug!RK_*bU)7 zp3QIs5|{ztF5du6&yuOp_t$Mn0-V1IL z^{UiYx0HAto%k;CA+ZUzK(bg!7LTJlfo8o|@+PD=+`S5O-h}do3($z60{$+^Vi#H` zT0dGJnjhdI?P4zDlC>zavKWh;=vf3JNVewDn=&pogLVmBuTz%BOd_$uE1RTIHYQEh zIw7QUQV?@FAv7^pErd@jO)f(&DsQ)}UAQ%%rS#ot(szpX&h8?8 zF|bX#$mtmL#=r`?l+|(IObk%RUfI^TScgqlav3k@AyfzrLA@F^2z`pC5lVs?gjp{a z!071MSh*Yo#rtEO%tZ3 g2~*RAscFL0G+}C*kRs|ryD!QP#l*<|R;>d50FsqMo&W#< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmaed b/usr/share/terminfo/i/ibmaed new file mode 100644 index 0000000000000000000000000000000000000000..227d0f1a9409e9997ba4eaaf7c12a1e4965bc117 GIT binary patch literal 448 zcmb7AT?+wG5Ivg|`3L4@A6#1~A5luF^%3ivQg~bJ!Kr_(fJ!fA>x{`PSTd)1! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmapa16 b/usr/share/terminfo/i/ibmapa16 new file mode 100644 index 0000000000000000000000000000000000000000..46bd1afb12351e554a72e079895fb59ef91a2ad7 GIT binary patch literal 587 zcmZ{g+bcv-6vjW7qNyp*zL))SNK-mPreq#mW{km<`}JwejJYu87-S5IQlykpQc5YM zlm{iHy!*4Zb+$8+vTLpNTi;rHuhnj?3!@DUIKwB(+fM2rzfw#($zbRpKA2FUU{8;V zR<<)6=}cNBN*kqAu3Rc+RIHqIa{1JjisZMP_2eEH`FArBEkf;R$@TC_(n9r z2fvWkE$Bc%sMBP&_-;cX^qQ!3#EV+Tgr+cy1*0r`dKy_n1uu7BEeboo^0LP}s0i)j z5XU&dDb8_$OI+bv)Elu|+~FP%cocpT)B4$Xm;RoYe=C1GfAUwn$*p&D^Fw~Y4~~Fi zU>qC;7cD1fwX1e3V5KaltA_Gf($)+PfdgOyEO4=3G0rt`2^{9C-NzNX4|I$$5AJf4 zRStqxVYrRs?h7J>!D(;?oCW7V>74*4!6}*V&N%`jU=+-nfdVmi>}t@4-{-C(E7;#F JSOLWnz5q<;_9p-U literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmapa8 b/usr/share/terminfo/i/ibmapa8 new file mode 100644 index 0000000000000000000000000000000000000000..9be701644313a08328fcf64ab015eb617ab03543 GIT binary patch literal 579 zcmZ{g+bcv-6vn?nk(%=CdvIQkNmDw*5RDRsF)lU6ou@NrTn58oavKt*NGYYHlu}A5 z4@ydT_h)VEY-ge=yVhF2^{ut{TJ8Ek6pg6FIlhp~<5?hK!Joeb}?chSnI7KD_B1(m|=q(_y!PM^5y^l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmapa8c b/usr/share/terminfo/i/ibmapa8c new file mode 100644 index 0000000000000000000000000000000000000000..9be701644313a08328fcf64ab015eb617ab03543 GIT binary patch literal 579 zcmZ{g+bcv-6vn?nk(%=CdvIQkNmDw*5RDRsF)lU6ou@NrTn58oavKt*NGYYHlu}A5 z4@ydT_h)VEY-ge=yVhF2^{ut{TJ8Ek6pg6FIlhp~<5?hK!Joeb}?chSnI7KD_B1(m|=q(_y!PM^5y^l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmapa8c-c b/usr/share/terminfo/i/ibmapa8c-c new file mode 100644 index 0000000000000000000000000000000000000000..5f9b30a0ce5412015b14e31341215b33b1c85410 GIT binary patch literal 604 zcmZ{g?<+%L6vw|qky?4}yl~%K(xSVKp^5f`8K(K&ky1)2rIeCV zN-3qhP*Tc!|IXvwXLphE^qlkkobU7N^t3vL(2jZ>;R~7MhHmQpMwd}x^tpR`n4-a$ zVxba9mGn(xC8dP&xqLy16m)YfV-%HerfBB$GT=aU*lJ15vRBxMLx?sGppJ6`8qo|V zlMpTFgo~+LRvKroBp(K(3K5nX;XK8Wz%mT!WMvkjh?1nTU0b(Sn0J5G`!*lokm(pF zIK>&xae+%*;TkvW-g4aG9uIiL6Z12N5HB)Y^mn}eyYhGEPyL2>KJ_6_e)2CkL1Ul^ zP!u!{N~oq=?NB;Ymuje{r-uAlysZfo0tG-ZP?i$I3Pouhv;-QZbe~^}=BK2_Xv)f4 zH9aibv_(4W^9B3Z209pjaLDQfaZpV6d4-^KCfL7)E3=yk~v|EF- Q+3Jit(yAS)E`{>=2EP6Hi~s-t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmega b/usr/share/terminfo/i/ibmega new file mode 100644 index 0000000000000000000000000000000000000000..cf3215943fd84ddfcbc386db8efbb9318ec21d72 GIT binary patch literal 561 zcmZ{g??*#n6vw}-sK)4J`o6j1HW|4qQr4T+)><{zYW;k*-)(K}wqlxMM2d(=A|fJs z5s66e`?H?Tz1=CJhjY&7e9w8#c{~HIK@6c2XZS)fUC9+vN6}zR3-4~Hb~CxGHd8HE zYg(wdZdLO8*X@nlVVZMw2(QU&cJo>_=GCN{LcRDW#;8 zQc5W=l$7$`pLCt)dPFO?d(Qcs@4e@q)9rOc(T8>%;}gZTtz02JklAM#_6`p*MJ8in z%2-bunOs%`&5~IWp<=aMO7DrCVr^YiYiT2E)@y=;s2kZ_rBpO>fCJylj#l`Q>=PE^ zkg|sjXk*`jPB`IWlCm59@GuRkOlR*`G=eb|r3~3o$}m#`NvtX*W9ucDiYj()y;^79 z{gXFrK0uS{5Jxz{Db8??3tZv~*R0;K-Qo`Sc)%m`6PuLJ%3IXBUj994z4@EJ;*G1` zRpkf&f(tYQngvBbQBX=Ndo{OkYaT75m3=?RpT*a@Kta$1C1l=B<#%vbJj~NjDr?Hi=ZTE3A7A~gXTdAp2OXJJx^{G+0T=j2E?p?NMfWH%G-Z|D($>!I>Tb?0 zT3XC(mfXTRP>0I#qYhQcuV`T!O0|js_2L`RgaCpfzl=H{3DLJ%ASC%^7 zhrvN`3d}RrXEDJoa2XtB)`>FhL_yC8i(r}CJm3&`APn6&sb3Ib0GtEo!6di4?p*)? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmmpel-c b/usr/share/terminfo/i/ibmmpel-c new file mode 100644 index 0000000000000000000000000000000000000000..abbdc0345f568934375180b13c7e8bf1bdee46c2 GIT binary patch literal 615 zcmZ{g-z!8x6vw}dqOC2@&dYeXqz(5jyAdzDeyqi2tzVIsb=~!A*Ip}G8?~iGDW#NB zQc5YMlm{iHy!(^Jnb|8+rkQg-=R4=jIZcyq0xhV;F+Q=jlnMkiGLg7efx7iyJNoOU)S;E;|&1~Avvak!eLQyQQZM(V59^gZDd0x41$-7ZP z3Q{)n0czORp&ot&n51k(8-h$7Ix^XIX^Nm%dnpG!FJ+u5jTtOz#rE_Z3Yv;utX|z= zF8zwj9v`5>bciFI;1p*##|18Ng=K+~WZ&@5;UlmbnH(maRiR{;%zhCnO2 YF+*In&srt|el-%0Vpc~nf`SV80$dsUuK)l5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmpc b/usr/share/terminfo/i/ibmpc new file mode 100644 index 0000000000000000000000000000000000000000..492a68af7273230060f0eabac5cdfbb07de7a3f6 GIT binary patch literal 804 zcmaKq%S#(k6vn@?Ee2|FTNJ^~?MB2rMzffOm$8h4YANnotNjPu*>3wUxOM!_onaysGVtB=JKuTS8%T{2#4|j=J_<(mWiCH5 zKRw$LY)r)&CtkUfjP=x~;!Wwk`og4bXYJRLCDSkr0F;gbI+JkcGg1iPDI5o=;ORII zQHjT>CfA?=O^gxkM`0nZNxI}qpxe)%lU`sL8DvQX&!57a-{H=<=Yr?HV|?#-EMf`E zSivgRu#OFE;sds@&H65NfY12i^?vnd?rtsdcdvfRct%~~FaF`W?9>e&8C6DU$9?K& zb-Zkc6~J3^3_Cc+N9^Jg_W0j9z#)$4%jy6n*Y#5alw8{;Z+6$oi}c>! z{|y<^6`9b`=S6v~HUu~)J6O|ps}zb>R9T7`CYmlrO0G$4cHI_Y$i=8C>L0GG97eCk cevJRg{j`6-xhS4bew#X*{xx%gI$ku0TO(Ut4FCWD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmpc3 b/usr/share/terminfo/i/ibmpc3 new file mode 100644 index 0000000000000000000000000000000000000000..98594f3c45c89fbb3e0055d6a9ca797b0efb965d GIT binary patch literal 1325 zcmeH`&ui0Q7{|ZS!KN~tH)k#{LWbbxnl&@k9Hv{*PB$I&A{5lEY1hm)iEZXK?S`NS z4+?@F6g_$s6vgZOQNgPq==A7cpk6%LJ@1pH&B2K`F9yEP^U3#po;)uPWRH?TA9}E? z+*h2Lil0x`Ndq%p*{+Xf(}Sn8!gEDXDu}5uk@wu1S1yPJCnyP7A{@6C6sB$A6~(-3 z7pi5)EdUBwGDT0E*;A&_g}N`FG;kOr zO!A{?qH&x;mhu^#-SCT;YgI&}U2>{1H;8dm)6R>i)A?0g#|_-X?Ty;If9z>C@A3Hq zJmUNqFR)7VZj-L}~gK1MoD8YhKwy5(TL$z%kwiJgfEWGg$ehk-7bf@<=$3N{r+?SL?gPDvFXua^pB8`4ek(nhTf4AY{#<$K zzV%l8#>GapQ9BpBnSXxi)xzt=XG=dWf4}mz{%QH)$}hTS(zFa-Ns@0YmtwRiT&!H# EI=H_)ssI20 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmpc3r b/usr/share/terminfo/i/ibmpc3r new file mode 100644 index 0000000000000000000000000000000000000000..0cb4322ea844d6ea0ac6b122ae7bf194e4c81c68 GIT binary patch literal 1510 zcmcJOJ4_Q$6o$_|A&43uQBk465Rx*O0Hvjr*r2>Y-VZ@(6@gNu^htSRgNlkuqCpdl z??eX&2L}fS2L}fS2L=WP1_lRB9E@==(Lw#sZ7FC-l);;P_x$JF^SHfjQ&l;o(RT8v zX?6tzgJx?u5^`C>5l^>Y+h{P$8}t-pg(DSVx4WdJEM1~OpF4dtCwh?X8V`GXK97r( zA|gSrxX>}xNJ*4JKi61ER7A-rNuWf1o+taj?q z$`$jy6oMKCld;HD%trHNpQahauEpZBus7m4x9BcCq{sAxp3*aVPA}*sy`tARe*@mq z9L>ja7veQ5omZIzrKwDnqgLmLF3^!;Ri+wLvuaZg?ce(???K#q z1T`1;{_GX?=l^oPcGdc$3u;j$tzN7&$W&<5H<24|JQSq)PI z#2P)uP_D73b4A*XA+xck3V{+(g};iyS!gQ7E)QU0a(tdegm+ z!IOwk1ZvUp46L-T18txlGyrMZ1e!q$I09OMT&EV4fl6=~EMKP_S`U(9Eu^a!GC~WP ztA#YxLb_=oEwzw-TF6i>X0(fAffJK? zkk)9_3Mo$%_446C`e`Ftl~dN<>=e`0&V;Vn-ur#mJ<0tSz2|*X{tJPbfwM!?!D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmpc3r-mono b/usr/share/terminfo/i/ibmpc3r-mono new file mode 100644 index 0000000000000000000000000000000000000000..e5cab4c9851f3866c647d13c1f8af5c88260bfff GIT binary patch literal 1524 zcmcJOOGuPa6vxj!h*{Bt%1Q@g5JoCc#~H_w1}op@D<5g06ixw?fv}nA>4}SOj&-327-#4kMnbK%8 zdDJw!f`LJcEu86}47sdgJl+1N3I>9c(QKwS=*gE{S=j9^YAi8IIOua5N3$i988*7c z!ycc{<1+5{qiqiU84@1+n8(*(SkSY(zi$5gZ<61hq@5V;kL&cWV^SKOof^nf1H zJUynT^o*X<3wlYfkbe!{&|7*Jt9>8uS)9AnenkE=eWRbmYQ5T~(o}}ZR{3gaRU}fV zBbBN~wJ4|RP%iDyFR6PJ_nts~hjm-pE^c zJE!t4PUj5X%UNvUJl@CqxrocSl54qvo4JkKxtn{rp937`5uV^FUj6PX=~!4v(SNFu zZ`$B&qcyaF49*IJvl6BXh&6dkp&V0B=O5`Xg)F9?3IvKk1^y}qXMwpGt57Ijj;K0N z18jaQIkH&I4sGq?=p|Q_-k=3SoJ9^oS7Y`mSlOorG=o}j7|8T`&;T025zqwWT-Bfi zl!HTH@m!_QdNXO(LZ)gVTWBHsY9T|lkZD@TNG)WZ7P6@p@~g*ic!P@!`4WuYS`QiQ z@D|T!HXV@aA&13bH#x+yz{!nDD`YI13u%i+ZIE(pQ7;c3q@UJeYAI#z%t|p|=}hRl z)_b?_x+l5+oOi}I?LQm1G;n(8{P66^#nB66XU1<&%uU@yLmMaqM}b^-E09=%lAoc}fKOl|-VizDz1>z_mhS>`;Mb#eUyb^13RcjE_2*@;n zFpUwSCP1bsMAQt(G=wnCflLbs(-I^K6wYPP7SIvYmC%zkxSha~xH0WV`p1k7SvRxy z=iJIYkask{uHZ=Fk)k8T@g;{#x0D?$KUA@~@^jUv>c=%VYUkAb13E4Rh#>(1@*)7Q Cs3A}Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmvga b/usr/share/terminfo/i/ibmvga new file mode 100644 index 0000000000000000000000000000000000000000..4b94cf19eadc6961858e50df6fec9197faa95016 GIT binary patch literal 551 zcmZ{g?<<2*6vw|qVYTv(eBV589!o1dqeSz@{Fq@iV`IG9tgT^r{K&GXl@g_tl9W

)g9Xv~ug5^Euyh?m4&H>+41zT5*Oil=GE?Qtl`oO<0-OxK$|cxm&qI zz=y{1q7FZjSJ6TeO7(~VE#lkI4nG1yN_C+hA)x`2IpT*54P(?qr6#?oR7@y^G**nV z=II5L3~hM1o>~!h|Kz(K@1rVI!!hbO!70vhflFNBTGSh{TioFu4|o)Q5>x8gcumdc z<=;wk=WqUsH@WpL_JL3Ng#b7M&Vg}o7R=gi*bZ7jJ7llh?%)r~XGvQJI024>32=ki z5sPtdf~(*(i%x`jCjz=gSO%-yVU1C+CJfy;FB4?Y7`O;7foU)UN^25a08_GFuc_-r dQ((!g6Nu@h#jt~bU*DGpIOuFV!46s6#y6-?=B5Au literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmvga-c b/usr/share/terminfo/i/ibmvga-c new file mode 100644 index 0000000000000000000000000000000000000000..2cc5b8e74945ff05e34ef1ee1e64624d91a6a6ad GIT binary patch literal 575 zcmZ{g-%A2P5XZk(Pzgeh(Y)NtB_YMB5QV*HKg>!nOT*~pyizRXF8eJ)5d=XH1VIo) z1VIo4K@UL$LG<3Aw9T$3h0t;{^O^7N% zEvIZAXqH{JtJ?NjwPKkL;6Y=#QHG}E?nog8A$r+>HufFpgcm+0A$l-?0Mn4l4EA9~ z!x&XjhzU0e5obyxgB7J%u3m<%sOsjj>kjk&pS*@Xcm+J&46;c6V&~hUk~V( z?u44ikHyEjK;xh&C<$7p+=xaA+5jzsrl?>^JJEQUDj(I(X>2KVEFIqt*_ z$3P39MNkHm1ucP6pm|W5uOY`B$$^ugq8iH(m%|G|13s^;=ZhHVZd^qVXk_CDNr~?8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ibmx b/usr/share/terminfo/i/ibmx new file mode 100644 index 0000000000000000000000000000000000000000..86e3056bf6ead7d394ab6031d514472eac400c0e GIT binary patch literal 1194 zcmb1Q)Mrp*U}mUg^kB?P$}LE)sHsTJ%dDsYaw=*(oqQDnoE5+#3d#9-#rZj@3MrYz z1v!b83=E76NC1U{5NBivVEF%E5{O}dfq{vE4b10akYtbrvJ}BQWgw{z#M%t{V7@Vf zC4(K91=8sZWO*?7G6VtXaE4f@cq&6CTm{7ZT!uoRNGXzNIh=%lAoc}fKOl|-VizDz1>z_mhS>`;Mb#eUyb^13RcjE_2*@;n zFpUwSCP1bsMAQt(G=wnCflLbs(-I^K6wYPP7SIvYmC%zkxSha~xH0WV`p1k7SvRxy z=iJIYkask{uHZ=Fk)k8T@g;{#x0D?$KUA@~@^jUv>c=%VYUkAb13E4Rh#>(1@*)7Q Cs3A}Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/icl6402 b/usr/share/terminfo/i/icl6402 new file mode 100644 index 0000000000000000000000000000000000000000..4b824b4215afbab225fb788673676a2c5b671026 GIT binary patch literal 719 zcmb`D&q@MO6vn?HqN3VHbfIp1KjgdV2{%WZSpJZe zG*)Mp|AqssfpuxGCDf!Uvho`SLQSi}6?+o(aWo{F@zj*4$C#3+1z45$&@hJ|F)%Yr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/icl6404 b/usr/share/terminfo/i/icl6404 new file mode 100644 index 0000000000000000000000000000000000000000..4b824b4215afbab225fb788673676a2c5b671026 GIT binary patch literal 719 zcmb`D&q@MO6vn?HqN3VHbfIp1KjgdV2{%WZSpJZe zG*)Mp|AqssfpuxGCDf!Uvho`SLQSi}6?+o(aWo{F@zj*4$C#3+1z45$&@hJ|F)%Yr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/icl6404-w b/usr/share/terminfo/i/icl6404-w new file mode 100644 index 0000000000000000000000000000000000000000..7b11ac825256dc3339c8abc7f3944a4c01638df4 GIT binary patch literal 717 zcmb_YO-lkn7=9Lsis~BCKuyHBP!#)xN?{(fLh2v|7A{E3S}Lxrxkib0=+voGr=VZa zujoGn(V_pb&8)jidg{;|p0D>|-q~H24v|CxkH|?)+esOUv2{Ca)x5Nx*0?I>kEsZ$ z)w1Z3+q&_rCM`6*j$`%dY2WKzwmmAkRMjEM6&i5hhK+9Ayu*O&2mbn}AbSq*1+RDuJMSU;{zt5$J^#<2f86mk z(fh`ZkoE?nXa?y#1^}2${Pq9< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ims-ansi b/usr/share/terminfo/i/ims-ansi new file mode 100644 index 0000000000000000000000000000000000000000..342d68bcfc4eafe60d06077e6be4de2b0f8d9978 GIT binary patch literal 521 zcmb1Q)L>9!U}k7%n9Y!xTdbRySDaZ>np2XQn`i{3Jw0nYeS;N3!Ga2&o(v3(41@t= z00Reu1jBzgU;y%Y!F(YGRWPjqCbfX1E|>*Zioq~oFa@iyf~vD)aD(gc1G2Kjm zDGvr|7hp(9J2Oc80%gr}frJT&0AuNBLp0jX&?HAX+TPIG-qhO2AV=B`q=c72zbdmp pzc?eYC{@2CF{wDUM8B-W(7*s_juQ|AEs1skVxT3_jv$LT830NF8%O{E literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ims950 b/usr/share/terminfo/i/ims950 new file mode 100644 index 0000000000000000000000000000000000000000..0bd8ac0e0db6809aac4160d588c5641ca7846d79 GIT binary patch literal 932 zcmchW+iMd+6vn^tLXCB`sEG84EZQ}titHxa*nqyMNt@bQFGY(8HYRJ_H0jOMM(|<( zBtZ}aK@fZp1VIo{5MTT+gpA+JHdxRXU)=CJ=R22~J-f3RRwr=^yYU4(RNQ`49QU7A zW^cOlQ7gI?*P|7e88>Qgw5pwWWf@RNFXL4j^ix|E({l}ba1>gb(oXKK^#Jz5!4Q?! zhj0dGseBvdXhTv!5$EYI+N|l*x@7efX1Jr)^H{L)UED(rJ=PnHW1D-1=kzA`g8n65 z+4^g|q3`Lp)*AKu_YUuEkGYRoXRf|aqkp#_@X=1QedQ;7X6`HbhVOq=P3I40fBvn znGCm>fOsCY4_QwgCEG5S<&xBy=dyK~ldO!2C!4Y$k$WH`E%Aeb_&0s$cvS*lY-~|6cV^E6@R7{$rO74>y hsgsEC&8P->=wPWF7<^-l%8@(?$v7#Hb7X=P@e9cjwzL2M literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ims950-b b/usr/share/terminfo/i/ims950-b new file mode 100644 index 0000000000000000000000000000000000000000..d68bdbefa0aeb9fe7e8aa1a03b5d8c88cad7a58b GIT binary patch literal 862 zcmbu7TPs9S6vzK3pay!MKwmDRaR%V`ebME%Kn0Qc_A@d<*5l zC-G%$|Fh4K;zdsV_WG~O-fNxqZZf=RLkZsS3OjQU>i6};&*QP&rs;ZScGtACcHTV5 z=j?0}FyMZUHC*R2RLC$sk1{kuDJN6J)0HYk1w5#sQmPK!=%w;$FTgcO1`xt9?Wm4A zbxMV`p1?Hbsg|&!{WYv3p;eOWyRNj6))A$4X>&N#-U-gMy(r{#X<@m<)i2TS6@S;) zxcPDBE$$e*Cl7f1k#%}JG5Y*#=I;~ycgG7Pf>K_U^g%iydB`bb#M<*)?Pj~xWhJb= zz^CM$w(zE_PzhOvEJBj9#jRe*K4d&tUA6J+#&-ckKd@AwOs%J literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/infoton b/usr/share/terminfo/i/infoton new file mode 100644 index 0000000000000000000000000000000000000000..91869f5d39a3a7f55459cc2a0ab01f3c94da7bdf GIT binary patch literal 325 zcmb1Q6lY*!U}k7y5M{{BOUp0G&#Uo-&`U}k7yP+`c-OUp0G&oin?E-fm~FVam+NhwM#E>29!NmcNK$SH(*28TEX zDR_D^Ffax%{QoZj#0)?a{sRFEkYoe1I2c43#DOeHFi)C6mO%l`0;w8)K#75!ftP`Y ift#UDP_@8FHCeU5P&Ju>i-Chdib0ZrLxw>H$N>OCmjloM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/interix b/usr/share/terminfo/i/interix new file mode 100644 index 0000000000000000000000000000000000000000..afbcc420c39f8f899b5d956f41f1bffb2864b64e GIT binary patch literal 1486 zcmbu8TS$~q5XWauLM91HJ!l$9xg_Y8u4@|kpk*g5FQsOdRNhwo)V=6_x~r)b6ciK` z6ciW~6ciLF859(0DHIeG_+U2(is&Ke`rt!k|8rbR%iM<+erNu3X3l&w-`Q^o7t>OT zAcHG~;W8bqhQG`0akyM&z*uc*T`sf6?ee;t9lw>@E<#>msTGHuaW!tIr^+;{n;mgJ z!)$=x>~1Aun)aLFAheZ2DVio``Gryz%|nDp=y(V%pm41sX*tD1C1@{+lF6=BhF(>v zOv?VHCnoZ!kV>>)PP?@=$T=-O`S2F(v;}s3upI&2O$X^P9i`)Rl1|fEI!71i5?!Hd zi1*VCxQIcAXfR9!3wKEbE>4EOSRzQ~vPD);dK-{jjo$iw`A zAMq0&kSuM8en2NUW$=b?SaQEG|J=~m_^jz}^K<8*YsB5-8EzSF9ro@u@3#%K5Bcu- zuXlXy{Ic&&*I0LN&kq#Y1<=0S1LA>t4Qd3mA~ymFHUW$)^8l_y;%X#%mKaGEf+DaL zYy-sr%}F#aRoybM1C)cE0MCl%x0WF{v;3Y^C a;DyL`-~)cp0Xi`g&Q+x9H>Z?6pnd|jG}ndz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/interix-nti b/usr/share/terminfo/i/interix-nti new file mode 100644 index 0000000000000000000000000000000000000000..a9c1fbe9c8ce4022fa3760ff66dfd6207fb46ef8 GIT binary patch literal 1470 zcmbu8TS!z<6o%K@3E4$b3errFa6r(BaU9dAhqT&RUMtPaE{-#!b98R%@tRseK|w)5 zL4iR*K|z6%K|zs~K|v1@Jy`Y-~HplS#ygSg}~di)A8FtQ4stO{9xVVH44NoGZie zpX=wU9W9n83dDST#mP1HZ5WDxvKGw}%CflESweP;yO0*bRR}hLji3_bgA$PC$B;WS zIFz!fAxtrTs6&_+P_o1#nPpl#Y&LL!9IyuDf;_Mm`D(*rpf*(-R)C!V4af{&h0doq z)tk|5NmyW`X^+Y_LaK}*R4qfOQy4;3H3V97LAQZcpw?F42hWJlOt2=dPO^>F#yAJ- zCmOzZ2O3{DJ@CEp4+owE`$8klBP}DX2lU5nL+uYc9(CU8`qusR;QOA@-u}Kx6xjpN zzT6MefVu{C1hgVI0|~YO99M1yxPFP(AknkLkz^?-1La^l*a6U-MB`G`-36+^Zcq)d zpLBvcfCEW4@PK;I0K7m0ji3qOHOT-7f)Hp1EdZAwb$|pDmJDDb_`s=K;>XyV~}EyHV6P>2cQT5Tpk9H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/intertube b/usr/share/terminfo/i/intertube new file mode 100644 index 0000000000000000000000000000000000000000..5ff01383e5015f9f231463dd58092f36cc4c53cf GIT binary patch literal 410 zcmb1QRAW$MU}k7yuwcl{D@iRXDNRbPfv{4OYdpb1smTgpMhH-jfq{{MFklQ|`2SxL zh#44|faL%GEMOAEVq;JN+W7y!23SN3Nb11lK=PPC4^7?(jgP5g@Q9c(uru&7@GwY6 rsumcksw=3gYO5xz78t>pDmJDDb_`s=K;>XyV~}EyHV6P>2cQT5Tpk9H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/intertube2 b/usr/share/terminfo/i/intertube2 new file mode 100644 index 0000000000000000000000000000000000000000..548c9c09b505c2103d8fa595a8b015dddfa7269b GIT binary patch literal 474 zcmb1Q)MZd(U}k7yC}7CUD@iRXDNRZ>s__IfQcK};6>Ac?#yFgXW(VvVUYG_5Kt{JRIN5Ns8!VmQf9TPT5y3}Rc+N|20jo!8K}$% jT^UpWqKpd|1suTOCk2Eh@rJNsB)E z%NU|iWpG3qwgeWR0n@=IIEH0eYM8dNk^;6&tPpu(l_(Hv#5%D-6ct1;?q9+(h-E*S I5VW@!UoV3FDF6Tf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/intext2 b/usr/share/terminfo/i/intext2 new file mode 100644 index 0000000000000000000000000000000000000000..76419836b175b926e0b28afb8c9e05d1ecc61b5b GIT binary patch literal 644 zcma)%JuC!K6ot=A{3awKB4QL%m?$>FOhP0hva`EmXIYGyXZ>tcW+jvOD+mc{r9vSJ zg+ifFC=?2XLZMJ7bUK|zrBbXjVWZK%ZoxN2NJqVY>QlPGHuc*2)phE~$hk%Q6xr0QL8q~2WmmAQ+J0iCSL$Na) z=OlB6ILOC+v|Al63V&vcSVH*6Im8kB<6quMr9Q@Q;p}yh`@A$wczgRDtMD?5g+qa7L%Gpk#6czcaT2Mvp=-PPzLwB} zY}AI45t!PBp#=_&6v>b@v4~41$ep)Q%Ja0)<(kj Y==a8TZ(Qf?Q3)@XbtJF%i9{p503(eHhyVZp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/intextii b/usr/share/terminfo/i/intextii new file mode 100644 index 0000000000000000000000000000000000000000..76419836b175b926e0b28afb8c9e05d1ecc61b5b GIT binary patch literal 644 zcma)%JuC!K6ot=A{3awKB4QL%m?$>FOhP0hva`EmXIYGyXZ>tcW+jvOD+mc{r9vSJ zg+ifFC=?2XLZMJ7bUK|zrBbXjVWZK%ZoxN2NJqVY>QlPGHuc*2)phE~$hk%Q6xr0QL8q~2WmmAQ+J0iCSL$Na) z=OlB6ILOC+v|Al63V&vcSVH*6Im8kB<6quMr9Q@Q;p}yh`@A$wczgRDtMD?5g+qa7L%Gpk#6czcaT2Mvp=-PPzLwB} zY}AI45t!PBp#=_&6v>b@v4~41$ep)Q%Ja0)<(kj Y==a8TZ(Qf?Q3)@XbtJF%i9{p503(eHhyVZp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ips b/usr/share/terminfo/i/ips new file mode 100644 index 0000000000000000000000000000000000000000..2caacb2f8cdbea2a656c69842ceb21f2dc6aa487 GIT binary patch literal 462 zcmb1Qv}RCaU}k7$2w_OhEXmK%Ehx$_sDUzzYcdOpAsmIwJOz+ceo;wgeqLgZLUBQ2 za%Nt-LT-LaDgzWSqR}vM2+hdwzn+7^iQ)f$1_mY|i3(USL{R0~FyuMGB0O+$K_E*6 zh{YHr;bN#}3>41+%{~4Mfeh>nybN3n(uxey5e(8w(vb{6#KRyRz#y$*U|^|ZU}&ym uU}UOeU~H^oU}6ZwKrvIGm>E#a+*pr6I!Lv^NY%hNMYX_CH5p`75d#1K&J;%g literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/ipsi b/usr/share/terminfo/i/ipsi new file mode 100644 index 0000000000000000000000000000000000000000..cc643490b8e995f17e6d5795567e5d3ef166c917 GIT binary patch literal 391 zcmb1QG-ME9U}ETEP-IBSOiaqjH#9RcsDU!g;Y<@#gPP2O;>;Qsup$MJDh4QEgwrhy z91Q=VfC0*42GhJ?k{>QB2xp1FSumZX(Bc&7CdDRF)k*?gCIfbz9D}qGgEXgVrfPwq YYBB>CFp#9V7^Gc5v>^j0gLEhZ046{cO8@`> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/iq120 b/usr/share/terminfo/i/iq120 new file mode 100644 index 0000000000000000000000000000000000000000..455d1a266ce43fe3ce6c031a93e864015ae51534 GIT binary patch literal 959 zcmb1QRAf+NU}l)W=*m!>UzDG0Xk<{6SqLJ*+?rsJpaNKgfq{{MFkoZ|VEF%E0*DzH zn1JN}|11pL418dgAcGcz4v?h><{1DI&+r+N#N_1x7F?0~doF V0|x^SFc)z_X+9u}i-B8!0RX0y5R3o- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/iq140 b/usr/share/terminfo/i/iq140 new file mode 100644 index 0000000000000000000000000000000000000000..e364e467ce04ac87e601967cf3f4168b824af065 GIT binary patch literal 486 zcmbu5K}!Nr6otQsgrW|#j4p@^Us6Nmgj9k>S(Xt*QOjtN6x1ShilT^u77-Es<=36b z!I73-IPaZv?&0$8n>NA>8Q%EjwiougLA~~THHgmRNS0#`hEb*Y$c-|GI5(wMh6!cP zWy#~kY?4`gW%IFGB%rQrnMSOmY*MYE)25T^?Q_6UO8=%$)H(g*I(Npox|dvYL&!Z( zyy%ASW66)9`W$nUSN!k(LiWh&>f$4J$Ro05`+=>NtJb$&+h0nkeo%=VMM?z<$O95q wnhPs)>qrB6MGUf;O zpeSf#WhZumMUWJNgmS`@W3*UU-{JniM>>d?4&V2jD0iBc%u~Op&cXjqDu3JgrP=KZGT? z$&p)W{5IUnDjuZj8SzT0pA)abi`07sZ{Qt#fKTuRzQGUp1;6QjLn29b5%!4v;t;WZ z4ySCqjn?LTP9XD1F)6B~E{UrH`#Kc8A$p=uyiB+=u*$sUF6Zuxhnv(q5|0OFp8OMi z`j@}L-f9+mN$PdxCCOXX@7aE2`&oQlm*2R7{}=f#w!tt+Ki?u#mcDb2c$%Qu4(vs= z=S%jYW6zgir!FC!C5)ZuNgo|;PZdK7OcEvts5piTlyE|wU7%=9XCgA5HdtbEwO)^L z4CQI*k9*Wi-)~F$Dw3Y`+j5jDtMn-^6Q9v1xWy$RrH~1g@f<^WL$0BMp|rs>-l(B5 zO?oEGv(%$ufg7>Fho*B)QG%CITNC;k9I37e-OLf)!-5u4M};MJj`#E)JMs$XaXgSz zPp6gXpOpSAf#znb*U1A8lW-JY%t5|*ol`8)YcJsNUO=uo{O<#g5xkhrmdZ9Y&Oq`poI#I`IBuO02H?Bm>o!nxppER1z(sHu}pz5#_jzXFO zosy>8U>6*K5mIS-7>>gUQXavFDY8|lk)0>l-@-t#A43RS% ztHh7sN#;F+7w`(+z&rQ=pWq98gYWPIep2=q;Wunodz8I*f5z6^Xb(#MkaC2NDWgiH zCRJ@{-yB6-s;w4@JB04gDtk*$a#z*Le`;>2yF)Yg{)yiI%U>1m@gVk;)boLtrY}Xm z7W-E0d-ZW$e&YrlA9Q}S%KYLLYO3so$Bil z4cqZzOo20m2?BZ&!!{*M%-J?YYn)jk6R^ROkk5KO${6c$9hL)bnV~QD2JvZb@QYm{ z&qE>ftY<9cE%}xTma>MxdZU)cn0N%ti{weLAdOg%L$fiaC?T`g)&xI8A~S1(n@GiWEoY(cUaoQ6LkH65$~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/iris-ansi-net b/usr/share/terminfo/i/iris-ansi-net new file mode 100644 index 0000000000000000000000000000000000000000..f011423b4136aa8340ee948e83cd7e6a37d16543 GIT binary patch literal 1128 zcmb_bJ!lkB5T2(2|A=Ctpbud!7EUqxW^eB{@z4-s;LhC1Vbmfk!jT-8h21r|JH>;O zpeSf#WhZumMUWJNgmS`@W3*UU-{JniM>>d?4&V2jD0iBc%u~Op&cXjqDu3JgrP=KZGT? z$&p)W{5IUnDjuZj8SzT0pA)abi`07sZ{Qt#fKTuRzQGUp1;6QjLn29b5%!4v;t;WZ z4ySCqjn?LTP9XD1F)6B~E{UrH`#Kc8A$p=uyiB+=u*$sUF6Zuxhnv(q5|0OFp8OMi z`j@}L-f9+mN$PdxCCOXX@7aE2`&oQlm*2R7{}=f#w!tt+Ki?u#mcDb2c$%Qu4(vs= z=S%jYW6zgir!FC!C5)ZuNgo|;PZdK7OcEvts5piTlyE|wU7%=9XCgA5HdtbEwO)^L z4CQI*k9*Wi-)~F$Dw3Y`+j5jDtMn-^6Q9v1xWy$RrH~1g@f<^WL$0BMp|rs>-l(B5 zO?oEGv(%$ufg7>Fho*B)QG%CITNC;k9I37e-OLf)!-5u4M};MJj`#E)JMs$XaXgSz zPp6gXpOpSAf#znb*U1A8lW-JY%t5|*ol`8)xd2e=RZm(S>$e~s$ zsIpTi70TVS3&n-f>T;!=Umcnln(D}&m>lY;6qfQGk|9zwPR(?HstulI>ZiTP5Nd9t zHfpDR)F~&sC_{ZvS=a!b22Rsi;1bL}%c3sF{x!NzH|Qq3J8|SL-HTPVdOucc;774u z2S28b*n3Vd={3Ej_w+aoBx5a+|TvHF#I`|1}L!w)&a^$Jxo~akVIrB=rX_$HUOY}pX|4F>hKVn~@ z$l2_mN%T&^Ho@J_{-5%jC;z|d`pft9IES3bIqr=7;ohkRxibx7|2oY%r{FZv4svse zLSj)T<}!&zlb9n65tt5Amq4DUg|ufq zW68G^SV~%oFND@hTk2)vk+d(8C(}u}sFPAO9%}#zX>zz0w9Lv4>p-LqWHUM`(;K@rosyi5M_U WIW|Ac1RnohK7$eTWj6MMSbYa6o9pxd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/iris40 b/usr/share/terminfo/i/iris40 new file mode 100644 index 0000000000000000000000000000000000000000..f9aeabd230e386d91b737c92b9fcc477496c22ad GIT binary patch literal 1175 zcmeH`OH0F05QR?^@zH6v0qplsS;B z5sWc8#6~c~-xUONyymgM*+7DGlGpc0f9*5K_k2lKHn4?V=^Ii{qz(wDa({+%b{Dw9 zHEwW=JKWnolU|~J^4aUG-zU*u1Cpfe^gNBxeo}N0>kgfw({z?5z^BLueh8VN zIch>L&?2o;53Jw+SmS5(1$_zjHC?A~pueXZbdzp_{i@eF@;CY&{Ex)`6Z+2j+FiOw zf6?D`pB~U7+Aem9J>mtyyT*X8h*!k{ZT0(ygeh_f=k@>lj*EB2gzynn6`@#$UfZ-mUsvcNht>>j>u=^sN5%C)V2XUui1p0*7^gD8?)DBW0P;=`jhi; z(>d`5Pe*>V!Fuvjw;uV)7V~^AzmnJG5Awzq_ig=Vn|J)2ibP!*pU2qj41=|hq`_ZHh^)}=!$OTA=jElB6Lc77; z5MTka2z9a?>M&&4ufYlND>wX*!9Js-0wV{*3D})T!L7e`#5T=0k0Ao7N8mpWIY(>2 z^ffZdCm@{Ow%B?PG69){$8zEEt*pkJ#yq2K0?S3nNmv}#RCZ!=k;(>=Rq?gVO37@My+#gMFE|-uFxKaj}AzKIJ&=@W}>3$VW<9>4ArX=!U)l0(t{#eOw|PXq?J!#W%upmAVHG3tGc7fK<{@R z+pqs|?7%Qqz;;lI#_2HFHhPMlrM*dC@mx$(4+@E_o;s@Hx~c`-e00G@Us&O_`6a#$ u=ERe$sZP3w$&IJR)$3}8M?1bhq1KSn)Fe%psCnxANtc?%a>=FDkp2bSSvaBq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/i/iterm2 b/usr/share/terminfo/i/iterm2 new file mode 100644 index 0000000000000000000000000000000000000000..d0850e35333e66741e4ff02efaa753ce2391cf1e GIT binary patch literal 2515 zcmb_dTWnNC82;xhvET&^J_sH!OX7$G(KF|^yE)Ls(n5i5ccm?h(^Sj#7J*>qUzpVs?}yj>MUm%N5)E(WVt$7Db>d(k~@)drGaF= zC)rOV^xuF$29HMe3pAgWP$PcaIn`*8XdEJ%M^_ zd5%~Yn(~VI#ktmwL!Fq*H5+>SU(S2hDeGhF3+pTE8|$=n);e$fZc$=>;`+prL^J;X z;p7#zClgL0NOUH;{-a*sWy-c)#=FuH?1dz>0YD)QjYBHZqz~xp@S+wF=UnF zXNK*f>qbuG)Zw^n`&>K4N`qg;dAEyI23@0qIImg5ufTS7po>U^1jDzlb{*%QR@N1a z(Jrn<>Y_tH?;zRvHY9#4S8?t>q%BB2a8v-Ns8Sl!8Z(Tp1I%NT`F7+&wm34+V^oog z2AMG0JdZf5Dt4>pVS5eP9gup4xlb)}O~Dnl!*8eszl9cEO~E~Chda}vw<)-@Wi@o@ zMLuQ)i3hD5$HABZJyJ4a=|cKODp~X74DuwUaRfiJu$IoPrW`lxp(ir zeN$8W_a8VgJv}osJA06)a2rxK#jBl7;f3#PvsXBn!u2pPn=xV1ImfdA;yG}65sR+R z2#aSGgk@yHN-~+nj9eX)ia8x~#<1(ejCkFm7qf3z@!rP_;$#eRv*8#ZD~pk%T+a`} zR64VL02U`N6Zsk5ejbCXQLi%QOUdc+(+Hw70}S57lP*Y_`~uP-=Bo2bPiEYxD$UP;_uYpH{B)JsKrh<4F#nxcp4ae9iL zr=#==y+QBN2lNqrrthY2={x$K&eL!7C(Xm%vlv%p0yp6Tx)!H$G2KWv(=xh)?jo1c z)JpB>t$-Wx0kl0#V^pUDX#G)olAgsac$8kI6Z96Hr1$9*hL^=T)dyG$-UzP4XA;B* z4xbDT;{6;?gqoFWWPMncE4=&cqB(fVF&r2Q4Q0#*QjX!kP#C*j%)a4_*=EWy92g2? z*NfQ)+eNb#m18(C6oSl`!F(Fb_fJL2;VrA8z)%P>pG7X>^NS)wAybYAigU*&u`H*( zSscIR$>nmT9N?q6d|512Q&L+ywRKPd{~qe?q5d3=ws(6BK109|(r8C_J4_&4AZ(!V zQ(C8Kv@@SW3=lCu!~hWkL<|ryUF&-h14IlEF+jw0_p@KvvK6>xBWoaHfQSJirmq0I QuK>5N0JE+ZpX1wayy6djFyECr4W)70JGwzN%vpcS{ z?&|Jn{s@DJ3V*232N)4#1=0sn6cHIzf1)2j&<~?O)(^1{`ha44-gEA(!CD}7ne#l) zdCq&zo%8YDbBA!~PFg@EacfhlRvfLU)rHb%vA;G|>g8JVc&RqnY^>G&Bju6N=F)JX zI8hoNAQJj#K%jz0qxN$&mzL0U{HPfP;;1+w zo)%}sS#eIhDc+ma<74ey65om|;s^1Q_(il@)6?zN7U1ls8}4!4@|g96=4WQbou1{) z9_OE&XJ`7p2=&TLtr36zZ_Wkled{CZGwTcME9;VV*}7`|W>I2pVqs!Qq7nc9aPtk0 zClgL0NOUAR|D|8wb=r1a$Gg!P?1{%HBrYWE{4Sb9w~?KfC0TW4A(B-k3!^Z+0YHbH ze*m-%rJdeF`* z6*-YpgQM8?xp$J42ET%QxAPSS-J^^+uhGLV!&W*_Arc|M;JxdVZ6R-G>Z}3?P+^D%>M2 zYx8AsfsDxRpqus1(w;qg_wL&_FtC6B&``NtsSFQ~j8v-!4vdZ-JXouZjU75PK0YyV z`0$Y!d)ntB=2@6i9fue#a`)P2{*&QYQ}^`=Nhj9h}S^zCgzpT2#Z%0 zgl%NPPBNLzjFgT^#+-^dZCE)mBVLc_#q1k)`Rro_kr@RZHXH_IWIl3S<@rIFOr>}C z!{XwlBR|c@&tp&;^)6$*TsfJl%XPBm>D`k>FSS;!U8@_yAn?MvTq6snt^!?~R6$Ue z_g!;M4I6;bc@JjB^y4x8|1ze)Jt(P@=34?8OxV;#xapeVZKO8pqF&0=Beb6m&;&h7 zkJD3hik_#J=rwwa-k}fa6Mc_;P2bRWbd`RkKd1@!)FRxgO~}7__{uD##dN#AJ@26v zxIH~eQwC#irET;e?WTSz;np0ZN!*wx=t(+BXXpjI;T)Z(x9MH_fG%R@8RWH2crEzg zD2Hvk$iO=IFYP;lNM`GG7w&DKXzmH*y_5;%*ce3PI*G%1xZ_XfhNsb@4=z zr<}P(IqB7ruFIR3%T=)8S9 d*}@u#7$9PRi0RA0?#sdL%fal+g)~v2zW{nM#XtZ6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/j/jaixterm b/usr/share/terminfo/j/jaixterm new file mode 100644 index 0000000000000000000000000000000000000000..0305da67833b7624e14e6c04816ea156303f4f8b GIT binary patch literal 1811 zcmbtTO=wd=5T4yAma3?T_!DS@@T4BpxBE7EDWSx+woPq|6^j-FVz2=dlD4)HMJxWG zU_ns4DR}UpH}T>{#DgM;7ZESwMZAa?@giPC`kbA4uc5I}N*~P3_s!0JJ3E`~5PM+@ zY=8;zHdZc_&ew`l)tUaTp~OI8yj)6jawai?>C$+ilIST`&sGYxi75~Q_@gMm1_8s+ z1lu84g5WS5MU;n=P=qqf z1=Ey22QzSm&~@~)go5A}#yem6V!d9uGW1z|72m~A@mu^AG1)9P$!)S#?vi_?kr~+~`{l4aCQrzstjKA3L0*+N z<;qT6?(W<3=iQgBvE}YwS^cBf)9}RSv6rz|u{E$B;`v-We-Og}nvG7$nN-eLUma$g zN$rf~pczv+{JX^S-DsU?!)QZj*&cMNiq4!ym$t~Ccg7+T9YsJ@l@M5x?S=R$jDsYt zj5&kEDtDn7Td9n;Ic3r|xUQn0TxPW9x*jvy?Yc>3DGok|aC^IDIV^m!_KxMZh*mnIjPxjDQuSC96YVBm$^|S58CR#|-Vv+JaifcQOt_ zjnFXk>e&=R#aSO=+R4!T=B1CLm@<546%L7~qj)-sr=xf}Dy-z`D4vd@k+_} zie?qfDwr@a{W3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/j/jaixterm-m b/usr/share/terminfo/j/jaixterm-m new file mode 100644 index 0000000000000000000000000000000000000000..a1a19b30f8903bf5ab0415ac0732381682079c74 GIT binary patch literal 1495 zcmdUuF=$g^5XbL6D~eSVMWhBw5FXY+ec$)qYobv?8{4LBf-M#aX3)@9n$VZjG@@WY zQI~>(x`=~=i<_I9;NYa-AUFsPf`i~7I0z1cdER%IGzEnYoqTY2|GV$L-j#MK$wE9&<9ZjpvXs25A?!L*h9J>j)JBba6LgjMV5vPj8SY+Z;nr*Xd2Fv zD#8VrhYGZ!Wv*X=Cfs0koBRr^D7r)O9@zu3M`VxT2|R^oq@KeIcm;3Z9ejXK@CClX z5BLQw*o@mTigw{X?8gImh_p+#{^#RK>Knz=SilliaQUxW%{7(lq;IwJmuu?XckINk z|9R5wdArVew{v6aJ$}T`_!Yn7PyCHNs#on+eJZXFsv{~;CsamFsA*MD=ha0Os)o9z zZmNyF_j(?vBg}s4aT*;#|_wC7^hy;K754)s#X(5CrjB*-E9x7$R6HUcHF;kJsrM zW7?AryqWjln_=1Qpv4x;yz$9kJj$ncHhY}TT$nv2$tbxEb33;AB(-7oa1R0B(os|p zaK$=3oP#Cp&aJTOr*k!$-nD#>wC||)X!|^4|6d0j>h@9P!g1+4>SF(v#k>82IWOi# zxwA>29lMXuXQ?q5Hx zG(hbbBa(ECPEiM)C5^g}v1yn_X^f`8F^WU4z~(4T3-D#ypsVn%yFo|@=%DsuTo?UfNQ{AEVp=%xi%qjCwRlrh#jdy}_QZAZ4Y}{)#~+oy8cg!wPR*IY zL)7q`kwexsuV0U&@{)|n%W_6KGAB#2BCG$oVtwUizjMTOcjZlaTi%uTG4J6K=Qi*C zukj1{=1@Dommg&dwUIBbWwfH9CBs_L)RHA6tTZI*i(iBrgR!p_jqamYAEgsWMPU)s zpQBa}=Hbr624R!130MRxMuq`~k%#(O6q!smPYE#v8)B;xomGjQ1DR^vRAZ45BnDvP z_&MU-Rmc!b?Q0qwdNH3Ret|_DAjl&|NNGQ-sVi2+ij zmEprE7_S2_r82yV0yJfgd?60K&L_zi>A5$FWN!1{tO9?w+3B-o8FvpP5M{94DQgpU-5n*@cB%E}t(H z78i@frKM77dAVF(Sy^3OTdP#o*EcpcH@CL7x2xP6yNZ8JG*I>4LAG!%=dCq3XWvaKR Ni`xzI-ZTTVe*+aoHMjr( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/k45 b/usr/share/terminfo/k/k45 new file mode 100644 index 0000000000000000000000000000000000000000..0449f5de2b30d19eafec6436d1b978621f2d3820 GIT binary patch literal 615 zcmbtRJxc>Y6r4jeDu^Hm;uctZ<8Iz^v4j+c_=X?41=m?_=JHpOR7#;zvsK0J z2VLLJpR#ebQPoP#mhuosI7xaNM)_zWOk643iSAJiaE%+>;tuzCU_R8F;Os6uh3o(`R~SB{jM_D*$v%+EOv zLAwM|TU>WHAod{k+2(B}RD?KC31dX(B|fkV-OuZr5Fw2g(Iz@Xm*^3fM4#{>I4^o9 W(^=(fnU144+Dq*r985$T1o#0w?h~;9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kaypro b/usr/share/terminfo/k/kaypro new file mode 100644 index 0000000000000000000000000000000000000000..b12807e5d86ff148ffc8ef4ae7585673b98068c5 GIT binary patch literal 404 zcmb1Qlw?q2U}k7yuw%$htSl(XuYpiTP+Gy$lYxPefiPfX2w?dCUjm337?^<=x-?% y8$*3N1_=gn25DQ>0z*}G1$9+z)nwHIBN&r`i$RWo2N+7yK@8HaKpu$A#Q*@|*!ish literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kaypro2 b/usr/share/terminfo/k/kaypro2 new file mode 100644 index 0000000000000000000000000000000000000000..b12807e5d86ff148ffc8ef4ae7585673b98068c5 GIT binary patch literal 404 zcmb1Qlw?q2U}k7yuw%$htSl(XuYpiTP+Gy$lYxPefiPfX2w?dCUjm337?^<=x-?% y8$*3N1_=gn25DQ>0z*}G1$9+z)nwHIBN&r`i$RWo2N+7yK@8HaKpu$A#Q*@|*!ish literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kds6402 b/usr/share/terminfo/k/kds6402 new file mode 100644 index 0000000000000000000000000000000000000000..4b824b4215afbab225fb788673676a2c5b671026 GIT binary patch literal 719 zcmb`D&q@MO6vn?HqN3VHbfIp1KjgdV2{%WZSpJZe zG*)Mp|AqssfpuxGCDf!Uvho`SLQSi}6?+o(aWo{F@zj*4$C#3+1z45$&@hJ|F)%Yr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kds7372 b/usr/share/terminfo/k/kds7372 new file mode 100644 index 0000000000000000000000000000000000000000..4b824b4215afbab225fb788673676a2c5b671026 GIT binary patch literal 719 zcmb`D&q@MO6vn?HqN3VHbfIp1KjgdV2{%WZSpJZe zG*)Mp|AqssfpuxGCDf!Uvho`SLQSi}6?+o(aWo{F@zj*4$C#3+1z45$&@hJ|F)%Yr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kds7372-w b/usr/share/terminfo/k/kds7372-w new file mode 100644 index 0000000000000000000000000000000000000000..7b11ac825256dc3339c8abc7f3944a4c01638df4 GIT binary patch literal 717 zcmb_YO-lkn7=9Lsis~BCKuyHBP!#)xN?{(fLh2v|7A{E3S}Lxrxkib0=+voGr=VZa zujoGn(V_pb&8)jidg{;|p0D>|-q~H24v|CxkH|?)+esOUv2{Ca)x5Nx*0?I>kEsZ$ z)w1Z3+q&_rCM`6*j$`%dY2WKzwmmAkRMjEM6&i5hhK+9Ayu*O&2mbn}AbSq*1+RDuJMSU;{zt5$J^#<2f86mk z(fh`ZPCD8HfUm3;_)P|4RTd3@`vqWdrj$ z8I%}Qfh-L$PYX!uf>|(?q|pXA^!nluhnVgUmJNie35L?44AQO)(%uZxUJTNass)Cs z>I&+r+N#N_1x7F?gR~Qav88}!r{rM5IhZe9@4r*vsYPAUW&Jq@ca>{fPvp;;E1Xk$)^qSQdi}D zOu?j@t85{?qm-WfFD_eluPycZ_nYe8n;G830Avf|gX}>rEOVJfEoQTTWh*T~)*w6d jKsF#Ae3zayFkdmOfq4>G!bKd=gQ8ZLFfoy9Lk#c*S}MO7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kitty b/usr/share/terminfo/k/kitty new file mode 100644 index 0000000000000000000000000000000000000000..2069b1b2c708240fa2a24ac2519f030a941e6211 GIT binary patch literal 3409 zcmai04Q!oN8Ghe;zJW~qVQ4bEIxy}qvY+nz|L)}*T(-7bFa5i$E$g_e4A!pg)~;Re z?bfX=lSDuWWF{o|lcA^>FevI0e=urD#1JJ}j06+ojK-PZPohCYBBIylJ?HCn%?94| zJkNXH=RNN^J%8W%0I#AC(tBu}PpvpOUaucp=$txI9$r_wroVqT5t}~?jEeagCs*hl zw3-?h`4Klx5IJ-SBCet}bSGkXZ3%A|I^fRd9N_+dW9U*@OzJN)dj7C+%%XZ7Fn z%ltQfjbGfa3RL=n!ScKpw@4LWEgTpcJSKbpW1f#LZR zraFd7E6P^uO#Mha6_jqu5Bce(l)uhJ&6_jb5#dF=wH)1Rp89J+W(FtI17v+1AqgO`ads4dvWhY7>JYED()k_Q( z3>F1_7uee&mKbd?V)09Oul$={>LaTV{^4HxPs^xEp8PXr^wOg-x|a-TVLUf288Qar z=~^k-VOPV-e)e6g;lo=(M#VEWedVTRW9^mL#XP)~G2Al8g%(7cKj4#)vl=vjO>G7MDggcVu%%Hg}Ze&NftPxsY+uGIATg?`0fh z99s6$*yfIH?%3vzv)pD2dP!=zka5v6avMK#TMjY~EqiHTa|bqeU~>mqZZmtxZMl$f z(K2$|*+r6UPArF6TpHTkq0Jqd+;W{@N8+{_mU?^$P}0@Z_52`=;-pXc|-sCp% z4Q_!Yr@+(mg+;wZ*8|hB9x*O2HooGLjsvGh0xYT>o;e!Jn}-)^?zzj_hs)Z_v!s>o zrCCKdW2^A$(3H@P)J~mrEA6Ebx`!U5hv~EQ1$vUcPT!^<&~x+x{T%O!-_pzU7kZ7} zB*iQF3cMAr=4*Kqhn(^@E^~!<@ke=tC%DGP@dEe+pX5jQQGT4C;?w*LUIEYZ8Geb+ z@;Uw!zk;v+n|L58ynZgD%ki>WMeoNuX$^gt*3vrKNFK$M(oNJxW$K|m8l)lGN8>a_ zvoue4(|z<1M*1209DNC6{TiL7@8bRQ9Q~AjM!%r5^gH?k#`|}A1Ftf9->hoBZdy3t z0^fj9@8B-HY_L&$*ERRNF>qT9d7dv@!}HDL*Tjx88y;Va2N$>8@gTXttNt~Ifg!dK zK6ICwv_tZ<`y)H*OG66emP8gyk)_yD zA{5&!vCR_OEV0cJ+bod{iEKz@Ln0dzH9L}<7aduOEX9@*OY(t4NMI?n6j_QbB|^TO z|Ehs4@*NAzGo|@hG2g0C*Sqz|B-UnI8*OW+)){K8QFo0h?NsTbz7gu1oSm4Xz8dvo zdv?>ow$?x(6o>?3fdtSaMZ_KvdqnIJu?J#%Pa6~9H(5mZitC^jMZ2ySDd30YU;o140Bs?HLpm2o(qw2o(smvh!A`K&U{dK&U{dJIm4* m2o(qw2o(r*pdtkU0~P24703e>r~{RRW+vz6s3tHsN&f{xaY1$f literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kitty+common b/usr/share/terminfo/k/kitty+common new file mode 100644 index 0000000000000000000000000000000000000000..99fcd99e6961ea076a401e94b7d80bd7633ffbfe GIT binary patch literal 3171 zcmai04UAk>6+UO~3qKX3peBV$N{xNgux*+5zr!mG?e4Za?BCGcr7h!1ad+F@c4ue1 zGuv+4El8rE1XB|d{7F&%3>u(>M&&1JNW>5&X^aFDVvWX{;7_7KL?WW&ckX#RwnAXD z_xsK{-@WJFx%a(u-(}oEmyw|fe%jeL-E1D}7_ZlA_1UGq`hoJq+Q#aUk)5kGw0ds7 zJ~uhvoStkDvHe$IIQGv5D|7*^gzM0Gur8%lbOl{W8>rPP()H9&71|DaC+!CArCC~} zCHgGvJJ9Z;W5BP{eZW@hL3)H9qbKQE`VsvEkyG>%y+Xf%^_tbCPpkDh>^C$2pWy$r zwH%+v7x9Prqr8$=@fyC83mo&++-jB3y117I_y*nq`(_^JY4Cgf)p?O`=ezhGKF;6b z6Z{lEcg~2P@~<=h_xvjVjo;um`7Pd*Yqh#_TY&HU>qGQzt9&_k?^!*LpJm^Fmi^8Q z=SCiG_kGk_C)@rrx#w~(Snm|@t+!fda(~SIHTRF)zjKcHfcc2Yn@^Yy6PVO= znLe}4>@>T~9#c05&28pRbIg3jeA7H)PMGhRADADT7tKrNSLTfQvw7Y8%NS>cbFs71 zx!hUnT;(KA$=T`*Ioq9^o!w5&X*%bw`u)5^&gYyjI>(*+-(%c&-bFj{F0uEU>;Lud zI{E5NbUuBM@>O@*o%7s@)SdI)iFpKqJ%HYP)xRFxhbEl$+WJ3J2lUbkgnH3Rel&v@ z1BU0%Sa%9e7uqHbrhX)m3fchW$Ncns%73x|&#T!Eg|H~PFJ35CB9?_vEW6Ad7_(Vg zzSI_aXV2Ug{&O5PtBG{%BcM$&(*rS1&VKV_?~k5jJw& zvLS1*k^W^vrm_*4#Tp~a#wHSfT*AJ4#5?M)cPBoB&CP!*KTi2h>88g!LHR_EYJl95 zJ6Cj@*m`#o`{<_mYC&SL+e|$-6*GeAtLeiG)%4uCz+Hl$xGDC&moBuYNF5#P)~#Q^ zVMC#?Yu7Ee?B2a+&(zfP^xnPu_RY-HYO}NT`rO?9{qysUMzguFaNxkfgNuuY4jn#x z?O=emj&%9w1f62)Qj3d*(+a;y6T77 zVA*}-z+nsFyoL10vtdcbof#LE{X)j*Z!=~K^24lO8forGb4Qvx%5rB9RI1#WaZwq$ zZQS=V4l)jvy)@R`vF467cbw(6kD!;N%AFY(m66-Vky|;)I8^r1KywG0JJ8%gmfP+g zaw~UcTvSGG-CZQf_Cz_%`lX@f4mEdZb4xkF6NzdwA$~jyD7n?N;Q2uq#Ytyz49{&< zT2M^GqP*jQfNyc5y^g!+4q7mT=kF5S!!9LsE%i_z-AKD=l0Hv&(>?TcdVs!7Ptf=2 zhx9zXNWZ`h`&)XI{z7li+hlkJUyR%Ha=wDsbI2)g<}z1!JAaxdd4?N&7I2$PveW=dHNasoPJ5C>38%8 ztoQHq7CuMh#=oR}-*4c6JNX){dMo$iuE!?&g@Ubt*1(%I=6OD9-k9g7QX(2+N12U? zZzCvbQvX0w+^YWS{lM^QTVrI`tsy~FYq%xU(>Mj#g5lYMbB)`aawlh8(E~mDAhmB? z_8@1^T##x-T`rP=*2+*RQi_!lr9j{IP$^Q1l@g^uDuI`VN|92mlnD9R)2U1Hvv(_d z4VIS_NCiO_rAR4ON`zv~5^I)Nv&5Pu)+~{BiL^_kT_WugwI`CQgo%_QrC2FZlFI{K z0;NzXQi_!lA>Y0m7B)(a59}4*zQ}DI58dW~J6XfoZ0@GbJ=8T%T@4y&P^E_|!!$fe z!?lH(MH+6<2p-P?+SlC`2!sNWKrD~|2BnEODB_@qgCY(>>>2Ea0)zyF280NN+B-A= z6$ljw6$ljwwJbB1WyZ41Se6;fGGqUi5hy@NKxjaSK&XQ|L2C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kitty+setal b/usr/share/terminfo/k/kitty+setal new file mode 100644 index 0000000000000000000000000000000000000000..2004a4d52cfd0380b26448b426d9b8b4e12d7fb9 GIT binary patch literal 141 zcmb1Q)MtQ!?97sqO6}s*lEj=EAgNHAmy%kPlbM&Qker{BUsSB1k(ZxWT#}fVl30|Y z3DL#Kz{KDTW=cn!T38ubS*aEns#cqsni`wcs_LtzK=?+cU|zM6scEgM8bTDp%Vhvt G$^ZcD8zZp* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kitty-direct b/usr/share/terminfo/k/kitty-direct new file mode 100644 index 0000000000000000000000000000000000000000..ae3709f10fc01c5823486ad9a56d6d2003d10ae9 GIT binary patch literal 3396 zcmbtWeT-aH6+dU*gKCus)R@8;x{16(Shk(_J=0ehyC3Z?+ua%VgMN%_i#yxhZD&8a zGi|rsU8+U}39%*^Ag07>ASe)20+{**i5g;>G*Lo~5u!;=2%1QcAW_iqckX$+v{K~{ zCv$(lbI$L+bML!f?_SMqbTxg1CVA|V1Cx!$(YEU3+}LPiv3KThPxZQb%h1rSmP7T) z>G2j7T1IDTGjnw!Hh%?%V}2%BrVr3sYF_Mjym_3+rb|)dD!PW&(+#u%H4AhLZKpEr zfW3?M0r%51&C?=%7WS7=?xqvK2k1dyv-vH0gdV5w(+}yV^b17J(hKxk`aP`Ijjm0< z0sF1g|2z0!D_VvxOA|s87_=Gv{LsmV?DXzpUym&dER(ufiI@3F~R=$JWoRGu8{%@2qpy zpRG5nw=K(FZC_!pwb$9#*&FTHF527dlD)&;WAC%4?1p_|uiwu*YJb80vVGD%Wq;?t zKKZ?iC{JG`_I_>sr~acf$Fug8mt-ruX%$^Y*@`pi%(_lBab`WII){Ki4(QHSyj#G% zD8gy2ZSR`;KsT*Ms2io|g*9vu7_L_{?gX3;lr0)eyig)#ls?Lic*!ctUY~>KPMHe1 zpdh*@ULaO1mVrPl)6JcDrd>+5vhq|-9uV+MWzWr{h5X z4$790qa;1?T=8y289*6C#0?RtxUs>!!GfTd1D3kQ5~CAFByp);lGk(-4_Srq!XR=d(MKpHZRq5daIO;WvcqfDLS(Sr-7k&#xRaflC9(<7CDW?brLZ{n4X#*%s@@onf0AT z__32XcnCMWmrKX9N{o0^)Qo|&1QJ$P_# zu3m364jnpt_{fp@`J+dV9a~sfTwGeZL&k77N->sUD#jSHQWwfrco<8V6+e+77cUK( zSy&00sZcLm3CdV`GSw9?NFSEbM-EK35awG*r#yWuPC1`)LD|ctjQS>H+95AU>m{M) z4mEeExx+Mfx}Xx}e98r7nF z%fF7-a~lVoa69*KnRoD~d5mjZ=VSPu-^C~RK7NoN;>Y+&K8Lj z@A4J;8v1&Q9;Qdp+o$L>J&XIy8Tu9dhF+#~^eVlE9=}b@tN1cr!&jlt4!5$)A#N*0 z?nJ-)c@Q@hOud)OnUmWX*#9H0>tV7-TrZLFuZta~HX@#h;3$?;8ze_^#cMeT49q-N zWs#VflOVn^aEtf~LnG-%NVi|QQ~X4~1ItIduP1z< z6e>kZv68Q6RG<_pMM|-fFXxw=1WKV&q!bHz>7LRqdFhFeZr%m z<;&!oi^t0K!+d=Lr_tw(O<`^ZwzX47iP}4975Nda+4=NBU5GoKV z5NeOK*ds0WNQ*tvVvn@Aed`buAS56(AVeV4{+*%%p#q@-p#q_n2X2E3gbIWTgbIW@ q&?Ca2fh=8S-!$>To%xxvBYiste3d(Z2zw-$fVz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/klone+acs b/usr/share/terminfo/k/klone+acs new file mode 100644 index 0000000000000000000000000000000000000000..666ca02c36e06bde785deb9ce469ca0d54473508 GIT binary patch literal 437 zcmb1Qv|s>%$qe2M**W=nsoIIj#WjgJC8;Q#Xv@i zf@iS5nTe65ZgPHZL1IZ}QckKuN@j6EPGV&-1H*rufP=w-ffl$qc>>**W=nsoL53nHGu3#WjgJC85gLJf^VJ?s~1rcDDIfw-&Ou%9WAkx6v5KM#EFutn2YJs6@iM6?^HHc{h zWST&j#t2apAk!2gY6fH)LYS5yCXk)Wpe>*ys4Jl-X>dD%C2?cgkMxfj8?tU@@6WlF xdm!&;bCYTkOG=6|lS)fc6_WGwN{aGx6w>mG6cY1_ zGxdrqixpBbiwklRfeekjd(0ltGF?9!RS& zXhFq|7|h@*NVZ@AG+5zv?F0ttXhWl1AZZFB3_*kih%ko}CSVBz5NTj-2&O@77+=+1 zwZKrd#M)fd8pJdLGEE>%V}z&)kZB4LH3KpYAxv{1(*nY@1c@4{TIVuo3+M>yO6W-% z+)iLg+?e(w{bR<4tee^Ub8h7x$UB-}S8$~8NYRnv_>#k=TgncWAF9|~`MK&-_2Zfw KwR7tJF#rH9=xG!H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/klone+sgr8 b/usr/share/terminfo/k/klone+sgr8 new file mode 100644 index 0000000000000000000000000000000000000000..ff648e328520f2120fd53b9c89327e4ddee732f7 GIT binary patch literal 1055 zcmb1Qv||8)TE^Q9**W=nsoKTqMHV%QB_&0fNu?#J3d#9-B}Mr;3TgR83W<5enR>;Q z#R@5z#RWNuKt_3HNrpmZURh=_!+(+i0|OfaH(Z|pkR{3>#UKx)RT#9O;zkT+a1|t5 zFaR2?@Va&aUfBU~?x>X%hQN7-s|?c7hK9L7(iB91Sr#CcIh-&7OBjGi18YMt4PwLi zs`jb{hN>mj=Bm~prV)^70$~~>L`{H9Q;4V;kZA~Engf{@5T+$a6eyg_pe>*ys4Jl- zX>dD%C2?cgkMxfj8?tU@@6WlFdm!&v^*b^X!0sv)dIxqkL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kon b/usr/share/terminfo/k/kon new file mode 100644 index 0000000000000000000000000000000000000000..a19d939c4bdd8345de57547b3db3a1c1f6b056ac GIT binary patch literal 1615 zcmbu9O=uHQ5Xa{|3)VuR3I%OYA`(!nl6|}RC=pVtHPL=j6c0h#(rB7CO=>^1pDBVK z6j4M45d{$sUWAHz@}Sk~K|#C}tb!iYg9w5ap?GNg&)cMx)I+NwGymVrn>TNFc9SyU zr1exnqvEUVOeIHPYNVz$*%5a()H`eA$^HRnTPoR`N*pE<_`+Bja%e}HOd)0d`YEJJ zT7xwrNd;6&Wweo8v;`T9swqS@)CAs75%^|U8^x#-+DAh)2F+wn(rG#ex=2^(I`k&p z*7_;zHhvAAnqQly_w8)Q6x%4smNr?U>n3Hu^Gyr z@~qm?V(-SfDRzizQ4cyOT0|V$lecR)8>htyaaNoc7sMs;6S-OO>(9!0ULhBsl%J_u zLJjW;EwL`Ye=goD8{`2Qk*zW&yJW8%lw<$dG1oa?Pc5_W8F^V=l{e%q?7Oqfz4>SV zYy479E$QSB^0Qn?#pH;%;;wGP6%Dw$l`GnVgc*YiJ0klaH89p}QD_0}`Y;tC6@~?s zCqacav_p2mcETEAb+8~h2CD&v(FN~er%5qcyv5Jtn|GEjakF;^46RlIfzl;PF9-J^ zQ3mU(SW(Mk;BiSJ^Uy+d^|~R$M@@|8@)ioMjy~`V+CiC#xTRQ3a143!-Z&TN%`t+Yqzg+ziTOIy?bOf_Pu?)W4iNE z;%(RCX}A@{ Vw8diKGCf(;MXY(UUp0PpegjwTJ0Ji6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kon2 b/usr/share/terminfo/k/kon2 new file mode 100644 index 0000000000000000000000000000000000000000..a19d939c4bdd8345de57547b3db3a1c1f6b056ac GIT binary patch literal 1615 zcmbu9O=uHQ5Xa{|3)VuR3I%OYA`(!nl6|}RC=pVtHPL=j6c0h#(rB7CO=>^1pDBVK z6j4M45d{$sUWAHz@}Sk~K|#C}tb!iYg9w5ap?GNg&)cMx)I+NwGymVrn>TNFc9SyU zr1exnqvEUVOeIHPYNVz$*%5a()H`eA$^HRnTPoR`N*pE<_`+Bja%e}HOd)0d`YEJJ zT7xwrNd;6&Wweo8v;`T9swqS@)CAs75%^|U8^x#-+DAh)2F+wn(rG#ex=2^(I`k&p z*7_;zHhvAAnqQly_w8)Q6x%4smNr?U>n3Hu^Gyr z@~qm?V(-SfDRzizQ4cyOT0|V$lecR)8>htyaaNoc7sMs;6S-OO>(9!0ULhBsl%J_u zLJjW;EwL`Ye=goD8{`2Qk*zW&yJW8%lw<$dG1oa?Pc5_W8F^V=l{e%q?7Oqfz4>SV zYy479E$QSB^0Qn?#pH;%;;wGP6%Dw$l`GnVgc*YiJ0klaH89p}QD_0}`Y;tC6@~?s zCqacav_p2mcETEAb+8~h2CD&v(FN~er%5qcyv5Jtn|GEjakF;^46RlIfzl;PF9-J^ zQ3mU(SW(Mk;BiSJ^Uy+d^|~R$M@@|8@)ioMjy~`V+CiC#xTRQ3a143!-Z&TN%`t+Yqzg+ziTOIy?bOf_Pu?)W4iNE z;%(RCX}A@{ Vw8diKGCf(;MXY(UUp0PpegjwTJ0Ji6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/konsole b/usr/share/terminfo/k/konsole new file mode 100644 index 0000000000000000000000000000000000000000..5b6b1f306e223a6f14d0f931c02e6febd46d2262 GIT binary patch literal 3194 zcmb_eYiv|S6h5C{|Y#Y)f0Z+c&hO1*|a| zR1)z0z-J;6g9b1G6N5n`i5fIUflq8GiT<` z>)v7!rG+$|-Vn!(_Rfyp&TRAW>hg-YjoO~u-`3I8*-s?YpVUvFGWz?MpVBmmW>J2e z-z2&Zexe8&G?R*HK6|$i>0Dm zR6?&osT1o(Mm!=m!_J9rF<5A)bB)Cj@w9jzG5f`P;v;cfoD^S=Y4L+Nt2{si;@{E^htnZX+b-K{@OypeTysBLQUJU)0 z3VJ?&IU?m`IZfUqXUSWoDesn^Tp}xEjjWd&%Ff0n<=-{oKOvYcQ{F{T?cjM>IKW07GQ38T!YGU|*6jE9XzW9(S3Rc|$V zjRE5^T9h2N|fx@`L1fv}T zrYhNDqa23MehyFZ<6B7^S(z{qDV~f{3nNk78eIZbPsqJ0qh{3LR?5TOE2DbU;9iu6 zJ5a{DQ3D+`s>$t%#;-j4l?T?-fHA~ku`I@7dzg5h$#8L-(3qE#hY>SN%`V^UOIl`< zO&g}GP0Q?Z%wg06U3X!6+Vo)B+6-XE&18-nC(OQSX7hA2NzqE0OdB_D+O&CdOG{hZ zmM!h=*=#P?(b3u2)z#hI)6?7A*SB@+wr&0W0|SGD+qVx54G-_wv6H9uK@_Z}LM-m0 z80K^ZYEF`;pJ$nCAhjX|r&<2Xdk%o%Q`q~>_Y3C+l<{I(Uc6SAu~<#SG-bNZaq4|A$* zX9Y>k@sJamkyH7RQ?nB?P60o=!#N$!>2OXb%&BGvIW@;aPH09>J$pD!;j?RYRXyc$ zPM34K$jKWF7fchIeg^=1(#BTJaB&hzH^HafVXzgJa8+$?_PL`LRy~JzJy8j5r#X_p z7$#E@&8E5d4p>RG#P9k>+CtrUyYIrgeGk1ruhYA95O4M4^ckI^({zT;(RsQ+7wHmR zCPQ2=io|R&SKKZZ3s01Y(8{)#PdN zH3ga+ee7IKo+e*YpvmDQX(e4vo+e*Yz+{KpNDs*lH+{HIM~CF_QAQR`o+e*Yz~t*J zzRu$7EWXa->nxrQ@pOo%Lp&Yg6*}VU0Uc@bH2InWO?;yx#L?tx@-+FH0w!B+Z3QKK z%{uB$TX^59yA>B`joF;T+LSd=!#Y}4PRlANjsIF|sG;`q+fRKRD zfDnODYa3VvLIpwvLIpxiuUQWj2o(qw2o(r*O%=BVLIpwvLIpytPjf*)eHwaw8ghLa RYJEDOp4`9y^)d|P=pU19SQY>P literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/konsole+pcfkeys b/usr/share/terminfo/k/konsole+pcfkeys new file mode 100644 index 0000000000000000000000000000000000000000..11f42ddfab66f3d72a2d4ea0a2b0aa51c31d5eaa GIT binary patch literal 1988 zcmc(fU1%It7>3_3QbX%+ssF1O6||^@?3_7gb{SEd#E=EMyNz8dS+J#cLrbD5Nkj{w zDEM<>5JW|gdg0H7z0iW97PO!sD5y}>3k!n1P!tqVQ0#>zzTf#y779Y|bm6?u%z4ke z-`SaO<_Z~x{?3!Zftk4n7UpJqH|@J`dZxF3VJV#tEj+kup|?0RH$C+5VsHNbRUa$= z%MYj3U4yl_02^>AD!2wWU=tkbxHYXA#RQMGVB2Ze{MXy=o}v1VGx-0$-`(-5nf|r& z*pElz*^|_#)BN*&e`Vz$Ucu{l18?Cye1MPfIljiX_#VID5Bv?0v*jGQP%e`p*(k$O zliOuN+R~9J*&(}SRu*MR9+PExP7caza!B5kx8;a@D4)tP`9@C2Px70blv6S=Q0ck@ zsI=OsbhD}+ZRMEcxQjDY&zWwuh+2zUSIvgwaXeHBDz>)FM)Z<0+e}Pxt>qK%DBf?rrXPOf0=DCEiV#liFIQ(oXE;CDQzUn<9W+# zrq@ibnLcHvzg-$@iFG40<9t?4bcuOnD`;lW%%GVeWyX6{ElOi8v2J8$oM)!dCFYSW zrn9>%*k$}as3U*b4U;79z5KiQ{e$vRojF1=c= zmrasODI?NgpKh0Xr6<4|tm7BqB3zEEa4o+GH?vy6Eg0dqpvihu*okS(VxAS3@FihjW8B1VdqP+TYbOH+VxZ6pAc83)@nbIw(E#)h#)FFPLKR zhF~ZZ!BT>y1WO5)5-i2r5^qbqE%CO*_Y3K}#zF>f2!_HC-)DA`zSdl6@P=S0He+UN z)T!huUL~j$l%@_fn`$=IY^vF$c}H`M4wV*_9+f7Q?nG+~T`FBFT`FBF-G)|dXvKzB zY-q)XR=jh38yzYwDm^MqD&6Ki>Qd=a=~C%Z>9!~Drc0$urAwttr90WsYpHapbg6Wy WbUSSwT+nIL@3d)m+H^bZ0{;NC`rrou literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/konsole-16color b/usr/share/terminfo/k/konsole-16color new file mode 100644 index 0000000000000000000000000000000000000000..ee626c301672403ae976b57661b98c90de16b121 GIT binary patch literal 3480 zcmcImTWnNC82)GH6a*0nLIhT^5Dpa(*mK`?3l%8P0_|>rVzr`NT3YCCw>My6DTpx| zR1%1a@qS4(V$cW=Vq!3O!KguFB=|ry5fc+$lo#Q_gsk5`bGpQq;EQf{zVDy^`{$oI zGjrz5WKlsgXe_-VzAWp=b@t{mt#d4YQ!bP1+1-)Jb+(r0Hkar7T6?ksZX%)nq<#XG zf!{y;l%|_#A{DRm8;kbkP>3RA&;*)H(=div@OZS8YG@^`hTTXH0@tIoP&=?#%upxw zQXcj`dYqmDAEf8#MS6|ip?B#6)KAi9^c8)lqKm~}LKdP}EJNYnaPX+mE*8g%@nW)= zBBqHM;%;G!xL6>nMGf>ilm@X@G>eDDX4qNLEq0dL>0EDWO!s;WJ2V&$mB?Gq*&aJa=l+3{`Zu2EOJ8e$sv)S4)I(s(_r6e)#^;C z?b*or$OToq2)q>fuaxv+@oGfM5puM=RZf(5NK?*{o}4e2$U505*U62tO=e`b+$s0T z{qm4}LB1i6$Yb(D`LR4DPs?xRIr+2vP5v$~%d4`?7-@_##v7B2sm4shG7`o@qt<9J z?l&GXHW`D*`fv4iqu0nAj~I`YS{^Vimu%g7UD?nq8?WOV8g*k&dzd3rcKAQYcH_QS zJyrI3*>JjrqRr+Ov&%ADl4h4}w)DW^v;k_O&GvHe3KZrrYS}eYH>jbJaMhqx*( zsxsO^i%}M$q*3ZyyakBDV4}@g7(qLSMi+3eJ*ZnrC+Q}Aons~KMVPaPqNznFJXYJ{ zS_8@|l-2N99z4xfpfIj5!Dz>TsT#J}sD|OQpTkr9_*T+JRwhhDiYKGW!blXiN9Tjp z6LPQ0s2ec2mGW@+%2+vIa4*Wk9VlbXfPoG+smbk$#;-m5wFlPIfHA~ku?)sydzg5h z$#8L7(3qE#hY>TY%r4*TOIl`wr=g{$YiqF&dyw}tE;=ar>D2KuW#G7?b~w)SM(wKhHAPKx#!wPPHt$=9Qd0c{VS5v+V*? zHr60z^P=0l>b73?Fgyr39&$pn9Sa#e<8F6h6CVSJhK4=X5!zi=4c{aKN;%>30IKCv9xiW-d-5=_azoTe%SL zH|LoJzu%l?7My-_Hd?j}2w5||0h_69gITcp&G}}ZYqqKy0#WnBnyYG7SVJmkj;^&} zI}Ys!4gQaQ@L+s|*$OLR@r$4zvC`~QrV~Tg7#iFat14h(iqx?;II`j{R#jjjVRIuL ziMJq&yAM$%?V>4??@%LX98IEfx|fzwJ@MUV6K$n#+;;Zju5*B%rI+YUI)Yoy3HpRi z(-}HT=jj4nq)T*#u96{c7URSuQ7$UPT;YjIu~;k@4WdciU$UZ46vU%qzc?tK7q8-e za#S404TVV3F!VhNXZ1LB6T6e9(@dI6HU${nLfpqzPy^jZ>oA@zl%s7_pndcNJxzz` zFvj#cy-i2yIDLdseL>&Q_w*zEM89HOf6$-w7jAmP#3+nxqPSg5#Vu>Lh+%a1h$_Jc zSuCbL2Fl0g@Ik3FTeDc3g-z77h89)Rq9v5Ze>FALQAhP+hrwm= z7<`5RP|tOV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/konsole-256color b/usr/share/terminfo/k/konsole-256color new file mode 100644 index 0000000000000000000000000000000000000000..52b2c4e2416ec643e1888a69d3f14bf395cdb930 GIT binary patch literal 3332 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 aPEmIcbswc6{D)~|fC^r@Ohsm8kA47z+N5^? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/konsole-direct b/usr/share/terminfo/k/konsole-direct new file mode 100644 index 0000000000000000000000000000000000000000..6e5e80a7549c1a95b59dfc0d805789bca49da60d GIT binary patch literal 3370 zcmb_eTWpj?6h5=_Hx*PMfC#LbivDrMP3Qa0obSw; z`RCSIE?ink^XV0lt=TisKQd74Ue(n%+}&9oH`Tg*edXRd?OWA3P#hSp>+A38uJrZy z5DE21>L*Z{`u)wHr;BJQRcHH6Rwt`fq6ArV87-$37|V@_3}^#oX)|qu-A;D`cc64p zFR)rIQa_DQ1@?Y=lpY5^Nzc(s^cuZQ@6ZRRe@0)?*Yur=u2xSP7NT0MLE&F5_!47R zs|&hp1<^2A7@THT8>+phxudrJE-aai$Z7esz}foHZ% zGkr%?tE1Cxk0nkdPN~{y;2GmTJFQo%=MqxRk@Mstxl~>$ZMjMYa*b@3t+HL-CGV9z zvM7h-sN63P$fx9s@^yJgekebdpU5xd5&5k=E`O9i$zSE~@|>)(=34Wu#nv+GYU>8e zu`<>=tHs)4-EQ4&by_pW`fv4KYs9Kp4_XiZL(3;-(Vm{g_iug8)L$?;4q9jahio&m zUs!LfX|AcIODS2f`|Lr-?uzX}*X|mI!|MTLlLdDZ_*N8V6SeWYsT*WzE?ilZ1~(|; zpemymv>s(0N*<+^<^h8ezyU-E@*@s%+2ym9W-FQopDi`84%{xuLaM~*Zc;6a$uuf{ zkv*!3tHK+C-fQcfRBH8FL}4(=LJ3CH%c04&-0LvvPVB{g9O@jKX%b=H1C-1)qVQN< zhih9tWI@RP3C)4M@{rm^(X}}m#sZ| z&!k!0E;Q!lADXy&}IPB)n)`UZO0{UoUzOE z?C$w?OvxC!P_wGG=ip5f?zkgt0aByg7cz9%_T)ywVy?giVt5ilu z@4tU+Y#KS$;G6;H3^-?Ca+=K)Yfc-^Xhu%u zcOAo?VPA1B>0)>;BWUhr^h)x&gq$)YIcxQ zbJ}o5Gji(L!)Y?#uGv@hoX zutXBCmUtA#HzcPl7y zA5%BQS1E|^NpZD@ZCoa?R$}LvqbgG^b~3NFHA>$f7CG6l#i? zLY*blSwfv9)LBBECD0*(4heKfphJS`j`-3-N16gnp{7U^|DQpKr^(k8XbLq&Os+a` z3hMdt_sn@QuK;!9<63XEyGvM`bse;IV=@QSTH!52f z8mp}`k&++DP%sALHa{)W2t7&hK4XMlgrCTuN9ZUWqi0ahad^d!Z>6cF=_^O2H9`ahyG8D&xLPD-x~hzuknvzr0zHOLE=YKW2pmlh|ECO zbko*lUpF0HZo!dR2Ncb~ISV}pVcm~9vqzJJB0UaQ5mIox5HG5bD%4AmDaayZo(==O z2w($p2y$~Ah5g3C+_TgHDFGq55?=d5IgW*&wcvPV)J2`_lnXD4mTI&lh7 zD8>vTkX)5R%~Sl;7Hr$k_^zK#)+o^%2+Ld}b72}p3U+LmK_E77BA8*A1=u;BvGalx zjE*H-C}4p@vut^6A$x&aP_XfQ(N*&#wCs!fB4mC*_=)0K8j#X}@VYX^1qnGfAb7x< zw6taB_jbIu&1Cba!LqCnwKyKy&Hd{iX&K3Uh+KxH3%Z%r9pBbIQwP*dsI8kBy#qU! z*e5{fLt%bmy?HjA@_DA|0famDSaY7uVNowM&;aHo`E9>h(sW*}QzY z)oQmpoz2ZFSGwI^Z)@x7)$Q$_o!#AQ+(?|CAdd5S3(RGw!zUIv!m$lp-tsGOWa|Lz z+(APEmdu3jPVi02FgSvfY)T8+=MEUwkMJEKT;XxLPW&}G2=)}E@r^l6bC^ldWAKgQ zK90-R=4s>?9Lti6C`7KbCHDt@DIaam`rLbNiLJNoU42q_s=5+#V**FY6PV-!$;g{H nd>`c$(CT?zi4Z@vOv~qJdWNQFX%W9ATArs?)ay~3p%>9DUhbqf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/konsole-solaris b/usr/share/terminfo/k/konsole-solaris new file mode 100644 index 0000000000000000000000000000000000000000..c9d28179ee3d4853b18e8e695695e7b202473596 GIT binary patch literal 1950 zcmcgtO>7%Q6n?V?(xUzmwfuCEuqvhkq{8la{l}(t8`5Aki4sU#MYs|PwHv$HwH@1S zoW`ld0WL@gAt59r1joVwRTT%Msu$n@2M`A?+~B~K3nvcM^1ZjVBT9r6gc$jK@0)Ml z%)Wgy>p86Qbd>hfhw72UN~7Lx1eIferBSCyclcAwOYO0ScB_Slk@R-a;38V zT4SkICQ|YvX$qY|`-@I=- z6dh0xtH;$5^^|&6dFpv}QcbF9^%BOmqAY8#b-)_64q0_8idJFUwf0cIVSOh2^Pw_`|Ke}TVC28`cdW1e zrzh<+?{BRit)Hx4tY7~jzu&eQ`+Xa2r_cVQzs6l_B(c-E|0e#S#KFV}?IpXUYr5&` zvag#)ms=20%YdR?GH2kYVC?%*FK*FzLXjSXRD=~wI>3i2qzd-}>=bMcHbeV>=@8%o zvIz3B9AsGXnB|ydhu|@j#1`-`W0#ze(VUT)ft^Fg3s{jUM#2l}>XT!x<2-i)QAoxv zg&^4~huSCjsV($fKjnLVCSGG&GEQA5dv+Z0t_xN&g05li@>t3B1k-|9!JJ^8(Ky0| z0%j+mWw^)jv#7%?*P-Ad3Gr3?IJ~?Z7e~miPx+ zDY2#UzL)3YlwvS~W89SzvgQpK)(`nMAsmZQdYAZ4+70#?C2`YC(iBD#^Z>LyIF+Mv z=RAQ03dV8dI0})2?ZijPk+Z>d&-h$?u8FHR+)aI4cdEJ)aAitH@)H>29ZAXeIQ%MQ l8&K;RT?r9?YJnEc()a|8pQbtd=4oMuT4A?KZH8`0e*(^^rpf>S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/konsole-vt100 b/usr/share/terminfo/k/konsole-vt100 new file mode 100644 index 0000000000000000000000000000000000000000..b7e8649bfcc40ed4f776c2711156ba47a9044853 GIT binary patch literal 1950 zcmb_dU1%It6h3#>+E!wt!HRYSm*Oq0pw8T#{fU!y+nC0sNk}lML{=m*yUlKQW_P>0 zO*TzZ5yTe}M9>F8`e+e^iVp?F2lYW8M8TInR`AsqpL`HHe&@{YhSngo^zNSTeD}NO z-Z^vbotZ<*rz12>pQ?k2TBF`>1m)+}IUrg<7u88MsixH&#?QiDQ*Wr1UhJx>srF!Ayw;t#soqiV zBj#guMO{^2s;|`#cg*-%{VK{WrK}-q*m~4@%nGe2YQlDFt%3fT^@Z@S21-Bv`hS%E z$o=)-Sl?N_X_vA+K<+6)(z{X^~e8I;?G^i{@O*m+Z_Jxt?`ewCvmrP?+(Sp<1m4l*ox%yP`K1MrwhVvBgs*hME~G-qUHVCT^B0#;;-k??%F z^2``sGcTM#6q2!vAxO5uq4o*BY72eWPx+poiPxB>w-A=PO!n+Ji0gtCji76oyF6BO zJ;AhKRxl?x%4i(M0yB`=36Kmc96pOO%yJp>E^-iGv5&*cy>V@X%=8IoA?4TXt^eu6J%VE&y_H94A07CXJGF4SU;K!erh^PQ%f8-OT8Y?`of^ z0rg_)>SjuBp`VTW9%wqIX;2f>END*qAx|FFoddc&tbMWzw4auimY2_+TV1VI&!4Z= zf*=g*^+u!Fyl|n_YPUO`ix=0{*4Mk;jg3o}HaEAnwzn^HA+d*o*wSMT*d)xz#u(Wc z+y%~W=@rPCI!C&`K|P9WsZrk><-?R>FoI*;l?t-v^%<5A`CCFb#v}A0@fT@7*prmR zcV?2NFp{7Lp$*|oj>s41X)KU8jw6Rr2&ZbC_#ioQGPvv+pKH%0arLIVt&i(YMVA9E zOwmYw0%N=(DR~+P&!p@ENvOh(&7S*Ptf>jn!|sd7H6mxcDvMO=!Wz!`0Av# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/konsole-vt420pc b/usr/share/terminfo/k/konsole-vt420pc new file mode 100644 index 0000000000000000000000000000000000000000..e6051b04b5f4612a3f798fca9f28b955ba747119 GIT binary patch literal 1944 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 Dl}%<` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kt7 b/usr/share/terminfo/k/kt7 new file mode 100644 index 0000000000000000000000000000000000000000..3aa6780a5d6fb2e148bd603eef6da0fa1a953152 GIT binary patch literal 573 zcmb`Dze~eV5XZlv2ukf*r4J;CvEr{-DYSz^)z-Ek_=AEt);4NMYeVuxD2gCBI5;>s zI5;>sIEWyKhzNrJm+_l4!AV>^_}usIz2olQODF>vMFdy)gefyeW}_wT_P*L`*NvuX z%Bc*X;BQl~hF%P^&_-%06Ji6Rm=4HNXMWg)Xo_Lzora}5 zdsW-eWp&#zr0&Ri&6W`B5Cyj4M88oyn5>jzP;z8}ERrRXCk3)hilh|d8es=-nLdae GZ~t!$h64Wp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kt7ix b/usr/share/terminfo/k/kt7ix new file mode 100644 index 0000000000000000000000000000000000000000..de66a9bfd99917700f71e9a37d55a19b2bc819b0 GIT binary patch literal 877 zcmds#%}Z2K7>A#mgryC&3i6G(i!P#~TpeK&$>!5>%!Nu(leFkVVVo~NCQ}e0Xb}W0 zTC{M{qD6}qE?kHZvg zTCA|VS}c@n3)PBSu0EbFxy4#{%&jiCG2bmz+}z!88^;;v43|Kir>Sc-(?TRv7wDji zZh93(iOCL#L54`kXBd$U))?arHNkDEJom%+0S}o8)vRnOR7wAYiU-@>Z|E}EE?)QIY zj;el~kUy&YAJk7QN3*_*bz--$Ja*li>-E~*cCX8O+$v3tS8DjTCqFW zBsQb&t5~*A#F6P2*D%kM_k#^TL}gju+{N>@hD~6ZV3dy4h^b`bbSD?ViHn3tij+u; zj2ISKF%k)`5>BwGG&ZUMDUl%3qQ8GuS7J6_yivMWj#o1C>01Aj)KcPUayc5jHhAMr Fegn)72)Flk7Rx?wMbzZl(c624;|KtdPnfgb3^6Or%`I5324n4=NIvuNXxfD7o8XqO?47>0Sq z5(KbTTy z+lRJa^oj%MX&e^Egx%uJOeeY`E~Z&?Nz4fkS*>G5gEMQ0_rwG7NIVhmk$(`MI+RrZ z>(6XN_DRYdVImNX(`=HqvTlNA*7J-eaCRoV&PhsRYoiWBrPa7nyM-we`&#)@x z+6y$JouHx>RO^oESWdLLWP;CPHb6^IRb5AxG8lD(xK48^-C{h>XfqBn#t4l8Mufy^ z45Jj0G=XdYJ_h-ML4WZ}8(Z!iet`j-|XC~GOmE#O`iwTwUvErX@g}tz;(^Pms zxvCshfuk#jsDadKQeBlzwTiK=9G~W5D!@meve;VXfEI_XSil`cYdyson4L|h^Z7!- z^L)QpES1XT#l=dcS`C6)ZE2}qUtVs|?eTbw9-!lHasv%+rqSfwOoN+ca5D{Vrpa=X zn{Tq-WIY}M-?hwnEEp|PaosWI(36=l$BNN|ryHBxCyK0fhVO-szxDL5(FHr3{~NFg RHlxNJh2bP5XJD@C!4G>daCQIy literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kterm-co b/usr/share/terminfo/k/kterm-co new file mode 100644 index 0000000000000000000000000000000000000000..91f78969c46007d40b8c0496f616787312020d5d GIT binary patch literal 1681 zcmc&#&1(};5TExfS_MB23fe^og;$HV*!?iuu+%lyYWiiWtx#MK4QXlG?lx(%{SZnH zdJ+%bL{KRxe&9(E{2x4s7Z091iJ)FQc~M+vW)mSqg@WiK^PAty`@MPZ&2Ex5(FGl_ z2kwgJav_{42i^IiUo5ZJc}xW57941E1ZDu zmAxm@Ak9Y=c7_u;qeiH2xaUthp%i!bi5;w4%zH4a9rmfp{dIi1)}ph)+#Qs{i$8HX%DCWx5!NHIDAz zYw(OJra!_XF1?kD0oRz_*);I3`H=~NI%B%9ayzw8-bE~%J9r^H|?EX|f zliOe?Xr7u=C0$KBs${6?GA7JfgpB4HL+FRm$Tz4mu!AJ{#nilhv^3fn+9;Zv0j;wK zi5`GvV{F+4j4T2hQ!!Y`I!|I0#LgIErLXmp)~AV@xu;p>xpskOwBuB?jB4F69m`3^ zOGfxCW)-w7Rn>K5p24Ua#C4kUbc^vAqs`dMm?AWK7!k6kFicWJ(k$LFOLug2+@F0x z>qF0tql+^ctrI!{XGZFT%5jFe#e~WQSn*G{!d}?aX)4^KTvbY{(9xAc)Ie&*R97Wa ztz&E}C!o2M3h@!B8Ema`K+C{(EZ`2H)t=%6Oikr-^YaS}z8?gOi^XE8w6s(%S1Mt+ zyu7lqy1KSjrQ7527=1v;-Q)%u+)N|p+)RU;WpFbMZl=j{lbdg{-ef%<0pGRh^H?ys zNX2!>$fGASQ;wCQ2TwOPxla^Xb%yUnfWP(huh9a#W57941E1ZDu zmAxm@Ak9Y=c7_u;qeiH2xaUthp%i!bi5;w4%zH4a9rmfp{dIi1)}ph)+#Qs{i$8HX%DCWx5!NHIDAz zYw(OJra!_XF1?kD0oRz_*);I3`H=~NI%B%9ayzw8-bE~%J9r^H|?EX|f zliOe?Xr7u=C0$KBs${6?GA7JfgpB4HL+FRm$Tz4mu!AJ{#nilhv^3fn+9;Zv0j;wK zi5`GvV{F+4j4T2hQ!!Y`I!|I0#LgIErLXmp)~AV@xu;p>xpskOwBuB?jB4F69m`3^ zOGfxCW)-w7Rn>K5p24Ua#C4kUbc^vAqs`dMm?AWK7!k6kFicWJ(k$LFOLug2+@F0x z>qF0tql+^ctrI!{XGZFT%5jFe#e~WQSn*G{!d}?aX)4^KTvbY{(9xAc)Ie&*R97Wa ztz&E}C!o2M3h@!B8Ema`K+C{(EZ`2H)t=%6Oikr-^YaS}z8?gOi^XE8w6s(%S1Mt+ zyu7lqy1KSjrQ7527=1v;-Q)%u+)N|p+)RU;WpFbMZl=j{lbdg{-ef%<0pGRh^H?ys zNX2!>$fGASQ;wCQ2TwOPxla^Xb%yUnfWP(huh9a#3f>{U3dZ^t1_~vmNvS!h z#l;FGsYSV&d5Jj;42%o`4FCU205J?O08M5E^EsfRieOq9NUAbOF-UteNP96z+o~2A Ys;Voft7@wzs}>l+m<${YJPh0n0FCoGumAu6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/k/kvt b/usr/share/terminfo/k/kvt new file mode 100644 index 0000000000000000000000000000000000000000..417baeac721fd097b7701b63b6329f1b3163e07b GIT binary patch literal 1532 zcmc&!OKVe65T0`=*cR#we9$W>g(wPQ@445c8rs^2H8d>=mTnq_gr-f>R z=>@%{*R)IT=mUMCFZ2zaHK}T~1=gmHsuS?MEOlC)tMi)T$4jb9^-0dK8dJBxrhIP{ zMcD%0QxDWO{6pA|sQ!wNeEKV&@D98w|JU(GOGGQKoi#5VDF&@KL%c^t02Urb%r- zzzg@D2j?&|@t!b)hfloYwNjU2O)|VJSBt9L?lpF6f2bl=~=rKSApt#Sn}bJqm{)XUO;SP$ZgylTd@Ra2_t1`W3haHyRzj zf4f0HPw|-IDLjK0@QP>&KEh{MhHvm4e!wsI4Q*nR*djW_4&nP=hS>l<(_yT9<}II{AsrXSE;v@I@j25Y5gzk!Vq?2 z1ovPPhjA2-Vjd@P8fUSN7w|G($6Gj$5Ag{u;7eS@5BLcKxpCM)-#3tRCTU3pazm8t zVOo?Xt7KKBHL-sM<5pE!6Din8r4;>70=WT-eu^wb1_B|QvR9!+>cu@yOH5Pr@8W7Q z#z&|>LBckzc*Veake#WT<8{&5QF@~C8EwmekHLzO&K$wQTmP9Cb{p-MAJ rTk$th?4sC3v5R6C#V(3n6uT&PQS9Qdi^DDsyEyFPu#3Yk4!QgR76kR- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/lft-pc850 b/usr/share/terminfo/l/lft-pc850 new file mode 100644 index 0000000000000000000000000000000000000000..20c5b42c213f1e8bcf90dd645d60f68d292a7db6 GIT binary patch literal 1295 zcmbu7O=wd=5XWc7qD2ueTChP$4-euY^zFX)lC)85(^zAhlu(Nw%_We=nwr#9(yEw~ ziU&o|gCc?y6-5L+Xu*TvN3{pRgWy5z&6_vDgEx83?j$x~p$8w#&hI}v``^5I=@enu z2J7G_e8KXuTAdpF6f2bl=~=rKSApt#Sn}bJqm{)XUO;SP$ZgylTd@Ra2_t1`W3haHyRzj zf4f0HPw|-IDLjK0@QP>&KEh{MhHvm4e!wsI4Q*nR*djW_4&nP=hS>l<(_yT9<}II{AsrXSE;v@I@j25Y5gzk!Vq?2 z1ovPPhjA2-Vjd@P8fUSN7w|G($6Gj$5Ag{u;7eS@5BLcKxpCM)-#3tRCTU3pazm8t zVOo?Xt7KKBHL-sM<5pE!6Din8r4;>70=WT-eu^wb1_B|QvR9!+>cu@yOH5Pr@8W7Q z#z&|>LBckzc*Veake#WT<8{&5QF@~C8EwmekHLzO&K$wQTmP9Cb{p-MAJ rTk$th?4sC3v5R6C#V(3n6uT&PQS9Qdi^DDsyEyFPu#3Yk4!QgR76kR- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux b/usr/share/terminfo/l/linux new file mode 100644 index 0000000000000000000000000000000000000000..4ee980c810381db9f367393236bf2e6819d8f7ad GIT binary patch literal 1740 zcmbtVOKVd>6h1T2S}Q(L6hp<=1+}kx=iZyNq!??hEw)t=#oAD5O&>{{q_6bdR73<_ zs33|9-6*KwM%;9x3tfo|e}D@Y;>Lv=S8jy(ow-RvZ54|{&v(A_m@_kHCcQhwRw|`U zlo3aLiFj&ka<+wWcXTi{I+*Ao68MAYks~=1RyJD-+SO9??^JK`*sEPp{}Lz0*9u@<;jv z`*Y6s1^Vkk{2P6zAM_KaC=%<$X0ctAihbgM$Yv`bmI#OtG>>pjd)88{NBp=rCE7$6 zSicw*v(VRmn{_K^-xc@8WAQ{h6VHW^+3YGvVH7P`C1B0kIw{X;-M$dZ=U-gn$wwCJ z=s)Hyo>j1Vpqn)<-B|?-^lm!!wTmvUU}u# zE}u7Nudh7E{$3;CtM#p+_2iEjabw6bxTZaW(ezCQe%O7`At*; zR}&nV3|?ydPrTtSIxfDkXG6Nbdvy!K`}TnK#-XRhne1A8*KzlGB^o< z(s88|!ftGTtuoE3!&uYh=n+T@T?X27fTIw-2W7G8*}SjFF@^?!737Fjt+9qtnVM_L zz^MTyE`xWf^?ZE2KR%Hrt$D(WY7cKlla@T;Qrg2+G(m%+{*E)`uV#;TCEer?a(}s^ z8L~_x%&F;6&KFjV&eN;_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux-16color b/usr/share/terminfo/l/linux-16color new file mode 100644 index 0000000000000000000000000000000000000000..3e6eb5a815b5faaa2e2a67463689a35beed160dc GIT binary patch literal 1818 zcmbtV&uD)IM7qYfj@u)2h>XsTzcxIlKZ_`J63=oB360d``(*3 zZ)U$4XLpM(+Cw`i5DSrFp*%C!ZO1Z|Vr6=9kfY8_rChBPbDgt=TE5ecA;wshNZ=1< zo+fFALNpqisPV>U2WIWZ7?Gq6^bzf*Pf5`}WL)Z_ej1>2;NMaXSfCQkQvlXz{6LrK zC&PZBtH$4;TXdV2>36zs;s^AQ{-8e%Z!P_do+EzI%>4!b_saN7`iK6d|L_tWVvE=* zJ{Eh#=i&?Oy&GnWnDF8GNj7~Ly^cpQeoUMcLt+GMTvWv({Ex59`n4Hf6F0;i@te3S z?g=3qjSaB&)3Fk51{*NZH}Z_}=U2vB_20dgX^pJ*nRl#PJ*yq%o5SWv7vF#sH~k`Z(MGjD54HzfHsX6m3Q-1xsqL2(&Y_DU9-ntPJ>3*pYTF z!MRhg6SNKJl>jz_W^nU>I5Pt-Gqb-T+74P`aEkzK#j<@Ze=pu#SjRTiC#EO(FAA0Bgs-U&iZmk%eO6+>W0*5XI)S) z%zB_Yq%lxi`6Zs$t7_X+ZoBd+nxYTUyPvwc4jkz2K6ucwhKEN+Mn}iS^7%qxe0*Y} zSS*#w~K(W@av3nw_1So1b4;sMi-4gJ21IaGzwH4=)+V0qnED+$H== zg^uP3G$L@Loi;LRqqR0#JLX&*%{7jxcTBy_7Z7sbdS)R`I#vcGV|<0!oL=AU#T8-U zE}UX@=2(}y_PjvtS9RO6tU&cBOC#^Bk$2yiM|alU;imOOph_wm>R*os>adYB=WED| z<&V#FLbIon5gzuHWH>ZPk8AkL0zFZN+tfIrexASylh|VUc&!LIT#hRx7 E0XF|ql>h($ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux-basic b/usr/share/terminfo/l/linux-basic new file mode 100644 index 0000000000000000000000000000000000000000..d388537c9244ac51baf220f19f3283442e20972e GIT binary patch literal 1614 zcmbuAUr1AN6vxl+my`*TMS(d4lWt^X?f%;wi>_AYNR5mHb4c2jZZ)S(O-o$_5eQKP z^$-+6z4Q=K)Kf26EeIbf=*0?p@u7%tX%=W*cE0Cx&hPwwzkAR9aaSVB zp%jW>RJ@U~XnbI(@<>NtG&IscTo&qy_w~e%mTlx@1%SXG8ea}%LrACd(f)MhLp7|z zF#rj9um(zC9Vk$N83Sse4t+h(Y(#BBYlcG{w?POZOx=)RKL{gm7S6*ZxXSSjxCM9M z9&={raY$kO(#cJrf1MqF3zP5>rrio7Oo%G-;am%H!3#CM%N z@5{#v+C3#F^GL7pjGqQfW=5}w};R;$N zjaH*Iz!_9MiLw)oZ$VQjv}3xh;BJyy6xB;3Y89)GRC6;kl2ECKz$CFBs*s+NZ<8L5 zp)murDQDp#sg1NEJ-cF2X}{mA_z5*c!$y5B zYap6-)`UsJ+qXAfsOV`2XqAe>ci?^EWr7$PM&1Vzx7J&d8a_jOx^v4`zpFa7~veAo~LtuKAD{?7T5mc=O+ANe4 z+;i{!-7m=&)j?Zn169=*k-}JUy4>c^_OOrnrQ&3%Fch=eo%Td)Y`7G}N`?GT5G(rA z!Q{{+k-`TiPo305rIwajXz72S7TQfOV~j{sgkGU7^cop@0~we0P&fQOnb`~64?92~ zNjyM4jS3s5K>Q5N(&zLQeM=`LK11i|d-_p$W9d1XNBny|_Xqr6%j1936}mw;>0i1- z3$#cND5BP?_1OC+*k-j=ZG-1$d)^(!B~&@^kh9#>RN9amqg zZ`60{ALMTRr|$N0bQjFhyqc%e;vZeP>oNJ}%J-hKu6bS~&g%E|hq_-M*2B7>16|g& zXYAPM-0Z(xW#8lagg&Lu>ht;sePNYzo7Y}#d?*sm@FU}O_T&yTk!s{cT1U~G88Z`> z$*0YPZSnyU&IlkI&FzKT2V-9^>RzE?eU{cDm8BNoJFqTTAFLNr&DL72_V9R(zr z3AoH;{evJ@oWpoJ^lkxxEoHXUWxUbX-?HQJj$P4Q#^cf5upT-FbZUUNVX_6=;xLSP zTe)``_5iFTk64|8DMmXkTqpyVCYX2(;i1;?DP@~{I3c|a!i!3VHzTB{LAaG>@rg-wcV$Pyn)3Y|pEjom>(}QHSXZ%t(MRAwe0vM#`qqi)nK&3jM~ u6VCJAfctzmfV<;2+L0T<1?Jpk7XC8uw;cc6{70?ng*sb9T?gqvCp`qO5~@4^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux-c-nc b/usr/share/terminfo/l/linux-c-nc new file mode 100644 index 0000000000000000000000000000000000000000..13473aec2b6d7a4917c753b0ab1014fd8a2de342 GIT binary patch literal 1708 zcmbtVUr3Wt6hHUQ$^_A(Kpm1rUy!!^{%(#%)5;vFp^;z?N%^L3H8-1@tGPuGfe=Md z4?z*sOAir7y=S!`dZ>q9te_VkiYO?1@ku-9e&3X)MbgL4@BGfW=bn4-?|$s7U^P$) zrI2QlBN~Z~CS9g0W{$TItuo`W;dr#KYAiAm#vmF`xXf^GY@iQ-;SWtbHnBs-78VL& zVa2Bq>R}^}0dOdQ%}@bbL4uu_(V-EV&^L>jt%&Vt9dJy<-C#mkut7)&KL+D)9xlQa zxGv&ba0l+e1Hp4kPeB&rmv-(I`ZtT?Z($lf!VG+dZ!imUFb@T+h?U^pH=&iWO12F> zJv(e~Ma!`o$6d_L{49X1opmu2eKc>@s2!(RhE1?b>@vH`K4I?5Z*^Z6qwmNRPOBN* zC;al28~%{buRQpVb@}shaeyD@M|l_T;r%?y6FkW?|JgCuIp1GcW#0*Yjo;w6`CWdW zPp)!q{@SaJnZuf~#!+Ikzjr8iY;mlEVsHkfh%}@~A)hp)N}&WMv;l;GGk6GHGa7lj zsA-8>^#LftQ~(MQ_oFqSwV}15Das(CK_Hk)Ob;V?hzZb%iS;{?C^Chz&+>W{167o% zqRwxGx9?G9xpuEJ=r?Gz9<2q=A!-?feQ06}szRX^)3$;K2pSO-4~-~w0=UpG4mePQ_ltGeg-^*+h2u_{j6o$ETl;Jxe}1^YiR%YG!;oeKRwU zO}fzh9=b!nhb}lOr4(6~(^9P@tC-jRkk?ntV|UVA6E}lP c1ocH`y}R@t;S9euQTRPm^z%+0)ol6B+2jZDrvZFPgO9m3Dct<<|73fUnhy?y%`YDit z6e6Fmp!{#23aX*$7$cHYMl)y*%_oBvBjQjk)zN0!0lt%xz%*s)81;eW^MiDX&TBSA zSGB)Rx9AQ%pvUw?>u2j zu+mdLq9%fE)T%*l)4pkBteC(1mq>ABw2%K|-so8+m5^!KCc9*h9F*tekh~^u{%6Hf z?a}P^80+4XkL6SOLcW%7<-0M?9li3{)m)!9C*WIBV1KXS_*VMH(`53;jI_~i8O;%+ zT^Y?C2-pV!_5RoNZe?8fn%JNjO*eO?N4ajFvBc=HOw;T$Rv4y2-2Ow{`E4B4x$Cw*8!QoXMwq29t7T^K)e-n| il+!HDh{oajuUp>#G?PNktjLm7`q;18ys z8mURBYPA{myQi6U&{B*MNt#8=XeF&7gEk`KP#d*VCmjPnP8nd1iZn(Quxj-pU7{3__dKC7WJGA{?^h^)v<@~XTcZ_B&? zS+P-jI=er^x{u^D`CPt~ujE_#ZiaKGuRL?LI^fS)8)&Jqzt@Nawgu+U0tzOLoH1Y- zJ#k||89ikL>|Q`eFu4z|6UM%l)ZU2akK5^i?=Hf5Syw_{D0M|Z%w=mOB5 z1nh$8Jt&K%uX$g|Jq&FCE6O8QOk*pfGBwwffm0()Tn7KG7Vzuq{qY-VvcFDvQ61sU zXwp?DTuMi{iY91KI(YIh1!ElXkEDl!QSL8SG~a=FKfF;qaC%rg{2wDs}d3Z*Ml6%k}l;^MyjO zSSt1R4-5KU15>Y<9L=*?G(FAiQ@h=s9 z)JLG8z;*AGZllt@R=U@=J{MbYj;-@;op134L_2Ujd(fO@qy$Jr_zJPvt#PLnSA-jP z@(_1tl>0KST(@FuGR7^_G%Lnd!&Hdde~3H3jiWmE-PWgrC6dk*v-EYf%pyKK0^g1% gTA>-yYW#+XEz;!~Q(0@+M{bi6s6@Fu&Ng~l>oIs}=?TcHyLpQ%tH>!k|$gqI2> z(}_YN2^AVic|-z#F#VKCSwfXcb+DH`b+ngW!x)jI8rndO^d=d!0}+SXse`)cBk&`X z0%j;jC#eWlDt$rIbVjoox~TmXx<=RO7JWl^wZ2F9X_g*oURn7uJ%#?I9Gi##b#eR| zEzlqI9B)x8)`$l2y4WPPitVCQYKB=NETZuI#LC`R%W*%(-x2SL9+3bW5F=s|{`B8w zoiFQ4;)=K-Zi?IDju5g`s)1FX+C{Y*tV^qRhFf7BRKMt=bT`#7L87(WQt1!G@M>ZnpbzmrxY)Cr3zHw(0q zROhQSl$iwI58GFbwQ%e(>=3O3x;cQwpctGqAi_+8!%Xk5hw4Fd3{DoH^tjRqF*m(! zw=&ILd$6X*SxRz0fu&f72y%9MPn4|T+v}Senm6uz!+i2d zO=8Wbe;!{*f1CMf;OyYn*)Ma``G+T_hUSLP73M}h_P!dO`D}LV`|;B!e?Rrx#QfyX z#cNY9D9CkU5k9CM?r5i^eX)REXRE5O-c0 zM|JMItxpF_#GOTE>Fa8lIed5oz8$r+Q8S`f@Cgb)b2n`M-SpDF9{R9_+HD$49`h9a E1qJX>vH$=8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux-m b/usr/share/terminfo/l/linux-m new file mode 100644 index 0000000000000000000000000000000000000000..02b202e4e3f2afeccd783d4b5aefd0d78014f036 GIT binary patch literal 1730 zcmcgtNoy2A6n<5sQ6sJ(ibLER5@TX_b@xodh~pL$Ork*)V?x9@iJ3`e$uik95fMQT zDv07iFA7HRBDv(E2R(@ge}D%M;>Cj(PhKSL_o`$2PKZ{~3Dzry#1!<^A7f~P)@=*1 zLjJj*JcY<&9s9$)#j}c5x9pPxa#ZHz6?t9Wl6U3(f2>%ny_h}x%epgiR?f*6@}+zu z-|D&i!v4?L67bjg(-n6F$^*-26$RUkgwbyqT@j;S8C`>L*gb%TVEZwsMhNSCQhky7 z`3+PGR|6!f+$7M7(Q@C4!!l#wham@xz8dzmK$>Ya&`kj>2F2jS0bynu9Ah`RAz`;=+!-H$b0jvjzC(Iucg4LAhRdr%gezRmk;Kf+K4u)-X%YBbg| zDpPY!88|h>#AWbLwTh3g_s1vFq`5$NQSIT)Xwp<5TuOVmiY91KEZA|9f;H^%ucV8D zVeT(iG$WR2L^(AZ2^$fn3e@qbUGzGjuJ3h0l}|&UmJvzuyjml>+UQP0BktPy!K1-Kq zlXl`wG{>_Pl~V!HED&s6f}iOJrFeYg5Q zpZqlNHg$FAJE=Ht1-x>U0WU^VvLDQaDjQ@mh8%`vNZT^Fc7xk6xM71EHhDOvA!AIA zH#uIHpB@$CVT2n&JqbX-gT4;PNPn5jAJ6_2utIVU1G;9D7hA61Oy@VFYw`5Iy1>8nGp4HL_v4)!HF^KZqAHVq0Zv>lbN~PV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux-m1b b/usr/share/terminfo/l/linux-m1b new file mode 100644 index 0000000000000000000000000000000000000000..ed2a5a23832fc4eef1a893b5d01fce760e28b1d0 GIT binary patch literal 1767 zcmds1&ubGw6n<||tc9uvJ=jHv)qq7L+1dPPh%_W=OlT8ZtKg5dYE5dpG(Xz3TBX(s zQV_+9f*$lB;z97*t5?B4K*75pf*>9|c(Cg?lg)}yK@Yt+$@|{--h8w3=IyZEoTcrw zgO>QNs5a1xilcnV+Zz%uJxC>P%1c1WJv1qde7Y)FuK4@=a$hl&Ox_ z%b}wUr+IL|sr3@E{*xZeuG>NGx?{~%Ki4G^w25|6H|?b$^+Fw?9OY?z4LlDk z(@*J{FtA5+UNe7_S)b53(UXdRZsQm59-&*zk$8u_xyoB@+a`m zurILI_{!h-JO5x7DppUHtrO=^-Me7D8EPS6TKoNq9Q5MA}>nf_y+BJ z`X8TrPB@}2=0*EnZBz%=d+vf)>!MittE!j9ir7M3WY|F`IAaDY$>59(R+>mylYoL@ z55f(>l=nmze$ke`K%GbxU?~}`Qb&tS!DV4-*a)lyi`D>^rBEt}C{bK74Z4O?i1b_) zMCyDhI<^0>84ic~u?2Q8#zu{?5i^}oKQQSt>xdr6Mf_aUXEC28d|ldS8J}f+HsG_I z$8g3n3Mzdq6=BV8+#q*{3m~P=+l=Sy`yTdLTWx*Vx1lllx&pTW}SwWQKmT5oB+sV)wRz_qH3 sg2w8AR1Bq_0V&}V&G4pKQy8v!-)ek^-)d^ui3Dz-9PIp02IVaJ3D{6B>`vx87#6=n-Pg+vb9mM&?~{-7l}pEA;T{06-Hz-RAFz8XN*uLnX*@22_@6@EyhSJ zP=6^NNmjRDyb6HP7pO4?rg;MGckP=gKc)%5;TW8PaySDHsKRU)v_mKKz##Hv7)A|3 z7}AiXl@?$LR)}uE8u@kDK)(rhV2k<>U>p4ov1vZfdxM!~0xgM_VRLL5eXgyrRkp^~ z*#_HWx7ilE&$ihP+hvd0Q_Ok6Ua`G=?i*`PVeZfV9ggp__xY?(f5`rdap0y|!ppeA zPjfr+S+w(LxmL+*xXNAJOOYnj>qM)3jr>j0Lbmi9eDjyskK;$hxAseAuvgA(hsn3uifqTB1Qgv7aU`6MV51`; z9Kj?8v~iR!Mejz}gC>1GY4`wh`CU+qp)NGPa2s%fAV9q^aw}T1jCl`Y1K96_lc??} zil#{wQe1M1M-mBb>ni>)D0-tt5to512>tHxxhAKo)?dKY@yg23pfWUofo7koA_slg-Y~&dtrwFDxuBF5zx* zeckVox8Co;`&gwSxiH=@H!EbZbRqk?ptA`&rl5idDu_nK(}c{?C|{#|r+j$vMEGb2 v2N4@$DE1x)}SAyFDbO_&8jVdl;Zh15_%2}B@K;{$ClU|VRRFZzH&TMW98 znCQZ2d_)%}#>5pdCT?`0D}RFvSDL5`sOQ`%6ah$lIeIn5lAKje#b~G;fThfPG35a3?v=# zL~JxM97zH&{KJq}krY$L3WahgY$)n$2;%<9>Eh>fM+s)0WaYVyp?=;>!rdw%-*2Yng0Zz z;R}3+Mc}NARj@s5AFE|`c<=QXP9~TON4ng_(aP4N2j@FkFFVDSaB`51uoxbzpB>lsFJ-qj+4mlQ%%AcF{+z$!uQ$22wClgIT{df7wXL?u{@kbD z)@&<-3b1>XkP_Dvzgvk5#h*YyA4TY~dynDJi$P{zEby4Yx0c(asZ{!w33ZSPEtUj5@!1DYg1wa#>n-@f?jlR6k?Ph|#Y3ejw@Yyo6-W(> z>Lt}cYFes^R9LhHsiwFiw60A_RVslh#SQiz*p9usp`oF%(dlezQq`fM;o*^y(a~Tq z6dD^F9}kBkk!Um)i^nG>5{YCol}e{4C#R+|nd#}7nQS(f%jaj&2I}K+(fjha(DQl~ znK6t1MbSR#yub{(v`k3%gtS;li*@-rbU`(`tk-3|MrRJ~z!T|5bG$841WyZ{8VbG5 zZM5O3Amav)lRFvmB`ZubuN+jenyRXKrCCu0>iTbVV?!Oglkd8GJGh0{SYetxp_&?@ nZwew(RJ9PT3oQIA9INb_eI*j`+rUd*1U@=aD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux-s b/usr/share/terminfo/l/linux-s new file mode 100644 index 0000000000000000000000000000000000000000..79e961b7fc1b66684d617d93aafdaaf153650616 GIT binary patch literal 1956 zcmbtVOKcle6umF6l(f(^LLfm$MN=!I2wJ!E@mB+N0=4SqgF*mN7>Z(hoY;*&sXfl$ z=>iEMHr=oQ3BiI5s#GDdKrBE)tXQ#P!4koO1+eJ?At5oG`^Je0Em9*!e&?Qh-hIFO z?s!g!G@YbT>WM#Oz1Hlm$2;3IZ1r-h*=f})`dTfh>P6qL_U(rW>$f_zu0N><9D_eN4CLGx}WlU((m~4Sfs#gYr4{C;A!um%jfS?Crh2-|0{6 z`>=RGjEYBuCQgZQ5f`=y!!(*JCPW^VpG$okd3WM0`sc(eq9m5V0?`w1!ru7TsCWDR z`{F}!Q`{1th)>0lp)h=KXapFBCl!97ko~W~gk*L|9#wW!AuGGj!*?jVJ^Srr_ZYW- z)WFl^DLF3V(vex2lX*EUpZ}jT4(8s^UOwQwugN7@mu<^&!DMI*%rHz&l~kFFysMNntQB_ z!Yre0Dy}F4ho+b$8KPqz<9w(s@(~r8-6g!JQg}0p%xBFNa4`DpL`<9UCT6b92mH1!)0oNCL-z#)C6cUQj?%|L{p%a;Wl_&)(A$7%5lRbt$_c&{++mL z69v*s#ZFa^m-X>Vx!Tg>_`{7Mtts5~UZJF#G2PYMm7=f5eSKbkadr;=%%$h@FFd`V zhK;ebt(Uuj9$&OLD(1%a1X~GSYyqP>L9n5>TWcMCOicjkp9{OONRG8NZz?v9OkAYX zr_Y>;$IqTM&4q)P5V#DJDD^yo*tGcjNT{x9XP7p0=Rfqs zU3JXPRpO{i#1dX&k6G&Nvdjj)k^*16!}O?PMEBu4DdBTAoGHMoG2JzZa!&vN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux-vt b/usr/share/terminfo/l/linux-vt new file mode 100644 index 0000000000000000000000000000000000000000..1acf6d651d7578beaa7ee0d37bf650f8da2ab265 GIT binary patch literal 1674 zcmbtVO-NKx6h8N+rGXYjQBKhmJ<$Anzs^jCqnXW+V^~yLli)O?Gtc>Test8v2x=2V zn+SraMVkmB3ZzBQrj?6m+1f>mXwxDBH@?of^HlN&lpgPV=R4m$@7{CIeY{u4G&l-- zp~Mz=!b}y4%@g_C0V2+DI+aT&Mx2G5nTk5ET|pr-l5>uxv(9KXl!=+)900=`O0uDeO90v&+P|=|We9#L6$gjf)q6tZuf)X;zx(oN=fnbl| zvG7mfIlP2d@DAog{0Tn8JbV>=dFciCj`0s$`-%S7%J^?s1PdxyHLGR&*JR(DkB`x08IUw4CpU-6;9dysD8vRKieIj$#Bzgit6}XH;2k?ZCAS8tp_2z#T+w7U3+K zs6|yMEXPz|@Ek!8g5shP#Vyc7sLFy1NJG z&{RU9Sp>mGg&jke!Qm#Qd^8boxTw!KqaUhK_d#Q0Q&V$uON%TI4~IgdqtR$AW}0JT z@pvMUOr}!lbS5)Cp3UZR`Fx=;F)=w=EKW^LPtRh>G=tYgUG}=LM-6la`Ye9^aI2zA zDn`h~_EfP`RkTAD?a)N)G?j8Rk*|q-h0X>m#y2T~^#|Kh2;Me2Z8FW%u6yt-X>UXQ zwAUiNaWkr6l%!MAj3Uc&Notj36?JVBUEfg0*{Ru@Xdo^T)NO|U1%}`Dop4AnfJ*#B a?7)~>pwWAM1G)y`svCMVh=*_GRrm|gcQkPT literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux2.2 b/usr/share/terminfo/l/linux2.2 new file mode 100644 index 0000000000000000000000000000000000000000..4b7d785aba7db1fb6ac7f2e8d1a723d0130b6fcb GIT binary patch literal 1730 zcmbuAT}TvB6oAjYD`h{1Mn$;^77b)SI&){nU0G{2GdF+20!dxOVl{Vd{mGwN)7=OH zA$qVEArcB9h(NF`sD~)i>LntghkhRGp@#^{hkA&nbMEZAWEx4AJ?DJq+%xCiIrp-Y z$+92|(jm(BJHny%-iXK*1C<2XNV$>hKu3FbN4Ob);SWWQIK*AXEGrePc}FS~!D^fX z;E)1qArm%%0y!8lpcKlW0uCeBK{M(Qv_T(4ku2*h48jFT7hzc1%WxI0!3~&zd(xkT zC-4kjN=_{O0Y0MtDIWWbc4l_|8~gyyma>&BgRNs5*=Dwtmg32|vucc!bCJIewlG@nJr~NB^^8qVimOeUWv?_+5UVPw}Vx z1%I{3XXmcHSYL72PvkiCIQ_lCE=P%DDWrkZuY{CNO=t;$+NCv1*hm6isVGZIY5Ch>RdA7m-v3 zk=$b~f~JzIdTeWi(GfCD$ULtZ+)^l1HE%aAZ_;cLN+p~@t;bO9L6O@L8o9PlTlDWG zRfL}6n-qGn?OAu@K<2g|T@ z8EjAAk+E}q?gsVUk(8r1k9}|X5*!abZ+&z8LHKRk!}iA=vCioe(_PcujXhJnw@*%< zdK8)Hn>qcp|NX%0=t%4*7O6+^y66nOE;;}shX1VCL)m_T9bWjY2AA*~vt-|0x`+7vq0bG6C2?{{pc%=TX$~b5>11pIfZ-2KK1C?Hj1>wsP}uRQflfGxeE=M) z;1D#zQBa^2BL?(9FZ97hxCYnZmZUpyU$$$o4v*joJck$3e+6$~ z6W&QKE&UNbq5ruU`-1J)a{o8@4nN>0zC<;k3CG1mXg%VC-K%YVh*n{V>=|iKo znABTAD?b3W7z&{Ig&9NDLQrFQ5%km$ayMF6CFY^n5ZVCLqndFPjYNqx?2cT;_7M%AaOil0*FeQw1^C=d+`^-9!0G_9zKC@gd#YKkvT7R7luVSFsX5jaJbJ;?lf@4okDMy49g%pnyekgP${W=3ape$?@2bbcZ# zh@gmw+_)(yp-t4H7SY00(4u{d7SX0fn^tXt>74uKhe?a1%bf3g=jWb#@41(G_3Q{7 zfZdQ`-L^=^F76-8qX=0;7! zlh>BD8M`rlmJPBIHjZqHC0H8u&EIC-&D#&yDtpYHuyyu~F`mm+pp-^s(W*w)C#^v~ zEVZu~E976^JWK%4e0V2_E5dJjt{C2EWbk@rQivKP#4Mm$S#)th>%%^4I(= z-{9~0hi%R+UwQl1A)7U)(bk%0f3M-RowV(M8nFA6uri}50k<+El)xN1^hpG--FFUE z9}4MwQg4Y``Ch0-mlwq&%m||9hbqeop{4qfccXNbd@k}0p$tGRq8UZd2n2xa({FpNd^jp7L^{_j3oU9LZzgKsz`zj^4mwx zgWW|Q>q-J(cT#_;qUzRE#Y3s{Zl~fVDv%l$)k|IjscCslq{5;Oq?+Q6(!363zE%m= zDQ>WPVJFt^h34j#me$s`HdP%P8y}yTn4AoS!r`f@>FG!$8jZ!`@tK*~*}1tyVt#&M zVR3P3DVbbeURg<{(&lm yRn?5ruBZb2`XBtpmVT^Gjo0P%;1WKg$Taz0H8n~f9{SF3sLV4PbdA8U3w{9}ygQ)) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/linux3.0 b/usr/share/terminfo/l/linux3.0 new file mode 100644 index 0000000000000000000000000000000000000000..8d329d1514c22caed206f0b4f084e35f4a6beb10 GIT binary patch literal 1746 zcmbtVOKVd>6h1T2S{3U9L}^fbT~Pb*-nsWCEh)xVZLzJ2DAoq0HHl4{M_=j7HWd*; z7b=L-g>DqA;6~iI(S@$Wg+IWB3vuJZjVm`o{Lb8@p|*;}q31i_dCZxaGn3wG;ioOM zj`HG=FP+SejNA3*R6CPxVB1php=>-oOeF9J(W6L;rVxcfB^4GOm2`kMAVwr<8EvF$ z+D-=Tfybd{YN0kd3x1B`z$9g8g7RR6!d1FPH#ECNceS3OhxCYM={dd7_Dgz2Z|R-p zrKLa8C)l5hzAw;U=i=Y!JN=-aI7Ee5E!K-oVvE=*c4O~#5K9C^2%1N@s6A^T9!C7A zI3YSk4_KcV7E{pIf17o?Xx|ev;<0!lo{DEe$U*zn`&7W1a;xZ)%<(SONYx1VNBk#)x|5>qIdp>)##JaQcg?uSr%Qy19{IJBi z^H*NFwbkd%+2N}#vcJ~|_?mnxXbt%zM$#Ctj9ADRP)2MB4!al7>W>_QYJ;#YCbg8Q zm)}aO;A(}0m74}yQL6N;1S~TOei(AF>}z1(Nk|7(0o@G1Vo(fD0uW@T!C|KN*GX$Z zGYn1|pmbd6gs_{~)uc>w-+rv=a`XVCovr}wX}}?f-h;B(^laW&HIx}MhsRUQq1T1F_t^BRp@l@VWSgvj4YD^a_J zYHDh0>+0(3O|!eZr{~h8-rhtane6LJrPAq4CY$Z=9~c-M92y!P&gDi%Mn}iS#>Xcn zE?=IUoSMq#r_m3t6Atp_g@d?&Jtmkljen`=qrL(K3tab3={73eYo&W_>wB>k=h!;m z*7+7cK(qtTGlu3w0$D&fz)y(9ZVWk%cp}`m^C!7GS6opR|M8zkt3kM`p-Dv!wi-KBzKx#!df+B)x5=rbdnVK|J5f|bcxb$J; z$uy*KA!y(`_nbR(??4s}3oDq$C%zzq*nVv(B|Xuh6;2e!5rZ4VO4`q&-j%k~6HzEe zevo*pfPpbA6{Axr2Cgs*fvo(1Da`0Rj~bS+j5^aA)~Q>hfu=s)(^`&cbBs2-=eR7+ zu5nx5vbFOeSykE1vd4=5xowit;?7G^-~KQ&nf|YP|7H6J7Err6C2e8`rm{@8X{t@r zJz?X3 z1VPuXUAy*kg0MHUYiV?8*!RBoz4^Y6nVpc5#xfRhg`i@!j;p=8(>}}CwpG`*m}*@| z#uZa@`khXz(~xPIRoX$>2#2+LyKhx{t!@WUdqMQAn{p<&P z@M9Js%ws{$TS5X!s*KFCNQT*uQVIHfwr#mL^U z{?hZVy?BFL+~FP%%pdXeM~B<_?CreZmFn$R-Mg26Fn;pC`;@_8k_aeMn1Nc+Te@xN zwS;b)dd;B`X^`@2#oS~p5F(CMXZqB{D>;O)><$u}ka` z>jcLX#hA2VsVNzoY7#jEITN`Ea#4EnoE+c^cDX{FKyI-=N9= z1i{tS)zzOP2x7hOHPJ>~eB_*a?zta%AsNBIG8S=(3Bhwu4m-`zU+MPBLEtr|O){je z+i|#JCCP0`il$0OZST}?Nq*aI0s?<9ddNy1ZU}v(F^2&^<53)D|K}9V17k>G78%TA zf$v*F9tBcmo>hp~xr+DK&`9Ka*vA2P?8tZEB|75CV8jh0-N6~D9?nNq8yQuS9SWp97KcN KWD8;yQ}_Z|bWv6S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/liswb b/usr/share/terminfo/l/liswb new file mode 100644 index 0000000000000000000000000000000000000000..058fb064fb577e5fe4c3b3840787bf500afb444e GIT binary patch literal 563 zcmb1QG-6O=U}l)iu$Unyv$#B|#<8FvCsn~Gvp7*9IX|yBAIM3`EH21NtW?k_&&VuE zRmjg%NXkh}&emjLU}S(`Ace#L^WX$y1Oo?y0>gheU|?WkU<32H7^E5G8I&0`fIKY* zeIRKJ#O4gvU|D-G3D*W@xH5PGMg15;pmGrm@o-gXU{(P`36QRUi~j##g~UcR4Z*8} zs%e7KZA9on=q8obg~Rk71|A0KXm23)0%Fxn)dEA+6l>K2Bh?fSpnww)gJ{zXV2A># z93bHg#Ew850K~pPY-pGZBth5&L>L;txCYkdASQ&egD^n0IRLQ_*gTN&EYm$pnx%e;s1XpAZB1- z0+OhJ1w#ZT&xTcolYtK`E)10wXOP9J4rU6iXk{{NRfFr%0JF3h*co^kxEQ3p8Kk2P abAf~jhyYK2T%bA11}el;$)EaVE_Qq CzYDAY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/lpr b/usr/share/terminfo/l/lpr new file mode 100644 index 0000000000000000000000000000000000000000..279e1e87833ce6b0c7dec73c458c4cd758b78896 GIT binary patch literal 354 zcmb1Qlw?q2U}k7y;9W0v50c8-_TlDndLC3iT5*pE~kf4D1ZN3|tHxz%b=v000OW1v&r# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/luna b/usr/share/terminfo/l/luna new file mode 100644 index 0000000000000000000000000000000000000000..c9a18a80e5849ac23dbbc22df44f922bb30835bc GIT binary patch literal 396 zcmb1QRAEqKU}k7y&|%0a%}cBS5oQ+IH9nz!j%F6#3Qn0Nxrqe|$@zK3`8lZ!42%pI z07Hl|g5m#vJs@UaU;>i=|FbY~Gw_31!VDn$Kw={SXfd!e@G?k8dq_un0V!`F2GOdS Wss)CsDb}h5Mye?u3|t@;KoS5<{R$TV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/l/luna68k b/usr/share/terminfo/l/luna68k new file mode 100644 index 0000000000000000000000000000000000000000..c9a18a80e5849ac23dbbc22df44f922bb30835bc GIT binary patch literal 396 zcmb1QRAEqKU}k7y&|%0a%}cBS5oQ+IH9nz!j%F6#3Qn0Nxrqe|$@zK3`8lZ!42%pI z07Hl|g5m#vJs@UaU;>i=|FbY~Gw_31!VDn$Kw={SXfd!e@G?k8dq_un0V!`F2GOdS Wss)CsDb}h5Mye?u3|t@;KoS5<{R$TV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/m2-nam b/usr/share/terminfo/m/m2-nam new file mode 100644 index 0000000000000000000000000000000000000000..b9dc52b2c25425f05b59c17161fce06a5fb9dedd GIT binary patch literal 1201 zcmeHGO=}ZT6g^K0tzy+pK{}#Ang)exGp44t)fyujG$BMjfj82oeNhA;zHcGaN)v*3l}b2xNsqi=e|s|L4Se+=brPdtIpOA=HK*cMJj?F!g!xD5{HaFXEm)xomTeWPPAJpe9x_8twP=MrD`H!bid(8S zoV-`5w=Bq`euqG7cSBGM>|!T;AB69xwAzFL@(6Yzq}?%0;Ruc*$<=9Oa1NKL7I8&q zOIU)VmG3t+cd&+as_VF^*SB#G5Am4#37+B^UTF6vUgIs*JK{Y);G=eZ{}Vpr3%=qT zzT*devhe{mq_(OZYDA4H-`}nFs&TSB`vdN-{*DKjkE$7!)cexvqFSUX2UWFzJ+-dY z4aQsQj=CH8_tk?y^`HFcpKkx2|EuTfl^Vn_j9j=9u0_Me*>KGa7aKHEM(zyhEFs*N zPtiC*2+u{A7*A?tGbRZ$Hak5j$po=LWU!5K%3+8~h)GRclnyZm+o^R%&M>uW(jLSX z7&FmpM#0F<$846HEaif1?3?7?`9o5X#@Jl^;4%Ivtd@SeZ`EyPYcR5PLYSjvn}kQS zh&It7R*9>uldg4lF*%lFWnJPtwG5WPF#E~rtCBZpk?9G!678gWLas$SQmlpCNJUSu zaU7Xs8b(~E&0sV398VyhFO|yW<>i$X+jbn+tyb&xX4CUpt#-T9S!KiWQTWA*(%oSf FzX0moT(JNE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mac b/usr/share/terminfo/m/mac new file mode 100644 index 0000000000000000000000000000000000000000..c2d5d2769afe2d2ea6140ab68a94e42bf71457a6 GIT binary patch literal 629 zcmb1Q)MQX&P+^$Nu$mz^F}VhaGxJLFi!*9`VJwC6%#sWRAU7nnC^s`NF^7SH5r}{o z0^kgo08BW7frCMT;Xj2y4#@-t1||kJFrSM-nn9jHnLz`{(_+vElEy%6&fox+bz%62 zVXGH|KTs}&AquSG|Nl6KBq;0u|1>Zwm!XWIilG56`u~3u5*x!ns6ZQ3O&65zBSH@@ zvj~e%!eROp1|A0KXm23)0%Fxn)dEA+6l>K2Bh?fSpnww)gJ{zXV4MJ{93bHg#Ew85 zpkiaLZwF-f0_l9WW6Qq^4DZSW2s1lxopMR|;a9q$HY2qs>Fag^0Lt;X?fj zKQi7)Vwx@l#bM65_nf(p#VnONSc8Oje1dEGW^_;Nn>XBcHHTEo^Bj})G~IUn(b!^< z?OQ_jvl3>zOsQ3wK5_!?GCnd)phTCDo;>+BGW!X0V2J;DmJ1Vr8O$bn0cEUU73-un zP$8}nR5X*9NSb5`?`#n)f-OuGM? zz5Ou#1B)o19TK_(*_J&;Huhw%DjOX#_6Z{HSo9|p9HIk4i*O><)k=es9zjt!u_|a= wkg_GXfCeeCswvfXlddDA{bH_I(&=W%IV>CTXw?%-PU{U8j3XncEtFGl@y2><{9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mach b/usr/share/terminfo/m/mach new file mode 100644 index 0000000000000000000000000000000000000000..32c3b53175f46ebfd845f432091fdf024a842c04 GIT binary patch literal 635 zcmaKqzb^w}9LAqRLWxLh+|o!+42HI;NFxzdkqbTA`ccir&|C$fu1N<2iNRnn7z_r3 zLBwD%Sgls8)hc4}7rdVL>-r{!dXvv{&-?wA_ujn2)*xcvm-uLe8E9wi=x2hDJQ z3$P%|LIFJ(f>J;SRjDp?qfgub;uxVDmE9P1TwFp_sWdW?(|t-!BL`O^UKB5({HH=! zZ8B1gq5;3#reY5vnmEJ}PH>7doZ|wQxMKbqH@L+;9-`Vu)1xQ0TTghFx);3Sjqd&5 zt`C#_G_Kv`_VF*?UO(&rw!cUgh_mZ7l1^>PX{4N*i(ZCY-ns4PNS1hHqE1O_nKY8t zE@31k`#dkl_A_J__Huz#NRgDt3Rxvp>Vb-W zssWh|G7d=h<5LH^2Jst7bbl_dj@h-B9vSGK*w^ zXtq`jYvzb2E+W!be+UMsnx$?P~2mVg4e6r^B<1KKy26%pn@i?nU9pi`V3F7(j#%AK3q zC(a|PX#s@94N*r(3<+c;$%$&(0+tN-`PdSZijmg%xnizZ$0oM1i#_b)0EaljF-~yG z{tV~1z$LDXwb$mJ&vU=J8{EpeJKW=e?(xT6PiFgUy02$8OJ07lx7peMtAG8&U!q;H zD;9LYS%5P?NhXL|RvTWm7*-oTwHQMOqZr=_XMTi4NrDViDPCQCx(wk|on*hRl*2nd90RiI7n;M%d@so72d!2?k<#^1F$D7=52q j`uJj^{7yFB@acJfFdUFU{Zi>82MlNYB`9bWmrUag-g?#g literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mach-gnu b/usr/share/terminfo/m/mach-gnu new file mode 100644 index 0000000000000000000000000000000000000000..4ac04f77cbdda13969362afd956448b7b634a043 GIT binary patch literal 1073 zcmd6nKTH%s6vn>+6F{RRbg+$yY;~TwUGBIuYXn5)0v!Jl$rVcvN1%=UQ zVPQdng#`r#2?Qu8h@wYfK|z5LwKKFPU?COjH?w!gg@lBXO}=k`^WK{`vzy&15(UUZ zHqMA|A{y!Jb@%iSj#SmPo(*vT2&hY-0l6rIZ39_!+dhFDoI*ai2rjsJH&ncY?x!r2 zsj+QWBB&@tZ=%|83lVga22|X(;}}ko>@2S_j5G2g8GXt7n{>rnyu$?E;{&EJjTy{g z5ldKReg&)eiZ!e!Yd6w!oUR9bllfoR!XNzOljey6p^0MQ76Rulb z&+M{xgqqCyeOY}KWAJKHMlxR5UCkAvY%KzDQ`TQmK?F&PmpB=8qT=#CzcJFN8xx1V9 zKHmQk{nWoYFd9odNIXnDx)c90xG=Qx`16zb;lEFJp8X#A{(N$DkNe|$3mY}b13>VE KkVipXBmM&nAT;U# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mach-gnu-color b/usr/share/terminfo/m/mach-gnu-color new file mode 100644 index 0000000000000000000000000000000000000000..b4a03898d01de3f3e4ce7823fe7abae8d041e4f5 GIT binary patch literal 1339 zcmd6nJxo(k7>3`YCLqQ*I7uCvm^;;y_O|sxt`RCKRcZMX(bT9-5n63~D-=*fbZ{^l z9UL5tad2>OF#g5C!5^p&4h#(bU`$L*99)b)1C!VHoZA*iBr(Lno4nt7&ij4mJLjIJ zw^sPD5^InaKSef?OnLirL*As7u?EIkV%_d2EqBt&4O*Ea?vZpM>_0r!Xrd1+Q`r@$!Yb}&+qLk(%h9j=0HZ;fXjF6CZbn2=l(CcQ!2u-DN3xV} z+Xal4sJ!i2oTGETZ#eqy*wf5R z_F3+QHJ&dXFAfw34;3bd9u7YrnK<#_C TyS(*aiJXs}z;gB3i*?{PF1-z+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/macintosh b/usr/share/terminfo/m/macintosh new file mode 100644 index 0000000000000000000000000000000000000000..c2d5d2769afe2d2ea6140ab68a94e42bf71457a6 GIT binary patch literal 629 zcmb1Q)MQX&P+^$Nu$mz^F}VhaGxJLFi!*9`VJwC6%#sWRAU7nnC^s`NF^7SH5r}{o z0^kgo08BW7frCMT;Xj2y4#@-t1||kJFrSM-nn9jHnLz`{(_+vElEy%6&fox+bz%62 zVXGH|KTs}&AquSG|Nl6KBq;0u|1>Zwm!XWIilG56`u~3u5*x!ns6ZQ3O&65zBSH@@ zvj~e%!eROp1|A0KXm23)0%Fxn)dEA+6l>K2Bh?fSpnww)gJ{zXV4MJ{93bHg#Ew85 zpkiaLZwF-f0_l9WW6Qq^4DZSW2s1lxopMR|;a9q$HY2qs>Fag^0Lt;X?fj zKQi7)Vwx@l#bM65_nf(p#VnONSc8Oje1dEGW^_;Nn>XBcHHTEo^Bj})G~IUn(b!^< z?OQ_jvl3>zOsQ3wK5_!?GCnd)phTCDo;>+BGW!X0V2J;DmJ1Vr8O$bn0cEUU73-un zP$8}nR5X*9NSb5`?`#n)f-OuGM? zz5Ou#1B)o19TK_(*_J&;Huhw%DjOX#_6Z{HSo9|p9HIk4i*O><)k=es9zjt!u_|a= wkg_GXfCeeCswvfXlddDA{bH_I(&=W%IV>CTXw?%-PU{U8j3XncEtFGl@y2><{9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mai b/usr/share/terminfo/m/mai new file mode 100644 index 0000000000000000000000000000000000000000..d95df02a5b1067a078ef2163eb8ff38f39339a7d GIT binary patch literal 606 zcmaiwze_?<6vw~MqAZA}pnR2YdDIfmXHP7oLXA+!EbYhemNW%lsEJxZx%a2^XEa1Z zLqkJDLqkJDLqkJD5Zu1^^%AO~3!ig7_ndPtmm5%~FpM6Y!LQT`PN!ICIeS(o6HjXi zsoKiHVN-MJT6`^^)@lc(GN9mlDO@@DF$N(3A9|TbFp2=P5aXDEK{LrL<{4vHKoTjp zE5s@`Jll4&ja`&o+jnCfEgX9jLY&gh$pyLWR)x6g`Zetax46SS9`J~#Zs*yv7cakd zJMx`>*V{k+pC{fq{Q&`=@>TCs`Y{C6)*ZcJ>ZO?82ZL&j_Ns`1dq|)c0 LMj^%C!~i}47HYY*CG8jHRk^)C6~_f6Nw<(*xr$scyy z{r~w4Vl|kN=7dqXmswxNuQD6Rc*?@(pNZ8wF(v}ygBb2eqZC5@n3RxA2$@tQ)JCW? RtA*KJ`ox6b8_O~O`wE*G3PAt> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/masscomp1 b/usr/share/terminfo/m/masscomp1 new file mode 100644 index 0000000000000000000000000000000000000000..5e303b902d2122e29baf3fc7925adcaa61807af2 GIT binary patch literal 482 zcmb7AO>4q17=FqaYzO~M{p{{ZXiJVR z@O~B2+U8~LR@6<~R@K(>_M5hk>Y1e0 z^nx9G|9?J*SPwo)Q$nlU$=s9Co6H9?ny~QsXJY+9jEE&MCx!{>C4*2$ol=qx0h0=a V`V#7g)lBa$d}2)Sjm3!n{RiE)3giF) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/masscomp2 b/usr/share/terminfo/m/masscomp2 new file mode 100644 index 0000000000000000000000000000000000000000..5e99cbb00f89ea26a37445fff1808c4f355827b7 GIT binary patch literal 482 zcmb7A&uhXk7=2|7=3z%K21XfX$ndZgVTdra8)T?M&l85VEmLTtSxmlnYRLv02)|n55S(BHQ`=EX{ZCS1@Z@+2#sJgSQ zH2K4hz5hR-L9DzfX+~(3JDEMoXe2XFMsF;9{+U?45EEiayc2^h=_!R!N1YOq4gr%2 Wh1v*pW;NHl3!iu;_{L(w|NaGyqzbP9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mdl110 b/usr/share/terminfo/m/mdl110 new file mode 100644 index 0000000000000000000000000000000000000000..b1763bf71c205413c0b9974379607895228cb659 GIT binary patch literal 476 zcmb1QlxI+5U}k7%C}T*jOfobysL4&q0a4DCNvTD7sTB%9zAjLJfq{{MFkoZ|VEF%E z0*DzHn1JN}|11pL45DC`EQ2Y7Ign)u=2-(tTOhV)@C5TgYSBS3noJlP|Ns9;hGYye zbW;X~p9^UzA;3l30?NpQligT9liamzblFnp>Ka WSdw4Fz`zLB1S1%O8UFvbVE_Pcjuj{X literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/memhp b/usr/share/terminfo/m/memhp new file mode 100644 index 0000000000000000000000000000000000000000..6492b22ef9b73225e0b4d9e7b13bef1234ca0151 GIT binary patch literal 1080 zcmZ`%TWAwO6g^YXY9XzNqI7iP^UAK&Ueqv_Ko5@+;8KdBhC%v}4kOyO6SY0KLCE+-G zXgkic9b1Upgv}IHq6#~)8@1&75J5fJCPWE)a1w)LhcQCvIHNEy>3TWXD3G^=3%E%3 z5?0*&6cJB7u8g$Q^K!zNr;2@Nt>3?Awka4J5eJ|8)3?IR$;Qk7i*+O3AhbuF4ZSxV@{{3 zwy4$wp9QzT^WZl49QZtV0esvYmjLesr}+cmgOE!5!AXIXl@Gb7w8KL;^J_u(+ERpe z`0oo8v+fm(Sy_+?72jwoq|3LN7J5QjlHkuM8&m2=)R-Jv8c$kCqhA+`p=FWOM5{0( z!WN6lvKZ4uP^O|XsR%PHmV{YPK(xAsR?AFe4MPX(if0&56;b+)N1Ky#ow-7}Qv>uo=^Kk4g> xruL@y^(zDFU}PwKx_LNw=Aa&*JU-PwoyvC29GyL6*Ui<>Hx?Ss9|8SU{{Xo;U^D;# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mgr b/usr/share/terminfo/m/mgr new file mode 100644 index 0000000000000000000000000000000000000000..ad4187b7cd6200ca956c8fdcb057139afbe2a69f GIT binary patch literal 603 zcmah@O-lk%6g@^zNp7MDe4AM~V6`YsiByEKq&BuNh)4*`8Pk{#8ONlE7A=B)K#R8h zfc`*4s}?Q#O|LWKBoi)taPB?#-t*4A$yfm^0ABC|>(afe7^c~BTtlfH)RnaD*vjde zGVI#AGgSIFeb2BI&v31--82=$8kkM5>)1ey7JOj}xs<>RW+CMgma)n#WfE!T4Qw)I zkYn6I0cB`phlG?zLG+pb>Nvq!&^ZtL7ij-eNO=W|9WTEB zCp%|F2n$0i>wNvr%Kyph)gj{N!BI{kz?M9K!a!oTADN}#6H124GoESctkZ-%F`@Z Z>Km{B6&nnlvd=2-^Dx`~i;V&YLHGAT|!%bI+V}@7%d9svS)Ljxns(mdjnM zE2XWSz47I8a(kr|u5U9{ipeoilW$+|F09X&LqM^E$EAoH15}|J#x$T2&CJHM;2Co# zx``gL#9ll{9tE;dhA|Tsg~^%3G-jome_y#z<<$cupi>)ODjY~{_^GghhtP}AL!$CdmEJh?5_EqNHPA)q zGV~U7nrs9*Y#Yqvp}hg0C4Py_MV2{zDGJc@ww8|snSH_wM(|32Uf_G8MIy%s!LR@) z1YWN=UZ2H&K|gJ|fK>Ge$q7hf0f{=d)JWT4F7LQ}v?IP0E*bJG8g;0(YjCw-G=A?T V$qYj#oykupPZ&&ci&jCKxo9h4o literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mgr-sun b/usr/share/terminfo/m/mgr-sun new file mode 100644 index 0000000000000000000000000000000000000000..370a79e75071b3e49b94e2874b0a77331af50bcf GIT binary patch literal 900 zcmZ`#Jxg3c6g?9HMv0B&i=Ac*9}z>6oq78-FD}CRL4;rmg+Q_pqIq#w#iy*hiee)+ zVq=#sT{^pT>FiRZOQ(<`kROmg5GLo%Odh*S9Ju$~d(NFZ_fA0sxDDVECt{=Ce7N0C z59aI5;_hmiZ0-_TjpAZEEv~=cTi#r1CV*fyj|UeU16;#(7&C-hxJxvqfDz&YJf>GD z(~sjRCQ)THM>FPy^;wji1-!&-%e?XYGFG}Oj9J45nN|n8lgIlw#4%3s0Uz-RXZVaS zIJfFo`fvD-3t#&qzvEu+^*^cq!f*ONw0_a6|1ZCjSKYHwfxam2i$@|7m0WW-r^T}# zCgY!zTM)14-->#!r+L)}7;vlvVmK-Pt+JdrOW^6;x*cM!&R>k0e-*0xf5^+wuPd4-DzognBWCKzdK)>CH sTh_Geua%oi`GMRdI(snMrY*8m#eQffMh;3ItfpdnU&U_O(Ek9lzlo2djQ{`u literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mgt b/usr/share/terminfo/m/mgt new file mode 100644 index 0000000000000000000000000000000000000000..5244b553fc5dbfb952a976d8b52e14d0091e279b GIT binary patch literal 1980 zcmcgtO^g&(5UzSn1Xo}a5)zjV1QJ@51fBkwzl_lQh)i(TS#To@9nFr+?#?jN!|d$r z&MrGkyn67$#e;g#7~@5aF<>|l!U+=41WkyXJb97C#FH^W+pk{tj3#n10Vex>^;LDf zSMR-gy}gA;=ouQO5Batc&USiZ3yn@~`;k{mV~4j-Ot-^Yv)mwJ{U-)Ovk37L)?%F2 z(bE(?;J1$UBV!Fcfs7H_hKjrCd1U74D2>uMoq#?`Q{W0vr3N^PTGXa4^|XGMF2KG= zAJ9kiDSb&_(IxoT=@xxYKkAGq`X#aVVTt2qDA=`$j-sb{m^bqXZ{;1li}$e0dG`4b zo)>{pKE|&nxu^I|o*9gLz?Kkda+lxcclZLo&!6z;e2K3nBX005z72hc@9M}s{+0jW z`}`NPnov=60*HSn)f=j;rd3Tx!a@9F^_kXRXuddzN6}?<Sx5en@qi)?Ayfo>C*8oSs6`d#5O4q( z2gYb4I30p)A>U4UxoT{)lI#iPYrmy64F(9Ry^FjxF9X;5hIaB6b>)z|LyUY0e8f zDR8MMO2kVL8Hr1J3A--Iu6;YMcIZ-Vp z`a&wz08c0lIt}}u?dA|n`d1+{D;<*sq%2=%Yh|pS)hXCkL3{_&izObp`cXFaJv>Us zG7Fir3Zab1Tb+&8^srSRvq(>3`(0oeSODgLd77FkmuF^XXKS@HXX^DvBMh6(vu9ha zxw&?Ge!kOLSXf-_c9)ixm(QJBS?TpwSI^6V`ub}4S@iJPgXVK7%yk%e8Ibim(!ap* zH0xeDx(|--m7{y*N>>9{8Wp%Y-_`lH+-sZ(u6+gl4l+%UZxUh?)oY{)2y-ebH+OrccqdhnFDmW#~;ysjEWY?~~0r8yj-a_GgLL#NVhC}!c t%GY!aZuojc416Dl@b+!Op)CO&U=e83fk~R2pnBP%`dc>OQvI|;e*;M;k_rF- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mgterm b/usr/share/terminfo/m/mgterm new file mode 100644 index 0000000000000000000000000000000000000000..3902af02cf98be788dfff897b457816e331f9fd8 GIT binary patch literal 1138 zcmchVKWI}?6vn>;($+yLZuKpp_&~^D(^M)Hq4r-=eW|t9w&a1DCc!>vX!>X%mQn`? z1qVS92L}fShYlSa92^`R96EGxaBy&Nb#?9YJ0~wmqXnUZf!{sfIrrS}-22E`Ng|0} z49GL7+}kLJm91RHyFdmLxwYkBwVWvz!bB!4R9Avx!V8weLU+LVo2vn;dd z!5KtH{CY6Tt`q2DM-=rTfpa)dmBs|JjGmpE;W|eakheUFZlh>wCC;m;QEifkaph4Q z+e4q=DQnN;`U}RFt)5qSjW>9U9qi&A-s1y4;uAh|e~;|r3%_OY?UdQmU&qeKi0H$E#Fi{Xb2r z9dpiR>)f_H7RS${8>is-Zs1l^ZfV4=4!Wg~g{$ofmhCa4u=F@c~P4hM6_) bcalnPkS9}Qk?4z4`c>;BZC3jDp;-L}3j1cw literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/microb b/usr/share/terminfo/m/microb new file mode 100644 index 0000000000000000000000000000000000000000..13025af0120ebc51dc4dac85eb37aa93ae67bd18 GIT binary patch literal 475 zcmbV|%}WC@5XFD1f^DI9@m2}wzL+}3CF`KUS zQYbhu@4d{tNy2PKTWqt+HwCY0l8>LJGqQGiU7q8PwQ*td)D{r2JR%0v*uXhh@#x$d z>okID`nSr;PQYD{`$3hp#c{xKaGX@WQ`$==oa@dVJ+J!QaLXO{Jn+bnBy^uEPg?Oy z#fyLOzv_5?=frQIiMptduF$2)4oxd=nLU%3?C4keE!EIDY7=WTK%=40v%l=13{6mu V3iO8F(FgiOU#N#Js__POegJ?%_Vxe( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/microbee b/usr/share/terminfo/m/microbee new file mode 100644 index 0000000000000000000000000000000000000000..13025af0120ebc51dc4dac85eb37aa93ae67bd18 GIT binary patch literal 475 zcmbV|%}WC@5XFD1f^DI9@m2}wzL+}3CF`KUS zQYbhu@4d{tNy2PKTWqt+HwCY0l8>LJGqQGiU7q8PwQ*td)D{r2JR%0v*uXhh@#x$d z>okID`nSr;PQYD{`$3hp#c{xKaGX@WQ`$==oa@dVJ+J!QaLXO{Jn+bnBy^uEPg?Oy z#fyLOzv_5?=frQIiMptduF$2)4oxd=nLU%3?C4keE!EIDY7=WTK%=40v%l=13{6mu V3iO8F(FgiOU#N#Js__POegJ?%_Vxe( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/microterm b/usr/share/terminfo/m/microterm new file mode 100644 index 0000000000000000000000000000000000000000..b24bd133a271eed05f4a8c8ceab2a9c462bdc8f3 GIT binary patch literal 473 zcmbV^(F*}V5XQel5$BEQ3iohhi^8pYbMY4lNnYvlK#4dcy!gl0?sb=vkZEV;H?!Y- zhGwFQIPSP%?)lDjz4Ue)f3aIX$&?@F@(5`79@-E>6lDT2S%pYIM?Rnm`WQ$W1=Cp8 ziOeZx!K}3Z#OmdG|1!VxJcOE4*v~)Qyz}|AyC8`ybj!7Qvx~CjHtd>&iskYKSCpfz xO&9Lms7@Yjxq3ZfO-5bviM5#AcZdyD_mDveDHLHK5m^FDu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/microterm5 b/usr/share/terminfo/m/microterm5 new file mode 100644 index 0000000000000000000000000000000000000000..66b296fabe0dca9da3239ba8e70b102a05dbba73 GIT binary patch literal 498 zcmbV^&#M7Z6vw}VB0qLSBg|rsTNLJEWg6Mpyq=e2OOpj9Vvw-2;IAI{PNO8Dce>}C z&pG#dzN(_3h#;=GU~D_h<9uqb7S3cfe?U$AXj?$R=TLfZ-Hb>eAgb$z5J$?R0)Fr- z=+B$_q7Fn3G4f`q{ZGuEuGdfVE6U`hUg46Gv^40z8z(B0O-n9cn^={RMGmnV6Z;mip6oVa$RUCZRD|wUX=zoLR>~b> Pz9x!nS2ybxBH0dZ<5&_) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mime b/usr/share/terminfo/m/mime new file mode 100644 index 0000000000000000000000000000000000000000..53f5ccca3611b83b530b61254a044505db7fb361 GIT binary patch literal 493 zcmb1Q)MHR%U}xxL$YsdQ%uTHU5r$yW2ux-|ND!4=lwXosl&b(%!oa}DKo~FvFmNzP zF#HDtP9V*|zy#*80PO_v|NrM^uw<|XvTVUTdm!luW;ugNh)&{3FQ_g*G~J1ZPKU^54wSS&+4)YMcUoec~HUItla1~~?K1`*W)L)B^{lUh}6)nwHIBM`Dz zRaa0~wNouoRX0!vid(Cy2Y~2g1}+9!aL`IIh^yFG7}zlgOA9hELYUl887>AP6&qta N22K?lBRd9B1^`mm6FL9@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mime-3ax b/usr/share/terminfo/m/mime-3ax new file mode 100644 index 0000000000000000000000000000000000000000..94214339be89e602e2d8aedc1bc968d84535de21 GIT binary patch literal 989 zcmb1Q)MZd(U}l)W7|xKJnVV{ySWyF_bzuxch1A^AoWzpMymW=syo|)W-Khi=V2%Hu|7}$Y%LQ2KPP~Q%iS>zd{ zZB+{lRn-;LRkc-;1f$=NP?Q00i^SQp}@-^%gi9hAkQG8T41PJZDdlbs;!!= zT3`f1_NwX%>Z*3CC93KM>OgU8RrLT6oy@?+APWv!DF$&B8w&$F21y2C24QIiMhK4^ WD#^tlq+(-i$H1v#V`Rr5$^ZZ^{0Bt< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mime-hb b/usr/share/terminfo/m/mime-hb new file mode 100644 index 0000000000000000000000000000000000000000..8f9c9f3832c01c9738bb3654db32ce329123cfa1 GIT binary patch literal 476 zcmb1Qlwwe0U}xxLC}7CV%uUtJNUF(5%t=#7D#}dHC{X~388R?1G7tug0Sp`r5)A*r zfD=eFFff66EI{)?{Qv*C87vvBfh=1v&mKrRf?3XB5~358^g@&ILE`&C*?~x6Al(sY zd{h%5yeO!e7$_Y_gdS|>;1f$=NP?Q00i^SQp}@-^%gi9hAkQG8T41PJZDdlbs;!!= zT3`f1_NwX%>Z*3CC93KM>OgU8RrLT6oy@?+APWv!DF$&B8w&$F24MzC21#iKMhK4^ WD#^tlq+(-i$H1v#V`Rr5$^ZZexCb== literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mime1 b/usr/share/terminfo/m/mime1 new file mode 100644 index 0000000000000000000000000000000000000000..53f5ccca3611b83b530b61254a044505db7fb361 GIT binary patch literal 493 zcmb1Q)MHR%U}xxL$YsdQ%uTHU5r$yW2ux-|ND!4=lwXosl&b(%!oa}DKo~FvFmNzP zF#HDtP9V*|zy#*80PO_v|NrM^uw<|XvTVUTdm!luW;ugNh)&{3FQ_g*G~J1ZPKU^54wSS&+4)YMcUoec~HUItla1~~?K1`*W)L)B^{lUh}6)nwHIBM`Dz zRaa0~wNouoRX0!vid(Cy2Y~2g1}+9!aL`IIh^yFG7}zlgOA9hELYUl887>AP6&qta N22K?lBRd9B1^`mm6FL9@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mime2 b/usr/share/terminfo/m/mime2 new file mode 100644 index 0000000000000000000000000000000000000000..53f5ccca3611b83b530b61254a044505db7fb361 GIT binary patch literal 493 zcmb1Q)MHR%U}xxL$YsdQ%uTHU5r$yW2ux-|ND!4=lwXosl&b(%!oa}DKo~FvFmNzP zF#HDtP9V*|zy#*80PO_v|NrM^uw<|XvTVUTdm!luW;ugNh)&{3FQ_g*G~J1ZPKU^54wSS&+4)YMcUoec~HUItla1~~?K1`*W)L)B^{lUh}6)nwHIBM`Dz zRaa0~wNouoRX0!vid(Cy2Y~2g1}+9!aL`IIh^yFG7}zlgOA9hELYUl887>AP6&qta N22K?lBRd9B1^`mm6FL9@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mime2a b/usr/share/terminfo/m/mime2a new file mode 100644 index 0000000000000000000000000000000000000000..77712d83a61dacbe0ccc8acee3655a644468d59e GIT binary patch literal 505 zcma)&OH0F05QV>}-~-f!3$?Sk3uAp_qZNx%s8uMa5b*&nT*P>>MH549UAgyX$J_L# zn3WxvIp@sdET-htS!a?T`b3>bd%^b*cE1b>yB|H>jnuHEHgwc~4|<*WRRyuqaXW}Z z{h}W3s@^7Jh2t~B3TX-xrl#o>)68XTi5>O~t7PiH)FYEMPBJ~%&7)~M7qtG&F1f}Z z>08V0c^dTw_s<2DI~GyfowmidF>ZFCU;`m61&EIyv7roj76LXlRU?XHcw)d z=BXC;t*gQg5MX`;_b7@jPGEs+Q7mB@jf!pH07uNiN-3_#oIUg_U3%-d@SOp!e$9rs zLwS7~BhMc2_|q#V`j7JF88F^6_GtgHGjn3De1YSauY+zuL(t9knF{wJ(7DXIvMt(j sUuv1Dn(`mDu!1$vHRuwXwS55UgHF%{oq~Fx4gx=8h}-~-f!3$?Sk3uAp_qZNx%s8uMa5b*&nT*P>>MH549UAgyX$J_L# zn3WxvIp@sdET-htS!a?T`b3>bd%^b*cE1b>yB|H>jnuHEHgwc~4|<*WRRyuqaXW}Z z{h}W3s@^7Jh2t~B3TX-xrl#o>)68XTi5>O~t7PiH)FYEMPBJ~%&7)~M7qtG&F1f}Z z>08V0c^dTw_s<2DI~GyfowmidF>ZoD*z q$T7$>h^Q7AswS%z7^x;R$TDy+NH9nNLq?oIm_ZB}Zro52P6hzzRrwYG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mime340 b/usr/share/terminfo/m/mime340 new file mode 100644 index 0000000000000000000000000000000000000000..3b7bcbbdbae8dd25cea1f72961f883744847dd31 GIT binary patch literal 422 zcmb1Q6lY*yU}k7%$YaROH8wG*$<547h0zK?1_MI?!~g#hK>Ytd1DIrD;9?K~vt$@d z!L&J;v;>mYKy1t40p^2rkOG3Cy25~TJdz2CNNil@C8McHMdPFEOD7h^=aYp{lxqx~jHnvTA`5j0p@j4h9|uZU$*( juoke|FcljUOFc7?HXR1(P#_P)<^ZeZX5i%lGB_Ck-5dle literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mime3a b/usr/share/terminfo/m/mime3a new file mode 100644 index 0000000000000000000000000000000000000000..83cea45803a0854523682494c2bf50ddcfc7882a GIT binary patch literal 945 zcmb1Qlwwe0U}l)WXwQ(FnVV{ySOcOA6;g9ca}rB3^U@WJ6B&pCi~$V)|4RTd0|OI~ z{QsW?OoCY43@Sid{{Pnii)aB!9k?7wo;pB}2r~_!YK)+?2@!gTah(~GITlE4V)Txx z83`d^1x^(<4D1ZN3{omKhWd64(zdDvhN|ic>Z;nR$*KiLFeU>RgB$|~0}lf?5OOd` PFi0`*0mZl&xCIyh6etlP literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mime3ax b/usr/share/terminfo/m/mime3ax new file mode 100644 index 0000000000000000000000000000000000000000..94214339be89e602e2d8aedc1bc968d84535de21 GIT binary patch literal 989 zcmb1Q)MZd(U}l)W7|xKJnVV{ySWyF_bzuxch1A^AoWzpMymW=syo|)W-Khi=V2%Hu|7}$Y%LQ2KPP~Q%iS>zd{ zZB+{lRn-;LRkc-1ZPKU^54wSS&+4)YMcUoec~HUItla1~~?K1`*W)L)B^{lUh}6)nwHIBM`Dz zRaa0~wNouoRX0!vid(Cy2Y~2g1}+9!aL`IIh^yFG7}zlgOA9hELYUl887>AP6&qta N22K?lBRd9B1^`mm6FL9@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mimeii b/usr/share/terminfo/m/mimeii new file mode 100644 index 0000000000000000000000000000000000000000..53f5ccca3611b83b530b61254a044505db7fb361 GIT binary patch literal 493 zcmb1Q)MHR%U}xxL$YsdQ%uTHU5r$yW2ux-|ND!4=lwXosl&b(%!oa}DKo~FvFmNzP zF#HDtP9V*|zy#*80PO_v|NrM^uw<|XvTVUTdm!luW;ugNh)&{3FQ_g*G~J1ZPKU^54wSS&+4)YMcUoec~HUItla1~~?K1`*W)L)B^{lUh}6)nwHIBM`Dz zRaa0~wNouoRX0!vid(Cy2Y~2g1}+9!aL`IIh^yFG7}zlgOA9hELYUl887>AP6&qta N22K?lBRd9B1^`mm6FL9@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minitel b/usr/share/terminfo/m/minitel new file mode 100644 index 0000000000000000000000000000000000000000..b9dc52b2c25425f05b59c17161fce06a5fb9dedd GIT binary patch literal 1201 zcmeHGO=}ZT6g^K0tzy+pK{}#Ang)exGp44t)fyujG$BMjfj82oeNhA;zHcGaN)v*3l}b2xNsqi=e|s|L4Se+=brPdtIpOA=HK*cMJj?F!g!xD5{HaFXEm)xomTeWPPAJpe9x_8twP=MrD`H!bid(8S zoV-`5w=Bq`euqG7cSBGM>|!T;AB69xwAzFL@(6Yzq}?%0;Ruc*$<=9Oa1NKL7I8&q zOIU)VmG3t+cd&+as_VF^*SB#G5Am4#37+B^UTF6vUgIs*JK{Y);G=eZ{}Vpr3%=qT zzT*devhe{mq_(OZYDA4H-`}nFs&TSB`vdN-{*DKjkE$7!)cexvqFSUX2UWFzJ+-dY z4aQsQj=CH8_tk?y^`HFcpKkx2|EuTfl^Vn_j9j=9u0_Me*>KGa7aKHEM(zyhEFs*N zPtiC*2+u{A7*A?tGbRZ$Hak5j$po=LWU!5K%3+8~h)GRclnyZm+o^R%&M>uW(jLSX z7&FmpM#0F<$846HEaif1?3?7?`9o5X#@Jl^;4%Ivtd@SeZ`EyPYcR5PLYSjvn}kQS zh&It7R*9>uldg4lF*%lFWnJPtwG5WPF#E~rtCBZpk?9G!678gWLas$SQmlpCNJUSu zaU7Xs8b(~E&0sV398VyhFO|yW<>i$X+jbn+tyb&xX4CUpt#-T9S!KiWQTWA*(%oSf FzX0moT(JNE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minitel-2 b/usr/share/terminfo/m/minitel-2 new file mode 100644 index 0000000000000000000000000000000000000000..b9dc52b2c25425f05b59c17161fce06a5fb9dedd GIT binary patch literal 1201 zcmeHGO=}ZT6g^K0tzy+pK{}#Ang)exGp44t)fyujG$BMjfj82oeNhA;zHcGaN)v*3l}b2xNsqi=e|s|L4Se+=brPdtIpOA=HK*cMJj?F!g!xD5{HaFXEm)xomTeWPPAJpe9x_8twP=MrD`H!bid(8S zoV-`5w=Bq`euqG7cSBGM>|!T;AB69xwAzFL@(6Yzq}?%0;Ruc*$<=9Oa1NKL7I8&q zOIU)VmG3t+cd&+as_VF^*SB#G5Am4#37+B^UTF6vUgIs*JK{Y);G=eZ{}Vpr3%=qT zzT*devhe{mq_(OZYDA4H-`}nFs&TSB`vdN-{*DKjkE$7!)cexvqFSUX2UWFzJ+-dY z4aQsQj=CH8_tk?y^`HFcpKkx2|EuTfl^Vn_j9j=9u0_Me*>KGa7aKHEM(zyhEFs*N zPtiC*2+u{A7*A?tGbRZ$Hak5j$po=LWU!5K%3+8~h)GRclnyZm+o^R%&M>uW(jLSX z7&FmpM#0F<$846HEaif1?3?7?`9o5X#@Jl^;4%Ivtd@SeZ`EyPYcR5PLYSjvn}kQS zh&It7R*9>uldg4lF*%lFWnJPtwG5WPF#E~rtCBZpk?9G!678gWLas$SQmlpCNJUSu zaU7Xs8b(~E&0sV398VyhFO|yW<>i$X+jbn+tyb&xX4CUpt#-T9S!KiWQTWA*(%oSf FzX0moT(JNE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minitel-2-nam b/usr/share/terminfo/m/minitel-2-nam new file mode 100644 index 0000000000000000000000000000000000000000..b9dc52b2c25425f05b59c17161fce06a5fb9dedd GIT binary patch literal 1201 zcmeHGO=}ZT6g^K0tzy+pK{}#Ang)exGp44t)fyujG$BMjfj82oeNhA;zHcGaN)v*3l}b2xNsqi=e|s|L4Se+=brPdtIpOA=HK*cMJj?F!g!xD5{HaFXEm)xomTeWPPAJpe9x_8twP=MrD`H!bid(8S zoV-`5w=Bq`euqG7cSBGM>|!T;AB69xwAzFL@(6Yzq}?%0;Ruc*$<=9Oa1NKL7I8&q zOIU)VmG3t+cd&+as_VF^*SB#G5Am4#37+B^UTF6vUgIs*JK{Y);G=eZ{}Vpr3%=qT zzT*devhe{mq_(OZYDA4H-`}nFs&TSB`vdN-{*DKjkE$7!)cexvqFSUX2UWFzJ+-dY z4aQsQj=CH8_tk?y^`HFcpKkx2|EuTfl^Vn_j9j=9u0_Me*>KGa7aKHEM(zyhEFs*N zPtiC*2+u{A7*A?tGbRZ$Hak5j$po=LWU!5K%3+8~h)GRclnyZm+o^R%&M>uW(jLSX z7&FmpM#0F<$846HEaif1?3?7?`9o5X#@Jl^;4%Ivtd@SeZ`EyPYcR5PLYSjvn}kQS zh&It7R*9>uldg4lF*%lFWnJPtwG5WPF#E~rtCBZpk?9G!678gWLas$SQmlpCNJUSu zaU7Xs8b(~E&0sV398VyhFO|yW<>i$X+jbn+tyb&xX4CUpt#-T9S!KiWQTWA*(%oSf FzX0moT(JNE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minitel1 b/usr/share/terminfo/m/minitel1 new file mode 100644 index 0000000000000000000000000000000000000000..9f9e10656abc8a75618b0d7ee04a61fa3f442fb3 GIT binary patch literal 1677 zcmdT^>rWh29Q{otmeSG+(-`O^LJL#SIg7Kfl+tBO@62p>78Li-iamDF22Tlj(cm${>s7q=d79%MF2Tjt{}e}P?7UlL&civyJvW#5 z4$)yc>hTjL`q_D%Jg4g9D}aCUB!9BsjYqv=oY@OF|6^RiNO%gS#tRQEkM729ew>uuKtn1_b z{;RUAiVw1spIqV z4wRA9IYZ8#6lON#-zA6StRW|zSBGF5`~1*w=*p&A3a!-CJ=$#XWu;Y{k88xUU`e zci@3h917yWE*uWw$VMFP#xcflTw{1hXL#6Pc*JCQw1?p_3y=5ec!GuTq!z|gdKgce zVLZd4cvg$zIX#N!%_v^jju(w9@DhvRWi5tR^cY?>VtCDr;q?ICu<<5~<1HxiLaTB zZ!{a<>NZZAHolw0_r^GWU}^lQrEyA6DJo8FmmJx(edR7Grw$avyZ(>NZ- zTWe~X-@pSxh$nUg4{Sn6El~EY>^qcw-**ay5_7$zwbVZJi3je?x#v6IcdpL4S66qH z5GOA!Cr4nytdn-~$yC6XPLvy13P?Rc)pk?4wNl!3vQn3nNLguH%30~0WV?k_vXIS5 zRxxQy2{$z*CG*mhGb{Q1ei8(#kA@dW=%Grbo!jwap|Ze9q9rx8h0bVXd8m`R=zIc? z{iO1_x1j`Uej|lzeshD>X-fme8h(`fZQK&vrW#zeey#~0-_MDeB9%^hRrw?`=XuW6 zO?lVQwRBx0KG4J;>*nAI*{Xi%sB)N&)bUZ~*!oIkiO?MVKk=!;Il?L-EL87Qebn#Q zV)S45YQ@v3m6nPcwbN=j6Og-Ex2(vvoatSJT=USmd_J4s_!V>}okgoRvvv=OCW%oJ z4H746e@qkwA7B80O+veLwTX`PO9GJZ9B5|XmbBnAXZKm=D!a<$jgU7+UPfMnygJ{yUE8j2(UWMAAYZQOMr2FWj17-$P1xCFZfbhF z8tCl{hSsg$&_B^aV*hTU>f6!6&*l2sYqFLU@^R)AI*oHnX>ya*KfPv$JQGX}&ic~f zOvfCunS8hqD*AQ~?h2KPSC-1DJ)Qi4TSnSS88@uKjpyN}4&2;{TV&kYh1-j*2E!93!;`}d zPg!_+M8`8Mf@ie|p3@^ZU`Fsfi{S+=h8Oi1UNU2NIe}M<3-Kz8<25ag*Y!BwFyeUA zjN`2!-gfW~8^gQW7!K-Vc+VWe``V@WAcYTi<0EF_W6i=Rx`j^-3!j-5J|DL5#T>pI zvGEm4;%hC5Z}cR-HIw*`Irv_4@PqE)N7KPiS^R9I@e6bDtLEZ2-No;Qi$kW1KQ`dc z5)QKh{?ZEgTQA^{{l9)ZdYWcSzUMthJLyGwndWE@?V|&9i00`q9i`)R5;>>o44p0I z{!*?H>-_U`NzBty<$6WTtyESk3{@|q#n~;=IS;;|TvkXe&Q+*al+@zfztazt^B+eMX@bC8zu_1+o}u83(KQb=pcGnwkYi)&6TO0REeY@I(Q+B+6>Eo?0k%Mw)*gbCI~C2Pi2N?_nxZ30i_6B;gB|yRvV~-z=629HEs_O zwFKFM>I4M@)eBlL2>WrP*q0l*KWrB86V__$ zuA??xt7+rMwVJv-@6c+t#CR5Zf}a5o^0VLs?*!k&FM(a&1&;D=@MeC+;a44g&EYwR zUw8Nohu;kGo*?fH@mnE&JH-1!{7#tnhxy$w9|-e%?fiZ>A9VSU%OAM>q01k+JU_)B z_wpybe7Kj7^zx^-^HDUP;m^PhAB*$n5N-TLoR32U`O7$;7~rq4)V@AG2`j{3gWLHV z@U46bypc~Q`P(Fa2i?KngTs8LpMS{kk6HdH%V*(q^3Pd52eFCIgNOK6a2H<~=Zg># sz69>(%hT*lGn@ESx>jp)AE((E;dLoC3+x}JjV1+63YpYn($*mT1~6*+F#rGn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minitel1b b/usr/share/terminfo/m/minitel1b new file mode 100644 index 0000000000000000000000000000000000000000..e47321d1851eb9b238b007f8a986d1e25ea9d893 GIT binary patch literal 1977 zcmbtVYj6`)6h6ClW0ch5cd z-jkb~8w7xW`jdh1- zkRVXzu`EO2Hl5PxBF2B8(KMQMBGK;6qibzHozACHn#SX1vJNWex5B8PYMN_D&a>ZE zKHX*pwPclrwr!^+Y`Yi{ic&J$cQ@NhJmwy{m+qtcX>(Rjryrs%w3W8ec6y3-(sQ(n zcGDi(PY3A`#~h}kbSxWtJZn#|JxQnOJYA$w!qCnNnO`qV7Rqc*5o!dDSBH;TpLNOO!VuJkJN%@BQJy|_#aT^`pX?zqfHHs}A1+9~c8N6~o7ry`O% zn`w&N=aI|QGT9}EzvJKj4<>assg(o(6> zQX(WRwL+xZi#HW+Dr_6iu^jC)J5r|(p$F=2Lx>DF*xIBv$xSdjufuL{1MmXOT0-CRM?xWOx}>jB3Vg1{XI~!%!GA86~_i zPYWN8kUfbzXGsc@Aa|;o-WE>`tX-E}uXrjdy;aq-=hV#g)z;NFbmfs$lOpRtWVVs= zY>?~ZxL*!iOHNhV-u$fRwLLZKRokAP@yh09&ZLj-;#AgdGXlHT)t$$OX0v^n&mb4M zS-FO9=P`V)m)8etdZwcHRRiv|wd<;q1M8E6k&UJN2Qq;) zr;JCYV#`fcpVyleDr{Re*Y@3elF6?N-(+YNa@Jt1st;F+H*fkrwSK$R8UaZBQ zI_#~-OAXkks@SioIH0R|*{|XiL&dAjDh>wmT8oa?)d1em0yv}x@TL*KTWS;D)|zlw zZ^Ao96OOFFQU5}`tG41jtrf@gR=n?T#RoOoI zK2PBbHHa^@AWrH*eB}?~Ya@tnnuGXuHNI;J;d?cVAG9!j)WbMsgz=MV;49mG5qe2;k*&UA9HXai9gi@{?ZcoTTkGkk-$G%5|;*%Hj;QU p1Sk`o@&s%sL63qvJXp#Nu5y&mg0cy2H#I7xD-=*@kwS}g`WKlliiiLJ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minitel1b-80 b/usr/share/terminfo/m/minitel1b-80 new file mode 100644 index 0000000000000000000000000000000000000000..a33816939c8f06039351cb3367f50d4b62f79c13 GIT binary patch literal 1929 zcmdT^ZEqA+6h1Q&rC{5Ld>~Ael6qTVPGxr8+BL1EL%Xpplv!;WFbgqLcd4V@-M;KX zYg-$C0YnpHjENd0rXM5_W7H2M0wSV-Rt1Cjf+(n{D9B3yVSVnM-L@DKF!76b^PKyf z=bm%!+s>V<)l(^co_17EdMPiH=niyNg{|SdQx>S|^!hVyD(?2h%kG?Dh)Z~>HR-;j zoAG+Hi3K##G%!u0C{3q1l)Fm1oVyH_NLQoNXeQ>DVYkv9R6z^Lf)}JPY#q=*P1LN$ zms7jybGenOUrn9VrC7JJJ(Q&(dJ234`E$ssPs4u}c%ELQmuVx7saQGkI&Gmh=^ffi z+h`~4roA*y`{^KkLq`yEjE>WZeC(-wJ-KdK+5gEJemje}^Q3DtHR;dRZqq8j7AY?u zqV^nC%1PMM+BxllChO&Lm$cj!kyA4Y{K|g4UhtpMpHuvW38gS1`QT`TVJzg%>2nv(BC4JM!*K5K$}$ONVPf%6ObnKC`^rH z%7i3SdN)W=X+elcG**<2&KjK+Ek*@dV;LEa3TmYyxc&r2YzgFEpaV4FI< zW&a1aRb4=sj2beqr#77KyausY?x=EcrKl4bMeRyqibq6ZRC)E4qDn+vgmt-MC@>-_ zM5aj8=KY}WPYR*DP&6r7H6x-PN%=OB8>s%LUW-e5fQ$v9Vh~)2ga3=u4nzae1f{uK znvgWr(%d5r_TxmcFDH7hG?p|Ar76dS1(xDr$KyT?+pWb5Pc)y(Nua-hZiIF-jg+s6 zJ!U>`cAH5vWu~9(y|4e_jF~mpn(NGg`PN)K^d+>UM3nL?<^0-e-W=n@4gBM(Rs8c1 z|1`qqhxuKbx7obi<{dV_XY)>*-;eOFM*bkeyCeKzgg=V#o)+HQ!uwkI;}-s;iN}}o zrw)JS@aGQicldzA2Rr!74nEYuUv==;5AnDC{GH23T>jqWA6!1_^05RTPw+1Z{?+5( zJU-#^?;igV=aVTumF7Rwd^*i%(tI|}7qWaY%YSA0(jeys`K`P7ivd2jh_@Iu_%M>D p5yq#$Y?X=<9vJ39U#|1zCw#Bo_qwL0(ES!QS`@LU-J+F^^f&U)lcfLv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minitel1b-nb b/usr/share/terminfo/m/minitel1b-nb new file mode 100644 index 0000000000000000000000000000000000000000..405db818c7e73e0509c2c1e2c740961b1e76ba4b GIT binary patch literal 1917 zcmcgsYitx%6h1RFqJ`2xO=O*fPAS8-_S<&1-SV)MIy1ZJw1_P>jn%PG5GuC1*lL7=hbF&q3;`z<^Z&@|}alWvqiE(j-=-sKY zHg>-ztp9_(6(>^(O_em7Nm6e+L$Q@?L`gL%*?J{q@D-oMgBSBJ&54#!AWTvvvozQ1D!eY}b#>eY7Ek~bsO2o) zk-ryzCf-<;7c<-IdU?5Cm0AmS%A%{Std+O(wv(YQr@!B{a~8!jgN{wQlgn92e?-k> z3Te}qCA{rkzcyY4e6e&wct`a;-sXMb6~q_blD<&MqvQ;)u)&s~QlljO!WVN@l@@O- z+n{tPd1<-Q+I2(ghetMS99>?-MPE3~&ni(7|D$*M z@2&SnhS)QSE@0o(bKiO?-#0CwU{eJ)&&J)AxMvRTRj_3)?hE4nDr~L6L!Edyj7K7P zv>w|U@K__Z&&Lz1@njR8T7(_VczQ9OX~DCqisv*HJ9QP$$5gyvsCcnm#Y-l3Ez$9^ z8pkVI9J}>6UNz!)O>M&-tqrg1ZFs|I!`=kmj9rDd)DFC@bzq;~fp=mZc-QE_dr`b^ zW53#s543K4sCVNdqZe%vUoA=EYt_Ox znuTw53x^F0->Ejf*KGWt+c;v_IGV$cu?&7v9URjf{H!}T9&_-E;o#Q=I5C8iY5~7# z1)S0g_}wVr4{ZpiN8lPmcpwRcO9RR@Y^cP_Fs_fFk3ZDZqP7m}6VOa8)QY%`OzK9I z&t5w|L{W-ErD)i0XDLTh^eFUWz~i=OSqBiG1fHg6={Y(`FBW~vIz)%*2py-Bbehi6 zdAdlK=?YEL3|&Reb-GEv7ISAyHHG=_W>PFmQN%yJvGuuxL_9bqdVqlk-Pw}>{1VULKm(ju7wG`R=x z2FjQK`vEUt0zq2S>|MEtmO|GhL2gO41E6}TY^qJ-ZPmkej~u{byB^pm)^|CkmQO7= zD=>9sh@ByL}A}q}P*d zmQkM+A0y92^=-B$CNgDxDq~$z-zG(b2K7@$rd?TyEdK$;o`4 zbeDnq+>TgV0fD;<;ROqI0j67$M^cTXT1j=1Hb}zOLne+OWNwrshcT-p-H*F<%TEEH z0ltB#d|5W6NdAM%a8L&nshs4Z^@tiRfVX76%f$!aGM180=#@TxO0TTR^D}y7XP6H{ zkMZ;1K7Ik*&o6=Z@FDOc{4zMiuYgT{6}+8~fcNrIFTdvHV_rV)jnB66yDfYU&Mtlr+|B1h{C= qZ{t65Y~`2@-BlxSp4`JpUN^++6KqUz^&o9A$Zt@g8B1?#%MJ=s1wsAW5erLpmLfXfi_j%{sbKmcWZ)O{nVGT-< zq^l~GOeeELM$6l})4knY9p#n%?hb(X(}*IJA-BX)gg6R#1yE+a5Sutr4{k*TcCxE6 z-z-*-D}p`ddoCBp0dan8Jr3ij=`>6K1lkrRI*m)AhuJ6H0p_6iVO+xv+{A6%#RELV zV~pWB#xcq3uesjh9X`nHN5lEtJfB#r@BFLKI>YN<@Ex=G!%opg+CsV9cCO`*3aXU# zs%7S?m+3Fg?D~h9#q+E68OqWXx=y#~4&A3mG)m8Cg5J=3nx?PxgJx-tpo&z9DplpG zQdugZ;;K$HswTCvbGEKM3 z!S*`t?$uNL>j<>$FBM-G~|sAG98^_Of5Jm zf%T{=*|oX4w5H6OX)QeU>zO!Z8ipXxn%VY2UO|BHc_ z*|EXj7k^#)HZ(naZ)Be1nz?K{=HH?tbcLQUBn%59!l+Nj66SO4nE!wrp)2%+Az@e; z5k`G-p4so@bL`k|^N<~(EA)gRVOSUuMtyRg+0S`C^-JYOV_sCh53YHl+Iiv>^r5g8 O#DBpBsBOZbBlru>L;LOk literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minix-1.5 b/usr/share/terminfo/m/minix-1.5 new file mode 100644 index 0000000000000000000000000000000000000000..8c8d4db5c81339b3edeeca5b9e3658b531ca1c76 GIT binary patch literal 607 zcmaKqy-UMT6vaG|AXgwH)*gU2F`iEckX-lhL8y(fhhWMfiE=ct@_bSyWyVrluBlN zir3n$!**jYKGk8Cz+aD1#t_D#6wpUkY5=1c6N+LI)1;*AEP9%n$AavY%3&oSeNU+( zHc*kI8sxjE^_);@9}OnnkMtnm4vtBuIKw$E!}^ubb+Eq)*4wb|PyX$9tl#4Sk9Z||pYhWr@@|0hlBoA?GOYy@%u literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minix-1.7 b/usr/share/terminfo/m/minix-1.7 new file mode 100644 index 0000000000000000000000000000000000000000..624e89f782d54c98a55b915d7c889f7b26503e94 GIT binary patch literal 893 zcmds$y-Pw-7{;I52YrwtghM&xa-$Cv6~&+iEv2Y5BMn4o(I}yNHKGqFXlQ6?XlQ6? zXlQ6@X=-W;T3cINTU&$Eb6#(ElKz0?KF|AmpL6bc&)^+4M$nB;c#UDhs@wIWP&Ax8 z5eilt_FiLWGdOm@Y#cE76wr$yCGzac z#0rX%l%0G7Rd>g>kcC~=eK%F=(BWg8lFo3B3tYPES3=iLf8*3!sdu<%eZV80@a(L# zZt}wJ6>oUQ2k8@E_-5@kTC45dYxtb?!9Vx4fBXNYexnB-1S$)GN@S6Bi4rjDW;1Hm zrp;!|tSvB|)w}p_3RLE(G*zH-RKlV~wIyAPYl^h76!T>{Mju$F)~OOzq}Hf;N)OCX ztx;LKhQd~*^~B%CF)FnHdQ( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minix-3.0 b/usr/share/terminfo/m/minix-3.0 new file mode 100644 index 0000000000000000000000000000000000000000..69f8e90cb8121b4629eb20299d220eab28709448 GIT binary patch literal 1136 zcmds1J1j#{82%3G6{Lw6=%9&Q@kpigHZ%;aM@Y3*(Tb*tMTI8%5GfK8gTY`h7z_r3 z!D2C)OcJZrYPDJ=*LVJ2of<=9a&y1$|Nh7M|8q}rPmk(_15RYsxXNYo*+Y+S#Ct5t zy-~>T6?Qh=1N)2(0*Y@O&FF?zL_9CqBqlH=zGVe5 zXRC7CFqV*zNXm|{W1~{BEh>jy+EOKISqHX0!U@$W&Tx*4O8!#RmF-{K_D1Y2?r87v zfJZ#pnetAa>Am0;Z+NHrz$d*pK#BmdbYZmPABzz$;R{Tf0sRp^No!@=inoA%>d*+qi=!T)HN=+j4YmH& A1poj5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minix-old b/usr/share/terminfo/m/minix-old new file mode 100644 index 0000000000000000000000000000000000000000..8c8d4db5c81339b3edeeca5b9e3658b531ca1c76 GIT binary patch literal 607 zcmaKqy-UMT6vaG|AXgwH)*gU2F`iEckX-lhL8y(fhhWMfiE=ct@_bSyWyVrluBlN zir3n$!**jYKGk8Cz+aD1#t_D#6wpUkY5=1c6N+LI)1;*AEP9%n$AavY%3&oSeNU+( zHc*kI8sxjE^_);@9}OnnkMtnm4vtBuIKw$E!}^ubb+Eq)*4wb|PyX$9tl#4Sk9Z||pYhWr@@|0hlBoA?GOYy@%u literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/minix-old-am b/usr/share/terminfo/m/minix-old-am new file mode 100644 index 0000000000000000000000000000000000000000..38d369c13631870b5dfda1829385956b92a2c6fc GIT binary patch literal 607 zcmaKqze_?<6vw}>f_{+D;!rLwFDNiHjDj4rA0(z_WPu2QsNjRAJ}fdK8X5{38X6iJ zg4Wj7*4Eb6)(E2i;P$=8t7JhBzUO|<_uPBV<#8vhDfrQk3w)vG)SaVH!!3u3wG&B# zrAB?f;Z}kz=b##NoqDC!EP8;2KcAJw5XPYt(8s9M07fw;$1 zdpzI~Po!tO;Fas!zo*{uVd|e4gb#s2GEfMoxUN$Iwqtt{yS!+7vvxU2cS-N!{|gkB zsRWg!GSpm+A)>>4H$*jsdqbR7S~}=nd1{y1p>otVwMOY#D^z=mZ-gi}(bEJn9nf9G e(TxSt9ncNL(Om=*V5ba*&AYJpp7aaZ*upn!83peE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mintty b/usr/share/terminfo/m/mintty new file mode 100644 index 0000000000000000000000000000000000000000..d9c0a7a27b1411f2ddeefc3a9125743dd9fc937d GIT binary patch literal 3847 zcma)93v66R6}@-gv(pqp)v8fjR%r{(tJ*@E_kX*2iQU9@Y8!tRe}bEhOPqLPZ@lZ@ zZelyOLlG@f#80VIL?ns=<(o=SsuolP1ylrTk%)>^iLX!uqH3iGMJ1v@rRCh2w_CN@ zNUS{f+;`60JM(7d&5YmAH_@GR9X-wuww8;t)#}Px$I8@FarX9+!Xk)?5)rFEQa{Fn zc7$v^!Ozh(bTieO{D^CxATp^HHEy9>(cV3DFKT9~m--O*G58PA5!jwY&Jk z>~hFExQ#oxmvg+25AZ?g1(YJsa)p=pB>YGC6rXOyHF+gaXZUOUBtOGH;a~E3{vBW7 z*OQ1h_+R`Mb82(y)|ABBDKFKQ+MVi1?M*!a=9`MWGV8a&|5<4lQm{GC{G@rxJZ+vaziNKRe9HWx`MmjpDJ}lLzn9Ec%s-eH%}eHgOm1l&_3;Kj*)r3z zpq`eLU2pkR%c+LiJo*bQXRlJ@>4g75%jI{~2wI!v>T4Zp$~UXqj2mmsx2E&^X#;Jd zblxgj^NuwcTl20pxd_6Wg6U4@-Cp2FPy~}&_rLAxfNr`LR5wby8@?4yB*cciF(84C9DtcWgg9jYi$rj_oQKS7=`%GU7!IQhE@{2c^HR zBTpYi8A2Hb;{;&xPNZx`*{oRCh8^q{Pn=FTq3}|DPzJ+^U1Sx&ung*<(e1W7)9GE1 z)T>FW%IU8=5~Y~?>W=h7F@1GMnp2Flq@0nuBP|tCd@(_hL_I8(Tx-=?x3*c6hbVnG zJ&t+UfErf}O9o`J2qq~V$+Y*A)o#sattuwdDqtF{IGwkJ3$1GGSh2VPTvxj;TwlA6 zHSbw#c#ib54>!f zq#SECvu^FQs-AiQtDq<+R9v>Me{=4Gqol=oVj3YyO z=BPc~vGLBBkTRuknd_x5(s@JfavSLe+|VrC&vsG=_#Ew{12jbobQ*OYr?1nK^fc~Z zKf@jDH}neqiT+Bj(*Qi~D$(_wxi#^Bf=Nb$*yX!;kVA zKFi$Y*t!Mk2haKpdr){Y4G&s>uU%!gc>3Zo@~rc>}v=#gc>3NH`y$7m)vBlOLnDtmps|f zkwrtGA=D5FggQ&8vxGWJsI!DROQ5R+x=Ns{1iDJlXh;qTG^8QW5Ne1t$a#+{o(5k- zpdr){3Ak!&aMh*9mHjFoG^Wi}-6RH)0N{tD%~C^t+)<+&0K7id^v`B-V0hATAIPlrmy*%_B+Iy*cuzL-EvC?} z?+6rFNU+dgA;Ll(7!ws1DlAl3sIX9TL;Ik@LWPA23l$dXP>;mILWPA23l$dXXif?$ sjOL(^<{*#eppNDunw?uL)7<>T0xg!8m#I>y;=kGo#?gfZv0SGA0mM$;UH||9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mintty+common b/usr/share/terminfo/m/mintty+common new file mode 100644 index 0000000000000000000000000000000000000000..fdee2c170645781986e0dd49083b8dfbc7122483 GIT binary patch literal 3781 zcmb_e4UAk>6+UO)+ii;$18DlTi4YY0D~VPE8jOMlBLNc$CM2Q~(`alUY0L(RsD$x5_r4j@ zViRNB?ESuT&v)**ckaFK-n))B(QWh*dW6@tmWwmB+Oaz(E9G)!X0bXwF<+S4I5{yp zv9DMv){2Gd#{HG~jV6kS^*`x9M#UIc_$fy#=|-ymhrgAy4NYunMZ`^XGe+?V`V=Cw zw2S)C?z6D(rv1Q!G(!utsI%Nl_t7c(BJ9WL8*~o*J$j0sp=ap@`W5{K^*_@a^jCUY zN7w5s*mQjpczt4T0N>v zY7EGc#Hqe?=q*>rfyD2XeQ;Q+Ed$8ovEFv z$Km;=_FkS^6-}AO^^KP@HWnE)kXNi6zaD%q$_1h8_ z|0c_`veq{1E^ELVwZ^T2RkjXWOV<6?7pyN^U$q{$&RO5Lp0R#zy=c8+y=Gmo-msRf zcdWYAYOl7}+Usq{-ed>%R=eBow@2)}z0WS%bM`U&^Y$tGw0+k8n*AO7y!|8lS^Ifg zdi-zyUb0`ce`jB^mz%BrX>V(}y!8Xk`hzWJS{~N5M>Rgta<1ikQ@y-ZqxQp=7p@ZV zTH=4b<>D0)%U9G*u9dCVwl=cUK%b=Ui*Y0yL0z}17&p@I@VMHsFs>FP8pohaLlGgg6kawz?jzC8mD$^ciO z!_D~FX>_XMOq{8~qr~k?i#D;MCir6MF^?h54k_up_;e0*t-MAKzXZ3^O_gre5lr8@ z#m!{yY)3f8o6di97M2(LXou1cPoMr3-bqRiBKe?@ zFr+)}k)E_M(lDf_B8o2%6iL)c2~y4pcgfl0OzoreWO^LyumTYun3gs;lT9#1=}4Bn zpPUY7HtW=|m`(x9;Kb>CMtq@Di(MxcGk~d#sbKoXbe&nxSwuZDbsuJ6%m`+i6JtSp zXcg_tcjH^692&1;__#|9X zylm`e<(%+jU%GnRZ*^+EQ_wYU$w4hlYQCas+Yb*&sp*+TSeF7b>-k~wS_wIvdYnJx`z(X9G#}G&?EE&JxM>n`{`$RKmD3s zr9aT0=uKLtcc@OSyqec=nm@)L=L|=9A9Zsd5AzuD|ChH1S0Zo%vC z4syw-h}tpE9_ptdya4mGmkM-{DpaH6bT2(X578NVm>$Kr&(V2$ntn{r(J$yldKqK? zJzb!Sbcx=ge_-@2{2{)MZ{YQO3&wvZ2ORTu{DNIP$Rm6=e~u^dE6RA?EifimWitA< z(FP8lao1HiNXK2JSEee5s)w6&JV+dR1+-gbNe^DU`8f+s9~Zgm!e%j&AClr_L&Md(>a0TsP&0X{cN&(Qtu= zHJ1;U7HGIiWBs(RRGc}a=ulUuC*TVN0--R MVg?lu=0chN4Mm942><{9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mintty-direct b/usr/share/terminfo/m/mintty-direct new file mode 100644 index 0000000000000000000000000000000000000000..f06364ac7f19cf6cb853920bc6db392fdbec865a GIT binary patch literal 3873 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mlterm+pcfkeys b/usr/share/terminfo/m/mlterm+pcfkeys new file mode 100644 index 0000000000000000000000000000000000000000..1a9b17e0e5fedc7e338c6ad587efaa75506b69dd GIT binary patch literal 982 zcmeH_F-yZh9K~NjC@x*3Ahtr#K~Oq0=_N`Asi}pc)>s-9s)LqPq}GF_f;%9I$aPN2b?*A@#xy&SN=;sqzbk2rxzq8b9w%YM%a4kct)jvAv z#OFh+)$LnhkQ)p~XR&2U@b&-vu`d8~CrN7R=XTP_Z0CKugiOQr?J=PYv>BMY&te$| z2_T6S()eu!B7uqRD(07r4R=ZgG!Cu3>hyX5a`40wr(-9?`IUr8jQ-F2RjEJPlD0D1j^R z2%gjgTod4d%}D*m1BnZiz!i7`yC^Rb6a-4(3cMoPrK)a@mVy?g#ns}WT?sg>1RQRb z>#U)&h)SC(KI^Lc+M&`3YrE`I*{@Y}ipms~K2?0CqEI&$L?P#+kke7f*(mhz4G^0a AO#lD@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mlterm-256color b/usr/share/terminfo/m/mlterm-256color new file mode 100644 index 0000000000000000000000000000000000000000..d4485231e73949306865277183dc8f6f2651e6c1 GIT binary patch literal 3404 zcma)8dyHIF8UN0l(-tVENeQGd6qndrg{Is4zBAlyhrV~)eM}#VONUC!?sjL}neKFV zO1Ir^ixMS7iJ(>@Ch`amO^6Z_EF?an(U>R+5F1U1Mlh)G4-L-{5;Fe2^W9lfyBH^P ze!uU0zw>?P+poeLtN6KSU4HM8Y%dO`hK{Xv~me^vj?BF@>HUeP+x|m}BO&xyO9dJZK&^PnjQ^=giLx_xJz* zeq~-Xub4N?o8}$!(Wk`Tvf$!;m3e#@xBB0n{aKFD1&=StSN6~%`V8eO&bZU?oRQRN z_|C{A9Kjf%J74j)fw!YDXRWsW$CQ9>x(u#vl#(CSutls<1#LuGk5WeIqx=_Ka8w6) z3?ur*7&t;R!jYz*;f~AzOBML&&fJmAa4(uOU2`3$H=-ZK!XO!1m*=`` z)}c2HEnm650V_zuT7DgBy>uEFoTB^y5)be&eUEE9P9^!n^J{J04MH9ko+aRi-wfM6D-XpQeQkqN zSpQ$`3=j;Jp+$NS4G1 z9)|0boJQ<4Q_o4+^kIf#hA<;BJ*N>kCs9wNp1>?PX`LgAP7{m38N~!TDdoHAQoNWW zC{rj{cLNQS!{oaA_U+$);K0~ewR-U2p+mJ=y?*%c#6+WUNY zef;=|6Eia>PtMMs;#a>1rIhd@DkU{St}Q4$be_~okn%)TLIz95=D4l)jfy)>5GvE+^=cbw(6tJh0X;X=kmVdS=cWcPv}MYGP0*b}bn&N^!xztbOD!wY%l zQs&ZlS^_?I*WcaZcdld<+!yir7P(g`Yf%W8*qd2DZ%L0(-zuJJ8+BIi}8%p z1RbRr`ZC=^-=GKRyBO0W^dvovThsFx)o0?~w7OKlJvSsR8 z+>KV^ZscNgH>r}slJH$u&R911Z17!s9H7dJ4M(pVr#$i5MB!Xq>olv*XpPS(oEmm5 z;+w&(vmKQ!{vegFLi?Z(C}D~vODtJp$r4MJSh7UYB$6hPG>N21G}jRykLXA!5{iWq zA^rfONgxyoMMAMq!sPQNtyt*d4^Uw5By%?t`_;jxrq3CzV{X(%u!%NorZWD! zXsC}4ZQ2+xgbWcw%#Z;3xv<#JVn2)hEcQd(+`kD55E2j?5F!w2_dp+1AXFe!AXFgK z9`3P+d+gyJd$`9Q?y+~vZYV%VKxjaSK&bsgtOB6|p#q@-p_X^v0u=}q2o(qw2z6%< n#{!`Op#q@-p$?Y0puu1n`d}IIU>WLQIibn=^fXN|OxNk(5R)$O literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mlterm-direct b/usr/share/terminfo/m/mlterm-direct new file mode 100644 index 0000000000000000000000000000000000000000..fbf4095651969ca068f6a0bb1e807be299547bd5 GIT binary patch literal 3359 zcmbtWYiwM_6+W{wAt4b;MI;0)X&u2$X|06&zPq_jmc)73!H>m>Ta%?U;B~xCcI}P5 zBo4L{1nL7J9xaV%san*kRjAYlqG}_gwy2d*e}Dw2k&uuOAZUR&UpPHT|QufaTLkVY2MP*t=S5o_8zfMzhadWBxM5$*QhGbYt; z8x;Os0$!8Z?e(!tAlr| z`_#9gomM|oXVjDGY4s=doI0moRe#G`oVWZBwKBIl$E~i+<#QWzU&wXmHs|h!=U(e& z&*fH1uhMHZ z$6f(kZ>@Iwx{TT1tv#LSZF-j;(ED^nkLx3PPA}+t_5J!0{h0odenS6BpViOkKkFCt z%lb9_wmz>f=#R89Ys@;6H`khO6PVQWnw!jsxy2kblV-*oH>b=u%tPi;^SC)2_YB0tP>(2D&l@|6R$k}jis#hG%No>NVo zrtef|;Rq%Heff&N7km>6a~8Gd6H^-W(Q3H*P)dGO$17ru8mJd#J4zX4kn-2N;HUxc z7)qWS7HjClPuqy$zHRE;W~HchU61Fw zH*7<17+Suvp$RKU!+L%jY6El%7@Va1FcJ^*Fny0}H=~T8?1RUP;Hh|t#e&5mqwfNT z`LTUAcEX6+&*8)TIuw(lQy_T(P?25I1^YvC#8HJU5bf0 ziZX|SeK*`hnI_jgc<}by4;`AEtkn)5K60d9Z#1T-XJ(qsqeo|F=jK|iJMTPp?D+Bd z`4cDZx@%!!adBzsBv1VTlv2W*sFc(Rxpt%Q(0NfSLCOnN2^p{`(3tE3ih`P5MX5#0 zPM%GlcS*(XH0Jd|IQ9t>whEK%maJKlaUtWPu5=D4l)jfy)>5GvE+^=cbw(6yVpxn;X=kmVdS=c!T#u&#C8v_Qo*#r! zoD_;*;hoJTD5hbN&yj$^x7Y)V_oU}66qcMGrxn;2#+e8TTl_6stPn?05HC45I8~|p zk*zKGQMBZ2{KP9YZ1Vri8D=@d|0k!$4W)+`$Z|IIYN(c4Q1{@L@UVImcZ8p+pR1?TSzMYlz89QvqqqeKv3d`%euAG-_@O$pN_SHs}Hx7C=ue18A1Y~P$&|Lg%T#;zHkGg72aWBg-eKCYlXmQ)GXDE$Y>@PL3tvC)b1bct&P_@b5G)*Mb zp9w-}R>lG?r!`bx;JGkUatUa zG^6x_!Z&G=-lF&DBRWf;z;cl;(bsB({l7QrH}LO9UjzSPbiMv3-N2leiIw6}u|}*H zPl^p9B|?Fjpluc{Vu$DyJ<$8aOJWFow_h1!6)__g#0l|^I4#bJ3*wUa)_z7WV75T0~yO!*(vwPL=MO?IU#4|>+*y= zDL<5F<#~Bgeks3`KgrATio7bX$?Ni_l=cdHwe8r=_C`CfW4qPvwD;JFJz$U7x6kul zy^1|+zh)n|7yoD6z4HE-@psKLPuXW}C)rQ;(JFEhx9CwW4i9E1>Nn=jjyKD+BUgD$KD*$PlqfLC8wY zWiQ-Y&?#$D0VVW9246Y*>>W8tmA#UDG|GA7AP(b9i5;D+vjxsw^eQlzC#RbedLC5b zEA)KU9*-qns4%TCQkYekWAszN?sirzwnJpt&hFiK&2BIDk(~)I+|4hY_e$#dd2iI& zOwMyKsW;=rP-0g@@U)a=YeVd5h^~g!nlAuo0OY(D;c*Idv46qhYYp!+)Ciip&z+%na6T&4Fz?FP#-rYr=9MnRO-Ni z{{G?Nk&)5Sg9pdPN~LmneEiU%O6Bn3YIS0wR-2qWa%5_1dU|H&=+W8Pxw&J<=6MzO zqoIBZON8}nL*oglDsf?WVb!9?s$^+JY~+>_yja)4H;nVB zp2uGiY&m>n274eg;{Y62AKNzJ7UbeEhXc(YiX>1woO_{B>YiRlIeHm)HsQPVAU#Iw zs2Ml0M_I~K8||WAO6V0TQiY~yp5DN1dy+n&GxRZCpwH|{O^}+`TCm_r~ZHM3Py=(!(Qs{XB8VKFf!BId&0bvJfJEHmu+~Ckx Qz<6H)!+iye_7x)f8{w>Y(f|Me literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mlterm3 b/usr/share/terminfo/m/mlterm3 new file mode 100644 index 0000000000000000000000000000000000000000..ecaf2c6c0a5c586947b8a74652144400ad3d8fe3 GIT binary patch literal 3192 zcma)8YiwM_6+W{w2_XSR3bYC=0V8t5BQ)Ii-Q_x2^0pH{HV;#i1)2~$wv%0ZW3P!5 zC*dWEP(i$!BB)dz;#CQ?2no_kg{laI1W14ywGsmH5K#Jus1Nc3ftK&gxod=o5UZW< zJ9EC7Gw06Cow;YLOKB0!rxA7LtXj1(I9>}5)+Vcsk+$l{=+NYjY8(4TMqv!XzoRiW z-WDvIB2xCx1VagDPDN#!Lkp>SlHVM<0v!y^MvJrPTv|ex&@!|v(gx~6zn{atinap> zP==`rY&PrEp#5~%+IQ0t@PqUaJx0H$XX$x*0rfZO7`;Ou*cQ#^e={c4Y#J2)%?8iQ z>}GSmIzyeM7OC@DLMf|0wM|{C24PoKT}{pOlUOahQQfZYg?2>! zPCcofQGZr1sn^vp^`81P>v7!j|I{hDxjF8&Fqh9Q$z7aVnp>8;5uRJDmz7&{x99H6 z-IF_FJr4livevQOJC;AN$SqsH4|AWu_wVodTl&fQbF}{=_vK74rRV7Rn%n*qxX4<~ z=HiUmzf^lV(JS;?-KDqair%UB=m|ZoZ_&Tf_vr`qBl;=*M}1WPRllm=)c@4)>woFv z`h@;k8#B+GVe;kzv(yA8HLJ}=v)No_wwoa{X7-sI%x&f_bH91WJZb)5o-=E0 z{mr~#-Zmeb&wilae@>#EIEnAak18#{%3{#0xwG<>ZFCBqPWg&6;?zB7Aa&}#GcXQE zFa+qxSNsj&jVR1ntM%WS(xHRq!qtIN@}nwV5o-*CR->#$DWh~#{vsC~)c_tt$#cWv zFb45cH+38EgxsmXS~3G6TQ$q(UvBGe5OP|0mVh6AEo}R&oQgHNTLy=+o-0}g zCucofErWBg9vGekY{w%u9hg$(9(Pe8S7iX}C_w zsmD$u^_-MVA7&_K2s0AXbLxR}5cNdr3Cx0%*0@K}X&$?LD*w{L1{|Na99 zrl$`cJap(VPyIHOQo@_4lvD|^)}e6fyr`8R<%Oz*3|JIsOm+c9LCvnB)S?+D&!*42 zq~f*R3?`DklHe!~QA7<^+NMc74JCfK@7CYOEsc<3V zqA+4xzwc!nWE={6X)Lj0i5*MqIE!s}ua~64g^Y{Bh;99dEgWPV3VUfFu>*-6NbDes zZD$X$g$o%Mg%Mk37eTT)5e~CC}D~vN-R-gi4secSfWJIB$6hPG>N21 zG&2w%Cm2X55{iWqA-*usBoGRPBB59)Ve;*!w$RQ8c3|)DnVa06(m0yCoxvK`W@SJ1 zZ>3dhXw_OOoD*z q$T7$>h^Q7AswS%z7^x;R$TDy+NH9nNLq?oIm_ZB}Zro52P6hzzRrwYG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mm340 b/usr/share/terminfo/m/mm340 new file mode 100644 index 0000000000000000000000000000000000000000..3b7bcbbdbae8dd25cea1f72961f883744847dd31 GIT binary patch literal 422 zcmb1Q6lY*yU}k7%$YaROH8wG*$<547h0zK?1_MI?!~g#hK>Ytd1DIrD;9?K~vt$@d z!L&J;v;>mYKy1t40p^2rkOG3Cy25~TJdz2CNNil@C8McHMdPFEOD7h^=aYp{lxqx~jHnvTA`5j0p@j4h9|uZU$*( juoke|FcljUOFc7?HXR1(P#_P)<^ZeZX5i%lGB_Ck-5dle literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mod b/usr/share/terminfo/m/mod new file mode 100644 index 0000000000000000000000000000000000000000..63d4e8d5f515c3482bccfecaa5229536a55a1750 GIT binary patch literal 1136 zcmb1QRA$g-U}xxMe8-TRpORjbSdd|2Q3GVw_(Hh~<@zQT3OSj1sl^Noj9|oo7XZ}& zRRu6`Fc>iW2Lomx&A`CKzyhR28RQt0z~X8Q<_wlVmMxfP4;;Tr;PfO(IXK{{GBQ?|(_A272qMhkgb9d+jO|S`q@xWAfeNjSfTX=? z4uorBZCuD8Z37ZFu_%Iw8C#naO4|Yz8D@Yi@^=E_03Z$o;vgUn24WW=20FkWg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mod24 b/usr/share/terminfo/m/mod24 new file mode 100644 index 0000000000000000000000000000000000000000..82943877827a843ffbf24d989b1c99bed58e65ce GIT binary patch literal 1141 zcmds0O>fgc5S?w23YADMfT~)c2xTic)f?M&q7A9iaEMwVA%VC=iei++NnB3Gtt})y#gxipYgCEA6~DZ{F;#*Y+-9kcUmkk*$qz()FiaG?*hP*&@oc zko2bEaO?$zUN{T9WH|NakI!^iYLX<>QBoSpv&{H#7hgN{W7Qqq09bhOA#8thKm+I_`dot;vXo?Q#oF<%6 zF7gsmTTv`ovgE4V#*#yMC~Os)dVu;!&7-(|-ULAY&B( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/modgraph b/usr/share/terminfo/m/modgraph new file mode 100644 index 0000000000000000000000000000000000000000..82943877827a843ffbf24d989b1c99bed58e65ce GIT binary patch literal 1141 zcmds0O>fgc5S?w23YADMfT~)c2xTic)f?M&q7A9iaEMwVA%VC=iei++NnB3Gtt})y#gxipYgCEA6~DZ{F;#*Y+-9kcUmkk*$qz()FiaG?*hP*&@oc zko2bEaO?$zUN{T9WH|NakI!^iYLX<>QBoSpv&{H#7hgN{W7Qqq09bhOA#8thKm+I_`dot;vXo?Q#oF<%6 zF7gsmTTv`ovgE4V#*#yMC~Os)dVu;!&7-(|-ULAY&B( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/modgraph2 b/usr/share/terminfo/m/modgraph2 new file mode 100644 index 0000000000000000000000000000000000000000..a09df1ede1ec5eca9d7d2beec5201d2341b8c3fc GIT binary patch literal 598 zcmbu3J4?hs6opT)SrIE6aV(}t*h0jaNya252(A{s3JV(%0?~x5sJp>ka0Pq+sipW2 zbY4lndW(C`-1#o&Zh0xzv4RhL<9S*&FJ(Ix@13K~VwW?73S+^6sgw01sVx-W3Me#7|$q8aB*(8wW;5rk|*OX6RyHwDh;ZJwr7sx3& z_jAei4nZ#bJk;6`Zi1EvLplt0g8QHqomITXMt&}o4nU5rBS%hiQpilqND*gzMsCA~ z6r5+N8YtnhRUxg0q18yC`ag1iW2Lomx&A`CKzyhR28RQt0z~X8Q<_wlVmMxfP4;;Tr;PfO(IXK{{GBQ?|(_A272qMhkgb9d+jO|S`q@xWAfeNjSfTX=? z4uorBZCuD8Z37ZFu_%Iw8C#naO4|Yz8D@Yi@^=E_03Z$o;vgUn24WW=20FkWg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mono-emx b/usr/share/terminfo/m/mono-emx new file mode 100644 index 0000000000000000000000000000000000000000..9507ee843b5d86cf721c1b68ab57574d8be7e6d3 GIT binary patch literal 508 zcmah_!AiqG6rAcsg&w?#y)0rp2ucm8ht%4nm8J%3tAbz=EKN!lvq@-DtSIshp8aKg zl@LrWF3jxAo7s2R?TU>Rtl|rwP*E5icxv&Ur1Mz1V(BOTEK;5@`?o!jdNU=%aUfn~ z>We50UYR`cEJIgBQ{k!DA15*aDg&%x3*Y$xs+rrw4)$2@|N28_JxlU(L7e2Nk*h)> zH?2RpmFWxEtQ_<)#2xPOfJZ!Gf+Np2r427 zLJ+}17z+yv3kwSi3mY53#zqhnEG;c9&G^sUlH@=^9Qfyd|9k(N_ZD`KsWHJAUzs%h z{KjB0FIGC9&s~V}<>+*8xmPSj-QKnNA}=s(KBH>AV!AlDTXKwXMb1^&#*Pr}q(;m^ z4olTZb!WnHPK4?#OyMgcXK)hP!9*Q58@nfDS zddf4N^MaSW;x%u0%R6P?3m^E%r_%emWWVp9&KK3c@tq(1WX=6z+*Hk)+hs<*`$lwR zYNg&klHcf=_)C7n;oO0L@ND+~Z+yr!jJ-^SDz;_MV9(<3cqtw<;)UsWki-iuY*STi zJsMz7VLhG1&SAUQ4%@NWbkfH*gqiF*){7}2E0K!BgI)a+wk|c3Ee->TiW=(bn#H!+ z!tF5b*e%tChL8wHgj6^xObVGWC8R!?dZ!jky)*SK!}Xfg^|{0Ool@(2!af=qxLvZ| Z2wLrd=h%Cdd#th*J?v*EepI3nzX480r?UV6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mosh b/usr/share/terminfo/m/mosh new file mode 100644 index 0000000000000000000000000000000000000000..070ae4a06d51d78db171049a73ef6dec2cff4101 GIT binary patch literal 3414 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 Vs9iOP2Ynj4+k-*x@o9R5{tFE_mT3S0 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mouse-sun b/usr/share/terminfo/m/mouse-sun new file mode 100644 index 0000000000000000000000000000000000000000..016fced44fa463052149fc92a9ca4f7e8acd3aaa GIT binary patch literal 393 zcmb`DOA7&E7=@n?x!><5G08|mNJ+A@^)JkFkjrlNe)i}6FiBa-srPcuds!SywaF6V z#v1S9o;=?>T+i<4eBJvS_hfGkv&{gdctfFeTmre(f(TIz*E&fZOS^wn+a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mrxvt b/usr/share/terminfo/m/mrxvt new file mode 100644 index 0000000000000000000000000000000000000000..52b7a42be8a9646ab15e1eac8d40839d6eb1bd8c GIT binary patch literal 3044 zcmb7GYiv|S6h3q3MqUEG2!th~z+x>y_ujjA?`|$oXc4#2Za0)_Lka1NQrg|JZMP5T z!vv!Kz&`{Njf5YDXjFb+BpM9i2Z2NkAu(V~i18ib4~&T+#22`JXJ)oW1r3`$-*@JG zXU@#d%$>Un#e7;$bE!|SLU#rU@e_OVeoq zm2UHyPHPb-vdE@+w2+oy#7abb+CXWlqel2mv<=t_E0sDGc2f`SrlRsE6z-!J=_Pmv z=@7jNeuLhjcj*JAou|(fmrB2YZyNs(uoR`zG}yi30kJ?lES8B%5fcfqN>q!q$cRR0 z&9H5vO>~JK(GP!AjEm>M|NYq~4v3eLbws==j)PDBqsJNXt%^Kk&9|0VQR^|Q(#l(< zQURtv1JH)|XSgu3A4>*H!B` zppd%fbi>@5E9c3GTq;*cPlmEaZjz0%MRv$uIVi{EetAG1l85C{c}$*=r{r0AL0*=h z%kShhd0qZ4r9I1j(2m$k?G?6Xhjxv<$!@e;><+uv9<;~o{q_O-kbT%bY9F&t*ms`y z?Ua-DS^K>GiT&wa_PbrJyN!Ke#{9;EQSHqIq0j|SMN1^du6;WwUT=~AjKw(m0iqVZRs<7&_9<2n2R6ehS z6S_PSh}Q(Rh9axsskN^!JDj2-Ys*eu+2N8(;%ds_B3zMwnXi7E`mOlsSO8wZG&28Z zEx1AzmNJHw!3JVSc*V_TcVf4AdwF`XXjQb3h!#U98nWxcjceD57QE;<+JSDz;rh`q z&uOV>aZYr{+-OLVG|iw$!w75-YzWp58>H6OwzjUWojZGadV6!Ze7>)5_wGWWzkgt0 zaIjb$8X6uR85tejvuE$#v9a;-iHS*G*R2$(sE#}ygUj2{z*AH^=Y?tm)NUoUA82wl zVF%Ri=$1bf{Z|)tBCPiohV5I^q$544W{9inn#OhDcP)tA}gL1+r2)QY&>) z4l^933DW-|4$>=hgpShN82^1bMQ7+Ex=5EXgRkf+U8A4qXS#(s%n-BjuVKDeBp$^) zD#a7R6<7?tvSuO8c`@7Sh5Aw}UsImGt>T(|O$ki_liALs-W78=%^6DSVrJ(9onp?h zIc|YYam}Xd6!R#U6YG|zrd#2I{s z1VaGGu(6n7F~eep#SFx!GV7rLApxNQAp)VM8|t9~p#q@-p#q`S@`$xOVl9tY%OlqE zh;iR3KC!R3KC!)XlZr7YG#y6$ljwwJFPn bgr+R?rYz*9EYzkf#5R|D+Z`D64wwD}7H#v) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mrxvt-256color b/usr/share/terminfo/m/mrxvt-256color new file mode 100644 index 0000000000000000000000000000000000000000..02666759e423679b3e166b913f2ff602e71bb6b5 GIT binary patch literal 3276 zcmb7GTWDNG82;zXiLIAfZ$)v7R_oE4QoHBA>q#3;YE9Z^6WT^YQ>D2zx7}p3*<9LO zgo^r5UrGf<@j;5B_Cc{I74bo=*dhh7A{6n07kp3z5mCIY-#;@OQB%c3=KKEnzkmLj zom=K=k)|7IIgNO9)FLvZ&D2EOXb0?e+6~;J+V?6P zpdlKiva;tC9-xQlVOWRgFg*r-nx3Z@=@q4&qz@EVDnEgLHTLgdDJqpEC>M###8u)N zaf7H8X%UG!(IA>cPV9izfwEh4iM?V-jKQ83v*JGRzkdhBLGcKpo)piB7r@8=*5VEE znetp=U1?o!Io3^9tyQopl_HA%O4g*c-OOm_MEUz!FT!}e%8+Y zy@&X-*2fF2zO=rvzE`!MfkNt*OAT{vxm+Prar@-_LUd`F&yVLHmhwX8D z#=hS^Xdkwpu#ebB?PK=2$Gw8rxGI73K!Y z4i&}aZezg6O@gV+5k(jBKrNeUd6b;=hzeaoGMQcZL|rCO&@_MuFmjG>Ivo;_V% zd-wMD4-E|u=ktZa$jInuu{btXDvghq%M%lmlT%aE)BE=A-#;@mJ3BWw&-1#AQfnGg zH>Y9pGPLp#)ynyaS^%|L8Ewa!JWW^uwK}>ME;xBwJ+;)HUTOq#Pj0oH$?OKkUu|mA zyQVict937J*yQm{d#~EwP4s5+4Eu($n5y5;}GxF=%HhD09Gy5ja zP4qf=hOy06e|#fhgW|&K-3~Jv0pNUlJzy?=HVLx0Chl?5!4goAsMC^^`nzxCeLLfY z;ha+l?8lc(-e{H`8m&Tejzfy=YRHBzGe%vgnaJp5 zW+%rw#GFfWd}1BqnN6%i%+WR{(5nu~=L-niTT`eh(iAgAI!mOpMEYPy`rJi2i#c7P z4l#EH{tNIC2^TuzOAQ@q3N=NVVomDb5so1LS3;zwP*bES2DMJ3lu;&8N_2Y%b?l_! zO^rT7zz{M-3^5?bg~c3;ITmv)<{;jY+XMv&2?z}c5eT)ZwFN2=DiA6VDiCTj_t?xm zHgk{7++#EMxNY-JC_qR+Xh4WSsJRYSflz@^flz@^+qT~Y6$ljw6$ljwb$c_n1wsWv j1wsWvZExd(fc7@%?QM|T+n~0$LG1EqxZ6d6-s909B literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/ms-terminal b/usr/share/terminfo/m/ms-terminal new file mode 100644 index 0000000000000000000000000000000000000000..3ee4703e4a70bb2413932ac189544de23879b602 GIT binary patch literal 3511 zcmb_eYiwM_6+W|b4Na8_K~xG^31Y;A5Sn=Jd$-q#$rBrFuj9mt!!}hOHuhq#v+>%* zj_vRgAd08}2?fz6&<9j)$&aLhBB4HnpomJ5`lBF~mQq!sfT$3tAf){8_B(U#y0wy^ z{=o8l-NAy#A4t$DUpqJ=(^g5lPKcW6l`j9@M&u!~^eTkCPS@6}V-3(rt+V%Qs zwN?cxuUgfOYOCs0y{cb*N9~6`gfgP4YEn(ByI?<{9#W4k^jrLs=Iis;aZEj}ex^>V zm((ljjCxbOqux(@e4;*6XH{J-%Uqt}rmHeHWTH$VlVsLsz7Nj{>s=g`Yfr=fhSmO@ zdFKLc-o1eT+-U#n`M~!2c%kp-nfXkU<`zqV%dAzeFHf2M&H6gMMh8048+C`?rg!Uo zx~vcBX??eTP(PxN=@a@HeNsQKf308DXY?ETZT+tPm;SdttCh3FxzxGRX?Cu6T&Lh{ zaN3=sv(wq*3_2BO(wTGaa~^gccaA$haem>Pb~xYv|Mx5BW#={LE$45}d(KA}=-b(J zZoF;h@txc1i#@y27^S8szl3OCoQu`Bn%-{8mTsks>1&iNnX;+6W*{+D&kT&i;ST}Y zvnB6l@GU6JX{($5Yf6W9I5wg%w|U_x4kHZL8@1J8R5qb(5NG0r?CC-2qU@?1III9% zhBh}B6o!%3OL9qW0v?au0r$wW6)!-*mK}9J!XW*sjoA|WYz(CK{6>sm6mHLU^=!Ac zaQNC*HLN{8R1E;*8elY8c$ZdTwkOJO=CO zY#5x%dN_+Ub~FsmQbq|F!ZNXXfE#&c#+@^3%)oxi9)NbvWaQyY7k_}VF@2S?U1Zu! zwO}T&gk}(vZ<1^&$G*r+B(6!=3}Jd=dN2bqT~qbVEb6h;1DK(hG0eP4u#D}rg!b;; zx9_&whK9=J+ixEk86B-u#>NgFtX2;l8XvFKCMG5)@3`ae;i;+V=_5yGW@cyS=8p0t z--^-}^E|f2nA74`Sbo9_!Sl^EkX@Svr(Gbag$queL60{;$qUlXye8<3Ex?3bz$6LUc;;tItdNc-TGo>WwdVUZ_alWvJ_b?Z~kOT$nr9HS+E(QgO zJrK$G(Ee}PUGIhAoLPdi^cDJ7+GS1m{<>-{x$5`FIvvVe$TV%}jpI zw3-RuCN_iCf255xFX`1e$2k3kBIQ@WrOh2bn^dkM1es5nxf1!WS2lO#s zL-W+6ma1iHxoTFcREvt#I<;Bdg4fP&wO0+PF}!kS)xGMwc;P&uo>I@Mlj@i1MZD)U zUT8~@{}Q^4zK*wCmR69#Tdjox%F{a9NH#2J7}XEy zS-jLvV_d(XSLhG)M|zX~ijlofAJM0D7Ei{DFt*Fo73wN=jk->KQ@I#lg7?@Kg$>}@ zxvgOrlzje_c`FX_8u3TZTKH(>qJ;NBx^B1-*O`f7GdOAz?j&0hUkKi*=>bd6f}hC! z-?-9!x!D7uP$&|Lg?zb%0-;bS5{iXiG6yvhX~yUlx2by3Ak&YqO!B`ghQ#aoSX)Ek1SCX!{^-uTg&&jcnfJ zGXxAFL&OjRy1B5}&0;r;-7I!P+|s=n3J?+y8W187YJ0H@DiA6VDiA6VY6oZR;EWxd zv4b;qaK_H9JD>m|0igjQ0-<*IvkHU?gbIWTgxb@)6DklY5GoKV5NdA+_XR=)LIpwv gLhb9}f(Cs((EEBI_w_*S>xpT+GBrgthN%ku2goC(rT_o{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/ms-vt-utf8 b/usr/share/terminfo/m/ms-vt-utf8 new file mode 100644 index 0000000000000000000000000000000000000000..61a77521818a182ef667498bb7299fdb77684e45 GIT binary patch literal 1653 zcmb_dNoW*N5UpQ7XcRSSqZq$n)U;bNIz4Mb$4p{eq7ot!HwKI$ah#YLGbUr)M!|z# z1o7fQ5k&AJLU08^)I=kKs3?MHL=^NOUfd8Oh-207>9`$4w3(`U|5d%}|EqiGiDEWP zhtbd~#>-@4kV(-gZ0E6%}1xCEEsD)d4h+=AP17w*GD%0D9OhiC92SNjTH z!#lzQWMAlXdBW}dJ?0ZPMoiS1X`+;3FjrM6YDBHZb=q$r9~W&RDbk{c@D0s=@8qJJ zgZvO2fy|E8-pz9?{EhiB`~UDHoQzX(29~0QA+)gy7vfT^#|B)B>#!N)n8Xg;h8f(8 z`|$uC!ozqJkK;)^h23}_FX0uuj<@g*KKR3qAN?W!>zSV88+?nO@bh2le(m!wYm_78 zP#6g+YPOmw%WSdDl+SGGAfi@9mljt9y_JNQ6<7E<4iZ0A*HT#}3}+4fc~rEfxWdQP z)jEzM6intQ%LU=zK)_)Ns61JaD|d^WNWDFv>gR*9KzTv=K>0xhKm|dCK!rh-fhq?T z2US9K3qZ{U6(LkZR!w~)RzmT{B34|@gH+5S^O5<vbc)UJZWoTo>8417OBh#-!2t0GiKVhOqa8ynd8K7OY4-livQ z*Ao57p3OJg_oVu^^mX)gHl}ZEz0lRW?fUlfJ3j9Gu!@$O@LzS8a^VHzCy1gM$w z)hrrt8>lIu==cUt+~9#5JaU7FZt&O*9=yS$H~54GkKf>DW3bX-tz@latz@latz@la ztz@latz@latz@latzfNStzfNStzfNStzfNStzfNStzfNSZPaq#T6$UOy>3}STxc^N eG1N?+&0lT@%99NAqh}PzA@{o=^%tUg4SWNtWZ{qi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/ms-vt100 b/usr/share/terminfo/m/ms-vt100 new file mode 100644 index 0000000000000000000000000000000000000000..7c53b065a57135b69afcf4958d8d8dffe2aa1020 GIT binary patch literal 1207 zcmdr~&ubG=5T2)jTERpQf^{zu@~XkM>~40mm5m8)Dn=z#RP>NT4Ncl?&BnD^>#tZ4 z)T4M6ym%B3Diu6<@JAyaL_PGNw#Rx^(1Pf}tn=R6jVTuY0ADgQ-+c4UWM^Ntlbz5D zT@WX~h+XfWaTQr^X{HscZY%HZR^$?F?M7r%$ zN&t+%fF_s-%I%0R4@4s3?9pMg5wtAY5K1#jRbs!DQ7Y12a3&Nq6)l0LACIPTh z0Bje4&5$j08gn|jl$6GC2~#umDgwhCtVjiXA%h?pY{@*|7Q1MM4R?~XL0wa!Cd*ZX znt)hJ@RA{N4NE#TZ6@18-7qajs44c$K{xE)+_$BF+dz-JbTU+YIPqihYvqCUcIxA) zr`1LKS?%TNS*LlXIo+&}x$|cq%{)K%;{4o&m5bjlEjK<~zCGK*r_UG_?yDf}8kXWR YCQ5K~cwudhnXd4|Vpu|`QLmcFuhhuVt$}sW`O`X=OG6g+5VIc+ zxcnhF_DhAM%;iqF>`98JhAPg&dAI-<;WAu<0T_f^a0l+e1Ij-ndjikkgsaTkaJ(k$P8xYFYrw0_6kc2NeJn1Qh}m1{DD{4^$PXIH+=} zTL@|{s3@U&vO4M;wYn8=ENaEod`NXzWPY*$8MTS&2{e0v?&C1E9-xj6Lk%6kU4031 zL3SZ>)vAVW5U_)GsGC5LAO z;4V64IaP2&&FV-!CJ{$$y&);$y&);$y&); z$y&);$y&);$y&i$!CJvu!CJvu!CJvu!CJvu!CJvu!P=PRy|whR(tF*$oVaigA2HlU bo-I&i2dk0{^rL4KbdmRAkopr**9zYO>%-tL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/ms-vt100-color b/usr/share/terminfo/m/ms-vt100-color new file mode 100644 index 0000000000000000000000000000000000000000..da376774b3debfa6f01c52aacc54f110795e4b2a GIT binary patch literal 1421 zcmds1J8Tm{5S_gQ5kSOA0ZO>WATNrAjqc9ppU(J`AjJWNM4ER7g-zKuAFWbWi{SQDJ6x?<|K@R7k9DX5PGcvwOR%yB)*_ zyI}wd#3z|Gf8A0Q#h)z~%hhJxDp}1&p_D5(YHm$Y6nE;-;R*Lht&sHs5dMG|nBX9c zHAy4i>udcDn{m zxQNUpxNP&+;pQ5J=xn!db+Na*uv7mt-mx`Hc6GEqRiGxsCjuG zROVGQ4K0ACBhNQA?Evf+Ows{3mtb&00obfc0iDiV5M4};;{pLgH-be3VIz{4Gk8Q1 zki%@-lYIZ!MH6hfN{BY8WvJ9(xrR^|5K94G3X5FFQji)ZlSQf3PmjB(A$FdIO|WOc zH|QVQJFKi8>z%td|MSF`{N2Kfg_VQWDti@7ROc@73h}mcGsuNXOclzaXBLPWdemfqpB_WH Ojhw$_5C3nbj>2!o!yHrq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/msk227 b/usr/share/terminfo/m/msk227 new file mode 100644 index 0000000000000000000000000000000000000000..c0d5706a8b986276656b86233a11d052258021ea GIT binary patch literal 531 zcma)3T}uK%6g?6|YCj-45JNC3#YRpW8w8PGSi4OMKKUF*CDQra%z10zc6@)rap16G+iOF40 zTvm0vhJRJ2jSXxeN(yGua+>f{T*vq&r7be1 zzj!(~ie9bz7T=l0eZF#LIpJ^iZqhzdiJxEt3_u_3%CIbpqA2&}jSSTf1gqeMc{$d= z3fSV1O+E!Kcnxas91M*N4il3;yPgPKp;vsGIC9FKb8?&muaLuzS+R*c*ashw#Wx9~ B4}$;z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/msk22714 b/usr/share/terminfo/m/msk22714 new file mode 100644 index 0000000000000000000000000000000000000000..487bb61b24f206015877fcb0711289e09d56635a GIT binary patch literal 603 zcmbu6??*#X7{|X8Y1JQ)zT}A8Qts^D-R&-s?XF+jZ9kZ37QL9HW~?82)%*UBNJKZPS1ZaJ#pl~gqkMDX{BR564xbo&Ex`=ItwOu`VF)^0|ki3H}c zpnY#cE~I6x1(Z?Kw4viBw$KbKy4{_S&ia|)%Ja});8N%c*SNtg?r@I>JmN{OK8H0g zp}vONZ~9;GCa1msIPn8q0)4Ou){Ty3#8k|fHJV1p{zlLPSLNlH2XkPB`&{9%p9afd z32azxFe~bcYSVCfB(oBT#$X$Zth>rj%eVgir7CG!u9-;l4lb{2pKxx1Q SGvFL1q`gs$fGuzjQG5YaK?cqM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/msk227am b/usr/share/terminfo/m/msk227am new file mode 100644 index 0000000000000000000000000000000000000000..d7ade8c0eb7da1549f9dd2902fc9ae7d1f5fdaa1 GIT binary patch literal 554 zcmah`O-sW-6r3Q4t^NRUKo()GSRytOA_!u?s3gV;#Y2ywh{h64+o%`sB8Z5HAc%i8 zt}%v0!M?-p%)EWG%g&P4#wuoThYtjkpev>Fg6TJ z-1yO%@UEiEz>EBW2)yyBe=z|xOfL;bn8PCCtf1a7oA44=AQf6m*t%MEY+?ty3C{); zsHaM+(CNU=aW}>HIql2i;TO;Q#_?m)eM-+fr~AvlGew8#>{YqFa%z10zc6@)rap16G+iOF40 zTvm0vhJRJ2jSXxeN(yGua+>f{T*vq&r7be1 zzj!(~ie9bz7T=l0eZF#LIpJ^iZqhzdiJxEt3_u_3%CIbpqA2&}jSSTf1gqeMc{$d= z3fSV1O+E!Kcnxas91M*N4il3;yPgPKp;vsGIC9FKb8?&muaLuzS+R*c*ashw#Wx9~ B4}$;z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mskermit22714 b/usr/share/terminfo/m/mskermit22714 new file mode 100644 index 0000000000000000000000000000000000000000..487bb61b24f206015877fcb0711289e09d56635a GIT binary patch literal 603 zcmbu6??*#X7{|X8Y1JQ)zT}A8Qts^D-R&-s?XF+jZ9kZ37QL9HW~?82)%*UBNJKZPS1ZaJ#pl~gqkMDX{BR564xbo&Ex`=ItwOu`VF)^0|ki3H}c zpnY#cE~I6x1(Z?Kw4viBw$KbKy4{_S&ia|)%Ja});8N%c*SNtg?r@I>JmN{OK8H0g zp}vONZ~9;GCa1msIPn8q0)4Ou){Ty3#8k|fHJV1p{zlLPSLNlH2XkPB`&{9%p9afd z32azxFe~bcYSVCfB(oBT#$X$Zth>rj%eVgir7CG!u9-;l4lb{2pKxx1Q SGvFL1q`gs$fGuzjQG5YaK?cqM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mskermit227am b/usr/share/terminfo/m/mskermit227am new file mode 100644 index 0000000000000000000000000000000000000000..d7ade8c0eb7da1549f9dd2902fc9ae7d1f5fdaa1 GIT binary patch literal 554 zcmah`O-sW-6r3Q4t^NRUKo()GSRytOA_!u?s3gV;#Y2ywh{h64+o%`sB8Z5HAc%i8 zt}%v0!M?-p%)EWG%g&P4#wuoThYtjkpev>Fg6TJ z-1yO%@UEiEz>EBW2)yyBe=z|xOfL;bn8PCCtf1a7oA44=AQf6m*t%MEY+?ty3C{); zsHaM+(CNU=aW}>HIql2i;TO;Q#_?m)eM-+fr~AvlGew8#>{YqFcQu^=Xrk5a~#}xq#sw&gg>yQ zP#LlI3Y7uIRB3&^wB=2OS&Vs$3zht4&Rc61O4%GBIK8A=2=1U2-Rw7^8IIF}c3eUy zGsn4xAq-;_K~^D5For3LxOb0 z&`Wwn)$29h;4R+aJwD(gKH)RI;H!K3tv2($cK=b|IoWNz|2*fsak^Uls_z`tv&OmK z>|c<^-dWYf|C~E(|Ga*?T$U@+B_8P!pWKj}GAJ5H3k;|Q4|LWa3|JxPedsN-958#m zy=I@eWR~rdlmj7t?H;Jl;y<81n_s>IItRT6^&dAhX6Zv{%%-850Ms;@TX4g1qKSY% zXj@iD6D;a$ccBqJSc(SrAqfL=o8mN16EsO-icpkdG(|I%q!djXxX#yXL*H)y(}C^5 yope64_c-<>x*92ji&JaUmE=ZZb7m{G9fx?hkfsbR&>}5SmU6UAk7$MR2L1tEt(FG> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mt4520-rv b/usr/share/terminfo/m/mt4520-rv new file mode 100644 index 0000000000000000000000000000000000000000..8f981a8ddd8f43f50ec25bd82e18c20f122fd0b8 GIT binary patch literal 825 zcmaJ~p=iabC_-J-23u?~q_LoglY<}#f+&to zPX09x4&vb8;Nalk;2`n4*QCV7Bj0`Beed17cSrg~g1V`LZs|ePykyGMhup?-t+M0p z4|%p*i%To++6~*S+wn%FWbYFR{-P7C0;=?qAB+MNQ5(fjy^rEF$dLq%(gf5rFh_ap z*`Q6@pj4U8|7SPv~5zq`^Cewzrr%AC8Sc5D8i-1+b zl$4W%E+>8)Q23CMocwx`7Su{BZ;@itESuBP^-jE$xkVQTe^3v?cDlAay|5o`uwWEro p)yrG1t$AD9b=%V#o}ud`pU)x%WpR3rI#Jb3H6If9#42M|=@+`POltrD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mt70 b/usr/share/terminfo/m/mt70 new file mode 100644 index 0000000000000000000000000000000000000000..ffe744ee93e72001003a90eb556ed1533114c09e GIT binary patch literal 842 zcma*ly=xP37zgn0W2t@f9HiEg2Wkj83-*P}QQAUdux(zNCTUa(t)P&$No}-wX-Qu# zbn99W#6cV!92^`R92^`R92^`R97KxXAL9A#B~8gt>cQu^=Xrk5a~#}xq#sw&gg>yQ zP#LlI3Y7uIRB3&^wB=2OS&Vs$3zht4&Rc61O4%GBIK8A=2=1U2-Rw7^8IIF}c3eUy zGsn4xAq-;_K~^D5For3LxOb0 z&`Wwn)$29h;4R+aJwD(gKH)RI;H!K3tv2($cK=b|IoWNz|2*fsak^Uls_z`tv&OmK z>|c<^-dWYf|C~E(|Ga*?T$U@+B_8P!pWKj}GAJ5H3k;|Q4|LWa3|JxPedsN-958#m zy=I@eWR~rdlmj7t?H;Jl;y<81n_s>IItRT6^&dAhX6Zv{%%-850Ms;@TX4g1qKSY% zXj@iD6D;a$ccBqJSc(SrAqfL=o8mN16EsO-icpkdG(|I%q!djXxX#yXL*H)y(}C^5 yope64_c-<>x*92ji&JaUmE=ZZb7m{G9fx?hkfsbR&>}5SmU6UAk7$MR2L1tEt(FG> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mterm b/usr/share/terminfo/m/mterm new file mode 100644 index 0000000000000000000000000000000000000000..016fced44fa463052149fc92a9ca4f7e8acd3aaa GIT binary patch literal 393 zcmb`DOA7&E7=@n?x!><5G08|mNJ+A@^)JkFkjrlNe)i}6FiBa-srPcuds!SywaF6V z#v1S9o;=?>T+i<4eBJvS_hfGkv&{gdctfFeTmre(f(TIz*E&fZOS^wn+a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mterm-ansi b/usr/share/terminfo/m/mterm-ansi new file mode 100644 index 0000000000000000000000000000000000000000..1935026a289ebd97ab2399968460393706acc1f4 GIT binary patch literal 761 zcmb`EKS*0q6vn?>Dpg98p<4ptatDV}^L#OuH-z{HZ8ai|U?CmyB#C_{FL@>}YGMps zx^yZO3Z)%HaP8{q>gww1>gt+)=cX}3>DCM1cYgPrd(SUHM_D;lFTe zO|P5T$i1E_`K_uOdi5HV!f0{R?~ha9y*}4tJY|pPx})+@e3D>m$qmS5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/m/mvterm b/usr/share/terminfo/m/mvterm new file mode 100644 index 0000000000000000000000000000000000000000..60f5cdeef945bf2885e55610353b401a28b7867e GIT binary patch literal 1419 zcmdT^ziU%b7(F*AR>2krvGh3<^@`WHfetJy*5o=U-~2M z;y>Wv;NsvQ4h{|?iVhAAf`WpAf`Sf?j;=yH_vWRg(5bli$obB>=lkCM?)M%qJ>n#e zq6;N4?6X}bU$q;q8}R!Zsd~woEv9MoX6LiLwwoTGP5?sxAjm3cnnDM<(cI(0W&Ak~OojWJ#!;z%MzzJ}|#ft=2@HnmYjo$CfRaZCHRaYysrt*U#t zPyJwP-E2Pe^dmgR6FkF9yuxd|!8?4wColKK<8L1Sz)$@0^ezKw>o@*jzvvXr<}uML z`p7|I=VfZ=CSzU{MOoP5DfM&l!mE5M-iwdov-qml-#vGGk0ZWq-B#VZc1hR75>2)yFTR>h8*bY)HopNK>tYl;M_S zDx_19);i2ozcg)Cc0oFwGT$Xl7%?2=X3=rNdnsv-xjmCDjmwOXq=&hoPB*6S-PtE+2k>+6li#>VC*j5DJ~pPzTD;|AiVE{4>T cQ)7`rdUU12p5k98|2Ta-kGj;EFk7?m7eH$P(EtDd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/n7900 b/usr/share/terminfo/n/n7900 new file mode 100644 index 0000000000000000000000000000000000000000..8153497a1bd4bb8e7ab8d5dea39f443199ef567e GIT binary patch literal 500 zcmaKpPfG(a5XE1_KUL~Q6m$o1MTUqyxY?~P;=yWF1R#YUn+v@jhCy>OoMyw5rJ z-18pJ-EVmC914*!exqbGnU0sI=h6$BDG~~nHFbtvp_#$S_>iktZ)> z6Pr%%-TXTb-{(=vy?=af&d6pnV%hB58n-LlG&YU9#yw+8>%R+{q@pEMuKjjqj`{vY z&&7Ak`>BTNsDXmiOfA$#ozz7U>ZU&Grzpi}l*TDRDN55U&CvqAMeooOou*~_h(4xI z=u`TPzM!-8C4Ifi9iOAiy5h<%*Zn_}Tce-;)7O8YU+F-f=OrBIYZWu&X38>S0W;+> zV@E|eEOrzHfgU}S3H4;*Y)T>+ErcV@s?Fp zKA|c%C}@)wI1CPf1K=ibEw~Q+0=ORB0B!^y1_!}Mz+K>0@XO#9a64Gt!W}T{)y3v5 zD`VE0(`Io^u{mrjUPn2VQ#?84NM5OMa#D^`{7kW3=Ea;~I>Ja!c-|3$N|>+qWK0>V zWgfDJTV$q-QqtIrSXwt|x$PFG1AfVrZawC7z-LphP)GF%t+3Tfp_WbkLaS_AtyGZ{ zdKNN*HgKmJ$DzW~r^=o#-{-zF@L2TQkv~W8k6j$UJ+V5unYfnRm|9G&pIm=^J$+*O z`3qA&pfL{S02X}*ez`fu; z@T=h0!0&-igZsfJzyshYcn~}Uj)8~4Bj8c+``{12W8gS=96SM*`qF;%T|z690$zW>r#H*1_g3wfFVF1#RGarVM5ay( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nansi.sysk b/usr/share/terminfo/n/nansi.sysk new file mode 100644 index 0000000000000000000000000000000000000000..9c45d353217571da44c7c1ebf92e1f56174821c7 GIT binary patch literal 1876 zcmb`GU1%It6vzL&$3j%l76fgAGNewUG)Z@6cQX?wHrXbcwrSc;*HqKgCY$bVce~lm zCc9}&(kljDrVrE`@8>p z?zv~?&S?&fU^lj-9(s?;>2kHuSzW9a&ui3_?C%&jnlh5}Q`3dh#=uM|T__tz5=T-8 zJ5ysRW1^!EmC7m(mvYBkIP|jwI+{~PDt^kCv@r3-zW=SuGkVK=gQ|$Jq34NeV zE5Np3b|;$gkZ`M>KP>(cv36K`-i00{G^w0V3Ju9AqcWbrWT59Uy&h4~bOl#s{4`KM zlkxL_8;vjUC9dH*zQMQn9zWnm{DhxzL)L#2yNO$91hL`Jw$Q22?eFqW%F18v84foZ zBVvulsP-FK-VVPLz8qc&zpwQV#NX6(D;%bcsLj;$H~Qw7t>C-q9@;_o(f!m+50XK< zXg57d?X;I{ijzwo?V|(@&>$V6VMbctHV?L%l89}+VQX2miyo>{TY%mEShiyc6d_e8jW#sJMjDnDIaQ-RSPHyF1*jyIRIQC+@iwb$p+4how$VfsH2CG-~9LtM{t0=S;+8Uz@qZ%EBjzTvg z=teZEZLZ$ts%@^`=BjOOR8^-EM|G&Awfy{1&vrc9XUDVrE$TA`8D%x5(bjavzCt8Vs~HM8xpHZ$uh(Lh;RQ|vWma9xQ9F_l1R+tuc$d16g410lC2 z>Nm=SZYfYnwGM=3`VaP-B8|U+ogK zd~^g|AG?(*a!FsE+}L68QFVKJwzu!-c%XA<C3s_&-{|VboQ&_htpq|u9UCN zT&S$huFkDiCu*O}ublg6;p6AtUA(dM>+*N!uhrkU@CW!_DYMtfYd@`XJ`a8Y{1kW; zd>s5V_!;mR_yl+yd=mUD_(kwV@G0;FcoLijPk~Q^GvF*Z2R;LS3H&lR4=#Yuf{S3u uFZGwfGvEq%7W@kMRXJLEP8u$AOt7mgE-F{AyCtf7QT0r0o&26t-Sj8LY=yZ1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nansisys b/usr/share/terminfo/n/nansisys new file mode 100644 index 0000000000000000000000000000000000000000..88d3342e43f7bdc6e64eb92593563f76c6080b87 GIT binary patch literal 1632 zcmb_bZD?C%6n^fRLgydrKexdM)oTlDYi^P@ZPVIzsoiS7Vzan@XxFsqN7^RMOk3^R z)T2n+v@jhCy>OoMyw5rJ z-18pJ-EVmC914*!exqbGnU0sI=h6$BDG~~nHFbtvp_#$S_>iktZ)> z6Pr%%-TXTb-{(=vy?=af&d6pnV%hB58n-LlG&YU9#yw+8>%R+{q@pEMuKjjqj`{vY z&&7Ak`>BTNsDXmiOfA$#ozz7U>ZU&Grzpi}l*TDRDN55U&CvqAMeooOou*~_h(4xI z=u`TPzM!-8C4Ifi9iOAiy5h<%*Zn_}Tce-;)7O8YU+F-f=OrBIYZWu&X38>S0W;+> zV@E|eEOrzHfgU}S3H4;*Y)T>+ErcV@s?Fp zKA|c%C}@)wI1CPf1K=ibEw~Q+0=ORB0B!^y1_!}Mz+K>0@XO#9a64Gt!W}T{)y3v5 zD`VE0(`Io^u{mrjUPn2VQ#?84NM5OMa#D^`{7kW3=Ea;~I>Ja!c-|3$N|>+qWK0>V zWgfDJTV$q-QqtIrSXwt|x$PFG1AfVrZawC7z-LphP)GF%t+3Tfp_WbkLaS_AtyGZ{ zdKNN*HgKmJ$DzW~r^=o#-{-zF@L2TQkv~W8k6j$UJ+V5unYfnRm|9G&pIm=^J$+*O z`3qA&pfL{S02X}*ez`fu; z@T=h0!0&-igZsfJzyshYcn~}Uj)8~4Bj8c+``{12W8gS=96SM*`qF;%T|z690$zW>r#H*1_g3wfFVF1#RGarVM5ay( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nansisysk b/usr/share/terminfo/n/nansisysk new file mode 100644 index 0000000000000000000000000000000000000000..9c45d353217571da44c7c1ebf92e1f56174821c7 GIT binary patch literal 1876 zcmb`GU1%It6vzL&$3j%l76fgAGNewUG)Z@6cQX?wHrXbcwrSc;*HqKgCY$bVce~lm zCc9}&(kljDrVrE`@8>p z?zv~?&S?&fU^lj-9(s?;>2kHuSzW9a&ui3_?C%&jnlh5}Q`3dh#=uM|T__tz5=T-8 zJ5ysRW1^!EmC7m(mvYBkIP|jwI+{~PDt^kCv@r3-zW=SuGkVK=gQ|$Jq34NeV zE5Np3b|;$gkZ`M>KP>(cv36K`-i00{G^w0V3Ju9AqcWbrWT59Uy&h4~bOl#s{4`KM zlkxL_8;vjUC9dH*zQMQn9zWnm{DhxzL)L#2yNO$91hL`Jw$Q22?eFqW%F18v84foZ zBVvulsP-FK-VVPLz8qc&zpwQV#NX6(D;%bcsLj;$H~Qw7t>C-q9@;_o(f!m+50XK< zXg57d?X;I{ijzwo?V|(@&>$V6VMbctHV?L%l89}+VQX2miyo>{TY%mEShiyc6d_e8jW#sJMjDnDIaQ-RSPHyF1*jyIRIQC+@iwb$p+4how$VfsH2CG-~9LtM{t0=S;+8Uz@qZ%EBjzTvg z=teZEZLZ$ts%@^`=BjOOR8^-EM|G&Awfy{1&vrc9XUDVrE$TA`8D%x5(bjavzCt8Vs~HM8xpHZ$uh(Lh;RQ|vWma9xQ9F_l1R+tuc$d16g410lC2 z>Nm=SZYfYnwGM=3`VaP-B8|U+ogK zd~^g|AG?(*a!FsE+}L68QFVKJwzu!-c%XA<C3s_&-{|VboQ&_htpq|u9UCN zT&S$huFkDiCu*O}ublg6;p6AtUA(dM>+*N!uhrkU@CW!_DYMtfYd@`XJ`a8Y{1kW; zd>s5V_!;mR_yl+yd=mUD_(kwV@G0;FcoLijPk~Q^GvF*Z2R;LS3H&lR4=#Yuf{S3u uFZGwfGvEq%7W@kMRXJLEP8u$AOt7mgE-F{AyCtf7QT0r0o&26t-Sj8LY=yZ1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vppp b/usr/share/terminfo/n/ncr160vppp new file mode 100644 index 0000000000000000000000000000000000000000..c26381f08d1969a849ba31e65213c10a28faebb6 GIT binary patch literal 1172 zcmbW0OGs2v7{|Z!iI21)=z-;doOEuJO*Z#l=czN}m_0O`no`mz@XrV^hL|@6` zX?xa4=?jkIES>B<6E?HD9!DU&FkV@7u8vR7kr1So(t#sLP?=nJClJ6}VN_L7welKh zEA3KNnDW$1{ZyhsTB4hDi*6%+hwjon===0QRk`jXdO}ZOKc{7S1-(M=ROUT>ppVM> z1o>H6t}BJ>wg7KMpre89x^1Fe7$PaMA}@Nx5z#M7;~=f!AHYpwS9bJojC z|ICkx8F5Wj%&)0?C?3Om240BeApTOkhP5KzDF3aJU&OZ{yM9;C|Gq))#|CkK#!r>~ zwOT{`_iR>v^_plcH}DqT#*HkwnOix^F^+SBGo0fhALc$j!DSxe5x&5(pK2)-$(aS( z9LXj00?7g8$w^wYrgJVapIyi=>eo}aA`^FJo4A$%l4X)pBqzP@G>*w#IDHP}K>>7wBG?03 fKr4ssU6JjK(V zcV=^qyU+Id!aw`7JjVs)C~ooH=ZDCifM>k!)t~cAs11Il^4Dtq#Gk$H_EVkw%MQJ7 zJJj7hzN_w!P0!Cw<@SH6{P&hBiCv;f)QJ6}R@8|jLKA+`BwB?j!XhTRMXxv`2F0kD z5a)#)q&?*G$E^g__~RiXL2_7Sa^4NIdR{M?dUjGTS$ekL9}mJ)t$N2?N7|q&SCx~F zHDCnv7Cqzm1DYp;f2BVj#u4c-RjMVd@_Kjqv>OU;NM}f9`b;?>NS?JoiR2Q32|^wn zj>V7z70BJN>?nngWG*7F>HfHB7zx=T(_J##F4LwQlev)0B#k5{vsdkq={IFA>RL&T zsvA_1oTh3LrjJA?us{%mKo~?o6m)=?kJ!21L6SqxuafHNxcfiGy4o z_MSe_C)%LT^hNr=(GS{`OktHuJs{Ru=%mZrpgUb&sdR(&v&-!2mPh0d!x{x9SdNw4 zh{MY4W=)pJ++Md4yUQN1M{JF~X6tN&eTC=yj*2=()I^k+(ynwV{mPK?1fHkLGwH8X zUMg>tcglNZUD_XA@Ah;4#(pAeQ&D_>#_D%?YBL)C5wFeuf7XFr_I1>E!gtD-@a>`f z!8mUsHKk2yC9Y*`tz>AKIXFU-5Js1p;x_LH#tmI$=@)|WkR)Bfcv#kns`g;ql<}Hf zP{pM;>E;TDs7V;%JXD+OhM9%g>Y6RC=6x>dcC{W{MK{4!YCv|l0KtVYMR8OxOZsf7 zOu^+yL*xh53x011Q#@Q3@u~>k06ktpUzW{dcErkpayw+3dG%ycZPfkS2cb5JUF1|3 zWn1;A4Xu*en*{oReqaC?M8FV%HjoHNDlDv4pan*P=hY^uv+6lg&$~0qj=jO9;Y}|M z?W4v~CEg>>W5p6|tY_8eD zHbBiPMJOagR@F8U3RkHG8rAHAsEBD!gEsEhZ1?gy@R`NAR^J5NTkjIE3@iY%z&wqN zq|*} zLu7E9sYnqbp`~n{8zD0sv7)izF;cI|Z*?8M$pJ8-_ibslw~WU)z#=e5xwJvKQ4WMC HH)hZ;p0%nd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vt100pp b/usr/share/terminfo/n/ncr160vt100pp new file mode 100644 index 0000000000000000000000000000000000000000..b4fed4334a283ad0b809e8d4b905821bbb99eeff GIT binary patch literal 1606 zcmcgsO=uHA6n?WQ*n(|95Y&YdF$)$&cQ%`B;>P}qwc1~8QEQ<;Y11}8P22Pj+amNJ z=t0n1uO2*j6%j;HFCG*{JSY_LCcTT`Mb>X7v(=y=y*T81?|a{yw>$G@vIm$=d#Q@* zSZ^RdI?H3`LXn$hp|H}~(i^f8rgbz`b1x7OX^?gJN=MMW1d$Dh;ahGS@Bl*Gm3j&2Urj5W0$rS&l_YTh|)lY71+GW zEVEU14SXHA&Tg_>N-w>^^X?$tVE5Pq_ME+8n{11HgQ97E-uFSNG-<6`uhyqs(MGk$ zP@Zbf)XZ1fTkXB}LEDt^XQlepfAbZAs(|NJ2ll|0k9~hA<@wrwT1IDCL;6}`tGPlDH4RoY3)iY-gcAr`RM@0E?^dKkc{99*)r8lm2D76%7%q%0 zisOPgQgfxV1(#d8NI_6D7xXt_iN+)RzKXV*O|dz zjnM1GQ{=AB$z@fd)?R~YCcUd0=mC0x^Uy4j;KH;5F+n22v;a+{*OPvd3gaBGfCyld zeoAduF5d5f4E#pOz;CJy8h@`Tdq8QGsuh06WsTo&8Td`#aU0^;ihM#!-2sPm^%{S< zrqLi~6k^7TQFOWCir50ROBAVyOgW|4Mk-pO4rttPbD|<)6l;vJpy8@>Y{M59EiPRO zafEH?`aFC;{0w{_4Gj$skB_I*Q&X8tHk-@k^V8EaGjnsr;{5!=!s6o6(waDqC`?xe zh&(DQE;K74tUOunUwYhb{6SJU-GNvhrok9+O>RZ(Xv~Qx21iN1EWh0q_(q4ogx|gG Z^{yqnrU)zmvy>UOC^N!=2xUes`Uy)tqbvXb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vt100wan b/usr/share/terminfo/n/ncr160vt100wan new file mode 100644 index 0000000000000000000000000000000000000000..f504fdce71c054739992094ed42553032eb9b826 GIT binary patch literal 1596 zcmcgsO=uHA6n?WQ7(ttZ2|{X;s->c)s^vs>WuSA|tA|zf44mF8m*Dl5=aN(2Ob)7JV5HZZnp&R7B??I* zCVq9rKrk5HrdsU~#2H>-B8l8|n2ynDGN~P&0ZLMuigX?L7Ttxu4|zb3=n3p9y`Yz{ ze7vT2Kx_1YKG6n!rZ2+(jegLkKoYCf+z>umVPiJ#g6*|&t=11T#4fX|TOOW21~vhi zW+|4pBSltWHyg5e=JvRQ*gf`;J!Y%y4O?d$>?=IqcT_Y+J zo(q4i_DXsyy_eRcb-_Q{-tBe%hJGSzQ<7YN#@stRjTz1Vh&N{cKXzc3`#S16;X37t zy7th1UqovoIj+npc}+=LN?uoz1vvaOPAP5i-aMlUw0Eud8xlPzv`7Fuj>>kCA zoyG-mx);PbNkQ6wuW6W|zBRjl=a@x}bI5`?C%x<5L)f^OA!%Q{NwU3+vt3n*@{D{? zSy76XrdXWofJPl6eR)0j*y3F4F9G*9ScWV^ zmLLm|MH(MZB&MflX6ENpsdPG%$!2r8g@wh%VsUAyR4SJ%l`6l8e$1osYtchOhq*Sm z(ws+**Ni_z61N!-W}%`=+)_2&Zv=v7C_FYv@-^|TZo)U&3&icdEh`UJuuKtBf)pr~ O&?z;cLHv}O)ae&YHLQ&Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vt100wpp b/usr/share/terminfo/n/ncr160vt100wpp new file mode 100644 index 0000000000000000000000000000000000000000..1b21d07a8809a4b2069ff82035372e20b7c08838 GIT binary patch literal 1612 zcmcgsOK1~O6uoa!um#(IAgBW+Vg@XV&M%py6Z;oywO?&fW1*k4X`4^eHvM5+gbIQ# z1l@J(!i8HAK@@f4LQ%wpLJ@b;y$Eh(Jn!XAH7H0oK636o_uTir?`00KdfH1>RLA-P z`O#S;sxK4`U0*B|R=QgILS|gok3$R%oQE1(oJ@^{a?>z9tw%zk%-HhC^zdwoh>2gx zFa&6fu94^M1N;^OCsL@A_ERk#BZr!xbWw`3RHQ55>vRM5Hn2f==|22JdPGm)d3!-G z!Cuol`beMX3vCJgD}ARQf+@`NDgoZ=;aencgFh{~=XHYhvVL}PTk*U>Hi9S(WLSaC z%gi!cWmm!1f$QuhyCwC~3Z8cd@dmrc9>CtC@$l@H3Mh(Al!AN@C95vU4yUUgs(YTtqnAT_B?Y6U|}xmv;0QnL`OG>qAyCJonU4<}5W_tMXV6P6$y;Y37? z-6BSLZ}UV7ICVxVq29MYp=nyklNh?^a6drIcO$N7~Hf0QBEvwT7hO#8%RAtg>eHg z0SmB6Jt>bXHt*L!1b!hz;1^W{O}~#Ro1nBySqi`6VvJvJ5%@*laT#JbikKlK-+)7^ zT*lw7t~K%=g{Zco6q27Ol|UK~RwO9L4r~HQnpPAhM6Cs;{bE z)vJD0J$<+EX+Q0u17iPBYi>p5-Sw_^-D>MxdGc6B7hU&3*fNhFhcVMz>Mmx+%d?MU z>hot$Emv1+M1p^PCZJ#mnxQzp3zV)5Fp)*O=^na|G=+2!mNM0-L2c>*KSwWuzXrNQ zZ_*XW59mYs1k$X}=sM7s^fi4)KhQ7qJKO)jQM-ik?*-q-D2}Hfk0iJZIh)`oL?lj# zd9fs#q9fMCv*Lny3BFfB7eSZAW${+B_Z{)Bct61=|G(EY_&yTX#W&(7u_gW#d#pRH zIKCfbmTUP|k?|PwwzX{bgBlm%Lq?xMAi7d9t{TjXtH}8H*o{;mhE<3U(&&%iK%kp*khP*7_mRIC^@~XThKbD`$ z&*c~LEBUSbUjDeF?1N|hyu-*Xc|*o>-_UJzM|M<=ksUcpPFp#(&}nO@wvrvq8KbuV zrVrbZ3e|LWRJ+FLKAL#l!zRu|J)9l&*>_VGL@2gSBmvXdU(&e-#8hH}x(IbLQO6Uh zW)g5Tk#2SqRb)45I4vXBM4U3rHyH{B1>4Lwh--V2GmNBRZgU&@rV!0Bn)kce^RV38 zMwLORieWxj1XQ6H`VISm3HyLM^3QeHV%22 z+#@T829fK&DM=pblu2 zPM)k*PoG{`ICG|6Z#0_CR%>~=(^*~ZcGuR{*L%H+QeXzI6kvQR+)ZQD+)T~Q z^x0r$A<}(pS{Z5X>flDtOh@Et=DgqI{r_p_JRH=IF@YSx4$jY`#l>(fiU&)j?<`(W zyyGBlm7gyRw0Y?t<1qD^#y)s-IFI JkLq)p{svboq{09I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vt200pp b/usr/share/terminfo/n/ncr160vt200pp new file mode 100644 index 0000000000000000000000000000000000000000..85d0af33c105a80a75a89cbc8986dd81e98f4bc2 GIT binary patch literal 1816 zcmb7FU1%It6h3$EQd5YDsD^ua#pgF=1rK@s#pks`Q$=j=?9QbcmubIy1E z?!9x)nVtJoK-*|5?NpgmV`9O}xl1kMy3OY4;nG;z6kPWa*wTldf-${3+nPy_mL5u{ ztCJ^>&5bWqh?M*~OhLg?G)nFEc2Kg?z(f{x(f#xQ8H#8(EW=cx8Z~Jd_ysx(ehze= zF3@|Bm+51=3d!p;`V#1Cx=!EG5A-wrF8051)E345Zt%MWwcCS``(r!|c`(L@Rarf! zCe^H}t9iAko>woam(^?Pb@M2_eWI?$c0P;OHRzwK>*|L3 zRozrutb44q)owow;`ON2Zv0kyxS#MhJSbxCsmvu9aOzAG&t?$zJYR=m( zoY5{_TEncbugCQ;JY)LsZT=&-S=O@{P5h7l*611C&@FvRzo^gZSM?kEE&Z;(sNdHg z=_~qEeNBI%ztZ36Z}s>3NBxujMgO*`-8Y`~=O#1%(OXkJsU4|1=*~=^*H3oYnRS|; zQ;D3WaViU$zAPL4X)v?TE_;zTl<6}r8{H>jue*=)IP0-YUm(6)c0q5qmfmO#4#d*Utl}1#Rq9Euk*y=oV;1lZc}C$H3mD1Wo{=4TlQg%! z1_Qo`ksKrOZsrUuJDRv<7;k2094K0gxARoR=3~U~XLITp+_>5R_w(WmW?1A-kXKUDTZNKnCQ4 z0IOq8Tq! zJR#Zfp~>Z4r^qKZbIxg}6?sm?x&aJ25H4R_VMh<(%64D~n0KN&XB3=Pk2BfpMDYv^ z;jbEX?o1SS9AzI_gggW}5BW45Jvu%}k z$|^Ue81m>9Lmnh)v^1AJMtW~)K^^6~6b78)4WPM;-GQ+2}7zf3uv3;+NC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vt200wan b/usr/share/terminfo/n/ncr160vt200wan new file mode 100644 index 0000000000000000000000000000000000000000..337c7cc4300a6874e40629a7f35690fca59fdbfa GIT binary patch literal 1800 zcmb7FO^6&-5U$s6jZu;;1O%}WN0|nLg8g3iOwXj(%>E?0uE|c4l|*a;ne1$KC-b|z zvpc)ES&@jMU=9k3AjE^>K@TEIhzC8GgE=T99`qnN2ol7L>OxJFQ}}$+}5t!DK*w6$Bw3S-gO^=F?H-ISW}%!c_vkF zf{jd0J&~%;te$F?7Rp3|e?2CkUM7t-iQ2{F45ex_g9{uhqgCX9av_-;ns?l9zdj3*$A zF`g2~MI=gMMpQ&y%!`gVE6&09GUz<$HSwl+JKp<_cvpNFW0U{i>l64cip%1vxGsJX ze~8s#>eonsv^4#rhGJpR614&YRY6)}PkjmL*NxHs%IB zB-I8sdjAUG3FYuD{>N^y^hb5O2mi;vdG`@{T%M5AvLc&uNj@u|moLdz zKad~EPvvLw3wc>yk>AK~<@a04-hbBhEk@puH|6j0&Vk!$XL?BOBRg^`PD?rE&}nI> zypSHs7^61}rYG!3g=#!Kq+MflpNzfkgo!gzkEe%x_HD|72#>9!alknC7j&iuu|GCJ zor5|St0S>ghhuOkmTr0-RixKxS5ii%jyPqQZ!+Wz3O1N;5ZCrJXBbSv-1-LeO(B|N zH1BuQXJNU&g(|%;2vt7J26IsSn*HFYy~iEgd>Q;~2RZ$A#Chvv7e_&>pu;A$GL|Et zqo65R4uMnvYov0_^M-4eIaqN&)U44mMjHc-Kq;u2y^rOb{V3T70Qu39OJXItDOQpj zXJt6PLsky-E4||5Y)MOaThb6#lCD&6uy0t#ur1wFE~&X3k4ivxd|*lDmst*o== zv_s{DM%RFT55ncKE9mJyT$vsW0CP@QHxYTKy~~*ybi%mf!v4#zzkX;z}OVIlg6mI zk(wLnv%$dB4Z||I^NSIH(t60y%;moS(;vi{V-n50y&Z zRlJyZx62sBDBA!lI8o>-?fIE(kjtN#Ci@xw?9c$dFDXDHcWg+zxPpgngO))HR4r+$ Mo>Cx>s?(bO0elLjUjP6A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vt200wpp b/usr/share/terminfo/n/ncr160vt200wpp new file mode 100644 index 0000000000000000000000000000000000000000..810b5ef791de1989eeaed9514b012d7180900da6 GIT binary patch literal 1822 zcmb7FU1%It6h3$EQd5YD_yfg3*vbxAM4Y)ZyR+L#vu!rTSlc9~+KNlDX*Pe|>}Hd0 zvT1Fjg474KpkNUZ`%NFXt{djqA1=jnl)Wv9u|;?!z#q4?O{Ex;0ywOxNbY zMoSN-)78n7$L7ZuD@00u9j2gQDSDCG?QNiBrGbeo>Z1GTelir%Zdit?LUYuh7VvX) z7W^FOJYAqmkeBHrx(dnbQ~CnvE4ohK()aW;{Vw*uanu&Y{%-I)1-09Qko#ji40$ld zhgDfUqbAj?s;LFFq@GnTsF&2M>NWV!gWggX)WtaVUG={D0QfTKiuzbxjqQ9EuWQgh zQ`glG>Q{9`ZL#jM(pJ0u5Qx`KtKTXK9uj`aI%BvVR**$;amJiZn3OqF`D=v|IN`ex~`l0lzv{H)vxH+^_%(~ zeNn%sKh#(BC;FQHTz{#**5Byw^pE-{{fqu>Q@d|G>(5PQ{-d|1dQ#g{x6$pHKChqb zvNP*6Jf{*l4dYZ6GksY$`qN-$pI!DMZz$7eTsFFo#a?$G=W*5}nZ7`LH|>H9U#tUh z!Vuz%COZc)7@MHZKrO}Uo>+RLF*p!QH?xXcWLBvsxkk2zJdatxJLDOKYb;*cWfc}sb|{c=PX za)VW{0kTIph;$=*ec zDGy{oJ}4l2FP!qANy$V>>LyB3e^GYF6%}RgMy2x@@oq_jBrIuDU#5Qpq9lO~suyLd8ZUh)d#eZ?zZ!EBaub+DpSj$F_9K{glW3r8l%ep2NiZwyYphc>V8>$}jKt5F`4E+lhv!HPR literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vt300an b/usr/share/terminfo/n/ncr160vt300an new file mode 100644 index 0000000000000000000000000000000000000000..3113e51a33d6cb4fbbd30c5697b0a5b0c8c086ea GIT binary patch literal 1816 zcmbVNU1%It6h3$Eq7l-jNQL59SnUp2Uz~eqc4wD~+59v#wkDf4wn*2OZnDi!_a~cV zlT9FQX`vzr6-AUj6h$A3_)sW_NTJdeiXfs0B1oYxeaVaXP>N8>dd}H9acdE&mp$iv z=l9;Z=giKt!iQ(zDcCJ`#i~<_D&?-!J=ZN%*T;qq#&yPZUq)N}@at%dH|FZI@qw|4 zSL3AXEa-xr@B(NEp&u<{P=qqnpn>=lyp8-E z(ns(KTts;pzJaSKY2ASD5d8o@!>@1)HsBAo-^Z<<5ajPh{xqXjYd^{fgAbuRV(>9B zDW*kP)I?pZigj^Dyd%z`??a^XNEgIs;-ZQDQd|;W8%*{8xxPi;b@8LPB{sx8A+2rJ zPOH^=35ix$^Y;_96ci|a!IbqQ}V2QSH3SlmKWsb@(X!MekHHSYx1W2 zUj8J1k-y2?@{Zh)zdu&>&b{tFX66Ig726Vv$DV{OiC)zQcHWtDYRV~wPE9+-#YAtC zjNS|~z0c08P>m#dwM#~Kzwx^JD37xCCVGALJyZoV6k7*P!U)D^b+U|Nk1?S-i|UY3 z2aHtX28-c7uP zmgj4D${~d3=pQButFIbr@qxW(c^?>4o2|r8n3%ORoL}h z1Btq|jI@BX1jmmT3e(dwGbc}$O678;QmxLS~kPlMQJ6vH=cL zj+;tG%{|rJQ=bhq5_#Rm)X}`==5_{pG$eUXGv|1Z>*pA<6DdY3Ek)q3cL1 SNQ+P^Xedo8Bo9hc8vX){i>D3% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vt300pp b/usr/share/terminfo/n/ncr160vt300pp new file mode 100644 index 0000000000000000000000000000000000000000..394329708cac309b89dafb64c78582f6b915b29b GIT binary patch literal 1828 zcmbVNU1%It6h3$EYAd7-6lzOGWi30};zQ@&ncdlCVzx;d45{s=t*z3vlAq0AcQ=`& zo81&*gg!_>$Wsv&MMbEfLZO1R4;DlP6$L32u?W6Mp)XSCOQFbm&Y3$grAX1so^!tQ zcYn?~yW1r^*ba}t9-&jS;|nV1HXEMnM$z)2{v&B!aNWIVOCNs$jp^1*V>&(D|4h0% zab|38bfE$u_!BdM3NA4W?e5Awk ziAXfWl2{gJ#j02n=fqp+e-G(HabA3CVlRl##TSS#BYi2p65kp-oki<=)PEGeiW}m# z0BeiYWj$@R+ddMlUTeS_Vq9XrYQ15-ZM|!KWPM^;vfX}2ZbD9Ln|xGu$tUD4)}Jy~ ze1kl^j^oILzbIcu&xoA3&tJXIlH|m4{sI1bqnmPBo|UU|O`enQ$PeUs`I)>ZFUc$N z8~KC$SzeRZ_^HG$P(*E>IJ(8>}MgG zR7e`hL-N5MKqtR9sT?aw`B+KXz{);TSXKr$D)BSSZb_dwEa?&}Nvme?V4ql)*#9kF zKDmCyj8Xu$IXiiS>lEqWDCaCYjZiru=^CLQLv(rU3S!+yS2l(L!n_mKDWl*twmK7? zPG}}#5P!C@-0^%-|FQa|MU=-;&Z9gABO{}ulao_Zr%qL?wOYMCJ3BWwKY#jkqp`Ty zY_?iUODoi$VnBmf3}~#l-`r#JXl}9Q7V~UqkIgaW=4$Tq#z2quD0@5z9>;qe|F3r5 zhm+zQO6LrA@cuk-d>Our;&D^S7aG64_ybVE5iRFtkrkbC=ql~`*<6q>oE!)H1phUq i@INSxh-AmQv`b4^u?A8TX#uLE8meOo$%E>+hQ9$ff}d#s literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160vt300wan b/usr/share/terminfo/n/ncr160vt300wan new file mode 100644 index 0000000000000000000000000000000000000000..20a056655917c2b6d5b902c9d1d7d6ad1a60979c GIT binary patch literal 1814 zcmbVNO>7%g5T3WsK#)R%5J-g;l0n{zp4dNoZPwIH(x_=mpnxy`TlQ?!F zwdOztq6dBsMXiuPh(ivDOM9x2a_OZK>ZO-*=!FAFNIg_VJ#jGKjCUi43Ze4knfd1L zz1cUj-dEIH^b$QwdzG1J%&s^YyWR3^yHjqQpBg`rbaS@-CXC6`r(jKX7Atef`V!da z)X781>fFZ6QhB99q~zCU3JR8@i`47w2E{80Ok~gyy-Kf>OCjxtWr`|Pqb7BLKctVr zKLdS5-_j=JHM&7tki2fvEuh!z)eq`=gn9peuAkuBQa`I-)Nksc>ZxJl zWuw>I1LEZwfsq$HD!grM7@ruIj4zEV#sgUXG#*8fq!W5b59{YO=e;PLQBD`OG3$eC z0-i&9>M{SR$1Hd*CM{k8s1Z|WcQb$vr`>6`kN zzOC=*yZWB~Rsa4(yAPgq{|Pf6X-Yhm*qwNWo=fGOePoubMXTvpmC$OsR%IoXPqWdR z2XhabB`0(yQ+d~BqkSau+J`xhvks>6zW8?Rf(%crV^P8+;tOuN25}%VL0y149;u^| zbdE*fXe8}a7geOXv@0$nT}Ph7%;z1ljDl_EGm_fgl^sUnG`qeHeJ;e699QD))CE{x zYobao3_>RtW`YGMevNOywmRk;W9D9aWapj8BfcZ23?bd?l35%BZGevP2@YG1gHC`> z!g3Vk1hAHztneIj*A@;|JODMrTAH&nKZSE9iQ$c)a7>$j}}AKJ`V=dD)g zSRv~!px=jZdEyHCx(`>n4+Frg71lW;XSH@&b0bz5^?wq7*0}2aG@;wY4v0Io23iKK z(wQ^m^4YWV^XJZ0tF>Ca-e@c>EibRGwpwdz?RKZLzTV~56apT*LVzJEN<-P`N?D_r6|iT_u->?2A298Q!BamfBMT~dtH;>c_{@tcd+ z6mNP3^H|C>zzS9=v>n&;)0rTfdvBJ^Y553I0$-aXAj{!xX%^S<&@E6Kv_jRgOVt?% K-kaRUTbs3Av2uaae?-_HK_ous_>70c>pO zp>(=3eP(iDVyR4|eK>$j$Q!Y z0KG(S&^wS9=rUb_l4<@Lhu1?E{cUV|)zqM2w$N zlWIm)Rb4gIidt1?)wJso}&`0WH^;vA^vv_?0{VVl@ z`c++1WbLqetOu-iI{@(-u!gNs!A0Tg){E9F)@#<=*1MLa+wEKQHgI0M^c}iK->Y|v zet&Gm8}#8#+=)#16Z$E5#`W|K{>lxOB&Q=6Z{oi`x~W(7S-q||^f~>iep8><@9PWt zLw!Yms=w6V=hUK>C3Xwp9M3ccFBvpkxZX)+2|gKz3wRIan_@mzCe7}?Sc$ntb=jF z2;vJSTZPyko1mVAIuxq|vGm4ba4?o`W(~K-pxD<%YAj+(vQN(%SXBJBor?Ss$2utY1t1B+I!sYf2v~l^Um_j z$K<5#*dka18zj4U1~kT}c(4=?gN}fX!g3Jgg&gPg3ePh)E_1GvVXz;RV~}Mw1R5Z_ zpX^7dKI4H5$Oi>v55p<%O)4i!Qa(|VHi)t>F03fSTb0f;;@y%yNm$Y)QIb~8;oyK- zmf8O;UT<>!ay&{Q+40%Q8(gQr2iJ4Xs?&%(Ct}?I1|0~OFRrko2XJLOFa+#%q8ex9 zoyJaQy4#83i5S7pH_F|aFYZ68UtESf4!H<@m_}BQ2KMFus^OSek33&szh1-lOEpAovpR zOZ>muWgkiEpkfVB6SPE?2}6}h59Cv2%Fy2>0io{z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160wy50+pp b/usr/share/terminfo/n/ncr160wy50+pp new file mode 100644 index 0000000000000000000000000000000000000000..2b9b9dcec131409f39e0d74a5baaf63d6639c831 GIT binary patch literal 1204 zcmbu8yH8V59LIm>7$dJb5RHUif`znTXr%XE-lR5_M|lbj5)lF(xDo4#vU%z+AugoQi}57f@GHbRbbcercRZ?zjn7&-s=#&X(^JPAQ+DO(5x2}+RbRsaFKC*&hKmV zK8L@H|Ew>IEpbnE+&|FwTI?Wt2R@3=h5Q#~zlvRD_wfBCNFJ9Z@}xX`rjE;x$e%tU zuT>SQ%KJT4`<|{>t2l5VTPy2jgS2Fe?2u8}DdTcL4$Dz_MP8FP<+PlU8JU$ixh6Ly z_Xi@)QT)I@Vnewc3Pda;N<5~+32iO}9Wz+xuM38PcF?i@xPeF`dP`JKRUl$|!lXe( zT9l6|m2p@VbQ=F|pfx6yDNU(XCYy=J;d=Xx7E(5GpCsziIlQG_|<{C~n@p_Dt?VN7a?ZiE5 zgd)sDB_v`#68+#J=mcG$8}xuU=mmW~s`6%pW{`M*%BYmi>Wd`wJDtMc>3@dOkIosr zsi{n{4&vU~W8TR|e(Kij^~~!0@_6zJVCrg+=|h~0B$r0hQK8-3`Rf_Oo3@&gA_=E8E_lSf;o@@^I!oif-Jb>qu;?u BxIh2^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160wy50+wpp b/usr/share/terminfo/n/ncr160wy50+wpp new file mode 100644 index 0000000000000000000000000000000000000000..fa41da9c32cac0b7871344e0210bc25c2f437202 GIT binary patch literal 1206 zcmbu8yK7TX9LImZBdC1@M8!vc64R0xX{5bL-x@;f`(;}~ZK=hYH22mvZPPS;q*bYd zE=~@PZVnC(4vIquK?e~BL4-mF2k{SZ6I|r_z2~N-6zbxE&-uO2?|07SR&XtyrV{!| zt16q$hZ~K;dV>)v2_>vW$U!1stA(-V41&!9i27dp$fU(zdj1AUX; z(tF4c^hrmyXq&!i?K}1#TC;60+jamrD+pO#)NT6`8(h!L9OXE-b2s<%5D)VR;$vW( zCpcBiP4CvY=j`9Df5vBdiC1(+VNc#`-h}lIeB{qX{}(O4@|Kp{*njbF{=-TgR{MLp zcIg3r&jEh7>X?q6*v&b$tGV&B+CI0(>s3|if~rV}$7 zlWIz3R95Ac^!TFkk$~CekJcflRL8vj zXxJ%88g$f6F2tSOpb-p&0%@lp=qsvqJL*nNn96lcnOm7`AQ^?~oR=uN(j?uAq$>h) zB#RJXP!EvEyJ0m6`F>A#Ni&-ss8I)vLl2;@dmyJrP z602U;;*x9;tI2r+XM_$t!cojbrNnU$aSyl(T0t9V2OXdjbb)RUd7T+i(?`-vV=zoTCA6+u;pru&hqlg`s&R> zZf%vMha?@r8>S<8C9@XP=(-_1I>{KxU6Lk@&b_!%ALs|yzyKHoNst1QAPr1lfhlks SOoJJa0kdEZ%!4dg@X%kC{<{GH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160wy60pp b/usr/share/terminfo/n/ncr160wy60pp new file mode 100644 index 0000000000000000000000000000000000000000..236664d9dd6e9750075979ee6d5f9fc517dbdc4f GIT binary patch literal 1216 zcmbu8%WD%+6o=2fE=(WU6jAA+HP*z^R?N&ak3P~i_WiO6wOC)^)Fic!G^RDS4Xwq6 z3lVYU%7sgJE?l@M2)dBsLd17wfh3LO9{^rgkN}+DN@ZIyi=bk%Et!SWQR6)P! zk<6u5^oX`rjA;4%=0xA5&uG`QAY8ub;_ZwtqLC1!mXfX^NKle2>o_PaAF@1D2~Ra0 zp*r%bSPP9%f-ce(GU*{bhVKbIrDyb*5ay4+g}yPxBfYx)oy0$RIO^NoJuoHJPp;3O}efW@vtNwGKiNUbPxgs(1y?< zNR3mypx>Qk#daw$U?##_A!j&l;dGEQI;Wd?g%jw`W(S*b-a5$*oC)!IoXvL5L`!cm zpswJ-o$xb=xR=BTI0t$`ALs`IU=R#}VK3F&_e9MY@hDYO6`gPfN#a+k`LFvp@68L& zdAc)gg*)`1-FTFE%I>U1XL{y37s89JSz}4hwJmoPLU-C%yVkVz2$jA+rwlx1%D_{l zgW#+xPU7W>FB5OLBXAT`h*1nT2FAg8FaZ+41T)|UNP#rSfLU-8%z=5Z02V4!MA?^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr160wy60wpp b/usr/share/terminfo/n/ncr160wy60wpp new file mode 100644 index 0000000000000000000000000000000000000000..a90ffed2464cf7b12f0fc091a518165e9deea4cc GIT binary patch literal 1218 zcmbu8O=uHA6vy9;i2aI(qF8)bQ%Q)V*6b!})7sdkP22R#w!}hPD6%n|ntr8eo0=9& z5h32|E0Q85#>Aw!DQ3hR;`88^$OzNT zU8vSL`}{rU{~0fcb+M^3w*JUF5U;R$3qFWXuKzRa7x7gbs`U}(UxMUGStn1+zt42m zjmP-U9^-eanpBjlIn7no0_BqdwGLLjmUTsHGAcV|Tqfjz9G2s9N>0mJIWG-q%Dh~W zMOl*Da#!A$JmQP%?LBmgJj9x#IS8w1J;Wtn95LQ;OvbNLfzY=$_evl-+Kp2X>FbhDA*y%xU2 zxhQWZ*y!S1tnvnf>IyZu6Mh1b@Q@e*eV`vC!2lQpLm&l)J=AR96E$PRqtrn4bkS*K z3cpa}f8ED-KK}^gGY&{?US`wrZ?Zc)V>^939ssf&h=}h=vLR=>t$`b zgDT&hvtc}DHjJk-L*S|^p2Eu$&k^5qTi_VF5Tj^r42**tU;<1617yH$kOd~lfdy~} SO#3k`j zh^hYH*A?`ACcY8Z#Gd$FNbP`jNbB_;L89epzBbNynt4}yUVBx0T|2M6qy2%F>)MSl zGA>8t0eO!+C@JrL=7c8X(E%oXc+H{bgnaTA|I@cvhO>IT<$v+t9K9y%azpOOv+_mx zihNDJB`?VLJjDYMv4WRqlc){v>=dfxW!nM77uWVB{OuXUXA zDC=k<>$2~rDwtujbuvtt!T6j?)=(S?O{kVpoeI^7P}++jmV~ zF1nI^=pjs-ew{KhX0YEZjhcQq2QzRN?ydS$g?B#*ZZ66 zCYM5t&<68*e)mt5-+*qj>gKDd3v?@lhR5n!B zvJPT!&gfQyC8KD}<{ma`<#Y3`Vy6Tk_%CDv6*X1AbuUo3VeJ`2VuI-Em z6L%%t7h9aOTO7wW~q}LNs-Z6M5df&)}zT0mwh)>!3>+N6H&qx#*e8~9mV0ugz6Hixkw$4q&*vfqmi_d z8+eN32JDHCk!oO`P0XbV8A4v4xrF#^PjZE!IL&JGp-Tr*oTE72ND)TiTa^Obr)T!5PAqRrr)59tQqVv%R{CgO~e%3fqScPzNr8B`uP=< zkE2{hc?#y{ip5H0aq-NVTCHAhG@8v;YkB$X*&tY1SzYaR*VZdrj+Y(Wm9`3=nc7#6O@3{B<-CksRzx ZJ->!;86d49b)Z&MP@A`r9H=cQ_!~0RF_8cO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260intwan b/usr/share/terminfo/n/ncr260intwan new file mode 100644 index 0000000000000000000000000000000000000000..f1bd98d575d8c7a9aec2bb2227fb2222b33c734b GIT binary patch literal 2008 zcmcgtO>7%g5T3WslpuwsLLe1ZNDK0!mJ7RY*Irv|>LzK_q|mrO2th2MPVB_4?X}~q z<3wuBfeJ(q{2YovNFc-^2gHS*Dx_R`sf2pzr5t+U01^_13e*z^Gc(?`94ds$fhW(* zH-GPq-^|lKC0>UoU}X*F6Mqtfg)N@1-P7_C(! ztX2$_wX7E~de-RG!m3dUjOoR*3r4-Nz1%8w%ElqvQ3mFAo55iK!M`CBsNfQpU@$m{ z6fa|hC*UYz01YPKX?PYC_-t8(GBltKJ@mc}?;`&I=@a-8c2Ir?*I*YVt?O_D(M`Ao zx8V-_3U}H5C!V@bkbe^SV~hra<0uOeK8^C#2rr2@#j>c1hG>gWY>B?OBrc=xBcv-x zpNTKT*HP?__(oifFzx^M^*#D_#Sh{~@w50{48)}Nq&65lheXTKJT1p~n)#--t-YsR z);`ug)$XF@5A9wQ2{IukZ#ryoP+-Dij8Vr{H#lJWD zEm@Iuxh{M1qI^fbFF%x5Cz(r;(OE;LPUuD3x95{N zWs%W(De_t;D37v^Cvz_Q_UwWg4qIoUgn5k5t5gHUvB-pK71h~DosOh^Dgq}XX(jtu zMY0e3<1$iB%(IEPv_poFH)1X!uI)A6VJc3unj`2^A&PSp$6LvZXnCfMRXV=s+gU&D zRZ(#pbOV;z(+|z)hpnl-cfx=1Wj414sEB+3ufrsrcb&;=nf&e z9Cmp_-9=Yw2t9-u({EBn)(rQXl_}GY`achk;Mr<8P1x;14~aU}MOsJNfOF?crPbB7 zwe#oe^+u!F41!i`eSKpi47=UU&0cS7t52=Tdo*@=4~MA04JD)Eek$&#%LW>Uq8eiA zW>Ilt#{(T2kfNiQbG*ax|7hoZIBA$eiJZX>-k+z7i{V;qo-I3mx%f=+rI&FYi|GJa z-Yoi-tsFO%_A=QwRzP1ut3_|f;nov!BSas{1bzjLNKTHVUf9CR2$43CI#4eus4v?{ J4%Al^`~_c) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260intwpp b/usr/share/terminfo/n/ncr260intwpp new file mode 100644 index 0000000000000000000000000000000000000000..ecc9aa21928395b760cd7ba30f65d29aa90cff60 GIT binary patch literal 2030 zcmbVNU1%It6h3$EY9pi#6#OBhGL{`}@u4$!W_Na(m~FBR#>95hmRjkmWRu-Zw)>my zY&L}$p@;;8JQYzk2HePVzbt48>M=uRtPH1hS4k=!E(t^ zY0El@(OIKg36_n5F_(SNsFuzxGz;ybvEO!-ftj6p;{br*zdjSF;1bV5uXh(xw2T2B zf_*(*>V($P=gk9(fbTMhkOg^1$YhKLU{=;!xfaYK7r2>eGT8j_wW;3 zh2Po!C+>QyApbD(y^MOjS(GP2d=lm95I-drL|N2CO9Wy~tc&wvQ*4O~;zjhoiu8uK zDBcNU-xKeP4-j8Q`bc~%J`3%%7p*T)|4RHIeihdQXuGvh?E$UVbCGCGXj9q@;~eu% z?Ro7b?G^1!?QKnyz1}Ty7jjyAea-Dft9?=4I&yfAt1S zl+%|hJNU1UUX|zAi7ycjYDdp}ZnLm0!wl*4sA%f9QXV1~oi$uMCW<1;EzLvc7Xp}LG} zHdH482dt5QUPT|L%6!d7d8Z*P;cg(C1U+{S zX^wWW(ULocbR6jfT8<#u9>v)y=4s-}B2Mq52pmRA5=aosB29ok4*EmTD%(g3$w6{K zpF$_!H+nf%qUU2JY6B~W!iQyLYP-_EMp!NC6Ng1zVkK%-1vhqyC5Zjs$4f=WFNUM! zfgbK1-N7<5v~eqGuA6~xn?C6Zq1%V(a@ghdbr)TUKJ*Z#OutSUX*1YkmPSlJoQP?- z4fj_4`J(>g>*qQsA49o<@+8d97YgO_($bkT)oQI)uQwXa=E}<1vq8}5tgd#uYik?S zpNvO?nDJ<=xZm7k@+fYx;uiC4D2L5`%*|EY=k0+G)yO+M2oA?P9RII&uER`f0RU^l3Rf1BBcV l@egPWe;o}(B!>r5&#mEG21u(&ZKxI$R2OU{2daw-{suD5HUR(t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vp+sl b/usr/share/terminfo/n/ncr260vp+sl new file mode 100644 index 0000000000000000000000000000000000000000..29767e3d1fb1e5dc20a2df6f3eaf4918bc99e9a1 GIT binary patch literal 355 zcmb1QG-2RkU|{HA;AF^4E;2GRC@at|&Z+Tp4pK0(G%(NyiYSz2rj{4vXXceClxLP? xC={0@mXsFj=49rj0(C+G0|QCQ|Fe*&o;1^`ubPcPIw6^XmqFT%0RU-+9Gw6F literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vppp b/usr/share/terminfo/n/ncr260vppp new file mode 100644 index 0000000000000000000000000000000000000000..d5b0814d39222e226cdee0e95b028164e78fb538 GIT binary patch literal 1172 zcmbW0OGs2v7{|Z!iI21)=z-;doOEuJO*Z#l=czN}m_0O`no`mz@XrV^hL|@6` zX?xa8=?jkIES>B<6E?HD9!DU&FkV@7u8vR7kr1So(t#sLP?=nJClJ6}VN_L7welKh zEA3KNnDW$1{ZyhsTB4hDi*6%+hwjon===0QRk`jXdO}ZOKc{7S1-(M=ROUT>ppVM> z1o>H6t}BJ>wg7KMpre89x^1Fe7$PaMA}@Nx5z#M7;~=f!AHYpwS9bJojC z|ICkx8F5Wj%&)0?C?3Om240BeApTOkhP5KzDF3aJU&OZ{yM9;C|Gq))#|CkK#!r>~ zwOT{`_iR>v^_plcH}DqT#*HkwnOix^F^+SBGo0fhALc$j!DSxe5x&5(pK2)-$(aS( z9LXj00?7g8$w^wYrgJVapIyi=>eo}aA`^FJo4A$%l4X)pBqzP@G>*w#IDHP}K>>7wBG?03 fKr4ssU6JjK(V zcV=^qyU+Id!aw`7JjVs)C~ooH=ZDCifM>k!)t~cAs11Il^4Dtq#Gk$H_EVkw%MQJ7 zJJj7hzN_w!P0!Cw<@SH6{P&hBiCv;f)QJ6}R@8|jLKA+`BwB?j!XhTRMXxv`2F0kD z5a)#)q&?*G$E^g__~RiXL2_7Sa^4NIdR{M?dUjGTS$ekL9}mJ)t$N2?N7|q&SCx~F zHDCnv7Cqzm1DYp;f2BVj#u4c-RjMVd@_Kjqv>OU;NM}f9`b;?>NS?JoiR2Q32|^wn zj>V7z70BJN>?nngWG*7F>HfHB7zx=T(_J##F4LwQlev)0B#k5{vsdkq={IFA>RL&T zsvA_1oTh3LrjJA?us{%mKo~?o6m)=?kJ!21L6SqxuafHNxcfiGyIr)fHEQmjF6 zBW?tj;?9-05yav~5EXRcqJj%I-HNz%p)N{1?`5VnR*-Id2RI42V+~o%+lE_Pk=@^|RliJ|vr!?irrt9Fh=nmvP;66R1$Ixr^oL)fl^@`qt zy{8ZKi8kmneG&d|^n*49lUS|h1^7A(op5+3bdSSpwLY*Rc9~t>^6>mISQEfB%d(;q zu~~)PY{=r7+v_%Bci98>h^?{LY@Kbeukd`|QPCvvny?g=x};udNE(%%!1GjkCj7P9 zOX-dDPI@n`3;Uzv-G0vB*iU3_N|NW#n0JS#F{Ak(@y6``XC2sOUq?MBJf}Qy&mP(z zh-s}PCzV;Hs3~bnDe6kP1V?ZNLhqH6nx%CIV!Fz+)C+-FP>|k0EF|i9RaYQph+!qvQis^FDV7gFjs5@wy1y06ktrU#6u+t+1H^)vTapcM(%v z6m5A?8?2H%kN^gOAz&C7K|tq$PLME2GQ_P8pdChB%gL=mXXJAvpLb>y9lL`I!<}9j z?nw%x?f0674eG5q^Sj3^YTQE>hI`Vxo;`xb#SUrb;!TpB$GGjPN}OjD!^)~+Tbg2V zTL(4j6rrF9nRVMhC{(8=XhgB{ydtXD&B~Ndv7F26#%C7iT7MI8Zv$mu1y}+WfJGV~ zPo<`(XJ+Q+ve{fNpDz^V=NA?h7j1iKX?eL^u2ic0BKok8#;-+>2pQ$l;6ig>a=gv> zL!@z=$#4N8t|Tp0(}PARY(}DElO$gg-|8lOll@>^@7vPyKn0Jnfn}gX*_2M%2@MER Hc2cKbs_&{Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt100pp b/usr/share/terminfo/n/ncr260vt100pp new file mode 100644 index 0000000000000000000000000000000000000000..695ff11a9a8d50e8808eeb6f1f7ae1c7266bb113 GIT binary patch literal 1604 zcmcgsO=uHA6n?WQ*n(|95Y&YdF$)$&_b=JRjs1;St8Ln9i&_g!oBk$g(>DFXHV8ck zdJy#1s|OEWMFdgQiw8v!4+=%RN$(;Y!cUaFx6 z)*F}}nKPsMV$sm`LSeP5tv6)Gb^SQBQ2zypp{2>%MdZ~D;tIY zgLRYV?F0M~0w+?an)XvY9V3UDp>$D(a#WVs$cy#UlphccwTK_4{YVw_lHuMum4BBa`yj=4()JVM*~hE z5l97gQEfP3G?F@?O=<;0%eY#>)G~7rtZ^8#Lme<&qdlB3bv{c!8%|h)bc7QTQOB!J zhZDBQS3Ct(hEQAOTrTjMCNq+QOG+8x1j05Mwn%SuOVTO59xh=u;S$whb|epDaAWi0 z7-x>qT;Xia#g;Bo5LC|x{Y}{XsVAv0W&kE&0XC_p z zO?*Zns;z28*U(%Zo1k`?B4vq`Q;uz@}=NM z*p99*!1u$?!uQe8P&z#}HaQtzNp*sV zqcUS$GvnNflQsNHkK2tuNCu}n5S@l;(gs}JFfBV0bz|{X?s->c)s^vs>WuSA|tA|zf44mF8m*Dl5=aN(2Ob)7JV5HZZnp&R7B??I* zCVq9rKrk5HrdsU~#2H>-B8l8|n2ynDGN~P&0ZLMuigX?L7Ttxu4|zb3=n3p9y`Yz{ ze7vT2Kx_1YKG6n!rZ2+(jegLkKoYCf+z>umVPiJ#g6*|&t=11T#4fX|TOOW21~vhi zW+|4pBSltWHyg5e=JvRQ*gf`;J!Y%y4O?d$>?=IqcT_Y+J zo(q4i_DXsyy_eRcb-_Q{-tBe%hJGSzQ<7YN#@stRjTz1Vh&N{cKXzc3`#S16;X37t zy7th1UqovoIj+npc}+=LN?uoz1vvaOPAP5i-aMlUw0Eud8xlPzv`7Fuj>>kCA zoyG-mx);PbNkQ6wuW6W|zBRjl=a@x}bI5`?C%x<5L)f^OA!%Q{NwU3+vt3n*@{D{? zSy76XrdXWofJPl6eR)0j*y3F4F9G*9ScWV^ zmLLm|MH(MZB&MflX6ENpsdPG%$!2r8g@wh%VsUAyR4SJ%l`6l8e$1osYtchOhq*Sm z(ws+**Ni_z61N!-W}%`=+)_2&Zv=v7C_FYv@-^|TZo)U&3&icdEh`UJuuKtBf)pr~ O&?z;cLHv}O)ae&kdaREC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt100wpp b/usr/share/terminfo/n/ncr260vt100wpp new file mode 100644 index 0000000000000000000000000000000000000000..9628e2b5df9e506e5b7029f2af954db6bbe20704 GIT binary patch literal 1612 zcmcgsOK1~O6uoa!um#(IAgBW+Vg@XV&M%py6Z;oywO?&fW1*k4X`4^eHvM5+gbIQ# z1l@J(!i8HAK@@f4LQ%wpLJ@b;y$Eh(Jn!XAH7H0oK636o_uTir?`00KdfH1>RLA-P z`O#T3sxK4`U0*B|R=QgILS|gok3$R%oQE1(oJ@^{a?>z9tw%zk%-HhC^zdwoh>2gx zFa&6fu94^M1N;^OCsL@A_ERk#BZr!xbWw`3RHQ55>vRM5Hn2f==|22JdPGm)d3!-G z!Cuol`beMX3vCJgD}ARQf+@`NDgoZ=;aencgFh{~=XHYhvVL}PTk*U>Hi9S(WLSaC z%gi!cWmm!1f$QuhyCwC~3Z8cd@dmrc9>CtC@$l@H3Mh(Al!AN@C95vU4yUUgs(YTtqnAT_B?Y6U|}xmv;0QnL`OG>qAyCJonU4<}5W_tMXV6P6$y;Y37? z-6BSLZ}UV7ICVxVq29MYp=nyklNh?^a6drIcO$N7~Hf0QBEvwT7hO#8%RAtg>eHg z0SmB6Jt>bXHt*L!1b!hz;1^W{O}~#Ro1nBySqi`6VvJvJ5%@*laT#JbikKlK-+)7^ zT*lw7t~K%=g{Zco6v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt200an b/usr/share/terminfo/n/ncr260vt200an new file mode 100644 index 0000000000000000000000000000000000000000..bf215ca93b6be21793272c6c1a533a77f39bef04 GIT binary patch literal 1802 zcmb7FO^6&-5U$s6iHXEr2t>q27Ol|UK~RwO9L4r~HQnpPAhM6Cs;{bE z)vJD0J$<+EX+Q0u17iPBYi>p7-Sw_^-D>MxdGc6B7hU&3*fNhFhcVMz>Mmx+%d?MU z>hot$Emv1+M1p^PCZJ#mnxQzp3zV)5Fp)*O=^na|G=+2!mNM0-L2c>*KSwWuzXrNQ zZ_*XW59mYs1k$X}=sM7s^fi4)KhQ7qJKO)jQM-ik?*-q-D2}Hfk0iJZIh)`oL?lj# zd9fs#q9fMCv*Lny3BFfB7eSZAW${+B_Z{)Bct61=|G(EY_&yTX#W&(7u_gW#d#pRH zIKCfbmTUP|k?|PwwzX{bgBlm%Lq?xMAi7d9t{TjXtH}8H*o{;mhE<3U(&&%iK%kp*khP*7_mRIC^@~XThKbD`$ z&*c~LEBUSbUjDeF?1N|hyu-*Xc|*o>-_UJzM|M<=ksUcpPFp#(&}nO@wvrvq8KbuV zrVrbZ3e|LWRJ+FLKAL#l!zRu|J)9l&*>_VGL@2gSBmvXdU(&e-#8hH}x(IbLQO6Uh zW)g5Tk#2SqRb)45I4vXBM4U3rHyH{B1>4Lwh--V2GmNBRZgU&@rV!0Bn)kce^RV38 zMwLORieWxj1XQ6H`VISm3HyLM^3QeHV%22 z+#@T829fK&DM=pblu2 zPM)k*PoG{`ICG|6Z#0_CR%>~=(^*~ZcGuR{*L%H+QeXzI6kvQR+)ZQD+)T~Q z^x0r$A<}(pS{Z5X>flDtOh@Et=DgqI{r_p_JRH=IF@YSx4$jY`#l>(fiU&)j?<`(W zyyGBlm7gyRw0Y?t<1qD^#y)s-IFI JkLq)p{sv_Yq{ILK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt200pp b/usr/share/terminfo/n/ncr260vt200pp new file mode 100644 index 0000000000000000000000000000000000000000..62e5bbe82b86953a39e6fb1bce22412322dee274 GIT binary patch literal 1814 zcmb7FU1%It6h3$EQd5YDsD^ua#pgF=1rK@s#pks`Q$=j=?9QbcmubIy1E z?!9x)nVtKTPuplK?NpgmV`9PN+@+Rr-DdOjaA_=U3a1 zlP8bOjW1M)l>9nOLBUd^)NXGFB`Xa~WKkF0PY;lxh<3v=Ockn8la_&BptIoTK`Khy7G{~IT5QS9#qzgtkdJqWo!#>0>YV|-YZ)pKf6 z&8oVZSBvU-^^$s7y{2A=|2*hzbwOQ>V=t)>)Q7;AL08l#>S}D~vv^&D{<*rYZm3_? zO|`|k$4Xo6_QN1vk6Qg!N$`;HQ`Q;l73-Y!ruB~X2P}VCH{-~Z?$X`*E`6`&yzRmn z?b4++%=-FzTo1!DrVrodKXRL8J&V!A|M+i>p3x26(x>!``mBCczoFmK@9K;Cef^QX zqCeHw^cVUo{f+)sf3JVkKj~leZ=2eE<5_=hGV>q3HPw^ak-CHK%=CHvWS5;;r|CJB z$Y~m&7t9xSUjmF?WEZxj1Zjo7~p5z+YI`TYb0q>A!6t1y=k=*SW*`YT{bL(p` z;ENc^F%s`)&cL#xiCcz|SBP@q44@bJQBboV9I$t~z3b($`*}-wzWs7U7jlDDumQ41 zPJ%{xdk>b8CqZMNgRmR`c_GJndEo`-#%0b0G7JVmIR;r~CD0zS`^nx#%_$FLKt3oS zdoP^wph?L@N$Ms_Qh!l)#}yT2??$Eb81ZgNgCs0zk0?oxW^r)9EX!=uRm&&$uEfI= zk{utKT;6qxd}1@_oOW7~=R~X4G2Zn%oC#rKs!D;n4lf6z9&%hA= zs8Q$6L~+Ma_K`)%Ly+^3Pt(z(U~SF5#Jz20cd&CSoBIMHe?E-o!CFR!eu za$|}ik6tn4L6SyGbJ=60w?=v^Lt%U|cd&HTNP{;9`n*TkmkIDC-k13Qw97t{)XCv= z$q|U%_maa}BVfQ;uBE_(3)o<_kwA$bMEnMk#!C(m*V` b*Q7nNf{L|3OP~d+jvJ~T^FTgTCk*`yTLGQz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt200wan b/usr/share/terminfo/n/ncr260vt200wan new file mode 100644 index 0000000000000000000000000000000000000000..f03c287201b5a624fa4c7dd34fdeee3d7655aab0 GIT binary patch literal 1800 zcmb7FO^6&-5U$s6jZu;;1O%}WN0|nLg8g3iOwXj(%>E?0uE|c4l|*a;ne1$KC-b|z zvpc)ES&@jMU=9k3AjE^>K@TEIhzC8GgE=T99`qnN2ol7L>OxJFX*hh+}5t!DK*w6$Bw3S-gO^=F?H-ISW}%!c_vkF zf{jd0J&~%;te$F?7Rp3|e?2CkUM7t-iQ2{F45ex_g9{uhqgCX9av_-;ns?l9zdj3*$A zF`g2~MI=gMMpQ&y%!`gVE6&09GUz<$HSwl+JKp<_cvpNFW0U{i>l64cip%1vxGsJX ze~8s#>eonsv^4#rhGJpR614&YRY6)}PkjmL*NxHs%IB zB-I8sdjAUG3FYuD{>N^y^hb5O2mi;vdG`@{T%M5AvLc&uNj@u|moLdz zKad~EPvvLw3wc>yk>AK~<@a04-hbBhEk@puH|6j0&Vk!$XL?BOBRg^`PD?rE&}nI> zypSHs7^61}rYG!3g=#!Kq+MflpNzfkgo!gzkEe%x_HD|72#>9!alknC7j&iuu|GCJ zor5|St0S>ghhuOkmTr0-RixKxS5ii%jyPqQZ!+Wz3O1N;5ZCrJXBbSv-1-LeO(B|N zH1BuQXJNU&g(|%;2vt7J26IsSn*HFYy~iEgd>Q;~2RZ$A#Chvv7e_&>pu;A$GL|Et zqo65R4uMnvYov0_^M-4eIaqN&)U44mMjHc-Kq;u2y^rOb{V3T70Qu39OJXItDOQpj zXJt6PLsky-E4||5Y)MOaThb6#lCD&6uy0t#ur1wFE~&X3k4ivxd|*lDmst*o== zv_s{DM%RFT55ncKE9mJyT$vsW0CP@QHxYTKy~~*ybi%mf!v4#zzkX;z}OVIlg6mI zk(wLnv%$dB4Z||I^NSIH(t60y%;moS(;vi{V-n50y&Z zRlJyZx62sBDBA!lI8o>-?fIE(kjtN#Ci@xw?9c$dFDXDHcWg+zxPpgngO))HR4r+$ Mo>Cx>s?(bO0g30OVE_OC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt200wpp b/usr/share/terminfo/n/ncr260vt200wpp new file mode 100644 index 0000000000000000000000000000000000000000..05e8a7e8bc91981b5aba471b6203ad2b33b74697 GIT binary patch literal 1822 zcmb7FU1%It6h3$EQd5YD_yfg3*vbxAM4Y)ZyR+L#vu!rTSlc9~+KNlDX*Pe|>}Hd0 zvT1Fjg474KpkNUZ`%NlXI7w#&uhb#_8eGSlSd^_hA^*hn|2n-I}dTrfc(H zqooJa>FVUkWAo#S6(S|S4pUID6un68_BK$m(!fL(bH!Q3jN_ei!@SIBJVxe>eD@g4*pt$o(-MhCCSK z!>X*FQIl#`)zpGoQqQUv)Jy7B^&0%=L2s!G>S7%Gu6kd60DKvAMSZNU#&$l7*EQ&$ zsq5+o^{cv}wpe#rX{+6S2*hir)o+yq4+%eIov~iF&RK6*Z(D!B@|SfZj!fw;-L3D? zcWchuCY;eOU0TDeudhe-Fg#=W@Gbr$w^-J*7)|_-|K{i!UDr*0NR0sZ`c3_g zzNp{RAL=Xm6Map8uD{e@>u>aT`bYhf{zd<`sogi8_2(ut|Iu4hJ*n-f+vxU8pVv=z z*_m}3o>PgOhH)y3nZ7I={b?|>&n|nBHX>lbwSYj7?Bypq65FPb|IB7#xVDn_0yzGON^+Tq9dUp2sZU9rBFAH5M?EyFDd4 z^d@O;Z4Cx|5hFQ9;@!*{ShhECOFs%DuMp+J87N*9%-IhN*gM?b^>Wz#yrn$femSBG zxxp&f0NEoaL8H9A2g}IgpfS)vSPp=^kmJ0(@B(w=GUoyr27{m+gDkTWXb;)_WbdNJ zlm{{(9~6+i7fyN5q-3HbbrU72zbL!oii)y#qtbbdc(a?3v5|95JI%;*BGwIH(1CFI;tD%@09UpHL%_Tf)i|TzG<%%M zUMGrYUqcxZ^1M$P(ls$OXtJ>FCk%@u{il>Ep+%)w#J^tzMs>UsyPCqS;(p zT3&9oR#sNIF~yKauNd+mNu#B?>@m_?BfXWOFus^OSh{MY!5ag8-lOcx1o#r~OZ~gG4ONeMAfKuehW-U4yr6Rc literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt300an b/usr/share/terminfo/n/ncr260vt300an new file mode 100644 index 0000000000000000000000000000000000000000..eb59796b5f1a846ed69b800e27648f1a9b6e9ee7 GIT binary patch literal 1816 zcmbVNU1%It6h3$Eq7l-jNQL59SnUp2Uz~eqc4wD~+59v#wkDf4wn*2OZnDi!_a~cV zlT9FQX`vzr6-AUj6h$A3_)sW_NTJdeiXfs0B1oYxeaVaXP>N8>dd}H9acdE&mp$iv z=l9;Z=giKt!iQ(zDcCJ`#i~<_I_0j^J=ZN%*T;qq#&yPZUq)N}@at%dH|FZI@qw|4 zSL3AXEa-xr@B(NEp&u<{P=qqnpn>=lyp8-E z(ns(KTts;pzJaSKY2ASD5d8o@!>@1)HsBAo-^Z<<5ajPh{xqXjYd^{fgAbuRV(>9B zDW*kP)I?pZigj^Dyd%z`??a^XNEgIs;-ZQDQd|;W8%*{8xxPi;b@8LPB{sx8A+2rJ zPOH^=35ix$^Y;_96ci|a!IbqQ}V2QSH3SlmKWsb@(X!MekHHSYx1W2 zUj8J1k-y2?@{Zh)zdu&>&b{tFX66Ig726Vv$DV{OiC)zQcHWtDYRV~wPE9+-#YAtC zjNS|~z0c08P>m#dwM#~Kzwx^JD37xCCVGALJyZoV6k7*P!U)D^b+U|Nk1?S-i|UY3 z2aHtX28-c7uP zmgj4D${~d3=pQButFIbr@qxW(c^?>4o2|r8n3%ORoL}h z1Btq|jI@BX1jmmT3e(dwGbc}$O678;QmxLS~kPlMQJ6vH=cL zj+;tG%{|rJQ=bhq5_#Rm)X}`==5_{pG$eUXGv|1Z>*pA<6DdY3Ek)q3cL1 SNQ+P^Xedo8Bo9hc8vX*AiKh?% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt300pp b/usr/share/terminfo/n/ncr260vt300pp new file mode 100644 index 0000000000000000000000000000000000000000..9ecbdabf74021ec6517f6bc0b6844a5fa685c8e3 GIT binary patch literal 1828 zcmbVNUuaup6hGhnqMOjIFqlfON*uZB@L~6U_aTwv;?fK?hdTi+7bandN z6_VE{^f}Pi^euf)KhZV%UF?72q}vtyyTJDd>U0i6o`~^D$kQ=?Mop?2RZ|Vs zRI6%DomU%bQ(aIm!T%cQO?6Sd8^^w{K2RS5UjcojK31Q_c0P;O7tp^_Kd4{Tbw$=L ztH*lK>U07SuK{b=8Wmg;zG1y!y==W|y=A>)S-R7?P458bwMXBnd-Q#JpXd+7R=hzU z+rm*~!k^Gj!85L>Z}L}fvLrc?T)Kt-#^{z_)93Yu-qaWLEBXz6QNO1z>C5`6{#1Xd zztP|6AN9}r7ky3trmyQi^k4sJ_w8rt)OPLGxGQy6>Ymhr)DGH}>GS%@E<5v1!*eR3 z(=bkDIn$SAqdyB~M(wf}dLx-W&Ltgb~CSO|}Mc zC^kWzgE|ze1F`hRVsIpuZe|^~$gI=uw;C*$`-e?0&Kzp~j2{ zG9VumkUb2iyf>+wC`tK5N!lRF!ML!Z3~yJWXT-ZDeUh-GOQIyLn#aKbvn;d!TfE-n z`jvQ;@?^(nCvR|_A|KqyIcrWc^qi1&0~kaQE?->vNDtu3MlcW9>x6aAC^*gC&UCjE z#uG7upKX*onlJ7@s$W`xJO#M~d6LG*CnjcQW@pcwsa9*XdVOJGadBzs?Ac~>Wu?_> zw^vu!xj)4`4`MOTVNT0U{`n*TkmqG9)-k11)waY$| z6yXf0s0Y#XfYXATM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt300wan b/usr/share/terminfo/n/ncr260vt300wan new file mode 100644 index 0000000000000000000000000000000000000000..81d05e857069cd87c57ecaeaa2fe039ca69f60fb GIT binary patch literal 1814 zcmbVNO>7fa5T3WsZG)7Os%j<53dya!sGPd{cI~yh29tz{043&6sES346Ne=DCr;wn zi3IMUs8u=i=RgIj)T-(shpHDip-Q=ML8`cLp$9HKv{EGw2*jy}<$L4Z$N^Oqee%qF z^Y`BDn_2Hp@jkst+h~t46OHL5m9g6`*S0(5#)XN|6G@e`?e}0zo<0R@vNK*pqrWVRe6(YgE9urWo1YM#q+yRPL5}3%K0oq0HkfMP0!!kh?s!@|Vz@N}( z;9r8ir5|V=@;cq54M@Fi(QTkRbeHbYefpaovi%<%^|H|ZLGafZh2cTSVuX)Fo{sRO z_()8NIZ+c$(GshoD=vx4@O=%s0=g!?7e7U@>*8l|Bf@(BXV_>by6YYm}3PO|13) zH3rWiIq{tT)N_{ptT3GX5C7KakL8T4%0=0c7v-n&3;C72BEOSA%60jRydiJO4S7r6 zmUrY`c~9P#f5^XHX!riJ9=u@Y6G@4e5<3#F(5tDuvyaS@HE%T?s}fjEWmT3^`Ls5= zvta75S#knrJe60rHrhubuYFkO>8yjPyvM#RyCB15>qwL^j`)H~*B}l=Ca7~zMY|ENm$t`cr0d9YH1qThS&jTn=4r&WeaJfu#c6hZ6MDK3#W{-O?bJnB z-fp5wH}C@|7i9c7C|*t9fNgcmcSp=U_R!Wl;Ya*{PZ>bE+aoru;Kxz8Lg$YHVPVsQgCYKK9+OlUNXl3`3d8@VkN#XR^p3i zWq)*)tc>+5z2c+Y;?8hb+!t2j=FH<@PqVaU|L3~0ap{$4aC|bObL0ALtDp~UW~>WV zD{!np>k828LAYFY`90l(E8T-WVAcxiIwNPbwp%kpRuJ`n9Dmlh>fSV=+r_1G1B3{jCAs*Q^K zskomW8}vAoR1fQJmJ~O(KhV_!QgRh@j(0i!U+ugPC-ri4B4@CJ_vh*2Vz?HEXUmD- zT)d`u(<_+AQla?P#gR7>l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260vt300wpp b/usr/share/terminfo/n/ncr260vt300wpp new file mode 100644 index 0000000000000000000000000000000000000000..c41956f610e038284a461d760acf9c04813682f0 GIT binary patch literal 1850 zcmbVNZD?C%6h7~LqnpsJFz|z3l{j+M;g8+>-kUFOZPs?h+PNj$+$M`kKhkzxk~Zzq zq=Q;vh!lkW8ls}82pgy%Oc3|OfvBLOAcBY@_(z2O5n+D>k@%dGduzv#p)Wb-Jm>5E zIOinkQ;*W^bQ|qaCNV#?WHN56>AP;b(O5k+d<5$8$Dy7ml~_%hyzB0TF)7w$d#*B_ ztS^9-h962MtJ7yE7bcb}L`ptgrl4S{=cv=U3ly&;Fp)*u=^olmhCzjT+Pj zewLmG-vGTxuhT`yOLUp8K=S&8J_q`mzNPQ!C%Q_%i~UcWbgN>25BM%Yoz4NsqY*v^ zc{0LJt4TGZYO0}{YDKN8b81~}sPpP2_+JCPsV=B@qS*J;`|1PW%b<_c$Lh1l&S&xZ z0{U0#2lcDErpVf1^;r*ColXGaHE4}kV}gsq*R2<c*gbg4gTs4mN=&?7jNRfKDwn>^*Oz+H}rY^ihe_1 z(C_L?`a^w1f2zOK-{|l3kNRi*i@vIV)7SJL`mg`A`_{8`Vykv@+>^L7ad%>GVjJy9 z^?L(kmz_DM;W?GiX&9%nl!YJYkCS8NrADN(@f;t?jgOT(~5jYr0H?@Xaq}FI>e2sJ+c^zgp(ix|l<67Qy-f#tpiZs~{F(94IJ>?tT-7}U51uG6+39J2Sgz5i6j z9^jqjnUBdy+p$Hk1~x=?@hqssr+Baw4}*??j>2*fq~FDk4kBU_d3Gosz%K1o>IB~jv5 z&EepHS(@4ZEnY6ZekB^EEZNc7@f%#Hzy~)n&Z^T4Jtt({00vzMmoKhtR}bJycVQMV z=Y)06$UDuQ&UCL6MiViLA9IwuJ73&?RKK_kc^q;P@)(VePfX0r%+8)ZU9Hw?_4@q$ z!ouR>nKRAi@^Y)yZm+DYaeoR~9>hYH$4dGwJ!X%Q78_}?%!cvB+{MydBYoZ)=<^#D;O_6<4{+bf_4@v^D?AerdaRn7?f?A*@s!kZHPI@4ps#Avk26#}WD*ylh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260wy325pp b/usr/share/terminfo/n/ncr260wy325pp new file mode 100644 index 0000000000000000000000000000000000000000..a76e1b08a16e0e8371b93288919243dd0c395fea GIT binary patch literal 1619 zcmchW%WD)_6o=2bjn5cHM#0AcZ8c?!im9r8=h>QQVxmciN>C9yR=1BBV;iF}_*l47 z1Q#yd46|@I!yt$#2)b}Ne}dpbL0q^H1VNDUSGVphG~mE&Ecos{_1$yoo?BhLmRo2Q zEhm@nq^5#tzu?Z!W&M1kac!t)H0_sNw-qiuHg~a}h9_pym!8cH6VnKV;c8&7bP_K| zv;j3KT7YN~Ev4USjb2St7xmHr4befmK{w%U(OtSn_vuf>59n{56+Q7GJwp71p3w`; zFX>;s@`_&58y&sF_+Ce0xR$XWh^|eTH=8&NxA1m$ImadL;0pJ0Kkwra9>w}0Fvdst zn8`h!)Wpx3KaT(B`YE2^Nu4qEUEUx30C#_ZfB2#Ck1#*xr~FLcKgalrU-Mgj&mT<2 z{GC7k#DDsUkLy3{)h|iT*CZkphAFiWV;C;cV_easep4&dDkW;Y+N3gSn`%{ARaEV& zTlJ_uHK>Nw0X3$Ms^i~P#kIeB4AkwE?4?E2OyZJkZRzmbE|Qs+jy$Hhc_|mev#A2{#Y+nkCy40Ci9Fu$r!?@k5Qunl71z@ zE{~+oC%J$r3Ugovl(3w_GEUIvMzaLH=q@_Kbfh#mVZ9)=R;hbZ+bYvCjIE{GCe@1E z*dQCFo|7vTsg|W)jE)xVzgzFW7!BdS$CYN{y!JoxGe|N( z%czOg$EO&fmH7Yu?5If>Yo$I0GiYSuhFCfhlmlnVjzEYq;uOcRHOJC*x(Dx)z=hz7@U^Su3(eD>rjd6G)Nki?e;d1T!PqZbi3_vAMfJ5>~VoB zT;~Q4^B9jKe*{eO6rVJ;(`ip<1`8oe?D&9W%k9YWgzQgbI|E05kr!_B9^%CkI{#UPAy*@3Yx>UFNKz*pT zC{f$hPL)-AR8HkpS=H2l8d9TbLQSgUYWj_?*Zu#eI<3CR$RX;Y9ukjacVFH24v;MO z)r$x#oiO9hx{JOWO}UGK8x8f<^Qc*`bG@C4rblZ#s?|tJvtHKS`Sy;mSj?zzBFsnY{*wTJ1FwB-DQ`uw#R2>&^5^bj8cpMXIy z1ct#uFak!wSP%6k1EObwWSlloH*N1c#WC89|LuPsqVs}fuCs|x>qthDGsa0yB!_tA znSt}Qx#ETV#bDlFs9fH^T==YdwZG+ED-nKE2?M;VFu+@ga$ukCJBF7_a*E`-8C1%c zmB;Z26W}m70*-=7&;&E!EC@jaVsH+83eJOBFb6Jxi(nosfJ;5(4kTa0b?-~J-(7aI ze%6h(;Tt2cMqrG*HS)$NSfgN!qBV-fC|RRqjIuS##%NfhVvMRas>axF4d0GhOC39F iJ$3A`{i$Q8J&-zf+=0}w^H#EMO`;Vy^nLTWIrIu435Ko! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260wy350pp b/usr/share/terminfo/n/ncr260wy350pp new file mode 100644 index 0000000000000000000000000000000000000000..8b1491c557149882d2fdfe5db2050d1d161338dc GIT binary patch literal 1612 zcmchWO-L0{6vxlGR+?snL|+%|C2xA5pfmHn{MP&|EuV=cM#$*+tSnzovrPJeYSXGk z%XS4pn~0*QAgD!)maU_RpokVNf*=T*{&VNfON4?p4gBWZ`Q3BwJ#*i@EgYqdw2n-^ zT$FR??3B5%7*Cq{{Mmudp@`jJnssoIk;N0)2s|;9x>VE;OiY91d7A(O|BC47dF!zH zHq;c+O1NSwr3%`tW+T)}UDQt*+D8}Y65JKKO4sN*-N5)3-BDSdcaI*@V~n5Db9#aJ zl3uBq*YuX&tIv4NI@h-3fbbwCK1-d~G=mk5=snTx^HT@*} zXbqLo*5DlmgCkmx|L{L|5*)Ie4py>gHOU@-qhWs=Gd=7R?WvE1f}a%!--KrW*{z44o#TRBuwSsZPx-3?~aI zk_V6m&+FHcOLB*hZkJ6m?|?GN69~aF2_``cT58Y&`*};H+el6X3k80dmzKr2^lVw& zC@16|S+HfHT^2g!g|%{>^pf&Sr!2HeFB2FGcHgdcpAS3u_goi9k;gf7yK(ag7Xn(Mcl^N_9ZZD;d zC5}6z_E^h_w#nqF*3+9S)|oWnPnE8Nb8;P=Lop6Eskyy4T#|=KPLs^QC-=hsPOuB? z27O=;D1bq51h}9GJTL@~f?+TMO5hkc4o1Nk7_TR@BX|#{t@Gw)bJC32G1F6mtpz6% z94#awA)$q2BqX(viiDIF(vgtXLM9S2S{RCi7A*`$LaP>zM1mbzb*oC`)vGFz*-}-B c+>TY1$nJPmiTt+2%yv0ynQrh(;6*d&H>^&EZU6uP literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260wy50+pp b/usr/share/terminfo/n/ncr260wy50+pp new file mode 100644 index 0000000000000000000000000000000000000000..cbb06eccc02e5e7e9f0d8497ea029ebf752d062c GIT binary patch literal 1204 zcmbu8yH8V59LIm>7$dJb5RHUif`znTXr%XE-lR5_M|lbj5)lF(xDo4#vU%z+AugoQi}57f@GHbRbbcercRZ?zjn7&-s=#&X(^JPAQ+DO(5x2}+RbRsaFKC*&hKmV zK8L@H|Ew>IEpbnE+&|FwTI?Wt2R@3=h5Q#~zlvRD_wfBCNFJ9Z@}xX`rjE;x$e%tU zuT>SQ%KJT4`<|{>t2l5VTPy2jgS2Fe?2u8}DdTcL4$Dz_MP8FP<+PlU8JU$ixh6Ly z_Xi@)QT)I@Vnewc3Pda;N<5~+32iO}9Wz+xuM38PcF?i@xPeF`dP`JKRUl$|!lXe( zT9l6|m2p@VbQ=F|pfx6yDNU(XCYy=J;d=Xx7E(5GpCsziIlQG_|<{C~n@p_Dt?VN7a?ZiE5 zgd)sDB_v`#68+#J=mcG$8}xuU=mmW~s`6%pW{`M*%BYmi>Wd`wJDtMc>3@dOkIosr zsi{n{4&vU~W8TR|e(Kij^~~!0@_6zJVCrg+=|h~0B$r0hQK8-3`Rf_Oo3@&gA_=E8E_lSf;o@@^I!oif-Jb>qu)v2_>vW$U!1stA(-V41&!9i27dp$fU(zdj1AUX; z(tF4c^hrmyXq&!i?K}1#TC;60+jamrD+pO#)NT6`8(h!L9OXE-b2s<%5D)VR;$vW( zCpcBiP4CvY=j`9Df5vBdiC1(+VNc#`-h}lIeB{qX{}(O4@|Kp{*njbF{=-TgR{MLp zcIg3r&jEh7>X?q6*v&b$tGV&B+CI0(>s3|if~rV}$7 zlWIz3R95Ac^!TFkk$~CekJcflRL8vj zXxJ%88g$f6F2tSOpb-p&0%@lp=qsvqJL*nNn96lcnOm7`AQ^?~oR=uN(j?uAq$>h) zB#RJXP!EvEyJ0m6`F>A#Ni&-ss8I)vLl2;@dmyJrP z602U;;*x9;tI2r+XM_$t!cojbrNnU$aSyl(T0t9V2OXdjbb)RUd7T+i(?`-vV=zoTCA6+u;pru&hqlg`s&R> zZf%vMha?@r8>S<8C9@XP=(-_1I>{KxU6Lk@&b_!%ALs|yzyKHoNst1QAPr1lfhlks SOoJJa0kdEZ%!4dg@X%kMH@gD> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260wy60pp b/usr/share/terminfo/n/ncr260wy60pp new file mode 100644 index 0000000000000000000000000000000000000000..8de166c470fbde219ea24df9d9e8f4bd8628d0db GIT binary patch literal 1216 zcmbu8%WD%+6o=2fE=(WU6jAA+HP*z^R?K9YM;~b$`+nJkTC6W{>Lj&~G^RDS4Xwq6 z3lVYU%7sgJE?l@M2)dBsLd17wfh3LO9{^rgkN}+DN@ZIyi=bk%Et!SWQR6)P! zk<6JZdQ@90Mzwr?bE0q3r?+cb5H8Nf+q~8T61I!}o-q(ldHaFQC7qS1QXsW1C(>e@pM^J>&=aq$0btN8gq9 z1N%>aj8J7v!FNfv0Ovx#ENnVqNOv^c$m3di^>vB`xllSEV z$s_)FDAG-b$xEy`IyXaVS~qdQA4iOfj_3;HLxDzLW1uBq2J(7IwUfK4Qsvb9Qk#daw$U?$32VP`mQ;dGEQAx<~*3MbK>jSe;vymgWrI1}de1RL#~iIv`B zKwZIuJK<*#2``Bea1Qi>KF|*az#td`!(OVl?}?f*;!&!mDmvi|lESZ4^I!LI-kTSk z^Fq$F74Fc3cH>dvDZ8^4o9UVBT!<{TX7!~|u5G!a5WdsC+O?*wN2&Dv+0^lvrjDmd z2fE5VwH< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr260wy60wpp b/usr/share/terminfo/n/ncr260wy60wpp new file mode 100644 index 0000000000000000000000000000000000000000..48e50a5db0cb7c2d9b57d89548a36f6fec00f79b GIT binary patch literal 1218 zcmbu8O=uHA6vy9;i2aI(qF8)bQ%Q)V)@(Lu)7sdkP22R#w!}hPD6%n|ntr8eo0=9& z5haX>GjU(*|U2m78r zs>mT7(Kn^OWB#F(Wwi*)x(w_Qgl%)RWrajU#6-8~6-kj2V`5U=6fvrreg2;F|BM&Jy4X}1TYuyoh*wy>1s}vG*Z&#zi})%I)%pnYFG2F8tdpnZ-)B1O z#$)_vkMTQIO)AROoaU-(f%3_KS_i9M%eo>p8I_$fE)#M<4$E;lC8y=AoR@|)WnQkx zqAba6xhwBW9`VJ)?LBmgJj9x#IS8w1J;Wtn95LQ;OvbLDkedl}0=945WR5wClNLfzY=$@&W;4heJc-lU=w>6qdo6s4 zb5Y(-u+hc2Smg}{)fH-RC;S8=;UO^s`anNOf&nlHhCm7od#KsICu+usN2!78>7vuf z6n>$`|GJO!-n``O7k0X>b(K3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr7900 b/usr/share/terminfo/n/ncr7900 new file mode 100644 index 0000000000000000000000000000000000000000..8153497a1bd4bb8e7ab8d5dea39f443199ef567e GIT binary patch literal 500 zcmaKpPfG(a5XE1_KUL~Q6m$o1MTUqyxY?~P;=yWF1R#YUF1R#YUS1ObdiS)GR3oB3;O`l*LM+570}Wd75<> zS;7Y9o=x)_c10L zAMokN{&2xQnO($##G5f|WZ592MxJuYjyhCbNvTmzxw#%`GG$4*F6+n^GWC!bnHG@E z(5WC-NE^9EZjcVrK$=JksUhb`6*=Q^@a_}%JwBiMW1no={3_2fDagc=+v8cU9rX_R E1<=s@=>Px# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncr7901 b/usr/share/terminfo/n/ncr7901 new file mode 100644 index 0000000000000000000000000000000000000000..6132ceaa414b978d6a8df77e999f4c9e041aaa68 GIT binary patch literal 534 zcmaJ;O-sW-5PhrSN7YnBX~|x483GnDX{*JXA0VPqYVn}pp%8n~wk{$?Y%3!D1L7a^ zAFZ>SO~Hb0n3*?k-po!CUlg!`S&Z?GUh-7ikK$qdxEUA_bRX~99SDKxBhY}>MK)lD zz1DM>#}ZZ;Z{vjhDbCnmpw7ysRTz~yS1!AD@fIz#Exvb52R(X;3zclt@*wr5LAITiUE#OC^biA4GZkT>t<8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncrvt100an b/usr/share/terminfo/n/ncrvt100an new file mode 100644 index 0000000000000000000000000000000000000000..f97322b968243eeb6e6640aa5f96420a7b4a6058 GIT binary patch literal 1488 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 E4N5{H=l}o! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncsa-m b/usr/share/terminfo/n/ncsa-m new file mode 100644 index 0000000000000000000000000000000000000000..2f500ab2720f1986f5e3cca132b01a2bdbf68399 GIT binary patch literal 1442 zcmcIkO=uHA6n?WPwFT*^m+mEqTiRmH?&i0wCZ;VC+eWmliiBcglO}2NvrV>Xo2Eq+ z^wL8wMetArK@kd~CodkvixiG^_!O_AQeH-VZZNv^Y*=&o%e?A6(iJ5 zL<8cZQkt)(hKda~HODmdp>X5k=yc38lPQ!kj>kM5^emJsociZ12g#zd6r(t1<8&E(1-MSLl!DFD64|r@<+^Lk zn{=D*L2c6x-G|+yNA#4QLA?gv0H1*Gzz;wU60Um`XpTfn{4N_au3@ZA}5wb9g%m$w%CQ;YiB(X`>daX-;2-SFXF5CCccZ9;<{tX zdGO&e(e~a_?y}x)ds@*u2cF$SZ(0%m#y(IUDvy;Bw9jl$ewd8G1(Gw9eyR3U?HpN&w~OW zK5h8-=l#QJai9=&p>zR#FhZ*Q5M7IEc2ILHL$jnbA^lD1hYU2Oq1isIfq6)?iZX0i zbI?vLgFa~%sd4J$Cez$pDz&hX&F1rqi%Uy|La|sXmCLrhyj-bNtB$j>Qmd`5uC1-F z*XtV_jmGBYmMj~Z#*9V}@FkJXX0^HgKGr@{x_w+)AJ^ZI*AiC}w>CWm87zUKLDMp< W;5_6!ewp&`si4bp$csob)ASR})Q5=x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncsa-m-ns b/usr/share/terminfo/n/ncsa-m-ns new file mode 100644 index 0000000000000000000000000000000000000000..fef2b9c061b364822e1c161779c43cc286b47843 GIT binary patch literal 1436 zcmcIkO=uHQ5T3UP)j|;jLAoG|bfqoS>~4}x%GShMg&14^S``U}uF1C9Hrb@R+yAs8 ziipsI2%-n+K|K^N-o1DfJb3pc2wsIA#EY&olcpe5LD0v}_kC|>-ru~(c8W8w9{_s9 zJIN~sc3-v63mWH!MhBHKr{X!GVjMG-$(pZ>*hSY1Ye89YJ>|-nVQ776rCKXFO1D>2 zg3u1<0;S@5P7i?Kj|hc`A^-{Yz(MGQBXATVY`tK?aTtUg_VREM@iN*q7>Dl|wZVaD zsBxyxxBv~fiRupAgZs#j;0Zj1O;nWs3i&U(daf)?04;|m=Lb;F>^)S7VF3lcSdc9XRJ37--r*0AH^r} zS!{`ZDT)Rp+VAd`!C12e(h}<%JDyhL*0$&Fu1G86-|)KhKzb}~NYDTCI#KlEFIRXe zy^>x_Z>2Wq0J)&LYF$@LmRdK|l8=t~6hcle7wlW`zdIX*mP2Ww#y+%C_&sLi>8)gt7S$N8?1pyxYVYN?KM=kuuVR zI<2htvqNLl8RLvR#7MF>83|6IagUQ)r{{uF30RD@1TDy(6D={^5;PBoXbKio#e|EH zMBvk=e|_FRoE8t1f_5xiQtQotOdHYEtXenK(9%_lq=7QglnIo{rqtDXTy0=KrCL== z>sLd(Ox3|#QZ0~kun#6CYMC`}I`YZ{hr XnMIUE`b*LeQ^FgjCXZ_tjE%w%8SRXI literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncsa-ns b/usr/share/terminfo/n/ncsa-ns new file mode 100644 index 0000000000000000000000000000000000000000..d23c78ab692e2a90180b48fcfd2243308bd1cfff GIT binary patch literal 1630 zcmcIkPe>GD6o20oXo3_$5Dvr;PN-lz|8{3(%yqM1F||Kh5sToat2??oyY7ttS0jpu zz(WL4hwxAxq)YcM9fJ;Cqf-=g3IY$&rKb1ZxSx+LzcSD>m{f+cc`q9%#z|WlFP4@5%&6-HML(ywo^oZ#Ftql#QYemPm6p+B z9tCreqT&acV8&PSu9s~E5d4utA|Twc)k8Pz!#scl`{4*Q!Erdj`ZjRj6eJ;qy)48t#+EdyDYgd!`;jB`+do5=3KJ-Cnl5j=sXu#SxMuh4%$+d%t{M(qdspPM`k zg{Tva;;=X>j)`W`CNvQfoq}{p#IvGToabH`4sLqN?bNP{5#fq5Dwo7e``zBUFjsB9w7~qvR-~4>wHdj)EmKqMjbD`>NROp8 z>G^+NCk$Wga)p=DE9tfLR(iL~aeGsj>MZZ2Pf{H;f}B=ewWO(Je*%T&A3j z1exo8Hi*myI2tGF-NNHK!CT7G5by`{P;DE-cGn$M%#E3GFF%q0X;~tA@r{{uF z37GWP2rbBw?i%T<5t@fnGzAl?qU9n)5%{$6zn}LXr^N%=(13-DYHeL0(?&Ekp_XE5 z;OMGD)Ie%gsf9FJrMg-&)e81))hUpyLk;jU)hynU>VTYr128g@$&8OrOt|jkH0B{BVuqtTu~DRCrtMf7Jr|QpNX*(~{FBH3cRdl1hcyR= G2H`h&*(=%r literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ncsa-vt220 b/usr/share/terminfo/n/ncsa-vt220 new file mode 100644 index 0000000000000000000000000000000000000000..2a483c85b7ef9bd03da23f9a496c480b9ae7806e GIT binary patch literal 1648 zcmcIlO=uHA82x7IKZt^e&^;K$m8z8N&Tg{RZ5yjaO8u+0iV_6VHchup(rvP-ZA}$~ zB7zjbgLqLvJg5ipdA|DQ3Q_)-b9S=n=}Qf3W5&%-uLF4H?uq63~aM#r%kk( z0`d@&ovD&?S*xSAVVp?PD%wiTw1akO{~q$GgSw~(yQ%6L{}#F!|>3B4fpk>%)*M1hU4GFTk?*)Cm+fu@|k=tU&vQ-@jt!s z^UG{pM(d0t497L~B531K_ zV^@u>*&vD8uh)$V0Ty!Zrvud>lQaS}KM^fxkT+hdpArgC%M@nas#YE*Au2 zW8>rbe4$V*PE3U1)%xC!-QNqwA}5{gtl2qn(c8QAhh7?YH^1;-=y<5918e$s#C~RKD#ehaee_=erhP ZCP!D9mAjXo2Eq+ z^wL8wMetArK@kd~CodkvixiG^_!O_AQeH-VZZNv^Y*=&o%e?A6(iJ5 zL<8cZQkt)(hKda~HODmdp>X5k=yc38lPQ!kj>kM5^emJsociZ12g#zd6r(t1<8&E(1-MSLl!DFD64|r@<+^Lk zn{=D*L2c6x-G|+yNA#4QLA?gv0H1*Gzz;wU60Um`XpTfn{4N_au3@ZA}5wb9g%m$w%CQ;YiB(X`>daX-;2-SFXF5CCccZ9;<{tX zdGO&e(e~a_?y}x)ds@*u2cF$SZ(0%m#y(IUDvy;Bw9jl$ewd8G1(Gw9eyR3U?HpN&w~OW zK5h8-=l#QJai9=&p>zR#FhZ*Q5M7IEc2ILHL$jnbA^lD1hYU2Oq1isIfq6)?iZX0i zbI?vLgFa~%sd4J$Cez$pDz&hX&F1rqi%Uy|La|sXmCLrhyj-bNtB$j>Qmd`5uC1-F z*XtV_jmGBYmMj~Z#*9V}@FkJXX0^HgKGr@{x_w+)AJ^ZI*AiC}w>CWm87zUKLDMp< W;5_6!ewp&`si4bp$csob)ASR})Q5=x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nd9500 b/usr/share/terminfo/n/nd9500 new file mode 100644 index 0000000000000000000000000000000000000000..0061f716ed22ea4d76a6eeb6e891a484f629173f GIT binary patch literal 963 zcmZ{iO>0w85Qg9JgS2W?5UO@SBjgZ^Qg5nJYil)a+BDTR^#esWHffr+X$@&i8^wYP zg@OtN6$%Op3JNYFtxRZT7_Pg6R7R4ywOG%&4;$deRxh&+ z`_T#qhd4WoW3-*53sJ)xf_$08n3 zA7P31F`nW%Ug9<0;4R+aJwD(gKH)RIRQG(X>bI)aD)?8w|2O{wznJ?Cch!nDvQB)` zCaxQiBebhWKciP9Et$I6+WKtW>_pvYZO@eCz5LAbs?xGoTeDKja#L=}ZCQ|evM3K_ zNuJ0vc_EsBk3UckLOY=6p_ib?O(ASTfsol}Mopou=AsF^psfyXlD3Ai2^*mop=Y5J z&>*x0I^$V7#z5l^MfXCBur?j+j5r6nG-E$k){w^fbXtp=gr0%+qPhCErfL~-(ho_H zDCs6WBu08kABmHGzpcsJ-{4iW8#-@7PRJgC<+s`TukBnJ4A+7w=m_tx=BmZoa?J_5 zwGc6dqh_8@Nn1>Z4Ytz_8a646M(DU^8~F%r1d}8KQX>j)RT(UfLeE@9l m7HqaB9`^dc!0w85Qg9JgS2W?5UO@SBjgZ^Qg5nJYil)a+BDTR^#esWHffr+X$@&i8^wYP zg@OtN6$%Op3JNYFtxRZT7_Pg6R7R4ywOG%&4;$deRxh&+ z`_T#qhd4WoW3-*53sJ)xf_$08n3 zA7P31F`nW%Ug9<0;4R+aJwD(gKH)RIRQG(X>bI)aD)?8w|2O{wznJ?Cch!nDvQB)` zCaxQiBebhWKciP9Et$I6+WKtW>_pvYZO@eCz5LAbs?xGoTeDKja#L=}ZCQ|evM3K_ zNuJ0vc_EsBk3UckLOY=6p_ib?O(ASTfsol}Mopou=AsF^psfyXlD3Ai2^*mop=Y5J z&>*x0I^$V7#z5l^MfXCBur?j+j5r6nG-E$k){w^fbXtp=gr0%+qPhCErfL~-(ho_H zDCs6WBu08kABmHGzpcsJ-{4iW8#-@7PRJgC<+s`TukBnJ4A+7w=m_tx=BmZoa?J_5 zwGc6dqh_8@Nn1>Z4Ytz_8a646M(DU^8~F%r1d}8KQX>j)RT(UfLeE@9l m7HqaB9`^dc!0w85Qg9JgSKi^5Gw6}X3;||)p!$)T3f4a)25B~!zzkyY||u7+8ELr8^M4J zg@OtN6$%Op3JNY&BaU+*94U`RC;Zm;m$Jo-KOCXSW%DV2DnFITrIHXqWmv6DXk{F(+d?X1jJb{2 z%y|R0z=xe)W*7D&2nUBbJA&i1-J}P-h*D#uGU6DaZ{K*%i(SBFPp6TlW=WAOda*lL z^3-+jQtx9K52%l@Li-p`@fCwVVFzq+cp>ebe))sozl zTXI{Lv4=SmvT=%D6wLC2tHp#x~G zzOA`hhMe+2hDk5!BmE>w2FM_Zks+V0$=l!PRkRmcHUTGKkHGT7w*G4^YlER$a0)uf z`>V6nVr{wRq}^JGn8Gnr=2O&m(`AF5blVJ@6haepM$=7ywF$G)x&B<=)!zK@{ORJz w^)riOrO_L4u)RC5-JW>d>jMv4v~7|&i=QM@BtfQ0lB7tQ%#aMpl35@A0AJ^tO8@`> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ndr9500-25-mc b/usr/share/terminfo/n/ndr9500-25-mc new file mode 100644 index 0000000000000000000000000000000000000000..303bb5f815babc0f23d876cc1abc27ac08af68b8 GIT binary patch literal 1070 zcmZ{i&r4KM6vw}Z2(_AuB1;d|TX-3zoZdWVOw%lNbkfRS2o)`Id^3*Yk8#wg2{c*; z;$IL55d;wgErf~+1S1MuxNsp+AR*zRMT-_Kis{@pKghHPpL@>vo_p>+_uf}Z)i{ho ztm7BO!xOcB)2y`om814_N1(@$$VkPKgNEfdMq=^Eq!EgTjnPmvW*hd{*l;W|2_j@Z zZ8N?|gf67hB?1ZQbf+YDV5j&6*aa8%JL*B4ga;;k5>?}jjP*hT8W9j1M7xao>p(Yp zaTV8b1GZ>U3_F=5QkcSB@n?itN4t+X$EMQ{#6H9$JQn)|Pi1_DdAz`DEZ{BPV+qSx z!74uDGuE;-U$S;RYcuM^2N=NCQ=rc6CC97x8i8@cu>E*WB z+qLY7@pYqX*OSDWYv`U|7jn-*{zR`F3K|hJxP#_P;Rp2^s zFZdextV(#5+iZAC%6;b4Q@ecc8}t0b9CMXY7-iTCZSmf z2rWXZ5EL%Bbf->zq0{Ga@U(K9ZhbI0l%-EKS+ZI5=EM-VPyT8i(p_`8I;RqTm8enE zD#;b9PRF(4mZ>@pI*W>MS|!z#_l_*?MBx~cg{Q9&PxV;I& zPY?uA6e2|t1wuhWK|w)5K~Y3e(F1*k-reThy}M!Qf!~>#|I9ge&N;V?y09JV@e{u& z8JnsL`g~PpuxdP7l}u#1L;Z$UjG4GKVwgcA5l;@KjYu+Pj7Ns!Q6oArF&1}~d^}@DG1+A=;@7i_&Ho}7<@oc*odr%D@0ut@R0ht?wMl?Cu5Wi?}KCZQR8Y9$*=d@f6ST z60h+V@9+Vi+%=zF`_;9&%hkrWHS<64TXG&MqJP&F(>B^c=S9EpUoKlaFZxxwP77<~ zvsH_$W^b&j=6bkAcbxpaeAQCk%hjy3_vs-$q9^o>UeGIgL+|M$eWCBf?I@53NoW>YgpklG zvJ=-(WJ=+0!ovqlS->28PIJp{2Uov&bQ3r&GFepTYm@p)q5r%~kAuf!1 F@CR@Ivt|GQ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ndr9500-25-nl b/usr/share/terminfo/n/ndr9500-25-nl new file mode 100644 index 0000000000000000000000000000000000000000..99e669a570ad6c2dccbb360bc29519bbb0054d78 GIT binary patch literal 955 zcmZ{iO=}ZT6o%hpk=Bo>AXM4|I*VRn(bP#a(%M>0n>Hr4X^cu0L6Rn^O-#ppOpHQA z6pAPmQE=hHg$oxhT)1%ILIgoX#6Kba2SJeW-07rJOz-fV_uO;toq6ZZ^wTi*p$k9p zgsgmRBy5_2P&i+8+D^z7ehkwSwY{+an57j)eLf? zi*D{XRafugzBgYHeSk+;6@84S5})BYUf?BO;WggiE#BchKHwuh;j_2ri>F^b)lcg* zzHQq7jvvzdh2Q_J_yY%9C_s*53Y|ts>T#N(gsyd zUb9iNRG=a)Q23;CXNwJOCa9SKTOyQs9^=!Uw@M=(sR27B-KJa~|AeKS!sz%r%|^p94>! z-@8$-=YUT8Kye`=ObC-gRG1Q`g_v;0r|r1=dt5UIz%AuB{o1`a4{7W5zKz9TyO;%M zxS)u=9xNIIb8e1h19QuO*{d15(Y#j9uS*~ZMxxn}ZK q0&99@v9OtlS~1hGVv}Yf zX&RGO*c{WDm9(Ub5r~D2p!6820ui#Gj#(`h^&pce6G+Hpx}~-a+eH^)2OQXIyZdn* z)o{Tp*(scnwozz8Gkg;L=#*A}UFbzWuHrgwA|ze}BX%W)G^TJz^o%fTd-pJB$4utF z#0PkYM-m_7iL_5KkLP%W1-!+3EMf`ESiwhp#%gZNmt0)S#q9c<+pqtvuj9AW_R#_Q zcT^db(_y+R{tV4-s_Ncz;?C1Eda-3SKi|tOtFO0o^J5n1ja`3N==GtX@_jbOMOva| zTA@$0N^7)E-{?F2pr6DYD3S-{8gK)+AAAjbR>j@QX*ks}6;g3eUZNC7z|}7K3%S~j zUDye}0`3D3fh)j%54Z|EF3N2yzgMKD4y=?!mjtc^C$!EItZ1xtoowQ;-b9+6>}%&J zC%7Bj3vNSsZjI91=IFcw)FCtrEkdi{6WWA!!7p5J=$+c*i|u_L1y3ud%c&10hw|uC zB@b;h-FY(r9+1D9hxM+xQk_%rS{1KT(<;SPszK-VA}dq_`|U}^IIU7@%6(fVx9eV= zdJ1WcURQ>zDR05^=(H}IhQMx=fFnFu^4HyC*f-J|Z5eHjb&Ow3U7ol!*`4mX)d_jC nJ=m=;tjE4fxvP}Ecj}b04+sGvD1?NtULk*Vc3B`efPmA literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ndr9500-mc-nl b/usr/share/terminfo/n/ndr9500-mc-nl new file mode 100644 index 0000000000000000000000000000000000000000..d5c20af197f1bea83c6c3748977208bde4615a78 GIT binary patch literal 1054 zcmZ{i{Yz6}6vw}Z2<>GhNM;_W`-2Zt%5^tqX}**?U24r2iVFI{xtW{JIo&k{*Dpc% z7X(2Rg-B6EflyFTP*6}%P!v&A^g@3_KY2UPbz7PCz~`QGzUMj5J)E~ z=*3YS$4T^y7Ddd-jKjh-GUDs`vyOHi7aVKb7sXz}70ij9$94JM#BD6#9vh} z|DHR)YWCWyYOd}E-E#7G^0OB5UT)5EdzbFhLwZb4={dcm*Yu7)&}aHa+<^kQK&}SY zgO7kufE!iHtK5cL?Nkw!^5tBVU_01j$}3}!7aOqwd<@(NE(ZsF;7ahgcwWZ~`o-1M zf|U|$is1_Ig!Y#hC~v4ScQjCWawCl8(Oo(fHOLT+a>HtGB6aSl$7#?psOowC(_AuJ3C5g{rJ3a5l2AtuCy HVHbV_y#2JL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ndr9500-nl b/usr/share/terminfo/n/ndr9500-nl new file mode 100644 index 0000000000000000000000000000000000000000..4b64f626e57492c1d89662b7f52dfeb47b44a7b7 GIT binary patch literal 949 zcmZ{i&ubG=5XZlxNb8TNAXM#u?jet~XyYatv9?yzrj3bh8lzH0kfcd!6VsR<8>0{r zg(3*!DhQ#g=VgGq%XO z3)|qqZl|&bhvA2bW3oDqlj4Vk5rnZUV-crE&qooLd`i%#+V%y^I5CZ^#5qCtSDn3k zc;H0aUX=I{kFg~237(06ju&`|S9py#c#C&4?#x#=esiP#w@&tb!}<^W zl-h6nS=aFwHa5`!*|teq?|KVLEk=`+khrlWJ62O2ciX32qRUSG>T1`u)vVpKHfAVK z1zMmgHRulArTerd#)SzXDxCFbInI2yBjzBurF^DOs~6=#Exo>f?Pj38nE|Ke)8(Qo zRf|=p^=KueDkoG+eirwuA-y>$saMJU1h5sw$c?em=t8(0tDdu_8k4uCn~B?T$VKkL mPJNY0=b`1w7p-X_Bg_g}At&U8IpMl6FBF8L2mb(Qkeo{Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nec b/usr/share/terminfo/n/nec new file mode 100644 index 0000000000000000000000000000000000000000..30ecbfd93fe5b769104bb3b8f464f4e558604d7c GIT binary patch literal 382 zcmb1QRA3NbU}ETE&|=6-O*S<(GN=L4HN^#)dF4f!C8*yq z|1$t}|NqYd#0bC+=5fNsxZx~5I18Z~7fTF7tptV$F1_>E7^DpuI6*?vmLM?zxjhR? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nec5520 b/usr/share/terminfo/n/nec5520 new file mode 100644 index 0000000000000000000000000000000000000000..30ecbfd93fe5b769104bb3b8f464f4e558604d7c GIT binary patch literal 382 zcmb1QRA3NbU}ETE&|=6-O*S<(GN=L4HN^#)dF4f!C8*yq z|1$t}|NqYd#0bC+=5fNsxZx~5I18Z~7fTF7tptV$F1_>E7^DpuI6*?vmLM?zxjhR? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/netbsd6 b/usr/share/terminfo/n/netbsd6 new file mode 100644 index 0000000000000000000000000000000000000000..3bc0a27cd3a515bfa2320526bd63c7e5e9d32957 GIT binary patch literal 1597 zcmb7EJxo(k6h8N=5j7@iLWsPW)W|h5_5HSBks?2#@}oou603ni3l!S&XdjfHf?>hQ zFgU1-#ux_~bTB4H6B7~>7abg&T^!WK!O7`)?s=~y1cT`f=li~M&Uf!?&wZtqsc;sK zL7M&Gxs)?nNQO$6Q%-Atd!Seto5>Xd>0Cg!0-1C!6=?5h3k(iusv5}7BvSy4{(u(4 z1Q(M4=820?f;Cu&4Y)`7LwEwu;DztmLjH*H4dc6C`-%L^*RJ~;{(uVy*b#P|)v#0S z46A2BW-`}p#JIp(Stqhw-9BGI?q}Cn+|RwP>keZ+%BGpaR#2_84R#;-vG3Ys&)G}V zul@Wj@;kQ0-m?$v1b5wPjDM|~?RppQBR#lXDf_QeWtb;-b*6Sz%6mMv|I^>;p5x1W zjo+p{clcfYfIq5e|IX9)%AQtu?k0c5-|$cTbA|i%`V5u!zVNU7ARGlHF4Dr*L^2|5 zT_p2ZFeVUUO1ulH8$Eu@^_yo3J$(9#395RFv?d8npIr4wqp)Ef0Ple9$`CTt*Vl&Gr`sZ4v?F$>8O z`Ms}gk85C$>lg-x2}%d{>AT5skmxN7`AMkKQWiaBA&;h(Je7o;Xd1(mU?Gfw(f~>r z6!gj?RS^|-NH`HqM5NSFnw~UKTAtK|ZHN-)VG+qnTcdFBibM*hEh64c#o!Q(j3g4{ z;}a88Q`6I#Og5X#&CJ;L>})=stjak=!}4OIVZ4-j zIdyM#G&+(xjge-o)4X+0)BJQAr9pRM(0mQ@7~Y-8mk?h-d_|L2QHFBzNg^ImHQg|+ WP`IJ-CQc+SL%vQ14NWT3SAPNepae7k literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/newhp b/usr/share/terminfo/n/newhp new file mode 100644 index 0000000000000000000000000000000000000000..430b5e450f9fbbd253b9da5d71558a741fc5d85a GIT binary patch literal 967 zcmZ`%YfBVi6n@4iOHf0K!t-UdeRo5nc4jZGu6aw;bggxFb-R5ToZ0oVZsY9eRw@KR z5ClOG1VIo4K@bE%5Clb^`V{mpg8I@gn9lp=3JN>JdCob{b1v_^OsAH>NgTm5^fy)P z+LE(fvMaW`ycn=6o_jY?yzK^<4@}v$vh8_+jJddKx>mrm-L>V4S*}9UprQWkMjA5k z{nKo||Fr`+gu@&+v$ddAvA%y?`3{9A7*DZvqD$pLgwU&^2;xX`bP;2iWS_(v>(##hm-$2!Eu)z)h@zkw&@@_b z6m$tR3d#frjUmu1+CU+TiI6oRVG1-SeNMudglP%mXqRq;F{^?)tc(Q*lRPL5HIV0X zeMSx@?&eyxm>keL$OTnF9%uu!395mX)Vefi9K`$QK?~}Hc@UpK9;+HrsE?wxh0|ih z6pk*e)rch=LzIP;mY&Ckih5(oXe5>RQi!*OEU^{Y5gAhq3nwN#v8C^bk|}y6m6D_` zoT%6qPJ)4DBo8QkJZM;M@v0KTBVpcWi*PQ?EA3rrpTZR>ei!9| z`i0jf>~@g?={TmY-?$kai4Das_n#dIPv>R|>ABg_t7kI7xm30**PYkrjfGetdTro( h?~NX7YGraYU(T*gR4%Na^Wqzc&19|b&Ux@(^A9LMQXv2U literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/newhpkeyboard b/usr/share/terminfo/n/newhpkeyboard new file mode 100644 index 0000000000000000000000000000000000000000..fc93010607394f5e3f23ccb4ece98fdb86fea892 GIT binary patch literal 459 zcmchReP@DU7{z~$h%sV}j&U<0Vr|42qn4Fkc-Grrk?OfuiKlk=w2HpQK5x5=eT9CU zb2-Pwb!8GoPW&r#)_ic-SzMq$8;6GL!1*nC}sEr!u pW`(|yLu(YH4f;V_G((@Li7My=^-v$Zqb};863VU%XMgfO=MS3d7BBz+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news b/usr/share/terminfo/n/news new file mode 100644 index 0000000000000000000000000000000000000000..8b7f75005de5ee7f6cc0a71c277bbc9cf966cbc8 GIT binary patch literal 1245 zcmeHHy-LGS7(G!@t2nxNL4ptwM4Hr;D8&}7V(|xmamiw(ffUjo+iFqz3ci4kAr1}> z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-29 b/usr/share/terminfo/n/news-29 new file mode 100644 index 0000000000000000000000000000000000000000..5da812739e8216b63e9d9faa78b7ffa6b064b79f GIT binary patch literal 1197 zcmeH`u}d3K9LK-c3bqAD7azh&IUGdJOSOrp2}UcT#;8e?N}!O|!vxPHB&WgBt+RiD zgLLTN;Nalk(4m8agM)*Eqob>9hv)abyoMIkf51NO^ZkDBz2EVE@4@w0E(Y)%yH>wd z@tcjo$mrKhwX$O`zRPFqT-F;Jvi;4ipcq!`cC#Fo?8vAclq-G%u=ImR2Wwch1Sxw7 z@C+UFZuFv$E~SIFh%t@pw>UMa(~MRr=a4o@RZE%0Dn9C&&t`rd8|{iJ(>Jn5_S>^k zemD6C4ww#cgkzlGCw}1+XJ+l(_=WLHT;bZ}*53E&jj6bOu=2NF>9KeN#3pLIHr{&s zuTS{~9IF#u5Cx~~)I4Wx%&A43wK^weMIkarpC`)yDVW78Re~4PDKbe?WMq@#DT%ga zSf#&7L`$NO@RYm>L{!A!eks@7MyXi$-LUwn;fL;a$e*9zEvPNhNwP|o$TC?W8ImRM zNsi>n2Qp3AQd+f?@B$InUJ?^@eZZJu D#seMH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-29-euc b/usr/share/terminfo/n/news-29-euc new file mode 100644 index 0000000000000000000000000000000000000000..4d8d39a6c96b5a937619410ce1ea604f16f3616f GIT binary patch literal 1209 zcmeH{J5L)y6otINzF`O9>Rw4m^fQZehgy|DL;|or4hOhXB?{@9n`i1o$_=#UOclN$Xf7^;bw^m-7 zm59R|Ad=|u)OzRbzuxB?aGgFpfhf9Fx9Pd%q}zm`;C_j#or6?P(beL|h~g-K#dE?MkWTN5j&3+Yh7LA%6n=Zb5I6 zog!-_N8XY}k|zbSM3%`4StT=sEoF5}X)h2d;}!9OZjP9_4hs;eP7lTOSim%{#Wa^- PbG(EEL>wZ6M?CHocC;ay literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-29-sjis b/usr/share/terminfo/n/news-29-sjis new file mode 100644 index 0000000000000000000000000000000000000000..84eb3e2f5f8f200ee21e9f7653fef8711ef07c22 GIT binary patch literal 1211 zcmeH{u}>617{%X;i9$kY!-QlA*-#L2>ynPmo+HEGXAa}&!*gfM zX$Jf8L^?MSZ-?=b-)bJndrKR>T(5YOlQP)di)u-$Blp9kA=5b-h0P$AwPs!V#XCOW zmPL5Qjwx^2&`&$#WhTkmjUMO4#8`dy;^mx2`x=n`C~ zE|PgtBGbDRPfMmJQ#$=jA=41mf~VzXBr+n4)M408#f@4gNF}u=agd~*CHxEUyH&kK zd4X(_HFBRkAU>&(hh&{>kVoV;VM}G*Qo)Nv-graI(ajM{Kf)?RzS~2!FcmRPYcb7b Q*&Ht+3z2~+p`XY74s!w`bN~PV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-33 b/usr/share/terminfo/n/news-33 new file mode 100644 index 0000000000000000000000000000000000000000..bc0264136900ae71f78646d9648a41becd344e62 GIT binary patch literal 1189 zcmeH`y)Q#i7{;HA#7APZIFVeD%OFzMMVp|F&j_k$eWi&6ZM0F@P5g!C){L z3pbqE*T!YrafNH#;1+jg z@80->@kc!2+2rEc-|35~c>S^RP4CoOQZ^8qsL^D+IQ!SX`~@7V615OCFxY@Ga-LU#6zwUFC+XS0N-9Z z=gX&-x01fX@=88g@NF0P)APLvbwp%9I*Xc{~K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-33-euc b/usr/share/terminfo/n/news-33-euc new file mode 100644 index 0000000000000000000000000000000000000000..e21f0f4b508af51f1d308d68fa2be578b1d9560d GIT binary patch literal 1201 zcmeH`ze`(D9L3L5p;mD0;zf8x9u6hMmlvCWHbG;GSYxb7{6Rp7$-@NGB$#NhbnD!| zz@c>L(4m8aLk9;32L}fS2gi=Ct`4{7-dux1^&im7`c7q7iuLtnM(kce(>mEjjCFN zl&=ZUgFgBz3`5PObnq5Yrb#`EQKxl!uT{!9q)k%QQf9G+b-hwF>zml>R@9lkl6~^M zyDH@mlYinD({CK$5PxulW1QgB?421uH-3Rj{583A_W$(CR9rt;d82oREGdVHP1G1M z-kCk?Q~m;u^#X$sd8gtuT&FbQG(t{kn+vldADW|oAj66BDr_|UR&ck)pP%o|t0U6WWQ{D6k7S8t zNS5TtGFc(3WQMS%v}!5tRz*yES-hj`E2eJ4JVdP1Lp~m^GL0+I%|+Q9KSC5D0+GT? GUiTl)k{$v8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-33-sjis b/usr/share/terminfo/n/news-33-sjis new file mode 100644 index 0000000000000000000000000000000000000000..e008c15877035edda3c729459a2d69b1ef142955 GIT binary patch literal 1203 zcmeH`ze^)Q9L3+Bg6F}NHV(pyELVucb)yN~nc%NOqcQ5nUjzqyQ}Xn zxZ<#|u&}VOu&}t|3JVJh3rovuueBK8Ova#~{sZ2ypZDI(e3$vo!nRvcbfXDBtPfVD zxE=O*UQf6hgnRx*WyhW#TlDRPtlQgbZwIxK?Rj=Ns1!pxUn$srYQhIB{ouvH8dWs| zDLV=92F>&~bU@9ebTEK8(cJ(TT*rqo2b!c zygvJ{ulWl&Rtw%kpRX6jd>n~SqKeuOwg3?hwI GUiS{eq8{7; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-42 b/usr/share/terminfo/n/news-42 new file mode 100644 index 0000000000000000000000000000000000000000..1b6f4c21f32e323d7fef53c3101f08a3fca10721 GIT binary patch literal 1189 zcmeH`y)Q#i7{;HA#7APZIFVeDOG2b>l{P^epAl5i`brZ?(P*Qp(S{J4*cR#wB z-L)r&=cD#q%EdAiu!5URH1u0tzP=*S69U9O`m(oEu0!+R7 zEl3^EX+*1(V~Cifs-=u!5lebz#mui^y;QNubU=>CacNe{6O&JI#&nJgT;dAXxWO&% z%-X&22jh=;!n4W6y}#2JQ}Oy^<(poqx1?+!Hc_L=c=7FD|MCquRwZg7;!fJhxz1{j zlk+;OTbvjbaqk#?oGAZNFp3&gf-34D=_g^*wLx)}_)Fqb=`$gJO2k91lFp3qivT=( z>6|B@N^B)Pg~W0`S@3KZ_|x;d3AIIJfGm8in mPl-OdK4SPIOh5#SJ;X!43{#g9-CTgp@e%?MeuyxtdE9qu#TrEb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-42-euc b/usr/share/terminfo/n/news-42-euc new file mode 100644 index 0000000000000000000000000000000000000000..f290a3ce3df73bc35f6230b3e0e44d25057d418f GIT binary patch literal 1201 zcmeH`ze`(D9L3MG1#O{Yms|o*%A;Tj@jVk0uqHIo5@OP*N&G=Th{>Y~rZJeb($cMS z|AG$U(4m7vhYlS&I5>3Z(80mc(bd)AdhX3ND5(E{Uf$=N^X~mV?)P4J0n5V+Jiu4$ zxz+Z!yP=2|^554!7dP7TK4?pn>zwrnAIKW@C_Rsi#s`MW{?Oyk&+l?-i$aR5l6kT~ z7DA+X8YNIjn_y0361o_kgF?WKY{GGcEB?V9by?RwCthIYA8vHi>&AF%X;I|pl2 z)jXtpN`M~p(gzU16S|ZR#*kzh*KaB6luoa;N|{04BvmbC0V{Z?XFizuRjhX_noM8F zH?q^6m2%hQ@7QD7#{mv;gkzlG2Y#BhQ{!jG&+!YtP44V{lU|sLKetx?)hmORlo4VR zHHM6L-u~--z5&O2h{q5mCvaM>Q+eUE;!b6g6EmU|&(LRy@@oY%c%(|uN1Y~zYnYJ*jAf=KflYWE%H-jh0K!$ zvPgVVAaBVMDUxOKlCY(`YANm3MM`^3OwjcabN@mXBGu`kl=kXOqe^shNjAqzNJ1na Ja_HxAF9GTQ9_0W4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-a b/usr/share/terminfo/n/news-a new file mode 100644 index 0000000000000000000000000000000000000000..c68f4f20ff136e14872e3bb48a60466af5821c8d GIT binary patch literal 1186 zcmeHHJxjw-6g^eJ4{&txfdnBAilm7tsgyQo1?v~KR=Q*{l0XWv4QaF}?oR#&ad2>O zaBy&NaCG#C2!bHu5^rA9U=gIV7;?@%_i*05B#=y|)-Z=*oTom~XnPr1nKw_lP$OZt zTX9hp-l=Koo315Pn~h_kwkxO8f_-r4nnBYSR7G&>4I4=D8^2zZp;Q@RI7^7GL8`z2 zhNwHh08pYcNcN_dMWzQ?uyIseJO`UXDe3mpeD#JcFoqLmXp zMYMb}awTRc>m)V^QSC{TFh*7hBg93*5+QRyBuAtrq(+K)q?Tj)wiKBAEjy5o0{R8;4a;ELWkQ9pL#Wcw6+(A&G_OFtE;}p_R_F{jbTwL& SiHL8_I-o^N1KYwVJ-`=UsWo8$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-o b/usr/share/terminfo/n/news-o new file mode 100644 index 0000000000000000000000000000000000000000..8b7f75005de5ee7f6cc0a71c277bbc9cf966cbc8 GIT binary patch literal 1245 zcmeHHy-LGS7(G!@t2nxNL4ptwM4Hr;D8&}7V(|xmamiw(ffUjo+iFqz3ci4kAr1}> z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-old-unk b/usr/share/terminfo/n/news-old-unk new file mode 100644 index 0000000000000000000000000000000000000000..59c0c8288fca9d0b28f127db0c1d70b03f55086f GIT binary patch literal 1141 zcmb1QG-uFeU}xxMyw8xAT3)Q1pOd0nnwMPzq!ohm^C}hmT*HGE!a@uU3=~pxOLG!S z@{1Ib^K*0a^Au9^N{T8O7#P8b0WScm0jdgM_zwrnKsEyd69Ws77G;oQPy)-TF_<%0 z0$H|To;{Fs2D4z=+!=gO_<;;z4AEeb1gLllLk5b994M~^Nwf{l?gFy<7$z}HgNwjy zngtb^2c;J=EMr)Qp$ev&czPSyj7vcBDiGg*ns^&Z6K~F_%HbLUcY*nlmq9vOHB+^~ zP&LI`wZKRX3ww0{5)2Lf>r5C;Qwx&SfEczeSfX*(d_ p-Y`SjmO25AchX>$f?Uj|N~D**v)D+B-l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news-unk b/usr/share/terminfo/n/news-unk new file mode 100644 index 0000000000000000000000000000000000000000..6e9a0c3f0b23e4706f8072bcd0e595d1e0fd5d08 GIT binary patch literal 1193 zcmeH`ze^)Q9L3*?pdMJ-I0!4UTp_ZqrzW5#oTnmcj9%g|0z%Zqh{Mt~Z_kb|W$eYQ*V}9RrJZ6v3M=+{SSp2q?FUh1AKay${|{YY%|S|_0gd!F zbfA+irGr7lnTGXSf;y_xgjOl1kTywGOPR$AR`txfncu{Ay&_~fA}8duJ}c!nlfUDP z=^Pih#1*b_gCF>5)^3g88NbH^9!;*D{WpCw70>^y{H0ggEh#&QP1NWzUVD4jxBLYh zs|l?TIcLi$d(Os?Q|@y%Dx8=UxxOj-G*SLX!6ZJY5;Rl4kk2GV21*o9NvtmYD!nEd zD~MduQ}U@OVj>RrV5{s_3;BxgM)|d>AGx~`|9kG6QAeal$qJbx^W-bZkStjsi)4u` ylQF`U(yFDTR}=~D1u;U`S4_Qx8Hhx!hg`D1$TXltHy3Af{0MP~7(@y!yzXxhs~qzH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news28 b/usr/share/terminfo/n/news28 new file mode 100644 index 0000000000000000000000000000000000000000..a065241ede4816119b37362021bed8564bee835e GIT binary patch literal 1173 zcmeHHy-LGS7(G$3R_W;C6$wH_a7Ys?iIg^I6^mMIt#rv^rGXUEACjmjzJf2{V~B%; zgM)*EgM*`^?-9Ryn+A&@?s}7RzVjVU?w8ylbJ8+akixZ;k-E-#pqp1cuO-)e-3z&K zq-C?R(>e8;Vb7O!Q})_jCjcaI<_Ua_Qw7E_L3I`jSQP#e46KtXh|VG| z2{m{oigvI+($~;{Eu7=nZ^2Cx9;utSyG`6Ex=ZvusRumbDRG9Ao@3`FuCI8*`?u6E z{rmbM_JBkuK$s-(m5%G6`{%!W0y9zy88BOED}7CA<(0m!w0tu1WoGNUB=!irjwH&M zCaa7o;u2wlu+|~cI2j4$xcUNv**-Jbwzw*cU$$kqM4Csm>M=@adEKNG)XR2X4cw;h zsA2OYa6B5h(NEu}5Ku=v0yE?KNJkV5*Pjf&F0;2-d3h=YTJ zgM)*EgQKJWBc6Mk28$r>dXsa$^Bqp^m)s#!nu&QNaIH;fb@!reWjm^57RsH5U(pX6 z^-KNu$V{blw|3^2gGNiYvbtZbyKO*IH-22qFtvv;oF?QNWCaE=#5#!?%qo8lHnLQC z)fLIBN_C$J!wqcr_4_!6qnwk-ufU5FKGjXs-NtSh-o^T!>H&{MP#x z{w>u@|Gs{xJ)rRfh+#sm(WrL2fBwrSFs>yq0pS=`qiGtIoYAz5N{dFWBphp#VvCTq zFHyo6trAAatHd&~R3n*^?3mJ0eSs~UmdJ>8b?pdwIYrwenLcUJ7fhHrE6Ws;SJh^+ z?Uh?@GAN(6-5_}$@VB6bu0ZVW5&OgeamYDqMDJzfeg*bL(-V1!LU(hgn3iLfB&n$x O4;&B5h(NEu}5Ku=v0yE?KNJkV5*Pjf&F0;2-d3h=YTJ zgM)*EgQKJWBc6Mk28$r>dXsa$^Bqp^m)s#!nu&QNaIH;fb@!reWjm^57RsH5U(pX6 z^-KNu$V{blw|3^2gGNiYvbtZbyKO*IH-22qFtvv;oF?QNWCaE=#5#!?%qo8lHnLQC z)fLIBN_C$J!wqcr_4_!6qnwk-ufU5FKGjXs-NtSh-o^T!>H&{MP#x z{w>u@|Gs{xJ)rRfh+#sm(WrL2fBwrSFs>yq0pS=`qiGtIoYAz5N{dFWBphp#VvCTq zFHyo6trAAatHd&~R3n*^?3mJ0eSs~UmdJ>8b?pdwIYrwenLcUJ7fhHrE6Ws;SJh^+ z?Uh?@GAN(6-5_}$@VB6bu0ZVW5&OgeamYDqMDJzfeg*bL(-V1!LU(hgn3iLfB&n$x O4;&l(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news31-a b/usr/share/terminfo/n/news31-a new file mode 100644 index 0000000000000000000000000000000000000000..8aa4eda10b1156ebe9bb747e235f983786ef4b78 GIT binary patch literal 1237 zcmeHHy-wRu7(E753W%`_SE>w>yPzs@E|!C$B;rqv+9C)+S-cR4B}a08lmrlnSKtMB z48*{|z`(%3(4k{T-orij+Odd`Q1^1}bH4K(9pBHsgBOezmNAV>W8UbT_8eP&ZCq%P z*TQ$QcI@OFE&S8L(P3LzRPu!-Wo*fdZrC(y-Oia=-?y__({CS#jbXQMN@<3zjz0hl zedEo=3{$&^qD4ZjNmgJ2Q>>rx8B5y#0vD@PMctLj8(PKBMA0|=9P6v7!_&?|;x`eb ziID0l>8?{Zif&SUOLd2PJfzNO(qrO0CG{76XZCqR54)S5|Z+`aSv zd;)XEH0B{Zt7Y|Ut68vmIjh;HQK$$n_nqPgq3T$of>~M>d?arWYlPD#*^1nhR+M@H zS9pDq7hC$;7V7fKZa}g_k_-hCc0o#}kU4MlGJ~Me_cO!B;lLkePKNv~=%MQnJG(@c r*duD3vq_9zM(tN(U$z5Lgeb+Ed*u~1#!;lF<^yn$a3Qua!*BWv2s}V2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news31-o b/usr/share/terminfo/n/news31-o new file mode 100644 index 0000000000000000000000000000000000000000..8ae38fcfb184fa2b2436071d67470b1ec827abbf GIT binary patch literal 1257 zcmeHHy=vP~7(Hr2leBp3(hH3Us7omJwIbwV5|ck_l9)Jk@uH=6Es#N$gzYx8_!aU3 zd5n-DLxv0)I&|pJv18stIrmBy4TaLZz0`3^_-lkTAB#tiFN!kJMrqSM5Y_DoZa zl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news33 b/usr/share/terminfo/n/news33 new file mode 100644 index 0000000000000000000000000000000000000000..8aa4eda10b1156ebe9bb747e235f983786ef4b78 GIT binary patch literal 1237 zcmeHHy-wRu7(E753W%`_SE>w>yPzs@E|!C$B;rqv+9C)+S-cR4B}a08lmrlnSKtMB z48*{|z`(%3(4k{T-orij+Odd`Q1^1}bH4K(9pBHsgBOezmNAV>W8UbT_8eP&ZCq%P z*TQ$QcI@OFE&S8L(P3LzRPu!-Wo*fdZrC(y-Oia=-?y__({CS#jbXQMN@<3zjz0hl zedEo=3{$&^qD4ZjNmgJ2Q>>rx8B5y#0vD@PMctLj8(PKBMA0|=9P6v7!_&?|;x`eb ziID0l>8?{Zif&SUOLd2PJfzNO(qrO0CG{76XZCqR54)S5|Z+`aSv zd;)XEH0B{Zt7Y|Ut68vmIjh;HQK$$n_nqPgq3T$of>~M>d?arWYlPD#*^1nhR+M@H zS9pDq7hC$;7V7fKZa}g_k_-hCc0o#}kU4MlGJ~Me_cO!B;lLkePKNv~=%MQnJG(@c r*duD3vq_9zM(tN(U$z5Lgeb+Ed*u~1#!;lF<^yn$a3Qua!*BWv2s}V2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news40 b/usr/share/terminfo/n/news40 new file mode 100644 index 0000000000000000000000000000000000000000..8b7f75005de5ee7f6cc0a71c277bbc9cf966cbc8 GIT binary patch literal 1245 zcmeHHy-LGS7(G!@t2nxNL4ptwM4Hr;D8&}7V(|xmamiw(ffUjo+iFqz3ci4kAr1}> z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news40-a b/usr/share/terminfo/n/news40-a new file mode 100644 index 0000000000000000000000000000000000000000..c68f4f20ff136e14872e3bb48a60466af5821c8d GIT binary patch literal 1186 zcmeHHJxjw-6g^eJ4{&txfdnBAilm7tsgyQo1?v~KR=Q*{l0XWv4QaF}?oR#&ad2>O zaBy&NaCG#C2!bHu5^rA9U=gIV7;?@%_i*05B#=y|)-Z=*oTom~XnPr1nKw_lP$OZt zTX9hp-l=Koo315Pn~h_kwkxO8f_-r4nnBYSR7G&>4I4=D8^2zZp;Q@RI7^7GL8`z2 zhNwHh08pYcNcN_dMWzQ?uyIseJO`UXDe3mpeD#JcFoqLmXp zMYMb}awTRc>m)V^QSC{TFh*7hBg93*5+QRyBuAtrq(+K)q?Tj)wiKBAEjy5o0{R8;4a;ELWkQ9pL#Wcw6+(A&G_OFtE;}p_R_F{jbTwL& SiHL8_I-o^N1KYwVJ-`=UsWo8$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news40-o b/usr/share/terminfo/n/news40-o new file mode 100644 index 0000000000000000000000000000000000000000..8b7f75005de5ee7f6cc0a71c277bbc9cf966cbc8 GIT binary patch literal 1245 zcmeHHy-LGS7(G!@t2nxNL4ptwM4Hr;D8&}7V(|xmamiw(ffUjo+iFqz3ci4kAr1}> z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/news42 b/usr/share/terminfo/n/news42 new file mode 100644 index 0000000000000000000000000000000000000000..c68f4f20ff136e14872e3bb48a60466af5821c8d GIT binary patch literal 1186 zcmeHHJxjw-6g^eJ4{&txfdnBAilm7tsgyQo1?v~KR=Q*{l0XWv4QaF}?oR#&ad2>O zaBy&NaCG#C2!bHu5^rA9U=gIV7;?@%_i*05B#=y|)-Z=*oTom~XnPr1nKw_lP$OZt zTX9hp-l=Koo315Pn~h_kwkxO8f_-r4nnBYSR7G&>4I4=D8^2zZp;Q@RI7^7GL8`z2 zhNwHh08pYcNcN_dMWzQ?uyIseJO`UXDe3mpeD#JcFoqLmXp zMYMb}awTRc>m)V^QSC{TFh*7hBg93*5+QRyBuAtrq(+K)q?Tj)wiKBAEjy5o0{R8;4a;ELWkQ9pL#Wcw6+(A&G_OFtE;}p_R_F{jbTwL& SiHL8_I-o^N1KYwVJ-`=UsWo8$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/newscbm b/usr/share/terminfo/n/newscbm new file mode 100644 index 0000000000000000000000000000000000000000..8ae38fcfb184fa2b2436071d67470b1ec827abbf GIT binary patch literal 1257 zcmeHHy=vP~7(Hr2leBp3(hH3Us7omJwIbwV5|ck_l9)Jk@uH=6Es#N$gzYx8_!aU3 zd5n-DLxv0)I&|pJv18stIrmBy4TaLZz0`3^_-lkTAB#tiFN!kJMrqSM5Y_DoZa zl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/newscbm-a b/usr/share/terminfo/n/newscbm-a new file mode 100644 index 0000000000000000000000000000000000000000..8aa4eda10b1156ebe9bb747e235f983786ef4b78 GIT binary patch literal 1237 zcmeHHy-wRu7(E753W%`_SE>w>yPzs@E|!C$B;rqv+9C)+S-cR4B}a08lmrlnSKtMB z48*{|z`(%3(4k{T-orij+Odd`Q1^1}bH4K(9pBHsgBOezmNAV>W8UbT_8eP&ZCq%P z*TQ$QcI@OFE&S8L(P3LzRPu!-Wo*fdZrC(y-Oia=-?y__({CS#jbXQMN@<3zjz0hl zedEo=3{$&^qD4ZjNmgJ2Q>>rx8B5y#0vD@PMctLj8(PKBMA0|=9P6v7!_&?|;x`eb ziID0l>8?{Zif&SUOLd2PJfzNO(qrO0CG{76XZCqR54)S5|Z+`aSv zd;)XEH0B{Zt7Y|Ut68vmIjh;HQK$$n_nqPgq3T$of>~M>d?arWYlPD#*^1nhR+M@H zS9pDq7hC$;7V7fKZa}g_k_-hCc0o#}kU4MlGJ~Me_cO!B;lLkePKNv~=%MQnJG(@c r*duD3vq_9zM(tN(U$z5Lgeb+Ed*u~1#!;lF<^yn$a3Qua!*BWv2s}V2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/newscbm-o b/usr/share/terminfo/n/newscbm-o new file mode 100644 index 0000000000000000000000000000000000000000..8ae38fcfb184fa2b2436071d67470b1ec827abbf GIT binary patch literal 1257 zcmeHHy=vP~7(Hr2leBp3(hH3Us7omJwIbwV5|ck_l9)Jk@uH=6Es#N$gzYx8_!aU3 zd5n-DLxv0)I&|pJv18stIrmBy4TaLZz0`3^_-lkTAB#tiFN!kJMrqSM5Y_DoZa zl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/newscbm33 b/usr/share/terminfo/n/newscbm33 new file mode 100644 index 0000000000000000000000000000000000000000..8aa4eda10b1156ebe9bb747e235f983786ef4b78 GIT binary patch literal 1237 zcmeHHy-wRu7(E753W%`_SE>w>yPzs@E|!C$B;rqv+9C)+S-cR4B}a08lmrlnSKtMB z48*{|z`(%3(4k{T-orij+Odd`Q1^1}bH4K(9pBHsgBOezmNAV>W8UbT_8eP&ZCq%P z*TQ$QcI@OFE&S8L(P3LzRPu!-Wo*fdZrC(y-Oia=-?y__({CS#jbXQMN@<3zjz0hl zedEo=3{$&^qD4ZjNmgJ2Q>>rx8B5y#0vD@PMctLj8(PKBMA0|=9P6v7!_&?|;x`eb ziID0l>8?{Zif&SUOLd2PJfzNO(qrO0CG{76XZCqR54)S5|Z+`aSv zd;)XEH0B{Zt7Y|Ut68vmIjh;HQK$$n_nqPgq3T$of>~M>d?arWYlPD#*^1nhR+M@H zS9pDq7hC$;7V7fKZa}g_k_-hCc0o#}kU4MlGJ~Me_cO!B;lLkePKNv~=%MQnJG(@c r*duD3vq_9zM(tN(U$z5Lgeb+Ed*u~1#!;lF<^yn$a3Qua!*BWv2s}V2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/next b/usr/share/terminfo/n/next new file mode 100644 index 0000000000000000000000000000000000000000..f48180ea39c20741a5800a1295214fe8f1644514 GIT binary patch literal 398 zcmb1Q6k-r!U}k7%@M6eItthGSON|IoNY2kI&d*6@U|?iG1&jd<91Ic+|Nk>EFagQ` z|5+H=!1VwBTny3-vOu;Xn6C^Z)uA#Vb=ZJ5RNe?mo8eGzizIH3#KvYONX(H4HOP9M zNmLKg>ju~3!NAVI%fQ1R9qkRos+p<ynss%=>DIN^KK#BGM2AOoUGY~rhv5B=& WE|3CY6Klgyax#+>OEUBG7=Y>m82-iRB6+zO GI2iyUNC{;C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/no+brackets b/usr/share/terminfo/n/no+brackets new file mode 100644 index 0000000000000000000000000000000000000000..ae9b14851214f80f84887c9e699d2cbd6ef31b83 GIT binary patch literal 86 zcmb1QRAzvIynOAXqQvCv)RN+w)EosUKQ%?6AhEb46{3=bfrWvG;opAE=eq^@dL3Gf`Lp0$CR?fypqK9R0g5|BSQeg|Njy| z3zBG`uWMEOTF)}dFw`1UgG5BE&X`y1{wrOo+ldv^eq_|2Ovzu(Xvzy88 zw%InjsV@pe6cP179|RE*go4l)MW}-MM3YA>;{60Fo(N5e2Ep3Nb&T%8ZtoLX*-Y}${_ zhar(LzX${jTn3H*G!4@I)ahP&i*-6AI#+-s={CBThUo!PbO3Re9;cHuMYG^J$^*|r z7HEme(5qCZCbhv{q?hPb=r`ysdI$PFdY?XozD^(04f+!7TS#<$Pd|YF)U|Iy|GX9Z zg?^(y=ui5aq!<)KVviUWBZBMp0r!hhp^eq)B*Z~6(dFHRd(oS9Urh@>)*gmjoSWPyK-Y^*DM)-of+T+_E z@6TWEQ}cR{@9k}#cjX82n!GMQk)O%04xeOMpo$e+p^}!n&Ju@?RR| zPtsj*O+qr-3-JCJQi3`LISM%qnIY?0?GMlpxK{z#3>iD_ra4u!=<23gq&2tSCn*?JN(3z>t*_Tb6e zNrNeaX+|9fW+x%XVI|nbnOSTr%iGG>fpysEl645$^pJ01$jm0ejUx{~kO@t15?X(47?LMZ+qPmE_Lzec~#k!h~x0w(^;3P&cBs3LVvgos4W3 z)QhMGsw0{NO)0;^#c9PDeI`RO#Hg`T51grKR)d%jF=b zRI1gLl`vdgt<~!FM&rVTix=0{n$1g>E?-_>Z?)R(4Q}Am5NyXFhPZ#iIuOTdCm_5L z$Jd-?`&gSzRjl>9mCl!VBYye6_CNg z3(zc1+IQ1@gd7HKa2$*~VXO62TaBxRV`ig@#$_jrFTEKbRRvXaQoiR$Sw1hcqulLN zZpU}jyF2Rndo)OQ(<|o7bUVH@kJ1<=C{0HYiP0UH%Mk6sS7?MD>Q0E?j(EZcnA3n~ zx7+HFYLrwl;8~)#+`H$%Y~MqB7bC_U9_KUVm_LB6zX5ZQa9UH)pvopyQU!s$AkY@NJ_p`h+ z?9KW+)ihm;bNf27xF05`!!)(;c+RZd3bQz}qc9CyaT4coC$sOKsWz5ZR_v%74zo^9 z%tUxb%P8KY2|7hm5*?sJ*l&uaNg$VUhR)G>s0%t<0$>pzJlf?x9_y!2&*=rd96LqN>yh(z6yMPY`n0F2s4n7X`l4&T(l`1J z^eQp-HluA{MD5+JQ)2(H_DmZGmc5a}{9?Q1OqV8XZ#=_*YuZWuOXd0OcOYQRFJB zDDubTDYYBx^pLFj60iwe1+D=N;39y*bv1a=Nvs7OyVg9S{@9H|pxZd>g+Q-y)R*aE zOj*F3QUdZ6l@9k(aYHrCR#)$CrR-jm(j?fA6eWC+&2=5-Jlf<$2{V<)U3s9HjE(5+Q z)vV-el&70gErV|ZMKZ`nbg3?V-)~X3r$oPC-GOuOH}}CnKZJTjkLk(4>DN5%InR3W zIlZ8l`?C7k{rHOB%AEJ~iM~L6+gGtCogwD?!|WJ4&c>JxT?K;WvL5FJfGQD_MPpq!!%4vfg9XWc`?nMC@%a}* z3V`l8(S2Gql_?o3%0)yu@j_pqI&kLu0=0o7#*@kDGKD@d6BHMe5R|NdQWa8Cq$I_u zM9&DH=FTMd(kf328HJ1oQsqvJcd$y1XUxwW;u-D3K_@Z0DlQC{h3hQhLl!1&k)@`iI-*WL0avAbg8%>k literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm+c b/usr/share/terminfo/n/nsterm+c new file mode 100644 index 0000000000000000000000000000000000000000..6e0797819f16bcfb3aa38ba37022300f64538fed GIT binary patch literal 1137 zcmeH_Jx{|h5QZ-UGt6}H@+vKnpe7{(6;yTZf)HD$C@GaCJF)V?V)8TjJ?+(P#Q+7V z5?ejpqxU`Ehwd_%5z#rRU=S2_v#3mzeN3&LsYbjqsUp?askP$$PDbLb)mmhwE-O*D z)|OQx`l`ruo2z0eWU|%j0nzHlUCH54-LUe zxcd$_a7l+NxVS^qnyK!B7!SD?_rjxwFCm9xvowyK0!G#q!x>Xk z)SR2Oc!%!MgAG;n>Uw-a&t%ODdQEFkpEh)SmQFMC{T8;J?O^T9hAslZa#@uvu~l|K zI+q&$bM{i|Hw~xW;rs9Y;{E#d|5G3S@jM^d7xs<)U|Xn#lq@&6qw-veI}x5M!HCX) zGD>zBVFVEIkD?4UiwgWJmFyv42pFSQaNGi^f+B*Ff)WjiS=0u@k|YE$N~@%dr-2FJ z7%&MO2Mz<6J}#yYs-`j^V?jB9D0e(o7w8V0(Yioy;E3(XVoVvpoTv$k35p9!6hO%W zDM?Zi;#6X0m=AKNk9#SVr-Y0^#saBwC(4(RCxSc%84qL}G7`uHWRj;W(Y%j)tvuhx zQ>0{Q8;(;1TmWBs+yQLre!pj}=XpydA=3$}J_&Pf~H)oobW!v-X&U*1x zspPtzS1wm7)#}2+*++|ym!2-)KX-fOF1Cz=NH$5?omRTSm@7`AitEGG;c|2Mtl2(W LRH>; zi*<7{^HLQw$}{s)^2-%UGD~t&lM;(G6^cs>3i69e7~p{MKMF8nK;aVPFp#L8jYRbX i9YA9R91PO2M%L^M>|h!aYK#m_z}Nr*kQ_ruFarQAIW_eF literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-16color b/usr/share/terminfo/n/nsterm-16color new file mode 100644 index 0000000000000000000000000000000000000000..4af255dc39ef13e3c9f3c9e7101cebc4190fd8b0 GIT binary patch literal 1952 zcmcIlO^91n6h8N+I#qDSMFp9M5~Y`!I&>!QzW0)hX&XD$X`CN2PG%uQv0;)XY5v|M z>CAL8sk%@oE)<~~U5FsM5QXAKQ7MIX<6cC;g^D8R!j%gbKEHEcCN8oNp}pjM=R4<~ z`*Y5@k4%b1nxqM;iitzbPPf!<9Jk|}t$M4yf7R!u&!IFfa^?H9AZWQZN{L$b#U0gaiSRq(k%o z?(+yKI)-_do}#m~OzYqqln1^5*`zYnptq<)yVM7Jm0qJaps&(f^bYiU^gewE{V9D( zH|Q4FH;{0AOW%Y4FtC4u{&hI_JN-d_(qHs9NpV<=iz8xEL~*kqI0~E=$Aval5X8mf zVqw4s8;__ZkrU5}5~7-7N4x}mWn{&h#`CebCcY5Y#SL*&JS2l4Djx;%n36McPC7DS z?9{-E9c9<>y`d+J4}zEFDGoHXwmeH^HHrT`sdEv&0bG2EKeN z-(b*7CcbVZVYqd64Y;A89atW1&~B_IPpOriYOmfp3jM?wDRMso3d4ksRngJYAfGS`>+$C z?SgtC^+0t<6QD_zYVhKD)g4!*36&x%L-&}rA>l1Z2ZGm;^&w3f-8c!& zZOUucplOLVHP@yk+O)*s=H<0!bWFTs;%$DUC=8x(5pB)Kn}D>P(wopMu?BH{d&$0< zQ@wa!J*Ik2U(H}u@nE8%)(R*U!7E4SCx!~Kv?mCQ#Sl9}4PG}WT!qIcE z;7*)_tD{?CPA62?P$!17a2L3z)~7&G5B^3*BB!Q#)&%zEH7_!e=ASS^chkdQcj0*v aMTT!6@9}%}&d^4VYAcHy9@W;L2L1za2vnK? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-256color b/usr/share/terminfo/n/nsterm-256color new file mode 100644 index 0000000000000000000000000000000000000000..7e62542a71ccc00abacb3d740a8e5f2494e768ea GIT binary patch literal 1958 zcmbVNU1%It6h8N^nkY0ytSA`@QF^sSV|MP$>`y1{wrOo+ldv^eq_|2Ovzu(Xvzy88 zw%InjsV@pe6cP179|RE*go4l)MW}-MM3YA>;{60Fo(N5e2Ep3Nb&T%8ZtoLX*-Y}${_ zhar(LzX${jTn3H*G!4@I)ahP&i*-6AI#+-s={CBThUo!PbO3Re9;cHuMYG^J$^*|r z7HEme(5qCZCbhv{q?hPb=r`ysdI$PFdY?XozD^(04f+!7TS#<$Pd|YF)U|Iy|GX9Z zg?^(y=ui5aq!<)KVviUWBZBMp0r!hhp^eq)B*Z~6(dFHRd(oS9Urh@>)*gmjoSWPyK-Y^*DM)-of+T+_E z@6TWEQ}cR{@9k}#cjX82n!GMQk)O%04xeOMpo$e+p^}!n&Ju@?RR| zPtsj*O+qr-3-JCJQi3`LISM%qnIY?0?GMlpxK{z#3>iD_ra4u!=<23gq&2tSCn*?JN(3z>t*_Tb6e zNrNeaX+|9fW+x%XVI|nbnOSTr%iGG>fpysEl645$^pJ01$jm0ejUx{~kO@t15?X(47?LMZ+qPmE_Lzec~#k!h~x0w(^;3P&cBs3LVvgos4W3 z)QhMGsw0{NO)0;^#c9PDeI`RO#Hg`T51grKR)d%jF=b zRI1gLl`vdgt<~!FM&rVTix=0{n$1g>E?-_>Z?)R(4Q}Am5NyXFhPZ#iIuOTdCm_5L z$Jd-?`&gSzRjl>9mCl!VBYye6_CNg z3(zc1+IQ1@gd7HKa2$*~VXO62TaBxRV`ig@#$_jrFTEKbRRvXaQoiR$Sw1hcqulLN zZpU}jyF2Rndo)OQ(<|o7bUVH@kJ1<=C{0HYiP0UH%Mk6sS7?MD>Q0E?j(EZcnA3n~ zx7+HFYLrwl;8~)#+`H$%Y~MqB7bC_U9_KUVm_LB6zX5ZQa9Uqf+QaknUwY3|K_%ZZ_S})wXFx(qE<;55g)Elh7<|(#?-5Vnswm z(1QmNK@Wn0mmbBN;K{33uU`Et#&2eJ(`xll@Zyl~d*A!^y*E3vWQ?ciD2-CYpSjZ? zG<)q+{$?pjmZE`u1zFUo#iwgYV&C$dllJX1rRw~`f?aRbdj00WK2cwf*L&l{OoU&$ zjAB})933P1hn1sQ5_m$ikM?8#F*>euDaUDw&f>|e?wbQ&&}vb$lozS0)m89y;3ln6 zteviADL3d&somThceJ&uDyz=o2l}LIzR*|t z2K9Yc#}DlsU@3EaghzOkuR-4c%&KvdBW`nd=oo*4@BZdw9XQ)xpKRCsPwLSg&+~*| z@GE}H@AugEFYjcFKk`8uAuAM-NF31!MB<7@4@Q0sRJOuJge5@5Uy90fSXJQvVukZS z30MINZIGkLRa8{u56M$%Czk0xS(Q0p6}SXk2CBe$0D~)P@Qf2%(>k`SbBOw7S2BTa z<1A+ay~a^*ri(FU8gue7$Wv5Mh0vS4HZ(lyeDEQ$cfEYl&JpbPW?+-oHPI@knTYmSktO&xW~xL|yO25umn)J0C< R){!VoU|g8jXHm*a)lWZx@mv4^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-7-c b/usr/share/terminfo/n/nsterm-7-c new file mode 100644 index 0000000000000000000000000000000000000000..b5247bb4695a515d5a9bba6d0c5f188700a755da GIT binary patch literal 1581 zcmdT@O=}ZT6umDfR;5@FK{}gp@kncl&18~HH2pBGNZO_*HeCo&BqlKlOwvg*QDhQC zLYLC2`cK8M;p zyVh+*j7VkR%Syx;WGri=X{+0~YPQSfnX+Z6w-VZ%dV4-oTwPmJD~)ouSF_cbn|;$% zD?8>+ca|64>IN>eWEW=U&k`ONzXw{Kf#W&NjAl$N-x_q6N|f#RR1U86%1dwI4aUOGvLw%jvWQbYb~6yj_B^>jAlLJVm&ssMSwbD%1jPj<1Q`ubszFMM6hjOoYDW1o zx02jWYdkGv3^MLXjaxb&z&1QP4w>*|0y5@F12VKxsx37)7;UAd=6RF;G)F~WxTjv=8iVx zi`6lDgFpYvD zR0IWGbm2nKMHemvyAj;Fb?ZuS>(*Z|e&^0iS}iVIC^+PN=R2=^&OMo=U#w9togrI% ziPf84rBNFxjWkEBozSq@+?jIS1>4hC5w`0^=R(nS^{tdKtZ$D_DcEz` zqZb`dH0{gK^E%Y~^o9^I4gQZpD2T`3meE! zT{Og&xFha{cHs5>`(pPOPZaU}C%=sx=KN3W*&p6#PrMTQ;;lI7)V&va?BCvaH})>p zMct$oq%B=Tmb20|Ww`-IVjVE673QH9Agq5%nx)g6fnSSOn1M_|mPlJOvt3}R8o*#M z88Qr32a?PVg$ow(6VP(gkY&hq$OvW(EeQHUi1 ztIV@U$94Lk;BWN7=-6>^r!na%nuwzpW`TQPWdIcWz&4L(4h(WsCAKb_T%gHz4}*--^}dBYVqLFA>a4D_w9Rcc4jljRXR$0DaRkUHyU?_ zaX!xblT`Zocv4Q1weHxyhDY6AGdk5w68pC2oV4$pF4vb=R_s>T9F96;`$XLD^;_Yv zA9r%ZOoU&$jAGiL89GK%678XV*msVOlRz$Ij?U6Ks0%t<0$}+dJlx?vn(8M|&*(Y5m^xX{tJHau#<%pIKJKc@s3V z&r^QMulXGxpjomSqALu6*{CU@UOHQ%Rm`e2Z}Ms zQRFHrDe|Y}DYX+-dO%if3D^Lx09S!Ja1p@Zni{<5MAm|ip>-ZnzwCM@&~2P*CeUjf z^=7&lQx-6%5P>{JMMZuHDurZ~$nw>J)XXztQ6%$X95^CS(uMSlbVO1R6Xd?hJ;vMLz*^ Cw_*nX literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-7-m-s b/usr/share/terminfo/n/nsterm-7-m-s new file mode 100644 index 0000000000000000000000000000000000000000..a9364767d108f511d007e6a89a401c9e2309de8e GIT binary patch literal 1194 zcmdT^&ui2`6n;~Ls!$N5P@2nn7;uqQlg&1Z(bjE6w!hr!?nRag%kI)FB-xn67IaZi z1VvELLk}JVJ@nwgLyum)diCnntA9cK-Xz&piwBPm`M&qPH*e<6yoAh(O`4|TR22Kd zkK%slmAq0^vPPL>u{){-!RjC`v@kvJJMQ^T5EQme{aj(^Lan*9yjPWG)rels+l5PqRUWMmA44K zuG9+MP_{+4mAwP*0uFf;s>qJwBzZuOlzNi+T<$6K^F#iNv3>>hhIZ-gIFg_5T^9L} z***G5`$w|!?A(5)FDmCNeWUMCKaQ;UsUlM%NluB=Vp`0I9`u$NfO+^L6x-syc$oQV zG)W$dXMaTUnIw7n*O`Ny|4F_6$NTJx_hL_c5|cDVT3Zfepv#^u14H&g1j<{Wy4GHS zSq0esmQ<&coPqCCYcBycV4bv0!=8kycp#n0V5%}%V=`GCfETRc6Vw`uzy@#=xCJzU zYXAx~xWIz$YV*oE+7(!J==EG+bsAaA1=gk!KA}p+F7w!@?1D_D3X|o4st##Y(k#9h z?|D%!$Y4&!wk~a!2BeuvT?S=2f^Vh130X;H1=2{R1zD9gE?TD(sx`RAT_6I`S>cpp8qp*^RPbld2{>GD5<{}L1EJrC|VwVLz`97=Hv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-7-s b/usr/share/terminfo/n/nsterm-7-s new file mode 100644 index 0000000000000000000000000000000000000000..d924966d315cc1816c2bf713ee935e1348430c02 GIT binary patch literal 1354 zcmdT^&ubGw6n;~LR-sUkLg`-OVZb8M?q<^suC`4plKwK)KB%ujx(sg%jL4$%K zD1w3>dhj6Vp$88hdJ(*dN4eats{NC(tS}h(5UL5j$?|X0F%$s?`W>QpXoW`gl zzKC8JwSsOo%sTx)2n-D>%O1avduG@?Q_M-;?h#4(XIz!E6SX1 zY;O0!e@kv{93uk?++L;X0k;-`*`3Z=%xNii-aL=$>Lbih1%A`n~R zj<}cjaa5@X;_)AmbVjLXf1TOS`JdE_Bi?66yb-(Nz1TbAx_{Y|58{&;rcp9#vLk&{ zHeKmkvKb(d+W?h}+A_=v!1lMK5}n`-d@n|A5hwy{WZbaaVW@l;WHMPy1tw=eHmiN` zf>nG1MtK2P2d)CwfC_L4K!GwBm@_?NR@=655mq01EfrWDM^;mTwQ+<`sFShFEcVHH zAe$-Avn9KIOuIW6a;KO-a8lrBpP(vGDm{haK>cVgd$%*QehX~oikEJzm@ zEzxn^8eHQR5CUj&*#~;4g!-C2_*~iKj-%Unk0#nso6$+8Yc=37rm<%&r!U0HPE`DN OHiS3f!EZs;3jG38A^Hyh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-acs b/usr/share/terminfo/n/nsterm-acs new file mode 100644 index 0000000000000000000000000000000000000000..444a0e0858a8436c875d1da34dcc2139104a22a6 GIT binary patch literal 1381 zcmdT@IcyU_6#Ww+5rT3EDH6&yrWh#}3V40Q215>mA}a?D5Gdk;tZc`2vb$b;*LGq% zjsy}=P*6}%P*6}%QX(p7D3B-+5)};vlqqN^mp8Mv14^1mG>rV-fAi-5?>V$%Y>q~0 zgo^BBpJ_X}iZP*O?AEMhEfgK!3g$&q)6Z#^<*S9&v%dQI+be1y;L~*EnwpcF$P~1S zopXHSnUY?r_=zzh{5r!^jFzdNPLq4c=%*RtSRv}8W7x|Woso0b_0vVVgq0atmjKU6 zH81%Zdft+16?_NCQjttVo2t@x-3GNgYX6V#!nyy4`>>}UK|Q7?^t9)6tDbe7=biY1 zUec=rS>5bzd`<6U&IkHTU!lGqsMwRv0CU|zHo{J^QD#Dy0dLr>&YEnO-ILCPp8tlu zmHK_p=~lSz$3wjR)&Ea@I^uc0uy5=K+haeESobe)<`-jq$7zt1G%s>X<=Hs5f;?M+ z5z2#-N_rk)0TA)8q$CZ9416z2`U)@$EYT1+Vt`aZK|wJ=(H?~j8irv=5&~GHT~bmB zU>Ud$+yHI@R{?ZSiSE;?u1v{TP%b0N9WQkSsy%11D^Tk>VtX^ojFhN2mFOAZ)7+ZmPF&@2A%l=%PpaGs@fPM$Zytt>crpSR^kft=#^Z)4zQCO! zo*U+IQj&B6$0-9gfSXQPfJtj>nzp{4&u?sOZtA*Wm}aSDS>5wm2ci-s@h(~_lX!-4cAs}q(rle4``Sk9T6eonJ2?`BvX^j3y$EUA9KSJP2y zYIfR}%xc9_+V=LZm37^l%TC((}VPSoybE+FflCPlSb*YxYD?o~JWWtuHEaUb14(&G7!L~OMx&2G@ZcE>Tx=#=2 zVJp(Cden$KZrCUEl%BO^HM5)cIlYoOZ|MVlg8I@{u`eSXIDIGUVJF!sWi?(S|KWK)vd`=*+h^ZfbwAjO=ii?Djpv)^ z7JGJoRld#f#Vc_5`deYw*Zq?S2b;IEt6Sa-`LP~!!XT! z-m(gXVzE@R?Q(f@vr^gG+TPyTahz(kR@>dhkQiOEPD=lzGT=uiF}o^W7+w}$X9^dY zh?pWvjR%sj0)B(UeK@fiAL34=#?NvmSmT4JN;MY@zMx_DjK&?c#z(mw;%Vt25niO> zg`}r8JhZ}E(DhO{efvHr_#69RbX>H1rV(yS8T4Z>%z|*=Vjm>#L;T&^GW+_)s!Vi- J1ENS~{si{nTS@=` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-acs-c-s b/usr/share/terminfo/n/nsterm-acs-c-s new file mode 100644 index 0000000000000000000000000000000000000000..d107880134d88b8de19ecc90a86c7aa47df5bad9 GIT binary patch literal 1722 zcmdT_Jxo(k6h60-peBMbF(JH|)Zqq@AbtIz#quL)4Bx{R`Q7{4iowM}6JI#r`OdlDx%Zs=UPC8a zqqEdbIo5qFZ`tXh(UXi12q9h|SS)>L9oN1e?rt zPebUsL_TUkx1DsJxLoa_OEd&_Sw`c)Ym!aUb@)YEqJ)f>foa$(708CKkR$W1yF+hcdwzKjp*S=W8eUP}JDnep@j-~J}|bM^mY@BeU~ z59~Ah!oD%LS=ZvzegAguH@@$_RysvWg6FuY@>HCgL7pli5y}82l*A<56ioPEL=$vU zDDZ1h5?5ejuo+Tr2IH;N1|Bg0s(_$?n1E;#!UlfsO2UvJ2(<#I=@u!o0b<#9oSpka@y+zjz5;;0vgK_ecGfCfDp1zA&LjN-Nw`HJWk34 zosgG>nbu(z4A(wu!t%7dtZ6GNnat|y+M2E#Mm}FCnCAL=v1nPgT`HB!8ylOOmCDwZ z<5a7)+V(a&MgJ0YQo6^Lo&a_d1E}Kd;mzUQrf{2yfxJ+u@n8~OSim50DNd}$`?)hv z;}^ISs_|Y_r5XzcpVKfvM&piJE5Mx!C!K&hpB zrAVQoJ8sDfO_?>TR;V~NvlJ%Ai174RpcpOF5jsJ>Pjr9|VTwsQNgR9M57Rk14|P%Q zGTnQFFG*dWl&bh z&m$}VBL0z-r4f;Vzf#Fx0_K1v8UrUykSZu9C@m;8q=ZT1Fic580E@IsN-hH|1J{7- zzzyIsfbKcbeO5J;85t|e1w=XV(m{G!$0htVB5;7LZ6l9ufrYJtky)j-I=Nc(l zI*Q}e0T;lR&e?!PYiqi`zFsbGY;0~ChG|+>t!CTxy5qR6=QSG5W~;TewY}YLcRJnf q&Q7m~Au+mSgOsU^5{{yim|YbYhRecr7V#nT)0W6mwO9eMKtBPm3xBr& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-acs-m-s b/usr/share/terminfo/n/nsterm-acs-m-s new file mode 100644 index 0000000000000000000000000000000000000000..8a6967be884658a69aca5ea726d5cdaa308d3ba7 GIT binary patch literal 1284 zcmdT^KWGzC9R9r`L@_oPW_ucQk`@Q$V4YC#L zr;`+80dqXxtl4op?!}Fg*J`Jb!fK7V?nK3p7En@g4C|udy3u+{y%1f$G*?g)iKt;= zx?}ieyi_)7p6N%2?5a~Om1|YoM3v_o{+ef195Y6Y5#e`~h|Qpn0SekfgCgpo6X(89%Ty&Fu|ZAg2f+^QO10O{#p@nGKRS}{ zcl80(V|qeQyH2OSXKm+sJHDWo^y*kur@9kg(_2~do<7l6sBgz+{FKgF76kolfDN*9 ztPb5^O|Td{Y?tk^hiqTw2W>Y9-mrI4f9N`4z2J|3@qR!3|J3Jy+|L*Go&8|HScJ}y zQsfoxs(eA`uErN?Fp^84yiy!Tm;gllqbN_OMFsw!O7R9T227E1PtzmR3!Sz>svu2J zR#2u(DVzFW*ph^x2zZk2lQNwHW`H}uU0@ct3E(Z$;w_`9rHsf}R<0q+&Zjy8vqNXH zBQQ5~M4Pf0tBhcsqyAaeKHq g-0cERvpDRCDpl7?h$Zp85nr4h+@l!c{-`iZhoBga`2YX_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-acs-s b/usr/share/terminfo/n/nsterm-acs-s new file mode 100644 index 0000000000000000000000000000000000000000..6a0b4965c2f26e2af2a1eb3611cdcf7f09ada234 GIT binary patch literal 1444 zcmdUvJxmi}7{{NtApuPUV?si>nAG7-Ag0>8wzPW6m&Oo21f^kVOgKxSg}dv~I|`)* z85oE$hJnGs!NI}7!O_vpIJoGhiHokfn7BBc|M$IX#o$8X;)VbJ`904)?|bh@N-w)h z-E^8ttS4f-UZG;e+?bJf8({*Bxs4IWnJ9VDEMAvv!@OWPPPCd-&qvoU&SlkjJZhL2 zY8zf5mM_R^=Mufk^hJ1!PsE7RU(OTsD9W+cFIZ=e# zu+CmOCv)HLr^|E&Z-!;}DEx+`ak`0^r8&yUd>&qamZ?l0VvXvu?)y8mD`_vx#pmyX zA0Ep0TYLa|M33o7tI}NW)3EX^jL+!>y*$#@>~6+a^hWl)qmT3j^!3PyAF^_W`F=O+ zVZH1utAcB+4j0c3+hu#~0o#}PL0I+u*X*t2_pM6MFZ{z_YQNw9fAr~?`}xeivG43B z^N%_1U!F``q%+b^r%1{15_eR-pmRs#3l$U+ORzB|H;ym?iTFp;7@ZUy_`N8(YtRTZ zMamsbZ>LUh%7UrFG+`NG>6Rre>O#SiCV<-ElXQ=i=}~9~x&_^aW})j4zA`PoGNhWy zpo~T3DxzHZR1+{ds7y8iV}puVrfkM6gP12_!ji&L!qP=prbtSLl(g8Lm^03YxHG^# zUFEt!4VVm2aO~3# zWYhe-VJt2#EiEsvteB={*><_?IIF9bitBpb+FG@`zP_y5_N*7i15iuFr3 zN$DF^`s0{MY(N#ahnvIQF5onC1GeZ=buEu56c?A0kmn*O8B*}CF@pOQkGNOL&eAX7 C92N2a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-bce b/usr/share/terminfo/n/nsterm-bce new file mode 100644 index 0000000000000000000000000000000000000000..a8c3947e7bdb71de50a26fccf84c0ba59d9ce96b GIT binary patch literal 1970 zcmcIlO^91n6h8N+I#qDSg@VkZ@|0d?#-Wq!e~m$U0<=jAvzff+oSe7QhB15$YyYs8lXj zv6N!T5x6b<78u2r0=cZ?n??$T+f?pIGG6WIacNoclZe12Cg6VzvPv%ioy%n8mLTdP z(pJ_}kPS#49@~SbXeTwMG%hNXmclHe9*0gSLq+D0R!*grv75$8t!u^!Xk9~fgeGeT z1P6y6bs;^qdO*~^+M_C^3HDVfI8BwQ0#8A*21ubgD)FcfWt2}jX)E2%Y_F*SO+XeMP>Ve9TCP7mo-BODeMQ>76rbL>IEZwEshJ?2vT?k%B&WE(= z+__Te{P}A2!i7eo*=)7i?X4}}-`?(Yy4_yy;>CV{XJ>c!(xttJmDC>{|5XDH^es(dif66+-tpjr|Gdnitbo+~QaLLjU}WVzb1 zBMVz$&IzqDN;rNF7Tk_=aCLMm%;~u3Y3f)w3wMEgW@82v^-$lDvB;TOHLC*$i&8Dp nk^0{-Mt9PKV0Yko5yeJtpy;Xh>Yb)So*JuX3LZ5!o&^2_0N7V^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-build309 b/usr/share/terminfo/n/nsterm-build309 new file mode 100644 index 0000000000000000000000000000000000000000..75845fe5745f6242c995ba76231668b856284c6a GIT binary patch literal 1766 zcmcIlO^6g%5U%$&W=+8L5<#{xjKPPRu&ocv9s;fC>WsVN^t8P@ zv+lY-nj8|491;Rvl0yiDNV3Z-lk2op6Vj%iCXR2OmpDGY(1yN4o<{zrXFP~W0{XKc6P8p zB+M@b0RzjR@gJhKw2_j|(km=UNF*14Bf6t6m7@8OCQjFIzXe~;}igoK~B;n zHK3=dMf0=__8EOnUqWA^ujyOp@978n3HmZ!qZ@P+>@P^VZqeW1cRKbx=m#r%|Ij0P zOi$=3NwHS+i8n;Q$Oz8c0^BABgf>=^u)!&Qcqv=`$0F=PsAFXTPQA;>|pj%vS``oO&= zzy{gG9Av&&^xV3uD2w}~&@3YrXh*u;lc0frm0yCWrUYRfL2&FjjYpKCnaDMN5Bm*9k4DTBw5p8^!n9WJ~xhbr2~o#*Fd zRY}D;)%I=WGu5DON^KQ8Y6*5ewOvpzr5>nGX&$to{3a(CRl85s)+?W^GQDQThJvRd zEeLK$C5A+F{P@JgsZ*1ar%yK;Vc2X&(U~)GJUu-#(`vQbv$JQ<&dtrwpF6j(u(-Ii zw7h(t8;DX2VtCtztnFDC`*0c;p?OS!b`6@5Xw!3TMxxC~93EbvHKSwV9TRW!B}HR! zg{v5Akc$8%+t(+dS)8Kp7WuYtg|=EOEUR6r?UT%*Ywb<^d|Hg43DjDhXapqgSVH)$EY!~Z``BC=!d|60rs{c?*IS* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-build326 b/usr/share/terminfo/n/nsterm-build326 new file mode 100644 index 0000000000000000000000000000000000000000..d1cf24d633133ced17ae2be18bb4d34331c19eda GIT binary patch literal 1838 zcmbVNO=w(I6h8MxO%zQwRWy&nD81NP($2f@z4`IgPEBevrYTdCEW}Z4+Lwb>Xsxl{`(j?S#jz^a9_!M@ojO4Y(tX*%^{%1-ag z6AAN6K)}Fb(D;wj06j`^=h0g%j!DE9fF$W2dYFdkaZn=S<<8+j!z-Oood=+wv z=BW<7NG)2Sb+9++EqVv~efoetg8qa)rO%+R(3f=E-!ZZwy*c* zZ}-S~ugmx0HqXcMlDsUxkXPl`@;mvx{6XH_w%YqGcjx{24)?t!f0uvCe`I`zd3SfZ z-dO{E<9+?~5LsnaQ<1GIzKXP}G~saO0Y$4k0d*9@x)U`1KTYC`^Z;B%NI`o6z8^yt zpvEB2LXJa@k@br9`)Lr|YXEFO7NKsILp8fxW;tfrEpQw7!mVQpRz6b=>L%1yk)zgNXA|26^%ClV>V#%NbINaU za$dCuRdq=DWEJUtGd2{w2x&oZJ4z8Gq!TA*XXobT=TD!m*Mp$Z2*WdHqG)lk*=)7i z?WLu&XP1{(R?eL}e|~j!ZEbyhgB$n~1mzgS0C$gCd(tqDU`H;*@ij-;zUJ0Iabq;k zudH2zW>(q^Lz`J?Gb@LuT6RpfW8xhXZ}aU%$8fhRn0Gl70t(pp6f}#I_uV{SBQD)m ztGRV`K(!q+3{^EQJ7awL&GivgQB^1Bdwvq-ccr^M((UwZ`R;A`=3nSOdXNr*-3vWL zkI-Y_efXXRX$Ssq`19fO`rLt&V7Bj}NplGsqnT-{A0G3lK6zxuF$g~OJaeE&{{i56 BD|i3^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-build343 b/usr/share/terminfo/n/nsterm-build343 new file mode 100644 index 0000000000000000000000000000000000000000..01ad297cd5bd6d22055dd1e0cb0e81231eb8c819 GIT binary patch literal 1838 zcmbVNU1%It6h8MxO%zRDs%VD7D!tfJ((c@u*&nBNYf_svP1!cdgLD;}b~nj(XQz|h zO_Mf1^+lzKAfhk&Ac%-iCr8?rdVp?n^uD_nq&Y zd(NG?=ghFfVlVBaA*zWt`odPb+H8!RUaAEZ$92|b;MKy}VBc&MrD|cSG@W`eWvBPq zX(C~M2?;p340HTA4bbBhcP_o9;+RBy2~3jiqep3&o+L$kuOct(tNbZ6r(Ga;tMOQMRbP%MjAVJ~-8 zykjC)#b@Fx@r}49u8W;Aj#Kg}Fkes0y>h>FWY+jTI5es$SB%{-oa83_n!MZ<+rHjg zztyAW-LBXN+ae#yPvuqlx%^UoE5DaN$RFj;+g5wu<=&zs>X_H{RDzkC0VXH5J*a;;TrjN)rKR9#pi-6EH^sww1?yQ@(?h<65yv(KZk$B;fy~n6rr>=|gga#f_T?iu0iTq~ zW6Caoa_9~pyfcRi+Q*&e`=nJtMH$uhZRNAnkZvMv6*+1Rem3!4NH38dq)ucOGN=3o z7w1)bP*sPNPgap0G-Jbo7l9Ulx1$sRA)PukJ3BWwKY#XYy&eROMi`zu7e$MU&1S3B zZZ9pJKfk=ZvU1_V#fz(}YisN48{EK?0FGlA1Kd4o?MY*|BLE-7@ik}JzUJ1zaAP#j zudH3eW>(q^Lz`J?Gb@LuT6RpeWAYu7Z}Z!Wj^W*|VBY0S2r6LXGq4ON@4I<^jri!c zTFtGi1FG$qVW_GJ*%=edZ?2E1imEy}-}93!zpLEsQEsR2sCVzEH-AD8(8F{H>VDWE zdW@cc?!)&qNIURXS!i9K+C4FR%uC^dH4u BD~JF9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-build361 b/usr/share/terminfo/n/nsterm-build361 new file mode 100644 index 0000000000000000000000000000000000000000..d1bee73f1c1055c0b83024ceec8563218ac69a04 GIT binary patch literal 1849 zcmbVNU1%It6h8N^Hc@Me;BSV)D!tfJ((c@u*&nBNHL2~Iq-;(0p}2}oyPIUYv(w4$ zrb(Nh`l3*ZAfhk&Aczz}C=5PmfaEd-OVsV-oQtAW6E59-={doD}WDx=YW|F&d)@@CsFduRzYw z3^k$Ws6&gi0`@vxp*Nx5p?B$h=nv^CeGGk_KBt@XHQ4u%0gqfUkr!`#h^$F&f5drD~5zNRvc%=Q)0NsdmC?2qheCLB=CNFRCZCu}; zzp+iu+gp6^ZSZ^`Ka$tvr}BpUQhp=9mEXx9Hmq*{mOJzQe4G2;lE2G8)^KVgSgde(Xx+VqfLVaV|{f)^(qK9E@&Un9J)@o=XM!MZo`ZBCxEny@@=)0Ur~ot*D(W8b>p(L##dNdA5t|{ck;gHCs96c!QER=caw!p>2_uCW)l;#J?OCC@B4lK z-pu>HH#>X8L3)~YQd!)L)taqhqk8!KQaLPmw%wkFRj$p2N9OAFc)1qOO~q&8j(x;& ziG=w@AYkA!$o{jmopw{Vcj6ZkJZ`#$uq>#^VH z5BiJ#CMmXw9pZ7ZTRbC%1lR2c9ukg77^~ZTR*Z_V9`7x@MZG9q7PF#^tcF+>uS4J1 zQt`g=+!3FM&&56QrT9whmEG=;+y~_Apd6O2Ov=F68DPV(W!X0RHG@%Zgm20lTYMYi z{rS6nYChQFyS2e{TYfC>$h-10`Gx#Oek;F|KWvEhzsvvg{`?=;y)S>4f6A_m#U6aW z9erZE`uHBaLjTB9y)~@Zx!3?bMpj;xRozjAK-IM>G~jR-09h-48tM#$bua1Ezck9v z(xY%?AsOw5cz+BjL7jj+2RRFwAnO$!4A3CBUj;aTBvQR3r)qY2%u>vf>)=)KhFke6 zgFbEYLn{Tt3)y25HIfkVOG6{twueWVhcp1+F~~Sw2fEkD${mOB!)S-CmmrgnDR>+o zp1hMZm@=4V)HX1eg`9+yU>9fRu(cd-E#rjNsL>_sD75J#-@=fIHG&&Q9)2Jb8eb#4 zuJLfU48gj*1vdnE3_e4$1W2Jny!qZN3TPpBpYLO}k z_CWoJ`k*?ZNzjxEs$85_twB}XsRFXH^oSW9HoORFLU2NIbx4h7XXobT=NA?(UaVBY zuv)FvE?uhE7Z)3iX0z2=T3TMde0gQ%%9X2ES6AEZPUjjo@Eio&F^D1VKW-hcvDz4f zH{u4Gvz$P4YoNF>n&+3-o3FAwz#Sg23D!Qq_52CDq7urU#UD&u3*u0in07nlQmTB*`M8y-Es literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-build440 b/usr/share/terminfo/n/nsterm-build440 new file mode 100644 index 0000000000000000000000000000000000000000..57b27cc55ecd75d74141018fbe222f33eba82017 GIT binary patch literal 1944 zcmbVNUuaup6hGe=wN+S$I8hn~QTFMEw$1(Sz4_zqmf6iMZVj1jkYN;;HEEOOCQFla z&DN&#MPY~{qCV(@Fhm4lAnZjErl3CgCAbasaL=b#XF#gVW)7p|S&`Zwm{LcB# z`Tm^q-Q008L3?R8Rm5ANdaGS()+WxbRQ#gjMAvh$D)oXtS!gsOm3kyoSjf&tENe10 znIID87l43)#~}Mp(J0+dz5b)OSg%K-cNs{MZlil?oE{)W2Qco?6Lg$T(j0h>^1$aI z3$#R4=w)hAhq_=d(aZE2^qcfHy$k&wy-y!PU#E}h27L+kEhKoprysz7>f1M=f8HAV zg?^(y=ui5aq!<-rVviUX5y5%;fcwRS(8lWZV&X9|)93w(2h<5MFP;@8MAgNrcmev# zK*sCFb4`3CJ{32_=i&>oSN3`l`5=&=hvg%3O4>4RY!6sBtSLK2Zx{?>1AI|l8Srf% zAI@JHlJmxZ@11R)tMUVROBso;G8%i)92riQ$PA(>5rg#!<7$PCSH5}wz1 zxKf5-UOs~D0~`jIAzlU~P@M$F1@!Cf?%Pi;CfH7t!y0tPV(F z;st0HJLx$|zCt#GHaHE&m9W%WqN}D=+cv#XCF8PU#+Te2pHM|rvJ;-`1yLSPv?JXa zl5RzJ_60#VARKF%qIX(3dgVgRfA89_n|9-;QX^1DM-@ zy<1&%P_@gdu21lC0n;4LTHaIevPME{Pnf26A*8l?7du81$%$D#VR)07L@uAU zyv>vIn&wT;YO}c(VvGpC(&H#bs_t0lF$?FB?G{Sm!V)>omf(RI2}j<{7fOOab8 zdzbFh!-_07+qF;Wxy*S<9bB$m7ns%cGaI8{1y{&SQIaQ#C1Zp5>;> zQ&DdEc`AoMU4Uyq}w$+={9^Dx@DW=tz~D0lor1?D#>*kRwBoen*BO zBRr~$;x2C0@N_MYk}^npG0q&22XND4CSXwO$3yFFKih3zi>CviK4NRfB<8a5nwRe>8T|Tt*{nwycF)Davv0I$38eZuHBibhg(txeAo+TLAYt62@>}q U{(KdgP0eCeCKkHYLC2`cK8M;p zyVh+*j7VkR%Syx;WGri=X{+0~YPQSfnX+Z6w-VZ%dV4-oTwPmJD~)ouSF_cbn|;$% zD?8>+ca|64>IN>eWEW=U&k`ONzXw{Kf#W&NjAl$N-x_q6N|f#RR1U86%1dwI4aUOGvLw%jvWQbYb~6yj_B^>jAlLJVm&ssMSwbD%1jPj<1Q`ubszFMM6hjOoYDW1o zx02jWYdkGv3^MLXjaxb&z&1QP4w>*|0y5@F12VKxsx37)7;UAd=6RF;G)F~WxTjv=8iVx zi`5wm2ci-s@h(~_lX!-4cAs}q(rle4``Sk9T6eonJ2?`BvX^j3y$EUA9KSJP2y zYIfR}%xc9_+V=LZm37^l%TC((}VPSoybE+FflCPlSb*YxYD?o~JWWtuHEaUb14(&G7!L~OMx&2G@ZcE>Tx=#=2 zVJp(Cden$KZrCUEl%BO^HM5)cIlYoOZ|MVlg8I@{u`eSXIDIGUVJF!sWi?(S|KWK)vd`=*+h^ZfbwAjO=ii?Djpv)^ z7JGJoRld#f#Vc_5`deYw*Zq?S2b;IEt6Sa-`LP~!!XT! z-m(gXVzE@R?Q(f@vr^gG+TPyTahz(kR@>dhkQiOEPD=lzGT=uiF}o^W7+w}$X9^dY zh?pWvjR%sj0)B(UeK@fiAL34=#?NvmSmT4JN;MY@zMx_DjK&?c#z(mw;%Vt25niO> zg`}r8JhZ}E(DhO{efvHr_#69RbX>H1rV(yS8T4Z>%z|*=Vjm>#L;T&^GW+_)s!Vi- J1ENS~{si{nTS@=` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-c-s b/usr/share/terminfo/n/nsterm-c-s new file mode 100644 index 0000000000000000000000000000000000000000..aa9938dde75b107817b077d1a1e8f99c2ff53695 GIT binary patch literal 1710 zcmdT_J!lkB5T17tqT(MyK(YuY@6~Qeo3=Ro0{Epx_T?78 z0(OC+uj~h7krk2Ek+9eG zky9-m`u?qcA6eDbPOC}D@iMnnUdVD=LQEFDpLko$S zBu3J5xIM)CS+h-2^X63xTjwO)DWSwP|51ti=PX zfPpMM2MPb;9F&gP2R-fNuB7o8&O$A4ca3#{Vjkk literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-c-s-7 b/usr/share/terminfo/n/nsterm-c-s-7 new file mode 100644 index 0000000000000000000000000000000000000000..3bee1b4ad65181eea01bf1e63a69defc2ff6a8e0 GIT binary patch literal 1632 zcmdT^OKTHR6h1cyRiRjrLg{SA#igyKHZyrlG=11sq)$_uZX{F)No)ot>6lDgFpYvD zR0IWGbm2nKMHemvyAj;Fb?ZuS>(*Z|e&^0iS}iVIC^+PN=R2=^&OMo=U#w9togrI% ziPf84rBNFxjWkEBozSq@+?jIS1>4hC5w`0^=R(nS^{tdKtZ$D_DcEz` zqZb`dH0{gK^E%Y~^o9^I4gQZpD2T`3meE! zT{Og&xFha{cHs5>`(pPOPZaU}C%=sx=KN3W*&p6#PrMTQ;;lI7)V&va?BCvaH})>p zMct$oq%B=Tmb20|Ww`-IVjVE673QH9Agq5%nx)g6fnSSOn1M_|mPlJOvt3}R8o*#M z88Qr32a?PVg$ow(6VP(gkY&hq$OvW(EeQHUi1 ztIV@U$94Lk;BWN7=-6>^r!na%nuwzpW`TQPWdIcWz&4L(4h(WsCAKb_T%x{R`Q7{4iowM}6JI#r`OdlDx%Zs=UPC8a zqqEdbIo5qFZ`tXh(UXi12q9h|SS)>L9oN1e?rt zPebUsL_TUkx1DsJxLoa_OEd&_Sw`c)Ym!aUb@)YEqJ)f>foa$(708CKkR$W1yF+hcdwzKjp*S=W8eUP}JDnep@j-~J}|bM^mY@BeU~ z59~Ah!oD%LS=ZvzegAguH@@$_RysvWg6FuY@>HCgL7pli5y}82l*A<56ioPEL=$vU zDDZ1h5?5ejuo+Tr2IH;N1|Bg0s(_$?n1E;#!UlfsO2UvJ2(<#I=@u!o0b<#9oSpka@y+zjz5;;0vgK_ecGfCfDp1zA&LjN-Nw`HJWk34 zosgG>nbu(z4A(wu!t%7dtZ6GNnat|y+M2E#Mm}FCnCAL=v1nPgT`HB!8ylOOmCDwZ z<5a7)+V(a&MgJ0YQo6^Lo&a_d1E}Kd;mzUQrf{2yfxJ+u@n8~OSim50DNd}$`?)hv z;}^ISs_|Y_r5XzcpVKfvM&piJ@6C@d?bNh3W1BEF$)Y%lt(nQpWM*C_ zGt*|;WKuT@MFc6j(S;x)1)(5xqgbk-u3WiM7Yfpi3lTwZq2TzP`(D%Fgo65#^PTUU zd+vGfo^$Wq5fP_-w3{m8`asZX7n}95LZw+;Xs?G>Y_-xZ$3oZG!g6i78LI?^Vy6<6 zh=lnMLBPOc(D+Z%5ZzC`=+T=Dj*Ix~5lPxX_tFSGNQw?%+@+^zicZih_&nu-FF+Qk zL{;b&YEg%}V6V`t^g8sL^cKAX{T{tfA3$HDkLU({0rm|fe7>Xa!GDbGo6tXPj{Qu( z((m*K{Y6p?iD9ue!um-=R0 zHlC~EL-C2YAwCnIi+!@!i^+$8{5&EbljG8nNn`uKz_6z57` zf6K0IeEm^(_S_TYxNl%-V32l^l~)zjuvNiV4Xp}IIGhq7Yvqqaoq({8f~IcMFg{B= z;mSfX+N1Z?iz9PbR*sjIv1`^Lqs!JoXj4Oeg&{My2wog|_=C*Q^ew`9jfX2` z2=ek0oEpGo@EDS1Knm4Kaa`D}0$E9}JijNdGOCeKZQoWtQw{2d)K(2gt;0@+whQWo z)C1KaO@gMBU+2kb)gD&G-O48`OLv>LVZkeq76iK^*MJ0c`t+GIi;Jbw(o(frtJUj4 zu)N%8tgJMftya5z_UyTHtE-*P`STYptgWrDce@*0z-J*?jzKhW|D<&wj%>#uyb#CN z9A*2OO9RD)(cHhhb`6?dY10gCdZkUT9PVn~F|!>L@0fU-cP}c2y$7!4rl%~TN*@0uQ6X$ymZnOtzlpc+G$>%7Z z@BwDu;Op(KI;h%ZRjhH>(FLyZi(t0zp%IHA<6cbg?sKB`ML!s3%VA&5sA3)SXQw9V f)I814(Wx1#9zEhwb^6%6V-S4yY34wWI(7ORyOK^l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-m b/usr/share/terminfo/n/nsterm-m new file mode 100644 index 0000000000000000000000000000000000000000..37aaae7ec09b11ac4d50efbe376df9143b15cfb7 GIT binary patch literal 1212 zcmdT?O=uHA6n;|$wa`|Cf^;vDGSE<4v-xRaqpgi1p>0g9dNBuGlGvopZZ_FXQrp;q zf_m`a!Gi}6iV9u?e=d6TCLRP)@LjziQzoAI_j+C?0>!`z5;cXuF>_j%8>+l& zFFv7XvgQT7rZuQf8#+Eqr;|BO7u(KuuwG_BR{(cetihJqD!U+^OKtx-dnxssw&Qg; z&bz;OzkdDy)Q5jO&qwx!ePch^7V07;!;9Qhc`nY)AkS4{gyuj=B{PXI1&H`ZQIa}E z1^$&v<{&Tuq^KJl(Lt)9prDwbXq&=1^}x_22?0#gDkIKE3c|m%d+iStzK_578lPx yT6(gHz4}*--^}dBYVqLFA>a4D_w9Rcc4jljRXR$0DaRkUHyU?_ zaX!xblT`Zocv4Q1weHxyhDY6AGdk5w68pC2oV4$pF4vb=R_s>T9F96;`$XLD^;_Yv zA9r%ZOoU&$jAGiL89GK%678XV*msVOlRz$Ij?U6Ks0%t<0$}+dJlx?vn(8M|&*(Y5m^xX{tJHau#<%pIKJKc@s3V z&r^QMulXGxpjomSqALu6*{CU@UOHQ%Rm`e2Z}Ms zQRFHrDe|Y}DYX+-dO%if3D^Lx09S!Ja1p@Zni{<5MAm|ip>-ZnzwCM@&~2P*CeUjf z^=7&lQx-6%5P>{JMMZuHDurZ~$nw>J)XXztQ6%$X95^CS(uMSlbVO1R6Xd?hJ;vMLz*^ Cw_*nX literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-m-acs b/usr/share/terminfo/n/nsterm-m-acs new file mode 100644 index 0000000000000000000000000000000000000000..2e8b3c8299dc20db92507262477342bbacf0c9cb GIT binary patch literal 1222 zcmdT?J#W)c6ul3SfJ$uE5Mx!C!K&hpB zrAVQoJ8sDfO_?>TR;V~NvlJ%Ai174RpcpOF5jsJ>Pjr9|VTwsQNgR9M57Rk14|P%Q zGTnQFFG*dWl&bh z&m$}VBL0z-r4f;Vzf#Fx0_K1v8UrUykSZu9C@m;8q=ZT1Fic580E@IsN-hH|1J{7- zzzyIsfbKcbeO5J;85t|e1w=XV(m{G!$0htVB5;7LZ6l9ufrYJtky)j-I=Nc(l zI*Q}e0T;lR&e?!PYiqi`zFsbGY;0~ChG|+>t!CTxy5qR6=QSG5W~;TewY}YLcRJnf q&Q7m~Au+mSgOsU^5{{yim|YbYhRecr7V#nT)0W6mwO9eMKtBPm3xBr& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-m-s b/usr/share/terminfo/n/nsterm-m-s new file mode 100644 index 0000000000000000000000000000000000000000..d16ad2e55418215e8f6a6f6a65607014c11977c6 GIT binary patch literal 1272 zcmdT^O-K}B7=FJcFas3=K^%e&`M||AXWVr+r!*}>{K;RsEP=zixvMj?lJdHeS8)k>$IN?H6Z3`EVj~c1ToMqVIRL01=X)oMr zELOpa6>a@%T zz~`hIqVtH;bb*pGp8=0)leNNNuK47%4c=%XnZyg zqiYT{s3eCFh5-@(C>o?gq5}U%3t*Kou}Yt6D!nphlv9Xu=c5&Y(Sb8k5f~ddVwBO9!ypKEG+|yOA3#may1F3SSi?1S&2YD1S7RVT+7RWec zg6ozTe1d!RJl()`QUQear!DYWsNXL;FsL-`O(r-srh>ckXGXCHsAT zeqq5hEz7oZyUy<7n|$7NJ#T5LP$(9cmrKtsKVNyd`uNJds}HbmoJO)qO6!0U>BPL^ mII4I{ydz$E7I&NMwndeyYbnH(`1*+NPYACnns`l`o}yn}7>!5( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-m-s-7 b/usr/share/terminfo/n/nsterm-m-s-7 new file mode 100644 index 0000000000000000000000000000000000000000..a9364767d108f511d007e6a89a401c9e2309de8e GIT binary patch literal 1194 zcmdT^&ui2`6n;~Ls!$N5P@2nn7;uqQlg&1Z(bjE6w!hr!?nRag%kI)FB-xn67IaZi z1VvELLk}JVJ@nwgLyum)diCnntA9cK-Xz&piwBPm`M&qPH*e<6yoAh(O`4|TR22Kd zkK%slmAq0^vPPL>u{){-!RjC`v@kvJJMQ^T5EQme{aj(^Lan*9yjPWG)rels+l5PqRUWMmA44K zuG9+MP_{+4mAwP*0uFf;s>qJwBzZuOlzNi+T<$6K^F#iNv3>>hhIZ-gIFg_5T^9L} z***G5`$w|!?A(5)FDmCNeWUMCKaQ;UsUlM%NluB=Vp`0I9`u$NfO+^L6x-syc$oQV zG)W$dXMaTUnIw7n*O`Ny|4F_6$NTJx_hL_c5|cDVT3Zfepv#^u14H&g1j<{Wy4GHS zSq0esmQ<&coPqCCYcBycV4bv0!=8kycp#n0V5%}%V=`GCfETRc6Vw`uzy@#=xCJzU zYXAx~xWIz$YV*oE+7(!J==EG+bsAaA1=gk!KA}p+F7w!@?1D_D3X|o4st##Y(k#9h z?|D%!$Y4&!wk~a!2BeuvT?S=2f^Vh130X;H1=2{R1zD9gE?TD(sx`RAT_6I`S>cpp8qp*^RPbld2{>GD5<{}L1EJrC|VwVLz`97=Hv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-m-s-acs b/usr/share/terminfo/n/nsterm-m-s-acs new file mode 100644 index 0000000000000000000000000000000000000000..8a6967be884658a69aca5ea726d5cdaa308d3ba7 GIT binary patch literal 1284 zcmdT^KWGzC9R9r`L@_oPW_ucQk`@Q$V4YC#L zr;`+80dqXxtl4op?!}Fg*J`Jb!fK7V?nK3p7En@g4C|udy3u+{y%1f$G*?g)iKt;= zx?}ieyi_)7p6N%2?5a~Om1|YoM3v_o{+ef195Y6Y5#e`~h|Qpn0SekfgCgpo6X(89%Ty&Fu|ZAg2f+^QO10O{#p@nGKRS}{ zcl80(V|qeQyH2OSXKm+sJHDWo^y*kur@9kg(_2~do<7l6sBgz+{FKgF76kolfDN*9 ztPb5^O|Td{Y?tk^hiqTw2W>Y9-mrI4f9N`4z2J|3@qR!3|J3Jy+|L*Go&8|HScJ}y zQsfoxs(eA`uErN?Fp^84yiy!Tm;gllqbN_OMFsw!O7R9T227E1PtzmR3!Sz>svu2J zR#2u(DVzFW*ph^x2zZk2lQNwHW`H}uU0@ct3E(Z$;w_`9rHsf}R<0q+&Zjy8vqNXH zBQQ5~M4Pf0tBhcsqyAaeKHq g-0cERvpDRCDpl7?h$Zp85nr4h+@l!c{-`iZhoBga`2YX_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-old b/usr/share/terminfo/n/nsterm-old new file mode 100644 index 0000000000000000000000000000000000000000..86a8d903f5ddcf24ebcfd0d816db258ca6ebfe0d GIT binary patch literal 1387 zcmdT@OK1~O6umDf)M*E2(p&wgo-I#@jBsOVhCX>u0scmdQ zL0!0T;lhOrMFls4pN%fvi3>p#Tv&0VTXiAQg)pA?CP|fc<4SzwoO|AR_ujk@)5(UZ zgW4&__IM1-&J^{&yq2zxn&x=U_ReCSGm=_=(lov0pxW!L?4L}gX7YN{@TRiKqLs0| z-Ko5mFZK{)MEKQ)tJpL((Qb0K7)>-n94kZ~+J-%J(q1`toE{pagIF1nbusW!sm3H9 zqiH%R)hY04AWb}+%uE(eJT;{x_H?#)zc~iv~=`=IPX<_Yb7wcdKbOCUO#VTx>t+I>Kx!mwyuvb#Q zZ8-G`$9cbnx3T*FsgHkoo=@y6`_6tc^8CBAZuhi#c2El`37+Go%F|J9`gyttBQOVw zD~U0LaX`dBlH$}XGVr}9iNnAsFiEZ8kPcD>`2|G;g&P#qsSSoMNeEzqR!NzP0n@;7 zUDt4fLAdOyYnDq$dw^TzbnI#5gye=@d0kP@=P0# zk`kw#I8Fhu0NnJH2^iG-Vc%NckABD3b>>}i@a*lmN7=62xB2;n1x?d+!^p3j>xI|F zqGj23sZ=gkDvOKf9xpvvepY>O{?5uhY#9fUtdY_kQ+j;pD^8+{=fl(Canrcg#DF2P U)Tlp&DBu%M5RexnRIsLg0SK29sQ>@~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-s b/usr/share/terminfo/n/nsterm-s new file mode 100644 index 0000000000000000000000000000000000000000..c96f1ea89fcd9e3404acd6463789fb134868fa24 GIT binary patch literal 1434 zcmdT^O-NKx6h8M6sDT=SAijbLxuKXgZ+@J~DgTNPf6`Ri41tevaz@{K^PKk_HLYB@ zkce>MqD70Mf))k+Y--oGWkIyC7D0;^1+@_u!Rx#C%}j=ET1A)nzVn@P&;2>~@TQRs zP(2->EIXoDj+@S#ZO%%sZ4YMMzy!Rkr5o+KZ3hYwtu?T4Y*vp|bM4O6nmFpGcv7xKAS;mcHk;P$!+h zOpna&1D}y2B(0NKqe-fMqW++E4>=G@@xaY0XnpEpWUmSl8`o=DQqpUZfZqhBf zU5=FQd#@OIP_z%}F+JatRmv{em-I^JyrC`n1od^#iftLGW1d&f8dxJc#0t<$Y#A)Z zDqCag>^j?!{$?@id2iX4)E~(`&&{!?H3vNUex3%pcfb>^+G67K{e1(6Ql_W z35pAfl__FUEdr(_A*cd8L{~{2=>tZAbHErd4x9#X%7{3nTQk%yX*23cSb6i|lE7*| zGE@>+>qo>jWioc@!aiXG6cH2^6w83(8B*h<#zb{u&miySb_aJ88czrrf{gf5<93*@ zz>oQU1TyN&C}hZ&F~~Sim}2p9?$+>hEl-fzPgU}KB%ujx(sg%jL4$%K zD1w3>dhj6Vp$88hdJ(*dN4eats{NC(tS}h(5UL5j$?|X0F%$s?`W>QpXoW`gl zzKC8JwSsOo%sTx)2n-D>%O1avduG@?Q_M-;?h#4(XIz!E6SX1 zY;O0!e@kv{93uk?++L;X0k;-`*`3Z=%xNii-aL=$>Lbih1%A`n~R zj<}cjaa5@X;_)AmbVjLXf1TOS`JdE_Bi?66yb-(Nz1TbAx_{Y|58{&;rcp9#vLk&{ zHeKmkvKb(d+W?h}+A_=v!1lMK5}n`-d@n|A5hwy{WZbaaVW@l;WHMPy1tw=eHmiN` zf>nG1MtK2P2d)CwfC_L4K!GwBm@_?NR@=655mq01EfrWDM^;mTwQ+<`sFShFEcVHH zAe$-Avn9KIOuIW6a;KO-a8lrBpP(vGDm{haK>cVgd$%*QehX~oikEJzm@ zEzxn^8eHQR5CUj&*#~;4g!-C2_*~iKj-%Unk0#nso6$+8Yc=37rm<%&r!U0HPE`DN OHiS3f!EZs;3jG38A^Hyh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nsterm-s-acs b/usr/share/terminfo/n/nsterm-s-acs new file mode 100644 index 0000000000000000000000000000000000000000..6a0b4965c2f26e2af2a1eb3611cdcf7f09ada234 GIT binary patch literal 1444 zcmdUvJxmi}7{{NtApuPUV?si>nAG7-Ag0>8wzPW6m&Oo21f^kVOgKxSg}dv~I|`)* z85oE$hJnGs!NI}7!O_vpIJoGhiHokfn7BBc|M$IX#o$8X;)VbJ`904)?|bh@N-w)h z-E^8ttS4f-UZG;e+?bJf8({*Bxs4IWnJ9VDEMAvv!@OWPPPCd-&qvoU&SlkjJZhL2 zY8zf5mM_R^=Mufk^hJ1!PsE7RU(OTsD9W+cFIZ=e# zu+CmOCv)HLr^|E&Z-!;}DEx+`ak`0^r8&yUd>&qamZ?l0VvXvu?)y8mD`_vx#pmyX zA0Ep0TYLa|M33o7tI}NW)3EX^jL+!>y*$#@>~6+a^hWl)qmT3j^!3PyAF^_W`F=O+ zVZH1utAcB+4j0c3+hu#~0o#}PL0I+u*X*t2_pM6MFZ{z_YQNw9fAr~?`}xeivG43B z^N%_1U!F``q%+b^r%1{15_eR-pmRs#3l$U+ORzB|H;ym?iTFp;7@ZUy_`N8(YtRTZ zMamsbZ>LUh%7UrFG+`NG>6Rre>O#SiCV<-ElXQ=i=}~9~x&_^aW})j4zA`PoGNhWy zpo~T3DxzHZR1+{ds7y8iV}puVrfkM6gP12_!ji&L!qP=prbtSLl(g8Lm^03YxHG^# zUFEt!4VVm2aO~3# zWYhe-VJt2#EiEsvteB={*><_?IIF9bitBpb+FG@`zP_y5_N*7i15iuFr3 zN$DF^`s0{MY(N#ahnvIQF5onC1GeZ=buEu56c?A0kmn*O8B*}CF@pOQkGNOL&eAX7 C92N2a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ntconsole b/usr/share/terminfo/n/ntconsole new file mode 100644 index 0000000000000000000000000000000000000000..afbcc420c39f8f899b5d956f41f1bffb2864b64e GIT binary patch literal 1486 zcmbu8TS$~q5XWauLM91HJ!l$9xg_Y8u4@|kpk*g5FQsOdRNhwo)V=6_x~r)b6ciK` z6ciW~6ciLF859(0DHIeG_+U2(is&Ke`rt!k|8rbR%iM<+erNu3X3l&w-`Q^o7t>OT zAcHG~;W8bqhQG`0akyM&z*uc*T`sf6?ee;t9lw>@E<#>msTGHuaW!tIr^+;{n;mgJ z!)$=x>~1Aun)aLFAheZ2DVio``Gryz%|nDp=y(V%pm41sX*tD1C1@{+lF6=BhF(>v zOv?VHCnoZ!kV>>)PP?@=$T=-O`S2F(v;}s3upI&2O$X^P9i`)Rl1|fEI!71i5?!Hd zi1*VCxQIcAXfR9!3wKEbE>4EOSRzQ~vPD);dK-{jjo$iw`A zAMq0&kSuM8en2NUW$=b?SaQEG|J=~m_^jz}^K<8*YsB5-8EzSF9ro@u@3#%K5Bcu- zuXlXy{Ic&&*I0LN&kq#Y1<=0S1LA>t4Qd3mA~ymFHUW$)^8l_y;%X#%mKaGEf+DaL zYy-sr%}F#aRoybM1C)cE0MCl%x0WF{v;3Y^C a;DyL`-~)cp0Xi`g&Q+x9H>Z?6pnd|jG}ndz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ntconsole-100 b/usr/share/terminfo/n/ntconsole-100 new file mode 100644 index 0000000000000000000000000000000000000000..b2d88c54106fcdb967dc8e6520fb9ca297544e9a GIT binary patch literal 1466 zcmbu8TS$~a6vxk*giI2YdayK-a!JswUER`1LdzyCZ>5#C_06ciK` z6ciW~6ciLF859(0tx!-<;Dg;DD58g;>w^!G{b$?_Ez^fS_|5sBIWy-wXXg7B^LkoB zG34Yb;qf}$Zo_P~Si0Ost;g;2G&{6cj6hMD*>JSF5KOG~xV+Vdv!>aR7;qX5@S8oY zL`;*ODGov<6iId(pXQ0AY?^}zkxlQ$O}b5Y zX^4jD5&S2iJ=3(Kr=IEf2)%}VPoHRvn4@?BPhFo7@|VIc=M|h1@>l(_F1*W%dG9}B z;WfrA@$kCYZTnxDx+cvWQu2ly7>;Xw}aLw?Lpd4xy# z6~Ezk{DD96Xa3G({DVnEh)6MC#E69=P9%s#ktC8us;~%~$P`&3TjYw_Yn*9C-hb|& zDfeu#0#PpJ;wz4?OxuECD^S+tG z%0MYVQ8ERXp>rr&)vFsQ3=6zyVn(gjA(ci8l}iiNnHDOm7AUP2+7Em{?JdJkpAwTA zYmQsF$nvr(qPo9sto};@=b?gdFe9fN8CrN~V{g3SQ!%6xz;k+>R(nk8D2MW7gzfNfwqKyea< zOO>}A>;x5H7r^^uHNX`~G$if70qQ_KXaG*o2$}${NVkTaX!hX`7EF3i`>gsxR0;%P44GGzRUM{h$H-r zU+_zQ&BOeT-}5McPVu}mb1RU%cSiFA=EtRi-gb7k27bNyVk zW5seszL<}%IJr8j5JM4A*6cNhY-ZO6b12K~DxigM6@V>ZGpGc4paj_b7;+{DyHZv) zL@CA(bp-Q#N|sn8ZHCQ)%?5U`7OVp~AQ!AhzS^)Ds7=*|6<`-Y12O|xpz|nR^`(=R#-=B;v55YWA$G> z{S9v#ANt<z8;95CNtS{#P!4v0odC^AG%i)$-Cz&c3#tJ2lMYY| za3JXdZcqp6fd_a&184+zO)>z2AOxB~7~m4525=#=6|{kN&;dGeCakN@)^AQJyP^I7 DLvPU2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ntconsole-25 b/usr/share/terminfo/n/ntconsole-25 new file mode 100644 index 0000000000000000000000000000000000000000..afbcc420c39f8f899b5d956f41f1bffb2864b64e GIT binary patch literal 1486 zcmbu8TS$~q5XWauLM91HJ!l$9xg_Y8u4@|kpk*g5FQsOdRNhwo)V=6_x~r)b6ciK` z6ciW~6ciLF859(0DHIeG_+U2(is&Ke`rt!k|8rbR%iM<+erNu3X3l&w-`Q^o7t>OT zAcHG~;W8bqhQG`0akyM&z*uc*T`sf6?ee;t9lw>@E<#>msTGHuaW!tIr^+;{n;mgJ z!)$=x>~1Aun)aLFAheZ2DVio``Gryz%|nDp=y(V%pm41sX*tD1C1@{+lF6=BhF(>v zOv?VHCnoZ!kV>>)PP?@=$T=-O`S2F(v;}s3upI&2O$X^P9i`)Rl1|fEI!71i5?!Hd zi1*VCxQIcAXfR9!3wKEbE>4EOSRzQ~vPD);dK-{jjo$iw`A zAMq0&kSuM8en2NUW$=b?SaQEG|J=~m_^jz}^K<8*YsB5-8EzSF9ro@u@3#%K5Bcu- zuXlXy{Ic&&*I0LN&kq#Y1<=0S1LA>t4Qd3mA~ymFHUW$)^8l_y;%X#%mKaGEf+DaL zYy-sr%}F#aRoybM1C)cE0MCl%x0WF{v;3Y^C a;DyL`-~)cp0Xi`g&Q+x9H>Z?6pnd|jG}ndz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ntconsole-25-nti b/usr/share/terminfo/n/ntconsole-25-nti new file mode 100644 index 0000000000000000000000000000000000000000..a9c1fbe9c8ce4022fa3760ff66dfd6207fb46ef8 GIT binary patch literal 1470 zcmbu8TS!z<6o%K@3E4$b3errFa6r(BaU9dAhqT&RUMtPaE{-#!b98R%@tRseK|w)5 zL4iR*K|z6%K|zs~K|v1@Jy`Y-~HplS#ygSg}~di)A8FtQ4stO{9xVVH44NoGZie zpX=wU9W9n83dDST#mP1HZ5WDxvKGw}%CflESweP;yO0*bRR}hLji3_bgA$PC$B;WS zIFz!fAxtrTs6&_+P_o1#nPpl#Y&LL!9IyuDf;_Mm`D(*rpf*(-R)C!V4af{&h0doq z)tk|5NmyW`X^+Y_LaK}*R4qfOQy4;3H3V97LAQZcpw?F42hWJlOt2=dPO^>F#yAJ- zCmOzZ2O3{DJ@CEp4+owE`$8klBP}DX2lU5nL+uYc9(CU8`qusR;QOA@-u}Kx6xjpN zzT6MefVu{C1hgVI0|~YO99M1yxPFP(AknkLkz^?-1La^l*a6U-MB`G`-36+^Zcq)d zpLBvcfCEW4@PK;I0K7m0ji3qOHOT-7f)Hp1EdZAwb$|ZHzQh8f-)xEeES52*;prD|j zpunJ@prAm>prA-=g@S?tAM6G}5j_N5AAE@He~!DMW$i-?zcc?iGiSb;@9ejP%V{aa zk)3OW%WZQyea1jqtE7X7y~H{E{D6$mlCl1TA;+cEiZh^jD7cC zV&NQLgm^eFvhDh#QtynN1AK^&@G(BYr}zvH@Oi$-m-#9W@-W}z+dRTSe!!3T36Jvx zzvS2amf!OS{>0ySlD{*FC=o3dia4=YB#2~@B2q<~$PgxB6*(eT~A3I%J`HEtEWcy*)Q<6j>X%1NnY$mXREU*S-gB-9H`KpOxpc+w4 zRDueCrer!WLg!Pg>Q@g?5*B#S^p48bAyq~TRZ9ysnHH+57HF*j+7G-yovp-2pB|SH zZ%kN~XnIi_RX5Z$+5EX>u=QEn-S+2>5$Bkz-yQ4-dV=1)zWe^+&e6cVuIt@jd%o;@ z(>u{O(EkHPb^)|6_kdKOUV|C|t;mf)f=vM9$|8U(k+>R(o+U<-rJxLygRNj2Kywm} zOI5cD>;TnZC&2S$9l#Yy3?v(Y4K#sf&;snB6|@0dk#qtVaDxuu0eA`02k=5Nls9HKcw5z{J(c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ntconsole-25-w-vt b/usr/share/terminfo/n/ntconsole-25-w-vt new file mode 100644 index 0000000000000000000000000000000000000000..c65a8188ef07c29f5225d52c956e055111bafa9b GIT binary patch literal 1498 zcmbu8TS$~q5XWauLM91HJ!l$9xg_Y8u4@|kpk*g5wTot!l=sW3dvW*ERZ}Z4C@3f> zC@?4}C@4@eC@9iep`f6^2fIN~L=QpN2OlE)pR>E6X6{1^zcc?iGiSb;@9ejXD``1J zk&UZ_(^cy(6Ar`=U;BzSE` z6LhQ7O~f?qH^U+Br*Mj;sX2b(ltT*;Ard+sMvEv?t7uwDiBL(}OQBSY#B3;*Cr{>dc5M7UTiqQp`WBjQDZNEAsTMWhO=$P(EiN92jnJ52Uj zj4HKXLwmHfl6^*g`r#dj_<~VCYF zr7?O0|4H!79OLNFGo2r&*Rb#D6HO9x6ffb~`xAoxO4uY`&8b0u?H~I>r%Z^u{*epq z@rKEV_Jy}ye^u(85jn_*`6wUflYE-b@&I4pOMHc|@gNWLExyAe9N>rin4j`EPw*># z!|(V5f8@{nohSJRlZX(JVzG!3OGTVW5Q!pLq=+-77Ot&j<3zwf@LdE)?hWbOopahgDb<(R76n-6@fyq5$pg3pcI(wSUj)|u-VGd zi&-h7S~42qYkkqvwUw_Z!AEugb_2yr6q2T(&4A4WW{?HefozZi)?>eFq6DZ$R1;O8 z5}+xW3euqqC|dQa2Ph2*JZL(icI%WXqlK!ag_=wYRaFbL)(Gtb9-z)v;iFHDNsCR7 zTeHmgvM!>2sClyGOY30U^Y(kT7xodyn6uv%=m@w2o_*d2zTwVM|NX8T-QRk??tj}m z(Kpcl6Ge6dv@iF9WT0My8Ud}yO+bRp0OQJHfGd%>8i}4IMv`Tq98`d9U^_r_5{*k$ zw;JpOHDDLO^JG216-f*vn}7v0gBH*Vte_3F16+}G04H#P4&VlO3DOJjLS!fKgD%hw RdN32t)n@89r<6IUegSw`c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ntconsole-35-nti b/usr/share/terminfo/n/ntconsole-35-nti new file mode 100644 index 0000000000000000000000000000000000000000..1544b68f31cd46607720c4af53c481c52013e2be GIT binary patch literal 1454 zcmbu8TS!z<6o%K@2~8JCDabNG$^k(qMjg|rhqT&SUMsE4E{-#!GdefN<2AK{f`WpA zf&zntf`S4igMuQf2?~0M=)tmwARl@t=tlSu*}soxM9rLs4t#t4d#$zCUVEQ&R&oI) zQ5<==SOkJDzhARtWn283r^~N70{-TJ*A;P;AzWHv(Oe6N5714W~E5r7m>*uN+ zEtV_t#e96liPf3gF%$u1%^q_w!|dE(4rZF2g|rZ^La+sF29+QWlz2J1i$$OY?>uQn_OYE!jg1=t19fJ_4x=sb#5z3I)C zLKfD$(2Cp&Bq#tluG|K2{SvQ1qGyRC$x=`T%E1n>6QDVX#-*ye8|(plK^4G$(hh0? z4kVqx1?oUOa03r$0F3~zN%}zm1VIxB0bGLA04_wff;P|&IzT7Rgmu+f`pqe2Gt?jX CH_#LS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ntconsole-35-w b/usr/share/terminfo/n/ntconsole-35-w new file mode 100644 index 0000000000000000000000000000000000000000..de7086a8645474ffa2def5655ede4bb22614c94b GIT binary patch literal 1468 zcmbu8TS$~a6vxk*giI2YdayK-bV<;ybzRfQ2Q8blyi}T5Qh8f-)xEg;t*fS1P*6}% zP*7k{P*6~yWKd9~rBF~%;Dg;DD58g;>w^!G{bzPJv`ioR;5X-g=FFV$oSE-i%6YVm zV#vYO!tJrUT!uL#(;Vn_8Fg-#&)sSdx}^w}l$#B^*QvsZb#AAp#&FcO+7kl~qX~Yi z+e^eW<(cLX_fRAy(c}zIB<0dPM2LirN6-R_)+&}(P%>1C_R`2gHm$Pts8Z!n-fulQ zSx6;Rru|CVqpgFSQ{usww_(N~nhn5qhI9`dq9b&SPS7bjL+9u`U8Ku&m98T`KsV_& z-KAj~rAP3eg!atPj-Gm^<74z1_C0-~31W`oMLd0dLdahZo5U+QHRP}UV_kSxI_5q9 zh=tb}bHu~z=C&PwW$KN| z|7^MEiWP|pF&|%Xe3f-GhAlu@lf&dmH`T8*d90@T0*b;^0mug%zz&cHib1*)gAcYA zHcL5ruqkCxgS9rk${!uft$alhezF6w>nUC$kxUO+D{Ka^flROlWPxn37VA|JML-pz ziYNzV07c1EV1~}4XjQLnpg1h>qTq~LtwSn}7Alt(sxvKARxMCk9kd_#fZAJ*pFTAv zE!G^jYKi4#bwtfT!$jkkrvB#VE%#bqIEP%L?q1JG+lY6>x6gRsA8a2E-0!&2`K{~g z{ZHzQh8f-b#Jb_u9{jwK|w)5 zL4iR*K|z6%K|zt$3IzoPKG+R{B6ou_RI2vU$wXGIvh}J;7HJvCKC zrBtE)YTB)>ot!iB(+_V)#2<rW_>V(p<`_qZp6dKKy@Gv5A8C@9V|WqI-k%imm&2~)Rh$;`*Zj6Ge9DZt=P$YN z9$$ofcwc1O^+%=N8Ic2gh>!3wKEbE>3=i;mzQ~vPDi887-{jjo!a;t(kN63X^8~-- z*Zh{>^9TOK-*}S0Gl?h>Ef$J6u~;OCB#|sqM5;&^CSeuXB3I;z0ui~#f9)vz&-4GP z9Vu5Vs>FQ!ixX=so3U&G${OqjkJ-?eWAIoEjfE70P$4J)8^Csu4@!X9iKPR!9yUuk zda){HQj4WNvBn=eU0eBzVti!#Vb@clL?LMoSqp3iu!2mm7G!~JunzlG6U9I^qME1# z6#z}iG+>0zr&!gm9-t&F@Sy34+O1Qnj25bv7HTprR8=j|S_8BnbO3d>5+8k9Tzb4Q zVf7Nzi`uBVp{B{^&n<(k&)V)fo;yceWA1)Wus!GvcI@@t_YZfD2JUrT@BZ5JW#60L ziN1mUA1Ja5pnbUqqyY6A)Cg!rZUho+0vJ~o0bGg1)kyR#F_J6=WuP2v1=|3clW1J3 zx>aBYs0KR$o+s-7u1I1a*$8Z)2{eNiU@CMf73q6fWz zLJ8#M5)ll!0|CvFW3>b{Z+Ad*1_LcYpF8R(N4TugqPfHViIh}l&>wPW-a4N(*nB=mS3EueT^CDLk2gG$$DnPerquJZIzmD(_= z)GVJQ73-b~!(T_g(@8o_XX!j$MEnw6p=)%5 zZqWeU!Tg@FM%A0`d7#IK=sD~w8lh48Oh0LS#wrs}tX%}VgqQMiW1ei-nUz!E-}jGL zG`BWJJen8Vy8f!0u~;OCWgD^p6|sAqE5rVu>*uN+ zE0!k;#C&|k$u+iZ7>a?iX0JJvWp=GMhiqn75iNwP2y6zMKo!Ubr69|XA$M}HD`izf zloI?;-6F9sp@T zU4uFTT9I3T1cd;{m0JO>U*a`L^ek~CSq92M1=tRD05m7jxKwp_f!$yas0P?iIzS!3 zfusw#K|N>y9^eIypb6kL$p8p~5NHNrfJ=}Xz=g;*&<;94C+NbNu&yRszd5DshWY~) C8nx@u|#1qB5K z1qB8L1qB641_ec0D-;wI_+U2(is&Ke`rt!k|C!wlEps3G;5X-g=FFV$oSE-i%r;s= z3FP1!;qlttZoe_xWDNAU{q-KV&*QX*+%kkpD~x`7n@fdL>pd=St>01Sw5J9f{$}`2 zPa6@_lxLbl+)J@!p~)GZSjwk4h!6=KkD+-KuT>%~qco^=?PZdQtXk#jQKiZw+iyKN zSwy8&uKg<7t*wJxQ{thQw_>I}JR5-R3hQ1vL`UctouE^6hR)G>x=5GlDqTl>kZ#g# zx=SN8N{`?_3GbPq9X<6-$H(Y3?0fn|6T}?H3wZkal(4@Pb~&%$jIh7zk9CnW5hG&7e32j)iX@RDQbn3b7n#B&tRh$BiF{EYqSrXvio*Zg zKU?l-v0_mv=He?(uC{E#uo)<8a2UL1L&I8w*J5ZWq&Q3!f&#D}YzH<_0?aN9KG-_g z9OdZ2s+36$mb&EX_V`e4sAD8>zw<`dx9+d| z-}a36_V@inl3f7h%RL|ssAEtqpcJ_QNU#y0U0DQhB@$O7QL{u#vJ{koEnq9y22h+t z;Zo(T1Uo<#*a`4HSqpGQ5)H`)UZHzQh8f-b#Ly)TWSRb1qB5K z1qKBL1qDh51w~pb6ciNrU^fVg=ppF(;6r5pbKDIrYad$po%zqqIrGhYXTPPKL(3?R z>|86{9-GVMH)fi8UH%5Q%jb63lv9RqX{FI`^Exw4$qjC&r_OJ$ci56U?fw?{4!4(x zX~u7sLtIYLluJ`{{Gut3<{?8QbUum}P^?z*w1QHgQni;(CbDXktyfhlm-2t6N55>}Bdaz&mf5RrTQ*N(#fJpZrS zk#fbNO3cTG8&d z)k{n-YNP6gnkJh+w+yyEYrE@s?i_KAx%)lA_MkWD+v~p{815MDyw`QT`)kjaeQ$av z`Ud)cpvW$O_T?Us0@Q0zBcK(z5lFBJU|d-Qa3vB~BhjpmC&4GtV=>9mGNAbE^OsgmrDovkdkewX5%F{pr?KjS^%&Ym0cxgJ>ZBezLdWO?ouV^zjxNA|kuK9!x=uG~ zfNo=c*T^wz&b0S+{}4TceMuuUN}uQljnBxk@I>AM*hRdAml^XU!_KUljP&l@ zU-2-%<##;FANV7G=I=blKbb_Fu!w~sK`a%CVx>qCsUl5e2)l^g<7^R*|IDAQb}V0> zC=he;6(`kXZN*Rwl(qV-;Y_Q0oi&_gbr;cmEER!GU?Zpk`JfbJ1~BAK4i2U4YA`9m z4|NFh0!ordl9`6hg3SgFumuX@v)Ej0x; znpjcMx=WSOg{q|sbqZams=7dHF6dU!0#t4#e(>~!jK#LZ)ywT8wQ8nx@u|#1qB5K z1qB8L1qB641_ec0D-;wI_+U2(is&Ke`rt!k|C!wlEps3G;5X-g=FFV$oSE-i%r;s= z3FP1!;qlttZoe_xWDNAU{q-KV&*QX*+%kkpD~x`7n@fdL>pd=St>01Sw5J9f{$}`2 zPa6@_lxLbl+)J^PN0T!=v6N495Frve9z*jeUaLe}Mrly#+RG#pS+&a5qe_)Ww%>Yk zvWQBlT>DkDTU!UYro=-pZ^cY|cs2mr71q6Uh>p-PIzgxC44tF%bdfI8Rl1J&Al;~dbg8DW3bAL}B!%$WE7 zBNkcXj}nipi*7sr%G5Ju<{%&DqkNoC@@YQH{d|Eh@fE(t13bjH_zn+qkRS46e#&D! z&ae0lzvB=5kw5cyp5Px$B1XiD`659q6iFgQq>40=E;5BlSVgYL6ZxV*M6YqS6@~w~ zf41DwV#T6T%*9unTy5EeVKY$H;4pa2hK98Uuf@<%NO71d1O;F{*bZ!<1ejeIe6V$} zIm*$4RVkAiEOp7%?eU@9%2yQQCp!SUj*=x3Npsj*V6%V~tOnU22jqe^Sg(pG2C5KM zLUri%c(TVrmB)Cz`%A541erchC94HS8Ys^m&7=!M31pum3^&P{&B%e&>y@Z{1(_ zzwH_C?eF`EB)b60mwP}OP{*KJKq+zqkYFP~yRr!2N+hmEqGpMfWGN^ETfkPZ4WKxQ z!llYv33h-guoK{YvKHWqBpQ+pzz!Ng6KDnw&;s@WT#ZHzQh8f-)xEeES52*;prD|j zpunJ@prAm>prA-=g@S?tAM6G}5j_N5AAE@He~!DMW$i-?zcc?iGiSb;@9ejP%V{aa zk)3OW%WZQyea1jqtE7X7y~H{E{D6$mlCl1TA;+cEiZh^jD7cC zV&NQLgm^eFvhDh#QtynN1AK^&@G(BYr}zvH@Oi$-m-#9W@-W}z+dRTSe!!3T36Jvx zzvS2amf!OS{>0ySlD{*FC=o3dia4=YB#2~@B2q<~$PgxB6*(eT~A3I%J`HEtEWcy*)Q<6j>X%1NnY$mXREU*S-gB-9H`KpOxpc+w4 zRDueCrer!WLg!Pg>Q@g?5*B#S^p48bAyq~TRZ9ysnHH+57HF*j+7G-yovp-2pB|SH zZ%kN~XnIi_RX5Z$+5EX>u=QEn-S+2>5$Bkz-yQ4-dV=1)zWe^+&e6cVuIt@jd%o;@ z(>u{O(EkHPb^)|6_kdKOUV|C|t;mf)f=vM9$|8U(k+>R(o+U<-rJxLygRNj2Kywm} zOI5cD>;TnZC&2S$9l#Yy3?v(Y4K#sf&;snB6|@0dk#qtVaDxuu0eA`02k=5Nls9HKcw5z{J(c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/ntconsole-w-vt b/usr/share/terminfo/n/ntconsole-w-vt new file mode 100644 index 0000000000000000000000000000000000000000..c65a8188ef07c29f5225d52c956e055111bafa9b GIT binary patch literal 1498 zcmbu8TS$~q5XWauLM91HJ!l$9xg_Y8u4@|kpk*g5wTot!l=sW3dvW*ERZ}Z4C@3f> zC@?4}C@4@eC@9iep`f6^2fIN~L=QpN2OlE)pR>E6X6{1^zcc?iGiSb;@9ejXD``1J zk&UZ_(^cy(6Ar`=U;BzSE` z6LhQ7O~f?qH^U+Br*Mj;sX2b(ltT*;Ard+sMvEv?t7uwDiBL(}OQBSY#B3;*Cr{>dc5M7UTiqQp`WBjQDZNEAsTMWhO=$P(EiN92jnJl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwe501-a b/usr/share/terminfo/n/nwe501-a new file mode 100644 index 0000000000000000000000000000000000000000..8aa4eda10b1156ebe9bb747e235f983786ef4b78 GIT binary patch literal 1237 zcmeHHy-wRu7(E753W%`_SE>w>yPzs@E|!C$B;rqv+9C)+S-cR4B}a08lmrlnSKtMB z48*{|z`(%3(4k{T-orij+Odd`Q1^1}bH4K(9pBHsgBOezmNAV>W8UbT_8eP&ZCq%P z*TQ$QcI@OFE&S8L(P3LzRPu!-Wo*fdZrC(y-Oia=-?y__({CS#jbXQMN@<3zjz0hl zedEo=3{$&^qD4ZjNmgJ2Q>>rx8B5y#0vD@PMctLj8(PKBMA0|=9P6v7!_&?|;x`eb ziID0l>8?{Zif&SUOLd2PJfzNO(qrO0CG{76XZCqR54)S5|Z+`aSv zd;)XEH0B{Zt7Y|Ut68vmIjh;HQK$$n_nqPgq3T$of>~M>d?arWYlPD#*^1nhR+M@H zS9pDq7hC$;7V7fKZa}g_k_-hCc0o#}kU4MlGJ~Me_cO!B;lLkePKNv~=%MQnJG(@c r*duD3vq_9zM(tN(U$z5Lgeb+Ed*u~1#!;lF<^yn$a3Qua!*BWv2s}V2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwe501-o b/usr/share/terminfo/n/nwe501-o new file mode 100644 index 0000000000000000000000000000000000000000..8ae38fcfb184fa2b2436071d67470b1ec827abbf GIT binary patch literal 1257 zcmeHHy=vP~7(Hr2leBp3(hH3Us7omJwIbwV5|ck_l9)Jk@uH=6Es#N$gzYx8_!aU3 zd5n-DLxv0)I&|pJv18stIrmBy4TaLZz0`3^_-lkTAB#tiFN!kJMrqSM5Y_DoZa zl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp-511 b/usr/share/terminfo/n/nwp-511 new file mode 100644 index 0000000000000000000000000000000000000000..c7fc719457113dfae112fa81c6145797a4ddc80d GIT binary patch literal 599 zcmb1Qlx5InU}k7$_|A}5USMiySOcVVk!Xdm5JLk41_nkjV!#W4YJjQ&82`A#>hb54#@RZu`vcS zfI`L)A=OOP0z=glYt;fH)f5k)8Yduj0b*w$b_D7KtM>(R%yVHp6F3W#VQ-qzfDELg z?M-ulx`8B+FwBv*15)N0K*AyeDC`5oKpXu7fH)9{gMc^~h(j2pmBWE@AQ!=1!ys)g R9bF`Cfy*>s6&q8aa{F1lzBt*4vf zyH=|Et{Gc^>H5QlhR;}r5sDk3i{(N!WE-JMxn3m_>enP8*aevXSb|Q{2HHu1T5Dj5 zG+IkrXglpDsp6fqpOR2L%IgIm1^Q`#hG0i%l(H%l1e3~^sYbK3NZ07L^6$|SJ)|el zuYtF~H{b{G6W~Q62-X43wNY#mo5fb4BeF|Ku}_##F(3)_h$EsOme)Yb4#5tKv*JR_ zZ)SsF41QLWL|t5gx*_g}CD=!;s%PT4cnSTc<-dddAU=vu;olE-tBMRi&gf0rM=fa zYF}2l>u)FcU%9W^dfG&~CnuzD%1lD~mdsQTu*X4ty4MeL3}D+<)JGj$fq$6p9Rdyl zCxH`y8D1oPuMtjK2jICy4ly}-P>hu#hn0Hn2+DiINr%gekT6aGWT`q!6{g%g8X89A zfbOMS&Kltc=`r1_=y9Ecb^+utxlFMhx8*zsn_HO zC~;z0@SCbg&$2kaEV#8waaSdH#1nwS8ZssQsH`PSnP6!_I!)<7 zx=m?H-tFB8ps>!Xe6XNDWPmynqpjgF?%x!m~pC((hy?*)f?Cjj!{QSZ~qp`>n!6hihF*|wUJYCOHv$WJK9TiYl zU^TUxq@{*xt8&}o8e7%as>b9m5?>>}*9@-7ilsntWvI5iIn_Wq!haV^It<CH`HyPY>xa z^h@9k@D=z4{04ZCYBrYxt+7h2QESzDWh1gtX|+wcP)VR0=uy3@AC||VSvvrGLY-1) zX8l&S**ptBt4gY_E<;^cx7B^vN3&H=)pPX%`jvVskx$?+>YMtmekk93o>^WMB3-v`$xXL`hoSxdSX43IWMf&);sI{lIFLswwU)}iR*r} zK3m_cpG%yz*a`ku?w7TK){q_QQ60H@IISb2hbstpBcMJz?1$M8ux%^qqt#r2f0!Na z0d@gLfP;V=Z;-vkiFccw@PZEsFF?8hR#;AwZwSMbsQ{k zKu+)BupzcQ%*Qt_yu(L<0pJ)SZj$qEO1O*JIKoVOfld|yQ>zbA&ZQ`401xoV?nO$j z$s33`I4Ag~66u)}2j&DXEh%1A1h;q;@RrMM;71nd(Gj^EP!#Nrp92&~yMn=ZQ z&Yv$7ip5f?T#lj(7b=x%wN|@$aeTa9pO~1OoSM3HX?l8Qror990}0~_TlqD(^P!PG z8|kwz0eK$N($Zxk4fmwnGhE|IjVCoOf35gZ@huPI3B%43D5Jx);~LKoI+Llc)8`Ok Jn0R9~{Q)56MMeMs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp251-a b/usr/share/terminfo/n/nwp251-a new file mode 100644 index 0000000000000000000000000000000000000000..8aa4eda10b1156ebe9bb747e235f983786ef4b78 GIT binary patch literal 1237 zcmeHHy-wRu7(E753W%`_SE>w>yPzs@E|!C$B;rqv+9C)+S-cR4B}a08lmrlnSKtMB z48*{|z`(%3(4k{T-orij+Odd`Q1^1}bH4K(9pBHsgBOezmNAV>W8UbT_8eP&ZCq%P z*TQ$QcI@OFE&S8L(P3LzRPu!-Wo*fdZrC(y-Oia=-?y__({CS#jbXQMN@<3zjz0hl zedEo=3{$&^qD4ZjNmgJ2Q>>rx8B5y#0vD@PMctLj8(PKBMA0|=9P6v7!_&?|;x`eb ziID0l>8?{Zif&SUOLd2PJfzNO(qrO0CG{76XZCqR54)S5|Z+`aSv zd;)XEH0B{Zt7Y|Ut68vmIjh;HQK$$n_nqPgq3T$of>~M>d?arWYlPD#*^1nhR+M@H zS9pDq7hC$;7V7fKZa}g_k_-hCc0o#}kU4MlGJ~Me_cO!B;lLkePKNv~=%MQnJG(@c r*duD3vq_9zM(tN(U$z5Lgeb+Ed*u~1#!;lF<^yn$a3Qua!*BWv2s}V2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp251-o b/usr/share/terminfo/n/nwp251-o new file mode 100644 index 0000000000000000000000000000000000000000..8ae38fcfb184fa2b2436071d67470b1ec827abbf GIT binary patch literal 1257 zcmeHHy=vP~7(Hr2leBp3(hH3Us7omJwIbwV5|ck_l9)Jk@uH=6Es#N$gzYx8_!aU3 zd5n-DLxv0)I&|pJv18stIrmBy4TaLZz0`3^_-lkTAB#tiFN!kJMrqSM5Y_DoZa zl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp511 b/usr/share/terminfo/n/nwp511 new file mode 100644 index 0000000000000000000000000000000000000000..c7fc719457113dfae112fa81c6145797a4ddc80d GIT binary patch literal 599 zcmb1Qlx5InU}k7$_|A}5USMiySOcVVk!Xdm5JLk41_nkjV!#W4YJjQ&82`A#>hb54#@RZu`vcS zfI`L)A=OOP0z=glYt;fH)f5k)8Yduj0b*w$b_D7KtM>(R%yVHp6F3W#VQ-qzfDELg z?M-ulx`8B+FwBv*15)N0K*AyeDC`5oKpXu7fH)9{gMc^~h(j2pmBWE@AQ!=1!ys)g R9bF`Cfy*>s6&q8aa{ z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp512-a b/usr/share/terminfo/n/nwp512-a new file mode 100644 index 0000000000000000000000000000000000000000..c68f4f20ff136e14872e3bb48a60466af5821c8d GIT binary patch literal 1186 zcmeHHJxjw-6g^eJ4{&txfdnBAilm7tsgyQo1?v~KR=Q*{l0XWv4QaF}?oR#&ad2>O zaBy&NaCG#C2!bHu5^rA9U=gIV7;?@%_i*05B#=y|)-Z=*oTom~XnPr1nKw_lP$OZt zTX9hp-l=Koo315Pn~h_kwkxO8f_-r4nnBYSR7G&>4I4=D8^2zZp;Q@RI7^7GL8`z2 zhNwHh08pYcNcN_dMWzQ?uyIseJO`UXDe3mpeD#JcFoqLmXp zMYMb}awTRc>m)V^QSC{TFh*7hBg93*5+QRyBuAtrq(+K)q?Tj)wiKBAEjy5o0{R8;4a;ELWkQ9pL#Wcw6+(A&G_OFtE;}p_R_F{jbTwL& SiHL8_I-o^N1KYwVJ-`=UsWo8$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp512-o b/usr/share/terminfo/n/nwp512-o new file mode 100644 index 0000000000000000000000000000000000000000..8b7f75005de5ee7f6cc0a71c277bbc9cf966cbc8 GIT binary patch literal 1245 zcmeHHy-LGS7(G!@t2nxNL4ptwM4Hr;D8&}7V(|xmamiw(ffUjo+iFqz3ci4kAr1}> z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp513 b/usr/share/terminfo/n/nwp513 new file mode 100644 index 0000000000000000000000000000000000000000..8ae38fcfb184fa2b2436071d67470b1ec827abbf GIT binary patch literal 1257 zcmeHHy=vP~7(Hr2leBp3(hH3Us7omJwIbwV5|ck_l9)Jk@uH=6Es#N$gzYx8_!aU3 zd5n-DLxv0)I&|pJv18stIrmBy4TaLZz0`3^_-lkTAB#tiFN!kJMrqSM5Y_DoZa zl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp513-a b/usr/share/terminfo/n/nwp513-a new file mode 100644 index 0000000000000000000000000000000000000000..8aa4eda10b1156ebe9bb747e235f983786ef4b78 GIT binary patch literal 1237 zcmeHHy-wRu7(E753W%`_SE>w>yPzs@E|!C$B;rqv+9C)+S-cR4B}a08lmrlnSKtMB z48*{|z`(%3(4k{T-orij+Odd`Q1^1}bH4K(9pBHsgBOezmNAV>W8UbT_8eP&ZCq%P z*TQ$QcI@OFE&S8L(P3LzRPu!-Wo*fdZrC(y-Oia=-?y__({CS#jbXQMN@<3zjz0hl zedEo=3{$&^qD4ZjNmgJ2Q>>rx8B5y#0vD@PMctLj8(PKBMA0|=9P6v7!_&?|;x`eb ziID0l>8?{Zif&SUOLd2PJfzNO(qrO0CG{76XZCqR54)S5|Z+`aSv zd;)XEH0B{Zt7Y|Ut68vmIjh;HQK$$n_nqPgq3T$of>~M>d?arWYlPD#*^1nhR+M@H zS9pDq7hC$;7V7fKZa}g_k_-hCc0o#}kU4MlGJ~Me_cO!B;lLkePKNv~=%MQnJG(@c r*duD3vq_9zM(tN(U$z5Lgeb+Ed*u~1#!;lF<^yn$a3Qua!*BWv2s}V2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp513-o b/usr/share/terminfo/n/nwp513-o new file mode 100644 index 0000000000000000000000000000000000000000..8ae38fcfb184fa2b2436071d67470b1ec827abbf GIT binary patch literal 1257 zcmeHHy=vP~7(Hr2leBp3(hH3Us7omJwIbwV5|ck_l9)Jk@uH=6Es#N$gzYx8_!aU3 zd5n-DLxv0)I&|pJv18stIrmBy4TaLZz0`3^_-lkTAB#tiFN!kJMrqSM5Y_DoZa zl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp514 b/usr/share/terminfo/n/nwp514 new file mode 100644 index 0000000000000000000000000000000000000000..8b7f75005de5ee7f6cc0a71c277bbc9cf966cbc8 GIT binary patch literal 1245 zcmeHHy-LGS7(G!@t2nxNL4ptwM4Hr;D8&}7V(|xmamiw(ffUjo+iFqz3ci4kAr1}> z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp514-a b/usr/share/terminfo/n/nwp514-a new file mode 100644 index 0000000000000000000000000000000000000000..c68f4f20ff136e14872e3bb48a60466af5821c8d GIT binary patch literal 1186 zcmeHHJxjw-6g^eJ4{&txfdnBAilm7tsgyQo1?v~KR=Q*{l0XWv4QaF}?oR#&ad2>O zaBy&NaCG#C2!bHu5^rA9U=gIV7;?@%_i*05B#=y|)-Z=*oTom~XnPr1nKw_lP$OZt zTX9hp-l=Koo315Pn~h_kwkxO8f_-r4nnBYSR7G&>4I4=D8^2zZp;Q@RI7^7GL8`z2 zhNwHh08pYcNcN_dMWzQ?uyIseJO`UXDe3mpeD#JcFoqLmXp zMYMb}awTRc>m)V^QSC{TFh*7hBg93*5+QRyBuAtrq(+K)q?Tj)wiKBAEjy5o0{R8;4a;ELWkQ9pL#Wcw6+(A&G_OFtE;}p_R_F{jbTwL& SiHL8_I-o^N1KYwVJ-`=UsWo8$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp514-o b/usr/share/terminfo/n/nwp514-o new file mode 100644 index 0000000000000000000000000000000000000000..8b7f75005de5ee7f6cc0a71c277bbc9cf966cbc8 GIT binary patch literal 1245 zcmeHHy-LGS7(G!@t2nxNL4ptwM4Hr;D8&}7V(|xmamiw(ffUjo+iFqz3ci4kAr1}> z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp517 b/usr/share/terminfo/n/nwp517 new file mode 100644 index 0000000000000000000000000000000000000000..35372c458bcf20498683c6422bed35b49b909747 GIT binary patch literal 1641 zcmc&zOKTHR6h3!U)PgG!#X*gbD;6o4XOfy=YJE_uwpyhWN2RGrnzngNli1itinvh` z6hvIuje_V#7rIcyg(!j`_y=6L5d0G^9KUmuilLx%F1lzBt*4vf zyH=|Et{Gc^>H5QlhR;}r5sDk3i{(N!WE-JMxn3m_>enP8*aevXSb|Q{2HHu1T5Dj5 zG+IkrXglpDsp6fqpOR2L%IgIm1^Q`#hG0i%l(H%l1e3~^sYbK3NZ07L^6$|SJ)|el zuYtF~H{b{G6W~Q62-X43wNY#mo5fb4BeF|Ku}_##F(3)_h$EsOme)Yb4#5tKv*JR_ zZ)SsF41QLWL|t5gx*_g}CD=!;s%PT4cnSTc<-dddAU=vu;olE-tBMRi&gf0rM=fa zYF}2l>u)FcU%9W^dfG&~CnuzD%1lD~mdsQTu*X4ty4MeL3}D+<)JGj$fq$6p9Rdyl zCxH`y8D1oPuMtjK2jICy4ly}-P>hu#hn0Hn2+DiINr%gekT6aGWT`q!6{g%g8X89A zfbOMS&Kltc=`r1_=y9Ecb^+utxlFMhx8*zsn_HO zC~;z0@SCbg&$2kaEV#8waaSdH#1nwS8ZssQsH`PSnP6!_I!)<7 zx=m?H-tFB8ps>!Xe6XNDWPmynqpjgF?%x!m~pC((hy?*)f?Cjj!{QSZ~qp`>n!6hihF*|wUJYCOHv$WJK9TiYl zU^TUxq@{*xt8&}o8e7%as>b9m5?>>}*9@-7ilsntWvI5iIn_Wq!haV^It<CH`HyPY>xa z^h@9k@D=z4{04ZCYBrYxt+7h2QESzDWh1gtX|+wcP)VR0=uy3@AC||VSvvrGLY-1) zX8l&S**ptBt4gY_E<;^cx7B^vN3&H=)pPX%`jvVskx$?+>YMtmekk93o>^WMB3-v`$xXL`hoSxdSX43IWMf&);sI{lIFLswwU)}iR*r} zK3m_cpG%yz*a`ku?w7TK){q_QQ60H@IISb2hbstpBcMJz?1$M8ux%^qqt#r2f0!Na z0d@gLfP;V=Z;-vkiFccw@PZEsFF?8hR#;AwZwSMbsQ{k zKu+)BupzcQ%*Qt_yu(L<0pJ)SZj$qEO1O*JIKoVOfld|yQ>zbA&ZQ`401xoV?nO$j z$s33`I4Ag~66u)}2j&DXEh%1A1h;q;@RrMM;71nd(Gj^EP!#Nrp92&~yMn=ZQ z&Yv$7ip5f?T#lj(7b=x%wN|@$aeTa9pO~1OoSM3HX?l8Qror990}0~_TlqD(^P!PG z8|kwz0eK$N($Zxk4fmwnGhE|IjVCoOf35gZ@huPI3B%43D5Jx);~LKoI+Llc)8`Ok Jn0R9~{Q)56MMeMs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp518 b/usr/share/terminfo/n/nwp518 new file mode 100644 index 0000000000000000000000000000000000000000..8ae38fcfb184fa2b2436071d67470b1ec827abbf GIT binary patch literal 1257 zcmeHHy=vP~7(Hr2leBp3(hH3Us7omJwIbwV5|ck_l9)Jk@uH=6Es#N$gzYx8_!aU3 zd5n-DLxv0)I&|pJv18stIrmBy4TaLZz0`3^_-lkTAB#tiFN!kJMrqSM5Y_DoZa zl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp518-a b/usr/share/terminfo/n/nwp518-a new file mode 100644 index 0000000000000000000000000000000000000000..8aa4eda10b1156ebe9bb747e235f983786ef4b78 GIT binary patch literal 1237 zcmeHHy-wRu7(E753W%`_SE>w>yPzs@E|!C$B;rqv+9C)+S-cR4B}a08lmrlnSKtMB z48*{|z`(%3(4k{T-orij+Odd`Q1^1}bH4K(9pBHsgBOezmNAV>W8UbT_8eP&ZCq%P z*TQ$QcI@OFE&S8L(P3LzRPu!-Wo*fdZrC(y-Oia=-?y__({CS#jbXQMN@<3zjz0hl zedEo=3{$&^qD4ZjNmgJ2Q>>rx8B5y#0vD@PMctLj8(PKBMA0|=9P6v7!_&?|;x`eb ziID0l>8?{Zif&SUOLd2PJfzNO(qrO0CG{76XZCqR54)S5|Z+`aSv zd;)XEH0B{Zt7Y|Ut68vmIjh;HQK$$n_nqPgq3T$of>~M>d?arWYlPD#*^1nhR+M@H zS9pDq7hC$;7V7fKZa}g_k_-hCc0o#}kU4MlGJ~Me_cO!B;lLkePKNv~=%MQnJG(@c r*duD3vq_9zM(tN(U$z5Lgeb+Ed*u~1#!;lF<^yn$a3Qua!*BWv2s}V2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nwp518-o b/usr/share/terminfo/n/nwp518-o new file mode 100644 index 0000000000000000000000000000000000000000..8ae38fcfb184fa2b2436071d67470b1ec827abbf GIT binary patch literal 1257 zcmeHHy=vP~7(Hr2leBp3(hH3Us7omJwIbwV5|ck_l9)Jk@uH=6Es#N$gzYx8_!aU3 zd5n-DLxv0)I&|pJv18stIrmBy4TaLZz0`3^_-lkTAB#tiFN!kJMrqSM5Y_DoZa zl(KIv=je9QSee&FYCsd@VE`A+WvgC{^d zCe&KVIqUw{fB6KS8cQfac-GKLq&28pN!1#RY1Es-s~%7s5{e%rns`F1iDlMZVw-SA zEK(J>C>u)s0#|rrQ4{<6Y6*3D4L4wsA&VUfCS=`~OriW`n3N|$Z|s++z5c|XmOoAT zU(iE$AdcI_3GtTbaLyhve;Kvk7W;+_#3sa6wz=2XP-7fb^we4a4iYXz3oHDldk98H ARsaA1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/n/nxterm b/usr/share/terminfo/n/nxterm new file mode 100644 index 0000000000000000000000000000000000000000..10bf2e1ad47faaceb461175c4e8168f76fe0c3fc GIT binary patch literal 1551 zcmc&zOKVe65T0{XtZ%#UK`u%WQXf$1eYCeF#I{y2HZ3WYf_OJANt>k2P14)+o%9E| zP()D#^>?@sH!fVc>OurTT!;&CAzg?Ijo(ZXN{J$F>?QNfH{Y2%=ggd&kUC54bd;Vb zPcN6I0>2|!$Q6QeUV?IZDnAuulWiiliAJR4#|}i0+4e`#D7DZ@s{ZC_p?>-aok-Je zIz}NngEMgA1&UAC^pQT(SNcXju(nH8t1YmDs#P6_=O?62tM)ptDb09MxvF1s zuBkEQfu)+>@I|=|ysPf32k?(zk40^+__RsiXi{o#z4?RQTysl#_fPM9P@mKnwW+?V zs@kIu=vI9~Z`ImKc1oYq9lA^R?!bAX^*sl4{J-ozu5akQbchTuoDCPva4HfmTH#ax z!A=8WhGz}I$6@TZWyNSer{Iric!RJ3*eGm-4g*b}4A=1b95;i=VQ?YU!13t_ILFqI zB;|}A1WvB5@`{fIH^ZWFiAx2D&4?XwBHgv@VcFVVCnIqg`KAfxS%Rj;+~hUSbOgHu zUBMo~UPh}^5RkZnu$v=JO`xR&x7251fAJY33NLfwK81`l2%kWd;RfMyqVRBpaJj#A zg)z81SQL)YKAM=AoSdFcr?c6anc3M~&iC{ALZMikn+t;Z`BG_NVR3P3X?b~NWp#CJ ztz52D)^Ygro!ChRA-!8N2dl(`_$pFkDA=6`;0mlH TJR9E<55Si0IC2^c7wOY4Ht%2m literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/o31 b/usr/share/terminfo/o/o31 new file mode 100644 index 0000000000000000000000000000000000000000..fb6d9e6b4155010d0478e894ce2d3be30cd3eca8 GIT binary patch literal 470 zcmb`D&r8EV5QV>}pj2}&4oEL+rT!pkYPE+R1Vt}`6jAgbsKtY*tp$6KAmSfxeA#ZP zcy^X==FQvLU6R$P$~yCWY2Egpvvhm#)XxW5nyc2l0}-?Mt!J)g&M1nifH~!&SYVNg zSFv8$kZSmDOL<2mWWFzFr_l~hhi`9neSg4V=u7h?%$)u?UA|vNj|-`5Zn)!tM_w2) z4twvR=AnLsIyw12`BUE=V-4&ayTZC|n7Vqc?l#@M8#bp>|7MLPR#?U^u^#q{9k)b+ gjV9&Iq>nTiB{5Mdnj#Y|u`AkQPwb0M9PX>|1GdrN4gdfE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/o4112-nd b/usr/share/terminfo/o/o4112-nd new file mode 100644 index 0000000000000000000000000000000000000000..ad6a782adb7adb8529611a5b7083505c9d51e25f GIT binary patch literal 381 zcmb1QbYNg&U}k7yP-Vz3NzFDfG&HKo2a&pYDK$_LV;IAvCL}exq$ocxvqAx=#z3Js zwJ0;SSV1E{CqSQW&oP`9|%~$B#8C@KRcMs2^Zmpvmo;S|MOyqKxCwF sh{N;^K3bW9oq?A@numdlfrEjYLE78VK-wqFK-$;c0K_o_atwiT0L|_WZvX%Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/o85h b/usr/share/terminfo/o/o85h new file mode 100644 index 0000000000000000000000000000000000000000..ff67b042a5ef01cc04d33df7af510ee8652f5cd0 GIT binary patch literal 551 zcmbVJO-sW-5Pd<4TE(+CAbW|mmKrP+BBD~iu&5|SP`ssWB+;gcn_yAu*^3||A|n1( z<7C^k_2R){=gph9vpdV|oVJMtWblYDSar`VJ4L_M?D{?4^;zg1xLzdvwy10!3A4N} zI&S0$t`e87^g5Qbg|u&%p=lVgU&&C{aDoZUB96afV2op88P=v0pFvK=yut!wk=;N^ z<-O_z%P^I)h7D8{+fi7>A&v*NHD)3E6Z`W(jpLUQKD;w!uWI+LU-RCNAAg=n&;B=l zf~pt?ErBA?9cWz-R`i_6=>@%^2c?uE%cGj+VbK|=2FimjKv!zDK#Oz@l1R`4JA&v*NHD)3E6Z`W(jpLUQKD;w!uWI+LU-RCNAAg=n&;B=l zf~pt?ErBA?9cWz-R`i_6=>@%^2c?uE%cGj+VbK|=2FimjKv!zDK#Oz@l1R`4JIL$KdGjVEc}yXSeS8qNTPzfMZr9!IZh6mp zfyx!Vp1ZSYiaD>dy=5AMkkJSrx)lQ>;J|ZeNejMzM&bMYOiUSwgeryvQlT{oJ7gz3 z>v}d6*KjM;zJEvgp5h5SJi{JdqK8*u>^0sf@8csr;dAKug0J`$Jm!DHcl-!_Kj9-H zBNCHia$J0WOmRw*l9IDx#FA;%7v!Rpq^wp|YU0R(G-Xk)%S~yi?|;{AS(n{I_umfn zyP@@O{r3`uWzRaJ;5tF;$P==&`gQ9s$c>1)Kq^;4HL|Vnd+?=EL?Apnfn1=EL9L2OoeB!!f)7?_%6FKdGjVEc}yXSeS8qNTPzfMZr9!IZh6mp zfyx!Vp1ZSYiaD>dy=5AMkkJSrx)lQ>;J|ZeNejMzM&bMYOiUSwgeryvQlT{oJ7gz3 z>v}d6*KjM;zJEvgp5h5SJi{JdqK8*u>^0sf@8csr;dAKug0J`$Jm!DHcl-!_Kj9-H zBNCHia$J0WOmRw*l9IDx#FA;%7v!Rpq^wp|YU0R(G-Xk)%S~yi?|;{AS(n{I_umfn zyP@@O{r3`uWzRaJ;5tF;$P==&`gQ9s$c>1)Kq^;4HL|Vnd+?=EL?Apnfn1=EL9L2OoeB!!f)7?_%6FV5Gk6^+8CB76mPWAP5?Q zmMvShY}vA9%jh4Oj`JP{En58UId|^dJ9jaoE zdb@G5+phY$=dJxJZx*4{I05envqi5zx6((=fD~W1J@oNFk$7 zvN|eNKnd%P@6J|g6I;x;owFTkxmT}Y4^6ajj5D0$0++aUYB$td+~MBIA9_9Z)W7kO z^(Q>z1+R2(c*h6z^WUy7R=@R)fXfXpJdi7pSx8YAW=K@x!Zbu>88QW#hFpS7LKY$O zkdX#th!`YBq7Gqd@E14aB4iFjx{qUmY!Bwi8rdMH#3D!JfV7FJpPPY9IFEWqxKno{ zc5CGXt(>Tpk7&&~%58Pdm9-|p2|IL$W=5TrJz*v!m3;BuLt3_b2>3#4w!)8kItx1G=_gF;d#Z;_wbgIC5C9+m literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/oldibmpc3 b/usr/share/terminfo/o/oldibmpc3 new file mode 100644 index 0000000000000000000000000000000000000000..3a4a964a317198c8942de63febb35ece913f092a GIT binary patch literal 447 zcmb1Q)L~F#U}k7%@MXx)NhwG+t^rb+Nx4v#f~S+OLV&Y^Q?QG^v4xpJa(-TMeoiU_ z3^2kN*l5Q8Kp@HR|33o*6Ocp&EEpmnc{aEx7nmgo=fiZ1V~D_H{{NQ&$|)epDBqB)uPd-Eofmym2bhuFs=-ti4NOw}ZxMw8s@WJw{_t19~=<@IDSP~~%($=pk1 zuH>)}I55XF#||^=w>n*{Vi#Hi3#?i%VHxX2ZDGgsJyQki0Xc$i<|;dXPVAL4+b^1A zVAU;JjW@eHZ03lnhZs+dqjh5Ri**LJ%Rh5>jP9kJB-1&2%0CIQ@#sqle3l89cl=Z4f<%p=8>W5oHzKri;?&s(wRvwRGKGKm6_8wJW>2ZwW>Cul~am#8Y`2aEH B@*MyG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/opennt b/usr/share/terminfo/o/opennt new file mode 100644 index 0000000000000000000000000000000000000000..afbcc420c39f8f899b5d956f41f1bffb2864b64e GIT binary patch literal 1486 zcmbu8TS$~q5XWauLM91HJ!l$9xg_Y8u4@|kpk*g5FQsOdRNhwo)V=6_x~r)b6ciK` z6ciW~6ciLF859(0DHIeG_+U2(is&Ke`rt!k|8rbR%iM<+erNu3X3l&w-`Q^o7t>OT zAcHG~;W8bqhQG`0akyM&z*uc*T`sf6?ee;t9lw>@E<#>msTGHuaW!tIr^+;{n;mgJ z!)$=x>~1Aun)aLFAheZ2DVio``Gryz%|nDp=y(V%pm41sX*tD1C1@{+lF6=BhF(>v zOv?VHCnoZ!kV>>)PP?@=$T=-O`S2F(v;}s3upI&2O$X^P9i`)Rl1|fEI!71i5?!Hd zi1*VCxQIcAXfR9!3wKEbE>4EOSRzQ~vPD);dK-{jjo$iw`A zAMq0&kSuM8en2NUW$=b?SaQEG|J=~m_^jz}^K<8*YsB5-8EzSF9ro@u@3#%K5Bcu- zuXlXy{Ic&&*I0LN&kq#Y1<=0S1LA>t4Qd3mA~ymFHUW$)^8l_y;%X#%mKaGEf+DaL zYy-sr%}F#aRoybM1C)cE0MCl%x0WF{v;3Y^C a;DyL`-~)cp0Xi`g&Q+x9H>Z?6pnd|jG}ndz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/opennt-100 b/usr/share/terminfo/o/opennt-100 new file mode 100644 index 0000000000000000000000000000000000000000..b2d88c54106fcdb967dc8e6520fb9ca297544e9a GIT binary patch literal 1466 zcmbu8TS$~a6vxk*giI2YdayK-a!JswUER`1LdzyCZ>5#C_06ciK` z6ciW~6ciLF859(0tx!-<;Dg;DD58g;>w^!G{b$?_Ez^fS_|5sBIWy-wXXg7B^LkoB zG34Yb;qf}$Zo_P~Si0Ost;g;2G&{6cj6hMD*>JSF5KOG~xV+Vdv!>aR7;qX5@S8oY zL`;*ODGov<6iId(pXQ0AY?^}zkxlQ$O}b5Y zX^4jD5&S2iJ=3(Kr=IEf2)%}VPoHRvn4@?BPhFo7@|VIc=M|h1@>l(_F1*W%dG9}B z;WfrA@$kCYZTnxDx+cvWQu2ly7>;Xw}aLw?Lpd4xy# z6~Ezk{DD96Xa3G({DVnEh)6MC#E69=P9%s#ktC8us;~%~$P`&3TjYw_Yn*9C-hb|& zDfeu#0#PpJ;wz4?OxuECD^S+tG z%0MYVQ8ERXp>rr&)vFsQ3=6zyVn(gjA(ci8l}iiNnHDOm7AUP2+7Em{?JdJkpAwTA zYmQsF$nvr(qPo9sto};@=b?gdFe9fN8CrN~V{g3SQ!%6xz;k+>R(nk8D2MW7gzfNfwqKyea< zOO>}A>;x5H7r^^uHNX`~G$if70qQ_KXaG*o2$}${NVkTaX!hX`7EF3i`>gsxR0;%P44GGzRUM{h$H-r zU+_zQ&BOeT-}5McPVu}mb1RU%cSiFA=EtRi-gb7k27bNyVk zW5seszL<}%IJr8j5JM4A*6cNhY-ZO6b12K~DxigM6@V>ZGpGc4paj_b7;+{DyHZv) zL@CA(bp-Q#N|sn8ZHCQ)%?5U`7OVp~AQ!AhzS^)Ds7=*|6<`-Y12O|xpz|nR^`(=R#-=B;v55YWA$G> z{S9v#ANt<z8;95CNtS{#P!4v0odC^AG%i)$-Cz&c3#tJ2lMYY| za3JXdZcqp6fd_a&184+zO)>z2AOxB~7~m4525=#=6|{kN&;dGeCakN@)^AQJyP^I7 DLvPU2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/opennt-25 b/usr/share/terminfo/o/opennt-25 new file mode 100644 index 0000000000000000000000000000000000000000..afbcc420c39f8f899b5d956f41f1bffb2864b64e GIT binary patch literal 1486 zcmbu8TS$~q5XWauLM91HJ!l$9xg_Y8u4@|kpk*g5FQsOdRNhwo)V=6_x~r)b6ciK` z6ciW~6ciLF859(0DHIeG_+U2(is&Ke`rt!k|8rbR%iM<+erNu3X3l&w-`Q^o7t>OT zAcHG~;W8bqhQG`0akyM&z*uc*T`sf6?ee;t9lw>@E<#>msTGHuaW!tIr^+;{n;mgJ z!)$=x>~1Aun)aLFAheZ2DVio``Gryz%|nDp=y(V%pm41sX*tD1C1@{+lF6=BhF(>v zOv?VHCnoZ!kV>>)PP?@=$T=-O`S2F(v;}s3upI&2O$X^P9i`)Rl1|fEI!71i5?!Hd zi1*VCxQIcAXfR9!3wKEbE>4EOSRzQ~vPD);dK-{jjo$iw`A zAMq0&kSuM8en2NUW$=b?SaQEG|J=~m_^jz}^K<8*YsB5-8EzSF9ro@u@3#%K5Bcu- zuXlXy{Ic&&*I0LN&kq#Y1<=0S1LA>t4Qd3mA~ymFHUW$)^8l_y;%X#%mKaGEf+DaL zYy-sr%}F#aRoybM1C)cE0MCl%x0WF{v;3Y^C a;DyL`-~)cp0Xi`g&Q+x9H>Z?6pnd|jG}ndz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/opennt-25-nti b/usr/share/terminfo/o/opennt-25-nti new file mode 100644 index 0000000000000000000000000000000000000000..a9c1fbe9c8ce4022fa3760ff66dfd6207fb46ef8 GIT binary patch literal 1470 zcmbu8TS!z<6o%K@3E4$b3errFa6r(BaU9dAhqT&RUMtPaE{-#!b98R%@tRseK|w)5 zL4iR*K|z6%K|zs~K|v1@Jy`Y-~HplS#ygSg}~di)A8FtQ4stO{9xVVH44NoGZie zpX=wU9W9n83dDST#mP1HZ5WDxvKGw}%CflESweP;yO0*bRR}hLji3_bgA$PC$B;WS zIFz!fAxtrTs6&_+P_o1#nPpl#Y&LL!9IyuDf;_Mm`D(*rpf*(-R)C!V4af{&h0doq z)tk|5NmyW`X^+Y_LaK}*R4qfOQy4;3H3V97LAQZcpw?F42hWJlOt2=dPO^>F#yAJ- zCmOzZ2O3{DJ@CEp4+owE`$8klBP}DX2lU5nL+uYc9(CU8`qusR;QOA@-u}Kx6xjpN zzT6MefVu{C1hgVI0|~YO99M1yxPFP(AknkLkz^?-1La^l*a6U-MB`G`-36+^Zcq)d zpLBvcfCEW4@PK;I0K7m0ji3qOHOT-7f)Hp1EdZAwb$|ZHzQh8f-)xEeES52*;prD|j zpunJ@prAm>prA-=g@S?tAM6G}5j_N5AAE@He~!DMW$i-?zcc?iGiSb;@9ejP%V{aa zk)3OW%WZQyea1jqtE7X7y~H{E{D6$mlCl1TA;+cEiZh^jD7cC zV&NQLgm^eFvhDh#QtynN1AK^&@G(BYr}zvH@Oi$-m-#9W@-W}z+dRTSe!!3T36Jvx zzvS2amf!OS{>0ySlD{*FC=o3dia4=YB#2~@B2q<~$PgxB6*(eT~A3I%J`HEtEWcy*)Q<6j>X%1NnY$mXREU*S-gB-9H`KpOxpc+w4 zRDueCrer!WLg!Pg>Q@g?5*B#S^p48bAyq~TRZ9ysnHH+57HF*j+7G-yovp-2pB|SH zZ%kN~XnIi_RX5Z$+5EX>u=QEn-S+2>5$Bkz-yQ4-dV=1)zWe^+&e6cVuIt@jd%o;@ z(>u{O(EkHPb^)|6_kdKOUV|C|t;mf)f=vM9$|8U(k+>R(o+U<-rJxLygRNj2Kywm} zOI5cD>;TnZC&2S$9l#Yy3?v(Y4K#sf&;snB6|@0dk#qtVaDxuu0eA`02k=5Nls9HKcw5z{J(c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/opennt-25-w-vt b/usr/share/terminfo/o/opennt-25-w-vt new file mode 100644 index 0000000000000000000000000000000000000000..c65a8188ef07c29f5225d52c956e055111bafa9b GIT binary patch literal 1498 zcmbu8TS$~q5XWauLM91HJ!l$9xg_Y8u4@|kpk*g5wTot!l=sW3dvW*ERZ}Z4C@3f> zC@?4}C@4@eC@9iep`f6^2fIN~L=QpN2OlE)pR>E6X6{1^zcc?iGiSb;@9ejXD``1J zk&UZ_(^cy(6Ar`=U;BzSE` z6LhQ7O~f?qH^U+Br*Mj;sX2b(ltT*;Ard+sMvEv?t7uwDiBL(}OQBSY#B3;*Cr{>dc5M7UTiqQp`WBjQDZNEAsTMWhO=$P(EiN92jnJ52Uj zj4HKXLwmHfl6^*g`r#dj_<~VCYF zr7?O0|4H!79OLNFGo2r&*Rb#D6HO9x6ffb~`xAoxO4uY`&8b0u?H~I>r%Z^u{*epq z@rKEV_Jy}ye^u(85jn_*`6wUflYE-b@&I4pOMHc|@gNWLExyAe9N>rin4j`EPw*># z!|(V5f8@{nohSJRlZX(JVzG!3OGTVW5Q!pLq=+-77Ot&j<3zwf@LdE)?hWbOopahgDb<(R76n-6@fyq5$pg3pcI(wSUj)|u-VGd zi&-h7S~42qYkkqvwUw_Z!AEugb_2yr6q2T(&4A4WW{?HefozZi)?>eFq6DZ$R1;O8 z5}+xW3euqqC|dQa2Ph2*JZL(icI%WXqlK!ag_=wYRaFbL)(Gtb9-z)v;iFHDNsCR7 zTeHmgvM!>2sClyGOY30U^Y(kT7xodyn6uv%=m@w2o_*d2zTwVM|NX8T-QRk??tj}m z(Kpcl6Ge6dv@iF9WT0My8Ud}yO+bRp0OQJHfGd%>8i}4IMv`Tq98`d9U^_r_5{*k$ zw;JpOHDDLO^JG216-f*vn}7v0gBH*Vte_3F16+}G04H#P4&VlO3DOJjLS!fKgD%hw RdN32t)n@89r<6IUegSw`c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/opennt-35-nti b/usr/share/terminfo/o/opennt-35-nti new file mode 100644 index 0000000000000000000000000000000000000000..1544b68f31cd46607720c4af53c481c52013e2be GIT binary patch literal 1454 zcmbu8TS!z<6o%K@2~8JCDabNG$^k(qMjg|rhqT&SUMsE4E{-#!GdefN<2AK{f`WpA zf&zntf`S4igMuQf2?~0M=)tmwARl@t=tlSu*}soxM9rLs4t#t4d#$zCUVEQ&R&oI) zQ5<==SOkJDzhARtWn283r^~N70{-TJ*A;P;AzWHv(Oe6N5714W~E5r7m>*uN+ zEtV_t#e96liPf3gF%$u1%^q_w!|dE(4rZF2g|rZ^La+sF29+QWlz2J1i$$OY?>uQn_OYE!jg1=t19fJ_4x=sb#5z3I)C zLKfD$(2Cp&Bq#tluG|K2{SvQ1qGyRC$x=`T%E1n>6QDVX#-*ye8|(plK^4G$(hh0? z4kVqx1?oUOa03r$0F3~zN%}zm1VIxB0bGLA04_wff;P|&IzT7Rgmu+f`pqe2Gt?jX CH_#LS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/opennt-35-w b/usr/share/terminfo/o/opennt-35-w new file mode 100644 index 0000000000000000000000000000000000000000..de7086a8645474ffa2def5655ede4bb22614c94b GIT binary patch literal 1468 zcmbu8TS$~a6vxk*giI2YdayK-bV<;ybzRfQ2Q8blyi}T5Qh8f-)xEg;t*fS1P*6}% zP*7k{P*6~yWKd9~rBF~%;Dg;DD58g;>w^!G{bzPJv`ioR;5X-g=FFV$oSE-i%6YVm zV#vYO!tJrUT!uL#(;Vn_8Fg-#&)sSdx}^w}l$#B^*QvsZb#AAp#&FcO+7kl~qX~Yi z+e^eW<(cLX_fRAy(c}zIB<0dPM2LirN6-R_)+&}(P%>1C_R`2gHm$Pts8Z!n-fulQ zSx6;Rru|CVqpgFSQ{usww_(N~nhn5qhI9`dq9b&SPS7bjL+9u`U8Ku&m98T`KsV_& z-KAj~rAP3eg!atPj-Gm^<74z1_C0-~31W`oMLd0dLdahZo5U+QHRP}UV_kSxI_5q9 zh=tb}bHu~z=C&PwW$KN| z|7^MEiWP|pF&|%Xe3f-GhAlu@lf&dmH`T8*d90@T0*b;^0mug%zz&cHib1*)gAcYA zHcL5ruqkCxgS9rk${!uft$alhezF6w>nUC$kxUO+D{Ka^flROlWPxn37VA|JML-pz ziYNzV07c1EV1~}4XjQLnpg1h>qTq~LtwSn}7Alt(sxvKARxMCk9kd_#fZAJ*pFTAv zE!G^jYKi4#bwtfT!$jkkrvB#VE%#bqIEP%L?q1JG+lY6>x6gRsA8a2E-0!&2`K{~g z{ZHzQh8f-b#Jb_u9{jwK|w)5 zL4iR*K|z6%K|zt$3IzoPKG+R{B6ou_RI2vU$wXGIvh}J;7HJvCKC zrBtE)YTB)>ot!iB(+_V)#2<rW_>V(p<`_qZp6dKKy@Gv5A8C@9V|WqI-k%imm&2~)Rh$;`*Zj6Ge9DZt=P$YN z9$$ofcwc1O^+%=N8Ic2gh>!3wKEbE>3=i;mzQ~vPDi887-{jjo!a;t(kN63X^8~-- z*Zh{>^9TOK-*}S0Gl?h>Ef$J6u~;OCB#|sqM5;&^CSeuXB3I;z0ui~#f9)vz&-4GP z9Vu5Vs>FQ!ixX=so3U&G${OqjkJ-?eWAIoEjfE70P$4J)8^Csu4@!X9iKPR!9yUuk zda){HQj4WNvBn=eU0eBzVti!#Vb@clL?LMoSqp3iu!2mm7G!~JunzlG6U9I^qME1# z6#z}iG+>0zr&!gm9-t&F@Sy34+O1Qnj25bv7HTprR8=j|S_8BnbO3d>5+8k9Tzb4Q zVf7Nzi`uBVp{B{^&n<(k&)V)fo;yceWA1)Wus!GvcI@@t_YZfD2JUrT@BZ5JW#60L ziN1mUA1Ja5pnbUqqyY6A)Cg!rZUho+0vJ~o0bGg1)kyR#F_J6=WuP2v1=|3clW1J3 zx>aBYs0KR$o+s-7u1I1a*$8Z)2{eNiU@CMf73q6fWz zLJ8#M5)ll!0|CvFW3>b{Z+Ad*1_LcYpF8R(N4TugqPfHViIh}l&>wPW-a4N(*nB=mS3EueT^CDLk2gG$$DnPerquJZIzmD(_= z)GVJQ73-b~!(T_g(@8o_XX!j$MEnw6p=)%5 zZqWeU!Tg@FM%A0`d7#IK=sD~w8lh48Oh0LS#wrs}tX%}VgqQMiW1ei-nUz!E-}jGL zG`BWJJen8Vy8f!0u~;OCWgD^p6|sAqE5rVu>*uN+ zE0!k;#C&|k$u+iZ7>a?iX0JJvWp=GMhiqn75iNwP2y6zMKo!Ubr69|XA$M}HD`izf zloI?;-6F9sp@T zU4uFTT9I3T1cd;{m0JO>U*a`L^ek~CSq92M1=tRD05m7jxKwp_f!$yas0P?iIzS!3 zfusw#K|N>y9^eIypb6kL$p8p~5NHNrfJ=}Xz=g;*&<;94C+NbNu&yRszd5DshWY~) C8nx@u|#1qB5K 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/opennt-w-vt b/usr/share/terminfo/o/opennt-w-vt new file mode 100644 index 0000000000000000000000000000000000000000..c65a8188ef07c29f5225d52c956e055111bafa9b GIT binary patch literal 1498 zcmbu8TS$~q5XWauLM91HJ!l$9xg_Y8u4@|kpk*g5wTot!l=sW3dvW*ERZ}Z4C@3f> zC@?4}C@4@eC@9iep`f6^2fIN~L=QpN2OlE)pR>E6X6{1^zcc?iGiSb;@9ejXD``1J zk&UZ_(^cy(6Ar`=U;BzSE` z6LhQ7O~f?qH^U+Br*Mj;sX2b(ltT*;Ard+sMvEv?t7uwDiBL(}OQBSY#B3;*Cr{>dc5M7UTiqQp`WBjQDZNEAsTMWhO=$P(EiN92jnJOw*=G+R?UCM+Xxen0q&5Uuyxj&w-M*XXu6f)HA%Fqg#OOW@;tuTZlWLV;4e;tvB zWt{u8WNBw)Ru<$5$;&BOl4oQ^R;4bUG^NGtjyx|f_RhW3<8GCI+E@NH|GJ!)OY*UN zLd9otRleR+{wP1mud-&^?Yh}C+vLBm7tGt{eRIKlWG_Fg@ zI$Dmh^8flWb&Fca>}tw6sQH}ZBHF6fqK)NZy%P0`OO1*bZFptqR45TkB9s_T`gcFc z>w-7xHViTzfJ_r9VuF|?(!>;zA+kg+fCJFuEX9*)=rQOFcaua4fx%8`&AWcf!$-r` zA*of`z_aVKtv?%c;qa{?p&^eUPDu9;^P$P62QjCh22l$a&v0{9axb>_DK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/origibmpc3 b/usr/share/terminfo/o/origibmpc3 new file mode 100644 index 0000000000000000000000000000000000000000..2afd3509b3ce8ec8ba52f6fae26a31db009d9ea6 GIT binary patch literal 564 zcmb1Q)MQX&U}l)iu!bSOC^Nkv*|-KoXC~!>n4V6)3IWav#ujEy!7d8P`FX|pIjIbc zj0_A6AdCdixFGoehX4O1ffxoDfcCJ1`P>Y03`#(j8kna6Bz3?nn9BeE4bb?e3{GGX zf2epoLk^k>gkBh{60eF{uxuk#O)He{#H$BpGHG-#!$bn6PGyizW{{5d24XKDR?So` zFjO^4u~scG0#Y78AtxaAVBi3f&Oq!4#OAp`!qD2hLOR;W+MoiRlM9kG085%fByn*- qMn?j%3lPH$4+gSB7_x3=@6WlFdm!&<;gOQVrCZ7lmLICv%m4uE&^=WE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/origpc3 b/usr/share/terminfo/o/origpc3 new file mode 100644 index 0000000000000000000000000000000000000000..2afd3509b3ce8ec8ba52f6fae26a31db009d9ea6 GIT binary patch literal 564 zcmb1Q)MQX&U}l)iu!bSOC^Nkv*|-KoXC~!>n4V6)3IWav#ujEy!7d8P`FX|pIjIbc zj0_A6AdCdixFGoehX4O1ffxoDfcCJ1`P>Y03`#(j8kna6Bz3?nn9BeE4bb?e3{GGX zf2epoLk^k>gkBh{60eF{uxuk#O)He{#H$BpGHG-#!$bn6PGyizW{{5d24XKDR?So` zFjO^4u~scG0#Y78AtxaAVBi3f&Oq!4#OAp`!qD2hLOR;W+MoiRlM9kG085%fByn*- qMn?j%3lPH$4+gSB7_x3=@6WlFdm!&<;gOQVrCZ7lmLICv%m4uE&^=WE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/os9LII b/usr/share/terminfo/o/os9LII new file mode 100644 index 0000000000000000000000000000000000000000..9d523da8889a08fc287f935a1b7386e4fdf0637f GIT binary patch literal 377 zcmaiwQA+|r6otRFEVHHO$cGutNzg)Fjam~SBxp%0NGO5`+4e0OK@b8T`sdqq+#d9$ z%gmW`58oY_Ir2_9VT%_MVjJ7e!p_1`6fMS+ua9p%v_sp`LAQR{(hpCe9wqbSQ%4ba z{9oQ91rAA5WG^d65#RX(8l2H2kgm&xXz21Qr)fIiI&-VZ8*aIC$$gfOd0r!y-0Md2 zw$ZQdTG#iCnPg|oE`GItUT+TAW}lpy2BxNKreR_;ZU5P7KMqjh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/osborne b/usr/share/terminfo/o/osborne new file mode 100644 index 0000000000000000000000000000000000000000..c0ea262d892b456ace9917baa451eb96ed4b9c49 GIT binary patch literal 430 zcmbu4%L>9U5JhiALDUZr2P6yAR;BnrK~O6QB8vE;plcrs!M38f^WSS4W6j`2r%;I%^=nGvsF;#K6kn{CQGOXuIFnyB|kdF`INh=Y$XQeph+lPw1voHvX) zw+#mtjXB~tnZ}$@OISU@3yV$Lm$-@E?dGdZH0!EapU&|= zZvOhS&zn-*qN^g=H?Ka>(h%A6w4$RpB10;GwA$OAI^%}aa%khS?r literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/osborne1 b/usr/share/terminfo/o/osborne1 new file mode 100644 index 0000000000000000000000000000000000000000..c0ea262d892b456ace9917baa451eb96ed4b9c49 GIT binary patch literal 430 zcmbu4%L>9U5JhiALDUZr2P6yAR;BnrK~O6QB8vE;plcrs!M38f^WSS4W6j`2r%;I%^=nGvsF;#K6kn{CQGOXuIFnyB|kdF`INh=Y$XQeph+lPw1voHvX) zw+#mtjXB~tnZ}$@OISU@3yV$Lm$-@E?dGdZH0!EapU&|= zZvOhS&zn-*qN^g=H?Ka>(h%A6w4$RpB10;GwA$OAI^%}aa%khS?r literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/osexec b/usr/share/terminfo/o/osexec new file mode 100644 index 0000000000000000000000000000000000000000..222300cc352899dbc21e8ae25af4939b83020b00 GIT binary patch literal 1081 zcmeH`O-lk%6o#K0L1hhX%L5_7WK@J2K|zsbTCFN6`k+N*1D2XoTFk;li--uMpFACh zQDzr}wd%lg-uK*(b1xTe+)OjaEFJSnqv?1~xqZ;QZam&QiEi=Kx_x%Q@O>B#@%<^q zC_jttP8iZW%m`yl1f3?CXF=UkP%UdtDH&FSI(pJtII_-0WNwQr`F>ptT!|Cav;L^> zUxfaWD|I(isNvGWqs>b=_ZsS3sPCah?=Tqu@oSw2bHD#CfBOO*{SOwhLL50p&XG;q zP20&t(q6R7wwvi$V$3kAKW7{{MM@xdNKK`R)R70NN?mf|rH~_}plf58tcA%b+e%*9 TQ3^^?*;V$GeXG|uty{hTa9%4A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/otek4112 b/usr/share/terminfo/o/otek4112 new file mode 100644 index 0000000000000000000000000000000000000000..ad6a782adb7adb8529611a5b7083505c9d51e25f GIT binary patch literal 381 zcmb1QbYNg&U}k7yP-Vz3NzFDfG&HKo2a&pYDK$_LV;IAvCL}exq$ocxvqAx=#z3Js zwJ0;SSV1E{CqSQW&oP`9|%~$B#8C@KRcMs2^Zmpvmo;S|MOyqKxCwF sh{N;^K3bW9oq?A@numdlfrEjYLE78VK-wqFK-$;c0K_o_atwiT0L|_WZvX%Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/otek4113 b/usr/share/terminfo/o/otek4113 new file mode 100644 index 0000000000000000000000000000000000000000..ad6a782adb7adb8529611a5b7083505c9d51e25f GIT binary patch literal 381 zcmb1QbYNg&U}k7yP-Vz3NzFDfG&HKo2a&pYDK$_LV;IAvCL}exq$ocxvqAx=#z3Js zwJ0;SSV1E{CqSQW&oP`9|%~$B#8C@KRcMs2^Zmpvmo;S|MOyqKxCwF sh{N;^K3bW9oq?A@numdlfrEjYLE78VK-wqFK-$;c0K_o_atwiT0L|_WZvX%Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/otek4114 b/usr/share/terminfo/o/otek4114 new file mode 100644 index 0000000000000000000000000000000000000000..ad6a782adb7adb8529611a5b7083505c9d51e25f GIT binary patch literal 381 zcmb1QbYNg&U}k7yP-Vz3NzFDfG&HKo2a&pYDK$_LV;IAvCL}exq$ocxvqAx=#z3Js zwJ0;SSV1E{CqSQW&oP`9|%~$B#8C@KRcMs2^Zmpvmo;S|MOyqKxCwF sh{N;^K3bW9oq?A@numdlfrEjYLE78VK-wqFK-$;c0K_o_atwiT0L|_WZvX%Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/otek4115 b/usr/share/terminfo/o/otek4115 new file mode 100644 index 0000000000000000000000000000000000000000..d8ceb0f9ae1fd8e646a313c1c8c1376eaa5fd84c GIT binary patch literal 693 zcmbtSK}!Nr5S~XJ3Osm_pk9;)uks-4vke6^bBhvP#X||T9Wr)7aZAyqBD{3yM|9}Y zp+mp0+xETP^-@9y2flBKK~o5ooILULRpuccOYF6Fk@zTi0+0B z(_^9G-R{U2c{0T~GlOT&j|xR%*|^p*HSz hMvmrnZpV(NJ$N#k#WoW^i60U#5pU2k3K$WvOF!0tLnHtI literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/o/owl b/usr/share/terminfo/o/owl new file mode 100644 index 0000000000000000000000000000000000000000..d8c6ccac52da1a834abb739587bfff0037f1c357 GIT binary patch literal 546 zcmb1Qlx0w3U}k7#IK+@&o>NnhYG`C&P!o_^l%1KU;F^=0TBHCHVPIfnfC4xJCV-$B z83Gvo|Caz_1_mY|$-=Dvh~Gf4X}Nc+GP!Dyh;ATJ;W e8WrRO#6Y8iT!7dWh~0qL9f&=E*b`*AAp-yuB#3wK&KI*05E6ky;>eH!f{P&HD6xo%6$}#j z017%98X8(E8fa1>BpO7K0wD@23PeRkMMbl`89QdV!6Qi=$_odjP|88;mzFKZVSv0*oL zAr?|Z{WL&>$ep1HD$y0X20cTw;5lG{ZqqWX_xEU3toM&#pU_i!M$hR5^h=4qqSv%3 z>Mi)4DDSsmKLMZH{+G7({wsZ>AM}%c(Qo>Lj=NO1I;gnPVPWt4+V*(ca_(QNA9<}# zt4#KtSL5m`RHc2YsuopUt-yOMkvD2ny;mR9N42Gn1>Q$NKluM%gFza&U?jK{l!EDC zCI~AxXb<&JSkX1zFuLk=!|JNm_YsO0s2gSixO`&Rb+oG8&<5OE%JQLKm%orT?(U% z@Fr1~`@H}d^AK!>jb&|O;Y2tU&V+}A3(Pjh%#RoYTCMl+yQCF1t18O} zGI(wvr_b@FjaaYirpvTr-$EuWnLws3nTIsm)p^H|ZlbW&daac!=;i@E->V&kMcUV? dru7CKD`T`WMk`~qc^RFI(aIQO8GDSe{{?_h)ad{K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p12-m b/usr/share/terminfo/p/p12-m new file mode 100644 index 0000000000000000000000000000000000000000..c4dd32141f0efc92e1692a94f55bacf68d0db902 GIT binary patch literal 666 zcma)3%SyvQ6g@Gb;-lh9X^dpy(1jFDtksgLtyUM?cbJfx(8?x5kR8>l8-6&JY5Q;QHqA0$@M+jkk3*I6!MJT&a zcA#wWOzT<>-9l!uOpLAao?xCeS)DZ!*KCHFJZEsLCp$jDz0t7?qTI2I+%C23DL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p12-m-w b/usr/share/terminfo/p/p12-m-w new file mode 100644 index 0000000000000000000000000000000000000000..7a52b60953882f736415e566f6ce9e89185adb14 GIT binary patch literal 694 zcma)3T}uK%6g}HUMW6IkxCt9L_z+9&YL;jpmVuZXOP_>6nJXx`x|9-;5kU{pYp=Zq zLC|~jZ~FKh+nv#jdZ}T~J?Gqe=k6@ylh!bT9$X_JxksgAM>jM_J88Hrwunt_r(q_S zRg2d(-B3#vmHUEIFXw8dYDLXeY*h~#YQ9>oI~CQb+671wnoIDvxq|175+s7>r6>X& zLU*DMgBT_~1`U(Y5hfi$lwyo9hXhuLJufYy=b6M7VFTOP6}i1uWgmw^6(|;ks^gUS zTxdSyuXXY7&fk+RaYJWs33tC{+~Wa{KXOmxo(V6l?6}m80rUsr#?(BNRVZmFSyp1M z&g_G48Dp-&>=b$-!T(P0=YK^PeAHkOO!(jYACQ+ICm^RFC&jiPtF28{B^%d`B9GxB znMFc|21&%?YkZIp=9l0tB9no#1!WV;I?psOXVYC|7F-On1>WO^ScBErS@@hyuo%x7 i-0G3G4|8v{?X)Pj?F_fGO`GS(qpUW_3PUVL|AtQ<1}63Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p12-w b/usr/share/terminfo/p/p12-w new file mode 100644 index 0000000000000000000000000000000000000000..2fe870dbc535c37e247b6f7213e7d89ec4e3879e GIT binary patch literal 1140 zcmd5)J8u&~5S~3y2#^p7Ara*$PAF?3L4Z_xQL=LO zPzecpX#hT#JUUJ(I*r&Fnx`^dqDAn_bQM^Gtk7+0LtDE>>!PiF1ieL1=qWv;ZSWW3 ze@UJ=r{erdk55zI;=(&cRD6$t=H4zJG>ssH1D_Ef+sCmfT_>`ZX?x$Vr)1;zA2jD6} zrotxwA)s#pXCUVx6-XJPH;(`_5x{4Vq`>G6@Ekh?LT2)wC6IJ90>rg$)kxSN&ex=3 zwDC>T^=6sKT?=T=uf72B{fAs5=o{vKAQ%c}1apFU!AVAwX5>+dkYs>io=zUbg9s__ z5bh+Ng&o3m;^AT;yn+TKWXLeco^Nol25YxT^g5>{pQX<9f$W&Or1d$jj04@(okC6* z*fyYHLPO9@LbIU0E<~J>*ByLSqxD7-o79~{dU-?_$Su+SemAW*VHnw!kzEB#3wK&KI*05E6ky;>eH!f{P&HD6xo%6$}#j z017%98X8(E8fa1>BpO7K0wD@23PeRkMMbl`89Q2qqbL^B!qS~EkWNLamsxMdPNhu=yb`pF=W!!X>ysTYR#D?9} zg;+=t_0s?iB6o%+s6L&@UzaieA&E zsJGyEqP*XN{RDh&`(N7D`>*tke$Y?)MZf6}I_^^4>Y(CEhlRcGYun>(%ejB8e&n?} ztuonnUX81(P?h$ns#;WawF2+4MBb=P^VMW(;!|1Bh4XdkK-$y83pl+B6;PQ!KlRMklcC#Z}CyKNmp&~GxEb$)# zb`d-Zi~wbz1n7-J;Is}hOtLAqdJQ_`fKb9p`ne8~tM`I&ZCJ6Aw#f4}0}Yfhb}5W5 z!ka`{?)L&<%tNphHkP%Cg%jaaI1?TcE->31Ge2SsXtmzM?~+#d2_j0{f-6a6a$E2@ ziSS_&{P-G>Fr`c~;ai-XgSX=iJn^tna3*s$b#d$x$O&{pqmHue6MyC7HMCn dn${a|tc=mh7_E%a=4Es;Mk`~CW$ZD={uiTW)bRiS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p14-m b/usr/share/terminfo/p/p14-m new file mode 100644 index 0000000000000000000000000000000000000000..39dd310720abf005cd3c3561b386b426fbb3a3a4 GIT binary patch literal 666 zcma)3%SyvQ6g@Gb;-lh9X^dpy(1jFDjMdVrtyUM?W&f0)shu3_^nXK`*7g zp$}1Nun88_cl8tU8sseGJmj3%He{{6sj8IHx>2T(ArxtZL{WT)j}XH87Q97dicof; z>_FM#nbx%&x`oVQnHXE;J;6L{vN~&+*KCHRc+TKfPjtM=z0t7?qTI2I+%C23DLV-np4D!_pcC(S;j?B=4kf>guNEYG+li!8Wm_?NqI$ zMb+kYO*hp-QRP18R*tjfLaC@`i;k*C4E3mVTycx4TXJ%cB-EGSmbr%S4-q7S@24mN zZ9=!B2LTL_9)X5&=rBo7Axbeum_-uH#J;~GqVHS8HemzX*cG|GMr9v|Lggstg{t73 zxF$58@z=Wicjxa(SGc9KcZB<2Gam4Wrysdzaxa9}Ms`%{L?3!Xabsc*$|{rd5@ zp3an_o j!L2^k^d|R4(@u(V(@t|cQ@2O_c$Ad`EZ5Is^l$hAGPEZC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p14-w b/usr/share/terminfo/p/p14-w new file mode 100644 index 0000000000000000000000000000000000000000..1d7df53b710aff295e42eeca63d45879279a70fe GIT binary patch literal 1140 zcmd5)J8u&~5S~3y2#^p7Ara*$PAF?3L4414Q=fjt&6ty5%d;4p{MkWw!vSB z|0TVqcfvjZKMJ$<6ZB`um!AE#r>*@)Kj>aZGB-07I0wO&t;_cX_L zJ0}o7sX}#D@@CaVwFGv(S9MFZ)T+7<>#=yY)pPYqy-{z~do}1-d(asM{@-WJ@tl-% z$}vvfnRbefTfIX2XqeopZs^$8^@5I#u4{c4u3&|RpynZS<5PZmx}SEfPm_ug9e}F@ znF^cyhk(8boPnH&R3K%D-aG=#L;#;bk^-YQz;o;n2${)ymO#?c2oTr0RU=`8IA4>B z(Z)AT*PCS`cP*efzxo2i_aAbNpl_J_fnX?@5zGnZ1t%Fznvq8-LXrW7c{+Iz4E#h!Ah$&O``xtOgkfY?Ms{UnS0*d_ OkzEf>*q?@Ym!2;X6KL z^(Ves_W2f@=>-=+Kez&hl$@&At#-wsM3tPYPQh8wC$`G!I5-E+fEB^k!8M!LH9R&6 zE`rlw4qO5^z&w~{)eWx71e;fNx<#UBBAV@h0dN=G1B2iuxCL$-LpU!dL^7o~PUA6@ zlUgw@K9I}k22-rK8JcK%D6`DMk#wfRS|X8(rK6dnG=d!7#$E{bO*amt0t;pG8- E0l_R3)&Kwi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p4 b/usr/share/terminfo/p/p4 new file mode 100644 index 0000000000000000000000000000000000000000..1d53e488c16eac6171ad331aeba03638332c7940 GIT binary patch literal 743 zcmbtST}uK%6g|_1iKZDnR4#%=7a@t%woL3hAEXGDs9&&11PM#|=I*=D&x;5mh_WCE zf*=Tj*zSyzU=jokbLZZ3?#%sSl426$2&08_;hr9!)h*ApJlpd2D%)vW5_1-WKxZl4 z1vY|Uf<>?dL6uKnK-q(cB92kEPjG=tT;ZDS8{G1Fr)~s6Tj?i_o>{-Jyy6Y-iu=%> zPe91{hB~FyS)m{JoA1}*Ki}+s`x_GxF_GwrJH{x@GOgK`7(xugGb@GM8q8goJ4le5 zr)ECq(>$vspJuy6ow8&*w9b6drz3|}*(zzvlf)Ex)L>F^S#qek>{Cs8%H$v_BW2PV z4&!i|0$=P&qly2fi9jIr!2cz6j}VebwNsBUwqR_+sKThIZNo_G&E7CSF%MxLz})XC z6A>7c*~oCyT)Vr_>Cf`Hg|g%ds$HIv#+Jl|E?m^p(B7hiJP`@y9NiK%;#3=>KxZl4 z1vY|Uf<>?dL6uKnK-q(cB92kEPjG=tT;ZDS8{G1Fr)~s6Tj?i_o>{-Jyy6Y-iu=%> zPe91{hB~FyS)m{JoA1}*Ki}+s`x_GxF_GwrJH{x@GOgK`7(xugGb{P*8q8goJ4le5 zqh>Da(*mm{pJuy6o#x1PXr1|@Pe%@|vQ^TSCy6QYsKKP-=E$MuvQIVXDU*Y!jFd@d zIE=$-@_ex;jVAt^CIW%f1OJ!QJwiw#)lNOa*n+VMqY9&z0$%&}@#DCL?gQ`+Rb&E7y02Sz(gDK?3J;0o8j_SLVwVI@q}SBzp36QwP;x&v_xaRhNmJ&I}+dK9@7 z`WS-+=aawRdB+F}a6X(b*!!^eVEeFJ#sb*I)VP}C7SVw?hiG%ZP318&4Z$`v7f2S7& z|3sYKhE#=u%g)UC&g{+xlGkQ2jS;-y3*lXGe{IL19eZ}X*Vrz2(kR)`G<27$8F)yN z84isjNnFmrfYO5)Lk?4{=TO2TOq5wyQ045X6G^hBYCWYLu5v;X`#4ZuEA1TPM5$BG zoz#=>UHs6J`>){NC;QL%+quFGZhy^ z4uux^E=Hljc;`Q1ykZD>7;nZ0^g8q{=q~hz+8*>my16UbHPgD}D;mTRL<{1uH`nKh zIu$pIv>~4imno)*9?FljK#ue*iDo6^vScg671hpgRifR+GkLvAQI5_h$>A@>Hx*75 AK>z>% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p8-w b/usr/share/terminfo/p/p8-w new file mode 100644 index 0000000000000000000000000000000000000000..8f254d3604fcd521d7b155ab6a90e2717ba6b1c8 GIT binary patch literal 614 zcma)(TT8=05QR^SsCcRPq%;Qd;LryNnr*Bpskd68Sd=Q2f<-7ag%(U3wNlXfrs(hV z@+kNZ;_f!IDimCHX3lqJcQ%l?!mx-byxJFK_*p;kUgy6b1by>ku9hhD$sY9$}d085om#95aYvf$L?MSc3(d>lD&FyYfUB zZpoUB=zv!-p@3tYNUs!i$~c$mg6C@FiTC^;TJY%A{`bkzGyZn2&_Vat+&fNBJf0)> z6O)+3>`I2MZ$m3UJA_uDCIuFG)uD7LVC3a74F&o;|3~^OCJ=}Irhh=qLfwO!hnkbS z2-S!-?`oBd#Tp{p4SrF9b_T5k?Q}TZ<8xI?>?UYOJRBscM;*GiA83_a;W2?$YQVN& aHoy(p9^j@xr;jypJx!e$)#u6O--~Y}J0CRw literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p8gl b/usr/share/terminfo/p/p8gl new file mode 100644 index 0000000000000000000000000000000000000000..aabd61376d58a5c96fc3950012d8646a36bc17e3 GIT binary patch literal 754 zcmcJN&r2IY6vsc?Ev*f%cqtS^aYYuPC^e}+R)WQ(>llAFAb7AKL=$CY-Gn6Vp_CFt z1P_HmK`019p&;VHg9i^Ddhq}7PuafR40x0tI?U(2@0<7L&A?2bF-;HM+;L0Y-3h+b z8-8;y7Ry^+EexwcFyhrd?gZtgU5Zm9u3ZjV)kauuRqaZ3+YkMgUkfn|IwST5C8Fqs zU5hP8h!J}Zpll1tX!>P#L_tN670 zF{fAOSt7neiB+*{th2!;+w2n3;1i$unpC!R{l4}G+8=VnH@@?OV}5eNDZi4;Z_aeZ z{h1G`^MBs)P{;q9zu=N9uDRh4PqE~$q!&pqkpAHKPCesPa!x(#REnhJ*`Ld!_F;F? zi&?J$F%Ay@#WA#=G->?C)nps{H5ca`%2&F2mPd9^qc-*;vUtj4lC|-RM5GBjz8J)T>IC`p{~^# zmCC*gYC>HDt8`9P)v~IqHAIgk^G0o{_v(ZCsJ7J!&$+2onimvHKsH;{tjIL^ZAE{`Gdf_HvS5A$F`E%WEH@mcbqDTjkD#AwN75+oO zF9XM51y~tYg6Yj8z@!cc8Dvvr^agm!34xfI%yS(iU+)LvTEAkXY*6QG1{-J-niW5| zglGzFdESe#FnkC!f}vp^MuM?mBA5z}2xg2X&&ZD$hqXuV<9Ep@`~)GT9m1U?Gqpqb zoMia05Pp0O7BeIaqVO#)E+E?V23Fj!WHwB#No*9^IJ9wQlhh6;HjRR5KD^G*{#I3{ z4@7t#Ag|B!rHx3pbknBVa%@23HjP1(HXQ~HwXO4x5#2;%qxD9+mg(jpz1XiU`9(U= d?WXl60wXdSk};X8I8yoiR=+%{|j^%)I9(I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p9-8 b/usr/share/terminfo/p/p9-8 new file mode 100644 index 0000000000000000000000000000000000000000..8191a9bd8dc3adefd3fecabeac8265090521e448 GIT binary patch literal 652 zcma)3O-sW-5PfSz#gB?7rE4Symx59>vDTJUZM8zt27+H86%nh_l<;VlTSvn|bfe>}11+*&HS@ggeYI|FT@GB%_I@FM}(Clif62X-AVr z`ND7$My2W%!5CUg<*slM1XBb?2!b3%pil9Bj39&w;?sy?0VZO^<497p39HCpi*gWb zs~7|hWjSvThd5H+al3MYGsTJ&ONv!dqkN^foblJX{Zqy}#3>^N8UH14(qABX45xWud!j_&Tr5W$&nABEBE~|1!u1J|^$#Z!;De56n92YkI6}|x( C?-<(v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/p9-8-w b/usr/share/terminfo/p/p9-8-w new file mode 100644 index 0000000000000000000000000000000000000000..93e3da9586201fa24c3c49dce55ead4037655fd6 GIT binary patch literal 694 zcma)3T}uK%6g}HUMIS~_MVl~zLk}Uf+h&SZS_V=YOP_>6AFiN~x|9-;5ZOJ`_ndR@ox8Klu(FClbm1BS#W^mXlp?`!@U-rDWC_}?XOfG| z62)MI70aGvVU{n|jt;8DN|_y$ZKh8dELSt={8!aBCFBXhgW${r4-%2O;zRl^x^ zLuxVOuXXY7&fk+RaYJWs33tC{+~Wa{KXOmxo(V6_?5NU-KJ*4+#^fBd6==)Qvb@M0 zo!k50GRhr;+bMKIf&ZP}&;N=J3{!(e$iV;R|A4vxH32mRH7U0Rl{Gh2wQNi`3L=^X zGI2th1}VhyYhsWTnJ*z)WF`%56WRu}HIeZyXVYC&J{BM2^P9KTfe-}+qN1XrqFKI~b7YGA09KxFzIpBJ%z0cHI!eRzo#veA zPGhx|Pu=T943&Ipu~#n6colZ1@?N9u`GN6jo#tAr?X^1fWm1X=zkdO?qAlDwMpn)q zDj{Jn4Z-J zFX=VC6ZQf4QJA%#pg%*t^zE;GZS6PuK|kpi{iZ*7?~oc%ht-(kPR9hT_4<0EuQ|5c zIf3{|6{@q6H>)nHC9v!Ls#~h9R@Hr2kHxdCo~u{tje4uzt6|65gH8hYf1h#3bCS*} z$2d7>+9^72^$P8y1i4k+(2=j}1sxe(*ZMA8!3vE)%|qrUru_8uAnn?K#uX(x09Oez z6*l<~0eurV133?=K*|ukc?6hg0el8Y3XI+W&$2@xWG3%f0!g<=3RK4;KsJ6*M3rLxw^2e1n5ESi4Q4*EuczEOn+2WXIektASyy_R9cI*f*=L)5`qe{S!=yW@BZ0wvusQc zA~-Pf-psr=huMrySZA3p9vCb< zU*Pq{iVgjC6g0O1@BZ{u-v8k}lW_IHeV~P0AVcH|nP?m9j_T-booc&ZQKX0T-S;Fx Z&X5t(MJ)1$+?3UAyh6@{q=^h@@C|0E0^5!we^(G7z_%2l6g4+-7*f@D|AW#_*qkgYo}=K_JEr zq!?wO^71&;DdG^vZRT*0Ng&hLsbuP-MwsO>Rxq+N@G?k8dq_tccmZi|AOn6EO)NnHVGK4M#4>@hm>58SiGhuQ5m*E)i^_GH@tc literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pc3 b/usr/share/terminfo/p/pc3 new file mode 100644 index 0000000000000000000000000000000000000000..08460b72fd4bf74e3189f8b3d806ee8f5d125ce8 GIT binary patch literal 1286 zcmb1Qlx0w35MZcfoWodmpOebKz{mi`APNSM z*$z@!O- z6@xvP1v1nH$ns?HV+aP)5e#uq@ic}kxC)rnc|egOB+(KiHcSnIu3)GE$~Q2yFmy2V zFie1|oq|`-|Nk?<^0OJ1fa$di+Zgr(StoGlx(F1%!f+i(-UO>KVno=F%re0tj;v;s z4GV$d0Sv7g#x|mCpTIbck)45;K{}a1I@%kEy?|IXQ?XD|asskEz&z<_7a;8h z#O^@s3B(Y4ctI9}UE&L4fHZ+cd|(WaRk5t(9w|Cf9A9#{bW7R6@q5;4Dbkf}N`FG;kOr zO!A{?qH&x;mhu^#-SCT;YgI&}U2>{1H;8dm)6R>i)A?0g#|_-X?Ty;If9z>C@A3Hq zJmUNqFR)7VZj-L}~gK1MoD8YhKwy5(TL$z%kwiJgfEWGg$ehk-7bf@<=$3N{r+?SL?gPDvFXua^pB8`4ek(nhTf4AY{#<$K zzV%l8#>GapQ9BpBnSXxi)xzt=XG=dWf4}mz{%QH)$}hTS(zFa-Ns@0YmtwRiT&!H# EI=H_)ssI20 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pc3r b/usr/share/terminfo/p/pc3r new file mode 100644 index 0000000000000000000000000000000000000000..0cb4322ea844d6ea0ac6b122ae7bf194e4c81c68 GIT binary patch literal 1510 zcmcJOJ4_Q$6o$_|A&43uQBk465Rx*O0Hvjr*r2>Y-VZ@(6@gNu^htSRgNlkuqCpdl z??eX&2L}fS2L}fS2L=WP1_lRB9E@==(Lw#sZ7FC-l);;P_x$JF^SHfjQ&l;o(RT8v zX?6tzgJx?u5^`C>5l^>Y+h{P$8}t-pg(DSVx4WdJEM1~OpF4dtCwh?X8V`GXK97r( zA|gSrxX>}xNJ*4JKi61ER7A-rNuWf1o+taj?q z$`$jy6oMKCld;HD%trHNpQahauEpZBus7m4x9BcCq{sAxp3*aVPA}*sy`tARe*@mq z9L>ja7veQ5omZIzrKwDnqgLmLF3^!;Ri+wLvuaZg?ce(???K#q z1T`1;{_GX?=l^oPcGdc$3u;j$tzN7&$W&<5H<24|JQSq)PI z#2P)uP_D73b4A*XA+xck3V{+(g};iyS!gQ7E)QU0a(tdegm+ z!IOwk1ZvUp46L-T18txlGyrMZ1e!q$I09OMT&EV4fl6=~EMKP_S`U(9Eu^a!GC~WP ztA#YxLb_=oEwzw-TF6i>X0(fAffJK? zkk)9_3Mo$%_446C`e`Ftl~dN<>=e`0&V;Vn-ur#mJ<0tSz2|*X{tJPbfwM!?!D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pc3r-m b/usr/share/terminfo/p/pc3r-m new file mode 100644 index 0000000000000000000000000000000000000000..e5cab4c9851f3866c647d13c1f8af5c88260bfff GIT binary patch literal 1524 zcmcJOOGuPa6vxj!h*{Bt%1Q@g5JoCc#~H_w1}op@D<5g06ixw?fv}nA>4}SOj&-327-#4kMnbK%8 zdDJw!f`LJcEu86}47sdgJl+1N3I>9c(QKwS=*gE{S=j9^YAi8IIOua5N3$i988*7c z!ycc{<1+5{qiqiU84@1+n8(*(SkSY(zi$5gZ<61hq@5V;kL&cWV^SKOof^nf1H zJUynT^o*X<3wlYfkbe!{&|7*Jt9>8uS)9AnenkE=eWRbmYQ5T~(o}}ZR{3gaRU}fV zBbBN~wJ4|RP%iDyFR6PJ_nts~hjm-pE^c zJE!t4PUj5X%UNvUJl@CqxrocSl54qvo4JkKxtn{rp937`5uV^FUj6PX=~!4v(SNFu zZ`$B&qcyaF49*IJvl6BXh&6dkp&V0B=O5`Xg)F9?3IvKk1^y}qXMwpGt57Ijj;K0N z18jaQIkH&I4sGq?=p|Q_-k=3SoJ9^oS7Y`mSlOorG=o}j7|8T`&;T025zqwWT-Bfi zl!HTH@m!_QdNXO(LZ)gVTWBHsY9T|lkZD@TNG)WZ7P6@p@~g*ic!P@!`4WuYS`QiQ z@D|T!HXV@aA&13bH#x+yz{!nDD`YI13u%i+ZIE(pQ7;c3q@UJeYAI#z%t|p|=}hRl z)_b?_x+l5+oOi}I?LQm1G;n(8{P66^#nB66XU1<&%uU@yLmMaqM}b^-E093`dpcXo~h%`%=bd)63ij;yif~8g3p)PiCXuQN5fl}zu!9fQXad2>O zaBy&NaBy&NaBvVr@E;xD?<9tn4jy=(@0RbJWQ+`Q7{>*E5Vi|>+YXProqoBQYi6a& zN(mSkIU_Bj0j1^$Fh);c8Z($>rj&_!xG12=ssxW-CpE~1oGonYY=`zqfKzmIr>Ct{ zA7^nEZ76k)OLndXy4Oj5gInC;9uIiL6Q1#c*Le08$M-mXBs+ii4#&@b=EGk{)tBD+ z#w5}(Tlsy;t(vV0qg@kKDJ!r-$8!Cm6}k*ETqP1q9;PHX9xarK(-3V^izkwaT+y;< tDba#tgE%W}I2-y(zEE$IF7e4O*(3bL`T+^ZAvxm88i^iHr;vhK!7oyy^(X)U literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pc7300 b/usr/share/terminfo/p/pc7300 new file mode 100644 index 0000000000000000000000000000000000000000..b41843d6a40a7d583c1dab1a8ab7da28442fbab6 GIT binary patch literal 1011 zcmaKpZ)lBC9LImZmc~kZfx`9TzPZ$1tmod1u|>Pv%r^I)bFs_*ByGFH#kR{fHm)Rj zK~Y3e6h%=KMNt$*Q4~ceilQjxt#^;lIon=gPknyh@9&)Fobx@;vrw1HJSmZP@WvqNtBc9@#qH6oY3+z+8l&lq}9n-)>|>(PwNl=%#o z$P5X2N~K)pdbdC-q*4;HoUT^tsZG!#DL)&A8OeIrMco29$;+T08TK^{56GcOcVtqJ z%Sqg6I0NV40$h?S)N61#y(zr%FTPe1=letT6d z(>WT3i{SrHOqWbMKe4jnAMaFZLYHZ+uF?i=X1-O^x=ypWPTj0M+OK&X(A_$!<9bjJ zGkz3~=?OiBp4IbuQ7`LNy{MgMMJnZiDTRhaJ2_GUK!fvak_cHkaDv zgVl(?Q+mp{Nk5XBGH$saacjLvN|{95iY`v*JCWEhH3+&FEISdZW-64PiB}IoHz};SKr`nvdF6j1c3^6jjy6sQ5+2ggUO>tlh(WY!rfPwqYKpaLfsty82T;HXh(WXq5IY00 zBM=7wu`duC8s!2>QxIVYA}m0JIh-&7OBjGi18YMt4Pt|^4=~$dGn)&lR@ENlj1p^e zRcjE_2*@;nFpUwSCP1bsMAQt(G=wnCflLbs(-I_Vq-qVc(Sw1LL0dpaP**}v(%^Oi zOX9|~AL$=6He}t*-k)4TP=E~1ipQ<0%+^C&X X_YdeYV{>a0us4jsfdul136uo@;gk@- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcansi-25 b/usr/share/terminfo/p/pcansi-25 new file mode 100644 index 0000000000000000000000000000000000000000..50440accd578cfbc03bc7c1979af64ebb15ebee4 GIT binary patch literal 1204 zcmb1Qv|>B|tsE4b7 zS=|g2X-5+6L}J6#An0DO>_n)VsZe?*UOfoiq_E}!&79Bh6-fTTVfrr|;-uIza@1Nf z4xC?|7=0L}qoWwufvH(K+Bh9Zct}Tk0V!`F2GOdSss)CsDb}h5Mye?uKmjKp2GK4+ z>k5t(9w|Cf9A9#{bW7R6@}y?~TA5QAvdOw|HI)f8*h0wdKF51@b(5QAtJAa({~ zM<5OWVqYLOG|B~%rXa!)L|A|bb2woFmM{R32G)jP8pH-+A7F%GGn)&lR@ENlj1p^e zRcjE_2*@;nFpUwSCP1bsMAQt(G=wnCflLbs(-I_Vq-qVc(Sw1LL0dpaP**}v(%^Oi zOX9|~AL$=6He}t*-k)4TP=E~1ipQ<0%+^C&X H_m2SpSbkTP literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcansi-33 b/usr/share/terminfo/p/pcansi-33 new file mode 100644 index 0000000000000000000000000000000000000000..77ec07a919bdc8c2553d752f939c2a65198964b1 GIT binary patch literal 1204 zcmb1Qv|>B|tsE4b7 zS=|g2X-5+6L}J6#An0DO>_n)VsZe?*UOfoiq_E}!&79Bh6-fTTVfrr|;-uIza@1Nf z4xC?|7=0L}qoWwufvH(K+Bh9Zct}Tk0V!`F2GOdSss)CsDb}h5Mye?uKmjKp2GK4+ z>k5t(9w|Cf9A9#{bW7R6@vh6k%at zWBC7{gMpVpgh2wx`u|^sL6^Z0$T9`}y?~TA5QAvdOw|HI)f8*h0wdKF51@b(5QAtJAa({~ zM<5OWVqYLOG|B~%rXa!)L|A|bb2woFmM{R32G)jP8pH-+A7F%GGn)&lR@ENlj1p^e zRcjE_2*@;nFpUwSCP1bsMAQt(G=wnCflLbs(-I_Vq-qVc(Sw1LL0dpaP**}v(%^Oi zOX9|~AL$=6He}t*-k)4TP=E~1ipQ<0%+^C&X H_m2SpV_H|5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcansi-43 b/usr/share/terminfo/p/pcansi-43 new file mode 100644 index 0000000000000000000000000000000000000000..4399ed8a96e20baa407a7bda3614d6ca9e0a0e63 GIT binary patch literal 1204 zcmb1Qv|>B|tsE4b7 zS=|g2X-5+6L}J6#An0DO>_n)VsZe?*UOfoiq_E}!&79Bh6-fTTVfrr|;-uIza@1Nf z4xC?|7=0L}qoWwufvH(K+Bh9Zct}Tk0V!`F2GOdSss)CsDb}h5Mye?uKmjKp2GK4+ z>k5t(9w|Cf9A9#{bW7R6@vm6k%at zWBC7{gMpVpgh2wx`u|^sL6^Z0$T9`}y?~TA5QAvdOw|HI)f8*h0wdKF51@b(5QAtJAa({~ zM<5OWVqYLOG|B~%rXa!)L|A|bb2woFmM{R32G)jP8pH-+A7F%GGn)&lR@ENlj1p^e zRcjE_2*@;nFpUwSCP1bsMAQt(G=wnCflLbs(-I_Vq-qVc(Sw1LL0dpaP**}v(%^Oi zOX9|~AL$=6He}t*-k)4TP=E~1ipQ<0%+^C&X H_m2SpCooph literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcansi-m b/usr/share/terminfo/p/pcansi-m new file mode 100644 index 0000000000000000000000000000000000000000..8be0ab6f54451f2304eaf37dee1f05901caf7022 GIT binary patch literal 741 zcmb1Q^kYzCU}l)iV98jJoS0Xfshe8^W8~-M*JLK;>J}s`l%y8rX67a4C=?XsrxzvW z7Aqv@BxVAI(iKYb6_QdF9Q}el6*O{zS`>2gQ&Ke<7#JB4fDxI45N2QuVBlbo01B`$ zurd7q&%waUAOht72Lc%eT?RuS%M{GB1d_Hu?8x8>=6f>uGlYOyAhnS|RvbezLk5t} zWhjPLJ9Z9qki49SKO!k6hCqmUsh0-(e>Os~|JbNzC%=rvof#eSy zrvGA)j*enr2ZoSzv~fC+@Q{x70#e>U45C#tRSOJNQ>;}Bj8s!RfC5fH45D3t*cpf& zfj9t&eSz4}C>KbYf(SzpVF4n{;e-iT!T>}XSQ~k5t(9w|Cf9A9#{bW7R6@J}s`l%y8rX67a4C=?XsrxzvW z7Aqv@BxVAI(iKYb6_QdF9Q}el6*O{zS`>2gQ&Ke<7#JB4fDxI45N2QuVBlbo01B`$ zurd7q&%waUAOht72Lc%eT?RuS%M{GB1d_Hu?8x8>=6f>uGlYOyAhnS|RvbezLk5t} zWhjPLJ9Z9qki49SKO!k6hCqmUsh0-(e>Os~|JbNzC%=rvof#eSy zrvGA)j*enr2ZoSzv~fC+@Q{x70#e>U45C#tRSOJNQ>;}Bj8s!RfC5fH45D3t*cpf& zfj9t&eSz4}C>KbYf(SzpVF4n{;e-iT!T>}XSQ~k5t(9w|Cf9A9#{bW7R6@B|tsE4b7 zS=|g2X-5+6L}J6#An0DO>_n)VsZe?*UOfoiq_E}!&79Bh6-fTTVfrr|;-uIza@1Nf z4xC?|7=0L}qoWwufvH(K+Bh9Zct}Tk0V!`F2GOdSss)CsDb}h5Mye?uKmjKp2GK4+ z>k5t(9w|Cf9A9#{bW7R6@}y?~TA5QAvdOw|HI)f8*h0wdKF51@b(5QAtJAa({~ zM<5OWVqYLOG|B~%rXa!)L|A|bb2woFmM{R32G)jP8pH-+A7F%GGn)&lR@ENlj1p^e zRcjE_2*@;nFpUwSCP1bsMAQt(G=wnCflLbs(-I_Vq-qVc(Sw1LL0dpaP**}v(%^Oi zOX9|~AL$=6He}t*-k)4TP=E~1ipQ<0%+^C&X H_m2SpSbkTP literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcansi33 b/usr/share/terminfo/p/pcansi33 new file mode 100644 index 0000000000000000000000000000000000000000..77ec07a919bdc8c2553d752f939c2a65198964b1 GIT binary patch literal 1204 zcmb1Qv|>B|tsE4b7 zS=|g2X-5+6L}J6#An0DO>_n)VsZe?*UOfoiq_E}!&79Bh6-fTTVfrr|;-uIza@1Nf z4xC?|7=0L}qoWwufvH(K+Bh9Zct}Tk0V!`F2GOdSss)CsDb}h5Mye?uKmjKp2GK4+ z>k5t(9w|Cf9A9#{bW7R6@vh6k%at zWBC7{gMpVpgh2wx`u|^sL6^Z0$T9`}y?~TA5QAvdOw|HI)f8*h0wdKF51@b(5QAtJAa({~ zM<5OWVqYLOG|B~%rXa!)L|A|bb2woFmM{R32G)jP8pH-+A7F%GGn)&lR@ENlj1p^e zRcjE_2*@;nFpUwSCP1bsMAQt(G=wnCflLbs(-I_Vq-qVc(Sw1LL0dpaP**}v(%^Oi zOX9|~AL$=6He}t*-k)4TP=E~1ipQ<0%+^C&X H_m2SpV_H|5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcansi43 b/usr/share/terminfo/p/pcansi43 new file mode 100644 index 0000000000000000000000000000000000000000..4399ed8a96e20baa407a7bda3614d6ca9e0a0e63 GIT binary patch literal 1204 zcmb1Qv|>B|tsE4b7 zS=|g2X-5+6L}J6#An0DO>_n)VsZe?*UOfoiq_E}!&79Bh6-fTTVfrr|;-uIza@1Nf z4xC?|7=0L}qoWwufvH(K+Bh9Zct}Tk0V!`F2GOdSss)CsDb}h5Mye?uKmjKp2GK4+ z>k5t(9w|Cf9A9#{bW7R6@3|_xM)(}d+pXBM$4q{d*8hG&Ft*A(`Io7&cX?p z5Kp9+NaS;+Ti$rCYp|y!*4={BLOwGNAoxcKM-@e-C}Pk6O;G;JXn;Oax{l?AyX4?`nZaW$bl zTP0oPX_cJ8f=MIvS@G+bZeUQ}CF+Btq`-*k_6+`Qm^{GLjd2AdhH(?D^8w6u7Qv}O zkQhI47zJH8$ySnPjplwoJj8}sMIeQ36Vr^gCT?@j4l-|NbQr^o5kegx ztWaBdMwM{xC^t*Jh$^C6Y8Y6r5AR53m#@+nmKBVwD(-s9?U75Whk!6w-LPT=e9UI}))HY;A3AZEXcX z5ClQ2tZeLU{1fNw>J{N2B33T<=FOWow{I6VVWg43Af}BE1h(zBXX{qiIaOfVR$$d# z&pmdXuG#cE=62w;^E*YeQZVW4`kn(A`csMP8x18^FoH>hAuxa;OmNB+B*BE7N=~_ABtBT#8?tV|D{LPpW-{r5$5ofe;f-{_xUEmT|%-6BWH(I$R-r*h( z%#VyGt@b;^GhTl5^!xum^J_h7~>E%>B=A}8%r`s$wr65+yS8^YGtN%hRQvr z62_E+FH+PBj2xrF*kq(z1ij%NNlKR+5UY`@e7dd7n&cyrjR^f;tztyf6m8}x8)5+> d1HmpgDPfe&mCT_=kC;@4=7D*oMwN8FjZf8uQtJQ! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pccon+colors b/usr/share/terminfo/p/pccon+colors new file mode 100644 index 0000000000000000000000000000000000000000..8a884fa8f8df4bc873f678ce85a50027dc796f4b GIT binary patch literal 873 zcmb1QG+>Zr5Man;lw~MLPR`HMPR`HCFDkBa^b7V>fUp(P@{1Jw3sUo(f?X5>oPnZw z#rZj@4EO*e!+)HBgTaA;36DHZjiVByA%G_Y7zQv+aWV)qNJpDkS{qyD0vX1t1%|3A JAeIS~1pt0_{6YW# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pccon+keys b/usr/share/terminfo/p/pccon+keys new file mode 100644 index 0000000000000000000000000000000000000000..75b7a4e80d5264e565cd919eee5eee93cd49d692 GIT binary patch literal 704 zcmb1QRAB&tXADOe3X+ra^R%;5D~oIV3sUo(f?X5>oE3olr2NF96cD4B;Xhpg1Jphy zAk7Z9o0~z9L7YLBL7735L7%~t!J5I5!JWYeC?5#Kp$t(B@ldtNa6NQ&HW8MkGvwfL zTOJ-cA`C}TQovBgP{Yu~(818hFoj_j!vcn73~LxRG3;R2$57889c^3(B%FZQ&=ABj z0+WVDAhsb`&d>zRHU*RBVA29iT7pO;0}u%o2J3MF^2|U&VD-*Gh9eLIHSjVB0U1VM tBaOgD8iADv%q$EyGU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pccon+sgr+acs b/usr/share/terminfo/p/pccon+sgr+acs new file mode 100644 index 0000000000000000000000000000000000000000..13e0b59f09bd404eb9e1aa36cc1b99ef952fb89f GIT binary patch literal 549 zcmb1Q^kM*kISkVo3X+ra^R$c8i?kDyi)(8LeD?2+UCpR}QFF(Ja mps=v0sJOVKq_niGth~IUqO!88s=B(Srna`OjzL<}fB^vQKWn`J literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pccon+sgr+acs0 b/usr/share/terminfo/p/pccon+sgr+acs0 new file mode 100644 index 0000000000000000000000000000000000000000..c137c1540d7b145069a175c5852b6022a925ffb9 GIT binary patch literal 511 zcmb1Q^kM*k$qda518d%hpq!wcXq6U|p`59lrJb#vqn)drr=4F{pj)V0q+1+cqFt(8rd_UGQB$d0 PrChC5qgbn4m(KtIlyX)t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pccon-m b/usr/share/terminfo/p/pccon-m new file mode 100644 index 0000000000000000000000000000000000000000..4a76bd3447cff606c76293a009a4bb46b2789c2c GIT binary patch literal 1298 zcmb7CJ!n%=6#nk5Xcej;3Z-vJhby)y0csTUnaRNNY-uLHSfV~2 zk@jwdqT2V{a1EX4!cD4fAwf7yF^We#9VbjPGg`A|kwXzHc!HD_-Lb-r^nJ;{!fo2fNtAXYAAb8^sSC;Ac%+%VxvBtOnuxC&f9@ELw@R3rBQP z?xQ%o2Dx*ea9E6phhj{;B))Y-S9xl?-ro_s%=hY@+PIG5e!B4*M#; ziv#gXNZBaQ$_uhZ2IM7qMQRz9$9ewvn(P0$UymG=Lvl)TIW+?Sg+@MHM+=X>HNZHO3xOE5_#%~-YK{plI zO46*+JRiVg8aSH-Mq%5AX+~QcZu86zF%L7kj8Vo8gF0xC+x$!~RT0x-ef6k)RP$-f zk(toBE5y8+J6$z0P$On59+_R3&{wBmMPa$HXlgbIs<`qZsuZ(T%ur1; zRk5s@b*K`#r6$P=6@%4}(-ILLZMhJl@=G5mX?=S zR#sQn*4Ed{<&BL^^J#I{{0(t81FOxLPj)onJQ2-?X*Nu=0h+zgY?x-l95&ctvmDkt stan)Nu-;)mor=xocF@hByOVxEG?F8Tt7I%_YbO+rxY3R=G9{V9Z+<#sJ^%m! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pccon0 b/usr/share/terminfo/p/pccon0 new file mode 100644 index 0000000000000000000000000000000000000000..e3553fbf74d37c40fd3e89f469c8b58e2dee703d GIT binary patch literal 1444 zcmb7DO-vI}5T3Uov67IWiN;V(+HCfqOHKE^LV+dFKTScv1`d)yRMG;imhRdX5Uu54 zym;{B$&)8fp7f#@y%1wO=!JtZF)deGx4!8pIcg7%{a@&1vi^Z zmjDF+Xv5V&Q4fj~c;E!o{;@m|0Sz;N*a63&2mD~L@-z&=FtP}HF~sv|<1ocOwVG}+ z@-D$VEWi@RoJPC^8!ZY_ZDQnZBYF?_`%T3IcnFW+F+72%@C;tSE7*c}@B#DNXdmG- zd~IlVnl;pM@A`)MAMgum;1RXj5z!-b+4!zG44N$gdE99$%zTr#E7aQ#Lz5@m}Imhaf@?ShSOqApDERny=d0B;z)n58B`W0X>^ zGAc&d4jVT4{Yb4kl}JN|jqjd>!(fi|4hJruT?^`0&4r<*`K+GPubJ1)yt!f)OsDDw zZUl;f(v`BgYOa~<=FQ56eoMc7rsBV&R~>xZXgJH5N5m;~!BHfV=OlSflHXhM2qe!* x@|+aURq>1z>lN!2>lN!2k5Sd9OLvd=j$cM*8fkw4Av9>KLApl8;~*Alu)n5{`wIX7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pccon0-m b/usr/share/terminfo/p/pccon0-m new file mode 100644 index 0000000000000000000000000000000000000000..10e3e44bd171428f605d86198f580919c7b369c7 GIT binary patch literal 1273 zcmb7CKWGzS6o21Yuoem`D3Ul_I8M<^B==pK#HO^(A0@4A4eg+iqJ|`GqDk(|C9Tz% z4&vhAs`@P@y?(W@r*c^CZ zADm>mWaaZ_Ef}b_E?UJ}Vj(4Gk}@i`St-h^g)wB4lqC?)V@$&w z<-#%VGLc<^MaaPtYGzlrVXe<0T#Fy0f8aVE!XtPLPv9v$gXi!PUc&~whmTm_ z#P|eXV5{rhcF%~8JJ&a?|A1fMz#wy+L(Ibz-2E8+YlM_2VvLQmI7=}Td3}ekbE@I$ zFW4)W_ji25HvUl&zPJCW_4nB=d&fSoP4=06W!vmK`^kQ@KWso6k`78orQOc%t$uuu z{d|&N+7H9v&8lV9($zvtwYXZSqhKr}q`lc`+%8~qJ3(wj|U#4$1$vlx06 zA>u+vFzSC9iAXpVITdDL9TlUEkigJ&!8oDL1=p#jhlr05MhK&XX9e=0K$7W93bU|~ z$lrawbC}a(i033S+au!6q)hh6Opl0GR1#f?;H&1r8wGC!yjT@Yg6f1QS%%tD8?lHQ z6L}b^-k}_6NR8pUr{Mr-2`0IL(REoH)HVrx9?P6Q?;DG*^RW fWRTw=zd?S3{05ED=uB69d;ISBXB6gd7}$JZ<3Z@%KYN|s zMo0d7}$JZ<3Z@%KYN|s zMo0fB~q3 z9n9xukYi8+vedvl4IrrlX2Dcq(gqBsU=>zSb#@F+4ARLA($U^P>;=TCnW_bbszxc+ gss%Piq1(6vRga@!tn14oDE9MOoRbLMs$XcUiEmRxchri-%H#wUttehC>d|{1v{4#l+KF^isE{1_G9{t`R5RsV)Rrg%{sS*REafR)v zpz~9PGbll7b#17sPX{hqxHEh*XtA+yf3ewY{WA`&emk4(ZSUXMM%ngZwx9OS!uI8_ zp38*)(+Uj12<(6(87o;46~qF2YJg8*4~)UtVc6m5Mnnzq Y;|~d;JV&*h+h!K*B8#F<%p->kb_1yiP5=M^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcmw b/usr/share/terminfo/p/pcmw new file mode 100644 index 0000000000000000000000000000000000000000..487d8b042b452e66a5e149fbaeda793b3d24dcba GIT binary patch literal 649 zcmb1QRA69bU}tD&ux2bs&MmJAa8@WP&CAQoOIPsCOfJeV&QB{*2+uFdE@oh01fc*1 z4h9K^|6srjq!}2PfFuh8AA>A|8d%(b!HvNK$npX6{D5RQm<7@E|9=8Q77D+Fp^l*g zEHViyKAT|)T*X>A>;L~fNbG%Z_8}na7{e)sb8r!uO_!h|*P!$*3>7ey5c(bgd6??w zKy}QF(v1KA%P}f4Y659PAhu*=XW(U!jy6tLu`$xO1G20=q@#_zRBTKQz+7(?8)Gm7 zA*7nAT41P}Vy#+Wq?+OZR0)*l0_yYthO%_DGt3}I7{fFd#xjJn%(1Xc;9__fhSo+V zML-vtSQ~=v^LJv9_74E!Kp+kR;$R?l0b*w$c4Xj{c7Zrh+D4vydVgN)xzPTagFX~pXuN&&#Bf-J63V(w&_>hT8w+H<(UqE0$oReRrm~}AOyfCXp2D@hOaP=y$}RQ;2zOKkLxjWnAZW(j3^7$Fb-V5(7!=aQr@$QnVEaY9P#fNTe7`YTKaToesX zG&FQ%L8YfJU@T%3F$x%R5h5j^i3Bv305y5lm`~Z5(v&ikvfG%xZPV5(a(&fEuz51@ zS=MB}t}&hZB*Jt6ag>syY|y81lwrCMW9vvMYpPV!r&F1N8s|D)hf;yGJ#kJsrzW@xDOMU?CZ{H1iwm}G#!BV7UkJUeN^Hjq-I(pfe6Lcf5h?kx0n{8FqcarAa|BML z(NXH8F6t&j^1XC{MroX`U^Gqh&_%=&-IVGIt3@<#nxF`?LOkX3qcP zPUBii8_{xF2c0B6Z+J#v8LJs1u#MF!5`*iIte(FLn?|r7YRV!pj$j|N9Us?Jz=cg9 zE+gg;v!wT!aHkBhSd!e5ViHM$dUz(O`2bt;HWx-Q=b#TsvN$X$7n0^Vtc>kc(e7ld zEQT|<)mZpG={cUxN`dlLT6CDzHbpH_?#tUrQHS*)4a!YoB!wZ)b1{b<<#fe9?M0WT~5ZTE?$7bI$Kp;}6Wg_T+< zOf*8v#6hP?Pmzw9v63tur@p>;yuW{7z%-Ya3x&0{^>x?vyp4^`P2Vqu_9tOU93A_}7D!i6hWuEujt6QK%%pbk0T`Of3MzPXc55r$LH29|g% zon*DFjNW9yE);jhC!(Ikd8K@wbgp72%2pxosafT$M;RX5%BM@7L_X!=UI4*Aa!AB1 zv_c2C{IoRuLDUK(Kp6lDN1z=#;VgK$<2+n|AsB;6jHX}?aS?3^mbtnLYp}u0bshE< zsKYg6H{d46x8W{4XmsqslLmW+{&|DHK)>JMuKNn!zT@(QE@`F3D<2G z9pbb&C%TZ+(<6K$)Zho1!#IMqsF)TDVp(K_BeunLaZB9)X~Z7KPsKj^m*TZ}i~b$j z2hJa!k)n@3@@J%1{#yT^nQp1epd6G@IVt0EL7Fo0k9L&#!+C94lRNT`y!VIW{-$~l zTkXbwH1j3Txh5j}?C zG=5dM@mYQPU5Ff`%fT95cgHm{^IGt)( zx3wYmS#1!s38X9@Ey!f1N$6CZ8EF#Q0%xY1gcjlqiN<8UNpP{`?-b~-TTXu|n<%FH z%Zb%ey4+ta>pm1a1X>U@oEdi#gX7TM-P6l+)koy+C( zg@WU3ZWfEBQn_5IRI9bx*4FlRy}nClN5L8S&5*jLVqp}CVk*{0v7W59>1QSVimHC@ z_jA8a*9fl=Ua}Ov4RaumFzhuWK3(|(#y~I>zM2GWiH3zEfiPVMKMO)E&|n9D)QBz2 HMz6qk3VsE) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcvt25w b/usr/share/terminfo/p/pcvt25w new file mode 100644 index 0000000000000000000000000000000000000000..6bd5e3ae30a0362ee4e5bb2293719523c27ed052 GIT binary patch literal 1284 zcmds#&ubGw6vyAJLKPJ8(1YEBTX31+cUG%+VYZR8Ct2_@bjTpt!OPTbT!M?e6LcfYxzo1GZU6psQPsxA%AQD zu}{b73`O!e0w+@FDD_ew^^-31gLHu=Xo{|2G)IfjWyA{IlGQa@r!7fQ6i9DSo9=-2 z>7E?lr-$^Y)A59!b?7<#MTcL)-*h;N-hn>S7y3%y=sW$u8l$L3oPeGdy`oQ?73aYG z42YOWcK9H3SjSPD6d7?{tcZf}MMLa~yW+ub|9C9NPsJ{7(^n^?yXr+!XMytIc&8E;y1+}2nM+-`(S`Xg@QY**ADD!tF5qQ_zwJKW z_JVlb&DTotFuztWh4E%+8aU__sSc@_87s-qaT*$m#fFDRMhs(hHJ@K!-`H?n&)eMG z+VcH!xl*ZCgJ65RR;$;;u+eBXTdkd)-Q9M3kN1wlmdanncvb)a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcvt28 b/usr/share/terminfo/p/pcvt28 new file mode 100644 index 0000000000000000000000000000000000000000..57b8a69349df30d492f5be2384c9893a97bf603a GIT binary patch literal 1270 zcmds#PiqrV6vgiwg(@iGqMMFj3J$h3ZDyuPGc~o<{()#)Qfuj=L1~(%ooOfOG?}Dr zkh&3c;X+s9!p|Xo0~ey8h=M4BD_5>uxfsvAO@t~4ZXI&Z`MrB@-n{qbb*WxDMIF?u z=Cz>M2yN%qwu>1 z)}rU|7cG7Xf79Y9dI$PQU+61+qwn+sYmA}}bpm=?b*e6PR-FU$)1%@l+2VuDVI4tj zOl8$IwWNy5S9P_o?y3jB{o}EWpQ=~z*Xpf$5C4GpB>BTL^62xgysmX?f7buc%=v%Z zXM$0wy|18VsIUj)$>pR!Xm>JJ z7Q-3bYAk%8^c+uTr9pYi5glf=O;Jmf`|@^DG{t(52IVF(lEM(@xtPO_a=fE4%hyN6 zUHu~IQ$RU5-l@QB8+ZwlxzvX1ZJ22TzesxczyucBfR`2jw);fW3lcTAP%S0G!b+_a zCK{n-;-DSU)1+f&tRzdvsjn{{@9!TNFwN!VLSb!fecg3EZ)0O~)A!5eN@Z&+2)4JY z)mkkK>-9!sXJ>bJZ?D!P06VTJ5SM-Uq;vATt z0TC0)4j*I=>o{tYA|tMg6;TkrXox*=S3LObACKkusdxo{E#8Xv@DGSjGJkkR9)13m zSCxL{&-(wFIscD4jVZP=u4I)SI!S6y_w>Nji)lTu^kNN(#0Dgz=B~o#5bTGVGDu7z z*e9)&k83Kyg-s(aBd#G9NF6ZXsWQZ5Npg$LBqa$N;F)C22Us$1abW^;CVWVeCBKLnKNHwK$U(QNOO|c%NLD?CMWMP!^ zT+CueS>Dm4>8lgcUG*ZVvp{)pyi*AaUEn3i%%v{e=)!y#_(igZ4@|;R7x1#e-*z8w zdqKSJ=4+*Rm|v@x!gw<@4IH#Xs!b|p#!51DoQ8&CvEkv75yMzr&F9zGH#S_?^ENlP zwtT-_u2ibkAlTln)#~*yY&4q9R%>TxcemZ%AAFF QT8U(8)ON;h7D!#8pHw7xWdHyG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcvt35 b/usr/share/terminfo/p/pcvt35 new file mode 100644 index 0000000000000000000000000000000000000000..acbe0315306e89bf18852204b886a2f0daa161a4 GIT binary patch literal 1270 zcmds#&ubGw6vyAJLKPJ8&`b7UiY~S^ZFV==CN(wD{(xv(QfuiUL1~(%-EB6>HrXU? zka`jH;6YE~!M{WN4?Kv1A_}4io;-Q-WXRV;c~U*7Ja8)3wIpf4#%vp>(t6kA|Zcl0I@{J=qv^DIRYnA z=qL?Rh=xd$^%1&2X_}@h$mVGox{AotP1#+iO{z!=0#AC2x^x?KhwjPzK0TyIy%A67 zS&yE>U-bAT{7sL8;2r2AeW9=PjlR{_$AmPsJMwDJ7>2&`DAYnxlD!wvp02Q`=~u5Zi)e)xuTSJc9kupezd02=CC)<YVV+6$T!1O-CO6WUGv-3#EEY?`h9r3oBNek6SgMsW zvPc(jtC8)Kn&at=1gKynrB1S%x>Q3dk1LpQsTS)&8I+qvCL0r6=VlH&%JGgehO4Hf z+v-J9=YaCyc&8E;`@l<(l}mlN-iL)g@QdUaJ}?O@eZb2~f7^Yu>v++oU2K%2esR57 z_M>gz&~ea7QWK(OSA_P?{!bXWGd}lS$GB zshff>TQ4mFN<;s;S7vpxXCL?DMa> zs`M*=_W#ey`G4GLOmUTQC8PAvNm8@AuUAdIkkYG`UZ|m9Z$Q#&_9|=+!G35^8igqY z`=sRrxTX?3*fioY;u>Os)BywTlprQcf`_ZHsx(s|r!WP7A$cskPsWzD42F;>fvYD(pCSt}vcVLd2=GBe0zW0dRM z%wR_u-qEBPs1wpX^&+XWKzVSyQwa-Q;3de)r7qm)!h9F_MRE)un1rP+;AQ#0?LOZ2 ztMR&*s}AKtJ~YPTD=~IjYhNCYVGXo?zY=|ymuV7RQ@U^UjtkLT#~{faJ0-VJ)1I2 Q%T73>ZgT8qp41ik30o3)WB>pF literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcvt40 b/usr/share/terminfo/p/pcvt40 new file mode 100644 index 0000000000000000000000000000000000000000..df7c672a086a38aced1268d08bbf65d9f2aa226e GIT binary patch literal 1270 zcmds#PiqrV6vgiwg(@iGqMOdb6dX)x+RRKRO=@bZ{R7dqq}Jl1L1~(%ooOfOG?}Dr zkh&3c;X+s9!p|Xo0~ey8h=M4BD_5>uxfsvAO@t~4ZXI&Z`MrBz?!5Qr^{75NMP1aV z7PO$$3?1{<)bwQR`l4-{v2vy17ejBW8r$(gH|Cfz->a7EL`r^a05wm?C{B?)N8m&n z9i?vSpIC$(>Q+7Kj5-VEC$198Y4btmu#TcO zu5#+CT2dwDtA^TFch!U6{_$AGPt_~Q(PxUfmY zCB!^pj`X+*PgNimi^EgWOd<{_&Yh&@18m9LTo^;oAs^zfq*&4}B*Q(dtYg;D&&*mm z3}#pm08ylOOzF(CDKD66s6y E6OW^F#sB~S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcvt40w b/usr/share/terminfo/p/pcvt40w new file mode 100644 index 0000000000000000000000000000000000000000..57d87ec9fd5614f5fc8bdd512b68df9257034f2b GIT binary patch literal 1284 zcmds#&ubGw6vyAJLKPJ8&`bB=7Fl(dva4zTA^Cf%%r6iYkq@B$R8U( z?9(xdQ6!%ua3Y0{Qa=sQAn7tcMCWOers*<9^RxuLfmoqivbsj=v?VEu0_jca&>he| z-IL?{^pGBPXFQ>2U3w0G(dC!$H(idRcc72-g}%}^`c6Nv#wh9&C!nWAzZei_#91&u zF%cJbmk%QSRJ?+}7H`FS_y@!%nLpf-N1uP? zRb^25v;Kc(&i&&~QbrFfy;MgcxdF+l`75w_1pA>$StO{C|C$2FDU!e$Vc5LXe4q{a+*ssb@tY@XsUNwGmO?j&nIz>;~33zO)X^dUA&ip6mu zY3^ZWY@?2TM#juyxPV)Yh3}D?<94P4%A0AaM9WVp|chfSx-Z8M=n*~c&Ui}C zyYvG7vdgdFZ@V0Z??IpFD}AHy^n-q4jbYd)PC?I#elZ}NskX zA}g+oyeJ7zw8Xx+Cm#Oxk0)~cOuUA_5%0tY_(#NNnLpZ*M_+#BRb^25v;Kc(F8t$8 z<4Q^yS8_@pohG%Qxteci<&5T=TDgIQwGPRug=?@m1pARmStOsI; zIFDP6h3}J^<90?0R4~#~$5>5Wsv(u<6---dlJzhR%FSRT3!|LpVh%gX@s1`9Po0qN zsFz5c13ZTE?e>nEB{u~A6`#kFQ7 zNVEe($3dq_O_7SuSV@*n($G*mK0G`!qU)=x#bUL(zV0}#yRosk>3OwUy}q^O``g=% zMza|Ntya6ev$MOqx7X?H^WJgTQu(VGd<}2~a7oHbz|lIFv_eKVOv_G=rqW|KOQh!M E0K_13)c^nh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcvt43w b/usr/share/terminfo/p/pcvt43w new file mode 100644 index 0000000000000000000000000000000000000000..985196ff865aadcb37a79ffdeecf266f88460513 GIT binary patch literal 1284 zcmds#O=}ZT6o$_og(@iGqMOdbDLB~Dw3)ATQd3*)2SnQvt)+_wrD>9Orky0yWRkQ& z>ZYIz7rGJ`{todUxDW+J6hskRxpL*oMf#rGM5uz`)*DnS1ZtKH<_C>Y+ig zsD$}OZA;5nf*O&KKQ@5a zrxP?pZTTF76Df3@dZ~~4NtgLSx=0f=MOQJJqebX4VufzY>Kd)nmZWw&lwPM6-39H_ zeK~$WkLYn{##4IUp%?I%9exFW+u?TmJ?ImCrEm0|e$Y>>vEA+wr=Vv=ujmu!#Cb43 z10p7z4j*QY>NskXA}wx+6_FQ#sEa*uPdxnXA5Y}?nRpFVG#uQf>S29WuohCJ_`+8{Vg_IszdZCJhy#Yz9*=w*l1pARmX(Xl) z?2}d^z%`ZN!KM*c5Z4h4qz)MHL$Dz(FTTbxB2MtRzh*X=o@G8y+4RF^tvKTyA}RW5e@&e{*wd zD+o%Za=B6o!|m;AwN{IwdcDzTHg|S*cU!GJ-a8IkDt{G|uK}(AE=ge#I9leCo=q91 QWjl#cH#v4IPwEOC0CSpnXaE2J literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcvt50 b/usr/share/terminfo/p/pcvt50 new file mode 100644 index 0000000000000000000000000000000000000000..c64f1bdba97655f761806bf8c79dc06bb3a3b798 GIT binary patch literal 1270 zcmds#Pfrt36vgiwP0&PRT(Dslmc)q=3Y{4`v{(e?Pf`U^M8bkbLn(zBn3kcP7HAA^ zOmyKwSH^{(!}twc7)>-r6QeP4<;s;S7sI)i)&xyV+&bw!=lAY?z4P9i*QI*t40TYi zn%9D2BXrE$lT#D1#Rc0oW2JK4FNEG!CAQ;*Zp<-bzE>&Lh?M-;0BVj-kWG<1$KXU7 z9j8v}qHZ!I-%A&1l*Z{QM$iEcv4ydGzI1Ue~&{KkNTz=E6Vj zG_Iwz5iO^6&}q{1hGztpv6?Xg+gPn4F}M!N>iKK1X$1R`Nm(Su5$t2OJI?vx=GOOmIgm_(AG9_}PHA7D$~=E5j?4*HNJi^Gy~A!+VmWgN4L&Su8S zVmO0ajfL-%p5t~_3Y53fqQk7VDQb!Gyu6(hbyyG6pxh)zQW)Yq7jxKAj(0R>`TD51 zt6w603MdE1I~AC111~``m)mfo4Kr=v7s(txFoA_O;AO?X?LN`;f<(g$Wg`}+q5Omlg;P*_`AUw2*4+t}FL^!;+VQrX%Hg6-{U zwN?wmdcD!u+1cIQ+iN!WdG9!EQT{3xUjtkLT$0s!;82B2Mm}R&_F&Q(N~MQy7D->C E1It8n)Bpeg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcvt50w b/usr/share/terminfo/p/pcvt50w new file mode 100644 index 0000000000000000000000000000000000000000..78462e583e8df37dc23442a341e3835e872c8637 GIT binary patch literal 1284 zcmds#&ubGw6vyAJLKPJ8&`bB=7F=v;+U#z!-PF`p`vanFiPq9XgVHofyW4J(ZL&$) zAoWtvg9kl{2mcQ7Kky(5iYSO8c=F`QlZWm1O%tICf>)Qk@AotBP2SGTPM>h-4E4~U zSX6>SGqjD?otfEbZF$ME46Rgd`1#PQR&LwS1+hnF&iPRQ)=UkUutn z*ryX@Q6!&Za3Y0{Q!n*VKj|_*NEc~>rsyh0bF>IuMy$|nSzV)b+L9DSf%FEo=`LuW z?#uB5dPI*qGoI4(4!wZC?C>l2+YU$3d(bEPO5f-^{h*&%V-)p>Q_!=bSM-T<;yjq2 z0TC0)4j*QY>NskXA|q~y6;TkrXox*=PdxnXA5Y}?nRpFVG#uP^xSF%bEohCJ>dwO8%#k3w+da;H?Vgr&l9B`sa3@*w0hY{LT$n)5gbzuw*es3< zNpTM|Z5uUoHqvGW!+G3lEPRjDEVnZqP|i$A9b>f&sist(m$Q;mZPvpyC_96ZER1rV zi&^X_%R8DheRV>*t6m~?7AOyncPe3_3%mrGx!i@DU6}6zzevvE1Cy}S1-z{Ax829v zUJ$Rl`C2I+=GW?_Fy0JJ0|%WV)gcv~v62j(q@kf$Y#b834W@egCi)l?-h^8e{Ln#fFrft5ONit0)X&R&= zxDavU%9VTnf(ublL_rk6l`B`ST)A>1pRd+wVz@4okj#YH+z1LPG6 z#olN;%geWzMwc?Cu8-!cEi32L8>61txdeNr?j;iPWr7f{J4kNtIRZtb&`}zqVY)z? zta#}X#VAf!k)>!6xP(}to3gr21*%Bpy0+vNb?G+LUAiap2lS90^+r7IvFkpCde+OH zgI^s~-ax&lPxP6-&{z6K-;w{IpFl+%6DPzOF@#m~b6$)Ht*7^$!{|dz7f}%xDUlJY zq9E#`Bkuh6#eJDS5ih_m#cS~v{0{L!`iE!a?BjudQaP*qS^qzsbN|@sh~iOv%8W8V zr%26eWz9CU%_+?`wao^M$s!=BX0L%#23=4mr%(cr!)ff9%-i0g<2Qaw62 zSOpji0Ui=&B_ROi;hAL3f-t3Tav_GvCoMpLA;=Ie0U|udJgzZTx<_i7zc<2AStBAb z%4q5m4T(H1YX&3+8TW0d^ei%22(iz_G+Ib=3)6|cNi=|SzytP%SSXQ-KtJUkay}jLNG@FjoYPH)tJDtw%ZnwL~ ny<>MJ@-Y~E?l^PYip@pHP>oAkc1kzQ$v`j^jzm{CNL`^{yj658 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pcz19 b/usr/share/terminfo/p/pcz19 new file mode 100644 index 0000000000000000000000000000000000000000..e6e3856d35b312c32688be30ac6bdda2f7816393 GIT binary patch literal 456 zcmb7=%}c{T5XFB{L0hPIoy%UfMf`w>ASyy_R9cI*f*=L)5`qe{S!=yW@BZ0wvusQc zA~-Pf-psr=huMrySZA3p9vCb< zU*Pq{iVgjC6g0O1@BZ{u-v8k}lW_IHeV~P0AVcH|nP?m9j_T-booc&ZQKX0T-S;Fx Z&X5t(MJ)1$+?3UAyh6@{q=^h@@C|0E0^8 z|MN0P8#73INPDT+7#bVdF-UtdfY_#brdmKwgld7Is=9)@sp`gQ`$AX!5O0Ox=PdH?_b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pe1200 b/usr/share/terminfo/p/pe1200 new file mode 100644 index 0000000000000000000000000000000000000000..d8c6ccac52da1a834abb739587bfff0037f1c357 GIT binary patch literal 546 zcmb1Qlx0w3U}k7#IK+@&o>NnhYG`C&P!o_^l%1KU;F^=0TBHCHVPIfnfC4xJCV-$B z83Gvo|Caz_1_mY|$-=Dvh~Gf4X}Nc+GP!Dyh;ATJ;W e8WrRO#6Y8iT!7dWh~0qL9f&=E*b`*AAp-yu*SQ57 zYh8Fd-^{nn?Cc~3E3EOwC%!fI&@6p>RF!26#xAGr;`!+{9nN3cMcVn0Fr~*9AtW3m zJ&kCO5LUI%Cflk)*yWg0RfCv~^lqZ+yuUwJ`lD-R+;YbQkIeDB{o}mf8@$I^AG-er zQX!M9t}1(iG+AxRJr(1uwo%M-Z}K87^8Nf?ZgOvb666fIM9z@`(nnl}*4#wVl2gYG Qm639x=wsI?W7ZMFH$^r9-v9sr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pe550 b/usr/share/terminfo/p/pe550 new file mode 100644 index 0000000000000000000000000000000000000000..2dc4fa3a3cb77217ddcc0d8bd8fcc65577fcc5f2 GIT binary patch literal 421 zcmb1QRAo?OU}k7yaArtK%qvOEttm(~H8lW|W`+g^H36wb*_n9?t~t4>MG8Q12BH8X zLjc47{}MpVz`z6~|Nm!U-~rSB|BEo_GZ+HdCSbl9gC&CS!9 xBLh1IX-_B}p;}<5s;;1}s;!zV9jRJi1miGpF-Utba4<+a18HeT1|Z^M008rq2CD!7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pe6100 b/usr/share/terminfo/p/pe6100 new file mode 100644 index 0000000000000000000000000000000000000000..2dc4fa3a3cb77217ddcc0d8bd8fcc65577fcc5f2 GIT binary patch literal 421 zcmb1QRAo?OU}k7yaArtK%qvOEttm(~H8lW|W`+g^H36wb*_n9?t~t4>MG8Q12BH8X zLjc47{}MpVz`z6~|Nm!U-~rSB|BEo_GZ+HdCSbl9gC&CS!9 xBLh1IX-_B}p;}<5s;;1}s;!zV9jRJi1miGpF-Utba4<+a18HeT1|Z^M008rq2CD!7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pe6300 b/usr/share/terminfo/p/pe6300 new file mode 100644 index 0000000000000000000000000000000000000000..01acc1b70c66fd6eb748506db7d001cdc8e487a1 GIT binary patch literal 459 zcmcJKF-rqM5JumLU=RdLb(%x&I8ck*J+wN-7!$q3A}kgWECfAJjIsm^ky!e>*SQ57 zYh8Fd-^{nn?Cc~3E3EOwC%!fI&@6p>RF!26#xAGr;`!+{9nN3cMcVn0Fr~*9AtW3m zJ&kCO5LUI%Cflk)*yWg0RfCv~^lqZ+yuUwJ`lD-R+;YbQkIeDB{o}mf8@$I^AG-er zQX!M9t}1(iG+AxRJr(1uwo%M-Z}K87^8Nf?ZgOvb666fIM9z@`(nnl}*4#wVl2gYG Qm639x=wsI?W7ZMFH$^r9-v9sr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pe6312 b/usr/share/terminfo/p/pe6312 new file mode 100644 index 0000000000000000000000000000000000000000..01acc1b70c66fd6eb748506db7d001cdc8e487a1 GIT binary patch literal 459 zcmcJKF-rqM5JumLU=RdLb(%x&I8ck*J+wN-7!$q3A}kgWECfAJjIsm^ky!e>*SQ57 zYh8Fd-^{nn?Cc~3E3EOwC%!fI&@6p>RF!26#xAGr;`!+{9nN3cMcVn0Fr~*9AtW3m zJ&kCO5LUI%Cflk)*yWg0RfCv~^lqZ+yuUwJ`lD-R+;YbQkIeDB{o}mf8@$I^AG-er zQX!M9t}1(iG+AxRJr(1uwo%M-Z}K87^8Nf?ZgOvb666fIM9z@`(nnl}*4#wVl2gYG Qm639x=wsI?W7ZMFH$^r9-v9sr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pe7000c b/usr/share/terminfo/p/pe7000c new file mode 100644 index 0000000000000000000000000000000000000000..e86846227c04c7c20c2d8e086fb824569b4ebf65 GIT binary patch literal 502 zcmbV{Jxc>Y7=-7Nm_$XvPJElSI0A~WM(_$jFn*vBBp5Z==2%0>#~pWyg@S^Gg@uKM zg@uKM2>!=&?pVPsMj5;-TuHtDveZZqOOUR zAM}H(NDYEv_cDk8r-3Ay2T(wfE=kIm#%$*1u!I#lolR?4$42JT*7&uF+DKy$bvqx8 zVLAD_6DsP}|YwCT9w3PA!>0B@q-^-e1Zk*bJL!BZy Zk|zZ+L5ieA((WW_k~7jGC*X-=`~dkv^Vt9Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pe7000m b/usr/share/terminfo/p/pe7000m new file mode 100644 index 0000000000000000000000000000000000000000..c17e365ab2fe27fae67f84d8bcb2465175b521c6 GIT binary patch literal 484 zcmb7;J4*vW6h_Y`F^P(Top_tESOSW$J}^Z<@C7~!qcMgQ77|8XbhGP53qe5<3kwSo z{JZPjWd&`73>@a%Z@vpNIj<@bAj5BrP%`X78Evt24oAp6KJvWK+XXwj{inmh0I+-T`Xkqu-A z*+Mq8R5!@FZa+!Kn0hD|=UGY+bSVkM|6x!s~`Kifvb3J>8hU+>H_ zyFG1%0jhXni^%h(x~sEt{m@nSy^Lsg3u&K8k|C*!OZLGJ$WBSJukz%^u_wcW4``X= zuW2xmBwY@m!Z}H5Sx&n;2z^#5QO<@1a$L~)E0dqO_0#A3Vx2KF$D#!JzFd|jzdx-% rHyhN^f#JXiL}Uq*OfeFUh^Bc9omWI?z&OI#a@9H7Xz}<#ESh)$=)w?} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pmcons b/usr/share/terminfo/p/pmcons new file mode 100644 index 0000000000000000000000000000000000000000..5a5b783f338fc1dddbfd715f8810a78d3f013041 GIT binary patch literal 368 zcmb1Qlw)9GU}k7%FkmRiP0r6Nu7ObbIjJ=PzK#(JATc0^fq}7s;s1Y2AZ7sS_zwgu zU=qao|DO%a=75WE!C4S_YLGl|GX;Pw5e5kc8Mp|{dW0v50c8-_TlDndLC3iT5*pE~kf4D1ZN3|tHxz%b=v000OW1v&r# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism12 b/usr/share/terminfo/p/prism12 new file mode 100644 index 0000000000000000000000000000000000000000..12de25677be37fc5fee85d23eda474b8cb642755 GIT binary patch literal 1149 zcmd5)J#Q015S=|x_)tP5gaG9PIz?;>B#3wK&KI*05E6ky;>eH!f{P&HD6xo%6$}#j z017%98X8(E8fa1>BpO7K0wD@23PeRkMMbl`89QdV!6Qi=$_odjP|88;mzFKZVSv0*oL zAr?|Z{WL&>$ep1HD$y0X20cTw;5lG{ZqqWX_xEU3toM&#pU_i!M$hR5^h=4qqSv%3 z>Mi)4DDSsmKLMZH{+G7({wsZ>AM}%c(Qo>Lj=NO1I;gnPVPWt4+V*(ca_(QNA9<}# zt4#KtSL5m`RHc2YsuopUt-yOMkvD2ny;mR9N42Gn1>Q$NKluM%gFza&U?jK{l!EDC zCI~AxXb<&JSkX1zFuLk=!|JNm_YsO0s2gSixO`&Rb+oG8&<5OE%JQLKm%orT?(U% z@Fr1~`@H}d^AK!>jb&|O;Y2tU&V+}A3(Pjh%#RoYTCMl+yQCF1t18O} zGI(wvr_b@FjaaYirpvTr-$EuWnLws3nTIsm)p^H|ZlbW&daac!=;i@E->V&kMcUV? dru7CKD`T`WMk`~qc^RFI(aIQO8GDSe{{?_h)ad{K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism12-m b/usr/share/terminfo/p/prism12-m new file mode 100644 index 0000000000000000000000000000000000000000..c4dd32141f0efc92e1692a94f55bacf68d0db902 GIT binary patch literal 666 zcma)3%SyvQ6g@Gb;-lh9X^dpy(1jFDtksgLtyUM?cbJfx(8?x5kR8>l8-6&JY5Q;QHqA0$@M+jkk3*I6!MJT&a zcA#wWOzT<>-9l!uOpLAao?xCeS)DZ!*KCHFJZEsLCp$jDz0t7?qTI2I+%C23DL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism12-m-w b/usr/share/terminfo/p/prism12-m-w new file mode 100644 index 0000000000000000000000000000000000000000..7a52b60953882f736415e566f6ce9e89185adb14 GIT binary patch literal 694 zcma)3T}uK%6g}HUMW6IkxCt9L_z+9&YL;jpmVuZXOP_>6nJXx`x|9-;5kU{pYp=Zq zLC|~jZ~FKh+nv#jdZ}T~J?Gqe=k6@ylh!bT9$X_JxksgAM>jM_J88Hrwunt_r(q_S zRg2d(-B3#vmHUEIFXw8dYDLXeY*h~#YQ9>oI~CQb+671wnoIDvxq|175+s7>r6>X& zLU*DMgBT_~1`U(Y5hfi$lwyo9hXhuLJufYy=b6M7VFTOP6}i1uWgmw^6(|;ks^gUS zTxdSyuXXY7&fk+RaYJWs33tC{+~Wa{KXOmxo(V6l?6}m80rUsr#?(BNRVZmFSyp1M z&g_G48Dp-&>=b$-!T(P0=YK^PeAHkOO!(jYACQ+ICm^RFC&jiPtF28{B^%d`B9GxB znMFc|21&%?YkZIp=9l0tB9no#1!WV;I?psOXVYC|7F-On1>WO^ScBErS@@hyuo%x7 i-0G3G4|8v{?X)Pj?F_fGO`GS(qpUW_3PUVL|AtQ<1}63Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism12-w b/usr/share/terminfo/p/prism12-w new file mode 100644 index 0000000000000000000000000000000000000000..2fe870dbc535c37e247b6f7213e7d89ec4e3879e GIT binary patch literal 1140 zcmd5)J8u&~5S~3y2#^p7Ara*$PAF?3L4Z_xQL=LO zPzecpX#hT#JUUJ(I*r&Fnx`^dqDAn_bQM^Gtk7+0LtDE>>!PiF1ieL1=qWv;ZSWW3 ze@UJ=r{erdk55zI;=(&cRD6$t=H4zJG>ssH1D_Ef+sCmfT_>`ZX?x$Vr)1;zA2jD6} zrotxwA)s#pXCUVx6-XJPH;(`_5x{4Vq`>G6@Ekh?LT2)wC6IJ90>rg$)kxSN&ex=3 zwDC>T^=6sKT?=T=uf72B{fAs5=o{vKAQ%c}1apFU!AVAwX5>+dkYs>io=zUbg9s__ z5bh+Ng&o3m;^AT;yn+TKWXLeco^Nol25YxT^g5>{pQX<9f$W&Or1d$jj04@(okC6* z*fyYHLPO9@LbIU0E<~J>*ByLSqxD7-o79~{dU-?_$Su+SemAW*VHnw!kzEB#3wK&KI*05E6ky;>eH!f{P&HD6xo%6$}#j z017%98X8(E8fa1>BpO7K0wD@23PeRkMMbl`89Q2qqbL^B!qS~EkWNLamsxMdPNhu=yb`pF=W!!X>ysTYR#D?9} zg;+=t_0s?iB6o%+s6L&@UzaieA&E zsJGyEqP*XN{RDh&`(N7D`>*tke$Y?)MZf6}I_^^4>Y(CEhlRcGYun>(%ejB8e&n?} ztuonnUX81(P?h$ns#;WawF2+4MBb=P^VMW(;!|1Bh4XdkK-$y83pl+B6;PQ!KlRMklcC#Z}CyKNmp&~GxEb$)# zb`d-Zi~wbz1n7-J;Is}hOtLAqdJQ_`fKb9p`ne8~tM`I&ZCJ6Aw#f4}0}Yfhb}5W5 z!ka`{?)L&<%tNphHkP%Cg%jaaI1?TcE->31Ge2SsXtmzM?~+#d2_j0{f-6a6a$E2@ ziSS_&{P-G>Fr`c~;ai-XgSX=iJn^tna3*s$b#d$x$O&{pqmHue6MyC7HMCn dn${a|tc=mh7_E%a=4Es;Mk`~CW$ZD={uiTW)bRiS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism14-m b/usr/share/terminfo/p/prism14-m new file mode 100644 index 0000000000000000000000000000000000000000..39dd310720abf005cd3c3561b386b426fbb3a3a4 GIT binary patch literal 666 zcma)3%SyvQ6g@Gb;-lh9X^dpy(1jFDjMdVrtyUM?W&f0)shu3_^nXK`*7g zp$}1Nun88_cl8tU8sseGJmj3%He{{6sj8IHx>2T(ArxtZL{WT)j}XH87Q97dicof; z>_FM#nbx%&x`oVQnHXE;J;6L{vN~&+*KCHRc+TKfPjtM=z0t7?qTI2I+%C23DLV-np4D!_pcC(S;j?B=4kf>guNEYG+li!8Wm_?NqI$ zMb+kYO*hp-QRP18R*tjfLaC@`i;k*C4E3mVTycx4TXJ%cB-EGSmbr%S4-q7S@24mN zZ9=!B2LTL_9)X5&=rBo7Axbeum_-uH#J;~GqVHS8HemzX*cG|GMr9v|Lggstg{t73 zxF$58@z=Wicjxa(SGc9KcZB<2Gam4Wrysdzaxa9}Ms`%{L?3!Xabsc*$|{rd5@ zp3an_o j!L2^k^d|R4(@u(V(@t|cQ@2O_c$Ad`EZ5Is^l$hAGPEZC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism14-w b/usr/share/terminfo/p/prism14-w new file mode 100644 index 0000000000000000000000000000000000000000..1d7df53b710aff295e42eeca63d45879279a70fe GIT binary patch literal 1140 zcmd5)J8u&~5S~3y2#^p7Ara*$PAF?3L4414Q=fjt&6ty5%d;4p{MkWw!vSB z|0TVqcfvjZKMJ$<6ZB`um!AE#r>*@)Kj>aZGB-07I0wO&t;_cX_L zJ0}o7sX}#D@@CaVwFGv(S9MFZ)T+7<>#=yY)pPYqy-{z~do}1-d(asM{@-WJ@tl-% z$}vvfnRbefTfIX2XqeopZs^$8^@5I#u4{c4u3&|RpynZS<5PZmx}SEfPm_ug9e}F@ znF^cyhk(8boPnH&R3K%D-aG=#L;#;bk^-YQz;o;n2${)ymO#?c2oTr0RU=`8IA4>B z(Z)AT*PCS`cP*efzxo2i_aAbNpl_J_fnX?@5zGnZ1t%Fznvq8-LXrW7c{+Iz4E#h!Ah$&O``xtOgkfY?Ms{UnS0*d_ OkzEIQ4cc$*H zv-j#dtG#wcq!5P}2fVP}EVe7nn2v@yUCD|DA@EZ|hh?St0Uqv_?dL6uKnK-q(cB92kEPjG=tT;ZDS8{G1Fr)~s6Tj?i_o>{-Jyy6Y-iu=%> zPe91{hB~FyS)m{JoA1}*Ki}+s`x_GxF_GwrJH{x@GOgK`7(xugGb@GM8q8goJ4le5 zr)ECq(>$vspJuy6ow8&*w9b6drz3|}*(zzvlf)Ex)L>F^S#qek>{Cs8%H$v_BW2PV z4&!i|0$=P&qly2fi9jIr!2cz6j}VebwNsBUwqR_+sKThIZNo_G&E7CSF%MxLz})XC z6A>7c*~oCyT)Vr_>Cf`Hg|g%ds$HIv#+Jl|E?m^p(B7hiJP`@y9NiK%;#3=>KxZl4 z1vY|Uf<>?dL6uKnK-q(cB92kEPjG=tT;ZDS8{G1Fr)~s6Tj?i_o>{-Jyy6Y-iu=%> zPe91{hB~FyS)m{JoA1}*Ki}+s`x_GxF_GwrJH{x@GOgK`7(xugGb{P*8q8goJ4le5 zqh>Da(*mm{pJuy6o#x1PXr1|@Pe%@|vQ^TSCy6QYsKKP-=E$MuvQIVXDU*Y!jFd@d zIE=$-@_ex;jVAt^CIW%f1OJ!QJwiw#)lNOa*n+VMqY9&z0$%&}@#DCL?gQ`+Rb&E7y02Sz(gDK?3J;0o8j_SLVwVI@q}SBzp36QwP;x&v_xaRhNmJ&I}+dK9@7 z`WS-+=aawRdB+F}a6X(b*!!^eVEeFJ#sb*I)VP}C7SVw?hiG%ZP318&4Z$`v7f2S7& z|3sYKhE#=u%g)UC&g{+xlGkQ2jS;-y3*lXGe{IL19eZ}X*Vrz2(kR)`G<27$8F)yN z84isjNnFmrfYO5)Lk?4{=TO2TOq5wyQ045X6G^hBYCWYLu5v;X`#4ZuEA1TPM5$BG zoz#=>UHs6J`>){NC;QL%+quFGZhy^ z4uux^E=Hljc;`Q1ykZD>7;nZ0^g8q{=q~hz+8*>my16UbHPgD}D;mTRL<{1uH`nKh zIu$pIv>~4imno)*9?FljK#ue*iDo6^vScg671hpgRifR+GkLvAQI5_h$>A@>Hx*75 AK>z>% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism8-w b/usr/share/terminfo/p/prism8-w new file mode 100644 index 0000000000000000000000000000000000000000..8f254d3604fcd521d7b155ab6a90e2717ba6b1c8 GIT binary patch literal 614 zcma)(TT8=05QR^SsCcRPq%;Qd;LryNnr*Bpskd68Sd=Q2f<-7ag%(U3wNlXfrs(hV z@+kNZ;_f!IDimCHX3lqJcQ%l?!mx-byxJFK_*p;kUgy6b1by>ku9hhD$sY9$}d085om#95aYvf$L?MSc3(d>lD&FyYfUB zZpoUB=zv!-p@3tYNUs!i$~c$mg6C@FiTC^;TJY%A{`bkzGyZn2&_Vat+&fNBJf0)> z6O)+3>`I2MZ$m3UJA_uDCIuFG)uD7LVC3a74F&o;|3~^OCJ=}Irhh=qLfwO!hnkbS z2-S!-?`oBd#Tp{p4SrF9b_T5k?Q}TZ<8xI?>?UYOJRBscM;*GiA83_a;W2?$YQVN& aHoy(p9^j@xr;jypJx!e$)#u6O--~Y}J0CRw literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism8gl b/usr/share/terminfo/p/prism8gl new file mode 100644 index 0000000000000000000000000000000000000000..aabd61376d58a5c96fc3950012d8646a36bc17e3 GIT binary patch literal 754 zcmcJN&r2IY6vsc?Ev*f%cqtS^aYYuPC^e}+R)WQ(>llAFAb7AKL=$CY-Gn6Vp_CFt z1P_HmK`019p&;VHg9i^Ddhq}7PuafR40x0tI?U(2@0<7L&A?2bF-;HM+;L0Y-3h+b z8-8;y7Ry^+EexwcFyhrd?gZtgU5Zm9u3ZjV)kauuRqaZ3+YkMgUkfn|IwST5C8Fqs zU5hP8h!J}Zpll1tX!>P#L_tN670 zF{fAOSt7neiB+*{th2!;+w2n3;1i$unpC!R{l4}G+8=VnH@@?OV}5eNDZi4;Z_aeZ z{h1G`^MBs)P{;q9zu=N9uDRh4PqE~$q!&pqkpAHKPCesPa!x(#REnhJ*`Ld!_F;F? zi&?J$F%Ay@#WA#=G->?C)nps{H5ca`%2&F2mPd9^qc-*;vUtj4lC|-RM5GBjz8J)T>IC`p{~^# zmCC*gYC>HDt8`9P)v~IqHAIgk^G0o{_v(ZCsJ7J!&$+2onimvHKsH;{tjIL^ZAE{`Gdf_HvS5A$F`E%WEH@mcbqDTjkD#AwN75+oO zF9XM51y~tYg6Yj8z@!cc8Dvvr^agm!34xfI%yS(iU+)LvTEAkXY*6QG1{-J-niW5| zglGzFdESe#FnkC!f}vp^MuM?mBA5z}2xg2X&&ZD$hqXuV<9Ep@`~)GT9m1U?Gqpqb zoMia05Pp0O7BeIaqVO#)E+E?V23Fj!WHwB#No*9^IJ9wQlhh6;HjRR5KD^G*{#I3{ z4@7t#Ag|B!rHx3pbknBVa%@23HjP1(HXQ~HwXO4x5#2;%qxD9+mg(jpz1XiU`9(U= d?WXl60wXdSk};X8I8yoiR=+%{|j^%)I9(I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism9-8 b/usr/share/terminfo/p/prism9-8 new file mode 100644 index 0000000000000000000000000000000000000000..8191a9bd8dc3adefd3fecabeac8265090521e448 GIT binary patch literal 652 zcma)3O-sW-5PfSz#gB?7rE4Symx59>vDTJUZM8zt27+H86%nh_l<;VlTSvn|bfe>}11+*&HS@ggeYI|FT@GB%_I@FM}(Clif62X-AVr z`ND7$My2W%!5CUg<*slM1XBb?2!b3%pil9Bj39&w;?sy?0VZO^<497p39HCpi*gWb zs~7|hWjSvThd5H+al3MYGsTJ&ONv!dqkN^foblJX{Zqy}#3>^N8UH14(qABX45xWud!j_&Tr5W$&nABEBE~|1!u1J|^$#Z!;De56n92YkI6}|x( C?-<(v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/prism9-8-w b/usr/share/terminfo/p/prism9-8-w new file mode 100644 index 0000000000000000000000000000000000000000..93e3da9586201fa24c3c49dce55ead4037655fd6 GIT binary patch literal 694 zcma)3T}uK%6g}HUMIS~_MVl~zLk}Uf+h&SZS_V=YOP_>6AFiN~x|9-;5ZOJ`_ndR@ox8Klu(FClbm1BS#W^mXlp?`!@U-rDWC_}?XOfG| z62)MI70aGvVU{n|jt;8DN|_y$ZKh8dELSt={8!aBCFBXhgW${r4-%2O;zRl^x^ zLuxVOuXXY7&fk+RaYJWs33tC{+~Wa{KXOmxo(V6_?5NU-KJ*4+#^fBd6==)Qvb@M0 zo!k50GRhr;+bMKIf&ZP}&;N=J3{!(e$iV;R|A4vxH32mRH7U0Rl{Gh2wQNi`3L=^X zGI2th1}VhyYhsWTnJ*z)WF`%56WRu}HIeZyXVYC&J{BM2^P9KTfe-}+qN1XrqFKI~b7YGA09KxFzIpBJ%z0cHI!eRzo#veA zPGhx|Pu=T943&Ipu~#n6colZ1@?N9u`GN6jo#tAr?X^1fWm1X=zkdO?qAlDwMpn)q zDj{Jn4Z-J zFX=VC6ZQf4QJA%#pg%*t^zE;GZS6PuK|kpi{iZ*7?~oc%ht-(kPR9hT_4<0EuQ|5c zIf3{|6{@q6H>)nHC9v!Ls#~h9R@Hr2kHxdCo~u{tje4uzt6|65gH8hYf1h#3bCS*} z$2d7>+9^72^$P8y1i4k+(2=j}1sxe(*ZMA8!3vE)%|qrUru_8uAnn?K#uX(x09Oez z6*l<~0eurV133?=K*|ukc?6hg0el8Y3XI+W&$2@xWG3%f0!g<=3RK4;KsJ6*M3rLxw^2e1n5ESi4Q4*EuczEOn+2WXIekt~PC6^%GiMvd7W>bS=P8hBLxliJU5 z#)|PZ#?`L>X(w*=ercDW3e`ZjSnh_9XF}I>aU@J3a|s1qbBuqGil74M2E=>~R0eH> zvg*C0e0D0Js%m=!*-9G8VHKNbHe0QByVJ34$8p_m*YkW|%3d!B!m!^T42HweXgr=w NrqkIhistjh0$)^hAi)3t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/ps300 b/usr/share/terminfo/p/ps300 new file mode 100644 index 0000000000000000000000000000000000000000..de2ccd7689a6b6d204318bf574a65f4500d3199f GIT binary patch literal 964 zcmdT@OG^S#6h2cy4@e;hsv(f@_SlV%lf{^#wvZ$cq)kF7`PR`<$M*wTv}n<`ZQHi} zkZ9M>@pkT=DMobBwt@5A?|cuv3bQBd!WJxpLnsS+OO~WjqI7Sxn>kmq-!gKV3nc&n zY!5C1Bw$K+fKq@Z#1&YFZP-Uf=^?0afh^3oC}Ny5=24o28@RLWlos%lrs(LdLfmdX2bFFuq@&TXl1qTA91ZUB6G^gLrDT{jl zTgwQmunA&HE+E9j)RjA+NI~RrcR*(6uRuyf_mHegbT7%qFcyRj)`2y|s5{_g=`cSX z$P~?zJU_&55+|CPlbfs=!MVhV;)HSdmoSkN=5WGnPB0S`Qz5yE;A5aL@D~xzitI+$ z{AyxKA|Y1LPsxZFs)wj-_agO~6fK!seslMsr4UtPv2$WLNX|)A^EbrswMnNlnS8!b zD3>dhYE{!}wR&CG8;xeO)iR8ByVL1*d%b>tFc=O;qw#n$0r5B@o=A9ckNIbQ15=4W AumAu6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/psterm b/usr/share/terminfo/p/psterm new file mode 100644 index 0000000000000000000000000000000000000000..d7ec53e2a8b70c03e9a3cd8232df21405bbc0c58 GIT binary patch literal 521 zcma)#-z$S*6vscy4W*=%aww^HiO5(HxfrG-ulX@E%f)89SZ#URUbV7v;ewKsk_&(A zd_C_Q&4rx$p6`$IJm*X#k|Y`6kq?4)SZg)A5iL~8?fO;MuN6+F<792Avyz4ct`afJ z{HSQ8B*!2#^jskxVU#iF$MKkzns;uI6ltkd)}8P5Hp!56de8L(j>tPz#L}Y74Ma<0OK`XzN5wB!Op z$NNjV-!9sD`zuE@S?}XF4{?9|$DibcztXd&z3|FgJoTLqtl$M1ueR<5SyhIyEo>7@ zP%C0b*a>!um9Pr7gY97lS5i$1rH0gz+R_c?&r9OIxG(05ovSq^UFET=_Efhet*qvm NVj3%BXAEgVlP}n?_1ypf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/psterm-90x28 b/usr/share/terminfo/p/psterm-90x28 new file mode 100644 index 0000000000000000000000000000000000000000..6557b3727a3d9725cbf3f0af1285a99973f2d29c GIT binary patch literal 515 zcma)(J4*vm5QV?RMnMok5FEucE21bS2)?jbHG+uiGsYxXC`l1WaEU7f6f7(hL)}?u}EXpmh>T;*EPC(xI9ar}_q~KhMbM*^q)M?5^ z#Ey5Dw7*@l^Y&LxXm7nw-#n!K@gLvxPWUT5YuXF1yrom$`M~mil=Z7?ew0&X5ZlBy zupVj$*b#Puoni&7gl%KH*#4zdm13zbwWKTQ1`B5-@lZSz3&qN64M|r4R?(iymZX)H PKtE>!D`IC1XhMT814H%o literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/psterm-96x48 b/usr/share/terminfo/p/psterm-96x48 new file mode 100644 index 0000000000000000000000000000000000000000..a4ab8884a927fe2261f52c2c8b45bbccd6aa30e9 GIT binary patch literal 515 zcma)#-z!657{@=$4W*=%@{rveiO974m|P4~lH=#hoD|x*SZz7Y)QWQ9f|8Vy3xDi< z_ns5Yg}n8Bp6~bbzVGvlq{f+`hbKOXuA5<_KC`^g$}ZjcVd*d(le8m{!ktvo6@FZN z)gkBfGDq7T)CU-3$mL-?CgrAGnk7S4ZjqeJ?e;2p3eIo2y2Cz2=gOR^Ul3BIE*H^s zytAbB?c$xczj92w>wWU(A?c6*_|rY%uk@^GFTC=WOnv7AD|k`HtE_m@yej?JI<|&& zQQN}~up{gkD`I7A6WhjiFQtmql&Vrgx{_`%e@YVf#eFef>{P8L=_-!}+7oO@S{dXS NWeh7}C-iATjW10__8$NM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/psterm-basic b/usr/share/terminfo/p/psterm-basic new file mode 100644 index 0000000000000000000000000000000000000000..d7ec53e2a8b70c03e9a3cd8232df21405bbc0c58 GIT binary patch literal 521 zcma)#-z$S*6vscy4W*=%aww^HiO5(HxfrG-ulX@E%f)89SZ#URUbV7v;ewKsk_&(A zd_C_Q&4rx$p6`$IJm*X#k|Y`6kq?4)SZg)A5iL~8?fO;MuN6+F<792Avyz4ct`afJ z{HSQ8B*!2#^jskxVU#iF$MKkzns;uI6ltkd)}8P5Hp!56de8L(j>tPzBE_Vlgg_7iO9+BO5GoKN(-WmDkGoSU>U;n7HMe&Z z_90rBncwf(-5J=;T4nM~^2rBY5IX+Tezz5b?^n)E!%l!51AFB7L4WXU7rJii@zrjJ zzH7I8EkD==3$v`WiuqB=mXJELY!jJ&UlBvoG0CULPlxV7v7l8 zc}KZUCFhkSvmie)!PFRwUn#>1%d9iQJo*9ML5Ju*+D8x2LsStJqWY)-YDgC4#>`@) Uc`8wpIFqQd$rh`uF^6{f0%u6`F8}}l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/psx_ansi b/usr/share/terminfo/p/psx_ansi new file mode 100644 index 0000000000000000000000000000000000000000..b6bc8b8f576d8726fc0ec20ecccc67988fe960a6 GIT binary patch literal 476 zcmb1Qv}53BU}k7%$YV&%E6&u-E2$|cu80S*YkV`4i}H)}(@GS=GxJjN%ZnBKLKKqo z^NRCxQWXOHgFPb@9Q}el6>{@aQW+Q-8IS-YLjVH@gCxWM{|pRFK=S{876wiRUNB3L zL5V>H$kG7ww1A`@m<3XW4Hz+)L*;Ftv?C7nu1MnUNNjATg2cR`YW$&eFabT`1msce zi20^eK$Z&-Llp5!M+XBrr9fN^#2|JEFth9F+dlQ6RcUti zE6v(rr`)PFD$}NzGDTPx`j=&uF@i}Zv>sw;J&aL|8=8QNG%0IVIqDK)1tqhVUai;2 zM>vi$Cpa^7jtlxFu5gW;sMhV*`j+dvU%C5V-0SK4gQ-47Jx`H8;{~t(%)PPp&iIIW zKJi5wu=@A?OJhIPxTS&}#G#gXIE vmc2IRn6iJ7l>(h7lCuQDc`q%4v?}5;l03$qj2Yla7i7j{WY9nXG5!wU-`y0w literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pt100w b/usr/share/terminfo/p/pt100w new file mode 100644 index 0000000000000000000000000000000000000000..1f73e3468a655831aa03a6d73c88f794337019d1 GIT binary patch literal 631 zcmaKqy-UMD7{=e=ccJK}cuR%^1d;aAYL%ASRtNC|>S{(CX`o3%t)xTU1aZ*C!NGsP zO&lB?930%-1XovASC{y_*GMxNxaax3Uw226d96azG(zVzp#@!;&4&G;Yq5nL#}E5Q zj_>xue!b&*j;VY_wW`MTF`IHYMbd=Q+`B+VfcMWa|zG)_}AqiB{E zXc3fAk%TT|tx`$F+#5v|@G;+xIujra?=r*o#o}W9!_lev?f(IQ*eN@$_ zxaT?c7kZ_)f9Bp%`@s5)d%ox!^b<$P{f9iF{qdM4>;p=ZSSMlc2)hg07Ip__x@I8F zM$rr`v#~{DlY~*j3l#PSi9J{yi@hvc5Q{~wK=Vv%5G%`+V<|Mb$~|%)BbEorH<^kB z#Vj6iwxx(8VHhQR`Ak_DeAX^skI%26QibD2d>5O!EOR^vYf?G|QkUm31sE9s&!`L! KDyUKlzrinoy&Pr$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pt200 b/usr/share/terminfo/p/pt200 new file mode 100644 index 0000000000000000000000000000000000000000..cf224e6f4f4ab49dd2d1b020d58572b8905c8f54 GIT binary patch literal 615 zcmaKqyGz4R7{yOiL@T9kig!^+DB{p0EtaBITRVsksH+*Z(n4E8DJa;%MO<7Qba8O- zA8-=~2L}fSH#fo6)z#^GzT4Caf`RXx-~ArBH;*Z676}aE6bUPAd#>9F+dlQ6RcUti zE6v(rr`)PFD$}NzGDTPx`j=&uF@i}Zv>sw;J&aL|8=8QNG%0IVIqDK)1tqhVUai;2 zM>vi$Cpa^7jtlxFu5gW;sMhV*`j+dvU%C5V-0SK4gQ-47Jx`H8;{~t(%)PPp&iIIW zKJi5wu=@A?OJhIPxTS&}#G#gXIE vmc2IRn6iJ7l>(h7lCuQDc`q%4v?}5;l03$qj2Yla7i7j{WY9nXG5!wU-`y0w literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pt200w b/usr/share/terminfo/p/pt200w new file mode 100644 index 0000000000000000000000000000000000000000..1f73e3468a655831aa03a6d73c88f794337019d1 GIT binary patch literal 631 zcmaKqy-UMD7{=e=ccJK}cuR%^1d;aAYL%ASRtNC|>S{(CX`o3%t)xTU1aZ*C!NGsP zO&lB?930%-1XovASC{y_*GMxNxaax3Uw226d96azG(zVzp#@!;&4&G;Yq5nL#}E5Q zj_>xue!b&*j;VY_wW`MTF`IHYMbd=Q+`B+VfcMWa|zG)_}AqiB{E zXc3fAk%TT|tx`$F+#5v|@G;+xIujra?=r*o#o}W9!_lev?f(IQ*eN@$_ zxaT?c7kZ_)f9Bp%`@s5)d%ox!^b<$P{f9iF{qdM4>;p=ZSSMlc2)hg07Ip__x@I8F zM$rr`v#~{DlY~*j3l#PSi9J{yi@hvc5Q{~wK=Vv%5G%`+V<|Mb$~|%)BbEorH<^kB z#Vj6iwxx(8VHhQR`Ak_DeAX^skI%26QibD2d>5O!EOR^vYf?G|QkUm31sE9s&!`L! KDyUKlzrinoy&Pr$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pt210 b/usr/share/terminfo/p/pt210 new file mode 100644 index 0000000000000000000000000000000000000000..21417c3ad1065acff855818a397de2c8a5bf5543 GIT binary patch literal 336 zcmb1QRAUfeU}R`w;9w{yF)}o$2?+|;wJ=Z!2+;-d6bgzm^GY)F(iKWli*hsb5_1@! ifDuLqF#P||z`z6~Q2`5v2&(*W;;}KXGw?ES0U-d}7zly@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pt250 b/usr/share/terminfo/p/pt250 new file mode 100644 index 0000000000000000000000000000000000000000..01b1660d892af3129f0530f10846f8bfb443249e GIT binary patch literal 582 zcmaKqy-UMT6va=ph!%?CqWBhtgbohoqgo1DZS5d_Km;cFEnYSGcC%pr>zf zm)83ITHiB&7&?0#;z3X5Pp0~u_PnJ2iZ{IfGxx#TC*v#a`Nj|FH_fuQ4->3GHe#vh z5Cy1psAxw;9on{v+EA{OcusMl=qx%%PT~&`ssUx!`5{%b3AINH8RAv1Me#+v6>3SS zLh)UpK&0H1s`PmK9PwjHsVO29L#Sm)+4idMx=U4M%LTi#n_ODw^)))zkOd;)su#!* bt%*XOB)cEWm;sLTL1xT}3>v5*&wt<#>n;q0 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pt250w b/usr/share/terminfo/p/pt250w new file mode 100644 index 0000000000000000000000000000000000000000..46e5e17f60de02dc60c9ebbd637e4d62f79cdce0 GIT binary patch literal 594 zcmaKpy-Nc@5XE0mL<2!P#ci&*6G0@oOX3HHXrhJq0THac(gYI7B|#%vXd_}83;zK- zv9PePu&}ceY;A3AZAB#Oo6Tubc`)z&W@qMhxEqg5U>JR9;Tw&nmrfiW7xpSa$tr9! zu_`soO?uP2_3A-Tvx0iDgh&M4hshZRF~$?E`x#mfUN8w3ZpBOsDIlYCpzQAQz>-1}V#r(SG?52l*d%AvWs&`?}edrH(#M3`>&#b*L zUc;U@ypuk{to!y}`uwYYLHRp~K`j#2mEWYTDSwaVRGfzE6c?O^=M-0=R-o)WKcMoL zp*Cp+hIrPkQallNhME$Zr+5jWq{wVps?y_bal{KKsj`Sr0HLZOW!o7qk%(uNEf;La qPI76U*XQV5Ll*Fbvu;v`Xl2BrB(t%M8Q@3WagfQca(6U#}20gL8R*usvn<5$jh5+}9` zB#RqyTvBE+05CDnJ#$EdM#HmGX<|&BEWvL?wQnL&LuK;6B)DR*8l`e zJR%K;VG6Vc*oUh10XPOHnNEWR=aDX=*$_g#3^9nq99QSzHr!*<+GU@G0+f;J(B`-U zeR$}1JodfT+eoiRk=8ptzkzp1AK(-0!Wa1ZM~Bwm{OG&yfBaRYsVASG@CyzK%AXKZ zVjAfJN0bSO2=a^{Uqc@kH%Havh^Tk`q(=Fkcr@Z+{mDdTSQ-1Ld*~T=@135B=i-HU zDPDdytUML2qmjRX7OSAd z(Pk-lfRaXAM6>NGYLJA*X|pQU0IS0qWDSwh=)_D%ge=LxxBJcsZ^`ATD{(Atgd=qv)O93+iPp<>l+)L&gSOUR=3;h z_4{~9e+7Z@Eq>6V`yrbeB74N8cN5$JI`f^r@zFGbbVyFhc0l~y- ACIA2c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pt505-22 b/usr/share/terminfo/p/pt505-22 new file mode 100644 index 0000000000000000000000000000000000000000..bbf0d9a1a0969f9627684f6a45de7e8880107c7e GIT binary patch literal 1179 zcmb`GJ#5oZ5XbKU;!7aJK!xz)4hDf#$$qhuKxm+Z&?s%C01=BjBqD7{nyihygLc!qf#OCI$uuR`j^L*a;|0k+5|C``yQTzLVv1A`NHYAY2fi zMZVQ?OlL;QUL$~_=hz{WQghk!Sv`}*2EE?YDXY&Xvv-qOy|dEvO7)s<=~C*IQfBpel6;PQYoVDKOw7(hQmfVbm)ShXl-XbpdX}Jtn1G_BmLAGEyDd z9Cu*=5B-kEzE^4o>Gdd5YS-sC@DAw%e1bjr0$=~=Q0ki>efRy3zp6C#>MQ8hIp>K#AnQNAx8jX0=3naBi{v46Uco^kj7>6v&g zUWk|CmDmxx_>Q;#@jdVV@ve_zPaJ`hpt&-wxheGK0!bRhXjn!eW;CQxpu!C_@;A}q z6_f{a{2t~YOz=@udP)o)oQI)uQwX&>&>R;wOZ|Vr?auKx!LV*ZEbJ& zdj0-jfR|WS%q$PRg?<`QMrc|q%6gep@{W>sl)R(l9VPE5c{@p8&M470E8Ia0*Wfpq CgJs_U literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/pt505-24 b/usr/share/terminfo/p/pt505-24 new file mode 100644 index 0000000000000000000000000000000000000000..ead33f945ac23d717bf22d18f000b965418d4631 GIT binary patch literal 1147 zcmb`GJ#5oZ5XbKU;!7aJ0IKT69Sj1glKtYOUl3GE)GBSI02YfG5|K0{bz;{}(xy!_ zbU;i@OiWBHtOy~Hn3$NDn3$Lt7#LXTt3Z^iU0&0 zS^{!#8pc2=fMcjioq%(2k?ArRa1Ch^&4Lu_ETmxp7CE~Nci{n(QZDa#C_xp;hbH@N z=)zuH@g&}rdV}z98>iY2d4S(RIp!fwb zCMJ-svqzDAe3VMWKJmUv4YJb%qT1n_9mIR*hZ&;UAbT)A>IFxr8LdAmw?s$miKpV3 zcrISxJ6`_B_q_VYyIza8;uM?*&6QcrUBca5Cdr~0fn^luj6fPiO58@H{SI2%Ls>wZ zC+9Ir4s8|9vTCSF5+<9HQ$v@@Bqg)yp4iES4>PXW>~&(!nM;__+=QpOH_&XfG}=wH zTXbp#|AbysrWqlb7OP}Uu-dFi))XnV-tU^HqplfN`#@82WTg*uh$D280f&ABXW_wYj;q)oyQZ@9cCsySv>kXcKsgoT6^5 iY1SE1$umfvLGlceXOKLDX5U@QbHfBf7W36d1z!p`jM z?Co(^F!CrPi8qdr-t*OU?iW+u-N)r-dhXTrp3(&jgkgNkuobWY8%pI^DFq}Ll}aLo zjIOeLi{GhgtT8q?o9JlmJMrkDAMpklMYK{gEMlEiOhf$V9J1qHc(x5SD2wH0W7ca A(EtDd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty b/usr/share/terminfo/p/putty new file mode 100644 index 0000000000000000000000000000000000000000..94e2c883aaa72e71489eae2863a380b5408edfa5 GIT binary patch literal 2447 zcmb_dTWnNS6kX@uMyL@G5=6Q3P&iQ_r1vqeI)$O7O?k9T>4QfnH7#vvOJ~|?ndy6~ zl1L0cYC<9qV~i#mA2I%@KWHL9_+#RSKN^k3#4qEAUw-Mh_L&(vhMGup+O_sNXYX_F zxo7Wl?pC!O+wdR?>h+pzK9`$c>d1F@pWT@op3aO-45W7sXY%QR+~hQr0{CAdX_TcH zg<^3nvD$Af4&fmN)!;s?#Ut1bjXl`U=opTo4IMa5eHQ)XAz}pMn54~P7E5@Js#v^Y z_(fdBb-aeR@eV#<&nLKvTlj+NTjDztQ!M^TYpK#oYG`ZAdY#&+wy14tm)fK1R9MAT zqiR*{s+0cHL`wCmVKt^Q)Ke<23gvODz0>pby`WxJH)!8f@2ij0XX>{4>Te^yVe41Z zv)$b698ZO0__-pH%yZWmA z75)9cimF84ZGW(SwtlgGvwpY!uxz{5-e7OG?~eLEdYpTlcc;D2cI}A$lzrH4y~nZt zb-mZh&wJH=tE@h>KeliF!zymsS8Hz6IH_K&!8$l8J*Kms9*XO%uZO1D5sZ+IIH_Ya z#|g3Jpw<;xia!FUnSC^=gda}xC>b$Ia~MuLO$R~S=f>AyJ#{!k@`Mte8>*MckWf^* z4249QHJ!l*%8ZZ+PE&-0d=u!K$V7N_cZ27;bq5*6C9HuHbyCwD$98m7hQ>qjNLq$E zG3TJu*U1^$@C-RvhLda}=GpK(wo<-f&ll~9KjnoChYd#!#|+mC`>xSOl9I9=5ot+$ zlADm?{HaE2f@?`T2aO$d4q)B=l;%xkmyBqy2pMI1x+}PZ=snx&q^hmf9h@!aAOjuzHH5I^3m?AC`EVN{nm_UF3z`*(Q zBO@0sjE|?&nasq*$K~$KhTS-_J>yO=j;vg1d~-c2cbL4 zbEWN>qvQD*lv1-8E9e6{=V;yf(<|3#4(VYT!bMa$u2(z!702~ws~tg=Btz&_L=KooH# z(1PPQ$?tq01~JB`Cw$j6*NYKST!GwuzFWE&Tsi5y$0U*|j>IL;#Y|b7JSi2t1 z@F8cq(Gx>cGn!h^5}>069bM?|!kKoAXFb9v0wP3&i3kxTVnjXB*xXERK6*+x*-dWm UX(ONLkr}#rn#jGKNz7&N7jY!UZ~y=R literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty+fnkeys b/usr/share/terminfo/p/putty+fnkeys new file mode 100644 index 0000000000000000000000000000000000000000..8d0c4405aac6bfa23245adc392d9477456a1b922 GIT binary patch literal 616 zcmd6ju@1pd6ox;G$z&1|I+%#0_g;#`WHO1N3l@vJkdkT>O~k``5!!$C0zJcbPENj@ z{5jpmfT}(`x#w9{jD2!B7mt@uCRGpoEe&>g9Pi;9UjWO8*BH CRL2Ye literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty+fnkeys+esc b/usr/share/terminfo/p/putty+fnkeys+esc new file mode 100644 index 0000000000000000000000000000000000000000..5b307946e9d09a2beae6df241eec4f4637873e5d GIT binary patch literal 626 zcmd6jy$ZrW5QN9Z%F0R<(Nn29Lp#=;oE`$UG&h$0Aozx z!bi}GUM+adUxhU`*yDf*XIx-#M}|?XRNYWWC3aStoRM>KK`zOarT8RGp(!*a;GU+? N)V!>DS<}~z{{!>T%D(^r literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty+fnkeys+linux b/usr/share/terminfo/p/putty+fnkeys+linux new file mode 100644 index 0000000000000000000000000000000000000000..d6a2dc770df87c57ccba9a5226b3c383e6153e6d GIT binary patch literal 623 zcmb1Q)MfyIM-0Ub1*Ih=mD*`}*{PMq+Bundr4=%5;A$dG(^=vqzvMYN=gECcHSH?Zmp+xsWwQl~k%&hN8A~RT z-0|3)W+TyA>di(nZFc3nUcdDHFICE|EoaxMUJYtglT2z+tJ>6|E_E~SL9hB`{oS>f z|NP6@RiR@Q*ElNPRcn9Ry5&p+J((y>l-sxzJILYKPIwQh8) zJKgI+k9yLxUi7Lrz3W4JY7Sa40UsQ2!i7n=;ei)Z7{NFOF^o~zFn}T0F^w7c5x^qC vh+qj(7+A&%RuMxSYgk7DNu;oWG&0B{hdeg1g#wD`M-a1^LkRO&z_xw>r48SR literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty+fnkeys+vt100 b/usr/share/terminfo/p/putty+fnkeys+vt100 new file mode 100644 index 0000000000000000000000000000000000000000..769e3673c101bbfb0e14550ae2051ead4fe2e2a6 GIT binary patch literal 604 zcmb1Q)L{UDM+^xJ1*Ih=mD*`}*{PMq+GQn%1_m`@AwW`FAuUfAB&d*bp+fYpIh+v3gNMXog zkoFH?kd8JotOK$Ffj9_=gMlK3ra+NsLvt``0VXX$q>%xbGzOCH(5j$xr|Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty+keypad b/usr/share/terminfo/p/putty+keypad new file mode 100644 index 0000000000000000000000000000000000000000..2bf59a0a4aa8d8f2d31ee2d74af30e61ae1779ed GIT binary patch literal 262 zcmZw7KTE?<6o&CvaOmKW!J$-#AP&-YXf?(NE`|&htV#1nXg9GLBpPnh#5Uk(@H6+R z;^u|l!{MCUJ2=zdGfiE$gCcLu%knE~(sXW@%|~9nz1qLapO2PoeKQ@Zqa#^5R#&I& z&UK-oMsnoo?%#W#tIN&TL?_`271pTH;1e5c(c&F5l!y@_fl*<`xWpA4T*Ji;Jlx_w Y2x#!|yly1KEjvA#Gr}(U`$N-FeVs`#>6km{RFaSVNUp(g537 z(d*PkwMA`HJJc?r+ zCUduGn<4XAbN@Y#{O_yntUU3sxl&PInb*y4|6v_B%_|KbHdx64T0`r|O6oD4b@Z^W zv#uV_p~D*i9k7yzU=9OpD?yz#S&lzIRy+D&k})@!#!(V63bUWAI7~MHd&>6L(0b@# z2IMfs96J!@$N*EAyMzL)WKAb%17wCtg3}NICRYMoiHrqDceXgTy=Nbyu!J>ag{@=` z< zvy14fidN$G5O=$J(JAU?J$#0&7AyHg7E7}I5G>p=FO7ZR_1LzJ9gXk=il}0+Ms>14p5_105)L?m#&=So^!$(<{?^CZ`vMCHa_sT@s7>2IC7{QH$%1M?A3Wo>&~BEzYOzSbxn3r-*T+hJKUOM z^@VzeSLb-I-VvyCykGAK)*P3w);Zj8&2jNkox=&%hWvQpt(s?uE2#Q*cvFSnhsh-i z-*^7rH_|5BBH!<)=@1>E9y&$?^gNxRvviIoC`U82K+AN2F479(O?>ei=>c3Vn`kp; zvS>T)peJcJ?IDlC{3C{Sj(wr?w92@Tj|kx_hawmrlfKJnH~1-~j<32!wzz l5CNh&olJ)w}A(G5;T{gzW^(Q)nNbt literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty-m1 b/usr/share/terminfo/p/putty-m1 new file mode 100644 index 0000000000000000000000000000000000000000..6db7ff6f065f45d7cce75531a1f9778705022afb GIT binary patch literal 1895 zcmds2OK4PC5Usj8Ch9md3M%+UjE+wTBKEuQb-J5&Y&Aw>KBP$^XddyKn6&AR`KmES zLBx#+ZWMGYGoUL4QT)K*MxFQpUCiLfti+X|Bnpa%&vUE0jX@U%b>k&<>Qr^ry>(CD zCbPJhex+Y%fQM8^Z%USVUF{1Ud5H1L`^-f=MA~qE$@5sy`%j$e4gSisp{v0;*WgPa~zoyus``UpXZBw z3H&PTFTMse>pBneUB1u%NcPPX@1WhKtW+>~UT>i7K>E|e0EmV$*sNYqo zTBB;z+HZ8OKgNAGsW#Q2cB(#gKph=p@0TicCwJaG_3*P!eypCT0-8dWZ>Q`I$8L(- z9olZ{Lc(nUlv{oUTqVr-T+yZxnyoLVNl2B$5;~lw!YpZpD}^nGC1KTMHR^Z){RAG) z031LBJzm6=dIlmUFW?y_Gp(baK~1PDq&jUy5qN2nky>(JRMCF2rhvHn$jVN)0+Hh&^tGU)4R=g|?|6b?!H8f~FlJDPgbM{& zzS(Leti+_GDJMZ0V!4iyLP&L<)a6N4p45|NMs*``FO;$TXd}s$bNV+yHlsK;D5r^{ zDp@tVV0~y>4c`gtrp@QJy=ob1J-hvC+m-a+nVao*JMZ+|?!B~gaM!Kfm;0XY8Sa0y z_sqW6WMLCOA>TqG0$GdKA~yG~F*9n>L5mJruB7F5T6EB&gDbkZqMIxAZdNz*bTBp^ zR#Po#Njo4>g3C34xUskw%Z&b-5G9Q~{Z4qmUSO{?53*l}B?xJR?_FvOl_VpsIV z#=iHSIp($bPAHT8uP`33^cm=V`j`HPA4e06lzuFRH?J!ueJ3mTIQ)cbeq9MSO=T|C L*HJ@=8XS5D{Wmsk literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty-m1b b/usr/share/terminfo/p/putty-m1b new file mode 100644 index 0000000000000000000000000000000000000000..148e727c4470d4519f9dd86537d0f3d3924c74e5 GIT binary patch literal 1837 zcmds%O=uHA6vy9;#nwU*K`-5du{3B!X?8as4OK(Z#)h_OOPho35~@u~8=9}CA5yG} zf+&J|u$Oue@lX&%5JiQez0`w<2SwCNuU>og4_K5C=`d1X<8gSc)cS3f{J- zX`U8A-|Z{hzfQMkiI&0lX$AU(UeGIA2YrHlfvGl(^^&kr*qE3QS@?1*ig~dpE{kj8 zrdSep#67Vh9*W1}nOH^4nphWaDzWdJIn}wp`uBMLQEYJ3SFy?d+i!D(wCx($9=TWU zmrb%6d=Pe69)YT+OP>tN<1$?7+jf*GCi|R`a%5E#a`+EVsuA1clQJbUvLNT=IeAH5 zl{e(=f3)uM7T0o~k^rthy>+{?+2`O~aHmTc zFee}}&FY5hfhk`JI{g#N@iD5$Pz)9_d|9e1!z5e>EDRff#YsyV?X@6Z4q}?n0H$~Y zD$=VYpdPSz6>&?L&uv{BOGaPXvjC&d`$OvT2CMfIbfOOpq3oa!$I`{ z84j5zxna!fjQJe$I}~){!VX0o>Tsyjp=gCrhZGX*rHiCB0L%-dl?xF;PuJ143|8Gx ztg8S^_pQ$XEzZ&96m1;-P=hCUFGsLSfRE6FuBuG=Knt^t& zC#P9$N#X)mjyjDaQiqEd#Ap{EAZh()VGEel1wRd&Aq~&05FcbHpw32ZrC%*;@YW38 zn!#BboUp-LGk9wzm%`*ym>h4GOQ9|vGQqV>4+8ypNXU_qf6^*vVTDZf!wH#Likg%dq7e^`==1}1ryhv_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty-m2 b/usr/share/terminfo/p/putty-m2 new file mode 100644 index 0000000000000000000000000000000000000000..6d07493f3ba55c91d816c6b84b48950eaefab8fd GIT binary patch literal 1955 zcmds&O>7fK6vyApMoj>vJ(Nm_RV5ediX2LIXYJUQt6E8Luo6o+-Rb-7?v(Z@jxT0EP8X}|RYPnJLA}X@OE6){oLocKljD*g}`#bt3-+z@MGUECG-#C`D?IZwqiK{CkfX#0(k|MXpWzC~{3 ztoP+d?0a7slSCv9%gGUWP#%^p_y}x9=ApWkq$g{#A(y$|f}Ur(ATP1M!W!fTdQIMX zCHCU;H^pmmUEY;{%7^lad?tm_X>=QJYVMckdG|Hv-Dd1Gb{V^0bJWXg{@0$}UNvqc z{?+;^BV%+@H<@m<9Ie^WLONPg(Lx;oXBLt(-C?*9nD*_Y>E{^a=V&uRIao%;J?dh} zbFTy*g!SuK@_B3w{ZTTfRJxPi2FEK9$AKo07)$7JF)a!GfF-7h-|`TC1WY&Wa99oV z0MAS!7V{t~h;x1>Ui$D8+p>B;MHb$z6Kjr}Q)3AArz{JkLUM+p>Rk0=yNi=u@UDqnL+6W(6eoHUBzlE&9+W(?HFsE zHNl!>O=(pYGb6-w^;COceLBR0+UJu+pUbPyhGBFA4s5`_4VWM^4|Wpim{l>|

rJ z+c%_uW7Ky76Xa+UA2XTzmtZRxv=@E>wn)>{Gc!kz=JSO@v3Ts*>};u2E+0QWH|Kek zO0_yaU#l%F)a#3jjYhM1;>6O@^76{c$&;r}wOXsIr}6%n+RgA?$s};{Jr?@98vFH| zE3S^>>L}i*;yo*_j^gS#Tuq0o>2SUiR8wDhYz7}hVI0_3g=G4$yCT;o~^vFJM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty-noapp b/usr/share/terminfo/p/putty-noapp new file mode 100644 index 0000000000000000000000000000000000000000..c67bf882bf52d45a9f5cdf6e52fa2e21ee377030 GIT binary patch literal 2465 zcmb_dOK4nG82-<_!8Br8t<>6HT7&hVsnp!pJi<*oO-x81nNFHVTQfwGW+u;hWipdY z9usR96}qvAXyc-bB8V2cu~3i}L_x$&7ve%u5W8~a%9Y^w{pZd!BaKMWNxtv@&iVg) z?m7Q|&bfPqP5bCcDvN6kxniNPd?=G0&*j#XZdsZsOt(xF^9$L0%Up7Kp=Bo1lF8=N z#42ph{&Mu+?uH9i?Xw)Ig8XHrhk`Nm45vLUfppQy=xyS?Jej z44eR_XpXY5MOvaYdK0QrxvcnYdY3ln8hu0`(@pf;raSZneGT;k@S}>URQ`n3gg=u8 z*ruv(7Eg)YVxKr5T1A@(2v2m1UJ(@o@Sg?ZVoW5(j7USzi=rr1pWA9ptMILhx5O3L z4RKxE5Vyo#@zvj+xQEt#)zhFgYCE-E+HP&Hc3!JglG+rQe<>}e6||DJrrH<4pDJ}* zyQ}P%iv3uhztQeJ)K~AX>2Lov>br*`zOU=~NxQH8s{N+@uKl42y-{!0pVn(*|G#$6 zBaXXYZ`EJXT|KOK>OGJ6?0=p4d)4=Spnq6ZH}zZkXa6vZ&-Hg2t~MC)5o)AnGU9SZ z<}8`;WX_g}JUW~y&@m%^0_G&Zwi?vCDgF3kWOSnsCLXZ^DI6swreR(sBMQ?Gz>b<; zBW;Hcq(K%_#4_D>j&zwq+@;86rRH>wc0i_?RB#HyWwKSEts*0V=@&XI(`-9}C`_S| zjF1t}<2kfL)BLFCdchPwYJ`m=#^?Y>=%Y8l&N`@zjMy@)WpT?^Y}u?W<+og=1Bye6 z!;0IPZBuC_nK&Im7AhV|i1GNH=m3t8ahRGPM?U3SCnu+-W@qQ-QmJ%0lgVatx%v5geqo_dC>9qNmzGMU<>i%?)z!7Na(SIoIs%}i ziZT6{x{Ov64X#ftN_)XbQjGIstIFA`a<;03t%_o+%Gs)Nj;geyD($Fv$FDSRdZYzM zBEefFm;ptC6JUnZ?z!#QqP&ep`#Di1m3BK2D9eLLKXO}^ZPK*S@5t3H``s=3F?t8T zL6whey-w$8l4dDGd0M0uTBnP2i7q2v$5*|Hp1}37lXhVwgPx-U z^dh}XZRAjhJc>{cout$F%8$|n&EV}3+ceeXq6BX;hi^XH^sfbz&pB=}jzo!r9@n{A z1)MmnYFZ{!ybiV7d8hM^F91bg5m*9B04|#twr}h-fV~yNMvCDoh~doh>4473BC g-QD2s<7b#-L*VFeANbTTk1#mg1s)lQQ7KJ-0fq$09RL6T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty-sco b/usr/share/terminfo/p/putty-sco new file mode 100644 index 0000000000000000000000000000000000000000..d615ac650ad983cc887fd5b0594a7d85673cb0eb GIT binary patch literal 2523 zcmb7GU2IfE6h3oj(^3>L7(uxa8gN7)*n98(wQlJ`X`w*dTlz=owNTjY@BY$m|9?;( zkl=%wm41epb+KS_dB=mC*`%fHsn%ZL|~K)pUTGsf~_+AEkcCI50#B%0N%h z6wT9b(CmJ*ZVH1s*~oOn^Z zEG~<;ZyE7ETA%Bl>*9AI44+YER2YYie7@7@hUAZD95-Udkde^s4CE!vUNJ6f{g#&R zYFQZZp7B9RtI)Tc{OEsqEjO~z_p$M*@tN_3@ul&N@tyI5@ssh3@vCv&_`~?i$Qx3Y z%e&+nd9PeAO}R;Kkz3^sStb24EF&^1_sae9kaT5-JR&{$@3XMw_!|n` zI{ZTrO{RAc>JY%X=(K-{7W|vYY(O8B7j=S3TqRA0q4tv50@VgU_gRs0S`8jdLD(#! zwiT#h&j5=scWDt|rgQ3{HJ~XL+BpdlVBu&-M|(zt!w=QkmQ_^;FQiaTX4v$`Fb?hT zFb|CcBB3M?HLJ}!v#%Wyn&~vYrdLmV}36Ii*r_h9BYr+#~!qGM16g1gGtYX}9 z)SSJbcB=SEGHXq5a~2zHMMBUpNBv1Gmh-SI3)@!B0Sc!b$0iXH<4i0S<#^eUnpe4q zts>lZKm!E|lV6*{g?0d@po*l}tw!ZmtARBtLS_?H=wrr)o&v@JRFj(p($wF7;>6(K z(9q~;B9Tm{Qt5Oilg*wwH8wUrp36;4OioTsO;69v%+Aiu&Cf3^EG{CkUH~VkCDMPS z-rQ!P(Fp8A)E3$Rb_D1FjsiU31c1%(VgOd@4FH1x7d3|(0Y-rYfS?{1TN=m!$kjvc z9^V4w@8y6AU=o-DrU5RNSztHd0gnTHz%k%B&=1T3HeVg=HZE42izvjCL_?ew!(S5# z)L?Ed#=bV*|7m@iPB6Hjw&PTBWDBZFSq}RBYHr#7z_R^_UduD+TH)mdZZg~Awym$9 z?WCx1@^jS-YM08HO6~vtg$q!-)c_Ac5+#O^zX~`1fGQ6=mtW@B8KRIOLX952(sGzm9UjL`xP6w%# z+Nqm*=@^})K^mnrjnO2{(juLqvveN*62A>9=x#hhYw12jGHDZSp{=xos>n}aicpjq z=@1>pZ-qXJ5tmlfu`K;WX~G5P=l9dGY_4b+q3{;6CyqE2;d3sY0xmLEHLM1bybgVd zP>A{>p%7gZqKiUwQHU-IkzXwr1?=LL!UZ#36q1V<#>G>@m(Hu@tM1ni`_1QFUv1pq z7B!H^=WNp9!{6GK*0wEv_R0B1@o`wd4su4c&AE{@RARS((Q?$UIM{sBJ}s5Afo literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/p/putty-screen b/usr/share/terminfo/p/putty-screen new file mode 100644 index 0000000000000000000000000000000000000000..d6510ae614b11a38ee97f3adfe3f4ea34da37743 GIT binary patch literal 2517 zcmb_eU2IfE6h3orBh=VdND$=;7G)AZ3HNV*>MdPbN?NqbR=O4F4M}Ue{h_ZXX#9!sMSVdNdBGPGAAG@RG$uY7AAIsj*YC{TrAw%ZL~nb(^Ua(y zbLXCOW@fhthqlt)R1$C1<%)&E!k+x_Oe&RK?ky&h$D8LS3ggW|PxDMFKe0HG9cxa_ z7gE{$#8fsx9T6YU$kGf-?cxqKQ&#i*PHZB`mJ97 zM~`uv^ET@b>!u#oAJq@&UAH;*zpnQ}<$bT~?^M{w`ltGpe^|v;{aoFpI>R5Jb<{wH zFDGQqk|UnX*>YqC9nKh_+wdQQdK|*K;?%WD1OIL^I?)H^$LvrVTS<{|r~_ogp?V?E zCroc0HG+pS0E;1JnQjYvx(pHSQs6REYdS_vpcw|`oCa|jY~^Sx&sb=DN2_I;d)wfJ zC9ESOV)!!{hjwI~hkC9TPV-PBYP1$tuY`a^xv8S`Gif9F}ByVQ83RP8xCG^_ZrKh(>vW zpb$n7Kf=OzC8mt=e7Ue(mIcp}9=B~!H=r;%$`lFOE=(cmW!SAn78+%$NqS^-Q@yGH z1YsJIhoI0BIY^cU2Zx46N5{rao}8Rar!$#sc4{h@o1UJT$>$4&VsUnMZf<^lVPSD` zX=!=6R9fNS4nUAxg;@U14r7;z24^Y}r!Ani%AKupXRF-VDlN9kovm``s9ZZL*N*ac zf?RXiBOKTiBU~)uEFcyh2C_IUp4);V&}SDH5Z9l5k- zzq@8XW^d&;sI2lnaBncn!kX1_)>vC zgQC=qE1fU(dfG^v)h)f7Jo0IXf*U!H`*;a^`8j%lUZS(~DxIg-=uNte`jJuZSuim(mw$>TDWRv#I2RNXqLTeTf{EAW=U*hCRB z3z>t=LvSu7*zXAliZFqSOW>?X;85W09(E6#nj;Mq0Ii7!-H`5xh|#P2apXznRj3(x&{hw9p?)UutMO{h^&{r^ED* zb`XgnhK0B=v1~{*CI*adSQrx)#)L%U!i6i0iN?g0D_15aIDY5Oln$XJ7^nTt`R+OA z{+@I1+oASiCpM#?-mS{c=JShnbNQg-EcbR(9@srOvN$w7m`m+W4=zs6=Ajh8|B{eK znTk@yVl|5E{;F{ZFEOSH&!8IHu?rgeP{-&Pj-d^mI75CG=O|Oe7$z}IJ&SoP<888H z@tTp>@d0k&CO*Y2d_l{XxQlP_E!j`R&nBi={D<1&dgNC{T~p?@>IJn`ZC5+ht4gbV zs!jz}SjAN%{YQva)uv9V9(9&{Kn<$%<$k4+9+flnM{PgHer!j_ zrE4OTh@_>f9kUzlfzuqJ4R29;mtc1^5sL&@+HsaRMKGkJi|8hLh+g6h(Z^0fcJf{6 zDO-<7D=aN;*ymXOVRC}=rtL0R(_EjRijD=H{NZTrrDU3@-H-t+n zk;9Pou(Vvg6fEdEof?AOVEcQrT#}QBP}80C(%iGG$8j82xMDH8nk*&Cbl^au+V-^Ru&abMx~H3yX^vFD@-DFBb}zhb=)8tAXeAlGJjTs&n>6w&yk~80voco^i_JdO1JPH?vMJ-xK9J+!W!qc_M5 zCZkgCp@%H!NIPh*NYKrol$NDfK_Aq4TkF=}K3t(Xq(`I+7g6E3QR#5k95*gkI=l+U z?Mg?e!tq(9gZo{beC2M1!;P*vuD)O42+9$ayZn0P<2BE))X3`YxKqWyZE#`p(=8wG z8f?MK=4-qk$8i#;(Tje(i6M+)0#nFg4i|9=S8x^A7$4yGy9Uqmq1b}09LdHj*o)V3 z0QK+?MFL5*-~>+bdp>|+oagLG*Ky1P?> zuEzC9TJ~WoT&i2DJWtFLbHqHcK*+Pgk~L2XYs)+<^32H7!W-c?$UXGTPjEED5o0}<{kM)Y= agEpCM?`fkv*&`!#^)ylTpYFgy2LA%Vb-y$K literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/q/qansi b/usr/share/terminfo/q/qansi new file mode 100644 index 0000000000000000000000000000000000000000..633429959ef4371a2ff58d482b244e9c4f832e9f GIT binary patch literal 2007 zcmb_cO=w(I6ux)Pt4SA4lqlFdEUESdTWp5nI^WHrpbFrYST1hB$Lb}nI!X* znaTeTC|IZ<{*)}LhzNDjMMV)s7b4Y#U5HQ+7rGH73kA`QilB_&xo;*hg1GU)ckXx2 zJ?Fdkop)xM9yn=$r$hRU8q=kP#J*7!ZSE1UxBnq9~Tc znz$sM6E7fgMQn;!w9f0W*MRHdE%C1SK-?6c>UgDcOMD@|1m6OF6m_yvX^>5@_sV8@ zK;AD~%dzV|2@mXFAG*(o2B-O`Z*a!?M-r{tKNK+d$x$)a44D{@0Vvt3iG-MwDI z{$=^Hd{thPH{|>BV|h#7mS69x`cD2Pn|wQU5BmbXi0?&2uJ|_p7T?Ku8__Mj^S$q< zT^Yale)s+9lT@kf0rt{9x{L0i{d6C^gJi+-bC`~jO(BZX2}C;RG@YSd>ZkMYF4Bn3 zN>Z9Klm(yD{yZ(yx@MKi)76!=o~6t5JiSDlbd_GCH|R~ePB-WsdXGM&kLVNnj6SE^ z^c8(W-_jQSKtI#3^auHjdZWR(+h{ggj8@|zLm6#GyTN+@{+#-c{eM>W7#EBujl5CZ zu3I&38fIcx)QNqC#G^84FyuD(Y+JY}{ClYN^n6PYp-{+R8L1){Mat3TLj9`-}UKFOvB zzc|xL0ZF(k0N<|w;Qd^1_ae{_3;^eVCxG+7AaDT~LN320%Z&ou2<#`YuY16{W6%e< z6Q{B07vgg?>8%m&sE)9dCOFR{JvGAWdW+ku3GU;O4#EC7d&*k1*R7*gYD_e4_rPla zy47Coj@P9CcPYpwRO?r~jXxA0&ffw!6Hr%<8&2@RmZMNxXIDcWO8C+a&mflW@dIa zo6Y6&`9fiCu2?LU%H{d_g@wh%rKRQNm6g@iwYBy2jSbv(7{Eu@mgf?0;f!PDIp#6P z=S(akHUS{Z!9+M|AOqxq831(-avl6OoM`~#;LHK@Ko0dKpbU=H;dKE%I^`?^O91o} zd;^SCf@^rJI0yG|aX%Mh;6l@dri(LN=(x~vk?SJQg^mjy7dkF#T^=EuUrw-JJ{l#JuQS3;a3@XkX@o$>=)(A*R{>c z-FfQTXAfWI{e7n`Ntf zOtwo;_Q+n@FQ1Y_as)9GGB1mAUM|aZ`OJ3CR_@O664o!vm*uPSn!F+3mmkYp^0xeX zN7i@pH(3|CllO2W7D+~4#LSh*#^2`eM7)jJO}+ActjbxKUDLRgs7CJ?zsgt_t9J~uOprbN0OyiUTpV9stEzz20& zk+q(s%k(_GL>qLKUZXeYO}b7u=pA~GKBSN66Z(ukr`z-ueM8^UCjCG^)35XgMT}~r z#<<6*Hx3#N#zTfOnv7`$3m#G7)LaIRHA&rANA&v1lR^cZ@KM9($+#DyTtWu3NTx+?)Y!kbM znKW%z#f#WIf!&qkR@$yj_?f}MOlD+cbaY~3a&l@am&@m;rwfIdnPPEvwp5y%o1b4; zSX^9MT3%jRSzTRQTVKa%`vE+f zL#&72hBpDA9lRM}4#*>a7AS#Z^mv?yk4kw9z#;(sfKPz73OI+`ieqpNALsMY20k=> zX!_X0hmH>&AF)2-eCYVl@uA}**XI_p`ErU)j7^-4!zRHd$)<@-ij5uBR_E9{$<`6J z4zYEN(lIL3)iFvdD=n?Gw$kEC=c+LGj2Upp|AWe3qeGDo literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/q/qansi-m b/usr/share/terminfo/q/qansi-m new file mode 100644 index 0000000000000000000000000000000000000000..3bae8ced099030b57c97efb52c90fbeb934a5942 GIT binary patch literal 2160 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 dGm?=%MJ8&AC73I!)DtW}HbU zp_=JpHCHROR)*T>a$TuxU90QWPVLoEoz+#h z>rUORJl(5&6{?4N1wpgGkPgd=qLZVv=(OmJ=&b0R=-jAj zbU~CJT@=;bs44=$n~np58ohX(B(-H>(bE zYN#SE%Lwfpmt_*)K-@N;bMO-UDt;YL!!z*${2u-W zzd~Ge%#o89$tUa`j($sUU609`5 zT#2XSop=TgrdWw*;ZF$W@V7WL?moO5e~*Jje#SrG75ELj4gZMu;9qg*l;u3?4~vwx7eJ@M!!z9)ri?TD%p%fXCtS_(ePcPsA_bNq91T885@j@uzqL{tSPP wH{vhwmv|H2jJM#A@%rQ|#@8huG^a38)Gbj|m?%gT)KMX>r&AC73I!)DtW}HbU zp_=JpHCHROR)*T>a$TuxU90QWPVLoEoz+#h z>rUORJl(5&6{?4N1wpgGkPgd=qLZVv=(OmJ=&b0R=-jAj zbU~CJT@=;bs44=$n~np58ohX(B(-H>(bE zYN#SE%Lwfpmt_*)K-@N;bMO-UDt;YL!!z*${2u-W zzd~Ge%#o89$tUa`j($sUU609`5 zT#2XSop=TgrdWw*;ZF$W@V7WL?moO5e~*Jje#SrG75ELj4gZMu;9qg*l;u3?4~vwx7eJ@M!!z9)ri?TD%p%fXCtS_(ePcPsA_bNq91T885@j@uzqL{tSPP wH{vhwmv|H2jJM#A@%rQ|#@8huG^a38)Gbj|m?%gT)KMX>r z5fKrs$Yvv@e2a)k$s$TbDW#OsbamdxyOtS$^hal&x$f(}?(eJTB zT~T45f+z2}>w&A2O1qTgCl&PQRh*NQ(>tfIq?qbqabf`@QllE#)S>}8&8R~i&PY@& zL~v17i!(VZV&{;|Wn4j8$gZMg!0Wk*Oj<=%sWn-&N$~gr*|eoyl((m26!Ykss23#S z z|1520?-*VwgogJoEz zwX)WhWo<0m+FCnnZx7oe*3oh--?~|$6$Q@{E43%AzYVZKHpGV62peUiZLE#Ai8k4$ z+H{*~E^rN8BX_ZD;$kk@RiESkjm=N^UgXH}Wp0d{;HJCU)WhHIv+#Ek$M&(FX|bkBO=Hbtonk%Ht0{HEEPUV8aK(M! zH2f|2%)rv|x%k`g{qQ&9yWo?f=OKK5-@#}2X83%6FY(v`pORXF&%xh{zC~Z7DdQ( z=yx;|EkkS3ALuCh6U{@rQ6*Z5R-@3Mf1$StU8+yeF|+{vjXpvv&@MC=y@j4bBTyL{ ziAJH&^e>>%gwEHCXgk`0#-efPB{UvQKrf?-XcBq_O-3K0C1?}cj6OqK(C6q2v=x1c zwxKGt0d0(bMSpYrgJ$Q(@;b)ya$}uiovWpg*GMV&CgEpiq~}N2J&tMJ16&sgEstZ6 b8^`TZ(}PP&MvLRqqFP!4gtO3)ooXwhR)qKt}eHVO2lERt5&zW*lbPP45RI=L`0;B zh=_=YXj&=4WjbOkfgIn8pldF^739U=d4L%6q>00V`NVHMOkglYgm3%I7*Z@$FeE z`#5kqKXew~pnKT!jjbV%qbAnWF1IV~YIAn2CE4|sY^|)drC1xg$!@W9yWQ@vj@H?_ zT6gPd_uGT^uw~h!mTkF~Zv|enpAE1v2+GLw*(`}~Bwz)Rn z7TRK~@cosx%$D0qtFjtfXB%vzZMH48&9+;e?Y6zP-wxVgJ7UM|xSg<*cFJTyaDI>w zTohaqTozmrTop7At_c!@>w@?_{@?Y6dfk>mdObeZJ$eKea51j4>w@b_6f?u()G#?Q zIlM8<4vW*`kPCemt}MlWXIGYryA#*JqcmJD?rz)=Tskfv*CI9_!9D4++-Jr+@9hT_rVxDhF3T zv8ME0^fanMbI?9C7kN{xMf1_;cys7`g3~mZFtt6Z#vyk4~ZW zs0Qspi_sF~P5nF?hj+GKMB~u}^b(qgCZRgC3%!gcqbcYWG!;!lucGN_26_#xLaWgi zXbbuhZAIJASLkcB9qm9n(PwCL^op*1^q?8JVP5YrFE`8ybK;cG8>pnHDsR zxK>Dz#KAv`ST~)&_0VCT-RhZPRwu zXt(xizYgkf{QCb9NB^Fi*35s6<2sKE2%W<1gwCXM_e7soiJYvQ#MOx&i9X5tE$7Fs zDCKYyp*`Ui!azb>LbFVMkT59Zh1_rzA(xOx=!o~@y?7>m3$Mg);!p9%coQCiN8xAj zP&^Djhlk@4_<1}MzlIm$D3dvO0iKQDz!i8o-iK!q?n?j7ZP7?~*5p?_xufUmqMf~} zir4qvQ?jn_uCnTWmHpQYSX&@P;otEeI2!0%T#47=4R{5v z#qZ)M@z3xQ{1L9ki}Bm|1w0y$!7t*mcpQESkH-`6L|jAK6qE2|JOxk1)9}kUdUiUV qK{T#E#H;a_cnkgtZ^hg2*Z3Q}9q+(9@#lDR`s6}(`hr^~ALB13Fw08- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/q/qnxt4 b/usr/share/terminfo/q/qnxt4 new file mode 100644 index 0000000000000000000000000000000000000000..b23d7a8389411a4ea9f92a4d7aa9fe9b371c975b GIT binary patch literal 1369 zcmb`Ge{j!r9LFE8Pr9a*>gtO3)ooXwhR)qKt}eHVO2lERt5&zW*lbPP45RI=L`0;B zh=_=YXj&=4WjbOkfgIn8pldF^739U=d4L%6q>00V`NVHMOkglYgm3%I7*Z@$FeE z`#5kqKXew~pnKT!jjbV%qbAnWF1IV~YIAn2CE4|sY^|)drC1xg$!@W9yWQ@vj@H?_ zT6gPd_uGT^uw~h!mTkF~Zv|enpAE1v2+GLw*(`}~Bwz)Rn z7TRK~@cosx%$D0qtFjtfXB%vzZMH48&9+;e?Y6zP-wxVgJ7UM|xSg<*cFJTyaDI>w zTohaqTozmrTop7At_c!@>w@?_{@?Y6dfk>mdObeZJ$eKea51j4>w@b_6f?u()G#?Q zIlM8<4vW*`kPCemt}MlWXIGYryA#*JqcmJD?rz)=Tskfv*CI9_!9D4++-Jr+@9hT_rVxDhF3T zv8ME0^fanMbI?9C7kN{xMf1_;cys7`g3~mZFtt6Z#vyk4~ZW zs0Qspi_sF~P5nF?hj+GKMB~u}^b(qgCZRgC3%!gcqbcYWG!;!lucGN_26_#xLaWgi zXbbuhZAIJASLkcB9qm9n(PwCL^op*1^q?8JVP5YrFE`8ybK;cG8>pnHDpGOsoB~vSY~I`-Iq3d_inpewka>A zl!)GxQc5YMl+6;Q+HJQIB_gU#NhKm8BAWd=_s-tgGX7zlIrE(F^L?KAo|ie__LfEp zXOnHY!GO}L%4n=KHZ?>G=e<{kDhtY^#ie~pLb38tBvx7xD=8p3EDp@a z1ZZI`hgMvK{$Vt!NvHS<1c`bp+R!$E+R=edq>=USDN8UF3}P@td6eOdWHe8C_8G=Ai78BD2D6yMJQlEsB`oDl zUwxYutfGzv*7N?~RO8D3c5LFylT`Myzd8TrB)&!Wpy%6IOP)k+t(~1~=i7zm>=H|{ z%PiG8S(>F=XS>R-u`Ij6ZnCb{&3af*>uq=0J$9ev*#j1_LMyfsuNkv)8)#KF#2&F> zHo`{P7#nNjY@$uJsW#na+H9L^^KGFmwrbyBW6Ny0t+ZOJw{^C`Hri&}Vq0ySHQFxQ zWBcrY9kfGs*pApyJ7&jC76hjTt%Eayvx0Mi^MVV4_QAzLD7Z98-sAsWFK^auQpX_c zKkv~iIE^!L-CTEE58^R5T$T||4W)*!2uH$YnMug$z6&=voz^~P;BLls@hB5lh`SXx z1eb*?#&t-{`*9DuJa@h8i0kL>Ain0|3UFP~KC}nTM2pb7XaV{Fy@xiUVQ35*jvhxN z&`9(I8ihuqC($gl5UoHjqgT;vG!IpychFbpC0x-7M~+`4g5TR8{dVuVUX6XK`)_}6 zb;*usZRy(B?g0%IJ1gr4)(on9Xie1{=rL4_=AgZ3F7l>Wi{_(`@aE9h$bZ~JXg~TE zd5iprzC&x!YiJkx9vwhGBma*Nqo2?h=vVXu^5Vie5o=Xao8U{f>^I*O7Ni z4QfE^&~o$#T8dVpP3TYb7CMgBqk6O(Ek;X_H}%tKEZ*6A7L7yW(F8ORO+t-mCwdM| zMpMx9Xeye9UO>~)4D=#eg;t}F(H8Ux`V?(NpP|puHnbh>Kp&#b@mF*=#ve4NFkI9( WTvQm&59cQ-pSMsc@vijDeEtIPAJ&Wj literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/q/qnxw b/usr/share/terminfo/q/qnxw new file mode 100644 index 0000000000000000000000000000000000000000..8c9498a7972f516e0e2f13c80697ba4d161ff547 GIT binary patch literal 1464 zcmb`GeUOe-7{-71$qbqFX=*q%ZJIZv+K-ApciKrQjoR8qZDp#pcGuUkpoX!EC5tE#rIb=i)75z&@7guvkN$Axnd`pp>pstQ&Uv15H@35BLPN4_ zhAS#8DSq|(pbn%iZTY-x72U1QftqGi)e5aBc=onpd%{YszYVm(Hq?gO2pegmZLE#Ai8k5FZJN!nSvJS! z+Watop)In-w$xVGDqCagY=dpG%~oaGZKv(BJ+{yG+W|XhhwQK&v47269aq=YcMaT` z?i_cnYvj&%7rG`c=9;En*#GJ=3Zw^}{TD-;{90ecx34&G?MK((rls zTk-wyH{d(tn?=uq_)_1&r~Bsk0)G$j*a4rM(i`6ie+&8!eS;>Ux6mT=CR&45p|xlL z8it-m1JNM#3>u7vpl8ug^ctFpK0xJY2AYE2Kow{q`W8*b=hxbI{4^a28wmTqJ+$Fn zTOY0HvZd?dZdKhY3s>~mQMA0*w%*J7%zJ!E@zRpHs6VPiucKXPDtZ^KK-1A@=smOt z?M2}-??(I3Cn#LtAJI}Y3w@3Dqwmo{6fXWR=vTBI9YQ~&V7>tThJHtXplN6cT8;ih zhtXeX4%&(4q2*{L3Jv-W}E7tTVc#>EoAP%DHXf=e&`#6`ev5(AQwV3srkI|DC+v@ru0FnFXG Uq%#W}E7tTVc#>EoAP%DHXf=e&`#6`ev5(AQwV3srkI|DC+v@ru0FnFXG Uq%#|(7w*=4hFP*^0{cEgrz%E7_G!NI}7 z!NEaFNm5EmF3SHjzB4=HG8b=s-sk&1&-?s%->?!v7n*T}A5?1xhHlgyW7hMBdz&h? zN}sw`E~)vY0<{T6L1TFqP>_RVbrajy#Cnz$KoITdpt7t^L@_`$L=22@A0=Z*V3O9q z(#T@oi7dMDB37_Uz4Lc}7iH?Id)`M4N7TnS;eLuUoZ|wQeAhK@aEm+K;{lI&a_>L8 z_QkdS8UE*a#hb6fyW{!b{)sPN)T{dq$s&LdWEf#c0kRAk*D8hl0G4d*mT$yMmJ$blWM(5R@!Q hkts4wW=NXMk_?#(vA37+bWcH&oJb6`Iz!kG`2{^@`tSe% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/q/qvt101+ b/usr/share/terminfo/q/qvt101+ new file mode 100644 index 0000000000000000000000000000000000000000..4a9cd947f9408038c5085599d2f3566527c3c7cc GIT binary patch literal 586 zcma)&&nts*9LL{J(ilt0LHm@RgQsEPd1gWl8)jC@X0$js*pP&0Y%5vH!NI}7!NI}7 z!9hw%Qc6lL%HQPi-m_;)yZF}Y`+0x9pYP|#_v=-9(1vIri@i|M#BpQd8m8K6&H*j*psXwe}|@4i`L-0eB$`kR`~dW*VAL^=W=B zqnUxKIri@i|M#BpQd8m8K6&H*j*psXwe}|@4i`L-0eB$`kR`~dW*VAL^=W=B zqnUxKjuN% zceOkiC2YG-X&$v{u5J79(@l>m+wLXGu&PldMndhll4OFEdhg0oV9tqD-1q`jmQ-*4 z-QS|7y6*0GXt1yPfFrfXoN&q+=Ui~bH8&%{h5j z`@yFt+N%476!8&2#t0$vNEMkf>oGGDj+jw%#jM9$QopjF4rD}svO+qoNl$pjOHc9rub%Se)pva0GvM;w{rcs3zVSo)4RkzH@SQNTg76;^} zQu|YabR;?=gehnhW8Y|*M%6J|QKNc7!P;ZWX_e@vo{UFQylm-7OV*w+)RUtvg-O}O zAEH&VdNL~A8L!5h9+*DZ0f_m^|CM74>x?3!#Mow(85@i&Bg5y?Wyx#;Uer zlM8gZK)VaWw~ZRQzC{K#t-RtpaVjBr zM$CzMQ6bw(?M@k_15p<~Oh7B?`+D8b%W=JK>g5v()*e$+zLqpHbg zQ--aru&S-t|(7w*=4hFP*^0{cEgrz%E7_G!NI}7 z!NEaFNm5EmF3SHjzB4=HG8b=s-sk&1&-?s%->?!v7n*T}A5?1xhHlgyW7hMBdz&h? zN}sw`E~)vY0<{T6L1TFqP>_RVbrajy#Cnz$KoITdpt7t^L@_`$L=22@A0=Z*V3O9q z(#T@oi7dMDB37_Uz4Lc}7iH?Id)`M4N7TnS;eLuUoZ|wQeAhK@aEm+K;{lI&a_>L8 z_QkdS8UE*a#hb6fyW{!b{)sPN)T{dq$s&LdWEf#c0kRAk*D8hl0G4d*mT$yMmJ$blWM(5R@!Q hkts4wW=NXMk_?#(vA37+bWcH&oJb6`Iz!kG`2{^@`tSe% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/q/qvt119 b/usr/share/terminfo/q/qvt119 new file mode 100644 index 0000000000000000000000000000000000000000..02216cd8917eb930656adff0498a4415043eebda GIT binary patch literal 585 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 MqY03PM)4wi1HF{UXhqE8K|H!AHLGW^c) zh#FO6Mn6pMRj$cQstVOYPsgG-tHh4lQafr-ol*bn$vvO^OI@gbyoS|uzBwzdvs7|c zJZEW*hX0jNwVK|%9f$cci;s5fYrZ$0^i&xuV^BBogILXq9eX-GW4K|*k*;fYTr6r4 zw#`3oCW032D68&8kU1F#33FMI@j^ORws3!amKm?OLv$m-f}l8FUTe=4^aTUKP*5l9 zb37HE878OQ#3~E7tSPcwm0lo%$y6|&3ig!QsK+rUXhqE8K|H!AHLGW^c) zh#FO6Mn6pMRj$cQstVOYPsgG-tHh4lQafr-ol*bn$vvO^OI@gbyoS|uzBwzdvs7|c zJZEW*hX0jNwVK|%9f$cci;s5fYrZ$0^i&xuV^BBogILXq9eX-GW4K|*k*;fYTr6r4 zw#`3oCW032D68&8kU1F#33FMI@j^ORws3!amKm?OLv$m-f}l8FUTe=4^aTUKP*5l9 zb37HE878OQ#3~E7tSPcwm0lo%$y6|&3ig!QsK+r(&zaWJu~!D>T7yS?}a{yexz;MF^N3iHT0Rj z(6^DB=Ld$r(+|)g{iI(s#*=)Sr`h6Se`if~O+C-E92qVW|JRzyT;Vq8#<3N*#CZaJ z&M){Czu`~dy<@q5-@eaZd4f)n)pgh1P2cTR-A(28?!ySyAWf^Qt~zPt)zMsY(m>ad z@zpiC;q4haH#Q2*T1SYnUNdHf61a zUf=3A0{v{Em?0Cfm-Z!is`3=-$D)a-ILgzke9=HO6pci6vV9r%JnlIp8-8ZhrS`2F zsvMghAb?~6h!=o0b=emr%pj4LSnoB#|4qn>X$mK+kGLggh=mRPvSBrLs~QzBEHL=( XhQO$BF9LnHYL22wlNgQ>q8S|l1cFjS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/q/qvt203-25-w b/usr/share/terminfo/q/qvt203-25-w new file mode 100644 index 0000000000000000000000000000000000000000..6db30c09bd747631a55ed2f0d198eebbcb5b1f87 GIT binary patch literal 855 zcmZXRF>KRN5QhIpkxDBerVg!D$(3v&h6?-H#tCr~l`uq*C`BbK5d#p^R7y&rX)7cI z3j+%)5)&&U0|+r7rmifAfr*KUiHQk?|DB)PLae<1zPtSQPChTF0CSkeOB|^Cdm|l0 z%Q{)!e{}7}b(e{|*6ggi`J=Q;{km|Qp9F{uT0_m z_9c3B`7t$2MN6Vm(SczdibkTbXd-Hy?aMrMo>e+);lQa%>^m!rvMMt`fX*Cf&p~>k zzSCWa1HMxUPKsG>&#bW}d!n&snn#t?uNc(CILGLy8WWSedVv`F75lmk%y3vOH5;p? G1N;Ts;!E%V literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/q/qvt203-w b/usr/share/terminfo/q/qvt203-w new file mode 100644 index 0000000000000000000000000000000000000000..9cf664031dd5bb6afa3cbdd2bce766cf2e2b847f GIT binary patch literal 888 zcmZXRKWGzi6vw|mE7TUmsh~ZC6YkIsrMZ7z(wqr3B0&>UDVc&p=mitFG_|cMLQw|? z7gxc_)zQUK1kuGo1aWY3a&mHVlKB0-yKAdC^83Ee``&xM$Gt47>sY`np5wE+JKl2( z-tzuI4$Ix)!L574o=L;xD|5Zk-Y^GSrsKKh<|x@UFYT{%<8gOuvlpA=LEIZH0ZM*2 z{wO@gDV)Vbo*72q1Wt1DA}(S@{34oYkv1f2Q*ZP1FqC{U8RKC_Pb5CYGrSObDf$Yp z@g}QC=V<+aPxx}o{hIMNd?)?DPyE7f{K1TxQ)g7#w~)niSv;>UsHKdLZk{G5t65bw zQeElxrmsU3A+JyLJU@22YhzxloTsAh2*M#mo5+m0QV?QPeNcW8KbD0QRb-ms#e zP+@Y@iaZ?;jemOTEURE%H}MZKIyEbDb@f^n*R3ejdDDtYB@Mwad*kHb_i2ZDb_jm% zUDVc&p=mitFG_|cMLQw|? z7gxc_)zQUK1kuGo1aWY3a&mHVlKB0-yKAdC^83Ee``&xM$Gt47>sY`np5wE+JKl2( z-tzuI4$Ix)!L574o=L;xD|5Zk-Y^GSrsKKh<|x@UFYT{%<8gOuvlpA=LEIZH0ZM*2 z{wO@gDV)Vbo*72q1Wt1DA}(S@{34oYkv1f2Q*ZP1FqC{U8RKC_Pb5CYGrSObDf$Yp z@g}QC=V<+aPxx}o{hIMNd?)?DPyE7f{K1TxQ)g7#w~)niSv;>UsHKdLZk{G5t65bw zQeElxrmsU3A+JyLJU@22YhzxloTsAh2*M#mo5+m0QV?QPeNcW8KbD0QRb-ms#e zP+@Y@iaZ?;jemOTEURE%H}MZKIyEbDb@f^n*R3ejdDDtYB@Mwad*kHb_i2ZDb_jm% z$!+s9qVnS|MZC0`}xDb=m&1OTpJM0WQOAg5?x$+w%Ns>}7 z+`9Dx{0F6!l7BFsnf+)lMg{ S3TB}qBN2n>hkH{;CB6ZawDzX} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rbcomm-nam b/usr/share/terminfo/r/rbcomm-nam new file mode 100644 index 0000000000000000000000000000000000000000..8cc0f9baa38a0347d7908b51848e9a1be7e9b425 GIT binary patch literal 588 zcmaKp-%0{O6vjU*%q&qNDV?nCVyTEI4bhMcwr--9tZt;J*p$+6Q$&&e5nc5R5fKp) z1VOjm_5i&@5JV8Y!uIXDg%{Bd`+dK2=FFL4Cg>Q07tJ`s7s^|iqOOnbY5LKeqDrY5 zsg|$gq-DiSTU@MGB&}L0*2-E54#4_p1V;)k1V}A#k_;mNfj+un3}BL;fI^+cJXPht zh$X7|tssqcY%tn{M%_jZyC{&V*vA15af}nY)-Xe&V#mDkNBq65YF*mh(s6ViP9y7tCMdS>;^>1J&gi$z4Kh=ycf-9$-$H&RrTRvNo1l1P6<5cCWY5fKpt zLATxZ0KG#HL=e5gc4pnei)d!|ob!G2&6(jFpEL{?8gYg%ls7U(T_36*P9;;y+=Noi z@8*<+q)00Hf)WgeluS{p=mkYDW;Y>80KeLhq*K`8WzYm0m0@@xqlau5eHbOjkt9xH znwa80i+Q3Li%4SytBlsLPTWEcJJ6^q*uy>!aD-#4)-X;ibxywc%^JpKov!)T201Ejn?eh|0V1#USpWb4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rca b/usr/share/terminfo/r/rca new file mode 100644 index 0000000000000000000000000000000000000000..56c610162ebea055077206070277df4cf3776d14 GIT binary patch literal 209 zcmb1Q6k||hU}n%^&}Jw~POJ%Xc2p=UFg7+Y)CW?g28Iko0Y(jm|NkX`7zP;NY$hN} z8qSjivgF}Bm}*p75lvo=frmjlQnkQPRb4?{Ra-S#wZI6*WRPMIW#DFzmJT)q5e5tZ DC2v{^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rcons b/usr/share/terminfo/r/rcons new file mode 100644 index 0000000000000000000000000000000000000000..c031009cc2d11ac1025794b4b6ea75dcd30653b3 GIT binary patch literal 972 zcmb_ayG{Z@6g`8)_am`VDMZbL7!zf7K|o>z#KZ?gjIq+j0EI>bfx;LPIy*Z%J39+I zI|~b2TU%QT<2T^lI|~7XN+&t@+{c-_XOf)~6Bt7e=0!vl)A{pKCAJ@T7mrKjESLGS zEFi!~lRyf!+AINZP^{IQ=*1vsqnKu%;W$UpLs-BP*Os>RmY%xL#T%*K2_Ie6pG}i5%D=gG zh~_=cma2KuDIe;f9&hVSa_w&GcG}jx=Mjs4y5D{Ce@y&hMf70=!*Ct$5Vi^OL>83H zgk`~ynN9k|`l-22h!RqSBq5Ni2P?4#B#`qWr~voB_(=`>(DFLtWLp{6O#UDh}MF#)? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rcons-color b/usr/share/terminfo/r/rcons-color new file mode 100644 index 0000000000000000000000000000000000000000..e7a7013c73ad2c0e54cc6e9f7fa6bc9ac032f353 GIT binary patch literal 1184 zcmc&yzb`{k7(G|S?;nW`5f8aBh;rX6RgGw?62DbMBB@16qJmc2gowmuv)ODmgUx0z zSgls8LHrGT_q(?Z+D;^1a_%|b`M&$T^ODygeCR?eQes_Xlj(!pU^2az&YnhBV@`H6 zm)~YHy|?WgrSdyYWNCHQ;R!&1A49e<7PaE|_~<2+K6MC_4^(lt8Z~HO)q-y39zOf% z>?aIhi0jfl9>#2E!g8c!avHPbEn0t>c%?YAh7BaKi$fga4ClDOC9ZHy{Tsq9?r?8s zABuNMQxu#>JkiuM;icmA>zB?O>36QHL}7>K>TlK8PC4CJX1eW%*Uq)`!!5V1vez$s zzq(&}^IvpE#JC9mW4@SJ618YX6FL*~ggJst$&8X)A(?UI)(rjPb!1KvB7`_$kr3D~ z99n3E2@5oPMjR!$uKz@n=P|h>hDHqq42>BIGI_&>lp&W%nJs?45aYeJ!J7)XII<4M zLMLRQL$O#Ok)v=$vR@^nk_ NsXyQ2*J$Op>Jwt8;eP-C literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rebus3180 b/usr/share/terminfo/r/rebus3180 new file mode 100644 index 0000000000000000000000000000000000000000..2890ee5ab2d8fb9b9f17a5776d76114f69802bc1 GIT binary patch literal 738 zcma)4y-UMD6o03KADf%>5HmE=Ex9x$g~pa@hEh>$6+tq!B#=VHlBOM`gNw7Pf~)_5 zI5;>sI5;>sI6C@o#CMmEwkYC}_xs9wcL_<3=&%6`a04cBoM0Td-Ql3f%IX-M;5JVb z%W6y9O2L5i?9ljSn~-3@(Qd&L3j-s&_uN-Tnq6;sCXud zy5P_F5nRBfNUoCn8g8?WyG%vV{gi&l^dqV#c!rlONl$uBlDCB4;R8N@bfw+@`rEb}DjTlbryl-JrJC%$p@usiND-n?)fe(ab~x zJMsQ9AH;7#?d`m&iGg}5N~ft}nKGsn4(XYl2#hnsDw-bPbLkZppRxsXzlC*x)y6u+ zZi}CeRmZ9^pYq4AF^_Hnt)eRW2s(!n2g5@sd!U^6`pUrT1g;Wxx&t>Yi>n*#{*BiFlJgh`Ob%E=6uR6 zzWHHUIYHP{dvVVl?(n_yemwygdK&i6O;61$F*2xeba4q*2m3jmc={8s<~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/regent200 b/usr/share/terminfo/r/regent200 new file mode 100644 index 0000000000000000000000000000000000000000..07a979a17eaf7266c59be87b8546752a56505739 GIT binary patch literal 728 zcmb7?!An$87{z~YFrC5y7YQ=A#jAWySj3y>IO8H}lJOFlG?|D|iwQ@J?j%-|6-kR0 zEn2t`YT-fzi3o%s2!bFG{|lkN<#p!GvrP->!THWP_kQ<&=RIED8)bwOeBd`vmzI}S z+U0P)E21!5f6#0`>+tnj?T$a2?EB>qJdS_7I&nNCcmiZpwKs;8Kdy3JhT7r4jb->&6UwZ!dIuZdsrI(2WvZ+XXiHrV7NTk_lN zsP3j6pHlvu@E7*PU-`y&e(;lD>25dE|JMCuPamk`kUnzsW2P|sYz3Bj_8RE=8K66$R&k5&+VIdGkgo1D(htqtg08R;< OA~@Of#^o1yqd{l(xaEhdj60F|af6 zGVm}+doxI9Ge}3O78t6kE2yh#t0t=!7{QnfTtF!W1qM-IC^0ff0lAD|Hi!iPw=VP7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/regent40 b/usr/share/terminfo/r/regent40 new file mode 100644 index 0000000000000000000000000000000000000000..2866deff352e6878d7b558908e3c94bda255e307 GIT binary patch literal 500 zcma)&-A4pr6vlru`q0|Bj5TvJ7rhOY%*@VyT&!%2S5&OJsVZi;?u`j|WE_dM{(6VJR9?&S9W>sMxRDC2G7UEuAjexw3FP|NB>_2W-TNi5%I zUVh2K#k*W+#Y<~=VMjO;+TUz{cqQz}!H$KhkO(!QE;NLuBb)MlE;>TT=qfrv*U)uz I1KpIP@0z;bA^-pY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/regent40+ b/usr/share/terminfo/r/regent40+ new file mode 100644 index 0000000000000000000000000000000000000000..ca00e0719a75727820f8c98034a4838464457e3f GIT binary patch literal 505 zcmb7=-A4pr6vltE`q0|BjLh83MbpqGGqbZF7b{!FD=Jodl|;!%`mklYh>}V~L_|dT zQ>QcUOcULt!|$Bunddk!V;L56jC02)=gC2GI*R=I)p8sUoK0;V@nG$6VJTx${X)Rn&16z|6mf68ul9Y5%!il3|!Cg+`7B(4#RIr zRU*e>TKIO8H}lJOFlG?|D|iwQ@J?j%-|6-kR0 zEn2t`YT-fzi3o%s2!bFG{|lkN<#p!GvrP->!THWP_kQ<&=RIED8)bwOeBd`vmzI}S z+U0P)E21!5f6#0`>+tnj?T$a2?EB>qJdS_7I&nNCcmiZpwKs;8Kdy3JhT7r4jb->&6UwZ!dIuZdsrI(2WvZ+XXiHrV7NTk_lN zsP3j6pHlvu@E7*PU-`y&e(;lD>25dE|JMCuPamk`kUnzsW2P|sYz3Bj_8RE=8K66$R&k5&+VIdGkgo1D(htqtg08R;< OA~)J*wD=R2c5o={>7|;3w5D{I1L0 zZnAG<2i6|q2*)_VANr>_yVr4UBNx_Q;)?3}?>g%TP8d!()6RR^Ibxpp*I95H(F7H^ z^X{T{XR_|1=gw3ah<_mItS+cvgld!!d#A2|r?!ZuKT+oIi7k;bCCWj<^LYo~Dx?}1^LZ(VXrSQaTU%+GF1}Q{oh5!Hn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rt6221-w b/usr/share/terminfo/r/rt6221-w new file mode 100644 index 0000000000000000000000000000000000000000..8afc1c57bfe55d3da963f897b70ae2825857de3f GIT binary patch literal 820 zcmb7BJ4hT+6g{JYpO9GD_$&l7sF=XK+1Ve9iYAdoO*E#G!GO5xio2lemmt{KqzQqf zut*^(EG#T6EG$w40x2vkQUq+%+NPbH`}R4k(Z+#u?m74K-n&e@(}6y8;}c3wWj*El z`svor)NFZuez{Xzr%rj>K?XNJ$Ji>@R7}Fb0h-_;GGD!oRd;`G;5<-=2DG6akI`e! zdxCxpVg%!KuP}`n%%d3Jw1y45i=EuLi#@z&<^w+3{AcXP9baMa_)-n7Aj067D+m%^C}#r8Y3j$=*#1QZDJTmmiYH17D?G6Mz zQc0Ui36E%!Ws(+3#}t&&%7l1}UeBC43^g%Hye6iIH|%&$$OS`C15o{#9MObNB!~d& z1&d}WPFIDDn2gLB!QoJE@o9;4SvX79n=16Zk_rbCLMc*pr<6S3?2wUMR;-pro%4eV c->kw_)id0xdOg*Zlvib-(r7W;=g|!O10E)7&;S4c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rtpc b/usr/share/terminfo/r/rtpc new file mode 100644 index 0000000000000000000000000000000000000000..46bd1afb12351e554a72e079895fb59ef91a2ad7 GIT binary patch literal 587 zcmZ{g+bcv-6vjW7qNyp*zL))SNK-mPreq#mW{km<`}JwejJYu87-S5IQlykpQc5YM zlm{iHy!*4Zb+$8+vTLpNTi;rHuhnj?3!@DUIKwB(+fM2rzfw#($zbRpKA2FUU{8;V zR<<)6=}cNBN*kqAu3Rc+RIHqIa{1JjisZMP_2eEH`FArBEkf;R$@TC_(n9r z2fvWkE$Bc%sMBP&_-;cX^qQ!3#EV+Tgr+cy1*0r`dKy_n1uu7BEeboo^0LP}s0i)j z5XU&dDb8_$OI+bv)Elu|+~FP%cocpT)B4$Xm;RoYe=C1GfAUwn$*p&D^Fw~Y4~~Fi zU>qC;7cD1fwX1e3V5KaltA_Gf($)+PfdgOyEO4=3G0rt`2^{9C-NzNX4|I$$5AJf4 zRStqxVYrRs?h7J>!D(;?oCW7V>74*4!6}*V&N%`jU=+-nfdVmi>}t@4-{-C(E7;#F JSOLWnz5q<;_9p-U literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rxvt b/usr/share/terminfo/r/rxvt new file mode 100644 index 0000000000000000000000000000000000000000..fac9de183c813b27bdf340241cf16c64796b1906 GIT binary patch literal 2234 zcmbtVO>9(E6h8OeB2=YSB8m)=mh@@Cp!4o~Gtc*c$7DhKLWZ}k`5EEIj(1i<4j0;Uv#_yb&slWIWU*>%GyXSuQ z%suD4m%Cj>=|Q@SvTAc(VR^AwV%R&D^K%8EO~vs-W;&blo5nK>eyW%&G_@w1j!$RP zxuvGzmHFa$W;c<-4<=8QtWT?MXa;E$ZKLvEJe%kM-GraWqB`12+i4e0wFlY|9ilk( z(J=TiItd(=2x-A7nxPyOg|7)dN9X7~*h_SQUcq>Y-k`VWJz2X-*JLc0f57-tmEXju zRk^$ocBk5+wy6hHi`t`tDy;UYE)`b;Y8Y!t*h!UA6KY0f!3%0ptzi87r=*@&FGBUQ zdQH8K@tr^Hcwb!?PlI*0wZqzJHCrv#q*X4@z$%Y#<*lN%Y?Z|G4Dj9cHC9~y-HbgS zT36uv=uduLyY=%i^q*MQ)^~kw-LSrt*;l}Cs{ZfR*URPat)DHe>vf~vssp-NKcx3+ zS4VY+KB$lC$MkXilpfR5I;R)(s(x0V(=X@?`c-{VU(#>txAkTHfxh*5e!FtzU+QXm zuIf+qXZnWz;y>=I?f*aH*VX_0R{vOK8|v!oHqvGaoUo_uyknqyd9kox zjn*dzb0!74Z65t-u&4+%yD+XSPGCdepm+0%nrm|ddhN~Bzu z1@?nU)%$CNk0G7|HPTlj988utjt~xlqe@O8$x5_o&t)1nHK1qSruE6dfC^sO%N0gqqEnw26Hf9k9!;prBnS>a|U`ASML~Nu*M!IFB zrAAunR)R`9UD3N0z5I{yIF{p_Vl;xTpeGm-j0nohu;Vb~}yWvFH+-S^;@@K=9a^?NunO9@2c=cL? ze9IBtOOMcXxi&YT{SCB*?xP*ljC=243X(@rYNu|w`vz%*lDPXuu}jl!bO-M1d+2`J zNj9_&g(*gzbeQ^aOFltQ(-=*WPkG#nI0WY@Dd3Ap@K+%@w{bdBvxuZ8)c{LK19=u^ zztk$ke$EcxRf269hS-TkSb;i|lpLYip6(Ds7%;$w*};LH3c?vr^n(Mzds*7c(!N6@ ipaaP&!ZSGZI6Oe`pvHtkx`kDDJe=IiCmOaYLdyaG^HgQvMu9H z{}|)V%NpfXMG#o($iSHnXb3{;h)l>bSuwhjk!9|wY8G3G{!~RvV@+dLBj0Gtep11c z%cc^8Gu+XLO+K2+^saJDqaV}d>tyEnzYt5|lSC>@QR}QF^#^Oz_ OC{-`ktiIf^i0~Ki5EzO8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rxvt-16color b/usr/share/terminfo/r/rxvt-16color new file mode 100644 index 0000000000000000000000000000000000000000..6fcc3e8746dbc4462ee7179f9c88d02c54004550 GIT binary patch literal 2494 zcmcImO>9(E6h8M|D&kK;A_@#jF}=2y0Q2s9^QMylDy6^xZKsx2s~~phl>W`M!*u$` zbcmW5HfUm4s4LyDP&fW0vM`t!7P4?-Oo)jrSm?qS-MG+&I)3NOYyAP#4KF?4{mwbx zz3<+8?wj6?YCAnjYiLqER9BpzEp2myp{d+dagm*dxv|n{gBvtRXu2UcHZk0g8JjN+ z7xP34e=vDMvh0RoQayAht*7cuo;B#+fDDmCD`*{Uq(?B57DQsSpHkFGN5K2(7;q3) zt!4#BX`H60B)lT{BAumkV6W17dL8WrdWYVlk0f`6u1Z_2{(|<`kpGTWt7>&6>>jmN ztyd4LM%ALCDo{IByGp5Ubp*Kq*fEt+C)K!`1TU&twSe~DpGEbOdIhT2)LZIpv>*JV z$H(fLMCzUUoK4PVXN%M5j5yWmIIQ;MoPtww=AA`}JP-VEIme2NfAcu-K4i^PbYMn-lq@i zC-hVLSv{o3^pu{_W&MIat6$dV^&9$4eL=sg-`5xQC4KAp{55m=f9jU{T+v_Zuk>~O z&2qmVbpMK_?CotYh41-v#rGjwSGS>VCEZJrqh`z$T$4?jf;HJ90^SH96*+1Tp*;-a zHdGz>lh!(<=q`j(ur?dZ;bRgqie@it53Gyofw4Tm1;ion<1FwQ;v5(7^RyZ~&tMOU zDi>*m^dMyZW~RkX!NIiB>Aelo~~qjkze zy)zKE!&;96tjn$|7;-BSk-5I`m|$G6RWQM5ql^-kJ{|A^4vC(3A_F@C!;b8x$SyG1 z^{yqt(~!vHOQds&@L-bSafI+7n5wKPCaaQFV$oPS?_CPY|JVf{p$(fD#h##as0HtJ zSmrG1#D(SQMNOM21g4a9O_Hev^=s5M1 zum#u*>=bO81_v{llP5<;#>Xcna=Cnda&l^_P&jp}Se%|Nm1bsUXXobT=NA@EpDvdd z7b}%Byra)hq`5uvSQL~Ckme~$&Adi1sZuMmID=)#!U85Sh9Q`hl3Ed4DUp?GSt+TN zl6tj4rJSDVy_#O$V|^aWb&oSzK~K;Zj0wgC<#4$P<~AxQy{zc1=&k5&AX(8{(R-rw zWPDHbUQO@uDX~7I%U>wUh7UN~3mQxUaNaF1l+8;d{Y0Ml;FMb{W``*U71LtMUd3!h z&+JknZ+bE)+(^ch-HO>|O1>Eu4?=iB==tKgp@*T6^J-oerN8k#=x{sU!#^yTK2BO~ zT{}%ls29ciFdu}QdYeG8FZr7(o0>T*!g9iLr<$@EpJH>A|LYSyK-=k>+#>4mIn>iy zdXP5J7Tg22Qj~m3&~Dl*cYz-2qXFCn2GL8?9dtMDEcep}+DryomjX)C9y&l>xHUXY z&(RQ#QjQ9^C!j)HcPS};A=3OSA!neK%PVInF6EZf0hX2n&0fH9IXf|qbG7k1lV+QT zVeIrQtVnwXXrPZKI`+mG0zfw#ynWprHAFC#?g9sbA7tr4mUiy%1MMCN5s{wWClLXH X_a5YUe-9f-#?r(I7v|B#kflEWw9Sxq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/r/rxvt-256color b/usr/share/terminfo/r/rxvt-256color new file mode 100644 index 0000000000000000000000000000000000000000..1540ff1b4aa6cfab789c7440e144322c504cbb2c GIT binary patch literal 2430 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 a;Q@kowy^&|2OCJ-(AW_N=F-@JpJmw#J@OB z;xtYLNT?e?LR|nW*mMDG_(*htVABO%ut7)_5?yow3l<DW|qJ70b(|edR*7!o**iDrRSM$&7z0yOc?m@ggrzGKbU-VveB)(p&6kqw1cXD@ok}l@Do|oMB8a6-HToAg(pad zDMo`d3Vwo40ViP9YDzFobCjo&@O8nb={!9P_5xj?m(X6M*Xd1qSH`Z;RcWi$@6rBP z=Rc#>s#@I)yH#ydJJda@UF}r?6;k_EuZpQ*HHxtW?37BXX*H*E;6=5pR?+_bS5eQX z=b?I0y{cYA`}QAZyr-^-r^UM6+GXvw+N^eK#;R85V6`t}6|9m~wkqOz68O%>7%MLQ zuE(Aatjq9y_$NP)-T3*w?Z{jz>VU(|2txAZ0bzP|B(emipc zU+NljuINwnr~117{6EfX%>O^_SM~q=M*mP}o0^)NHq%z}joY(!!Ld_OyI|~85e|0- z5c7?jqiB!8xUH*>{7P#RVstZHF<7?=W^k2+q|x-jdSFA;0t{vW4j>GH7iNLS5N5xC zm&KL$jb|CmQBh@lo#=QO_K3zngppvneZLb3Jk-UUN3mkYcL1%!y&_hrt$`@I!)f+M z-KZB0W$LR9%0}ID5ck45PXmm@T}QCajd(=nc*28%VZlzp2%`xwid*LNqZeYA=s6Qf z*cliy(nY=lV3PHr2H|ap=U{^jHV7{!L%fat#-%PFz^tUcm0Q3n9A{b?hip1M1bNV;5Yzf_}Kx_dtVoG|RGxU23tX zTJ0$LV$@8&_zG+lwgg*%Ez-n9GC4gxGcz|gKcC5Dv$GuQG~jvPu{)}8lwc>z6s3IbQ9e| zx6vJRH|-`HT8Baur5-v$LwF@0r6*{T(v+bB-bHMJt?yn)7vG@=;5PX28 o11udpJO($&p0rb<|hsP0)!_|#Q*>R literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/s4 b/usr/share/terminfo/s/s4 new file mode 100644 index 0000000000000000000000000000000000000000..b41843d6a40a7d583c1dab1a8ab7da28442fbab6 GIT binary patch literal 1011 zcmaKpZ)lBC9LImZmc~kZfx`9TzPZ$1tmod1u|>Pv%r^I)bFs_*ByGFH#kR{fHm)Rj zK~Y3e6h%=KMNt$*Q4~ceilQjxt#^;lIon=gPknyh@9&)Fobx@;vrw1HJSmZP@WvqNtBc9@#qH6oY3+z+8l&lq}9n-)>|>(PwNl=%#o z$P5X2N~K)pdbdC-q*4;HoUT^tsZG!#DL)&A8OeIrMco29$;+T08TK^{56GcOcVtqJ z%Sqg6I0NV40$h?S)N61#y(zr%FTPe1=letT6d z(>WT3i{SrHOqWbMKe4jnAMaFZLYHZ+uF?i=X1-O^x=ypWPTj0M+OK&X(A_$!<9bjJ zGkz3~=?OiBp4IbuQ7`LNy{MgMMJnZiDTRhaJ2_GUK!fvak_cHkaDv zgVl(?Q+mp{Nk5XBGH$saacjLvN|{95iY`v*YQ^OG~s$Yoe~(df#GTuxO)hFOA_Z+Ryyo zylHM8i9aSjN#$3Tvjy}bm3Iq+;2gN9DVI|DTmf8;!A9HZ)?zxFJ5RS<4M^B(^no|y zN-u_b3{~lsmHu18@=@F^=hMEo(p8cD9S^rkPeo7yHrr!HO=D{)hgN zL_|bHL_|bHbQ2L>o!;*|U#r^=@B2K@`@G-#y&q>p8^Sm`afAV_Q3|#iCB3y)*(tAj z^37_w9x0chY54gx#eXYp2U*zmFo*DZ;9}N~L5yL7nQc#E1`%fSQYATC97`xlEjnzw zBKd}@)Xs%~_HqE4sjK-PgY&+_wp%7Ahrtpqsy96CUjM8PR0`e~7tDMKY%7uJH@ zBjq(hVaj=kCx*fvwkiSvU6MVj4 UMm*6}%(NuS#|q*p0sc3>0poxCmjD0& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sb3 b/usr/share/terminfo/s/sb3 new file mode 100644 index 0000000000000000000000000000000000000000..21b7e178bf1a3ac8e15e5f1a9fe4982fc4794adb GIT binary patch literal 628 zcmb7C-$z4X7=DhVA2TYEdM{dR>8@=@F^=hMEo(p8cD9S^rkPeo7yHrr!HO=D{)hgN zL_|bHL_|bHbQ2L>o!;*|U#r^=@B2K@`@G-#y&q>p8^Sm`afAV_Q3|#iCB3y)*(tAj z^37_w9x0chY54gx#eXYp2U*zmFo*DZ;9}N~L5yL7nQc#E1`%fSQYATC97`xlEjnzw zBKd}@)Xs%~_HqE4sjK-PgY&+_wp%7Ahrtpqsy96CUjM8PR0`e~7tDMKY%7uJH@ zBjq(hVaj=kCx*fvwkiSvU6MVj4 UMm*6}%(NuS#|q*p0sc3>0poxCmjD0& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sbi b/usr/share/terminfo/s/sbi new file mode 100644 index 0000000000000000000000000000000000000000..424704d768f0b575fe294a0fe6bfbbeec78d2dc1 GIT binary patch literal 648 zcmb7C-A99A6#u=FK4w(9sdLdATe?W?LosIB*0RrPTT$KAX0IBVeJ56Qk@P?Gk0c@@ zA|fIpBBGm!=<4k}&-*mp_Hxee6ywZHa|*KvF^fr+ z;GE%D!=}`t!!(PM?xWFZ@aE%+>vU`VnJm3*e zc*YA}@rHMHKUDvx!Y_&6N?Ds&xkLM_{=;qZq@8o0Mw<@*%(N?jF4!G@cL3xCMFpd{ z!|!FCut2GKXW8R)c?-_6TL5}hH@ZP#t21c9k_9QA<>L9Y2uh2z;pT90cmc{t6r3WW zpH^v|7Aa3#qO>6QNILw!0Ht-}iN1i&;{2Rc1_nkT zgaAfHMur9k4hDUO|NlWE|Nk=s@&Es<3|tJn3<5y5Jc9{X#2ido0!bSnwr6kx^FeB1 zzy~Vg&kzD;MS{sVhD3%m47J%nky0elawIm)JOo_@maT=VX@Jtr3~dZOc=S!eBZn{> z!I}zGzXYyl8H02tFbJeQq`erVy%|8HTB2%!p=ye=ijA4R9h_UKT400_bOHvZv@?UW zBZG7RgS4-TjiG@SNO2%geTox^Z~+kx4AMbR8qD#5DFo^Us>)!H1}cLXqgHGHG)%47 U(2;?c3&?;tA`;>VE(T5p0BUFitN;K2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sc410 b/usr/share/terminfo/s/sc410 new file mode 100644 index 0000000000000000000000000000000000000000..d30d42cae1a7ccbab7b1c641352de344e10da64d GIT binary patch literal 467 zcmb1QRAb<0U}l)ikjhY;oS0XfT2fP-Y+`5tCQWNXDszi75{pt5f`O6>!Koz-jEoFO zfRQ19;s1XLAZB1-0+Rp#voLTn@PJwT3>pktK$b3;rw=3z!7Pxf|No7V*bosIX^K+@ zrUIEZCqlIqRE;f^b|69zvK^>wX9jl$Z=ebOP*Z|{bO=KjK{F#5*co^kq&=j)7^J-! zKxCw9fuX9pg1V}l0z X0b`B{s5(nE+a$*(SGQ27!ju63%5)cY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sc415 b/usr/share/terminfo/s/sc415 new file mode 100644 index 0000000000000000000000000000000000000000..d30d42cae1a7ccbab7b1c641352de344e10da64d GIT binary patch literal 467 zcmb1QRAb<0U}l)ikjhY;oS0XfT2fP-Y+`5tCQWNXDszi75{pt5f`O6>!Koz-jEoFO zfRQ19;s1XLAZB1-0+Rp#voLTn@PJwT3>pktK$b3;rw=3z!7Pxf|No7V*bosIX^K+@ zrUIEZCqlIqRE;f^b|69zvK^>wX9jl$Z=ebOP*Z|{bO=KjK{F#5*co^kq&=j)7^J-! zKxCw9fuX9pg1V}l0z X0b`B{s5(nE+a$*(SGQ27!ju63%5)cY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/scanset b/usr/share/terminfo/s/scanset new file mode 100644 index 0000000000000000000000000000000000000000..d30d42cae1a7ccbab7b1c641352de344e10da64d GIT binary patch literal 467 zcmb1QRAb<0U}l)ikjhY;oS0XfT2fP-Y+`5tCQWNXDszi75{pt5f`O6>!Koz-jEoFO zfRQ19;s1XLAZB1-0+Rp#voLTn@PJwT3>pktK$b3;rw=3z!7Pxf|No7V*bosIX^K+@ zrUIEZCqlIqRE;f^b|69zvK^>wX9jl$Z=ebOP*Z|{bO=KjK{F#5*co^kq&=j)7^J-! zKxCw9fuX9pg1V}l0z X0b`B{s5(nE+a$*(SGQ27!ju63%5)cY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/scoansi b/usr/share/terminfo/s/scoansi new file mode 100644 index 0000000000000000000000000000000000000000..9ad0cce6ce6275ca22d4d49ddd4c28f13125db50 GIT binary patch literal 1575 zcmb`HJ4};N6vxj!5=0X*F_A<{l$aEa3bv)t(o&$5M}gAP77DbyO3NDxwB@ZZXrgg& zGDaO791L-AaBy&NaBy&7U@*pkfq{X6fx$r&^?xs=VE|w8Cckt3_uO;Ox%d0NHdkDt z0y<4gVwDq-$#5(&a>MWNM9?g%$lSG2{fZHE3B*(so zXrU}RM?Vf3SyYA8jMQ2tWz$)u^Qe&YR6>=Q*{KQELw@R_KD8R9QJPdrmP|q|&@$bE zzf1R1@rU#zow3*WDLq5vc`CXJ|0137l3vkkdP8sN9lfUyv_|Xnkv?O618mY3ZKrZ~ z(t8fMPAarZ-zYT=$6nP6Vof^ftZGsy8_BgOXaOv?k=h%q}DQffh`ff!;6yTOy5K8nZN} zv@xm$owV4gyws8^;6j@fc-g!e1b`cOfb8G}KHvwfpbf}FxB z60*D!vZoTVpc1l@60)2UvX&CEp%S>bnKUL$Q|EBf3A%dyT2bMnqQ|;WNl9s`$z(Q{ zm02uSYk9fNR#8z`S6}aRHZ(LgHZ{3i&CPDN$J5f{_4<5%e`{-7TOiQh-qF!_JFFX= zADSLEjCPJyjt3{IVztvXNym(F);?D~U%Zf5j4wrQ<}Ker?;xl&4J$hiTMOzyJLmwN zAPo9J1Vq6A7z9H=?i>N5U<}9_@;$`BB$xuzAPy2B31+}7m;>`*0W1Rf97CWBbb}ty n3;Mtk(917PXDv2ajq05jtLG@Y8Pm$9)KKbgT+lJ4++O+#^M(X< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/scoansi-new b/usr/share/terminfo/s/scoansi-new new file mode 100644 index 0000000000000000000000000000000000000000..f828ff06663a69623a839d213e6e43f86ca8aab9 GIT binary patch literal 1821 zcmb`IYiL_#7{{OYJyNG1+y_56jbQw6hL^RTlS`BC^z^#k(==^*TQg_VT)K8`nkMOe z>p+IL5Bo4gR76BXL}ZAFh{zaYh=`~R5fKp)5fKq@i1@+yf8LWE5+@bG!0&nf&*gp2 zoACdpo1?0dKLC%%zisv^P~K zdG87~8BNW16A4nVtA47w>d_OUeRM08|KYQbIVUgnObXqr?RRxi2dS#xKrFC{GwI#h^Uwn zwSBX0v;tKSYhp{B79WbM;wQIK+g~pKg8ZE1TvjeA@6-!5dc8*1ul|3dZMiES#Iqif zkI8fLynI4FEuWRo%NOO#@`8L#z9HX|7v*L7j(kskAg{_#?F_GW@ISA)cFNx~hqQp!rNy-4T6T}=C2e<)YIWu# znkO+s*OMoqFX(wwPg{E4r>6@@^m`J%LHK1)V#skE)wT5_(FNGsMhd?!cryjt4LUjU zaTEi?!1OJ{2HBWw!fZmW38;d>*04I7$0A$dS&5))eLy%!dws6*`XK-M;g`?tcT=$YJ zj{NG)2Kde1K=FYb&*k7Vbo^*>QeC9fU9h!=GA{0|C?z_MMvo`znU^@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/scoansi-old b/usr/share/terminfo/s/scoansi-old new file mode 100644 index 0000000000000000000000000000000000000000..7ae39e9a995499eef38ed9c444837ff5b597a26e GIT binary patch literal 1587 zcmb`HJ4};N6vxj!5=0X*F_A<{v@t2c2emCN1}-U*YlB>0|M5L<>hXeSb8r&#@UzM%xu4 zLHocR3>lK+z(X`q8eO0tM~pNoM`}u9EtS&gywX{eOJ=fB8Dh%+KXToO6LEQ*9v9G&e(+$(${03QTh$K>@OzOL3b z#HT|!n}_t)A$@eW{}bI7J7O2T_QV(QReTrBseGE#`5b3(CST;soXuC+$QI7$A}-}h zuHkz2u#W>A?0=1wH z92`&GNp4g^R#ZZkS3>qwLKaj)R#HNiQ$p5KLN-(a7cU^49n-`)Ty%=A-MDVdeQbPU z3fXM=`F49jL1AH0k;743TvAe6T2oV7>vGlA)z>#PxZRD79*@`C)YRPU^ZETPEv>DA zKwDdTd+(jFX>fjMde}1BF;+GnoG6b}PgljAGuGLPxyt#xh1g3c6PNn_Bo)zZ{{q}p0bv!pa_lQv1yH2q9k z6m(NT1ks@g4vG#UD7Z*L1rZz^#KpnE$-%+F$>sS!_oYZ^ms0SO^FP0H?z!*e-uF=} z>ZyThC?PhKxv}i{c)Bn&=rVNuWLw`rmuuMF?6q7AiEM6uH0jEXXH$vvXp%_CA3K0l zrqba|Qa@GDA+om_71W9qWmJxe!*q-^s-q@Uwon&!Q<#Rp!xV$YX_{tfUS4IH@^po+ zgKyCtnYl;n^bquzp3pP+SM-|R(g!(b+aHVm6a42Qe}Vs6WZV8m-{}Yaq+j%#{$M}l zqDmYP2Ze1Pfw_bx>fw1b3sambvXd#*cFc8%K5~md@j`5f zH{zXmFKQLrJ__4z97jG{G8Zd}c+K>d%yw7WeJ-Oc{HIQZ9rn4Z+)!>S_m%Y>uG{^Y z*!H7h&!@^uMU9NmUfNG;L`!HHLyHBpjH$)4NVq29Kn$QT}EB8E?Di&Q_WsY{j!370x4eS*K*a` zc#ReyHAI!v(9qb})YROp>(S`w=)}b2WIUcoOifKsCzGjEIz2O!$;{4XvvYH~-2D8) z!s6o6((>}kNM!+0{XLI`l zmY<&i-lJO{6Gv8&6nxVaJijVF>-+&PgYCf=x{|86D~t=rsBM@!b-L6-9Xbu@^cV2; B2S5M- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen+fkeys b/usr/share/terminfo/s/screen+fkeys new file mode 100644 index 0000000000000000000000000000000000000000..a3564ab154d525b9d3cea7eb70485cf0b10400f9 GIT binary patch literal 474 zcmb1Q)Mo&JLkv<3#mPmfsd?II*{PMqHEE@J$t9WjdAcB;LSk}qeo;zhUb;d_z5+xY z1H=D806?x_Vc=lkL2``%5_=Fhk)RVq!S4M>P#va%fB&WZ0~nPD@P8DH Ph5+3{;2##7{{064ZxoZA literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-16color b/usr/share/terminfo/s/screen-16color new file mode 100644 index 0000000000000000000000000000000000000000..990679d0ba4b5927e59987ed95b1fbb68b21d035 GIT binary patch literal 1877 zcmchYO>9h26vxkf)1X3$4f=e{=BBDz?`x(rMh&HD(V9|UF`G6s)ft^>r_*VxeH|fT zheRa8LL?%@MkE$CB0(Y&2@A2Yu&}bQu&}au{^!0K(zFXAyv#Z0cRubt_hVjOy=bH+ zT0vRyCNQ2V4i1hqo8i=GZnQYtdEiK}PlbY0*-|EGhJz|GP9)Ti4M1t8xsRXhr6sh6 zyak?>YK|IOgo?Gafh09jGb$srm-bVFj)IR<8ahM6G)5C@mT7Y7EL{L!rmHG)oo>=? z&^@|O4`3hD6M9asRL=8WSL|EZcNKmQ`=P>~_mMu)XZk{4=^K5=nih#=VwG4eJZ~K& zD5Tg7%TJ52#I_3ik-54Zxejqa925N_D~iGu=fx#)ZQh7mD)LY~5>Lf5@j|>5^_u6c zhb;7LM7)1aEM1neQGE-TD>si9UQgy(sY0H`VP&bj z<)8|SZ8Q+-_M4v}J<$%~W|qm`LC7IUA0lQ5k)+wGbVTVWYs*lq5Gt_;u`qjFpTI5> zyWqsloW4WZjNV3i2T&ay_fpVP1+2i2?5qNJS2f*L;2tW1>3uj{1vE>kEgMD-)(YWV zBAoQEDouJTpF6iRWLy@)vJ^9AjL`(zK3YJ>M;qAcqXP{27y?={mgjL%S*nwRD`brH zE~=%brY&2Vn_F58qrZP(;N;1np-d*5J#}h$IG4-kM@B|R3x%<Y$Yr8C|o!AEYVLjMx!=VNs&ISMN`IQZuII9ZXsKtX+rG`(O mhWA;=SB}4DHIM+lShci_Zvnznr)bx4>NMy`ggOlBGw27PH%#~d literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-16color-bce b/usr/share/terminfo/s/screen-16color-bce new file mode 100644 index 0000000000000000000000000000000000000000..c49248f1978867ea3d178956c1fc726723c012c2 GIT binary patch literal 1889 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 aT1y}EH9&an4DCKnLk5jUX|F+J2E7Cw$WmGW literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-256color b/usr/share/terminfo/s/screen-256color new file mode 100644 index 0000000000000000000000000000000000000000..406d402f28e92583f909e6400869b9fcba8a0c33 GIT binary patch literal 1715 zcmcgtOK1~e5T1Wqe4!S+_*fsg{9sK}b~l@st46D(RokXoUo@9Wk~V3QHciuKS|6Y{ z6+{p{h~Podg9skHh@gT99z2K_4<0-zc<|uK%lgf~DH6=32>xVdzWHY6pZv4C{9A;d z{M14@(b_bbDrYid0V@JFnYNRpRtg|9N{8tvCFm6J8A?NEDNhqLrFNO4DqWz;?8zR*|tPCw`;{lalph_zya*eG0g zE5s+H*age0U07mw4SP(z?m(&YW9M&YT3mB_o;tSl9`Y-Hij zwi=*%yyoXfPjo=InPswf400SY0LBb~NtzL*qe{nETZY04LM0A?3$w@h37jHv08ZR2 z==+q->U&A=1XQErUJCRs0sI4x*}nw1yUOWV0^CC}*xmytmH?Wi)R7IN0BeOXmna9l zN0lZ$!gJ?#hK$QnSXLZUIt)#~pa(5L+k-*ChzD)JkOxD6mUN0-7n7CsGSea*(z|Ij z`TcEefk1n^VGIqOJv%%+GLp^aa-*a9e4$V*j*X3vmr4^8DjJB$9?^Z_f2KX86Sc^6&?2t6;i(Tj!q(> zery1gW~A01&kG)=RkVTJB^C+yJW(ChBV!|NB}vWXM`nZ$P!GlF1n?Bdu_cMK=uk@XM z&`{UTvTya zF;B!(@j|>5uf-d&NpsyTkfqi(@Pjq6RE@_qBa4`&c3M7H)F%H^r`dn(b5XmZUDs}F zcmA<%`7?3d`_-P0v~QZ87@(E3hV+EY%AzS#jx1U-RRR$hhU(T62Vr_3Y^zCKf1#J( zO{+n5Lt<7ihc5)>c1C#_;11IJ6qSQM4C$jL=wKeoWEC?FJIa|Bdp4smqkwYr`26)m zo|Q`EU2ImCid#0a@MoJ1P`zIBdD7$U5N>9f>>Ys|h4h0lgJ2S7Sm}t;QP!5Bu!2zW z{oq3Eaef@9h_}IsnK^y0vKf63>79UTblgjUz6F4P;4%9a0C!h8y$gVQC#Kh#})YQ3i)6+9EmCEew+}u2mZh-Xd?cTGo*|!2pD{S(6h11}zOX1lhLItRp z=~zivmO#|8qx=r2k*af5B6D)LECRhqv&?QZ2Wa xC^wCodb_5cG+ZAVz7-ue2;UWTkQKNM8mN&^2;u4^wVk3agN{e2)1ZEXegkl{C~yD( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-256color-bce-s b/usr/share/terminfo/s/screen-256color-bce-s new file mode 100644 index 0000000000000000000000000000000000000000..d6f24f6263c1269ac19081b579869d1781c89e53 GIT binary patch literal 1757 zcmchYPizcv6vy9h2qo0T0h2HhzxY!tGqbbXU4x}GEmeymjg?TltGl}Yx_?^jwnaoF z;wHiY2a#|PiHJnP#f69viGzctI5-a)9FIM4uzA&T(KNDo=gWS6J2`_8ht8bjApAD18GC$D@Lu7EeskR+dGYc zLdvLA2dcG-k;@j+L_+$Rt)&1eBeaux zC{BmK{gi^v&=3t%jmE%JbcW8;MbKrs2JLw_=oZ}p-J|>T5cVlOqZjlV^cM0C!s|Wk zhX#Ly{nTL3`%GWxD}AHy^n*0fB3i{_u}rKGp0^6JMg)Wn%PTB4ijD^Rk!HOMxn6Nd z92FTcEXKt-aY*z37M58OQu{|vSq4_ zKyVPMTTkqQ>4C6q6m|VZzrLI1Bh(Fv*`XYMA!v6p%FBSalisUBIq1C*ct`ak)Cvsc zp)6K0%XFe#ZnNhwwKD~ko5%kJJ&|Xn3i(nFD_iAl2UWP^Bc!i25#8taha%N=I4SrecLq@g0bT+2i^+b`#$QCuZgJEy`x}&7^k%)e-V6 z1-;XNJMbf0r-7%dn%&dDGgJhZ_u;@aU|3S^+B9>pb_hok;iUh_Qlz)@`SUna#$+ih ztF9$oMhh79(FQs`27&E9I>3;RA)qbYJoiOqwN<7UNtg6)nun)FZEfq<2Lc;5nC7u# z0|O^c3=U>8+3d-aLqoY-K3^yli>1==aJgKmRI9bx$jIpEsZ(QPb%7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-256color-s b/usr/share/terminfo/s/screen-256color-s new file mode 100644 index 0000000000000000000000000000000000000000..e92fb938b5d4b6d290db016780323721f4276a38 GIT binary patch literal 1743 zcmchYO=uHQ5Xa}O;uqRpJg5sA#D}dlWp}el6IYF`mR4;|wJKr+ElJwM=Br8C+NQ0F zh#ZMS8WM+OdZ)RuTd%M{U zVi&bgBV~lWq?{3?&NLLdjpA>N<4H*RP_!@k}M{!<0|Wm3;&Gq_12VsEn3< z*-Sn~B-D=$KxwA>;Z63@3R*|*KL!c+Jke5GhK%*Jkt8*fADLm=PX{SR$H6Bk37w{4 z8lh2|0MF0`x=dF=*XSm+>)xijbRYDP9?=un7xa=|(>u@y$VUi|Pq3eB`~~)Fja~N} zeWxGvlYY@}(!>hUAl8ZvVv}&)Es!SR7Zxm!kk}zQYV1Yo^#RQFisRz6NQ)6MDK3dw zab4V*S8-oOo{8t;m3SlGiuYo(=DJeb3O#>pLv*-qrcmc`#n`;a{Oc@6q^e!~Po1tT zu+OY^L%XHj(;h6aZZUS{ajoZ5?Wd;4PttN)Lwa0hWYLsKM;0xaEFlmWg6h`e2Vf3D z*w&J|{-T%PO{);dJ;Ju{xs!$fX4+8JBeu^4^!5oyyDry>bgwrkd zY^FA*fO2#AC(z?LRw|J%WwWx>yk#Q`cYKQUW&_b4?L@RW?*1&aA+u<&ScJ> z9UjhRbGdxJP$(8hMoOh}xl$P&9UB`TKX-0oVsf%totm1Sp5fg)NqSR zsX*8XI$oB;m+*F`R&M{J+%)Ry?Yepm9}*33jgD^#e>Ijumf*Xvl2-EqAzYlG_7l`) M(6KOe8q{ylAB2A@8vp9h26vzMf5lT=*d_9rbyhK&&y*F>B9TP@NqeTtsqcNL)%;=2HjOom@S}lRXZ9NXU6cBH2()EjP&dZDpgxjNdP4^=beLas>ICWQ@v z(mx3V?S z2UoO2tx#*#2Ic!(Xdz{(?Tm6YD_8BRaiGli?Hub+N7QN6r*f*SCe<}6H~*M%Pb)L( zv6@xS)eH4XtucIm9c`g&J@wP`#!~Y#nKST*ve2FWT^lkA|EW{uFZ+xeSB)FSZR74= z&inU0@%`yq&j-d6!%UsQQmllTvT|0*vC?s?MTp%2eVsCdHSQYZmgn@6zCjr3CH$gQt3+O3AG4?by`3@xgbs# z%3VBht{!(iR`FpQY)XfN=9gh6+iB9wbtF4RJ5KAN;zX#VoEGg{wU3E+ZOt0#lKZJe zC6oFjSCMREl5q0o9v!phZkQcJy>-${L-!o;2?AyB97uOvb9fG;?|Ez%{NxI4%w z7LLWem>j*VF|2n-GOtE3_%%29-kSWN%cpxWZ4tlB%dkS)(xh?_ZM`^P<76v3Z1mXp E1=NlUivR!s literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-bce b/usr/share/terminfo/s/screen-bce new file mode 100644 index 0000000000000000000000000000000000000000..88b4d02a2c70d90f859a34631d54ea3b4945a3eb GIT binary patch literal 1619 zcmchXOH30{6o$_o34%dL+^CF?ZYB|dIy0S8YNG{|0P-jbBB7gNTWINnQp)=gO?0Ow z#>D7?n7GjB!kB2{#*nCqF>&F-xN+gal?xXxT)A-k&z+(nupuPg^qljZ|DHRi_s*kQ z_^6huC@EHz$!Idz#uo?rU52h7Ywqdma1DCg4VG&W|D=3 z3$;W-{x|@nXOiP@=1lfd8SNu`lTk)ZSWrTxsMt@3NTV96M`a^*P$z|G06a)B_ynbB zf~MqE=4gQ~(N*vbx+Rr6v_kjkxBZYF(Gw^y=q0_TcXH0Q-xuQt#E(V(g!sA0w*7^^ z(l`1}KjAO&91b4EvHQXr%sDo>~mSU zrrcESDl1!DxBWA*?FYr4kCo?&8XlsZw42nhmeg{F77J)OQ;X#xct+vc)$kdFP8i2x zQQJRs>f31-q;^=)^rrEKV7Zl$Sps~D)NU!I;d^1-R0;3Rz!~gxpO;R3u?Irtq?G@0HXo)IA{Vb2R%TagBH;1 zpciOrfef$nYlTWJUZn*{ZKraot*xu8uXnq3JrWrn9vK-OO(c@Zv9VMtoz7&k+41pQ zZek*zpPVcdrlzK+XJ%$+=jP_;7Zw&5mzI|K=!Qr=(&F43i*wT>y<~%*E9?eOT@3do z+>nI}8UZtk$ma0}EI&U3yho2bCeExPDfpx-cz#uU)%p8f0^5NvbU9UUR~Q#Ysd7%Q6n?W)N~lDtLMRXyVJfz1p^dz=Yde-9Y1*_+(j+z^4M7f3li1Fm?YNH9 z=3fXTgallwO2C1h5C?h*mvSkG9=KEpsS=kS;DUq@>Y+ji4xpOvycHPF$&h;EnNhj}84cF-f#O#A5oJ%dP;PEs!o&>8TTXbd<3 z%hN2dRx44N7HLKJ>w<66J9Lrm*50M}=`tc$Xp^qWOs#f}ZUpQ${GEXR2>%Q0R~eJq zp?0Z8^^n@D_No2qplVf~N~l_`9d=BeQhh3|hQLSEsCotdUcWIlrOIjJt11 zTPr?NSHL&bO^Il0r?tmwvi4e!TjN%(mWBDhyftT)t*W&wk&UhRC)TIJKNGyZ6|dDk zw{FPj%WbjxZh!B;67{XEHQ!j@THkMt>g#TAi`=n(wtllL-JlzFlWx{weLx@9Mz`s9 z-KBeVS`X_{J)x&{NmuoXepSDr-_{rPd-}5eP=Bm9^;KQp_ul^6ztq)txvsy^H}x(3 z^?zJfU;lsncfm7%&_C(>=|Ku*>>0c4*x96AHg>jxfI9`~4rNR){An2bKy~U5>M!U< z;24a3hlv(&#e_`59fx(o(y)GN1V)Ph2M~wIi?hgMh;v-PE7ET8B7^A_RUy=dfmh&& zXbeQbOgp^8GZn1ySK!S%;?o>Yx=Ak?D+Fu%%@N<)Qs!Oj}X#dC;W7Y9IcbSI^i8I& z_48%`Q2?^_lZr}Ok|wf7?p&&FsQ#f0yhDc*i9}EooEA#Yr47zDi({c(6yg_+*d6@% za?D<{t4YUB^4NfSKE;$PQ*nRnVJd1Ti!4jn)kZtF+fGubn;yVsQb?{*Y7rwTD9U#B z?D%*-KQ%QwJ2zJ-6pN+O{Cv55?p&p^uu!coE}lPs;lk3=^76{c>gw9s`uYY}8Yv6n z$PYz=4L#nOU)spl?$i7bhB$*^$igOhAjfZbMaIaf896|IrIAy1xgRpF5fr`a>t$o( z@qUgo#%KgxK~FF$7#HLY%Qy)}6A_eEM)XGXM)W2ov!XYmcSY&S{;uda0+HaC&<5`0s*Hm-CNkGz0c=+P#8#r7!vP=+W>HXWiPWGGJ0 zQ767^rzu54^fJC{lQczhG>;XUcH&GM>0x@5_Tf8tkXp&31hrEazJzHSrcs)pJk&v_ z`Hi&dtlQ7q)oD9d;J(QCIdK}eE-Ah;l6@OTq`wKA1HpS(+QZVmlS7~bBLO0k9vnsl2tL@u@iS?*C@mG~cjR(sm;e9( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-bce.gnome b/usr/share/terminfo/s/screen-bce.gnome new file mode 100644 index 0000000000000000000000000000000000000000..70ad28cbcf06fca1f5ccb229b5e7e14808fb67ad GIT binary patch literal 3154 zcmcguYlxIp7=F*34^uG}!89jCtxr?aX1?o;llNWSHFtK>T@fe4%g(y%&g`z^df(ly z7$RvHf`)=+B=$og@{jqW@<$*9U7(8)QDlWCXat3k)AOG9+fhmc|MW5EdERrLbDnd) zbNgnT@@X=Sq@(JjwRwHHQ0SboZhc|qhR&{1p;rnfbanT%m)dt0S|+r1l_xCDHa67G zXeyLT?VW3jM9TcgJPMiHo@!1}jt0|Ms@&ljO!Lrxr9u=Vi$>EpnuHNeLy1p|sE(G> za>UK_G;j@43$+0&l_Ic{HUoRN9o>24DV#HasOsxXn?OCTfRFA3C zr*^CThz|X$#T)7^Q}UI%s4l5r)Ma&5Wnz`e9Hd*%ylSon(GHXAi@j)gPgNVJ|H^+# z29&$;0n_Smwe7LkiP$NVI|Doym7lNbmCA+Kr?D?%-^PB7U5Wh`yAg}&p?Z`arzh!Y z+R-tY!(Sxkv z)&tgfYqB-d3amNSBCEk_vhFtSJ85~V)#|YNtrzaO<(=H_t!!`9=YH$(|I+($>uu{k zx}V~CyWQ?i+ASHo+p$~9C~!9b>f(843HV7Q=BU=oW4mjGOT?fwWjk&!U>!Pw~bDNIVuN$+@SHmLV-iNzzA2J{cNJ8B8-e2@{(T z&{%`AfOA~Gk>4+wabU}YH*Ms%otwl^47bH+gU#G>wn78vjfamNXJuH7BjJ(;AP;m|?oN$4YV zBn%OzBuv`fuHB1#XlF{?B5n5!w+kce48`kc2rO%9&6>4qTU$45Xm8)Rv7@6{ER{Mt zySlo&H*G4HH*fCg*|KHp)@|FiZ{M+F=gwWbdVBl&`gsOdAz|eVVo|3i5P2-P8HWio zx=5%FI5br>|1MvHFkEMlbgJKn=p$u(Y2VWeshW9 z_})*Y1cfw*YR%Vv6|KcLzKga}AH76-=>Q$3V|0Q}(HS~N=jj4{Mqkr+^b=jh7yB=K zuZO6SY7D;Cwt7stYL=R>>Qtjzp;oIFe1*$uhk8!EjDI7V24Tk!!_72`#?V7F5&tx% z)8ph(8oe*Xzl|(4(JER)tyH8kZKr;WU=Qu1*XR%(rQ>vxPGc1B(}(mieL`Q*HyFny zx3T?rF0NMLvHxC}s_C*YT3L zvZJC!cQbOA4ctzyTvDEpFBAxcLarP)PskSvghC;gk0RDu$QKHPLMA8L9x@~++T_tb z92kBfb{Uk&rJG2!%p?Yom%Q z|Jgj?#C$;rr6W%^?Z#^nHYu1fsj@<(SjOUP)j-dmea}x z>Zn=hGI$I=L%$%5z?s4g&CMZBiKxjaSK&aW3tOB6|p#q@-q2`vYfC_{PgbIWTgu1Mr+XA5i dp#q@-p*H6@p+a*GdUFnPa}H{AE~M=x`UfT8W?ldQ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-bce.konsole b/usr/share/terminfo/s/screen-bce.konsole new file mode 100644 index 0000000000000000000000000000000000000000..d12192fa4b4cd39e79a843da0500a52681af5fdc GIT binary patch literal 3186 zcmcguYiv|S6h5L*Ys|8DV9mPXJdD&6Hbf)>F~6eEKs(qx*3QO$eNtE~w~I>HCQP z0$-2p8(=BQLmDpb6XV51@sM~#JSJv|dBPK+SOmQer9q^{YOzi{1v@9&#EzkM<@UF7 zpV%)BBj%_$E>4P5;;i`ewiXw~SITo;l*FjmnAo`3gjjp5RO&#v+pi1$ca-*C?3Cg& zcSN4M!*jPxxBJekRu_iaei{2N_M@u(3cM2e{}|FsrE9V4v6vh#N6Yc@0Xap^kaMLk zt7N@Q%eAseZk9Q@T^8jYxnCZVN8~a2mV95HlBeZ4d0u`Yzm}Ke&+@XoDzC{KQW_(S zF~$UAvN6q=ZP>nH%;9jMWf(Kp;X&m9tTw! zt)L|+H7Hq>6*Ly;6#y0>K#&`7kj*Zatt4B)5V!?gFY%^Cfze*78sy_iRNOp!RHTh4 zC|>LI1y&+4uZnF}3owFK4vklFXGPSl&*+2))YEp~wTOSvUTgWZEbDax3{&(58@cJ1EX+uPT-XHS3sz`)?( zUY^zsC|FK~Slw9(SS|}rXft7&>oui7_K;Jpi>`S?PM$rR7rx2n92pynkg<8$ZC-a< zFMJdpM4XJcQnQ_i7(J^@(Liih)iWOF^f;%-IlU-nw4FlD$%rd8Bd7A)R>V%kuHuZ( zIepIQb51|XsrH=}gqo8PS87I1%ojBxB{E{I*d$s+yC{l2@vJx~UJys{F(PRg z_U~w1NfXp}#-lVH{m&&EBUnH+_}W-TD`_2VqGoEtD0Wgm?W2SAJiSD(&}$gUN&0|3 zqO)|KKF3(Tp-c1={YF>lDn|1+zJi8{(PDy_Bpw!1#SAe=B=7|>UsMa8G8|hzO_tej z4Vnwho>nuL=QD)^pynPI8!tt)W1>ZNLVa#n)Lp9pdQ_ zPltFq#2e~}k2^ZjKm|etLIpwvLT%t48@R^??y-S;Y~UW3*RO#Bgam{Jgb0M1 zUe78JDiA6VDiCUR)mo@Ps6ePds6eQz8n`VGDiA6VDiCU8mJ0$Jv(Ou}kQ=j58?ylw N3%$M6&Cpw*e*qUrW{dy; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-bce.linux b/usr/share/terminfo/s/screen-bce.linux new file mode 100644 index 0000000000000000000000000000000000000000..242cc07d1e5146210e983671bdbbc85c33beb7ae GIT binary patch literal 1754 zcmcJQO>7%Q6vzKFM5Tq&NWB1EKFnbhN}6cDoWxkgZ6Io(F)l415x%6@PV8p=5yxqr zI0+oe1qpqNfhujc^+l@ zDweT=HM`0>dUydZl3&4VR(Tz7;xhh@-^ROmpUOx01Yh85I~K>^_TyE?@A~{bMM0f$MM~?-P*l7^o1SD(hg;}m2O;%bX#}zw!Wxe z(y!`E`VD>gf7s zlim}w)3h^Gyfl@fH);Kp^%?QLYuO@Q;Sp*R(v$oG@1k&=otzgr57}6Cj>4HC+S18h z7V-n&6(q{B0m$w)XKnzphgGyKcnjr&*UN8BC6<3};g6F59^#XIc}c zll4qi&?5#3`ou87fH;|8NK7Y~Ci*5@mw6e}IbbToCJSd4`!G6sN zxVW@bt=4Mi&MhxTQN7-1G@Gr~%1XPvy4vZit(`xA;X=2&zP_>1>uqjsZEdq^_fIG1 z5=t3;IhUfJuss9cme;pu;M+3@IbALH F`~%zGBn$um literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-bce.mrxvt b/usr/share/terminfo/s/screen-bce.mrxvt new file mode 100644 index 0000000000000000000000000000000000000000..80e1fe5e6000222e8f3d5ffff2ce714f2ec6b0cb GIT binary patch literal 3139 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-s b/usr/share/terminfo/s/screen-s new file mode 100644 index 0000000000000000000000000000000000000000..580b1caf07e67ce585ea826cfc1c7ff9bbfc6ad8 GIT binary patch literal 1641 zcmchXPiPZS5XR@NMXPANcu*HKh>O-Xb$7E#8-u2;imkP#S}ny0ZD`VN+9XYrP5-wj zB7%4m(Sv#rK@TE`2!eumQA8BMg9q{A!Gk9c9y|!^H*XW9#7m+0$b9pgdGmI5-)`Pk z(MAolk<#LgQXDFzQaOKdzVDRJ(Dl7-$9p?{{eh;C<(o_woKhm=b5ezDItQ3aJGReG z6p}?J;gpKLOgfh$67t6mAeCw9@FshxmNt|7k5NmlSWrW&QL%-#kw*38M`a6jQWwRj z58O{ls7+%uK_!|2FVZ=>NS8rZ=?2twZ_ypP2YNsc=`s9sdP%S89q0q>BaFu<_|Ikj z0{^wluKSI?(+~Pdzvwq9qE^(2O=7FqE?jpfY`5?W6P`y%>=W%}_A*QLDCW9FpBNCf zm=Lq#g192CiQ82x?#awk@l3oDZ^T>iUhGg@S5tODtH&N>$Ck{DFNt`?WL2j6IxCTx zQ_laVPM4P1=ZbP&xvAV$?k{uQO6&^n|#U{N!e!9N7cEn7x5_#mm>GL?b$zz_|nXQ>Vt%t8#7 zsG(b7E;l){n3|aaGR)#MP~%w^S;&{NSWG!@TByPupCz?kNA{R^6N{wA+F{((G&ni| zI|=JW#t0%4H=3okNDZ@^x@3uv*dgRX9C3XNPZMiH5H&LD0qJdZKdFa-atpbagzgI9 z4!lfj1-QGcIaUGgAv3tV2d654W<&C+bv*-b2C+3QJn6l%B&p53|J+X3qFO$rIT1sP zFdD#shbGYSFaT`!&;kZM3<6CplI3+_&8gE;8?^|j9kdp2iy9gl8~y&KCS4yKOeBVf zM@DQrogN(>8_Q&}*<5aXJfEMKC=`lC$0?O2C#R;Sr)OqnXXobT=NA?hdH2qcy1U(b zJr>7iK&oVeKQTNIKENbiPdt=^M2(0!1kV--N31Y^3H+D=xla){dc>4;9JTj;P(y*m8?^b-!b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen-w b/usr/share/terminfo/s/screen-w new file mode 100644 index 0000000000000000000000000000000000000000..681e95a524f11fa0b4be09eb40ac07fdde03b483 GIT binary patch literal 1623 zcmchXJxo(k6vxkf5(I;gxTrioy1YaL>ia5C8ZDrNA|F*jBy@qag%;XUO8G1hO>k2a zV`6k5CJq`MjEN>LhD1$_iGzc2ad2>QaBy&PdH&CRC5FI4NPOw}pWiw6+;`r+@AX!T zW~!wsN{V%5I+}~eGxc*z1N|OD*H5+f_H}v&EpLPEnN8;MGb1TaKAuY_Gl02dKH)Je z(-WOcO%nQhB~*%v!*q-^s-b#RHc=;aQJ4n6gA{`% zXo99_M&4zC3UrmOgKyCtnYl-6^bquzp3pP+SM-|R(g!)_I3J7t6a42Qe}Vs6WXJhN z-{}Yaq+j%#{$M?&qCy-H2ZiGtfq8@`PQvr$6{ct|vYXkgZ5V48z2b@(7D7SbsYKOO=Gc55zm>}lG*M~yU%5n+5gmOX@`BT zDL0hc%6(;Rhx2y7Cyw)|*z>9KQc)vAw3qgi8qtzk*3e=BEo*AA91_+TB&0^p!*#*f z7mGUnp<5rKeMp61LDQGQKLpe5gp3m4v!wROR0?_l)1cTcab@?KWQ_HQWZ{W~RZ>Mc5@+A2NmynTXLSwMnX< z)zl?RgoMu_*T50ihp~!qD}tbrQqM@AP*0QE4wPHRy(IK(0G`0jv}^!(mo?oRz&&IJ zw|Aj`1JEogm#ph4c+-b{Y2rcmRmDhcvljGwP6RA`>oykm2 zX0uaMx!m-0K0h-vJ3BWwKfkcBxL7DGEiEsv@YW5HdZNvJH#WznB~`M)-xXGauP%mn z6KTjmf=0lM!n0ZafbHjRfY)frZQ{r-l7cf`!S}1;Smy)01hxk!bU9UUR~Q#YsdbP# Nbh_L`?K<`8^cO8042u8& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.Eterm b/usr/share/terminfo/s/screen.Eterm new file mode 100644 index 0000000000000000000000000000000000000000..8ed159d35a476aeed062d3783b6c7a82790ebfee GIT binary patch literal 2255 zcmbtVOKcoP5UrkeNCL!G6p)b@%O)@w6A^ZLW_E2YiQ~kHzw0%Q9c(R___O}*+UxZ? z{^yV!03n1FfjA%};6P4@1G$(>xP(IvTq1-NiAxS}K|%=S5Fs?Ys@XM`2tTn_y?$N& zs;8^E+g+n-sg~+!M(wRw8ZTrr^G8n?Glkq{*r}hHua`b4MPkH1?r?)YY5Qm&Jq8y1 z>9>zg+{e3Hwg=-x7FE!rR6~d9X?hkOpUzMh_0k~tOEdx;gH6&bFbL);Ps_9}{IcNd z^cG#A_vl0Vn6AQejkf8!j0C|Ax>aI#(cUZZU(u2Zf(lp=>{kcWAyus+s!rMJh;me1 z9aASU)(-1deQHn*t5?8BRYpxp49DI7H>L7wOVA+_M5}kA6rW)YZCHKdBq_^V-)5-KyJlQlHhs`c<9Lb9zy) z=q-I&zoFmO@9OvUNBXM%RDZ6w^>tmI_wU;q|58_;<);2d-`02Z_x~}j9RGjXpGx2S zMgOMv(gBL3?HN1o*b@mmZ|sQz9PSjLBa${&QUY0!~HloHv*~oDy z93CkkCX7G|E%9mgC)|XWh-FK$J+emkBE-D%rV)yyc!|b=EA=9*A9fZV$7hif7iKLCd%&eFZSn;6haRK|FEnbm@aOX}d($o^96P~% z1L}noL#_ls zTsE7_&Cf3^gw9s`ufJk=H}McMXoeb7Q~h}MoSZVJToua z$kgsr{1JvYgJGC}jdMq~-*80Q$gUaLz%bItF1vgl(ykE{y&LLfV&n0Ajx)k&1YJQ- z&=-sg@(D{j&5R~0C{afAM)XGXCMKhzH==h%>B{`B=-p87@|iInqr-O;TZbz=fs>n# z%>!`g4JXRxHYdDhzE@luS56c6yb{B!M)U~YvxACX%m~$!O^x&%8H&>j)QUH*n^H7D z!+7DwX^Q4(0TG%Wz@}ExA*!aw@ghD$N6DjRI!+$KZTRX zXES4OxLY`z4fPH75qq2uZ^IKM>Xa$94$;s64JB!=?Uc_D1N5??ce=MNL^wNANpK)| iCrdk7+H+LJ~p3LbM!k!-(sZz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.gnome b/usr/share/terminfo/s/screen.gnome new file mode 100644 index 0000000000000000000000000000000000000000..b701f72a0d9796476aabf24b13d114fdf3bf097a GIT binary patch literal 3146 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 KBUEM>DbT;vMuA!Y literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.linux b/usr/share/terminfo/s/screen.linux new file mode 100644 index 0000000000000000000000000000000000000000..2a508d1238ab3b6332b9f8882909f85eb90a006e GIT binary patch literal 1754 zcmcJQO>7fK6vy98BT8Bz5*J#wAMRlkXh^g>yH4U-)Q}PpAgPn&s_Lmi960pUL%07oyB0*@f<#At z@BQAJHy`_EcD+@2)JHv377t`2UoRG`13|gE&{}%Z>2JhtqFhakb9W*?S8dD%MG}Gt zKO@EguW6isj0sv#uTc1uww`t&ql?xd<5hZt6m6$|WDe6lIzT!47(7V@=n~D+JS~`6 z7O732(dXbZbk0OB&?UM8x=LTrSFqpEcXXS6GJRqAOKg9Iy&LmA*xzCf!{6yo`imaY zBl?^E!IsyF4Pvv{BEs-BNJ1#_HY~RRp~X8fN0HTf1bw68eesEy5@k^rZE;eZ7U$QD zxNIWV#nm~3}1<-Xo(zpFZ?)@07CiL4s%+?+txWlOHelk${2E6>Y| z^2-0T^0jB2_e=S$ydi&(KR@HR=TVwF@tXJLAJXy<(~Go`EMJvX%~6H4s%cfIBjC*pdk`CBkMnbQirj8E87HvbHMV5!Bx@9CO2=y%$aVlbh$6c> zz^j{_@ec4BCW7fB_^1O|EN>p!wgXt5L|ultGdijQSwmcRUd~n-RU1^zw4>6D4$zHI z1HA}c;827fFd1PIs8zbc<5H@*NfmoknyfMEroO%%JNo+v25ft3YI^#}k(rrNsa!sK zbaplfDwS$=Zmw3FpRd;&jb?LU;n=a`$6Kw%#S)oTEQjg~~W-orh&{Q)w^7_l4`>nv$~T z#U$}{@1mEfhQ9#**muze>Vbd%Yw{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.linux-m1 b/usr/share/terminfo/s/screen.linux-m1 new file mode 100644 index 0000000000000000000000000000000000000000..b0c2157aabde7b54866deffae18722bc870a7a46 GIT binary patch literal 1971 zcmds&J#1T56vzMfwLnwR1|g6r4;2^bDpZN1_vIv(DQQcigf^A~1r++0w*H9S*pA~k zty9N=0T>tn2?=$8frHmRi%PdfnZ>uLnW9xFd)Q)7~t_g_t`>Gvs4ueSH9=` z?z!il``$Un_TwsvVLXJ2`psI&H;cvkXth#bZ6|B)`m8{r<|bAe#eAhy$tOxn%|z@4 zDDx3TFj8pqh&Si31CJrvV(h>{{2c+?aX)?bU@tWGBT3&0Jdb0@;T7^c3Y29mVi~I@ z&Kf#+9dDA~!TZK?0Ut3^6kWt8_>7jz_>$`@W-p4a_4HTNH#ooH{0=|hX3ri)x9~G= z;}`sj-|+|j!ZtOa2Gt{KkJ_uE=qWX%MyO>tDp1e#IJRt-N4Phw=G3d|v|3ax)m3k) zch!YEPJC=Em(>^Qn!2vORyWiWRunzSxz*T5`{_-4rA;e2Q@g{mRit~jHLbR_VZC9! zZM|oGV0~y^v_AchZoYJvaX+`NTGy>_t?%#h+`Z={if;Dqyk*_C?C=C0z%JOKuIPrV z3mM(;bfHOuzd$i#hexT7afn7ugzmVJ6Go;*dX8a(6m}>fj&Ng4OmZm4_sB6gAEjzPYjoK@ z0DFpPk|!4$$o7FTV#~ok$Rik^**?e}#=`J1ywnF?mN#$iI8|yd#mr2|W?ZZS>~YDw zT<7RX-5ArYjH@$(F42$CBL*@0#PJvdVk*WI(bJiloJ;H0Ze1MI8Q3!z!0_NqD)o;p=3Ei9DFmCBhji;LB2tyZruEj1d;%gyG>N~^WHdiLzObM5xp+WGUH&iZ<{ zyCJDN0sHC0aiIcPds3y)i`f*zGb#2=F+5WYU&Il;YrDz;^tIpYSJX8-Ljc@F4r`VLU2N z%wy>^``4gUZDnJqT} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.linux-m1b b/usr/share/terminfo/s/screen.linux-m1b new file mode 100644 index 0000000000000000000000000000000000000000..a464292662fe7f98edb6f7ed2b436a7382b1ecab GIT binary patch literal 1941 zcmds%J#1T56vzMfwNO&gMyf!fJXBnyt5D^G_hBcoObIQG653b}l%mkLwDCvm#?Nsa zr*-N$FaQGsAR(a+FiIn>@9~E`WTFEzx#o9=j$Q>UH&&x^&l! z4~*xk`cz$4H`JHvrh3GRqDLv)wS)A}Zy76X>B*e%F3)x={c~T#YFQiBtJWLV+t$0* zd)8&^qkn1VD}Qs{PpoU!4eM)b^Uq64ef>A>+wNIqM>{x;UDyLV&=p;Gbs?kco-Q=# z@E542?cg}g35wWm(9~ZT$4_H7UDK2aFID9i!s*Gf>6OXPz|I<1m3o$v#a`-ENac!} zaGhjYB0cFPg~o*ZkYBtVgrZE0ERYoCameNg4>|12;APl*2>u3aJ2(P6ca$PKc`jYK z=P1upPSWG1=n330qsNU-i}oDD2C3{omN>?NQE|zn9Pg3i;yg;#e#+RgeHiv6(LA1P zXdv4It`U2l?tvV^#LVu`*jBPH2N?&I5adoJTl@qXU?2G zTPiIql*^UMxpRw))oK{lYD-J?`tow4v9i)^uCAUxf8j!_wYGNgV!OS*-sx<})18L> z_|Z5~N$Go%rNE2XB*QaL?3rYECKq&3J&o|%4K_jOUX{SK>OATgi^bzZ*yfrDLidx#@*m~wDx9Fq)TwZZC7JNveKSdhvBuVh#5Ti3s}lP*ZDuB!NoFRK z$xNGMGPN7K5(V94qo8!7D=DZ85ej}#6gLVL6m;dng$q~WLZ1I~-wYDkO(|}?%sJFO1-_AteKrTfke$DHX5ZuWvNm~EUh&YaTK8J zPYl6op}j30oX355m;-m=9@0S^g2oXf5k-@D7N?NMOXLLIqMz^!e#LM29e?0Y{EY!M zsD{*o>YzHLqUdootVU_2c`Buz>~ZYbt50xjM$N02)uLKeE!9<*)f;N}rWx;A&sFu2 zx~4u?U#jcsQ74KXqui<;rhjG6Sba}V=Cp6}+-jve_ia0uoXgH@&YRAz^Nw@H`M~+` zKic`@+g$fk=PTzM=lk27b>}xCE8KA0@C@$7ez>8o=!UP0S=}(Y*rX#^rkZublQgF& zVtYX||6&|Ji+yy>Ql?D0%KrtYr^>chCO-o=XI)k5c}flksM9qnU(}TEr7{v}q?Zz! z5DID-qN$0pF|t5Pl;M!e6CUx{nZqk^_Y;DPaNY12-28Eh>|}hp^3PG8r<|t8Ptz0n z6IM@Joe^z3%ND8JP?k8sfpKxkq&&YP&&7F^s{53+W%nrDX`;P6+0a6+4_qVmJlzL5 zf{mH$gY02FTt0>u`oPT!_RBr5N^8=*nMoOplU0N}AvZ7Ed3s7W#&s*}>#U$p3}Q6I zREz;}BE}Rk9b=kkbhak*GP-p@mxgo}?kol|GBP@vOpc9t-r2L~&Mht$3dLfnw6wIm zTrO8CD=Vw3)oQI)udl5&8td!L=Eg>=)o!0Zf8oOB=GNBscBiwm)9qfAD?9`DiQ{p? zQqnh)tu8=DkklM+b!!oXN<;{zM-OGWY)Sg%DUHXN^0P5D_)H}Et5A`S569>o2utOxLroQd(73@hE7-1k3e{3@vcUWWW_JX;&S?)Y7O zRJY2yRF(9GImtK6KsN$i(w(5oY8Xxo>k(a$S77*X5B)yk*aBueyf}$z57PlodsxU} Hvxa{F?S2hB literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.linux-s b/usr/share/terminfo/s/screen.linux-s new file mode 100644 index 0000000000000000000000000000000000000000..2a508d1238ab3b6332b9f8882909f85eb90a006e GIT binary patch literal 1754 zcmcJQO>7fK6vy98BT8Bz5*J#wAMRlkXh^g>yH4U-)Q}PpAgPn&s_Lmi960pUL%07oyB0*@f<#At z@BQAJHy`_EcD+@2)JHv377t`2UoRG`13|gE&{}%Z>2JhtqFhakb9W*?S8dD%MG}Gt zKO@EguW6isj0sv#uTc1uww`t&ql?xd<5hZt6m6$|WDe6lIzT!47(7V@=n~D+JS~`6 z7O732(dXbZbk0OB&?UM8x=LTrSFqpEcXXS6GJRqAOKg9Iy&LmA*xzCf!{6yo`imaY zBl?^E!IsyF4Pvv{BEs-BNJ1#_HY~RRp~X8fN0HTf1bw68eesEy5@k^rZE;eZ7U$QD zxNIWV#nm~3}1<-Xo(zpFZ?)@07CiL4s%+?+txWlOHelk${2E6>Y| z^2-0T^0jB2_e=S$ydi&(KR@HR=TVwF@tXJLAJXy<(~Go`EMJvX%~6H4s%cfIBjC*pdk`CBkMnbQirj8E87HvbHMV5!Bx@9CO2=y%$aVlbh$6c> zz^j{_@ec4BCW7fB_^1O|EN>p!wgXt5L|ultGdijQSwmcRUd~n-RU1^zw4>6D4$zHI z1HA}c;827fFd1PIs8zbc<5H@*NfmoknyfMEroO%%JNo+v25ft3YI^#}k(rrNsa!sK zbaplfDwS$=Zmw3FpRd;&jb?LU;n=a`$6Kw%#S)oTEQjg~~W-orh&{Q)w^7_l4`>nv$~T z#U$}{@1mEfhQ9#**muze>Vbd%Yw{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.minitel1 b/usr/share/terminfo/s/screen.minitel1 new file mode 100644 index 0000000000000000000000000000000000000000..b386b484716f9fa8d9cdaf852249edac0fa60e60 GIT binary patch literal 1674 zcmchXJ#14~6vzMf@zGEqAUgEp3dyLtN-HPPd(Y2tEGu>RQc{Q&NQ#IsZ9%pZKk#!* zY(jvTRxrT8QX!#M>d-DARY+Yrbf~&8bm-KfLx)bCn3$L<@%W$nY*i6i5K^yv&iS2l zKhC}9UElZA2-4V#P<`jLD=W2Hb2JK@VW-yc*5|FCYPV{Ya51c;7ME92{Z2sHpBRGG zLK|Dsc>)7?2k|Ct0F!tg16#3^b~pCnUF^pJjvdAXia3m8A++m6SmyW+ zxr>`NavOIUiQ}(u4_`C#Js!}1Wc%Xyr=IHJpVohjTo~cg#hXvE}O?4V?GBiyo z`q>8mIh-EUtyd=>hA!DqgZc!eghA?TL{;?MATNV_@dBZoP$t42nn;u#BXa{$KD+c% zvQhn^%g9WU@dotlA&O-1J@HOb<|y-wcv(iuUe4-qtMj6L*Rn;b*&~dNi6`S{x%JtD zbc$X>e`IZ4Pe30f+EPd^3#C4A2T5eI50c%EndyV%un{hwz$blRvWh*i>o#cpEGsfD zok{7d&^al#q;pNtw8l)Q;F*G;N6aMX6N3aZ#9V>_F`HnP=$k?$^YW%MXli>*0eTuc zkWLQ|kBp3ty6(Ai=g%)LE-lsTVR+%f#fyzb6g8X6%dOU>ODikwcBgas^6Ki9D{E_4 zuU@;hzTWNLkiwmT{@_sZWdia2jMbJsxk@}swP33JGUc%*RnaT>6==>YXYz$0Z@<5- zk5JGfhtIaWxh=lj@t5GPm`>f)8gkBZ wNe<3>m{!Kr%=Ju{Wf@8hnY5|MjUGDCL$8lGxPU1ar^a#A#k`A!64oNT0GTlz4*&oF literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.minitel1-nb b/usr/share/terminfo/s/screen.minitel1-nb new file mode 100644 index 0000000000000000000000000000000000000000..b4a3e1fd95c79b0fe994a7a3764d1f8b9a8861ce GIT binary patch literal 1656 zcmchXJxo(k6vzL!q9UIL7xZaTh8r+^BYa9^j%Z@-P)8^(4j-V2a zaJOk2E`NXuRMU7Z8gLLt&_vvZUW9QHXNZR|PCAJzNWdm?T?g|hV1@VwZmY;$+*keq z9^w(vQ#>Pmsba4Cy5!%Ge_P^r+^$Yb$DJQpv-OYurn`dqh~Y`a!V z@u5v)Bb$0WXKYJkyOsVwHtCz$p-kz2%;Wf$eMR3b-^TAE`F`ze<-@F|LQa*v-Mru`51Q73F8L>V}{dS<8$oI^!uc@Hj@fs(~k#k!s$ZwBc^x_Qt$|2VWRK5r+$H z)5&Bil}_9C?CjiJCgV8S?EHK#x3G}UFD@1eOG{U;Uc0uuyt1;oy1rg4Ugv|GfY#FQ z{W1aWo0d|=2Hz*DB_5J-`emY>S(303GGovt;G@?wzgu(khURy11!~Ytei!!8#%kzB zH1OJFTrExEtD&oNFyxw1l)bW$mWd3P5{+ZYaWq7+I&-3Wr3s){&xNs#t|L498?T~EhqBl9`{O0{A85N_!YmCuHrgwFy6+WxPyD9EsE|h$A^rMX@AlF z#uGeU)}!bdp5p~x;uT)w4J@@*^{LO)X7#1|N=4Cjl~fL+6klc3&Sj33UY}>%L3LDp ztE#H0I_gLDi~3DnTaj_oD0kFdbzePDkJMw8u%c)iZMCAQmwVc3JvGT`T5Y3sR9Q|GkXEQjweq?rUNfD>=7re`8|J9)rD) zXwFIIGr$GJz*WSsvkS5U(}%;yAafXn!^d#63!JQE4#9Eij9!{2m668yUdpgX#RJZ$dWuwl*&f{YwlLG^TgF{1( zbK=CzOtm^YTdM`Z$&;r})$3u{Xf&Ix*6Gu8bMy1<_L(zh&z?Ki=`1XqKfk!Rv~*Dp zZW{KE-SIW~a)xp@A$8B(lqXuzmG{Oym9x6cTPhAW=yGn>E5V+I#m~2Vdt3a1%eQ(B z)}x>C1ANE@uIFRfBy-SY*G!RDKE% h(XW%bBrm&v>oU4s#I7mqcW^9&eGVoaOcl@x@eT%#HXZ-~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.minitel1b b/usr/share/terminfo/s/screen.minitel1b new file mode 100644 index 0000000000000000000000000000000000000000..eeb88435e2f56e751d20afddebbbc25e911b10c5 GIT binary patch literal 1736 zcmb`HO=whC6vxlK2J2^(6pMNhM)VSEVtikdnc)$~PYgCgtg$6HV$_*Q=EZrFmt@qK zWJI)37g;E_;G&CmQ9Z3dzqGR9z8iqYhBUGUP6vrV= zz&D^KT{n?WX~Fp0bcgPOzM^}u-#{-lt{tzwNva8R*RF!QkzAeFAj@>_*jgHs+bhB;)YmwE#q?& zxhL+62jYA2P&^VFWgNc?Eq84~{N$3p;Uz838F?+T+)QsDE6Z^i$%dSf^YWVfMBbDO z@|OHe-j!ec&pY_?4d?q>ek;F|KguU>nD_QIc{Rf?@~KqCQ}m8HlTxQ?J*lEQ2Gg&K z$KXDI*y}(?wk{uig}#m)UGAqf2=zmGCtbsLgLJQIT2=5NQUw#L!5)VS)DD{tVe+=+ z<#>?8EsrU~}SG_bN<*)ZjsgmvU@G20w&O zKtqVwX&z%|jLjOGW9wLk4YC=)_`~qM+~Ax+JjdVxH1c*$?K8fr`bZrCn!50M2C#ty zu!{utF9PqtjKTB?@ERt9=@U4)2w1FS9^bNR@J<@#$#Q3M4rNjqt~@Vi>Aa45b;Gx{ z&u9bP1RbE4pbN|-=mFCSrh$(3L(a?TM!T+T&_1btT1{PD-Q9ck^z>NP*|X=)jgF3u zRjWZTK7Qdstrmv$`ou&OO-@ctO;0x(7cXAAbouhk%#|y%v-9)K=2b4-DN?%*CdcG) z+c78PfVa%qkOR4p2c@B2C6yFnQZ|N~Ew((arf@ z4lhU1HT7ijT0|1ReEwrc`0Mlky^YpUC;SRpiN{=rm#u?$3ULM|whAbK`&`d}# E09X+e{Qv*} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.minitel1b-80 b/usr/share/terminfo/s/screen.minitel1b-80 new file mode 100644 index 0000000000000000000000000000000000000000..c4d61d0c07c3325135e21e8e92ce9d18431e8879 GIT binary patch literal 1758 zcmchXO=whC6vzMfRa#p$7U`n)VHqpeSSAVYy?K*N7}D_*2h9*Q3L#@#)A`6eoi{Tk zqfRst>ZYaWq7+I&-3Wr3s){&xNs#t|L498?T~EhqBl9`{O0{A85N_!YmCuHrgwFy6+WxPyD9EsE|h$A^rMX@AlF z#uGeU)}!bdp5p~x;uT)w4J@@*^{LO)X7#1|N=4Cjl~fL+6klc3&Sj33UY}>%L3LDp ztE#H0I_gLDi~3DnTaj_oD0kFdbzePDkJMw8u%c)iZMCAQmwVc3JvGT`T5Y3sR9Q|GkXEQjweq?rUNfD>=7re`8|J9)rD) zXwFIIGr$GJz*WSsvkS5U(}%;yAafXn!^d#63!JQE4#9Eij9!{2m668yUdpgX#RJZ$dWuwl*&f{YwlLG^TgF{1( zbK=CzOtm^YTdM`Z$&;r})$3u{Xf&Ix*6Gu8bMy1<_L(zh&z?Ki=`1XqKfk!Rv~*Dp zZW{KE-SIW~a)xp@A$8B(lqXuzmG{Oym9x6cTPhAW=yGn>E5V+I#m~2Vdt3a1%eQ(B z)}x>C1ANE@uIFRfBy-SY*G!RDKE% h(XW%bBrm&v>oU4s#I7mqcW^9&eGVoaOcl@x@eT%#HXZ-~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.minitel1b-nb b/usr/share/terminfo/s/screen.minitel1b-nb new file mode 100644 index 0000000000000000000000000000000000000000..eb6f998371410541d59d90fb20d4b477770507a8 GIT binary patch literal 1720 zcmchXO=w(I6vzMfwy4!Mm5SK*B21A>Z1cf;Z{}qZhB*DOG}a7h8-qCyugbYVeo;i95K6~T=Q7cN}6aN)w0D_8dUKldeSXf~pFlm9ut zd+ztSciw&#q7U~YQeW%&%3Q719E_u8)TuT63j@sytCKF4nQzxB(M(jy%(Uh*fA0V& z_b-m%tkC9?HlD&g*o$O~ayyYfU_0((`!4LkK0J&A)~zSv-##B2tpX zXrY5;@=JKdMPA36^Kap8Tqk{i8?+z0Sd!da_n*_>qQ0WO!MFHsJ)R`r;|KhRpYSt& z!LRrYzhj%)p?cH<>LHaRMrD+xmvT@IsBoRr$Ywjrw!`WPbw-s{RmEyiy`WxIYj=!z z*F|oqkJL@|nfgNAQV;4R*-LFz_A~y>rnYA{)nrWdj>uLs{rgy?TY5n+>#lxLzpP)= zZ|F7srhZ3X*YEwuJ9z&e&iA4IM1QKk)VKdUq`a^Hx5$d7JdL}}a~X3MyI{)MS(-6Z zK1uf^CEiB1?c3^!zp!B2fvt|=UWUe~Vh}d?%i-``-PP*kV=yHbYS5mdO6Z{tV;Wyf z(f4vA(ld}+PAD&wjj@|97UTNJ1UWGQo6KywTXWE3WZW$q$TqXrXi6{>M=4n^@EMsn zO`V}88Sz8u?D!sI3WvYcm&wmoD! z1>Y6~ePTAnfS5}$OU$R3BZeu4#K0C}88>1(J+`*n7GTD(1ATq{{R0DogPwQp-1+k} zGqbbxdK6u}cT0)pO%gW^^XSp^ znsQPP+zkcfeJef{P+2NRh13w0r-rE!%A*cZk8rFnkCA7u7HpNbSsrTA6#YU_ftdz0 zKko8nZu9#tU-IqPiC+3`xQi#*$@jEJHbY5zI7S|p=Mv}J6~AjoZKrN)4LN(cB*|co sY&&afb|u?os(LfMw$E1N-S-|?M}GrxWC|xdJUxu#9wt3Zm9P}!5A{kJh5!Hn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.minitel2-80 b/usr/share/terminfo/s/screen.minitel2-80 new file mode 100644 index 0000000000000000000000000000000000000000..c4d61d0c07c3325135e21e8e92ce9d18431e8879 GIT binary patch literal 1758 zcmchXO=whC6vzMfRa#p$7U`n)VHqpeSSAVYy?K*N7}D_*2h9*Q3L#@#)A`6eoi{Tk zqfRst>ZYaWq7+I&-3Wr3s){&xNs#t|L498?T~EhqBl9`{O0{A85N_!YmCuHrgwFy6+WxPyD9EsE|h$A^rMX@AlF z#uGeU)}!bdp5p~x;uT)w4J@@*^{LO)X7#1|N=4Cjl~fL+6klc3&Sj33UY}>%L3LDp ztE#H0I_gLDi~3DnTaj_oD0kFdbzePDkJMw8u%c)iZMCAQmwVc3JvGT`T5Y3sR9Q|GkXEQjweq?rUNfD>=7re`8|J9)rD) zXwFIIGr$GJz*WSsvkS5U(}%;yAafXn!^d#63!JQE4#9Eij9!{2m668yUdpgX#RJZ$dWuwl*&f{YwlLG^TgF{1( zbK=CzOtm^YTdM`Z$&;r})$3u{Xf&Ix*6Gu8bMy1<_L(zh&z?Ki=`1XqKfk!Rv~*Dp zZW{KE-SIW~a)xp@A$8B(lqXuzmG{Oym9x6cTPhAW=yGn>E5V+I#m~2Vdt3a1%eQ(B z)}x>C1ANE@uIFRfBy-SY*G!RDKE% h(XW%bBrm&v>oU4s#I7mqcW^9&eGVoaOcl@x@eT%#HXZ-~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.mlterm b/usr/share/terminfo/s/screen.mlterm new file mode 100644 index 0000000000000000000000000000000000000000..ad74bd9d0b103f793019cf1b47577e972223b6e7 GIT binary patch literal 3148 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.mrxvt b/usr/share/terminfo/s/screen.mrxvt new file mode 100644 index 0000000000000000000000000000000000000000..7ce35ef264d0f5ceec289ad55de922435214f7ba GIT binary patch literal 3125 zcmbVOdx%t382`>a7j?rl3oCarA9!;&%jVvhJ9oxO*Y(w`?qgP6Tiq1b-PL`}toxXK z?~3+7OhL?|?2pJlQi=!-lmrp%0llCkh?F2KC?hI@h~CrhJLk+s7Df&8{eIs$zwdnK z-1EA(Sj?n5XexDzuk7BYo|cx*h1s6L{@kc8%x>$Pt;$3Kf0+6iXS`^t5tF7#bSvfm z;WvqvqMpbio2FAS%|*X=qQ<9Hl%h&n2fvOU0B(il^UVrdshxIGPWfXBAEdo>0Nx=w zOizKIqZjA|omSeL^r7N>{zvey#{V5GMLs_fHd)*#ZWgzR*EzXEbs%Ek^)hf1TTC=RVR*RL- zx5D(V-RiV@tbS`))$9VE9M?GF)L%+mbJjZlw>qxB_U{eV=H2m@A6S>H%c^t*_^qk` zVO-DWf3u`4lGEf2IY*XCS0-e+tdO;GqimFIvRe+xJ#wEsB#+3W@_Bhuo{{I}Tk?Xu zC@;$|<#+NYDeNM9nmxmwW0%^lov_R83cJ?cXgAtzcDFrb@3HsUhwLNvQTy6szgj(J zpR`Zg=j>PiW4o*K{GakWrqB26i^luR{=%L}*Hfs$X>+<2`vV@T9HMHL7M#k0!zq=-*_6XcI3quiubxRgBOVzK&NG)n5 z@k*XdPp!Ylc^X^w0Dzg-?^UQh+%AclV5XS%5lR9&B(8Go7p#UZc?vxJBG99C4S3;GJA9Qlds| z5SvA_=ny?(NbDAS#eQ*692QTaPe~JS5~k2i_}ZAMz9kl51U^PphB2(6TDqS$Qxmme z6n!*8yXg^nln&D4^fX3tj9#Rd=@mLhuVXCl+K zKsAG~9IPM4Z`mqd5?q;liMBW+kuhAN^JmX@7C23O%g&!;T({s-c|Fyyr}`@DSg}09 z5M}TgVhjPGnvKP37OPpTX0aOL%IXzRfRKRDfDnODQ#Dmkflz@^flz@^E4arB?y-V< ztl%CixW~#>>!AQ40igjQ0-;vdvkHU?gbIWTgqmKv0V)tG5GoKV5bD|rZVQA8gbIWT igj$zoLqJ^`dR-cFT^ed#8e*eI9ot+O^d^r6v-Afw69+y3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.putty b/usr/share/terminfo/s/screen.putty new file mode 100644 index 0000000000000000000000000000000000000000..ad80b8a4c18128b94b0557fac0cf0941b9bbb629 GIT binary patch literal 2415 zcmb_dO=w(I6h8O8v`NIY{#DyPYoqa!){^A?%^$DnG%=xRn{m=6v1uNG#LP5FGc%ba zlmAStT?mTMQVJ#rU5MZxcI6LBp&$rdxamR!Q4qz2D_5=r$M4*kF;f!3qLZBOeD|Dl z?>qP0bKl!94$uL5i1K2+YIbxcnanh2=W@BF)#9LjB2%x%Bm@!ui@<{tWhDxQ8Y*o2 ztD)ocIAW@3C)LnCdWs|+rY1y(=_GYi51j))Ps6|jWQ-Q=c!jRh z2Hl`{>3zBh%V%_pzN9-~-$A}tF@?gP&>HgLUlnw1iPwpT#U5dZgQ7t+iYDQRh=__# zaSHx8q*n}xAu%G7;1eP(=1TL5E8UBE_%4ap#5L%*#5>|6@u|2i?%XruE=Ip7%TBFU zdrW&m+owILB{b|%n*j1Jqs?gZ+OoE$#+QMgDE7H_Tj{S97GsO}wRU%ltJ9oKy;-+)PmkW`-2a;I)zb5> z>o-d5J^iNs@jqnoh5km>wJO6Oq-v@o!YsrKsv$jmkz~GDlx(xpm)M*IoQqYM_ zT8!@^qXRZ5KWYb3xJrtQLp@JM45|kLJ!E>-vWcK0NgMHal+CtWvGTG>CSD@r zsNp}8MM|a@goZonq_BU^$23h;GRzAU8z6zY5fbA}Oc~|%vO&2jbDkwV9^0U9k;3ID zSEx94;R;AE&0!Il+a;5`rAI~=)vA+65vC!t5Hwgk3(3&%@W{x83u9v!FHTOTQt5Oi zGc}dXPEXIw%+BU=b93|a3k!>jOH0ekD=Vw3`TQCecMyU@RfzNtwHt>`3|y{xjP`@t ze5St57T;E9XRBke)!EtV>>NI2-?0^{ct^!s-0mm`E<=KwB$xq2gQGweC*rvgG$%LE zP!AVqQI*>c1oHAZlpQtA%NA+cusd>PTf4ih9jkNQ9d)XBgzx^%ER)BUx-yoXrsC18 zg!8gh<_sxM{PgBJ)Nz^QDM+Hiu~F%;Hys<7DjiORcp2i zMrWv>&eIT$P!ivB9pCd>dJr#;M`#aLGUy;RP$M0o7IG*=9z`+lG-jQ{oKc$Ks^blZ z_Y;`97Nr8?5+UJnnM`qts)4zAxruX-ImkR@0kR0;HwZdXy*to0>ivP+&F>Iyct6I= z;+}A4B;^Wf?#agbMtMYzauYQ^U7}W*(m)^ehpD}T+B>P!p`K3a>7~A28i>(k)`Hj& t2jW5kkRT)k2}2@~wvG;9$H^BN<9)zbe>d=jeqN!sza2PuHcpFa`U|=7!C?RZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.putty-256color b/usr/share/terminfo/s/screen.putty-256color new file mode 100644 index 0000000000000000000000000000000000000000..97eeacfc6cfa3e3f79afcc7718297db04f5ea88b GIT binary patch literal 2473 zcmb_dTWB0r82-;p+B9NXZ`HP=cC{YTQqs6C`GVE@IgfJ`XHzXg+f8dg9rsh5Cu_u@X05i1lR9ByX$UD1&eO-egAj< z%b7FhHakQYJx2FYS$xzomn@{yxqbOkvAEP}2Sdr3%uHeB@bQtrkctErrizmR6%Lf< zrg9SjBn4E~90@^$|0;2#CfSHeWfN8I_#;ud^e}Q-Xd`W+?esWF+C!blj?fVrpg}qX zeVWdKQ@{jG(+q5h7HEZ@gQ`?sRQwXXLf7eadYj&%58?TgZqO}Sh58owPUTc8f52)O z5C2+V+iJR9+%L8YL+lj0M2F}Uj);nw=o3c~PXI$=RE&vnk%pcUSy8IhReM^?WyCIv z7sOTA*TkFR1M!KtDOT51+(zqX<=LpUX%A_SXxp_%wUmZ8)TY4v%V`B|Ub~=ORP8I^ zkCpmNyQ%EwimSO*{zALG&et5T>#zS+Ry}*Y{YLv<`$_vn`&Ii*`&|=ytKP1!&-y<+ z58h?J+w@)fZhfC_>)u^f{`b+wYEL|*U#Y2E`l|lrKaArm{jHYwTMYjUwNg77zMPVI zOQt-Tw`HmThcf}{H~gb8#{jmqq{9ta&F?3p7d{w2W(PAkN=i(^93mqQGYG(rnO-Yx zh7M*y7E{bJ-6&_eOks8@a#^V{jnWp#ER#ykK)6h{O0-pGEI9ep0n0S^A4C?0&`L(w z@C&FzJ3Psyp6i7&Txvv&gT~lN^e{k|z|KW75WLYVB;bb`Gzy@7Rh}zN7Lj z-tL$V9EKEcl28s53njq}C+fLTY)-X-)Pkv5T8@H3(=vivJ> zy*Xev0@p7$2b`wByUhW&Dezu%AlL|8yU`S|!;Qf6FE<6OV58)RD{nL+N!~&Ax5JwX z{B5Isv;iM^p}wl5cmp@5Y^V^ZOz-e z2$X<%U;$VJ_-?^oRksQ@l)71P?)i4%qu|H6Tbv+1Q)#)3Irn5ophNDJNj`KPPt>GU zmoz#|BN6K9rJg?Ob7-)S28U>Ph(_ZyowooRZ~zww0wEv_M1UyJ-P;T9J@O25Vi+7B V82}$2;U0!YdcbE+CTKBBe*$T;)?NSr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.putty-m1 b/usr/share/terminfo/s/screen.putty-m1 new file mode 100644 index 0000000000000000000000000000000000000000..67912a1ae808c9062dac56efbdadc648f69fbebb GIT binary patch literal 1765 zcmcIlO=w(I6#njO)kbUsLP7gLNAWT(>4f(;Nyee3jfTdy!$hkk^et?endD6~FPY3t z+9Z=iLEVUmAc_lhQ3Q44q6jMDN-0#KD7xsTi!QqA!i9({`~1#*Ge~GQrFfb1o$r44 z+;i_c_r5p#R1QNJL|y%5wJWV!ZDF{%-07_5Vt0L7NG5hO?Pje~pRHFivx}`v8U-lx z6GviD*w&T~PGc7yL9$KTg~Ob%6ZbRXQ9K5X1IRIQ4A0{@$~Z+ngDNq?JeII*vaF(u z*YGC!?c^P!yoV3*G1*0YiZAFd;cI-4AIw;iT<-aw=&#a#q5XzyxZcx~DPB-yWW%A=PyqMlY0J)SCC@fgQS>Xdp#MQTZ{sn^xp>V5Ue z9Wy>N$~Wpeby;0eKdY?CPoqj0-hQ77+`as2OLT#@G9)xB>pCBJ3IorJVBH7 zJeN}W1=@?WlT_S1mCzkEIA*XQ=sAWPO0Yvo@f-(6M3PBmK24d)xuJ&rjPa3u2=*kY zDWNQANU2YlBUKLfiEP2doahr-!zfIjl9&2~i&f0?J5Gb%%d<#hGMFA&751pqUzT(9 zxNeTN}APz@cTYMK8T00S9VO3 zSxhV!&@uIOb=Td{hjb^>wT6@^EJ@8+O5OBzO?UkbRy3Q*>LFc`_bK~CkGg$|BQrSa T;N>w)I+*lv(!op#D>42BEFB@< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.putty-m1b b/usr/share/terminfo/s/screen.putty-m1b new file mode 100644 index 0000000000000000000000000000000000000000..caa714872d7ee82dd6026120782619a4b9b1e8ae GIT binary patch literal 1737 zcmchXO=w(I6vzMfwQ3`_0ij@fK}Yd2E$PJfF_RC68XFCbZHI|gOXyqJc4m?{%}g?x znY2kJiGsQj5kV9e>Y@nh#)Swf;z}u0p(wiO#)S)4E?l_is(JmN`(|1~vk}qDod5Z~ zbI<*F=iYhy)ngbyKdS1Q(<(J9mHENOQoFs9se9+vri4 zcp0x*e$(pPcn=?tF5x45O8+^&#JBj)_Qmn#uK$7lD(xrQFSv%^y74&v9e?0Y{Dr@9 z9XGH;^{IZfSM661sYg{DA5a-s;lY|CyotmyOw4=+R|6s@+4zgcSN?E>EFkeoek$z=XK{T=UwN0 z=aTb@^Vxs2@)!Sb-mjhSoh#1I&gQL`l>7Dnv|qb>l@)b(8uwr~bZDxk;hA#YG<;KT zG7!vCCUtm>?l?_+H|gkYO!6mjFGG{GF+W%1KZL`xk$sBDPeB)Ks79Tl6|jezt5ZCY zG0)A8N@iAMSVDnFw$6XN4(lQ|M<&RM__p6?g62LCx(uDbOVGOs!3MMrk3bj4X|kU0 zF;sk(_8jdbBVLY?&>OZoVs%v1cP(3_=uoD3njJ$Dl0ikjO_7sxLpA+`^^radJwdc3 zlm#smdcZl7$df&gE!dnBJ&-kQgwrSRd=I!-$-ckq*695li!>sg$&rieUq=txKY#IV=Db74?T%K3=AAPl*tSZy6%}X zXV1>e%+5wpwR-;i++3|zug}jfEHoO6i_K=M)ow2>UAS=Z;_~v!%Ia#Tv$nRrz9FSM z4SirdIjF2W`*KR5pRhd)-F zXs*NSh_1wi3hF|Hf*+I?Hwp^6aOJ{<3s>^|pZjKz&~8fcG3S4N z@7!}g=G^=49+kr|22fSMI_*lUR$Cg0S38~cTx2$91u~JzwBuT(G2f_U=9gQUGz(Dn zCyroMX#0~k&f-Bl%7z`dpY#|WhsHkSkR;=H5l2wQN%9=3)H)Wif>lzItfPxdc-``w zR^P@Iyi0ly*YE-T$M_Uq;%nQMB-eZXTlyQco3tPBBYx?{ljJx2jz91x{=(n*2LozQ z4XNE~k9tBqt&(J~$|*xH&!~DvP4zg9Y}dnVE2)#}6;)R&YD2xIE~|Ic)!TZ!ZzG?n z&((GHjrvaAP)|8YqG@+}vW&;u+B)0bq)+#@$el*I_t+)p4d=4+mUG3q>RfX^bUt!E z`JZO~;x5Pi%K6^8<@|J)z3#mtGQ!V}8=k@g*aGzJ92p=lVr;u%g3ER8^B6jcSK;m?1Q+4D;X%0NDVoe@e1^&|(O#w)mm+S zeqo_rZ#2%GTU=~5qiAVqc{z?(R$8rgyVF@+J%9efg|)Ty^^J{gcXM-V>!OtK6x_X2 z>4xRy-N{@eX@ssA8~LFhdi7Z$Fzs(0LMJcm9Q4!UtEj>&j0`b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.rxvt b/usr/share/terminfo/s/screen.rxvt new file mode 100644 index 0000000000000000000000000000000000000000..d58d9f3884086fb4140da15ff3e9146aca145b01 GIT binary patch literal 2251 zcmbtVO>9(E6h8M|f?%*sFeb<|NCVFTh5FuoZ~h#i&{CKJ)2XFk!!x9%Q<&13Ql`^( z=pTzNB=ILf6HUZK4K6S-CK`h-j4{NYgt*X!E{t(uT(B_4g>hkw<9E)RK@CbY-pu*# zch3FJyZ>|7E1TM=na0!ydTOLRIy%u_uFg~zBEE5KVk5hx6cK)6;(*^$SU{?eR?#}D z{Y_a#yCGOXE1|fTHjqPGX$O=^>Y;;_qod%1lm`~*x7s+Jk*`eAG|ka@@C)>mM4qAN z=|!+t=rUbF{U%+d_mB~lYoe*uK1O}L&Ob%{IqVDZzoKvGJGw#N(~tBs{YsWvrJB^; zs#aSEyHB;K2h=vz4sKLj?Lz%eWgpslRKE&UUX|30IKxZS{`2ran@i zsOxHjRjakYqO!?qwc4x)EngxDVD)AjD;ECZab(%La7&Eiw=Yjh&c&OV&smqOm&JP( z_*y;w#?AIx?JetF>wW7(>$>%s^`-T-^{sWo`oa3i`o$u>Qm@f#^*X&lZ`RwitK<4% z-KjIWR}bi8dPtwtMP1faefu#rT9^K%uAyJnPwQv(CH>NW%xmQTpZZF@&)4-;ZHLF` z4!Vo%&>3?kJtv=bCXJIXBjBF`WbE(&s)I1D>!SUC&`6)5I}ysjI!vsH8-nzpAYK8y zi|j0_K3JBTfUy$5W9abQAjKNPUcfBD%on$W%Wa1x1`!rP0tO@PCV*vNbvI1D=hz6W)OSG0FY zU9fkO-3=-k+L?-XLMbsvS6-shrv|V|! z6TJ4^o$GWslX0h#_M9|R57dvS0SzMRgC-&xfW{&k12s;%#Ca*F(&UUbJ87~rv>Fqh zg`I;?-J$+Kt6<*BJk zWqNvMW_Gq(J$G(yZhn4YVR3PZm-QIgTRNl73wVWj2L5J1k|Duh81k?Oa1gHg)~H?bQ&+y6wT5+UZrJv zoSwj|rtzw+MqV?mrF-zb`)Lzxp>_)BA-sCsbb$KszCA`Ks6Z1`{!=#g5c|l3;lbjL zx^fCVXWm6h`ysDf1PA$sG-o9Fdhy$fC#^g5_k}*^6^rRyf9S?gkez z$5w?^U^6iO$I9~Q#i4d4eP`5}_ZM-tTQ{~kZO#b)tF^Y&sn?*iXOQ;0G&n#l|` R*wFY159ZVOh@onUeg}3h^g;+H=5i3<=?Kq&!PYl6m zq1hvv#7->0N`!Na1=xb4T+@O1%vpss&{&U+%Wcb7t+vAO8OmH^E#o7z=JK;VSu^%fWUieaKUT9Q{-;Wlk67op^?~)V^|^K8 z5!XF_Pr~r4R?Tm%bC#Xmizl!cc2<{k&DHs&u6a6NXTaZ2HDqUBrrAyr+e+H@A4d5@ zc#@$ZO3I6u`48dpplG}z`32Z%6Dm{hq@=NgI$oi2MWtLPNJyq9ULe#bB0c&J0kbnCFVOi}EUEHzRJGk*wQibidIF(Vk=2AXVl? z#(Kq*{0vW#*-9tnmhH{P7VS;22Z^S2Qp-TP4Sa$qvZW1D-Q?_OgVZn)ZXdyGZD6sS zIkMxFX}vi6(l3+ItIEUflfFwiN2heHS2vQbP71n2KSGZfMCcRyA`FP}2;)RgCo8fp zp&Ltdp;ISe4`Cs?mp->_iIJz532{ZRWsC zeP;a4#+8HTCN8~u`Ow+J502b#{yuqq>Wk@r_+)!wuN#QoO(3oGe4`D!a<6zA-nu;B zO}4j6m2#6_j#k7^B!h(90Xd^@+9Y1kB8y-34m^b#KkV`e@4zB-(az&ndLg+J%cVL+ z7RZLYKaS~@tDEkW-lQ8vT`0?OvuQa$+oEf}F6gE|#qM;)x^%bB$$z5j*%rEO#MWVK SbFil$gAR5(7*69*1^)u9Lnbi* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.vte b/usr/share/terminfo/s/screen.vte new file mode 100644 index 0000000000000000000000000000000000000000..ac73e8729991096b7c78407793edf446c66d47e4 GIT binary patch literal 3508 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 OPt|h0PBnpgnf?iC8r7Qs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.xterm-r6 b/usr/share/terminfo/s/screen.xterm-r6 new file mode 100644 index 0000000000000000000000000000000000000000..5a56141c96e27f5f16744e7469a9f738abf64e16 GIT binary patch literal 1607 zcmc&!&ubG=5T3VHw1VwHiqgGAj|W4_*}X(1Umo58^>QhzF7Nd$Z|5_Ta&yOXizzzBfDb-t1<3g-PeA zgB}YnhpV$uLSaz*euXx3+d@iY-jbgPsAd3*=A=Y=omx;C0vpr8%Aj&e2WgS;hi+~Sl+UC#TpSO7syr7r#n%>eLy`vBGiN4S``ho2S!C_dZ=n^O3)pb(n;%u9T zN)-ErEmE9wO{B#uh3x6N>kkx3#M-ly1M0pcYqIC{J*%R-@NAX#F z72m~A(V=x}-P%Fa{reg{T1=DLz<=3|@sGO>YD3x)I!?MPi?V9SoFl8I%=r+kCBT^O zn&a>jFy(*C8lz(>1%E%?9fgg+reRam1vEU;le#->Cku#d1xZLD*dBF*tJoapq>?^_ zz%I2_wc=qRSx};WS(Wk;8;<4JP9n^n>>FFyl)!Q^wbOSa6n}uQwLUD~G;}GK| zg=U;NQ$YGEw1kROej4XVtMd#SXwJT%r{H-=su7c^eS-F(GPzGwInGg&VWP_Y=}4GC zQcV?w$EcGQ7BZQ|#igZUad~-VrBw2~a=B8eR##VjzgDZ)*Vfk8H#QoL&CRW?W^;SH z)!M=4&&ScpR!1?_Y+N(sJO`7HX!0CPo`a<(=2|8r=UbeQM~$~3hcUW|G617Dv+&BW zJv=Bc{1&UP?i{EN>)^zAJT8aTnVUvSrewV!^Cju1`;=_Ux~y6nG(SZRkA49^pj}h| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen.xterm-xfree86 b/usr/share/terminfo/s/screen.xterm-xfree86 new file mode 100644 index 0000000000000000000000000000000000000000..87fff45447a60af125935941de6f320c1fced3a3 GIT binary patch literal 3717 zcmb_eeT-aH6+h>_w{0;rB!!yF1YE@DO0h8Sb7p*Qhjw@AZo9Ly-R;2Av4(Ybw)-`^ zvopKf*{{Y%2ogkM5w(VzlAu*In2IK1j6nm6Lf?lMT=uaxT(J)vKeFb<&tX~O!YpgdK*K!;0Vuu6HaF)CH03YOA`MvNDLrOf! zvs~k4=qLD2zIVOf>mTU>{xqM3?-72Czrj!Ov;0&3CI6QH%zux2SjHA(t8uZh&Dd^8 z-!@~X5g2LX-A21{A1o)8RXiUvK50B?oG~6&md^oSP}+IpH|sHt#_wOFzihnnnwI3) z$nRCvhs|c}7V~1`GS!lG6_MYY*ZqygRpzzkb!O5`nY+y{GiMgeBWB4gn+xWed8hed z^M3PF=0oP^&2#4C=C{o6nLjjtZk{(Un13{1G5=wW2m?Xm)^-RiUsSOeB= z*042U%~?y<3F~g_qt+?wjCIy})OyU)<8KVVZarl^W4&OVU+?vjm2BBq-;G5rw%qk! z@|}w9r(4dxA>!N{+8Z0`e??uyyGaxe(`MRAiK0DWR~&mZvMa7VT7|(o3g}K0-TmML z5aBp#-@jDdp_|?WQ#T~*2Gcl-P#kw!HOJBDfb7x6$PL8O56MyDok?&|1~>v)C+TO# zF{m3QqvSj+u9$u4krGXTFPfU}5Hjo)Nfg(+V^r5`cK4?d>Z)F@>Xr@0-~JvanY?i~ zM#EGS#cL|iyvRpC$ZlAA)dP6PDUnC=yiC<~q;(K702zeE31BHYDTQf;89_Ixbfp6F zov?+{lK8wVgcG?)D}*J<>t)dcXPxmxJ6u=>Pt9B@c=#?D)dS01l#**Il1f=_YAP~2 zW$A4yG6!Xm;gxczsmSmX5MLkwjDY`bNzyRJ?|zgLDS6vDva@z2W6$Fq+9kXKJ4zIj zVhip0$gv|)U8ufR9lPS$t7xZm+lLxxHGt~c5#C@oU4kV!23dkEK;|Gdy8ZUy;jyu! zM<*sGC#R;Sr_1G;nc3M&Wp1uot<~n|7Zw&5j~%PmmzI{7S5{V6*Vc~9k{^a-Q?hxo zDZJ{uETb>4K~~R;T#3PJxLH%TCRr>PWvN`*14UQ5h)EV7gk2znjUc4=LYylVb2{dX zW;Yo#;#J0YY}b$DqCn>kbnZas4&vPLPKz|BW6o$sZe@3!n7x>N%}x~R+@a1L>fB+R zTWw7z6=_b#oY9Qj%8uNcy_kK?PUPv_p3d#*++LhptsZh~PRE?ljNE#4ktALd&3+sg z`8v0+bNec{TtwM0Bj*|+rx6Zsjr96Z^Oj=kcn z+3ohcZ`#=`Ksl_tx&Z*-5OOJwCMj|vfvSL%f%9(Bu$e1U(5+U2j9lZguL61o)i<2KrkS}sAY znBh*kk$g&1JME=?sMijnUOPe~G(oepKr5Kl{$6xYBSfC)HKAzMaPH(zG2R$kV$Q-xJx?@mY+I zjTh;!Mf3jm^k=}=6le-Hr8If^Zt^t+nnFz}O`g8Dd`*F-P*Y0CjSrZfk{e$S@kwq@ z$@+cmN3G*#L&L_>$Dqe>k$>hdU8qrnml)@Ue4Q=J{2fG-dTgaRo* zpNKg7#Mvj#K5_QJ+11wx4-hUOd_XvX@OI~O@B-ll!V82K2yc&!*drtM$cQ~MVvmg2 zd-EZ9fN%lf1HuV}w{J+iKzM=h0^tS1+dps%yg+z?@B-ll!aL9-eSz=-;RV7AgtyQy zf`CFl{DpqF3;pmG`r#aQY3ltB1pX1|6?iLqIy-?Kxjn$no?8U-hk&_4FL1E17kGFe OPt|h0PBnpgnf?iC8r7Qs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen2 b/usr/share/terminfo/s/screen2 new file mode 100644 index 0000000000000000000000000000000000000000..ccc66853dd3df37dbc2a996a07946e16c2a7bca2 GIT binary patch literal 591 zcmZ8dO(=tL9DYRd(M}HJcX=;wQJU@Dj40VC+l)5*pzT67vuv}rS=6GGCC8v4b|K64M*7NcIefJJ`OaSP_8GcdODrYi9qn?OqPKRUMyAlm(>n^*; zt<`en>i%Y4t7giDT#;sEFQ3*7`@tv>Mh}KKqtWOhy3vmT4AM0kf-$8I#Rl0!Ok-BP z&5G9Nvm%QKDHl;3M-m%twcE%tvimPuuzU#>x*85q$1zTDigR4xQf05KnrlmMEN$&? z*IVZAaE}K((mmlBFVxqzt~cxbPW`|qzNp{C4Ungo$Osy+d*pOlOiZc^X5-3VrYh#GTaYQpBsh{Y{OH9WEUWxN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen3 b/usr/share/terminfo/s/screen3 new file mode 100644 index 0000000000000000000000000000000000000000..a1f00e06ba5c7227d0ce4836ce8b4bfd6643a5be GIT binary patch literal 634 zcmZXQJ4gdT6h-f##1DQDMAQMEv#&`un-Fi z3kwSi3kyLIY;A3AZEbCB);qJCfI4vBJ@3t%H?!L6010my}P~O{LFB*IK@>Zcl=-n>n49j=qMP&&ELZncSPEsvAq%QQpgcmkf zA0mj7Vmg~-oTd_(*ST#kBkj_f_8bZ*Y1-BC5XU%iJ8b*RrE~g4wQAd!RlXu!;|90Y zih6}wcW&k0^#?rS>0g)AtKu{FUhs-Hypulgi7)#1pA$90IpLu3U%%o9= zX2^_LFn0oGZrI!jnz=Fy)&@gdW~ON~l=5FqaWtw9{!5t|hfL5?l=AQvLqLVlCc~g2 zOQ$MmC=!CY77VfA^)sJUvyx*J2PNmJ1!|FsQM@BL3K@YMft+Bwez3YyL!tsa?^L1{ an5_WEI9r_M00(9vhad;l*KkH04fp}E^!``? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/screen4 b/usr/share/terminfo/s/screen4 new file mode 100644 index 0000000000000000000000000000000000000000..be8b56cc137e7d2f6eaac097c2779f037396ee5c GIT binary patch literal 1613 zcmchXJxo(k6vxkf5(I;gxTrioy1WDg>U*!RKy9>u5?xvz~Oun-b&dj98k&OP^?-upgk zg+UEeLkY2=%tf-XSlTL#47&_nKiNJo)Z-fUxSK6kK9SAMk0)KZST>bN1L`dIVm*Zu8pt<*!k6r>UGC`F-hnx4TiJ?T|DQS)cG%~taznYT+*j6j zxNi4nV%v|3J)bHs6*V+QduczZAuXY03@z%{GNu;IBH@{YbgQBBaJ?}0#iFi%=+t-9 zKBT%~0n?kr8-nFlTt;#5SyKCDDhVBg^;0#}n}QfD0YkTZTxoJ-F|{yxWSGK>uZB`A zvXHN0v6yn+v`~dVTdyP4=QLj1=vN{5Hf}rnUK*UwNY}(eq2@FsVED}l zJe$Yow|x8z@E$$#m^iYEq~MdT;Q3YYRp;+_8Eg-}(3MohU13}pq4rVg(&;~nmL_e|X45oH)24~y zLA{7x1oa|{AR>Ya9z+m93nF;%AYMFp@Z`aR2Txws@6D!2F$f|!?EBvLzIiimXLfdW zi2&784JE~jHb0S#$J2q*@Q}|mjQ#EXgGYTM{-$QzmrrJM3*#wYE}nIgX^_41vrarV zUZ^7y>R|_>klEVibq-J!?I5>8tD-gxSWg>}v6J?Yq&jLuW-A?~9*WQ~_z1;-37Vlf zT2QkTs7UAN0{9iWs+1dalkR}sqxooqk|B8^ji|P1Fk4-3{{zDfYp0YZ8_?Q0AVp7CX?_Df-1JF(#5CD~jU0xGb*y zHsY329*Za9g?K4e#A~r#bKP24rM46L=$gLMYa$*K|4peh)4yxeTIN4h%Kv4ZqIOZc zq+Qjn|6$zi3VnAgXn(s;56W{q(w=F0bd)yIR??#~DKn;wg=EH(u`C4t6rfv=9)s(F zu`efe{i0reH*JR04GUX=6#ftlw-YK#fFCBkPf01@0IZLyfdL0#GK5XT4sxc&k1HouF##xRxS)s|0W0DQ&BStE-&eRl+rt zg6Tanv`SEHLM_=aQt(y)`_jst-lvL@-opFN ze3fW(8W1)^)&xA8KNzxud<6UqmO@^rU+ooZcA1fei(SJh)^WGgPWAf3a&58-n$ aFc~s188I*^GB7DIFewA2MS+T>fI0xJ;PRsY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/scrhp b/usr/share/terminfo/s/scrhp new file mode 100644 index 0000000000000000000000000000000000000000..1698bf5d4e3bab78b5b4d1113c211560f5505bc0 GIT binary patch literal 1095 zcmZ`%TWAwO6g|^oYm056AXG;*)l8zc>TZ%g6Wa7ajcJN$(}%725xU#-Wz1unSlWUh zf4+Of#>{5tk_pGmg^VL<<{hD^!?KpMUI64ls)eKZCl7;MX^h`f~&-?;W}=T zy@hq~bk@y~J)4yT=}|hb&oU+iBYW zTY2(tl<_%Kq6XXx?uu*E+9VG<13s+_d=NY=og$?Rqp!r4Man~GXF#W*YL&ID^xi@FnmZcpiLKm5YG)gH!!6@Nw1aC^&T>+sbMR z^&Zry4{TB+kWIvo{hda^t3I;el>swaVO|TGA;+*NjEJ<C{EaD^^9Sm4IZ=7THr$d|MPsY$@clZ&BLl zqHbBm%1U$x-BiyM?wFfOnnmd!g(Cd)Ov{EkgjFldI^hS`QKfz~&slHK*VS^W<8Y@t z92=a73=j33J`{Bh`$rmM2S@cW&$w^Gd!}=;Y3isEnm@TPx;S!vAbBF)Y_%-4=GyaZ K7mtJfyMF*xEbOLu12?$Ej;+GTgy-R|t} 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 M1;o5uK#G$A0EOQG*Z=?k literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/simpleterm b/usr/share/terminfo/s/simpleterm new file mode 100644 index 0000000000000000000000000000000000000000..5e0bdd2e26dd4ecaf3ae01196ad511243e9715d6 GIT binary patch literal 1301 zcmc&zKWGzC9R8jPwt^s{ARdCE54yDEE@{$mVp}UTXlvsiaL8awlg4ZAnrm|DpY+-e zE)EV3;^N@oW=5TrJz*v!m3;BuLt3_b2>3#4w!)8kItx1G=_gF;d#Z;_wbgIC5C9+m literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/simterm b/usr/share/terminfo/s/simterm new file mode 100644 index 0000000000000000000000000000000000000000..faef0f752c656a1f9858ba99d1e6320fdd331093 GIT binary patch literal 398 zcmc(W-3!5B6vm&Sd_->Lly>uuQu0wsQA0}ektn&2kH5~|O;PThI#0jn zJkP0X4P=nT6DQnUFS>-@;~YhSt%rBtcm1oLUIA?fDQmpo56P255oJYHw9sbiDA#2j z@D4FjKJH36{$MH1)Gc5s+J2?U$Kl5qG=S(bSuwEo>3=-w2v< b4F%8~GzINJ8_@9pG8|3}$7HuiVT}@AHJUzDG0Xk<{6SqLJ*+?rsJpaNKgfq{{MFkoZ|VEF%E0*DzH zn1JN}|11pL418dgAcGcz4v?h><{1DI&+r+N#N_1x7F?0~doF V0|x^SFc)z_X+9u}i-B8!0RX0y5R3o- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/soroc120 b/usr/share/terminfo/s/soroc120 new file mode 100644 index 0000000000000000000000000000000000000000..455d1a266ce43fe3ce6c031a93e864015ae51534 GIT binary patch literal 959 zcmb1QRAf+NU}l)W=*m!>UzDG0Xk<{6SqLJ*+?rsJpaNKgfq{{MFkoZ|VEF%E0*DzH zn1JN}|11pL418dgAcGcz4v?h><{1DI&+r+N#N_1x7F?0~doF V0|x^SFc)z_X+9u}i-B8!0RX0y5R3o- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/soroc140 b/usr/share/terminfo/s/soroc140 new file mode 100644 index 0000000000000000000000000000000000000000..e364e467ce04ac87e601967cf3f4168b824af065 GIT binary patch literal 486 zcmbu5K}!Nr6otQsgrW|#j4p@^Us6Nmgj9k>S(Xt*QOjtN6x1ShilT^u77-Es<=36b z!I73-IPaZv?&0$8n>NA>8Q%EjwiougLA~~THHgmRNS0#`hEb*Y$c-|GI5(wMh6!cP zWy#~kY?4`gW%IFGB%rQrnMSOmY*MYE)25T^?Q_6UO8=%$)H(g*I(Npox|dvYL&!Z( zyy%ASW66)9`W$nUSN!k(LiWh&>f$4J$Ro05`+=>NtJb$&+h0nkeo%=VMM?z<$O95q wnhPs)>qrB6MGUf*yq z|1$t}|NqYd#0bC+=5fNsxZx~5I18Z~7fTF7tptV$F1_>E7^DpuI6*?vmLM?zxjhR? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/st b/usr/share/terminfo/s/st new file mode 100644 index 0000000000000000000000000000000000000000..4e03fc991ced704a732d913c4c96becaf508dce2 GIT binary patch literal 2639 zcmb_eTWnQD6y0-XD#buB5K*`h(QpU~h4Z`*543P8rC=Xd+5%FmZMcQLx$SLBDFqTG zB$A*JMG_SgOuz(W(I_8W*Pc0-hKG+2Z|>~1_C9;o z%$eCUISa)Cx`*aauXw$pI674v9qk?&oa*ZDT3qZMEDUtBOC250B z;#Wy)k*Mf4WGtXXw3HsCmB`G{W@?}uZ3BOlI$`r@Jv2ZC;5bdvAvz3pjE>Vu;45^R z&e9unp5CXA;D172&{uQ`><6@;(D-)+comIAsWd~(67$4eVv(@ntq_h#iibqC$clQ= zBwED|(J8t`pBTo|F)=9)iKoO-@aMz{aSHfPzcb=3@t(LKJ`)$kH{!DRS^Qq^A*5Al zl}fX%J77ztd#(GeD$B7vE3}Rya>6>P<9H+Mv~|`xXT7cc^Ko=~)ZcE3{CQJkI{WY0 zRo$yXmNRC_d2*rl?t@(x$5&l@UMeN!YMGUrWKM3AkIP+hNRG>c@`!v!z9?UnXXKmm zUHPH>Sbi=q%CF^j@<;iryds6FRCCmPwMZ>hD^*fet2))BwyF-5SN&>4O{yo=QFUCs zq+V0!)H~_}bwPcq%Cq`!_@%m}zEzji_v)9p=O3!N;`+XaZ}9o))3=CS-|OGKXJd`$ zD^67;+IP?lnoWszyVowbc0RHTo}C{-z~2p1pJ?|s10P0XjI%aQQ`4cIZbzsdt;P!n za6~le0jx(`hn7QYq(p}k&7j0G2VOV`9(w_^G_%w-6EM>g+>YK^I1Wd2 z#{rOlji>WHom&(3ELrV3&Z=r;VMZ7fNeT8`$Jgl%IGK3OC_KoZP2>TZS>DsM-Hp6D zcy1H|n)w|(ms1`=+k)1@54C`sVg)y?ZHBGqXs)R?dZgxBJW8_9-I{rMFbEF`z(O_i zV%4~qs>Ytg8lZl29$k~hGT~l2vbIckK04A+COn*u@JO1pmI;s4ix#j6VRo`}-6EwC ziT6BDi4^a0BiS`}A!CnX7wv9rh8>F+N*e8?(M}reWUQ@g)J;VO(=lcYLR-h7ZP1S~ zFz80U(e{nDZ?yebTdy9p4W?tv7=*T2U5Lc8a zu&P|s-26-wWKdomxNG<_@VQJ~d%t_YUSp32cDMF??ImL`(4HH6N$vT@%j;Tg5B?Vw zpYJkHTRz*qKBgQCV#ePrG@q(yj{aboNpoolEhmrCl%Pw=H3~{ zaa8E_LnulzAxbbv!l)pGq6n%V(c?!XK~O(}@J}y@pg^H+-&*_3$cPj|m%G>Zt+m(w z_C9;BbJ#bl8)yk#OM~jQhH9T{M?&r1}+p zb7>7S4b4HuO|+C&(CyTM%mQtq&D2HrgFirhu>EKQRHh1WoF?fAJpuMK9itP#m*^Co zrq}5#y-Od!|AfAvujm`FAJKkB2#PMuf3sz0YkDDBL3 z>h<}~0@!-}7H7HB?08P##Lh89jyoqLjwfo@dS z{l5NKf3DBzZ}kuQC;hv=s2$T}7MR6msaauKOxCoT4Q8vk&pc#GrfjNa(mZC4nq%fg z^NKlR-Zt-^|jM9gG?+cCNgj>i!h zSO$sM1d<;}ZZRIX^={wu?rcRCR)k5Blwr^JLP_6@HxrMU#D^KgBmtn4w)n)Y*=%Ec-mHleY(x@RR^-R3~p% z(Z^B+2QsUH^5i_bkS)`MM@eMOG~x9~Wb-uP=_JB43F(<8Jkuar#3qJ$l$}|dlt&~z z^M1{MhTXZW0w}w-6OE?TS!D((&zAO_&Ctk)^&{3Ee69IqOHDv86F+U}+9C z?~LJHyM4JLo|0 zQVqzN*_3!DlQ%Swx(Q@yI6poj0IGul1;Su!BpsGZF`r_=V&J8Sd|qIXE+~l7yd<{T zvDJ>PcARRb6=+M@&!@Z9byUMlAEi5EafxjIg*QxIw^bfhK-CE?9#0$mCrd}kTpL$vGLhJQQvGzv)i%Q4~ z3dBk^%6rPOC}n(4X`)5+2wz{o7UB-F40jNZVoDIvxR*51JluR1()GB(EWy}f;Cb?) z6C$5iPu?iRWj~jVAWJ4-hA%TOLiPq`dk?j>Q`>s#!oQokOVnMZo^Bc)nwX#}n|}ZX Cdp=A6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/st-0.7 b/usr/share/terminfo/s/st-0.7 new file mode 100644 index 0000000000000000000000000000000000000000..0052581cd1dccbe062dda26bb76fb085cbf31968 GIT binary patch literal 2731 zcmb_eTWnQD6y0-XD#buB5K*}i(QpU?ZO`*QI6$G4Qm~IJEl?@dA}wv{gWKM=ls+I) z!v_f_5|KpF1QYl`qluFENKA+y8XrIML!y2W5?|p16OCfRb?upRX-W|N@TRlZ+I#k_ zIcH|i^ehq!>0z2jJ)-2E{BW65o|??}^ym6IhdYP*m%t?w`p*~vr}z^DFH5ELAQkTL zE2Z_wRCEtA9-_sxj8;%NGBdQ5>M(96_*2vl+kw_ieUt-^(l{NV7r>6w2|5KlO=svF zy+s%3L;3{%XY>_)LzlsRLi+`ce>Z?P(MS{uv&0;+Ks+E83me`l;fSPIE!K%DQ7alm zv)CotMW@&=2GKhr#>Elwyf_B_k~k?|2j1;>R=guV5EsQ4;*$7ITou>E@5K>9TBTN@ zFxR>dworJ)ddw=b9Luvp>jWYvty4OVH?q!H=dAPAyV}11dvnH=zr}ge!9T5;8Ph#? zV>h)Msr{QKFENR6xK)G>8J zy{g_+=hb`aBXv=Iu8L3f-|%a7S$(grsvp&L^@kq2qvUkS%&}K)^SSqjJH%#=`giYI ztZ}{MuaZRTE}BJiDbZ^8*g4nki0qtacMKumcfr&qTD`5nC(sz(dI<6D6!mu7xu%rY${zR$Z)d9UcfBPEOpBS%=81cV00B6 zha-AmA4tH))A^pxtqi-Du5lfwVjZ&ZM3@vw3HDsa*XeaQnRv}8Jj|d?&*HjxlQ)4x{lI-)aMqVCF!czjU zP>sA;l`bAtV|QXLP`^3Pu1S57@F*QwUnKlII#O38Je`j4Oqw(o3D4An7O)9n_Odf$ zk(mb8Z>*N&Kapn;*To%8KU_$lKDprN55 zsAp&jG;K%N)LNRY%LFs?Qk!KO;U{AcE4Omvs_L>0aOY8ynlah zZ(m=3|G>b31G(Jb;LuP$KRi4#GCF$j;MmxqL*wHU6O)ruQ-`7QIG3N6^KaW`uNFPi zd$0G(q=dIJc_BSrFP_%GzVX%oP!$X)3HxJts!w^Xqx>19?H57llSU zG}@uj4rA@O@=OW4=@>Hxp{@HpRBxQ(L1>%Rg-HC|27@>+3XFDOv;(cpHxw!r7gz`T z$pM&3tSZ+uH$M{v8I)HW?iySMZ9$|DLp0R&>}syp2`>z%>=pI|E)8eOuCTpwucd-( z_n&%#JNG1Z^K5(wT!>BCYwh8{?$n;Iy=3eK+H+$ssXgC#9r`4+2LFqS&o`x~E#Dlz zes7KiG2>4nT1aIyPk#^1runp#R+2|)s-n%*K-+0I?WO%RNMpD&kJ52^nO?(p43Wh5 z&}^E6FRuA?Kfat2w1jMobty$_X(Mf+MvUG?&k(K;{BLj^ef4UBYrZY?^fu&SJv+~r zwCCtkk4(MyO9m0s&&dq`J>a4)%zYUe@cEdc$jxchwURU?9-4{?iv{oV*+r%SpD#do z3?A1;D@;o>RaH~fCaTXc!z10mqn~-|zYMMb|!5dnb!-8kG?Er@b X-?oM0u;AOXpxd({4fT(WQJ&4;Y4V4I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/st-0.8 b/usr/share/terminfo/s/st-0.8 new file mode 100644 index 0000000000000000000000000000000000000000..a16520e49f9b777c995a62f6b9de825385d8b22d GIT binary patch literal 2637 zcmb_eTWnNC82;zXREmLMAfmDn(QpU~E$6xy545n9Qm~hmmW$MC30vr$ZFgHrDUc{3 zkwlFslBk$q0w!oQQ4%kS3GqSW0X*ged5ikVyVWdO-~j3h6;l{rJm8DC2)y^{u?9URDL?1qiVXF$~XB{ z(^_OIx(ylk&|+Ff4^b^LGqjnSDM#DEAER#AJX$XeQUN$llXQfRf;~$o=oIiZIz#8^ zExJG-(kJjgqp#>2x(xOc+AnDQy9&I9MxtDvCFY0);x4gR*zi^gMgTp$-|?|#_jaeUSF=jC!zu9jK3N#^8s`Gnjfhvm3DERV_O%d1kTYBf(SREyOzRjZP!PBp4lwM})Yyc$rWYEnI=j;j;u z74?QXuijH1sf+4!RhiX)!>`q4^}V{HepJ83J^xa5RWth@y}{?F&)g(7v)8|S&&L`s zR-LX&bnc{CG?x;ccAs5v?R;bxJUc&%fWH@}DbeX|20ntu7-wyqrlvy^-HuQbTD=zz z;)rO{3s{e~4lRe)LWwRXnnj7_4!m#(#${9QIzfh$J@x`-X=bVGCSax~xC6bja2$^4 zj)Ncp8&BtZI=4RTUAo$JoKj<3_3aWe6mQFxd^o5%ySvAm~gryF^V z@Z2Z_wDCK5E~h+-wgs)7A8G+N#R_g(+YDRJ(Ogq)^hj+Dc$8$HyS4H1U=SV>fQ4$~ z#j1BPRgJxgH9-C5Jh~<=6~euAWNn4;d~~F_LU=eG;gK}ys1P2h4=rF5!t7>e#v-K= ziT6BDi4^a03)%H{A!C=Yi*^q-!;Y{U9821z$h9M;9%x{wYZrWb3VzD?0cdDw2oUQ}ywqly#&~AzVdYk=U)fNzt~Tpz=1=o*!cMV{Sy-h4oprSJUBIV=+I%PJjmsz<@_7A*=xd+>Alx` zWm3ZHnY@smt`|>hVBdIa0H_KE6b6H-jksGX#&nDsgPs#3^7-|=ctTzf=S88>4vltb zw8L0Ct~^u1ZaT({L1^pe9;!FiHW~U#vruK>Ov%*x4|IJivpt^80|o7^9_Yc#RZmUKRFCj zk5%QG=H_RjAcOMi!d=6cfzM^?+6Uc3_8Pks*ge|wwU>;&KznZNCAH@pFRyF0Gx%Rr ze7?&(ZTW2b`j~Poh#7yh&_b%AdHRcGHqED{w1PZJQ9a=SZ324d=t&5JMnFkpe1CZuS+RfL+fc1wW0S;dXjL!aeF(Cz8p2dMcfs7 z5l^BB>)AzKInUAO5}A5;mW&{#=gAEBJ6!CXxzR!cJ|85Mp*c@_H%wqymbe2 fSn%AIZQ!urTQ+eV7JO?CbZai8(V>Y6Dzf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/st-16color b/usr/share/terminfo/s/st-16color new file mode 100644 index 0000000000000000000000000000000000000000..a5bb49b9047433dbfb4a04a22d0b254df76a7431 GIT binary patch literal 2799 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/st-direct b/usr/share/terminfo/s/st-direct new file mode 100644 index 0000000000000000000000000000000000000000..455dfa9b2be98e1cd326e3eebb35f279f30842ba GIT binary patch literal 2675 zcmbtWTWnNC82)F^)PjLPY=XinRKp=4l%DH$*Mn4+(iZGxZOgTmlysMNd)@ACODQc) z)bK!pi9{svmS6%8cuSPTOJYKN(0F-~7ZUZ!@ZcprXrfUPS-*egY#Rj(iJP7O`~Ls@ z^Ua)@e9=Mp^M@MWI-e&gL_H#hF5OBsZKXX7VG|N3z9%Y8|fW8ygZ3LY1PsLNTi0-4(t$uT*IU-4SA!8-2rgii%ZANB-c2NtZXfODF>V-|C z4bU*Geg8vD9L0{2TupiKVLgU|c;0-hqrBbC> zBC5o_Vzn^gZ4#D~I^qE}?Zpcu!~2{A3^#M9y=_;ccncm?=hzw_cP z@t(LWJ`-2OH{zQ3S^Qq^A&khPNU5|mvK+QlS`&FFQWLQvPQ;I#M&wN7tcv4}BIhC( zA{QfXEB{g$T^RMZn<9VS6j{i=J-eZLRT$-rB}SF8N_h{$t`Fn2^Uq7An6br38as`Y zvDY|g95zOcN#nS2!g$tr!Fbg;Z@gi=YkX*YY%E|SaS3b|UY zlbdBsZk3I)P41CBGA)N>UQWxW+^m^sHx=MixGVVa}e&Mx5N zXpCW2(*o5Un(1zYn$hYVe;7wZkpaMVv~6f9v{s7tSV1L4*IV%X5g40Iy={33PIlPy zn8lgZ%^Q!In&3Y4PQtM`qB;(Pcx)V%@2K2*e_-tv+p=o6A`3IZph$|cXIrjHZ^6mL zYX<&t24w;V(9ZIXqTP1jG{Un3AJES4;Mkn<1X>4LCqGmIb{#9&ab**19ZPXVl~E(L zH{el>eeTxI%Y#99NB|b9ofoU###9v!L>~pJH|Nn6X)P1(r6P}&3C~AGTFQinQxP6X zk*+e~k+NtW8y}{RoqsG+9FcI((-f`aU2Y|_-pnP;B6iWtU^C1ByTP%TSqyA5VCsN+ zn%ZX0HD}=0Y2O3&HT6LqP3u78W`Ip?rp2mEFfuQ-UZx428GBf{joUXh)NI?Fw089N z9y)aRaDV?mW438EIwYDE>hn1&G*p7#o&4lQs|B$2zzExJ>tD{Qr zhs$ERht|?YawtwoYN9sUO;1uE4bnJG;ch!Yr|5Zl3Evz1-BO9OyOfqw6%&s zH&8A46wo&GZlzAzPY2PTuitvdveYH12qHbcUWo$M!!ZlIf{vxmCoguGShBlXtPeUz@U7)bwZTpzRf~Pw6fWv}!?BqBs`0fIYtpIb)E0-sh=|y` z5g8d{M2v_S5fQO}=-Kt$d!FN@IO%rX*Y|s0-|uzZ_lrB77$i+I9f`mA<^D`1Opli< z#j=IN;@StJmgCb~Kh&(?hlXs(x~2+{;QuyoJj8G%^0d)O5I~dVAZVeLq+=-_(8D8o z?UbS4@_?&9aXIu}UxQ>LWjMlTb8Y?KaS3-&g1RW_gc&zDHdLckGU*+=f3I&iL8D@#}_uSXVjXH^-cC z${)@+=Yq>R^|lw?w{~U!A%#ZJ7|Nkpuhi#tcXfLYy*aOxi76UF&(R_pMhoaE%Ayyj zI?yNd8Ev8!{sC&$^SuB7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/st52-color b/usr/share/terminfo/s/st52-color new file mode 100644 index 0000000000000000000000000000000000000000..608e45420287020211bd17a09032e575a6eef743 GIT binary patch literal 1966 zcmeH`VQUjX5Qd-BLbVX|qc{lpau!iBcWv6#+LqXgwkp)NS}md^Y1C9DX>x5XRtkb3 z2!bH!4-fjjHdWi{pi{j#JJ`u?_8Rg?nKiBP0bLsl4Uw_RsI`acc8*(r#@JcwpE35V^@AYG z92c193T3J+vBD~A+%Wo0bKT-LckJG~>p6{G)FSs<=uy^v-S^O}k9f=zoAvZ3v!g1_ z?6a0Np10WXqCtOI7kSMa-tvz3eBdLW_{^6&wOL2M8vFX&b-(e-oUcDQ9<(iP=pc?9 zM2;Zi$Z4nSI$en_XP1+A%3kCm2avIYtpIb)E0-sh=|y` z5g8d{M2v_S5fQO}=-Kt$d!FN@IO%rX*Y|s0-|uzZ_lrB77$i+I9f`mA<^D`1Opli< z#j=IN;@StJmgCb~Kh&(?hlXs(x~2+{;QuyoJj8G%^0d)O5I~dVAZVeLq+=-_(8D8o z?UbS4@_?&9aXIu}UxQ>LWjMlTb8Y?KaS3-&g1RW_gc&zDHdLckGU*+=f3I&iL8D@#}_uSXVjXH^-cC z${)@+=Yq>R^|lw?w{~U!A%#ZJ7|Nkpuhi#tcXfLYy*aOxi76UF&(R_pMhoaE%Ayyj zI?yNd8Ev8!{sC&$^SuB7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/st52-old b/usr/share/terminfo/s/st52-old new file mode 100644 index 0000000000000000000000000000000000000000..bc9acb631eda372133bd6f0b546391beb1f36a3f GIT binary patch literal 562 zcmZ{hy-Px26viJb=!2xW&T`>$GmxTdiG5j`QECZdBGgc*DQTu=w*rZVhK7cShK7cQ zpg9O4h=zuShKBy5+vD{XHgw^4-shb2ob$eL2ONXwMmsL?g?+>88LpJJj)O+JR!~-x z%2C1CR#Hi?N6GCTl+s3_QU)BbJ_q73&3*#3F`8xvH}zVo4?}Qc1Uj>E_!y_Gy5EWo zuW1Hav}uOyY!MMlMgMf06EW5rcP8v!%0AbzL6t!sMU+v)A?i56DQjmqw>=lQ!Zr1c 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/stv52 b/usr/share/terminfo/s/stv52 new file mode 100644 index 0000000000000000000000000000000000000000..384f8dd9735499c53a3ddfd340bff39877b2dc7c GIT binary patch literal 916 zcmbu7Ur1C@5XOJEgi=^~?}J#xn`Dx>AVHY8rI@K@`7c2z-Bu9PU3b^3tA#=k1VRu5 zK@bQ*5ClQ5J@?pa2tg1CK@bQ*AjECMC{13CmoEfu ziF*Sx*M{T4Os=pvIU7%9=JT1^GqI-emI?HTG^TxoO} zB@Nf30hB{Uivp#!avRN|th+_)DG`Bda&W;IWBW~M&B+ehRCEK~L_=s8ji6C9hHkmd zdQlgeLX*+dSY1PVqN$~$q^+q=rIM7H-Y8Y;_O+j~MQo%km`4S)Xv?4_v}`Mzs&!xI E52?N=0ssI2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/stv52pc b/usr/share/terminfo/s/stv52pc new file mode 100644 index 0000000000000000000000000000000000000000..18473147563ef2303b57d0815459f2e6e1101c13 GIT binary patch literal 848 zcmah`-%Aux6#lLSny~opp%|)BYa@K@%99wXaV^~&Qw*#H%V%+29eHg%9iHC7d?rE4_E$>`d4l_BAo#lPL zsCbA+c#J1_if4F^7kG(Rc!RfGf5-28e85LfyIAbmbuHhQ4yhN^U&~ah_~GSiWqiqb z{Q$nCD4|+W!uzA+hbs2(E3k?Z%dig`mrztDsT-?bN7H9Mld9Gd>CG2AQB7XAZ?_W(YI^GUSuvo;=~mCJCpQVfH#Z zElArap9;DOx&`V1^@47L`au1lJMv}`PzPuP6!T8?RiADRoe8$(y=mkU>0uO^h*vrW z?X&+=V6f3SyAjzQUWhG@{u}$1_%gnJ|6A(k#P`XSv}**Wmd$`QWNR7C(X!g~Qtr>p j@7b-nzw@sj{FejsSK&$c&OD(7vOyW129yO&^UT-*ES|Ra literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun b/usr/share/terminfo/s/sun new file mode 100644 index 0000000000000000000000000000000000000000..52a27310747325b14902b2874b80ab99b933e2e1 GIT binary patch literal 1004 zcmb_aJ1+!L7(Ey9ek3{+2DuTD;Lc!oZNxkA+90B$kzK`NXO5tI&gZvDu$66xfj=b!q) zPR6$u+~k0D>>cj;!FG`LTr26hzPG;v2=Fl^u!?-Xn*dZ$%;&36je5?S(aGG!v4>(W zp&x@>Yi;py5Dh2eAy55M&S8OiiLk#yy!Nfxz!s9&#Q{!mjtgAk3fH)y`7PlN_jm}k zkKcES9TZkicqY{g;kB&#tzhy_`3Kh(qHs@DQB^o8l{b`7xBlq0ac%wRmfBXn*DD78 zbie%O|Co%3F;RmiG@@g3iLgkJX_-|r6_;6CrsnAvtEJ`)VT!OyNDv~Kub>l+Ny0K| z&xxlAwmp2N$#IzM5ksSfB8H-dVoc7EA!W#BQfA9AUzp{+;ea=N`C`l394Fc#C)yMz y%ar)^mX6IKIiWjQN9JS@kH~lib=0<1=!H$F7=Kp9*u07v^G^68u2ev`6va=T6j7=G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun+sl b/usr/share/terminfo/s/sun+sl new file mode 100644 index 0000000000000000000000000000000000000000..c5fd523381f36af2e156750085d0b98699ef0dfb GIT binary patch literal 349 zcmb1Q)MDUbU|{HA;AJQ-&C@Q>83 nQi1BBfbl;`fPsM|<^S18R8N}e)K|^PARU_{9m4=Zu{jI?4}KiW literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun-1 b/usr/share/terminfo/s/sun-1 new file mode 100644 index 0000000000000000000000000000000000000000..dbdd41211432266c954356d91ba7e3b7d4b5c4ff GIT binary patch literal 994 zcmb_azb`{k6#g#aM^h59F=)dLBGTUXs#T4YR-&OoB4X$!C27KIqnd^^Og5X%X0sV= zHiN-xwOS404|vW!?`lihiI;rm`_6aIIrqGmH!Q|6h)zt2j3`%}8CBb=H~}?tP;mAF z)q;~RRs;LRqd@tjtSvx*AHggr-Gu830?k!)e1S_4+kzklr%+Ht|mVEQehbP(l@FxWFZ@aE%+>()k_X9uIglwNLe)=KFu@ zXS`6=E8(qe^?TFF2kB4FdxcLlX8D_R!)>RAT2v4J@`9XC{&L$*Z0(0c^iTb*r~a3_ zAX1_S{qSQXw?nNP@)CG#2j#d^t16P5^@gmo^D9g^grg@zumNXSyhIdO_$ zS&>ssw#{VCdKC32=Fyx-aV9(Lk@Co5Qr?sZH!Sm9bHJ0nx8ue2iY(T@gVliDfSvL=rcF_}0-AAJYfRGDpf4Hf5$Rh-vXac_Owyc1{Yn7S0jFB%F(8vp(9j6#UAl?N8OJwC{0tRPB>)`A8S_#E;%2*WMr9ZrghId}97j_j_;tk4Z=@i2;nl1y5#&uuYIT zSyVC`lSM;jH|ZA}q~;nSK}Zu)gmAtYti(c`kR)xLc$Hun!ApxwlgS8aTGSNQ6wwrA zG6R~FCWA@oEkVAp&U@_vZ)*Bt%a%D#EQg#}rZ`DbQlhtbG6A__b&95}$#N_#V|ffw d+fcR_Hld>YSrujTDyq$!_KUbuWxAy(egjX?M124N literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun-17 b/usr/share/terminfo/s/sun-17 new file mode 100644 index 0000000000000000000000000000000000000000..78552ef7ae23f14df1f66bd6670f74bc7a6f6ee6 GIT binary patch literal 974 zcmb_ayG{Z@6g`8)_aoYgg%~p-#-PkDxF9itkHlxh7%S|=0wXI12*!}m+1c6I*;&}x zSyW8rD%PpD z?e=$wcfU3JIKUx}afWkLafvHj;|8}hza!k^0gtZs>HAKzgU0F^FQj@UytP%oH%vY# z|K!>u8uxgcs>VsHysw3N76Rcc4IEjMzABhi$7-NNVZHoc9@l>V7%zF#^8RZ2s6& z$>uX>6+nQGCV>>{^$7ytpjfXv(ThROMlr=a&2fgJmoSF~t}Si*F%h;W%QnY;>!;=#Ax=mUl7vvM5v;^QjF2F0jd+z{7=cTROq0n7YFgA3(iGMd zVKV)ilqQ2o=`8`iu+Dq!0dH#fV#}5}PArF-dNIh^C?=VwIL=V?66UbLwWV!8Cc^e)+2;5! zm$du4#CuK60SO^cdBn!=hQ zOr~Fx(qu3xy(PdG)_Jcz;7tu*Y}qo$iRF+J%M>RGN{aLrciJyktWLp{RauILWHg5X dY8%S-!X{LNKdT~aUPZKd(|!?GszkRG#c#Y=M4JEr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun-48 b/usr/share/terminfo/s/sun-48 new file mode 100644 index 0000000000000000000000000000000000000000..eb2f9a249e095ad481f3142d0595631d14f41b1a GIT binary patch literal 974 zcmb_ayG{Z@6g`8)_am_r3NdCvj6s=Q5Re$bN8$q_##mt|78pSc5R4(Av$M0av$L?X zv#_wWwY9Y{egodUvk*Y2bdqz=eVn;_CRvwoVFG=a6ERUN=Y4^2^`M;h1j4?vZ2rVk z$>uZX6+nQGCV>>{bw2@cP^{OT=*KW;ZmE?Y6CV&np)GbieoJ|Cj{DvKYV^M&VBH5_SkO zD+@|yqOxGf%ohD(gVbCn#0e=vk`T%@f|Xc^5fY@W5w8&pBXDJrX)+l>O-q_Wn!=hQ zOr~Fx(qu3xy(PdGHh8Z+;7tu*Y}qo$iRF+J%M>RGN{aLrciJyktxmy|RauILWHg5% dY8%S-!X{LNKdT~aUPZKd(|!?GszkRG#UB&EM6&<@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun-c b/usr/share/terminfo/s/sun-c new file mode 100644 index 0000000000000000000000000000000000000000..10e68e8f6e9eec848cd97d18259d28b550d55e5f GIT binary patch literal 1034 zcmb_aJxml)5dIz-K_WjL2_(A4ycmN9-tNJ2%NWBAJQ4+=H(F0B zU5?Fa_x(o8DF&5Js5f;~Yij31*jd+6ISRs-Qwdu-Y}A}DK~#4%nHr7qC(7%Aj>66+ zAi$3$v4S{$KmZ0P#_>(u!Z52*++)7a(RdybrZL00@y4;2(mwJ@wuslPim9&kzr!lk z){=UO_~WIgj5}97r}^prcTkQ7lZ=M?GV2txNc_4kmoVE zbC%{UWi36m-zCSRHDIwy=u=Je=SR=eWQnuBd)ZxWO&%g5LYDnOX(a z(E}c->xrN*)_>1cdtS(Y<@l{C>-+CDQT;vN*-D-6X7OFuUWntKAKBWTzoK3d`Pckk z`~O!T7E#fPPK406xk6Yb$h<5mnM=!(C3B1Pi?va5jxa-5BdihT9j%U?X>weW-?tf) qQ#w2%NWBAJQ4+=H(F0B zU5?Fa_x(o8DF&5Js5f;~Yij31*jd+6ISRs-Qwdu-Y}A}DK~#4%nHr7qC(7%Aj>66+ zAi$3$v4S{$KmZ0P#_>(u!Z52*++)7a(RdybrZL00@y4;2(mwJ@wuslPim9&kzr!lk z){=UO_~WIgj5}97r}^prcTkQ7lZ=M?GV2txNc_4kmoVE zbC%{UWi36m;g4;2yf=8cIliW^sCjT_xnaF-1zl0+QLWQNQHbw7xm zot>SXot=f9l@=DZwzjsmR`I_3Cc|d4EJA#6-nr*~PVNgcW!=F+9D;8hv*TXpTqA6U z-L-qYj#Kj+-7tO;C#@iM7Q^n-IC+%#VaI8Noj7c_oM(RWgaq|FaW9I(ZsMH2S#i>l zGk^s?hOBw?`zHybX9CmMK^4H}`cCY^9*z#+I8IO`Se>H#Ea5y9Ywc9bBCRf?lIj~N zSBL7l=Qi$A?tYqIB3{mV9-xIbVyxg5UgHhk;vL@O1JyqgKH)RIroG>?8ST0C`Hmm> ziC@(D8-HM1{r+CU@Hw&}bClvK)|WP9=~Y8&cz#sPY|&lalv`lEv?)94wO!_+^?0oL z?YzgY1yUGzi!<7S1O3RDAD$OiMN|+;S&Fg_rHGVRBV82b z0F%_`%5-(!S(bQ9S>m_Kl6k92{{U7pp()9CUjJRn_^!%zaYZDaXz5>BRjdlB@>t1K Y6<8^wntG93-TN;til1-%^fwUTFC5YoL;wH) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun-e b/usr/share/terminfo/s/sun-e new file mode 100644 index 0000000000000000000000000000000000000000..33dbc23f20f541523cdcea5db89164872a12cb89 GIT binary patch literal 1016 zcmb_aJ1+!L6h0U6ibthEV%XdWBHS6Q%@Xg#ViTeuQOIU@#6)&>GjlhBO(Z&#F{&lc>$J{&+E zB%HwoT*4Jx!wuGN5qEG84`J`)*G%N#H$TBMcD*28Yj(eVtGr|WLHEix6~7Dny}P#3 zRHeJ)ht@^+-XCi1oz*HaHvFggYCHc=6Ksk#K|8cT&)zy>4Z$5=6g-#YMU&@N@fT}G zaS5@2*hHie@q83iqOgH|=g5l))0{X}WLZS!q^2oNaZS^j5=7RxCZWkB5_-!74J^~% zut1w4Ph?jaqeQu*WIjqZF!Av{diKWooGKM9Ugk0x=gB;@plpiJ3z-lJdaOv0d6CfO Nt?-TLCL~S?jGud4S~LIv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun-e-s b/usr/share/terminfo/s/sun-e-s new file mode 100644 index 0000000000000000000000000000000000000000..d2d3902f5af2d596fb29592851bdc2caf7d60876 GIT binary patch literal 1031 zcmb_aJx>%-6g^K3A4Z_DVhRVyiy>yiz8Q3#Y=Xj?h4vppNdp4> z31)#cbUKp+;0D=F=N1NVo7E`pF;B3aB72|k05kA8Vye?$fVm`INcefe%c=U8q}LOF zllawT?lp?2Ai`T5;s_t{3CH-1FO>gE_=XdFPilW$_N3qcTc6^Ls?G@)eXD<_GQUXw zW`9r&i>p~9DSZ{~r|$NscCN)H*`K}^?KiP^JS%el)ZcsR|BB9uf*8aI?!ehzCM*$T zRW_6?=Vil_H@9FQNi|S_OQ73hV)Xaus_jrY=SH4`I<)O8@`> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun-il b/usr/share/terminfo/s/sun-il new file mode 100644 index 0000000000000000000000000000000000000000..c431b47b0f34db7fe1992aff161da2d6ae4dc0f8 GIT binary patch literal 1004 zcmb_aJufU#7=8}o^Ij4i3WJ=;jbP6V*4T*8n_TzWAflpM8;0H4wKL))5}i(`)9DmC zokF42YPAaS7w&lHJwtXkyA>yS-sgEg&O6UZrc>BxLoI%ZY2od=gHGmTb>B6TPO6ae zjyyk|^^8=`^>UfCap3sd#zC&I>$qEn<9g|WKbUdcG$6o7lUPO&^b&v?ia}6^dNi|Y zMK^N~$3BYvgaHh59?q5?3*%8|GU6HhFC7VfV}W|fsJ}$K66qjV!v<2=!5$8AiZh(! z0++a={x#tSx44UD??3O9tuIO+@JLfngy*W$FGZbK(r=vCh@v$?T}f8lsia#fOt+WS zIyg7Vs+G1?ul0+eFWs-c`8ztJVnQ_FCw`!7{U6~kK{_(8&Jkt^ z%Y-B$p8W`+2r*4qq}fyAS%PVf9EW6COy;PjF->tzGjlhBO(Z&#F{&lc>$J{&+E zB%HwoT*4Jx!wuGN5qEG84`J`)*G%N#H$TBMcD*28Yj(eVtGr|WLHEix6~7Dny}P#3 zRHeJ)ht@^+-XCi1oz*HaHvFggYCHc=6Ksk#K|8cT&)zy>4Z$5=6g-#YMU&@N@fT}G zaS5@2*hHie@q83iqOgH|=g5l))0{X}WLZS!q^2oNaZS^j5=7RxCZWkB5_-!74J^~% zut1w4Ph?jaqeQu*WIjqZF!Av{diKWooGKM9Ugk0x=gB;@plpiJ3z-lJdaOv0d6CfO Nt?-TLCL~S?jGud4S~LIv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun-s b/usr/share/terminfo/s/sun-s new file mode 100644 index 0000000000000000000000000000000000000000..5ce9922f2be8ac665d8e2c9f75edd35ee73375e4 GIT binary patch literal 1019 zcmb_aJxClu7=07P_!ATC#4B8tiG(0=c2Cb`!I)DpL{B7vB*a7z@4&^oy~EisvU-eR<`F)}=o}|J#|wDunC#}y$86%yC%l;OQX_u_Z%MyT?jMOiHDc>1pa_k9 ze8nM-aEudt!zsnj2-qo(=&zx5@qDC?T=vu*aTrpRy7fB4=f`o&$ZfhK+D zwo`*GvWM?^Px(G^&u!PSwVxKjKh?MH`oG+)SQHP@k4H$YEfL-jWGE|2<^x%AW&Sn& zV%=oU6J8Nk2|1*`6jPr`WlFb)5d>q-5tgawfH+HV-Soa8&tr0@EKOU=SemiqGkKGi zlqHu**)C}=Sm3@%fIHm|$g`U%S%-6g^K3A4Z_DVhRVyiy>yiz8Q3#Y=Xj?h4vppNdp4> z31)#cbUKp+;0D=F=N1NVo7E`pF;B3aB72|k05kA8Vye?$fVm`INcefe%c=U8q}LOF zllawT?lp?2Ai`T5;s_t{3CH-1FO>gE_=XdFPilW$_N3qcTc6^Ls?G@)eXD<_GQUXw zW`9r&i>p~9DSZ{~r|$NscCN)H*`K}^?KiP^JS%el)ZcsR|BB9uf*8aI?!ehzCM*$T zRW_6?=Vil_H@9FQNi|S_OQ73hV)Xaus_jrY=SH4`I<)O8@`> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun-ss5 b/usr/share/terminfo/s/sun-ss5 new file mode 100644 index 0000000000000000000000000000000000000000..821fee8187a949614cdb7ba5118c88d2d7a26537 GIT binary patch literal 979 zcmbtSyGjE=6g}fxiCWlcVWJEw63pxxlMuu=_&`w72o@rVO2BM_yMkyyu(PwXv$L?X zv#_wWwY3m`LhQ2MxwC4b0SgDtJ@-zCSRHDIwy=u=Je=SR=eWQnuBd)ZxWO&%g5LYDnOX(a z(E}c->xrN*)_>1cdtS(Y<@l{C>-+CDQT;vN*-D-6X7OFuUWntKAKBWTzoK3d`Pckk z`~O!T7E#fPPK406xk6Yb$h<5mnM=!(C3B1Pi?va5jxa-5BdihT9j%U?X>weW-?tf) qQ#w?sv4mY;-`WbNDNY1(Ny~yeIlia#AdVEY&M(C zX0utXR;xiwb>6v;w6qg1`ObHKzH{z5$?FgSw4xdVA|kR!>0u|AiTm^GM`>fjK1^nv zsFSeM#;%>t+6QstIN|IYuEg*g$#`zZjvmGU0sb_JRTK)n1fYs+p-_WbG_u!%Zss1g zePsIygBao1)s}u1#=Xj<$KhYfSu9X)*~_mGuYGGav5h^X;NTSJxWFZ@aE%+P-xBU{ zj|Wft_}x>wL2>kiXHvZoUMs5KiYo8qe{kF)is!VIM8%bIetQ{p*N>d!c<4vA+_cI$ zOHBN!zw+e&sD#Cws6#WF(7CllSR}}V%qSTP$&4vu^Yn|=Q*wq7Cae;c34zp?aUB=a zga~QRh)q+SF!`A*OGl%c#xw;qjcW=rSw2m=-7+~+dWv5+D6h|}>0wH@D}I63cNb;H z-Ig79L3SeKWa+NXEuWlnGZ{Px# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun1 b/usr/share/terminfo/s/sun1 new file mode 100644 index 0000000000000000000000000000000000000000..52a27310747325b14902b2874b80ab99b933e2e1 GIT binary patch literal 1004 zcmb_aJ1+!L7(Ey9ek3{+2DuTD;Lc!oZNxkA+90B$kzK`NXO5tI&gZvDu$66xfj=b!q) zPR6$u+~k0D>>cj;!FG`LTr26hzPG;v2=Fl^u!?-Xn*dZ$%;&36je5?S(aGG!v4>(W zp&x@>Yi;py5Dh2eAy55M&S8OiiLk#yy!Nfxz!s9&#Q{!mjtgAk3fH)y`7PlN_jm}k zkKcES9TZkicqY{g;kB&#tzhy_`3Kh(qHs@DQB^o8l{b`7xBlq0ac%wRmfBXn*DD78 zbie%O|Co%3F;RmiG@@g3iLgkJX_-|r6_;6CrsnAvtEJ`)VT!OyNDv~Kub>l+Ny0K| z&xxlAwmp2N$#IzM5ksSfB8H-dVoc7EA!W#BQfA9AUzp{+;ea=N`C`l394Fc#C)yMz y%ar)^mX6IKIiWjQN9JS@kH~lib=0<1=!H$F7=Kp9*u07v^G^68u2ev`6va=T6j7=G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sun2 b/usr/share/terminfo/s/sun2 new file mode 100644 index 0000000000000000000000000000000000000000..52a27310747325b14902b2874b80ab99b933e2e1 GIT binary patch literal 1004 zcmb_aJ1+!L7(Ey9ek3{+2DuTD;Lc!oZNxkA+90B$kzK`NXO5tI&gZvDu$66xfj=b!q) zPR6$u+~k0D>>cj;!FG`LTr26hzPG;v2=Fl^u!?-Xn*dZ$%;&36je5?S(aGG!v4>(W zp&x@>Yi;py5Dh2eAy55M&S8OiiLk#yy!Nfxz!s9&#Q{!mjtgAk3fH)y`7PlN_jm}k zkKcES9TZkicqY{g;kB&#tzhy_`3Kh(qHs@DQB^o8l{b`7xBlq0ac%wRmfBXn*DD78 zbie%O|Co%3F;RmiG@@g3iLgkJX_-|r6_;6CrsnAvtEJ`)VT!OyNDv~Kub>l+Ny0K| z&xxlAwmp2N$#IzM5ksSfB8H-dVoc7EA!W#BQfA9AUzp{+;ea=N`C`l394Fc#C)yMz y%ar)^mX6IKIiWjQN9JS@kH~lib=0<1=!H$F7=Kp9*u07v^G^68u2ev`6va=T6j7=G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sune b/usr/share/terminfo/s/sune new file mode 100644 index 0000000000000000000000000000000000000000..33dbc23f20f541523cdcea5db89164872a12cb89 GIT binary patch literal 1016 zcmb_aJ1+!L6h0U6ibthEV%XdWBHS6Q%@Xg#ViTeuQOIU@#6)&>GjlhBO(Z&#F{&lc>$J{&+E zB%HwoT*4Jx!wuGN5qEG84`J`)*G%N#H$TBMcD*28Yj(eVtGr|WLHEix6~7Dny}P#3 zRHeJ)ht@^+-XCi1oz*HaHvFggYCHc=6Ksk#K|8cT&)zy>4Z$5=6g-#YMU&@N@fT}G zaS5@2*hHie@q83iqOgH|=g5l))0{X}WLZS!q^2oNaZS^j5=7RxCZWkB5_-!74J^~% zut1w4Ph?jaqeQu*WIjqZF!Av{diKWooGKM9Ugk0x=gB;@plpiJ3z-lJdaOv0d6CfO Nt?-TLCL~S?jGud4S~LIv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/superbee b/usr/share/terminfo/s/superbee new file mode 100644 index 0000000000000000000000000000000000000000..424704d768f0b575fe294a0fe6bfbbeec78d2dc1 GIT binary patch literal 648 zcmb7C-A99A6#u=FK4w(9sdLdATe?W?LosIB*0RrPTT$KAX0IBVeJ56Qk@P?Gk0c@@ zA|fIpBBGm!=<4k}&-*mp_Hxee6ywZHa|*KvF^fr+ z;GE%D!=}`t!!(PM?xWFZ@aE%+>vU`VnJm3*e zc*YA}@rHMHKUDvx!Y_&6N?Ds&xkLM_{=;qZq@8o0Mw<@*%(N?jF4!G@cL3xCMFpd{ z!|!FCut2GKXW8R)c?-_6TL5}hH@ZP#t21c9k_9QA<>L9Y2uh2z;pT90cmc{t6r3WW zpH^v|7Aa3#qO>6QNILw!0Ht-}iN1i&j&eB z8CJn@u;n;C=2_xf3*`a}EV7dJtJK+0x2f1-Te+p!<4F1MI<=ECtLM4R%bd?&U;Vz1 z)ZH*9AY#fR&)UDF(^tDQv-)N=pYvb;o@Rb1e^RP6y;`l-LK?_{99EhQ_1#Qtx9|FO zw=r~mPnn|b=|`&UAnk0im&tJ&ruP?~LIV?MDAGZEbpxCL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/superbeeic b/usr/share/terminfo/s/superbeeic new file mode 100644 index 0000000000000000000000000000000000000000..e933d7c37bbb3db99d6f976af8871d3baf98f3a3 GIT binary patch literal 511 zcmbu5%Syvw5QV?s#umGDq2r=pvrig9#8POrB37Yl1s8&s8f-x&CcPjO41y>Kg5X04 z;xpQWO4{uv}_8@@XR;SAn?Nr-|uzChl#EGesR?6cZ|I{FyM?K0+DgWAr8}rpxud3=?PWi4W)gF z(1WmnIF>)$%s@DcIGv-ahI0r6Gq5x8GVrL_m}=QENY{C**ch6E7}++41|X40)dE9R pbp>@*ZPjGe0wWkx#m30Mj)9ATgMkg0p?H9hi$N63=3?LkvH(fc5^Vqg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/sv80 b/usr/share/terminfo/s/sv80 new file mode 100644 index 0000000000000000000000000000000000000000..cb9e0683df7dc3d437f1f2b23a87831b098f41ad GIT binary patch literal 1031 zcmcIiF=!J}82(G_i~f;uu&Uj^m41!4*+gkwczTK~@{Y7Qu!iYxbtkrtG+Qn4Hw5K1FNB8OJYZ z?-k)S;SGA&o_Ip+;3M|1k5BlFFZhZB9O4_k<458-O6u{XCrvP0f8rN@;}1DcaEddk zf0Hhy7S)QH?pT}btWVUmCyuZE=WNzJznzS_sdB2IELE9vqRn&8cU40zVHMeSE!%!f zrB2{#`sP5J-W_vLG`$)wvxEMAbchfEf8 zk*UOFGnJVtOjRa_={8f1aF@^^JRqbYBqPrj!Er?JTSRb=2yPU?-6D8|2>uw$C$gE! kK7H#Y5-$mQ992?kiK!*0mY`aaYQ8bLExIc28OchBe{r@z2LJ#7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/swtp b/usr/share/terminfo/s/swtp new file mode 100644 index 0000000000000000000000000000000000000000..3e68f869ea34a85fcf46e8b90d1a40c332889f3f GIT binary patch literal 400 zcmc(b%ZkE45JgYM;P{$Rj6@BcCJZzKq6=NQ6a*1hqW*xif`Vw6w779MA0FGRBtKw5 z!MRoUE~)~j&j$tmS&-aJeAi|?y00%+bGYpj6K(eTa6anoDO&zrc2{kZ=;;7wMVhv3 zWAmvkmm;N%D)@9P1(^~^B1=E0Oh3K(`ps>6FM5#igz3vHpMR&GG3S#nYW9Ags)|QS pt9Yn16&kpB_PY+EM1b^>MMP72(hb{XPlmD{wwq-{2hru5IuDRw_fr4> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/synertek b/usr/share/terminfo/s/synertek new file mode 100644 index 0000000000000000000000000000000000000000..22b0388be90a35c2fa19b126b3c98169584fcdbb GIT binary patch literal 161 zcmb1Qv}IsoU}g|uP-iHv%u6jQNzJawF3GKdaf~etYJ#B>3f>{U3dZ^t1_~vmNvS!h z#l;FGsYSV&d5Jj;42%o`4FCU205J?O08M5E^EsfRieOq9NUAbOF-UteNP96z+o~2A Ys;Voft7@wzs}>l+m<${YJPh0n0FCoGumAu6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/synertek380 b/usr/share/terminfo/s/synertek380 new file mode 100644 index 0000000000000000000000000000000000000000..22b0388be90a35c2fa19b126b3c98169584fcdbb GIT binary patch literal 161 zcmb1Qv}IsoU}g|uP-iHv%u6jQNzJawF3GKdaf~etYJ#B>3f>{U3dZ^t1_~vmNvS!h z#l;FGsYSV&d5Jj;42%o`4FCU205J?O08M5E^EsfRieOq9NUAbOF-UteNP96z+o~2A Ys;Voft7@wzs}>l+m<${YJPh0n0FCoGumAu6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/s/system1 b/usr/share/terminfo/s/system1 new file mode 100644 index 0000000000000000000000000000000000000000..39ab6a3a9b932b80349a4b30359a1708b38a0aeb GIT binary patch literal 376 zcmb1Q)M5}~U}k7yP-DnU%GE8dEG|jSHLQWro=(0B5VpRdLUMj?L1{^95d#Aw11ew) zVEF%E0*D!a7zCK0^#A`XK$Z*;%Yj7{fTR+b1yMKLNEHTl1}O$s)dE9Rbp>@*ZPjGe T0wWlcft!JYL54w&fr|kEY$yw% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/t10 b/usr/share/terminfo/t/t10 new file mode 100644 index 0000000000000000000000000000000000000000..ccd7c1a024bbf0c869d3a37dc34643f3d2d4e9d3 GIT binary patch literal 446 zcmb1Q6lYLlU}b1$h+!x(G^hzl%}FgvtW+>GP$(`)P0mcrVE_U~IDx_daiD;aA%KB{ zL4x7`e%n0HcD2OogH4-~v9GnYLy_TVL(HV=wQrJ_MwjHL=5i!>;BC^jI1cYlK*2!bF8 zf*^<>{xsucTMI3CbC&P5JHswZRsk!R!VSKVYRA{fb*ppUxoBUhJgLjG^i(D7UaI2e zexnCivZM@+m^=*1iZO#_WSJ!ZCWI$3jRh=<%d#anaK(8h1;Q1-M|3?L+v}`~mM^zObe@zUH8{w4jjo>at*u*J^(kMxVZ&xMuKV|9X@n4X+9El$u(M{lF>4ije6u6 k^~pCHP+&BqP&5I@;5tZyTu=#A26-SK6oA6~8QYk}52Y6dsQ>@~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/t16 b/usr/share/terminfo/t/t16 new file mode 100644 index 0000000000000000000000000000000000000000..95956bf0b4a28f9501b4a09f701bd32e600d4389 GIT binary patch literal 488 zcmb`Ay-Nc@5XFC|f*&ZNg~(oGb68lIy<9E{K_uEpqHslG;ej9|K_Oz06cJJgf+7fl zAP9n3i2vp~ySb~x&RyP{H}l@?DsP!prg`9-p^nF`ZohkdcC(>l@Z?U8=UL^EV9dGz zri6`|VUZQ5*4SiA)VAxia7j>Q$MrUAOx@{bHc4nZb;7CCD~60RXOgx&{x!+HTkg2$ zktd#c;gvVu|IFq)|5rcw%zpb~mL>f3z)!=5)I!rzgW$qXgMkh@wO|kiot{khY>YYK zeL-E22#y48Kiw@>`l6z9q4K3wmMo6t<*256E@SP;26OiirBMY`h$^BYR0$QM%BTve K%7SED%<}`eTKMq* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/t3700 b/usr/share/terminfo/t/t3700 new file mode 100644 index 0000000000000000000000000000000000000000..0d0d18502c55ec1844ac2c9a719a3a8f99c5ecd2 GIT binary patch literal 352 zcmb1QlweR}U}k7y;9)2+Ha9S+Nh!@uQV2=SNi9mOQ~-%E5Cs?m82p}vXW#{fCKm$-5CZ^9Pyz)2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/t3800 b/usr/share/terminfo/t/t3800 new file mode 100644 index 0000000000000000000000000000000000000000..75bff1e52f0a0f78e0cf52be311104f35aec4dc1 GIT binary patch literal 410 zcmb1Qlwwe0U}k7%uwp1NwlFZL2}#XKElR9Z0C5zGQ;RZFiy4Rli~$TB3=$0g|1&T! z0m=XWSs2(DIKeC)22}=iAWI9((_zqOFafhbs)iphgZs^bft`Vufrmlbn?c%(K{`^k mz))3PL0wf_HCeU52*zaKVvzO#hMlxCP>Hz$12<5BlK}vtngizm literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/t653x b/usr/share/terminfo/t/t653x new file mode 100644 index 0000000000000000000000000000000000000000..5f869e4814c4dfd5206a0897c61d83012873ddbd GIT binary patch literal 467 zcmc(cT?+w06o%hP3FXR-oSPAY+VYvba3LQhA0@JXU}KZAY+B{Q5Ad(YF_yh@ZR&l` zbIv=brlueos33(0)(G9x&hzbV=N_`%?vCl@i=}@(hKIo2douJc{^8^v0fF}s5Fd;t zaS>QS>pV-av>q6Lk=8&0NzNb7o3-y5;FVVk5E<$a6{O@7>uH~&vl yEWWQ?f@YuvXpWo;TB<6m%2Hbuv_FUpXv#lCW6%(E&VuYRtI3jI@pJ=nIL8xi2ND+m literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tab b/usr/share/terminfo/t/tab new file mode 100644 index 0000000000000000000000000000000000000000..95ba77bdd3d794cfd6e2d4c80421622f6e4270b8 GIT binary patch literal 1196 zcmdT@J!lj`6n-OuKVYtqfVc`NZp0Mg&Hmix*fUEK!9xv(SOi^!yLjf#-0fwPY<@1e zq_P!T8^K1b1bYz_3k!=B0V~_Iwsu*+nVmfYiHKM^@ZS5r@BJ|EX74;3q8#OEn0;k& zZB|%j4?!B>72!xU1b9_AM2xb-7|0Zzq;piIM%1MzKu_tJ;?L;?z0ws)@8@R0uUkaASt|E<0L%N^gcckBb( zWhdwi8G+S+s~Ew}eAy|C0^iD)EgAa)f6ODn>mH9xUa!z;S&xs}2qyAnQ&x`YI0ZaO z1Mp6$C6NKU3E9n<@cPhBwH(r6PIuXD$u!BL?>3FVx7u)y%->db7zerzn}ChM)K#UZ zfXpZ$(+Z$wG#g{5vq078k*3^j62F67s=$5O5EXfk$DZJxQ zWhEXD@JBiBr7KkMm#tQ7wYj-QV}8EXYPZ9%(^*)EqQ%9frRC)~URhaPU0YjU?{+sf xHaB~{t*z~CGA@rB!v$PLWKV*Zz%$gRp%puDJ`cQtFfH3Dx+A3r56QSsKLJ7lyv+ar literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tab132 b/usr/share/terminfo/t/tab132 new file mode 100644 index 0000000000000000000000000000000000000000..95ba77bdd3d794cfd6e2d4c80421622f6e4270b8 GIT binary patch literal 1196 zcmdT@J!lj`6n-OuKVYtqfVc`NZp0Mg&Hmix*fUEK!9xv(SOi^!yLjf#-0fwPY<@1e zq_P!T8^K1b1bYz_3k!=B0V~_Iwsu*+nVmfYiHKM^@ZS5r@BJ|EX74;3q8#OEn0;k& zZB|%j4?!B>72!xU1b9_AM2xb-7|0Zzq;piIM%1MzKu_tJ;?L;?z0ws)@8@R0uUkaASt|E<0L%N^gcckBb( zWhdwi8G+S+s~Ew}eAy|C0^iD)EgAa)f6ODn>mH9xUa!z;S&xs}2qyAnQ&x`YI0ZaO z1Mp6$C6NKU3E9n<@cPhBwH(r6PIuXD$u!BL?>3FVx7u)y%->db7zerzn}ChM)K#UZ zfXpZ$(+Z$wG#g{5vq078k*3^j62F67s=$5O5EXfk$DZJxQ zWhEXD@JBiBr7KkMm#tQ7wYj-QV}8EXYPZ9%(^*)EqQ%9frRC)~URhaPU0YjU?{+sf xHaB~{t*z~CGA@rB!v$PLWKV*Zz%$gRp%puDJ`cQtFfH3Dx+A3r56QSsKLJ7lyv+ar literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tab132-15 b/usr/share/terminfo/t/tab132-15 new file mode 100644 index 0000000000000000000000000000000000000000..95ba77bdd3d794cfd6e2d4c80421622f6e4270b8 GIT binary patch literal 1196 zcmdT@J!lj`6n-OuKVYtqfVc`NZp0Mg&Hmix*fUEK!9xv(SOi^!yLjf#-0fwPY<@1e zq_P!T8^K1b1bYz_3k!=B0V~_Iwsu*+nVmfYiHKM^@ZS5r@BJ|EX74;3q8#OEn0;k& zZB|%j4?!B>72!xU1b9_AM2xb-7|0Zzq;piIM%1MzKu_tJ;?L;?z0ws)@8@R0uUkaASt|E<0L%N^gcckBb( zWhdwi8G+S+s~Ew}eAy|C0^iD)EgAa)f6ODn>mH9xUa!z;S&xs}2qyAnQ&x`YI0ZaO z1Mp6$C6NKU3E9n<@cPhBwH(r6PIuXD$u!BL?>3FVx7u)y%->db7zerzn}ChM)K#UZ zfXpZ$(+Z$wG#g{5vq078k*3^j62F67s=$5O5EXfk$DZJxQ zWhEXD@JBiBr7KkMm#tQ7wYj-QV}8EXYPZ9%(^*)EqQ%9frRC)~URhaPU0YjU?{+sf xHaB~{t*z~CGA@rB!v$PLWKV*Zz%$gRp%puDJ`cQtFfH3Dx+A3r56QSsKLJ7lyv+ar literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tab132-rv b/usr/share/terminfo/t/tab132-rv new file mode 100644 index 0000000000000000000000000000000000000000..6d6d6c6744aaac4e663a5c11da70cbdb1679ed48 GIT binary patch literal 1138 zcmdT@O=uHA6n-NGf57G-1#vCpkWqUmWdE`an|5g{7}R3XgXkh8b+<{HY_i>Kw@sV& zeb`;W_C6dl7l@u@ZS5r@BL(6Cb>ecLk^~3j{G2T zeM8l?`6wBtDBtSlBR}z@zCWL|JinI@dY%tJAUlKrS%-6Q8EU{7z!~&Ya2{r077=6D zz=ATOMZp~Ox6tmv1Hm7{BiIm#v9^dI4B#1}=kP-Cm+%VS$O^{ZN%Rrp=aI_TmlK$O z>ZJ2k)_jxk`#<#XImfc@C;US6d#vlv3FQ)*Ay-M0;5KNJPB5mw9#bau{omT#Q||bl zd?265F*yqtL2>m4x~k&dE>z6o65>0Biq7Lmpe-7z)U#=*QLhRYcs>3o6?e5z(Rk&u zjO&QkU>dy{NJ-6r(L~wGm}-xpk!m?i2RYegbU2eFi;mS)Tu1MqGx@N);tnf_ZlbNC zEu)F6a!~-D5rC%!z?!9Oj3H)mCq^$c`EG0YJ@BQ9)ZqQaj*fWg1UYKS%9!g)07KYqffPbFeb_O=Iz^1NDg}R!F==0H#2YF?AyJ@rXd3pFw4HP zxVoa7#?9U!A=zdp+iM23Y}gHI01VQ_7_dXQ09T;`LI9jYoPdik1=Glcm;nch$ZpBV zL%f6b03OTu2|R@r$%JT0A3+}uksZOYj8EVtyjB%LyjAQ2`cFeuh|gy@J$2mrqH4Y> z|Lre&XrEJ6_XB<+`!&+_`;2mhO|k2&!EhS1aVs3rUyUf^`u=b2%|Figj=g6e*(o~@ zmqGK*Izn0V@8(K&ejfR~T*)Lq6nK+IIuBeP89XS%C921dQuCK`C4(v#lz)hP872|! zP)T}9tOm+X8tLwkT8WmybeK_HR+}Ofq~3EHn(vteHs$ZjGb|#zjkbigfF_Shq9l}& zgwm2=%{*<>Mz9EM0=e~EgJxUC_drACxkn9Afe(1>>fEK+Kx!ovQ>IKgNo--t=59!3 zMIKM`T86vH2xa_bE0t<>b+uk!TWhu2?J(?gy4@&RU*Fi++>GO`t?lhzZ)d09-`(BY w8w~dM4-P=Pv8c`F@hEzFC3q8f4Z$PS3LONG`)*!0Ov^4fbH(Q`Kzjy%0N`;xl5xj^eq4y#v9z1yPQ1Il{t5=WXo7vq^NDlSr!290!zW0-PndB2JrBNqzsf z_WmDtJR-;B6FDL0VHzY`ts_(<`);nR7Z#D<%av8`M*?k9U#5;peT6y|xWw!6M=9AW zxw675mlFRF`5Me1>RuwrDbX4z8)+n)BdWz(2Gd?9>C)OfN`ll|MnkeKm4nWQ-4}OQ zMz)H!g0_SvuF6G0ct#MO76fY+`It6>#zE&GM$b3+Zfp2G@TCgW;thV04ryr0)a0>( zREsI5RFN{`Si_V~O^=tAXgEXN3^n5wD)^VJR%^A5je31^v(;+1J+IU0c71QS>pV-av>q6Lk=8&0NzNb7o3-y5;FVVk5E<$a6{O@7>uH~&vl yEWWQ?f@YuvXpWo;TB<6m%2Hbuv_FUpXv#lCW6%(E&VuYRtI3jI@pJ=nIL8xi2ND+m literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek b/usr/share/terminfo/t/tek new file mode 100644 index 0000000000000000000000000000000000000000..0ccfcb92efc1bc0c647e77805de465def4c19a43 GIT binary patch literal 214 zcmb1Qlx9$4U}i94kYgxG&8`7r69Yq|nvm4&lA`>)%nAh%mjMkhqVXYIMh0(&|NoVN zn1O)_NdEuN0wzJM|Nr^GYyl(@h&XAa5Lmx713LpRgEWtdjiG^ofgJ-E0|x_~BhAkM E00}H*Pyhe` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4012 b/usr/share/terminfo/t/tek4012 new file mode 100644 index 0000000000000000000000000000000000000000..0ccfcb92efc1bc0c647e77805de465def4c19a43 GIT binary patch literal 214 zcmb1Qlx9$4U}i94kYgxG&8`7r69Yq|nvm4&lA`>)%nAh%mjMkhqVXYIMh0(&|NoVN zn1O)_NdEuN0wzJM|Nr^GYyl(@h&XAa5Lmx713LpRgEWtdjiG^ofgJ-E0|x_~BhAkM E00}H*Pyhe` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4013 b/usr/share/terminfo/t/tek4013 new file mode 100644 index 0000000000000000000000000000000000000000..7b2f7e0b18c980c115b510f0b4bc2d8c56247c23 GIT binary patch literal 411 zcmb1Q6lYLlU}l)ipvq8^nr&iWXj~JLnq5+qpO;yo0OB&B0Y)@Fgv-d_&G7%fG7vK` zFagQ`|5?B!i1q(JADAtGBmxl!kwRESK{BFfG7@0EBAO^j<*y7d<@e33~(VJn*jh!ogec6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4014 b/usr/share/terminfo/t/tek4014 new file mode 100644 index 0000000000000000000000000000000000000000..e43d86ba48a7991d17e6688fce95c75e8e0e8757 GIT binary patch literal 212 zcmb1Q6lYLlU}i94P+%xY%{DPGG^q(m%`Pd*&&#Y(0C5@603#Y7!ewL#WcdGI4Tu>S zn1JN}|14k<#QOiA56l)o5`l=5Mhb!TOEa)D@G?mAsMr`97#P?wa4~Q&z&X9!U}i94P+%xY%{DPGG|?^2tqDoZE-A{-%dAiUi6~^|DHP`>=Hw`(<>!?! zpaDiSK7`9y$?*Tb6%aEpFagQ`|5?B!i1q(JADAtGBmxm9jT8dwmu6sR;AN2JQL!;J TFfg!V;9}rlfODkzrL7nMi!o|Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4015 b/usr/share/terminfo/t/tek4015 new file mode 100644 index 0000000000000000000000000000000000000000..4e4c83d68ba56aa71c730ee1bd8ccae944065ad4 GIT binary patch literal 413 zcmb1Q6lYLlU}l)ipw3W|nr&iWXj&7Jnq5+qpO;yo0OB&B0Y)@Fgv-bf$ngKa8W1xu zFagQ`|5?B!i1q(JADAtGBmxl!kwRESK{BFfG7@0EBAO^j<*y7d<@e33~(W7erZbv1^}Y}AXoqZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4015-sm b/usr/share/terminfo/t/tek4015-sm new file mode 100644 index 0000000000000000000000000000000000000000..1f7cafa51b7d8c5b4a6d0ea5edbb74b38bd2616c GIT binary patch literal 429 zcmb1Q)L>9!U}l)ipw3W|nr&iWXsTPBTN9F+T~d^vmsz0z5>d#^Qz*_&%*jzm%g-xe zKm&|udi=|FeKe5bOVcJ}_GVNdzJeB89Muf@DO|WF)|RMKn>6 p%Ap0+7}yzj8KiksYzz$y4D1-V7&sWD`52`68Q?A=rrQ9AI81(&9u0xP5duaG>^GO7hes_F{rs@kf_ss)BHCIc4(2LmUAd;o*I1CYhV008NoPs#uQ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4024 b/usr/share/terminfo/t/tek4024 new file mode 100644 index 0000000000000000000000000000000000000000..076424fe0b0acc85c16f5e4bec2695000d6e788d GIT binary patch literal 669 zcmbVIJ5Iwu5Pe2b0*0*+LW&SO350@XS5dKz5)#x5XL@44;)d~u-O_MbC4Lo}A2WIA*Z)SF9e`?|c$Ee^LhhiFy{AMdSbHk^rXf&N9WAjK0hTM>1GmdC( z#{Fat2v`wc&{BmLxWpQ^ILb0$g>9Bq*lx1!ui`%5h;uh(<0uKVx7kW7-HBz_H=V=vxkRm7tDdRXAl$eiN M;#q1TU&A^+0cj2~yZ`_I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4025-17-ws b/usr/share/terminfo/t/tek4025-17-ws new file mode 100644 index 0000000000000000000000000000000000000000..cfe82ff7118a11e42b595baf09d2bdbcc5d8c1bd GIT binary patch literal 725 zcmbVK%}T>S5S}fiYIG3~B2*!xSPx1`(LZw`i5U$^_K^z~8rSrUcb3+5*3HU?fOaOH*5 zXoX>0?i)*qsOf2KC2&Xl+%<;2t(%kCc=EEs9dMDelnNr*Tj?-69@QJfU$4=Y`JK zN~y1LDV;`L73{XrQjQD$4j*e?nd3k46Tbe;(_*_U&wa=)m`&`uP`_2XYi7r6130K6 zak-*^It@Iu24p}-p>C;(_rzhF{K=e5n&ll(sqvUgH_K2EE~2o}DTm`pv_M1WikfB- zI{D4f{TT+DI+_kzHjXT`4PNBYZC>mr1l6M|NL80HS3Rl)Y9L&UhrC3y!cm2nCC;pR zp^4gDt0z(OYd%5^Yd%Enx#BYmwHu8#=cn$)dT*MaE`MF6Xnv&8ftWR%TGQ}lTvKY> G7JLH+Pdje_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4025-cr b/usr/share/terminfo/t/tek4025-cr new file mode 100644 index 0000000000000000000000000000000000000000..9850e297a83bbd3dc4cfedf451a4d8b3a4875bcc GIT binary patch literal 474 zcmd5(y9&ZU5S$>05Ap$ucq@2TipEO}lAo}!mzbOy#ay@~XkqVXYg9~=!qzQjhuLLV zX1m4|Bh+w5h)kaB+1!}~`nHy*OshD$(o3P8(iG%6l_~jgNLuZ42^jcY23BZbfJa#< zc^#cM@4c~K;IN#1*GCoQGnrQOMMe2~{72uE_ie$X_C2s;e&!KREFO+|GUuU(daFo_ w>1gkv4R$GF7vk_CGYkTCCSjQ^mS&2UWVuxQMhLPkvX|tzv~b83=F6ptCzxm-UH||9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4025-ex b/usr/share/terminfo/t/tek4025-ex new file mode 100644 index 0000000000000000000000000000000000000000..5ef6ea6f72b8d3f5543d82d679d27715a2352123 GIT binary patch literal 683 zcma)&%}T>S5XWbwRE_RY#3E!`j0Zut`PjsI_2SWkFHoA)#zqrrN_!|?eH35J7w`dO zoqTLsD5489^PB&Cu)7_01?SL$caSWPre5EXm(g-nVNl>hG|gw}OT5IQD98o45M2NU z`mi->sgCR(_Mk_JQUE*Tm1>bcBs(HIE|pH{Ps#Vl&fucVi(aMd4X%{R-)!l(rIJ9t zRoR^TFTcUZpL;&xtL*s(&Q6$87TNEo-&9?;3mnX7Hspo@W|+h%`y@cypx-iQ@gs)= z(nk{#smj~X9i`9c+LV{zuEFTO<|z))4$zV4y6D;H4NwN?OALy}nD!v;ooC#PX&abH zG{nr|RrKoU*YUcFW2qZG6ceF~D5jcy6sXxj@l^9zqPP<@T)fN5Y%8Sun_;@Bljb5# SoG2KEGmZ2y`|tysKQjpc literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4025a b/usr/share/terminfo/t/tek4025a new file mode 100644 index 0000000000000000000000000000000000000000..212081376deaa882c0f41b671955e7abd4dc1ec5 GIT binary patch literal 649 zcmbu5OH0E*5P)Y9d_)Rf6$hqDPF~VH+J=DW#ghj??~-P>H8gfZ9@K+34<7vi-u;_# zHZ--M2hoLjeKWJOvq$0(&R`2(!4{R8`;HsL&v$BG6?&0Ak%=!s2aYwoPNf0UWcn!Da2UG|jNpW7g*^7jV_aCi9nb{jcudPrQYDnDeY9%L}}*e*ZT4 zV}tZXclW8lNt{Hm13kd9(h;C4;>g0H&e@mA1C5;sdRU}0vh#s0nS#atXGjG5ZH=kS zQjRb+rfutrIk9e(dikTDsp*<;4yyAG_Y?g{ZirH4S5T2D%HM&O;i;!ut9&}-wpKYvHFCIPk0;NrDY&4;!vI2>Z? z@)G?D`xRc5I8mn2M>&yVw-QON3%SzN2sdXGq QYEF-@`64xxK4u?&0HaMZ@Bjb+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4027 b/usr/share/terminfo/t/tek4027 new file mode 100644 index 0000000000000000000000000000000000000000..076424fe0b0acc85c16f5e4bec2695000d6e788d GIT binary patch literal 669 zcmbVIJ5Iwu5Pe2b0*0*+LW&SO350@XS5XWbwRE_RY#3E!`j0Zut`PjsI_2SWkFHoA)#zqrrN_!|?eH35J7w`dO zoqTLsD5489^PB&Cu)7_01?SL$caSWPre5EXm(g-nVNl>hG|gw}OT5IQD98o45M2NU z`mi->sgCR(_Mk_JQUE*Tm1>bcBs(HIE|pH{Ps#Vl&fucVi(aMd4X%{R-)!l(rIJ9t zRoR^TFTcUZpL;&xtL*s(&Q6$87TNEo-&9?;3mnX7Hspo@W|+h%`y@cypx-iQ@gs)= z(nk{#smj~X9i`9c+LV{zuEFTO<|z))4$zV4y6D;H4NwN?OALy}nD!v;ooC#PX&abH zG{nr|RrKoU*YUcFW2qZG6ceF~D5jcy6sXxj@l^9zqPP<@T)fN5Y%8Sun_;@Bljb5# SoG2KEGmZ2y`|tysKQjpc literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4105 b/usr/share/terminfo/t/tek4105 new file mode 100644 index 0000000000000000000000000000000000000000..795a1faf2c36dac0d952e4e58d24e91f32fee6b0 GIT binary patch literal 640 zcma)4Jxjw-6g{D0TftF8LqUf)_oYdTyr^g$O0_6j5X|CW(bB3#3OYErI64Wgt`4rc zxVk#}4_w5>#l(e2W3@x@t8QE&FY#1)yr$Ptp1-ZVj!%-3S|Av)D6T9pFR&_56WAln6m(QFqNJmM z!kbiXJXdVX5~(X46{Q~RiYw|UwAq50@^#b`p^kjXm~380yj`Z+(%rLP!t7w9-K7Gq VlsUD`UxFmBu71AuI#YFIflm~bAX@+c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4105-30 b/usr/share/terminfo/t/tek4105-30 new file mode 100644 index 0000000000000000000000000000000000000000..238fd18a5a3645e195daeb67c9147339b86948b3 GIT binary patch literal 1155 zcmdT?ziSg=7=FL1LJ=WAZRps@v^mqt*|rvZ94cX4fd#wMHczlfy=>Q3~J8DY8t&#E-;c z*kCbQq=R&V9I^Hx6HU>6{L3_*qH{uz(^a|#wj_2r#9M-SJw+;0bJyN+`gEJ_K)Flz zeEktUop5-aj`L!dy5;ki^om~78+uFc=skU)kMxN?`?W8A{^sZJ^pk%3d^B^fyzP4e z>?m`b8)n$5FIEX(eLKN$NSvd8QRd&Zs%WoxW|Wj_S}HCA@!{@Fv@ss4ZL zFALBSlJdO9Erl0#Zbf;q4Ix%R$VmCik%T5E!LLLTF*lEeiIxm(NjmKI;LDTpbCE>U zb*DuRf@!8NDI*de5k((U)zd;~FhhRB$mV5CUzi03z#`BGt^-TJ4ZsGvz$#z>JzyS~ z1JW3qQVhvGSxTu&7m>xiG0-D$dIWZlpeG4;%s^1xpt&JlMVP6QG(%F{y?0hT04Xo? zlsnNn&xhRB6|TGcD5&aDlwzV3_x37E8rMzNc7fYLUJ7yDyLg5U;mj?d1K_1BSU`i8 zmkWh*xl&nKsn-p|G#ia()3REvcDvKD?QVB_4VO!V`Fm@cfpB8#3MO9 OE1i)sDGNdIUh6*=qe3TC~M4CVb!)N9KLwsJF%~#SypB2A`9zjE}!P+nXBV4 zF}p@^G|c4MM7KrAYu|vYmD%tTj!@FoV}nX<+KlA^eM(oEltU5dWf~P)Ibp8SsM0vL zago-fEzopK=U5lbIBiuj+)~r<9C%akGVok@S$H{k1*kdZ%`$p_BkHN(xH!VTu?SMZ zDRD%e9u-F>d6H|uVC|YY|mxnoWrLMf^ta(Eb!-8=sC(? kAXm-1s_VQ(rkHJ$^2I_+MP0s%z7$u_>%YcrYZwIn0w<4SPyhe` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4106brl b/usr/share/terminfo/t/tek4106brl new file mode 100644 index 0000000000000000000000000000000000000000..495593e6623aba95bebb9791166e08f0722c573d GIT binary patch literal 920 zcmZuu&ubG=5dL0UYnA%rprAgH2ri;f*iAOsgqYT*$r9b9scArQFH&1gXlldKgP?d2 z5ih;y#fuk@Uc8D2{{k-_Jb3XS9z1yPpioeW-@M&u3qF|nzM1)UXXd?Qs)WPXjVBl% z*;rY19Xq!a_3p;h`$r2x+bgRZ(fY0K?Ud-md8zeCuz;OMnNTfY0x1m48D(k=7_`c~sD1)W#BSU=4lT!+leIh)3AOW5b^s{|wLZ0x$6juknVNw|Iy5rXo!~ zBX16FPN~z3&#Eb9tBlHR(-+9k zsj8YMURKvsS4HZMdaz9)f89*tAH*&7Q~f4lWH1<|{qO7=(cx9T$3E!L>RNrrS}t1s zw6z>Dk-14%)8R!zKoi^{s$s7vpska(ZdYuZ#Nmx6u@lESoTDm}E>hSS*1TbDfwczq z(`VP{9C0(b9=+S4^Cb3)Zd%Y4XNJ6j1EdV4bG=+Ena)(mhoUkihomm^G|RNv1UXH! zLSyIVC0dKNNRyn@s0(MDo}M4Keehz*fy2`p4MpiJSF(hmkXZYWk z)Q5y!;*4C1`Kmo6vp8b*3Fh>q4qCPjd|S^qk_Fp--sW*^-(}{4!`rUc%XAb3RSJDa o2aCjtty_%w6#6+FUbQtkwWHFBK$>VY28ukEx0M?K!ssI20 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4107 b/usr/share/terminfo/t/tek4107 new file mode 100644 index 0000000000000000000000000000000000000000..79ccaab756dea70c29ac40c9d1b981fe30942146 GIT binary patch literal 691 zcma)&%Sr<=7==$%P%HWX2BCs+kb=y$L&<3IvQZ0e+^Dz^nMJ9+P-o$y3wJ(%uizv2 z2tI-cf*^?CW5nDBO1iLNIR80c{)B(BO180ySv;aiio6pCemXL>F*?gT#jxLN-&c!# z*lqW&Z||zAK}iE3`h#9X2Pw`Xr&z!mgaBrw3Na`1l6EWbbls9#gD*8gT@%$O1V>A! zE6e(Lz?1gRmb~EAI&-4bw=w!Y=F5Gze%PK*Tfe3_Be}^}Rb}9?PJu3(ynL zW6*Op2$)y(SdHDVL0DQ;nH?kO873Fu|g-N?dSv!_Aeg3NbGIsy2^HL=?> zeU_u{gC5#hE1*YmRy`YQs{bo^$`i&_2xW+kjTARFmew{TtjK&r>yieH+d0%@EaDGV C(I-{_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4107brl b/usr/share/terminfo/t/tek4107brl new file mode 100644 index 0000000000000000000000000000000000000000..495593e6623aba95bebb9791166e08f0722c573d GIT binary patch literal 920 zcmZuu&ubG=5dL0UYnA%rprAgH2ri;f*iAOsgqYT*$r9b9scArQFH&1gXlldKgP?d2 z5ih;y#fuk@Uc8D2{{k-_Jb3XS9z1yPpioeW-@M&u3qF|nzM1)UXXd?Qs)WPXjVBl% z*;rY19Xq!a_3p;h`$r2x+bgRZ(fY0K?Ud-md8zeCuz;OMnNTfY0x1m48D(k=7_`c~sD1)W#BSU=4lT!+leIh)3AOW5b^s{|wLZ0x$6juknVNw|Iy5rXo!~ zBX16FPN~z3&#Eb9tBlHR(-+9k zsj8YMURKvsS4HZMdaz9)f89*tAH*&7Q~f4lWH1<|{qO7=(cx9T$3E!L>RNrrS}t1s zw6z>Dk-14%)8R!zKoi^{s$s7vpska(ZdYuZ#Nmx6u@lESoTDm}E>hSS*1TbDfwczq z(`VP{9C0(b9=+S4^Cb3)Zd%Y4XNJ6j1EdV4bG=+Ena)(mhoUkihomm^G|RNv1UXH! zLSyIVC0dKNNRyn@s0(MDo}M4Keehz*fy2`p4MpiJSF(hmkXZYWk z)Q5y!;*4C1`Kmo6vp8b*3Fh>q4qCPjd|S^qk_Fp--sW*^-(}{4!`rUc%XAb3RSJDa o2aCjtty_%w6#6+FUbQtkwWHFBK$>VY28ukEx0M?K!ssI20 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4109 b/usr/share/terminfo/t/tek4109 new file mode 100644 index 0000000000000000000000000000000000000000..79ccaab756dea70c29ac40c9d1b981fe30942146 GIT binary patch literal 691 zcma)&%Sr<=7==$%P%HWX2BCs+kb=y$L&<3IvQZ0e+^Dz^nMJ9+P-o$y3wJ(%uizv2 z2tI-cf*^?CW5nDBO1iLNIR80c{)B(BO180ySv;aiio6pCemXL>F*?gT#jxLN-&c!# z*lqW&Z||zAK}iE3`h#9X2Pw`Xr&z!mgaBrw3Na`1l6EWbbls9#gD*8gT@%$O1V>A! zE6e(Lz?1gRmb~EAI&-4bw=w!Y=F5Gze%PK*Tfe3_Be}^}Rb}9?PJu3(ynL zW6*Op2$)y(SdHDVL0DQ;nH?kO873Fu|g-N?dSv!_Aeg3NbGIsy2^HL=?> zeU_u{gC5#hE1*YmRy`YQs{bo^$`i&_2xW+kjTARFmew{TtjK&r>yieH+d0%@EaDGV C(I-{_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4109brl b/usr/share/terminfo/t/tek4109brl new file mode 100644 index 0000000000000000000000000000000000000000..495593e6623aba95bebb9791166e08f0722c573d GIT binary patch literal 920 zcmZuu&ubG=5dL0UYnA%rprAgH2ri;f*iAOsgqYT*$r9b9scArQFH&1gXlldKgP?d2 z5ih;y#fuk@Uc8D2{{k-_Jb3XS9z1yPpioeW-@M&u3qF|nzM1)UXXd?Qs)WPXjVBl% z*;rY19Xq!a_3p;h`$r2x+bgRZ(fY0K?Ud-md8zeCuz;OMnNTfY0x1m48D(k=7_`c~sD1)W#BSU=4lT!+leIh)3AOW5b^s{|wLZ0x$6juknVNw|Iy5rXo!~ zBX16FPN~z3&#Eb9tBlHR(-+9k zsj8YMURKvsS4HZMdaz9)f89*tAH*&7Q~f4lWH1<|{qO7=(cx9T$3E!L>RNrrS}t1s zw6z>Dk-14%)8R!zKoi^{s$s7vpska(ZdYuZ#Nmx6u@lESoTDm}E>hSS*1TbDfwczq z(`VP{9C0(b9=+S4^Cb3)Zd%Y4XNJ6j1EdV4bG=+Ena)(mhoUkihomm^G|RNv1UXH! zLSyIVC0dKNNRyn@s0(MDo}M4Keehz*fy2`p4MpiJSF(hmkXZYWk z)Q5y!;*4C1`Kmo6vp8b*3Fh>q4qCPjd|S^qk_Fp--sW*^-(}{4!`rUc%XAb3RSJDa o2aCjtty_%w6#6+FUbQtkwWHFBK$>VY28ukEx0M?K!ssI20 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4112 b/usr/share/terminfo/t/tek4112 new file mode 100644 index 0000000000000000000000000000000000000000..0bc96793c9ee3db6b9c4b7f1cdfae3022787964b GIT binary patch literal 482 zcmc&szYoDc6#g0po5jK{B{_pZuGOTH4g>?$CL}B*25E;z(9ppk7JqoXp1RzB;3eO$ z_rAN9(M1;(yzxR7pB&4wpI>#JoA{L7u9xIt(ps4J_?Edid0Ui?5Np-lO1Hy7ZS4W-u}YF#P||3S|F>0u}~-1`#k%l0geh>w!rFAZY@`<_y+g zK1@9_ZO`BWmh*(F@MQ>us|^LSq8Q@fBFH)io}I){z#ttR1;j>P($NOi1|C4Bfj5Zo z0urj3ss)CsDb}h5Mye?wDJKRFAnD8??F*y=fEYxZ=K={65P^h^6%By`4nXX~AZ-pY O8>n2`0*U7Xi>83QWa7%6La#@6%vb56B!s786X%&0=XD~F@WL!e^wxd0R|*C3z*FYCOMGA zVQPt?g`oO8$<$Ab9n@D7#USky#lXeD0i=Bm6@Y{RgLIISqY0@5P@A`-p|p>WskBd+ P0T3H9aDa@A2O9|hUYjwL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4113-34 b/usr/share/terminfo/t/tek4113-34 new file mode 100644 index 0000000000000000000000000000000000000000..7fe8da7c2ce69387920bb81cc50c6449e8ed232d GIT binary patch literal 498 zcmb1QbYf6rU}orKNMk5T%{DPKG}bjXsR>EVE-A{-%dAiUi6|uJ=j0bDq!%R?WMn26 zE0kxJWGEP$DCA`3r7EOkCg$X)DEVE-A{-%dAiUi6|uJ=j0bDq!%R?WMn26 zE0kxJWGLk2E2Ly5=H#a^b?$CL}B*25E;z(9ppk7JqoXp1RzB;3eO$ z_rAN9(M1;(yzxR7pB&4wpI>#JoA{L7u9xIt(ps4J_?Edid0Ui?5Np-lO1Hy7ZSuWEk!LWc9L;RvQevg2PU_s zTa}GNbKjFivr=ogW@=@9!7SwJxx82Qr04FMLsfTwn8=_%$5$RS_(e?JW})VN>gSdbDBuYNyrdxA1YS}JZz@O;mjZWT^@dU54WBuBkKBzaKA m6C%MF7BZ?a@{>k|jOlbtNK0c}$Z;UvV^b&YPR5JM%k&8;kw;(v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4125 b/usr/share/terminfo/t/tek4125 new file mode 100644 index 0000000000000000000000000000000000000000..9e935a0a1d195ed3861b87140721932f7ad20392 GIT binary patch literal 1099 zcmdT@O=}ZT6unO?Rg0O0NTCgMMGHFVZ3bC1hQkBr@qNPpKHko9aPTI6h zOSi?XOPB5i@jtn9>n`JcZ)QSiK-~J^-Fwct=g#|>nK?EK8eE4A`^~~e%Myk?eBWq= zy>4e`@IX=k2A2kV3pe2rL=nI>7)4WX3+};v;!*Sj9GE9mRIE&~s?f5Eby$H7g``)G zHuT|~lneNj=%3-s*zq+%z@q2|&2&s(!l`yO&mbzIZ=BCiI^Z%GI6!|NIx5hC6_s*`!cGZz-F%^#b8)HgC#27WfVi z1mARcVDQZf*$Qx5_Rt50UOAgLq`R18QG*Oo+fR84aw!nb7+SHWQG>4~4XG{393SfV zZc*Tex^7~%h;FH5pj&>eqx(ka6qks)QmYYJ7Ua zrbUIT&QKz_NV80{2slqkomlD$$f5$$p#a(b@?^T6nz|?SbiN=Pf){+qLq~8&a)Y21 zLn@i7l#97VC7V0Gw7ueChBq|s#8*?He|T+eeSK@I+1%Z2wc2gp?{vD|AlTdM_4fC} ju-`v8I6NE-j*gCxPfmuz)6=svz^5gArqjkn{AT|E3D8X} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4205 b/usr/share/terminfo/t/tek4205 new file mode 100644 index 0000000000000000000000000000000000000000..71742a952be69dac2ce7f6deb2fb0ef60eebc44f GIT binary patch literal 1885 zcmds0zfTlF6n-0sV2om+F}h-;7>O3TGdsJ7?BaR+I1O@wKw&%!NH`Gg4h}ee9!FxK ziH$ZUHtIj2iLte^x3Mu678Vv3CMG5(>o>z3xdpVauy8Lk?|t9AH{W~v_D)#G=p-E` z$9mRS&gG?Wyp7RZzPvCuJH2{ZL5e+=RSzv1qGmcp(H>7TC5a=rk@n%dnGVuXI<6yI z={yN|zDAwcFJX1l6^#ezI*rh6_<1VR8th%VPmky^J*DUL0{A7prZ+k^iryLxuPF=e}w<*Jx*NQ4_u`JIklAiGDkK74{ldKNg#2 zCC(-SRuXJN9du(U+l$qMmBQjfYRk|e7_W$}D-nbe4r6WH&L;hWx>)f%2z?bG?q`HU?;IE|% z9z>CYD0~nF52A3CdxPv@vPW=U--y=DfYgp^RXdk!&OpskN%}~=0_{KoWQO+B*x2~^ ziGKjb` zh`p3$Oj+(!1`$^V5myEgR|XMR2C-9F|Echygz@PX&0x%UYtYQM2F-wL&`h`n&4_Ez P%ovatSpdnde=Ye7PpUh( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4207 b/usr/share/terminfo/t/tek4207 new file mode 100644 index 0000000000000000000000000000000000000000..8a7a810261e1f8b7feb69e589210ae73febfd5f0 GIT binary patch literal 657 zcmbV~O-sW-5Qb;fgCF2QM4^k2LKcrUY0?yu`qdsvZ6ILrU@jIL+t8*hF`xzU;=$kH z!Gk~1Q=HkZlzI?x$6pkp)hz@HeKURxmdAm;;?3) eW31Ny6X{Z?-$S?6&<#9n;-;)Fc8RisKgt(810h`i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4207-s b/usr/share/terminfo/t/tek4207-s new file mode 100644 index 0000000000000000000000000000000000000000..8b20f115a4d00ccf8ae2e1d171104d69e166149f GIT binary patch literal 846 zcmbVJ%SyvQ6g{JYTG0>iB1CX3QiQzP3Mtmt!WX(wK@BKAQVo65MpSU+%Dw;KFSrr6 z?%ntaF8zc!GfAOM7e0pJ+;dKDZYF2OnT=`m;{oq1@XEHS=Vx1YyIwhH)@%NaCJpV{ z4=%OVZL8wfJni%<&}wz9>Q(E_TY#w@0b`IG$;GxYgb9Qp&?hhq2ZSC`Yz%2tX9Q-T z3$&0^j-zl3$Er3IhT%OP@uc{3?7ZPau}^$qfywF7+UekX9lZTKS@+`}H?Bv&cqcjI zCw;=sSV_%&VXtfuqoB=0&<1E7bif-1PitwO;b**Iwkc8~EaH=XSB8-^3VPDX_ZUvk7(3bX2iDBP_tzcn^YaqE0fJyeMgRZ+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tek4404 b/usr/share/terminfo/t/tek4404 new file mode 100644 index 0000000000000000000000000000000000000000..4ea8e119638657e6b77e710a979007a3f48bafe2 GIT binary patch literal 556 zcma)2Jxc>Y5PiW$?W{x>At^R>c3n;IAi)?UCJHIEx;B9vi7}ihQlz)Gv9d^GVPRom zWhDqU;$J%7tS5&lBn$6jX5P-iZs#^p#0qZkg-LJVT*=MOdxJ@QHHxNrDY4Yap@UWA zk@y4Z2DY%{>jEqsUBy=iq-YwxC*QEzdF`*iZNUwFRId042k zWab{z%u}k*c){xu_p%NDxi@ZlPq%$gKcPY$>9Nt>K##5N#%wfIXj{}aA^IoK#JWWI zlPWwS4v7w7&PaQg;z(K*3|+8mV-?o+hpNhf>yye7aY8;D7`|3&NvKaULzxO$AM}}1 XmUW^*{61MTvdrfzP-S|1f;D^t59$ld literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/teken b/usr/share/terminfo/t/teken new file mode 100644 index 0000000000000000000000000000000000000000..ea7bcdf40f5123b995407196c711579403cefc86 GIT binary patch literal 1447 zcmc&!J!q3r6g|&B+M(d0qMu?!9ubO=@5`?SNwsQ&O--v-f&oR6kcK8T)DH>t2RbN- ztAmS^gM+v@IJhX%p@@Sxh&Xg|5C;bxT!eV;&6gUe6hzQR&b{ZJci(;Yy(DjsvDk<0 zsF|3L-dvOq93^Gn&1f$5~B6$H z3iQYHPu6mt;u&6G87p{=w|I|Le8gvb;rut^JAUwZomyK1-&?tt_j7*0>@@q$A>*2( zX4vG+q`ACqRaKRyxo#HClDTPao99$suFLDKy)j=lD}S+i@ zlw9Z%Ie&|%a!PPgB6cpj3@6D*N=a(OW@MS4_R>k4mLSR?pm9>Uwa!F>5h<@Ji+(OW zt>2-ix8ud+WGzD4k7_4+p8+#`={E5VE7Hq5=n$J3OP!1xi3DxTxeNA~^`~s5Zqrgs n8j4w8x~kZ@=mI+lhr)KymgF}RJ`hm1OL2ArlPMI&&}!f(zgq$A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/teken-16color b/usr/share/terminfo/t/teken-16color new file mode 100644 index 0000000000000000000000000000000000000000..19fde7cf07b6ab5eccb477160a2dc8d633862be8 GIT binary patch literal 1719 zcmcgtKWI~75Wg=~u|uJYiay1Nexz8$ygzwKeM+@e8*FOYY9$y@N)po2vB8ao~Rf`>d7ooLM18%`C)Q&9_QS*@s>>b80b&+83&?X@?@t7`2pPH$ejJ^Dty`!9Xk zdu|PXXwCOg4TQFK_D{1P1$~}|)O)zi9S>b$2bmd?+^VHcs2M)m^CFobQ8 zH1rGl`AIkiAZ+`sSP9=E0aGx8kTZ}`$Oy!og|efbScfy>>=7j+WWdtga+nB!amCbA*`zLn*{;pXGUkX1P`$9QYS~{Ev^nBfi&3U6s~$6#Xy{t{WMT z0D3ylpPvnxksgjpVy(~OLz1cRyC1@DdKQ-d7z{`UIPbOJj7EdECD_rFE|j!~&LT!^;T$HtW_AK=1`3qiD^v+Ge`kfl)1;P5sX9W~U^G6h1&-S%FCMR7EygPpJhi8--{c%5rEq z)@`(g@+hAi(3>ehg;*_xE<=Y@s+Q(bb<_YQS0lx=YNtN!hiDZ36gaEn^K?;rtJ<=c z=_+#9()sJ~H?uXj=njq31A0gk^qgMOD|$`u=>yh3f=~2?zNc$vv-kYodtU#Bpu zTIEoN+OGU6q{>u{ny;`_L}#L^MfIrxHLOmkN61Y6Q8$&1UO;`$Mt}FR;%W8c9~BGV zx76&6no~J!S+buW_!fb0u#1J_QLH0;*B<=$8AJQ=Vj37 zF^y;#iCsW^k?D)$XQM?c+-|TFRDlZM>x6NO@wkH8d!@`T8Ey0yb%-S6ji*HjzFhb9 zj6q_zO6h325mi=$8gKv^w@=pHer*HV?htFb#L5Xx5yhZDgf7n5QC23)xMJ@{EwCIwSqGsLco&K@#7|evIq^Nm`?flHHF;T1lzPD3aR}K{Mz#f)aQT zq@@?qXJvhmGCnIRKm>_-g=r7s+aU>bq8aP*QA(@D z)vaDH<#}bpCJA!|V28^PGr9n`KdbA;d2k1r*^9&|1 zi5V=Cm++E)g|>zweK@v_N+?@Az!Bpy?Sti?@Y!Nqt?>k>)V@^cXBAvo8S=T!evN9r zMe%#pH9>H}`Ahu3PyE7f{J|CKq)A%kX8$fz9!ig7WJrc(Ox{p=d#mo|x@vj(POGbR z{=eql-QznP%6oD0FVF-h@2bcRaVSOCh~Rmviz@8765OqoRpx4C`|g9?>+8 zcmo^!iVR*eJf@A&W@*#3zD>Gx%D33B6+gn%LfT(=VmMWg2IwPw?FTPGofE8bqAM%LbVbAf=F}_4dRC=6KKOW)Yf>~Foeyl ztkqhv5nIuTUD%DijQcTyQH*1XJdJa-1*(KO+UThog;+9w1y|{>QP(ZLft%**)#`8I zHgk94{4)LBm6`{5geQ207kGu&c#C&D%t%?P639haX6D|iy5@cB$M@yoU+iALZ}ZAydHPT0G|&C> z`1yZ4-%EKTPW}u!;N)H3T}Ze^&s|8m#S2WNN;DZKe~fOFQXdzMG%%{qFmaGlKbY(* z^Iv3eo^F^rKuu7`sl+@@s>d_ms}*U@n6V>FGtx|NnI>uZAySr2FVpKB?K4G(NV;@oPC|c-eMC7Gp(9RY|>=!#t(z{xu YQa0FbEhe$=+y;KDB5J|dByt1z1+NF^RR910 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/teken-sc+fkeys b/usr/share/terminfo/t/teken-sc+fkeys new file mode 100644 index 0000000000000000000000000000000000000000..fc5663e516bae2c84095cde35b41650eeeadc46a GIT binary patch literal 562 zcmb1Q)L{UDTMTXtC8^n|dAh~P+G*LTmBlq+u6nUTabe69XFq7Xu%I5Q7+l6oVXt5`!9p7K0vCjS+(xis}JzFhNVL=;TH_1}BDk2I**D tAPxg!KOpu8;s78H1mYkd4hG^7APxm$4t2RbN- ztAmS^gM+v@IJhX%p@@Sxh&Xg|5C;bxT!eV;&6gUe6hzQR&b{ZJci(;Yy(DjsvDk<0 zsF|3L-dvOq93^Gn&1f$5~B6$H z3iQYHPu6mt;u&6G87p{=w|I|Le8gvb;rut^JAUwZomyK1-&?tt_j7*0>@@q$A>*2( zX4vG+q`ACqRaKRyxo#HClDTPao99$suFLDKy)j=lD}S+i@ zlw9Z%Ie&|%a!PPgB6cpj3@6D*N=a(OW@MS4_R>k4mLSR?pm9>Uwa!F>5h<@Ji+(OW zt>2-ix8ud+WGzD4k7_4+p8+#`={E5VE7Hq5=n$J3OP!1xi3DxTxeNA~^`~s5Zqrgs n8j4w8x~kZ@=mI+lhr)KymgF}RJ`hm1OL2ArlPMI&&}!f(zgq$A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/teken-vt+fkeys b/usr/share/terminfo/t/teken-vt+fkeys new file mode 100644 index 0000000000000000000000000000000000000000..e177471f2efb4fed27286d3356e91b9621cf99c3 GIT binary patch literal 582 zcmb1Q)M5aETMRJ_C8^n|dAemK+G*LTmBlq+u6nUTMM-K=u0nA^YI0^`jsi%E;s1aD z1{8Z)88{jE8H5?c8KfB$8Ppkc8H^b$8Em0yoEY3uR1b)Q30mqyCpQK#gfU1*8`m*N z`v(9SMus3(AP@%uaWGKC&=e>VZD%n0HcD2OogMA5wsUoq?Buhk=Vh4(Mxn25uk=0M`8f AcmMzZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/teraterm b/usr/share/terminfo/t/teraterm new file mode 100644 index 0000000000000000000000000000000000000000..e46b88f8d5b07c3fec33f1baef4fe2fe820bdd77 GIT binary patch literal 1683 zcmb7EJ7^S96us{${_uw%6h|%~Bsq0iQ9-N(Q4|{s1sesy%0jHf!ph3Z@!UJJ5n-DhxaXexdH20{@62pb>uD#gr9t&e zSNh7`kg(bb(gX;J6v-2-8rF0iL(VB$Mw=o}a%ED?zC#g!8=_=i%TZ#V;-J=Kpec#S=Ax_bE-!b z!6uTdd38ly6MjSRk$SA2sTb;{daah~C|UuDpOt#8-k>+@t>S4~@So9Vg`Z#W)K)}M zKYT-V{QolQv(bjuRP>C#q_67h`nJBS@9T&9Nki-FpP`=jX@hm2>o@wH{-8fKxUSyb zjrzVMdw$hF^ioM-OWTf-AvHs<5NYwe7w8Q5suV`IEAZ zH&0gX5M&xI$AOi11s#{U!|}Z13#J6qf-QorjIJ#R$Q^;%%oeBSaP}OZJ>wLu{h|xj zJ}UJ)5EtS>eE8+yd_f`YHG)&co|84gu#53w8E6ok(ootigLZxO?HI=|I0oyL9A5(-p38iD(M<`{2kkeXCWwq&BV*+#* z_si09TzCvJ4#AeW5@dufT}eTqfg6=UthME0ggg-IGar zlJCWn+f84Hq=Q}5)k$6LG!@cc(sK&N literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/teraterm-256color b/usr/share/terminfo/t/teraterm-256color new file mode 100644 index 0000000000000000000000000000000000000000..1dfc43366142a8510806beaddaefa0ec6e2a1cc3 GIT binary patch literal 1821 zcmb7FO^6&t6n<43j0xrkQ4DFt5iB)_CEeBC^FwbkBq|w9mPz6sRtHIzo!On;o!*(9 z?alto?5YUCgCcs-i(XU^Pl800TyjwGq9Az6K|Fc#FzSeVNceBb-({Zv)g z>!wdDkDjBGw4~mcNE+QaAfB{ge!ksmcl$H&0C8?}DQV`mIG96lQljfbiezMF$U~dO zkaLwDrc;!T7^KoSClDdhbci0O)AS4(Is;EYFViKuOxK}js0O|P%+n$`O;;$UuBhRn zo7AVb={9{p9}fH<)2Hy1N|fYOuy3abf5mDzvyrJhyJDi5IdyO z^ayZFJ*u97<>9EO)$`D20bdnVH1KE9jLWK`u8IG3HLqGw8-uJp^^SU1^!vhJs;|_y z>O1wlx~mTBG(8Gr;}LyQKc-LVC&iQ7_rI!N6MbXfGptC{1^AXn_#b49R_(EB61}6} z(zo?{`Xl{`{!D+NzaFc8^chBZzZrAgJNlmfN&ljM8?$cI-sAf25BB^+KQ(cfj*(L{ zOQz$QdSp7*)Vpx_i=c{Adj;k)z;=*y>4D7hD|8gD3Q)FT3ty0kCd`Y#1>h<$O~=7u z4Dy%?`xLN}{b%U}q#H9^Nw5+uhs|fFtm~dVkEOANQ@bMD_;55ARG!8gp0x@X6p)rsxM)h=NYF~arP>oz3jD|^J1IMIqEEUfCYRYfL{*I4=7@K zC~&IGb7d%adCB2h5y8v5OQ3)$1Wh^ognkr6VGE)V6`M{C{U~xt)}uN(1-@|J$u(tO zsFOE+lSH10cy1wsOd{k-Tqe_xJ+K1@3;i zfKI(|(K+K{B|fgSM!I38Gd9!G87nt$r88DK<4d|Po%AK&&pOHPBQ67PYyCQ8ewFv~ zB0CSu@Jmrp;&*Ba$Zn`t+%;1s@#Wf0gH6xNi?1XT#3xPNH2h)|Mp;(GOB^T{Nb@LHu(8Hd$YtEUZX&NmP@!7fEzI>AVAEvYy VJ)Aa;7)cjqX?BKYr)evu{{e`$FyR0I literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/teraterm2.3 b/usr/share/terminfo/t/teraterm2.3 new file mode 100644 index 0000000000000000000000000000000000000000..6f0d9d7a586af98210eb772e664fbc03e9df225d GIT binary patch literal 1596 zcmbVLOKeP082-;m6Eq$rMD+@lxM)h+{S}YX0==eDdP^VZ6Mdnt^n-rUIL4}k?@s}yiCJPUqHcy*D3(I61RN0- zUeOOm1CEHO*v|eg(It{lhl^QxaY~$FeU|x#xFzn3N8+&<7L%m!R|7$tDr@9ySu5wW zQ$OK%${yCK38yr}_p|T@%lLmY%B$lQ%{eL0$aC_dyezNDoAS22Cm&Zdzx)}>xlb!x z_oW<_Z{(Q#SmC^Kd;hQZMShc$Xc`%Dv)4@9X18aimD!zv;q-u_MtlpxRzSyM(&oQ1 z$d6JrtSAssp(Or6ED{JCfOSASu#KjJLn)B0DLg^0R=odCngMC0G%HR}JQxWj7Pl(P zTDb;GV+$kR#@je~GGgn2Ay~GJUR*KTN^4t>$8DE6#2jXBVP2(KSd~U71U2d=Bdjl6?_`+~y->Q@%$ZrwHa*=}kZvF`ybNi_#Q)@Il}ZfGuNbppP1Bmd{*K+ceJ_+f&tfci*p`?}cexPxHgLGqyo)#Qd|ecby8d>htnOdtHb$DP*?praW#0m-8&$g`}AJ6 Tr@9a|Y|GN`%i$Z>$}Ort!gB^^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/teraterm4.59 b/usr/share/terminfo/t/teraterm4.59 new file mode 100644 index 0000000000000000000000000000000000000000..5c9d70dfa6bc5db0cead0d82c3ea9266225f0128 GIT binary patch literal 1588 zcmb7DJ7^S96us{e$OjWe6hlUE1xHO|=C|2|iCMq6n1qcng}Q}?#C&&?&1UmogCdB9 zBHC!9jS6BVNJL4KLcvBsun@7ZN@XEdR*vW1*^LO>?7%tqymRmS%)2v9Dnk2d8;z-- zI)6Dg0A##F(e^?=1`$vu(wm!#utlUuo-mZS6vG^;UaFx+3d%e+bcC9bA<|SuJE@8G zk|~ZyC+QS*Q6IAXlmcG_25AHw1QV2@oT$>G^HiW~bc62D-J*Y=9@69gYJy-D<2OZb z4RO7w-_m>fNT2B|eWwljLBHrX{Xwou1wk!PuePgQi2N98k2(O|0=O!s{GuObLyoJ2 zIwSrCHK@{1v&E_vbzR*QeOvgcdZu2gSL(G|Q`I^M>VWXsqPOWCx>4^IC$j0E)#pWD z+;mDaf?yclcp3j+MR_$<(VVK-q6)lPe#fdGqbiijTuOt?+Bo!PO3LCF&sw(^KelQ?^l&mOna zMyJG4<1l51ZNLFsz=JOb=NA;wQxZ5;=yaC^FE2HGD#^6#CJ|Q^Fn%krCqy=bbDw&I@H*&4QWtZPVwm1L=hlDOXalaO@!!HT?{iwVU|{ z^YT{H$IasX5>$&9o(5(BY?;gglXU6Qz`*eE$jJEk#6&us$xKd8O=Yvw)4ANtOg=w5 zJ2y8!zp${lxU{sqTqs<*vceY_k8$_oF?8zSF{9bSN_<>tjda72&N!i#&Ny=Oj&#P6 v&bU(UN+(^Zcf(Hd_lV2D*E-Y(**eL4*}gM~$gnMozbM|(m3!uqS5$uifU)^6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/teraterm4.97 b/usr/share/terminfo/t/teraterm4.97 new file mode 100644 index 0000000000000000000000000000000000000000..ead7a28ed3549bf52e127dbbcda8b96258ace538 GIT binary patch literal 1695 zcmb7EOK22X6us{${_uw=iY3^BZ)V(R{W_JVqU~qIMhzV`i)b%2bo6N9_NRd2=YGP9-F;YFWj&@Pp;#o&WX%!+w znpV>e+D-e&&;fXSI!UMK44nt>r4sNmWPnD1aXd~D)r2*R&QgPZrR#KyZm0gc^gG@E zE+>v3!Tvw>J%)ag@~8BiUearNL+|K4eWXwHnZ6*lTE+2t$R@Q-?S$sXQhU{p;D;cd z3RIZ-lW2l@RZ!=|e@P9f3fN4VwXCkG8^V7Re5n3Z|EPb}f9kPXtK)bBBzZRKt$MrO zrT2&@v*N#?FABfB;%Tmk<6-#5TKK~&`h#9eo5(7eQB!ryU}&nY8LYwKjQ|Q(=`_?C z2gx@j{o8vz`KU<``XD5K#OX zW(QlGTEy9leD=Ikv5tr?TZgGS>_A+I2l3&TgYyN2bT=UQ{QZcwwMr|#r+Dj9v7a1Ohd3`u?m@>D_8pahlfW-#>U3SE0rjkn3$Zb zR;Q+Fwdv`4eP-tB)!Es(x%v5pg~i22V`*ub8<-Dx`uPBp`suiJz(yrLu8c;e;mTy( zgv(@H>AWkGab+@|qn4nVVbxzNw?JJrR8beb(c zWg0(wO>5{JDg6F3uvWps?NP+GJ3>I(*F|T^95(f`8LF6&>+uLY`Ak+m7HK*9+HHm+ QBpvIczFz9Ed%pACGvB#)@408# z5BMY6L+?<7%bB>^sxLHV;-%Kw4|-lxlo}w$l4xNzWio zu1k=}poXPe{aJk1NxwYbeU`76H1_y3diJ^!GQU-%*a$&dJNe!_d5B>B+U59}QWdZMR$ zBIkP|z3aS*$h^~VVrSL)(z*3N?|A1G*T3t0<9zEpaDIA8-mjZH`(u;X>sIP7XL}~i zJ)RlQ^piVf7EIGOmB=)$sk9IX<^ZGalpTXV4in!|efol?38VBjLZh&f&DQWDDVc}+ z1a=fQ0Xs?V85{MHJLqBN*8wHp3yY$&G7E*}g(-w!gF~3rQ>WsZ=me~4EJS_yV5u-) za}Uds^0Xyc`0;v%Qhr|IQ4obuuGYyvLD!)Rt^u&excortV>W&Y_8F{=HSWMq~#iC%Qz|(TFUeWU@<8#q;3%nm7s$qQ`KL zkXsNzdV3Xe^KuiilV?hj-^`gc6Gy&@WNtyjlx9I~N}&o=l{ZmcWJMF>j!YG0Hxap` zv`uf0rl)6SW@qQ-78fsEsMYHAMq_EI*}QnM)w*;kjxS%na%Fk>>eZE%)zx-;ZEb!1 z8Y(h4IBa}HWgD13Q;ynRgo;RAwAqA-S;-+ zha2;yU(wz=w%{&8ux+%HcH>`zC_`^ywgcOgtmkPPE73Q=lkP)jNo(Ofp`l?K8lee% I%QRW0XMo5yFaQ7m literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/terminet b/usr/share/terminfo/t/terminet new file mode 100644 index 0000000000000000000000000000000000000000..87c639c630fb257f00cec14b838ba0f6749171ed GIT binary patch literal 384 zcmb1QbYM_pU}R`w;9w|8Ey~TzOD!=pGBButag0IiJcv*pm;+T+h;fCWPYRem_}*cjLucp12W5CD~V650R& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/terminet1200 b/usr/share/terminfo/t/terminet1200 new file mode 100644 index 0000000000000000000000000000000000000000..87c639c630fb257f00cec14b838ba0f6749171ed GIT binary patch literal 384 zcmb1QbYM_pU}R`w;9w|8Ey~TzOD!=pGBButag0IiJcv*pm;+T+h;fCWPYRem_}*cjLucp12W5CD~V650R& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/terminet300 b/usr/share/terminfo/t/terminet300 new file mode 100644 index 0000000000000000000000000000000000000000..87c639c630fb257f00cec14b838ba0f6749171ed GIT binary patch literal 384 zcmb1QbYM_pU}R`w;9w|8Ey~TzOD!=pGBButag0IiJcv*pm;+T+h;fCWPYRem_}*cjLucp12W5CD~V650R& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/terminology b/usr/share/terminfo/t/terminology new file mode 100644 index 0000000000000000000000000000000000000000..4f28b3fd1af6b826b2bd26304bef0037ce73fec2 GIT binary patch literal 3394 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/terminology-1.8.1 b/usr/share/terminfo/t/terminology-1.8.1 new file mode 100644 index 0000000000000000000000000000000000000000..050eeb57aed8a52825930275ef692df76387da5b GIT binary patch literal 3408 zcmb_eYiwLc6+UO@I%!HPpbwOEQRGy*;G!nk``+coaZ|^M-TJY4xHw%b#f`VNn_YWj zuN$X+5CjMTDuPH=t3p))r3gfkK$J%jjf5yK6{$ceq97`eDp3g`P!SbHWckjVyACO? z$`4jM-*@i$=A4ER1($TEW*JozuYI9R(c6z&tyS$aY1A{y7m{_Pz zcB(c}>#WunYZJ}6`OYreZ(N=10@F8x!kI11-=&_BqV>a)i zUFcb&TWFBV^d8v9=s0kaF0`hpX0tS?NoQyc_9y5*dJz0DJwjikuh2K?JM=v~KTE%+ z7Z9PJ7j0Cl^$Pf(nf)(tj@wh(#Fz71_!{2IZ|Cc|i+6Fz@8-SGd(jT^ARppUelP43 zJjHYCaqW2J3oRY-G@s><@HzezKf;gkH~2jND2w~>?xa=7}@dit+0w2&5>@c7~mC9)`1vJRnGc8+66bF;L3MSM0#4Us`RM_7Z~ zx1qib+tEO`APvzAZ77c{+r480`o=UIb6YODq;GmIVC*a72Es zFUEctvG}F?i2PtL^^sKwKYc`gevhZ)_IT6zZamu`BBNSksBK7;_1x4pWFFQt*fwN1 z>yeSHakOp7NHb`mKr}<5o{&zyyX>vHJKf1UD1QRle=SH6&TMlhDWAx84w2jAHcD<2 zo90%r+-{n$6vP+1&D3*KF(a71nm)`>P0wuv?h2k0eGXwpY9=s?Zis%-nU?$&C;O~XU^Pn&+_uh%IfNxEcESY zJ&7EWo&I`+=x;M-6Y|5XUm9udNOMP;JIZorM=ez@W?WK6ZtM5GjDw6rWiO32cdWT% z%^hdC?cwy2RJoXONg27VAGwu-j6-EF4K#P4xdY7|WV!9?A-8fd*^v&wkFD9 z)-Me;cc{5Tn_Dg$oJHJ4lkyzT0(#s^TJZcJjN+tN8kaLHEhwd7NiKmvz_+*umK;sb zT`sP=d)#JVUlO-!U0!T`rM8ZD!mS2a?^Juq$-Fc?+#uX5ToNB%8jmAcC(5C4*-NW* zqmi;^GhK~pVk;_?F6yTdx{bzZl1|b*>X5VaVfr}gkWbU+=u7lf`WBt1AJ9+fS^5qA zfnK7&&?|I-I`|5{ny=#>s4jMM%-y`7Z{@>$jE|$DnB_%Y;Scaf`IGzrKg^G!ZumMs zfy#l%pgP(@SD;S2impW+m8VW}Q77%Dkc!kzH`77XN{3J@jnfI5p*dQlWqLnmbuXQx z`!TQ2(4+Ka`Wj~TBz>QLLeJ21^jpmBkMw8y8@-AOZ4+j96{?@@sD9qbH?oHrrhF6k zaemzM{LKXN?HVt@t_1RL;&+~s#g_jaYvCp@#3{huGT1-dS>0}P+O5{yRD$%>;3Aj9 zl)VGlaSc+vrrS4fpcinc6e-0@iBg~!MW_@h#Y%}%AeV@jhDwoAtdt1(*}>K+`Pplk zy+Q3M1#f07?vjDu!zGV4vRPpv2S=k6d)uZG$2GE)c%nns6ePds6ePd zr~@+MfQ&dGBM!)j12W>^fum4>kbuyD5P?vK$3z7}1wsWv1wt(!z6~l6DiA6VDiG@7 p0f_}d1wsWv1wtJyOGAgzGW5|hlq8Ip^Fv zGj}>ORGMbeX*8hr)Q$8GuOArc9lNT%ss8%zjlDe=7|&4mAdxcvNr45x{8RW>qN#Ka zRgdu_Ro!u!(4gfH$LUqaDC%btl~o zzK?d%1GJYOr>E#S^k1RZ=q-8=)|Y5sp;fED(qZsl#zq%xDfaVks+y*ztFzP$HA~G= z^HfHKszEJ=-h|eyimFXrt*(RJs|M7DTAW1x8@H-k)Sc>nwMXq!2hFfq^6 zB411$OucD(?*Ttb{GZkIYW3^Xcc~v!hf+sUb$XgUL(kN6^aAbc2HmJzbemqKyLG>= z=q>tYy;I+#ck74setkecuV2=$>v!~r`cwV2{z3nu|J0UsvNhd0*Sf%(Yh|pgwb&|H zC9Bg~ZS`40)+TH6v;JRin{}IYhqcGrYdvl~eVo`+>yFNH#xZlA@gyi#o?U_M#r`0VPhSepVzd@~mUzqUlx{`lR(?L$;og;KE798E zaRPYCPGm4^FvsX-fUO0#*l2_ivY&^y@+&*Bi>yp|`Bt8Qyd$;qPJj9m^v!#5Rb#A} zFgVJ1_!*7C&tZ&~34_ZS4_7iq`-Fi?H^4sXm9soRmbiz~5ii#Yvh#K&XOCbx>|V^R z9jD6~_J#IH?AS4zE=*rc$F6wx82XX)BbZq`#(EU!M6+A0y7+AY@-MYcS_3MX*ZoIKl*|1@Fc;m*AkxiR6Z@%fKEnBv3-L`FXbZl&V zd^^wLDztpW8zLWJfm<&};|cO&o^75~c$mxr)SPA&q!-kjJVh?Aa@qBhV4idYW1X3> z)J(G4Nm!I{HsPGGn@JesO~&MbTt68X2a-FG+=1i{lHAE&iiNWY=Y)~l_+2MqFJWKU zi9^X9O72i{he>X;`=<0<~JmGre-4VAE87 zC*atl*>StU9`Q_JyVtm!(D-r_dcECa_j*`Vc|7x7Ob+*t5$#|pHM)MX*c7C!+y;x4)i38P>bJZ6LghHW6$dlv2 z7Yc+zp-9N%qr-`Pp+G1UikRGFJIf=v$;X&{HxrNK@sWcpLV-{y6fuR8C6p|oWCN2o(qw2(_cc T4Fft#&^tY+bSVkM|6x!s~`Kifvb3J>8hU+>H_ zyFG1%0jhXni^%h(x~sEt{m@nSy^Lsg3u&K8k|C*!OZLGJ$WBSJukz%^u_wcW4``X= zuW2xmBwY@m!Z}H5Sx&n;2z^#5QO<@1a$L~)E0dqO_0#A3Vx2KF$D#!JzFd|jzdx-% rHyhN^f#JXiL}Uq*OfeFUh^Bc9omWI?z&OI#a@9H7Xz}<#ESh)$=)w?} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti700 b/usr/share/terminfo/t/ti700 new file mode 100644 index 0000000000000000000000000000000000000000..2eb177ba1a34d120485c534627a6318968954ded GIT binary patch literal 412 zcmb1Q3}#ScU}R`w5MU_DG&eA)0g}eXVA2#snt(_Ppm<1XMPjjnXI^nhQE6^!UP-Y+ zaAppWRsd?!2WkOgQ+=Rvh5RA~e_uaO1)wGdC}2dRVd4;)ks*NL|9=JsCLoClxWFPj b7~-g^h6j(2ft`U@#m3Og$c}-FfdhyED;yPZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti703 b/usr/share/terminfo/t/ti703 new file mode 100644 index 0000000000000000000000000000000000000000..8c37f2fac7eae6d47b16505ce9447a275aefcbd2 GIT binary patch literal 386 zcmb1Q)MZd(U}9)ukYXswG&eA=0g>i4A*mIK#R{Hz#U(|hxv6<2#R|chIY3$gs6-#A zfPsM#h8REq$io5{83GtM82>;2gui%LU{C0D3+KVE_OC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti703-w b/usr/share/terminfo/t/ti703-w new file mode 100644 index 0000000000000000000000000000000000000000..653254910278f0229fcc4f941ada5190723ff129 GIT binary patch literal 402 zcmb1Qv|~_XU}9)ukYXswG&eBTEw2I5=0G|mwIZ=t!85P8q^LAEHLs*tAviM!NGkx9 z=>wH0Xc!tBDJ19Tl;-AXGB7a05CaGRc~}5r3j+tk|Njg?8~>vLF0cp>nB>EdMN>?G qD?p)s0>-0Ai;`iN1Oqz*uZoSKnUNg>7cfK=7^DMSVii4A*mIK#R{Hz#U(|hxv6<2#R|chIY3$gs6-#A zfPsM#h8REq$io5{83GtM82>;2gui%LU{C0D3+KVE_OC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti707-w b/usr/share/terminfo/t/ti707-w new file mode 100644 index 0000000000000000000000000000000000000000..653254910278f0229fcc4f941ada5190723ff129 GIT binary patch literal 402 zcmb1Qv|~_XU}9)ukYXswG&eBTEw2I5=0G|mwIZ=t!85P8q^LAEHLs*tAviM!NGkx9 z=>wH0Xc!tBDJ19Tl;-AXGB7a05CaGRc~}5r3j+tk|Njg?8~>vLF0cp>nB>EdMN>?G qD?p)s0>-0Ai;`iN1Oqz*uZoSKnUNg>7cfK=7^DMSVi7Kd7=FKx_$@*lS|c)~D@E9yzn!f%-72amX=>A=BwgLzcG=xdcc=f`hLF^y z7ed0N7ZQmR2i!!0gM+wZg_2tw%%=-(Nrgh~IFL|dF{?JLsT~Oj)qH;{t=j6j ztgG%%w6_v5`4U(>up;)Y4E#hJt)NQs`UL(4tY8&v1M~OY2wNHW zp0}B8V>N6KGud9&$eLLzYiB3f8PvOh6zgNTKQEyyg~q5PlveElUp#i#jox#kw1;dlA{MXjIT?O)M@MfQEfpYfOc9ap+e z<7TfRr7M&TIa(-H7jpDas)&Tq3u;li^dr^v(FXXDqo6;55RYpUpB1mJ(ZlhMe@=zsy3q#Q&^ zeqtNG&B7Ui@Yo+moJ9&6=L=e^>kav9WKrxS9kGpc#Hh1?DaaBOH^jWQI;6y4g(&!m zDN<}w&_Zk)>7bY0RvwG{gpbnBe3%51kpWGk0{T`yJ;=e zvk%-(H>#n1s;-rzgQZx(cRW|H^Tq67&Mx>+@%6MteLYc43;Lk(4UA-p*&Gp*FM-7a zD`MBmz)j3h1yz$HpH)b$rZvda&<@%|0ScpXl+MsO>Z3UP1ZBaaK#?ZEjx$YH>6-K$ zXAbr{-K0A-Pj~4NJ(c-q^nzZ~Tly%Y&*1Ms1*>FRnY(WlY_;b*&UUto)v^7|Usx8w#3TpvKPBu9cKpdEW5?#*?o9V*h}^X_MNBt#J;ev z@V~JiGV_!DVjK7-zJ)tZ6;K2G?NJu;r+8HQ=NB@L6Z8BeY?|j5RYWhFk1fkA-=X}U z`cnNBKFjC$4Y}qvpXc}ZgB7h`+U;M_!xi>@%%AgD{5@BC&*K(vB&FA%_FJky-sHD5 ze>{(bo&>ckz1oS|=Fma-!IPjrfe=rr)Be5w_%WoHtZt|EVkr>O%na_UbW$*ffkQwS z&`FzWn>Eqc%z{)w21L7I!y=Gm2v45uEY!h+wAovfRq9&BiVR4TQcY?jW(wPx8F}bR z6xAlp$U|c^sqGY)Ok06MDwZD%*s+U+K|3&JtHB^-9aP(_qQ5w;IG$*(hA)A&2EnS! zjWQFItV-4;8~8V32YICHaY6_%;(~@WReNjyQ`H zv@8{L)Hdt#*T|ySNjhR1>4;IM0Yi`}D58sb?X*Z~fE6O|C&oz$lY$mv)8H9eNB#Y= zSR#>34h;luL3|7O)#C>q5g(+5hNt{cLOO8}`%Zmo+W^_$xbU9>Q>Q!+Kao=!N literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti916-220-7 b/usr/share/terminfo/t/ti916-220-7 new file mode 100644 index 0000000000000000000000000000000000000000..0b6d3eb7dd6aca29c933133519a3227664d94d58 GIT binary patch literal 1465 zcmb7CO>7Kd7=FKx_$@*lS|c)~D@E9yzn!f%-72amX=>A=BwgLzcG=xdcc=f`hLF^y z7ed0N7ZQmR2i!!0gM+wZg_2tw%%=-(Nrgh~IFL|dF{?JLsT~Oj)qH;{t=j6j ztgG%%w6_v5`4U(>up;)Y4E#hJt)NQs`UL(4tY8&v1M~OY2wNHW zp0}B8V>N6KGud9&$eLLzYiB3f8PvOh6zgNTKQEyyg~q5PlveElUp#i#jox#kw1;dlA{MXjIT?O)M@MfQEfpYfOc9ap+e z<7TfRr7M&TIa(-H7jpDas)&Tq3u;li^dr^v(FXXDqo6;55RYpUpB1mJ(ZlhMe@=zsy3q#Q&^ zeqtNG&B7Ui@Yo+moJ9&6=L=e^>kav9WKrxS9kGpc#Hh1?DaaBOH^jWQI;6y4g(&!m zDN<}w&_Zk)>7Rn_hZR zPz0eD_n-%FUc{5&!GnSz2zv42LA(gwJPLyA_g=QeiYP8S-^_gTy?MLy-Yz~(`)EBi z@hinGG#jx)iTS!WO&xJMKb@^=CreegGU4P)ZdHRuyU>x=5(&FGVrU8NLK;%d8O!Ch z!Gf!`r~A5zSiS@l54_0hUM6*-ml|jX`SMuUJus=NwD|}LEm2u|^Li zyf*TT_yT!m0$@mJ7O5`45MT+23a|yl0A1uABd>$JbL6GTYbURj%0mXsgjujCsmHOG z{GVR@h>Z<{v}ZXGe zj?_4*XdyP$FVY4Y7|3RahK7f)UmqPU79FQl8XGH@$Hyy`YSncoCMGARrlzN7W@cyS z=H};XwS@)IKQ7KR6~`|7+telRn_hZR zPz0eD_n-%FUc{5&!GnSz2zv42LA(gwJPLyA_g=QeiYP8S-^_gTy?MLy-Yz~(`)EBi z@hinGG#jx)iTS!WO&xJMKb@^=CreegGU4P)ZdHRuyU>x=5(&FGVrU8NLK;%d8O!Ch z!Gf!`r~A5zSiS@l54_0hUM6*-ml|jX`SMuUJus=NwD|}LEm2u|^Li zyf*TT_yT!m0$@mJ7O5`45MT+23a|yl0A1uABd>$JbL6GTYbURj%0mXsgjujCsmHOG z{GVR@h>Z<{v}ZXGe zj?_4*XdyP$FVY4Y7|3RahK7f)UmqPU79FQl8XGH@$Hyy`YSncoCMGARrlzN7W@cyS z=H};XwS@)IKQ7KR6~`|7+tel7^bN z6hY|4J?O!k7x5%`@Sq?Ff?m9M5HEr^kAmR(y_apVB8tn-H#6USZ{F^_w~t%s5N)9b zex=yiCOy&^Yt&6+sXsH9D)~<4OLnnrW%72(hnjDotKS!E9M0Olfqui#d{FvErgCK~ zPsH*ipm^X#UiC7m64$Ag>dBSQCQzHH2FzaCPe&+7QB+RQCAv&kDUEoPEZ{V(O!Gk3 ztK@uAmckN7IEVWxgK@Y{ zSUao_c7}HNn+?%8YyoruA&3saM@1qbBqI4`gHUU&w9{K;sfRnniX6a@QbTGJ;c;vi z&dHCiLs5?#p&~S)xZXp-g=`^M8c!87K|3{E%GkjfTh}zmddc6cqkkid55@(MIVd5BDz3?FMSz=0JhGw;hsiB0i;igH(G-Qmqf`J-c h#D&An!lg`~M;OTi5`kn~(+x8ejznWkS4TjN&`*0#Z$1D3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti924 b/usr/share/terminfo/t/ti924 new file mode 100644 index 0000000000000000000000000000000000000000..e4cb8b09383299792a0f368b4ba941d19464755c GIT binary patch literal 610 zcmbtRJxc>Y6r8A_7M6l!n?*Pa8@)^7T}a_aQpA{;7^5JEg_2+bCWPcfiy&BtSXhXK zg@uKMg_V_+m6e5sg@qspf*}5hbM`!fn$ia|^WN<6c431710(3h0Y2eWqDHt?DDA8@ zR_f}W)(L3CpuA8^Vc%Rgo}bH(k| zhCWkmIQ7j+vFbE*=K4}Rr`vWQG;Zp)zE*bhST36aJoxi@kU<}YAOz5b9^UW8Fh;lw zF^VuEh#|>s4vXY6R>(s8REQEPYLaas>excFo$RW74+lRQvUSMhNTtX0lTPE5(;3cj zflFNB8aKFQa!1{(&V%wtL<$ddf zmDKVH`Ye_F-I51UN_xZ!Y|!FgV~G}{rse80<(j4f6~dGVcHo!Occu7?S{a5>xEZ+f laI#Z73yYDn59e>aN*B$?V=Auux+3VJ-p(^ zFh7ib66s;V3nL{Pi;E~)2U?Iwkv3$*>-jue-8&g5;Ap2=g4u7sVAMp zDXTM_;{uns!ZmJiOXrTbcQOx-J~}G*{r^32+cRG9N_`{V(Tf47c_pouH8m4b%etDW zKuLQyNqSsK$EY(z{C7$Y!i3Zb-Cv+YzsejXLQKiltI0M&_)U@~DbOLGtiEHGU(`y{ r48uyonuoOjYY{DNe47-IWJn5<^fA&Tv+}NU(0~$vLL&hshJJhkvOx+O literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti924w b/usr/share/terminfo/t/ti924w new file mode 100644 index 0000000000000000000000000000000000000000..1a6b11734c9d3be41d28ee027ced4ecb3b6a92ee GIT binary patch literal 618 zcmbtRJxc>Y6r8A_7M6nKnngGZLGUh#Nl4*GQp9MCA5oCQLcL%Dxg;bPVi5#E5eo~k zu&}VOu&}bSva+(Uu&@vWK@h}0an7DcP*eI~X5O0}-Y%@)7sU`daez+i3cz9=;@QEa^L^!ncH6QiZ|*z@qupiK`khTTG3Q9rdD*- ztU@sYTO>WD7)k03k@}mG2UCR9aXnO|B);1`B~DDrF`&sYO@u6xCMn#apzMBPmS3b8 s^8|NisF?*~kyxUqjqOMdyBu*jDp?dCnpC72M0lLaS_CS#q(V}iqg@8&wJnRyYF2BHyW`phHjkV6G6qb;w`V-EH?C| zS|iv$sFrI%Luab5B|Y77V(z4=+xliD&=X!h14PiVI-*DpeHexiKo`D55Bf2PA@)Ly zU>p;$;If-VlA1z>S_pTASjUE{M9S={4*h^T1<{qdQ3lQPn@wj#|18N zg=^g47I#eU$%C4CRQ{w~-uM6Y%-de@iZ}W@`9LoQp!v~lij~&<6n&YbVN^8VsGCM< z#;99HNp36>>2p?WkCyx?cW4Q+Als-Z+Z7V4QcNj!Tc&08n+#t>^K*oEXX)8hk|zab iX8cg99jX(mE7h8kI#1*;sBb&aY<6aN(1VuZ^L_*Ibpbg5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti926-8 b/usr/share/terminfo/t/ti926-8 new file mode 100644 index 0000000000000000000000000000000000000000..216a1481cd1974ecbf9f577cf038e8e9238d1264 GIT binary patch literal 570 zcmbtRJxc>Y6r8A_78VwQdd)T02!7n<>kbh$NfBd&m>gQfCX%Q@6Ap7iiXbA02*QD2 zV+tD^8^OZDLJ%x01o0QS&c-DumOhx7xASKA6+0e^URDs{i1)7RHhu5Q~=XWG9y2m$oqQ}kgF!`vcRW0=4c zEI2&PAw^CjOD=S#Labv$buukP30v6hIG*x-G=C*zszv8WxyRI#ZsLsHIRaeZ5?8p! z4Q}b&5%((dp!89xeDDAD#Mhqjf>-Jr@s55BK`Vy0NmfQHrm4$B21ZpY8lGvCXARFX z%5sn(q|RH>Jxc1k-Jv9jMR^RH^0-1oYa~-ryh{<;{X~{O($3LLAjlzDMUY2OK--KR elH!tVNe;=HAuTW~_o{_9v^dA|h6^ptAN>NW?*hXB literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti928 b/usr/share/terminfo/t/ti928 new file mode 100644 index 0000000000000000000000000000000000000000..d895332b465bf30ee5427b23b16d2ea75b7b7839 GIT binary patch literal 1150 zcmd5*F-XHe6n%%Hc92dEH7Ici=wy?$wzVL&?NDolqM@J_MQy==Ev1dnp>%L?aB^~T za&mHVa&mHTaBy&NaBy%CCl@D)|1JrX(n$q9^4|aV?*Df`fs8T@WAMXd8neup7Ht{j z=2k;qs5Y$nex+Qs8ZxPJA#KRfXgD^l$`N_nwB(eroC6p=gwEw{8S)rH0CtZxgaozp zV}L4bJAer&qHYSan4>Hyc4^`aAxBP*iGfu&^Gr9eBa~fN-$Sjd!a|djmaDcY9=Q1- zj&O_()k_X9uIhQYoFZc-TNEy885Eu>kr)D@ZPigqo?})xj)gz ze9X4}g#Wol{&2E!Hp!&o8U`^8si>GrO;t*9rKTyRItf}J2eC<7n_3WmI>cI`*ig`bptfMaN@*iFl!AkUi;Ig8 zMR0L(ad8m@2SIRfaBvU@2NxF?7Z>YYOrexcwctnIySw+@yS4vzukRv{lG$+GUA!DHAs(T@Ob`6-k#?^R_f&E+heg9zx@(mjY7oBY;|q z%<({2?fHV8>_`ZY1J=w)@&Wvsc%x~FfT*wkTTo0N*D zRw?dy`7ZXbj{_Xy7^gVHIWBOCD_qn44dE7dxc7P=yjXv4C*mWXJlE$xxWC}F<@8%i zwf(){@qthB{OYi8`x`Y+e*fcUKA~R_ttI%-3(=DEa#4}9F}bM9*%AqALbMEubA&{5 z17A!N4Eh^HYlbjIND<}<;R2Du6k!T6HDZ$LBuzRzz&05;N~8)$)rl0BqFe@<6ef)+ z#1v*4BQoHyQ5;Shj!9X4jWp#ZdT^o~!C^Daonc3f%`}yX%tT9z#6m${O>@8A-PX%~ E0KR77-v9sr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ti931 b/usr/share/terminfo/t/ti931 new file mode 100644 index 0000000000000000000000000000000000000000..f9e48bf8583483928ce620752c57433dd5ea0226 GIT binary patch literal 533 zcmb`Cy-UMT6va6!=SI$&TVMl2(QQqu$&V^(SclbA|WhMRI!3uF-vbAfnRWsYM_*I1XRE7(LW@%Hu2 zA&%3YlSG}Pn>tGMF~DVdzNWgt9q#dfM?B#fFLYk@>fY=9U62y=Y zhDaz2W@sEkGFT)7DxSkofTp5^p#msUgCtr9Wj8Uj0a;xPeGHQrrZLQ7n8&b)VHv|J zu85agHByKW1W{{4KVqj1Yoi?G40U=n6m*PC)Dd%nj1f&Oq!4!~sC;3&f_m zK*A72n1cut5P^&xfP5dYPLLU4K|en9LG#2`}wfj9_=gMl~%h(m!GWTy)dy92Q& e5W{SRsNn>PxB;=TxwVM_$TDNFe?Tk~C<_3a-_;KQ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tkterm b/usr/share/terminfo/t/tkterm new file mode 100644 index 0000000000000000000000000000000000000000..15ae411980ebead91ba6454f59526a162b2d9140 GIT binary patch literal 424 zcmb1QG-CjPCWa)2l9HN|?2^=?+!~ksJO!W3q|{<{g_3NAlGKV4h4Rdl^wbg{yC^p^ zFEK|UHMcY;u_V8U;Xe>CfJr7W3F31yNPyW=U{VH1D!}DH@|ZvcOH*q zkinF}lEIe2k-?S0lff6K{y>IEoN~x!63ynss%=>DIN@5 z3>-iqXCQV2V)I-e0mS|RKpY6fK|mY~#34W&3dCVR91g@0Ky~(pIns7uIzt+04gih& B1t|ak literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tmux b/usr/share/terminfo/t/tmux new file mode 100644 index 0000000000000000000000000000000000000000..eefe9401f766e80769ba10aa83128031668250f4 GIT binary patch literal 3171 zcmaJ@3uv5G7CvY0uQg(=x)iO$Y773@+NR9^oSFXC*gR~eHp#SUYBfe$o0!DR#AK4x z#J&`KOBdI-P<$0s6c?10RZ(PjSp}tn_`ssO>k2+VR0KstWcTjrxH@G(zJvMKiGX(+zYp z-2v+!dXOFhAEGDe8Sr!TS9%fr4|<&r(>t)~uz*31_#n{}|(LJ&JbVD86IOb2RPlG{^nUqfWN>GFm_jDckD~ zyJMc)pSWYb+h2nt7zDIudpCeCMiWkh*8kts_;xxGu6DF0KdRsj!SHa%_J&}$P`1Om zD!?)tdVRTM0i6sxsscQLCNCEjCEk}_C{{tN{2YW;yz$xIs(_7_grR_MgM0*J2k{?e zSLEQ_Nc(}oKFW4Aqsh#^C%sK*o6)-A@gjJ7y}ZSO#iF2}v$iz>U9IrN(v$cu{7b!F z;v=olI(X2qrb_k#%R||4)cU5M#M#ron1Fh%6Swq%hJsW2YnbCS=GHYy^H89yu zy9K#i1?)%Itb&Moiv5($%aO=*Ik(9ji`~h@a}zOrn4y}UI~KTm(9df>gc+$B!SvP4 z!z{Q-RR$N`$&=lIMQ%dbc51MvNGn&aTGiONdUYyS!P?ER=qb_(Is( zi=8n_c_7U{*iE<(3qB3$@ zKXNMvDTm5l5@_x~a|fC`NORlWLvH0l%0*@5*4;&tbWfDSG%g7>cc{5Tn_DUe9!k`e ze(A@ffF|tfPO!9~n1n@nzXJi^qCB;Mecr_vrWR#zkGJA3?J#U_@&-B$H?iEqt8q84 zr%v3#m(w8b-d(hpZbal=xN{$&C+IKqJiSc+q&Mho`hfmRpV3$J9sNWZZs1e+bUuq+ zUc~{g;dR{3UA&e1xSvOGGtTh!d<*}H@8yGhh@Zmk_yWJmukm4imp|lB_zQeC7<>~n z&`GFFr_o}3J!J89u#C>3bLl+FQ9v;zSYI1$z*j;yZKFQA6059GjizZI)_FVKN%zq~ zddz+qJV$@STK}GY6&%58Kcz3}TlxVvzQKAI@nX*MGCr3ZvEm}H#a+LiH}WQ|x|gLE zkRU04%VmTdlfQIaj$+N+ zsaQjtsN<4MpMfArUtjx#rw?C{Xl#XVUJ@!r zO0iO2$WI?rU6P-^Wa;}byQDx$39=|fO0iO2DAp{oW{EXRtXX2s5@|@JA(4he8WPP- zB;^ScDMd=LQeH`J5rhOvp;Dw2E9HfJ`@R6yZKL%$>M2ljD>b)KOO0A4s4Yir0d-7J zxsA%*)SaX50qVx*@HBN#(3Wl*X>ADvLV-vi7RUoSrHR-nVyB3mB6dP->uiMrgam{J zgb0M%-qisW2o(qw2o(smBr}#|#*)lfk{L@fk literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tmux-256color b/usr/share/terminfo/t/tmux-256color new file mode 100644 index 0000000000000000000000000000000000000000..bc704f2783e4b0a88843ed288ebdd28e4c234e71 GIT binary patch literal 3281 zcmaJ@4TxOT6+UO~v*{LN)DmqRY7_Kf(qzN?pP4+|u&Bo}uB{3U!*PTgr zcXpFqH$N3@t1XKEKM+(5s0bF6N^Ma@MFk~-XvN@f1#3ZUDJUW$)9>8#c1yZx9&^9% z-1D7#?wxzzyZ2te7tv~3LL+?M8I!fC>E<9#cJHh1n>Z-7s2Pz(D$^CzL)&5Rph4g;jnX(x(G2V( zbR+$Seh=$zdVn4TAEU?VN$}J3NBT4PC3=mH)7!A#MR^ZJo)5sEWcH`v&ojHx_=5gL zU(>hrJ^sleUd%t{W&AU~m>Z2%D9s#jfm3dUUFI(C1OLBg0NPF-;R&AQoA_3~mmlKC z`Kbjh{$f3E@SA*sKj4q}Z@ezoXspk*02e;(@c#NF<(89b(&F|7o`rc9dhW5Uj?T9| zmU|-il&w7rd?E9{IZZx-;JIwv&A@itt(mZ3HH?NrE=C9^M^O^b5d}Y2fIj6}v$64mAa8^0K zQ*t&qWvAj?>HN}JINsBFb~}5Wx-;t>IZeBpPodp<3g7AaIhA%-mg7F>T_@jvH7%mW zl<#*(+%exBOx>}-9h`t890GLa`!|8EKoQP@HvZSt_)hu}T%9N_L0rWbg67e%tqsF& zqkNZjRe=>0)CRnC5uF7)t^s_37T=3X5+6t{600ayVIHCyzWRKBO~6J=!bl*nK>-5t zL-^_wwVt`x z)oQJ_ckjM^V`Jmv6BG6NSeE|O$(q8w#$X{5O$%^lg?vUA|2 z#J(~p^<*!g1+%&vEF~bw$-6q=JW}DL=Ds%c(k* z4GrOx-%p3=CPdze)BRz3jQ&8+&~x-My-sh@d-O5=oxY^6=sU`B6Q9lJ^M&m48V-3K zZ{SYu;q5%YgFK2ec!qz)zvbKb9zM#)_z9fD&+-fWDj(-}_yn2_mN)OK?8IxMp>l^nx?}T=kMrtx|fd9BlZsR zH2n!In?brQi_!lrGiqZ8%(4WDKaG@P zr9`P96l5QS4k^e!=j_Xy8&W8n7P2VCN{LcIDA6p5W=S+lqFEBn5^G4TA+d(U8WPWU zBpV?*Qi_!lrGk>2R|pA}BBfXMK%fJGFLD+XS`Msl%g=kh7Yt4^?KC1hk9#M)oJRj)3#n3ZEp(&B7s;S5hwtQRRAJ7CK A?*IS* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tmux-direct b/usr/share/terminfo/t/tmux-direct new file mode 100644 index 0000000000000000000000000000000000000000..31458b9a8167cf56545e1bddcb45f22f4a22c9be GIT binary patch literal 3419 zcmbtWeQcdo8GoL8UKk@89}>}d5hmd^UAETye%^cgGQ0JI^}>34x2|)pRyTV~dueai z_TFwSU8y9X5`&70(*(t2i6RLaj3j7O5{+myBQc->MV%yy38IOCL__fUd(QK=1UvVK z-t_!_&v}05Jm>U$Jnwl2@1z}cIn}u9qGo+zvAtTGA0KO;5_{XpT61!nI@-sMPamJ( zR-37gFVwBdzJ2_kJ2Y#eU83JUk0C{hv*UTx9HpS9q zJIXbl=ViW&@8!?)gZvObx}nE+t>@?b6hFt$^Y8c%+?i>$c4fMN8-Km<-u))!o;TH` z$EP=VHpbcLx!?ABV7>2|%)^;SZS8U36RH2nb-mR(n|V6(T;^Qn#mrwbuV!A)Tx7PG zx0-hv*R-3++-Q2t&1S!Ozd2@VX3i{`JIy`jKJx|hp!uqK#5`ucZ+>jfnqQjVnm?MC z%`4_LlW{gXS2|mrcRAY~&nY^4oRU*<-sgPK**M<|dB&U>r{OF+s~70^@$+c+p2v5g zan7fGHjQ!GdCAF+9HC9Lg|Z`V&7Jk!YU0lNZgn1xU;@ye9l05F3yN^sXzv@Qw(qA) z;p#`}@}p_o5OfbGZEX^E4`m0eYZ_QVL2WdbY@*9xM|FTF(BMm9(o0lz-;c{-5I~%*r#B&od zeVCz|o;w@3r%=ypJ%kyl8Nu|`%)>0WNnJV@-R5QP_~mXw*?!t=cae7N*txU4y`v+S zJ9_lkv0HDQn3$Zb)o#0OYHE7AUZ0scetdRzZf<_Q(P%ao7EYWvd2(@aY3cUcmzPhS zT3NY6mh=c^+q!knLa7IdFNBr7NvR*?uRHBlXf0ZI$|Cu)*CW1-fzGn*AndjfHe5*e zJnfcGxsY;E+0Uhn_BLWVAwNvpC6UICGEF_L5j* z#~M4<*l`-$9zidkC>K&LDkHY_Bersoa;WSjfyNFrcA&9?G`3wm#8xh(TvSGEU0no8 z*F-r?+a;mK4mEaYV@u}1p+sJ(Ns z1AF-0@u1M@cXnDKj-nu5ao^)sweCl@w(LjIiu>+2yjsKQMRYm9>oLPLX88ZaBtseM zqfgOk!+2g?B2Numi?`r~An$_?+D&_@jJLrDXaaA76SP8i;Wh9Xyam2OU!!l(WAr`x z5&evQLC@0f=}+`By+W^1hBxyS{5HOpUEaw7ck&+Y=RrQiqg>@Fe6g4KBm6P`B;U^u z@ELv>U+u^F34W5#@-zG!eu4kYZiXJ^ zr+?7D$l*&d=d1Y|zMk8-gG0=EH}`Uh%RIz~G4l`eBulQ!F|lBO4X z1Jlb9B%1rzvU#9MJyeR6Vx_!NplK;oij-odyiy=3%S%F~NGVpz3;F3a(kc0A5=igs z+LQuGb%>%ADaA^8p;)8D8YR{!u||nCN~BF9Z4zmdNSj3K14;VCKuVEPtdv)huN;~L zN}*Du6f5P0e0!gx|MgzU?jgdS!?ZU?2ljST&mavKsJoZC`>1E0dK%Q1qrQL!8dT|{ z$`B3ZXlR^<>I>70G}NGjLp0Uf69|L?kw7ev2b86VSQfD?Vp+s8#J+Mb6d)uZG$2GE z)c(N%s6ePds6ePds3jS(BqNq&#FC6yk`edabPx&<5)c{?A`oi%u&6+&K&U{dK&X`i zhoAzX0-*w-0-+u#NnapTAXFe!Ak^WC6f_vFKp(C^9h;fCWPYRem_}*cjLucp12W5CD~V650R& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tn300 b/usr/share/terminfo/t/tn300 new file mode 100644 index 0000000000000000000000000000000000000000..87c639c630fb257f00cec14b838ba0f6749171ed GIT binary patch literal 384 zcmb1QbYM_pU}R`w;9w|8Ey~TzOD!=pGBButag0IiJcv*pm;+T+h;fCWPYRem_}*cjLucp12W5CD~V650R& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/trs16 b/usr/share/terminfo/t/trs16 new file mode 100644 index 0000000000000000000000000000000000000000..6b707d3690464de84e944f3b4fc48da16f588b38 GIT binary patch literal 556 zcmaix{VPLJ9L7Imd26I3a!U7?Yify$%}V4oud7Wdl8kMK=FY~v6)B~ZQffc=LGmy7 z59hn%+DLM`&+~oG^L@VE(>Xo9Uizq~#5<=aMJIACJP;kSa`|+|wVa5R${!W;ZU%h( zzkG3;=%!qTI^lBJPXoZPey+(^CUj(Z+>gW6$ zjkFR#t)P}sn|8smgI3TE*(tj){3TH{s72ITN-kEd&7$O+MkP=&*)Is@1p9)iPsCBH zmF$c>SRH=(LnrOD(LonVvSwa8=wb8-dK4W-N6=&FC~7+-n4m=-ExUV|ba!%l$7ko6 Ii_~S24-$d>4gdfE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/trs2 b/usr/share/terminfo/t/trs2 new file mode 100644 index 0000000000000000000000000000000000000000..5d34043f1b19f2480f125b333a56d1318106aee0 GIT binary patch literal 451 zcma)2O$z~06g`7{jIXVHzS1*k5=KIjG+E4IYQn}+h>4JooxPtu?o2ZbS-7vxIrqGC z@8V{K4k`%ZfibSG#k4O;>luV9@%ueSnim9T&?#^)7b4|9yZLV%$RD_bwGfx zKAN{Lz(5okSQZcF<4B z-*+{M6(Uleo;6{G@miCFe{96cI-XX?h_#TM2pC Ho`@KpOF;bM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/trs80II b/usr/share/terminfo/t/trs80II new file mode 100644 index 0000000000000000000000000000000000000000..5d34043f1b19f2480f125b333a56d1318106aee0 GIT binary patch literal 451 zcma)2O$z~06g`7{jIXVHzS1*k5=KIjG+E4IYQn}+h>4JooxPtu?o2ZbS-7vxIrqGC z@8V{K4k`%ZfibSG#k4O;>luV9@%ueSnim9T&?#^)7b4|9yZLV%$RD_bwGfx zKAN{Lz(5okSQZcF<4B z-*+{M6(Uleo;6{G@miCFe{96cI-XX?h_#TM2pC Ho`@KpOF;bM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/trsII b/usr/share/terminfo/t/trsII new file mode 100644 index 0000000000000000000000000000000000000000..5d34043f1b19f2480f125b333a56d1318106aee0 GIT binary patch literal 451 zcma)2O$z~06g`7{jIXVHzS1*k5=KIjG+E4IYQn}+h>4JooxPtu?o2ZbS-7vxIrqGC z@8V{K4k`%ZfibSG#k4O;>luV9@%ueSnim9T&?#^)7b4|9yZLV%$RD_bwGfx zKAN{Lz(5okSQZcF<4B z-*+{M6(Uleo;6{G@miCFe{96cI-XX?h_#TM2pC Ho`@KpOF;bM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ts-1 b/usr/share/terminfo/t/ts-1 new file mode 100644 index 0000000000000000000000000000000000000000..c927125d8300c6e7e79bdc31868f9ce466b34465 GIT binary patch literal 460 zcmb7=O-n*i5Qd*yf*)z%E*uCqC&7=n*90MO;ld(lAt8hiK`I&|sD13*`?GIzPUl{v zMbW@J^SpCrW^pP(g$s_^vts_Tnyz;r?~$q%?QX2CT7-bVBN&q7j5vlP&2gL|%c-L> zb(%_-&V`!Wst#S}?Q9a)zSE=cXyEc4_YBk7k*9Im`QCo={`p5gxozvjzs-D||1x{H z_aA;uZ!Yx*N=O|U$!(ZJ#z@a>B2%l@Ov6mgrkx-K&h`I_oFI?L1F}UHkynVkDQdC$ Qlq+PQ8$np|I|cH50eMvN*Z=?k literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ts-1p b/usr/share/terminfo/t/ts-1p new file mode 100644 index 0000000000000000000000000000000000000000..e4b59d214f6d32b2cf2da9487f6e5b05da7a5566 GIT binary patch literal 513 zcmb7A!AiqG5PhLYYr&hKIG4Sw1*MQ^@gOKvYpr-tR45uSw2{VuBx#L^pobo$_|@y| zW)s1K;K021=FRLo?1tlE6E!UGg~{kCOxxLe{_JUJGxoJ5v=*;%{wT6h6ep2Lvph}{ zz(H9Km)1W{wZSDCSm&{ZB`B^snpibz4X)vi!9B)(?n89VtZ$X-89lJhIWCO4#*o>^ zJ;rvU)WoW!a*BlMueoqbd@|*%3OfXP{#^r3v@%LZi6BhbPGC= znI~JKCAVcLvz=0c{3HHF@{hT@pdsiA6g+^Yps2&`adSj42F(ho$2;1kAOxM50P+XS Ky(*@OWqboiH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ts1 b/usr/share/terminfo/t/ts1 new file mode 100644 index 0000000000000000000000000000000000000000..c927125d8300c6e7e79bdc31868f9ce466b34465 GIT binary patch literal 460 zcmb7=O-n*i5Qd*yf*)z%E*uCqC&7=n*90MO;ld(lAt8hiK`I&|sD13*`?GIzPUl{v zMbW@J^SpCrW^pP(g$s_^vts_Tnyz;r?~$q%?QX2CT7-bVBN&q7j5vlP&2gL|%c-L> zb(%_-&V`!Wst#S}?Q9a)zSE=cXyEc4_YBk7k*9Im`QCo={`p5gxozvjzs-D||1x{H z_aA;uZ!Yx*N=O|U$!(ZJ#z@a>B2%l@Ov6mgrkx-K&h`I_oFI?L1F}UHkynVkDQdC$ Qlq+PQ8$np|I|cH50eMvN*Z=?k literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ts100 b/usr/share/terminfo/t/ts100 new file mode 100644 index 0000000000000000000000000000000000000000..0128a889f17ece7cb7d78de2cf47dd99daa15d36 GIT binary patch literal 1251 zcmdT?J8Tm{5S_gsLXfa20HK`t6kg;MK|cS(8Jom_EFd@-1Of*XD|T#>vwi;CiDS{y z(;`|*kPt!?2qA<}3JMAe3JMAe3JMAeBrtFH&Xz2opk#G#=FOX#-MiVFWCv+4jnfp1 zEA^V@@pPq~u9@A_8DqJ8cn}gX`H)-;0T!bL+ClrNFV`46kwV+B<0KuSqf!siIXVxP zlF=pDMIcKB85>lhmSol*{r)YwO?RN&rF*u1pB~ukiS3`$OR(2=Bs#Zj{)XPtJ9sa%G=$`;uTmSYdW9}Vjs zv#0DCd%<2wWoxMaU}K6nbwb+F^LPJ28?E@iqCNlkJqHxGGOe6Y#%UL+X?~NN8qez7 z^zv*Kf-et~P}65zk$@)(e%2N72|pA@S`sLW(oWHX|5Z)LT@kOSp0#}M3aPymIiLiJ zc1jzN(12+AkoqmniH4%nZWxr=zBi@zavAJ<0XQX2P0j%wU;$_Y$Rtz1MW7BefF@u7 zE#M>&2WD|hOfyvR#xbp+9*39nz=jqzQp2Q%#60HZ zVAQmS$Hb0ikau}q*SIcXFR0(5Ncm(cWW|1@0$eYOvKd}?@SKzD)*uozfp@L|H2{~D zG=UN=EoCw*EBXBD>e`xN6pN)&xon!1O0`<6)$5H$v)O93+nvt(`o>1LySdrx;al*= u(qbg;Id#f|o#r8EgX_jEz{%E@?7~2IPnG_Rp8NUNzJEs_ zz&`nr+_&xX&-8_M=qr7r@AQLy(l4B`i+P=Ue1FLIN7ylT%I99i-ZtRZ46ztk>aQJX zrQ~4?Y?)ciVK2a6w(DN8H|#BY&ps+;yR9G8j%xCaCzS1c_vt;f&WislI`fa;b3uz~ zhBl>j(_!MKSP~Uof+%FXdW zA|$IvJ>R-Typ^F|DAAIi(tXmJ%X2d{fmFPmGTJoaX?;kS`ut{d_hjU^+3hmOTMJpd zWfr(1&oDg(tOGMZ13+dv1Ka>yU=64N7ElK+1LMFbx~FuD%k!u7BEJN$rh|qaL8V7f z?h))sqB?BBM5KvI6EDIH7l{uOkIU&ysxfghC{nUxB_^7}HFROfI0PE;C{kgSihFSc zsi-hYvTQ`Sy<(wH7~TNVv>#_)1sniZH(dd2nxD^R7Z(eK<>i$X%PN&@yIihRR#&T4 z$8p`YwOXxSZ#34|H#Rmmo6W7QRtw*P6Dy06oFC(ZL3EmgpzmHj?i~L}9#b@9wyYGU T5!6HBNHi879=V$%ew+RPm)Cg% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/ts100-sp b/usr/share/terminfo/t/ts100-sp new file mode 100644 index 0000000000000000000000000000000000000000..0128a889f17ece7cb7d78de2cf47dd99daa15d36 GIT binary patch literal 1251 zcmdT?J8Tm{5S_gsLXfa20HK`t6kg;MK|cS(8Jom_EFd@-1Of*XD|T#>vwi;CiDS{y z(;`|*kPt!?2qA<}3JMAe3JMAe3JMAeBrtFH&Xz2opk#G#=FOX#-MiVFWCv+4jnfp1 zEA^V@@pPq~u9@A_8DqJ8cn}gX`H)-;0T!bL+ClrNFV`46kwV+B<0KuSqf!siIXVxP zlF=pDMIcKB85>lhmSol*{r)YwO?RN&rF*u1pB~ukiS3`$OR(2=Bs#Zj{)XPtJ9sa%G=$`;uTmSYdW9}Vjs zv#0DCd%<2wWoxMaU}K6nbwb+F^LPJ28?E@iqCNlkJqHxGGOe6Y#%UL+X?~NN8qez7 z^zv*Kf-et~P}65zk$@)(e%2N72|pA@S`sLW(oWHX|5Z)LT@kOSp0#}M3aPymIiLiJ zc1jzN(12+AkoqmniH4%nZWxr=zBi@zavAJ<0XQX2P0j%wU;$_Y$Rtz1MW7BefF@u7 zE#M>&2WD|hOfyvR#xbp+9*39nz=jqzQp2Q%#60HZ zVAQmS$Hb0ikau}q*SIcXFR0(5Ncm(cWW|1@0$eYOvKd}?@SKzD)*uozfp@L|H2{~D zG=UN=EoCw*EBXBD>e`xN6pN)&xon!1O0`<6)$5H$v)O93+nvt(`o>1LySdrx;al*= u(qbg;Id#f|o#r8EgX_jE^ zJ;rvU)WoW!a*BlMueoqbd@|*%3OfXP{#^r3v@%LZi6BhbPGC= znI~JKCAVcLvz=0c{3HHF@{hT@pdsiA6g+^Yps2&`adSj42F(ho$2;1kAOxM50P+XS Ky(*@OWqboiH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tt b/usr/share/terminfo/t/tt new file mode 100644 index 0000000000000000000000000000000000000000..15ae411980ebead91ba6454f59526a162b2d9140 GIT binary patch literal 424 zcmb1QG-CjPCWa)2l9HN|?2^=?+!~ksJO!W3q|{<{g_3NAlGKV4h4Rdl^wbg{yC^p^ zFEK|UHMcY;u_V8U;Xe>CfJr7W3F31yNPyW=U{VH1D!}DH@|ZvcOH*q zkinF}lEIe2k-?S0lff6K{y>IEoN~x!63ynss%=>DIN@5 z3>-iqXCQV2V)I-e0mS|RKpY6fK|mY~#34W&3dCVR91g@0Ky~(pIns7uIzt+04gih& B1t|ak literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tt52 b/usr/share/terminfo/t/tt52 new file mode 100644 index 0000000000000000000000000000000000000000..c4b798b856f9475a5f45558f8cda097885eee0b5 GIT binary patch literal 1940 zcmeH`Z)+1l5Qm@CLbVX|wS#hR&QcUi(xy$VZHZR2RiV~sRf>>5XPau8G`UoZm4YA$ zf*=U`0R%w=5d=XI1VIo4K@bGNuM#(tJqacdQ4kcDy`6bxcIJL}x3@ji&knYd56yP_ zemu6G^wZ_MlS(-SFPE(3i|-uks# znj8x(QJ_SHRn}N%gX<=L!(2DH#cjLy&i9&D74^v74*8(!p6+{K)`vXev8{UYlhr|& zcJ^t<9?v@Lc;1qK(G+>bYu@mdcf98VANj=RrffS!zZ(1U+kLV1in@JHpS#=5x}{j)A_tHo$OU8)@sNW^5;=~Pbgm#~uF8sdl8H(-f*dpd z(T3K|n6}6XWEMGzq>xj{X=DyLqqm;Yt{Eh48;5&;Xm$}x hGctHE{Qu9uzyu^w0Skr*s{C-`u`#eS@G@`#Apl(@2&Mo4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty35 b/usr/share/terminfo/t/tty35 new file mode 100644 index 0000000000000000000000000000000000000000..8f719a1881721c06a78ccac446503de1bf664ee3 GIT binary patch literal 340 zcmb1QRACThU}R`w;9w{zsWdjO0gx hGctHE{Qu9uzyu^w0Skr*s{C-`u`#eS@G@`#Apl(@2&Mo4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty37 b/usr/share/terminfo/t/tty37 new file mode 100644 index 0000000000000000000000000000000000000000..53a0f177c0e059646c0cd1f23c305f07f958d327 GIT binary patch literal 369 zcmb1QlweR}U|{HC5N0STsWdjP$<0qm%~3EmS13u%NiC@?NCnD*0V6UE<3Pn27#RQm yXJBAr_>Tryz#?pLaSk|(8_q)0GGw`YXg(5PU}xZE;9}rlkTz$Kwgj@IEf@d_CJovE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty40 b/usr/share/terminfo/t/tty40 new file mode 100644 index 0000000000000000000000000000000000000000..c9cf50f53f1bed50b6e834f1946d3285ec726696 GIT binary patch literal 524 zcmb7-ze~eF6vw|IOBWY)5T8PaqfXLGOdE$IiX9@wLTT%$63lHK3XMad9gB|s$Jck) zAok+o!Ta&~zW2U&9`w;ch);Z@s#b|ym&-a`$Lq4FiseGuR;o?H{q7$Zm|k zUf_$t7{;7&7z55BjyPX9Hb&rzyRM^%bHb70&au7lU+ztY9vd^lGixsm-FG_Vw}0** zUN@=0yK|iX^8LVuY0L2i%0Z753w0|q?u3eEM#CDprahJ)+$7?S7H9xUL1UqM_F`1m n8&Cpzt?6lBFM0nI$JSKx@(E3Z>f5WS`v)`=%DPeny5F}u(P9xe literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty43 b/usr/share/terminfo/t/tty43 new file mode 100644 index 0000000000000000000000000000000000000000..442479106e6b11105a736257144e16423989ae03 GIT binary patch literal 348 zcmb1QlweR}U}R`w;9)2!sWdUJ$<0qm%~3EhRwzl$NiC@?NM!&@g8+nt(l8EK1}xjc s@c%yp0~3%$1uS3@HVko8RiyJcsBR+ZZa~+;#lX(M%fQ9J0fbx(09o?^M*si- literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty4420 b/usr/share/terminfo/t/tty4420 new file mode 100644 index 0000000000000000000000000000000000000000..8187d8a275394ecb74f80e72158267ca3a61b91a GIT binary patch literal 543 zcmbVG&r8EF6#goTA_yME2a-!2qM(+Ef*?)@8^dB@Q>YB3t3eUBl{F3~>e0IgFM|K7 zHF-&Q76bi$z3(+y_13VCS$yIfiBi>Su=AqSgt;RhrJ7_?7zaL{MGq`IYwgHRA{506 zni_!_jYTnsMJ%ye#s;>u+GZDM+|%Cy4%wToIX{*dk5HS=OkPK0>dRWoC86dBZCpAZ zJMKER{TuWkaqqGR^pR8Miea*|^P7*Ine2IW0hiH-m)KS1DDr*J??h44 z*~v<^5;eohMe6|y$K+T@O~9Bz*7czur!fe@CH6OzE4YQ*q^$Esc#l!AzUnjnTI;HwmQ5iEu{h!PzDe#NVK?1#`!>f8eqeD;6*C1nz z>0$OL2@GL(X(-I<1T-6=83+8OD|toV+5kXgR=QdJ3t zZ#;)Qf#hu~JBPIeHY+@&KB5-g90~5xa#X-sqcm<^*2TclG1#qK>dqnL55YEYDci+C z76XvUqr2&0n+Vgoqa*3+jP*TYDMnw1*IgD}neQRrbyU}PiTdj7x)9H45J^Tho12kL! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty4424-1 b/usr/share/terminfo/t/tty4424-1 new file mode 100644 index 0000000000000000000000000000000000000000..860c736e5b2dfe0e137afd9e5a26dfa69ce81683 GIT binary patch literal 796 zcmaKoO=uHQ5Xb*ZDSklj#knlVEA=3xn^n=EHC9WiDXF$tZGtv6A8xzdY?IwKn=d>G zf(RlWJa`ZULGapZuU@@+_3Bjw4?gF;-ISI}A3O7YGxMJ}!=5p&VFDv~gJ(uL2yEN3 z&rkJ&AWCSd>Q;luubL`09nY*dE#ECiW-aud1Wv;<>&-^!n{$AHBj-rUSb&t{tQ)~7 zPGB5_vpiq&IfpB_%9Pd74EtHOIplR*z#{HzdZ@jWB|OF&a}`dK3DHhS%C4s8c)|Be zw!dlwpI7^e*GzBm4)6CfL)C{Q^D((U9ZLcZ|2($q7k=Xp za)y+5*#39s4Jz<28Uq!DBm5~*$q3&Pl_qGGb2%znw?Q2c`@@PH=!R0@BxnYd1ucN) zL6a#^T7S!+zWz#_W$gnR&-iSLxsC+_t+LeH-`gm zsU6ggEQo>U#h_NvrRzh;4}sg`5^otp7N%v!4-uT7RkXv4;}7S9&tL!P|K)kZd+z$cH2**+rrOlWAw`Rb?xJiXGS}58GYst1 zQR3I>q(SUKcc9x;+kKMt^b3BQvG>py&_`I=HI-U0*P&xN<7484IHj>k>=UEKN6Rv6EFGlP%}oO{ka_r7=UTlSK;jPn@4W4spi zC~_QiwI4;X;l-xkjN-6a&{+i#$Ul)wF^?pB$Pr>3Q6SO3dfw2Lzg(}We;R%23&RU=(1R90h(#tlOA z1Tju1M`vS@^Q1Y*p(6Q8z);e`D2HlD9}F_m5^`C3qooyNd$y~bF60vAEKbu>+=3^{ zytRCjSRg9IB2gu{ZTU9)I9zX{9M`7gLSq;_OT%ofS2AKQ7kUZfT+anBO`X|X==)5M zex4B=nhHKsFFoROqFan1ujQ2nWCGwGl literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5410 b/usr/share/terminfo/t/tty5410 new file mode 100644 index 0000000000000000000000000000000000000000..41072d6638c22ee6d9ecf136ac75c49919eaead2 GIT binary patch literal 1136 zcmaJz;E)(7?rwM6;zkkiP(MidC}5}u2n7ms+ikm0N(&x1 za3IlxCLBC?@Mw$&6Muj|#b01zVoW@Y&&+m_4T+OHAMg9@On2Vx4R)Uf=_Axg$$GYv?Pr%C=W+>PdZPwb9(DRdtJqQMjbCu!vf{1pO(x zMAu35maGzh5Cpvdy+$`lSNSb+XcX?As>W!79>Y!2w5sQ5fnF%L0xkm{HK+yc(t+v= zaY#qX9n&l52~cJgCWH?(0J&N{6`}+8k{z-mcFbP0H|zxUJC(j?AC!JnEX3!Yh9{io zFaOEEp2@x|{{#G!{bIk_A5}k3EGEvMDMU5#DRGhdNGtLU?wh>ia^K>m1{yi7_yqD4 zkQ&Q#XgmaR7_(NK04!Vf#(^ndlKR1p2eRCZ5=mJ}s#IiqG=PSuNE*_zkg-%nyKTUj zu92$iy1r(DqNU}huKdlv0QId)!Gg{G(5<8a6;yt6pi6sTCn2wTkESbYC zq9hYb=5fg=$;OfeT<8JtOpVNvBgF*sm{xuom;q*i0x$>619FR;>Lb9iT~m5F>v8J4 z0{Qp7D%`M2YEr6q=6B`SY?8JTPF2pWt%jT-oG^()3_d3J_zv%KKMe|8i@UOE!P=p< zVV%&X%Mza|N+uJ)kt=8^tyS=y9>2$mM`v(W7*EWp0 Le8sy-Gu@=W+ZBO` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5410-w b/usr/share/terminfo/t/tty5410-w new file mode 100644 index 0000000000000000000000000000000000000000..78d1777faa19ec7061c6003ddfc560cf29e7f831 GIT binary patch literal 1152 zcmaJYF!2ZYQ~U)cCdS0Yc;1^CWJ2Og&OPUzGw*fYonB*4XqYb3Tl$t* z_B_kfwPdFcWdjA}dVb zzoZLvmHcptE&=#HfzN@j&~;K}euFF;hq@!X98J;#s41F}{X8wwbE#HPD}X~y>VW&S zFMZ!XphKyS=oR=FsIV&YeHUl~Vs%3H{T|c{cEAqV5qr(vuw(S^Wcr?cko-|r-~SwP zaKhR8&k|?P^!-}mQ{p@gkW%6s+|_y6=B~lZO&EEl z^bqt25FE?%Fzx|)j9Dp70){EP31AwSqCr&4K{4!%BvG=W$W|89p&=NKEJBcy1?5r| z<)#Lq+ghrjs_L4K5-p`LEe;J6BeKCtVMZyXq9hedW|fi|C1xy{!+S=F6-$arDIF#0 zSTc`WL`f!=EZ~w+l8q&cxX@kTu^gEpMv4g*Fs;H2Fbm89MPMFS0K^tC)%$>9+PctU z))O>v3H0xKRk>!A<)ox{>UYK0Y>~1OOjXRSD~FsRoG^t$G@cWCT#NU)n?~_$gWJM1 zAk9FUkX9g5;^~t|Gl7{wp5?Y9wvBUdkgpDLn=X=)!HZk?OX<9)@9_~{&eO=q=x8!I zHl}GyOUuh^YwPQk%I4Fn%uySux+UcbM$x4(aK PZB1*4SG=9n(=GZ7iid`2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5410v1 b/usr/share/terminfo/t/tty5410v1 new file mode 100644 index 0000000000000000000000000000000000000000..d7d7336bc66004b8cb23a52c0f0ee0922c1c0dc0 GIT binary patch literal 1129 zcmaJk+zFbXlUA|Z6=u{)1+x0 zF1qNVpbLdAT)1%QLP78!_*47^f*^w9xpy+sq2Pt{o%5YDb2In5xyj~foUYSb`j#mA zzGdoKOYcFMq4NFC(3>sXDX7A|Ck!>KshhRRfm>~=Nwu}rXztdks!qfxT!LBHFj}N5 zbc2H75?ula0s>zGkJBwuWqzA1nudBHyBV6J$50EjB>Pobr{_{_qLu-d8q@~&XdwL{ zIHnV+PU#i+3@Eb-3jz;l0AjU=90Xmcm+Y9Guv7M$yT;$l(qb z>zDuJU(aRVrT&5Xll@}9*&o?Ei5H2Bdj>&0@i}psMo4k^F86d^vbksQQUgX#ah`yl z0)k_C4#p!OhcPS89AKEjn*|nu1sX-QTol93ND?J0ifm;uT^fVo$|3|QSAQKF^f7saN-#E5LLl3!AsRFtG*$+F^@QDVlD6?|uuSh1v_IO!-!$C6c? zB1$r`WDSRml58wl$AKOK&*aDqF;Yx0k7?zXfMs9>C;+R#8X#T~Q=JD4)7FI+v!11q zYanr7dU#Sn=D`-jn9aeJd5|ZmqzhzgWJM1 zAk9#kkX9&D;^}{nW$;o7L zYD&{KHj2gV?VX)+d2erjzfy7CYPDALyn4OSXf}QS;GorNw+|0Houi{}x7X|U2ZQ0s QOSY!f#V6iR>ggu^1)@=eBLDyZ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5410v1-w b/usr/share/terminfo/t/tty5410v1-w new file mode 100644 index 0000000000000000000000000000000000000000..96225b8ef915f6e68d3e5dae17cb826d57ba66dc GIT binary patch literal 1135 zcmaJJb3WvK|$~z_*47^f*^wHGqc&!rQpEx@xIUQWapjSWHU5M*XbR7PptXA zY3f>APj>q7R^)xZd*-K#cZ#Zb>Yiw+ddg7OYn7H;ZK_GNz0qiH*Q%;c#3)=sSy-@F zbcJqEFj%5W06{>|OVCleMXJnilSPwo4`h|2X?g-TOY^c`q7`~B-8#4oxYVEyv`>e! z9|T8qEZqschModtR$)Ql0S!Q`&On2p2ltX4v14|^-mtgq6!m+VeqbM^ev%vnp9dQ5 zaFM_MC;xUX`yu^L@Gth8{b7G)?Id0#F76ow^~9INWf~&I;oIEPdCBIU!AlJ^@{02m zG6M*W<#{w70eOsBai#&o6ul{64w$83u;qdbJ0nF;Yt#Qlq@8dDl2z2 z7~R%VbyZb2bx^dF!kpN2kQh-LsuboGClw{BShAovW|Ww*WD(yPB~~mcDo#2|(y?R- zr-+hFELp}Oqa+(kR&bz)z%w~ALyQy?EMQuNd0+up1d6~CundS-#8e*xhH2}&iK22%F4eAC2e4OPZcVySv$B zC&^~B3B^7HEVWpnP?0KDOVJl!eCfX+1yN8$p&$r8D!%#P_?E@IgJh&1R+ zy$si!rKjlydYuxpLPQcEdV-#W-%kfg(GeO#euT#99Q+i$K^1CJOl!13S83ZkdyTHs zO~Y=}9lA^R=}Y>GzNQEC4Lvmacl0CuOpn0-puZ@g5s@VSB%`nqFb0f^b7BhqO(03$ zf_+=eiK=LbWw9zch_}Q$Vq07jH^fbGOMEEqh)<#36JLl2@DG7+#rNU|@ss#PJQBYm z=Jgx=@8VDKx3J_cxlbOHFG@!iByf61!N%Fk45BC4- zh*hz!n#{I!y;t#pb<4WFqxvK3W6LgGq^D>%*(J50nyxBq)$~+(8A5g*rfrvAg?kNP z&m|k~rW#b`(;V)6rVU{fXya)9lZqj@u6C;MFO$6ncQTb+md*m>vhH?lE4=S;t?ozlh&hI%78M@qE&qq;v2vw22v@ z49o&^0A@OYEln%{y!A1_?C}i9DY94KrU2e9CRLgQ&I4v#1x#?q*WCizFtJ~?XB#m^ zE=3+iS&Dp$0*Z1Jg%ss!_p^9|nHKkF$atUdi5cZYpS;p1+>%M5uas~{Mv3}_`!b5= zds9=6S6<3wGLg|h`irwI)D}JLyi_b0>%-0<%3{2pcGlC=;YWLS43i59&2zVoDsrY7 zsIF?}U}Ehl&7ueDr_=`xQkv!J$E9H^hRElYuJdDg726k5xuD`bYIZSTjHKy8gg^PZjOg?kw+5pO)rMHP^j*bjsHxC%(4Cp D!NHCU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5420+nl b/usr/share/terminfo/t/tty5420+nl new file mode 100644 index 0000000000000000000000000000000000000000..b9a8de81d91b5e2ef564b80dcd47cf4ee40510f0 GIT binary patch literal 471 zcmb1Qj9>tPDGc5Wi6tc_CWfZkc{w#DC6%ToMg|}zP!z^YPt8j$%1l;p3{eYF04dc6 z$tWaeB<7{37AvIX7b)cBmq7TLdFcu{iAkwB#SH%k0r&@W!#@;A3r8_f;8z0%>1fpg yL)8>()dC~c9909O6l()(!$JiG1vjubkO2cA6~%D%24Hm{F)Lj|Gd)AIVg>*Y3{h|Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5420-nl b/usr/share/terminfo/t/tty5420-nl new file mode 100644 index 0000000000000000000000000000000000000000..d2713dab0c39706fe4d74cc25f7988b72c299f5f GIT binary patch literal 1380 zcmZ8gU5Fc16h3!GtUqkmN9%wD=`F}M>&#>(lXw?nYaN5`N~^n78z@biZGLu=%_fsg zHk)0!sE98+e&G``|fwn+89lXnVl~4lkFb&%Hsi+TAkJKAR6F%% zr=E$bm)D~{k)U({g-9neX&OP`EZs%-)3cQ55nyJ(i0+^}fyd}UlJqcT5nrMeItN^% z7pOs9ifKr@bd9d-Z{MW1=^f49rT6Ir`iMTJn{Tnj7q1}qHE~0{2mAzfQ+z5u z6Q7GO#aH5My-t#R1N>I}Abu9ViQmQF;y@fR?lX=VyvswzbH?q2+fgIkxkikWKGGg zD{DOnxjNj)syq#N2FA!KyUw0mkhQ0Hdia|WgwwDQuI7KC7=q&{y9IoLtRdi3Dmg5j zg{{z0c)tzjsz3ufuK`y8I}g;db{@xcz5OYkp?OGcc3#A6Y9+sMe95)#$E-@pN1y<` zl#7lpInX#~9;GQ)<&>xL5xA?IoN_$n+L)E{su-wZk!jGt(oG8;aUJEfZtz09Vr5w$ z*yaADCrSI@a?{E%eTHR_Gh___YcM_zI#F4LJrC3ED567$R(FcnM$f&Lwcd#-bSQKw z%u(o3=u?=dFrctNbN65c-3{Jfla(3a8_~++GxFq&a7j9Zx>CXwX(gNyu1hP5-$f*C zx2A06Y-KW;Q0pMG!5Mwzm)s`%qV^vA70hyIp{wkj^al9T={u^C6%Y=<72C4Jk*+T% zvYUsCl`9pCE~uAM57bX-j|*X#G=cre)B9u7yN yot^P`cXu+`+uPs2-6>mlh--c{>*N=mJU8V6wqE6i^$Y6S5bY?xEnA;)KCOrZ^o#UwrXp|AGueK@o+)K=4uVZ7S7N4(YL(Lo+E(Im${Z=cMLWs;#5VHj$uY zzzdN~hSDIyIVb5!IzVqz-;5A52@pL-kHbGt2T9RkN+Ui_Q*;V`mfoc@H7KTa+N2A# zW7b}zOLW<=t8|U7(@pxGexM)e7X3uGjs6S$PJhxJ@PFxl>eIO3Pfox_z$7pwPKjCg z_ke!?eb{qiQB*`-G(}r$o=x5d`UVoFF7_L>oS&I!#^^WuA-BP2f^af9NujxRT06Msuhe9y~*VRr1{x!1K;f^Je%hE|;iuS<d3{K@Bojhi3E_&25)BF0 zWfaZtrm7sTw3ePgZ6sb*+_1Omk!<-Iu{a(=V~2Q z;7B7-J=Ms<#M)DuMGw?Zs1F(>G{e~sQo}?H5zi@I<7GJ&+ouybui|}bVMJ-NCut8p zih2T^2!-U#W1pna(IZFF>9H}#IeT_)ZgFvGsa&p9&Y!PVYqffPWu?(rU2Qg7tvFs= zYq!_eJDrVq9^RqKO zKRY|Sh!LYvFW&UvMG!%RKu}NwK@bG-pcg?89=v)GRK&}+->aSpi#5FWef7Q9Rj*#v z+$Ub5<8(KDNU!VVIQBfp&-8|wb~KIS9p7{9*$lBmvy&UgH%!ibm_@T!9aek&syS>_ zsvUFGi0hp}Y+kOH+qFi!W=7>p)u>M-C>=l{(#c$!ML6dS-9h)#GnA+iV5Y%{Zll|Q z$LM~t=po7=zC!DC7Pv{zQ=PgL(};HIDqU0GzDaM>JBqza@6!kL5q(TI=u`TFzN7Dz z{v-WFztFGXf6$+l(2C$KPr-+XD>i{I!jj}b*#U6=OOgxXlBkI-(Gfi{6ce#8 zUP10_;<|Vb_zCQWxG6pppNlWWSK@26PLg~B{8s!Reipxp-^JhJKpfHT(T-`n%LCf8 z+6&qR#VgA9w1M`jc1?RjdrSKZ%0Jq_O6TmuV?kfjYdR}i`nJL(8R-*!Z^k+DvVK)J zO6TbaEs#;N8dle_D$?q@R;33aTZ0=LrKbQ-!x%Yb*V(g{tjd!-J^alW!YSAoSM$G6 z48d`v-2^^P#t3jSl^mANz}D#~yx)RzWuSnaSBJ}kodYUaIgewi-u?_v(;}o6J1=53 zv!Wk8xZ>LOqeiLdW3fE+ViuYMjdK=JnsjAWdNLP*yVA)@$CIv&SurOIfh-i526Zgm zFwha#kxuhEFT^XB*3^Mr?oWD>v=1&fZ55`@um*CPi~(R1#>YV?N*l1}V5%Jjbm-9P zP66Afxz{wR?U+J`LYKlUg&u`Ig*gfX3iGsZ7gkW+;QbX@pA)_jr93t#Ps|CIq(Z1G zC0vnG!a3o(lp^_EM3(JVq%ECo(=ZQ~J^;4SV>|3cpDh7z>E!pDF@>Xn|OXY$U zAGNBBmLy}9?!>03$H%EqNM1eYRa#m)aUzphUbgLv7t7@`ivF*#xmdz*5Bug^E;ZwUqkOm%j90Ci?*-{rH;&f>U%6n=`t0b`p{W$dUu7ZXWmIZ*soEqGlni(w zlF2~oM-cdgcGC-#rJflxm{|bPQ}i_ai*%4A9i}wmqclM$;iu_+DpP}EYS9Lrr){(L z0$rp_hFzhnbe(R}4|JRE&|SJm_l^D&J)qy{A^6|)h*I>5ikx+h?8O({xs0* zeE|ERm=_gM7b{{-bTHo%AB$~qL3}PQiOb?EaaCM{dPCe2cj4~?KZ>8lFXC76yLc%6 zz?{dQ@PCPa#A9Jw&sztqgVrmSYvnDDjahXowmOD?Wb9|w7uL7db?bZUrnS%R_4eBb zVE;c3+hzN_iEP^!`x#%_m+dP%vcI;!v7O=>+C_WFDau9J@MKBLhLWWf2$=<#wo`lu z?p=UAr)+qea#)t$=IPEgZ3tsP8&~t6Pz=HIv|E9HlbjaZ(M0lCIsr`3Uf7@pqjYE- z8@~*b13Lw8WMh1enR=Uje~gA8)!6t|W_=Wb^2?*jbzgUig#dvZ^g;%j2aR)vP?}ac zqkWyNf-CK1wC8K(VphoNe5mtzrePUdFFNRm^0Zg^lsDoXi^t7@7567ONzw;}rcKTQ zC14Ji2hh_=9BFb9;G>TN=8VTdj*+tpHx2M{(W&AT@E%~=l}876eBH~V3^VsD&RjjF z$fHP6l%dF{D4-}yQAkma_B@LnOt-i`Lna1PiS#WRz$?xGtk; zem7O=s?u^Qm5Pi8G8i0fBDbJ$@?s%xtPeYjSqAM@+Feg>hnM!>7&;dcisx!wS>Q+` zkX_lx!o*rh&7uPJ6Y7Ho3C(c!lhiN~L&S4Z*LYb@#?Glk&dYeOoEwswoN;;vA4NR@ zPJ}{o=CO~{@bHl%>Ga5m>z+M3Gc!NGuuv{nD(B8stF>CazO>Y6EHAIDG@Eg}y1KU3 zYPH+z>z&TVMz_1UxwZAAORmOmnQMM6?PW*2EH~v0wViC%Jx2QPvMA_T;MA_#&I5D$70^x(m(2SG)=Z2P_HnYdWPd*4^zdtLSF zRm~&f937{J=tFu-FUPUxIeuo4X+`5W-u6A$PA7=`H#xa-e8uF%Cs{L{tZS~dqn0~NRBAj!T?x&-aqeP7|W*Us>J~{+EMvsz3 zPf!N&1zM&vz*Ra&HR@1I1KOc0bWMGGgWjc^iru33=>z(RKBn9B8GS+D(sxS#fqtZ) z=@;}xbBe5smK<=C3 zx_A%x3GBA`RNN7ti!a4j;%l`|l6(WaE4~*$iC@KU;xDl;4r>o<$28vMG3{mTRqcY} z73I5HU%RSZ)85wJ(f)+;xAu?HIs4$4(U;f6-(1;C3iMo!srcC9(9@;pxuelvt{3O2;m{4W$ka2#nj zfX|XK0Gv!EhozTb%X9?ZZ^F4UP{7Ws!R5iu0+p(zP)w=42s|g#y!{hNbHUI^sIg zXh~} z8pe7nrqH3#r7%mON1;z)j>3S#Jk30a6;wBPe?^w3gl|MC&rHd4Q^F;w5b8<^SEQ71 zO1LhiNPZWQWxEw=OJ~zG%~0te)4>@%Es<%$Os4r z;EHXl$dQh3jjc`&E|#t(S#&|YlzO0kO0%4OFEvQT0P(yfoBUbcijA|WT(IIJ*7~d^ z$ylTZuqo>CaViv&R}XrT=H^bE$Ykc{ZTsTIa{2P*YPD8tG&VM(sM&0_+U-tfbF5(TXl$Qek$YS=A9fj(JpIow_*d*b+fzKG|6U@ zyGb^iUBn6tmMT^#RHTZnrRa+v*$G zBq$m1LL|XR8fK7qmma1kDN6%077$5*=mB~V{wX>{ijGnm`AM3g)9~~3I+dwGF?DE* zF3_%7dyy{DWy7x0HM&l>=qvh~Zqpt5hVB~uJNl7+rhDLj&|fs5Nx`3-f{lP_U`Cu4 z^YCu~gTb4yZ;5455p~fNZP7!#Bi<3a;-dIKTozZv$Ksm!9O_N+rMLrs7x-3uFMbd| ziC@G$@hf5;zrp`5{uF-;OFk|S%0u!Q>Bzj~+?1@#SoREm+t~Nzhw?LdU49{N$phA4 z@Pu^`_W$FkRkkje%&v85IO8Mhigk6*>`$yuExUM@9-@6@7uBk2xT>U8!&9Xugv<&| z*Dk&c_X@zCr);^~YFw3G;&AVpE`%wdi>vuhDu&>?+Nr?5Kz0Z2L?XE?y$a0Ge%PP} zU^GQSjN_?Hagql0_C?&eX3 ziT#SbRF5fgDe@@FP~=k-P?V)8q$o%G9>or(TU?(ZGb6$`W|ZegM^R6J6QPitdF<0PK7Q<2Iz2JrIOonSEG#dttdz@@%K7uvYOPkUudOv2>+8*C zs};u^8|`+d)9r3<_Ig`e{r>j$&d&WVIU2upuKC%to1Jj8+?2E2l8~QLA;jCo>^|A} J&-BP#>pwU=l+FME literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5420-w-rv-n b/usr/share/terminfo/t/tty5420-w-rv-n new file mode 100644 index 0000000000000000000000000000000000000000..3d13a44cf410a9c49ab6d579c0e733e4670c3091 GIT binary patch literal 1410 zcmZ8gO^6&t6n@n$#veB8(byo3qyw^zzStZq>`}TBBVvqw@4xkX}WG>AjoO7M-qWdXFi5g|hG#Jqx zbSLlxJxCTkOc}&iXr0ajH|YhcQo+8|vFP=q-9%v3KY_dY?X|kLVVCN?*`- z^u5x5q@U;)`W5^S`jZk`5xnJD_z<=VTNmfWCh#R#k{l{K1kQg+a!FhfHL)!^q9=x8 zA`ZkW$bD7Z6z>8*hTRgMh|k35;!E+B_*$)#B;NqP6+eid#c$$w@wYe>$F%#j6B_UG zkoKJRqIOB~it;^epk3E)Xs>H;YJWlbNBdXloPBgG=xcgSXJuR8QJ5qneWLHrI7eRA zujxkVA|0azGD=p%>N-|MT3y$w^dMwwaATwNG~gK+Bd6>+`___Gd5Wh;zZpX~3mfBV z{uhcNIF7WNz$eHU0nVh7!_u>`bvh33x8PhEC}8K+;qqV?fJ#=*4DymWN)<)=#cD&^TuirAb$2r6+R{xGSBkbUf+Wm=$xf5XeG- zX;8<~4Fer<9qBZ0@>x*Mj!b_x52)kya&I9Sr#pHrM;Wp z0Dn4rM-?&x!U4Eq+bVLT>swQ+n}ds`Ye^PeP%ot(sGrg-XWvc@QZYb0Z^;&ambYT# zLMj)m__$SFv?Lj;bT>9dJw8r_Lh|ZCuhP=e>C>6a^0IATzFaO}y;`f)>&@o&b`-T* z?RKZr?e6UKdi{PJ4+g{GXfz)0?oK9qd(-Lu{=vcRPT8tMT=SzDC%5e6xG5L8B>_K| RVu1IF>?s-eUrb0{?SHb^sQLf^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5425 b/usr/share/terminfo/t/tty5425 new file mode 100644 index 0000000000000000000000000000000000000000..ff371581cbba289cfe439f7d76f9cd9857328a7b GIT binary patch literal 1606 zcmdT@PiPcp6o220w2eiDg3xwAa`3Z;qMezY+1bq(T#Xu+Xk2Zgg$%)@*<_Rblk8^4 zB%9p?ksjJoiXcd#7caf^UJyzTdJ*iQhhBwRir0dN(&P5`-eyb4&7)uPd++yt@B91q z&4=nEI!f=-ka}RxB}o|gVJAsi;t>ZNpPM={HOTA}mWh=7vr!ntLtUeH=zY3MT^SJ~ z3m`f`Z^3^+$4Ju-BR!f|&X7!RiA%4=HwrA{F;l0`O_Trvs{|;|rTzSp+ z)a|x?$G&en@ie_nhscTbvaWl&Xms7z#We`25=`ES$Kfsm?0HJt+twfJ;w29EuF2Cu zNO`oU6MMdK%kbv`Kgh$L>!}{A*MJE+3>(&9d=rUd6D+}Gz;42eEGFQb+^@OoFVGQ4 zH8w$&*)DS7((w`BbR9FW1?OY3a z;+Ix)UB9Q&X_j|QM&kEZzePJe3D6C>m^+SGViMkmhAo}AUm zVZCrf8*=hAfb*o5yg@r7jhm<0*}1vJ#ZswUu2ibkT5V-zb+uk^G}hLd%_O;fdwqRl zV{^0B+S+QjJDu(Aot^)y;u`!l_@2Y3y!2@=%{7?j3Pjwwxd<(Ha?}}e3BQxmAtxbc mi}-g#*5l6z-wZyo;-{eL6<(ra<9dE72-8s}JA?k2rvCtAY>?vs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5425-nl b/usr/share/terminfo/t/tty5425-nl new file mode 100644 index 0000000000000000000000000000000000000000..86c8672065bb9f7fcc5cd537481f26f20d4e7a1a GIT binary patch literal 1634 zcmdT@O>7%g5T3VNQCgIi3sTEU$cMa&2&L?`Ma7E&RP^Dg|)C1yLsiIP^y;O*6-EW?46y?T|m(0vJ-@JMA z-gx#+F+p$8YcwRjGYfI-d#*oRjoNYC>_f0#j~$ymGn-)NT@EJFc4Dy>ZC0v{M75TP z3ZE@S4I-icSqUuSC9cq`bc#Ntj$Q#g1449!UV%MLZ;_-S8b*ACrYR3Q1Gz@?RG<>A zQG>R1Zj1Kl3yr>}n{+NPY5wr3e;a4aF_YN| z^OCk7nID^>`H9Be-37CFz&m`x|IuIlkMF6PO>^J8ZCc?R9i;)XLb)pIjw~u!cV%${ zM6v{xv%)EuOAxlarRD6&cVzK>b`R#{=s2hx#?uNNSJ`FQ3lP`KL63D=huJHTX*vPz zSD;)KXv4}|fl32iht;%J9>?_k8a;cFPJ*hi@*+k($@(jUBd%?aT4B~lAWhZ?U@{sU zalq;v+)ueGsXUd6^j)2#ay;eQ@UkhD2~;M-Fj&FitJV&#=qsoE4U+Yl;br~EDfr!| zSm8LZi!S9CAw|d%WEp}c=JBTdDumz8z0i-m3~&*`Et-YQK)6Y+gVr6W2;b@YUfEiz z#x!soyL2zOxCYaGz}L{s`97HF1Fok-TvP+Dtifa-aDB}vo`Oi)ZgD-4NK7*46oLAS z!wqcCx_DQZ&1mgGFTzWrcliCAy7~IN-pHUY0S^gZ*OpmX_hmgL+cH+JRP4KeUKe_R zeitUWe7nCj=#l~AX{jolmX@(~y-R0gd_pdrl!~kz9Ya0cNj{*J)?=Hag@r<4dAU?7 zm)F*!s8Xp`YqffPeSKr2(TL;C&8@BN?VX)wb9cAZYPa|H_V@qoimmXs&i6bw?4-^* zDel1>cOc-o%?22_x5up^n=B-?$%@I^CH<>m&iEt37lTi%coi^JOF2`cdmY(?j}|egl6@Pv~!YSMZiDYyjkdS#eU# z!54wiXdd>8xGrvrMNt+NQAOMk9kC^Lbbd4%ireBd@H^tJcrey@=E3JXr)l=hq4|YrMGJI@j*u0}s%$$lRH4~3KSxuL8f?5evoQ+(+MBbkZGUJ*1s{nV^gz$fQU=p$YNnFF{%*MO@4x5#zSxP3b!cGB3ZS(RpD4e7{X zjMKf~?KPR75H3V3Cnx0Wgz%0!#oKDaduwuTLbw90D82=CX}fVJlgXT8&56M#52w2r zTySx+sF2szgIz|HMfdRj`)Tue?)b`}Ga+9RF4vX?+4f~SkOP@0S1OKOP%ot(sGrg- zFEN-54O1~hJ||U!r{!c~-ALuUOpeORlvHFD>1FJvd#P*4>1$i0rKNItWo31>R$E`M z*Bgyyv(;+1JDrVV~+Rzatz|rcKr{mENC@xG&MZRL^lC{>t=T|2w1g z4b^XPM|zJ3JWBVInRzx|>lZ_>a*l~PsN;P8cbq4L*xCR5Dvk$Ck4kzD5s0<{Eq ghh%mWs3zbgAa8Ej!70DJ3)O%sK;@~-LmtNQ4ZnvDzyJUM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5620-1 b/usr/share/terminfo/t/tty5620-1 new file mode 100644 index 0000000000000000000000000000000000000000..7212c7a1b666f7d0f6b6d5c396b8f336e7bdf65f GIT binary patch literal 547 zcmb7=%}c{T5XE0q@QdO>yttPfj0aIjg0+Qus9Gf0mWmB1$@k8uoVKPYcC{1j0 zX+QP#o&7k7?Tb!(2w0dp))kg;id@b-GcYIB0#>mmY8_kHrrMEem(eBrs7gI{{x=?? zPIrS$zTKR;ts~toE+t?ojv$kaW{VlI3%Y_h;-%jPel8K!9IciW<*lG%MUEA? zWULZg`g?{~BdicM2@QhN$*9CisKCnpO;xh$vccgC=|aO>;~Be>=OgLr5mIuUFNkPl jf_I3sor!uTnwgL{x2@oa-+lsPA4VBQiOM|G#4vsU-!cty literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tty5620-34 b/usr/share/terminfo/t/tty5620-34 new file mode 100644 index 0000000000000000000000000000000000000000..a23f838bcbf8b9a616639034de08fedbf0fffe67 GIT binary patch literal 632 zcmaJ-Jxjw-6g^eJFT}ykEJ2JosHACaiv_9HA!rMt1%gwvR5Cp-&LHq;Hdv9K#Iv61G#T?}CgN&$VuN)2EX-{GG40grf+?q@yoqN7r;TD?(x#|J)j{)It|!SGzeTc@x=;Al0iC~E~}D{`#B zC1aJ~(%&<@Dq)4NNvIQ?c1lH7LU~s9Z>o@0lMN1ENERC28qe6}EFVc$kC2kV~+Rzatz|rcKr{mENC@xG&MZRL^lC{>t=T|2w1g z4b^XPM|zJ3JWBVInRzx|>lZ_>a*l~PsN;P8cbq4L*xCR5Dvk$Ck4kzD5s0<{Eq ghh%mWs3zbgAa8Ej!70DJ3)O%sK;@~-LmtNQ4ZnvDzyJUM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi803 b/usr/share/terminfo/t/tvi803 new file mode 100644 index 0000000000000000000000000000000000000000..e170ba31b83718fd1028be815d29e1c7ed9be070 GIT binary patch literal 984 zcmbu8&rcIU6vw}#m|9?ws5A}Fkj8W^sRwu40wvZembSEt2=RAfLSZYkR0UF@8V~!g znV1+86BA=%^x(mR2M-=Rc<|uz-P!eo7s6&g?|tXZk2h~7Gpa^#4#)5rCDq+&<*n?? zTg^`MPRnUNO|S(h{Rc*|!7s2{21el~jw24w^Sh36JQfQbuYx>-p&tr;5IwjZR;Tu@5L0o+gp8@gzFt3v$!OufJqO>x zVP{-cQbPm=BnwF=3$|5+bRo|nm&{GuOeIq0d2`j=%>0wQ*fC!BAO;|JAxn@odBpii z$QGoU3&}%FliGr82hNu($wJ1mE)>P_Q_fbTBo4=LiEUYsl#GihyK+yOi4#%jh-FWT zW#y!2xvunV-(*}jD!r^PbB3!kFG9-Pk)*>7#li~I6$7e9X2?}iBD17SDx^y043;C| z61u1cWSK=u8)74>%R_r^quQxFEn|lBN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi9065 b/usr/share/terminfo/t/tvi9065 new file mode 100644 index 0000000000000000000000000000000000000000..b9be389395d65756bd051fa3338245a04e6e61e7 GIT binary patch literal 1538 zcmb7DOKh7(5dPK+YSYH$Mjs=P1^JswwDJBAzhozM8#hiuP$L@kfeTI?yR};>`1kT*SEz>B<77{W7Q zg2uDh#gz#!AQoo4j2tGAM}c=!n8h3xa29XiO)RqK5*k>+I<8?8TeyMuaT6cnV|hZ6=&=9ajzGsw92WxDyV5Sr{>jyI7fZE%l@NUENcN?27D(L?aaOBfm!O zN9^e#y;twk@9JLf1AS9}!glBSTz{v3(ZA_C`mX+?AOB1L{e;Y&C;#vM-hbA-um90B z!-PdaC8y!ET&J3KTAovFgM1tUEr2e7#w9Wu8+BfBmL=SWc%Ip(F~bu;V?Ktth?mH^ z)7Z;<4|ERnI;iX$Et$3%t)UL(5OO;No8}D?h%WZD!6h?CXgk1C--&*CPP%|tiSWdD`vJ_ZO zu}rZPS*D}m+Zg7r5#2Mm)cgRvHUK9FfbVNBer5o;JL@S7z~lfhFE(@nv=y>rLUw$i zr*rUer}reMJ8+gv)-*s%pvAB#vtN;l%b-arOp(MlsFcpStjCjyCbLmtE=<-FzZ--B zKTJx6dfau#>YVF(*7(*0)`VnuMiP=HB*qn-5$J{v&lT+XqFI##L*;~_Rk}{K7;T#E zZQ682d7^w#0V^IPu8^tAuw=-b-j+pXt#4;<2zWZj%+VE@CFi)@zRT0-WCeSI(-!-J z1B(N}p2Z2lEsK+ak6N4(>{^^=eAvPa!x5*(^X+88eGhTx;b-Kx!Y!m_sz=+Ve5HQ% za`VzkZMCu1TEE&^@2*^HZmeBj-Q-5gA?wEB<=K2Siih1C`3wL6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi910 b/usr/share/terminfo/t/tvi910 new file mode 100644 index 0000000000000000000000000000000000000000..e73820f92e1f4a5b7cadc6107fc1a05ebf62b106 GIT binary patch literal 544 zcmbV|KTE?v7{;GNq_#G=N)IJV?BI}AMCwqqR*l6$!J+zW1e?huWhmh z2qbJI`Kt@;V+ykf!=Ye;TSHn3X=E|Ocn&Kl(U+t88qZ1;4OQdz%|aCpb|b}})*awz zWTK%nm8kZ0e1QR@D_r9iceuv`9`S_dsQaQduiC$9KmLmU=I`A15%2tjtRV#hImkNX zG31HWEn0aqZ!KCa$Z{gHx=V2*!I(k!MSon=jlz7S(y`dvFXYxX=_HBSRi*@1Ff jJ;kvMM9qL$Cl#_ms$`RFk!|9T9Ru^fmoySj;d~lDKlt|$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi910+ b/usr/share/terminfo/t/tvi910+ new file mode 100644 index 0000000000000000000000000000000000000000..06ee14f8d7e42bd9d5354ff6653d1cde1ab05495 GIT binary patch literal 566 zcmbV|ze_?<6vsc02!EtB7G4U6UP2B}Gs?oGGE=t=X}rk-g7TEqKz@lFc#jy zBxnqTNBs3QHt{n~x7#xe$;PgPj{qS?rJi7(wB#kHpCL<5syszU_q^UHvrW~R)m%p% z)8n-`<6JtI1KlgPzUD@%Tkg2$fk&Qr=7m>h`sRAx-TdKZ@BRN*pR(_(zw;Ya!bg}0 zs)DMbYI-ZF$D%Pkt~XH214?hr_6I>G>fk(>u F0Ke5O^X>ou literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912 b/usr/share/terminfo/t/tvi912 new file mode 100644 index 0000000000000000000000000000000000000000..28f0807c2719101d9b5935ea675fa80b0d5c11ee GIT binary patch literal 565 zcmbu6!Ak-`6vn@eA~U6H_#iyEXd2D#st3WAEY0dvVRcq_A~@rU zBBy6W&d{QXcFURv6b!5(^H-N;WeWk!!t)dc7~?pONlYQc%JXKBK$6vhbc-A{#z0p3 z?}^c6qA=7eqKwUf$}Wy^!oD|9>-+i~7pyLEjT_wJ4)=J#Bc5dU*`Imw^Q)gn@Bfc~ zlV`qj{NOhTgVKnADxfpalG@SLcr>o2)VkU+ek6jJ;};BJ8nh4EiRIJjqzP(*TA)MF z5vUf+XEkAx1<`ACgmX~s+QO~Y9NQI+Yt_3hXd6`W_XhY(Wg`q_nJF+U%qml4O3WHl OX4b>McLzZ_f7%z+^7(B5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b b/usr/share/terminfo/t/tvi912b new file mode 100644 index 0000000000000000000000000000000000000000..785bdd2193251ed78e0e1eebd2b9fb34d00d06a4 GIT binary patch literal 972 zcmdT?%SyvQ6g^SF`do^1K!SE?YbmuYU5K%2eSj`RrPPfeeT+2ts?De<1%JS$UmzkP zA_%VC`4NJME5ViE55$`^ZPP{FxN?}>d(OG{p3J~_l_iAGj-c`ld8Cg=W4TH-=PPNk zBQknH?5pX_Vwg%Pb-!H0vudE2-PsE3ds6Hfx;#;{QkM1Hp%g(V3S6s+G;~{5umTST zVVXc2#SV0$9|MF;a|9Zagr;qlqBuw20+wxVbyU|zoo_lQ=VVc@m}Zf%fpc8Av`fNQ zE?#qN=5#&j!mj|XyiY;t)b_KX*buT6R@k5>BIpQc;6{vZ7vANa%< zy`w&`IJ`bBF_r{N`?P3+@`+E2jV6g$;v_FcxnK435YO{ctOn7IA$pa)=mA^zX>qG{ zjYg_-77N-t07mfT~n%3=M#)ycqy~5`BpP literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b+dim b/usr/share/terminfo/t/tvi912b+dim new file mode 100644 index 0000000000000000000000000000000000000000..19249cc0851316ddda84606dc7472a75e7eb612a GIT binary patch literal 418 zcmb1QjA!6yU|?urP+%x2%d|8!O43fr%&iGY%}EW*Oi9gG2nqAl1qwUqgBeB!P6~;6 zDKJrIn5eTtMq*ByZf0IdYF=?>Nu@$!Nl8&=QfW!5LUCz9L4HvQ&=O?8_@4s6zyQEdOvT`)c^ITM!AOHa8i-WwRSOJN3rtmOR7*5fQ#Dkr835U)B8&h4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b+mc b/usr/share/terminfo/t/tvi912b+mc new file mode 100644 index 0000000000000000000000000000000000000000..4db7177801115bfb3b041c3d6ada860536c955a1 GIT binary patch literal 507 zcmc(XK}*9x5QSe6F$i7+FV1Bz11VCpQ4z^OXiwftk1c6B$~LOIvWGx(!m4!J}As7aqR=M-l+@0u?9J_GLQkiP%_ z6N46@p#d#Hn}*uuKrs~&`G~e1f;@g1l|zhNa;2*Cniu#fRqu Q>yo8yxMN+gY&qo=KN!6>!TpE|wXXoWe^%a7_7)`clSZn z9~eD|eKVAT6Wr#e?Nj>pb5`>ui(miR zGd>IxGgdbB=elq)oyhxHcK1a7R|I~eS-T$TYtT-(!1O;>a(mp8cSu`$x%N? zkH#_;5I^NimfEy>Sz1nQE4kF7Hs}d$P>C*bw)V^qYw@-l>6&r7u{O2X^t{M`?qssp sCuLtwe%JS z(2d~UKj21i@7}-R(qAAVA|g26nM~RQLGekVn#}gK?d`Or-`LX9)vnju zlb#Ydwjshgh#qhj6aX@C^vb& z#MQ5f=35fK|FLIs!tdA*{NxEjjMrwFofDe<_C$VMa~$0Mr|#q2@PBK%q9-1TXJQ&> zKqbtjt@2_8R7+dMGRM8NWn8W>iIU68FRF~ps0C#!-xxv6V4nZX)0hR_Pg|u(dXHO% zeG%IPRfm%)OPv(CDcT*~l#`%3s13?Ru8Si{vJF*fd5Klr3UYZ=w9aCMs-VZTMj5(D zSrnc+exbkJ=;=bxX!dnb=m#yk7l7_2E8Q4hX@7j_HP9*!_rgr_xoRc)UcamcD#$6F zRi;c)k}O5Zw$dGC4s(VIx=Onvx}<`-(vkRz3O1GARi-jQMV#Vy=GU|NwO5Y7FPeXS Aa{vGU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b-2p-p b/usr/share/terminfo/t/tvi912b-2p-p new file mode 100644 index 0000000000000000000000000000000000000000..ed9426f46cfd2bf22e8363a397c481e1c0ae68b2 GIT binary patch literal 1056 zcmd5)OKTHh6g^|5OsK57}!Pz69@v}2FIHi!Y$lp6a>?-P-V0d zu{DnO`F((`h=-0Kc$~tq634@?{yIT#Ilseu9Cs^0@PYBi6i-ix@u#TzIq`f+^4Gui z{5hpp`G)T};R!!_rkqCXjN{K9y|=eN`}I%V{pbJhj&oe#5(CB%#zAwK%v$rMDyW{d z%JZC$vR378l}RWro2qQ)M9!QwZBtdQAVx67f8`iPLAzONF0?-4mbfouwRkM$X)i_qE61hgp3xZwYno^Z&py#woIl4o66kj;1=s#_EvZxzPU+SW-Tehb`50h0J=~b`N cAF~Zw1+AdF6(h+dWeoGZe1*+d-@69C0oAs2G5`Po literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b-2p-unk b/usr/share/terminfo/t/tvi912b-2p-unk new file mode 100644 index 0000000000000000000000000000000000000000..8983b986c1d1e72ae068d019f3c52fc136fbae9c GIT binary patch literal 1049 zcmb1QY-7-7U}n%{WM(WW%d|8!O42nd&@Ii&u7PlqQMpMVDWDKs7Rn7t%}EW*Oi9gG z2nqAl1sda|kY5C2J1b}urzYp;r6?36rl%_8rsn1sRVw5clw{`TSu5n_DEFab#x26hHM1~DM(|9@o$8wNWd%K^-D0+KF3 z?8e{+=7UuH{~v?IhKNAOQn+{%l+_EQXE1DJ*a?^U|Nl6UeG-X}YyyOR8Z3Jjs^&bD zzKB;3rYYzmml>`BO}L3-%40C^6_9+3B95+?5dS?zx(S&+_~kz`d}sK@z`)4Pz{?ARVG&V`vJbD^+ZawCsQ!kf5zOK|n1KeITAU#8_z!>1+<^Tn_0%s5MYwZ)sa|1)wUBH3oLl-VD;^(vH&V z(n``A4Ej}>1^UGqiAAaUC5cJJsU`ZwB`L{8B@EJmP^(;#t*S?Mj3a}z0|VSj1}>;K S3>i3qo&|a#8R%tu1OouFzH|Km literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b-mc b/usr/share/terminfo/t/tvi912b-mc new file mode 100644 index 0000000000000000000000000000000000000000..2cf1c4cfd47142dd919ed82face50d8c15d5646c GIT binary patch literal 1061 zcmd5)TWb?h5dMxRjrH;ns0jU^mIQQc7HakN&h>@COPcmhKQ zo4TuaqJ7=-nmgB)C1KO+4X5~uSBTpWqR8OOm5*A%nB9R*3>f#2&>0 zPUDOqYcC)`UC>6tHpOm>nQO_6nheJ?|4uS z(2d~UKj21i@7}-R(qAAVA|g26nM~RQLGekVn#}gK?d`Or-`LX9)vnju zlb#Ydwjshgh#qhj6aX@C^vb& z#MQ5f=35fK|FLIs!tdA*{NxEjjMrwFofDe<_C$VMa~$0Mr|#q2@PBK%q9-1TXJQ&> zKqbtjt@2_8R7+dMGRM8NWn8W>iIU68FRF~ps0C#!-xxv6V4nZX)0hR_Pg|u(dXHO% zeG%IPRfm%)OPv(CDcT*~l#`%3s13?Ru8Si{vJF*fd5Klr3UYZ=w9aCMs-VZTMj5(D zSrnc+exbkJ=;=bxX!dnb=m#yk7l7_2E8Q4hX@7j_HP9*!_rgr_xoRc)UcamcD#$6F zRi;c)k}O5Zw$dGC4s(VIx=Onvx}<`-(vkRz3O1GARi-jQMV#Vy=GU|NwO5Y7FPeXS Aa{vGU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b-mc-vb b/usr/share/terminfo/t/tvi912b-mc-vb new file mode 100644 index 0000000000000000000000000000000000000000..ac7c624694730a08d4d1ba18814e7f4abcf8b584 GIT binary patch literal 1195 zcmd5)OKTHR6#lL##%RHXp!9%VLM}S2A zHQZuvJwy%Gw^{CBGsM2H+3vDDV|l^y3a{~ot?$3X`_O*CM|=uB-~Y_^3%=r8j04_x z_J2&_AU1n`hS^^+2O`QIi|s7;=;*jO$sLk2UCuEg(PKTBi66ad#B~3u`fqRh|M(BY zWAQ{h7t~1COU2?cH82ONU_M>17MDRy4p-Ukr|ad*%K?YMlIoXKMrPE4GE~1jc9FzI z{-S62Ytm-AUJ0o8xg@F!&=#l>b*3zJ6J#f7Fuo}#LEE4`P%cmw4k__8)S#tBW^pOV z=2nxD=^?FBhEkM8;gQ)dxVx>PE_kiBtG$Bjb&R10x)+bMHa*hQ>7iFa*D;w3$@sZy zC3tVYst%NwQ#z|^GC^^$5(M{@?y6c8D=W`Z+8)D2j!U}n%{yvk5gmT75dl%!iw17RftSs|%8sbQHZsrd>aVV=4`X(xsJA{g6Q zK_f3;A+e;SC^MODp&&6mRiU6LGp|IGfsv7cFaWDz3}E13kYM=#pMil1NU|`n zGw?Bp0a^e5D>K+I*a2A%V4f3@bOB;F20t(#q=FO>1Jsqy(7@1vq>Q|?c~E)*UOkwmpo%PFSjw;hXu@g~Q?`P6dw}GA6me9&gn0)k(oNX>!LH&k!%2oS z43~iEh?haym_bU##?-)$K{`am#?TZV8KlEiY>YulgMeBf`aryLX-8>wX(ee52K}nc0{!BQ#G+LFlEkFq)Dr#T zl9c445(eo&s7_a8o%P6O2QWxGGDtfxNN00M=W<9FN-=Oj9cIYD33NWtQOQ70*drJK DBG*}D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b-p-2p b/usr/share/terminfo/t/tvi912b-p-2p new file mode 100644 index 0000000000000000000000000000000000000000..ed9426f46cfd2bf22e8363a397c481e1c0ae68b2 GIT binary patch literal 1056 zcmd5)OKTHh6g^|5OsK57}!Pz69@v}2FIHi!Y$lp6a>?-P-V0d zu{DnO`F((`h=-0Kc$~tq634@?{yIT#Ilseu9Cs^0@PYBi6i-ix@u#TzIq`f+^4Gui z{5hpp`G)T};R!!_rkqCXjN{K9y|=eN`}I%V{pbJhj&oe#5(CB%#zAwK%v$rMDyW{d z%JZC$vR378l}RWro2qQ)M9!QwZBtdQAVx67f8`iPLAzONF0?-4mbfouwRkM$X)i_qE61hgp3xZwYno^Z&py#woIl4o66kj;1=s#_EvZxzPU+SW-Tehb`50h0J=~b`N cAF~Zw1+AdF6(h+dWeoGZe1*+d-@69C0oAs2G5`Po literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b-p-vb b/usr/share/terminfo/t/tvi912b-p-vb new file mode 100644 index 0000000000000000000000000000000000000000..4767ba0d7e18fd262dd81c80726b7e89012a0201 GIT binary patch literal 1079 zcmd5)O=}ZT6g`iE#M)AKN-yXmWJqca`6#7G(`Z|YltEf0wCl{|(GE>A)0t^j7csH3gk`2_CL%4>RXa{cxw5shS?2OJ>H3#=U6ul6yZw&z+Ivd&RL}K~r0Z$N z?aTbY2^_1dq@}vu{Icx3vaPl6SWmSImg5S~clvq`LSXzCdBiqyxQQ?Xu5p~kb=<&h zMqzjt8+gcQGh!ykNBnPLH{wG_7^)18l{mgk_16h{!{f%h94OpXLzK&;z`-EF@c%yp0~3&BVPI$AV-N$f{{L5I zuwk$RvK+uXCm`tp#BL0JU_M9%DIf-@E1jW%p#w?xG$4Bh5+BpNSzy^YP&MARVG&V`vJbD^+ZawCsQ!kf5zOK|n1KeIQ=Bw4=1Tw34(2gML+JfqrpDVo|DoNn%oQYKeYvNlJ2234?SXRHrMl o&U$3C9T}t@7^Jf~q;ol>3#Ayipsq4x-~_rI=%Qqx59|>P0FVS%pa1{> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b-unk-2p b/usr/share/terminfo/t/tvi912b-unk-2p new file mode 100644 index 0000000000000000000000000000000000000000..8983b986c1d1e72ae068d019f3c52fc136fbae9c GIT binary patch literal 1049 zcmb1QY-7-7U}n%{WM(WW%d|8!O42nd&@Ii&u7PlqQMpMVDWDKs7Rn7t%}EW*Oi9gG z2nqAl1sda|kY5C2J1b}urzYp;r6?36rl%_8rsn1sRVw5clw{`TSu5n_DEFab#x26hHM1~DM(|9@o$8wNWd%K^-D0+KF3 z?8e{+=7UuH{~v?IhKNAOQn+{%l+_EQXE1DJ*a?^U|Nl6UeG-X}YyyOR8Z3Jjs^&bD zzKB;3rYYzmml>`BO}L3-%40C^6_9+3B95+?5dS?zx(S&+_~kz`d}sK@z`)4Pz{?ARVG&V`vJbD^+ZawCsQ!kf5zOK|n1KeITAU#8_z!>1+<^Tn_0%s5MYwZ)sa|1)wUBH3oLl-VD;^(vH&V z(n``A4Ej}>1^UGqiAAaUC5cJJsU`ZwB`L{8B@EJmP^(;#t*S?Mj3a}z0|VSj1}>;K S3>i3qo&|a#8R%tu1OouFzH|Km literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912b-unk-vb b/usr/share/terminfo/t/tvi912b-unk-vb new file mode 100644 index 0000000000000000000000000000000000000000..b16cdb180b52e6ff0573d2e82eb2da5e31b44a0a GIT binary patch literal 1072 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 sCuLtwe%JS z(2d~UKj21i@7}-R(qAAVA|g26nM~RQLGekVn#}gK?d`Or-`LX9)vnju zlb#Ydwjshgh#qhj6aX@C^vb& z#MQ5f=35fK|FLIs!tdA*{NxEjjMrwFofDe<_C$VMa~$0Mr|#q2@PBK%q9-1TXJQ&> zKqbtjt@2_8R7+dMGRM8NWn8W>iIU68FRF~ps0C#!-xxv6V4nZX)0hR_Pg|u(dXHO% zeG%IPRfm%)OPv(CDcT*~l#`%3s13?Ru8Si{vJF*fd5Klr3UYZ=w9aCMs-VZTMj5(D zSrnc+exbkJ=;=bxX!dnb=m#yk7l7_2E8Q4hX@7j_HP9*!_rgr_xoRc)UcamcD#$6F zRi;c)k}O5Zw$dGC4s(VIx=Onvx}<`-(vkRz3O1GARi-jQMV#Vy=GU|NwO5Y7FPeXS Aa{vGU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912c-2p-p b/usr/share/terminfo/t/tvi912c-2p-p new file mode 100644 index 0000000000000000000000000000000000000000..ed9426f46cfd2bf22e8363a397c481e1c0ae68b2 GIT binary patch literal 1056 zcmd5)OKTHh6g^|5OsK57}!Pz69@v}2FIHi!Y$lp6a>?-P-V0d zu{DnO`F((`h=-0Kc$~tq634@?{yIT#Ilseu9Cs^0@PYBi6i-ix@u#TzIq`f+^4Gui z{5hpp`G)T};R!!_rkqCXjN{K9y|=eN`}I%V{pbJhj&oe#5(CB%#zAwK%v$rMDyW{d z%JZC$vR378l}RWro2qQ)M9!QwZBtdQAVx67f8`iPLAzONF0?-4mbfouwRkM$X)i_qE61hgp3xZwYno^Z&py#woIl4o66kj;1=s#_EvZxzPU+SW-Tehb`50h0J=~b`N cAF~Zw1+AdF6(h+dWeoGZe1*+d-@69C0oAs2G5`Po literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912c-2p-unk b/usr/share/terminfo/t/tvi912c-2p-unk new file mode 100644 index 0000000000000000000000000000000000000000..8983b986c1d1e72ae068d019f3c52fc136fbae9c GIT binary patch literal 1049 zcmb1QY-7-7U}n%{WM(WW%d|8!O42nd&@Ii&u7PlqQMpMVDWDKs7Rn7t%}EW*Oi9gG z2nqAl1sda|kY5C2J1b}urzYp;r6?36rl%_8rsn1sRVw5clw{`TSu5n_DEFab#x26hHM1~DM(|9@o$8wNWd%K^-D0+KF3 z?8e{+=7UuH{~v?IhKNAOQn+{%l+_EQXE1DJ*a?^U|Nl6UeG-X}YyyOR8Z3Jjs^&bD zzKB;3rYYzmml>`BO}L3-%40C^6_9+3B95+?5dS?zx(S&+_~kz`d}sK@z`)4Pz{?ARVG&V`vJbD^+ZawCsQ!kf5zOK|n1KeITAU#8_z!>1+<^Tn_0%s5MYwZ)sa|1)wUBH3oLl-VD;^(vH&V z(n``A4Ej}>1^UGqiAAaUC5cJJsU`ZwB`L{8B@EJmP^(;#t*S?Mj3a}z0|VSj1}>;K S3>i3qo&|a#8R%tu1OouFzH|Km literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912c-mc b/usr/share/terminfo/t/tvi912c-mc new file mode 100644 index 0000000000000000000000000000000000000000..2cf1c4cfd47142dd919ed82face50d8c15d5646c GIT binary patch literal 1061 zcmd5)TWb?h5dMxRjrH;ns0jU^mIQQc7HakN&h>@COPcmhKQ zo4TuaqJ7=-nmgB)C1KO+4X5~uSBTpWqR8OOm5*A%nB9R*3>f#2&>0 zPUDOqYcC)`UC>6tHpOm>nQO_6nheJ?|4uS z(2d~UKj21i@7}-R(qAAVA|g26nM~RQLGekVn#}gK?d`Or-`LX9)vnju zlb#Ydwjshgh#qhj6aX@C^vb& z#MQ5f=35fK|FLIs!tdA*{NxEjjMrwFofDe<_C$VMa~$0Mr|#q2@PBK%q9-1TXJQ&> zKqbtjt@2_8R7+dMGRM8NWn8W>iIU68FRF~ps0C#!-xxv6V4nZX)0hR_Pg|u(dXHO% zeG%IPRfm%)OPv(CDcT*~l#`%3s13?Ru8Si{vJF*fd5Klr3UYZ=w9aCMs-VZTMj5(D zSrnc+exbkJ=;=bxX!dnb=m#yk7l7_2E8Q4hX@7j_HP9*!_rgr_xoRc)UcamcD#$6F zRi;c)k}O5Zw$dGC4s(VIx=Onvx}<`-(vkRz3O1GARi-jQMV#Vy=GU|NwO5Y7FPeXS Aa{vGU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912c-mc-vb b/usr/share/terminfo/t/tvi912c-mc-vb new file mode 100644 index 0000000000000000000000000000000000000000..ac7c624694730a08d4d1ba18814e7f4abcf8b584 GIT binary patch literal 1195 zcmd5)OKTHR6#lL##%RHXp!9%VLM}S2A zHQZuvJwy%Gw^{CBGsM2H+3vDDV|l^y3a{~ot?$3X`_O*CM|=uB-~Y_^3%=r8j04_x z_J2&_AU1n`hS^^+2O`QIi|s7;=;*jO$sLk2UCuEg(PKTBi66ad#B~3u`fqRh|M(BY zWAQ{h7t~1COU2?cH82ONU_M>17MDRy4p-Ukr|ad*%K?YMlIoXKMrPE4GE~1jc9FzI z{-S62Ytm-AUJ0o8xg@F!&=#l>b*3zJ6J#f7Fuo}#LEE4`P%cmw4k__8)S#tBW^pOV z=2nxD=^?FBhEkM8;gQ)dxVx>PE_kiBtG$Bjb&R10x)+bMHa*hQ>7iFa*D;w3$@sZy zC3tVYst%NwQ#z|^GC^^$5(M{@?y6c8D=W`Z+8)D2j!U}n%{yvk5gmT75dl%!iw17RftSs|%8sbQHZsrd>aVV=4`X(xsJA{g6Q zK_f3;A+e;SC^MODp&&6mRiU6LGp|IGfsv7cFaWDz3}E13kYM=#pMil1NU|`n zGw?Bp0a^e5D>K+I*a2A%V4f3@bOB;F20t(#q=FO>1Jsqy(7@1vq>Q|?c~E)*UOkwmpo%PFSjw;hXu@g~Q?`P6dw}GA6me9&gn0)k(oNX>!LH&k!%2oS z43~iEh?haym_bU##?-)$K{`am#?TZV8KlEiY>YulgMeBf`aryLX-8>wX(ee52K}nc0{!BQ#G+LFlEkFq)Dr#T zl9c445(eo&s7_a8o%P6O2QWxGGDtfxNN00M=W<9FN-=Oj9cIYD33NWtQOQ70*drJK DBG*}D literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912c-p-2p b/usr/share/terminfo/t/tvi912c-p-2p new file mode 100644 index 0000000000000000000000000000000000000000..ed9426f46cfd2bf22e8363a397c481e1c0ae68b2 GIT binary patch literal 1056 zcmd5)OKTHh6g^|5OsK57}!Pz69@v}2FIHi!Y$lp6a>?-P-V0d zu{DnO`F((`h=-0Kc$~tq634@?{yIT#Ilseu9Cs^0@PYBi6i-ix@u#TzIq`f+^4Gui z{5hpp`G)T};R!!_rkqCXjN{K9y|=eN`}I%V{pbJhj&oe#5(CB%#zAwK%v$rMDyW{d z%JZC$vR378l}RWro2qQ)M9!QwZBtdQAVx67f8`iPLAzONF0?-4mbfouwRkM$X)i_qE61hgp3xZwYno^Z&py#woIl4o66kj;1=s#_EvZxzPU+SW-Tehb`50h0J=~b`N cAF~Zw1+AdF6(h+dWeoGZe1*+d-@69C0oAs2G5`Po literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912c-p-vb b/usr/share/terminfo/t/tvi912c-p-vb new file mode 100644 index 0000000000000000000000000000000000000000..4767ba0d7e18fd262dd81c80726b7e89012a0201 GIT binary patch literal 1079 zcmd5)O=}ZT6g`iE#M)AKN-yXmWJqca`6#7G(`Z|YltEf0wCl{|(GE>A)0t^j7csH3gk`2_CL%4>RXa{cxw5shS?2OJ>H3#=U6ul6yZw&z+Ivd&RL}K~r0Z$N z?aTbY2^_1dq@}vu{Icx3vaPl6SWmSImg5S~clvq`LSXzCdBiqyxQQ?Xu5p~kb=<&h zMqzjt8+gcQGh!ykNBnPLH{wG_7^)18l{mgk_16h{!{f%h94OpXLzK&;z`-EF@c%yp0~3&BVPI$AV-N$f{{L5I zuwk$RvK+uXCm`tp#BL0JU_M9%DIf-@E1jW%p#w?xG$4Bh5+BpNSzy^YP&MARVG&V`vJbD^+ZawCsQ!kf5zOK|n1KeIQ=Bw4=1Tw34(2gML+JfqrpDVo|DoNn%oQYKeYvNlJ2234?SXRHrMl o&U$3C9T}t@7^Jf~q;ol>3#Ayipsq4x-~_rI=%Qqx59|>P0FVS%pa1{> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912c-unk-2p b/usr/share/terminfo/t/tvi912c-unk-2p new file mode 100644 index 0000000000000000000000000000000000000000..8983b986c1d1e72ae068d019f3c52fc136fbae9c GIT binary patch literal 1049 zcmb1QY-7-7U}n%{WM(WW%d|8!O42nd&@Ii&u7PlqQMpMVDWDKs7Rn7t%}EW*Oi9gG z2nqAl1sda|kY5C2J1b}urzYp;r6?36rl%_8rsn1sRVw5clw{`TSu5n_DEFab#x26hHM1~DM(|9@o$8wNWd%K^-D0+KF3 z?8e{+=7UuH{~v?IhKNAOQn+{%l+_EQXE1DJ*a?^U|Nl6UeG-X}YyyOR8Z3Jjs^&bD zzKB;3rYYzmml>`BO}L3-%40C^6_9+3B95+?5dS?zx(S&+_~kz`d}sK@z`)4Pz{?ARVG&V`vJbD^+ZawCsQ!kf5zOK|n1KeITAU#8_z!>1+<^Tn_0%s5MYwZ)sa|1)wUBH3oLl-VD;^(vH&V z(n``A4Ej}>1^UGqiAAaUC5cJJsU`ZwB`L{8B@EJmP^(;#t*S?Mj3a}z0|VSj1}>;K S3>i3qo&|a#8R%tu1OouFzH|Km literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi912c-unk-vb b/usr/share/terminfo/t/tvi912c-unk-vb new file mode 100644 index 0000000000000000000000000000000000000000..b16cdb180b52e6ff0573d2e82eb2da5e31b44a0a GIT binary patch literal 1072 zcmd5)O=}ZT6g`h_(vN^Ur5D;q$dJ?;@==P2X|zg_GKjW>cAc3#bZC+pXI@iMM1O#5 z-TOCO`U^xvLTRamStx|yK0~goW62p_h7fiZEi`|Kf||WHBh!Y>PxTpK*^yRy8cAE zo_5@kERCJOu?9+7YA`5Wmm^p9wDukASgT+SLSXh6d&GSda0y`uEOIR30xn{eQ5asq z4(>48jhV^uF8}v%81u*xhAM{>C5cZm{aK1$@c9z2@H)$c;Ty(pb3ET6!SCYi`_%Ix zJwN`n=FcwYl~4H09llI;`5Lot9KTQL=WA#2AOBQ6tNZ_-{|SgWF)zq0x0{VdhfEYf z8(1#4Hya&Lm*q`9C*^kQawqaI*)qJQQIQp6-LMU>bq2A36@H#e{50vX+}?<+`&^RL zMa)dvQk9MhG%V1gbWAFnv~^XoE4vDv&^A@5L{-#J9j_id?D?v$dsd)yJ=5T3=CSS<*GmJH|;vm|F5@}mTirm0nmltcVMXrJ#cTf2D4op;-ml%fcN z|A64T@BSM;`WJ|ZNGS+D`*zM=F6{-xhx+1hJM(>W^UdroTVw~Y28+kb@u^^B~kJ81m9c#me<1 zcct%_R`{;t@6^;#%VDham^)fW%H7k_0>&U`GvqX%rWrhf0xUq109+tH50~I7Tql$y zORxd=32mm#CjWreL)cEasYnt@_{9l-m7&-0CPi<_zsqv(DSm*D@G0X){h9EW95=aH z`2%Dn9D`HW2B5X||%)vE!o)_t9;&!>S zY)YSyWTG?7p0vd(J}cm$fX}C6EI|6I*;ur3^%gfgw=LYqb*x~Cvh@QM*5h3#l6CF4 zvDEcg_q|91KF-E&S2A zHQZuvJwy%Gw^{CBGsM2H+3vDDV|l^y3a{~ot?$3X`_O*CM|=uB-~Y_^3%=r8j04_x z_J2&_AU1n`hS^^+2O`QIi|s7;=;*jO$sLk2UCuEg(PKTBi66ad#B~3u`fqRh|M(BY zWAQ{h7t~1COU2?cH82ONU_M>17MDRy4p-Ukr|ad*%K?YMlIoXKMrPE4GE~1jc9FzI z{-S62Ytm-AUJ0o8xg@F!&=#l>b*3zJ6J#f7Fuo}#LEE4`P%cmw4k__8)S#tBW^pOV z=2nxD=^?FBhEkM8;gQ)dxVx>PE_kiBtG$Bjb&R10x)+bMHa*hQ>7iFa*D;w3$@sZy zC3tVYst%NwQ#z|^GC^^$5(M{@?y6c8D=W`Z+8)D2A)0t^j7csH3gk`2_CL%4>RXa{cxw5shS?2OJ>H3#=U6ul6yZw&z+Ivd&RL}K~r0Z$N z?aTbY2^_1dq@}vu{Icx3vaPl6SWmSImg5S~clvq`LSXzCdBiqyxQQ?Xu5p~kb=<&h zMqzjt8+gcQGh!ykNBnPLH{wG_7^)18l{mgk_16h{!{f%h94OpXLzcAc3#bZC+pXI@iMM1O#5 z-TOCO`U^xvLTRamStx|yK0~goW62p_h7fiZEi`|Kf||WHBh!Y>PxTpK*^yRy8cAE zo_5@kERCJOu?9+7YA`5Wmm^p9wDukASgT+SLSXh6d&GSda0y`uEOIR30xn{eQ5asq z4(>48jhV^uF8}v%81u*xhAM{>C5cZm{aK1$@c9z2@H)$c;Ty(pb3ET6!SCYi`_%Ix zJwN`n=FcwYl~4H09llI;`5Lot9KTQL=WA#2AOBQ6tNZ_-{|SgWF)zq0x0{VdhfEYf z8(1#4Hya&Lm*q`9C*^kQawqaI*)qJQQIQp6-LMU>bq2A36@H#e{50vX+}?<+`&^RL zMa)dvQk9MhG%V1gbWAFnv~^XoE4vDv&^A@5L{-#J9j_id?D?v$dsd)yJ2MVrW00~SpbSJB#M1;L4F+i-DwlSYR+m-+ zGWDx63-pUK5{pvxOA?ccQ%m%VOHz`HN*JUAp{BSZn^KQ#k0XP$1A}xnhjcE7bfFXj r7sMgbs`jb{hN=aosx_)5nyRT9s@4qBh76oQFQ_J~CIdZUk6-`*>>fo$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi914 b/usr/share/terminfo/t/tvi914 new file mode 100644 index 0000000000000000000000000000000000000000..28f0807c2719101d9b5935ea675fa80b0d5c11ee GIT binary patch literal 565 zcmbu6!Ak-`6vn@eA~U6H_#iyEXd2D#st3WAEY0dvVRcq_A~@rU zBBy6W&d{QXcFURv6b!5(^H-N;WeWk!!t)dc7~?pONlYQc%JXKBK$6vhbc-A{#z0p3 z?}^c6qA=7eqKwUf$}Wy^!oD|9>-+i~7pyLEjT_wJ4)=J#Bc5dU*`Imw^Q)gn@Bfc~ zlV`qj{NOhTgVKnADxfpalG@SLcr>o2)VkU+ek6jJ;};BJ8nh4EiRIJjqzP(*TA)MF z5vUf+XEkAx1<`ACgmX~s+QO~Y9NQI+Yt_3hXd6`W_XhY(Wg`q_nJF+U%qml4O3WHl OX4b>McLzZ_f7%z+^7(B5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920 b/usr/share/terminfo/t/tvi920 new file mode 100644 index 0000000000000000000000000000000000000000..28f0807c2719101d9b5935ea675fa80b0d5c11ee GIT binary patch literal 565 zcmbu6!Ak-`6vn@eA~U6H_#iyEXd2D#st3WAEY0dvVRcq_A~@rU zBBy6W&d{QXcFURv6b!5(^H-N;WeWk!!t)dc7~?pONlYQc%JXKBK$6vhbc-A{#z0p3 z?}^c6qA=7eqKwUf$}Wy^!oD|9>-+i~7pyLEjT_wJ4)=J#Bc5dU*`Imw^Q)gn@Bfc~ zlV`qj{NOhTgVKnADxfpalG@SLcr>o2)VkU+ek6jJ;};BJ8nh4EiRIJjqzP(*TA)MF z5vUf+XEkAx1<`ACgmX~s+QO~Y9NQI+Yt_3hXd6`W_XhY(Wg`q_nJF+U%qml4O3WHl OX4b>McLzZ_f7%z+^7(B5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b b/usr/share/terminfo/t/tvi920b new file mode 100644 index 0000000000000000000000000000000000000000..ad78bd9addb67f0ecc9ed16965779dc767863a29 GIT binary patch literal 1060 zcmchV%Zd|06o&t!;>2+xE<}cuNTb~(aU60P1Bx+|WNuCtq7uf9py{N>w2m_|DV33c zFW}NA5OLwcg$oxhT)1%ILPSImT)Xob+P{;|Wj5jkEb6QCpQ>|CRUbMg70h5al2Q?K z&pVS%yWPI6cdL3suXzoTMiYjhGK z7#lmB(SC1Ra1jwq!}oz*T=!rC2XL6m_m3lw0#&i+mANjGWnAd_K}3IC9s1Wo<%U)d zPkg^g-N7R~9@~3D{dDL*!*jgAOT5Bsyun+%!+U(_oqh~sK85!4FlX?FKeJ!(l@-42 zsPdiO4|a|{Ab&sh{!{kv-W!oAIVgu@T8@Y%wj|`Fq~+9qx%<~|JS_z&$%;%M3N?qA zozJBUP*pph$)shq_|t=Yr77OzGzZ zUa~h6P@MNwNyXJM%G3j|mFhHWZJjbTx1&v}V;c3gfw~k{SsJhMkoQP23Rxv3QYH&z zkt~sAvO>;BNAD>?6`^iL)a{766T@WqCC+^CDXpB-bxhLH3FjG>)01_%D>u!Sw6ywWHNgdC&2mP1Rg3jx)9SV~+t`*`M|LcyuUWP-t?shc zHg>lXW>?8>&s2TQP|7hIdrHPZgd@+CndAp)x`iMv!gYZY98V&Eb2!h+buS}_0;}S{ zl{v04>$o}aUWM!4XT3M}`@TBB^MQKF@s*!@&Ep%q#XH}7v){A+F!mqu37_!=U-1p! z@dH2c3+~`6kyq`yGyZtWABWlF#{h+Rh49oW7ud~FhGTXrf85m<|7rH$c3Yx6m8e2h zxGD!ZH-hbYsNftS@PXUA>7BCyhWm5%+dL)<5^4O2$GFJ+0ykuUt(|S~k z>hpS2w=*M&5a#%=Jc~0BcO$t4ukYl&F~6;-iTtAG zc~SFPrV644@l=#VR9xb0@|kHTdu_v!No6#8QYCw;)pQiZhTpbwwCxMt7!|{yDpO+0 z%qp|SRG4+`k}7kx{T?|5NVv|OQY+|L&jhlOp|Fb WlG$RmnKolGkHX-q;|j4d5x)VuAWDe< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-2p-mc b/usr/share/terminfo/t/tvi920b-2p-mc new file mode 100644 index 0000000000000000000000000000000000000000..dbd91a55f164ffff0ce8a01f24268660ca661e5f GIT binary patch literal 1260 zcmchV&ubG=5XZmc4;ove2SKHSy4pOOSW4Q&QZ#A$yIKpPQtCxolg+c;w%gq%i&`lZ zdJzOcM8Sgx5kV0T9uz!y=)sfVsUUdtFA(wI!NWS6Y+8HqC%EvLneV)L^Je#LBQ2u^ zTalpmOuDYw-&7puzLpbD}eiM6$=8r8FU%qnWf7#$mKl@@)5Q>w-NM!c*| zXRc_t`AKcq+IC6{hU0pcGnX;!{G??XrsK?5x|{$Je*IKx2xkz%Uidx5BIK3*sk)tHPqNgk@Y8@B24!x8fh-F`iZ;-+w871t0J+ z)Ir@Ri9fIDFZhaY@UfZdsDXCUF4{v(LEXNJ_5A~(KN$L8?QfnYIxHO$8@i-L9jBXO zZ*9o`Y5&{*wEK5YyF>TrK0TmE^n{+#b9zCq=ryhUm$QF9;~RQQ?`W0k5Cx~v7|V9F z<-nt{Y~ntGz3VWC&(6Z(Y#VNe(nP6#KX>o3;} z?!nsps1HAj>JGk(+o2Yfmry#cGDd{MWI9MrD?Ot!)m%z>vr5}F*{QqUK>A9PB%DCC8LU5T3aJhORNV)+$3weYO?EQt5gKR zqu||t!=rzJhzAcIJb3Wn!Gi}6A|it0+aKM;iv|P-J~Q9%oA>t344b0In8t2Q(KYh! zTBl2eR<7jaoCl$451UrbVH@uRrfJ?b*R76e%jWt@j>~J(c6aoG%=XQ;-Rnrl*f3?+ z?Aq?Ov>nf~dvmg9OT+VAtF`5s{kbs3ajl*=1tR=?1UZCNBrpl3fL%QA!5AiRkd;zL zp`*;I61W=Ab!G_{0`F%ib#+LGk#OFMx}DZb$I5K{;JoG( zwT#SY(^^||N;?wcILv?Le(Zy|oYrUj)HN;%>wMP;KP$50Rzh?W;!e~i3OB_3Ny%A$ zn?hMMAnu8($cQ5%i~N1d$@e!6*UWoHt8aSwzSn8H9>m3{)#7lghkO{SBta`om8mfc zOr2R|mYB25a&mC!RfsA?1@Y-H9^JTzz5Fh8j=9blOp9qV9mZsCFdNJ!V=*_A;Md^{ Iab_TX0kDu(fdBvi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-2p-unk b/usr/share/terminfo/t/tvi920b-2p-unk new file mode 100644 index 0000000000000000000000000000000000000000..19761b3f49e6911ae105d964d4f4ec3e93c412b0 GIT binary patch literal 1137 zcmchV%WD%+6vn@!LSt)O2)=qzM$M4K67ncPib+h;rWylkOQ?mqa3&esu_iOlOq7Zs zxNzs*f5WAJfrtwiE?l^9;lhOr7a}5pea(=%EA1Q~)07NrThB`wTk9FazGN!v znl#V`hP5RbrlT9f^U~0e6vwf2b>wJv7DV{_WR-BU;o4}K7lCSG3C2MydK^akJpT&kN#8lI1{{@<8*>fkxW_2 zQIX0tM^$Q2>%YwY^BvoCm6mChCXj@f#dNAtF4Q2psY7w zK-?D%krt;#2KfiNnYT9-OUpZoYHLp3cKSWbfmjMhwc?{5@nxu<1htt4(`4qE1*XL; zG8dUk$(>6#AnJ&&hRN`Ci`dT}g)TEU8HG`q9@A$u<`%QgY%n@=I|=?YTp=#(h~N4Q BR{sD1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-mc b/usr/share/terminfo/t/tvi920b-mc new file mode 100644 index 0000000000000000000000000000000000000000..c80537d0b1625f4012647d3b1bd40c5c3e85b7af GIT binary patch literal 1149 zcmchVziU%b6vw}(C{3$z6v+j7Xf8=CB~4-wNlcTpsn$VMLS0H@@^YKL{4l>B7Bx^r z!NH+}li(x>j{XHA4h{|u4h{|u4h|wBg5Y*N@8u=c#h>7X&pqFB?m73I`*;B=Uj$stg31o#g*k*PRJYW-bgPP;a0h3nTFYJH!RhUfC#@{ zZVsJ=4+o$%F~9`xyD*7;*w0Gq!$>2;D(iZA-WQoAoN;}vS3O%|YclJwaLJ8zy^{g1 zdrIq@thVtGkH!(LAG3Zk_MhSzp5p~x;uT)w4c_7%-n*wCyqu4o{WPv|=KS;Z8DIE@ zuRq)}L0V7ID(@xc?^pSss(-hyNi}LvoBFg#*Jz7w&@H-6+yABa&u6?tcj+G8r%CuB z5(os-$+-+fF_?}e*=IKdOL6O$n$Bxj^4JModkG!F8gxfgpNE(FsFC-pp+ z4C@?k4I*MdlpyM?oUI8F77d?h`9#;15G{yJkrN?tNQ4o+YIUOhjdD*#?Q*5B>}cPv znmrrhoY$f7eTOZcfwF$kGLvKS%mTB>6qqIEBy-BYGiweai_s7POna}C^UgCnNjZ>q zM5?e%89w0!6Hc%$RYRtRvADFGQng0zF=>~ia*~fqdrhjYOvw~P3{(7h=`?eZDKizu YWU7o})|nc!!B|Y)5B|uUA?A0)H`RGf`2YX_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-mc-2p b/usr/share/terminfo/t/tvi920b-mc-2p new file mode 100644 index 0000000000000000000000000000000000000000..dbd91a55f164ffff0ce8a01f24268660ca661e5f GIT binary patch literal 1260 zcmchV&ubG=5XZmc4;ove2SKHSy4pOOSW4Q&QZ#A$yIKpPQtCxolg+c;w%gq%i&`lZ zdJzOcM8Sgx5kV0T9uz!y=)sfVsUUdtFA(wI!NWS6Y+8HqC%EvLneV)L^Je#LBQ2u^ zTalpmOuDYw-&7puzLpbD}eiM6$=8r8FU%qnWf7#$mKl@@)5Q>w-NM!c*| zXRc_t`AKcq+IC6{hU0pcGnX;!{G??XrsK?5x|{$Je*IKx2xkz%Uidx5BIK3*sk)tHPqNgk@Y8@B24!x8fh-F`iZ;-+w871t0J+ z)Ir@Ri9fIDFZhaY@UfZdsDXCUF4{v(LEXNJ_5A~(KN$L8?QfnYIxHO$8@i-L9jBXO zZ*9o`Y5&{*wEK5YyF>TrK0TmE^n{+#b9zCq=ryhUm$QF9;~RQQ?`W0k5Cx~v7|V9F z<-nt{Y~ntGz3VWC&(6Z(Y#VNe(nP6#KX>o3;} z?!nsps1HAj>JGk(+o2Yfmry#cGDd{MWI9MrD?Ot!)m%z>vr5}F*{QqUK>A9PB%DCC8LUh_6iNEqT5Ax0P}*B-vU#@KCfzhyDwTqG z5CkuZAc!b<@E{^6;=zN02M;}X5|!GE5>qG z@~V_wFsf*ZPI+B9CD(RVRQsA;v2z8Za;8vdPpM*d!M2p;ILo%F#E6-G{ZwoC427tb zJdXjwE!dkw!ypXp1W{kkp0UmN-x5%1yiw3?k@c!E0Jlz~e zhvbefX{d3&4SQ!t{!jbg{iof(d)hsIzz_KmKjCNmf?x70e#38h^S_+^^BLdqd;Y*5 zSu&AyZz3@y848p1QClS4pBN&UM!FwmfDKLHwf4 z_%&rVlJ4_M&tXe#pReXfGPTYUmF18WL$X>wDW*u~NtQ@rzA4alNidCMWN-jg*h*4F ztH#K3QAVXh+9gWyOLi$?Q&aF+^sxV3O8t66yD@E|I;BDqB>Vj2k~YgaRm&x{ThOLh zmjl|J*TyeCqTM-dR&`3JNP1}x?t@Q)^B@ayzyf(-zy+`X7J&_x!h~Bvg$!>8-vLEW BYgzyR literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-p b/usr/share/terminfo/t/tvi920b-p new file mode 100644 index 0000000000000000000000000000000000000000..87128a86e832dcf2e0145a4287cd8d2ba9c4ba41 GIT binary patch literal 1035 zcmcJNy=zlZ7{;I13W=?;gJ2~GS|!xQ!JFioUO$@a&Cya3 z?AX6R#KFPA!NI}7!NEa9L=Xh$ZUre04h{|u*C)40KPFS82Y%;$-gBPk+;iY2(}wTV zUBeH&1w8~2{Ch+mnME8&5r)7%&ifI=AsnF!!;`R)rz%8UiSs0x#>J>_Id(IyF;&Mh zR<@-dQ$N}4pW+#w;{{&g6<*^F-r^nJN4p=|o{#PNX*08%8+5#%@daOb!nYl#tVZ1$ z=kGh#JE?B#`hTUn{mKvg#4r5DAB5xvQy*S3d@*w)4uA25(%X)>8ja;i+R7I6i zC)6M^4?I89oOc2@qn%3A)tRQQRRaxmxt*Nao_xf!rI3KkkRmCO2{K8h$TT@e&L_6+ zFbh?LDnQ+et2=RZH;LZ%1F|^4XUYX~oj9aIs-#9-a)Z>#Jn_iQ1o&7w)Y&cZ7l*b% AbpQYW literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-p-2p b/usr/share/terminfo/t/tvi920b-p-2p new file mode 100644 index 0000000000000000000000000000000000000000..a7c16a004efe184a1c9884952f93d64fe04d2db0 GIT binary patch literal 1144 zcmchV&ubGw6vw|$g~n=nQ%Xi;&@4%5T3aJhORNV)+$3weYO?EQt5gKR zqu||t!=rzJhzAcIJb3Wn!Gi}6A|it0+aKM;iv|P-J~Q9%oA>t344b0In8t2Q(KYh! zTBl2eR<7jaoCl$451UrbVH@uRrfJ?b*R76e%jWt@j>~J(c6aoG%=XQ;-Rnrl*f3?+ z?Aq?Ov>nf~dvmg9OT+VAtF`5s{kbs3ajl*=1tR=?1UZCNBrpl3fL%QA!5AiRkd;zL zp`*;I61W=Ab!G_{0`F%ib#+LGk#OFMx}DZb$I5K{;JoG( zwT#SY(^^||N;?wcILv?Le(Zy|oYrUj)HN;%>wMP;KP$50Rzh?W;!e~i3OB_3Ny%A$ zn?hMMAnu8($cQ5%i~N1d$@e!6*UWoHt8aSwzSn8H9>m3{)#7lghkO{SBta`om8mfc zOr2R|mYB25a&mC!RfsA?1@Y-H9^JTzz5Fh8j=9blOp9qV9mZsCFdNJ!V=*_A;Md^{ Iab_TX0kDu(fdBvi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-p-vb b/usr/share/terminfo/t/tvi920b-p-vb new file mode 100644 index 0000000000000000000000000000000000000000..0d96cdbfa12ce5c123c59360f6d1e1b3d91af743 GIT binary patch literal 1167 zcmchVO=}ZT6o%iUf-ySauF?y2j2V(xLq1B7(j+#mvBpqrC2bdim`SebXp$Lc#z;l< z2e=np`Zrwq3q)MFaN)v*3l}b2xDdyandvm$Xh3k_x%a&1p0BywS$c_i97TqDZEZkExBFIuuMw~eke)z)?+%jqksY46*sYTA(fs=Dm=6HDsQRNJm=8~Q_6I!i%@Wg9~`10wwW^J8cOF`R+t0VjD? za2hi>%a-R|L>+5vHGI|Nb)C6^9bbM*ioa^@8_Tc#SvFiRZm#`(32p z;{!h86F%b$zTz9c;|G5Fr@z7&P*D9yxKDPR-abahDb5v?Lse#cHOK3@L;mUO29f9g zDSO&(8f7R;1uD@ZRj5XFYS21u{+Hf=o^gwA(QWFIXeP^re7-80P#_jCn=F^|Rfrb5 zOT6zT%f$=TaSV%!W)-xQn$qUAj%F42O~f(B&+`;NO|g?KFN{NPa!QalR?VQSNQ?V1 zF^Gu=VVlt16qQRVM@6HEN1`TDA|cYqJvOYIv)i_1&TZ?CbaRf|?bt5FX4tAe+3Fb& zL(2-N!PJ-)W|g_Z)S0Wy8gorK7f_2F5m>;3teaKFl|O>I!u?5%w49( R>@o&(PXXT!M~KS@#&4PpT$TU; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-unk b/usr/share/terminfo/t/tvi920b-unk new file mode 100644 index 0000000000000000000000000000000000000000..03d13608d9b181d55a4267c3cece8c319339ec45 GIT binary patch literal 1024 zcmcJNy-QnB7{;Gh1*0|MAVqROt~HnVfy6`{gln3_?+&68ba5~rw|ccTF}b$16zb?- zAmY%$!NH+JhYlS&6e*=p=O|T%*y+Na=y!InR5}^St*QxIP&}H>%Mo zU1Gno2Ex6mp7qt0cUL;?>V)~ioV7A$R!huI^w1L5viWO0q;;%jwWMw5t<<`07CIq< z`-kh1DR|HV#{sH1*Ps@ScueIu?Jy9bin>*t^Dr63q+1sq4;k}JEn)+kx6)hG+c)(N zK42Gn*vChF!e@NJSA26%4@#czrS->6<{>vIdw=2=JN&-W<>G~r2Y+#jGo0fBkQ(twgEUFARGR;Pz7}bfHVH^Ayik4c`HlYG2vovvg!;L@@f+c; z2#ez8pq>lq0WF|+>uEg~zLuy*EC0#{Jc63@8+}FV3?o;$V)a_ZR6spZ9SFX)a>2q< zGH(X$WU64=!GfJh=WVFzQgY;W@;!S?)C-v)F%l<3WSESQQ8Grxz2!T^prTMK9`(|r o)_kZh-9CgmzEPf$1(GBwk|r5qlILWRED?(=d%>5|p`Mn-B_W|dWdHyG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-unk-2p b/usr/share/terminfo/t/tvi920b-unk-2p new file mode 100644 index 0000000000000000000000000000000000000000..19761b3f49e6911ae105d964d4f4ec3e93c412b0 GIT binary patch literal 1137 zcmchV%WD%+6vn@!LSt)O2)=qzM$M4K67ncPib+h;rWylkOQ?mqa3&esu_iOlOq7Zs zxNzs*f5WAJfrtwiE?l^9;lhOr7a}5pea(=%EA1Q~)07NrThB`wTk9FazGN!v znl#V`hP5RbrlT9f^U~0e6vwf2b>wJv7DV{_WR-BU;o4}K7lCSG3C2MydK^akJpT&kN#8lI1{{@<8*>fkxW_2 zQIX0tM^$Q2>%YwY^BvoCm6mChCXj@f#dNAtF4Q2psY7w zK-?D%krt;#2KfiNnYT9-OUpZoYHLp3cKSWbfmjMhwc?{5@nxu<1htt4(`4qE1*XL; zG8dUk$(>6#AnJ&&hRN`Ci`dT}g)TEU8HG`q9@A$u<`%QgY%n@=I|=?YTp=#(h~N4Q BR{sD1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-unk-vb b/usr/share/terminfo/t/tvi920b-unk-vb new file mode 100644 index 0000000000000000000000000000000000000000..1cd3a4bdc9f0a2c4bc1685b6c775edf8215079e0 GIT binary patch literal 1160 zcmchVJ#Q015Qg6YB#gll1rkwK3Mo1%${-kZ8EGm*j};Gro&a z5P}~-4LyH@l3#!j1qB5K1qB5K1qI@m`^d#^fG83tJ-hGBzB@B_x^a4eX&lBRwa6YA zmkK#OGte{J-K{5n*c=VLBTj{<>~zD1YO6J)rA*mat7W)MMVkFxy&%(;YMR}a>}eZH zc2vjg??|&}8)jF=2Zm+nZ6$TpZpW|4t|>L!?i>2Ht*l89;qQ;bej&lxGEU~J2QJvQt%q^^YvFmUgHKhHFzdjA~&ja<6_g8q0H{prnyk-3^jNjt} zKH?KT;|spx8@}TQetM_B0uRWqekj<7JMKpxp`%w4vZZvShy zIGv>_I!^_V>0~q6E9^={F~Ps*3H~+3dZIYvT37jsf6tBTep!(gTM^NT zh=)O&AYB)87bUyGQN$xr7AX-IX=EQ8y{xsV^;Oo^bW7P;%WgIMHpK0qRdu-4GaiQK zW1t#SW-81AbB(Doi_8*pJ+?P=8DbvcXov={o5wN!D74JnV>Cu*noNsP%zb8q*<=jn NK@9w9*dea&iQly3T?+sJ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-vb b/usr/share/terminfo/t/tvi920b-vb new file mode 100644 index 0000000000000000000000000000000000000000..cf415bc16fd41bb5d9d29cafb434c22c1b4971a7 GIT binary patch literal 1166 zcmchVOKTHR6vxj&7cn+c5L9|WFCjw`YsjMnk)&yon$|S_fxnVMwAnQJt) zD20MwKydHgui?^9AmYM>3l}b2xDduO$>g;uKEPpq=l=g^&b{Z}%PiqOEW-(i;}Ocf zaV?Y55`FDpBy~^LMMpG@rZ9QEQB6=mnVa@luk)BAbhFpwmbxo=S9DE#z)edUW{-#a zhGS?Q!8Ot8gmb*Dc3KIeCq>UOt2BhY?7)DU5(;R;x_CIy;tG7g7ou=KlIfRyd0`m6kq$fH#EM5cktf#-s}&g zKTiB7_zYj*D}00R@B@AV;7JUiR~H;c*In?(Gydp(`_wYVy*up*R{g>Xy@6pDm_zVw`)gt+HDpg=L2mxDxrAR)T zDgdifI!ogqlFwW&cr|2J6)UYoc~n_ebj8YyB?RFj{hkZ-YqFh4e#I-@rYWO&o~w

h_6iNEqT5Ax0P}*B-vU#@KCfzhyDwTqG z5CkuZAc!b<@E{^6;=zN02M;}X5|!GE5>qG z@~V_wFsf*ZPI+B9CD(RVRQsA;v2z8Za;8vdPpM*d!M2p;ILo%F#E6-G{ZwoC427tb zJdXjwE!dkw!ypXp1W{kkp0UmN-x5%1yiw3?k@c!E0Jlz~e zhvbefX{d3&4SQ!t{!jbg{iof(d)hsIzz_KmKjCNmf?x70e#38h^S_+^^BLdqd;Y*5 zSu&AyZz3@y848p1QClS4pBN&UM!FwmfDKLHwf4 z_%&rVlJ4_M&tXe#pReXfGPTYUmF18WL$X>wDW*u~NtQ@rzA4alNidCMWN-jg*h*4F ztH#K3QAVXh+9gWyOLi$?Q&aF+^sxV3O8t66yD@E|I;BDqB>Vj2k~YgaRm&x{ThOLh zmjl|J*TyeCqTM-dR&`3JNP1}x?t@Q)^B@ayzyf(-zy+`X7J&_x!h~Bvg$!>8-vLEW BYgzyR literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-vb-p b/usr/share/terminfo/t/tvi920b-vb-p new file mode 100644 index 0000000000000000000000000000000000000000..0d96cdbfa12ce5c123c59360f6d1e1b3d91af743 GIT binary patch literal 1167 zcmchVO=}ZT6o%iUf-ySauF?y2j2V(xLq1B7(j+#mvBpqrC2bdim`SebXp$Lc#z;l< z2e=np`Zrwq3q)MFaN)v*3l}b2xDdyandvm$Xh3k_x%a&1p0BywS$c_i97TqDZEZkExBFIuuMw~eke)z)?+%jqksY46*sYTA(fs=Dm=6HDsQRNJm=8~Q_6I!i%@Wg9~`10wwW^J8cOF`R+t0VjD? za2hi>%a-R|L>+5vHGI|Nb)C6^9bbM*ioa^@8_Tc#SvFiRZm#`(32p z;{!h86F%b$zTz9c;|G5Fr@z7&P*D9yxKDPR-abahDb5v?Lse#cHOK3@L;mUO29f9g zDSO&(8f7R;1uD@ZRj5XFYS21u{+Hf=o^gwA(QWFIXeP^re7-80P#_jCn=F^|Rfrb5 zOT6zT%f$=TaSV%!W)-xQn$qUAj%F42O~f(B&+`;NO|g?KFN{NPa!QalR?VQSNQ?V1 zF^Gu=VVlt16qQRVM@6HEN1`TDA|cYqJvOYIv)i_1&TZ?CbaRf|?bt5FX4tAe+3Fb& zL(2-N!PJ-)W|g_Z)S0Wy8gorK7f_2F5m>;3teaKFl|O>I!u?5%w49( R>@o&(PXXT!M~KS@#&4PpT$TU; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920b-vb-unk b/usr/share/terminfo/t/tvi920b-vb-unk new file mode 100644 index 0000000000000000000000000000000000000000..1cd3a4bdc9f0a2c4bc1685b6c775edf8215079e0 GIT binary patch literal 1160 zcmchVJ#Q015Qg6YB#gll1rkwK3Mo1%${-kZ8EGm*j};Gro&a z5P}~-4LyH@l3#!j1qB5K1qB5K1qI@m`^d#^fG83tJ-hGBzB@B_x^a4eX&lBRwa6YA zmkK#OGte{J-K{5n*c=VLBTj{<>~zD1YO6J)rA*mat7W)MMVkFxy&%(;YMR}a>}eZH zc2vjg??|&}8)jF=2Zm+nZ6$TpZpW|4t|>L!?i>2Ht*l89;qQ;bej&lxGEU~J2QJvQt%q^^YvFmUgHKhHFzdjA~&ja<6_g8q0H{prnyk-3^jNjt} zKH?KT;|spx8@}TQetM_B0uRWqekj<7JMKpxp`%w4vZZvShy zIGv>_I!^_V>0~q6E9^={F~Ps*3H~+3dZIYvT37jsf6tBTep!(gTM^NT zh=)O&AYB)87bUyGQN$xr7AX-IX=EQ8y{xsV^;Oo^bW7P;%WgIMHpK0qRdu-4GaiQK zW1t#SW-81AbB(Doi_8*pJ+?P=8DbvcXov={o5wN!D74JnV>Cu*noNsP%zb8q*<=jn NK@9w9*dea&iQly3T?+sJ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c b/usr/share/terminfo/t/tvi920c new file mode 100644 index 0000000000000000000000000000000000000000..ad78bd9addb67f0ecc9ed16965779dc767863a29 GIT binary patch literal 1060 zcmchV%Zd|06o&t!;>2+xE<}cuNTb~(aU60P1Bx+|WNuCtq7uf9py{N>w2m_|DV33c zFW}NA5OLwcg$oxhT)1%ILPSImT)Xob+P{;|Wj5jkEb6QCpQ>|CRUbMg70h5al2Q?K z&pVS%yWPI6cdL3suXzoTMiYjhGK z7#lmB(SC1Ra1jwq!}oz*T=!rC2XL6m_m3lw0#&i+mANjGWnAd_K}3IC9s1Wo<%U)d zPkg^g-N7R~9@~3D{dDL*!*jgAOT5Bsyun+%!+U(_oqh~sK85!4FlX?FKeJ!(l@-42 zsPdiO4|a|{Ab&sh{!{kv-W!oAIVgu@T8@Y%wj|`Fq~+9qx%<~|JS_z&$%;%M3N?qA zozJBUP*pph$)shq_|t=Yr77OzGzZ zUa~h6P@MNwNyXJM%G3j|mFhHWZJjbTx1&v}V;c3gfw~k{SsJhMkoQP23Rxv3QYH&z zkt~sAvO>;BNAD>?6`^iL)a{766T@WqCC+^CDXpB-bxhLH3FjG>)01_%D>u!Sw6ywWHNgdC&2mP1Rg3jx)9SV~+t`*`M|LcyuUWP-t?shc zHg>lXW>?8>&s2TQP|7hIdrHPZgd@+CndAp)x`iMv!gYZY98V&Eb2!h+buS}_0;}S{ zl{v04>$o}aUWM!4XT3M}`@TBB^MQKF@s*!@&Ep%q#XH}7v){A+F!mqu37_!=U-1p! z@dH2c3+~`6kyq`yGyZtWABWlF#{h+Rh49oW7ud~FhGTXrf85m<|7rH$c3Yx6m8e2h zxGD!ZH-hbYsNftS@PXUA>7BCyhWm5%+dL)<5^4O2$GFJ+0ykuUt(|S~k z>hpS2w=*M&5a#%=Jc~0BcO$t4ukYl&F~6;-iTtAG zc~SFPrV644@l=#VR9xb0@|kHTdu_v!No6#8QYCw;)pQiZhTpbwwCxMt7!|{yDpO+0 z%qp|SRG4+`k}7kx{T?|5NVv|OQY+|L&jhlOp|Fb WlG$RmnKolGkHX-q;|j4d5x)VuAWDe< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-2p-mc b/usr/share/terminfo/t/tvi920c-2p-mc new file mode 100644 index 0000000000000000000000000000000000000000..dbd91a55f164ffff0ce8a01f24268660ca661e5f GIT binary patch literal 1260 zcmchV&ubG=5XZmc4;ove2SKHSy4pOOSW4Q&QZ#A$yIKpPQtCxolg+c;w%gq%i&`lZ zdJzOcM8Sgx5kV0T9uz!y=)sfVsUUdtFA(wI!NWS6Y+8HqC%EvLneV)L^Je#LBQ2u^ zTalpmOuDYw-&7puzLpbD}eiM6$=8r8FU%qnWf7#$mKl@@)5Q>w-NM!c*| zXRc_t`AKcq+IC6{hU0pcGnX;!{G??XrsK?5x|{$Je*IKx2xkz%Uidx5BIK3*sk)tHPqNgk@Y8@B24!x8fh-F`iZ;-+w871t0J+ z)Ir@Ri9fIDFZhaY@UfZdsDXCUF4{v(LEXNJ_5A~(KN$L8?QfnYIxHO$8@i-L9jBXO zZ*9o`Y5&{*wEK5YyF>TrK0TmE^n{+#b9zCq=ryhUm$QF9;~RQQ?`W0k5Cx~v7|V9F z<-nt{Y~ntGz3VWC&(6Z(Y#VNe(nP6#KX>o3;} z?!nsps1HAj>JGk(+o2Yfmry#cGDd{MWI9MrD?Ot!)m%z>vr5}F*{QqUK>A9PB%DCC8LU5T3aJhORNV)+$3weYO?EQt5gKR zqu||t!=rzJhzAcIJb3Wn!Gi}6A|it0+aKM;iv|P-J~Q9%oA>t344b0In8t2Q(KYh! zTBl2eR<7jaoCl$451UrbVH@uRrfJ?b*R76e%jWt@j>~J(c6aoG%=XQ;-Rnrl*f3?+ z?Aq?Ov>nf~dvmg9OT+VAtF`5s{kbs3ajl*=1tR=?1UZCNBrpl3fL%QA!5AiRkd;zL zp`*;I61W=Ab!G_{0`F%ib#+LGk#OFMx}DZb$I5K{;JoG( zwT#SY(^^||N;?wcILv?Le(Zy|oYrUj)HN;%>wMP;KP$50Rzh?W;!e~i3OB_3Ny%A$ zn?hMMAnu8($cQ5%i~N1d$@e!6*UWoHt8aSwzSn8H9>m3{)#7lghkO{SBta`om8mfc zOr2R|mYB25a&mC!RfsA?1@Y-H9^JTzz5Fh8j=9blOp9qV9mZsCFdNJ!V=*_A;Md^{ Iab_TX0kDu(fdBvi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-2p-unk b/usr/share/terminfo/t/tvi920c-2p-unk new file mode 100644 index 0000000000000000000000000000000000000000..19761b3f49e6911ae105d964d4f4ec3e93c412b0 GIT binary patch literal 1137 zcmchV%WD%+6vn@!LSt)O2)=qzM$M4K67ncPib+h;rWylkOQ?mqa3&esu_iOlOq7Zs zxNzs*f5WAJfrtwiE?l^9;lhOr7a}5pea(=%EA1Q~)07NrThB`wTk9FazGN!v znl#V`hP5RbrlT9f^U~0e6vwf2b>wJv7DV{_WR-BU;o4}K7lCSG3C2MydK^akJpT&kN#8lI1{{@<8*>fkxW_2 zQIX0tM^$Q2>%YwY^BvoCm6mChCXj@f#dNAtF4Q2psY7w zK-?D%krt;#2KfiNnYT9-OUpZoYHLp3cKSWbfmjMhwc?{5@nxu<1htt4(`4qE1*XL; zG8dUk$(>6#AnJ&&hRN`Ci`dT}g)TEU8HG`q9@A$u<`%QgY%n@=I|=?YTp=#(h~N4Q BR{sD1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-mc b/usr/share/terminfo/t/tvi920c-mc new file mode 100644 index 0000000000000000000000000000000000000000..c80537d0b1625f4012647d3b1bd40c5c3e85b7af GIT binary patch literal 1149 zcmchVziU%b6vw}(C{3$z6v+j7Xf8=CB~4-wNlcTpsn$VMLS0H@@^YKL{4l>B7Bx^r z!NH+}li(x>j{XHA4h{|u4h{|u4h|wBg5Y*N@8u=c#h>7X&pqFB?m73I`*;B=Uj$stg31o#g*k*PRJYW-bgPP;a0h3nTFYJH!RhUfC#@{ zZVsJ=4+o$%F~9`xyD*7;*w0Gq!$>2;D(iZA-WQoAoN;}vS3O%|YclJwaLJ8zy^{g1 zdrIq@thVtGkH!(LAG3Zk_MhSzp5p~x;uT)w4c_7%-n*wCyqu4o{WPv|=KS;Z8DIE@ zuRq)}L0V7ID(@xc?^pSss(-hyNi}LvoBFg#*Jz7w&@H-6+yABa&u6?tcj+G8r%CuB z5(os-$+-+fF_?}e*=IKdOL6O$n$Bxj^4JModkG!F8gxfgpNE(FsFC-pp+ z4C@?k4I*MdlpyM?oUI8F77d?h`9#;15G{yJkrN?tNQ4o+YIUOhjdD*#?Q*5B>}cPv znmrrhoY$f7eTOZcfwF$kGLvKS%mTB>6qqIEBy-BYGiweai_s7POna}C^UgCnNjZ>q zM5?e%89w0!6Hc%$RYRtRvADFGQng0zF=>~ia*~fqdrhjYOvw~P3{(7h=`?eZDKizu YWU7o})|nc!!B|Y)5B|uUA?A0)H`RGf`2YX_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-mc-2p b/usr/share/terminfo/t/tvi920c-mc-2p new file mode 100644 index 0000000000000000000000000000000000000000..dbd91a55f164ffff0ce8a01f24268660ca661e5f GIT binary patch literal 1260 zcmchV&ubG=5XZmc4;ove2SKHSy4pOOSW4Q&QZ#A$yIKpPQtCxolg+c;w%gq%i&`lZ zdJzOcM8Sgx5kV0T9uz!y=)sfVsUUdtFA(wI!NWS6Y+8HqC%EvLneV)L^Je#LBQ2u^ zTalpmOuDYw-&7puzLpbD}eiM6$=8r8FU%qnWf7#$mKl@@)5Q>w-NM!c*| zXRc_t`AKcq+IC6{hU0pcGnX;!{G??XrsK?5x|{$Je*IKx2xkz%Uidx5BIK3*sk)tHPqNgk@Y8@B24!x8fh-F`iZ;-+w871t0J+ z)Ir@Ri9fIDFZhaY@UfZdsDXCUF4{v(LEXNJ_5A~(KN$L8?QfnYIxHO$8@i-L9jBXO zZ*9o`Y5&{*wEK5YyF>TrK0TmE^n{+#b9zCq=ryhUm$QF9;~RQQ?`W0k5Cx~v7|V9F z<-nt{Y~ntGz3VWC&(6Z(Y#VNe(nP6#KX>o3;} z?!nsps1HAj>JGk(+o2Yfmry#cGDd{MWI9MrD?Ot!)m%z>vr5}F*{QqUK>A9PB%DCC8LUh_6iNEqT5Ax0P}*B-vU#@KCfzhyDwTqG z5CkuZAc!b<@E{^6;=zN02M;}X5|!GE5>qG z@~V_wFsf*ZPI+B9CD(RVRQsA;v2z8Za;8vdPpM*d!M2p;ILo%F#E6-G{ZwoC427tb zJdXjwE!dkw!ypXp1W{kkp0UmN-x5%1yiw3?k@c!E0Jlz~e zhvbefX{d3&4SQ!t{!jbg{iof(d)hsIzz_KmKjCNmf?x70e#38h^S_+^^BLdqd;Y*5 zSu&AyZz3@y848p1QClS4pBN&UM!FwmfDKLHwf4 z_%&rVlJ4_M&tXe#pReXfGPTYUmF18WL$X>wDW*u~NtQ@rzA4alNidCMWN-jg*h*4F ztH#K3QAVXh+9gWyOLi$?Q&aF+^sxV3O8t66yD@E|I;BDqB>Vj2k~YgaRm&x{ThOLh zmjl|J*TyeCqTM-dR&`3JNP1}x?t@Q)^B@ayzyf(-zy+`X7J&_x!h~Bvg$!>8-vLEW BYgzyR literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-p b/usr/share/terminfo/t/tvi920c-p new file mode 100644 index 0000000000000000000000000000000000000000..87128a86e832dcf2e0145a4287cd8d2ba9c4ba41 GIT binary patch literal 1035 zcmcJNy=zlZ7{;I13W=?;gJ2~GS|!xQ!JFioUO$@a&Cya3 z?AX6R#KFPA!NI}7!NEa9L=Xh$ZUre04h{|u*C)40KPFS82Y%;$-gBPk+;iY2(}wTV zUBeH&1w8~2{Ch+mnME8&5r)7%&ifI=AsnF!!;`R)rz%8UiSs0x#>J>_Id(IyF;&Mh zR<@-dQ$N}4pW+#w;{{&g6<*^F-r^nJN4p=|o{#PNX*08%8+5#%@daOb!nYl#tVZ1$ z=kGh#JE?B#`hTUn{mKvg#4r5DAB5xvQy*S3d@*w)4uA25(%X)>8ja;i+R7I6i zC)6M^4?I89oOc2@qn%3A)tRQQRRaxmxt*Nao_xf!rI3KkkRmCO2{K8h$TT@e&L_6+ zFbh?LDnQ+et2=RZH;LZ%1F|^4XUYX~oj9aIs-#9-a)Z>#Jn_iQ1o&7w)Y&cZ7l*b% AbpQYW literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-p-2p b/usr/share/terminfo/t/tvi920c-p-2p new file mode 100644 index 0000000000000000000000000000000000000000..a7c16a004efe184a1c9884952f93d64fe04d2db0 GIT binary patch literal 1144 zcmchV&ubGw6vw|$g~n=nQ%Xi;&@4%5T3aJhORNV)+$3weYO?EQt5gKR zqu||t!=rzJhzAcIJb3Wn!Gi}6A|it0+aKM;iv|P-J~Q9%oA>t344b0In8t2Q(KYh! zTBl2eR<7jaoCl$451UrbVH@uRrfJ?b*R76e%jWt@j>~J(c6aoG%=XQ;-Rnrl*f3?+ z?Aq?Ov>nf~dvmg9OT+VAtF`5s{kbs3ajl*=1tR=?1UZCNBrpl3fL%QA!5AiRkd;zL zp`*;I61W=Ab!G_{0`F%ib#+LGk#OFMx}DZb$I5K{;JoG( zwT#SY(^^||N;?wcILv?Le(Zy|oYrUj)HN;%>wMP;KP$50Rzh?W;!e~i3OB_3Ny%A$ zn?hMMAnu8($cQ5%i~N1d$@e!6*UWoHt8aSwzSn8H9>m3{)#7lghkO{SBta`om8mfc zOr2R|mYB25a&mC!RfsA?1@Y-H9^JTzz5Fh8j=9blOp9qV9mZsCFdNJ!V=*_A;Md^{ Iab_TX0kDu(fdBvi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-p-vb b/usr/share/terminfo/t/tvi920c-p-vb new file mode 100644 index 0000000000000000000000000000000000000000..0d96cdbfa12ce5c123c59360f6d1e1b3d91af743 GIT binary patch literal 1167 zcmchVO=}ZT6o%iUf-ySauF?y2j2V(xLq1B7(j+#mvBpqrC2bdim`SebXp$Lc#z;l< z2e=np`Zrwq3q)MFaN)v*3l}b2xDdyandvm$Xh3k_x%a&1p0BywS$c_i97TqDZEZkExBFIuuMw~eke)z)?+%jqksY46*sYTA(fs=Dm=6HDsQRNJm=8~Q_6I!i%@Wg9~`10wwW^J8cOF`R+t0VjD? za2hi>%a-R|L>+5vHGI|Nb)C6^9bbM*ioa^@8_Tc#SvFiRZm#`(32p z;{!h86F%b$zTz9c;|G5Fr@z7&P*D9yxKDPR-abahDb5v?Lse#cHOK3@L;mUO29f9g zDSO&(8f7R;1uD@ZRj5XFYS21u{+Hf=o^gwA(QWFIXeP^re7-80P#_jCn=F^|Rfrb5 zOT6zT%f$=TaSV%!W)-xQn$qUAj%F42O~f(B&+`;NO|g?KFN{NPa!QalR?VQSNQ?V1 zF^Gu=VVlt16qQRVM@6HEN1`TDA|cYqJvOYIv)i_1&TZ?CbaRf|?bt5FX4tAe+3Fb& zL(2-N!PJ-)W|g_Z)S0Wy8gorK7f_2F5m>;3teaKFl|O>I!u?5%w49( R>@o&(PXXT!M~KS@#&4PpT$TU; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-unk b/usr/share/terminfo/t/tvi920c-unk new file mode 100644 index 0000000000000000000000000000000000000000..03d13608d9b181d55a4267c3cece8c319339ec45 GIT binary patch literal 1024 zcmcJNy-QnB7{;Gh1*0|MAVqROt~HnVfy6`{gln3_?+&68ba5~rw|ccTF}b$16zb?- zAmY%$!NH+JhYlS&6e*=p=O|T%*y+Na=y!InR5}^St*QxIP&}H>%Mo zU1Gno2Ex6mp7qt0cUL;?>V)~ioV7A$R!huI^w1L5viWO0q;;%jwWMw5t<<`07CIq< z`-kh1DR|HV#{sH1*Ps@ScueIu?Jy9bin>*t^Dr63q+1sq4;k}JEn)+kx6)hG+c)(N zK42Gn*vChF!e@NJSA26%4@#czrS->6<{>vIdw=2=JN&-W<>G~r2Y+#jGo0fBkQ(twgEUFARGR;Pz7}bfHVH^Ayik4c`HlYG2vovvg!;L@@f+c; z2#ez8pq>lq0WF|+>uEg~zLuy*EC0#{Jc63@8+}FV3?o;$V)a_ZR6spZ9SFX)a>2q< zGH(X$WU64=!GfJh=WVFzQgY;W@;!S?)C-v)F%l<3WSESQQ8Grxz2!T^prTMK9`(|r o)_kZh-9CgmzEPf$1(GBwk|r5qlILWRED?(=d%>5|p`Mn-B_W|dWdHyG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-unk-2p b/usr/share/terminfo/t/tvi920c-unk-2p new file mode 100644 index 0000000000000000000000000000000000000000..19761b3f49e6911ae105d964d4f4ec3e93c412b0 GIT binary patch literal 1137 zcmchV%WD%+6vn@!LSt)O2)=qzM$M4K67ncPib+h;rWylkOQ?mqa3&esu_iOlOq7Zs zxNzs*f5WAJfrtwiE?l^9;lhOr7a}5pea(=%EA1Q~)07NrThB`wTk9FazGN!v znl#V`hP5RbrlT9f^U~0e6vwf2b>wJv7DV{_WR-BU;o4}K7lCSG3C2MydK^akJpT&kN#8lI1{{@<8*>fkxW_2 zQIX0tM^$Q2>%YwY^BvoCm6mChCXj@f#dNAtF4Q2psY7w zK-?D%krt;#2KfiNnYT9-OUpZoYHLp3cKSWbfmjMhwc?{5@nxu<1htt4(`4qE1*XL; zG8dUk$(>6#AnJ&&hRN`Ci`dT}g)TEU8HG`q9@A$u<`%QgY%n@=I|=?YTp=#(h~N4Q BR{sD1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-unk-vb b/usr/share/terminfo/t/tvi920c-unk-vb new file mode 100644 index 0000000000000000000000000000000000000000..1cd3a4bdc9f0a2c4bc1685b6c775edf8215079e0 GIT binary patch literal 1160 zcmchVJ#Q015Qg6YB#gll1rkwK3Mo1%${-kZ8EGm*j};Gro&a z5P}~-4LyH@l3#!j1qB5K1qB5K1qI@m`^d#^fG83tJ-hGBzB@B_x^a4eX&lBRwa6YA zmkK#OGte{J-K{5n*c=VLBTj{<>~zD1YO6J)rA*mat7W)MMVkFxy&%(;YMR}a>}eZH zc2vjg??|&}8)jF=2Zm+nZ6$TpZpW|4t|>L!?i>2Ht*l89;qQ;bej&lxGEU~J2QJvQt%q^^YvFmUgHKhHFzdjA~&ja<6_g8q0H{prnyk-3^jNjt} zKH?KT;|spx8@}TQetM_B0uRWqekj<7JMKpxp`%w4vZZvShy zIGv>_I!^_V>0~q6E9^={F~Ps*3H~+3dZIYvT37jsf6tBTep!(gTM^NT zh=)O&AYB)87bUyGQN$xr7AX-IX=EQ8y{xsV^;Oo^bW7P;%WgIMHpK0qRdu-4GaiQK zW1t#SW-81AbB(Doi_8*pJ+?P=8DbvcXov={o5wN!D74JnV>Cu*noNsP%zb8q*<=jn NK@9w9*dea&iQly3T?+sJ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-vb b/usr/share/terminfo/t/tvi920c-vb new file mode 100644 index 0000000000000000000000000000000000000000..cf415bc16fd41bb5d9d29cafb434c22c1b4971a7 GIT binary patch literal 1166 zcmchVOKTHR6vxj&7cn+c5L9|WFCjw`YsjMnk)&yon$|S_fxnVMwAnQJt) zD20MwKydHgui?^9AmYM>3l}b2xDduO$>g;uKEPpq=l=g^&b{Z}%PiqOEW-(i;}Ocf zaV?Y55`FDpBy~^LMMpG@rZ9QEQB6=mnVa@luk)BAbhFpwmbxo=S9DE#z)edUW{-#a zhGS?Q!8Ot8gmb*Dc3KIeCq>UOt2BhY?7)DU5(;R;x_CIy;tG7g7ou=KlIfRyd0`m6kq$fH#EM5cktf#-s}&g zKTiB7_zYj*D}00R@B@AV;7JUiR~H;c*In?(Gydp(`_wYVy*up*R{g>Xy@6pDm_zVw`)gt+HDpg=L2mxDxrAR)T zDgdifI!ogqlFwW&cr|2J6)UYoc~n_ebj8YyB?RFj{hkZ-YqFh4e#I-@rYWO&o~w

h_6iNEqT5Ax0P}*B-vU#@KCfzhyDwTqG z5CkuZAc!b<@E{^6;=zN02M;}X5|!GE5>qG z@~V_wFsf*ZPI+B9CD(RVRQsA;v2z8Za;8vdPpM*d!M2p;ILo%F#E6-G{ZwoC427tb zJdXjwE!dkw!ypXp1W{kkp0UmN-x5%1yiw3?k@c!E0Jlz~e zhvbefX{d3&4SQ!t{!jbg{iof(d)hsIzz_KmKjCNmf?x70e#38h^S_+^^BLdqd;Y*5 zSu&AyZz3@y848p1QClS4pBN&UM!FwmfDKLHwf4 z_%&rVlJ4_M&tXe#pReXfGPTYUmF18WL$X>wDW*u~NtQ@rzA4alNidCMWN-jg*h*4F ztH#K3QAVXh+9gWyOLi$?Q&aF+^sxV3O8t66yD@E|I;BDqB>Vj2k~YgaRm&x{ThOLh zmjl|J*TyeCqTM-dR&`3JNP1}x?t@Q)^B@ayzyf(-zy+`X7J&_x!h~Bvg$!>8-vLEW BYgzyR literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-vb-p b/usr/share/terminfo/t/tvi920c-vb-p new file mode 100644 index 0000000000000000000000000000000000000000..0d96cdbfa12ce5c123c59360f6d1e1b3d91af743 GIT binary patch literal 1167 zcmchVO=}ZT6o%iUf-ySauF?y2j2V(xLq1B7(j+#mvBpqrC2bdim`SebXp$Lc#z;l< z2e=np`Zrwq3q)MFaN)v*3l}b2xDdyandvm$Xh3k_x%a&1p0BywS$c_i97TqDZEZkExBFIuuMw~eke)z)?+%jqksY46*sYTA(fs=Dm=6HDsQRNJm=8~Q_6I!i%@Wg9~`10wwW^J8cOF`R+t0VjD? za2hi>%a-R|L>+5vHGI|Nb)C6^9bbM*ioa^@8_Tc#SvFiRZm#`(32p z;{!h86F%b$zTz9c;|G5Fr@z7&P*D9yxKDPR-abahDb5v?Lse#cHOK3@L;mUO29f9g zDSO&(8f7R;1uD@ZRj5XFYS21u{+Hf=o^gwA(QWFIXeP^re7-80P#_jCn=F^|Rfrb5 zOT6zT%f$=TaSV%!W)-xQn$qUAj%F42O~f(B&+`;NO|g?KFN{NPa!QalR?VQSNQ?V1 zF^Gu=VVlt16qQRVM@6HEN1`TDA|cYqJvOYIv)i_1&TZ?CbaRf|?bt5FX4tAe+3Fb& zL(2-N!PJ-)W|g_Z)S0Wy8gorK7f_2F5m>;3teaKFl|O>I!u?5%w49( R>@o&(PXXT!M~KS@#&4PpT$TU; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi920c-vb-unk b/usr/share/terminfo/t/tvi920c-vb-unk new file mode 100644 index 0000000000000000000000000000000000000000..1cd3a4bdc9f0a2c4bc1685b6c775edf8215079e0 GIT binary patch literal 1160 zcmchVJ#Q015Qg6YB#gll1rkwK3Mo1%${-kZ8EGm*j};Gro&a z5P}~-4LyH@l3#!j1qB5K1qB5K1qI@m`^d#^fG83tJ-hGBzB@B_x^a4eX&lBRwa6YA zmkK#OGte{J-K{5n*c=VLBTj{<>~zD1YO6J)rA*mat7W)MMVkFxy&%(;YMR}a>}eZH zc2vjg??|&}8)jF=2Zm+nZ6$TpZpW|4t|>L!?i>2Ht*l89;qQ;bej&lxGEU~J2QJvQt%q^^YvFmUgHKhHFzdjA~&ja<6_g8q0H{prnyk-3^jNjt} zKH?KT;|spx8@}TQetM_B0uRWqekj<7JMKpxp`%w4vZZvShy zIGv>_I!^_V>0~q6E9^={F~Ps*3H~+3dZIYvT37jsf6tBTep!(gTM^NT zh=)O&AYB)87bUyGQN$xr7AX-IX=EQ8y{xsV^;Oo^bW7P;%WgIMHpK0qRdu-4GaiQK zW1t#SW-81AbB(Doi_8*pJ+?P=8DbvcXov={o5wN!D74JnV>Cu*noNsP%zb8q*<=jn NK@9w9*dea&iQly3T?+sJ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi921 b/usr/share/terminfo/t/tvi921 new file mode 100644 index 0000000000000000000000000000000000000000..42717443b97a41b5035948e0feec153a0d698652 GIT binary patch literal 641 zcmah@%Syvg5Iqq^trmAhIv^KmtXMJjfvB{C3#$vk2gL`tFt%44NZZiFisHh5a3u&L zf?E*;K@br^#FhS#I*m!`qT;|gbMBnEGZR)85JLw}@d>A9OeNySIcdr@qaZ7yR4GVP za7`Q-PEpv0wrP~5u=SD@x-BeyPl_Q?mAWZvhS=RN=N+R`1{5d?I9#fW7U4B4PMGxl$XdSc~NykUnrQIOyfg%9Sr#wu8RF(C3 zy*U00?lEbQvT+{NN3)cMc4SzZUDT^mbMzfsI-2bi@>K`40-EEMd|uO{kbkV_){hAW L5I{HI;O_bXF@hYP literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi924 b/usr/share/terminfo/t/tvi924 new file mode 100644 index 0000000000000000000000000000000000000000..3795fd2d0d5d36ab79d8ef4aec47b17d95e58aae GIT binary patch literal 887 zcmc(dO=}cE5Qg7Ef+jiygv6``VMT`x3GU9!t|k!;YLd=}x~^eKBm|c1M|AxlYi0~Y z;=zM=Fa8bxh9HOsK@d^!;K73j4<0<|_)cfyAz-e;JXO_I)m7Eqb6f_{heP;?P@>KD zcu?A|w(hkS+s)Q`cEy zXMDj|e8YGAz)$?*s9n-6j`Ye==@Z)|K9=f?)hdH>LR=Y=5y^`$B^i}-X~s_eUOBN( zbU~_&E|Fzf*(Yyr&HuBmNkeYQU0D~MU`jN6WT;ZLm$2BYEFlA z%IG9>wCp8CHa!#`wL69I_UcBf5Utk3R#XV1W@CfH-GELf?UPw;+x~QBx#&PHk$G~N zOp+-wO$?bKvt-Um4w2SLj$nM4fRd^RQ-V1Ia~5V4W(;PW0k+z<7vlfDwlISp=pCq! SZs;213M*eF*GQRMckl;nB7|uG literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi925 b/usr/share/terminfo/t/tvi925 new file mode 100644 index 0000000000000000000000000000000000000000..085892f86c89b5514efc25dc68e07d606fd4088b GIT binary patch literal 561 zcmb`D&nrY>6o#LhG=5D=k(`p`vJhs*Oelmg*n?RypO=lg|lXZ0)2wBC-96)M{!ny^vb3(G!lt zZ{-yJoFAz(isw~|OqQp4o)@5q5=!MfuZ%{TvA{3ZbMCj+vv`_8^)x)Z1PF literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi925-hi b/usr/share/terminfo/t/tvi925-hi new file mode 100644 index 0000000000000000000000000000000000000000..18d282dface3ecc88db7dd597a5ce93941753003 GIT binary patch literal 601 zcmb`D&r4Kc6o#LRh(CwGg@^~_5?(Dtn;8`oG^R|=K+sTAaHG!Exi!rU%+*o~A_!Wv zaN)v5ixw_iw1^;xhzNve)4$~PotZo6AK-!Kdtc7^zH`pK-A;x+8u`F~!o6TTJvx{R zUN8B1ejPj%_Jjma^1|zqR1Ds z(h^ZUEGnkEBb$o$4T%O$KK#iyIt^1KXk*kxT| zs>~sdal-YKIb+UoflIDexaQnEZg7h`&%O8R!=K&XZ#@3vH=FeIbLSZ^Kf1B=6@K)A zlAsMxT(!gMkQh=&)r@NEbs3CJXbA++j}FlI1iI11RR^U&tHD@!gk9S9Qw|gaEkrz~ zK&r|*^h-Jz(?cOGL0QzgEgGQtFhAKtGZceXHEqq=F-lT%jkF_O&2h7tk_%b^&GB$v Xv|(hRzP9Jq*7E!KFYDxOYGd&UmmMWs literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi92D b/usr/share/terminfo/t/tvi92D new file mode 100644 index 0000000000000000000000000000000000000000..4823b47e31374476bf4d03d52c4dac3e1aaac863 GIT binary patch literal 617 zcmah{-zx-R6g?xtvK}|Nr7!JRA+u&Tp|M44yvX{oW#vJ$J7Z16wDU#DU*OfBpu9@T ztCUh+B`L`he+GA$U8~5gbI8W<-880PU)8V3)Aa32_ST+0)PY^L0;XkXDlLZm*0ZW-5 AEC2ui literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi950 b/usr/share/terminfo/t/tvi950 new file mode 100644 index 0000000000000000000000000000000000000000..54b15013022fa6efe0f2a16b11dc578251344c4f GIT binary patch literal 978 zcmbu8&uddb5XZl(mKfu!)oRd=$V2i>siN;CY1&9F+BUyxZB>dE5p0{pm^5lz(>8*K z{9%G1f*^<>c<|uCg9i^DJb3V6*Y9rPsl60KJ~Q8)-8Zwd%MPd$IENm5#<*&3)-uEX zi}^~Ua;H|VJast&l>K*%;())7wX$OrZsH(LLTfX%pZT;7;Se13QEAF9M~0)SpRp)8rDVsfso^p@vg^#= zcksVoTvk#^$PlCnc@DYatp;A)jeF<4lDC@pCwZr5c+-awf!u}MhE(MtKaD}w zAo*06QHbYJ`;hgHGjcgLmhk;c<5D)&rgAbVWv*e0b(xd642maPvLF@rNLU);2Wj#B zl(hVITUvoJiFP|It)!7Dr)?|Wf@HZPvva$lXtx7()qyIKYh;27mHvdAW-4hayp?V(;+$v1M3vrmd^*PAysW;W-xW?R$Xv8idtK7a_KxJPxso=qQ) z^DUf)ix>uNG>l#x+aC8<)%ILJK}%K{mIG=|Q{St-OBV zm;Hyug8$NFz}y*d%}Rd7e+5YN*Nw2juWln*H*yb$a27!jW)5)fAZW#57-**of|KaO zbt*e*xwIZhB8_4C(I}dU>~v&jF^9)gPmzaDzlL>eVVCL+c}s%e9p2M_B%jD~B|BXKz|;n*O!*zlL+igYz}J+nW1Rr>af9uS8ykEA5M zCmYT`!sy&TGyALlKYGuL=FrNk(gd^@x(VHd-mof;)opfL*Q{l$;x;Ak^a5}C2-={J zp!cCG`iw(6p$m@o+bI*e4xR8C3_&f6+GgHu7<5?Zk0y}fk z4V}?$?NLj2bY6Y)SWHW5J4v-|PpfvVrd202Zmky6Y9f@LQEL{7L1&>Et~A_Hw9t;m z&g7;6$&p)Rl#G#ak|9|#K_(4uvpGey*%Gu2%|jP?1iA`!z#`l{RwqjnpTv>=S3v@MZQw7P*Kb nStWV0M3zZ`_=IOJE9AL>Qq~EvLlY{OB#1`_Ns^?<5J}@NK9!n| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi950-4p b/usr/share/terminfo/t/tvi950-4p new file mode 100644 index 0000000000000000000000000000000000000000..d00c5c58da3e24231524e4452f3ea6219972509b GIT binary patch literal 1020 zcmb`G%TE(g6vn?3C0KD3UuZZ!Mr9}>*qL^CG(n<3%R>b*qG&Lo(6N>x7UWS97u^{D zK@+1fF)=YFCN5mKaAC&pPTLi3NSw^?obR4+aC+b);Ui6(r&f^2RV(|vBQUw-`{ zSPdQ)^TA7-0edIm+vQv#cm+uG*Nm{iuVy1zGjb1ya28=`G6y(!7&hZDEVNRE;Ysx1 zI+Yu>lC(bQM;b%)BT+OH+3Cp6Vh)d~o+5{Uehur`!Y-2ofA4juRF3_=};+GRdf&u`S)CbrZulyu$1u;xwuv8;}2o}D@A zhR$eQyVTJgo!7uV7SoctUcb7ouNAji)rx0KvRaL4C1s>XZc7TQ+d zncTD>ljIf|A){oBWJs2blL?F4Y)lbtwgg>;=Aer_0$qW6U=eN}D-)&h)$EJR+T{A} z&AVH7wr6&xD^uX1%9Itojuy1x3Dv>q3+}pK^`^03xY`Sf;ty_Td-@qs~_ypFMfl-SXz%V>d_w47~p4X2eV?;FzWoXXYUpK?-vtFisNC3~Gh>YotzANr{w6g}8)!s;cCnfwf#h UV{4;TlB9@3#z~q?kV%rkUoonn9RL6T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi950-rv-2p b/usr/share/terminfo/t/tvi950-rv-2p new file mode 100644 index 0000000000000000000000000000000000000000..250c5207b0120058049ea841c1799c69879cb892 GIT binary patch literal 1034 zcmb`G%WD%+6vn@cl{U7~pe1NeDMQJa(3)m4Nz(*c(Y8sNT3ajC`h+IU81t|uF-=l% zk&XBV3PKSCK?K2t3l}bg@taA+Mcot}=6B9_&$+L2FLy#ka2029jK`|gE~n;=aI+mY z>#ujLnsvWiv|ehAX-%uGwcS=HVrun#$$AAS_wO6U2EV>_W#1^=!3ZwHww=@&u4LQ8 zI0r9$RJMHy*DyzAxGj@5P7+9Ak$%~Yrd_+~+HKs!L#n69!=gVx1BW=GdPCk4+kS`l z^vC1_`G`;WO#cO6X}{q+e&8p5aj!#aM2#t*8drXGMNKMatZh#Xyr!m=KG6Nl>1;^N zo)|r+48~$4p^_)E&iqS^?))=zy4C+j?_DK14D+fa2AP4hAV-iTy&lzrT2PBs}IvzkvJkpIhGVbmDU1S@Q z=0=@@+-OPBd#khAT?fxpt$X{gV-$Woq8xHh&WCZnlu2j^Amm0pIFF0$Gr?7- v`A%n`_PC2OsgOJ=kbP1l7U7wz5_#@LH4}9(9OEdH#7LaXlLT2HNs_{E-`bxe literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi950-rv-4p b/usr/share/terminfo/t/tvi950-rv-4p new file mode 100644 index 0000000000000000000000000000000000000000..8f664ef4b3513f70b3af6918407e915f8b05e777 GIT binary patch literal 1032 zcmb`G&rcIU6vw~gFDzIjNYL~Vve7O@q;$7k3XNzKXiHH+h^QD%Xz5z}Lu_j)CGpUU z@$WM+F(f7?#>B*f2M-=RxPEtA;{h)uHvPQ!o%d$;&6~*tR0LxNqPo zP7iwF#{iY%oWmrhs0?ourL{;L3Cz*Yd(ot4S3J9h4Qx_9K^8Xs4rBxw%a~w#awCm+kZ=} zL6Y32+m5%(;ci>%h94?JZjyPjKo&`oq)3`9`Prj%KjC#+hEyO~$QJvT62yeh>l~$} za=Mawp4`dQZZ+=g-fph$t+bZG6IILp&fDn2Fdk8!@Xl=jLwqMA&=AD97xkeZgPap! x)r)+k6Hr^+MUj+9mgLAb$rGFK#8rVj^P`+HT@2T_DoSF+BGV*JX2>i_;5V8WpIQI_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi955 b/usr/share/terminfo/t/tvi955 new file mode 100644 index 0000000000000000000000000000000000000000..d6e599d0e54c600103dd188cf28ff57b8816256a GIT binary patch literal 1034 zcmcJO&r4KM6vw|8D>I#pen@yCB<7V!OmE)&P%~pn=gki@M+*yu)ai{nB zqyHiZA_#&Yh#&}Bv}n^NaV)(TroG9cXG>JTmj1a>jP!|DXskTQ^;UD_QQ2+F3`kyuG@?q@L?Av z*WCj@vvlJqR{>ZY!-(QI1`(rdBjtIy?kLV-lJXQTA8yMh!~o^Zo1B zq_(LRMrhjW9E1c+zOn=?w4s%A5OM)B0a=iFZudhH7IzLt79lHK(4GkYrVnCJ zG_|=1DQme-)_=k>&0{CU(Px+*3>C!=iqr5FL+C#aiR;|;BQlGZxWhAe2Uam3REnG; zr^yf*CUIhu1WEdI6^&RUkTffipe`l@nS;zihHV*QL1h_}BhoEva#3_j2ClqlL);#X74nU#@iuFD7v(&U#sB~S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi955-hb b/usr/share/terminfo/t/tvi955-hb new file mode 100644 index 0000000000000000000000000000000000000000..dfe4c1f6f7da435fd0c9ab1ae62496452cb5702e GIT binary patch literal 1052 zcmbW0&uddb5XZku)Ee7ZQ7O_936iI!+WPXdtu+#Dn>4AlX_YE1*d)HBN&B>EOj8RA zy^8;ZAc!Ccf*^t*c<|uCg9il<9z1vuK@dTZ#_ztgAjOMa-e-4qW@mQhEz_=!;Rsy# zfSRh-N`2vQS21^MeYu#o^OGejzu=|9Tg=*pu3V)wTdV@g`5F^tJ(O1dJrvT|i33!* zupRY!6L!IaJ(TM8eem(#4jkvM8v)KCL~s&O#3;v+#He#_t$qQMl%{Y6Ij#ki9DM~# zSix<|cgS5wcMtcuKEOjf!eczaQ#`|SyueFpU*R?0;4R+aJwD2dzKx z3%{KhYfwt(x7FcNJCvIdS~f)qavvdms(+KEaZ`-i8I@C(Dk%G(C$^f=|NB*xB+wj2(8l#F({haT!d7#+#u&W6)?>cr^V7aOh<#Z#QkDzoE1YDZX7bC?{1{XTbzsA z9D|dvig}=tl%kuTzw^v9=cW%6|6GL3r6M9gfybzr8%u&b$w^gF2xytfNHc mNS5TtRbr7m;Y+AlQuJUx?$?-l(o%o~Nr;3=g!GVJ(uY4oCX-MA literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi955-w b/usr/share/terminfo/t/tvi955-w new file mode 100644 index 0000000000000000000000000000000000000000..437f5ce55ad2072f1879c3c01210ab1be65e80af GIT binary patch literal 1048 zcmbW0&uddb5XZku)Eb*uQ7O_936iIwX#4W=qpdYkZJQshwLg?9E!Z@DNs~01H2o0^ z3O#rc{|iA7K@bE%1VQlN!Gi}63LZRo@F0R9f*{84zF3gr#XjC=c6MfGXJ(geQvn=- z3-7S1mRAcsk;w7d^@hBVEoCPQcDC%}+*j)ihAiJ)xwHf*=Wht=`cvBY_or@RCl1i! z!gkc_P1pr5_E4+W_rcGc0UYD30~Tc%QJg>webnPfIjidR5uC>)^(kCNhGPx|$5X`$ z)^LOREppqj-N9Xs_i!H%@DPvi7*FsN&+weq7kG(Rc#SuBi}(0|kNAYo_=2zaM(=n0 zz)xq7UrE+oQVo)`;y9B9fy+Ou*(lX7?Q)25HremSJ#DijQtQAAJejGBWb2mz47AJA5 z<8TUAeO{;(IZe)xelkD?Nt`4|(yP1J*lQRv#7-orn;C=5Leh|dxb(B3s*K7}2}n&Y zN!HgQ=9om+#jHqp-D$R{T&JjQV{ab5mHm7_2jSyu2{=|a$Qgg2q)N#2Wvcu-?%p*4$yNSH)Olys49(u3b|zmcH; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi970 b/usr/share/terminfo/t/tvi970 new file mode 100644 index 0000000000000000000000000000000000000000..ea93bd6aca903e3d0846094f19ae58e93b1eeadf GIT binary patch literal 685 zcmbtQJxjw-6g@$Q3OW|0&w`=>#la+0La`XC1w*ycf^=v=P?LT@i$z2nba8QT(8a;Q zf8cL%5C;bb2L}fS2L}hCp7;7%ad7g%`MCF8?mJ1sh+_@|xW=q;aM(z@*70W4jLMBL z+M8en80Z~?r{{mGY8yqwFvg1x&mcLDBqm|fS;!(s_0?UTynzzRs9=jeRNcDbBgLK0 z2~O$GaE=S=C9at8M&I3Py`$c1FW-FV`$xJbJmUqgc*8qB@QE*V3qwvapVpYxZukE@ ztoDuSt%*OjkN5jYW6BUg1tKsTX4^KyMYHXg;XWI_2%J21jgYDbR)1`FwhEDB&*$G4 z!3soyVwXrof<;YKM<8aFS$U4tB)fGzk*c%lwn!gX?`l=4bLCOX$z!cmYE)jOWTU G42^HP*(Zbm literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvi970-2p b/usr/share/terminfo/t/tvi970-2p new file mode 100644 index 0000000000000000000000000000000000000000..c1aa0da122667f39374dc4cc65a1c7cd4f34136d GIT binary patch literal 729 zcmb_YO)ErE7=BJHD9VD8le*%HBzJD6o5;;anZ`#Hvv5n{-kG^IV#drpT)V*quyL|W|b$0MFI=vI%Hqf(TM z!>D30unywgqP4dZZxt-ps;(EJ9jlVJ%2BzpeFzBDmf))S->PG=hz7LtAmOSfx1keV zu<0C3V49lIXIb(BmXO0L*62f>7BwGfPLdOx(w*TP7t||U;|90p?9S*t^}%>`=i|43 zqI<>*Uh#%^eDD$VqCu#dCe2CGVzkw$I{S~+uKRVHuDySB@B7aC#gLG}Dr8{Cb~R;( zqjuG`!)*o`8Ms;METPmC%>3A|+C1bmvkZS<22+spl++Swk>I8v^UaWbliaPyz;~Sz z*(;i&;UaUdOd2NXDz)L|SsCP1Tq3DRAzkhna~)@BTyMuzyA<1{MszzG)!ZX$!_Vod sc(=b!Y!I77NJIoj_X`AP@ME^m5b7;_MKD2_C$oGWjbPw=Y8pb9w&0;myM+Q0x+^NbpcIwt8TU%<<%AGcnl-b;o4Lq*EtNl2l6_ z@)VO~TEd+QkAH^Dus$Ql*&Ju*)HoVB+#%YVuc(!HvAaQ3iA};M0)l(HHG(_15%0+p X@*#YJH%sXEvb}(m+{$(2THGEVM8z|d literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tvipt b/usr/share/terminfo/t/tvipt new file mode 100644 index 0000000000000000000000000000000000000000..48e21ea395c111090f859867189d871ca0fa84e3 GIT binary patch literal 466 zcmb1QRANwLU}mUfXk#cT%Pc6V2}#XK4a-bP%~vQ$Eh^5>OUzLyNiE9F1Tq*H7#Roy z#sG%@|0RIx{zCyX11kdun8ytyRe)Fx%+mmpT40tAn1rcErcD@ZP~=<~+~IsLAS)1v zvw*k=F8cp}36x#NP=O>0GqnmVRs)r(gVGIHRKj!+LpL$BFi3kcNHIuwf!;AW5xQn4}BvSW~TH*|26_5jgN4j|eMjLM`-rM(&S tt1=7pi!&07QuRv`lZsPI^ovVUl8Z_hq+KDpIT*NrQNjc_RfIu^0RUQI>;M1& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tw100 b/usr/share/terminfo/t/tw100 new file mode 100644 index 0000000000000000000000000000000000000000..2a11195f312359ae5f1b427b68de3ebee0f6a26e GIT binary patch literal 1430 zcmc&zOGs2v82*k1SyZls@IZ)go5}}w9y-bR%97NQu{2Yrhqvab^PX|W$7r;P7OjF7 zEm{Rp5d}gK1ws)8LMuec%88_dn;%xl=7_QH4tA z;&oXzZ`bw0P$H9$#A}9!XlkhZiF{4Wh#R3m8tM^6f+z}s0aRc+R@GB(anV(vlO8C; z2Ch<#TI^KyJ@B9%UFfDeh(7dVkZKsCs(KQq;YWlzfvn2pQNVes3%H0&L&Py+m^e<1K+0~&UdjWIXXv;c zFSqCA&U_vAsBBjpmTfQ_ed_T2C1D;*WjafOQ;He$h^oXvtvrh!2Yj_Fxn0>gwwo8X6mQy|;I4%rJt%P$(Q8AD@_rMq{yfJdsEyQ>k=1 zlgVZ$Cv&-cerjrZdS+&JwosUxo1ZtQNM1w|G6l&i%0OlzCn0l?dB`cqX>QJL-j!4L zxYRGZCd^ISbemSE4H#O77BZA;)3Ul2P|j}C=v^G0 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tw52 b/usr/share/terminfo/t/tw52 new file mode 100644 index 0000000000000000000000000000000000000000..c5552ba9a2971edc4175086636d6e0a95cc7c3ac GIT binary patch literal 1347 zcmc(ee}vOv9LHbZN>|6!pXnp^&(oyRHs&HVR~@(NxU0KreFnx z5fKp)5fRb<{TGo)L_|a!5fO33x6htEJ9CX?q=(Pv^L{^{pU>lYwt6wPv5A7W>{Y6X z_TX= z!wxn1zt@Z23$Kq5GK3sOjv#4MjG0I{Vs@IGDaKn6Ifx7+=a9ol9yx>zA{k@^si~={ zzc#8erlNuMvnq<~if3g;x#XoF*`(y6$T9t6*KAEqNh2C~965oEBNNC;

t+j+L?< zv$mIQ8tU&<@gg#%-%(O*w1ettCXpOcL}ri@QbsDs6-`E}$ehlJ__RiHlVwe^aRXPQ h3ueEmBu(D30n4I}#S)edG-)JiFH4*Cp88+9{stBL^;ZA@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tw52-color b/usr/share/terminfo/t/tw52-color new file mode 100644 index 0000000000000000000000000000000000000000..c5552ba9a2971edc4175086636d6e0a95cc7c3ac GIT binary patch literal 1347 zcmc(ee}vOv9LHbZN>|6!pXnp^&(oyRHs&HVR~@(NxU0KreFnx z5fKp)5fRb<{TGo)L_|a!5fO33x6htEJ9CX?q=(Pv^L{^{pU>lYwt6wPv5A7W>{Y6X z_TX= z!wxn1zt@Z23$Kq5GK3sOjv#4MjG0I{Vs@IGDaKn6Ifx7+=a9ol9yx>zA{k@^si~={ zzc#8erlNuMvnq<~if3g;x#XoF*`(y6$T9t6*KAEqNh2C~965oEBNNC;

t+j+L?< zv$mIQ8tU&<@gg#%-%(O*w1ettCXpOcL}ri@QbsDs6-`E}$ehlJ__RiHlVwe^aRXPQ h3ueEmBu(D30n4I}#S)edG-)JiFH4*Cp88+9{stBL^;ZA@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tw52-m b/usr/share/terminfo/t/tw52-m new file mode 100644 index 0000000000000000000000000000000000000000..e1f32d3c7f63a93d2278a8f4e9c10e755f546ad2 GIT binary patch literal 897 zcmbV~|7X;39LFEGqBUJVXU|{mmrq+N)iENQY z7!J#o@j}8d7FH7ZOd)eSS4!l=LYTc%3iCOL@du_H-7DFL>#5SGH?*eZ-rqP2%;cS1#|h$v3>^ov(WTkJa@qjr516 zJw7(c`1Du&^A67!zOu$T8+_wCn{4r8N3_vK|Lgl{_Yg-t=rZa>>7aNj=ty(~M}uro zOx7tnk1nBG=pxFY3#c1qP(P}gs#?4{U>G!5V(q5Ec+L2fCd^h&;~G7u>`ByTclyZn zw30Nk#36JA4Wkis631fbt+Xb5e2kHH+EdK(hmyLQl}pX6n45Y zG49wIH!e(!3thS~E_A`d1@T|-8|t~QC5FHcaN$eux#ymD@B6rK+RvkOn!2dWn}OO& zHCV`%bAEBYnO&+!&5+fctb5+TgL8D`|l1bx;Y>Lwjx(zl%_vs~@A8NT)n zUhTwf^>Ezam;74iZSgz)0QR|4^_9Qz56!nbimb2${+llaTCKsrF!11*g4#HA=3wrB z<=^PQTA&#)+!P(dcWt<11%P!IFar~>imGC&tfMNH%I4`fq-mJxSP! zlEA)YQRc}+#~Sd7>kG!bkv_Oj#F=nR%Q0;y5%&xiX-Tsx2konn@f7)SIl-*Hp!B12 zBX<&9@3Pk$v)%{E(m19utTCc-Tw_$Dtx*~`3%dnF*CdpV=?2Rtn#}DH*-k4`qKVXL zA}!ZM%0or!#=(l95dnQ~{ZJv5kgUp>YO0zORgT0KXt+(oppiC>fLd)D1+|q^lH{1G z^{8C0a@wc8bLhLu8>Q2kOg>*IEDkMQ^)8n#mPePDE0t$ge7{<)4c3E=;gyl+YISvO TZGFAj+}POM#7R?l%pUp!Q1b(^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tws2102-sna b/usr/share/terminfo/t/tws2102-sna new file mode 100644 index 0000000000000000000000000000000000000000..6147bfbe13fe70b181d485e51e8bcdd723b7eddb GIT binary patch literal 1441 zcmeHGO-~b16uq}0N=PUP2_IohY=TdsSnW(Zbm|}#)c65N2@4{FfkJ8dXiM!E0)-ei z#*GUTSGrR-CT?8mLKh}#;@|Lx)N^0k1%V&n!k3Ea>30Q4( z3VAzqQaAPLnE@K6Ael6R%%M@bPPd^ZX@=$yS11ME0`}=CJwtp!ujmcpTY66)5Wmnj z`i@wy|D@mahnPjTf!np}U_W<%aJN!hid(JQUHPpLi)kprspSAwlbYzDg(7(9HSFiW`&VY}Pb8zQRoH@Sszw>W& z!1F!y8Qub&#&>Oa;S9*S2bu&Vstr{zRmxQbOQq7(0qYK67V-ZuydrQzEW;Z|5F~(U zAmqlJs%&O>Rq|`Y&LPCd){Vr2SnO)dF&4FLi5*$j+7TUcqens{M_sUULPxemSym>R zs3OL%tsASx^6_(Qcg!^{*L2+YXx8wsEMb<6MZ@bWkgcoR> zK-xn3mG#YpR9sdS!m6gqZdAFFTab~4j6m8AX+v5K8HIF|o0G*cRrag3F6B0!_O2W! z7fH*@$z(d6$!uQOx|BVi8_ZwX-Yyg#T`U$$rSecESRLNE{8;Vo?(OaG*J=j`hleO# Iz`gnDFP@0_P5=M^ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/t/tws2103 b/usr/share/terminfo/t/tws2103 new file mode 100644 index 0000000000000000000000000000000000000000..213d40fd7cda69568ce0c0e223ef9ca9af002a57 GIT binary patch literal 1452 zcmeHGOHWf#5T0p_q6SDbigIIuk0U_@dv9BM>#bDKL?WOyx{>RmD3n)QYG1qxJ6)L= zckGNC7beDqF5MUxx?tgg@Gtxg^_%G>hQJSS;YsJ4Z@x2g9&>Ix`2wAy7AkN(R9PxJ zb~sXBo?58ZhpV|<*MsVGxiVSm3TB8{e@$SP5SB*$8EOP04ebyeM%+TJbb?OnOeghH zAK5g3$fYFRq&r}vbe|r==coXz!d}oTdIP^nZ|Ob!NBTrx;J?#P+JbL1e$h7lrsFL9 zB(Ou-Sw6?-*>Df{vjb%SmgHd`;d}guCpd#R3!CQxP)138jaP!WsUD2${E}a5-X_1} z4`82zs;~Twe<xt!u zy@XqnWi7u(ZI}*wu{>OAaQ1JS%8tm>+quovIsqIqhEoEO-$EXr~+5m*gAbz|0g zW@Yy86Y~Z=+wpAIOC@ubkF>O1mVn^*!v8x@B9L0!Y zR57MFpcq$l6{T@wu-hJ5{7aiPR~PmMf9+@Eo<`U~`}`0ll|A zRM?~>s~9nLQ}N=)lh^@`Hfa`HIqlH{UsYZxlbM{% zW@l#Rdls(dF6S>6t}QMWi_fo=O678;yV_UlUFu&pD=Vw3YisrT`ufHO&N+dnY@bbA&g1`@O;Y-iC=brcOdo%Y<18h?tby9&J_$u3F z%M3?CYxA}=)_ncqyYp8dvs*n7MKWqK9<;V^{pnq|nuhAIv1;9tg8Myb3ojJPpzw>W& zVBY8X3~zx>;=4AyNET$>22BAH)w(L0D($MGrP3Mdf^`cpOZa~nUJ1A+mf=kx2$H}I z5O(8EO*S*U8u_(h=MfU)YesTD9={xSj74o*Vn^4sc0`BW*r5>3QxELC(4lQnmXnDV zYKVy|YsQMPbo3nC9d}L3H61rGmNPsoOPXb4(eMU}WGtg{TECGrp#2Jy(E5OOGtBA$ zEK74lb5ygfc~o;uv!hu$H4R(`&?ZTxMY^MMh!!(#A;)P)O09!U}k7%n9Y!xTdbRySDaZ>np2XQn`i{3Jw0nYeS;N3!Ga2&o(v3(41@t= z00Reu1jBzgU;y%Y!F(YGRWPjqCbfX1E|>*Zioq~oFa@iyf~vD)aD(gc1G2Kjm zDGvr|7hp(9J2Oc80%gr}frJT&0AuNBLp0jX&?HAX+TPIG-qhO2AV=B`q=c72zbdmp pzc?eYC{@2CF{wDUM8B-W(7*s_juQ|AEs1skVxT3_jv$LT830NF8%O{E literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/u/ultimaII b/usr/share/terminfo/u/ultimaII new file mode 100644 index 0000000000000000000000000000000000000000..342d68bcfc4eafe60d06077e6be4de2b0f8d9978 GIT binary patch literal 521 zcmb1Q)L>9!U}k7%n9Y!xTdbRySDaZ>np2XQn`i{3Jw0nYeS;N3!Ga2&o(v3(41@t= z00Reu1jBzgU;y%Y!F(YGRWPjqCbfX1E|>*Zioq~oFa@iyf~vD)aD(gc1G2Kjm zDGvr|7hp(9J2Oc80%gr}frJT&0AuNBLp0jX&?HAX+TPIG-qhO2AV=B`q=c72zbdmp pzc?eYC{@2CF{wDUM8B-W(7*s_juQ|AEs1skVxT3_jv$LT830NF8%O{E literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/u/uniterm b/usr/share/terminfo/u/uniterm new file mode 100644 index 0000000000000000000000000000000000000000..09a0caf503c0e9264e2c02d396e84d64aeb9cd35 GIT binary patch literal 1431 zcmb7COKTHR6h3z>_yAofigY#+dW!`iGj}F0r%q^Os6QlI#2 zEYai6+EXUkTtm4;-4I;rm;w6w^30?ek z2^yzeWK+az2O^O{U38GT=?F=#_tA0chZ^8)5PTLGrVE^3r0aBpRTLFC`c$I^tJ8$hq(KPZI;fuOhhq@>3i^qsh+pZVlrFaGXrk%e1@f`mNIWOywW@o$f_r#n>?J@-th;1LKkLN@>O9YQ=B73j1JBzpL$4NCdY6QtVS~%qGfcXj$sS;X+A*E+Z%+D$Vv`FyD~H#a|j>sF;wt=4J_3qi2BSg$u4VYsxk zyu7lqx_bNe+S>Yhv$?Ucsi%NrV8*BQ=_%`p<`mCQ@%&sa@Yq#L^Yj!C(qX%!w8vqO k!ya2-KwLgt&jOAnm#l%ZGUr*ga@<5RmCj7hqBKiC0L|5XaR2}S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/u/uniterm49 b/usr/share/terminfo/u/uniterm49 new file mode 100644 index 0000000000000000000000000000000000000000..09a0caf503c0e9264e2c02d396e84d64aeb9cd35 GIT binary patch literal 1431 zcmb7COKTHR6h3z>_yAofigY#+dW!`iGj}F0r%q^Os6QlI#2 zEYai6+EXUkTtm4;-4I;rm;w6w^30?ek z2^yzeWK+az2O^O{U38GT=?F=#_tA0chZ^8)5PTLGrVE^3r0aBpRTLFC`c$I^tJ8$hq(KPZI;fuOhhq@>3i^qsh+pZVlrFaGXrk%e1@f`mNIWOywW@o$f_r#n>?J@-th;1LKkLN@>O9YQ=B73j1JBzpL$4NCdY6QtVS~%qGfcXj$sS;X+A*E+Z%+D$Vv`FyD~H#a|j>sF;wt=4J_3qi2BSg$u4VYsxk zyu7lqx_bNe+S>Yhv$?Ucsi%NrV8*BQ=_%`p<`mCQ@%&sa@Yq#L^Yj!C(qX%!w8vqO k!ya2-KwLgt&jOAnm#l%ZGUr*ga@<5RmCj7hqBKiC0L|5XaR2}S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/u/unixpc b/usr/share/terminfo/u/unixpc new file mode 100644 index 0000000000000000000000000000000000000000..b41843d6a40a7d583c1dab1a8ab7da28442fbab6 GIT binary patch literal 1011 zcmaKpZ)lBC9LImZmc~kZfx`9TzPZ$1tmod1u|>Pv%r^I)bFs_*ByGFH#kR{fHm)Rj zK~Y3e6h%=KMNt$*Q4~ceilQjxt#^;lIon=gPknyh@9&)Fobx@;vrw1HJSmZP@WvqNtBc9@#qH6oY3+z+8l&lq}9n-)>|>(PwNl=%#o z$P5X2N~K)pdbdC-q*4;HoUT^tsZG!#DL)&A8OeIrMco29$;+T08TK^{56GcOcVtqJ z%Sqg6I0NV40$h?S)N61#y(zr%FTPe1=letT6d z(>WT3i{SrHOqWbMKe4jnAMaFZLYHZ+uF?i=X1-O^x=ypWPTj0M+OK&X(A_$!<9bjJ zGkz3~=?OiBp4IbuQ7`LNy{MgMMJnZiDTRhaJ2_GUK!fvak_cHkaDv zgVl(?Q+mp{Nk5XBGH$saacjLvN|{95iY`v*ZR3^QH^E+7N|DX|D& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/u/uts30 b/usr/share/terminfo/u/uts30 new file mode 100644 index 0000000000000000000000000000000000000000..bc203b6df321ec7c2a80edaa17ac081201338ded GIT binary patch literal 775 zcmaKqKTH!*9LK-U5L6<&@x^#bE+t{O9xW*mwWWvx0&OT&OrxQ;g)8*nxVyHrv?RpA ziG;+&XyV|&z~JiY>gww1>dI>B@4a_dNlbjn@B91Q@6R_ccXxx`#t^RH1CCkU_hQjb z&Z)R=OUtk3Vo|MG^)0RB734cl^Ll{K7eY|Fbp7dc8aBF6n)iVrk0a%(BO9Az)Qey4AL6su(IyiGF#G3TX<;EA-iTj(CP*8hi=sjjb?Lyztw8D4-Pt= QZujtzE|Zk6Cz+_>57?MWtpET3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/u/uwin b/usr/share/terminfo/u/uwin new file mode 100644 index 0000000000000000000000000000000000000000..27199a39b9b2448a869591d8dae3d98d14640a16 GIT binary patch literal 1253 zcmb1Q6lV}+5MZcfoXl8So|#t@svn-2r(mpSq>!ASSDc@d%D}(~L_iE?fH)x5|Nk5e z|FHrN1_uT!pd14O6Od$K-~^g30#+-*pvj=kpwD0i8aV=~RX+hJ1z+hFXSZFu$8&0>d<@YM9lt!2Eeo(FH(y5nRPGhE)vf7&b9%W7x&8 zkKqu*F@{qN=NK*l<*z~2+=9~g;Cf)@qSB9m@=w8P-r-UC9V+)1NP|KM1ek#|8^(sR?So`FjP&kRxL16P4Qsh0;vFEdn3~v1`Y@#14uaou_F)% z0I{KAE|4?@5nz@Ph-Cs&We#G22@?;SZ<9!NVe zNc#hg_m2ePKp+kR;$R>S0pd^~4g=zFAO;x-a-stey8to7X}lnpgDnI(5zGK8NS2NT z8e_pAZO$O=0nGK<0y=`a5_*ybw-ZUka|Cq5M^IX==?EN{nau4Jk&95ssQh223 zNO640;nFQ-2g?stY_9xV^{M)C&5hbQb^m}ygPa!y#GueH1cf3n1cAYq0<U~t7 z8m9HMjQZ6Zs~sET{8lf8owjjOad;dlyIQvokGqazhmEOed%hZ1?0Um4&BYBnEH%s3 zdW*OzVHT-UpEGGijnQ&iONq1}5Q!}Mk=9Tj{X$yu{j`yWX*2CYZ#RvB$AKesOsW%9 zp-@zkG$qbchtAVQxQBULUDr)@N8N*d zpdLx)1^A_UrT$U>s(uSA0$*#tf6AAvvgq(rrq@4fwZEuzzR2{Bx$r;rUiT&IvUSzE zCSz_`x2=2D!|xj3JKMK2{+Tm!cU1cz{ot z9Vp43cmWanmjrK1GMksgz9qp^ONnO{!6#V-e5Qb@;9=9eU9Tp41qG~fOoKSuLCWMP zgQ<8$M;CN7pyRx&^DGUdpGqGxNTsVIPj}GI>3qnxAsyr9^fWF(=hF)up%pYSQ7X;M zl*=bio;p>lg<-wkXhhNMY_r*F#qr!+yFEXD`t+GI3kzq@b~@+IE%FKBeuVMa{d@y_ z+C?L0YvgQwNywF$RLjX4Ib=`lo?(wC9#1?jKTAAGJlZK-TXCQcD(GU~agFB(1G&MW JIZfs6eJJimFBh$l+OFiB%PSaH!;muW8&AKam-9IqcfA2%**7% zF{OnrN;V2DEfg1RH|?eySKV|ah=QOC{{R=_#)XTnT=@DsXC}&^C|)?f^E>DK?!E7x zdtaLxqEBcqb*KkME%IEuk}cP3?CV3rgVu>zP^(x0actYlm)A;PSmoth-dZn41#5E3 z>YtmPvQEzQPfMD3C_yF-re09~)C1Nh(ExA+ zHb#>Y&(Il~7Z%4k@kOdol{V;G`a$BW^b`F`zcn>C;BUho!X7nqkKvy*c^p5b|L7S# zCqu>Y`|6-Nqz;1}fqe}7RDG@-cpgF1cf%i5{c5-wH>z=b4Dq;{Q|HtYSg1DDcknw+ z)sN~IbshY7^`~TR0&l51>aMz{OanW@UN@{4`QyfE;qxytt@;I{@JglfN~U#A^p<+7 zdeivE_}m6h5;BjABCPldyH1(ae*x)I5~Vvja3`Q>kK2 zyG>0GZ3Nlgu5tTW<$FS6@*$4sPH={ET;LK{xWO&%bobuuc`)%2Pk1)|=R5xAU(CeU zKPSK89ah+|!YzhvN}>}vX~F4Lom4r!1`BomSu0$pT*{|fRH;u?2I2(T#KthGS>b9i zCMtbmnMm1eQgy0uN+>~5P!cQ&%7TvE(b*9Mf?Yx$vO$?=)L^Z^YGIruUZEM|3#tVw AZ2$lO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/v5410 b/usr/share/terminfo/v/v5410 new file mode 100644 index 0000000000000000000000000000000000000000..996e2eb35c700d6c60ffd991908297948bd110c8 GIT binary patch literal 1211 zcmdT?J%|%Q6n+!MQ^BNBl-njqMm#~;O?I;h8x!x&BIw0C&%?qfTrij9?y~va{N3da z8$m5BL@WfgwY0Rb5DN>fvv+ghF{2Bk*IYpL<7!4P50!A~mo%T`BUR&UaJhT;E zN9h0^v2~rM=oHwj9nHa>2eMSK<06%)WizKouXl;A(oHCL=$@!17Y-fQaXM}cN;D43UlYv-JRFAuU20TSxSj}`L zrBC!eQH%jq9nFUgrqA8bFYEhbNKT2I0INf184$8pamQUCV_Eu zNGL@~+%%ySq@yIo!9qnCRTxbey#Ny_kQ5((;DtX$Fm0(EK!g?fn;UY=r=oinfcdh^c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vanilla b/usr/share/terminfo/v/vanilla new file mode 100644 index 0000000000000000000000000000000000000000..7d5d0f69e06f9f7a25a0c2b98b9a0fa558b1a178 GIT binary patch literal 336 zcmb1Q6l73iU|?us;9w|A%*)KlNvugJ%}r7$DX9bs69E_*{{LrSU;>h;fCWPYRem_} N*cjLucp12W5CBPf08AHK~$g$(l_V9(Ijrzuld>=O|I<;k9Rc-~8@>zD&Pmg5$vio9``n{2$(& zIL^Dw0(a|=Kk!J&ahvETSL^8{^WFoS>CQIKj`et9z$+sr_{_L|7ssEeXOZFxMd*Z9 qHf-CPsoA;>Y}m;tdP7q*Mk6##DN8m4lSV)?EI%hZwMf^wC^0i#0Vv79z{o%tFfs-( z{QoZj#0(5fK=S{87BC57{r}I+zzgJwfJMX@BpBq8QyHp86-ui!umfGj hqhe!XV8_74zztz=FmN*PtJoOYg){I0ML}FX1^_dYsC)nb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vc203 b/usr/share/terminfo/v/vc203 new file mode 100644 index 0000000000000000000000000000000000000000..915744ebc67b5212822fb6190949e449060dd024 GIT binary patch literal 309 zcmb1QRAx|TU}lJ5&}1k}Ha0M>DN8m4lSV)?EI%hZwMf^wC^0i#0Vv79z{o%tFfs-( z{QoZj#0(5fK=S{87BC57{r}I+zzgJwfJMX@BpBq8QyHp86-ui!umfGj hqhe!XV8_74zztz=FmN*PtJoOYg){I0ML}FX1^_dYsC)nb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vc303 b/usr/share/terminfo/v/vc303 new file mode 100644 index 0000000000000000000000000000000000000000..915744ebc67b5212822fb6190949e449060dd024 GIT binary patch literal 309 zcmb1QRAx|TU}lJ5&}1k}Ha0M>DN8m4lSV)?EI%hZwMf^wC^0i#0Vv79z{o%tFfs-( z{QoZj#0(5fK=S{87BC57{r}I+zzgJwfJMX@BpBq8QyHp86-ui!umfGj hqhe!XV8_74zztz=FmN*PtJoOYg){I0ML}FX1^_dYsC)nb literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vc303a b/usr/share/terminfo/v/vc303a new file mode 100644 index 0000000000000000000000000000000000000000..c41964b2150b1e036bd0268c133e7644455e28dc GIT binary patch literal 309 zcmb1QRA5kNU}lJ5&}Jx0Ha0L$tSL)20a0Q3IoYX2y3R$3ndu532?hp62Eu@mks*NL z|9=S}W?*0flK=m+FmQuu5L<{r1jv>K^JN+285H3%AX(}FWg^T}g{o19(wYqH47>~y hDmEqtb_`-FHby{-i$M~?=U@Kr3;;LerYrye literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vc403a b/usr/share/terminfo/v/vc403a new file mode 100644 index 0000000000000000000000000000000000000000..c41964b2150b1e036bd0268c133e7644455e28dc GIT binary patch literal 309 zcmb1QRA5kNU}lJ5&}Jx0Ha0L$tSL)20a0Q3IoYX2y3R$3ndu532?hp62Eu@mks*NL z|9=S}W?*0flK=m+FmQuu5L<{r1jv>K^JN+285H3%AX(}FWg^T}g{o19(wYqH47>~y hDmEqtb_`-FHby{-i$M~?=U@Kr3;;LerYrye literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vc404 b/usr/share/terminfo/v/vc404 new file mode 100644 index 0000000000000000000000000000000000000000..651ee7c421f8041e4ed106e4031722171a467c39 GIT binary patch literal 414 zcmb1Q6lYLlU}k7y@M0)SHZd@%3CqvPPA$@PE=tTyR{#nyFfcL@28;{=4FCU205Jmt z6OjD>pM`;&K?ux}WH4kf2C}TcJR2Zs2WEj(Q4cr}VWtyQjSG}^BSH_UF7#kvXW(U! yP_Z#FuwxKYu`vQt;t-yIYJs7ux`Mi@wra9!ff0g!e{``p!xOy literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vc404-s b/usr/share/terminfo/v/vc404-s new file mode 100644 index 0000000000000000000000000000000000000000..920d624b2e15a45997f67be91b376fe296ef9e8d GIT binary patch literal 436 zcmb1Q)MQX&U}k7y@M9=THZd^KEv^a6&&f_L(seFM%uH7R3MrK97ndaFrR0~EDCFj+ zq%trtG7tug3;_)P|4RTd0|OI~{QsYYftx`H%#vgKP236w$rM-yIgUv2{Vm=J)47>~yDmEqtb_`-FHby{79KsV&EihD7S5Q~g gR!vqdFoH1|xELfM3OE=<8KfBa82Eug5H=SB03fIRU;qFB literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vc414 b/usr/share/terminfo/v/vc414 new file mode 100644 index 0000000000000000000000000000000000000000..22a073fc92d1f92b1e684085416c928d22fe9fd8 GIT binary patch literal 452 zcmaity-UMj5Qm@OQc%#UL+uG>XaqrP)5Z^^D7LnC5duO%5G2N6OFv1WgA@k`2L}iL z;dsWhLKY96``!KS?tSxy!!Aqsd@=PM+nL3=Gi#6fy&ycOhhF#DRKI0*hvvi^24*nv zy>Va;Mo&Qz4E_(pC5m#&JRn0h?l<-Ky~Si-tD<7#EWG*6T&t%VVkP5PqxLe2$a)#vp)-I76Qb(?k2GT^Xk=D<7=Jx@&Y2!A_N=0#$Bjs2* HQBL^=n~AgI literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vc414h b/usr/share/terminfo/v/vc414h new file mode 100644 index 0000000000000000000000000000000000000000..22a073fc92d1f92b1e684085416c928d22fe9fd8 GIT binary patch literal 452 zcmaity-UMj5Qm@OQc%#UL+uG>XaqrP)5Z^^D7LnC5duO%5G2N6OFv1WgA@k`2L}iL z;dsWhLKY96``!KS?tSxy!!Aqsd@=PM+nL3=Gi#6fy&ycOhhF#DRKI0*hvvi^24*nv zy>Va;Mo&Qz4E_(pC5m#&JRn0h?l<-Ky~Si-tD<7#EWG*6T&t%VVkP5PqxLe2$a)#vp)-I76Qb(?k2GT^Xk=D<7=Jx@&Y2!A_N=0#$Bjs2* HQBL^=n~AgI literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vc415 b/usr/share/terminfo/v/vc415 new file mode 100644 index 0000000000000000000000000000000000000000..924e0ab14abdc6869f6ea36d56b4b724d7a9d46e GIT binary patch literal 409 zcmb1Q6lYLlU}k7yaAhbpM`;qffvjYVbEdF1F}rPJaZsv31)#*Q4d%XVWurqjXjihBtj3VE_7yK2l|_b xK}^NQ$iR+4T*bx&NC~JG7^)i^_GH@tc literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/versaterm b/usr/share/terminfo/v/versaterm new file mode 100644 index 0000000000000000000000000000000000000000..4c1c1a5f92c2c0578611cb53d5638c9f658db0f8 GIT binary patch literal 677 zcmaKqze~eF9L3+MMJseHh=&j`86{0^sghW&b*Mjz)mE2+5N$MtR%;p^)Kwgvot<4> zUHuQ7oyEby!9mV%uW70vg}l7ay?d9tgiNwDA{fRE*4eq^wQb+=npe9Wst_r=6(f;Q zoaR}>_D?+JkmS3LQnU~1$Nov%1sGi=j9~&o07Dodk3+=_xeyr?u}M^xqaC{Mk&bXG z$3k4GuJw>*rnMs}{<$_hKY!or@s#e!phE_ARR#K~Z6qp5GO|Gd{I-zH2xUO2W z68h1fB?W5I{5Vw$^pSZruUbjDAlCzou7EFq}? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vi200 b/usr/share/terminfo/v/vi200 new file mode 100644 index 0000000000000000000000000000000000000000..71f185db7fe197727a3a4aed5108b77b1d4e2e95 GIT binary patch literal 704 zcmb`EOKVe66otQwN;M!TPDAX(4-<1tQX@Wu~uzCtOZ5Wq>Xu+_d}Y20|yQ| zD8+#T2ZB%#gn}RlPK1KLK?FhkA-Z!+Njh`jfwdoN@3Z#ioGI@#5yI?n)NAMCGc%ia z^Nm)zG;JYxjE*;+jOf2T-V(=|}YzTN(MNZ}jbE&pNod59lr{z6Zgu;)<@wNV%K(5hdJ z`QhoXAMrDOHGUAhg&~V*X;Kjcb+CRke(RnMUE_w*y?p_ zh3V-%m0R<*c3O&kEBvJ4SJEWx)EbE&Ev~k~V|=`|#h4y^<8hu%?BLITIg=*8fsLj% z!6aMQ=5)8Sn<>lkh8gx*+|L05W?lD~i~aRQ%TBrKw{vrr3&Y-^9$1_oa#g$QhL{E| zQhMCv4tKf7ePbW+kjFgXDbIM$3tsYy*Ss0dzIFFI-t&QvLvEn{FYyzf`C`*w*C~AC zyVXAoKiBbN>+B>RfzepiEf)1lHI)~1n z<7h7`p*b|81s7D;6~&rUSrIzjAG8gH(a0>SqYgTWf~H~F&@!|QMhB_E27(oX`3lTf z5!L!qI_ezcory!}ptW=rT|yT}yWQ$gk&)*61j@6S-1VubQmIz!OHmxRmll(S@P^;S)%@7l zg)rWjtw!x)BW+PS4B{Y+f^=Lh2TPEme^P@%pZ;5u;yx!hL-JqFu*o0exTy^>%qd2k z?rF|5YF^H8kc^wX#6fbID=zCh+igE#-lU5P&fel~FZZB#4-PqN+??StPbpHSLX9RZ zB09#tV2f>D@`~5Cv$wqCJv;37bUwKIBYW)gsmBd!|C|4rFMPGv-;OAJw{J_5AIAMW z!uK_Qp>>9AJ*uD>t)ewF=e2TPCY|xJUde0a4_(`%3igY116@b=&>b{|E~28d(`a1t zX3*_!oeAa->n2bQt)Lm?w+zdM&=47n_S*(~;CBo*hHrBeP_-+io33ZhwY`R}T1rpQ zBlOUB>Q}{zOYcK)SC51BWebV^UKdx7TZg4sZ(ApZif5;GS^ET literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vi300 b/usr/share/terminfo/v/vi300 new file mode 100644 index 0000000000000000000000000000000000000000..25daa30ec4802ec5aef57a32ddb84ff4a2435bef GIT binary patch literal 612 zcmb`By-UMT6va}z(({`5TjJgM|KacWNN)Z7^Y$-% zLl5>bh!MK42lg6$or>LP7){HlDWho{HJ=+r%14SUQ3a|xwdk5l3>C_)6V^$bVn_&+ z5Er=?2Pj9m$~IMgUgfhP`)!ra)#+P$U@B|c(}RT;n>Q%VJ1po2WKmcWdctMlif~ov Y3(GP2NC_yWbkBDl>KE+j=@^Uw$*hCI~u5r`HFuAqTk$-+iMHYOJS4T}_3 zR#sM4R#sM478Vv3B8ZihZ9F^Kq_uIF^WAgr+?hMGN*+@fLI*!+xhcblpL+JiuIryw zJdLT=cAHg=HSO4K)Y_GXqeXqEsX4YwoHw15rq*y;PQ!QX7!(EI?k%N^ZZ|?dj1jtS zcMQ{*kuHK5;&cg_rN|5=P?UMl+h1l_DPc#tJxL2kum`=>&|MBHz1y8ZenoeU8{Fa! z_jte~p71PBU&5Z(FusMcKmR}CJ3hi!KmUCF3*S(!eT-s~(NwME2ID3bMBUZv3EdWY zJ*nF!3wg@K7+IilRC#VGZ7kE2sC1P`)B+bk8ZR_KlJPk}q(oXI4UwG}*#(dNNs-M| zd9bZohDbz3R<|PY~MadP(Rmn9;Q*u2Zf2mqUs`t+cs3nXuk#gbCj53_V9aY1j%kzcXy-K5J^$uiWtUuW%`Fjq z2HZ2W?qi&Jit#zd$@>%i@`In`()h|Ko_hPmbb8Z2|2r@6jy$;j+H##~a>%yqB73f1 zscFaXju%zDVxj1jybCW{Nhq?RVf|CGi8PRw>#r`Ekz=Hd93dyjzVS5|AP2}H5+Ym3 WnQ>&GLuQ3E;~lxIeo)zAM&S#1zw@X7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vi500 b/usr/share/terminfo/v/vi500 new file mode 100644 index 0000000000000000000000000000000000000000..4f30cec246c78a8a7c68de18bae48a7f7be0f1b9 GIT binary patch literal 551 zcmaixOH0F05QR^O&|0YC*0ZUYP*K6w+TtPve1I+#UHL*0t1hBN3Su8p5JV6JSN;e0 zA_#&Y2;xqE(sgos6SGkRcjlX!Gc$o1v8X2*}7)M#WQa;wPCA6cXU9nYphd9x3Q`=CdRNHU|7ebdNy23SXV%4pod+`r( zR;kAXcc&%olde7+&5QA`fA%Q#_D?;zA>#MA=Od=5*7cv@x#LYu_{f4IZoTN{b9r~n z-FNGg5rPfJtBi_zM@?q5Rc?bz;cmTBdh~40o8j4v9J$x=rsc=*4V7{jw*UYD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vi50adm b/usr/share/terminfo/v/vi50adm new file mode 100644 index 0000000000000000000000000000000000000000..52057ae5cac72e556a5a94fdcbd4e62e788d80ec GIT binary patch literal 417 zcma)&%}WAN6vcm2Vwy@@@owJcF;F6tVj!fT35g$ApzVijF{mYouG;r!Ki@o5h6$p( zIPctZ&OM7)@f0^)^200ps2PNd_4iw}-GwXF3{>=~tk4M6`fKq49*OaIAx9Zw;KHIY z8M5RZE28l&yLDUDV$HF@VVq4*Bjr4#_Bh|N+G9fRBzU^dn67jC$ISEb9sYUqyX8O1 zrMScxkd)|?}`+V2{K1!$k-~meoeol~E*x78KI1KfA_xBX8U} zF!z4v&N+86#VF4)Iez(JF^%KzyXpIU^jwN#h{#S9ifn8>U3Mt&=MJ{-bHJg~N1Rc! zbnaB$)+>7(w4F{9X}$52-o{IxL7*Q!KiU2g%wGczcZU4tJ#*hbx5$L~?fA=YU813x zRZTf5n~Is3*~uEw0<}>KJvc`xbEL=~YS?>BE|XLoi%Tf{U*aDgA3xXGk(w(IteTV9kl zny)n~(bGgMWkJ&b?*7v1@ckwFQH;^~egrd^Rc;=uh|!rUv&amUMOo!R?_gEJN(~L= z_7t0F;c(dNhVFb=>EFH_=2vvrxWO&%aE}K(;t9{{^d;|-2Lm=lgI9CMR}Eh>n*t9RpiTk2g?Z`&*sC>s&7Nad;ea@I1|XsVReA>v1Y z3!sb_njlH{I6x+(B~3%-k}{X_*l)^Qy2H3597D!eO2WzX*t|_~-a%e8$%0~0v7}g5 dTvyysv=u7>`AgxHsQy1EA*z^Q%1MeIegRnRFFgPN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vi603 b/usr/share/terminfo/v/vi603 new file mode 100644 index 0000000000000000000000000000000000000000..f6ec9ad4da65d853eab2d6b25b2443e33260c88f GIT binary patch literal 1121 zcmdT@J8u&~5S|4j9ul^YK#H;rNLdMYzK89Evtlp^SqVW_3JQ)$HgV$ExpU61%fpY7 zhKdRaiH?>&1yE2>P#`1M_`x-%%93o8hegX}zD;e3<%=f6>Ep zK27Vs(l@a0v92F8nS{6`E{lqYqD`>{jIU-a`!be^cm3~~SO0j%*Wy^b6`#dfx=7Mh z4HX!w=BU6_wGI+i9Z-_)3fwA;{fVLyUEm6QmD0Tpy9F!5)<~93#~8~;lt7sA0S1G; z1IRJcVEgz9r0XXa^5!zj9>CO+2@UOXS-J(w1K13?9l#>Ma7>%GcuzmO2zCedYY+My zoYaIBO<2|h`#d=}Gc%kd8rD#nRt2sOvTCS$j-ecmO;CG6Az50=O=25TMmav0Eva5Y zZ6%d6Ia!I$^D7xsrBbbKZ`bS1=I*ZN`F^Xlw-*HMcBj+r_Imw(81C;M92_1V9SsJ< w;b=4-le}J(sWkRutS;m&eoeRo+)`~FG}{6clxa0D1 z+ez{kfi{aWe6fJO9>x z_XjhbW_on&K&EHocoL0LPzrv90tFo?ihWuDYm|#(!(@KjgeSF9&+0`L#jARw{7&mX z#K#}^`Kh*`3ER-ZX@Gs4hPViOIbLJNRY28Aj#pF-B3uMHYLk!ff*wMByk}0DOVhzs z@7(lzHb^L{(;N>mW9m?7kptww8mh@Cqz)R`{V}qm8#Y{v$#IVd67 zHdl6b-G);IXXZE+E}o2?R6I*SJXxTz-D$IH^)xjbW{mlr;#lG0$k<86u>{0X1f}aU U#|95tum?5RfjTsx>CwG^13PAL9RL6T literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/viewdata-rv b/usr/share/terminfo/v/viewdata-rv new file mode 100644 index 0000000000000000000000000000000000000000..b5c10cdd83b385f4c80802b1b41004637a8ecaec GIT binary patch literal 880 zcmb`EO-sW-5Qb+%)i$*U(Sukhxs0tyv5ATYKMGzvceaJh5l? z!d_XPzp;19AGDUm=iL6+T)nLKU-$m#>v?NXgLP=&D8w#~BAiB@3@=csDx~T#!*i;7 z9H(K1Lg#%vrH4=#`-+q1On0cNbE5lw8zeNUqYQUZD(X;VkptwQG*pvOL>)A+{bOWD zS8cd9Gg?uH%;*9zqm@8?kUl6O^VzDhvnw{7Dm>Q5S>VP~VJ9`71zTM7L;KFDo};`CDgB==F{ze0|@MK3;+NC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/viewpoint b/usr/share/terminfo/v/viewpoint new file mode 100644 index 0000000000000000000000000000000000000000..0efc7fba5f2d83c54e8f3e6c90b2c7ec85fa96f9 GIT binary patch literal 471 zcmb1QRA*3QU}k7yC}t?jOf4_S&&(^SNlZy8M(`Y6T!IzCV3G_Bj0}VUBSQeg|Njy| z%)r0|B>(?sVPIq61G6LP0ihznof$3O=1cqdWG`QMKFe@9%&xO+YaCua-DB%?{uru&7@GwYwtJoNt*)d3G zgJ?ZNEg&;ewZKqST|r${TQym=zzD`<;9}rl;FmT?00tQ&gA|Avz#yFi3_d;veh36f caxpL&GB6o2Fex%HDKRi91J#NGbw~jv0CL#vPyhe` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/viewpoint3a+ b/usr/share/terminfo/v/viewpoint3a+ new file mode 100644 index 0000000000000000000000000000000000000000..4f1888487ab4d21aa913e841f71a5a74626f1e9a GIT binary patch literal 585 zcmaiw%}>HW5XB#OL6oD>xQXH5SdhfD*JgZZW`%HpQ~9PN$=ii#ytU8IjKwz7@NL{_pyL_|dT zU#Bx~Q@iS-4$nEi^Zt%=c#B4fImQ|AP8`*|e%w8}j?TNiE7AL%&ZT}_4#N$5bLfD< z-(k=uNoE8?fSlwc8DoMetqM4}q84A!$6s>eDNN)*f>`=t?yV1o$JrNhHQ0S(JV6|ulsSX_+1RWe497IF} z!9frNK@bE75&x|C_DCd%gU3Dh`@J8RH(WY4&Ljhz@I}{ionE)SdEo7}clX8D>h)Et z873^(Ax3|PD`LY`Ut=ue`(r}5V31)Gk1`?id_QZVDW=JZD^NCZ*dJAwnyD=Y9SvH) zde=?770GS~zJtd;hx9n&m{ZO;=YmU9y$X7+1HCbN%N_ST@W>O-yzt5!??FfOum0yh zer|rE7Ss-EiT>HLy_}t~GIrM9u)Ta}Nl3}E<;qms6yGE}~25GP;7UqFpIC^5GG_ E0Z`WLR{#J2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vip b/usr/share/terminfo/v/vip new file mode 100644 index 0000000000000000000000000000000000000000..010a8d112077bf9ac312b30db13723ebd316a30f GIT binary patch literal 1255 zcmdT@TS!z<6kQu5?F~f_+CM^0P?4NF<73KEQNvMF8!d~xnfVxPbh4Y{XhA_i5Cl;a z1VIo4K@bFi5QIVW5%keVA3+~M5ClOG1VIqgZJj$4PLEH2y7#QT_T!wp*FJDJief!V zFd>g+I^~^i%%;<&UD;%2YGAT7;#5{{uZ|i6NU$Je>sg{r@Z<*g!Bd0;lZ&vJaS4`V z6;=n8wb+7f^vZ+CAc82p8q}kS+>F*B@B1C-LJtn24+BUtmqI$IWN`{-aE|_E;wolo z=Yq-;JjF9S#|yl~E4;=Vyk-6!-s1y4;uAjO3%=qTzEf+F6w5MMDOTzlStlx`vMGps ze=~WjluI}t=jQSKsz2gi`5Z^3RvNh@E^P(-IwirVpBR+kg8cm1QD)EnvogPDVZ8I~ za^bH|7Yj0%Gd; qImT1HfrjHy4t5B780tVPq1DhG&>Cnhv>w_8-3#3h?StlSGmf9uzMo70 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vip-H b/usr/share/terminfo/v/vip-H new file mode 100644 index 0000000000000000000000000000000000000000..8cf4e9272f2b878d88ac11c4453ce62b09578ea6 GIT binary patch literal 1299 zcmdT@T}V`65IuvD_76n`&C5b=P@#NxSKTdFMGbc~wOz|1Z)U5mw*Ixbt`-;+1VIo* zK@bE%5ClOG2tgD?4?zz-^bqtA1VIo4K@bE%Z0EbX;gUW2(&d|(GiT=BIrG8YCQ)of z1*YVg%%(F{v3dGX*chTj&@oj7auHS~C+8EnRCXpg?F%}!wYI_b`$7TVM0zTf1;jfL zMvH8qk8?^4dG9Ghoa73uWL|-_*no{*WixhSH&L~h83Yj~sz(!A8QakA@%elg66nQI z^dpHBxilucN)Bgn4i|{8(yn8H{;5}aju&`|S9py#c#C&yI-PwvYDc_@!$ zVM*WeX#79E@>rgTx_v0eI;h(XJptVh?O@_h`!kN;1c&{ZfDI#94UO@?&{jrmhCOba z)&-q~MxogjS|^!y#u$y&ti{#_plu92n(ei~<&12PXXTZVuxTuM=m8du$*CJ@G{&(f zP-FPhh641Yjgx~;t9!(Xr_1S++P zT`J#KT#YNbCQIkgW$db%5r-C_1!*1_A;ze^q-O2l1-YG-5yx;y2CJZR zFqyI8@xh7YGaHKZe;f4TGI8-nKN_mocZ8xl_qS# z3QWo~nMr3VEYXQvDmy(m6$m*sHI}nIfqXid3WVLjM0zrn1;jrP zqKz!j&+_|m6#ScIr9}*gZ0?pS2ke>b}_2*GlLK!jOx&c7Gf*fe7;cVL;}4y zf_@AlMJ|mAzmmgQoX17RS83NVNB`8XJjV;X#4EhU8@$CkyvGOfAMpvF@daP;4d3wt zKk}JelP)h{uE@0oS#jzOxhc2gw%n1sa!>Bd19>Qq zWNuO4(rElYzVcX}hkFu&=@q^OzR-iMvT)~&Dz-70JN3RquE{?c$|^#@vXcf8Ziwe58cnAF*)_34aPY3 zxYbU`HDQ;Yv~hCKDfJFpu^dH3CFR~I!;&IOu_KDh80bN$3$2AlpnITEXakhJlt86c zu}9^5ORI53&t&Nwx{O^lGvd%(T8LKd-GGgcU2Pj|e|a_;PXOW_2+>9s z=;t|M8*<)Lf_aiFu#$Nh)?x!TdX>%Cg*}Waz04qp5TiOYqJ`Lsc8|~Hx)4Plj$r^X zB*-N(;Z-s?hx53|_$uu>7U-XPmFIYYmw1KOc!RfihxhnE{v$r&Grr&}zTrE5;3s}j zYl)P~8d)z^>L%GDD&?}n%W}D$#NARUfkK|&Czq@FEC0jiF(mcU%#Mh36!mpW53@nq zki?7l#dk-^UifEav1fUrc}}^sWYXm#=89Y^%JNfh$W6H=x8;u9m3wku9>_y^BnwOW zmPh0N@s-E&MAYp^Db_*VZsqgZ)jev(augL6l)Ix03yLVkj>s=#pogIWXbm(3-3JXr8=&l^1S++PT`J#S zSdA;XCQawirR=Jy5r-C_1!+~@eHm8VuysMYVPeEyQj>P@g51uEuwytRg;mfjOlmAX zJ~R=V9G)6KlbjjNjLe?OCeDuWt$t6#X($&v4m|;Npw-Y?=w4_Yv>w_BjY1DWk3a{Y I`P+=(H(I@|C;$Ke literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vip7800-H b/usr/share/terminfo/v/vip7800-H new file mode 100644 index 0000000000000000000000000000000000000000..8cf4e9272f2b878d88ac11c4453ce62b09578ea6 GIT binary patch literal 1299 zcmdT@T}V`65IuvD_76n`&C5b=P@#NxSKTdFMGbc~wOz|1Z)U5mw*Ixbt`-;+1VIo* zK@bE%5ClOG2tgD?4?zz-^bqtA1VIo4K@bE%Z0EbX;gUW2(&d|(GiT=BIrG8YCQ)of z1*YVg%%(F{v3dGX*chTj&@oj7auHS~C+8EnRCXpg?F%}!wYI_b`$7TVM0zTf1;jfL zMvH8qk8?^4dG9Ghoa73uWL|-_*no{*WixhSH&L~h83Yj~sz(!A8QakA@%elg66nQI z^dpHBxilucN)Bgn4i|{8(yn8H{;5}aju&`|S9py#c#C&yI-PwvYDc_@!$ zVM*WeX#79E@>rgTx_v0eI;h(XJptVh?O@_h`!kN;1c&{ZfDI#94UO@?&{jrmhCOba z)&-q~MxogjS|^!y#u$y&ti{#_plu92n(ei~<&12PXXTZVuxTuM=m8du$*CJ@G{&(f zP-FPhh641Yjgx~;t9!(Xr_1S++P zT`J#KT#YNbCQIkgW$db%5r-C_1!*1_A;ze^q-O2l1-YG-5yx;y2CJZR zFqyI8@xh7YGaHKZe;f4TGI8-nKN_mocZ8xl_qS# z3QWo~nMr3VEYXQvDmy(m6$m*sHI}nIfqXid3WVLjM0zrn1;jrP zqKz!j&+_|m6#ScIr9}*gZ0?pS2ke>b}_2*GlLK!jOx&c7Gf*fe7;cVL;}4y zf_@AlMJ|mAzmmgQoX17RS83NVNB`8XJjV;X#4EhU8@$CkyvGOfAMpvF@daP;4d3wt zKk}JelP)h{uE@0oS#jzOxhc2gw%n1sa!>Bd19>Qq zWNuO4(rElYzVcX}hkFu&=@q^OzR-iMvT)~&Dz-70JN3RquE{?c$|^#@vXcf8Ziwe58cnAF*)_34aPY3 zxYbU`HDQ;Yv~hCKDfJFpu^dH3CFR~I!;&IOu_KDh80bN$3$2AlpnITEXakhJlt86c zu}9^5ORI53&t&Nwx{O^lGvd%(T8LKd-GGgcU2Pj|e|a_;PXOW_2+>9s z=;t|M8*<)Lf_aiFu#$Nh)?x!TdX>%Cg*}Waz04qp5TiOYqJ`Lsc8|~Hx)4Plj$r^X zB*-N(;Z-s?hx53|_$uu>7U-XPmFIYYmw1KOc!RfihxhnE{v$r&Grr&}zTrE5;3s}j zYl)P~8d)z^>L%GDD&?}n%W}D$#NARUfkK|&Czq@FEC0jiF(mcU%#Mh36!mpW53@nq zki?7l#dk-^UifEav1fUrc}}^sWYXm#=89Y^%JNfh$W6H=x8;u9m3wku9>_y^BnwOW zmPh0N@s-E&MAYp^Db_*VZsqgZ)jev(augL6l)Ix03yLVkj>s=#pogIWXbm(3-3JXr8=&l^1S++PT`J#S zSdA;XCQawirR=Jy5r-C_1!+~@eHm8VuysMYVPeEyQj>P@g51uEuwytRg;mfjOlmAX zJ~R=V9G)6KlbjjNjLe?OCeDuWt$t6#X($&v4m|;Npw-Y?=w4_Yv>w_BjY1DWk3a{Y I`P+=(H(I@|C;$Ke literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/visa50 b/usr/share/terminfo/v/visa50 new file mode 100644 index 0000000000000000000000000000000000000000..a6a1e76cc2f7ec17741fe4a73717104ea8d10a4a GIT binary patch literal 979 zcmZ8fJ4_To82VvI2sHtYWn%Oh^`J?8soX6JPd2cZYrU>8bS%WpcC z@wg;ga#f1OiLxy$L&P$w`=JvEKNR*%c|sHn;ntkUaj7Eejfw<>V;|xiBuO77?QjB4 zLLXd!%WxHLP&x>cFhjaPNRmb3CBg%Eq}m>=Kts70w&4l6XYc}cNMF+Wc*HAs4SVob z`6T(E^ecQL{gGxr;TQZ#{a;9+9Xs(f_TpJQj~DR@UPBXkCQC7`DAi%KaV+&EyoWBX z<2F9W9o$vv8{$2Dhwt$txli~RzmR@cHJAQttEe5++q4etl-8s5s^rXJKBU>2 zzPtn-&<*->#?P#onMyIUmd#Wm3UXDVaeX;ENqU#Sn)WIk+5G|I6x=4TjuGw$GpMCQLA=o$TW=p5%yH&jx=#GYeh7* zRWxbQqq%@6Un45;e{K<`=w&u@U5h`Sb;9+q$cfXcAhXt wSWpLKJain-t5$1bWo30W2&1yE2>P#`1M_`x-%%93o8hegX}zD;e3<%=f6>Ep zK27Vs(l@a0v92F8nS{6`E{lqYqD`>{jIU-a`!be^cm3~~SO0j%*Wy^b6`#dfx=7Mh z4HX!w=BU6_wGI+i9Z-_)3fwA;{fVLyUEm6QmD0Tpy9F!5)<~93#~8~;lt7sA0S1G; z1IRJcVEgz9r0XXa^5!zj9>CO+2@UOXS-J(w1K13?9l#>Ma7>%GcuzmO2zCedYY+My zoYaIBO<2|h`#d=}Gc%kd8rD#nRt2sOvTCS$j-ecmO;CG6Az50=O=25TMmav0Eva5Y zZ6%d6Ia!I$^D7xsrBbbKZ`bS1=I*ZN`F^Xlw-*HMcBj+r_Imw(81C;M92_1V9SsJ< w;b=4-le}J(sWkRutS;m&eoeRo+)`~FG}{6clVQZaBy&NaMaD! z)zwu5adPtK#B*;$Y(aX-dED=w@5{GhWRb-rp6~V5~S8u&1>X!?NsXjV_{1tN=dGY-L#{b zy3yVst%r1dTq8;=aeSlwZBn^Q^d1j*97>H&{JT9TnHRj$y^Za7$4B!1IX0)Jf8iU` zSb%UE!m*pwJwmDUWoXGxQHHkcG%$x57HdR>C=_#6mzq~JgpzQ|xqy^cw4um06&F0x zrU%ig5(mT~aYP(*LW5c-IKHLEm#sjQw0dHjsyAWdz%V&5Y8(Aj;d){pv%K?9ngjd- DsGl`S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vp3a+ b/usr/share/terminfo/v/vp3a+ new file mode 100644 index 0000000000000000000000000000000000000000..4f1888487ab4d21aa913e841f71a5a74626f1e9a GIT binary patch literal 585 zcmaiw%}>HW5XB#OL6oD>xQXH5SdhfD*JgZZW`%HpQ~9PN$=ii#ytU8IjKwz7@NL{_pyL_|dT zU#Bx~Q@iS-4$nEi^Zt%=c#B4fImQ|AP8`*|e%w8}j?TNiE7AL%&ZT}_4#N$5bLfD< z-(k=uNoE8?fSlwc8DoMetqM4}q84A!$6s>eDNN)*f>`=t?yV1o$JrNhHQ0S(JV6|ulsSX_+1RWe497IF} z!9frNK@bE75&x|C_DCd%gU3Dh`@J8RH(WY4&Ljhz@I}{ionE)SdEo7}clX8D>h)Et z873^(Ax3|PD`LY`Ut=ue`(r}5V31)Gk1`?id_QZVDW=JZD^NCZ*dJAwnyD=Y9SvH) zde=?770GS~zJtd;hx9n&m{ZO;=YmU9y$X7+1HCbN%N_ST@W>O-yzt5!??FfOum0yh zer|rE7Ss-EiT>HLy_}t~GIrM9u)Ta}Nl3}E<;qms6yGE}~25GP;7UqFpIC^5GG_ E0Z`WLR{#J2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vremote b/usr/share/terminfo/v/vremote new file mode 100644 index 0000000000000000000000000000000000000000..e7fff1e3c1b629bc49b4ade1be46213e83551ef4 GIT binary patch literal 431 zcma)2y9&ZU5S){MBBU2rB!W?}5VWum1m7Y)qMwk26hfjQL@O(Q{9MlzxfJ5U&g|^Y zF5K0Hg$@k7aKlo+KnP)1c% zChCeC3Y&~A&NjMAf4s%$p|8z`7-?F{F(!r1w4n8y3pHJ5o^8hapF8@6f0e`UHbHyP sPT|ImhqiCW1Ka2SsDKur8R!5yf?R`BfIMc8*#VtEbI=O3%&b+s0TF!h*8l(j literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vs100 b/usr/share/terminfo/v/vs100 new file mode 100644 index 0000000000000000000000000000000000000000..879072b78ca37d349acd9db21d3f651ae034d703 GIT binary patch literal 1533 zcmc&z&ubGw6n?W+tiS2OA7oL2kkSg3?Cdt%5@K5`82f{imZG?qh9+&&?k4FbZIU+a zAK*a|MG@4$!-IJ7;K@@DA_(F^JctMJARc7><|U<+AmYUidEfiqH*em|yxD|AlDesb zo{CYeR>}HapR^ilWg{AGa9D1-u$syj(r!5Gt-9$-(GN?j&&?OI;hvk}8~H+}SPjqA z%ayFxOCI7_#f z&ok!8BOk0vb=ri#O?T-&&!}pTTI@Oeixz(g|Ek4<;5EIWZF)x^=o5XRZ}fwHVXi|2 zK_~2(=n|*l)d-36qPxYLN;_T>wixD|>tb3sV41cR9xHc%_rwG75dJaj39IcDpS9`R zZAx?1+dt^-HFuTw|Fq_#_$BmEXO#>)dvt*Zc9}&9wzLZ67|cfl#kemn{g{1Yi3XI*5(%J zsVm4g3@}GB8d7mX%{hj}*w1J)4loWXlu<@N>MFvRid1R}S4ycX4H?*uy1KfGAWlyHis!vAuLW`FBj@AZoV`Hk#^jGAraf7>I zC*DfRd);}^`iLhy|4R+hvA*C{C*DRR6bT|Ea%w~_J4FsV)ep3xf;xtuace{(O9GC*{Si}S;U0x^S2KWV1wK)|4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vsc b/usr/share/terminfo/v/vsc new file mode 100644 index 0000000000000000000000000000000000000000..7deff9df9c835e4256d6922f3087cee36ded8139 GIT binary patch literal 427 zcmb1QRAb<0U}k7%2xTZMPOb^gOwUU#$xJR*2rEuj2+K@K%~wb%$}CGQQb?*)2=aAi zU|?iG0*nj+3>*wn4F7?E0ZcM62!iSV|3w+p7&L%v9WY-HNE$(9K&ml;8G|K*4OoRe zRGkxpD^?vINTOayY)msDB0fZ@LDuU>qI!_tK)9Y@23`i~XloDYXd^Eb8&d;)J0RB^ zh*dLH3k+3LtW^t)R8u?{xPU?)z|fP9b_QZc26+WAQeu!-1S4gj92XGtaseq$1^}~( B0;K=| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vscode b/usr/share/terminfo/v/vscode new file mode 100644 index 0000000000000000000000000000000000000000..bf10ce5a4ceae04dd4a802b5555298120b708c32 GIT binary patch literal 3403 zcmbVOYiv|S6h5^~qW&Nn6Xb_c;}3jAG{z8>V0;kYMnl%`%(+`_0E0H2?>lq8bI#1p z%+AgwDyA!FB0a6P)NCHOt+%5%JX9|BchB80FubZXFxcKTb47WuqtrWdF|?U1m3rVD z94PgypIHqhQs$othCw!}|LkQuPvhufs+{JJROJpLi_SsBRGN-CT}^WlnWLq&40$)h zzJ=BSH&71^(Xgp;L{}>3Dj9kz zcv@o50MAP7N@cdXM!70f^V9-WrN~%W_0VYE*pIYR zJ!6#J>P2-xy`kPwAE?jNF?B-yo@A(0O=?1_Qkj^V1jGzdSEk%lkcv|CQjf#)r16fe z%Dt!HKWwxQQ=gt8=I9yxr&jx?=PQ%-?P%^#sXtOmbHq5{L}OJd7bVR8Y5H<~mCoo$ zFVOY6Nw?}Xx~RMLpdQip=m+$p`bqt)-lO;H1NxwTOCQ!p^ih3WpU}VRle)$_-j`U@wcFZf@pxzd_mcIxb;$b2`s82o zzBr9`{4~C^A5|j1Pip*VIW_+^_y5Fiswvl`3#;i|I-k-7yJYt{c1LXYxpqfC9Nv0B zL%QHD1>cCqoJ8I5wscH88a6RcrWNaJweeHEFd$ z=dAfoCUflqgk!$x!liw%yx2z`+5&i%nNQ(ur*sR7xA1&jhkG}nEk|1cj}yRCa3X_Q zgE>Yw18iwvi;X%MA^SPJg%`t#T~uYlvb4z3@H}cA{;2o}o|&{U*ke8@&%qc?RfB67 z&-GP`-uH<4Xy_vP#|Hqb6& z>FqdO$gnT8%dum}Yz8o0F8w}DridmytjqfWCu(hEkNyjm`Af5G*WWL|$H;{Y(>3^2(tNYbK&vkB*f z-AuxWHx-i!xqcEC2U0tb+JV##lG@23i-ofZ=Y&z)_+2MqFJWKUi9@L!O6^c;he>U7 zES)G8&L*4_Ms4FqZDB8AU)YH~sqIN^PilKfZL@l)Eu2j_Cyd&%x+s#YiLjr<#lF<` zrM7Qs^F@TShu$MyUmjIy~ke1^Gsx!BL~h2Sx`2Is@#qv_b&vLp6< zyX=`Sgk3Z)Cp5lXRi9&b*hLTP9ZM9S%(3bIY0{m{n0$Y1K8|EJQ3|h`7_X5FHNSbr z(ecwJ4S%jinFh8zlL9@SDEHBvLJ#BA2${nSPMnD2JX=RSIf9>a{Dq3381y?{Br zN(b?7dY9g(Bbe1!^bP$$ztKt3nAb!#S*6tsHA`Kk=3;JHg$;8v8M)rr;IFF3KQ3;D z?^h6Co_q&p!Wdw#6>OL@Vqa&MJMChZ9dn8t6WrMxogDh)e0s6m$kj{Mle^Xz3WP$T zNXV0$!50dILZL{=<6FateW5@o6pEPKV6pENasS-++ zP^yGdC6p?Ggai^2NJtZD>=4_F6Q?HIRI##7yoq12 z*GWw5Kr0Z9sHgx%1qvtyp$H^i0)9k7pn?zregzf!5<-X;fkYdLM}CI5yG*Ch+0;1M?}o+=L>~PJ5liV@jOAjw z43Q;TN9(CfKZAW8Z3ph8QQAi{Hp`846CI@6U>~N3=n?Sa^fVo%=jdg6jb2CnAM^no zr%!Ekqp?6q*Gs|6oP8enLT5J`E7hecREfGmwWv0=PLeiq`XEY8jjBntR~>+T zvpT4LJKyfaM>?eLx5^RqggUBTP_L;!skhX7>bUyMwNSaH+@f5gu_SjI5F^O_Bp2pP zF3nw$`yD*@Snr8hxppu7$E@~7?(g3a^UgQ;zn<-@o`2d_AI`V^IQMx@X^uDrxWrnG z#+i=Uzf51CFVY2_>K5IuyL6x4q6hVep3<}WX8jv|r@lx3K|idY)JOFn^(*?A{;PgR zzpsz$|LFhfCU3EKhPTY~y;Yv^uJqcxYrJ0XI&Z+MdAq%7@0Z>|?{@EQ@342od(7kh zzWeVf?>X;9?@jM--_q{glW6as#P{8MmB@d)93Oe@P2ace4~f64>Gw_f%4S+Xiz#36 zYyNoPS2KS+^s5taL^}W-`AWDBd<_b-i@N$tQyO&8BDgwGT0=98R}n@K4%_MwDr-?z zi!%!id&($XlwVl@n-M_3&>9rt(hxcgvqDy=!xOSQ<`zY^(s_v4vSaQ?nl)VV753R2 z=sJw%a>T=Mhqh^Go3)yu3!8&N;qn%QW4!sw`QxynEJiz&7I@a%r-%+vz6Z&Bc)Vf2 zwQEs&Q8vI67o>rQ&EJ|Eqs;o zDKB*w`K|tV$**Gp{XtB-DLrJ$v@<-M4Rg`ugkl z@1L2Oojt%)ycwl6wX>LFMtiP8J<50)c(%C)vMV$1w96wkGw*&ZsT&hO_m849hZcW+xo-6apX7_ z4zfgYCz3mn+=nt{K+IO{k2^~k;u{$PX^%d9^!CQ4@g%k5c+xX{=d*v$GXzVu4X?$#4i#x7<2 z|D?pu9U+aYPe#*phF11ww2)4tvv9}psU3Hl4YZjCXo$vW56$8}b1U6Jchg}yLXXii z^enwduhKF43%yP6(ZA>u`hs$5p*mHarOs78ZYvS)Dyvn8>cLHAi>j(!YC=t`8`Ul9 zHg!nds~%L3s3&m|)A&Lx!Z+enI-SnM9qY$*K5ki;P=O4UsD;*22X#>|_0un?N;_#B zH@V= zt-?(zRm}=Z8x{(35VFB9b;O^cu)rrVh>ux5EelBoum=#9ESUAL^y@?Z;IN-@6WLHW z-8tI59&RT`nVj8o$8jX5ax7$o5}{Nmk~1V0GD3+^Dirbg5@fNE5lVzorqJzq8B*xp zSod5s3Sl8;h71e=4FCU205Jmt6OjD> zpOZm^K?clHWpD=5u3*v~Ncw|WAXU@@;Y64j1yvIZr4xwIL#hjt8M2_J7BR3h@T%At z8Q3vMdq{h!*cgJD-YPccAR)Lwq-ueos=9)@sLz`-Ex3^m0ON;@$~ Uy8uNQq#YT!ph95ElYx@~0A@rDdjJ3c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt-utf8 b/usr/share/terminfo/v/vt-utf8 new file mode 100644 index 0000000000000000000000000000000000000000..61a77521818a182ef667498bb7299fdb77684e45 GIT binary patch literal 1653 zcmb_dNoW*N5UpQ7XcRSSqZq$n)U;bNIz4Mb$4p{eq7ot!HwKI$ah#YLGbUr)M!|z# z1o7fQ5k&AJLU08^)I=kKs3?MHL=^NOUfd8Oh-207>9`$4w3(`U|5d%}|EqiGiDEWP zhtbd~#>-@4kV(-gZ0E6%}1xCEEsD)d4h+=AP17w*GD%0D9OhiC92SNjTH z!#lzQWMAlXdBW}dJ?0ZPMoiS1X`+;3FjrM6YDBHZb=q$r9~W&RDbk{c@D0s=@8qJJ zgZvO2fy|E8-pz9?{EhiB`~UDHoQzX(29~0QA+)gy7vfT^#|B)B>#!N)n8Xg;h8f(8 z`|$uC!ozqJkK;)^h23}_FX0uuj<@g*KKR3qAN?W!>zSV88+?nO@bh2le(m!wYm_78 zP#6g+YPOmw%WSdDl+SGGAfi@9mljt9y_JNQ6<7E<4iZ0A*HT#}3}+4fc~rEfxWdQP z)jEzM6intQ%LU=zK)_)Ns61JaD|d^WNWDFv>gR*9KzTv=K>0xhKm|dCK!rh-fhq?T z2US9K3qZ{U6(LkZR!w~)RzmT{B34|@gH+5S^O5<vbc)UJZWoTo>8417OBh#-!2t0GiKVhOqa8ynd8K7OY4-livQ z*Ao57p3OJg_oVu^^mX)gHl}ZEz0lRW?fUlfJ3j9Gu!@$O@LzS8a^VHzCy1gM$w z)hrrt8>lIu==cUt+~9#5JaU7FZt&O*9=yS$H~54GkKf>DW3bX-tz@latz@latz@la ztz@latz@latz@latzfNStzfNStzfNStzfNStzfNStzfNSZPaq#T6$UOy>3}STxc^N eG1N?+&0lT@%99NAqh}PzA@{o=^%tUg4SWNtWZ{qi literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100 b/usr/share/terminfo/v/vt100 new file mode 100644 index 0000000000000000000000000000000000000000..b4ee9b08a2312a66c23a23957f295ec831ece9aa GIT binary patch literal 1282 zcmdT?OK1~O6uoaOv=(h}QIHOlF8Z_qtux6?Cv{>%KSEJ!Yb_NTiw&KmO`Fd&&97}* zaO+mwx^yWbih_cIf`TqwxNzaZg$oxhU5fF%Hnpmqwf zaivnyHLWh~>13`xetxWPZWdDCK=n-0sU-7DDW|WJaZ-gK5tBdi4gwq|#Dj-TQwJTV zhCGMhi4HlSeiWqe=Joo=?QzrUa(i}ja1(4>AzT;BJ!Qm3buca{YBf) z{(r3dAD^dJ2`Yoih|*3+Nlow!cXjUA+zoN32qC--GodCf^hZrC27a+W8Ww&}Xla>1 zS&TYG558A5G1eaqiRuyQyTHtxFX>HU{Xq;*37|X|@XMP;p2zH|QD76825P_+UdhnXd4|Vpu|`QLmcFuhhuVt$}sW`O`X=OG6g+5VIc+ zxcnhF_DhAM%;iqF>`98JhAPg&dAI-<;WAu<0T_f^a0l+e1Ij-ndjikkgsaTkaJ(k$P8xYFYrw0_6kc2NeJn1Qh}m1{DD{4^$PXIH+=} zTL@|{s3@U&vO4M;wYn8=ENaEod`NXzWPY*$8MTS&2{e0v?&C1E9-xj6Lk%6kU4031 zL3SZ>)vAVW5U_)GsGC5LAO z;4V64IaP2&&FV-!CJ{$$y&);$y&);$y&); z$y&);$y&);$y&i$!CJvu!CJvu!CJvu!CJvu!CJvu!P=PRy|whR(tF*$oVaigA2HlU bo-I&i2dk0{^rL4KbdmRAkopr**9zYO>%-tL literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100+4bsd b/usr/share/terminfo/v/vt100+4bsd new file mode 100644 index 0000000000000000000000000000000000000000..ac983ebf7f41ddc084924b2f1253bffec7b7e9b2 GIT binary patch literal 1004 zcmdT@J4?e*6h2YG2iQ)67=#MFq6m_-sZ~-deJIr;2tJm8sMMy`#-?prAFZ9#QAbB{ zaBy&Nb#-<1hlrcY_1v3OqIGcf!a3(V-}%1F;gSpqBjANj@CcVe&5|W)LfNTg8p-*D zZ(|KxU$$H{e9EL0UrhoC;5xzz^uQoc3ebVM3wmJyh7nOZ3M$MZit#RiIn5E9QMwB2 zu<7b4)xm^1GG}n%@KYR(F5H^`tapy)-l-3N@US}`9o-W=BYJ6by}Fn; zc!v*I5GY;5`0b?I_+}gPo9};f=R!C1gQx{{Oes-Y@<&2a6mi-g39|Y{kUe6`B%=~D zKr$(mMWK&*@BKLycL?OeWVS#8PFVvOa)Nu_2Cv zd=$2O1xF#G8ca4rEDzcB64hQig}>I;*7kNbtLypv{(hlg7zYQ%qG^^&<#MHBS=DN- fc6fMnbbNerQm;1}r>D&(h+}baT*Ad=`@uf}42DEP literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100+enq b/usr/share/terminfo/v/vt100+enq new file mode 100644 index 0000000000000000000000000000000000000000..3a9a348397033e1e3a056ea89368d120d496887f GIT binary patch literal 682 zcmb1QG++P$O-31pvJyiB1MSqj!kWC~(xT$jVujR-lGME7%=|oswEQB4un?fUZgELv zPO5^dUm(N(Q7{?;R0#nF25trc1_=h~Xw^*B6l>L#ARyB$4@lS>S{o$;>0|}~JMCX@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100+fnkeys b/usr/share/terminfo/v/vt100+fnkeys new file mode 100644 index 0000000000000000000000000000000000000000..3ac813fbdfcbcafdeda3eb8d7eedc8bd622a9164 GIT binary patch literal 462 zcmc)Ey9&ZU6olasEG#T6EJQ6%VG%LHE?8Jt2*y&pl3p|mvbx0FG~o02nmRs$RR+Fh zs=r&)`0b4VMW&S+8E2z1eFe*fga;nt@>`T#PQp7rp2f39jjhpY2z)9ZP)7qzw9rNe seFz5dD(>>3Fu@eFKRV{5s3Sl8Y0foHM+|;7XWCe(XLSDW?8jxAc j!0>+*UtA|NgR;yeZbQ-UfD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100+pfkeys b/usr/share/terminfo/v/vt100+pfkeys new file mode 100644 index 0000000000000000000000000000000000000000..6eaea921c50bf355eeb5c3bd563409981d0a4711 GIT binary patch literal 432 zcmb1QG++RMWege&WhI6N2HFK_*{PMqH7>5s3Sl8Y0foHM+|;7XWCfsbL1K!6Ms}K^ zZg!f9Cd2%KSEJ!Yb_NTiw&KmO`Fd&&97}* zaO+mwx^yWbih_cIf`TqwxNzaZg$oxhU5fF%Hnpmqwf zaivnyHLWh~>13`xetxWPZWdDCK=n-0sU-7DDW|WJaZ-gK5tBdi4gwq|#Dj-TQwJTV zhCGMhi4HlSeiWqe=Joo=?QzrUa(i}ja1(4>AzT;BJ!Qm3buca{YBf) z{(r3dAD^dJ2`Yoih|*3+Nlow!cXjUA+zoN32qC--GodCf^hZrC27a+W8Ww&}Xla>1 zS&TYG558A5G1eaqiRuyQyTHtxFX>HU{Xq;*37|X|@XMP;p2zH|QD76825P_+U z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100-bm-o b/usr/share/terminfo/v/vt100-bm-o new file mode 100644 index 0000000000000000000000000000000000000000..8b7f75005de5ee7f6cc0a71c277bbc9cf966cbc8 GIT binary patch literal 1245 zcmeHHy-LGS7(G!@t2nxNL4ptwM4Hr;D8&}7V(|xmamiw(ffUjo+iFqz3ci4kAr1}> z4h{|u4vvn#M?Cj74T>P{dXsa$^PQaBFUgPz?G&>Z!j(3rRonHnmFiTzcC(|jt+Z`+ z&Rdpg&Ye`cc51E`U6+FCsMsb&FG^VpO8P;qdZ8a3@^;;;oCU>Jt)bhd9+azI6VTL& z9~U!B?IH|k2)X)Mfj$hdj$;y2%AbaVMXDv$<;Z!Zy7z?PI<~&_dpLrtoa4wZ!H*LG z)pgX}#BLbg#`=!x9uIhoo!+FU$a#+H3tsW|E!9i^zP_tHpz#Y3gM?g(sCK)5{>xur zR2#w=glm+Ix@D9yMm=Se8Z#AHkL365|Z zVnM8_V_V3>%{e~F3P|&TV8Y7SCR0dWmg~u;Uu<~ER`I0iwUX*rp@yzN?CcVI#6EGr nIjcnPVdQ>U_BqQJOAy)a=5EfGW73k;)CC_LBpirsB=}ArGI~P~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100-bot-s b/usr/share/terminfo/v/vt100-bot-s new file mode 100644 index 0000000000000000000000000000000000000000..8f420c0ef1155a51682eba163a60166b39332785 GIT binary patch literal 1344 zcmdT?OKTHR6h3zps|8ySMCgD7=@cupWFG0Ho!HRULb3K?TSOfzt)^+x<}sO>yqdJD zZr!>Sw=P`@{sR$Fbm78<3k3xQ1qB7;ckfJJ=*Fc(zH`3wopaB<_vCi5A?l$v>SexE z@zrRw&+EHY^qT<(>+_md7NAGcMK@CRRwC7`pNSyh7xNLX?&Y$D6(S~ny9Oa7Zufm` zmX6XXYKiX}DXuYIzQKMnbFdPT444ZWpz^npIn7y3p&!rZUWODx#w2y162z`KCc>plC(KC`dvyNG{=YOB>R z84}-RNZ7soI2-wkcCh0AipKx(KGV`Q>84bY+UPjRwvtsGRY_TjqbVsDg1!nfA=?+b z6S3$p_+)oN=YCf>uw(*d!_>~#;JwQBSa(9>)gys7Wm~m0! zBQY#-Ui^vbBraG2JOI1TI6#4xmX?>(>DAS>we|H}E}t(HibcmMm0Z{Je7{_-RI1fl ztzO^QXf&G5&CRVX+$w2igvI>Mj>^4Jbee*o?z|5?3p}F~Ms5!jc%@=nQB~88*nk-y KT)a*4b@~krP=ag# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100-nam b/usr/share/terminfo/v/vt100-nam new file mode 100644 index 0000000000000000000000000000000000000000..6cf9e3c84ca081568f036e0c5304df55b52f9c66 GIT binary patch literal 1282 zcmdT?KWGzC82{c`XccXyg7!d)sI5;{A@%P?c+6G-5eenCf-}n3eym#;2ARDIR)Jr2Q zrPO_0)7*^Hl4Mk{D~phZ-11PS=9isJC0}r>)V-Jt83leP$L6Vz4pUpMeegsI_0Rwf zV!xA8x9I|11Y3~NBJ4HEf}SkpsJtg`w;ObeZbP|4cSHRi-S4UhI@|3Bd(?*^e?(8{ zIlZLU^p@V!NBTsc=}VaV8v1Xc|4u*XC-^UbSP$!Coypz)V5kqUqhKe(NMjZ|C3#ZX zH0%wQVau$@9)mxXs+jbQy zm~vL>r9-5qd4YR6&nCDRS^+FIuHX4z=SSu0UHDaodH36K*S8K0AmVc!AxS9QGzjrv4pXO z8CxNBj8t1(%B;K{bn>Lwz>D)1_Y*o#h&Tpn1{5hnrtBa#k+OKg5oP1t@8>roJQ3VW ziuU7^)_^L27n}0{mzI_?nOrWPFBVrFOzze Fego$kc4`0s literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100-nam-w b/usr/share/terminfo/v/vt100-nam-w new file mode 100644 index 0000000000000000000000000000000000000000..27a402710d7ad79350fbade85dcf215e37ec4a58 GIT binary patch literal 1313 zcmdT?Jxmi}7=FK#1TYE?x^U6lz$pyXUhj^AMJf~%q9BTdM2m(C*Oo%>hxYmd6cQ6B zSL5pFXfz?l7-Nhv#ux_&2L}fS2M0$-wLah76=-yE^h=)SeZJ@Yx%+ zN~m~BG#aT!Y{RMt8Y)t)kDp6PbF;`viW-v^okB_KtDZ8*{|Gwxnh2CM6#~q`kWdda*w4e9je-+cI-r*Rp9`$1vlx~HV(iHJOgcdm6 zD7U)9@@7#GF?)IpSOYErHQ+KZ16%<-pbS)i0#F6UffO)`u}P&M^7l$AOX3-FvkDLc zR6v98-vS;G2y_Ml?SbGkqIr~+bRZaEQL$pm%cG^;=fz{i?)0h<;U3?rM( z<(8LMRtg2nvTet4-PP4%u~hQBa=B8eR%^Ajwe|Ilje31^b88DnNXGH9U|d$;nAji1 mq$wCm^K;`XlCtNbzlDW2Sgx#94ZiOw|saYlw^FHJcOfZ-*cMrBm z2k1C)&cHrEG)4RA7=>_Z6m!lsxmb}?A;w?{!8s`R$`Pi319P=_f&g)(jW^eC5ykA`%c?$SMaK#%A#J*8*#JgB`4^6MbKp||u7`Xl&6pXp2B?>&X{uYv!K zzC-;8W%BWMe)9ea3S|CCXwf#m=*w=M*M>mkm9AXX1#}{RP@=7;}ypC{}Ed&SwFxL>wF(6&xHK92{I-U0q#VB>vwdEj@5?^d-ON`M>|?{mA41$>OSv{SI_6f>l>(vQdkztx@wA2L{uAE#S|AcT`Vb9Nh?k*E0IH9j8ll8EW0>Z6Mxs z6tCH~GNWC`wyTcUoK{*>H5uXN_Ka_Ox=$mzMR({PJ)lSQn4Z!zdhXR;dik}N-_Ton z2mKLzqR;fj^Y`y!+h0BZ8-0iR;q`vfFZ%81ImT!B5Kl0XokR|T(~iq4%S>i5c9x|b zCp-0fY~<+MQ-_as+x@?IliL57AO7Qcp0F3}6?@O-=_m=sKqFvC0VNqQ#foUC;v-P(dH8f*e@E3K>Zi_|h4vE}SEyDghaUK?J^Y5NzNI%yb2&yMnI~Y9K^- zh$5tfG?oh|Bgv==5l<%SLJ^mcAR*4rwB{U6$kSoGLK~O>^@0I3+S)3Ws?}O;d%M|G z)mBT>blou8?M}xuyWL*TvikkOU^v{_8I8u{-QB%C?3;<#orn`IW`$q~E3LthCfAJH e#n(`9DaDw^M+S!GN%F%5#Qg_b61)8=QJ?50VZ z7QA{DuO2;$2M-=RC=?M95fKsb;K73jj~<2i&FrQ>=*6Q$zW2WOy*F<%Z+4Ik(=c_@ z2%A^xj;?8=w(B^}RytS9If0a$$=nP$m4NM5bAcNf3r0m^z{LD7VMlK zY0O|3B~MD5hb^!oD>Ik90N<0U==74kW^dVh_E9RI_w`=olp^wHq!sL71^%KPWdA=F z{Kxx@Dsg38Nh#gbORB{S+}3&4s}RB~Ff*!kIhZiC3GgeyL|FKJ;mDR5lughH zu?OF)YE1_dAyGXkeIJ-n@+G}PVt);Yo3p9px?Vm^wE_90HAa6sfRG z#k@Fzl)=rCC>!HWAJ6r3(;LwY9mnl9fEs|uo5Oi?Wm;TZTFU2FR@T}lsclJ(<}tN^Za;qd?i`T Z+lrP&CAUmX4}~K}G!`FQSSIxr{RWnscy<5) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100-s b/usr/share/terminfo/v/vt100-s new file mode 100644 index 0000000000000000000000000000000000000000..14bbdd1f2416f49e05a0309f2403a1b743189ca8 GIT binary patch literal 1360 zcmdT?OKTHR6h3#f)Cz5JA%dfjMXy*&A$KyFS(Z64EP@@mph z5JXpkTeoh-txK1JKR`qjUAS=JqKhuNDDk^@ZfZd{E}ix}=R4nd+?kVmo+arL_0lkF z8&zL~!=vSv_M?8$(;N)??OVu)(#2A!QeF$yvVJCnM5x>-=dy)0BBuV23_?iK9(x!q z&?!1c9rc`mCohGLyg3BFCc^i;>el;`wmvb(U4*kksDJ!7B1zp$@L?{xOqK09ECj2UufkFt`*jD+IT zM~YN~XZ9~zH}^mK`G5SLyT*!i`oz~5`y=H1^C~nENiNHtAlyEJ(WX5O!s*~4g(IwG8 zh#e?{D9;b-@@|p#F)}gO(t~mA{3Or-7Jxc%9k>D91bm=J3VCS(SU?1@p{r%#fPkPgAZQPWoDt5#*wQ#KaWjE&5!ZH|97xoSWy};7E#F(N zYfkMAT|6m=dt7qp`i+ zY_?iEJMA_;DjCfvi}hWeG>5~OGzUR+FA44juG1yqdJD zZr!>Sw=P`@{sR$Fbm78<3k3xQ1qB7;ckfJJ=*Fc(zH`3wopaB<_vCi5A?l$v>SexE z@zrRw&+EHY^qT<(>+_md7NAGcMK@CRRwC7`pNSyh7xNLX?&Y$D6(S~ny9Oa7Zufm` zmX6XXYKiX}DXuYIzQKMnbFdPT444ZWpz^npIn7y3p&!rZUWODx#w2y162z`KCc>plC(KC`dvyNG{=YOB>R z84}-RNZ7soI2-wkcCh0AipKx(KGV`Q>84bY+UPjRwvtsGRY_TjqbVsDg1!nfA=?+b z6S3$p_+)oN=YCf>uw(*d!_>~#;JwQBSa(9>)gys7Wm~m0! zBQY#-Ui^vbBraG2JOI1TI6#4xmX?>(>DAS>we|H}E}t(HibcmMm0Z{Je7{_-RI1fl ztzO^QXf&G5&CRVX+$w2igvI>Mj>^4Jbee*o?z|5?3p}F~Ms5!jc%@=nQB~88*nk-y KT)a*4b@~krP=ag# literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100-s-top b/usr/share/terminfo/v/vt100-s-top new file mode 100644 index 0000000000000000000000000000000000000000..14bbdd1f2416f49e05a0309f2403a1b743189ca8 GIT binary patch literal 1360 zcmdT?OKTHR6h3#f)Cz5JA%dfjMXy*&A$KyFS(Z64EP@@mph z5JXpkTeoh-txK1JKR`qjUAS=JqKhuNDDk^@ZfZd{E}ix}=R4nd+?kVmo+arL_0lkF z8&zL~!=vSv_M?8$(;N)??OVu)(#2A!QeF$yvVJCnM5x>-=dy)0BBuV23_?iK9(x!q z&?!1c9rc`mCohGLyg3BFCc^i;>el;`wmvb(U4*kksDJ!7B1zp$@L?{xOqK09ECj2UufkFt`*jD+IT zM~YN~XZ9~zH}^mK`G5SLyT*!i`oz~5`y=H1^C~nENiNHtAlyEJ(WX5O!s*~4g(IwG8 zh#e?{D9;b-@@|p#F)}gO(t~mA{3Or-7Jxc%9k>D91bm=J3VCS(SU?1@p{r%#fPkPgAZQPWoDt5#*wQ#KaWjE&5!ZH|97xoSWy};7E#F(N zYfkMAT|6m=dt7qp`i+ zY_?iEJMA_;DjCfvi}hWeG>5~OGzUR+FA44juG1FS(Z64EP@@mph z5JXpkTeoh-txK1JKR`qjUAS=JqKhuNDDk^@ZfZd{E}ix}=R4nd+?kVmo+arL_0lkF z8&zL~!=vSv_M?8$(;N)??OVu)(#2A!QeF$yvVJCnM5x>-=dy)0BBuV23_?iK9(x!q z&?!1c9rc`mCohGLyg3BFCc^i;>el;`wmvb(U4*kksDJ!7B1zp$@L?{xOqK09ECj2UufkFt`*jD+IT zM~YN~XZ9~zH}^mK`G5SLyT*!i`oz~5`y=H1^C~nENiNHtAlyEJ(WX5O!s*~4g(IwG8 zh#e?{D9;b-@@|p#F)}gO(t~mA{3Or-7Jxc%9k>D91bm=J3VCS(SU?1@p{r%#fPkPgAZQPWoDt5#*wQ#KaWjE&5!ZH|97xoSWy};7E#F(N zYfkMAT|6m=dt7qp`i+ zY_?iEJMA_;DjCfvi}hWeG>5~OGzUR+FA44juG1g+Gdhzn@;*j z>(;Hfb?MUIAR>x_f`WpAE?l^9;lhOr7h?SGok<_qjY|*t&iT%F&$)Nz%uO59sGUww zC!1D+imqvwgSpz!@L=rbG?G|HwL9wu+0uN@jRlKtuG|@GkCn=?xm?aCV)93!A%QU= z9yB&VC#jX{(vBhit`jMA9$K6(N!_GTx(+rWvnlu)$-+Z8*Xse@raMsX(!EH( zPY>wfp_;Jw(E;so#Gld&dPQ&O9etor^qIcUSNayMeUIXgDE_2hbez@eXMl68g|#9c zWfvlyvo0_z%C53uHY)kJ^m+It=CLvh*c0$)QWg6>XD``n_LjYu%EvvuNoi5UdYklu z?c2p8wEflpkMVzepDv|ONh_1eSyCOo$bFr=Hun?UU4@X$!;PrUXgpAOMO$6&L~rfqop6(Tl2h(u`hEuaLi>0|_7r7|`Wh za6m}V84|RIMC_q0!WqJua4A(hTGBRbvj}3@y#>|5OnXVS#E8b^tkA_XVspQT*LcO& zxh?Vps1Z^uCFPP8<_4BbZhNAvk5`&_u9@56lt$a7*x20M+S=Z()pmAvckvDxs~|n5)iI!UYS?KE jg5J0R`0%(WE(YxMltd+WY)wxj4YSAU?YlKk>J0q>R9bt6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt100-w b/usr/share/terminfo/v/vt100-w new file mode 100644 index 0000000000000000000000000000000000000000..1a41c3e95b2cee5d36016f1a0f67a6cfd14de014 GIT binary patch literal 1295 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 Fego$kc4`0s literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt102 b/usr/share/terminfo/v/vt102 new file mode 100644 index 0000000000000000000000000000000000000000..8b6f13c023537a808778cf2cc8c3fceedf28ab37 GIT binary patch literal 1276 zcmdT?O=uHA6n?V`)q;(Piey2GWYkiSY_iFwY?{y}O0bQIwJJ0UEyg5mlXUZ+v}y6; z)vH(W>cyi+4=)r>r4<0;tFn%+;Nh|c?(IMY^-}~OYH<`ENW(Vmc4bd1| zP?~kk>+8nP#zwEqgAp+2cAfwy>x`!=zB)$2F=n1usIpc z!(IcjRFH9z%G8pq*SjVCZMs8u!S2z089$(h^vKy^pCjyJC{K2%PaXc8UeOzRM<3`D zeW9=PjlR9wza0OY6gJFyy+goJ=4Qv?cUvbMeVplFlTLJw&9JoOm!&PiTCBzz ztjnH(zmTfv_maJ4Z`phHQ7WGY`eDVbi2SIuf^Dx;yJ*|l|BsFT<9&1`s>GG6$`BnO zHN%&=rSYuEEg#QTA^7t!2{m)x6ApMI;4_}EU-*IWS4jffA~Y;&@LttS%oFyB-BXTF zgC}VOHc)aTtxxmJ!0}Y@F zphKz!#DN$vg^p3JsEU6Z)e7n)Svd{x0e(P-E@y)SY=TOgpxh>+hj$r97bXA`RwHQV zH+3^m1ToA|LCs*UAyN%7rlgz~s(4g1w}QOO>!!v{5&J-On}g(w79sml*{GwD=Vw3#bT*cF0ZXwR;5y{)@t>7qtR@( zTJ3hHv%bEu(d}+-Zf)TXQA2!`sDWvno>s@a=#+$@^L#ARyB$4@lUXB?HN11^|KUUk3mH literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt102-nsgr b/usr/share/terminfo/v/vt102-nsgr new file mode 100644 index 0000000000000000000000000000000000000000..212a24619da0b52717c84a3bdc1fe613ca75ca41 GIT binary patch literal 1255 zcmdT?J!n%=6h1fp)CyG`3fhP8hNLuunwPxvMG_OziWJ+JSc`*EXlQ<3nwOWCy!b(m$X6`M-TbV`ObImJ?Fl2Gsfm< zoQBBDhF#6N;`5&{?Lw_{c>z>5D>4#!qG9LcVqR`n8nT_s$+lT(<&8`!XUmyJ{UeGIgO>gNv zeV|YDnZ7t{-<Oi7XQ#kIP8Mh9*sS0w;dS^DGnvJH zcU$1ALgn>3Y?EDQH`y(r+!^T4*p}cg2g-K$H@j%ttN$N+_mAK6k$q*~*?!j$jgXY~ z6g`&W$%Z|a-;=FD2o&IEr1W`rBtw zfhXt?e6Z|DN}s4YWUZeKh}u&QW3ddV1}Dzhew^dYl2bq%K$GMOa1odXE&+9*0W<+r zNVb5pz%&p?#h7A9{Gu^Mm(GxtR{%c{095E=ENIXpIN2jO-Xpw*uL!4d7leyQQIrdW z)o{=N(ZV5JN@JuUk~BV{gcy}HL&La26|e!UCoRCF#l=h}pDz@amrEtXD3?vMQn9RR zwN|t3dcDzTHe0Qgm3Dh|b#1NFSzq7SK;M|gXBgA)g%eYf*M~|82ulCa@K$)+EQXSv YH2F?XI_y*Y0W~ zB6{`eRlIuf=+T3C@K8`eK|w*mf(H*CJa{mEGrMUk^y1M+zW2WOy_tDCFB4*CsFPZ# zi=~uGS&KxwtM!r5;qdiY@Nh04uIAF2u)C7Z5Ha~9-;ltV5ceCSyL5z3QA64xL?VR_ z(+LWp&jqQQG)b4iW@I)Ce-lVkR^|@nsVZ5caa+cFbe|r8J)}o6e@sv4X|TfYBm6Tc z&-bY>0{)V=={3Ej_wTT8+^3NzpMm z1k?a@O0EG{fEnN_PzF|k3V;)mRbT`d1_p6rLUUB{wFxb&_LH}u0Z~8)4Crz;Xy6m< z^a-~6M4S=H!5PBE;Nt24j?*o}ia8*r)tgmqG1r8S+xC)bieXL3sbMcqh!$QCuk*5{ zaZBV;P{XGv>9S<{xq(uQTdr8v$IERz)6Ok_Dr0mMmnr}y03DMakf&5?etuzLadByB zdD(GXH=kcw@w`HzSS*#w<<-?nrCMEEtJT)mH#X|^&CRVX@v)}(YZ4}Ac5X=Rir}Ov k2wL+k;0fT#q%mf@CofiV+lpvW-H7#=y?t}HNWDRS0DH-B3IG5A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt125 b/usr/share/terminfo/v/vt125 new file mode 100644 index 0000000000000000000000000000000000000000..0d3ea75f9dff3553e209b755874ddeff835b7b0f GIT binary patch literal 1278 zcmdT?Jxo(k6h8N91W7E3QDeA?FmO%T`u=F~RT_Rw5Q3l>Vk{aON`Ig&kM>b06b4sU zSL5pFXpGTlqKPJ&XrhCIgM)*EgM*{b@80(+5Lp~O>37a|zw`5Y&wE|$44tJm>SLF* zx~Cg#&Cc!Deg5kP3?4=d}W6ai8MM)C#j2K zlu-H*&C)fnId!@TpHnR8sgO&JJ!jv)MYrh=l)H2<)bG=SeHB5c??2q5J_`90dQLCt zHNBfI~~riZ6i$ zKFji~$Xxaq{Hapqyl3nMd&S^d8V}bZ}`VAVsbzlGh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt131 b/usr/share/terminfo/v/vt131 new file mode 100644 index 0000000000000000000000000000000000000000..0cedd381c3d472d630bba8383c580231252a0a01 GIT binary patch literal 690 zcmaJ;F-yZh7=2NpDijOaBy&NaC8*h&X;SFDwZC3?|a|7_i=Y5Va#9|G4zl$&d+2@UY0hCiwApDfT2H( zTt*F(Sb)-NoD~?u1nV43tZLsy1y!oL?)J%tTJ>j?I>PCn{sLFH)=n?*Z*UtW?johs z{V)9x=|`$3JmV#D!joPD=Pju3_`v7CRG3!kYsB6l^&O;U4W;IZ1mUlxp!U0AY#J*@ z3~`8tb!>H{)%2{6Z8f_zys~K6TV^($T+6ZDHnS-$2G*aEGLzh&X0*&7A{s?AYwLkR zDAFgPl96(UC@1np2}g^ZILo9hzx`aQRzQw${%y-YW@M_!#vIa literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt132 b/usr/share/terminfo/v/vt132 new file mode 100644 index 0000000000000000000000000000000000000000..387ddc123bca3f35e05175ed96ef83f95bec6d9b GIT binary patch literal 1300 zcmdT?J!n%=6h8N<)E3(4P>?nBlJ}RF@M1!nia}c&Yf&^+S{j?Q&Cg4kpQcSq zK@c2t5?o!y)y2`#)kPcxMLKlo(4j*Iso%ZtrLExN=q2Ad-}%lx=j0vk5IaK`sfR+W zrZnrCp?5~Fr!L%^0wZGbN8Ukz!-RPJune81b95lj33wufPSPL^q3>0x+cZYE!6s!i z1v?Gos3_wGwP;hagM;VNzoggn2J9`plkt1{Kp*`Z-W*{+(P#Q{O#SNfZ}fwQGpz#g+X$qUkM!ails z*bDZGeFy(3RncLKZL=M=%l4$Qf2dzpbVcN&(h7ETl7G>Tvi~1T{p0tHDfg9WrK0pu zKdD*1z+H{!9Pa8oSA$^WVbW^$W-xAr6X3UkaYOh+;g6Cut|h2X)Zo3U*;FvDi`&D# z&jjPPh{uERSS&#UpjOGxXNbKnc3O-`FwtHacQYoES1XT zO2u`n)mm+Nxn6HHn$1>gWu@I-U0qx2bk^55Ht-=yTP!|lV`Y~{)KD0m#vy3k*MUcY cN0h^svyrm6$+J#a(+$&#*wNUdIZ_|eZ^T}0$^ZZW literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt200 b/usr/share/terminfo/v/vt200 new file mode 100644 index 0000000000000000000000000000000000000000..309bb2f04c4aedac7ffd05543710d7e2923b30fd GIT binary patch literal 1391 zcmb7C-%Aux6h3zftVock2fOQ5JdIRpU|JtL-f)^(|6CV(qa@|=KIcf&i&@zx#v#3I89AdL(Srg zQOGN0mB5x&>h9@kxITuQNbo~E1QHCPi+>I=Oh@Pp`8*CG5*c)uPEkFbCCT+>YNK}Q zq+Vo~X&5{PjMGh?jZ=y;tb9Mqu}CGlL-%Nl9&`STUearNQ}KL6{0e*nzE^5L5Pw#* z@Bbo091+Jwo$&pWqFywJCaCj(4FpA-h$8CIRf)Zb{bERrR`T+!@83W^AtpsyEJJOI z`{E(ulZxwwcqO)>cPjZ?#CPJo_#i%sTEqA2fWM6sd-WcppY_OIrP_bZnAkTH-&d)A zC;6ZGYWKXcWE71Je&??7z}PY#9q9e))&7+|J>a^}jcsGc_-xcrEtxSnD?M9IMWm$N*zRh31`@$dgB1G|8>7J#7PPED2X@5H;Bd-}>C8@>4VMt{PGD`;3*=IX z>~tWXxSgBM2MT%Hvfv)zZ*?{yvHp<$N@XJ(8Ud~Xqo~+nJ#V)#w`x`vv!-q!q(x9u z`M6%vCNHS~2XM*k!4#iKZ@^-3SLkDLrE^yd>e8iR!Efu6&mM&zlEN$sIvV=S=BN=ULm3iEboJON%qh IBubO?8_6AOiU0rr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt200-8 b/usr/share/terminfo/v/vt200-8 new file mode 100644 index 0000000000000000000000000000000000000000..4fc480bd74bd062c7e443fe6715e888c88a73612 GIT binary patch literal 1265 zcmb7CO-~b16g_X$fCi1mk0=vKBMwR;X=kRTB{h`q@EHUQQ5S|1C=^;4=un^(j3#W{ z_ygX;-{8+MF`5uvxN+gag&Q|++&G^17(_y%@n!Bk=iYPY&3h+PFS^i#8k`doM%j0q zSW9X;?^i>rFm~8dwA$0#9htn($ta~rekqb_;Tw_S^2{tC^aH&F3ofCWe=czkwYZ8v zuMZv7-v}28q|nZ)1AWW`jA4vwbsUp;q*)L=);NtE7O;deD!P7(T|CE& zaONfP72`GIP1t)&+zWXSe85M1!e@M8=PSP9JAU9Ngb0FDj9O7A&J)$T7~&OTy=V|O z!g^l~f+p6@!WM0!lWahYiHF2&IF%O#;gS1cy-BQ!C*qmd74OLR!v4W-2l)PXzs9ID zRQH0;2l^piHm)608jf`i=M`)GhkkVWmT||hjaL0m+UPKPjlutV|LAUit456)oQ1UV zmS)44zgbkLJmRYBXU2^P=w4li30yJh4YZzke!hCAV*-{jzK1hkTxSu zElE@nXXx)d;7k`}tf(PgfOM4ZsDVsk{^ni&_R)4yDw*WGB()1>q)%oz8?EHMXlXvX zIve$~)1_HITK4T2KRK*U{~E+Y=JH#|D`)mIn^k=M|5M~K5AazowcZW?J$o(?b)jEq}=nSz;w*#nb% z#jK3wwOW4Kw$h3^r15;kD_rN<3FHy`**0 fQBFC^skkD_Sw}PFlB4W$)tIaNbCv2U)gHnx8izy= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt200-8bit b/usr/share/terminfo/v/vt200-8bit new file mode 100644 index 0000000000000000000000000000000000000000..4fc480bd74bd062c7e443fe6715e888c88a73612 GIT binary patch literal 1265 zcmb7CO-~b16g_X$fCi1mk0=vKBMwR;X=kRTB{h`q@EHUQQ5S|1C=^;4=un^(j3#W{ z_ygX;-{8+MF`5uvxN+gag&Q|++&G^17(_y%@n!Bk=iYPY&3h+PFS^i#8k`doM%j0q zSW9X;?^i>rFm~8dwA$0#9htn($ta~rekqb_;Tw_S^2{tC^aH&F3ofCWe=czkwYZ8v zuMZv7-v}28q|nZ)1AWW`jA4vwbsUp;q*)L=);NtE7O;deD!P7(T|CE& zaONfP72`GIP1t)&+zWXSe85M1!e@M8=PSP9JAU9Ngb0FDj9O7A&J)$T7~&OTy=V|O z!g^l~f+p6@!WM0!lWahYiHF2&IF%O#;gS1cy-BQ!C*qmd74OLR!v4W-2l)PXzs9ID zRQH0;2l^piHm)608jf`i=M`)GhkkVWmT||hjaL0m+UPKPjlutV|LAUit456)oQ1UV zmS)44zgbkLJmRYBXU2^P=w4li30yJh4YZzke!hCAV*-{jzK1hkTxSu zElE@nXXx)d;7k`}tf(PgfOM4ZsDVsk{^ni&_R)4yDw*WGB()1>q)%oz8?EHMXlXvX zIve$~)1_HITK4T2KRK*U{~E+Y=JH#|D`)mIn^k=M|5M~K5AazowcZW?J$o(?b)jEq}=nSz;w*#nb% z#jK3wwOW4Kw$h3^r15;kD_rN<3FHy`**0 fQBFC^skkD_Sw}PFlB4W$)tIaNbCv2U)gHnx8izy= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt200-js b/usr/share/terminfo/v/vt200-js new file mode 100644 index 0000000000000000000000000000000000000000..0d17c7fcc7e4245482e2352d547085783ae6c79d GIT binary patch literal 667 zcmaJ*Jx?1^5S$l9%7=ug+~iT55Lcr6z-JQ~u!4<*;#f8iCB>z2f~7N@#o@a+Qj{i@ ze^!c!B1MW66ciLGC@CqZUS^NW0g99-&CcxX?%RE)s+fnu3=K8SeAit*NWW0{xoB^- ztT(UeTIp~y8m88#Q5IPTAIFK6ewZA^F*thXDfD3s@Bk0V6)eCa8?%G}bu_Tatc?z1 zkJ!W8yeb{?LT2v@XMn@9mf#pud@b`?p}vv7m##4KegMg>%6O?mX$HCT2VE!yyxl>=Ac7+WG9}z->?(k-k;Fe*5ON1hY-G3 z-^NqvAew#<iKsES)3FRca6hNR=%j4AzF*Qc$+nzxwbdz&jUf38aK zB8EUzO+sDLRSA9&=?xvq+$%Ytw@GkoZ->|=_J}sYi+XZV(~GrSAYZOyPP4}OJFD_7 i#R52=M~Rb0gUQgz2Jh2h=1eosb)i?G>yY6tp5PBVEFKvE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt200-old b/usr/share/terminfo/v/vt200-old new file mode 100644 index 0000000000000000000000000000000000000000..3ee0c0fc8b2d6d817a762792f75018b4ee4b319a GIT binary patch literal 1475 zcmeHHziU%b6h1c=T1CM{k;WmETnUz%_cKX(A*F4USgmbUq?o0Vq)pQIl9%KqZPGMD zK@ddHQ3n@CM;9k2{{#O9ac~e92M3?uy)P*U&En+X<$d4z&Uenc@7^=KX_lZ_nxtoJ zF4XZfO_{6P#Xgi0sOpIO`A#v$*pKw7xCEmqdgZ*tFmoLyaz03rcG0UC?hNbi@-Xt zO5vCiO>1I1(-{hNBn;7>9A!xdnE{F|Mbn0OV^lG0B$}*iq9LzZn$d)1SZa>qy^0%e zl?%;M+$%h4mArVz!`}pLx8F%5kXLa5G|^Ws~`%3TD0!ZXc28%^!o0ZQ5uZG%lp3bopZl?@4M%{T5*c%sfrrJ z7h^H6lzFyLL^O5m?CS7e89~jTp79sb@q|A+8&41keu#%af+2MA&mrhGRZ|UlJoX_H z8ML2{Q!Sk&$@K)Z>d@Lg)o_tT6S^LG1t{Dwx4f$|8l(0h|K{fqwFx zHtSkd8+0%WvNSo`7Sf8z(TdL>gZ+G6tE25%NCYPXQtVS~j098I&@=;WI1wjcAFjEWV~ z^Hvjcvu0&7Yw83VwFqh|UDr)o`jithP1F zJid`kpxrWD`cyr1fMT)n@nmvxa%yUNI+Mv}XJ%$+U3YFSmz$r@=NA?h7Yl`@rRC+7 zmDSZ^acyl~_X1yn886tNd#(E#Roq3zU39p>%~vJOJyhIIo9(vJ9-BQjdo29};^)Kf c8OH~THqL+|G8#55Wjn#fP*d~u36v)2H(QZ%Qvd(} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220 b/usr/share/terminfo/v/vt220 new file mode 100644 index 0000000000000000000000000000000000000000..309bb2f04c4aedac7ffd05543710d7e2923b30fd GIT binary patch literal 1391 zcmb7C-%Aux6h3zftVock2fOQ5JdIRpU|JtL-f)^(|6CV(qa@|=KIcf&i&@zx#v#3I89AdL(Srg zQOGN0mB5x&>h9@kxITuQNbo~E1QHCPi+>I=Oh@Pp`8*CG5*c)uPEkFbCCT+>YNK}Q zq+Vo~X&5{PjMGh?jZ=y;tb9Mqu}CGlL-%Nl9&`STUearNQ}KL6{0e*nzE^5L5Pw#* z@Bbo091+Jwo$&pWqFywJCaCj(4FpA-h$8CIRf)Zb{bERrR`T+!@83W^AtpsyEJJOI z`{E(ulZxwwcqO)>cPjZ?#CPJo_#i%sTEqA2fWM6sd-WcppY_OIrP_bZnAkTH-&d)A zC;6ZGYWKXcWE71Je&??7z}PY#9q9e))&7+|J>a^}jcsGc_-xcrEtxSnD?M9IMWm$N*zRh31`@$dgB1G|8>7J#7PPED2X@5H;Bd-}>C8@>4VMt{PGD`;3*=IX z>~tWXxSgBM2MT%Hvfv)zZ*?{yvHp<$N@XJ(8Ud~Xqo~+nJ#V)#w`x`vv!-q!q(x9u z`M6%vCNHS~2XM*k!4#iKZ@^-3SLkDLrE^yd>e8iR!Efu6&mM&zlEN$sIvV=S=BN=ULm3iEboJON%qh IBubO?8_6AOiU0rr literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220+cvis b/usr/share/terminfo/v/vt220+cvis new file mode 100644 index 0000000000000000000000000000000000000000..05756c2667adca4c6e51de24890e654b2410685a GIT binary patch literal 104 zcmb1Q)MfwyK?XjCvJxXB1MTFp%;FjsSLYCCS6_v&5TKAka%oX0kuFd^ cGbuACv!s&YKTf~^mSba>ZEs|n112*V0Bvb91poj5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220+keypad b/usr/share/terminfo/v/vt220+keypad new file mode 100644 index 0000000000000000000000000000000000000000..9505b19d03e8d0891cd0b53cf71d2ed16ee06c0f GIT binary patch literal 480 zcmb1QRAT^vWege&WhF*N2HM%Fl?90@H7>5s3Sl8Y0foHM+|;7XWCe%>!~a157=W%| zVc=lk85FJo1&9EH2!jNJ41)p*E>dBT_74E!Kp+kR;$R>y2jWT~E(PL3AT9=CUvLb8 n{Hp+DLHrG)rTr^_DoTL342X*uvJ;IMvXcyf*q9+Z*@yuEaH3T0 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220+pcedit b/usr/share/terminfo/v/vt220+pcedit new file mode 100644 index 0000000000000000000000000000000000000000..bd0d1c332309e2f683f75621b7df288080858cf2 GIT binary patch literal 428 zcmb1Qv|s>%r3`WmWhF*N2HFM5sVSKyH6S80FI_h~wXz^FMIkM}NFgi)D6ddj3=~!f za8>}yB;_X-r7-*-5WqmtURDM!s2Y9-5rV1*#1kl%N-{`C8`l8|Ll9vEBFsR9DTpws GV*mhwhFE+6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220+vtedit b/usr/share/terminfo/v/vt220+vtedit new file mode 100644 index 0000000000000000000000000000000000000000..047924c0386b54fadcc5d2192761e2c9d0e2ea23 GIT binary patch literal 488 zcmb1Qv}6E*Lkw~ZWhF*N2HIsMsVSKyH6S80FI_h~wXz^FMIkM}NFgi)D6ddj3=~#y zadlPzN+snd7NsyS{2vfNjJ>Q-w{bD>50EQK4;m3NTq?;R9c^3(B#c0W8Hg|i5r!bb Hq>cdq9rBW} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220-8 b/usr/share/terminfo/v/vt220-8 new file mode 100644 index 0000000000000000000000000000000000000000..4fc480bd74bd062c7e443fe6715e888c88a73612 GIT binary patch literal 1265 zcmb7CO-~b16g_X$fCi1mk0=vKBMwR;X=kRTB{h`q@EHUQQ5S|1C=^;4=un^(j3#W{ z_ygX;-{8+MF`5uvxN+gag&Q|++&G^17(_y%@n!Bk=iYPY&3h+PFS^i#8k`doM%j0q zSW9X;?^i>rFm~8dwA$0#9htn($ta~rekqb_;Tw_S^2{tC^aH&F3ofCWe=czkwYZ8v zuMZv7-v}28q|nZ)1AWW`jA4vwbsUp;q*)L=);NtE7O;deD!P7(T|CE& zaONfP72`GIP1t)&+zWXSe85M1!e@M8=PSP9JAU9Ngb0FDj9O7A&J)$T7~&OTy=V|O z!g^l~f+p6@!WM0!lWahYiHF2&IF%O#;gS1cy-BQ!C*qmd74OLR!v4W-2l)PXzs9ID zRQH0;2l^piHm)608jf`i=M`)GhkkVWmT||hjaL0m+UPKPjlutV|LAUit456)oQ1UV zmS)44zgbkLJmRYBXU2^P=w4li30yJh4YZzke!hCAV*-{jzK1hkTxSu zElE@nXXx)d;7k`}tf(PgfOM4ZsDVsk{^ni&_R)4yDw*WGB()1>q)%oz8?EHMXlXvX zIve$~)1_HITK4T2KRK*U{~E+Y=JH#|D`)mIn^k=M|5M~K5AazowcZW?J$o(?b)jEq}=nSz;w*#nb% z#jK3wwOW4Kw$h3^r15;kD_rN<3FHy`**0 fQBFC^skkD_Sw}PFlB4W$)tIaNbCv2U)gHnx8izy= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220-8bit b/usr/share/terminfo/v/vt220-8bit new file mode 100644 index 0000000000000000000000000000000000000000..4fc480bd74bd062c7e443fe6715e888c88a73612 GIT binary patch literal 1265 zcmb7CO-~b16g_X$fCi1mk0=vKBMwR;X=kRTB{h`q@EHUQQ5S|1C=^;4=un^(j3#W{ z_ygX;-{8+MF`5uvxN+gag&Q|++&G^17(_y%@n!Bk=iYPY&3h+PFS^i#8k`doM%j0q zSW9X;?^i>rFm~8dwA$0#9htn($ta~rekqb_;Tw_S^2{tC^aH&F3ofCWe=czkwYZ8v zuMZv7-v}28q|nZ)1AWW`jA4vwbsUp;q*)L=);NtE7O;deD!P7(T|CE& zaONfP72`GIP1t)&+zWXSe85M1!e@M8=PSP9JAU9Ngb0FDj9O7A&J)$T7~&OTy=V|O z!g^l~f+p6@!WM0!lWahYiHF2&IF%O#;gS1cy-BQ!C*qmd74OLR!v4W-2l)PXzs9ID zRQH0;2l^piHm)608jf`i=M`)GhkkVWmT||hjaL0m+UPKPjlutV|LAUit456)oQ1UV zmS)44zgbkLJmRYBXU2^P=w4li30yJh4YZzke!hCAV*-{jzK1hkTxSu zElE@nXXx)d;7k`}tf(PgfOM4ZsDVsk{^ni&_R)4yDw*WGB()1>q)%oz8?EHMXlXvX zIve$~)1_HITK4T2KRK*U{~E+Y=JH#|D`)mIn^k=M|5M~K5AazowcZW?J$o(?b)jEq}=nSz;w*#nb% z#jK3wwOW4Kw$h3^r15;kD_rN<3FHy`**0 fQBFC^skkD_Sw}PFlB4W$)tIaNbCv2U)gHnx8izy= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220-base b/usr/share/terminfo/v/vt220-base new file mode 100644 index 0000000000000000000000000000000000000000..d155623850fb846b0cb0ef796e567fc0819531a4 GIT binary patch literal 1389 zcmb7CTT4_?6kdBLSy3-RARY)McO?{aZsTa9j`z$o%`QlT<>-t$Ix`-f!p*F2eQT|6uQ_||T`g+qELBpy_#~Hn z+cqzbC-SL{uI|p7+cy!`B=R+>>|!S2r;}xUi4gPzP2f+{eNx$efNf88x#c^>`RDqp_oq?Sb7lZ|`SGee#;9Eqy=q|>EY7ksO z+%Im4yJ8B=6RYAr{G+1knRp>~z;}!BYxpYsCBDuEMl06ZO(Dt-$Lv;+?Q|*br=hjPqt)v)u|F&H^kA?ld5x z8H1}C|KkYc9d*sFmS;iX+zh~Goz22ncp42&Gt_FtV_{v5MW&6oj;xGP(*ut^p|!LZ z%1#nAXDX&5KQAPi#3WHYB!X@?6Q5qXd zBqk@PreHkX^5^St@_g@t_H_ZJtJmX?=SR#sQn*4EcIHa0i6^b~LhjQF&A zJ!L)7xXtskd44V@cz2f~7N@#o@a+Qj{i@ ze^!c!B1MW66ciLGC@CqZUS^NW0g99-&CcxX?%RE)s+fnu3=K8SeAit*NWW0{xoB^- ztT(UeTIp~y8m88#Q5IPTAIFK6ewZA^F*thXDfD3s@Bk0V6)eCa8?%G}bu_Tatc?z1 zkJ!W8yeb{?LT2v@XMn@9mf#pud@b`?p}vv7m##4KegMg>%6O?mX$HCT2VE!yyxl>=Ac7+WG9}z->?(k-k;Fe*5ON1hY-G3 z-^NqvAew#<iKsES)3FRca6hNR=%j4AzF*Qc$+nzxwbdz&jUf38aK zB8EUzO+sDLRSA9&=?xvq+$%Ytw@GkoZ->|=_J}sYi+XZV(~GrSAYZOyPP4}OJFD_7 i#R52=M~Rb0gUQgz2Jh2h=1eosb)i?G>yY6tp5PBVEFKvE literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220-nam b/usr/share/terminfo/v/vt220-nam new file mode 100644 index 0000000000000000000000000000000000000000..053eec2ec6e514cc6028ddfaf24cb778f61a0330 GIT binary patch literal 1457 zcmb7DO^Xv*6uqxzKph-#p&*@24ftdloJrNIs!q3QjNi6jbgPXcMxkSWB+*n-om8i_ zjSafcl{nyHaHF6ohzoV28#k`pxDsT9fpOsva51=XVR`PYv=S5tADnZ~yZ5~J>U~t7 z8m9HMjQZ6Zs~sET{8lf8owjjOad;dlyIQvokGqazhmEOed%hZ1?0Um4&BYBnEH%s3 zdW*OzVHT-UpEGGijnQ&iONq1}5Q!}Mk=9Tj{X$yu{j`yWX*2CYZ#RvB$AKesOsW%9 zp-@zkG$qbchtAVQxQBULUDr)@N8N*d zpdLx)1^A_UrT$U>s(uSA0$*#tf6AAvvgq(rrq@4fwZEuzzR2{Bx$r;rUiT&IvUSzE zCSz_`x2=2D!|xj3JKMK2{+Tm!cU1cz{ot z9Vp43cmWanmjrK1GMksgz9qp^ONnO{!6#V-e5Qb@;9=9eU9Tp41qG~fOoKSuLCWMP zgQ<8$M;CN7pyRx&^DGUdpGqGxNTsVIPj}GI>3qnxAsyr9^fWF(=hF)up%pYSQ7X;M zl*=bio;p>lg<-wkXhhNMY_r*F#qr!+yFEXD`t+GI3kzq@b~@+IE%FKBeuVMa{d@y_ z+C?L0YvgQwNywF$RLjX4Ib=`lo?(wC9#1?jKTAAGJlZK-TXCQcD(GU~agFB(1G&MW JpIO`A#v$*pKw7xCEmqdgZ*tFmoLyaz03rcG0UC?hNbi@-Xt zO5vCiO>1I1(-{hNBn;7>9A!xdnE{F|Mbn0OV^lG0B$}*iq9LzZn$d)1SZa>qy^0%e zl?%;M+$%h4mArVz!`}pLx8F%5kXLa5G|^Ws~`%3TD0!ZXc28%^!o0ZQ5uZG%lp3bopZl?@4M%{T5*c%sfrrJ z7h^H6lzFyLL^O5m?CS7e89~jTp79sb@q|A+8&41keu#%af+2MA&mrhGRZ|UlJoX_H z8ML2{Q!Sk&$@K)Z>d@Lg)o_tT6S^LG1t{Dwx4f$|8l(0h|K{fqwFx zHtSkd8+0%WvNSo`7Sf8z(TdL>gZ+G6tE25%NCYPXQtVS~j098I&@=;WI1wjcAFjEWV~ z^Hvjcvu0&7Yw83VwFqh|UDr)o`jithP1F zJid`kpxrWD`cyr1fMT)n@nmvxa%yUNI+Mv}XJ%$+U3YFSmz$r@=NA?h7Yl`@rRC+7 zmDSZ^acyl~_X1yn886tNd#(E#Roq3zU39p>%~vJOJyhIIo9(vJ9-BQjdo29};^)Kf c8OH~THqL+|G8#55Wjn#fP*d~u36v)2H(QZ%Qvd(} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt220d b/usr/share/terminfo/v/vt220d new file mode 100644 index 0000000000000000000000000000000000000000..fb97e3da0da315a2a2d04d8b0e0c25e9a585f304 GIT binary patch literal 1537 zcmdT^zfTlF6n-<3phgo5HHNd;keh@^%zlU+i3v0mCQk1A-uK?TnSJvWH^7Q84E^wu zE%J6OrC#lp?oMh?AEVU#ItoMAwXjk3v<*M5X=-z6y}lUxjk>n#b+o`;@B+WS48Z6I zv=}D1QYM)a6&TDyl3YWmbp|5iA_J%kS-?XE!w_DChk zKE+q?2Hv822k$BW03YE~uOmr5qxypQj`-25{>1pJr<3G296%pC%Pz2ks^ySmf{6C&_c|Tl)Ohx!2GDOu8krdS?7Rs55yq7KH^&%$s zvjtPdqrzY9sHIOtgo0&sAL_AV=*=pYyB_2~Ob#0g|OCugI<;jn+;c zXcRIwWJ+j*o-0CT8lAM1sOVx`L?a@04B;p#QCg|AQ07xs%=cfXs__l zG2xK8=U{%`b(fZwmseI+SA!r7>-9z>iq_Ve%~mUp*Vo(ajg8ICPG@Utd%N4++1XWZ k!qJJ9&z34kGEJtMo-N4%Nj6Ec$y8QWOi4`rCib6)KUpzSS^xk5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt300 b/usr/share/terminfo/v/vt300 new file mode 100644 index 0000000000000000000000000000000000000000..27cde2044935c3abe48d06d5a1d937850c3052a1 GIT binary patch literal 1538 zcmb7EO=whC6h8MRP!$EcsEE(SD09WSnfLB{lbP_;i6((y6UMYE>X4Gj|73og%)I7t9eC|%e^g+igFi*CB=%2lD@DhqMbf*=Zkf{T{tcg{?bX4QC^?>pZ)_q==0 zz2`C~l%Wsl0DY{IT}zQ~-4@t&TLXjri5u78Co+kNQk00M8`V;+SRqpKYm-u>u2LKy z2ik)@B2C@&5uKpZbVg>*QAii)5)Hw-LZjg8z%3f1BJ3=csSe9yQS2JsqxH+K*oi84#uhnDGPr!eum*7|GjoMOwt3Dma{dy40 zPv{vvFMh2PjpN7q$&PMk?(z?NW_}Xy=RL9A-2bXy_K~xj|EvB@Kh?kMXL?h= z(0}Pydh5Nu-(Bhd)Z6!5_g{UW>qu9k>jOGMPQjE+-7{06sarGEK){~`4LJpS1@;qw z?VhY5I>aeJ&ZaAPgOrtp_OrEzm`w$((dN#R%`%A9l0PUwVjvHDA zR)Ixe0cg_rc(FJ$Gdnv!UoKZF)oQJF=T5!8u+V5Un^Cm5xU{sqyt1;oy0&)rZmYGv zzQH$+{tDwM*QBZR0J#m4JsEcl_xyFr}CtwcXAMo AX#fBK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt300-nam b/usr/share/terminfo/v/vt300-nam new file mode 100644 index 0000000000000000000000000000000000000000..3928c672bc4eca9764164008afec8d39f0ca4408 GIT binary patch literal 1576 zcmb7EO=ufO6n--{#5D~xhm?@bVN=Quo(hGYd!;gicTwT@Z-4i#0!JLZw=2aA?5%@^i$^j5%G7%&1ro$~C`gu9l;c zSz9#yz>F5nz^@d|$^J>RZ9 z`>$!2_ULbv8poZYTYMxw7H7m+c;|o~krXa0kF2;P2HUz7Im)A$%Zuy67Yk4g(G=go z{?Pu#PvU2BSL+Ah-^DBNj(8(>#anSz#_@n00`s^bzn0T-PA+J_){e&UUHRZZw=xg; z(UF-a+IxB=c9{EL_3RyT4)dSOU*xayH~EL$mM`UBa!2mI*Y6Kk`aiYzp6mW2yE=|{ zm>tLHI2i@2Y=yQp>sg_)X6pzz^Ppj)phjRn1K1wP8m4Ye0dgu`#eYGI63hV54~zq2 zKq|3C#`zRfIsn;BE+=MKX>wWV60RflQ#e7(xK-9|q!OECT){q0734CdnKDe-5|;Lq zTSw8ZXLDhrcjOtWsKQ3Ca&5*2`X+JsdI5 zN6gt(nyrYf4!;E9|u*&$c|43es&!7c$+FwiP;76Mn|>0#56* zB6QL!qB)kAxTJ9QVfp~;sl*oUFR_UOw4TxwZfF%)2bO^)pg~hpzCSlNKfkb0sZ^^$ zP^&F2hT+muz20a<(em=j%IfOc+WPv&#;se;=H})W-*_&=j|E-E5@UL|8}PZC1;x!p zzcq7b3Q9Lg=}s!$Nr$^#aFk}9@92D+pEat*tDnU?DD>7qIji8MY~{G=-b}Xd<_tnJ j`n%kT7j8na{qVpV`85<30V_bAD!!u1v<)~^nNjpFywsXF literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt300-w b/usr/share/terminfo/v/vt300-w new file mode 100644 index 0000000000000000000000000000000000000000..a19f283cd11e2b02a6e98cf5c58ba795eae24159 GIT binary patch literal 1548 zcmb7EO=weD6h8O1Fe(bpLK%E6qU6bppvk-MrAc{e)V5HZmiSM{pfqjMHqB4dzpP!I&gg&S9{TnU0J7ve@iC=L_`Tqtk8bCTNWN_)xoo$s7`-o5AE zbIBfcn0}-!^oxpi%muEAA8IsV<7|8TdLkFkBNk~C#`2M5WTX&8f_$x9sN_mSN`5U; z3hs3Z!=HfGV2?;sC+(s=w4V;h%t7+$D4n2wc&F$L_yX`7U8WrD1Qn?Y%VSpTB3;9} zf6xuODgIydH{BI=AN){M7`}#m)7Ecc-vJ-Q|46I!i9VysFzi&@)K0Zq?N$5W9RLoh znDStGq|_1B+t#hfMjpUiMh&T)nu4mUrurTB&-NF$)NOS~^gZxP^#Q!1{!y#yUv*rE zVUO+u^SGq1=n*}xr^K(cqhWYQ-}|atnd|&u!^|V`9&d=P=l)+k`Hr0R{HOYvey(5W zSNgSntKaJty}GII*H`+M`n1V)zvwL;J31mAKhO@cvUb6)I`)`vSB*VZL%^K?^;=nU z3ielk?S`y=+QunB+9XPN?;<8)dVmwaXRV zDYuMQV%tElw>yra(v^}P_*YeT-X3!I*x+fGrXk7f{QW^t24k^ z;2a`O5|ONv67FU;anT|{nO?-Y*h{d7BWC!BX{Tfz6FX@gC94loPQkl~7+e!vfJBb3 ziGel2OUo2roCsdJ0Hi(P1o*p;9a}6^WA({gEguVVBlUa`lRqD_Qe-8`!e(4k+)mro zE<5lY+h=JYy_WPK6D{f3Ro8C9PuhN&)4J^dowW04j_pT}7@WPIwqiXKUB>-ImvDgA zQyRt%HGl z)vL|s($X^DIQlD$r;r(x-7dlBZe|TP7yTCI&SZ@=$w()SbkgN+XI&#K`L5(U{H#$e zUi}!}LAI*`O50gK?iklgbR|>Wmq!sAB_5r4;gPo8{?%HUc@z}@b3l!XIYY$}2XLu4 GYUn>s*O21? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt300-w-nam b/usr/share/terminfo/v/vt300-w-nam new file mode 100644 index 0000000000000000000000000000000000000000..4d07d595f48c437ce1313704cf24c5a5d3943c5c GIT binary patch literal 1566 zcmb7EO=weD6h8O1pcVyZp@`4LQ}Sd+kmTL>(xklBw6=w!E%A3ygF|22v`O>RGpZ)_vGGl z@40!0#Q^<4yXhwp=~xUL6+2l!S@uf}=vZ414G)?>U&5SO&rfB|ggKE9%phAW<;#8% zu^?xb=S;suJVcv>AaRqz@DR`(>=8-oqyu!Aj?r;FbAmkTqX8O$cZSY`F9TQUI{C0O zRGdM zm)I{3iX-AEyyL(L5fv^hkEG}oLoMBm?Br3*rNtHDi&?0eXoy>|w_CrsD}EREw0;17 zCEkNSh)-fud=~vO3fn8!8wi=2?ta#s80Rx}Ln$p>4ynYqmmcg#H2-jf}%?cD#W zr{9pXo&QWemoMZ?`C4wsxAL9*AUD73_uDJ|pZfBh>;5ZuckJshJ9g1NGBQ@)s@T?) zXH}FnRYky=0gV_Lbq4kvx;f0B`7_FST}od_He{BA2DSYjZ@m@j6O1k zA@wPE7cIuxf(y`*{U=U21Qz@MmPgQ)%# zk&z@LK?XMCnqpSUs&rd{XImai1?e`W3mI=p+p0KL1AfBtN}SeX1?Z%eMRP1K(yMUx z5!!?GRAe3Z7g@srnonsQH&h3ffdyb5sL}Yi?@v$9%*@Uf3dLfnR4&iWRVwrI)oQI4 z1Pcp`i}m`_((>}k%Ia#Pv9`9(H=auHV?md(#F*ag8hq|%Msah|Z_V79jM7a~x|2$G z(&27r9Hm+3J38OyXN_v{>ZkAyGTmiR%F1{#TRCpLJCW?UK8etz{w#Omg_}@p_ikAu Xy@a9yU=gTN!BX4Gj|73og%)I7t9eC|%e^g+igFi*CB=%2lD@DhqMbf*=Zkf{T{tcg{?bX4QC^?>pZ)_q==0 zz2`C~l%Wsl0DY{IT}zQ~-4@t&TLXjri5u78Co+kNQk00M8`V;+SRqpKYm-u>u2LKy z2ik)@B2C@&5uKpZbVg>*QAii)5)Hw-LZjg8z%3f1BJ3=csSe9yQS2JsqxH+K*oi84#uhnDGPr!eum*7|GjoMOwt3Dma{dy40 zPv{vvFMh2PjpN7q$&PMk?(z?NW_}Xy=RL9A-2bXy_K~xj|EvB@Kh?kMXL?h= z(0}Pydh5Nu-(Bhd)Z6!5_g{UW>qu9k>jOGMPQjE+-7{06sarGEK){~`4LJpS1@;qw z?VhY5I>aeJ&ZaAPgOrtp_OrEzm`w$((dN#R%`%A9l0PUwVjvHDA zR)Ixe0cg_rc(FJ$Gdnv!UoKZF)oQJF=T5!8u+V5Un^Cm5xU{sqyt1;oy0&)rZmYGv zzQH$+{tDwM*QBZR0J#m4JsEcl_xyFr}CtwcXAMo AX#fBK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt320-k3 b/usr/share/terminfo/v/vt320-k3 new file mode 100644 index 0000000000000000000000000000000000000000..84baf1091b9b6fc313c36b242075ad3456419914 GIT binary patch literal 1027 zcmaJCiV z+w5OUHM6t*Q_I!Rug6mZrg^OvpUYz=z8p4!LftQ~6R~=Tp+ZbEbc!sBFrFAEphOy- zr1R86m&u?$a%hky=^kY%kJ&j|02hE|@+pMYXp5Rq8BdiS&@*~LFX;`vQ}KKHNT28n z{4e0Q%0*E(M^OxDk28F(<1g|hxGQ{>lh6Tn_$H6RO#o9sj`RE&Dr12Q?00-S^EYo` zuFfq!;OB6!_$`0n&-}Hs;v0YGAMigr@dd3%GqheUsYOvgU}`q_-!XiYEo%*}i(;hD z8@^Goj3v*g*v3*7iBu7k(dX|&rU21S(In}|L3>4pP9v28Mr}917g44JxdYq=W`HbU zCiY41HR0S4WC=M^m=>qV5vPvx2&Ll)R8at9s{&h9jJl=7uw|OpN3fY22>m~S^=6_) z`iLH%K($o@r9oA^S57rQtqz`o&B?B|B@PGAJpdj8v&dR$DYb?a-w?J<#h~0>go6^f z65;MSx%;RU=p#x?`Ynn{tJL+RC(2|GjcltjV~1w?(8#ORlyp>?qbb?L^g)i03+f%$ z`^GyLbv)ZdcPv}(Yk96W=%t1{$Ci$zJ=;av@!^HS<8BPeHtoM+iS)F5U>q|;-N;*s zR!n}2#l=ElWu;hLU0quXf-qcPFPAHojg4xxR;$+=jm^!it?lido!#BNy=Jr3+LzX# I=ZXXR13Au7#Q*>R literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt320-k311 b/usr/share/terminfo/v/vt320-k311 new file mode 100644 index 0000000000000000000000000000000000000000..1c86f1e779e08ce583b0941614244fd7851c829a GIT binary patch literal 948 zcmZ8eOKTHR6h1c=TE(acO6iCUn4sVzxig80B&M~E5N%3oEnOItCS>wxCXdcco=pnf zxX_ItBBBd%;mThiC_+IHe}g~4t+)`z@7_E>FY`Ulx%b@1nFV&8&d@BqqH~_Mqieyd zRh{!e^7e|lwTV!*4Xa|9Gaa8>p=R{0?BVtU1z&g#*Jh^fl zff9LW1}81h1-dBnmnlvOTBbXQR%rvg1w5cfl!vycLj$N72T~u?Q+fvXf?mq_HNB_zSGss95t?JmqJAoQPQDLRH!3Ru*_CVqo7WylI}3s?u%0L{1W zRkGYS#7;`qH>49thHD@$C?skk!bu9%=p?+HF<~^B)sV&k;j%BzgTX*TcrlCJ6cOkq zC?qH>C{hMRK|H2~ENl{radFkOFRlj?;W#uL{iyY7Z9SD(E!P>0srg*+IYZHSbN13IGNl(nQN;FSa$+L8m0{u!e zV3%{25pZ&O+i(JH2Q45aN=k&pao9gaM^T4Hu?Ra7hh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt320-nam b/usr/share/terminfo/v/vt320-nam new file mode 100644 index 0000000000000000000000000000000000000000..3928c672bc4eca9764164008afec8d39f0ca4408 GIT binary patch literal 1576 zcmb7EO=ufO6n--{#5D~xhm?@bVN=Quo(hGYd!;gicTwT@Z-4i#0!JLZw=2aA?5%@^i$^j5%G7%&1ro$~C`gu9l;c zSz9#yz>F5nz^@d|$^J>RZ9 z`>$!2_ULbv8poZYTYMxw7H7m+c;|o~krXa0kF2;P2HUz7Im)A$%Zuy67Yk4g(G=go z{?Pu#PvU2BSL+Ah-^DBNj(8(>#anSz#_@n00`s^bzn0T-PA+J_){e&UUHRZZw=xg; z(UF-a+IxB=c9{EL_3RyT4)dSOU*xayH~EL$mM`UBa!2mI*Y6Kk`aiYzp6mW2yE=|{ zm>tLHI2i@2Y=yQp>sg_)X6pzz^Ppj)phjRn1K1wP8m4Ye0dgu`#eYGI63hV54~zq2 zKq|3C#`zRfIsn;BE+=MKX>wWV60RflQ#e7(xK-9|q!OECT){q0734CdnKDe-5|;Lq zTSw8ZXLDhrcjOtWsKQ3Ca&5*2`X+JsdI5 zN6gt(nyrYf4!;E9|u*&$c|43es&!7c$+FwiP;76Mn|>0#56* zB6QL!qB)kAxTJ9QVfp~;sl*oUFR_UOw4TxwZfF%)2bO^)pg~hpzCSlNKfkb0sZ^^$ zP^&F2hT+muz20a<(em=j%IfOc+WPv&#;se;=H})W-*_&=j|E-E5@UL|8}PZC1;x!p zzcq7b3Q9Lg=}s!$Nr$^#aFk}9@92D+pEat*tDnU?DD>7qIji8MY~{G=-b}Xd<_tnJ j`n%kT7j8na{qVpV`85<30V_bAD!!u1v<)~^nNjpFywsXF literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt320-w b/usr/share/terminfo/v/vt320-w new file mode 100644 index 0000000000000000000000000000000000000000..a19f283cd11e2b02a6e98cf5c58ba795eae24159 GIT binary patch literal 1548 zcmb7EO=weD6h8O1Fe(bpLK%E6qU6bppvk-MrAc{e)V5HZmiSM{pfqjMHqB4dzpP!I&gg&S9{TnU0J7ve@iC=L_`Tqtk8bCTNWN_)xoo$s7`-o5AE zbIBfcn0}-!^oxpi%muEAA8IsV<7|8TdLkFkBNk~C#`2M5WTX&8f_$x9sN_mSN`5U; z3hs3Z!=HfGV2?;sC+(s=w4V;h%t7+$D4n2wc&F$L_yX`7U8WrD1Qn?Y%VSpTB3;9} zf6xuODgIydH{BI=AN){M7`}#m)7Ecc-vJ-Q|46I!i9VysFzi&@)K0Zq?N$5W9RLoh znDStGq|_1B+t#hfMjpUiMh&T)nu4mUrurTB&-NF$)NOS~^gZxP^#Q!1{!y#yUv*rE zVUO+u^SGq1=n*}xr^K(cqhWYQ-}|atnd|&u!^|V`9&d=P=l)+k`Hr0R{HOYvey(5W zSNgSntKaJty}GII*H`+M`n1V)zvwL;J31mAKhO@cvUb6)I`)`vSB*VZL%^K?^;=nU z3ielk?S`y=+QunB+9XPN?;<8)dVmwaXRV zDYuMQV%tElw>yra(v^}P_*YeT-X3!I*x+fGrXk7f{QW^t24k^ z;2a`O5|ONv67FU;anT|{nO?-Y*h{d7BWC!BX{Tfz6FX@gC94loPQkl~7+e!vfJBb3 ziGel2OUo2roCsdJ0Hi(P1o*p;9a}6^WA({gEguVVBlUa`lRqD_Qe-8`!e(4k+)mro zE<5lY+h=JYy_WPK6D{f3Ro8C9PuhN&)4J^dowW04j_pT}7@WPIwqiXKUB>-ImvDgA zQyRt%HGl z)vL|s($X^DIQlD$r;r(x-7dlBZe|TP7yTCI&SZ@=$w()SbkgN+XI&#K`L5(U{H#$e zUi}!}LAI*`O50gK?iklgbR|>Wmq!sAB_5r4;gPo8{?%HUc@z}@b3l!XIYY$}2XLu4 GYUn>s*O21? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt320-w-nam b/usr/share/terminfo/v/vt320-w-nam new file mode 100644 index 0000000000000000000000000000000000000000..4d07d595f48c437ce1313704cf24c5a5d3943c5c GIT binary patch literal 1566 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt340 b/usr/share/terminfo/v/vt340 new file mode 100644 index 0000000000000000000000000000000000000000..b8854f65fc6c10bd90de9bc5b627c8321291b282 GIT binary patch literal 1055 zcmZWo&1(}u6n_&1t5^_J(5~o$8SO#Ie#NA2ZK`cGXxr3UiWrf`W}Bqlq}$E5Y15>7 z@Y0J1J%|Wi^r9F41_ebB{DV9ge{Yf&)FHo*_vX#a&Koiyrs*UdqSv$<+lXw(XcfK1 z%UuVy_hY#6i7|bC4mElyECl7sVqK5Cuv)1Ve7#YL%DUy~ex>H=L80Uk3H9re5F7$C z)JLbNqs9THL@_#!+&Mb0;)|4~t29Crh;Gp|covwa2lNQKM(fms@_3^38ST<@xR>-w z#c$~yeV|Y9pMh^G*XjI%{_c5ROM;olLAX9~R2+kz5CcLN7kYD-dTR945os|Bp9Lnx zjF{`?yZdxH_Ypr7o~Vfi+*7eDUO?acQ}tfOAH^5wSMgo^5I@D~Sf_I)b{72qF!r;H zu}Z9;w7jgyz?4N-29_*_NZ2J%R?FXp+yPksD$3Fkt^hJt(#I1hQ-+KI*MS*e3b5ik z{aW6Px3QC!kGDx1G>}eKK_-*Kt5WO~IdFqF5LLV4`0$pRvUo0^NtWZomSH4D*z+uJ zI;`n8HO`o2knMvUrX*8}b7_$2T26@V9M|M;pX3kE;jkROHg^}81@2+SOzkkI6%R36 z1~@kk;D$NAVaD{e5v67A8U;%xU;#GZP``%Syy`2rLYb*O!}n8}(LFP{XZBZdBUOz$ z%l0YJtOSXAxe$7ZsPMS%MG5?$3^X%MT8j8M-rtZJ8C;Q(Yf6``1?zOJ1DotxQwFwd zAx=rR%4I_`!ox@pO_whEi;HFHF!sayp%MIirYnnCT39F)mX=DT<>i$X->+6{wbj)i kSX&FjdOeEP*EcpAjm^!it!8t3yVYv9cer_Y0mVN30n(Cg*#H0l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt400 b/usr/share/terminfo/v/vt400 new file mode 100644 index 0000000000000000000000000000000000000000..f00ed59192cebc1ab736c5fdc613da6cbe1987fa GIT binary patch literal 1065 zcmZWm&ubG=5S|wg{-Ss&1$7Zp$b)*Q+1+eR!p6qhR#MxN`l}Rz*tJQMw!6(X*`#fn z^k6{{1-vShEz(`^GEky*s=(f-2lNP**HdK==sCTFdPQ%P|CZj< zNBRW)1^B9BC&ekz=?nt>HFT)YK%EoALc*RGQ4tq*FE`$^Q$0H^=EQC2JAfmKVzn3V zpXtHh6iu-&9zz|77veSSyMO-rp#0C`8|-)SL;MuKL@Lzjq(fui|JVFsbU*YkG(cKj zu1epK1zY;2EL0JQl|Wf7e=U+W^ynCznMm4F;!o(WU0FK8TY!uicQF$s$}khaI4}>) z0cK=xK+7AEHV)PDkv3@~I>K=eWH4F0E5S;U1vPR7p4T;&3vH^D$+>(cUXG+q9q(k# zSw1wag|BKHG0LEr3$mEvObL!9L56KwRUBv82EY9>Fw2k6;ldnVoVyO(0B#~Xl?#w;Djc^D^p!qYTtS;*4TlH;tbluB!B u>+7!Tc^ey*itlf3R;#sI5Y+39#@5#M_RdbTxx3qHwcC5#M+`)vShEz(`^GEky*s=(f-2lNP**HdK==sCTFdPQ%P|CZj< zNBRW)1^B9BC&ekz=?nt>HFT)YK%EoALc*RGQ4tq*FE`$^Q$0H^=EQC2JAfmKVzn3V zpXtHh6iu-&9zz|77veSSyMO-rp#0C`8|-)SL;MuKL@Lzjq(fui|JVFsbU*YkG(cKj zu1epK1zY;2EL0JQl|Wf7e=U+W^ynCznMm4F;!o(WU0FK8TY!uicQF$s$}khaI4}>) z0cK=xK+7AEHV)PDkv3@~I>K=eWH4F0E5S;U1vPR7p4T;&3vH^D$+>(cUXG+q9q(k# zSw1wag|BKHG0LEr3$mEvObL!9L56KwRUBv82EY9>Fw2k6;ldnVoVyO(0B#~Xl?#w;Djc^D^p!qYTtS;*4TlH;tbluB!B u>+7!Tc^ey*itlf3R;#sI5Y+39#@5#M_RdbTxx3qHwcC5#M+`)w%w#^P6B|D*1Y2$WAeErBn%cBY+A*2_Vp35M zgn}zU+=&|z1VL~m;>Lw8>P8fFqYGWR5;rb{@!XfRG>BpZhn(}yz3<*Tciw$z6C0?N zR?=m0Ix-blre5jnI<)Q7Nhl&Ae>D<8Z3|&;q@tchFyeuXycx5r#W}-2gv( zu$pxphK|@P_KQxD7Cqv)=oe>27JH+>1W*z)qFRr=BCd(+bzQ5}$n)5{A#RB~;y%

^J_# zs7CAgKjbu4_&?T5QmSxGIVX0#E_H?*v$ z`KFdF!Vw<^rPYjiIGVKe4jA3hWSrL}M?+3Jnluo$hO>Z_Y3K1LlOl)Z5O4tK1C9WC zbdJ=WdNgTrNxM)N#-gw|$z8PE0xXM3cG-{AgVChLsRb!z6)O+hl(D7^PT4us)%92h z`anPY+A7%aOsj}c%QIxJj+;|64y^4y#mXaotdtup4#k4ObETmmHWkEm9a%l{d*bLj zbCA?t{t~ktR_`(3IBG-sZ^_Td}1k=??%eSJa_S2RX^ x93j9k$WjM8g9OPg(qfQ~wl}lPflwLJ(W;rM1%|3A#Yh6y7$RT+ps*20AplAT^%MXA literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt420f b/usr/share/terminfo/v/vt420f new file mode 100644 index 0000000000000000000000000000000000000000..99d17247f9d7e9ea4021efe3a64ea717c4568792 GIT binary patch literal 1820 zcmb_bPly|36o220*eVr45K9LnXohNK$;>x1nZ$`3ZM)0jwzjLq7Q(`2o9rgtWOtgG z{h!^c2M-nmp@M=35uq0mFCIL2@l+7K*n=K=@lXVzMf4zo#NT_#E)Aj>@FVZ{e(&YI z_r33X-yBin^cWqWE9z5oE%mjt&^ZGdK$=4%nV94FIWsnw&*q&qel zWLA@UEmKW0lS}o@gh;r;q45eL|npmtx8IG|HzH7V&{QG)$-+ROOR`|_* z&v5kj|KJ~v8n$kYl=GwUlX1uR&G^G0^M3P?`G|Sg9Ip3&S&y4fj#T-W8JN$Sr$@>e zt=AcIe&p)uzhqoB570woRqUo6yLK(IV{O+uaCnP=DXXGi%$5RY9L99E@HbPIoXotl0kbw+&$uRQn+V@ZCE~oba?@( z$Fn7$Q`ko69 zi{^{`e9#|0ks5|l$uG0pu0)QjJwM2Yh2rc*xL6R42Q@fMa*rdDA>8W`2i*AT#O*{* T$KvPewE#Xtz`!rGTxif=20lt~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt420pc b/usr/share/terminfo/v/vt420pc new file mode 100644 index 0000000000000000000000000000000000000000..82a8001ddda988c06875b4191c4fc06c376dd759 GIT binary patch literal 2138 zcmb7GO>7%g5T3VhQ40uhKnT>mMBr6H5%TVPyI#9%;?mSo)U*)Nv_&!zacwtFW5=$& z&7bX*ABh7+AWHcY7X*i@f)l6*RB=E;f=eW%N=QBRfIvt+RU9}~X5Q>`;zC8qDl_xV z_h#nJzMW@f4;z8UU>Cf~cHg%gdBSOyx(D;)BgbbDkE|r8#zz(_YbP7URvCcNU#u8Y zE((Jw*bR?EpB|1DzyK2-g*~trlEkOsd5oHY0(!GhMqNdzK@%dh>+m|9N2{KTWIut= z;SziWSKvGHe}YZ82GUjojQsaJKvJA_yJey=MvJ-5UmDmDn zur{u*qIB77>`fi}7JG-ix0M&y8rBza?IZRXyUe~ubd~+UHqrh<88_GoqhQP#aeT#y zjJFZLYg{lsFg`YZMf|(*hh817+3(-pVjZ61YAs88IBGvJ`G4`lF?Yv@c9io1KgJ8Z z#20y+claCpJb#~m%D>=W@^AQ6{yqPZZ}MyWI={hx<2U&&{ujT^x%r^^h-sNmnxm#P zLv!4mG>@7E^X~l&*pgYjN5mj9wheRLJZE0mQO=ze?&W=GUfOZ>Z~r6XXY)^U7d!-3 z!CtVNu3Zl8rm)K`B;-7*39BFuC9=LVhR$RnE0x_M?#P))WL*q59PGSSBr<_DqsFHqN19t#Cl@tuTppKrW6m|I$rXEOSJ(XG~NL9QV`hsEw z1?T)K)^(iZ81{kvsBL?w-B5Tf4D~{ndQAmYtB^wPi6$i17n;d-wb-g8qvFYSB}y(w z(s3~BFuu<@vJ@~o2wN{OQiHZx-X&olDZ$M-%ILzsr!;TU+R2!Qk_^T zqwXLcKK{;>rxB)>6m1tm#}(4^Q$ad2TS7_+M&qs2U#dMs(5RJ%85(t@@u!PuCv;kt jy7RJz%2Uc$N?r3@x(dgRPQNmfpFXlr{|8ZSwD-Z^sPJ;k literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt420pcdos b/usr/share/terminfo/v/vt420pcdos new file mode 100644 index 0000000000000000000000000000000000000000..62aea2e986356a70bdaee4f29762a2588b809f04 GIT binary patch literal 2119 zcmb7EO=w(I6h8Oe2WiWqB8H@`{s|CX4)o&*dHA=7R$7fX=XB$c9KkH zCP|ygB>o^3OGU8=SqTMk5jTP^Tx8KrK@mh(x)FqKEGUQ@yRhRq=iSMVT55(l=Y03O z=bU@)z30CDVh|pMJ@A_N)m~@?%BxS5W}C|+M~5S)#&8%}jOB+Tle3M;$n!5nPL>;$ zGJxQJsDz*)ihw-qg?-TFpF|5_fejDCei(ol^C@@^y~dz`qq9&#T}7!u9a?CY;0?Hf zmVVdRuEBNq1U`i?V1vgu;3j+n-y^<-avSczUeWDFP@*XGdlK!S!QJlDLWz_Z5+mZ6 z$ct0rj5sH%qK5NxDDz@TtQy}p#bxo%W?YzSyS|EZ?};^WU92PeTx^J&Xusu%A4J|7 zvrb!~|Et!t^%ml{tt-~M*4^&=h_6{6n%V6+yWRCo_9yEWdH zb5}8cSyJ}Nez{LRE)PgwrsZMztb9S9mPI)wXXU(X%h%;)c~yQO*W^d?W4SIrlV8dk z@+Mx9ah0!N=#gkP zpirKvAyDk3*ee&WVnWZ04PgOT2(8ya?PpZbK-VDSbCHQ;)hQ%!^h6zEOH=h&vs!GF zW3A%3X1NtxXlc*Gs1vx6RkTMagO7C=6l-4*_BHE(b)0pQb&7SGwDL&Pk{mLEAVCbf zo1+;5=O8#ok>x$oK{24yVnE9?IMf3tdVmu06y;)oXPx&m{<52M+kT=$+>qOH+g`^l zyKUufF$jr?Z!s!ll3R>sMq_XrD|ook4sIyy&2bnXFBT^!E0y!-FI=eArl)6SW@qd5xw%H8*=)7u=NA?h z7cXACbZKd+-CkbqbXMq$b4hBYToSwB0NrMIQ8dFy@%5>Y#r~iPUm2^74UCN&n>03M zY&x{cGuGr$CLa5Z^KM^D@!czK1I4YPxK%W_mS%s=wP~(Rv%e1g|C!g+r4nWxQ<+$@d>PlQz4SJ;u{v>Fl< iZid#uz2TGA{K3e18L#2cqt`W50jW4Cdgr-R75)Z$WNg#` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt50 b/usr/share/terminfo/v/vt50 new file mode 100644 index 0000000000000000000000000000000000000000..65ef6459b5cf77098d512720a301b190085932e2 GIT binary patch literal 700 zcmb1QHb;eL~bvxb)s>E|0+21N#T23`hf4{0w3X>SG~$;H6IAnnW` R?FeLXGDzz?GDt@;008rYK?DE* literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt50h b/usr/share/terminfo/v/vt50h new file mode 100644 index 0000000000000000000000000000000000000000..e85ea38515e7453afee0d03a94166ff32e396f1b GIT binary patch literal 797 zcmds#&r1S96vsbXK@>)vdlxU0icl#<2cbpXU@;F{NTgCA64aqs%O43Hg#Pg9?J}*` z4twgs=llK6yy49p=FmIfh)pWqH}mQF>GM}`)h^!kH1VhMBCIVau%T-07CR(sYxgOq zUQP8_wU(x&mtUQ^nHMxPUD8wy2`#L+6jq^LvH0qip6lOHaJ;%7j_Aljn{9 zch-^>+w38sbdYNj?VGq}O2v|?nz4!NzY%F60n$dAY4(>$gxnyvh(A?k%3N6}pXw%w#^P6B|D*1Y2$WAeErBn%cBY+A*2_Vp35M zgn}zU+=&|z1VL~m;>Lw8>P8fFqYGWR5;rb{@!XfRG>BpZhn(}yz3<*Tciw$z6C0?N zR?=m0Ix-d5hFD<8Z3|&;q@tchFyeuXycx5r#W}-2gv( zu$pxphK|@P_KQxD7Cqv)=oe>27JH+>1W*z)qFRr=BCd(+bzQ5}$n)5{A#RB~;y%

^J_# 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 TxB`d^fw&lmi-5QQi1Qc#vq&9G literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt52-basic b/usr/share/terminfo/v/vt52-basic new file mode 100644 index 0000000000000000000000000000000000000000..06d5cb6e6fd66bfebdc940ba0729316484e2ce6b GIT binary patch literal 397 zcmb1Qlw)9EU}k7%@MkD1F*VXnN-WMyt_cen~kYM=# zpMil1NdEuN!obPE17`6vXfS94S$bfeA&@iyvp}jS1LjEPSR%1;nQ8-7V-KaB2SG)8L3)esH(1@uBxq?tXg0MV=_oP0hKXGyD&&Q XGe|oE0}>i*%W;VZ2FqXbK}g57hXGp3qZzPA}=Tvft8s`bb}(e*lZbDzQ=2>sx^~ zfS>Ic+aq1C?-d6`mpCp0aZ2=wAu%GxFjoUE0awKhaVv_wE$)hYk#1CK<|)kG7Z1f_ z@eJyPcqOJWzK=3KiLc^&q-Vrptwr0Q8JevnwUl;6tJkk-*TKI&Q*+)o+O*Q|<~+^O zAAaL+j%v0({zp!8g@v&`Yv2B9XET}>TM}CrTbSK&)s|S|pR4cqLq>N@4^H6kSwVUr z2W4o=oG(L5=1Oqb1E3B)u=d5%uF(dgGoH42oO5tS)vU=aGPei*rV<_Tw27?cTm;Bi zZUKLp5_t@}fE~ag-~eF6CrRIA#M2h9;1(lc&I*T}gCB_HCL^+==^(89V z)8)QOVzgo#2D0|6@3FD(U?=GZ`Ae)6tb>PvBS06I_ITcGRm`)2WhgckGwlYFEL^7O zVA@FEMtVCO>I=EJ5`0!lV9AEqJ}dUm3NEN(xRw%p(u07*Kj`T$pxY&=ScTR zM|ssTnUP^qR(wdXU~S=$VjPFE>|k&&W(STqeF-nbti01T%L7%g5T3Uil~R6$;80)@jUum9R0;3C-L;dfiPHcjB>|Tdp$MxeZk)!6f8y91 z=g&?gkm#X8T;PC25g?=w`gdV43Fe}ex545^3Ii0XF7feC=0N%*Olce^LlteR8v>NQnVtE#SAs;ypE zZ{qz0;BEDedM}Q>s6JAkfL{VWRbQwtW4%|k+r5nO6?IMhpnd}TMg6Y+g8w^?GK>Sp zJw`9~0po~~HpY#U#;lPu=8TKbKQum$-(EJpHm(}ijBjQ9eXL?X#*oSRhs5@0?fLtm zJ$M`a=BQgohX=}e%p5U~nopX(Ic`pxC(K!MZlL^I=f9IOZ=M;ba?xBfBlG+~Id_`- z_WA|${ei20{vR3Nm{$H(d`tI{mA6;yx@#9hyRPkG1A?~m6%RsTx1>MB0yFL6?|nvN^nmD$AMG83xJc@BkQP>$Y`D+sK&(Y z6Q7gP{ZYD#kM8@aTs!*xoS1{HRt0g!alu*}kk`q`5*2B|wVBJvr4TSok zD{D=qOIALG(MX+=J1g~Mvs7p-C8NUG=2DbwMV{jzYZm+2ho9mKE|#CyVqMML^~CyO z1F>nbqhiO{YKJXPDJjo@q*#&g_=G0NdWx(Z&MEg2FbA9_>sds}*7^K|@F5D}-h{9PL1&`!@BWd716tVs>ZUN z4;@!~evnF!j-6SA#6UFeUA)QW4MHfrx=|4UGQL%jozQ7me5<_*jL#-u!xuR_TEf2^ h|IZzy;n?4M-CMaW>^lNlK!eH!P35yL;8A%|)4z)BNCE%= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt525 b/usr/share/terminfo/v/vt525 new file mode 100644 index 0000000000000000000000000000000000000000..7e6d471e0504c6adb8a2f679dfbee902b0f4e06f GIT binary patch literal 1723 zcmcIjOK1~O6uoaE{y-31_!%fFd7!w+d^3#`8-K-W6+aa%4q{`|HnmBeCb89~si2~W z2rd)^q2Njocj86_SAr|iRTm=YMi3RmO?Sp~U#6u&6cswmIq%&2?!E8LyKmNsm9(0c z&_z*=jaFRCo!H&JYyGjKP((t#4HAM)K+qvtN^7XDo)~i*%W;VZ2FqXbK}g57hXGp3qZzPA}=Tvft8s`bb}(e*lZbDzQ=2>sx^~ zfS>Ic+aq1C?-d6`mpCp0aZ2=wAu%GxFjoUE0awKhaVv_wE$)hYk#1CK<|)kG7Z1f_ z@eJyPcqOJWzK=3KiLc^&q-Vrptwr0Q8JevnwUl;6tJkk-*TKI&Q*+)o+O*Q|<~+^O zAAaL+j%v0({zp!8g@v&`Yv2B9XET}>TM}CrTbSK&)s|S|pR4cqLq>N@4^H6kSwVUr z2W4o=oG(L5=1Oqb1E3B)u=d5%uF(dgGoH42oO5tS)vU=aGPei*rV<_Tw27?cTm;Bi zZUKLp5_t@}fE~ag-~eF6CrRIA#M2h9;1(lc&I*T}gCB_HCL^+==^(89V z)8)QOVzgo#2D0|6@3FD(U?=GZ`Ae)6tb>PvBS06I_ITcGRm`)2WhgckGwlYFEL^7O zVA@FEMtVCO>I=EJ5`0!lV9AEqJ}dUm3NEN(xRw%p(u07*Kj`T$pxY&=ScTR zM|ssTnUP^qR(wdXU~S=$VjPFE>|k&&W(STqeF-nbti01a5s3Sl8;h71e=4FCU205Jmt6OjD> zpOZm^K?clHWpD=5u3*v~Ncw|WAXU@@;Y64j1yvIZr4xwIL#hjt8M2_J7BR3h@T%At z8Q3vMdq{h!*cgJD-YPccAR)Lwq-ueos=9)@sLz`-Ex3^m0ON;@$~ Uy8uNQq#YT!ph95ElYx@~0A@rDdjJ3c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vt61.5 b/usr/share/terminfo/v/vt61.5 new file mode 100644 index 0000000000000000000000000000000000000000..820ce7d3ffdc727406009e2a61434d20984b53d1 GIT binary patch literal 432 zcmb1QlxARHU}k7%C}AioF*B?wE71j$W`=sEH7>5s3Sl8;h71e=4FCU205Jmt6OjD> zpOZm^K?clHWpD=5u3*v~Ncw|WAXU@@;Y64j1yvIZr4xwIL#hjt8M2_J7BR3h@T%At z8Q3vMdq{h!*cgJD-YPccAR)Lwq-ueos=9)@sLz`-Ex3^m0ON;@$~ Uy8uNQq#YT!ph95ElYx@~0A@rDdjJ3c literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vte b/usr/share/terminfo/v/vte new file mode 100644 index 0000000000000000000000000000000000000000..8110fc478c7f023760b93f81710ef54971aa4dd7 GIT binary patch literal 3534 zcmb_fZH$~%6+UO)cPT|Ev5kQ;u`cRci-OGiJ+p7y-R|zdZrj-%y1QlR1nIUrbhn*p zr#sv2(%l6=_|e1$O(29A8<7yKp%El1k@%Ge@du4Yf-x8*CYUs+K`|OlB#h6w=bdRy zmLDWedY|Xq^W1yx-TQIg+Z#Abo9S9Q%W>Dje06#6c(Hrx$W-_3Bcr8a_jq-#K6`Yk zM#SbHnIEHa*{@S$D$|v8J+)T(T}gfDV$&69v5_`m%umy2(Xv20X*c@a3HvVE51dAs zp&GE&YS0{=q-EF-(Zlo@_$)m^-=g#MeR`gLjQX$WRr($M!L)9*{+{v%ZndsMk>5t} zrqph=KF*u@X3lZIdEU;0ypzkkm-j)x2jw8oaGj6yBJ2nFOZ??dKaF)cJ`C+q{sy1p z@A3=$bH2d8;Wzl=|Md79+nF^P>D80jmKno~^tjDc$*0a|0)=#XLtP9qw*6Y?Et-o0Ru->(7`)YfGeS>|Yy~WPidArXZ zvdi|Qz2Ba(kJ$_Miv6H{#(u>9y8Wbm-u|BbBl|`BW&0KTHT#47C9T#Q_FMMbHg|P( zy??)Tt7scm@x6b9)s>BDjE{DG>i-aJ^)W8@x?Mq6wz7}b&^45;II~W}b*2-i;W^WD zaQKG+L)nVA6TAyWIBj+NB~v>L(N%B_q4auT4Oh_^GoS&K9Vlg#60HM*j*O z42JNMT#}oI#}juT{qkbP9SFoSGn_ zY8%qgc>3CgOvQM1w+$K5cw{hRjJJ&)B=v*h_M9bm#ks|qK0w)nq|1=Mv^F<3E?*Q~ zDp~DZ4y%nV#tz9!rN?0!0ptM4JabO3(}VQ3^T8$>ok04 z8THsn>e9L3%&&8**E$JhhiEOL7is_gsi}MKJ#=Vx_VD2&M{2ct{pitS#~O{}$LHpn z&H4EgCl(e?o?KkK@4i!~mX?;6S61$q<==;bT{nnBu%$nHQx4028;Z>Zlp#0cTg2=yTvKzQ!Xfbxs=h~L`-Mp z1!=n^)YzfM4mEa|#!gRVqMT2;pp4kY@3|@aDF@1K5^3y6V@Dc0N@JUI?8b?5KIMWk zVjDkVEBh(qTIquN8r#>{zQ*>`*k<(*TRER{K^d`ib#YD8HBk=Ic1fVI1C1S+*pjnw zK#|g>r5+sx^g5L!=X!n+MsdDyH%@*w-ll)j zyJYcI{9(SHKZe)CEqFU5+|R>!Io!#g<0{v<$*1@We44+)kMdc5lAq@1_=o&6{ssRM zuY%Y4P5u+V!~f>@ILY*3QWoApYw2pF$o2FQyqL1oO`o7GcoDf2PyzEBpdl(@hI^@k zS5cJ?Q-c=p68a*YribVe%=dA6ik_xt@e+E0eo8N4&cCML((ma_dW-&wS^tNa*YGvG zfj45_4u6JSjxqB-F5=ZQ%Hw<&-^0@^i6WOX3E3F9e0RI9w?@cIWIdZ=hp7#ZXFN!u z<~pLYY<8&Mi|*rMo1F=I+MA*I%}A1*qC_&3Bo5c4w{6b+j8m;i`oQHjM+RwLf~E&Q zJ)?f2X}q18eNE7TQm7Ou#Y(1oy}dFfqDuT6VO zzGNIkQ3{nJrC2D^D3L~qG)kmVB8?JilTe$4+9cE_VP_!8Vi-s%REm^hCHZ2ZiLVqW zg-Vf9EaaKH6y|%p9c9j;)sYNB94eS0 zWyE0_aacy&ecLz`AS56(AVeV4kx5a3P=Qc^P=Qd(d-g&FLIpwvLIpzIGc0|9P=Qc^ nP=Qb<%2Lo^q6~ea40)mqb)p>8Tzzqon$>yy_pB-AVx9gAn#Y~t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vte+pcfkeys b/usr/share/terminfo/v/vte+pcfkeys new file mode 100644 index 0000000000000000000000000000000000000000..b95257a0dd61183651a5300e845e8c9c54364a1e GIT binary patch literal 2050 zcmc(fUuaxK7{$+br51y&_^1BqRvKEgwpGa9duQ&(^$$tYkS%t1U9+`xL2YWH+r+e{ zX{`_{BKARxPy`i0r3l4BQ4lPMC<>wvQXff6a)noM2+X0Z?ca*_|heFes|`~ zJ>O(@W>?EC(9a4fl0);8oA>XTnx1_4z`~C4ts4&XAKE?F-96vkH`~v@!}F7K4=hdS zzi#4Scjn&i?0x+cGyC>TZ^Ys``G9qo^=e;$6}S{vpoF!!2AfevftxWzf0S(-8W_h; z+|B2y-aF@H+5b^=@BdoaYcpY!zU3`d-@j1T2 z_xKsV;~$(aD`l0ek@d1kQn^uvWt+5QmrTfBc~B0^BXU%pl4s;aIVrEo8F@!OkhAic zd@0|`kMgVhDM`|oT#~F#)+HO0fuz*Qj-b>SW^1C_|Bb{;)v=Ves zH65Tf#`H-aM)=@$T&Fj-@S$8ynW`A#h_+F7v#L(lQSA{Sp*I*}tmk@znwIJ^J87=z ze2Z&U=t2oyD`CrxuN9G%$U$Q|5Xt!=F)k?0L!U9uvYll+%XTq4ZbsEui5xUCJB+6c ziP^?H^qK7~+grA`Y#+13_LYmOu@X6GWOf*5wlRy$1DTy!c4pa`WoI!v>>jg?mB>LO zvu$@764!0aL!a5XW#^Wix5Cd7a@>z&39uY1u?lOj9-DZpE4US-*v{MB!34V4kB4vs zkK-7g#`8FVSMVCn;BCB*kMIe;z&H4TXZtt&h4Z9OE|x20tz0WNNG?^L?wT~^PPt1a z1z3hYT!hPT6|TlQY{2!b=5Z5-F@`$p?ZQ2n!VKnEaRHCwD4xV|Jc}3bGETAT8+Z%v z@kX7+r>y%mzQa%W1%KdgR$eX_vi9Xt5f8Cy~s&sRJGOH0c1_AtfZ4Bk*EyrplL#5og19N8w!J7dafli_+T*aw)m4Z^&reom94N9a&#QRz`>Qt6I0w$r83rP8I+rP8fw#hO;EX~mjWtZBvDM#t$;X;JA> zX;SIdcdARJOQlPtOQqXv?VwAgOQlPtOQqYY>AO_ARJv5URJ!e^Hcn_a>9?D-+fBOd HW`TbJZw%&{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vte-2007 b/usr/share/terminfo/v/vte-2007 new file mode 100644 index 0000000000000000000000000000000000000000..40b7c7635c204a41ebde5bc7bda595e0929f381b GIT binary patch literal 2985 zcmcguX>3$g6h8Oerz{2mqZemMB?rbNibl7k&NHD_q7lOqknvv`+eu0@7{Cn z_U@ZWqK+n04Lu=tnVb4Lra8%EIJm5(p|-1ByC9ouZm4bP=qYuT+lsZl<+e(1XLnz% zGu=*2w~2)Mk$MCw=RLzUL3tWU6R3KDXC&PUKaoKuji*U;14c3x9-rn@hMH(8>{hxB zxEiIMI)T+{5m=^PWe+O6i|(WQ=^@%r2k0O?&(kaPIvr73wfbSqC&0hP_9^h0*sfO3 zk`N=rWuiu0Ats9Jge7hkw(v!@Is;{vm@6`(Ni2oEQrs@qg8%6$ive+`YO_Z?A`ZZM z`Y$~Wix-vWTk(T9DNc#s#2H~5)vAYb?g@r#GhlVATCcH1@y=mwsQul_v-@xUA^pO< z7wz{Mj}7;F(l}%sR<&1wM`HiG!+N!P)cDBw%=p6i+W5}+**IyOF@zi?$H|HEdO1Z- zm#$37nX*AP%T~EccF2fJ zD=#s}nB&cBOv{{V)|nR`@x{HKS#QoWmz#zE-1Fiw|Ear@f)gDK(s`7gZUZpt&fsQSvCw zG!|%=C=o*ULe@Qo5H1ZKTWTaLaG4|u$r7WpP_-{6QmA-E05{`O?|0sGi=9l?&0idjQ4g)C#9G?w8*6pcSP>;MGzy&?X!Yv0wzX^5t?TMqzkb7pVzE>zm%F$!CIjz}A#*8E?Qal>R zQ}vwBF@28db4)*u8K0F%b1LSvX2eu}$Bx;J*;AYgIA*{x1CANQG1aNE!$@-~=Co$S zRDQ(N?8b~k&U1G;rpqy1j_JlR)#@Oo=2XmS&4{U24=+nRcg>!v=RA(-aZC>}`846O zXlFAh1M00pl(Ze!^Mf#zUWH>?;NqquFU>D1A2(MWVy<~Z7WTiy-+%I`iyk!C8i8A4 zJY7vU;u~&Lit6zdZ>AP1&>d(~p#j=K_tIY4M~~wx{S3W8uhCod9(_Qc(&u!Xexwt0 zn*JauMvHM`0=~nO#WdlGNX!w9A}^NX+uMOe64%rix}2^;u3EB?tq!9|BVPk8qQ$hF zR?!+{?52L&iaX;T+CvY}qsaOc9ir#xWqO0&M&9@7V>(7((KqxHGM}Q~@o(l*mfPuk&I8#(2!hy(GW$GuPM+JG6gzHprZsjN}!_zI*PBG__~R&oA|nk zKb(kPUL?}wYYH@ln)o_J6IYX`$=4KU3TM-b7TPdxuFK#t_zVF<2*`3_G0S3>#Vm_i zhz;3!P=Jtt(0~wuP&2t^s6ePds6ePdsEwSlkux@O#zxNA$QhgFw?F|x0zv~q1VYWO zU=;`z2o(qw2sOWC8B`!tAXFe!Ak-y|+!qKH2o(qw2(>lO1r1vB&|CA6Tk}v`^CA5S D;VCi( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vte-2008 b/usr/share/terminfo/v/vte-2008 new file mode 100644 index 0000000000000000000000000000000000000000..d7b9011d541b56291104a9c70c81a5661d252b30 GIT binary patch literal 3023 zcmcguX>3$g6h3$EQx*dRl?aSWT^fn)m-Xr>+Y*? zC%f)sk4TvxnMa{=-ZNNJRG^_WmdY1+hSF{D6Q#(aF*KfTz({U}C!lJ|Q!Ooo-9)zo zm!q^$8?apN0CrKYvHK0~pnK^7dYB%i1N0O;&(kaPIvq7yx%^?mr@%iZ_8IWm#4eYA zC#8m{%hV`!g&L=>Q?|NAIVw=)@>G=RYL?2YTD1`NQgw$~3I3<2OKnhhnKrxBBkBOG zr~lI9h~^Ztj;PYRWAD|=bmt|HWgO4sr9Bd8Qwmq4Ya@8c<%d~e?Y%5 z??(H*sr`e!o=6=^9Wk|6fkzYnyMubUd@S`*>a)~|)XCKMsne;mDW!+$(R!S|UQg7H z&gx2Ct?P7?UZz`hr(UPG>Ye&Qy-y#|2lcc1CHuvome=Va84Mpjo(F(B(|_`>WCdm>`-Ed5<5&{o73h* zv2ZrwoG@Y=KVl1e3FGj~ns^f1lh~fb_LA6U^$=S)n{ZATv1N7fG9}{{_Dvn*_9eD2 zv3wp17%ac|AED$p(6{+(ZMHizj!CFBAxcLXnUsuZ}Mi2!%qC zkjJkT_Dv`d3WXvjH`!_#lA9dZY}%QG^1aP$*&wB}yn!LWvSelu)7s(j<^3 zfiwxENidj*UvVT73WP$TNQf_8H1ULdp+G1Uie}J~Mp`p_mdD^T1PmcV1gPi2Vm*uX zEY`DF53#C#HWVNvAT%IEAk=(A9aJDxAXFe!Ak-SpSi>1>IAaZGtl^Bc)s0YqkbuyD z5P?wZm#_+i3WN%T3WQo%um~y;DiA6VDiG>|8tw~(3WN%T3WVBJ;DQEC1?Wu$$V~;P IO@)a51bYTLg#Z8m literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vte-2012 b/usr/share/terminfo/v/vte-2012 new file mode 100644 index 0000000000000000000000000000000000000000..a71384b49658d4ccdc00cc97172bc70b212ba217 GIT binary patch literal 3027 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 aR3OxW5*Gvvl%NlkAP?`pu+SOHOY+NT@bG3*H zie6;UJLpYNR8sawQWU+ZAdDa*q@XAwDu^CbOuuu_H)GV=Uw!QT{mwnVbI-kdUvp1T zN6{%Xl^#$Hv#CCEmhXDW#Q6iAGu=6nJI5zd_K)nRQ2E=}s;Lr9q2s7A$v1`OqlKY^ z5OF-sKwoFj97GmrDfLi^E`WU@tppCEj8X;IXw-mXv>A8}T~9ZGZ=*Zu9(s_TpeN}W z)OXXX^cKAji@$vtlWH^!3V#QI56$dGW2!n*9j{JOvy`LGRGv!IT(wXwf!>2sQiE!R zxCa>4KiGyL3qp>6Lm^*Yvo)THl~=(Rb?m^`rVJ{k-0-U)S&H zkMyVd3;m7$LI0}BOfl2Uab~7D&A28p^Gv7dF$3lzGi)lRZYIoi=4P|Q+-n{(laKj8 z-p9>zW|w)#y#F8VKAuGTbQ0fz`Z$pP^DM`g=KKF4+ktx7@BhvGVe;h_bTA!G`LeUd zsd>(D>ePH^cnpqUHJ~eB_LqXsMPbgOmh3mBK^GkYR~Jf$A60M^tuYE(h;j}}38j~g z0D4u*C(y%$bsx2I$X0=^qy-^cc1%OKKJsO^%IGh(Ei3r~Dq)2^wux`UJEGB(+dbDk zdmf@Nj(oWaBN^q;{51i6=o%L`}));6S=;?Ah%VYV%{z;fs`}=<{bAkc6u3LfNM_2`()@+f7k${(# z$K*O4PAzuospq6@`Y=N=BbdIJ3Cx0+o>L2)3DgrOt#XT^Q$NBPnd+pJ@1i!O?4*?| zFS~5js@1F4tXaEu-MUJpT3x^XiYsch4I9SBHg2rfue@^8rp=qj$G2>`>Z+|1_0tIVo5lei!i*Pja$CRe zWgKK23VUfRxns#4OYS(!ZMUeGq{4-ai^9ll{m3mGWQ-Fd6Bt!xM zF%64+Zv+g!#dfaR)4{&5X<_G7<>k>%TPUyjtWA|jQ7E_^dh}XZ_s_)Ot_W|zk0tIb{xamqIYpJC70>TPr8I`vU! zq{1f|N6juE?o*D=wqdqof>iFy<`o#oO&AJALa|UH6v$Z(g(9I?C=m+y9D8Xf6bZ#b z36r1gEg6!Zos4V~H-{AP`9~I^NGKLcm}1EiOO{x&#F8bJERlpn5)w&BBq33&BfeA6 zkx(QQ3nfDQ(}0jbC=`l>Vxfe|w>#THJ73X({k3lWX4`u?bn3m%NEK@{G(Za$(SlAY z;cqz&_0qaU3j>CbA!3Lb5OdlnBs0YU;o140Bs?Hghh2o(qw2o(smwCsGSK&U{dK&U{d q%euKO5GoKV5GoMrV2KL?220QfOOOXkPzOs1jaA3TX(PjUmHqrm6rGYX7;t+?S9~F+ua?yyJhJF>BlbJwlnQ? zXS-dxyWrO!O>EEvLWr>u4bd7JM4}Rj3JDPZpn*Uj27|-|lLj>?Mgxh2@ptZdGp)(; z2Z@utzu&p%ckj7(@5g!fdcKC%(baT@laAS$$ql~i6&7}l_OEp}M&3rBh|M3FAER=~ zuU+FZT~60gbBW*O)QuiCU4|B`X${8uB5g#=B5k7`RHoZt-%fjg6DU(u1vZ;?nx+%9 z0Q)|=pB@6Ap&!zZ=^Xuno}}NP{t~@Pf1p2^*3ITWGhW5b=CvsDTMb^5+0Eu>c^%)x zE{9y;E!@Z3xXinFH}pGE_VX0i_!!T@zL&qj-)i^MSeN4c&>rOP^I85GKgG}Td47%G z>-t)~nVV)}O7vS^u&=ux$HEdzF2?eS^K;cI|@QZI|q_J#O!@r|hHl zti5P|(>`rKV1Lhk#6D;L-2S!woc)6Riv7C%asHEL^G*A0`yHD*IyyeO--;!)RZI9j zI>OS*>MX{mJ8t|xL|b}{OTAu4*paX7re$;$v#pr_(i(i@#%VKz`kElXemSI_%E)O#?JeA)}`F@z@Kb3)vG1xMsqw#dN44I1Y z>}VM>qVdRJ#u#lGTS@Bs#qB%u-lDU?nb=49{iMrKxVSbq)Gu8WT`E~^*TrgMi?Ktp zQrU5sKma)aGEdj(a_X@&lX^}nrVlezGlUtb8Nu|`Okft&^qhL&ETEn^X-zs8otYKR z*}AWU+0f~W^1AxX6@2YV}}|$G_fUT;eaBgO-MaH0_buo zsq6Vc7{y7Ucn3~?MM_Xi!=hxEK)^S+Nvh`lh%aneI6O6?9NrxLbehgv@?=>~EAjSl zD4{LzZl_!E>ez>u#%a7QzDqx#v-DH?C0-TJ(F^nny^dGK1$u}6O&^fOSMVqKI{pk^ z4;%1yNV$gx@N&3~zrvGT`6^6jBlM>!lJ6Vurh@f>+Tb9ilqT;wAKT zIz{)<1DNl_^dowd9>+`QDSDco$DCiL-_sxIEqa^&j#>YQn3wTYyoy(2-VT3>Jx(z5 zZtlmcXP8I%cD|D*SQ3TnnuKf&T)sOz&tE3wr?Q?6v7^j}$2T6NP;(v8SvEV;@5S0< zVw;@_J6oHf`OQd@oZ?h6lq3$%q_@q^%#<@(mGptjZH^4myade-es)HKRMU7XGY6WW zL#0S5R!Wot%?_bbq!cS9N`Yh!FAbFp#q@-p^lZMput!f d`dAtASQ+YAIicy=+#EF~XZBX9A?93-{tF%fnb!aS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vte-256color b/usr/share/terminfo/v/vte-256color new file mode 100644 index 0000000000000000000000000000000000000000..74f9cc0b20c051ab1a31acdc1dd055f93afbaa60 GIT binary patch literal 3754 zcmb_fZH!!18GhfncXus9iERj!N$R5BT9MNGeP{Nz-F824w(af?-QBWutn_1t&bBk% z>CALHbaz`te>AZ{69^%MMl?igXcUP`Bz{JSKWH=(jKLr=!K6VAiqU8yVSL_m?#xoN z{XycS=Xu`qKIeVU+4FTzZ{?5E2D*_ha8LJqqqxZp!ozdrx!U61$>H8pvyD=3vr(*7 zdg0%sggOzcf24kl%JOfy#+0WI&@I$j;YZv$OJq_vTCAh>=>K-Q6D_l}lXfHS9@zKN z0pJWuiORrMt4cLGMT@W>qKD}*@CEuBeS22i3aO`g_7_xz)NE zMSknR>l3@x`Ur2}JJ@EQGrWz5cqiw1FYkkXAIf1aafMHC6ZTpDJb$qhr*pj*ABOfQ ze}ymdclde!IbY`A@auf#s))a_nd(VNR9|XqDwo=o8cpR>--PFq^0xDRt5bUx))iIz zbLwry|LSP%*6*fLMyu70@_v3FMEf}|OHE%OFnzorS zx0^XLZ%&&B%#t~0&YMf-7tHhKBjyw4Q|2Y}yXFtg7tEK;m(5qr_w$#uTCbaLns1rh z)z!7S>!z-iW9uvUn=ANMj=r|{Op@cluAluMvR%8Mw!+R2$~cP3D1io1cA(@@Mrk!Lr~n*+ ze#iE+C3NA&c5FA`amDRRTt=*@1HM>lgwwcS(gnLBs1lSB=Cu>}Ww>1x=c<_gp!BgV zj%{z=hUOSrx=?`;p;y10-j@J45O50Tdaz>qzZxlszaD z@HhcH1t(INQJ58UZQ!`fge%4nj8Od2d|W2OiCttB!nBOb)bu+TiQ-avE2W2Fs=rh^ zR>o-CkU-_x-Zo??%Coy|NRP@Rohf6oZR{Ya9~QT3EjUZoCTr#pr4N&yhRpKZ+*W<> zr0A)V*|u%WHkKGGBr}z4hZ!W04ItyRt$wQ-T8-GTVliEqzBYZBfi?q}t~Mi>8EraN z)w32+kF2;N!C9-Z+A7{?#gxv`Dr6s~0|yQsy#M|qM`mY_9zAxfT&`4(AD^46R!^L$ z)#~*|JY=Vsg=}*|0{<~0Q)Uvz`#QI; za?72C4T>vmM(W{lK)+RpZO8TeAdE8E{n+^hDPA`Av$$dQ<3j2I`LQ}UaqY;VK6O^y zAXu_)$C<$iSh6--?w#)RX4$O^*HHYGmGq~jH}r)4BDe)bHo9XiWR|QgR>M;rTSet^ zLgmZ0bsSf#=wVUy@Nh`}H{4$#+_A5U_pgq}VW<$L@a!6<^K{veSJx_9gSV7L5p9Ea z7u}6l)FHf_&f~50IDM5a(zogRcqP3+FVV~NDqcxf=q>suy+a0H#~Ue~bw16X<8%Baev~ipQ~WeP%Rk_s@-O(8c;&ptZ}6Y^ZT>gE%W-Nu z24&z~w~DUEmA{5=!V54>z4TGqh!>tiK4me!LCVo6M!1&>c;yx8C{<}5FS`fn96dyj zV7yP#*Xe0`1~0qk=_m9e#{6sgE&ZO}pf~BS81;XMxrcAywY(1Fw)m6maD=V83! z#(9$O<@Iq#^?^|aE|dL^D$iN6le-HMVdUh37y#26le-HMM7?JI`xp;f%cF*xj~UdQ=lo- z6bXeoOQ^GiI!matggQ&0n*_Q^pqm7`Nzmy?Ze?_&DbN&ZiZsa=7)?A)zNSD^s3{V1 z*@gEwg>C0flvKN;IY7(q6Y?1G!ryg0Ir$Q{ z6)RZS9n&;DNdrSPFie9r8m!Z3o$|w!pP)UJxiU=@X+m-3WVuNbb($WfV?%?UfG-dT zgaQ#@Op1tOB94hTCgK>x;jtkoKuADnK!`x7x$#k`K&U{dK&U{dBhurD^f)3tj!2Iq z(&O&CCZPZ!0igjQ0-=sgiwcAagbIWTgqq*87b*}c5GoKV5bB;0i3LIhLIpwvLY>M> gL4&D0^r<}LsXWxFd_=WMvq|-0<6xQUVm2%EU%$}Q{r~^~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vte-direct b/usr/share/terminfo/v/vte-direct new file mode 100644 index 0000000000000000000000000000000000000000..b7d010e8111ab37a96a332b9fff962b49a1e8c30 GIT binary patch literal 3702 zcmb_edyJe_6+dUbZ>fM3rHQ4Cl%jkUNNeYN&dh#ox83g2-L|_s-A7qFskGf4xF!dD#*m1Qh#|ySUuk01#s@(OMu|yLLm*-Z{DBgp(WLQ3#7ESGF#gUx-%Kl6 z{vbNp`}>`He)pbx_dd>dZ{XW$JzYy@`01__&Ci+f zbM0jWR?c z;Z@vftwxdG8t~f0ZnfUW>v;obIN%&_VQ|q2Glv#WP&xV>}Q0G=G#o(dnnL zF2{$UJ8n%W;zuNnSlM{Bo!BbBmRtt(L8&hKipzs_3S>9y8!tPQ5-1G^Ld_Kx0a4Oqk0 zxK*?cTV<+jad+ppT()z$UZ{Z=lcty;$S))AIh)+8}*?5h1AqAfqh<=zWjKkZ5v_tOfxhSEi+ z?9^OmI(BNFGhK(nKLQv?7rkBJ-6+CItDToj?Jz)B!8L%=cA#uWDWD9| zN?=$8xB@+HCdkiV2rtgWnI=4*xC7~z6D!++KrA!ENu-!`F;f*Z0V?R`w*v$fxINR) zGkto(nOioynarlGXpX6+i&Yp|j2cwZThrNeu`Y39KMvxklFp&Q9y$&5@1yicFN)0E zbEUQyWfWx$9yf%i=w=P(4CV#B3~)qN!V{wpMkIb|J|c_Z#vY;yVOd6GX?k4D#PCdd z3#I#En*US=HpWofkdDT)t!>CujAu{VkP(eX1~bNZ+t^N0pAxs{EVxU~MrZmkrKd=j zA$MtQZmwOvD7sX#+L;Vi8(WMWl9fu1!!!cO0g!oSoF1nZInCI0Vlh3Kftmr#P|Xmg zr)CyrPEFUT`OYHhStqVa=e*Ng>6ET@VoDFtm5AO?2M-=Pbobpyj+D#y+;jA3rBbcV z&d$x%YR8V%>y1XUdHnc^6DLp3&)<9RsZ$FJi;GK3_sR0_N5QTe#38t~H+@?M%YO%o z%v!d$=*O~U#Xtbt15L;m`=_xk@bO)oXS`^mvCMgv5ntz6ZR7hl-)Se*pbGLG%;b^U8>A{D`gWCyZ;Q3+iiZUt{|k+fQPf)kAFMT*7%}#MaftHBHt;IY`>Y zfyNFrc3@&l&cXpjN}HB?Gz;i)igCvE{2+|7x%>f~{Gt>;9|w8KFus6ia5F49gRZlX zTXHr#P2XH5r{rVDV&jj((2tg!O(t!kofn!KI9zhpU-D`VXZp<{gCu0|zl6kbt`b>z zH}%se=@%B8SJahs9o|C@Woaw?yJ;_8LWlACc@XcN&(l}v9DSRuFX5$g zkzS>L(CcLJRs3$go^Qg7W+UD+G57KyUNd*{hq=TRZtyAo2tUA|=7;$VpXG1zqx=N_ zn19AU$4lj9{w@E3U*muA8yu&$rDSF+kQ}a|chM?(59ahsY$2ke)>4(`&qotzDQ^38<_E9^aMRg7wBnvj$Wi+(Qh#8Khxjn z-_)Wmz8dph%{TJ<`8M9fA!go#m)IZ=^B7O^0hU*oq_0fId?t*6lyJaxy%j>btqrlm z#KuN@j(CvRO_D%oIf9{n#nv4Y+nkr6+ia%UWBHOANm6DMOWsV55|Zu~r#a)4Dw5QY za?C--$47!D*D<*{eykst_V>cq&qkmWDn&|JC0}z^pcE=aN?9de@|hb4N}*Duloj%l zJEl|ek_?et=Ju3)$%BZZ6e>kZS)oXyL>eX1D3L~qG)kyVLTwUilTe$4oq;5`Vj!hZ zDN@QR$#)b@e5F7sREm_cLY}$dVXoWjHe0oD>H2E@&DXc>)$1!8Ya(oxub!XW?&QH_ zK6UuM4LPMMHg@|YjqdEF$#LrKquzenQKuaZ8fs9Xp9*6%TAi!VSc%3ASC3cbX{O>(+_3HdQHA>Ax6>5k%U#0&5ECtXN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vtnt b/usr/share/terminfo/v/vtnt new file mode 100644 index 0000000000000000000000000000000000000000..da376774b3debfa6f01c52aacc54f110795e4b2a GIT binary patch literal 1421 zcmds1J8Tm{5S_gQ5kSOA0ZO>WATNrAjqc9ppU(J`AjJWNM4ER7g-zKuAFWbWi{SQDJ6x?<|K@R7k9DX5PGcvwOR%yB)*_ zyI}wd#3z|Gf8A0Q#h)z~%hhJxDp}1&p_D5(YHm$Y6nE;-;R*Lht&sHs5dMG|nBX9c zHAy4i>udcDn{m zxQNUpxNP&+;pQ5J=xn!db+Na*uv7mt-mx`Hc6GEqRiGxsCjuG zROVGQ4K0ACBhNQA?Evf+Ows{3mtb&00obfc0iDiV5M4};;{pLgH-be3VIz{4Gk8Q1 zki%@-lYIZ!MH6hfN{BY8WvJ9(xrR^|5K94G3X5FFQji)ZlSQf3PmjB(A$FdIO|WOc zH|QVQJFKi8>z%td|MSF`{N2Kfg_VQWDti@7ROc@73h}mcGsuNXOclzaXBLPWdemfqpB_WH Ojhw$_5C3nbj>2!o!yHrq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vv100 b/usr/share/terminfo/v/vv100 new file mode 100644 index 0000000000000000000000000000000000000000..60f5cdeef945bf2885e55610353b401a28b7867e GIT binary patch literal 1419 zcmdT^ziU%b7(F*AR>2krvGh3<^@`WHfetJy*5o=U-~2M z;y>Wv;NsvQ4h{|?iVhAAf`WpAf`Sf?j;=yH_vWRg(5bli$obB>=lkCM?)M%qJ>n#e zq6;N4?6X}bU$q;q8}R!Zsd~woEv9MoX6LiLwwoTGP5?sxAjm3cnnDM<(cI(0W&Ak~OojWJ#!;z%MzzJ}|#ft=2@HnmYjo$CfRaZCHRaYysrt*U#t zPyJwP-E2Pe^dmgR6FkF9yuxd|!8?4wColKK<8L1Sz)$@0^ezKw>o@*jzvvXr<}uML z`p7|I=VfZ=CSzU{MOoP5DfM&l!mE5M-iwdov-qml-#vGGk0ZWq-B#VZc1hR75>2)yFTR>h8*bY)HopNK>tYl;M_S zDx_19);i2ozcg)Cc0oFwGT$Xl7%?2=X3=rNdnsv-xjmCDjmwOXq=&hoPB*6S-PtE+2k>+6li#>VC*j5DJ~pPzTD;|AiVE{4>T cQ)7`rdUU12p5k98|2Ta-kGj;EFk7?m7eH$P(EtDd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/v/vwmterm b/usr/share/terminfo/v/vwmterm new file mode 100644 index 0000000000000000000000000000000000000000..180089608c9ad54927285775a069ca93264aaefe GIT binary patch literal 1304 zcmchTKWGzi6vw|mQ7no&hzJIupa%{P`Tg#$mk{Avtx&8EE_Jx2!PuJiE=`j(N!z50 z;Nt4w;^5-s;v$HHE;@*VIEag&i-QghuEP1=`{kmMb}IBo-uHdppZwna-YIngr*RBb z^CN4^HqKD3m19834{{U*bVL=DN_RYCm_(Wa`$*GtKMvCjrsFt^b2tx| zA|Dq>CowG*uFm2*<`7X_A*+(r&_tJfA9rw%{PySmKa~f>4~Ow1JjN3|#WTFXE4;xw ze84BEekT2jZ}>6j{W<*4_A|2VuR-5$9H93f{ci^+N8&RSIU||umdxKBR-dbvL(Zz! zzuqA~+O_-Wt$M#llXm~Ddw;`6^+g@T5#*woTy%xpEE#*J>eRJUDLHlHRAwk~k&Jz4 z{1{^vZj-x2HuX2uI-$U45ejwQD{`OVRDmU6aalYTooCILte5_n5?9IGEfO9q6O882 z#ymBeX1PqF1Fq$NxYI=l;m#W5JmijPRPYp z$#qJMhS0O<5(XAMLf@iKXe>?;YKsA3!D5lKluj@|UoI~!EG{lBEicD$lGJJ|EA{&7 xYNOF?wpwdz?RKZr?XItHY;11!dj0+uza|WLwPC;u^EhFQs4UKvhsd4>^apDl4@Uq1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wren b/usr/share/terminfo/w/wren new file mode 100644 index 0000000000000000000000000000000000000000..cf224e6f4f4ab49dd2d1b020d58572b8905c8f54 GIT binary patch literal 615 zcmaKqyGz4R7{yOiL@T9kig!^+DB{p0EtaBITRVsksH+*Z(n4E8DJa;%MO<7Qba8O- zA8-=~2L}fSH#fo6)z#^GzT4Caf`RXx-~ArBH;*Z676}aE6bUPAd#>9F+dlQ6RcUti zE6v(rr`)PFD$}NzGDTPx`j=&uF@i}Zv>sw;J&aL|8=8QNG%0IVIqDK)1tqhVUai;2 zM>vi$Cpa^7jtlxFu5gW;sMhV*`j+dvU%C5V-0SK4gQ-47Jx`H8;{~t(%)PPp&iIIW zKJi5wu=@A?OJhIPxTS&}#G#gXIE vmc2IRn6iJ7l>(h7lCuQDc`q%4v?}5;l03$qj2Yla7i7j{WY9nXG5!wU-`y0w literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wrenw b/usr/share/terminfo/w/wrenw new file mode 100644 index 0000000000000000000000000000000000000000..1f73e3468a655831aa03a6d73c88f794337019d1 GIT binary patch literal 631 zcmaKqy-UMD7{=e=ccJK}cuR%^1d;aAYL%ASRtNC|>S{(CX`o3%t)xTU1aZ*C!NGsP zO&lB?930%-1XovASC{y_*GMxNxaax3Uw226d96azG(zVzp#@!;&4&G;Yq5nL#}E5Q zj_>xue!b&*j;VY_wW`MTF`IHYMbd=Q+`B+VfcMWa|zG)_}AqiB{E zXc3fAk%TT|tx`$F+#5v|@G;+xIujra?=r*o#o}W9!_lev?f(IQ*eN@$_ zxaT?c7kZ_)f9Bp%`@s5)d%ox!^b<$P{f9iF{qdM4>;p=ZSSMlc2)hg07Ip__x@I8F zM$rr`v#~{DlY~*j3l#PSi9J{yi@hvc5Q{~wK=Vv%5G%`+V<|Mb$~|%)BbEorH<^kB z#Vj6iwxx(8VHhQR`Ak_DeAX^skI%26QibD2d>5O!EOR^vYf?G|QkUm31sE9s&!`L! KDyUKlzrinoy&Pr$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wsiris b/usr/share/terminfo/w/wsiris new file mode 100644 index 0000000000000000000000000000000000000000..f9aeabd230e386d91b737c92b9fcc477496c22ad GIT binary patch literal 1175 zcmeH`OH0F05QR?^@zH6v0qplsS;B z5sWc8#6~c~-xUONyymgM*+7DGlGpc0f9*5K_k2lKHn4?V=^Ii{qz(wDa({+%b{Dw9 zHEwW=JKWVJ$F`XBU+rw<^Tl$fS14k zm!Kpg10@Dv6YK_`*SZjcXcKgT#0;Qc54&Iw>;uJ$7B~d$SUrZ(aqQsxXVHe>B3DOX z9E!|*zsy*L8eD_xa0~8md>>rhhKQi?_0lNRGuT{^; zMR`r$;5|3xZFx^VXlVc1ZvToNH`sSszL2lv2l=tVegArgMr)tsXSor!K_sp6$~9Fs zsa&nHWlUIO=z1gR69^~K2-k>uVGAkHQraot--gLJLO0qGv;nk!h#WMU+jR$Wr-;rZ zXOk>JjGax4pFf21uI6@|-=pr4krC|LT|#E&N}I<6Kc&R>dJ&Bnn$zAIq0rHq!l6w zh@h5Q8Y-pSxbl*wN)pvb?SR@yoq(FkwNwq`gi01k)}}l>B9+5wt7LFey|5WZMlzYv z(Xp|KiOI=Ap;#=HrlwqXdb(V$R6K8HW_Gq(otvAVUszaNtkss5uF@P*2|CzR0uQBy zrXI|WN5@q278f-|8@h!+sAX!Z=!c!{2*(n-VAmhHq7 Tt!sg;Ez<); literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wsvt25m b/usr/share/terminfo/w/wsvt25m new file mode 100644 index 0000000000000000000000000000000000000000..9f0288d538c55548d366966e0d3ced68f3567a32 GIT binary patch literal 1607 zcmb7DO=uHQ5T5r`{6kPd#0FtSpV(7&-|jYTQyZ-<)}LyzMa3vKnzTuqq}ycM^d~L! zQcvQ+gL+X!Jm^6WB8Y-e5WMKYgJ&-u)QbmCp4OS!jZhS&OXmB&nfcz^-FcfP(GL4z zD-^_6S*uR@+AY;j<@~OJZlhMcI$o|Cg|eYtqgW{CjP9Nz#@RuwO`|lP%^9_VpEvq) zeg;7Bj|c@L>IPF0FVPPhU>5{@t%*3yHozf}SOLVfumhT44=8ptLpyX}_b6t^pdWD% z<2+pC?hxdm#3~3X%r&UPA}qlTxW)NhcmR*!Y2;Z(euwcH<4aWghWtI!LGS~9LICT; zX0c7|6uZS<(JbP^5kb&~aZq%LqsVlfi1;+}fH)`8Q66@K;4e{@Fws5I7u z?ER;|(mg5Xs`V>(`&agGmHR%H&*e+`UVd2Rx_>>xYI`5$C%GQB zKrF2a%Cl59sXVQ+6)e~z2)(iNaikL%#4Aj_u!$TPDeV^VZ^I&wbOhrtMn6U$#15GI zI&>#$w}fC3IAlwZVsJ?D{m-MlYhQ;$_7X}Yr--20r`ect^SGgD#yjzjc;{HUf(AEf z^+J5M;Ki%?OeGihGgqoPKR)GKriqr5{DAfXO4`)2NNGk(leV~LIjmjA1Y;{>8=*D{ zxy)<2F>9d``@`4vhAr@hHHMAhK&%J*{BAT37JUstPr{W$4RNv|XlriKt}JMx1q_G4 zMYsyFR){4ahF;pzR4L`PC_ibbBuS0Z38jP54W*?#Th%d7sAP$3ZOX?ZQaPNqN`@!Z z3mai*D3ci;9vK-O9UChaOQmvoeBARUCMuO`)%PbSr>1JP>FJr7+1a_ddVPL=f##4( z(7~n>cqq*@^>B7PI+mKp$TQYFZyjo$pXO28d?q%}*Jh6$o(X+~_yOW4nmvQErA&8H c>7;3C+i_bGt!7%Q6n?W)L8xeZL4a5x49ZF^N?><(oprRXH*JFmO@hmhNQsFQH%?;5KiT*v zj#IY+BoGJ0AwmctfdpKT=z&UH;e>z#TsUxugg8}#166zAz-js3c$3fyfjahk^L_8V zee?5XG!KaxdVubw6XHAB?fL0q)bI9M%Ly3WHw@4mT&cO2K~krps8(4jwkzw6R;t)2 zrOtGkt@UQAy4;J3B_g5!10_Jv1b*izjvs`?@zq0d{H#WC%>F}k7Y)(F^cX!sV-&)3 zmI|~$MJfZY(FSw}(xcbt4fH#ZL3@`z)c6znoW7*5=v(?;^B?Ia`k8ituhR{>Ph#i$#*z`q#3LUX%j{BHbV z+%*2w{IA3s$0Jfn_Gh$abkMS}O~|Ki^Gx5y590UGbN?H$7s>rg@)dbOmSsb><+glP zzA4|9J9m`fpV|Hkzki2WKbBYIRr!rH3-fe09U-$|RjkOdN`VzAtJECMsvL~&D%6x& zI6ItmZ8l5;aKCRzK6@IrTQW@1Vg3{ns&ox!R)aFSGmuk|b4jXM;M|B1(4)8mM?vkj zSx|KVk3Vq0d}jMV!Q!z+Px(9@1FW<1YK#(b?Xo$7g{18#b6AR9!_7k8zzdWefMP~Y z;BfD#GKe2!0+rSy2Fh!)8*zg$*f~3ro5xR^CzBCo^fnD=ot$3aESdS!a7{zPbcF|V zE;DvDW;FppSi$kx;bgQPXRU1L{1gz!%m7cKA7fXVJ=nH9Z(Hcp%p8WqqBJX;C-<4& z4&K+t*{9hooCl0&r_B?$n0XxsK|HPw;!0`2sp^w#_u#rYrk{wDHa!_+m8(ggi znCn+ix|D-Jr7Q00!{I9Sx;oy~@ve?{_O2SP6>eqec|?shphBw<*p70&^q8L+Usxh@ oUOyao8-^&Q--sc+Rs2?PZ|1ikZOA61N!6mF>IDblQgunu-}H^LOaK4? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy-99fgt b/usr/share/terminfo/w/wy-99fgt new file mode 100644 index 0000000000000000000000000000000000000000..77f435ae5d11d7a5e109db84896774fa60da008e GIT binary patch literal 1271 zcmbVKOHWf#5T0{{3}O@uw-@AHpimkV7n-mz z#)XN-7~{f)QH(BJxNzaW@o&`c+&%(^5aUU{nfcDlnKS3i)QKRSrz-kQzho{S3e7xp z&*mo%fnFf|T$PbJ zdIR|m_zZjj)DoglI1ZH8$%?`_0Fs+zo<7zETr_oN;@gYnI z@i6IIjro?`{mr?ZdGCV0cx_2r_N|0g8`gu_=8cxkrd;Dz4`H&(ZQ3^h=~nz&3pOJD oAy2ny7zXAnNn!}!I}D_NDPS6~fHYtOGr%nH0GI>jfdv=+0S?UDQvd(} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy-99fgta b/usr/share/terminfo/w/wy-99fgta new file mode 100644 index 0000000000000000000000000000000000000000..6cf0920e3d69f6d38ee368a301f199ea88f865a9 GIT binary patch literal 1277 zcmbV~OHWfl6vxku8U(DGXhP&9(g@evQd@3s3$zxn(3VOe(kKLp2^4NG$U`YmC=J5G zg$oiBUAQ38L>DehM8m>`3l}c@Dt?XnpG!+{LyVLB&STD*GiM&nB0^1co_^CWSt>`P zb2HBzHD6SQ9}~)&D6iY@iAlKWF}G*@fjgUUFWKeUm6^4?mxLf^IJ)Wx5|l;VYgDNY zKXT5{Irw$dK$o$r3bas!V$@6h@Dh}P9HDzOP7mo3>}j$f=RtvrRHAL#rRVS}l^3)} zuVC%dTgdm|0DJ{%oE6vw)JFZW-6$@JE22rTXc4VK7e3KZjfJYZv#Ps~*VL-~t)r*L zW1>&Qos8s(ywBo`I20aPsraNHQVm0zusUVL@neuVX~|`|A)n&5PZL%G^h$Gk| zoQonCZK%HN0OxMA9YiVA&v&pL=6pMka&Cy%*uKG5@+xr(r)VG%caazZ{a^qjKoXHy3snJxluX%_rJZ?@DyFeLYh2Zv-}Pm3&*hg#T50sS}?d u-+_w@U?LvOwDp*VVc@G}Nn~)t!ypG{z$~yp9@tY6h+U7qO7jA;xuX2h>GlL3WExX=EFizR9Mmo5>i+Qi4tT{3kxBLh~WQq zyqR5tKfr-|@0odT-oUJwB^H@s#1{`)630(zcHb)rm@FeQoZ;NEWF(l9J2%ZNfv1pF zpKIRN<(twL2^D`b?#@@0Z^1q_8oqMu{e)94Jf-rEC+Dt|*9DJncPHEv-Ehl*AsNrS zX#eV~qoU`n$oC@i*Z;>q{>=Q;AB5OF>?O8?J&5{AR4$dHji?*-w|`OpG{*w-*c5w? wt?wk*0k&N!w5yD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy100q b/usr/share/terminfo/w/wy100q new file mode 100644 index 0000000000000000000000000000000000000000..846a60fdeb6ce0c1ccbfe95cd3c3fd7500faac9f GIT binary patch literal 466 zcmb1QlwnX~U}b1#C}AkCG&C?MtO>6yPE`Q16w>mG6aq{0ON#RI7>ELl0Sy2DO8_w= zQ2Bo-Ul(*lw@K&;1L2oAO{Q|9tLg(>2L<=AO>lmHg^*!wgA!w4AMmq3dBsXYLIr8c5#z7 WkXD!0kajdOWRP|R8Ui&Uiva-SmGuJv literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy120 b/usr/share/terminfo/w/wy120 new file mode 100644 index 0000000000000000000000000000000000000000..9fae306a06e27214a28af18000756b525bbfc49a GIT binary patch literal 1257 zcmah{O=}ZT6g_u}TCH&*;@5@ZN5-^Po0(~9QybGXO`0}UTSY8Zgh(2{m9&kfH5wHK z1vhR)#E*pwML`r4UAXANg$w_KJO6+?H;!i}u|idRaNfP=-t*qv`|hllR;)o2zTmS_ zp0yq8Qh9c|P_uStozadlx`E*^gAjqgd|M|18AT)3!sWVVy6$!|A%F%fVsr_XVI|i2 z`Hk3#7~)8hr7(yr_Rt%_K^&nyiURkO#92(Dgc($D1=q=M;x_KlKEPu7Fy2~uu zW@tmmY%}v_(fQ?a*3HnI#rbQ_#&R?_@h8)h+H%nvn?we*Ic((Zazs_KQ$9U$~B}@-r0$; zj%dNwiLIJTP|3nptkN_5c2>(aZ}9s|`?UpQPTZ?~jK#7SJ;073i2!7X=p&LuKanER z1e=izF&OYV-v>>5=ZB$LcHe}+vRcpMj{ji2^A9$C1v+m3B{+&zY+y6Ax>2hUp7vh9 zFrc}ed_>PLXSC4bHy%g*_EUb{X0KU{nk8*D3)*7#c(j`|pC-?z%pT2{AuHsC9kXOs zqLJH8OG1gzud`jA#I8y5P#a5Gnm1&$g}1d^hmShP zW{yvuuuq;ib?9{OnenrUbLq)cssDWBLSH#K(=j`JajKH9R-qUD#|Zy^Ax?CNLv=XN lyu)!%go$=&pH0$dGu#Co_5X+pB+DTT6T68$#9m?~fS*={xw8NO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy120-25 b/usr/share/terminfo/w/wy120-25 new file mode 100644 index 0000000000000000000000000000000000000000..fec1a364b0c5eebbf410f3bdfc055967f1c9a63f GIT binary patch literal 1269 zcmah{-)mE67=GSUHk~zINO8;;O4S@=Ticv-n%LCFG)UweE^Xt| zni?nD7-JxVfg*~+1{>l`2Aue2ZDXz6R_*w|zNR|Ea1Y~AhI$g#fcy30jiu!tCqA&auv}h)2!a*J zmLU*KV=q2|$92c_ya8-`{s(m61A6yh9}c$SM{pWRq>!OMivo%`Pi+dH;S0(uD05#R zmau{<)=|f8d`J67{EYjQ5Ahhk;SXxh@dE$g6*bR$jW^g1G|z){$cN&2d!>{60XZm# z8FzPaf8Av_&$-v~K6r0*_rD(fFYAf%yYZ*- z%-AyiGW0C=AOy9b{o!QXNi_yE$myf!6qod`@+_4L+9-GIH%FY297}+N3;=RwtxHONiCh`CHi_TujSsL@f2F8Uk~aw$IME? ztZJ`W))VHaZ;sG(bF|&8IjVUxVnuwnV^+<2;+DDDWU-7P>XlR67>Kn4G2e9BCVBCI z5=lpPa)*72-K4ls8y~SWf5_;Mo*cA3zv5h7|8nJ;y>RXN>{nxpb4%&v+)B1OaU=H4 zcrCL&w6S(`weB_=;G0v|;qY9Cqn(cugV1rC#<)%QFmyVYejQTeg`XonCC(EUh^Y|X E0xJ~5`Tzg` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy120-25-w b/usr/share/terminfo/w/wy120-25-w new file mode 100644 index 0000000000000000000000000000000000000000..c6a2ca4b4ac05d812e360251f6cf3e192681c0ab GIT binary patch literal 1267 zcmah{QEL=e6#mZGqBX9CDu^CPBkpBQW89g^CfPJgvYXAi8f~K@1|zha&aNggNjJ&r zBu$Jh){sG^7DS|kDcXksbD&FC{=Y02k_uO;tog;DqhtP)q z@YD%cJ>Tv2d%MH+aCN!%7V&!DUf&`U6m?LQX1K%a@wPTJ zT*EBpv4{p%uulFnHgS*k0UqHGJf`;)|Kb_Dw5LAD3;Z8@QS=h85YZR;M0mEe$>(xF z4vET_a!gXvC28>_BmImHNKS@n?I^Ttlf63^KNugA@1-H3tWt4X?#lgbHyucKLK-dS=&XRW2U<81EG-rd2Qd46rJ{`TJJ&a>`+RQ1sL-TBk`%X#Ab z?dTcoMgr=i^*IM%_*h~O3<>0MfOV?U&1i6Og*sAQSg zb<;yy8L)K*Ba{`XsU|7clrGu5)wGUl&C}{vTFFz%%Jv`BIi5YHp~nnyW2LyZxH}d< z!D88rUSg||d;)TYC=eq=kr*XP1e=jEaXMjJzW^=S=FdXM*nS%ldz(E^`u3hu!zt5c z0()7@cc7Erdlt{*AR9Oa-8iZn8Sb{%UKvd0`mGa|wbmJTJ%m>3*<_BFYlcldYZ}^V zYI@uZS~@@)l*ofoGpJ>ga#MEMHx09vy=~T;D%Q|Lzuw1*fy{OwW2wJQsq2j;seEc{ zZ@-mzO-TUt@EJ?9FO07AiIeWtDgWBa^~Gs#W_tF@jp4b;`TRm@akNpqnYmR6M^<`P zmw#GX3pO^uKTQLlFBkZH*J_$L2`zXe1&_=9(DU)ruR+Fm+h>V$#5csZ#CQU40HpcG AHvj+t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy120-vb b/usr/share/terminfo/w/wy120-vb new file mode 100644 index 0000000000000000000000000000000000000000..a1f3f0fabef2d6ea6043cb08ed6e5578fe822cab GIT binary patch literal 1281 zcmah{O>Yxd6g_vK6_B`M5edYtsH=M9KmgB79O4Amu^l_k2Q&diibxhU8M_d0TgM4; zOoA&awGtaPRaNz4!J<`>5J(_cbislJ3;qNf{s22Ri0PTJW26A$N$1^r-aYrtz3w>z%Y_XlVvf6aZJ%Wg;^}nehruVdEyej zM-6Le;3}?>|Ag!KmG*c1g`4=B-hDj4BRr?)c`xu1uL95WUbD)b;&~s-ZtmT(S9)Z> zd@5myNUt0bOX6}|h9t>oN-~n8_19S2w%FVI_#MApYh0e zY&(}&y*j=_3s&IQDXB5!ClSR& zBxze#ETzREzg#y<*(f!o2;~~pnx9*W>9m$@EgjZkno1V-Nsm_e?MbcMydmf>AJi5} zIw`;QITp)abe0`M(jmwMks-3gD3K%b1e=ipF&^?eKMl?M`BTtIcHf22o>tHEPVitO zod;X_0XlEL<8TH&Y~TxM^K)&+neD%Rc}$DLd_>=`7qr|PG@e5H_KQK?=7?EMn5%lo zENicM!ly%|Zl2uDnJ2VhMy;rS?3k}< zTe*Y2#BNDksEyq$%^x!QVn>cy3+J3~*3U0ru$L}eJbP)RGXHJ*yZmx)b@Xz4EmO~~ z_cvCq)Hd8^6M7|hjM$qO;zTDnREGm~9ge#cBaT5cHc7_j@gQ_2_#-wTlN`bnagsPi Jd__!$@IMa`#MuA< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy120-w b/usr/share/terminfo/w/wy120-w new file mode 100644 index 0000000000000000000000000000000000000000..386bc5594a2dd5dfb5692b74fd61dc9d66ff0201 GIT binary patch literal 1267 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy150-25 b/usr/share/terminfo/w/wy150-25 new file mode 100644 index 0000000000000000000000000000000000000000..fec1a364b0c5eebbf410f3bdfc055967f1c9a63f GIT binary patch literal 1269 zcmah{-)mE67=GSUHk~zINO8;;O4S@=Ticv-n%LCFG)UweE^Xt| zni?nD7-JxVfg*~+1{>l`2Aue2ZDXz6R_*w|zNR|Ea1Y~AhI$g#fcy30jiu!tCqA&auv}h)2!a*J zmLU*KV=q2|$92c_ya8-`{s(m61A6yh9}c$SM{pWRq>!OMivo%`Pi+dH;S0(uD05#R zmau{<)=|f8d`J67{EYjQ5Ahhk;SXxh@dE$g6*bR$jW^g1G|z){$cN&2d!>{60XZm# z8FzPaf8Av_&$-v~K6r0*_rD(fFYAf%yYZ*- z%-AyiGW0C=AOy9b{o!QXNi_yE$myf!6qod`@+_4L+9-GIH%FY297}+N3;=RwtxHONiCh`CHi_TujSsL@f2F8Uk~aw$IME? ztZJ`W))VHaZ;sG(bF|&8IjVUxVnuwnV^+<2;+DDDWU-7P>XlR67>Kn4G2e9BCVBCI z5=lpPa)*72-K4ls8y~SWf5_;Mo*cA3zv5h7|8nJ;y>RXN>{nxpb4%&v+)B1OaU=H4 zcrCL&w6S(`weB_=;G0v|;qY9Cqn(cugV1rC#<)%QFmyVYejQTeg`XonCC(EUh^Y|X E0xJ~5`Tzg` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy150-25-w b/usr/share/terminfo/w/wy150-25-w new file mode 100644 index 0000000000000000000000000000000000000000..c6a2ca4b4ac05d812e360251f6cf3e192681c0ab GIT binary patch literal 1267 zcmah{QEL=e6#mZGqBX9CDu^CPBkpBQW89g^CfPJgvYXAi8f~K@1|zha&aNggNjJ&r zBu$Jh){sG^7DS|kDcXksbD&FC{=Y02k_uO;tog;DqhtP)q z@YD%cJ>Tv2d%MH+aCN!%7V&!DUf&`U6m?LQX1K%a@wPTJ zT*EBpv4{p%uulFnHgS*k0UqHGJf`;)|Kb_Dw5LAD3;Z8@QS=h85YZR;M0mEe$>(xF z4vET_a!gXvC28>_BmImHNKS@n?I^Ttlf63^KNugA@1-H3tWt4X?#lgbHyucKLK-dS=&XRW2U<81EG-rd2Qd46rJ{`TJJ&a>`+RQ1sL-TBk`%X#Ab z?dTcoMgr=i^*IM%_*h~O3<>0MfOV?U&1i6Og*sAQSg zb<;yy8L)K*Ba{`XsU|7clrGu5)wGUl&C}{vTFFz%%Jv`BIi5YHp~nnyW2LyZxH}d< z!D88rUSg||d;)TYC=eq=kr*XP1e=jEaXMjJzW^=S=FdXM*nS%ldz(E^`u3hu!zt5c z0()7@cc7Erdlt{*AR9Oa-8iZn8Sb{%UKvd0`mGa|wbmJTJ%m>3*<_BFYlcldYZ}^V zYI@uZS~@@)l*ofoGpJ>ga#MEMHx09vy=~T;D%Q|Lzuw1*fy{OwW2wJQsq2j;seEc{ zZ@-mzO-TUt@EJ?9FO07AiIeWtDgWBa^~Gs#W_tF@jp4b;`TRm@akNpqnYmR6M^<`P zmw#GX3pO^uKTQLlFBkZH*J_$L2`zXe1&_=9(DU)ruR+Fm+h>V$#5csZ#CQU40HpcG AHvj+t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy150-vb b/usr/share/terminfo/w/wy150-vb new file mode 100644 index 0000000000000000000000000000000000000000..a1f3f0fabef2d6ea6043cb08ed6e5578fe822cab GIT binary patch literal 1281 zcmah{O>Yxd6g_vK6_B`M5edYtsH=M9KmgB79O4Amu^l_k2Q&diibxhU8M_d0TgM4; zOoA&awGtaPRaNz4!J<`>5J(_cbislJ3;qNf{s22Ri0PTJW26A$N$1^r-aYrtz3w>z%Y_XlVvf6aZJ%Wg;^}nehruVdEyej zM-6Le;3}?>|Ag!KmG*c1g`4=B-hDj4BRr?)c`xu1uL95WUbD)b;&~s-ZtmT(S9)Z> zd@5myNUt0bOX6}|h9t>oN-~n8_19S2w%FVI_#MApYh0e zY&(}&y*j=_3s&IQDXB5!ClSR& zBxze#ETzREzg#y<*(f!o2;~~pnx9*W>9m$@EgjZkno1V-Nsm_e?MbcMydmf>AJi5} zIw`;QITp)abe0`M(jmwMks-3gD3K%b1e=ipF&^?eKMl?M`BTtIcHf22o>tHEPVitO zod;X_0XlEL<8TH&Y~TxM^K)&+neD%Rc}$DLd_>=`7qr|PG@e5H_KQK?=7?EMn5%lo zENicM!ly%|Zl2uDnJ2VhMy;rS?3k}< zTe*Y2#BNDksEyq$%^x!QVn>cy3+J3~*3U0ru$L}eJbP)RGXHJ*yZmx)b@Xz4EmO~~ z_cvCq)Hd8^6M7|hjM$qO;zTDnREGm~9ge#cBaT5cHc7_j@gQ_2_#-wTlN`bnagsPi Jd__!$@IMa`#MuA< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy150-w b/usr/share/terminfo/w/wy150-w new file mode 100644 index 0000000000000000000000000000000000000000..386bc5594a2dd5dfb5692b74fd61dc9d66ff0201 GIT binary patch literal 1267 zcmah{TWeEU6#mvx@lvCrf|mu3Vm7H(%{iy3P3@sgnr710OC1r59njR1da13ZZJg8E z8b=renTHV-Mi5aD1wj!X1by&f{>c0R-{xf)7>M6Fi505ihHtOix7S{4uf0_~Y(f+M z#$Q%2>$vvbU_O|g9{r>_Z3~`A8)9rbgGmOqJFV_s|MK{iiAxYcv?AFs1cKkN0-I6e zx?yUy5v-$cIhjkajNau~h4t7H#dp9(3j1+@mWK>_kf&C_AWl#Y;}rKZ#954C0+Xm< z2J^IkW7Z1?D4pDla5y)oQMl=KkgC zw8pHeb;G)8{cioyVBEFtFXBF2WY_aNZg`)3HM;n&XWwN#w_aMWtvA*?>%FD@9AFG; zLtElro81LH9`{ldCmZI7xnRnUDIGIq*OYRc@iu7D=1R8-s zrTCF4{XDebLIdV5l%bOp4s;hqil`82vU;J-+P6dtcBBWSOfeK5B8q7yw(Vq>7CXW^ z{T|YCZqfo-CE3$$;#Gj)N$TDpn<~-QDgb2wx~N6Kg43$j2>sJ zkW38HPh^Q6B1iNRd4kPIf#{2ct^Wkghs_^^4zT?u#8%aN9(KcbN^~boi}Az9n!XMl zcD~{~ij8bwC$zdlt0|ripS{=__u4}xDClT&)O8mcsmJ0TAJ=r7a@tgMml@S&(;1o_ zH2pknzt?nX!6fWN=ypxT%%!iH`8ta=v{Enc=f*&4A&?49cflmDEuthciBD(SLyA+U z_)rHcSz0(@v?TZJvwt3O&(55iJnvjMKX&qB_xSKc=2CvLx01V(`Xw9m%(Tu=?$7LxElqCooI=CMsCMd0avR>)0f3<0E`V`z5}@H@HUcCVs-NxI-@p{=i+_ zi@YHC6Mx};=)(xVEqf&d)8G-+a$$WS#2 z?bE3}T5=-4MM;CH@DNeX@M6bFjcIu#tka*MtUygAPPrzu5uUB2^psXzt-P$|9F?r> zsRLT$w`a8F@`k9fVpLny9gCl1v1~?X*(xL#gG>{7VuC0TlSGkVGg2a^VqxoVK#O7X z$DuQ9zX!2>ou22t@SPIl2|Hl@@Ufa#p!4n{f~RqS4ZH+xAJ%r7r^9D2kH)jZq0=g9 zwJ+*=4Be~G#j|`|J8tV4yQ=-Rs(p4eq$8w$k=&oOqgt{FClQ7{yK1*GAK2}ViZu+< zuOH>cM0zKY4ym_8sT+zUiCp5r+2K&)b|gO3#a@;cP8b8JSB^MuEqL!;et%`jU0ynO z_WXEl{zC3zab>KnS1=%NSjba;(LsAYX}Q#F0QJSrTdV zpqJiZ9K#7(4`(=EAg*8(*D!%8%-|0BEbihF?Grr3bG)SY9v|=--{}`T_q*`{1BX!as&9ax-gmg%f)*q>oEwaUP`k(ne$;yOG$xSM5 z$$fb=uY4h|<*n44LZQjDa9%uG%_TEqZkt(i&paq89-7Asv`-iCVx4ED=!?H*7w+|H zN!4rf#=J8h%t!NSN$tYw|IfdeuSU~Yju6y_)`a7=b}RH~I9^9HP@;RSoMT0{MXVaj zvvTg7%b%r_(2ULRrWpsTNGte-wZFLhNI34W%0AZilF*b3%{#O?=r9f4YMK}^Ml@2@ z1+CKVGELcmpJz)WOwstrG_s&=M_V=1gobXq%AVHw!xP;MTrM>u##_!n&_@Q_VJVM>FZ~P&pPMMo*%f7xHx#J z?Q(LsYpnBX>{@%i<9hA*=)}mRH$4rV2(BUe=Wh6rX}+b)cl2Do@=%o618sLm+8u@) cpnbtdn1t--_4g15h=ar-qL(Eyrw9+f0ktC{jsO4v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy160-25 b/usr/share/terminfo/w/wy160-25 new file mode 100644 index 0000000000000000000000000000000000000000..a23506c4e3aa13b76ad178679e3cc7797715f264 GIT binary patch literal 1356 zcmbVK&r4KM6#mYYsI&=+BI-~m&1*6<-+RvJsFUNbX)-G<0?QUnJ*S^)qoYk~PEFM;*nt{smoKI;>$KR7 zZtPBBHlMAy!*pxu*T(He@8;Od_(ZK6YaF{ak7Bw^T%h%Eh4T&KCi1w2IV|8F9+E%CQ@o;mgSU8x zMS7p{1z+)vUa9mQKkzf~NMK~0a96439Fi@vU3SWDsS``;rBNJ-NvpKWVP=!kBPm*c zq${?}exLjQnjey^%*le>rQ(4+lUJ+C_p&4(rNxv=ZKi|s@1xT!m&Q%b%$PY-tSIiA zM{BfC*6?zjXO-ylKW5kN_2QqZm*%y3Yu=efv-D5x+Uoz$KbTKO`>`G&s10ohCz|a} z=$UXLMsu!04_i6MiquA|2FtT@?uyGlOXr~(8yh$~*hE^xpIe8^%TI?B4yzntZ7&5) zyU>C|n}bf$(51moPPmuyGq@U;} zdWc@4k4O~UVI{3x+?v*UE35mh4xhG>dMR?R&+5>$6|p0J z*tMpu`S^l$r>tTV&Gd6EoS2BNCZaxdS1EO|KoaSStgLPIB~Dr5K^<)5+oGZA;350` zMfdXUE0b59YgezIyOA6l8Sk1%P4-Rq&O~o@7kX|t&*tZ*=DlJO{MpoV`DUKW7aeUP l4neyel5U6LR_IXh=<|?cyy^ksIB|kFNeuGcGnWVtzW_;+D}w+4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy160-25-w b/usr/share/terminfo/w/wy160-25-w new file mode 100644 index 0000000000000000000000000000000000000000..a2ba4018ad09c437f392224c11ed5416df8c3ef5 GIT binary patch literal 1361 zcmbVK-)mEM6#tyBh|?~DLm7J5Xfa=6*VWv6o0!(drfC|}>ZY9t#mZRpCTg{2Y1$fV zv?816i{Ka=n<#7#Lws;d&MTYB#n>J zg>CZGG?(2yPQRD#Z(eRLFH~2_G)XsEw>#kV``^wjov(FMH8)$UE=UPP4mC8egk@YI zzlQ7hf%Yf-g1h*Q-k{0&I=4H~AK#i?`>&thsruF2GryZZ%mefAo!Yh4-=9A+ zPmE4t17c7I+856bI3v)b@obvrScjglv$pQq$`M=lY^A^#r7dXL!3UgOd`Q~Ghpp4` z>=2h7iDzA!{jBL1p(PL6bZP6*c^bOCG$~?{7^G?(x=Sb4X~~KFCR=GRMH8Yt$bycO z9MSSn*r-27S%GCLamqEJjc{!xsfV@dYUML6k5b9bHgDBA{@aO`v!i0vSUl^Egq=^b z({L+Cxlzby3^GaNi7}!;j1xtIJCPDG5yPj@uUIHte-L_rd+$PQQ+vZRUU*80T*CHQ zKRl|1tI!$uEx{>lW%oOwD?PfBif1$7p;z~_OxocthuaQYFKM-x{W{EdesVVYm(AJw zpk35nTh(25IHW_Qev#ZCx5HYp2`3STJ-cXIgIDb3wu;>h(68^|#6)T}kqW7|N~udn zlEi4@_1a7*aoZ9f>S7}=8GXsmcRR;Vc&9F&oKfYL4N?ph| z$1V;mFI;N0{FN2(wW;s%@_dh1TS*eTp?Q}i?=qZ$PDQuhf*jzPA0)mYz9bG2hxq`? ICkY>~07@J$_5c6? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy160-42 b/usr/share/terminfo/w/wy160-42 new file mode 100644 index 0000000000000000000000000000000000000000..3a43719c0030f51ef34bf3e9bf72e7800cb2179c GIT binary patch literal 1373 zcmbVK&u>go6#mW?L2D$02q&bCc}80`@4Zgj(GJsJV~nCDl2Qx9>-bSs(@q&}bwq?j zL@aDrNF+pbAz?vSSXfy2ORVi|WPI<03 zwAy>2$LQ&%t8|Z*cdSTV#A>oUEAK9Z{8>5+&D#8Knsu<6w3eS+hbqgDh7&HU>|<>& z1x>rqqC=mDPS7!IpoVi?dV?3?)Dq@dR+B- zTc9Ih$~B^s{@RhK4rtENkw(pSQOVBMtk*H_Z3oNQQ7ULGFzkE?delG4G3W_MR|t|J zx``g5m*^u>1WzJqVt)u*p+{KAKY2g&0MA~FP)+5)!)|b2$;JCB+<*={f0!J^dUn4J zTB_GlESzZfFF)I{&}XiZk^dmo!lOZbD{1B9)|56_Io)A(`gAv`mm>H2tWHf^5j)~f zyVjI78=teTS5)kvg>k-(hKbl>BIZ+fky6(hNFrU4g|+Rz#HmO;sDo8}STsdB7w9tXC>QXM#J3{<;{xVulat t@-KKUpLirn?1FYXB;5|D+o6NOFPMcK;NABV2Z=+(VPb$KvS$bnKLKnYDDwaS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy160-42-w b/usr/share/terminfo/w/wy160-42-w new file mode 100644 index 0000000000000000000000000000000000000000..337e845f74a3f50da34b34eb0c254687719d8b59 GIT binary patch literal 1378 zcmbVK(QA`e6#tzo;Ag-#Nc~@44sR zkEI{m(1ES;*wpIoE~hW)_0=xa>Wk%7GDXr!*6Aj^KL4A!<+JmhRL#xImlq*|aD?_1 zfm}he*+aC(G&V!9fx>lI&*%nh!bjL1=DXk_i4+FOb|Z@%3iKv0i7DD6IL6s0PGJ`F zsA3s)TqOSv-{VKxpYaQR$8~yla2J2#A9~H^zj%VDq1S9a!*jd{d>Cmq*ULtU$cM63 zw#z5dC04qnPvYW9KeH+MLUz*zW4LWw?9Dm*pZRe)DpgsQ8Wjz>D!;8NZ^~`CCrQJT z%mC*%N5;&WOXjkp!u(lM}16p>q)T6}_Dp}bFTXc?RJK=Ixln)Dw zW)ed|a9}h z`a?-i4S$LkuQwi_~$#FBgegy=T0r0c4tnXIXpW&H+^q8>km@A0imabhPl>yl($hEveV@H;dhd-(|a Sh%bq+i2cL?Zc#iz_;?A}$SrOF literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy160-43 b/usr/share/terminfo/w/wy160-43 new file mode 100644 index 0000000000000000000000000000000000000000..fda295a5d70c18d2e3146b6542500cd89aa6402a GIT binary patch literal 1353 zcmbVK&u>go6#mX_1g((}BAk#m<{4Gh_ufp~(GJsJV^q-+NvVb5b@Yd}rkyg{(KdpG zgh(V7T}TKL77`Z3)?Z_7XT$j3n`swCB<{<1&iU^B?s@0lb9af29jL)}`DhArPK(_b zi{38G<+GJ=kYO$3+PK~5U7xryIaM2rHcpI9W%Ce0Fap0qAQ(WY)IgNSKKv~CA5evL zoL!Gqt|O0|n8yO{;6C{SJi;>lGd#yD zykYbSpYa7>8I?-k@Et#bhy+H~3I8h9v?19d+hwQhmO8PdUK+)bW@(i+Il|SXbV-Wd zAL)uOv)^s+U)KjDEAz4-OH|yI$FjVtd?|0`y+lo^)MDbazmInFvovld&5S9SVnwlJ z?yb>2Si{SC9#&=_|8aHgzn=V4_0%kzXXb@@ZQlMzc!ii@4 zDD)gX-CTtpv2ui_naX4YUq6k=F2W>tK2N*>J*TmSfEArJ!jS zT5#xd&}lk`^>i^}mWWf;1KqF3t2Au~ae*bxaEZ=GCLT^Ww%v48Gl%_xy)IY1?kIFP zOu0sM#@{>Kr2U$8bohW~I;do2o44r%|7{1`Sy3t|EHJEm5PH@>$~ou-NJj|LOLP)l zL^shxqzIlw(!}u)_CU`tk$>_&=n0;^2BGTmfrs4SzLKl=m0yAmIe(ZOz&2LD7rI!d zi?MK`)xZ2q+e)2T_QUZTQb{}>Pwum#DhB6$i||f>EI#z;$`>h zt&!bS^(XQ}h-W!I!3<%f5Rq+d14s9D;T_ gB%KbYTcHC%$BU2?yyrgRByoy3P4u(rnJa{cUq+iMo&W#< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy160-43-w b/usr/share/terminfo/w/wy160-43-w new file mode 100644 index 0000000000000000000000000000000000000000..2e9bc4e043bfe3d280bbe86ef75f14c99ac450bf GIT binary patch literal 1358 zcmbVK-)oyy7=GR}#@uQIWkcqR(qax-tzEwFOS+^sYn!H7+D%;@gR%}W^Gn>ib}>y_ z)0nO*I0QjZM3EsPB3|rbs275Njo03JBZA;QpYtW_MK>9E4$pbt=Y5}Z&U=15BNKQU zLpUbCm`>L}<&9@EO%Ot~O!+s_h58qzjy3rV>YJIg)Z$kuei|u^^`4CYw zM)cbX?nSNx2XK(lLpXw`a6HbBAV3y5Op%>N5hYaUEn*4Fw3qP)$B?*+H8jw|7P`1e z{sC^`Gukik6~4x|^zPzE{EFY`MbYp01AoR|6#a$2@sIOiB#I8oVM)l7a!iiPvoa!9 zMrB;m637IzIeAG=)4Db@uzmL6Sp3iYg1jy**^&+wJ^4s(?;t?31COnB4Ki?lS|0li{ZZPT~43$_{9T8TeOd(f(f$2j_UoOFmETbGlC zJf~eq76O_xTr(^~D*?3Q(>9?SG;~L4vcx8lr)nO0LKhBb#f$w8OKCAh<50~f3%=*2 zr?ooi3JvE14NDnlElIhiwB_d3(t2L&zSdsQ>MWJ4?1`hg&b_^OIx8y2g(VA_X;=9& zD|JV?2)zWEO+XfjA~8plh*V!ob*k?$#0PO940gC4Z)9g|GjBI_ z)YkQcopN-NG%S;c^L9!rHsz&UIIx?xm%nLu`YM)^q2D~kfr;#1BI{_dN2!~LC8^oe z{kb_O@%xex>fb%Dz+V%x!17 z?RQ(faCaB{Y8nRo0Aav)t)+>R(4tRL^cl`Um*S`ILC*5R&k-*ZuMn>i=lS~8H;EAc E0y#e~5dZ)H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy160-tek b/usr/share/terminfo/w/wy160-tek new file mode 100644 index 0000000000000000000000000000000000000000..6635d62b62cf4d0a0e8e103969caa594abe782f7 GIT binary patch literal 965 zcmdr`&r1S97=2TLVG5mFbSL6-phcWrm)cW!=n$Pe1RcB>v20GVqzJRwr7SJ*Kr~ku2!V)7 ekXS?cU|yIg!0=Gaqr5*aOc-~295Pz2bB0exN`U$R literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy160-vb b/usr/share/terminfo/w/wy160-vb new file mode 100644 index 0000000000000000000000000000000000000000..01788a4df6c5e54fdb5dc92e9f71ac2febbc8d5d GIT binary patch literal 1368 zcmbVK&udgy6#mW)g)}iL)S`GmQ=I2SQ=Ru-CT5aMl9^1VW3>6v5E_gKV_rs+IF?B= z%_NQ{v|YHUf(t=J5L!gRh0s!5xKMD>MgI@i?z$=U^?Pq75u!!#!gtU4&iU@S=l<9) zN3j>p_+0)nl{M#teQagsYGrM?PI6 zIE+Td8mWBaH!%7M{oULx$R0!jJ?KN4EQ1_|F+y()-{KtYc@#L$6PK}wGFDN=27V&H zj-PRd_8#uzS3IQm2cF^uUeWXY*Z3R%gr4vJ3rK@-S83$jEW6}0*()js<&Z?BU1HK9 zosy7VX8R;18QNfE>$b+;opb-29~Dnlr7G8`_(5*Uoh{`9c`Uz4-1vT%>E`_INSaG# z!~AHjn;Ygr`#| zL?r33%2%xIWuZA2T5)Jg&_x=$M`+?inMhDI1Z~rk4VtqQkG$v*$Cwt)umwVY)r?r;OOj8&8MhjXFK<3k$ck+GYR-z<(ID(vWviOFW?ikR*hB~Y(g{vX#J3XhfVx|hy3SA%O+`1?b_EirCh?#S zKIPk@J@(~s`|Nr5!s^AvIcI)u;moCh;`HUzciF|Ea_0N^O1d(*+Of8LWvS||uS2hd z*ARPqH+;xpzNO1|^jyC3Y>YS#O*hc=!>jkW;+=)5O=r2r){Gu|$4`@bDi+ CU@D;i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy160-w b/usr/share/terminfo/w/wy160-w new file mode 100644 index 0000000000000000000000000000000000000000..dc73488c01da55f3a186226c6a9602efd5e35c02 GIT binary patch literal 1367 zcmbVK&udgy6#mW?@kctPiemMk7@X@Qrg7eTnK+3VGnq`rNwn2egkVG*eKY=y>12|0 zjH4-)N}-!lL=3__2_Grcs&TJ)4XZ>z2?AF)->mh=2k+JKfEtmf?E1JX8rWu1s; z`nl~$Jmb>rXHLHWEqc(pOIwA`(9rFqNfC2IA5|mJ4jo;gMJMv>ETzT}O^8w-6FN?E zP)q$`q5d#sd8R4HDc6M7!oB6B9@dJh6pp))f7RRxH)$f2Vw(DXlo=Jy~UfItyy$)|V&~#XOQ7auJDaKoeT!_xHSzGP1 zbJ}Su+F=Jm+E3~i$o&yJphcT-65+CE=WL_zn!Vaov6>$G)jgaTNG%0YA@!Chb-j@! zF_d_fxEBVQ8=lCh_%;mE)=iKw>E*!g<7>nQ11@G?Pg(nWojYmP$xUVUjmbJ9Szo znIzM6YARI0jfjXMT_^|zp`xIRE?l^9;ljVcwL3Q=6iWO2-kWKJw58yM@1FCW^WAgL z{qcfKVG#XzPJTD-P4}QP+8*6lzT9(TuNA~$`tzHuV2EVMO?#vMyN&hp7ltVJZjXRqHLOFY6;3UsjJc2T1t;=;A-teSasV<%l!z%}nwTNV1WzIr;_v`ogucN-(fXs% zBRqRQ26lH3yy!)@lq@Fgi1nkZYF&XYx(^7Rz#ewL54!b|ZeFZv!2+`G}5_`ekx|#^$wRlTI=Udv?usa_`y8T@|}Y z({CQ+#6)I0k%_3cO{vSqlH_Fa-rBK9;&vrI)Ws8gWQ?R<7>nQ11@G?Pg(nWojYmP$xUVUjmbJ9Szo znIzM6YARI0jfjXMT_^|zp`xIRE?l^9;ljVcwL3Q=6iWO2-kWKJw58yM@1FCW^WAgL z{qcfKVG#XzPJTD-P4}QP+8*6lzT9(TuNA~$`tzHuV2EVMO?#vMyN&hp7ltVJZjXRqHLOFY6;3UsjJc2T1t;=;A-teSasV<%l!z%}nwTNV1WzIr;_v`ogucN-(fXs% zBRqRQ26lH3yy!)@lq@Fgi1nkZYF&XYx(^7Rz#ewL54!b|ZeFZv!2+`G}5_`ekx|#^$wRlTI=Udv?usa_`y8T@|}Y z({CQ+#6)I0k%_3cO{vSqlH_Fa-rBK9;&vrI)Ws8gWQ?Rl9LQx8?x|n|FzLx|fn>^-x=R4<~ z^Uk^F-p4#64$&bRpfT~A?DkYT*y#4!bF5E6kAM&f^CJNr1KXm6tf#1-JSD6>LI>b` zmR_Kv#%M> zJ{MnzFO%4>#clB|_>Yh~;wSM-;@{p6>tDs6;=Xu*l>zIZb=d0nk3jfQR?3RNk69De zEcB|?vp%#gTOU~;TlZl9Yu!&GEqOo=$|3orAU^(k@TZqx1yXWoOB0 zD5nxR4eeA~qgn0d;Pn;&1-ty#Xx2B56R>xTBxm~n=>;0(G)P_tHC$M{$X_(pBKWJ2 zSK>uDJ--HC8qIoKa2%DPL%W>GL@p|yu+ubzg`f^l3?uIVG&7&ymSz_2fX~cqWrBu5 z>kK3B0!$rkBDIO~+(rAP(X4XaqdD~9avv(vehVehY;X#wBR|q^ghhB14CO{D1w(1x zP#C2n9iWYzedM@3<_@DEvfehk!OU{;<}bo`oa|zW->6^}v4DxQQ#g}koP1~ZJ> zHJCEU@EXKe0b9ucbD()uvtOpt>k6VF9>j;=OkjJc#^A}m$SKA`H!(RD4?H%w@7)+K zYJ$0*A$)4?62NB&7?g)$Ku)7UFH+Ap?DBIB_`QJVnTlIdj8KM0SB5 z+rC;!^#YEd3+X{tAWcY{rl)6S=I0j{&Yi1PYqffPdHMYLMx)tmwc71YXJut|wcA}= z>-8>NSYO}R*xbCxhcd}K4f#gqL+pCY#jD0)@o|^6Ib7dR&tS~Waq9S-O^7z<@0lb| zbEIeDJrl3^^F!CDtD*^~IE;QxvN8cFoyJK8R;p|K8R S71E;WjHc>Y1@WjltLY(y)sXoB literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy185-24 b/usr/share/terminfo/w/wy185-24 new file mode 100644 index 0000000000000000000000000000000000000000..fb879978654dabd0501679b6dfde3cd245fca600 GIT binary patch literal 1700 zcmb7F-HTgA6hCusS=&;(j}|X2vF2h|)V(uzZf=$v6I+X2`$5twblK>#X|tb6cC$$~ z*>uwieX%b^eDMQO9}41&A{8u%2)_8@gZLs!5mZnR6!8zR@ptB4ccJXd4mrR1oipdm zIdf(%d02S#5bdQg@u}VG%WUwZ(t}>VJ(tjnpegWFZ>h7GQaV+wbSkO((#l+$NSGf_ zAO^t&m9XC-8YZKJ#XU3v+Yx${#>uA~)=tqBP16j`fiF-S*rQE)m0qKJh`hvcqujyO*j=qO}mwu+-=})kGLlPrmTyVOaI4PbtY&blFxs>qX@I^5t zX2c~i56iM>imn)l>*5Bqn~>MV8{(bB_kD3od;tD2d9>oU*&*Hl19JC*00KcW%^; z$eE;lXnPORhpa=^AZ?nRtyJdc7Z#S6Yqfg4(O6koU2Qhk)>^H0yVF@;?{<5=jg5Z) z%9YK{!QkrEYkU#YkV43BuMpy-V;;6T2aT_|tjvXKLw$oWH&>|QyEQJ#+_`Upe8rx= z@%N3tAn3KdEhl8wbhSKU+*ico~Qs7SleMHdQEbR{lyBZyLP)s5qK?t4i}UgkinjB-Yu4_j(nvDB7Yc)?v9U zu8IwDOUuExnDjhIqnefZNo<8X|s+Q z3HF;g$ke}`0KPs8IV2q(rg77*L0PsNE2o zuqY_X4OI$?(tM$GmyvC3Mi^@ z1{Rg(eU&koWz??0ltG3!Aw~;WOB$F1&8w>YDiu#Eh=zC&A9mA$&88ZKJNqJs7!B3L zu`KD=pk@+-kJ>=r3Q_y(akv7Bi4fPDh+>BGl zb2cv8%-=IXo@P(a_ZXcNgi_E&MRcKyE)=BbN?hnh5T)R%i}5@6y(A#nWSH~a@0@$i zJ?EZthj~)GK#x%$4T)c5r>nBTvCc-P+nS5n8L$*+YN?h|o<26aTv@5sQq|?s9FZ_z z5?EtkUC`5KqG#zid6dWAYcxTV^ghjjFHj5Ep>?`M+w?K`b^4TU z&`q!}=r(E01j;;do4UJ2_`!h5}{ zXo!wj7azcKQCt?=;)=K`u0gvF`AmE+ZY927ireCA@b4ja#1G=9#J+PMUVj$9i+kce zcKWQt))A}MI||{CvNBc#e!`ltX0fhXU2Ds_WPNCTWc>yGAM0M?X~{#fUk=DeCC42G zzHZp4JZ;u@4f5XJX9~6%Ils@&p3i=)a-fKY?8r@dQC^nY@`}7FugOmi6u(~u``d0D z@Z6j7EBURwEA8SWJxGs`U38Y5x^ha9Q`b(Zna*ps0IRnE7_p0Qr1QQpoPxfqBr((f z4REa&OXN>Mng3*IgvEpSh?;!A5Ln_oX-%Rn!5z>83G37p&5|(P@os7XX_)o!n>tgd!CYir%^`Sa`R8ylOO7kDU>eACd}H^fUCa&gosY&`Cw zHpBG|^$f<`j8n&RHZI!C-!nm;W>3%fd&Xb!&kv>JXIkPXov8taonquF?fF3_%;u(M n$)3bN1^-v{Q7Ty<-d*jnH5Ar{tU{Vpp3zi3s~{egXEpr?-u#&P literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy185-wvb b/usr/share/terminfo/w/wy185-wvb new file mode 100644 index 0000000000000000000000000000000000000000..d7bd0b4c2b0f038affb3f23a315423d5925dacf9 GIT binary patch literal 1732 zcmb7FO=w(I6h8OeP-w>Q0v?r(+|E^;5-`)W2p{M959VbOEV()c2N9XARO@q(S60l8Ox<(uHA^2_j znC{SBu+QlpeU0^7x=%mQ1Nw!2rQf0dL4VOd^a$*LI4q8cQ-af-6$LSASg$vQbuQ+; zURl&cTXe-bELX&Ju_11Vo8lI<+mKJhr{c5N_X}}PdyUNC>h+$1@b84>TWRpDbgVQ1TCC$_Mwh?;E6Re42TmmBhiyeV(Vk9HNmQw2NQ z?(Fj1yYfrO!UP>4yWm`O>dGlaPF*{tMlz$_EUexfV8kxGnaudcFbaK3iDM@J zA3j3+I1G~0K?P432l?|xn+Jat@=AXbM$fN+k0mo9Cp?YJSVOyzPDd^>kJ>3Zh>f5M zPz;GP0L{$j(^AaBE%2F{tDL7n&?-aXZGg$6ji)wVo;zk(GU;f!)`jT z*;J!&XP@H`qoJBUc{y&pv2xwpKAhB;IiDdsHTNRGX9yUShh{)7pg=EDPuK0j(K_s2 z!2R)fLb(7gehA&?Ha5ugH-0=N44d}#rydW#;5s>ehONkVBBmZEUxOa@bsse7(*RWW z=`g73(-1V}L{$z>JFSDx%%BsIJwlIdKCL+W2u9F>bRliX5~N9!lf~lf?A+YKLb+V2 zRI7`NwOYNtwA5%co2^#6y}aD%tgLjqmoBZYuC1-FU*@4q@J&N=-w-cp$i-2oVdHTZ zv>C2%sAsUx%{X;`&c;QX`FkeF)9mRPf6w?U{`^onKGPCE>ET5{&M8E$(w-j-hpF^C o(_~NJ{{+zhKDxN{?dAcEk+g$oxhT)1!{f*^t*BDjoaCW&GSop9!y`#JbZ@(tW1-y-f2>(*DRJ;Gx=Y3QeThUe5T z@RIv0;x#9Fi+6aB5BNy?6F%b$zEXX|cl;om^|QfsYvcZFllX50Rj1maT2FPUh}x@8 z(4SRjHbhPKv?{CHEs;CwZi{EV#s0s}{Y|6I+y_cBXh#U*K>DJ|gyTU@L#7+@u=ZUY z>xt<;eOdbhP06?GhU6W-sN`M#JGz4iLUPfhYc7}~lO}j=x{VowvJX;din^H&KzhaO zixi9{%webBll+kBC&uVZoJMCDG9FD1c(5BQ=2(Fp*gl~~Lr^K=2yv7cBgP35){*&WGVVc-m^}Z0_7i%IzmlCs&q}Wz zHnAak(rvWU0X+%zo^3x9#}511HrLo_Ca#KeUQ7cN-1aAD&0%)KoJNSNe&=X{U(?tC-%tO(;Y8t@Kh zJmr!W~>JFIEhnE_8htp!$lZGIV5U?ZP$qg zag40ji3+>ke%p9JzFC|XVbQU#!V=vgA>K0nUTp5m>Ti4!+rsPF{k0<=-=4_vJ^t?c z#sjm}+GdX&K@I$nCS-ds9y1e=Hz99TG#t&nMxFDla(|C&}G ze30Y8xTPChCzFQRHfhR~hZF%#9j4fYiytg8HK#c zQGD=o^Qtp=-_GF04ahMxp#}BMcjR<19_5TlWtfKQ(|42aQtPUu)?yFIy*g&8e3ZJH z=-f$k>bl5|%eo8BUZdZr?(NnkmRpk1&0?w~+f-JD+}=HOQy%&$uj+-gP*=HhnB~cP xQ+K8pXNnINW(#x6h1F7Nab@XlIlsJA9jxR3V7$x`$N`HNJz()^x}AGp!#@(|j=lf@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy30-vb b/usr/share/terminfo/w/wy30-vb new file mode 100644 index 0000000000000000000000000000000000000000..164cf074782b82c121d04d2a042c22f82eb6c587 GIT binary patch literal 912 zcmaJ;=I$owJ4U(OUVschPxN@ufB3iV}dLnx>@)M~v%eGOtelm+m+ z=AnNZRX29n48cAeKo}9KC?+t8X|fs2;{@$#n`7=t;v#v5xMqDNRIOdZ4ceQ;U1Ht( zYPE-WgvSm31W)md{5f85e@VQ;YrMrfyvGN8r2d4@*uWREulR=Vv}XNi*t*)h|J)+} z3+<{?b*a`<-D;=Wqh{$prWQ6uO?E;R)vcDuZFQ%`v)-cruXAt9XfyY|k{S3Q4rCw@ z2|H290_0?a9@IHk2mL`kpfBj$aFe0~eUPNXFDOZue@mYiUPvMkam@wCX=#q|+ISl? zMr1D}-z0Sz_dxo^>`Nq!h0S4SC@RTO(@&7mvmuJE9>`Q6G8~27STVs0?7;R3b;t)5 zBPNK$#3V6Au)3P|nLg)vf$4M>a+JM#;p5>IJK6Z($qH+bIrN|x9kz}v1|p#-^tj2( z?bo@mUgcA?)9AGH>oF4>r6=A-9rx%lh>P~d>~JdQ&s{pTSh`%uE?voAUCyr*i=}G$ dOeMEmZk8YVSDqu!Kw>VxL(Fv{Blg8y#~&NQfsX(H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325 b/usr/share/terminfo/w/wy325 new file mode 100644 index 0000000000000000000000000000000000000000..03ef7f7197ce18b26b229321c4d3dd180048f255 GIT binary patch literal 1211 zcmb7C-%Aux6#mXwWSRvPSRF8<9ah_NXLi?LwXLr1wrZIYk!1vH^?g7Ge@0qT90_BXAQ&EQPJl%l`?8QMpegr2GM*YsZ)knQCw#_NTCV#I-|@q@ zT=yq_!KE#-P55o8ls&Rfszv3n9F?GiBrLYXq?yrHiAx*VTgf#pdH=I_%4M05yiDnndX-#p@c(_TsvdJ&K^LXv_$(GU0-+KB_ z)iYz&cwxLY-Wu->?ZysNK`m$~5O1^+(2Ie1jC5tqJ#FS~GguomL#AWqBkLw-T?5Tp zoWEvm>_SZ?e<>XZ#G85fLLeR`o#D$)8k&hfi#9nAog~q$C&h>Y(Lz-UTBluQnz4Ml z$b_aCB6-NR1md=3g%g@>_0n}ZDC^`iPD+D14_mz3 z#B9=jQh|6R;Uzu5ELntJWT}w$Do8hxBsz#rB1NPLRv{UptI8{x`KP`6XQ4eTn>7zc z{1&xsv}pP+5A7`u`>`K7d=$ETM3-Ys$Ln|QjAl==ZJu4sXs*sLHGzs!56Aq3%{DXN zVivUC%xRr@%5z)kI%)b&$~>hRGiU|97h0Cg#gd9?L}}-nxG@mh2*f-$vf)zK z=u3j_!S%b%p2RLm9H@<*94SKK;|{7+5ZFU&#&)n()+CmDh7A0d4IiS7HX_~n})unjwC z-HAOofU3UZ@48E6R1e##_82 z`+$%5gfC>i{}tcxJz&2713%%Di)3P!w_6g@OKDbW zLsqr_*$3pROiNKpykSnB%JbSy>+(k4OT_a1Hp}7u=Zadt{F{NNU`=jBOk1Tbv6U@) z^`3_t)<=K!ZhhSy`V+CwHD2;(CGffID$jaiDu|>lP<@Yj_G&djOI?UZH8B}T4)JM zO=3^Ahj)X7?OwYWx69gM7xcK@W7KY{`3&`Z+V0V;9d^RT?Ac{|G5*M2szx!5D0#7y z8y&HlBW6^urZTQ02nqLvH_vvN5VsnVhq~C!ks{K5vdy`6!@D(qd*+TidFSrfz22$u z>Aw4!nRI#JL2NEn>7S1-%swnF=9ibjFO0Jx+Mp?yvrM_1TNiXBnD8QGh`l{WoF^_2 J7m49|{04jZ!0`Y8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325-25w b/usr/share/terminfo/w/wy325-25w new file mode 100644 index 0000000000000000000000000000000000000000..03b3fa92442de69f51f62ca599428f45e1dd7257 GIT binary patch literal 1201 zcmb7CT}u>U6n@TFRDMK+(8n91v~TN2>dfq}uDa;z?zVnZR!F8ot<7qFySiJeX;xqt zT?7e%7eW1k=(hh7bk$uq5d;y`^vte$VL~*+bIx|19qs< z4&~SLtJ#TNK1|+7quL7C)z0GF{rQC~L{NM@y~`n+aNRS6>ps=4JC5J3_W~t2Oz#nt z;v|aaHLwvx3)<cbIKK$%btzDUUIgc|Zif>a|r=D42L8B3>c z=!~t?G48kuDrMp*rG;`-mGSpd!@h`R^VSVtBtUhEDV+pV(uT@g)ETHHD$+WtAdw@& zjEY0ms@@WnGz&b>N|t#<t zXD3RF1Dx?iI8NQAGhv-mb$UY8>JHCrqv<4QJ8|8ilG<fgQF>V;Uv5C_V_G42x$%@>=@v2lBH<=)biH9a*mGTSvb zIv-s~EX8xN`@sj@`JR=)YWCssnzOM1{#RTK(FE0Pagp5?m(~h(t+3uTNIwTVKwKuS K5Lb!83j6_M(7V$B literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325-42 b/usr/share/terminfo/w/wy325-42 new file mode 100644 index 0000000000000000000000000000000000000000..7e043b6a76a2e3a329dd3186d1dfa89bb47c7c84 GIT binary patch literal 1207 zcmb7COHUI~6#mYjQ9(3O6Qd_lh#f0bU}ieV!&+KsEuaW7Mg(J0ELBk;rBus9@xg+H zi7s5YATiN}@dp^U{u38&-MKL)hVh$eVSy&bJNfSU&g0&D9&=Pq;xOv)1?xt6G3vCp zxX#1!;(WeJM@d`A8(gPhdTKU54-r(BFE=^K2t2Qu@Vuv{=e1zN^FN>lJ89j8S{%TU zz~6{Ka>wG{d>h#|6JT*VE_3FNs?5i^)W2@6=pW2{nN!*jf*T*n){!+Wxi_=L~+ zO6Gar@Etz_=6OHy3m&=14&mEUC;R1~92S-1azerqkv6f#l@5BlBqlwS{z_J5Mf;z< zPp-*~6r{)-9>_C!v31kByp<0UF+8u;u(;=f+FpmGRop0qjCO)PhDrv34sCy%LJK6k}EOoLR8Va6{OPm^riH zY*Nnp7&L2PH+LI*ajcHNn2v^G9XxzF6pK=v=gqk^G~+LL7 zcSxuCu*I`ym`yrJDim|#e$u1Nl11nhmI_JKLk5T>(M$9ZDI!g<3ds=t^?u3BKkc8t z03Br6ta;oCTGX@EqWQ-(+J7;Q;1G231azfQS6rs!_d9=Hv)yc)&&wIjHwC4}QCsQZ z-5_DJ$1HT3C2cbEddfWOt6fxcY3jL@c~&!K*b4h*$1Iu4osZ0il_;hWB`=)eMu)rQ zaDCO;QW@7CgoG2}&9fbTh+PTEL2c~eND*l}-D+K*aBeN!p1WgD-MKq?97^trU z6yP*>3sH>oxa9dOVZuT)+GvFkMmM5lF%04^^*HWRJ|w0vgLy0=i&bpUe#SRmQNP9> z-rybCdwjr0d?It4FZhaY9&?=U_<^6~zwnz9;*=;7rQ)0@7Z=49;S+vQC2B;S(1qie zqDcg)-PLxW^Va{!khmkJL`ux^hDEV1c8+e^6?@{XsMH+CuU(`3dsS=u&OOgFp*=W= zu(j!9vGd35{5|P|-OP#J<8Q6}GipuS)V8(f+6(QaCi_r`GDsb=)*oupJ0M5=A&YA4 zz?@Vml{QpjSfx#s=;4ejAmciUC=HaNqJ+Ph9QB6`lc$FLp+>43ywZ+B#!SeZL7j$N zq9U!PvWP4ZWK;yQO7<4WnC|f$Gg+pK%0)cLi*>!BL&jU(Jne3V_3#=yA_H>SJ(y^a zgEDEzM2(Dx8OF5EmdiOltn+L$vx$01d1W!{QD(_1*}CX>}(ogFC7H*m%uVmno*N(WU|R;#3}QthtUO4E+gwj-)t##BHLxZ9@6s`cQe z+Q>&Sheq;rGX)*ik;8IL^T=delNS;Q2M*7+xFJS9#D+9*hVw*i!}WT7V$z&ieY7-f zq^4)aW;^G`=fexprAW5tv9;2b>t1bK%RE_Lx3{*y|B8bl>LI%f4zkPO&{`meyz#C> R^s})8#7*KBahn({!yjA9zF`0W literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325-42w-vb b/usr/share/terminfo/w/wy325-42w-vb new file mode 100644 index 0000000000000000000000000000000000000000..0c8693322e06d26be8dd1e364a8003b2aa345847 GIT binary patch literal 1241 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 Sh)ZnjW#S5PmAFQX)ZsU6_P%8R literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325-43w-vb b/usr/share/terminfo/w/wy325-43w-vb new file mode 100644 index 0000000000000000000000000000000000000000..c3d564fd0dd55d44bd08460d272471d6b8a2ad67 GIT binary patch literal 1241 zcmb7COKTHR6#njruWCi4sCb}8%{A59W@a*NqYZ7+B&PM%BE|Yzq$bg(rkXZwV_S__ z6a+y*5fK#^F2$|?#f=MhZbT475FEdm)CyG)FMQ{5&v(z9$LvrEY{Le;$19^c7qL6q zoJh58_QLgLhxW)^rO?J$z=;G(#VdtMpjylq0uxs$W{Z`X(Nf?-p;UrWs2@-NvY~Fn zb+;3)drQ0SC^j>;mW&_nD&DTfI^Jya<2zx(hJz@*L+C*qNm^+f$1wG2oTtnZd5qyQ zu3`$an5SREBJNW^#A7_g3tF%725<3>mg|1NM||=v*Zqty_)7a5zEl2yq1LDdwMlJJ zTh$KLtahutsztS`cICRJil|O%??jh$-TNPTNDZpIx}=KCFrntu;&P@3>alvRb{ej` z+Xzzrc|yi1W89BS7?Vqk8DoA0_vQ+}o@a6C_Re3UE5CL3pR9Yv1LKkL#CT@BG-Lpc z5EIfGjCGhjkl|p=p*pkVj_RT=TRMMImu;O-q5;j2tjSGF*1|?KZ{RN{Bf*$u^VP{< zEJAgdDRXH^#)eca>M~@Kisn8lhnOa!WThZ2(!WYFrf*kS$rM9W9Gb5oH=fE(URr;-96}Q$ zzXwv=B{hfTc!SP%2V-5HQO!u9#qYBR4fO$z2V)$k?$za}o|b*OAT7Gva}UzZrRnEV zx?3_jWQM$JTTknS=nZ|n&SDJ_+T~6P2At)9-OJ0Xh3B^Od-gbEut4_&5EUf1~ z(HcI`Zk`*pFJ8MeIc62d#?M^tEuEc+UrA4;mW&_nD&DTfI^Jya<2zx(hJz@*L+C*qNm^+f$1wG2oTtnZd5qyQ zu3`$an5SREBJNW^#A7_g3tF%725<3>mg|1NM||=v*Zqty_)7a5zEl2yq1LDdwMlJJ zTh$KLtahutsztS`cICRJil|O%??jh$-TNPTNDZpIx}=KCFrntu;&P@3>alvRb{ej` z+Xzzrc|yi1W89BS7?Vqk8DoA0_vQ+}o@a6C_Re3UE5CL3pR9Yv1LKkL#CT@BG-Lpc z5EIfGjCGhjkl|p=p*pkVj_RT=TRMMImu;O-q5;j2tjSGF*1|?KZ{RN{Bf*$u^VP{< zEJAgdDRXH^#)eca>M~@Kisn8lhnOa!WThZ2(!WYFrf*kS$rM9W9Gb5oH=fE(URr;-96}Q$ zzXwv=B{hfTc!SP%2V-5HQO!u9#qYBR4fO$z2V)$k?$za}o|b*OAT7Gva}UzZrRnEV zx?3_jWQM$JTTknS=nZ|n&SDJ_+T~6P2At)9-OJ0Xh3B^Od-gbEut4_&5EUf1~ z(HcI`Zk`*pFJ8MeIc62d#?M^tEuEc+UrA4{7+5ZFU&#&)n()+CmDh7A0d4IiS7HX_~n})unjwC z-HAOofU3UZ@48E6R1e##_82 z`+$%5gfC>i{}tcxJz&2713%%Di)3P!w_6g@OKDbW zLsqr_*$3pROiNKpykSnB%JbSy>+(k4OT_a1Hp}7u=Zadt{F{NNU`=jBOk1Tbv6U@) z^`3_t)<=K!ZhhSy`V+CwHD2;(CGffID$jaiDu|>lP<@Yj_G&djOI?UZH8B}T4)JM zO=3^Ahj)X7?OwYWx69gM7xcK@W7KY{`3&`Z+V0V;9d^RT?Ac{|G5*M2szx!5D0#7y z8y&HlBW6^urZTQ02nqLvH_vvN5VsnVhq~C!ks{K5vdy`6!@D(qd*+TidFSrfz22$u z>Aw4!nRI#JL2NEn>7S1-%swnF=9ibjFO0Jx+Mp?yvrM_1TNiXBnD8QGh`l{WoF^_2 J7m49|{04jZ!0`Y8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325-vb b/usr/share/terminfo/w/wy325-vb new file mode 100644 index 0000000000000000000000000000000000000000..009b8cd42e3545981929735b05951b8352146a85 GIT binary patch literal 1233 zcmb7CT}xC^6kX>=pxH!0(Z{ATn!{+ObMJN3$tIoA8OM)I2}!Jn#;#L-Of~A{WR@k= zgCGQf4?ruhI z3QB&t+qk=(d^cb8;ztohD`JS#>p&N}(MQ&gAzY%p42SDAVhT4ggE`FO9+v1o!ZKEA z*YFfC@QUm`KHwuhlez8}e8o4Px$bxTz)z3EP<&fes({*~_NjyFusWu+s#WzWtZdc9 zXp3r9XK1~zy=+U~|EvjhK~1R}D$g4V>VaC>xM@v2S8r6U;kqY{2Cjd9mXR?EexztD zloj`lhnuv^oBYx}E9KqCTShm(_2i$bRb$O~X1p|B8*dHiK>%Vx>VmN*vkfv7j74Zh z%I+DRw{)mFr0cY!^Y%K$4jh4GOio-f7IxxD6@N4t4#rw|_&rNHK%|Yyij2(w89+Slg)A9P9?UGC@ z+vf3NTCz2MscqO%>fxlHux{7+s4hsY&Pt6w?YXDuIw|^2QlFNz4w)fu+tvlW5WT1G zmQ+lmkv!kbg@MRMAmX|9hD%+OFA2p%>t|a$iB*y~5DS$YDeA%}8_Y|i_SM_hrpK*` z@yU^?_T0tm@f)e>WTEp`WG+$cxZOBEduL|BSzLtN@f#8T(;d#QhiwQG4UmMz`6evR YvIR2ePkjNZm;LS|&Jz8^IbtAy-+t=9;s5{u literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325-w b/usr/share/terminfo/w/wy325-w new file mode 100644 index 0000000000000000000000000000000000000000..0092078d4f8f00cd566df4537fc463a379ccbfdf GIT binary patch literal 1229 zcmb7CTT2vS7=FH~s60f3(BTbH+OO42cV=95(?wU^ZPN}`M3zCU?XI~Va@DQzuvvi+ z1VKU(5fxo@8Qu0@g08yjCW0V>n4Xzk4J?R0c)s`aeDA!6IiPIpMI}Dsjo~b|+HK8F z(OI0&u4|M|vmGuD)7MO+E_b8O$z`&2(=(YYltSrva$Tpg3fJ97xb8jex}(@l-*!^A zU>m*LQGq?!@5k$5BaC)*(uyL6J|w6mF@%ehBe=@@8Zm|mOk)-WETBmHF2C`J@-d#` zIbKnFi+6aB57b=u6F%dMuet75e8YF@Kk$<`)K;}aRjJ*oM(tAvRhbZMwpjHrt7I2)fjvUSs-XsmUZRiaC*nkcU>7P$ zoT&DCX8j4T>ywZ{_RXe8Y;Q8bo}g~hX>UC9cj&bK;yjBQNahe^rCwITEXNyksw)uf z@DwL0*#^JQZd8;8I1z|)oVrKnBf21sIx7vj%QKJBOebiku)#TWDRJUz%G^udG0p{3(QfkA}+|;0!`U3#8ZLa(gW< ZvIBC~U->fBAcuXDI7OT$&JaV@_yu;NyvG0l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325-w-vb b/usr/share/terminfo/w/wy325-w-vb new file mode 100644 index 0000000000000000000000000000000000000000..77a7a602f0bd019de0dd947aea713636b54b4fb7 GIT binary patch literal 1243 zcmb7C-Ahwp82`OT`m&4&$?yTQ+S@eKopUyI<ow}LqT`#%#}=) zU3UUoXj{jSA8sA3Yp|Y{Cf~mUCTv6yrFH=Qh$BIk!ZD0ep2j)e86t;CT*530C}EL$ z189hvKXz(;)Ynd^SW7knlEhVQ(8z))*dz1pm{s%@%SwWwWc zk7`pLs!O@9sluv<(mT6 zAZZ&?wkY$EISSHtiU=`JL>ZNYw8^15Nt-?|vyuW`6dp2BCN|Abzhw4%b!LYcmSCD} zQi4+O9_B(aB90}wy^@JDjAd(2ZFjoXT9+hZ_;S}#drdZklb!aWv5gk zEXNykrY{id^+-7_PMhCnKkBOkoDRe|PCcOWQ9Up1+L1Qh=c)UtW>eI&N!=%D9W;ZU z+1B%VDSAU+uST(kFnPX*7afrmN5oU@6_s(_en>DL{Pnii3$dypS%`%V+$TCh`?}1t z6ZVB`7w0CesmbXxmj*76&&02!=92S?tC7-RdFWbrp}1IB%2q0nMSlvR-=pF3hB<=} i(FGZ_xZFXDi|mD*@K?SBb(q6GLL4QI5yy#<2K)rA#l^G$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325-wvb b/usr/share/terminfo/w/wy325-wvb new file mode 100644 index 0000000000000000000000000000000000000000..77a7a602f0bd019de0dd947aea713636b54b4fb7 GIT binary patch literal 1243 zcmb7C-Ahwp82`OT`m&4&$?yTQ+S@eKopUyI<ow}LqT`#%#}=) zU3UUoXj{jSA8sA3Yp|Y{Cf~mUCTv6yrFH=Qh$BIk!ZD0ep2j)e86t;CT*530C}EL$ z189hvKXz(;)Ynd^SW7knlEhVQ(8z))*dz1pm{s%@%SwWwWc zk7`pLs!O@9sluv<(mT6 zAZZ&?wkY$EISSHtiU=`JL>ZNYw8^15Nt-?|vyuW`6dp2BCN|Abzhw4%b!LYcmSCD} zQi4+O9_B(aB90}wy^@JDjAd(2ZFjoXT9+hZ_;S}#drdZklb!aWv5gk zEXNykrY{id^+-7_PMhCnKkBOkoDRe|PCcOWQ9Up1+L1Qh=c)UtW>eI&N!=%D9W;ZU z+1B%VDSAU+uST(kFnPX*7afrmN5oU@6_s(_en>DL{Pnii3$dypS%`%V+$TCh`?}1t z6ZVB`7w0CesmbXxmj*76&&02!=92S?tC7-RdFWbrp}1IB%2q0nMSlvR-=pF3hB<=} i(FGZ_xZFXDi|mD*@K?SBb(q6GLL4QI5yy#<2K)rA#l^G$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy325w-24 b/usr/share/terminfo/w/wy325w-24 new file mode 100644 index 0000000000000000000000000000000000000000..0092078d4f8f00cd566df4537fc463a379ccbfdf GIT binary patch literal 1229 zcmb7CTT2vS7=FH~s60f3(BTbH+OO42cV=95(?wU^ZPN}`M3zCU?XI~Va@DQzuvvi+ z1VKU(5fxo@8Qu0@g08yjCW0V>n4Xzk4J?R0c)s`aeDA!6IiPIpMI}Dsjo~b|+HK8F z(OI0&u4|M|vmGuD)7MO+E_b8O$z`&2(=(YYltSrva$Tpg3fJ97xb8jex}(@l-*!^A zU>m*LQGq?!@5k$5BaC)*(uyL6J|w6mF@%ehBe=@@8Zm|mOk)-WETBmHF2C`J@-d#` zIbKnFi+6aB57b=u6F%dMuet75e8YF@Kk$<`)K;}aRjJ*oM(tAvRhbZMwpjHrt7I2)fjvUSs-XsmUZRiaC*nkcU>7P$ zoT&DCX8j4T>ywZ{_RXe8Y;Q8bo}g~hX>UC9cj&bK;yjBQNahe^rCwITEXNyksw)uf z@DwL0*#^JQZd8;8I1z|)oVrKnBf21sIx7vj%QKJBOebiku)#TWDRJUz%G^udG0p{3(QfkA}+|;0!`U3#8ZLa(gW< ZvIBC~U->fBAcuXDI7OT$&JaV@_yu;NyvG0l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy350 b/usr/share/terminfo/w/wy350 new file mode 100644 index 0000000000000000000000000000000000000000..d7a41c6a1f4412f87b829e8009fcfd8fd15a6f1c GIT binary patch literal 1469 zcmcgqTT4_?6#n)Z#9I?xEUisqmleRf*^vRhlrwx9^&-vea={F6z1I5H+H0@NIW4MDjU%u{AW&G3 zw%A*R_2n5YCn)QvKnQrBmcA|^GH~4*LJ+Qd9%b~E8NH0Mjj;ig&@M#hJKL=LdYmXMDpC{A3#?qFe;UQE^MA$QtI!VFFkAjss7;) zi%!ua68j>OA}xl+C-Ps!*L`07#&=O=g{|GMHCpx_re%-q#m9U${#WnroUYq_U{u2D zx6;;#HEN9?7`r$7|FI{nDZjF5%L>ReN)d##Asg#EBX&3B705|n?NT{Mh3Z18QC(NL zNKxg#SPPl8`G?A^gF~pTL?z@zeW%0wV~`h_aln=-iy}hgAQved!#412_7O8oDquud zrUGiy-d34}Cz6m$+T$S`V}9Fi>XzAdU2?XAN_}UPH6N~$AsL2LJ&^q{Ww5jfT}y@6 z5JYbfB26TS3q+FWBl-!}D+Y*EP&YQJlkol!WTiJZ;~v;Y7A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy350-vb b/usr/share/terminfo/w/wy350-vb new file mode 100644 index 0000000000000000000000000000000000000000..893e2cdc814113d69d81326d4cb7ac8c7fed742d GIT binary patch literal 1487 zcmcgqO>0v@6g~5TSX=97!HfIAn08xaH%1Q#NTA}$1G z#YmUkQJKC~T`U!RH%B)}KUkS5%}mc0g42cBSqK5|)7JL|oh)2;Cm{&e?LZy5I^);T z_E7x84KQBEXbZNR9f?kKBZ@eq0SsaYX?i2fHA$PpS)+2@X zoTG6J+s?JqN7OKxfH7?{6HrU`ZIw-WCIxvz?|8^Zncub#56FD4E;-*vrzIX?&6}EJ zNVY+$1mrMG87wWQYpM4df;iF$F+wDXK_W#A5yJ%Q6=@>Vs2e+>lkof)0CY%)?suxjI7-4Vi-CSGWlcbQj)I|vc1B1T~w82yDG>w@Ah7X8H+Jz8-sMPfzJcG zdj8zysVnnWOS3nw&0SxZyIC&JFILV}iwl)nuZMs2%4v^4CLO*+(%~!i=-&0)EJ2KN zZezqaaf~=lOqlmK@1ZB)m^S-$+2bKLtqBgq5bVPvI5175|&=VKJKo}$ZF d4Am6fzQSQLPtxNv{HtOro8t62_TNVa`~;H)f7Sp1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy350-w b/usr/share/terminfo/w/wy350-w new file mode 100644 index 0000000000000000000000000000000000000000..a3cf4b80057fcef19f49ff31a2fc417a7aceca0c GIT binary patch literal 1477 zcmcgqTT4_?6#n)R@h)Agtc@~|yHUhEXJ&Lp#@lH$XS|e3VN%hEie+l!b-Yp!{fD53 z9{L5*59qCjpqB`O2!b9WiXwXGp(0M-KIdquk#8ON&RXl+-(GvIwf8Y`0!Oe9ruboG zSHcZuU3NXYGC%HlL-Yc416DXxH+o}gae4+q!27iIeL?3o9H*QRgyW1br$Cr(z%*vDNNxqU+?6}H zi+i|F{{bH25gxnj6FkK;*K?fbc!8JnU*R?XZ}1lH@d;n>72oiaz2u4lQ6x&me&IL= z#bI%jR)5mBUbOpP@sIU@h={0Y+NFpKTXcwbzzpif2={Svhs+x=z!!|mNl+m}Rc4zkg6Au{Y{mO=o?}kkAxs^bgkhN9KA+r_o z9OSU?j;L!YW2v!0l?kb_1m9pKWZLA*lxYjas4PMeWt#P^GTo$0O~>g}HHTSiX_*Yl zYDm=v*$K*8b!kJomO`%)i1reQ6k!vmhy>9=bP}vrbP>rC-PnLm!u>sv-E6K1B}}ra z2M}xvs#-Owr!apLvL9tAN1@mDB;2CgR3@Sp)LLjmt*f|V7}cTWh5fedA~%sB$KUwo z7E5a)TU$apjBSPC?W+w8gY7{#e_T!2EGcMuh4HwUT97qrTvmIhH!(~aj5*slq=f=r z56tYym8%yg7q8Dx%}vkFEYGekEG(`pUCw5fmo|H?|J^I6or1J2-h^%O7Nfd%eK%_m z-JDww(M$9ZXNa@z{k!*}Ct$g4w&=2ZgKSz89EeM>50Bu$G@;w}h_J6nZYnq*S3&D3 f8hk~^rlQeTSWM4{b7a6TnUj39 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy350-wvb b/usr/share/terminfo/w/wy350-wvb new file mode 100644 index 0000000000000000000000000000000000000000..42e5c98120c1fee01334a70d4a1b74409be58b1b GIT binary patch literal 1491 zcmcgqT}xC^6kX>^qV}g<#CRK{3hZ$*5{J+T6G2AJIEpqz=tU7nKkXpSIV#(} zfXf(03X_;YmRue;oXl<9!Cl;=e;*I<5RV-8F`nS5KqEb}R>TjQC-DvYF|Bw}QG;D}neWS-(f6cBx)3$?KszOHCh!`=W$LQZuyYck@6Av0^yvh>B zH$(QK9MXhrsBQC`?T}|7&wK8$not=_jh$8*zZ#376xEPPlYgR2TG)Z=GL%6ksOG-Y zkjHsak168@ji1Os&eB*8ThBGN- zg^XH!iKxX_4C&tW+bl!$ac=#@0C9piNenvg@4SbefaSD#OqV_2W7C@8KpcX7xC95L v3Ej3!1UyB&px}HQ1+A-S@)TVKMYE@{c$g~*c?|!muo{YS`W*Y8BLjW`N9Bcj literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy370 b/usr/share/terminfo/w/wy370 new file mode 100644 index 0000000000000000000000000000000000000000..e06fdc1fa200d05b15d63e7c92b8868afac6972a GIT binary patch literal 2082 zcmcIjO=w(I6h8O8#-E~1!HwpLOv^md#;WhW-x=>X6I0QlHW&-0lF^dXN%J>Jrju!= z)0spRM6fRWSya%4MHiw7BB%&mD2fQW$iju7P~GUlO`%v&gy(nedy_QQrM~2x^PO|g zJ@@?0fXLD9w3{3;(${Kxk<)FpSEdsQewTFQLiZ?48EBc-Tyr)9Q)Xeh&2)Tus!=5p z`afX;3O>O`h%vf>ZlyT=#x_wL57RI?aM?lE!RI!*gNDeX0z4j~C+HX*r#avSYJqp? zX*x@<((AzI=`DJP-Us@SKA{VcpVL?L4QfgpKry6_%8MRUi>I7Zr3lM%-Q#y&$r-V5UIpiwqPfsYtfV+FEpbdBeY7mSyTbH*j;myJJC&&0pS zZ!zQeK~NkYGRL$W*SvS0$ccZkZTI*uv}0z~oHy&{s@eUY-+T6|_%E8TT%~Q*@tS$w ze9!#I{M7uy+%SJIe=;wdSIj@n!#mh#s4wiZDid@)-Aq=+p0n%Ht}46k+SLXO-V9jT zsvOD|e5VNfaJC>d*tDc~CjWW849_C%FsoM$fMSkLhbx zWi(rG`9a^Q(Jshf5lk}6JPPJA@;OM3QMAc?M!Jf}vxU3mP?7p!SY(zt0;V5vwZE%< zJ!jTBkS%zQb59XT;5odbT)$!Efbx!#d+W$JIGQbloRF)0wcoM!jaZe?Q%(y>;Pzo%maY-qcm$;|RYpK1e~!b;b;h2?%!WauAQ|z2 z%xRuy?mEoN2r-sW7gN@J={BO_5$vXSIZW1Iw$Od?r^$4Rk9-5nGC%*d&e&ECN`CC zD~2Aw)`cD=x(^s6FaUHD7y`-!Mu0h6E%N2O-P~nQ_uGoBGToSNnI55!4Tv!6yh?K^ z)8ypT)QJ-_GxPHc3$@zf;?mOca=m`?WTUaN(rlhOwYu7Boj%=epE=X%bh~S7>pY1G zP$}Y_EJY}8zk{jptpiqS=id5*gIAW;uQs{}fcE=5zHM?Lp?GEHL&$AOa zJ(CQ3wy5Vem>GoIpfi|^(7QGQOj{9r9RQ}y0G%A0I?`QBBKX%vfN3j&)Dd9Xih!$# W;BkNsj_=feRb8D-s?*r*;lBZD5(&uw literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy370-101k b/usr/share/terminfo/w/wy370-101k new file mode 100644 index 0000000000000000000000000000000000000000..e06fdc1fa200d05b15d63e7c92b8868afac6972a GIT binary patch literal 2082 zcmcIjO=w(I6h8O8#-E~1!HwpLOv^md#;WhW-x=>X6I0QlHW&-0lF^dXN%J>Jrju!= z)0spRM6fRWSya%4MHiw7BB%&mD2fQW$iju7P~GUlO`%v&gy(nedy_QQrM~2x^PO|g zJ@@?0fXLD9w3{3;(${Kxk<)FpSEdsQewTFQLiZ?48EBc-Tyr)9Q)Xeh&2)Tus!=5p z`afX;3O>O`h%vf>ZlyT=#x_wL57RI?aM?lE!RI!*gNDeX0z4j~C+HX*r#avSYJqp? zX*x@<((AzI=`DJP-Us@SKA{VcpVL?L4QfgpKry6_%8MRUi>I7Zr3lM%-Q#y&$r-V5UIpiwqPfsYtfV+FEpbdBeY7mSyTbH*j;myJJC&&0pS zZ!zQeK~NkYGRL$W*SvS0$ccZkZTI*uv}0z~oHy&{s@eUY-+T6|_%E8TT%~Q*@tS$w ze9!#I{M7uy+%SJIe=;wdSIj@n!#mh#s4wiZDid@)-Aq=+p0n%Ht}46k+SLXO-V9jT zsvOD|e5VNfaJC>d*tDc~CjWW849_C%FsoM$fMSkLhbx zWi(rG`9a^Q(Jshf5lk}6JPPJA@;OM3QMAc?M!Jf}vxU3mP?7p!SY(zt0;V5vwZE%< zJ!jTBkS%zQb59XT;5odbT)$!Efbx!#d+W$JIGQbloRF)0wcoM!jaZe?Q%(y>;Pzo%maY-qcm$;|RYpK1e~!b;b;h2?%!WauAQ|z2 z%xRuy?mEoN2r-sW7gN@J={BO_5$vXSIZW1Iw$Od?r^$4Rk9-5nGC%*d&e&ECN`CC zD~2Aw)`cD=x(^s6FaUHD7y`-!Mu0h6E%N2O-P~nQ_uGoBGToSNnI55!4Tv!6yh?K^ z)8ypT)QJ-_GxPHc3$@zf;?mOca=m`?WTUaN(rlhOwYu7Boj%=epE=X%bh~S7>pY1G zP$}Y_EJY}8zk{jptpiqS=id5*gIAW;uQs{}fcE=5zHM?Lp?GEHL&$AOa zJ(CQ3wy5Vem>GoIpfi|^(7QGQOj{9r9RQ}y0G%A0I?`QBBKX%vfN3j&)Dd9Xih!$# W;BkNsj_=feRb8D-s?*r*;lBZD5(&uw literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy370-105k b/usr/share/terminfo/w/wy370-105k new file mode 100644 index 0000000000000000000000000000000000000000..a187e715fb47c940b332479a0652266ee3ab9862 GIT binary patch literal 2188 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy370-nk b/usr/share/terminfo/w/wy370-nk new file mode 100644 index 0000000000000000000000000000000000000000..c5ca323f8c5fb69e79f015a5911fd997f470e23b GIT binary patch literal 1921 zcmds0O=x3P6h1evI67e4g`oC{WJ(_G{HXWd_m^;EQb)luD%M#zGEwQwq;1mtG?S*2 zNz+zvJ0OB?L=Z$oHwp^kLN_9~aTadeDubYc4CuyVqNng>obc4Q!{}cU8ztZnOvtmx15>E?0ep9sVI?Cn0 ztzEJEFDfsJm&F_69YlR3J{Q-qem&grjrdOd2z*lv#B^#fxFdCEYCh$qPNsC~8vK`1 zufiU_-XF6!Qa@OHbIcr${=YE4{Hey@Qo{MCx{f%r&YY8R79H&roiomp&P8XcA^@n_GG!lh=G;AnP=ZHEh5rHtDBeG^2n; zvW()f2^iTbp2_6zS0@TI1ERqueHO+ZqHVmkvA(Rhr!sk8$_ENa0>|MTql31a1NtMj<8wRGLeRP1fiTnH6T-Vp zv>$Tfem#@V+MLiTTl}!KWpZOWn)GAT7U>mvNIE9)3`3t!+k+n`egGIIFa*>Ii~v;v zW5BFu8oW8@b*8ozBkAl`Gxu)vLYU?ry)ox3|B4aDbYNF^@_yMq$S#zXP6QJ72!yC%)pg z7yWF-77kEP0(07gdcH;O0XG0%9I@veQ={1cjok3flzF_OChK@5BbD}pFp9Ie=Pr?Z z9xS&%;yD`#+(1a>Mk%@*VHc`-J#Ry-k{bp@L`Z|>R zUf%0?eXMKTqkbqyl!``NJPKP#FCc6|E+lR7y+aD1CJKQS05ulqXPN3Ny`LxqhZR6g e6qHo}HBrD;DEKVU$K#XsSGLuuq&kcB2>$`201(6g literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy370-rv b/usr/share/terminfo/w/wy370-rv new file mode 100644 index 0000000000000000000000000000000000000000..7a2521677abdaddc58d2aff29a0e94a84c5af12f GIT binary patch literal 2063 zcmcIjO=w(I6h8O8#-E~1mo-mhTIP|qR{QRKe>2{3CbmKcYiL?%D;*3P1AVO}KlUDKE-oKmnyY1iGtJs!tqHt1QLW7q3G<&a0R^96Bg6>Z zMcXLpd?V{9Nrq^MJh*J4JK%F4JwUt3rvf|<(9`rRJx>$BQ`7=)(+hN-UZvN8-=eqa zJ^BFXL;9GmKz>eN(pPkiuG5e7GxT5SH~O9a1llSF#2#@>@bijs#w<3wGOH`=8%?>6Z8x?2ET(y*l2o-?cB>pV*(;SM6`@ zAMBs(oAw`eVjtebK70FgpHn$OchbG&RNM)-A>FEW8_KOVVerSm%1-5pY$5Q9zz4Gh zX~4Rrb7%CQ*URuM(q_I7DyguJ6-LBh+-T##`$3PThcNm<9eBiCb1K8xg5n1QuTEPa z!)Y+dEOQu4F$y?Hj#0eM0!F5ar?Q2Il^?8z2<&)Zu> z5_k^pXcaV_98liVaz_IhhsU#ph!ave(8|-kr;!>Cq?YiB0Hxy6Vx7|}L}tZ)XP4*f z+~-sxUwbVif!j}-vP_NW#vzo#RM`hA1rr=zt}^xwW;O&G2FaKYWX|wBbLBBFBg9Bb zmB*nU1swx*np*@c$-46>q-hH`7+vXT+~%IfX&9%W4NjbN&xs!~PW*xaJVTFjH5G)6 zq>qMxwsY@{*$=rpemz^r@$0^67WawU+*zV3IWcWcC*NHF&n@vf&g;O{41Iob8G4-R z0brQI5KyHs0+cC?0duaN=F53^ev4b{cQrX>y1TP#W{v^YAjZ7&x|2(pMn_McJbij> zY;tmHs$QR-o|&1QZ8XlDX*TEP=I0j{78hHsvuBr<&Yf$wmzP&oR(TvJK&2REfn$|+ zc^D0kPx*YR0>eYYBg4%=l^LkyUzgc>UvdOr@-mkE+_-5HK-~na8OKZ9R)3p7-_Q^W@5^1tI%6<3+}wzhOF^C+o9Jr$*60KyKaM- zLAVWigXswU+ati#ix8LqFs%n@=h)PiY9);j+#Ug@UIb|(z|@O?tBBxpfHsaFG=Ei7 LolL7USatE=c(Mel literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy370-tek b/usr/share/terminfo/w/wy370-tek new file mode 100644 index 0000000000000000000000000000000000000000..533c58eff20d5c2a2667c7458916e37fe502ea70 GIT binary patch literal 947 zcmb1QG++>5U}jKclxHljG&VQTElJI;39l?pRRD4nLQ=C!it_U^D-=u&3=Q;wgo#3G zZfQk2K+in_^0@3l7Joyb63xF!+8Mqi^Ez%Vn6PkY|vNwl}uO02%;h5?wiT9)}_AWob#P? z&pr42&FvyfchD{5iP65+iXVITEKjZ-URj*Z0B2gYW;L^1TdYmir!$k&^*WI-|0xqt z@Ci0TjM0rWL`mlx+d@e)N~7e#<*#HL-9WeD#SxNpA3PqUaXLy9Gy`0tCGZtmr!({_ zy$*bi-lFsL9?%E$FGXRS-nFI&HNJX8NJztv8X zeV`;M+m9G|$nfrYDv$h&?OKojLOW_t+EshbZrZE=^Lx);75_#1m8-N~9k1Ev?04-C z?N98_?M?f8`$zk-eZ~I6-oK4~M*4z2r!r1AlT&ePZbQ0L+HELzY5@j+2CVE<_Gb%$ zR|GzgEl2~lES)fD_z z_@1}Bh$QeF-q9*paB@I-Ps<$*WE>vO79vha=|C$_`<_N>IFMSxCjyj;ON(_*s}PwL z2c4asGqTsIM85V~NCLMXHf5O_(Tzt@3R7h-s1(#Vyxd^y8_aAJbPyzCK9D)X^URgU zyo?ZIDOL7Ce**L*sMFjcU`f`U`yowRxWVX3N8>j4G)}`fjb7u#N%x%i5#z)!7{D|1 zI9F3a$VmEV2xvR^&Y1m>yW`ihg`CL=`(QfU*`FzLV(L$a-krVYmUt7JI&d{ZpI=*p z9;bQ$7^W};R4I%AWeQ`!oU3Q~a^7tYxYL8KCZ|j{b+*imFu(@H7Ly?%uXLz(G|1WD zVL^){*4*u~yR0yy4*ZCxc;BNrj^kFeCzT(BQJl*^^)xx0EAL~(i`m)FDAG~~tVddD z>8HrYa;GTJK|V#H4rPiW9d%HwqoBnRBW;$#Oia0L6?*G#!EL&2$Z4KuJM_9H8Fg)O z*KIg647Xu#I31yXeFT_#5dsqcrmX<&9Gluwt)~%!>m$I_iy%z|n0gU#6%l+6(8lpy P=5NYWC)4T-R$crz@<{~k literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy370-w b/usr/share/terminfo/w/wy370-w new file mode 100644 index 0000000000000000000000000000000000000000..2e1b99390cdc76c5900282220d8f41f900638ac7 GIT binary patch literal 2063 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 aN_mxOQO2i?pGNtWTX~gJ`2r+JLih!T3cL{j literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy50-w b/usr/share/terminfo/w/wy50-w new file mode 100644 index 0000000000000000000000000000000000000000..85e8dd395de0b83431583b4280613c6ab62f3318 GIT binary patch literal 1193 zcmaizO-NKx6vzKpi}GW{Qc1cgQga!@%=c!TuVxyXCT-NLl)^%anVhK{zsA%i&8S7t zs&LaL3If4JQAANhK`mOeXwjlYi=Y+}1Q7%gL7VA+-;4xf)Pvu-=l;*R_n!0KyX(a! ztV2282fv?j*m=_jzI|I9zEtK0^%aF*;lVvpC1` z0=a^DT(`7rb^(jHo%iqH9v;wth{v=~@f2o;&A8UcLF( zXkjf2|IJzyx5Qm>Upx{|gzV%ev_Tq>P4=ME2tgizJe+sqYDlF`mFQDxr%FWled{4( z23FIW{GaN}PzKr0Y_98r?BGt(A_l#3GvvgQ6Z7b4&PIzN8>P0V=uq|9gQj7$gk;RG z3yB5j*n=)sQc*1(I;9;<3F$-o^(m#f5+QcjAUa8y>?9Ggi?kC~B6gFgO_$uOH{tqj z$S#&$1{*h-)vY<&9I8nT>i#CrL+(d4YEhbNC3m>RZ^whD(%Y&>{2CV zqYCIeKU1PboJWgQ0MbMW-v{D>lzZ4U;v6-{d=uNITBrS|w`Ytqo~7ek{v6NdJ0Zg+ zKSkIyA-%dB{g%!`bg`9gvWN7Ly=0%wx}=q8z$JPs*kC#Dq;6mXH9H!yg?F$O`u^#7 z2`W&BOct!r7UTGX1C_=q3B0kI^vCjbBd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy50-wvb b/usr/share/terminfo/w/wy50-wvb new file mode 100644 index 0000000000000000000000000000000000000000..eb00142c54e22dba8100f38c8e0d3774b07d9200 GIT binary patch literal 1209 zcmaizO-NKx6vzKJi}GX4P{_I_L(F3gGvAxMR5L{UUREn2i_(V|6*76lOm5d;xItET^b^CTFf9{kQd_kYg4_ni0M-6}lT zj555(Q<0tX>J8bM#6os%GHJQJbnRZ}(RPaGB0))U}Yu88_NY@k+YW=QPBF6i)Z=0g+0XrUKD6kQy<%^bDQQS{M2 zi3A2sEsY6toW(rHbL27>an00nxg{*)mgV2ZUEHVt0FP*&;2ECd1zzG6UgHhk;vGKV zBR=6XqhIh9->h}tt@)$rpV@t-IY8^tD3xTsQW5jEmC^*(W8Ra9l45?OJnAhIZ~ z6ew2<=J|83Tk4I!Mhk0M`ft{I5D4^=54eHvQ8>H zL5FI<5jJ$av027~s*qTSjw9@5CFNDpsZ!d&lxB5kuR5h9Un0aF8$<_*kiDdp>?3W2 zm5BW$YEva2QJZjm7i1^PE`^PooK>wkTbx?G*01`TJP&yoRj5WuzM)}gEh;DD))urW zvwkh9WxQG@kQdmcmXvi`NaY2Y5?#Z2v`7m<8Yt%bKs+?;9dV~zqeeO~-ZbTz4$kb( z>a)I;;~W1R&*nQIBL+W3#4sTJsvPx}<{>)SN*6gm4w6Hp+h*R;3fOUx-dZ+T#@nYF zsG;US9dDqze*xY-6)#3P?`Ac&VLP0tM7fK6n?YQmK3$5H)vNvY4J*=m+sE&dYx`$r?g5VLK*{7fw)8oI0Rxlacswq ziIW4DazZ_DXe;p}B!ol{9D3kTB-Bdnr9Je5gg8`{5SLy+;!stUSiU#wI#QKOMt zzBg}X-uzhmj@V7RsgDN5&$87Hl-p^w>vQan!4H5C3G*WX&zzeek;kY#6n9%5!B^-t z#P-rY`hYYIqwiBXPE#~ZbKvt-2exR9zND|{Yw)Xdoo>=?u)B1ReuV#pex={(0sTRL z(i7;v=qWvikK=zRrdNe0m}kYP7&k1AC*Y63J{JYxj3|l)u_$WbP05sN3bu}YyUls8$=mXd{7Kq{DcV7Al3j4lIaSXo zMov{Z#ae1uxmiT@JYdW&983-SCNK`&6WuX0{~ta^J9!u^r-CvbEGF{L8g&-@W7tPY zCxY59gXdGj+AJ`ErFmsHwL!b!g9^Z77&wd>(qWY0ITS~HW*KH-4}4~3E61rHw8AiO z1Yp+TUS)FJ)H--BIL494kCYo}w~UAf;kl8QhVT@ZjWr_`MClOgW$pb3>_N95Gh^T( zl$|9UPBz))24V+bJ`)cxnFmpZ9fm?3lSjELGzl4lLyXEbm^R4p3CyT~RdQzeQIGPY z3Z`K`;%29Oc-j91AK?2v#l@JMk?y$~!DVme@Jc4kix|SU;&-9CSQZLQN;U*F*CnBwj7 za{yxNgD$3;fZ~fTD08jm2`Fs>2{#w1k{dQD%G|s*gS6sIZSr;UeE7eH)5CwV$nQ73 z2*^2w$n})=gLIe~I(eGxDf6|!m!Xda%on1M-spLIaut;|U`<$!O0$Yer#zUZ(rHC6 E0fBIlL;wH) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-24 b/usr/share/terminfo/w/wy520-24 new file mode 100644 index 0000000000000000000000000000000000000000..9bfbec7c3bf2f2f402d455d816db0dad483a9a8c GIT binary patch literal 1688 zcmb7FO>7%g5T3WMf>O~&;!?^2GBhg@q>A15-g+I@vPnT{REXkIMAMj-xV7UXwo}J; z;<#~o=mjp7fCEBs=m8K&98iVCg-b77koXY?Ks|tjDkKhE;8azr`R1)jB$P{5o^QUH zH}l@SnYI0h@aZt^r!n!V?Dj(CA5*5^?X@dIdImHFp6V`j7E{Wk%B4;zRbN`Ew26fM zuu6zkf(qF0VHymd0=)a^KKLG|qx1}E%3|#V&C(p5rwVwL+Q2St(i`*^-9z4c^gdmu zkKnyQU(#35H|cBohQ6m?=obA3`!@Yae?boh_Xhva9r6ToC7u;|%Lao9=t;;)F#~)> z%!>2kf>;1w7EQ4(`r@j16V^4z+u~jE0W?3?hx$Y4PsC^9^P!!rCisQ8DZUdwW97E^ zTik`-=Oil!orj#m;Ey`S$wR;DoOQ}h)oC~#=Udo6ID9{Tesq3vZaKd?zuU||fJY?z zACpI|9<#`vo#z;QflTkRvJDH)@WAwIe2vyFy$6cj%JN@ya;>S80O6XKYfZ0 za2h19!a819Y-AR#wFv$^WFlFFQ=2+?VKl4l0n<1-M~C1F8-RczbqcxZD9&)UVvk{# zVHRzJVP-EeOCz8ShSbXddjhX28MyilK?PN08y5mf`tlZPV-V^12PuJ8I^A_ZIR&x zh_yntl0FqC11d}^h=v&W?H##cx&I7q+SA(>7h_|dv%MS|T=q^3pJZeB5KDL>{u012 zgbaa3J0P#2Djf$;Hr?VAP55=l9nw6ve25Se!8Y8;AXcVDZU!sEm!nK>LWlG)-I zFVC-8CpKQpRC57+*im8|&@iDPs7h!WG)QO!n(^WWCy#rbLtbUXi^-j$2hi&-qz74p ztU}r}KVK>>EL5w@%e7j)-e|0>T)Nb3uCBIP?RKZLwzj_B?QU%JdY3P6Zua|ITUWUI zb9_6VJ`gt@^Rd-5ES_so*(utID{UPKw{ug;Ky8S!gVr`lD~{AQUMFu0f1S`MeC^8o zqNY~>d9N7zfzl>SN15?+7s;LD{{{T^@2AvIKe(;knGF=yfviJXR4XZ}T?inWY8Ms# E3y~|5LI3~& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-36 b/usr/share/terminfo/w/wy520-36 new file mode 100644 index 0000000000000000000000000000000000000000..ed9343203a286aa6cdbbac6ee19fea37c61e42a6 GIT binary patch literal 1694 zcmb7FO=w(I6h8OeqP5rt+!Xqxjy4ZWLHgdk?`Ps0W^9x+R70k=(3q)hrk%;(%%qc< zNhXs_y3mE)2#O#@7hNd0C@3Phanp^PF4~2lMFd@B(L&v{D-k;V&VADaN;Y}qeCIpo zo^$WH=iDKOgi8l$FAa(BWxEq7_YEC(+nr{)PtSs;z*Ft{)?7-5sZz03OjYL>%S|F- z{#Yf%C_#DbH%Ptymxp%`JqO=mIzq=tQwD1%Xp*MrJe9#`sR?Y;I(X zeGBi8^fUbeeUpBrTXcu+(x3D<>`l5)|3deAk9&{kKXL?fCEgS{!+O2r(4&x(Vgh(Z zOp5d3qL=|+5OuL4y5b{o71pPa&&8MGYiRzi_w_f>--#RIhrXSxCis)MDQ=5Du(By0 zivOYaSjozM>m}o?fHTYNwM?pl9Y|5%&WJ(KwW_=;rz z5jkY^F@x;c{xp1%%bJ*N~qb>);AgBj&!;nlN%F}rYbFykA?yRf&6e$Mo>>0`8y z(;zt&RPkW3kw0gwIqrwh=>S|o4d5}PP9Zmp;xuO~_V~=w z%%UyunVCyW(g0|UA@x4MoWQHf#N>jr%ws=RZmiuZHuqq7ZtR6HJjJErv{(gk7~!O> z{rZSK7%QMm>~gADIL zj1{nz^eI2;QGQfGG{lGB+>slWeQI#ij&508jEQ;6^s;Yo+1oLEl8NC%4B?5m^8lYA zVDL2B0Xc`NbnLxWw+pY<;nx9oNb}rs0f&S~yNoR)b346QhYhmRSnofP64?>$OUg+m zjKiE9KekrvJ26wuWprUjiS2_12@OD1LPJn5p%G}>iEErZ?6eLzw& zWErvqY0~s`u{bj`JG-z@sZ^`A+T!Bn%k}!wQlrsqwpz=}D=Y2x>T0L6wzj_B?QU#b z;TcTv9r+Caao-^qTaClw=@yikrJ1|Z#*uI{J(Y~rgeWs^ZIZO&NNwVE@@Du)g+}4W zSK{XyE&_5+A$C2b{UD6e!yjHEdy4-%;6K1#O7-=NTiTvjMPV(-3Zy}mqN2)052C4Z GNzoG>Z!PEIT@KiiJ+WsZ|=Kwo_;n zorAe)r&{WrTq(4QM8f=7CB!I^!y02W7>*pAx6$qJJwOl96QpSpu^Bo}3-ltDz{}JI zc4?C?&>M6Eb#K!<^e(**@27N`u0VfDU(wfeoxY)O>3i5e(y#P8^k8sfutk57E0`Yiv?^8F+OW zFl*ALZfsJU1&(6r z4DE$0tOI-o=NM|ERGj8&#h!p!nptWG0%qnA$7vL_&fq);Fe`9WnVf7m&pZxd<;B{o zVR9da@5O!u!&kgjtQM;C*lv&@)04T+eT^yJ!dhkVK%QVt&7qBZG`wuql{JtjqI^+w}+{SFkDbfBu zV+X~2yMC;r7TIaUhcBi`c8W%l?IaDyVs4h-UMCLRn5pJ%^kJtGI{*z68iJ~XMxcH| zQ=n-#u5D4aS~E}uSKt=4MwdZV$j(rm7- zwp#6Wr?a-UzTWL_Z1j3(&TMY>`)ALd<3=p-8Tm;7ao%wcj5|7a6eMZ6X{YJ3G96b5 zH!W1Ao64jp({XKzv}w0C`8s(a{Gs8t@Ie;&2}cb;*3HMBuXGSbsr1B&C9)Uz4+H-S gd&n8;yLPlaw}FjyAnTA8RSSx$Cw+*f>XM>=0P2UH%K!iX literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-36w b/usr/share/terminfo/w/wy520-36w new file mode 100644 index 0000000000000000000000000000000000000000..6581a45cbc0cbd6ea7f19c3c6c37cf5d4f5e2868 GIT binary patch literal 1714 zcmb7FO=w(I6h8O8qHSp#a8vL}d9CxnRK)l0eecbrFU+*D#8@qp`a?rTL#CNzlFUyg z^OMOm(+W~i1VI;y)I}ExE<~&dZrpU^#)YoL(uIN)!GbPyB`(JA+&f93WRqdecfND( zIrp4*?tQ#R#RMIt{WL0W+TC6x{ijsi?RR^v#ch5O+=bzGSK7;NprpI7R_)a4Ew@-N zxhi%`#dguHuGAM>L_+^r8KRY-Yp9T-!SHtt-hK2Ce8=cj{Sjs-TuOM3bXVu9VVyXt$2;VD4pfRT(hl6wal_ zL+yAT_Kq>knSU^SiVkubBqyUPE-W?*m$kJF{tV=dS%g!CRq*N5xY7mAqjZ*zz!lX1 z0fT!1xp6wlaJFPm$SlJwy#paL{SY%W0$O8mUj*n1yef4}F1pA(2@~lj%CBPc07l>^ zK@201+$yRiGD_k!DrKD~CY(`!1bZU!1+?(W{kdR3L$WMbv%`U(~2lB)emCnZEdLiqJF^1!m&1`qAzj>XOBnA3WeLxbDC zAH$V&3>VRaPsCpVgbWcwpfC=|tLRE4!HI@bINpFir+ECih*#s2ea1HOc#=V);wERx zRG*v-!iJZmL{6Fxnug37qnwxH>()*}FJY>-i7oa9mqPQMf3B;;?h#Nyt-PcRI9aGy}q{AXsoX{o2^#6-RW#> zbi13Iz24=^TU-79l`B{I6lVER`4#|iQ%8MlbsiR z(n(5kq|))q+!}tZFeto!CBCq69gy=1i62N6MsYeb_SynDv;2L)H()=xLw#sRJNZpC V)`o0Anp7!Ds$2>niYg0|{s-%GoC^Q| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-36wpc b/usr/share/terminfo/w/wy520-36wpc new file mode 100644 index 0000000000000000000000000000000000000000..fffaa926d66a78ee6bcc092ac2da2b37721746dd GIT binary patch literal 1752 zcmb7FPiP!f82{dkXbsvNJP3}+RClDQh%@ia%x*eiw{2>hYD3Z@BqT<%-Q6bJ{hR%h z&33nuLLdhz2tD`*Q4f01L%|+;P!JWpcpr@prtCic8>KKvGKUOi(O3)U1CTK8xw%~n)9)<5YdVyXc zMH7gfqbm#oL;8e11OJL{&^OTE(NFX<-K1aWSNa|HExJv2 zbnakqm+p}xxSbS-MMks1;3)JY^#TKQ}9ijXCH{{WIRmI z@2O(R%$Y^AX12|qdD+}Hub5Z&RR6GDJm~*mkL!MHeqmlSzc;PL1$vC0Bx}(rI(5&< zM^0Tj`9@+wx@maT3Si1wd@V8IYsc%bca34q^8d@HXoSlk85xvuVX=_Es;yPYFlE$08 z4aYHvzX|Xdq(<+*TTJ2dz$?&okPox@Eu;Q_ftfX@&xcnYTjc@w)*k@tMvT0BsP zKcjdWnSi6=p*~{^b$qa1q{0SQ%0!>66w-!wCQnw9M&b>{BS$+Y!?&*$`A)=C@kaWv zld}&u literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-48 b/usr/share/terminfo/w/wy520-48 new file mode 100644 index 0000000000000000000000000000000000000000..dc5c947cb92c6d8669db4a1d7ea9a8e6305cc0cb GIT binary patch literal 1694 zcmb7FO=w(I6h8OeqP4UQxGDIgPTM>%1?hYDzBlj1H_WtA(ohYV+CpQdwwZP&e>0O# zW+s_TGU-AWb|WZ)6kT+o;G&?2;KofiZo1HgphW~-WMQFh+LZ{Me&@bv0wtR~a=!DO zbI-Z=+;i@bmxN1)XfF+kZ)Cd@DEBo#>b5)0a-UuRO@XJ{^R2m*AEipgRxwqbUo1C? zg!yBY5TgX;v7bx5{+EY$4?PFpVLC=9NK*!Dr)iR==n|E|XQ>Hn(>i@fAJb#x-K5Xy z7JUWpck~1O2z`fsqPz49-J?I~FW8%OpZ~h~5 z@>6+J-j;S@ik_zfWEY%yr|vnW*r_Y0)ELYtHw&+x1&rB+GlLo5INpN2W%P5VpG_a5 zeVhi#si2Ani;es_W6goT0XdZ{!m0f#cz!UW%>m;$I!g!P3Tgn4A$1nH=`fBsTd~Jy z7BLIAz-MMIF-ZfUHHOqX0CNJbDif0nE-;V%Sh=xwtJvIw;kmJwhT$nL6{p22h|?iX z%G$4v*hB6B_C(^_C^buHNH)3Ib@)agJ`)cxkq1$RorQ%8CeHCvXaXXG!;H!`m^R4p zCd60)TS=etqaNi)6+}aP_{|-;VcDk!H|_YA#l@JIlctw_gUjBI;gd`ZA7Thk#GMED z3;~0u(GJK(RHb9@Xx%Oxsl%@W?vUoWR4UbKt+u#$?OMIQwA5%co2}OJ^2$oPy}H`ztgWrDce@)K z*Len0d`Er*K-_o8#a836c)A5;W@+ZGv~eWdOiv|aH6hB3Tbm@UI8vK`t7pYZKc9+nTKprev*To84}<`;*P? zCYx=xEecXZ1jUDn6!bw6Ln)5D~h5=guaIr4JeQeCIoV zbMHOp4tt+CNcYkn8W-1Ow-+k!u^?(L^}D@xX~&p{;lOgbmCmvgL{72LDLA!Cqttc^ zjiPffH|ok$H&FLBy+iNP`|y5Bm+1=hm-H2VP1org`j)JY(VS~W|=xNA|I3kXTd2vE4iHcYeYhqKpBrb^8#arSc;+G)ri4Vj_(ENNd)Sp3L z7N3i&LpzBkcuiav--(|Q*%HDUu?B;CApG2K?Xw;Rf7F_`o`tSj4XbDMt(UD=tsh|j zWbyg<`NjIp`or3?{xp?;10R>{S28j>V~{=D&y<{j@373>6xq(Wm41F#6?s{ZWm%VP z*^}qxEAln@=C0~*wTqkm7kByIOY%ecvHU{X`31Uz?j}3$R@|oV7Gt-m++u5NQh6D8 zbr~>g=bssy42>XoRv-tn=SsLLoNLGb4Tv)s)ST@!&_%!4|5`O2w03ClDgMpjl}rvVVh9h&s{jIqkipmJ4&(*wO2__#O*_A@3BL}xVVcL74UrN= z`}>R?0CyM7jap_j>X(8-@Q&8xG_`B+vvkiCw2fDCNu<92~C0e z2~C4WZd~W$3AeM?EseS{*|T&f*>hb;53&YXg|umLu~0a5s$4#Ox>~K(>h(rrWu@6% zU2V16?M`QHZGFAl-Pq{$&YaoY?Dx-}J;#Gs;4|`-0OGvk9vDw_?kGqyax+ddWo0I= z5^hGQ%ruorQD)-W6lpVVZSr+;L-<2Ox9~w0`3k2RfUKL3Jzwb{Or@iV6H8<-@E->L h750!b)OYP@du{_8>p<2aEvgn2RZsd5P1Pku{{Vp|p6LJp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-48w b/usr/share/terminfo/w/wy520-48w new file mode 100644 index 0000000000000000000000000000000000000000..41cf56932a069fc284753defc975bdfde621c6d7 GIT binary patch literal 1710 zcmb7FO=w(I6h8OeqHSp#a8vM!yw*HuD$@7veQ)NaFU+*H#8@qpYNa7#L#CNzlFUyg z^OMOm(+W~)5d>W*QWsq)xDZhh+;r1TH!gG~mM#>e2o-c;SK?y)&V7>u{HC7PmXnxT2{5;cJx z+Mw(7zRCNTZqhCK4E!7Vj&4KWp}X`w{YdxdKK%;&0X?KYO>Dpai2fm0@Nr5U7g@vl z{gcq+kTW6&JTIoijJPBgz?Vf`tcjj@Tik&49^?b@k@y6ff42tuQ|Qmd7vigdovbGK zt+*q85I$Kj^o&)oD%OhCwtCi2u@8!EGyDJa3EInPkgN(TxUkqLSTxom_=}K}$s(LOsDMunk7;wjSsb0A18{{^fY0EZ zLvAV^N1UzL6EKUIrMDnpW*%aShCr(f&T9a30Mre>TKw5FPC?wgB8oG%{*%rW)>% z9U*LRNs45rX>U?cGGiR)X8F3c;=qlWYA&P)JDu18XqeCtR3$V8>L)Y}8o6Oc-ZPJES_&(nQ5BID{UMJH}g};U`>cJ1J@== zD~{AAUMIJPUn?{UuV0ZbY^nyxy7}1il@7vGIvTw=NA@&-9`Fs=P0m2?+tPM!9fh?Z TYmf$&3yR8@e2AvJ(e6mLFRAY%6P(i`7EY z%2xB%t8-IUsn9)F%Qo`XLDy4Ou2ybWs^dgL|5(LDD?wZ6>Cj;KY{B~oJqq7*^a8y? z9!(;4k``!@-l78d3N?Wp>d`j6tLxsU59t&74E!s)LEk`sM?cZebd!FeU+H()x9B$A z(Yb@cUAjlM;C4zJ7HQ1}gQL(>kdxxHI3wo8lE{gosEM}diOXVJToG5rdx(Do`BZ!^ zzJ%uI+E8DIz9GIA-wy3K8siV*rua?#fyiAUj1glncnZSLv&I4AMevu5DdQA$#i$!S zW7F6&-Z5^${&Sc&7~D4Q7=Iam8~3#5AD|<71z#T4`iMsM>^#TiDfnjO*#{y!84uG7 zd#YHHIa!o7*_J(dS#HZK^6H-IAGV7J{U7Xc-H+uL@|yf!nwdpiDRXHc6+Mj=-#_V~;~X31Ufndz5Upi$5YgLM|5J8)F# zoOCeHJn|#uM4nT|;w}u=iQEJXSMgTSEmA?0NTO59Jb26;cSf-$3QuFJDZ+uI@Mdqr zaSY;b0$c{A(fu!1I_PPP69dhY8bgf}jLKo0X2#?=B*8?d$Hz8z!lk(r3gSV01obQP z`K5LYKEp%17H?1I9MMNRH25v<=Wr*T!%Z~d0Xap0&k!)U9!>}HCU)gT?(=msbD$1? z+T&@Y14RAsP@k~{;Dg1vh7GP%V|_A1qz&&(p3EeT#2bo7j&^pMZ(l3&?TD$z8|lMN z#Y7xs}g)KBbcb9Mt8YeCi_4Ju_7mCm^kk4ia3{{p_9q_F@1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-epc b/usr/share/terminfo/w/wy520-epc new file mode 100644 index 0000000000000000000000000000000000000000..8dc1ae36ea98c86f57ac9f0461debf908d33d5a6 GIT binary patch literal 1738 zcmb7FU1(!P6h3oD*IL{bd{FU%M$Lt-uz2sxy}2p3B)aR?>RJ*N*_yaZf0AvxN!m0? zn`YBSgoOn~SP(=(R1{%ZL=ZtiWI=^}P!L}fL=YboSziQw^2PX_xoH%aedv($o$vh2 zoS8Wj?w!J;+i8R*#P_n@36y)dTwmI0cberregZrJBhg-Mtt5`+k0vVR&f@w)qeLXk zj|4Px9)d(3>)k>9!N|jT108_xF1n8%AWc(+H|Q;T zmo9;QOrO$c&{yay`i8!xAL%Fh1@>?BJN*gW@Bc-8x>0z7c}7f& z6iZ@Ntcy+270-+F;wAC2cul-1-a-5#y~>o%+3zZ=5ikagHn;GvbX3eYvHZgs7mbo6MY()UWG~}-y0)(w4Y@6Q@|=7@UXZWI*X7&t;=blzZx`44 z-{0rDAIi(}3;CV2iv_xg4w7ATR-L-%lp?3DoKhn>rQ8g>dKoZd7avPb`NnY^_Rtv2 zng9Rv85-qjkgN)-c(7Q=UoqAS_)*A1aS%@JSHbhiDQybOqBK`_lRX-P4r&08A@KxO zNQF_F*HG;7nWdS9L-3iIqs-AbXpJH9B*4_+s4_Wjau+-soM2DnN6L+~TZPAi;kl8Q zg5fFNHflyHh*BZyW$Z&o>@>WC zH&Y@zq|ta2!>0Wlg;lbLZ6|k!Tfno;wILnICS(KBr1|-Uh0~{(m(QH3RI1flZEbCRy%}YpdPf-tKhHp6zybc6N7r+>-(ymtO}EN1t%PxVgDmkhuG%v!>z7G+)KsbW@qe zDwCp2^R=0zP3N`A*YRWF{~xXp|I-q`>C_q^>l7o`Q`!$wVS4i964?dw1;N*1gc9bf dF+#TtwVm6>&RUQyNP{X1iYkj9L{nu+(LWSanl%6b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-epc-24 b/usr/share/terminfo/w/wy520-epc-24 new file mode 100644 index 0000000000000000000000000000000000000000..f9f2a933909117fd53ea7a6e25d494b240a0201d GIT binary patch literal 1732 zcmb7FO^91n6h8M|(K={n;lkn*dDVH+QH$^0`(Bdqg~aLDHq_Qh1(`CjGU+7Er1_al zl9^08X^V(-A%Y^Ph@gUY;X=?w!5>5fH*UHurBVbHy68fR3pb75xi2${rHi@beCIoV z_wU?C9uhfvkap0d_)hlvq4M^YTZ?;DFzEF=Wj14L4weJc=~cT+jtZPov0HTN)n>Wl z6q_Yye}2ZPmHQ`_i|rDTFh5o?F-lM#>+GW8XyoC&i|&T+5qgZCCQWI?4$?82r&p*9 zUZD=KM;mmW-lAKmd!Ig_kLXi)zod)wE%Xoc6a7q==rUcQYp{Q#>vRKpIJ`ByNq>_o zm@Dy&$Qm{rPD9T?4vNF#sF)MS#iFQ+Ww9zY#H-@GcvHM1-b4ID$j9O{@i{b)FGl(+ z=!@bT@%_k-qcQ#{E{R{nABfx(!Wy%N!v`Qd9=3K{kApvH%~&r$m#rnMW35>O>ow~t z>}wXEkH@dp@78tehV`eZ{0q28vi~Wmj7}M3&*n(WY54ZbL$^gXGw!7G+p2g;7GzOY zWJ7jjU!Ie%%Qv=Ff2UpC?tgom^S&!Tkr(9G(k{%?J#;_W1-I(9e76+2E#;Ql6KUmT z;MEmC&Mq99NC(F8JnSuFRI~8^@*ItE86>O1Ivy-03YLtu1U>_qj)QROpbnm&NNcme z5iFgdop6N>fY0C@MQtJ(rMOzLCt#LhmfV7XnK{HU8V7AKI4=Us3LI4?CmYT&kAg^f zk@o7C+=t`#4B@1OAQ}=NXpYSHm)SJ<4xiYv zczY)2S#z}`gHQ2q4zFZ#co9RmL0%OQFoX=g#_d2}#;$baKiaYjyIb(2_CF*VcNy_4R)L^y!U_!Qjl9v)qDtJ{>;>AWk~zfpITqkATF@HjOm>Ri@V} z=B9bd^ii1Q*BYvKPNt%`~Uy| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-epc-vb b/usr/share/terminfo/w/wy520-epc-vb new file mode 100644 index 0000000000000000000000000000000000000000..a3cc019a7eb056ed4515dc5bb9ebcc829874bbbc GIT binary patch literal 1780 zcmb7FU5Fc16h3#Z)V0_ySn#I zHraH4q$r9YR0_g^P!$xRAP9ne*#{L=P!K6-p$|m_UkcI(Ulb|pckX1PSo*L-&Ue0Z z?zwZ$J?DnmEsoJ6G(;ofciHU)$~jPMOsVudyH6gYc6w4jJR%$Bn#EhrVFEW?VEb z8EeLS#-FhNHtzHzACeEt-ExoICwbo!z!x+-BlB99HS*f#QZtd{aAfVGoS{p6UN@pP=o$4Kk*JDlRNutA!gvBT zq|GM}n$;(DtZ^!8NeQ z_(rxv-wv62oO~H}BC>tZAff@NifA0vjc5WiX@@o5JZiUh+QnfzBy)luKw=eJMcJ{H zK?%6ZlU+y;vH+Qfv}k%dmpgm5R62LAQmIyJwR(MSuF;sEZ#G-4c6(u=)9H2>7kj<) z=a-h2mseI+c_veQT)rJZ9DT$A0^)!_ptkNM$58u<9JUw|& z$9vIb;r}FBi2rVZ?|Hlq7_+mX<0{V&;)&$wnLL?O`m2I3$PiijOEN?c4zxMBh|1cK S4x~wyoTAE%3-PFuSM(2u^`{2_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-epc-w b/usr/share/terminfo/w/wy520-epc-w new file mode 100644 index 0000000000000000000000000000000000000000..665d6d6b67ef7d3e80d4399678028d2f7dcdfbbb GIT binary patch literal 1760 zcmb7FU1%It6h3!u)U>n>K8WH#S#<}E7@WB?v$J8=toF~Pwn;2PVz!lRvYVgoZ+17? zY?6&ai=qexK@>#AA`}rp1O<_T3Vl!zUlc?T9~7xCfSxm#rDP8y_P@q=u&ePxdnYV#wltya5HxNc3siouL6S7MHCl^sR3-!CcQux=r!;+>1}$K-UIuDKBLc}uh7@@EqzBn(a-cN?BD4R`U|?-{hO}Q zfUpJgN5oNaT(fTX1oSxMl$a8y#hh3Y710zM;yLlWcv-w6UKekPi-=!>ye~c!A4Bu_ zw5Kmae<7}juX=VAjqn@sqqr*mMC6*-XWU_Qy9XgW?l&GX9PorOZafWLGOEUg(J{^$ zFB!kU{>`}B%lyX>@)o&A?w368cHj}sGICt&r!;bGXH3g8@a5#f4UwIUo9WW7W~|7T z?8tNSMR`HKD&LUr$VK4s>wY9J%P-~k(#+1#ZM2`vthH>_94jAMHD%@N z@szU1;B^-P88dr4p7ONg3D|w3H)r<$(=)V}r$N%nFX6&sA#X`rOW=ngk3~T^U9SW_ z8BYaV@FXg;w&UA$0NO7D9ERAFSRfIENnS#+$77ac7WBbmrk`Y*hCs^zmPx*DTIU-Lj?QsXG2vKceXm>hv5nCSHA1SgLoDSqPcIAf7y)`p? zPYr(8=L2)OF=-zuUI5$UbFGt^gtvEP@?-|IH|ll2})Q# zu&}sz_H40ODwWHXO0`<6t*q4RjYhM%y1KU3YOSxg+Z!93n_F9*&NlaCh98%22N0Ke z*aqX~PMidZy01H{8?JQoRm62Sm2RxkDM~lr)stM^c~|GV(PiP+4@ZdCG|zWBQ30f_ zY-l^m_54JT96d8n=8XP=4B*9!>2Jm$?dxlEVjUZ6Le?O4D&`aw=NyPj#d$^l0_q5% An*aa+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-epc-wvb b/usr/share/terminfo/w/wy520-epc-wvb new file mode 100644 index 0000000000000000000000000000000000000000..24bc463fc7ec9beb0bfe3b9ec65dd61dcfe64aaa GIT binary patch literal 1792 zcmb7FU1%It6h3!u)mUmn3u1Lprn&=044t_%v%6uIP3@ndT9S&;nADPNc9Y%iPd59T z&7Vap3PPnI1ca(k5ekAJv@dy3K?Mbof(kwq5qv2~AAC`yuzu&xCW@sGndE%uJ3n{M zx%b>*9}zFoL)1qD;&<8Z1j-rARc8j*?#zKZ>8ljh-DvBm7m|61T-YMz_1yu#5p{1>q+&4jMhrp@TBOWw1`-1@T0focb ze$X<5^#VYb;i%F%o|8A9j-_13IgmyZ4maV%R)NF8Db5Q0P&pw2@VGEsCv@X5T*W&< zAE64ucmh47%_k3;15Q7xVd3+!l$R#Goj!U6jzbWC4d5~;jqZQB(m_vSlo)89(3sRX z#Hbv`5oSz|K;levdUUE|$6OjarXU`~M^GQe=J9HS&-khIW{BI8|n)9A_z-N&oum@i}_^zD$T$HiA*CnDPi4I&zVs))ux-H0YYlXh6<#Y1*ux1H;^Lo!F` zeiT-*HMAXD-D&|hd9)4bK$?&RNS&sprl)6T=jP6yEf!0qa=B8OpRZOI7HYM6z0qhk zTdj6`ak0}`T3TLSSy^3OFdpvc36N;|da`=pN)KN}Tu)Q!!781i z^zc2s$kUVebiNl|7XBo0g!pu`e9z+*z_2|TIi)gF?X+dgKoK{rKxDbzuGm8EJ9X6|6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-vb b/usr/share/terminfo/w/wy520-vb new file mode 100644 index 0000000000000000000000000000000000000000..a537f028a0f9d0f56bef2300e431bb404469a747 GIT binary patch literal 1736 zcmb7FO^91n6h8OeV#jJbU>8*%NYp%V#4_*Q_g-Fx7ZR;nhiaX)7FrT*XVS@JGD&7K zNhUv?nII~PUCpYvC?W-+2nr(TLQ$lki!NFa1vk=77nRa3T!^dqo%>=2WHxij`ObIF zJ@=k-&%NP2E+**^jnRboU3PlDvJbZl8=YRWIHadRW8kq)xwRN;mz(86wHPZDt5qVQ zelaXriA&>tG6L|FamqLc-7waSw~cp=4~;G34(z+eyp zX0OXrTIV$K-1ayNUqP03nAwimiPd(sq9MDoFW-|F<(9l8FUu?P>aN!BRKd=^FLt@_ zSMqy#P5vg$e2(_gelqh`*{VC%d}!5`HQ$J*l%0mxEdi#@{IPh-(~ehRkBs4(+5az} zrhU8&l2LvY4;CAFi`rTQe-ZLRGzq8cRl&3Il&cdQM{3S&$NO{u+OGi|hS&-0kO;yg z@1fY^F-tNFM&L2iM>#{|pf!frNr2A7vr5Of_M-V*JmuK-WExf2T!kIq1ZMox92I(@ zvO`S36dwh3gvt*S0cuE_&m1u)>~Unn!q;$=G@)VX=;VF)jzByn4qzq= zqBJ`J3$@L>!Bc?_NNSv7RJO*1MuwLl+Va_o`j|cHQ1+;TxDXG1eR^(a`agr4`s~Q! zVsy;&!(MBH%ifOROxn#!G~pYw%K(qTXK-A!1M()Sazp2-x|x5n4!`Sjhg|Mx#z%-3 z!1lP24KkDP4j;}unE~yKiWuFymEkAY3Oy@i>T>c8*g<4_pngPsP!-Vxs1wluG--u3 zUOZ*B4p_x;DVDmpRXgw$K~e$#L*{gY;_zKUvysSYt>Ic zx!MtNeUU1 m`U`@u#Tdo(S7VGG9%*x?i^^J%Hl#t7IYpI%197QxUeUk0Y?{sh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy520-w b/usr/share/terminfo/w/wy520-w new file mode 100644 index 0000000000000000000000000000000000000000..71f85e29341facd0e3793fd5537ef622c1aabb97 GIT binary patch literal 1714 zcmb7FO=uit7=FK*P-D^NXmL>1x`Rfj&V1j@&W2gDT5XN7AxT9Vc1=y(P1EiEW`DBT zZW1UIaw;BrP{AJr5$d4_4?R>61-LJuNBJ3j9>+YLxAndE)m=Xt-s zcfR)>_DS&~Jwc;1E`Bt-JzqLUyPMr!Yb9o(6jIvQP+D6~F3H_UKYcTV!anJbM_}6%#wP8k)4~wD+ zGpqe^jU3s1-b8H1JhjKj?wq~Y!oF54ngz3D*3FLDH!qqy=4JEBzSi%R!QQct_qp$9 z=2i2W`GaZYbMy#3PFCJ7*$vk&hIT{R#bz=iok>L1DqzaWPbV{;4!i|D6oWNO|6e{u z2YDGREBy)@78`lzv^od=8tm105JBZtz~_>gfDfF($?TovHXVZZs{ofFF^>&WL73(( zBu6}EX=cF?JZAb$7HAB#%8)n((8uto)N`EV7I@Y_&5_Uxr4uTrf`|*@I-#3_a3yDr zGehZzsQ~9qTF)P|#+@AmeQyLjwhiT=rimz<$giCWLBuv3P#Pyp#ygM!U0$-SXIK;{5@GFD+)q>OBox>;T zFdw1`7sn|9JO-b^Rk#k=yU0p~?vaL-f2M)B^7)1oS0d|UiWfk8e34DE(ufXvq)1jk z2jk)nYiwt^+uEULhfEb8z6l+~+5`1t>VwLdra;}82B2v>tn%UsyM4%B8M8yOrsz=| zER)+vJGnJX0c|?lh4o+^*cz-wOH0ekXV0##ozrVS;wYAOV$nooPI{?wW;|{i(f#O2vr7o*(0jWDe##|Rt#ue66q^`Wu ziYKDLlAm12&o zPA#sL*2|R!kB^Vfdb)6LgwfN+b3nU8EVBr9AiwHGm;) z(mS+6?}5KhAJB*N5!e^>6@3H!E#0FZ=qLJ>?$d9u|DeCaiL-)_n-Z7A ztY+Qr9CRL15EWoUgrXzf5O0HD7dzsHxG8Rl+ps={d@4Q{UqbWvx~K0#e<$vV?|XI> zjqpctUpx^1AR>)NjpIhQdji7aq~RC|@W7ZhW}$0F(|Fx@(|Fg|F@A^rr}3aS(~yVd zpd6A%C9iu7_>yMha$4(48acK%F2gr3m-mV6&DoEY4z!{sL)npU$?I}Q-jFxtEqVJu z>-WoGf8Qqu-1jqiN8Xh`OEWh^578rJ=B$EMb*!bpsw!)#9#1Pf1FyRR7&CJ($J3s6 zyaKy#^w!M%fB6^<@-j$P`6V?MDc!9D51mJOCICkJ9U^t3zf;|kadv6Y(q}_aoCR{MP0Pq-m2FJy7Kwd*uZs0ssHFHl^ z;dgz0A(yL@^)bau!uI$f>tv?j?e)zPnMoRq3f`}~mE{g>2A&l#b@}iu*vZKDK>djN zpemvXP$!~E(3BOFdGV;#9J2DmRzT($J&c1@d>d)UJN*>Ux)UL!4OxfOAPt(Eo1b4^ zURk+vrC2PL%H>LBZLM0Z)#~*|quE?vZ?(d3W24=^dUbPiYpc`Q=5oyNb-5jYXr>Vx zTaClwLg$n&t8M|MJ3>WV7g9wP)>D+OysH(}@ZoYvlsl xQLg7FlBvI)t(clJz8Q*LF2+ zGqbL>Q&1e}g$TlgiJ%ulK@>!H;e~=1UU=b!|AYU4citSo?@3dkn+!bgd49d$_c`y6 z!+ApbaU4B(O#ZN1nzI~|bJL{hHqxF;Zi}mY6wfnpO|NJ-WcS|eiLLbzD zMnW0aak9`?pqD!FS-aud;lZ#Su|2yH>xBHSbPHN___1l#MK9AHe!e=xi7tCw3}uGt z&at&uf|g^@7T-~BK-cJ8=qb7cX_6FGMd*;8KcHnNh+CAbbI430)l{&eXjZFfvtDnU zvH~@=5ak-ybu+gX)hVsJT6<2bV^nf!NBVVz@1D?>%MQb4f2B|+kwqvI&zjZGaIt1P zX4jChK1hY+$v7#HA}JAWM#|)TAD)K3%tmJZBy@uN??K<;pry{nf-}qQo!Q1s=&bvI z;xziXfs@dkXLKjgSzf)|iCSf?4}~%@b1Q6a4s_*CN>M6UfL-wdi(@eb* zbFXNRYS|7uVN;ITO?xZ#roG)(aTRgKjS(6SB=!apCXMZ-)C~uc@L0GrH)$kpTjD`o zbaS2NjuDBTKI6Q4IW~WNVQta9vbc0Y}j6o%hBEedJkQmKU&4p2iqa)Rr6W^Bhcah*7}>n5QjR7g>SgxrjsPsh!N zgBxN}Dp3IvVnHPYQlu`rs1S=Ts?r4u_%-|ib}Tx)cN}Mt7FFVoo^#JR_q}KC$7tSA zQJh8}UR8e>t?eNz>LlB(?af-po1qsRvVv(V>fWettu}&AGFo41)Hb0M{O0%F0BRbZ z_d4mcD4u%y0gm7$W_xf9C-Is;eimuGkBi7NDxi#UT%k9G8GOoq4)e6jq=5}=VH<6H ziLV%cgYWPY`#s#leLSG|7*Fsg{-Wo3f8!r`zUO&L9aTNb^LkZ3?JMe}I;}*VRp(S# zMN~}1RZ3-4R*i5puZpV7Ubpf6z7subC;xN&s#;KObxYl*;*R=3?Hwq8Q4iH`Dr0zF z))=FGwv~*hUejn9ZR56aXJ7HH@%G(SrcQf2B8N~mp3|$J;bQf6^sb>s15o26PsT`r6iJD2GpbB32kmlrVN@j88C-+m|^Ia7`sJtSjuMD3hT6EHqD*%7iPPo;ws|w*M?{~kT@7f=+HR` zsZ08j@MyR@H>D+ZN8&3+u)b(7EiPYM8L7{%jy6i`#b#kE z@man#b~C=c`T53ByTgw+f1h*)Bfe}Kuz$xC&>ro3i*&s z@%}4w#O?eNPaue|=^o{E^y35%^$gx*E`$M`hlK?Hd|7|I7svTOJcGCJF2aZ)hB#6f z#s~^f6_#Ei%VdSr$tr1(8{|5fBQB|u8kr{xWHEr1OSZ<+#`hfU#kEOjlhkI2M(1@} NXLVBNQY1|>_!sq5NIw7o literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy60-25-w b/usr/share/terminfo/w/wy60-25-w new file mode 100644 index 0000000000000000000000000000000000000000..f5f8461ca3da7833f4540ea67b269aeb640e6d87 GIT binary patch literal 1575 zcmbW1&2Jk;7{;I37L_)2snkLXFVH}}a)O(BcfI~1CXVCSZc`woLPQM`I9WT*hm$&q z!zSbdgb+x*z@bv5q6!WiP*p?^Nc6ygzl48)8yAFxx;(Rvb4ZISv8&%Z@B7X(Gw;lf z_66nO6ngNi`pxh+($;{J8t}LLjnziipP=8HwtDTPGvHlst}QP0Qq!DUYOF#jgiqLZ z11NlsAb6g1o+&&G^a~uoQ_LR15uCttVgDIeaF9Zd(I5&aqD-%falFTN5+Be`lNroo z5zA;}9b1e)A5kKJpey0}%f8bC26?#GNH~v9DU#WwNYpWjhj5?uC zDN$$CSrt=pl~A^FRffGel~)C}`YGw=HW3@-F0R*Pk-y%$9A|ub3^zte1G7WD`=e z@HDNBqYQg^sbzu#(j0pwnoqH*a7wQXsX7p!b5~oCWi~dXpN&h}BumvOq)#p!kg65> zJ|!#c(t}7X8&;ASl3GsJ>5WiUqNX0DTw=1K$JP@vE)84iuSso~N|tu)q%^tqnD{nl zNa=l*qj`4-VS%iEg2n3X=-omMN1!f}A{ikiGD^yXn^9GAA%d47?{Ff$`%929?!O0- zBhh@4(@#43q+*4b88m18lce8D z)3C$c>u`1G?1j{&LP=~m)*YMC61yYuAT|!OPL@dhsQ_gZwNJL#dCzBc9JngTQ!Ll8nK!#1nbH+i8gI22_5?(K`4lV zB6Oi3BIu$E1rb3P1vi2q2!bGp|GKJ=l)b z_<#jf9Uf168Lt`VbaQGZ)47wKldL8xOLZaN@5r{@3~8raov7D_W&njhOT}b)D;laI z+OQR22&`fZ!!=lk4N z$M_Fv$Adn~o0(!I9*7?>#O^3DOq7T+Q6bI{XNeJ_O7PZ1E_qa^ysLc++Bai8ud{B} zwFkvbVBMT+o3>kMN@%`C(|=EWp}no?9-)*;&Sr%6wP=^nVoXb-z1If(61GC$wi}}# z$3E3QkAFG0*!UWJJO6$1$JEd1U(hM&F}}Y>7%^+asS&G2yc#iU#H|s#M*JEvY~-sL IIcj+JH}s;!-T(jq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy60-42 b/usr/share/terminfo/w/wy60-42 new file mode 100644 index 0000000000000000000000000000000000000000..6b2b9c4dcf267dd50b25b67e4d02ebcda374504c GIT binary patch literal 1593 zcmbW1NpD+K6vzMPl`3sgmkL@aTncXSlQY!yd(T5`#qp5Dagz{|08(hXar^9MauO#_ zafV_9QdJ>92#EzOx+p>w5)~2%sZv{s1wt%XuwcQ5;0v%b|LX}UEvm$me&?R)o_p?~ z_o4*wJbG|K{xqsPQ7aI3u2**|#ilk-%^S76F)QG%m#(d@dBaYiw6s>NKm?7iF}4lJ zEb8@s()(#l~9)0m_7CN9C{xPTSPby7hUyQtxP z+`xylKf!0X#ql=2#y7Z2?LHpj7yL!7UjG}AgVJ2ROS;8F{b_lI@`St~r{uJl(kB72 zB_eSdmXwT0meHI{%5-bqOlxdbc~s8*XZ&qhl@H{G++@Z_@`ZfW$-FB+$bA_$>h-iS zPWk9JVQd>88=o4V8($i?S{b*EJNt6K-DfxJeAn`R|JdmMwSIhJ);;5a@sshh@vHIM z6La@h|Nr*y#vg{7Ko>kv7Sw<*;Y6(@)LT$HZGG4*+os>^HwR4DEIVzL;UwRd+Jnkl zd~hmn;|R?jK5aGcOW0A?d4r?Pah&ztEL6^cs&b)R8ES)r4b{gXOtwgjSz}PW>ihwf zvl@DpDVq%GNhBX*Mav2%RX(npc1IlLj)tHLKBgB)AW@)=)=8(#ne#@`jj=5#-#ojfqH?!D7h+rG*L2?c%W7EjkbPqz!Hr~S? zWRf>9MP4J*2c!Hb(zpW+1_!7(25NxVd#54|`G3t`0gPt@_lILiOz zNu0tN_%VPWLKwslQW%BgS$c^qlNC}Tt7MI=lgs1^aY=y`$yKsI7Cl%Qw>6d)4b9P7 ZNQHTkdv{~IB{I( zh3h6YAdt#}4N?~%A&@|#3pOA`t4c_8(FF?@ELgB$%|F1Bh57E-4pLfFiIINio^$SZ z&wY*V^UA?sS8}AK??`Kf@RJ3U}!JfO~j=Kk3!$f8lRHHD))|QFWYtn+ni&s7}?T zPOG2_sczM$Eaj@WdR4uq66{T?w3=#;n`yRu1B&7 zD!H~(ol@l7Gg7fxVLs)+K)+IL?^fK3Z(Xu)ZEqr^OFrv zvcm_do~Fk+^Z~Ciern%ox zaWPT)e`j{vEt%JqLkj8*h%fWZ;w}!*Q3?#8(Vu`tp>T_A4%ljbK=cT^Ku%x0xPx zEWU|xzKOd31Wxg-?7|Cp8DaDyf+z+tj4`C3vaDPnYh;}i$p$HrYh;Nm6OZIbo~)3o lWHo^GNn2xS<9m+wqT0CH3}_Rh(RrQLS)J6mK@ulJ_y^6NOKt!F literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy60-43 b/usr/share/terminfo/w/wy60-43 new file mode 100644 index 0000000000000000000000000000000000000000..75d94671a07c2cffb5af0562b6dfd455aec5e914 GIT binary patch literal 1573 zcmbW1TW=dh6vzK(OBI^brGgd;L%}UxIl*7JXC6tctCs_z5q`(|FL5~q(zn3)$h!?&6zVZt9?U) zcny6xE`J)eotPDjgs<0js-?CzPt6;%ym2e&u9vT_u6ZNjV0me+RD}pyPiyQLkXbaF z0n&bgc+%7_Z~zDC?LjYI!Ks!#QNuMf@C9~p zllCoqjk_Gb!w>ig52!uD@AwOUQ)@Q=0py^xSMQNt@lbzBUZy-Quggg}C8i8WP;7}x zLWU(RBa&k@FOxF8H*aQdY*%?&&i!ZnV_B6iWmj%6<16`AzVBu}kYDAI3>(d6#u%r3 z`k64EG`Eeq@wu^U+}z8!W!&DE`^`SPUFXi8_wF;J``5bn+^qY?kH*i&FUD`i!{_Gi zum1n-$HpIqnm`XcP!?3cmvmxQ3hE=MosK?iR&3Mn^_v0HH7ia>WjMueOVyzY7G9*Z zahPTwKW#PdOWHBk`GBL%ah&zt98}(cs&S!w1!{wX4K=_aLbgbpSz}QB>f8a9w_19Q zDVq%GNu&^GMav4MR3V|8c1IlLj)tL%KBg3K?dywJ+=3;zHRt#AevjI0B(FXRV8uoGaT48;kbR;_~^Gbos(+W-Yfdwl#V+ z@=3NfvK`*3UfZm@jRyGLDc9lkx(+Y47$Rq(vNnyZP4^(wZ0qjpkV&5Q6nT$KllRFC zufK4axb5HKQFw8K>I=M#!#K(#J%Kmr^PwMSU?GAy|9?7u2uJu&Jb{xq4L<@1A&fx` zA&pT;fu)zoGFc&IvP#y-I=MtH6PFZ8iCiHIWYL3_aa&_)(b62Pg|&!i5!E6_q5aye Nz1pdLgCtH8_!qbsNag?l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy60-43-w b/usr/share/terminfo/w/wy60-43-w new file mode 100644 index 0000000000000000000000000000000000000000..ef1d7e474b94734846ca2f9a5bb6725141b8d433 GIT binary patch literal 1583 zcmbW1&u<%55XZl7OVu{1t4IwHF{K#r$|+9j-Sx(CNJtzzj?*MfOH~myNXW_BX`DE& z^9$D`HAR4m5aNK4;83X&2(GT-btA@ISw8 z8&LQRjYfntzePN0=pQ(Q!}K0O2TtN8zyCG3h+_mvS}9Co3bWMa@E$&3yM$%RRZ_+# zc2L6}Zu;53z*qR5{@b{NA90u3@3@bLcucL)_#6KKsyVx%4y&WoJ5+$OOLeOrbxH+Q zNcE~dWhqxB)Z6MEm1J*9Wzc09@ zrHn=+W6V%K{mmIq8aIra#^=VD#@DTgZ;bB_#NIw&H}l+Sd4G6j@4>l#dT!J`<7eX+ z<2U0El8j_+ zC%UD?xu>OSGsA#hU#3}HXe2(W>z`-2T$5h*6{utY>Kqv-DUv1=Bty6wl_gUFoQAy1 zOnUqbWSTqBi9knd)eDZ^v+!8hjF_I@xUG*N3-&Xd7tzfnya}nlE_JtEU}3VUNp5)G z#nbVt=Nx*2S7~xB=9pPYnA>v3EJ&|8tj!^sUWT?eVGc{y3|nFCcFb*aH*v$OYr^E{l{>E z?_v*L#Ty7Cf+%7b#4yH?hRQK>k*tz6QX=c5Os9K aT8nAnYB8WioI?AxTYI%r`vysZ4B=mHv`qg1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy60-AT b/usr/share/terminfo/w/wy60-AT new file mode 100644 index 0000000000000000000000000000000000000000..377b3a077b6224718aa1ca876ff4437c4b0f00cf GIT binary patch literal 1251 zcmbW0O=uHA6vy8@g%&>#r3V`+0ojWv?#%8cDSHS_#YUSz#UNr3v`wU`Nt2ptQv5=s z;GuXC4+nzr7CYj88_ z(0VDN+Z2~ccS!e0_u(Nth9^W%;RU>e75E6BU=_Z?clZhG@SEPdUueBU42U5yEF9tk zq|F~!j8I=jOo)OwBhHI@W-<%+l=Zgu6o{vT-f%Rf7`{kO91xa zE*!+YxDWTE#1y9S2HdZ`FVS;3$Q*j#7DUEMn z=roj5%EC4(W$ELH6~{=Uq)Aeq6x3*uX7OieNf}E1U3^2<^b~<>+p0tcNYfN@)>iud zJSE08L-I|N^p&YeKV^dJN*kohncZ_;k28DPbpy^49FiQO<0B@^8bi;b^sUojQwi*O z8Q6-sBK>Vly9}(Oxv;%Oz60hZZRJDuviP{lICG^m!688XeC} z^2{X9O!CZR)X6iGJTqwr$8h4YANnotNjPu*>3wUxOM!_onaysGVtB=JKuTS8%T{2#4|j=J_<(mWiCH5 zKRw$LY)r)&CtkUfjP=x~;!Wwk`og4bXYJRLCDSkr0F;gbI+JkcGg1iPDI5o=;ORII zQHjT>CfA?=O^gxkM`0nZNxI}qpxe)%lU`sL8DvQX&!57a-{H=<=Yr?HV|?#-EMf`E zSivgRu#OFE;sds@&H65NfY12i^?vnd?rtsdcdvfRct%~~FaF`W?9>e&8C6DU$9?K& zb-Zkc6~J3^3_Cc+N9^Jg_W0j9z#)$4%jy6n*Y#5alw8{;Z+6$oi}c>! z{|y<^6`9b`=S6v~HUu~)J6O|ps}zb>R9T7`CYmlrO0G$4cHI_Y$i=8C>L0GG97eCk cevJRg{j`6-xhS4bew#X*{xx%gI$ku0TO(Ut4FCWD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy60-vb b/usr/share/terminfo/w/wy60-vb new file mode 100644 index 0000000000000000000000000000000000000000..cb70b612b6bdc81aad20f2094e1f1d3f530980c1 GIT binary patch literal 1581 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy60-wvb b/usr/share/terminfo/w/wy60-wvb new file mode 100644 index 0000000000000000000000000000000000000000..b8632fddbac12557e4c531f385b78cb81c65e64a GIT binary patch literal 1605 zcmbW1%WoT16vn?h1wop+YDFpvhaeX`azdJTX8a6s?KrmMB&D=el|lm4}#Ch3C z+{DF52&sq#NC>1NV8I4~cu7cf!GZ+~7A#n><{x0k1|cDV`R+IlQd(4rk$&f%*FAIY zy)*YwmBPd5#|ibb(cFnyqs`In(v7a>DUFJDQk~yvRQxf^Z-<>xcdfRyvg+TiHmaps z#b2t_YETN^Q2EMpCIY-5*p8?WL`j&I{#yoV2|eTFY^8^2KNbbiHe_}$Ywoj>p= z{?a-O#doVd6i<)zy}2 zGNYwlSMTp8Jq=}Z_I$~&K&(J*crZy0YG?-;lCGCnXqI*|ME0lQo0(>?F! zca0u=*H`z<`r5c{d~1AXd~f`4&)kF6|G)jC@slC5@IfrdNFZrjRtj^yb;m4caTwBq6fJ&MQnYb|W}dV2OBcX zAwo7uf>}ApkjxyCg5~K=rqmhIlSnb)brMQRaa{N5PBAUZoN|Ea5|p~0TMo&2sn}9} zN{W-rWNSwUq{es8Nz-P9s9sk-kc_0@HOTJg*{oiUUM}8n4i4-^F=>KctkOgtSjdJJM^f zGTqgrIMH)83sM;hBprP$e2d=Mr9d*Cf|)kg6XvE2n-v){C$u?E)6LU%bLNB;%%Bz2 zZpYj-TZxy=8{I6n6Q;f%qhKJiABbqv**BRN^-_Y9!QR}sPO-ZwF2qJ3`(#Vg7zv#o zvtC$mu3o>kv1nHpmo6`-Ygbk#SMwXW&FofWJJX!H9^Pr})?0474cYZJCG_u3@nmOt zxDF52b$IOM5E+AHY#JGx?l|Ov_hq!8=6D!q$ur~}d6t}KiDHSk-Yt0ye%z#XACKw? z@5BL|#AEaYFoe^*1tUlx>BakS6b~^vh$j%l2twWsIpN)os>sS!vP70ijjWJWvPKq2 tiMXUpDMizZop0+iX7M|v4Ev!XEi>MYc3hmc!?bS~0i<1Ny$3L=_Q#}9x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy75 b/usr/share/terminfo/w/wy75 new file mode 100644 index 0000000000000000000000000000000000000000..e499b1fc85e21054bd573a955c2ad5cfce6eeb8f GIT binary patch literal 1662 zcmb7F-D@0G6hC)vX=8~kO0m+xT1y5@Kj+?=+1WVT-Ixkp+omZ}uw+|E+I(!YyXj`L z$!42vQBXkyABqS*DCmPPJ_!NwK?DUAN)Z$U{Re!LzV>PSowJk17EwC8zjJ=)+;h+U zIQP!%Q+sGH4brgsRCl^@)a!JYXQ5t)IuJ)hO8$MJVBk^sou@Q?7D&@Cx25ShVQI?k z+h{ut&~tQ;?4yoh9*fJ^t9})Y6I;mb&6Y7Gxs4l51s;U-MTdk>{dIRlm zsdv@;S-;!rL-kR{Im^F2pQ{b^ow|dl-_@V$9`yaJhvV#U2Awp0%GvK6gARe%dC3`d zPB|OkUpZex^7F0pz4N1U$N5?8Uo&r-Zr6jF+n*N6Z0mUjzJ2=nM_Rl`?5+4scKClI zHX~X4I;RVIOqcaJeL+v^DLtp_kCow{+5U^S9y9B@en-EjKhbVwl6KIO5M{S=dZ-Zi>^K9$`hg?sb_%|SGL&g2cLho|s^iQGsY0CuUIxx* zsm8&JN0fp*iaW3irr&lewgD1y2Lmf+>jAOwgzS+iU!>ij4HjXYS%$!`x<{~($Uk1h zQv5n@7V;)xV*LarW@Hk>+Sn?LILRkA!iYup#W8o-m#pYW!9wED7Ragm58zo^r@SR$~H;3%t;TCy01wg8EP)FZC~>mTsQh zn0EG$2xftk;+4E+%(o(Cn zyxeZDtgNnfI%{j)?u{Gk>%HF1o40u1vCks0x?vw_qk5ARhH-`F6Ga&dm-@>Oyt<&%K7{s0}2 gxBmdXCj1p(?M|!#ZD18>QEl2%?TP^cs$I48HzXpAr~m)} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy75-mc b/usr/share/terminfo/w/wy75-mc new file mode 100644 index 0000000000000000000000000000000000000000..fb76e93b6eae3e9bd3d2042e48bcd5d5c6a92932 GIT binary patch literal 1706 zcmb7FONd)#6h7zvgO4({xKZgvh%#3?Wv1R|Zo(atJ_b5WJ9bp?(O79F^GGJi%$+1N znam3n?81eDZi*<1F5I}V1;I_b6v4VtqzeU+E?m11!G-ZV|4lNsh|-^&?|kR+pa1-i zOAhlmJxs$i%3r8%0dN^i zJWJi~BM_!5L*4GvU^4#d5)IKkbRRuRkJB+qQy!6ND$oTgQW<=i)`07f4!uTiK)*wm zfigazkLgqJ&*&8Chzg#Y<=p5vPF=sgKxVkbF=9y3U?(Pji9e5J_`F2{;*zSwYtpoPtQsS;!ZX6Hm zLLQU7dx0E|R~wng=$DYkt(qA!LpqQ=7IdNCjJ0j=T6uX!aoXCkTGn=E7djH3W5phL zKj5SX5nmGBfr-Q*nd}UFp``eUIUh^8tkpVbEgZ5UGNLaa=D9Yc16hZxL7H^& zVzIcmxU{sqT&>n>_4>-n>S`RXtu-3WW~;TnzOm76Z*F!vTU*=PJ3G6(dvXIfagEsL zsEsoE9wp%FYfNt3*A7o(!u9RB`XZA=SKqg%pN8j3rl<2go$u*X0|17f7 zE3&**h-}C8{2(1>vKLBZo=^TJhVTSaprVHd+B~<3PFs)-NQ0_Hm#T9P#G`7-rN04C CU!48` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy75-vb b/usr/share/terminfo/w/wy75-vb new file mode 100644 index 0000000000000000000000000000000000000000..764d030f7b028f4531ff95443af3d05ea83e2967 GIT binary patch literal 1684 zcmb7F-)me&6h3n&iiX;V2o`UJ6?37HO?&Umy}282x|`M?U2I}Y9<*jrlQf&`X747O z-OX+`-9}JB1RshBJ}BseFTMuE2N4uhC?Z%8^dIP3>8o$OerNV3u|<^5-S5nI&YU@O zX3h-zq{z|}bcDvl=d#-igYnK%zuRk-2kbSlOc-Rk)pjM*skW+1aXGV8j$J~rxLwIE8rE{fNTL>dYj%we+?M4 zkLXjwzo4&ZkG`cJ>1U(=Lch`P^e6Z&x=oLX|*>K@xJ&lop()qEIvs&NBOt*rPveSi|g?EL);X%(f^gsAnO5Z z*h-QS>$sIguYkbHS$XS4YY+Tu>l;XJ-&sFcKUvqUUyXhvwI<1s9F{!(sFBPL+vBhu zlTY0<^2|N@q5nP``(KZJPwr1jUp^X85#5RU1rYx(23VFPP~jETnLv__F0(ScpB>hPd8xE z0iTSHN2hY8{sq+1&XFC`@ZgFd3)~c^;4}gURdL%+#ERzVeYSY1MX{n%#b-sQipN)u zXZReXpMG!%>rNTv97LRS+DD!8h!c@rq=%6j?hM%%xii>~73O7*jnSP^Nf; zI{U_;jT~@OGiAy*a8#zs+FS^&*i##SZTz+I_x2wV9t_^w@*KP-)_HlS6uF+#elQW{ qCf~SB_PqH+pdnnm3@GN_@wlN|FOV&ctd~LEH*=%;R z*=Ac*svv?7MFbxd^uZUO3IXv!1O*j}2nvG!1HMULeHwq~?4+?pl-}fb?(dv??z!jQ zbMMX}b&Q^%VH#DR*xgm`j7N8{Yt-s|4Db~F?Cq6{}FXmof5{HRw4M9=%>{g^`e?m z7u6;8n!2JYs-fCyQ}xyB7{8(3QSYVmZmJK|hbiYM|JFWJ+v*#28(zPuKhz!cf2A`l zYo9f2CCMY!Ve2IN0En#Tta0nCwGIA-^(7>?udQ#b@2%U`Pon>lT9ah2J#6#%qavB@ zw#Q*RWIui1h%YT}{jbN4C-;qx~0eJz&%= z`)&JO`(xWFPt!hnn4Ge^>^8MKAG=NC&bLPLrU0YA1W|Iz=SK3r$AM(h2u&=p1>100M%2%Tx$iphTH?gZ2;o9_oN~ZIcB6f) z3p~?=#Si&p{K`l^C-pC)mQIeGi1rVz2(rLUaf@y){xYW!@`38*}KVR zce9&Kw-IVV1RshBJ}BseFTMuEhaxDbP(-jG=s)0_^wqaszcYK2*dj{j?sw)pXU?2C zGiQcBE3y3;APr? zYyus6hu%eh6X>@O=@Y|0r!Q%bZqfJjqtSn&U+7o*9sEzaOHYa8g8eh%gcvi7wUa`F zhenUY8F5a`h*|Nbm=p72MZ}^Z+G0oSV*I*zPkfNhyD2^rAE%t7{9F4%?1^v1ZFv1A z{t$Q3|CP=l>k(_vN|GV#xHXDi0fCjZa@MQX9{5+**O1)4vA(l@ux?vF8~sjdO_BjQ zD0%!zBbgnxr(ruLpL<~Bg$MLQ|9v*{zaIOZ+`lA!c}h;n*W|REm6zldxh&TnD#Aab z{THu4WYn&_A>WsuO1n5mPmo=7Do)*VmLsRGoaM&wq{_jlS0M^^@%7MZGc+$(6ZOp)Q7B~;&g9@bbcA0C#Sxf=!=7l`qWsRI*sa%!?fPJQc zSAcOg1}xIU$${oQ&M++7r=ggQ@`=63Lq?lHMu!?_WXx0dnK}1ECtk}q@iK;RAzV(` zXJK~ZX{-x8Ux!5pd@{N`Jef81&!d)hmh6xQ`&R^6;HEfvrye+{iraD`Ry0TNvBgU* ziWQYAJ}Wv^Jic-~!{;Eq^n*iKb4n;@KjMVbI_i{$oQUiKJ&x3HXUM+L0lL5zun9D2 zetuzLWo31BZLM03<63QfePg3u-`s38n$1>gYpdPvbhfv<-JPAQS9`r{*LL~ban43! zcOx#snCkI>GR5oH**6AlWS^UwDO0|_qcT<2=0a%2p4#|p7%Q6n?W)L8xeZL4a5x49ZF^N?><(oprRXH*JFmO@hmhNQsFQH%?;5KiT*v zj#IY+BoGJ0AwmctfdpKT=z&UH;e>z#TsUxugg8}#166zAz-js3c$3fyfjahk^L_8V zee?5XG!KaxdVubw6XHAB?fL0q)bI9M%Ly3WHw@4mT&cO2K~krps8(4jwkzw6R;t)2 zrOtGkt@UQAy4;J3B_g5!10_Jv1b*izjvs`?@zq0d{H#WC%>F}k7Y)(F^cX!sV-&)3 zmI|~$MJfZY(FSw}(xcbt4fH#ZL3@`z)c6znoW7*5=v(?;^B?Ia`k8ituhR{>Ph#i$#*z`q#3LUX%j{BHbV z+%*2w{IA3s$0Jfn_Gh$abkMS}O~|Ki^Gx5y590UGbN?H$7s>rg@)dbOmSsb><+glP zzA4|9J9m`fpV|Hkzki2WKbBYIRr!rH3-fe09U-$|RjkOdN`VzAtJECMsvL~&D%6x& zI6ItmZ8l5;aKCRzK6@IrTQW@1Vg3{ns&ox!R)aFSGmuk|b4jXM;M|B1(4)8mM?vkj zSx|KVk3Vq0d}jMV!Q!z+Px(9@1FW<1YK#(b?Xo$7g{18#b6AR9!_7k8zzdWefMP~Y z;BfD#GKe2!0+rSy2Fh!)8*zg$*f~3ro5xR^CzBCo^fnD=ot$3aESdS!a7{zPbcF|V zE;DvDW;FppSi$kx;bgQPXRU1L{1gz!%m7cKA7fXVJ=nH9Z(Hcp%p8WqqBJX;C-<4& z4&K+t*{9hooCl0&r_B?$n0XxsK|HPw;!0`2sp^w#_u#rYrk{wDHa!_+m8(ggi znCn+ix|D-Jr7Q00!{I9Sx;oy~@ve?{_O2SP6>eqec|?shphBw<*p70&^q8L+Usxh@ oUOyao8-^&Q--sc+Rs2?PZ|1ikZOA61N!6mF>IDblQgunu-}H^LOaK4? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy85 b/usr/share/terminfo/w/wy85 new file mode 100644 index 0000000000000000000000000000000000000000..04c4883c050bad7a89b52e85b58293e3b4e4052d GIT binary patch literal 1652 zcmb7FOK%fb6h3z@Y5@U}sv;hP5UD(BLlK>OXU5}bj9ngWEdq*ph@eK{0f^P`ojU_orEGHT?>pZ) z_c8aLbI0B;-li?ImIlO+veV54%bo7rMVJwoUAcfrm~TP?4w}HHj5%8=PFoq#HS`8z z+h`}fPoC-7N5|#(2FXY?g(9DhwW={u;O=obA8nNy`-?JWox&385vL0JctbdIEERDwTW@$_A?>Ee<*BrzKUKZ z76RTRsAN|TXYxw91vo=cYY$FRYD5+0Ag~`OXYw8|ax}HRTc=I% zg9b=3X(pfNwZwc39vNQjI`gfb5L0wsdt*# zQ7{5eM}DN;2!jw&aFiRVEF7h)h=frt(m@qx%3`|(`@IA9fZLZm>PRLZ6v!NaPv~6( z9UyzS%*!fx!^eQ*zzIZD$o(p3c#v7UhO>s54gtms*h^DYfGn!Iy^qQtD?kGt;3ICb zz^UBLqm0K1?RnTv68Y03K zu0#<<=G=y~-lW5RRaVz2@=a<-z7w(Zc==`cVdDFcK_UZ4oyaVtN@NI`bD{=M9(3B9 zoQr)>|yoimpfd!yNwJ}Y#3kvY4Hm>ON literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy85-8bit b/usr/share/terminfo/w/wy85-8bit new file mode 100644 index 0000000000000000000000000000000000000000..e2069d174360cf48fad63075acff2ba46d2bff31 GIT binary patch literal 1592 zcmb7DO>7fK6n?XVXoy5|pc2qU$W&fIN+>(~qVjuSgL z29s7o0)&KwxU`Zvv}%Qr+CxuBhzm&Nz#)eoIQ7&c>Wv%Xu>Ib8Qwu4VjQxG{y*F>3 zXWkosA_i$E_0WL0B^yoOJ>-8=thXA?+RVD1giiQwqF71zhp?C^FXU&4MD*>DfPo?K z$s*S-3geN5cMENWZ#V6wgJef5!!$wX=>lDbHBAL@38>NveUJGT-JyG!!|(z9Ko6mQ zrbqM}{XtLZS>%6CFXglCvJ+{aqL}jPuz$85qKzm62HcN&c8k$iznhwv4)ku#T)S!^ZPhzi?&Vc z)536vme5ShDPTxTYopqi+Aq+LwBNxzUT811SK6BPS7g7AyWsqXBm>k~Yv-18YhgEdS3)Bx;W^zibV%TOuA4Fo)JUoIMAT@FZ zmb0Y$P$?@=pH^`qcM_HrIDusb2!cn!P-dV~FqBn*#|!+xatpXq3dbGM4~*&qW`F0W zP9@Xs2t^m@p|-tB?NQRtWT|bbRfw~|1aOYp%EO}anT9}?$&_LOj#8VY3ye`4#o@YS zR7oGE>@fvcfDJhCNB8F9ea2Cd#U<=oI6}w$MKbMl-F()rb#y(5+Yu$98Y?T!=Cy0rueVw^ZmgndXgI&PjECC| zm`HOPE#p3M?;IA~W-C(MuucUNCAR2RLx>NA$u$6GJ31AznP_!Gj(+c+kW|Z^l2sc%%JZb;HDDFWWQU_rCY) zRdv;SHJQC)f*z-bXp9-S);%)R0-tiQTlhh+2vQE-lbPnD-vBq*WXrgguh#I6f*)h&RO< z@irneVo^k*Ee2u(-WA||aaCMTb8m=`#HY|VfiJ{Y;_Ecd>)(IA5#Niu;x~-^CH@ij zV7D8|*ly!7V=weRW5OuFP63CFvT?#VW!!?kZQKF#^Rsc+_{I3u_+9&drqMXwV?Jr} z_&&|7M$a>dJ!?*EGBV29OsOr+2+RZKA@fyp+B{`e%~^BFY;I}(W;@tC*4g5^1M`ac zf%%DPRnO8+vZ{97Zb^GSv|GxaZzJF?fy!3(Xtp4wQ-pI2itQ-!ze#01yn|-}CFMuB zyjs*?4gm*&O19wgBF9tfIT7uG?>9k`NilgmC(kN)Kprc-%QG|v*<|t}Rw-PkW=&vW z$9b`c6JTkq87i-B<)Lyalux&?BmXo!6?&m^LL?y~;YcTxIXF_)5DCJ3sQenvl*4w5 z)^k(VxHFc#>a}daFOoh0pU~X^O_4QS;bkSf>DPgiz#E9jfX8KC^CYu!H0Lxky#i>@ zXD=;P5wavB>i|`bNI(HD;32N7z@>biv$V$r9eLPJ5`H;b@J3bd+zEx1EY z9po|jOwvV7fc-5vuFth`qiiA2SE7U_b8Q3Kq03?2Z>wXM_$GBj&kk9-y!<-+An`p& zKaoD9N@NaFCNhA`+hLO@PuksG_QIGQl2xWh(p%`E*8ytjhv_XWquzaB2&@6CK!;{# zW@i@{mzI{78;vMxHdj_ITxhjcSKIAQr`ugy>-GBm!C*MNc=6Ju_4Uh_H@E|(fUjRE zz~ROnEOVUezynHm(bH15T_sxgO(hN0DM~lm)stMs`L51)b-p}?0Je>v+dQsGHMasP z+11dI%JuwQke@tvo~*O_e_$JaMj0r!k3O*0^Z*;{0zIHjjafyFISIJbIIrkGgsqU9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy85-w b/usr/share/terminfo/w/wy85-w new file mode 100644 index 0000000000000000000000000000000000000000..4a17128f703ade4bfb6559234408c832a0368e2d GIT binary patch literal 1676 zcmb7F&u<$=6n?XVAg!R0I8b0K zX>kFbOQI^8q9ZoMHCS&0?}`t^M``R$@v*oCeFykdd@jC9{ha^7_(uFFei8Sv@|XBW zkQK+f03J_Td#!!Y`>mI(BIZ|tk~M0bwWh2up})4i1M|3N{c8PY-M4->_MfRYj-QhI zB(EPZ%&I@0hwq>~y3I;IW;+$^XvfR)xI8V#UdR+sA4(=oB$?<@*XESlg_?dr#-NP21qe!CZG4@ScMPCXJt+~MT3wHCcn-qh38i7 z!$|D9M+>+CQX^-i{kENh%IZiRXyHV`d00B~Bke{Af=9tnZltm>l&-=PM!84_Rop3y z;}+}}Puj!oVDhN3p?pvva{<1gcNKJ!?C}Xst6+_v1tx)W@Tid2RnG7Tvvv(<4Kuw0 z7%N~aEmZ-ssOt7HnmDZh4S0YLzo`P3@*qbUiwoMfaGb<_d?@et-F))C#g8?6`H4nw zhuj5_&lE5z4>bYyw_tc&kR7U zix+2RE?=IXUtFx!>h(sW*<4y`wU(FL?Uj{IXLWULt=nB+@AWn|HaEAnu3WjwEhvWO zav?4^>>|w>E(9-V(?;J&(|4U{(>R@U)P!i$Y0qr(G{<`;-ZSxP6b>94-?s|hlXA8R zDmvxJRoe4|Y?vE)bC&FB^G|?Z{Q=6DU;hDm{NZemuj6DLU=3(fZAMe=k^(%c&1(7& DpG=Ml literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy85-wvb b/usr/share/terminfo/w/wy85-wvb new file mode 100644 index 0000000000000000000000000000000000000000..a18a7eeb7fe18a96666f31c501d53800be037c11 GIT binary patch literal 1690 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy99fa b/usr/share/terminfo/w/wy99fa new file mode 100644 index 0000000000000000000000000000000000000000..6cf0920e3d69f6d38ee368a301f199ea88f865a9 GIT binary patch literal 1277 zcmbV~OHWfl6vxku8U(DGXhP&9(g@evQd@3s3$zxn(3VOe(kKLp2^4NG$U`YmC=J5G zg$oiBUAQ38L>DehM8m>`3l}c@Dt?XnpG!+{LyVLB&STD*GiM&nB0^1co_^CWSt>`P zb2HBzHD6SQ9}~)&D6iY@iAlKWF}G*@fjgUUFWKeUm6^4?mxLf^IJ)Wx5|l;VYgDNY zKXT5{Irw$dK$o$r3bas!V$@6h@Dh}P9HDzOP7mo3>}j$f=RtvrRHAL#rRVS}l^3)} zuVC%dTgdm|0DJ{%oE6vw)JFZW-6$@JE22rTXc4VK7e3KZjfJYZv#Ps~*VL-~t)r*L zW1>&Qos8s(ywBo`I20aPsraNHQVm0zusUVL@neuVX~|`|A)n&5PZL%G^h$Gk| zoQonCZK%HN0OxMA9YiVA&v&pL=6pMka&Cy%*uKG5@+xr(r)VG%caazZ{a^qjKoXHy3snJxluX%_rJZ?@DyFeLYh2Zv-}Pm3&*hg#T50sS}?d u-+_w@U?LvOwDp*VVc@G}Nn~)t!ypG{z$~yp9@t{3}O@uw-@AHpimkV7n-mz z#)XN-7~{f)QH(BJxNzaW@o&`c+&%(^5aUU{nfcDlnKS3i)QKRSrz-kQzho{S3e7xp z&*mo%fnFf|T$PbJ zdIR|m_zZjj)DoglI1ZH8$%?`_0Fs+zo<7zETr_oN;@gYnI z@i6IIjro?`{mr?ZdGCV0cx_2r_N|0g8`gu_=8cxkrd;Dz4`H&(ZQ3^h=~nz&3pOJD oAy2ny7zXAnNn!}!I}D_NDPS6~fHYtOGr%nH0GI>jfdv=+0S?UDQvd(} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy99fgta b/usr/share/terminfo/w/wy99fgta new file mode 100644 index 0000000000000000000000000000000000000000..6cf0920e3d69f6d38ee368a301f199ea88f865a9 GIT binary patch literal 1277 zcmbV~OHWfl6vxku8U(DGXhP&9(g@evQd@3s3$zxn(3VOe(kKLp2^4NG$U`YmC=J5G zg$oiBUAQ38L>DehM8m>`3l}c@Dt?XnpG!+{LyVLB&STD*GiM&nB0^1co_^CWSt>`P zb2HBzHD6SQ9}~)&D6iY@iAlKWF}G*@fjgUUFWKeUm6^4?mxLf^IJ)Wx5|l;VYgDNY zKXT5{Irw$dK$o$r3bas!V$@6h@Dh}P9HDzOP7mo3>}j$f=RtvrRHAL#rRVS}l^3)} zuVC%dTgdm|0DJ{%oE6vw)JFZW-6$@JE22rTXc4VK7e3KZjfJYZv#Ps~*VL-~t)r*L zW1>&Qos8s(ywBo`I20aPsraNHQVm0zusUVL@neuVX~|`|A)n&5PZL%G^h$Gk| zoQonCZK%HN0OxMA9YiVA&v&pL=6pMka&Cy%*uKG5@+xr(r)VG%caazZ{a^qjKoXHy3snJxluX%_rJZ?@DyFeLYh2Zv-}Pm3&*hg#T50sS}?d u-+_w@U?LvOwDp*VVc@G}Nn~)t!ypG{z$~yp9@t12k=#sDcWj3{+|B#c5OG-SsB68`rVpIL=2)Q$UKE9&oyL^Ie?8 z#c`9mNIif+2qD1*4i%N46-aR40HOyDJ#gT}iNAqsZ@qMRX6*ziiByS^e(%@3GxN@e zrc1i;3fgd7{x+($L}IS8RjsX;0%Mv+x3(aHpar^V1A-~|ekWGa0JfjD2 z2rr>4=s$@hQpg}jFONxFz$IF5V+OO-B`i>`kX78k2DWe;ckm(oPw*MOroM}N_zvIG z`W3(75&og&`;YMiPXo*MAuaNP_E2K?G9m9uMXFNc47cQC`C@0LZ{)uGD7NAIu5p%fZ#!o!8y^^VjE{^@ zjnA7IUm9QS%DubGZ_IPA8U1$O-rZ|GcxKiQ#!tr2#xKT0nL zjSpN+hmtXle=C%9sYW@wmxIbXP*t0{47Ex{^Awd!DkRRV5vU$D)}r!OU{_hx8oQ`8 zg*XectVl`~61rq>m}yx~Qw%X(h1HrKTa2iSs${F;X;nxwla+NGRm)u43MC!AyItC7VjqO{8c6zp(!I$Z5KJ1+D3gOqSOygfFi zQ|v~H2W8_R>(m#E-pH9g>&mQiZDVeA-d>nryu38DJhPI%o?9KMWN*0dXR5;+(c1dW zwN0;Hhq@V@MdZH&;w_HzA{}0$=kSV)5z+^hvFT)NhGS4u!7JE=Oz`k0$$4^tyh$!{ zio#XG%IYb_S9Ha7<{N+L5p?rs1D@kO9mWwJdM93GEQB7Mfdv6Bu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy99gt-25 b/usr/share/terminfo/w/wy99gt-25 new file mode 100644 index 0000000000000000000000000000000000000000..41d58c42cf92be39dacf8bdfecedc7e43ba2ceb3 GIT binary patch literal 1603 zcmbW1%WoT16vn?Z0s2T2RZv06h01L`IBA-AW^BiH<2rU6$7w=o3P@4Y1y09qUQXg9 z4vtCU3L$|+B@j|27F|?;L?w`5!2*QDs(%ezc5E_ycN}LCB2{olzw^51-Z}T7+anRY zhE80RXGXn|OwQK^oY-!?u~}~0GqeNR2_&omcdfFuvKnw=1C_l zUMH)*zFom1AP3t|(Vvf3uMamVjjxB6s7Z30W zKBNB-U*a+K6MT#B@dK^j@H?L2PggwjY0LQi4Ik; ze7nw~HrPd_DJEEuWrfqKnA9b^qfEmdl=%jVwGb~iELNiLns zo^||v8adpj%?AwH#{{Qwj#XcVYF<>$C|4EJbrr9*t$IO~`*gJopKk5qQZN-s!yGZI z3A3j9%(Ch=hqare>*ndZW9G0bm?0~q!;V=qcM^N%ZYzsbL}*usDA*A_?1*aDIdqv9 z^HV~ZP_GP{yl&99Hua$C_4 zv-Q#KNMrM(jUBhy1n-)19UhqL@Hk6hG611t&<51K7iSIxrxzSVPZE};mLvHcV zi}whtXr>i!%-yK7(0VS=z1 z(8MM>xQ|b$x9|lX(m%pC_zvGQ`W3(737#_Yyg%?K{_-Qwdj=0uc-}$LN82w3#mnMV zF(gik)8Z|0PK*m%I3g-8a5N!OVwzrG*=^rb|HaOT1yL6bvB4SI;xqAJcc!n!WAURH zlb&bF3EF>OarxY<$YoiV8?wD!aZi4{r*>5`01QlmaYQLA9=*ErryaDqE^_P8FtD z$<79ks~X>JvT41voZpvk*!Vmf)hl@q>ITHr0K_awlWCG6S&}1Mh{%(R12_rwE+^6p zzYKMWOXsq0+IokAsh}}xxO$r!_nEZzNnXQoc6|n_drEa3t}3GYDopM~t-LCa=x&+r z@9pAJAQ4W&NE!8*(Nt%RvKlcawTx4`Ichg+Osc#QG=n;A8%?7VyJy_(Rk4dO* z2b|pjM@xHGvM%D61gC;K&qj5L)hltKEF5N^`d~2{IzMhM6z$uai)$6DT3NcWoT}Yi znOe=QWt*7|=fiYsdNbT^e6-$iyIt@*Q?AVeb8Q}HDMZGh(iTP9Vmb1Z+jHtL3riLRLOm}=MVdrXMuFI zrE5%%bT6*YkNy4-5cm$Uha}nH11vBn$x_DYl*2t9SUqMpPt4CF?`1Tl$;o)lvTuLb znA|treV@ZyA9LuK{?q@FAW;!H6k!xlqNuJN9g{j#G_Yuks?-T-V3TSnR-J&nkRr=& z##H0171Jgusi;CHnNv?MA}8jo7jPhz6;j=CLTh%%yI&56e`#gs$4)zIGm%HB(G6tV g#4;pSP~M#tCJHc`DCSY#nH46CyKP=FjvV_GpPG$=b^rhX literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy99gt-vb b/usr/share/terminfo/w/wy99gt-vb new file mode 100644 index 0000000000000000000000000000000000000000..8ce9af008195f5d216b03e7954024a6571e665fa GIT binary patch literal 1615 zcmbW1%WoT16vn?ZEr_&96+|Q=Zb1%sWS1oM%y<&pjd9|{j*|vRijYEEAzY8$yxi7_ z-MEQcqb_&}AtczqqM{NHfdmT{AXu>If(0v9{0(f`u|XZaJC1`CB2{pu-+A9V=RPz~ z$S5AiaSX|CMsp{XT4{`Kmu@z9>Xoj&Ogp5V(Dqt=tyHaqN|kCAA_zvH_iR9x;QNE5 zGe+?UgaG&bBaA*o`%!fALpXypCNaZ!9`jhhBCT_H1+P(iSfSh?*HFhcc5w^0@do{O z@E$&14KG=y#XSsE5`+^gk z)8zg+)n8}OJ|wt=0e1ZiRC`FZUG8d3_f8|#fjMc`l4e7l zGAk--PG~np*UQuQa^{38m=P$FaBSqXb@7sO`NqoTs=c~GB&NioS z#CPhuTP?5MhT09zBKFS#@fPQKkq$4>b9lw&7XYGvQE4t`9tDPTcKSFqm=26~LFZy}tgE+}p7*UMCf{P^olRDpn6L^f- zC-F2Q7)A_nBrp;DL#4>itdVuHL8{~mxk|2)OQb|RQYIC0nXHi2K5Wd|8cU17a@CV3Xv)p>GyukyYIg9 zq3IKYcnL>wO8hEo^;m4aI$YbX)i+9QbCzbmw)?HHJ?!3I-dtIQ5b%eu+cqHX!t;7b zYZP!C0v${|gy$ITKqp>6pFe*FQCz^QNYP6phiP1)HG{YCHgy3d$_285HB_;M26pfs z{d@QjpHbh(1AK``w0^*2JjHLcJnwh>fj@oA^ZtSdDLn76=%DNr-Qt9JQS^zE;)|uAzLww0@8tLLiTv@Ix%;dC zfB&ic>A=7JEPs(|n%Afc%7hvU#H}$i0aXpeN2%(&e!*BUDwa{aW>jpWm=4741n-+_ zK;=z5Pif&8-J`tfYBms$@!M;GxI;C?%5D}aXG7I2>I&2v70p2^hg3m>i#d9h@!Ay46-J_QI zZ<9^yrDgrTe8I+N*{EL0n^4ywCb}S|Ns3I8G|7-G;X*`?TxU;p3i-CAJ z0V8QtqDEB>8YMMgjB7VW*Ui#*Gsd{e89_6s!?sa18qs%+?N%1M2-B{NQElSPr7`JjH1qq|HNgZ60wkL`I-e7M+yEa0KeAe+wEA zm$>zgZxQWQi=36|zchlLEO(Tv8+@a*NE9au=4S gERCs!Z`s-kYvE`ys>K+Ej_a_F>Y$EANR-6zHwzbE@&Et; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy99gt-w-vb b/usr/share/terminfo/w/wy99gt-w-vb new file mode 100644 index 0000000000000000000000000000000000000000..17c79a35c1d5dd608fddc86ff05155464e0d670c GIT binary patch literal 1637 zcmbW1&2Jk;7{;I3Qqhm33L+8_Q;-8**~Lk`yI#jOF^(PEansNbs!CCs1CG~D;>1au z*p2I?F#;7;2njB5sHnt;Kxz*hK=jZ<4?S?=#NWV`8yAEG%QNdFNFh=MBmLg*oqcC! zcU}~ecmby|D1O#j?L=a+IoulFD&5+*J+o2iCg{wx8x^1Od}hQNcGhb*R@Z!6)kd{c ztN2QlS`9+L8=l^?0fF0a-2u`a^XOyjSyuk#9%J-4PT)Co^Me>g9Ag+~JcB$6n5K0R z*Dy!@HXO=DvVwJNVhe5T;$8ah;{$w3eHZue1-_>BJ$}Gr{6fohf5mV3-LqWx5B$lN zTvrpvDNl$V(I@)FfH*6B!Y_hiNEpHrQ4weMb@7HsQ>!ttr@P*NkvTCd*2IQraE6w+ zEj~J!=`-=AxGzGQ>yBtP<-bQvThO+(UF|*Xj`rbR#mCwwhidO0^1Jig+lzjFWcKj8 zzItlaH`)X3TkSjTq4wyhwTEZ_|Ndj`$&qjSQTs`gQ|N^>AVdD7IclUJoBm{!s=e>e z>s7sO>gB6?-O|fhf6_|f6yy$M(cot%iza&Lp5|{LXZ*i>6bOW+hEgbX?d?NPq6VBHmX)~4RRJD-3u{AGGu~eNsiz3M~z<59p>5kf_#ybp}M+C2+pIyHS*%_1_o2!bd zzKUb}R;wT@LDen8r@Fhi>`z8g(8u+9TyM&AdPN5HG36%cI(hm|P9Kv6JzxY>*wUN& zPJCCt)vaO|5!&@p3MTA>gsoibz-3+3D+#0n`_INyiPRAxIK_jsc!-Y0 zBQA%@2xP{jlQ9{NL0<8`f*ptp-27?sCb>v1k;|N-SR(AKlal<3=4@-Jdwcf5hdVT% z;W_p2uI$GE&NAjl5JNCv^M*`%`I9(<=b3#8uONUB!iXT|-JV&9B41M_%VdSr$SPSQ x>tvpkh(pSxLKes(S?a~gq^U5J@GMJN5hZLTqDqWXsJIHNs0ylBjKoO-e*;Y}Y!v_i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wy99gt-wvb b/usr/share/terminfo/w/wy99gt-wvb new file mode 100644 index 0000000000000000000000000000000000000000..17c79a35c1d5dd608fddc86ff05155464e0d670c GIT binary patch literal 1637 zcmbW1&2Jk;7{;I3Qqhm33L+8_Q;-8**~Lk`yI#jOF^(PEansNbs!CCs1CG~D;>1au z*p2I?F#;7;2njB5sHnt;Kxz*hK=jZ<4?S?=#NWV`8yAEG%QNdFNFh=MBmLg*oqcC! zcU}~ecmby|D1O#j?L=a+IoulFD&5+*J+o2iCg{wx8x^1Od}hQNcGhb*R@Z!6)kd{c ztN2QlS`9+L8=l^?0fF0a-2u`a^XOyjSyuk#9%J-4PT)Co^Me>g9Ag+~JcB$6n5K0R z*Dy!@HXO=DvVwJNVhe5T;$8ah;{$w3eHZue1-_>BJ$}Gr{6fohf5mV3-LqWx5B$lN zTvrpvDNl$V(I@)FfH*6B!Y_hiNEpHrQ4weMb@7HsQ>!ttr@P*NkvTCd*2IQraE6w+ zEj~J!=`-=AxGzGQ>yBtP<-bQvThO+(UF|*Xj`rbR#mCwwhidO0^1Jig+lzjFWcKj8 zzItlaH`)X3TkSjTq4wyhwTEZ_|Ndj`$&qjSQTs`gQ|N^>AVdD7IclUJoBm{!s=e>e z>s7sO>gB6?-O|fhf6_|f6yy$M(cot%iza&Lp5|{LXZ*i>6bOW+hEgbX?d?NPq6VBHmX)~4RRJD-3u{AGGu~eNsiz3M~z<59p>5kf_#ybp}M+C2+pIyHS*%_1_o2!bd zzKUb}R;wT@LDen8r@Fhi>`z8g(8u+9TyM&AdPN5HG36%cI(hm|P9Kv6JzxY>*wUN& zPJCCt)vaO|5!&@p3MTA>gsoibz-3+3D+#0n`_INyiPRAxIK_jsc!-Y0 zBQA%@2xP{jlQ9{NL0<8`f*ptp-27?sCb>v1k;|N-SR(AKlal<3=4@-Jdwcf5hdVT% z;W_p2uI$GE&NAjl5JNCv^M*`%`I9(<=b3#8uONUB!iXT|-JV&9B41M_%VdSr$SPSQ x>tvpkh(pSxLKes(S?a~gq^U5J@GMJN5hZLTqDqWXsJIHNs0ylBjKoO-e*;Y}Y!v_i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse+sl b/usr/share/terminfo/w/wyse+sl new file mode 100644 index 0000000000000000000000000000000000000000..222be51abcdf0fcbcc80d9b80fcc1460ac9ef87d GIT binary patch literal 359 zcmb1QRA=B~;9%%r;AAMTEKb!f&Z#LbNh~QXR>;ZBOI1kAFH#5xiYt_)7UgE{7+5ZFU&#&)n()+CmDh7A0d4IiS7HX_~n})unjwC z-HAOofU3UZ@48E6R1e##_82 z`+$%5gfC>i{}tcxJz&2713%%Di)3P!w_6g@OKDbW zLsqr_*$3pROiNKpykSnB%JbSy>+(k4OT_a1Hp}7u=Zadt{F{NNU`=jBOk1Tbv6U@) z^`3_t)<=K!ZhhSy`V+CwHD2;(CGffID$jaiDu|>lP<@Yj_G&djOI?UZH8B}T4)JM zO=3^Ahj)X7?OwYWx69gM7xcK@W7KY{`3&`Z+V0V;9d^RT?Ac{|G5*M2szx!5D0#7y z8y&HlBW6^urZTQ02nqLvH_vvN5VsnVhq~C!ks{K5vdy`6!@D(qd*+TidFSrfz22$u z>Aw4!nRI#JL2NEn>7S1-%swnF=9ibjFO0Jx+Mp?yvrM_1TNiXBnD8QGh`l{WoF^_2 J7m49|{04jZ!0`Y8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse-75ap b/usr/share/terminfo/w/wyse-75ap new file mode 100644 index 0000000000000000000000000000000000000000..9c893d7c5bc37bfbeb0ebcdcc4c9bfe5115ac907 GIT binary patch literal 1756 zcmb7FO>7%Q6n?W)L8xeZL4a5x49ZF^N?><(oprRXH*JFmO@hmhNQsFQH%?;5KiT*v zj#IY+BoGJ0AwmctfdpKT=z&UH;e>z#TsUxugg8}#166zAz-js3c$3fyfjahk^L_8V zee?5XG!KaxdVubw6XHAB?fL0q)bI9M%Ly3WHw@4mT&cO2K~krps8(4jwkzw6R;t)2 zrOtGkt@UQAy4;J3B_g5!10_Jv1b*izjvs`?@zq0d{H#WC%>F}k7Y)(F^cX!sV-&)3 zmI|~$MJfZY(FSw}(xcbt4fH#ZL3@`z)c6znoW7*5=v(?;^B?Ia`k8ituhR{>Ph#i$#*z`q#3LUX%j{BHbV z+%*2w{IA3s$0Jfn_Gh$abkMS}O~|Ki^Gx5y590UGbN?H$7s>rg@)dbOmSsb><+glP zzA4|9J9m`fpV|Hkzki2WKbBYIRr!rH3-fe09U-$|RjkOdN`VzAtJECMsvL~&D%6x& zI6ItmZ8l5;aKCRzK6@IrTQW@1Vg3{ns&ox!R)aFSGmuk|b4jXM;M|B1(4)8mM?vkj zSx|KVk3Vq0d}jMV!Q!z+Px(9@1FW<1YK#(b?Xo$7g{18#b6AR9!_7k8zzdWefMP~Y z;BfD#GKe2!0+rSy2Fh!)8*zg$*f~3ro5xR^CzBCo^fnD=ot$3aESdS!a7{zPbcF|V zE;DvDW;FppSi$kx;bgQPXRU1L{1gz!%m7cKA7fXVJ=nH9Z(Hcp%p8WqqBJX;C-<4& z4&K+t*{9hooCl0&r_B?$n0XxsK|HPw;!0`2sp^w#_u#rYrk{wDHa!_+m8(ggi znCn+ix|D-Jr7Q00!{I9Sx;oy~@ve?{_O2SP6>eqec|?shphBw<*p70&^q8L+Usxh@ oUOyao8-^&Q--sc+Rs2?PZ|1ikZOA61N!6mF>IDblQgunu-}H^LOaK4? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse-vp b/usr/share/terminfo/w/wyse-vp new file mode 100644 index 0000000000000000000000000000000000000000..b327e4a21af7b308e35e8b7b108c0d497711988f GIT binary patch literal 508 zcmah_O-sW-5Peb68d`f2Bzsv3Ymic?g@PZ56oUvNh@zp0*w8L?vE9TP4T5)n_BvgY zSTA-4=Dj!bW)9;yXV}FmzA!`f@hV&I$!AE&yKSyC?*+jvzgIF#Vx?0qr*D%eRk7yN zcqDnI(lKvHJ&yEHHh8Q72g}33H7eMFF~AB{W7e>aP0Okf@QLkN)kF(zVjXm?o_mWp z$UDb4vFy~=9s-<~-iw^w5Z;wtW5NYq-2278oj&BA#~h#j-7zLwGXJ?h`s322O0a<% zs$iF3&tQF#>h`HcVo literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse120 b/usr/share/terminfo/w/wyse120 new file mode 100644 index 0000000000000000000000000000000000000000..9fae306a06e27214a28af18000756b525bbfc49a GIT binary patch literal 1257 zcmah{O=}ZT6g_u}TCH&*;@5@ZN5-^Po0(~9QybGXO`0}UTSY8Zgh(2{m9&kfH5wHK z1vhR)#E*pwML`r4UAXANg$w_KJO6+?H;!i}u|idRaNfP=-t*qv`|hllR;)o2zTmS_ zp0yq8Qh9c|P_uStozadlx`E*^gAjqgd|M|18AT)3!sWVVy6$!|A%F%fVsr_XVI|i2 z`Hk3#7~)8hr7(yr_Rt%_K^&nyiURkO#92(Dgc($D1=q=M;x_KlKEPu7Fy2~uu zW@tmmY%}v_(fQ?a*3HnI#rbQ_#&R?_@h8)h+H%nvn?we*Ic((Zazs_KQ$9U$~B}@-r0$; zj%dNwiLIJTP|3nptkN_5c2>(aZ}9s|`?UpQPTZ?~jK#7SJ;073i2!7X=p&LuKanER z1e=izF&OYV-v>>5=ZB$LcHe}+vRcpMj{ji2^A9$C1v+m3B{+&zY+y6Ax>2hUp7vh9 zFrc}ed_>PLXSC4bHy%g*_EUb{X0KU{nk8*D3)*7#c(j`|pC-?z%pT2{AuHsC9kXOs zqLJH8OG1gzud`jA#I8y5P#a5Gnm1&$g}1d^hmShP zW{yvuuuq;ib?9{OnenrUbLq)cssDWBLSH#K(=j`JajKH9R-qUD#|Zy^Ax?CNLv=XN lyu)!%go$=&pH0$dGu#Co_5X+pB+DTT6T68$#9m?~fS*={xw8NO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse120-25 b/usr/share/terminfo/w/wyse120-25 new file mode 100644 index 0000000000000000000000000000000000000000..fec1a364b0c5eebbf410f3bdfc055967f1c9a63f GIT binary patch literal 1269 zcmah{-)mE67=GSUHk~zINO8;;O4S@=Ticv-n%LCFG)UweE^Xt| zni?nD7-JxVfg*~+1{>l`2Aue2ZDXz6R_*w|zNR|Ea1Y~AhI$g#fcy30jiu!tCqA&auv}h)2!a*J zmLU*KV=q2|$92c_ya8-`{s(m61A6yh9}c$SM{pWRq>!OMivo%`Pi+dH;S0(uD05#R zmau{<)=|f8d`J67{EYjQ5Ahhk;SXxh@dE$g6*bR$jW^g1G|z){$cN&2d!>{60XZm# z8FzPaf8Av_&$-v~K6r0*_rD(fFYAf%yYZ*- z%-AyiGW0C=AOy9b{o!QXNi_yE$myf!6qod`@+_4L+9-GIH%FY297}+N3;=RwtxHONiCh`CHi_TujSsL@f2F8Uk~aw$IME? ztZJ`W))VHaZ;sG(bF|&8IjVUxVnuwnV^+<2;+DDDWU-7P>XlR67>Kn4G2e9BCVBCI z5=lpPa)*72-K4ls8y~SWf5_;Mo*cA3zv5h7|8nJ;y>RXN>{nxpb4%&v+)B1OaU=H4 zcrCL&w6S(`weB_=;G0v|;qY9Cqn(cugV1rC#<)%QFmyVYejQTeg`XonCC(EUh^Y|X E0xJ~5`Tzg` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse120-25-w b/usr/share/terminfo/w/wyse120-25-w new file mode 100644 index 0000000000000000000000000000000000000000..c6a2ca4b4ac05d812e360251f6cf3e192681c0ab GIT binary patch literal 1267 zcmah{QEL=e6#mZGqBX9CDu^CPBkpBQW89g^CfPJgvYXAi8f~K@1|zha&aNggNjJ&r zBu$Jh){sG^7DS|kDcXksbD&FC{=Y02k_uO;tog;DqhtP)q z@YD%cJ>Tv2d%MH+aCN!%7V&!DUf&`U6m?LQX1K%a@wPTJ zT*EBpv4{p%uulFnHgS*k0UqHGJf`;)|Kb_Dw5LAD3;Z8@QS=h85YZR;M0mEe$>(xF z4vET_a!gXvC28>_BmImHNKS@n?I^Ttlf63^KNugA@1-H3tWt4X?#lgbHyucKLK-dS=&XRW2U<81EG-rd2Qd46rJ{`TJJ&a>`+RQ1sL-TBk`%X#Ab z?dTcoMgr=i^*IM%_*h~O3<>0MfOV?U&1i6Og*sAQSg zb<;yy8L)K*Ba{`XsU|7clrGu5)wGUl&C}{vTFFz%%Jv`BIi5YHp~nnyW2LyZxH}d< z!D88rUSg||d;)TYC=eq=kr*XP1e=jEaXMjJzW^=S=FdXM*nS%ldz(E^`u3hu!zt5c z0()7@cc7Erdlt{*AR9Oa-8iZn8Sb{%UKvd0`mGa|wbmJTJ%m>3*<_BFYlcldYZ}^V zYI@uZS~@@)l*ofoGpJ>ga#MEMHx09vy=~T;D%Q|Lzuw1*fy{OwW2wJQsq2j;seEc{ zZ@-mzO-TUt@EJ?9FO07AiIeWtDgWBa^~Gs#W_tF@jp4b;`TRm@akNpqnYmR6M^<`P zmw#GX3pO^uKTQLlFBkZH*J_$L2`zXe1&_=9(DU)ruR+Fm+h>V$#5csZ#CQU40HpcG AHvj+t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse120-vb b/usr/share/terminfo/w/wyse120-vb new file mode 100644 index 0000000000000000000000000000000000000000..a1f3f0fabef2d6ea6043cb08ed6e5578fe822cab GIT binary patch literal 1281 zcmah{O>Yxd6g_vK6_B`M5edYtsH=M9KmgB79O4Amu^l_k2Q&diibxhU8M_d0TgM4; zOoA&awGtaPRaNz4!J<`>5J(_cbislJ3;qNf{s22Ri0PTJW26A$N$1^r-aYrtz3w>z%Y_XlVvf6aZJ%Wg;^}nehruVdEyej zM-6Le;3}?>|Ag!KmG*c1g`4=B-hDj4BRr?)c`xu1uL95WUbD)b;&~s-ZtmT(S9)Z> zd@5myNUt0bOX6}|h9t>oN-~n8_19S2w%FVI_#MApYh0e zY&(}&y*j=_3s&IQDXB5!ClSR& zBxze#ETzREzg#y<*(f!o2;~~pnx9*W>9m$@EgjZkno1V-Nsm_e?MbcMydmf>AJi5} zIw`;QITp)abe0`M(jmwMks-3gD3K%b1e=ipF&^?eKMl?M`BTtIcHf22o>tHEPVitO zod;X_0XlEL<8TH&Y~TxM^K)&+neD%Rc}$DLd_>=`7qr|PG@e5H_KQK?=7?EMn5%lo zENicM!ly%|Zl2uDnJ2VhMy;rS?3k}< zTe*Y2#BNDksEyq$%^x!QVn>cy3+J3~*3U0ru$L}eJbP)RGXHJ*yZmx)b@Xz4EmO~~ z_cvCq)Hd8^6M7|hjM$qO;zTDnREGm~9ge#cBaT5cHc7_j@gQ_2_#-wTlN`bnagsPi Jd__!$@IMa`#MuA< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse120-w b/usr/share/terminfo/w/wyse120-w new file mode 100644 index 0000000000000000000000000000000000000000..386bc5594a2dd5dfb5692b74fd61dc9d66ff0201 GIT binary patch literal 1267 zcmah{TWeEU6#mvx@lvCrf|mu3Vm7H(%{iy3P3@sgnr710OC1r59njR1da13ZZJg8E z8b=renTHV-Mi5aD1wj!X1by&f{>c0R-{xf)7>M6Fi505ihHtOix7S{4uf0_~Y(f+M z#$Q%2>$vvbU_O|g9{r>_Z3~`A8)9rbgGmOqJFV_s|MK{iiAxYcv?AFs1cKkN0-I6e zx?yUy5v-$cIhjkajNau~h4t7H#dp9(3j1+@mWK>_kf&C_AWl#Y;}rKZ#954C0+Xm< z2J^IkW7Z1?D4pDla5y)oQMl=KkgC zw8pHeb;G)8{cioyVBEFtFXBF2WY_aNZg`)3HM;n&XWwN#w_aMWtvA*?>%FD@9AFG; zLtElro81LH9`{ldCmZI7xnRnUDIGIq*OYRc@iu7D=1R8-s zrTCF4{XDebLIdV5l%bOp4s;hqil`82vU;J-+P6dtcBBWSOfeK5B8q7yw(Vq>7CXW^ z{T|YCZqfo-CE3$$;#Gj)N$TDpn<~-QDgb2wx~N6Kg43$j2>sJ zkW38HPh^Q6B1iNRd4kPIf#{2ct^Wkghs_^^4zT?u#8%aN9(KcbN^~boi}Az9n!XMl zcD~{~ij8bwC$zdlt0|ripS{=__u4}xDClT&)O8mcsmJ0TAJ=r7a@tgMml@S&(;1o_ zH2pknzt?nX!6fWN=ypxT%%!iH`8ta=v{Enc=f*&4A&?49cflmDEuthciBD(SLyA+U z_)rHcSz0(@v?TZJvwt3O&(55iJnvjMKX&qB_xSKc=2CvLx01V(`Xw9m%(Tu=?$7LxElqCooI=CMsCMd0avR>)0f3<0E`V`z5}@H@HUcCVs-NxI-@p{=i+_ zi@YHC6Mx};=)(xVEqf&d)8G-+a$$WS#2 z?bE3}T5=-4MM;CH@DNeX@M6bFjcIu#tka*MtUygAPPrzu5uUB2^psXzt-P$|9F?r> zsRLT$w`a8F@`k9fVpLny9gCl1v1~?X*(xL#gG>{7VuC0TlSGkVGg2a^VqxoVK#O7X z$DuQ9zX!2>ou22t@SPIl2|Hl@@Ufa#p!4n{f~RqS4ZH+xAJ%r7r^9D2kH)jZq0=g9 zwJ+*=4Be~G#j|`|J8tV4yQ=-Rs(p4eq$8w$k=&oOqgt{FClQ7{yK1*GAK2}ViZu+< zuOH>cM0zKY4ym_8sT+zUiCp5r+2K&)b|gO3#a@;cP8b8JSB^MuEqL!;et%`jU0ynO z_WXEl{zC3zab7Fy2~uu zW@tmmY%}v_(fQ?a*3HnI#rbQ_#&R?_@h8)h+H%nvn?we*Ic((Zazs_KQ$9U$~B}@-r0$; zj%dNwiLIJTP|3nptkN_5c2>(aZ}9s|`?UpQPTZ?~jK#7SJ;073i2!7X=p&LuKanER z1e=izF&OYV-v>>5=ZB$LcHe}+vRcpMj{ji2^A9$C1v+m3B{+&zY+y6Ax>2hUp7vh9 zFrc}ed_>PLXSC4bHy%g*_EUb{X0KU{nk8*D3)*7#c(j`|pC-?z%pT2{AuHsC9kXOs zqLJH8OG1gzud`jA#I8y5P#a5Gnm1&$g}1d^hmShP zW{yvuuuq;ib?9{OnenrUbLq)cssDWBLSH#K(=j`JajKH9R-qUD#|Zy^Ax?CNLv=XN lyu)!%go$=&pH0$dGu#Co_5X+pB+DTT6T68$#9m?~fS*={xw8NO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse150-25 b/usr/share/terminfo/w/wyse150-25 new file mode 100644 index 0000000000000000000000000000000000000000..fec1a364b0c5eebbf410f3bdfc055967f1c9a63f GIT binary patch literal 1269 zcmah{-)mE67=GSUHk~zINO8;;O4S@=Ticv-n%LCFG)UweE^Xt| zni?nD7-JxVfg*~+1{>l`2Aue2ZDXz6R_*w|zNR|Ea1Y~AhI$g#fcy30jiu!tCqA&auv}h)2!a*J zmLU*KV=q2|$92c_ya8-`{s(m61A6yh9}c$SM{pWRq>!OMivo%`Pi+dH;S0(uD05#R zmau{<)=|f8d`J67{EYjQ5Ahhk;SXxh@dE$g6*bR$jW^g1G|z){$cN&2d!>{60XZm# z8FzPaf8Av_&$-v~K6r0*_rD(fFYAf%yYZ*- z%-AyiGW0C=AOy9b{o!QXNi_yE$myf!6qod`@+_4L+9-GIH%FY297}+N3;=RwtxHONiCh`CHi_TujSsL@f2F8Uk~aw$IME? ztZJ`W))VHaZ;sG(bF|&8IjVUxVnuwnV^+<2;+DDDWU-7P>XlR67>Kn4G2e9BCVBCI z5=lpPa)*72-K4ls8y~SWf5_;Mo*cA3zv5h7|8nJ;y>RXN>{nxpb4%&v+)B1OaU=H4 zcrCL&w6S(`weB_=;G0v|;qY9Cqn(cugV1rC#<)%QFmyVYejQTeg`XonCC(EUh^Y|X E0xJ~5`Tzg` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse150-25-w b/usr/share/terminfo/w/wyse150-25-w new file mode 100644 index 0000000000000000000000000000000000000000..c6a2ca4b4ac05d812e360251f6cf3e192681c0ab GIT binary patch literal 1267 zcmah{QEL=e6#mZGqBX9CDu^CPBkpBQW89g^CfPJgvYXAi8f~K@1|zha&aNggNjJ&r zBu$Jh){sG^7DS|kDcXksbD&FC{=Y02k_uO;tog;DqhtP)q z@YD%cJ>Tv2d%MH+aCN!%7V&!DUf&`U6m?LQX1K%a@wPTJ zT*EBpv4{p%uulFnHgS*k0UqHGJf`;)|Kb_Dw5LAD3;Z8@QS=h85YZR;M0mEe$>(xF z4vET_a!gXvC28>_BmImHNKS@n?I^Ttlf63^KNugA@1-H3tWt4X?#lgbHyucKLK-dS=&XRW2U<81EG-rd2Qd46rJ{`TJJ&a>`+RQ1sL-TBk`%X#Ab z?dTcoMgr=i^*IM%_*h~O3<>0MfOV?U&1i6Og*sAQSg zb<;yy8L)K*Ba{`XsU|7clrGu5)wGUl&C}{vTFFz%%Jv`BIi5YHp~nnyW2LyZxH}d< z!D88rUSg||d;)TYC=eq=kr*XP1e=jEaXMjJzW^=S=FdXM*nS%ldz(E^`u3hu!zt5c z0()7@cc7Erdlt{*AR9Oa-8iZn8Sb{%UKvd0`mGa|wbmJTJ%m>3*<_BFYlcldYZ}^V zYI@uZS~@@)l*ofoGpJ>ga#MEMHx09vy=~T;D%Q|Lzuw1*fy{OwW2wJQsq2j;seEc{ zZ@-mzO-TUt@EJ?9FO07AiIeWtDgWBa^~Gs#W_tF@jp4b;`TRm@akNpqnYmR6M^<`P zmw#GX3pO^uKTQLlFBkZH*J_$L2`zXe1&_=9(DU)ruR+Fm+h>V$#5csZ#CQU40HpcG AHvj+t literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse150-vb b/usr/share/terminfo/w/wyse150-vb new file mode 100644 index 0000000000000000000000000000000000000000..a1f3f0fabef2d6ea6043cb08ed6e5578fe822cab GIT binary patch literal 1281 zcmah{O>Yxd6g_vK6_B`M5edYtsH=M9KmgB79O4Amu^l_k2Q&diibxhU8M_d0TgM4; zOoA&awGtaPRaNz4!J<`>5J(_cbislJ3;qNf{s22Ri0PTJW26A$N$1^r-aYrtz3w>z%Y_XlVvf6aZJ%Wg;^}nehruVdEyej zM-6Le;3}?>|Ag!KmG*c1g`4=B-hDj4BRr?)c`xu1uL95WUbD)b;&~s-ZtmT(S9)Z> zd@5myNUt0bOX6}|h9t>oN-~n8_19S2w%FVI_#MApYh0e zY&(}&y*j=_3s&IQDXB5!ClSR& zBxze#ETzREzg#y<*(f!o2;~~pnx9*W>9m$@EgjZkno1V-Nsm_e?MbcMydmf>AJi5} zIw`;QITp)abe0`M(jmwMks-3gD3K%b1e=ipF&^?eKMl?M`BTtIcHf22o>tHEPVitO zod;X_0XlEL<8TH&Y~TxM^K)&+neD%Rc}$DLd_>=`7qr|PG@e5H_KQK?=7?EMn5%lo zENicM!ly%|Zl2uDnJ2VhMy;rS?3k}< zTe*Y2#BNDksEyq$%^x!QVn>cy3+J3~*3U0ru$L}eJbP)RGXHJ*yZmx)b@Xz4EmO~~ z_cvCq)Hd8^6M7|hjM$qO;zTDnREGm~9ge#cBaT5cHc7_j@gQ_2_#-wTlN`bnagsPi Jd__!$@IMa`#MuA< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse150-w b/usr/share/terminfo/w/wyse150-w new file mode 100644 index 0000000000000000000000000000000000000000..386bc5594a2dd5dfb5692b74fd61dc9d66ff0201 GIT binary patch literal 1267 zcmah{TWeEU6#mvx@lvCrf|mu3Vm7H(%{iy3P3@sgnr710OC1r59njR1da13ZZJg8E z8b=renTHV-Mi5aD1wj!X1by&f{>c0R-{xf)7>M6Fi505ihHtOix7S{4uf0_~Y(f+M z#$Q%2>$vvbU_O|g9{r>_Z3~`A8)9rbgGmOqJFV_s|MK{iiAxYcv?AFs1cKkN0-I6e zx?yUy5v-$cIhjkajNau~h4t7H#dp9(3j1+@mWK>_kf&C_AWl#Y;}rKZ#954C0+Xm< z2J^IkW7Z1?D4pDla5y)oQMl=KkgC zw8pHeb;G)8{cioyVBEFtFXBF2WY_aNZg`)3HM;n&XWwN#w_aMWtvA*?>%FD@9AFG; zLtElro81LH9`{ldCmZI7xnRnUDIGIq*OYRc@iu7D=1R8-s zrTCF4{XDebLIdV5l%bOp4s;hqil`82vU;J-+P6dtcBBWSOfeK5B8q7yw(Vq>7CXW^ z{T|YCZqfo-CE3$$;#Gj)N$TDpn<~-QDgb2wx~N6Kg43$j2>sJ zkW38HPh^Q6B1iNRd4kPIf#{2ct^Wkghs_^^4zT?u#8%aN9(KcbN^~boi}Az9n!XMl zcD~{~ij8bwC$zdlt0|ripS{=__u4}xDClT&)O8mcsmJ0TAJ=r7a@tgMml@S&(;1o_ zH2pknzt?nX!6fWN=ypxT%%!iH`8ta=v{Enc=f*&4A&?49cflmDEuthciBD(SLyA+U z_)rHcSz0(@v?TZJvwt3O&(55iJnvjMKX&qB_xSKc=2CvLx01V(`Xw9m%(Tu=?$7LxElqCooI=CMsCMd0avR>)0f3<0E`V`z5}@H@HUcCVs-NxI-@p{=i+_ zi@YHC6Mx};=)(xVEqf&d)8G-+a$$WS#2 z?bE3}T5=-4MM;CH@DNeX@M6bFjcIu#tka*MtUygAPPrzu5uUB2^psXzt-P$|9F?r> zsRLT$w`a8F@`k9fVpLny9gCl1v1~?X*(xL#gG>{7VuC0TlSGkVGg2a^VqxoVK#O7X z$DuQ9zX!2>ou22t@SPIl2|Hl@@Ufa#p!4n{f~RqS4ZH+xAJ%r7r^9D2kH)jZq0=g9 zwJ+*=4Be~G#j|`|J8tV4yQ=-Rs(p4eq$8w$k=&oOqgt{FClQ7{yK1*GAK2}ViZu+< zuOH>cM0zKY4ym_8sT+zUiCp5r+2K&)b|gO3#a@;cP8b8JSB^MuEqL!;et%`jU0ynO z_WXEl{zC3zab>KnS1=%NSjba;(LsAYX}Q#F0QJSrTdV zpqJiZ9K#7(4`(=EAg*8(*D!%8%-|0BEbihF?Grr3bG)SY9v|=--{}`T_q*`{1BX!as&9ax-gmg%f)*q>oEwaUP`k(ne$;yOG$xSM5 z$$fb=uY4h|<*n44LZQjDa9%uG%_TEqZkt(i&paq89-7Asv`-iCVx4ED=!?H*7w+|H zN!4rf#=J8h%t!NSN$tYw|IfdeuSU~Yju6y_)`a7=b}RH~I9^9HP@;RSoMT0{MXVaj zvvTg7%b%r_(2ULRrWpsTNGte-wZFLhNI34W%0AZilF*b3%{#O?=r9f4YMK}^Ml@2@ z1+CKVGELcmpJz)WOwstrG_s&=M_V=1gobXq%AVHw!xP;MTrM>u##_!n&_@Q_VJVM>FZ~P&pPMMo*%f7xHx#J z?Q(LsYpnBX>{@%i<9hA*=)}mRH$4rV2(BUe=Wh6rX}+b)cl2Do@=%o618sLm+8u@) cpnbtdn1t--_4g15h=ar-qL(Eyrw9+f0ktC{jsO4v literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse160-25 b/usr/share/terminfo/w/wyse160-25 new file mode 100644 index 0000000000000000000000000000000000000000..a23506c4e3aa13b76ad178679e3cc7797715f264 GIT binary patch literal 1356 zcmbVK&r4KM6#mYYsI&=+BI-~m&1*6<-+RvJsFUNbX)-G<0?QUnJ*S^)qoYk~PEFM;*nt{smoKI;>$KR7 zZtPBBHlMAy!*pxu*T(He@8;Od_(ZK6YaF{ak7Bw^T%h%Eh4T&KCi1w2IV|8F9+E%CQ@o;mgSU8x zMS7p{1z+)vUa9mQKkzf~NMK~0a96439Fi@vU3SWDsS``;rBNJ-NvpKWVP=!kBPm*c zq${?}exLjQnjey^%*le>rQ(4+lUJ+C_p&4(rNxv=ZKi|s@1xT!m&Q%b%$PY-tSIiA zM{BfC*6?zjXO-ylKW5kN_2QqZm*%y3Yu=efv-D5x+Uoz$KbTKO`>`G&s10ohCz|a} z=$UXLMsu!04_i6MiquA|2FtT@?uyGlOXr~(8yh$~*hE^xpIe8^%TI?B4yzntZ7&5) zyU>C|n}bf$(51moPPmuyGq@U;} zdWc@4k4O~UVI{3x+?v*UE35mh4xhG>dMR?R&+5>$6|p0J z*tMpu`S^l$r>tTV&Gd6EoS2BNCZaxdS1EO|KoaSStgLPIB~Dr5K^<)5+oGZA;350` zMfdXUE0b59YgezIyOA6l8Sk1%P4-Rq&O~o@7kX|t&*tZ*=DlJO{MpoV`DUKW7aeUP l4neyel5U6LR_IXh=<|?cyy^ksIB|kFNeuGcGnWVtzW_;+D}w+4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse160-25-w b/usr/share/terminfo/w/wyse160-25-w new file mode 100644 index 0000000000000000000000000000000000000000..a2ba4018ad09c437f392224c11ed5416df8c3ef5 GIT binary patch literal 1361 zcmbVK-)mEM6#tyBh|?~DLm7J5Xfa=6*VWv6o0!(drfC|}>ZY9t#mZRpCTg{2Y1$fV zv?816i{Ka=n<#7#Lws;d&MTYB#n>J zg>CZGG?(2yPQRD#Z(eRLFH~2_G)XsEw>#kV``^wjov(FMH8)$UE=UPP4mC8egk@YI zzlQ7hf%Yf-g1h*Q-k{0&I=4H~AK#i?`>&thsruF2GryZZ%mefAo!Yh4-=9A+ zPmE4t17c7I+856bI3v)b@obvrScjglv$pQq$`M=lY^A^#r7dXL!3UgOd`Q~Ghpp4` z>=2h7iDzA!{jBL1p(PL6bZP6*c^bOCG$~?{7^G?(x=Sb4X~~KFCR=GRMH8Yt$bycO z9MSSn*r-27S%GCLamqEJjc{!xsfV@dYUML6k5b9bHgDBA{@aO`v!i0vSUl^Egq=^b z({L+Cxlzby3^GaNi7}!;j1xtIJCPDG5yPj@uUIHte-L_rd+$PQQ+vZRUU*80T*CHQ zKRl|1tI!$uEx{>lW%oOwD?PfBif1$7p;z~_OxocthuaQYFKM-x{W{EdesVVYm(AJw zpk35nTh(25IHW_Qev#ZCx5HYp2`3STJ-cXIgIDb3wu;>h(68^|#6)T}kqW7|N~udn zlEi4@_1a7*aoZ9f>S7}=8GXsmcRR;Vc&9F&oKfYL4N?ph| z$1V;mFI;N0{FN2(wW;s%@_dh1TS*eTp?Q}i?=qZ$PDQuhf*jzPA0)mYz9bG2hxq`? ICkY>~07@J$_5c6? literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse160-42 b/usr/share/terminfo/w/wyse160-42 new file mode 100644 index 0000000000000000000000000000000000000000..3a43719c0030f51ef34bf3e9bf72e7800cb2179c GIT binary patch literal 1373 zcmbVK&u>go6#mW?L2D$02q&bCc}80`@4Zgj(GJsJV~nCDl2Qx9>-bSs(@q&}bwq?j zL@aDrNF+pbAz?vSSXfy2ORVi|WPI<03 zwAy>2$LQ&%t8|Z*cdSTV#A>oUEAK9Z{8>5+&D#8Knsu<6w3eS+hbqgDh7&HU>|<>& z1x>rqqC=mDPS7!IpoVi?dV?3?)Dq@dR+B- zTc9Ih$~B^s{@RhK4rtENkw(pSQOVBMtk*H_Z3oNQQ7ULGFzkE?delG4G3W_MR|t|J zx``g5m*^u>1WzJqVt)u*p+{KAKY2g&0MA~FP)+5)!)|b2$;JCB+<*={f0!J^dUn4J zTB_GlESzZfFF)I{&}XiZk^dmo!lOZbD{1B9)|56_Io)A(`gAv`mm>H2tWHf^5j)~f zyVjI78=teTS5)kvg>k-(hKbl>BIZ+fky6(hNFrU4g|+Rz#HmO;sDo8}STsdB7w9tXC>QXM#J3{<;{xVulat t@-KKUpLirn?1FYXB;5|D+o6NOFPMcK;NABV2Z=+(VPb$KvS$bnKLKnYDDwaS literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse160-42-w b/usr/share/terminfo/w/wyse160-42-w new file mode 100644 index 0000000000000000000000000000000000000000..337e845f74a3f50da34b34eb0c254687719d8b59 GIT binary patch literal 1378 zcmbVK(QA`e6#tzo;Ag-#Nc~@44sR zkEI{m(1ES;*wpIoE~hW)_0=xa>Wk%7GDXr!*6Aj^KL4A!<+JmhRL#xImlq*|aD?_1 zfm}he*+aC(G&V!9fx>lI&*%nh!bjL1=DXk_i4+FOb|Z@%3iKv0i7DD6IL6s0PGJ`F zsA3s)TqOSv-{VKxpYaQR$8~yla2J2#A9~H^zj%VDq1S9a!*jd{d>Cmq*ULtU$cM63 zw#z5dC04qnPvYW9KeH+MLUz*zW4LWw?9Dm*pZRe)DpgsQ8Wjz>D!;8NZ^~`CCrQJT z%mC*%N5;&WOXjkp!u(lM}16p>q)T6}_Dp}bFTXc?RJK=Ixln)Dw zW)ed|a9}h z`a?-i4S$LkuQwi_~$#FBgegy=T0r0c4tnXIXpW&H+^q8>km@A0imabhPl>yl($hEveV@H;dhd-(|a Sh%bq+i2cL?Zc#iz_;?A}$SrOF literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse160-43 b/usr/share/terminfo/w/wyse160-43 new file mode 100644 index 0000000000000000000000000000000000000000..fda295a5d70c18d2e3146b6542500cd89aa6402a GIT binary patch literal 1353 zcmbVK&u>go6#mX_1g((}BAk#m<{4Gh_ufp~(GJsJV^q-+NvVb5b@Yd}rkyg{(KdpG zgh(V7T}TKL77`Z3)?Z_7XT$j3n`swCB<{<1&iU^B?s@0lb9af29jL)}`DhArPK(_b zi{38G<+GJ=kYO$3+PK~5U7xryIaM2rHcpI9W%Ce0Fap0qAQ(WY)IgNSKKv~CA5evL zoL!Gqt|O0|n8yO{;6C{SJi;>lGd#yD zykYbSpYa7>8I?-k@Et#bhy+H~3I8h9v?19d+hwQhmO8PdUK+)bW@(i+Il|SXbV-Wd zAL)uOv)^s+U)KjDEAz4-OH|yI$FjVtd?|0`y+lo^)MDbazmInFvovld&5S9SVnwlJ z?yb>2Si{SC9#&=_|8aHgzn=V4_0%kzXXb@@ZQlMzc!ii@4 zDD)gX-CTtpv2ui_naX4YUq6k=F2W>tK2N*>J*TmSfEArJ!jS zT5#xd&}lk`^>i^}mWWf;1KqF3t2Au~ae*bxaEZ=GCLT^Ww%v48Gl%_xy)IY1?kIFP zOu0sM#@{>Kr2U$8bohW~I;do2o44r%|7{1`Sy3t|EHJEm5PH@>$~ou-NJj|LOLP)l zL^shxqzIlw(!}u)_CU`tk$>_&=n0;^2BGTmfrs4SzLKl=m0yAmIe(ZOz&2LD7rI!d zi?MK`)xZ2q+e)2T_QUZTQb{}>Pwum#DhB6$i||f>EI#z;$`>h zt&!bS^(XQ}h-W!I!3<%f5Rq+d14s9D;T_ gB%KbYTcHC%$BU2?yyrgRByoy3P4u(rnJa{cUq+iMo&W#< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse160-43-w b/usr/share/terminfo/w/wyse160-43-w new file mode 100644 index 0000000000000000000000000000000000000000..2e9bc4e043bfe3d280bbe86ef75f14c99ac450bf GIT binary patch literal 1358 zcmbVK-)oyy7=GR}#@uQIWkcqR(qax-tzEwFOS+^sYn!H7+D%;@gR%}W^Gn>ib}>y_ z)0nO*I0QjZM3EsPB3|rbs275Njo03JBZA;QpYtW_MK>9E4$pbt=Y5}Z&U=15BNKQU zLpUbCm`>L}<&9@EO%Ot~O!+s_h58qzjy3rV>YJIg)Z$kuei|u^^`4CYw zM)cbX?nSNx2XK(lLpXw`a6HbBAV3y5Op%>N5hYaUEn*4Fw3qP)$B?*+H8jw|7P`1e z{sC^`Gukik6~4x|^zPzE{EFY`MbYp01AoR|6#a$2@sIOiB#I8oVM)l7a!iiPvoa!9 zMrB;m637IzIeAG=)4Db@uzmL6Sp3iYg1jy**^&+wJ^4s(?;t?31COnB4Ki?lS|0li{ZZPT~43$_{9T8TeOd(f(f$2j_UoOFmETbGlC zJf~eq76O_xTr(^~D*?3Q(>9?SG;~L4vcx8lr)nO0LKhBb#f$w8OKCAh<50~f3%=*2 zr?ooi3JvE14NDnlElIhiwB_d3(t2L&zSdsQ>MWJ4?1`hg&b_^OIx8y2g(VA_X;=9& zD|JV?2)zWEO+XfjA~8plh*V!ob*k?$#0PO940gC4Z)9g|GjBI_ z)YkQcopN-NG%S;c^L9!rHsz&UIIx?xm%nLu`YM)^q2D~kfr;#1BI{_dN2!~LC8^oe z{kb_O@%xex>fb%Dz+V%x!17 z?RQ(faCaB{Y8nRo0Aav)t)+>R(4tRL^cl`Um*S`ILC*5R&k-*ZuMn>i=lS~8H;EAc E0y#e~5dZ)H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse160-vb b/usr/share/terminfo/w/wyse160-vb new file mode 100644 index 0000000000000000000000000000000000000000..01788a4df6c5e54fdb5dc92e9f71ac2febbc8d5d GIT binary patch literal 1368 zcmbVK&udgy6#mW)g)}iL)S`GmQ=I2SQ=Ru-CT5aMl9^1VW3>6v5E_gKV_rs+IF?B= z%_NQ{v|YHUf(t=J5L!gRh0s!5xKMD>MgI@i?z$=U^?Pq75u!!#!gtU4&iU@S=l<9) zN3j>p_+0)nl{M#teQagsYGrM?PI6 zIE+Td8mWBaH!%7M{oULx$R0!jJ?KN4EQ1_|F+y()-{KtYc@#L$6PK}wGFDN=27V&H zj-PRd_8#uzS3IQm2cF^uUeWXY*Z3R%gr4vJ3rK@-S83$jEW6}0*()js<&Z?BU1HK9 zosy7VX8R;18QNfE>$b+;opb-29~Dnlr7G8`_(5*Uoh{`9c`Uz4-1vT%>E`_INSaG# z!~AHjn;Ygr`#| zL?r33%2%xIWuZA2T5)Jg&_x=$M`+?inMhDI1Z~rk4VtqQkG$v*$Cwt)umwVY)r?r;OOj8&8MhjXFK<3k$ck+GYR-z<(ID(vWviOFW?ikR*hB~Y(g{vX#J3XhfVx|hy3SA%O+`1?b_EirCh?#S zKIPk@J@(~s`|Nr5!s^AvIcI)u;moCh;`HUzciF|Ea_0N^O1d(*+Of8LWvS||uS2hd z*ARPqH+;xpzNO1|^jyC3Y>YS#O*hc=!>jkW;+=)5O=r2r){Gu|$4`@bDi+ CU@D;i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse160-w b/usr/share/terminfo/w/wyse160-w new file mode 100644 index 0000000000000000000000000000000000000000..dc73488c01da55f3a186226c6a9602efd5e35c02 GIT binary patch literal 1367 zcmbVK&udgy6#mW?@kctPiemMk7@X@Qrg7eTnK+3VGnq`rNwn2egkVG*eKY=y>12|0 zjH4-)N}-!lL=3__2_Grcs&TJ)4XZ>z2?AF)->mh=2k+JKfEtmf?E1JX8rWu1s; z`nl~$Jmb>rXHLHWEqc(pOIwA`(9rFqNfC2IA5|mJ4jo;gMJMv>ETzT}O^8w-6FN?E zP)q$`q5d#sd8R4HDc6M7!oB6B9@dJh6pp))f7RRxH)$f2Vw(DXlo=Jy~UfItyy$)|V&~#XOQ7auJDaKoeT!_xHSzGP1 zbJ}Su+F=Jm+E3~i$o&yJphcT-65+CE=WL_zn!Vaov6>$G)jgaTNG%0YA@!Chb-j@! zF_d_fxEBVQ8=lCh_%;mE)=iKw>E*!g<7>nQ11@G?Pg(nWojYmP$xUVUjmbJ9Szo znIzM6YARI0jfjXMT_^|zp`xIRE?l^9;ljVcwL3Q=6iWO2-kWKJw58yM@1FCW^WAgL z{qcfKVG#XzPJTD-P4}QP+8*6lzT9(TuNA~$`tzHuV2EVMO?#vMyN&hp7ltVJZjXRqHLOFY6;3UsjJc2T1t;=;A-teSasV<%l!z%}nwTNV1WzIr;_v`ogucN-(fXs% zBRqRQ26lH3yy!)@lq@Fgi1nkZYF&XYx(^7Rz#ewL54!b|ZeFZv!2+`G}5_`ekx|#^$wRlTI=Udv?usa_`y8T@|}Y z({CQ+#6)I0k%_3cO{vSqlH_Fa-rBK9;&vrI)Ws8gWQ?Rl9LQx8?x|n|FzLx|fn>^-x=R4<~ z^Uk^F-p4#64$&bRpfT~A?DkYT*y#4!bF5E6kAM&f^CJNr1KXm6tf#1-JSD6>LI>b` zmR_Kv#%M> zJ{MnzFO%4>#clB|_>Yh~;wSM-;@{p6>tDs6;=Xu*l>zIZb=d0nk3jfQR?3RNk69De zEcB|?vp%#gTOU~;TlZl9Yu!&GEqOo=$|3orAU^(k@TZqx1yXWoOB0 zD5nxR4eeA~qgn0d;Pn;&1-ty#Xx2B56R>xTBxm~n=>;0(G)P_tHC$M{$X_(pBKWJ2 zSK>uDJ--HC8qIoKa2%DPL%W>GL@p|yu+ubzg`f^l3?uIVG&7&ymSz_2fX~cqWrBu5 z>kK3B0!$rkBDIO~+(rAP(X4XaqdD~9avv(vehVehY;X#wBR|q^ghhB14CO{D1w(1x zP#C2n9iWYzedM@3<_@DEvfehk!OU{;<}bo`oa|zW->6^}v4DxQQ#g}koP1~ZJ> zHJCEU@EXKe0b9ucbD()uvtOpt>k6VF9>j;=OkjJc#^A}m$SKA`H!(RD4?H%w@7)+K zYJ$0*A$)4?62NB&7?g)$Ku)7UFH+Ap?DBIB_`QJVnTlIdj8KM0SB5 z+rC;!^#YEd3+X{tAWcY{rl)6S=I0j{&Yi1PYqffPdHMYLMx)tmwc71YXJut|wcA}= z>-8>NSYO}R*xbCxhcd}K4f#gqL+pCY#jD0)@o|^6Ib7dR&tS~Waq9S-O^7z<@0lb| zbEIeDJrl3^^F!CDtD*^~IE;QxvN8cFoyJK8R;p|K8R S71E;WjHc>Y1@WjltLY(y)sXoB literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse185-24 b/usr/share/terminfo/w/wyse185-24 new file mode 100644 index 0000000000000000000000000000000000000000..fb879978654dabd0501679b6dfde3cd245fca600 GIT binary patch literal 1700 zcmb7F-HTgA6hCusS=&;(j}|X2vF2h|)V(uzZf=$v6I+X2`$5twblK>#X|tb6cC$$~ z*>uwieX%b^eDMQO9}41&A{8u%2)_8@gZLs!5mZnR6!8zR@ptB4ccJXd4mrR1oipdm zIdf(%d02S#5bdQg@u}VG%WUwZ(t}>VJ(tjnpegWFZ>h7GQaV+wbSkO((#l+$NSGf_ zAO^t&m9XC-8YZKJ#XU3v+Yx${#>uA~)=tqBP16j`fiF-S*rQE)m0qKJh`hvcqujyO*j=qO}mwu+-=})kGLlPrmTyVOaI4PbtY&blFxs>qX@I^5t zX2c~i56iM>imn)l>*5Bqn~>MV8{(bB_kD3od;tD2d9>oU*&*Hl19JC*00KcW%^; z$eE;lXnPORhpa=^AZ?nRtyJdc7Z#S6Yqfg4(O6koU2Qhk)>^H0yVF@;?{<5=jg5Z) z%9YK{!QkrEYkU#YkV43BuMpy-V;;6T2aT_|tjvXKLw$oWH&>|QyEQJ#+_`Upe8rx= z@%N3tAn3KdEhl8wbhSKU+*ico~Qs7SleMHdQEbR{lyBZyLP)s5qK?t4i}UgkinjB-Yu4_j(nvDB7Yc)?v9U zu8IwDOUuExnDjhIqnefZNo<8X|s+Q z3HF;g$ke}`0KPs8IV2q(rg77*L0PsNE2o zuqY_X4OI$?(tM$GmyvC3Mi^@ z1{Rg(eU&koWz??0ltG3!Aw~;WOB$F1&8w>YDiu#Eh=zC&A9mA$&88ZKJNqJs7!B3L zu`KD=pk@+-kJ>=r3Q_y(akv7Bi4fPDh+>BGl zb2cv8%-=IXo@P(a_ZXcNgi_E&MRcKyE)=BbN?hnh5T)R%i}5@6y(A#nWSH~a@0@$i zJ?EZthj~)GK#x%$4T)c5r>nBTvCc-P+nS5n8L$*+YN?h|o<26aTv@5sQq|?s9FZ_z z5?EtkUC`5KqG#zid6dWAYcxTV^ghjjFHj5Ep>?`M+w?K`b^4TU z&`q!}=r(E01j;;do4UJ2_`!h5}{ zXo!wj7azcKQCt?=;)=K`u0gvF`AmE+ZY927ireCA@b4ja#1G=9#J+PMUVj$9i+kce zcKWQt))A}MI||{CvNBc#e!`ltX0fhXU2Ds_WPNCTWc>yGAM0M?X~{#fUk=DeCC42G zzHZp4JZ;u@4f5XJX9~6%Ils@&p3i=)a-fKY?8r@dQC^nY@`}7FugOmi6u(~u``d0D z@Z6j7EBURwEA8SWJxGs`U38Y5x^ha9Q`b(Zna*ps0IRnE7_p0Qr1QQpoPxfqBr((f z4REa&OXN>Mng3*IgvEpSh?;!A5Ln_oX-%Rn!5z>83G37p&5|(P@os7XX_)o!n>tgd!CYir%^`Sa`R8ylOO7kDU>eACd}H^fUCa&gosY&`Cw zHpBG|^$f<`j8n&RHZI!C-!nm;W>3%fd&Xb!&kv>JXIkPXov8taonquF?fF3_%;u(M n$)3bN1^-v{Q7Ty<-d*jnH5Ar{tU{Vpp3zi3s~{egXEpr?-u#&P literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse185-wvb b/usr/share/terminfo/w/wyse185-wvb new file mode 100644 index 0000000000000000000000000000000000000000..d7bd0b4c2b0f038affb3f23a315423d5925dacf9 GIT binary patch literal 1732 zcmb7FO=w(I6h8OeP-w>Q0v?r(+|E^;5-`)W2p{M959VbOEV()c2N9XARO@q(S60l8Ox<(uHA^2_j znC{SBu+QlpeU0^7x=%mQ1Nw!2rQf0dL4VOd^a$*LI4q8cQ-af-6$LSASg$vQbuQ+; zURl&cTXe-bELX&Ju_11Vo8lI<+mKJhr{c5N_X}}PdyUNC>h+$1@b84>TWRpDbgVQ1TCC$_Mwh?;E6Re42TmmBhiyeV(Vk9HNmQw2NQ z?(Fj1yYfrO!UP>4yWm`O>dGlaPF*{tMlz$_EUexfV8kxGnaudcFbaK3iDM@J zA3j3+I1G~0K?P432l?|xn+Jat@=AXbM$fN+k0mo9Cp?YJSVOyzPDd^>kJ>3Zh>f5M zPz;GP0L{$j(^AaBE%2F{tDL7n&?-aXZGg$6ji)wVo;zk(GU;f!)`jT z*;J!&XP@H`qoJBUc{y&pv2xwpKAhB;IiDdsHTNRGX9yUShh{)7pg=EDPuK0j(K_s2 z!2R)fLb(7gehA&?Ha5ugH-0=N44d}#rydW#;5s>ehONkVBBmZEUxOa@bsse7(*RWW z=`g73(-1V}L{$z>JFSDx%%BsIJwlIdKCL+W2u9F>bRliX5~N9!lf~lf?A+YKLb+V2 zRI7`NwOYNtwA5%co2^#6y}aD%tgLjqmoBZYuC1-FU*@4q@J&N=-w-cp$i-2oVdHTZ zv>C2%sAsUx%{X;`&c;QX`FkeF)9mRPf6w?U{`^onKGPCE>ET5{&M8E$(w-j-hpF^C o(_~NJ{{+zhKDxN{?dAcEk+g$oxhT)1!{f*^t*BDjoaCW&GSop9!y`#JbZ@(tW1-y-f2>(*DRJ;Gx=Y3QeThUe5T z@RIv0;x#9Fi+6aB5BNy?6F%b$zEXX|cl;om^|QfsYvcZFllX50Rj1maT2FPUh}x@8 z(4SRjHbhPKv?{CHEs;CwZi{EV#s0s}{Y|6I+y_cBXh#U*K>DJ|gyTU@L#7+@u=ZUY z>xt<;eOdbhP06?GhU6W-sN`M#JGz4iLUPfhYc7}~lO}j=x{VowvJX;din^H&KzhaO zixi9{%webBll+kBC&uVZoJMCDG9FD1c(5BQ=2(Fp*gl~~Lr^K=2yv7cBgP35){*&WGVVc-m^}Z0_7i%IzmlCs&q}Wz zHnAak(rvWU0X+%zo^3x9#}511HrLo_Ca#KeUQ7cN-1aAD&0%)KoJNSNe&=X{U(?tC-%tO(;Y8t@Kh zJmr!W~>JFIEhnE_8htp!$lZGIV5U?ZP$qg zag40ji3+>ke%p9JzFC|XVbQU#!V=vgA>K0nUTp5m>Ti4!+rsPF{k0<=-=4_vJ^t?c z#sjm}+GdX&K@I$nCS-ds9y1e=Hz99TG#t&nMxFDla(|C&}G ze30Y8xTPChCzFQRHfhR~hZF%#9j4fYiytg8HK#c zQGD=o^Qtp=-_GF04ahMxp#}BMcjR<19_5TlWtfKQ(|42aQtPUu)?yFIy*g&8e3ZJH z=-f$k>bl5|%eo8BUZdZr?(NnkmRpk1&0?w~+f-JD+}=HOQy%&$uj+-gP*=HhnB~cP xQ+K8pXNnINW(#x6h1F7Nab@XlIlsJA9jxR3V7$x`$N`HNJz()^x}AGp!#@(|j=lf@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse30-vb b/usr/share/terminfo/w/wyse30-vb new file mode 100644 index 0000000000000000000000000000000000000000..164cf074782b82c121d04d2a042c22f82eb6c587 GIT binary patch literal 912 zcmaJ;=I$owJ4U(OUVschPxN@ufB3iV}dLnx>@)M~v%eGOtelm+m+ z=AnNZRX29n48cAeKo}9KC?+t8X|fs2;{@$#n`7=t;v#v5xMqDNRIOdZ4ceQ;U1Ht( zYPE-WgvSm31W)md{5f85e@VQ;YrMrfyvGN8r2d4@*uWREulR=Vv}XNi*t*)h|J)+} z3+<{?b*a`<-D;=Wqh{$prWQ6uO?E;R)vcDuZFQ%`v)-cruXAt9XfyY|k{S3Q4rCw@ z2|H290_0?a9@IHk2mL`kpfBj$aFe0~eUPNXFDOZue@mYiUPvMkam@wCX=#q|+ISl? zMr1D}-z0Sz_dxo^>`Nq!h0S4SC@RTO(@&7mvmuJE9>`Q6G8~27STVs0?7;R3b;t)5 zBPNK$#3V6Au)3P|nLg)vf$4M>a+JM#;p5>IJK6Z($qH+bIrN|x9kz}v1|p#-^tj2( z?bo@mUgcA?)9AGH>oF4>r6=A-9rx%lh>P~d>~JdQ&s{pTSh`%uE?voAUCyr*i=}G$ dOeMEmZk8YVSDqu!Kw>VxL(Fv{Blg8y#~&NQfsX(H literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse325 b/usr/share/terminfo/w/wyse325 new file mode 100644 index 0000000000000000000000000000000000000000..03ef7f7197ce18b26b229321c4d3dd180048f255 GIT binary patch literal 1211 zcmb7C-%Aux6#mXwWSRvPSRF8<9ah_NXLi?LwXLr1wrZIYk!1vH^?g7Ge@0qT90_BXAQ&EQPJl%l`?8QMpegr2GM*YsZ)knQCw#_NTCV#I-|@q@ zT=yq_!KE#-P55o8ls&Rfszv3n9F?GiBrLYXq?yrHiAx*VTgf#pdH=I_%4M05yiDnndX-#p@c(_TsvdJ&K^LXv_$(GU0-+KB_ z)iYz&cwxLY-Wu->?ZysNK`m$~5O1^+(2Ie1jC5tqJ#FS~GguomL#AWqBkLw-T?5Tp zoWEvm>_SZ?e<>XZ#G85fLLeR`o#D$)8k&hfi#9nAog~q$C&h>Y(Lz-UTBluQnz4Ml z$b_aCB6-NR1md=3g%g@>_0n}ZDC^`iPD+D14_mz3 z#B9=jQh|6R;Uzu5ELntJWT}w$Do8hxBsz#rB1NPLRv{UptI8{x`KP`6XQ4eTn>7zc z{1&xsv}pP+5A7`u`>`K7d=$ETM3-Ys$Ln|QjAl==ZJu4sXs*sLHGzs!56Aq3%{DXN zVivUC%xRr@%5z)kI%)b&$~>hRGiU|97h0Cg#gd9?L}}-nxG@mh2*f-$vf)zK z=u3j_!S%b%p2RLm9H@<*94SKK;|{7+5ZFU&#&)n()+CmDh7A0d4IiS7HX_~n})unjwC z-HAOofU3UZ@48E6R1e##_82 z`+$%5gfC>i{}tcxJz&2713%%Di)3P!w_6g@OKDbW zLsqr_*$3pROiNKpykSnB%JbSy>+(k4OT_a1Hp}7u=Zadt{F{NNU`=jBOk1Tbv6U@) z^`3_t)<=K!ZhhSy`V+CwHD2;(CGffID$jaiDu|>lP<@Yj_G&djOI?UZH8B}T4)JM zO=3^Ahj)X7?OwYWx69gM7xcK@W7KY{`3&`Z+V0V;9d^RT?Ac{|G5*M2szx!5D0#7y z8y&HlBW6^urZTQ02nqLvH_vvN5VsnVhq~C!ks{K5vdy`6!@D(qd*+TidFSrfz22$u z>Aw4!nRI#JL2NEn>7S1-%swnF=9ibjFO0Jx+Mp?yvrM_1TNiXBnD8QGh`l{WoF^_2 J7m49|{04jZ!0`Y8 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse325-25w b/usr/share/terminfo/w/wyse325-25w new file mode 100644 index 0000000000000000000000000000000000000000..03b3fa92442de69f51f62ca599428f45e1dd7257 GIT binary patch literal 1201 zcmb7CT}u>U6n@TFRDMK+(8n91v~TN2>dfq}uDa;z?zVnZR!F8ot<7qFySiJeX;xqt zT?7e%7eW1k=(hh7bk$uq5d;y`^vte$VL~*+bIx|19qs< z4&~SLtJ#TNK1|+7quL7C)z0GF{rQC~L{NM@y~`n+aNRS6>ps=4JC5J3_W~t2Oz#nt z;v|aaHLwvx3)<cbIKK$%btzDUUIgc|Zif>a|r=D42L8B3>c z=!~t?G48kuDrMp*rG;`-mGSpd!@h`R^VSVtBtUhEDV+pV(uT@g)ETHHD$+WtAdw@& zjEY0ms@@WnGz&b>N|t#<t zXD3RF1Dx?iI8NQAGhv-mb$UY8>JHCrqv<4QJ8|8ilG<fgQF>V;Uv5C_V_G42x$%@>=@v2lBH<=)biH9a*mGTSvb zIv-s~EX8xN`@sj@`JR=)YWCssnzOM1{#RTK(FE0Pagp5?m(~h(t+3uTNIwTVKwKuS K5Lb!83j6_M(7V$B literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse325-42 b/usr/share/terminfo/w/wyse325-42 new file mode 100644 index 0000000000000000000000000000000000000000..7e043b6a76a2e3a329dd3186d1dfa89bb47c7c84 GIT binary patch literal 1207 zcmb7COHUI~6#mYjQ9(3O6Qd_lh#f0bU}ieV!&+KsEuaW7Mg(J0ELBk;rBus9@xg+H zi7s5YATiN}@dp^U{u38&-MKL)hVh$eVSy&bJNfSU&g0&D9&=Pq;xOv)1?xt6G3vCp zxX#1!;(WeJM@d`A8(gPhdTKU54-r(BFE=^K2t2Qu@Vuv{=e1zN^FN>lJ89j8S{%TU zz~6{Ka>wG{d>h#|6JT*VE_3FNs?5i^)W2@6=pW2{nN!*jf*T*n){!+Wxi_=L~+ zO6Gar@Etz_=6OHy3m&=14&mEUC;R1~92S-1azerqkv6f#l@5BlBqlwS{z_J5Mf;z< zPp-*~6r{)-9>_C!v31kByp<0UF+8u;u(;=f+FpmGRop0qjCO)PhDrv34sCy%LJK6k}EOoLR8Va6{OPm^riH zY*Nnp7&L2PH+LI*ajcHNn2v^G9XxzF6pK=v=gqk^G~+LL7 zcSxuCu*I`ym`yrJDim|#e$u1Nl11nhmI_JKLk5T>(M$9ZDI!g<3ds=t^?u3BKkc8t z03Br6ta;oCTGX@EqWQ-(+J7;Q;1G231azfQS6rs!_d9=Hv)yc)&&wIjHwC4}QCsQZ z-5_DJ$1HT3C2cbEddfWOt6fxcY3jL@c~&!K*b4h*$1Iu4osZ0il_;hWB`=)eMu)rQ zaDCO;QW@7CgoG2}&9fbTh+PTEL2c~eND*l}-D+K*aBeN!p1WgD-MKq?97^trU z6yP*>3sH>oxa9dOVZuT)+GvFkMmM5lF%04^^*HWRJ|w0vgLy0=i&bpUe#SRmQNP9> z-rybCdwjr0d?It4FZhaY9&?=U_<^6~zwnz9;*=;7rQ)0@7Z=49;S+vQC2B;S(1qie zqDcg)-PLxW^Va{!khmkJL`ux^hDEV1c8+e^6?@{XsMH+CuU(`3dsS=u&OOgFp*=W= zu(j!9vGd35{5|P|-OP#J<8Q6}GipuS)V8(f+6(QaCi_r`GDsb=)*oupJ0M5=A&YA4 zz?@Vml{QpjSfx#s=;4ejAmciUC=HaNqJ+Ph9QB6`lc$FLp+>43ywZ+B#!SeZL7j$N zq9U!PvWP4ZWK;yQO7<4WnC|f$Gg+pK%0)cLi*>!BL&jU(Jne3V_3#=yA_H>SJ(y^a zgEDEzM2(Dx8OF5EmdiOltn+L$vx$01d1W!{QD(_1*}CX>}(ogFC7H*m%uVmno*N(WU|R;#3}QthtUO4E+gwj-)t##BHLxZ9@6s`cQe z+Q>&Sheq;rGX)*ik;8IL^T=delNS;Q2M*7+xFJS9#D+9*hVw*i!}WT7V$z&ieY7-f zq^4)aW;^G`=fexprAW5tv9;2b>t1bK%RE_Lx3{*y|B8bl>LI%f4zkPO&{`meyz#C> R^s})8#7*KBahn({!yjA9zF`0W literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse325-43 b/usr/share/terminfo/w/wyse325-43 new file mode 100644 index 0000000000000000000000000000000000000000..d1cfdeb7d0716f22fca3da6cce2601df34fe9d2d GIT binary patch literal 1207 zcmb7COHUI~6#mYjQ9(3O5~3$jj2(+sV5S}9RSSjI0*VkrL@*}BQUwK5N~Js$R2D2q zbm4*piHR6p9{1k!n3Hl2wWz`uY#GJHNVvJd zi99JT&SlGVgtURY&WY4bPd&=cK?J4c$sJBI1lJ7_uKV0{-3DyC-Un1*KdlE)iDNk7 z`_G^qQN++qErDM2V}NWBH*tq@99iyD#0+Lpzyg-BiZ$x%*uW;`7T(|;-jjXACw#_N zGS~fv@A%;}*ZqlKaLGmX3E!3~IV#7cR#Z;QSqVx=n#2}ITIg+)sB}_#D_)i*?SJ+j zxg|4_lRR&jmlyJK_ogj*D<33exNf6iasP8gjBWR>@5vfd<%k(0zbCf1M=#y8RJK0- zt9S2P&;A*;W~>_<#w+8sv1w=@4xk!pK|_IPvlW952cizeXj#2%=4>-q7c@g=#>|Cx zC}({NnznF|yN$y*RmERSM*`6n9=;KXMkucE=1dZr3PX!FWez$^L3*CTAqqq*qY}`1 z?XA$1A5?+LqN6({!7cZl;@IJ-jB9(4gkMgA+|Us99SlE@--oVa)1C zjZX7ni)Sw}o1~vqAR3N&Nsll~7NNr|71C7==_BGqH_<~Rh$O)(Bt`UAdnGgfq<8)* zw4Y_O=CQEfqR!nG&8^aC|HU|j8tBAX=*k&gahQ(R@9Yg^?FQznG@0S`wWvPb` z{DjR;GuLVs^t_qXdb7h*+o)!e)H4aQLsMqZ3VP{3VuYU2<`icr(VM(g%?_};?(*-3k9^1fLx3*Bwogl5<8ZQ!0vW|3JsLfTJQ!EA_9pPw?)d$LMx?$s0lv! zU?Pc$4<`BxjIaI|6Q6wZ#h92F6Is9A79P;VIGgXB@60(fb1r*Ym^gtNe8P@aCO=2D^^? z0TnpR-AYvBI8J%~MwqbBg&taAL=Z)sEP)Z+pq|1l$~(j?=COno6h3+k76 zh1YmX_73my0Uya6=QFcvTMM)-tZG>I0`CUoIA zrsxzQYIpUNb;;6K+3F8>>V1&o{;)+g zSvF@>Mr93^8dF(Qr3N|U2FRq2DoO*jXsF?DCMW!1!{n(ke>g~WkyqMr$b<=5FsQST zD^#S-R2GpZLX3(*Hp!t1nb196U?!_{QMpKlc(JZ`^vUD}H%~jtut8p9$7DdRx(8Do zazv&LnQD>A2*a4x(R#VahjpIqVm5IvDX%PMJ;5wlg&b#%5Rp2FVPb%Y5`#pHh!d^I5T&EWjhy?b|cDo@)Da3{}aD?+jYsdL^eR{^6UBA0B zXJqE)Cl~q`rP+P>8Mvi@67@8}`-~_+N1_L_6ew!9flf99lQzs5jmX Sh)ZnjW#S5PmAFQX)ZsU6_P%8R literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse325-vb b/usr/share/terminfo/w/wyse325-vb new file mode 100644 index 0000000000000000000000000000000000000000..009b8cd42e3545981929735b05951b8352146a85 GIT binary patch literal 1233 zcmb7CT}xC^6kX>=pxH!0(Z{ATn!{+ObMJN3$tIoA8OM)I2}!Jn#;#L-Of~A{WR@k= zgCGQf4?ruhI z3QB&t+qk=(d^cb8;ztohD`JS#>p&N}(MQ&gAzY%p42SDAVhT4ggE`FO9+v1o!ZKEA z*YFfC@QUm`KHwuhlez8}e8o4Px$bxTz)z3EP<&fes({*~_NjyFusWu+s#WzWtZdc9 zXp3r9XK1~zy=+U~|EvjhK~1R}D$g4V>VaC>xM@v2S8r6U;kqY{2Cjd9mXR?EexztD zloj`lhnuv^oBYx}E9KqCTShm(_2i$bRb$O~X1p|B8*dHiK>%Vx>VmN*vkfv7j74Zh z%I+DRw{)mFr0cY!^Y%K$4jh4GOio-f7IxxD6@N4t4#rw|_&rNHK%|Yyij2(w89+Slg)A9P9?UGC@ z+vf3NTCz2MscqO%>fxlHux{7+s4hsY&Pt6w?YXDuIw|^2QlFNz4w)fu+tvlW5WT1G zmQ+lmkv!kbg@MRMAmX|9hD%+OFA2p%>t|a$iB*y~5DS$YDeA%}8_Y|i_SM_hrpK*` z@yU^?_T0tm@f)e>WTEp`WG+$cxZOBEduL|BSzLtN@f#8T(;d#QhiwQG4UmMz`6evR YvIR2ePkjNZm;LS|&Jz8^IbtAy-+t=9;s5{u literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse325-w b/usr/share/terminfo/w/wyse325-w new file mode 100644 index 0000000000000000000000000000000000000000..0092078d4f8f00cd566df4537fc463a379ccbfdf GIT binary patch literal 1229 zcmb7CTT2vS7=FH~s60f3(BTbH+OO42cV=95(?wU^ZPN}`M3zCU?XI~Va@DQzuvvi+ z1VKU(5fxo@8Qu0@g08yjCW0V>n4Xzk4J?R0c)s`aeDA!6IiPIpMI}Dsjo~b|+HK8F z(OI0&u4|M|vmGuD)7MO+E_b8O$z`&2(=(YYltSrva$Tpg3fJ97xb8jex}(@l-*!^A zU>m*LQGq?!@5k$5BaC)*(uyL6J|w6mF@%ehBe=@@8Zm|mOk)-WETBmHF2C`J@-d#` zIbKnFi+6aB57b=u6F%dMuet75e8YF@Kk$<`)K;}aRjJ*oM(tAvRhbZMwpjHrt7I2)fjvUSs-XsmUZRiaC*nkcU>7P$ zoT&DCX8j4T>ywZ{_RXe8Y;Q8bo}g~hX>UC9cj&bK;yjBQNahe^rCwITEXNyksw)uf z@DwL0*#^JQZd8;8I1z|)oVrKnBf21sIx7vj%QKJBOebiku)#TWDRJUz%G^udG0p{3(QfkA}+|;0!`U3#8ZLa(gW< ZvIBC~U->fBAcuXDI7OT$&JaV@_yu;NyvG0l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse325-wvb b/usr/share/terminfo/w/wyse325-wvb new file mode 100644 index 0000000000000000000000000000000000000000..77a7a602f0bd019de0dd947aea713636b54b4fb7 GIT binary patch literal 1243 zcmb7C-Ahwp82`OT`m&4&$?yTQ+S@eKopUyI<ow}LqT`#%#}=) zU3UUoXj{jSA8sA3Yp|Y{Cf~mUCTv6yrFH=Qh$BIk!ZD0ep2j)e86t;CT*530C}EL$ z189hvKXz(;)Ynd^SW7knlEhVQ(8z))*dz1pm{s%@%SwWwWc zk7`pLs!O@9sluv<(mT6 zAZZ&?wkY$EISSHtiU=`JL>ZNYw8^15Nt-?|vyuW`6dp2BCN|Abzhw4%b!LYcmSCD} zQi4+O9_B(aB90}wy^@JDjAd(2ZFjoXT9+hZ_;S}#drdZklb!aWv5gk zEXNykrY{id^+-7_PMhCnKkBOkoDRe|PCcOWQ9Up1+L1Qh=c)UtW>eI&N!=%D9W;ZU z+1B%VDSAU+uST(kFnPX*7afrmN5oU@6_s(_en>DL{Pnii3$dypS%`%V+$TCh`?}1t z6ZVB`7w0CesmbXxmj*76&&02!=92S?tC7-RdFWbrp}1IB%2q0nMSlvR-=pF3hB<=} i(FGZ_xZFXDi|mD*@K?SBb(q6GLL4QI5yy#<2K)rA#l^G$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse350 b/usr/share/terminfo/w/wyse350 new file mode 100644 index 0000000000000000000000000000000000000000..d7a41c6a1f4412f87b829e8009fcfd8fd15a6f1c GIT binary patch literal 1469 zcmcgqTT4_?6#n)Z#9I?xEUisqmleRf*^vRhlrwx9^&-vea={F6z1I5H+H0@NIW4MDjU%u{AW&G3 zw%A*R_2n5YCn)QvKnQrBmcA|^GH~4*LJ+Qd9%b~E8NH0Mjj;ig&@M#hJKL=LdYmXMDpC{A3#?qFe;UQE^MA$QtI!VFFkAjss7;) zi%!ua68j>OA}xl+C-Ps!*L`07#&=O=g{|GMHCpx_re%-q#m9U${#WnroUYq_U{u2D zx6;;#HEN9?7`r$7|FI{nDZjF5%L>ReN)d##Asg#EBX&3B705|n?NT{Mh3Z18QC(NL zNKxg#SPPl8`G?A^gF~pTL?z@zeW%0wV~`h_aln=-iy}hgAQved!#412_7O8oDquud zrUGiy-d34}Cz6m$+T$S`V}9Fi>XzAdU2?XAN_}UPH6N~$AsL2LJ&^q{Ww5jfT}y@6 z5JYbfB26TS3q+FWBl-!}D+Y*EP&YQJlkol!WTiJZ;~v;Y7A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse350-vb b/usr/share/terminfo/w/wyse350-vb new file mode 100644 index 0000000000000000000000000000000000000000..893e2cdc814113d69d81326d4cb7ac8c7fed742d GIT binary patch literal 1487 zcmcgqO>0v@6g~5TSX=97!HfIAn08xaH%1Q#NTA}$1G z#YmUkQJKC~T`U!RH%B)}KUkS5%}mc0g42cBSqK5|)7JL|oh)2;Cm{&e?LZy5I^);T z_E7x84KQBEXbZNR9f?kKBZ@eq0SsaYX?i2fHA$PpS)+2@X zoTG6J+s?JqN7OKxfH7?{6HrU`ZIw-WCIxvz?|8^Zncub#56FD4E;-*vrzIX?&6}EJ zNVY+$1mrMG87wWQYpM4df;iF$F+wDXK_W#A5yJ%Q6=@>Vs2e+>lkof)0CY%)?suxjI7-4Vi-CSGWlcbQj)I|vc1B1T~w82yDG>w@Ah7X8H+Jz8-sMPfzJcG zdj8zysVnnWOS3nw&0SxZyIC&JFILV}iwl)nuZMs2%4v^4CLO*+(%~!i=-&0)EJ2KN zZezqaaf~=lOqlmK@1ZB)m^S-$+2bKLtqBgq5bVPvI5175|&=VKJKo}$ZF d4Am6fzQSQLPtxNv{HtOro8t62_TNVa`~;H)f7Sp1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse350-w b/usr/share/terminfo/w/wyse350-w new file mode 100644 index 0000000000000000000000000000000000000000..a3cf4b80057fcef19f49ff31a2fc417a7aceca0c GIT binary patch literal 1477 zcmcgqTT4_?6#n)R@h)Agtc@~|yHUhEXJ&Lp#@lH$XS|e3VN%hEie+l!b-Yp!{fD53 z9{L5*59qCjpqB`O2!b9WiXwXGp(0M-KIdquk#8ON&RXl+-(GvIwf8Y`0!Oe9ruboG zSHcZuU3NXYGC%HlL-Yc416DXxH+o}gae4+q!27iIeL?3o9H*QRgyW1br$Cr(z%*vDNNxqU+?6}H zi+i|F{{bH25gxnj6FkK;*K?fbc!8JnU*R?XZ}1lH@d;n>72oiaz2u4lQ6x&me&IL= z#bI%jR)5mBUbOpP@sIU@h={0Y+NFpKTXcwbzzpif2={Svhs+x=z!!|mNl+m}Rc4zkg6Au{Y{mO=o?}kkAxs^bgkhN9KA+r_o z9OSU?j;L!YW2v!0l?kb_1m9pKWZLA*lxYjas4PMeWt#P^GTo$0O~>g}HHTSiX_*Yl zYDm=v*$K*8b!kJomO`%)i1reQ6k!vmhy>9=bP}vrbP>rC-PnLm!u>sv-E6K1B}}ra z2M}xvs#-Owr!apLvL9tAN1@mDB;2CgR3@Sp)LLjmt*f|V7}cTWh5fedA~%sB$KUwo z7E5a)TU$apjBSPC?W+w8gY7{#e_T!2EGcMuh4HwUT97qrTvmIhH!(~aj5*slq=f=r z56tYym8%yg7q8Dx%}vkFEYGekEG(`pUCw5fmo|H?|J^I6or1J2-h^%O7Nfd%eK%_m z-JDww(M$9ZXNa@z{k!*}Ct$g4w&=2ZgKSz89EeM>50Bu$G@;w}h_J6nZYnq*S3&D3 f8hk~^rlQeTSWM4{b7a6TnUj39 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse350-wvb b/usr/share/terminfo/w/wyse350-wvb new file mode 100644 index 0000000000000000000000000000000000000000..42e5c98120c1fee01334a70d4a1b74409be58b1b GIT binary patch literal 1491 zcmcgqT}xC^6kX>^qV}g<#CRK{3hZ$*5{J+T6G2AJIEpqz=tU7nKkXpSIV#(} zfXf(03X_;YmRue;oXl<9!Cl;=e;*I<5RV-8F`nS5KqEb}R>TjQC-DvYF|Bw}QG;D}neWS-(f6cBx)3$?KszOHCh!`=W$LQZuyYck@6Av0^yvh>B zH$(QK9MXhrsBQC`?T}|7&wK8$not=_jh$8*zZ#376xEPPlYgR2TG)Z=GL%6ksOG-Y zkjHsak168@ji1Os&eB*8ThBGN- zg^XH!iKxX_4C&tW+bl!$ac=#@0C9piNenvg@4SbefaSD#OqV_2W7C@8KpcX7xC95L v3Ej3!1UyB&px}HQ1+A-S@)TVKMYE@{c$g~*c?|!muo{YS`W*Y8BLjW`N9Bcj literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse370 b/usr/share/terminfo/w/wyse370 new file mode 100644 index 0000000000000000000000000000000000000000..e06fdc1fa200d05b15d63e7c92b8868afac6972a GIT binary patch literal 2082 zcmcIjO=w(I6h8O8#-E~1!HwpLOv^md#;WhW-x=>X6I0QlHW&-0lF^dXN%J>Jrju!= z)0spRM6fRWSya%4MHiw7BB%&mD2fQW$iju7P~GUlO`%v&gy(nedy_QQrM~2x^PO|g zJ@@?0fXLD9w3{3;(${Kxk<)FpSEdsQewTFQLiZ?48EBc-Tyr)9Q)Xeh&2)Tus!=5p z`afX;3O>O`h%vf>ZlyT=#x_wL57RI?aM?lE!RI!*gNDeX0z4j~C+HX*r#avSYJqp? zX*x@<((AzI=`DJP-Us@SKA{VcpVL?L4QfgpKry6_%8MRUi>I7Zr3lM%-Q#y&$r-V5UIpiwqPfsYtfV+FEpbdBeY7mSyTbH*j;myJJC&&0pS zZ!zQeK~NkYGRL$W*SvS0$ccZkZTI*uv}0z~oHy&{s@eUY-+T6|_%E8TT%~Q*@tS$w ze9!#I{M7uy+%SJIe=;wdSIj@n!#mh#s4wiZDid@)-Aq=+p0n%Ht}46k+SLXO-V9jT zsvOD|e5VNfaJC>d*tDc~CjWW849_C%FsoM$fMSkLhbx zWi(rG`9a^Q(Jshf5lk}6JPPJA@;OM3QMAc?M!Jf}vxU3mP?7p!SY(zt0;V5vwZE%< zJ!jTBkS%zQb59XT;5odbT)$!Efbx!#d+W$JIGQbloRF)0wcoM!jaZe?Q%(y>;Pzo%maY-qcm$;|RYpK1e~!b;b;h2?%!WauAQ|z2 z%xRuy?mEoN2r-sW7gN@J={BO_5$vXSIZW1Iw$Od?r^$4Rk9-5nGC%*d&e&ECN`CC zD~2Aw)`cD=x(^s6FaUHD7y`-!Mu0h6E%N2O-P~nQ_uGoBGToSNnI55!4Tv!6yh?K^ z)8ypT)QJ-_GxPHc3$@zf;?mOca=m`?WTUaN(rlhOwYu7Boj%=epE=X%bh~S7>pY1G zP$}Y_EJY}8zk{jptpiqS=id5*gIAW;uQs{}fcE=5zHM?Lp?GEHL&$AOa zJ(CQ3wy5Vem>GoIpfi|^(7QGQOj{9r9RQ}y0G%A0I?`QBBKX%vfN3j&)Dd9Xih!$# W;BkNsj_=feRb8D-s?*r*;lBZD5(&uw literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse50 b/usr/share/terminfo/w/wyse50 new file mode 100644 index 0000000000000000000000000000000000000000..7c72366d8bbcb016d653dac631a6e713eaf62e85 GIT binary patch literal 1187 zcmaiz%WG3n5XQf0mD)#2(W=#BOVM0YsnUCs=GCMx`!H#J)S{Fwgw&W?`!aoKTP=u! z=s%!z<3<#OLKli6iXsZSaN)v*3qcnyT!064jtwLH{kT_{2yGa{qCmn>H$Q}}N>6Q=bL%6>is*7zG!^K0+*h4n|9&+j& zR1eBgfg(Nz4m1p-S=Xd}#=J3Y_iv<(wBJaFvI3_xQmV#?=(;dVVtHK0@{I_Tg+e|L z3`BiIoJ?R+6hv5wYO$ zxNzYoFn$1cCM1SvOpJ+%F)m!NaN)v*3*z{{GX(<}o#c0(_nv#tnQ2dnMw~ziKBG}v zUI`hEv&r@4mBo}}jnMLh49{{pJL#Dnn@A@;$@%%|bZQYozWyc9m+7r_H7!XheSVuSJ5V)H;&o$*#|iS7Lvk+1DN-?h(o zvL(6bk-uj5RxFHS5hT5p#XotKCIhr%u^o*%{Jzl** zPwE-}j>-321DP=R_GQB47gke@V#tx&sLB1qkiD$fXUMol%t+$9B74yazdi3RIzp^I@k`yrJ$j zyn0LxCll7!^{l=YxkKHmVy2!6(B4S|cN0Oi&cEw&UC7?+?eOmGZBk22XGu~Oi|AQd zucu_4Q@fdNT%#Y)(_0};xHxuGg+C)JhxG0K9iYTZ>ixw?fv?yrNB7z`-Afl%4eeYQ?Mm_kP`@QF!d+#~#y}MPo zQHx5v#Zxgm=hK_=sfF3O>9nQdR8F7n%#TfvrLt*fDxJ+j2w0CA?TLUGLZMJctfvW^ zAWVRtg;M%Aa#oGaW`;xy{0Jh#Sv$JWgMO+QhH#i;+{{t?97B?N1R3N^Umo-3cpeux zUL;qrgzKiSP*}zaZrl0}?qQYs0Upsl!81I^3%tZDyv7^6!+U(dM|{F(M!(=IzS--( z+oRpay5Yw^;t(~WR%{W)i=@~gT;e$WNin=GsdvQ5hwn%n8t8nt09=UI~|M?GXh z=hv1AgMU_i1u7upu86_)hamg7W3+_9fZPQ+wI&jNHMMNC6tY1odzymYAXn>pbGuB0 zR6&VW3RlF-imGa)Tcz~EJb;JB)hXpxsStY{5HZq8x=1(aA-#l^h<*}vsFDw=O}Ks# za)4!5z`;%C%_cj3H#xlsIfNS2p`5RQ4P~HpsGOWvThM0A`n9x{^J%%DEnkTe-3C&)<$#`_F~u8gTX aN_mxOQO2i?pGNtWTX~gJ`2r+JLih!T3cL{j literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse50-w b/usr/share/terminfo/w/wyse50-w new file mode 100644 index 0000000000000000000000000000000000000000..85e8dd395de0b83431583b4280613c6ab62f3318 GIT binary patch literal 1193 zcmaizO-NKx6vzKpi}GW{Qc1cgQga!@%=c!TuVxyXCT-NLl)^%anVhK{zsA%i&8S7t zs&LaL3If4JQAANhK`mOeXwjlYi=Y+}1Q7%gL7VA+-;4xf)Pvu-=l;*R_n!0KyX(a! ztV2282fv?j*m=_jzI|I9zEtK0^%aF*;lVvpC1` z0=a^DT(`7rb^(jHo%iqH9v;wth{v=~@f2o;&A8UcLF( zXkjf2|IJzyx5Qm>Upx{|gzV%ev_Tq>P4=ME2tgizJe+sqYDlF`mFQDxr%FWled{4( z23FIW{GaN}PzKr0Y_98r?BGt(A_l#3GvvgQ6Z7b4&PIzN8>P0V=uq|9gQj7$gk;RG z3yB5j*n=)sQc*1(I;9;<3F$-o^(m#f5+QcjAUa8y>?9Ggi?kC~B6gFgO_$uOH{tqj z$S#&$1{*h-)vY<&9I8nT>i#CrL+(d4YEhbNC3m>RZ^whD(%Y&>{2CV zqYCIeKU1PboJWgQ0MbMW-v{D>lzZ4U;v6-{d=uNITBrS|w`Ytqo~7ek{v6NdJ0Zg+ zKSkIyA-%dB{g%!`bg`9gvWN7Ly=0%wx}=q8z$JPs*kC#Dq;6mXH9H!yg?F$O`u^#7 z2`W&BOct!r7UTGX1C_=q3B0kI^vCjbBd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse50-wvb b/usr/share/terminfo/w/wyse50-wvb new file mode 100644 index 0000000000000000000000000000000000000000..eb00142c54e22dba8100f38c8e0d3774b07d9200 GIT binary patch literal 1209 zcmaizO-NKx6vzKJi}GX4P{_I_L(F3gGvAxMR5L{UUREn2i_(V|6*76lOm5d;xItET^b^CTFf9{kQd_kYg4_ni0M-6}lT zj555(Q<0tX>J8bM#6os%GHJQJbnRZ}(RPaGB0))U}Yu88_NY@k+YW=QPBF6i)Z=0g+0XrUKD6kQy<%^bDQQS{M2 zi3A2sEsY6toW(rHbL27>an00nxg{*)mgV2ZUEHVt0FP*&;2ECd1zzG6UgHhk;vGKV zBR=6XqhIh9->h}tt@)$rpV@t-IY8^tD3xTsQW5jEmC^*(W8Ra9l45?OJnAhIZ~ z6ew2<=J|83Tk4I!Mhk0M`ft{I5D4^=54eHvQ8>H zL5FI<5jJ$av027~s*qTSjw9@5CFNDpsZ!d&lxB5kuR5h9Un0aF8$<_*kiDdp>?3W2 zm5BW$YEva2QJZjm7i1^PE`^PooK>wkTbx?G*01`TJP&yoRj5WuzM)}gEh;DD))urW zvwkh9WxQG@kQdmcmXvi`NaY2Y5?#Z2v`7m<8Yt%bKs+?;9dV~zqeeO~-ZbTz4$kb( z>a)I;;~W1R&*nQIBL+W3#4sTJsvPx}<{>)SN*6gm4w6Hp+h*R;3fOUx-dZ+T#@nYF zsG;US9dDqze*xY-6)#3P?`Ac&VLP0tM7fK6n?YQmK3$5H)vNvY4J*=m+sE&dYx`$r?g5VLK*{7fw)8oI0Rxlacswq ziIW4DazZ_DXe;p}B!ol{9D3kTB-Bdnr9Je5gg8`{5SLy+;!stUSiU#wI#QKOMt zzBg}X-uzhmj@V7RsgDN5&$87Hl-p^w>vQan!4H5C3G*WX&zzeek;kY#6n9%5!B^-t z#P-rY`hYYIqwiBXPE#~ZbKvt-2exR9zND|{Yw)Xdoo>=?u)B1ReuV#pex={(0sTRL z(i7;v=qWvikK=zRrdNe0m}kYP7&k1AC*Y63J{JYxj3|l)u_$WbP05sN3bu}YyUls8$=mXd{7Kq{DcV7Al3j4lIaSXo zMov{Z#ae1uxmiT@JYdW&983-SCNK`&6WuX0{~ta^J9!u^r-CvbEGF{L8g&-@W7tPY zCxY59gXdGj+AJ`ErFmsHwL!b!g9^Z77&wd>(qWY0ITS~HW*KH-4}4~3E61rHw8AiO z1Yp+TUS)FJ)H--BIL494kCYo}w~UAf;kl8QhVT@ZjWr_`MClOgW$pb3>_N95Gh^T( zl$|9UPBz))24V+bJ`)cxnFmpZ9fm?3lSjELGzl4lLyXEbm^R4p3CyT~RdQzeQIGPY z3Z`K`;%29Oc-j91AK?2v#l@JMk?y$~!DVme@Jc4kix|SU;&-9CSQZLQN;U*F*CnBwj7 za{yxNgD$3;fZ~fTD08jm2`Fs>2{#w1k{dQD%G|s*gS6sIZSr;UeE7eH)5CwV$nQ73 z2*^2w$n})=gLIe~I(eGxDf6|!m!Xda%on1M-spLIaut;|U`<$!O0$Yer#zUZ(rHC6 E0fBIlL;wH) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-24 b/usr/share/terminfo/w/wyse520-24 new file mode 100644 index 0000000000000000000000000000000000000000..9bfbec7c3bf2f2f402d455d816db0dad483a9a8c GIT binary patch literal 1688 zcmb7FO>7%g5T3WMf>O~&;!?^2GBhg@q>A15-g+I@vPnT{REXkIMAMj-xV7UXwo}J; z;<#~o=mjp7fCEBs=m8K&98iVCg-b77koXY?Ks|tjDkKhE;8azr`R1)jB$P{5o^QUH zH}l@SnYI0h@aZt^r!n!V?Dj(CA5*5^?X@dIdImHFp6V`j7E{Wk%B4;zRbN`Ew26fM zuu6zkf(qF0VHymd0=)a^KKLG|qx1}E%3|#V&C(p5rwVwL+Q2St(i`*^-9z4c^gdmu zkKnyQU(#35H|cBohQ6m?=obA3`!@Yae?boh_Xhva9r6ToC7u;|%Lao9=t;;)F#~)> z%!>2kf>;1w7EQ4(`r@j16V^4z+u~jE0W?3?hx$Y4PsC^9^P!!rCisQ8DZUdwW97E^ zTik`-=Oil!orj#m;Ey`S$wR;DoOQ}h)oC~#=Udo6ID9{Tesq3vZaKd?zuU||fJY?z zACpI|9<#`vo#z;QflTkRvJDH)@WAwIe2vyFy$6cj%JN@ya;>S80O6XKYfZ0 za2h19!a819Y-AR#wFv$^WFlFFQ=2+?VKl4l0n<1-M~C1F8-RczbqcxZD9&)UVvk{# zVHRzJVP-EeOCz8ShSbXddjhX28MyilK?PN08y5mf`tlZPV-V^12PuJ8I^A_ZIR&x zh_yntl0FqC11d}^h=v&W?H##cx&I7q+SA(>7h_|dv%MS|T=q^3pJZeB5KDL>{u012 zgbaa3J0P#2Djf$;Hr?VAP55=l9nw6ve25Se!8Y8;AXcVDZU!sEm!nK>LWlG)-I zFVC-8CpKQpRC57+*im8|&@iDPs7h!WG)QO!n(^WWCy#rbLtbUXi^-j$2hi&-qz74p ztU}r}KVK>>EL5w@%e7j)-e|0>T)Nb3uCBIP?RKZLwzj_B?QU%JdY3P6Zua|ITUWUI zb9_6VJ`gt@^Rd-5ES_so*(utID{UPKw{ug;Ky8S!gVr`lD~{AQUMFu0f1S`MeC^8o zqNY~>d9N7zfzl>SN15?+7s;LD{{{T^@2AvIKe(;knGF=yfviJXR4XZ}T?inWY8Ms# E3y~|5LI3~& literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-36 b/usr/share/terminfo/w/wyse520-36 new file mode 100644 index 0000000000000000000000000000000000000000..ed9343203a286aa6cdbbac6ee19fea37c61e42a6 GIT binary patch literal 1694 zcmb7FO=w(I6h8OeqP5rt+!Xqxjy4ZWLHgdk?`Ps0W^9x+R70k=(3q)hrk%;(%%qc< zNhXs_y3mE)2#O#@7hNd0C@3Phanp^PF4~2lMFd@B(L&v{D-k;V&VADaN;Y}qeCIpo zo^$WH=iDKOgi8l$FAa(BWxEq7_YEC(+nr{)PtSs;z*Ft{)?7-5sZz03OjYL>%S|F- z{#Yf%C_#DbH%Ptymxp%`JqO=mIzq=tQwD1%Xp*MrJe9#`sR?Y;I(X zeGBi8^fUbeeUpBrTXcu+(x3D<>`l5)|3deAk9&{kKXL?fCEgS{!+O2r(4&x(Vgh(Z zOp5d3qL=|+5OuL4y5b{o71pPa&&8MGYiRzi_w_f>--#RIhrXSxCis)MDQ=5Du(By0 zivOYaSjozM>m}o?fHTYNwM?pl9Y|5%&WJ(KwW_=;rz z5jkY^F@x;c{xp1%%bJ*N~qb>);AgBj&!;nlN%F}rYbFykA?yRf&6e$Mo>>0`8y z(;zt&RPkW3kw0gwIqrwh=>S|o4d5}PP9Zmp;xuO~_V~=w z%%UyunVCyW(g0|UA@x4MoWQHf#N>jr%ws=RZmiuZHuqq7ZtR6HJjJErv{(gk7~!O> z{rZSK7%QMm>~gADIL zj1{nz^eI2;QGQfGG{lGB+>slWeQI#ij&508jEQ;6^s;Yo+1oLEl8NC%4B?5m^8lYA zVDL2B0Xc`NbnLxWw+pY<;nx9oNb}rs0f&S~yNoR)b346QhYhmRSnofP64?>$OUg+m zjKiE9KekrvJ26wuWprUjiS2_12@OD1LPJn5p%G}>iEErZ?6eLzw& zWErvqY0~s`u{bj`JG-z@sZ^`A+T!Bn%k}!wQlrsqwpz=}D=Y2x>T0L6wzj_B?QU#b z;TcTv9r+Caao-^qTaClw=@yikrJ1|Z#*uI{J(Y~rgeWs^ZIZO&NNwVE@@Du)g+}4W zSK{XyE&_5+A$C2b{UD6e!yjHEdy4-%;6K1#O7-=NTiTvjMPV(-3Zy}mqN2)052C4Z GNzoG>Z!PEIT@KiiJ+WsZ|=Kwo_;n zorAe)r&{WrTq(4QM8f=7CB!I^!y02W7>*pAx6$qJJwOl96QpSpu^Bo}3-ltDz{}JI zc4?C?&>M6Eb#K!<^e(**@27N`u0VfDU(wfeoxY)O>3i5e(y#P8^k8sfutk57E0`Yiv?^8F+OW zFl*ALZfsJU1&(6r z4DE$0tOI-o=NM|ERGj8&#h!p!nptWG0%qnA$7vL_&fq);Fe`9WnVf7m&pZxd<;B{o zVR9da@5O!u!&kgjtQM;C*lv&@)04T+eT^yJ!dhkVK%QVt&7qBZG`wuql{JtjqI^+w}+{SFkDbfBu zV+X~2yMC;r7TIaUhcBi`c8W%l?IaDyVs4h-UMCLRn5pJ%^kJtGI{*z68iJ~XMxcH| zQ=n-#u5D4aS~E}uSKt=4MwdZV$j(rm7- zwp#6Wr?a-UzTWL_Z1j3(&TMY>`)ALd<3=p-8Tm;7ao%wcj5|7a6eMZ6X{YJ3G96b5 zH!W1Ao64jp({XKzv}w0C`8s(a{Gs8t@Ie;&2}cb;*3HMBuXGSbsr1B&C9)Uz4+H-S gd&n8;yLPlaw}FjyAnTA8RSSx$Cw+*f>XM>=0P2UH%K!iX literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-36w b/usr/share/terminfo/w/wyse520-36w new file mode 100644 index 0000000000000000000000000000000000000000..6581a45cbc0cbd6ea7f19c3c6c37cf5d4f5e2868 GIT binary patch literal 1714 zcmb7FO=w(I6h8O8qHSp#a8vL}d9CxnRK)l0eecbrFU+*D#8@qp`a?rTL#CNzlFUyg z^OMOm(+W~i1VI;y)I}ExE<~&dZrpU^#)YoL(uIN)!GbPyB`(JA+&f93WRqdecfND( zIrp4*?tQ#R#RMIt{WL0W+TC6x{ijsi?RR^v#ch5O+=bzGSK7;NprpI7R_)a4Ew@-N zxhi%`#dguHuGAM>L_+^r8KRY-Yp9T-!SHtt-hK2Ce8=cj{Sjs-TuOM3bXVu9VVyXt$2;VD4pfRT(hl6wal_ zL+yAT_Kq>knSU^SiVkubBqyUPE-W?*m$kJF{tV=dS%g!CRq*N5xY7mAqjZ*zz!lX1 z0fT!1xp6wlaJFPm$SlJwy#paL{SY%W0$O8mUj*n1yef4}F1pA(2@~lj%CBPc07l>^ zK@201+$yRiGD_k!DrKD~CY(`!1bZU!1+?(W{kdR3L$WMbv%`U(~2lB)emCnZEdLiqJF^1!m&1`qAzj>XOBnA3WeLxbDC zAH$V&3>VRaPsCpVgbWcwpfC=|tLRE4!HI@bINpFir+ECih*#s2ea1HOc#=V);wERx zRG*v-!iJZmL{6Fxnug37qnwxH>()*}FJY>-i7oa9mqPQMf3B;;?h#Nyt-PcRI9aGy}q{AXsoX{o2^#6-RW#> zbi13Iz24=^TU-79l`B{I6lVER`4#|iQ%8MlbsiR z(n(5kq|))q+!}tZFeto!CBCq69gy=1i62N6MsYeb_SynDv;2L)H()=xLw#sRJNZpC V)`o0Anp7!Ds$2>niYg0|{s-%GoC^Q| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-36wpc b/usr/share/terminfo/w/wyse520-36wpc new file mode 100644 index 0000000000000000000000000000000000000000..fffaa926d66a78ee6bcc092ac2da2b37721746dd GIT binary patch literal 1752 zcmb7FPiP!f82{dkXbsvNJP3}+RClDQh%@ia%x*eiw{2>hYD3Z@BqT<%-Q6bJ{hR%h z&33nuLLdhz2tD`*Q4f01L%|+;P!JWpcpr@prtCic8>KKvGKUOi(O3)U1CTK8xw%~n)9)<5YdVyXc zMH7gfqbm#oL;8e11OJL{&^OTE(NFX<-K1aWSNa|HExJv2 zbnakqm+p}xxSbS-MMks1;3)JY^#TKQ}9ijXCH{{WIRmI z@2O(R%$Y^AX12|qdD+}Hub5Z&RR6GDJm~*mkL!MHeqmlSzc;PL1$vC0Bx}(rI(5&< zM^0Tj`9@+wx@maT3Si1wd@V8IYsc%bca34q^8d@HXoSlk85xvuVX=_Es;yPYFlE$08 z4aYHvzX|Xdq(<+*TTJ2dz$?&okPox@Eu;Q_ftfX@&xcnYTjc@w)*k@tMvT0BsP zKcjdWnSi6=p*~{^b$qa1q{0SQ%0!>66w-!wCQnw9M&b>{BS$+Y!?&*$`A)=C@kaWv zld}&u literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-48 b/usr/share/terminfo/w/wyse520-48 new file mode 100644 index 0000000000000000000000000000000000000000..dc5c947cb92c6d8669db4a1d7ea9a8e6305cc0cb GIT binary patch literal 1694 zcmb7FO=w(I6h8OeqP4UQxGDIgPTM>%1?hYDzBlj1H_WtA(ohYV+CpQdwwZP&e>0O# zW+s_TGU-AWb|WZ)6kT+o;G&?2;KofiZo1HgphW~-WMQFh+LZ{Me&@bv0wtR~a=!DO zbI-Z=+;i@bmxN1)XfF+kZ)Cd@DEBo#>b5)0a-UuRO@XJ{^R2m*AEipgRxwqbUo1C? zg!yBY5TgX;v7bx5{+EY$4?PFpVLC=9NK*!Dr)iR==n|E|XQ>Hn(>i@fAJb#x-K5Xy z7JUWpck~1O2z`fsqPz49-J?I~FW8%OpZ~h~5 z@>6+J-j;S@ik_zfWEY%yr|vnW*r_Y0)ELYtHw&+x1&rB+GlLo5INpN2W%P5VpG_a5 zeVhi#si2Ani;es_W6goT0XdZ{!m0f#cz!UW%>m;$I!g!P3Tgn4A$1nH=`fBsTd~Jy z7BLIAz-MMIF-ZfUHHOqX0CNJbDif0nE-;V%Sh=xwtJvIw;kmJwhT$nL6{p22h|?iX z%G$4v*hB6B_C(^_C^buHNH)3Ib@)agJ`)cxkq1$RorQ%8CeHCvXaXXG!;H!`m^R4p zCd60)TS=etqaNi)6+}aP_{|-;VcDk!H|_YA#l@JIlctw_gUjBI;gd`ZA7Thk#GMED z3;~0u(GJK(RHb9@Xx%Oxsl%@W?vUoWR4UbKt+u#$?OMIQwA5%co2}OJ^2$oPy}H`ztgWrDce@)K z*Len0d`Er*K-_o8#a836c)A5;W@+ZGv~eWdOiv|aH6hB3Tbm@UI8vK`t7pYZKc9+nTKprev*To84}<`;*P? zCYx=xEecXZ1jUDn6!bw6Ln)5D~h5=guaIr4JeQeCIoV zbMHOp4tt+CNcYkn8W-1Ow-+k!u^?(L^}D@xX~&p{;lOgbmCmvgL{72LDLA!Cqttc^ zjiPffH|ok$H&FLBy+iNP`|y5Bm+1=hm-H2VP1org`j)JY(VS~W|=xNA|I3kXTd2vE4iHcYeYhqKpBrb^8#arSc;+G)ri4Vj_(ENNd)Sp3L z7N3i&LpzBkcuiav--(|Q*%HDUu?B;CApG2K?Xw;Rf7F_`o`tSj4XbDMt(UD=tsh|j zWbyg<`NjIp`or3?{xp?;10R>{S28j>V~{=D&y<{j@373>6xq(Wm41F#6?s{ZWm%VP z*^}qxEAln@=C0~*wTqkm7kByIOY%ecvHU{X`31Uz?j}3$R@|oV7Gt-m++u5NQh6D8 zbr~>g=bssy42>XoRv-tn=SsLLoNLGb4Tv)s)ST@!&_%!4|5`O2w03ClDgMpjl}rvVVh9h&s{jIqkipmJ4&(*wO2__#O*_A@3BL}xVVcL74UrN= z`}>R?0CyM7jap_j>X(8-@Q&8xG_`B+vvkiCw2fDCNu<92~C0e z2~C4WZd~W$3AeM?EseS{*|T&f*>hb;53&YXg|umLu~0a5s$4#Ox>~K(>h(rrWu@6% zU2V16?M`QHZGFAl-Pq{$&YaoY?Dx-}J;#Gs;4|`-0OGvk9vDw_?kGqyax+ddWo0I= z5^hGQ%ruorQD)-W6lpVVZSr+;L-<2Ox9~w0`3k2RfUKL3Jzwb{Or@iV6H8<-@E->L h750!b)OYP@du{_8>p<2aEvgn2RZsd5P1Pku{{Vp|p6LJp literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-48w b/usr/share/terminfo/w/wyse520-48w new file mode 100644 index 0000000000000000000000000000000000000000..41cf56932a069fc284753defc975bdfde621c6d7 GIT binary patch literal 1710 zcmb7FO=w(I6h8OeqHSp#a8vM!yw*HuD$@7veQ)NaFU+*H#8@qpYNa7#L#CNzlFUyg z^OMOm(+W~)5d>W*QWsq)xDZhh+;r1TH!gG~mM#>e2o-c;SK?y)&V7>u{HC7PmXnxT2{5;cJx z+Mw(7zRCNTZqhCK4E!7Vj&4KWp}X`w{YdxdKK%;&0X?KYO>Dpai2fm0@Nr5U7g@vl z{gcq+kTW6&JTIoijJPBgz?Vf`tcjj@Tik&49^?b@k@y6ff42tuQ|Qmd7vigdovbGK zt+*q85I$Kj^o&)oD%OhCwtCi2u@8!EGyDJa3EInPkgN(TxUkqLSTxom_=}K}$s(LOsDMunk7;wjSsb0A18{{^fY0EZ zLvAV^N1UzL6EKUIrMDnpW*%aShCr(f&T9a30Mre>TKw5FPC?wgB8oG%{*%rW)>% z9U*LRNs45rX>U?cGGiR)X8F3c;=qlWYA&P)JDu18XqeCtR3$V8>L)Y}8o6Oc-ZPJES_&(nQ5BID{UMJH}g};U`>cJ1J@== zD~{AAUMIJPUn?{UuV0ZbY^nyxy7}1il@7vGIvTw=NA@&-9`Fs=P0m2?+tPM!9fh?Z TYmf$&3yR8@e2AvJ(e6mLFRAY%6P(i`7EY z%2xB%t8-IUsn9)F%Qo`XLDy4Ou2ybWs^dgL|5(LDD?wZ6>Cj;KY{B~oJqq7*^a8y? z9!(;4k``!@-l78d3N?Wp>d`j6tLxsU59t&74E!s)LEk`sM?cZebd!FeU+H()x9B$A z(Yb@cUAjlM;C4zJ7HQ1}gQL(>kdxxHI3wo8lE{gosEM}diOXVJToG5rdx(Do`BZ!^ zzJ%uI+E8DIz9GIA-wy3K8siV*rua?#fyiAUj1glncnZSLv&I4AMevu5DdQA$#i$!S zW7F6&-Z5^${&Sc&7~D4Q7=Iam8~3#5AD|<71z#T4`iMsM>^#TiDfnjO*#{y!84uG7 zd#YHHIa!o7*_J(dS#HZK^6H-IAGV7J{U7Xc-H+uL@|yf!nwdpiDRXHc6+Mj=-#_V~;~X31Ufndz5Upi$5YgLM|5J8)F# zoOCeHJn|#uM4nT|;w}u=iQEJXSMgTSEmA?0NTO59Jb26;cSf-$3QuFJDZ+uI@Mdqr zaSY;b0$c{A(fu!1I_PPP69dhY8bgf}jLKo0X2#?=B*8?d$Hz8z!lk(r3gSV01obQP z`K5LYKEp%17H?1I9MMNRH25v<=Wr*T!%Z~d0Xap0&k!)U9!>}HCU)gT?(=msbD$1? z+T&@Y14RAsP@k~{;Dg1vh7GP%V|_A1qz&&(p3EeT#2bo7j&^pMZ(l3&?TD$z8|lMN z#Y7xs}g)KBbcb9Mt8YeCi_4Ju_7mCm^kk4ia3{{p_9q_F@1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-epc b/usr/share/terminfo/w/wyse520-epc new file mode 100644 index 0000000000000000000000000000000000000000..8dc1ae36ea98c86f57ac9f0461debf908d33d5a6 GIT binary patch literal 1738 zcmb7FU1(!P6h3oD*IL{bd{FU%M$Lt-uz2sxy}2p3B)aR?>RJ*N*_yaZf0AvxN!m0? zn`YBSgoOn~SP(=(R1{%ZL=ZtiWI=^}P!L}fL=YboSziQw^2PX_xoH%aedv($o$vh2 zoS8Wj?w!J;+i8R*#P_n@36y)dTwmI0cberregZrJBhg-Mtt5`+k0vVR&f@w)qeLXk zj|4Px9)d(3>)k>9!N|jT108_xF1n8%AWc(+H|Q;T zmo9;QOrO$c&{yay`i8!xAL%Fh1@>?BJN*gW@Bc-8x>0z7c}7f& z6iZ@Ntcy+270-+F;wAC2cul-1-a-5#y~>o%+3zZ=5ikagHn;GvbX3eYvHZgs7mbo6MY()UWG~}-y0)(w4Y@6Q@|=7@UXZWI*X7&t;=blzZx`44 z-{0rDAIi(}3;CV2iv_xg4w7ATR-L-%lp?3DoKhn>rQ8g>dKoZd7avPb`NnY^_Rtv2 zng9Rv85-qjkgN)-c(7Q=UoqAS_)*A1aS%@JSHbhiDQybOqBK`_lRX-P4r&08A@KxO zNQF_F*HG;7nWdS9L-3iIqs-AbXpJH9B*4_+s4_Wjau+-soM2DnN6L+~TZPAi;kl8Q zg5fFNHflyHh*BZyW$Z&o>@>WC zH&Y@zq|ta2!>0Wlg;lbLZ6|k!Tfno;wILnICS(KBr1|-Uh0~{(m(QH3RI1flZEbCRy%}YpdPf-tKhHp6zybc6N7r+>-(ymtO}EN1t%PxVgDmkhuG%v!>z7G+)KsbW@qe zDwCp2^R=0zP3N`A*YRWF{~xXp|I-q`>C_q^>l7o`Q`!$wVS4i964?dw1;N*1gc9bf dF+#TtwVm6>&RUQyNP{X1iYkj9L{nu+(LWSanl%6b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-epc-w b/usr/share/terminfo/w/wyse520-epc-w new file mode 100644 index 0000000000000000000000000000000000000000..665d6d6b67ef7d3e80d4399678028d2f7dcdfbbb GIT binary patch literal 1760 zcmb7FU1%It6h3!u)U>n>K8WH#S#<}E7@WB?v$J8=toF~Pwn;2PVz!lRvYVgoZ+17? zY?6&ai=qexK@>#AA`}rp1O<_T3Vl!zUlc?T9~7xCfSxm#rDP8y_P@q=u&ePxdnYV#wltya5HxNc3siouL6S7MHCl^sR3-!CcQux=r!;+>1}$K-UIuDKBLc}uh7@@EqzBn(a-cN?BD4R`U|?-{hO}Q zfUpJgN5oNaT(fTX1oSxMl$a8y#hh3Y710zM;yLlWcv-w6UKekPi-=!>ye~c!A4Bu_ zw5Kmae<7}juX=VAjqn@sqqr*mMC6*-XWU_Qy9XgW?l&GX9PorOZafWLGOEUg(J{^$ zFB!kU{>`}B%lyX>@)o&A?w368cHj}sGICt&r!;bGXH3g8@a5#f4UwIUo9WW7W~|7T z?8tNSMR`HKD&LUr$VK4s>wY9J%P-~k(#+1#ZM2`vthH>_94jAMHD%@N z@szU1;B^-P88dr4p7ONg3D|w3H)r<$(=)V}r$N%nFX6&sA#X`rOW=ngk3~T^U9SW_ z8BYaV@FXg;w&UA$0NO7D9ERAFSRfIENnS#+$77ac7WBbmrk`Y*hCs^zmPx*DTIU-Lj?QsXG2vKceXm>hv5nCSHA1SgLoDSqPcIAf7y)`p? zPYr(8=L2)OF=-zuUI5$UbFGt^gtvEP@?-|IH|ll2})Q# zu&}sz_H40ODwWHXO0`<6t*q4RjYhM%y1KU3YOSxg+Z!93n_F9*&NlaCh98%22N0Ke z*aqX~PMidZy01H{8?JQoRm62Sm2RxkDM~lr)stM^c~|GV(PiP+4@ZdCG|zWBQ30f_ zY-l^m_54JT96d8n=8XP=4B*9!>2Jm$?dxlEVjUZ6Le?O4D&`aw=NyPj#d$^l0_q5% An*aa+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-p-wvb b/usr/share/terminfo/w/wyse520-p-wvb new file mode 100644 index 0000000000000000000000000000000000000000..24bc463fc7ec9beb0bfe3b9ec65dd61dcfe64aaa GIT binary patch literal 1792 zcmb7FU1%It6h3!u)mUmn3u1Lprn&=044t_%v%6uIP3@ndT9S&;nADPNc9Y%iPd59T z&7Vap3PPnI1ca(k5ekAJv@dy3K?Mbof(kwq5qv2~AAC`yuzu&xCW@sGndE%uJ3n{M zx%b>*9}zFoL)1qD;&<8Z1j-rARc8j*?#zKZ>8ljh-DvBm7m|61T-YMz_1yu#5p{1>q+&4jMhrp@TBOWw1`-1@T0focb ze$X<5^#VYb;i%F%o|8A9j-_13IgmyZ4maV%R)NF8Db5Q0P&pw2@VGEsCv@X5T*W&< zAE64ucmh47%_k3;15Q7xVd3+!l$R#Goj!U6jzbWC4d5~;jqZQB(m_vSlo)89(3sRX z#Hbv`5oSz|K;levdUUE|$6OjarXU`~M^GQe=J9HS&-khIW{BI8|n)9A_z-N&oum@i}_^zD$T$HiA*CnDPi4I&zVs))ux-H0YYlXh6<#Y1*ux1H;^Lo!F` zeiT-*HMAXD-D&|hd9)4bK$?&RNS&sprl)6T=jP6yEf!0qa=B8OpRZOI7HYM6z0qhk zTdj6`ak0}`T3TLSSy^3OFdpvc36N;|da`=pN)KN}Tu)Q!!781i z^zc2s$kUVebiNl|7XBo0g!pu`e9z+*z_2|TIi)gF?X+dgKoK{rKxDbzuGm8EJ9X6|6 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-pc-24 b/usr/share/terminfo/w/wyse520-pc-24 new file mode 100644 index 0000000000000000000000000000000000000000..f9f2a933909117fd53ea7a6e25d494b240a0201d GIT binary patch literal 1732 zcmb7FO^91n6h8M|(K={n;lkn*dDVH+QH$^0`(Bdqg~aLDHq_Qh1(`CjGU+7Er1_al zl9^08X^V(-A%Y^Ph@gUY;X=?w!5>5fH*UHurBVbHy68fR3pb75xi2${rHi@beCIoV z_wU?C9uhfvkap0d_)hlvq4M^YTZ?;DFzEF=Wj14L4weJc=~cT+jtZPov0HTN)n>Wl z6q_Yye}2ZPmHQ`_i|rDTFh5o?F-lM#>+GW8XyoC&i|&T+5qgZCCQWI?4$?82r&p*9 zUZD=KM;mmW-lAKmd!Ig_kLXi)zod)wE%Xoc6a7q==rUcQYp{Q#>vRKpIJ`ByNq>_o zm@Dy&$Qm{rPD9T?4vNF#sF)MS#iFQ+Ww9zY#H-@GcvHM1-b4ID$j9O{@i{b)FGl(+ z=!@bT@%_k-qcQ#{E{R{nABfx(!Wy%N!v`Qd9=3K{kApvH%~&r$m#rnMW35>O>ow~t z>}wXEkH@dp@78tehV`eZ{0q28vi~Wmj7}M3&*n(WY54ZbL$^gXGw!7G+p2g;7GzOY zWJ7jjU!Ie%%Qv=Ff2UpC?tgom^S&!Tkr(9G(k{%?J#;_W1-I(9e76+2E#;Ql6KUmT z;MEmC&Mq99NC(F8JnSuFRI~8^@*ItE86>O1Ivy-03YLtu1U>_qj)QROpbnm&NNcme z5iFgdop6N>fY0C@MQtJ(rMOzLCt#LhmfV7XnK{HU8V7AKI4=Us3LI4?CmYT&kAg^f zk@o7C+=t`#4B@1OAQ}=NXpYSHm)SJ<4xiYv zczY)2S#z}`gHQ2q4zFZ#co9RmL0%OQFoX=g#_d2}#;$baKiaYjyIb(2_CF*VcNy_4R)L^y!U_!Qjl9v)qDtJ{>;>AWk~zfpITqkATF@HjOm>Ri@V} z=B9bd^ii1Q*BYvKPNt%`~Uy| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-pc-vb b/usr/share/terminfo/w/wyse520-pc-vb new file mode 100644 index 0000000000000000000000000000000000000000..a3cc019a7eb056ed4515dc5bb9ebcc829874bbbc GIT binary patch literal 1780 zcmb7FU5Fc16h3#Z)V0_ySn#I zHraH4q$r9YR0_g^P!$xRAP9ne*#{L=P!K6-p$|m_UkcI(Ulb|pckX1PSo*L-&Ue0Z z?zwZ$J?DnmEsoJ6G(;ofciHU)$~jPMOsVudyH6gYc6w4jJR%$Bn#EhrVFEW?VEb z8EeLS#-FhNHtzHzACeEt-ExoICwbo!z!x+-BlB99HS*f#QZtd{aAfVGoS{p6UN@pP=o$4Kk*JDlRNutA!gvBT zq|GM}n$;(DtZ^!8NeQ z_(rxv-wv62oO~H}BC>tZAff@NifA0vjc5WiX@@o5JZiUh+QnfzBy)luKw=eJMcJ{H zK?%6ZlU+y;vH+Qfv}k%dmpgm5R62LAQmIyJwR(MSuF;sEZ#G-4c6(u=)9H2>7kj<) z=a-h2mseI+c_veQT)rJZ9DT$A0^)!_ptkNM$58u<9JUw|& z$9vIb;r}FBi2rVZ?|Hlq7_+mX<0{V&;)&$wnLL?O`m2I3$PiijOEN?c4zxMBh|1cK S4x~wyoTAE%3-PFuSM(2u^`{2_ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-vb b/usr/share/terminfo/w/wyse520-vb new file mode 100644 index 0000000000000000000000000000000000000000..a537f028a0f9d0f56bef2300e431bb404469a747 GIT binary patch literal 1736 zcmb7FO^91n6h8OeV#jJbU>8*%NYp%V#4_*Q_g-Fx7ZR;nhiaX)7FrT*XVS@JGD&7K zNhUv?nII~PUCpYvC?W-+2nr(TLQ$lki!NFa1vk=77nRa3T!^dqo%>=2WHxij`ObIF zJ@=k-&%NP2E+**^jnRboU3PlDvJbZl8=YRWIHadRW8kq)xwRN;mz(86wHPZDt5qVQ zelaXriA&>tG6L|FamqLc-7waSw~cp=4~;G34(z+eyp zX0OXrTIV$K-1ayNUqP03nAwimiPd(sq9MDoFW-|F<(9l8FUu?P>aN!BRKd=^FLt@_ zSMqy#P5vg$e2(_gelqh`*{VC%d}!5`HQ$J*l%0mxEdi#@{IPh-(~ehRkBs4(+5az} zrhU8&l2LvY4;CAFi`rTQe-ZLRGzq8cRl&3Il&cdQM{3S&$NO{u+OGi|hS&-0kO;yg z@1fY^F-tNFM&L2iM>#{|pf!frNr2A7vr5Of_M-V*JmuK-WExf2T!kIq1ZMox92I(@ zvO`S36dwh3gvt*S0cuE_&m1u)>~Unn!q;$=G@)VX=;VF)jzByn4qzq= zqBJ`J3$@L>!Bc?_NNSv7RJO*1MuwLl+Va_o`j|cHQ1+;TxDXG1eR^(a`agr4`s~Q! zVsy;&!(MBH%ifOROxn#!G~pYw%K(qTXK-A!1M()Sazp2-x|x5n4!`Sjhg|Mx#z%-3 z!1lP24KkDP4j;}unE~yKiWuFymEkAY3Oy@i>T>c8*g<4_pngPsP!-Vxs1wluG--u3 zUOZ*B4p_x;DVDmpRXgw$K~e$#L*{gY;_zKUvysSYt>Ic zx!MtNeUU1 m`U`@u#Tdo(S7VGG9%*x?i^^J%Hl#t7IYpI%197QxUeUk0Y?{sh literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse520-w b/usr/share/terminfo/w/wyse520-w new file mode 100644 index 0000000000000000000000000000000000000000..71f85e29341facd0e3793fd5537ef622c1aabb97 GIT binary patch literal 1714 zcmb7FO=uit7=FK*P-D^NXmL>1x`Rfj&V1j@&W2gDT5XN7AxT9Vc1=y(P1EiEW`DBT zZW1UIaw;BrP{AJr5$d4_4?R>61-LJuNBJ3j9>+YLxAndE)m=Xt-s zcfR)>_DS&~Jwc;1E`Bt-JzqLUyPMr!Yb9o(6jIvQP+D6~F3H_UKYcTV!anJbM_}6%#wP8k)4~wD+ zGpqe^jU3s1-b8H1JhjKj?wq~Y!oF54ngz3D*3FLDH!qqy=4JEBzSi%R!QQct_qp$9 z=2i2W`GaZYbMy#3PFCJ7*$vk&hIT{R#bz=iok>L1DqzaWPbV{;4!i|D6oWNO|6e{u z2YDGREBy)@78`lzv^od=8tm105JBZtz~_>gfDfF($?TovHXVZZs{ofFF^>&WL73(( zBu6}EX=cF?JZAb$7HAB#%8)n((8uto)N`EV7I@Y_&5_Uxr4uTrf`|*@I-#3_a3yDr zGehZzsQ~9qTF)P|#+@AmeQyLjwhiT=rimz<$giCWLBuv3P#Pyp#ygM!U0$-SXIK;{5@GFD+)q>OBox>;T zFdw1`7sn|9JO-b^Rk#k=yU0p~?vaL-f2M)B^7)1oS0d|UiWfk8e34DE(ufXvq)1jk z2jk)nYiwt^+uEULhfEb8z6l+~+5`1t>VwLdra;}82B2v>tn%UsyM4%B8M8yOrsz=| zER)+vJGnJX0c|?lh4o+^*cz-wOH0ekXV0##ozrVS;wYAOV$nooPI{?wW;|{i(f#O2vr7o*(0jWDe##|Rt#ue66q^`Wu ziYKDLlAm12&o zPA#sL*2|R!kB^Vfdb)6LgwfN+b3nU8EVBr9AiwHGm;) z(mS+6?}5KhAJB*N5!e^>6@3H!E#0FZ=qLJ>?$d9u|DeCaiL-)_n-Z7A ztY+Qr9CRL15EWoUgrXzf5O0HD7dzsHxG8Rl+ps={d@4Q{UqbWvx~K0#e<$vV?|XI> zjqpctUpx^1AR>)NjpIhQdji7aq~RC|@W7ZhW}$0F(|Fx@(|Fg|F@A^rr}3aS(~yVd zpd6A%C9iu7_>yMha$4(48acK%F2gr3m-mV6&DoEY4z!{sL)npU$?I}Q-jFxtEqVJu z>-WoGf8Qqu-1jqiN8Xh`OEWh^578rJ=B$EMb*!bpsw!)#9#1Pf1FyRR7&CJ($J3s6 zyaKy#^w!M%fB6^<@-j$P`6V?MDc!9D51mJOCICkJ9U^t3zf;|kadv6Y(q}_aoCR{MP0Pq-m2FJy7Kwd*uZs0ssHFHl^ z;dgz0A(yL@^)bau!uI$f>tv?j?e)zPnMoRq3f`}~mE{g>2A&l#b@}iu*vZKDK>djN zpemvXP$!~E(3BOFdGV;#9J2DmRzT($J&c1@d>d)UJN*>Ux)UL!4OxfOAPt(Eo1b4^ zURk+vrC2PL%H>LBZLM0Z)#~*|quE?vZ?(d3W24=^dUbPiYpc`Q=5oyNb-5jYXr>Vx zTaClwLg$n&t8M|MJ3>WV7g9wP)>D+OysH(}@ZoYvlsl xQLg7FlBvI)t(clJz8Q*LF2+ zGqbL>Q&1e}g$TlgiJ%ulK@>!H;e~=1UU=b!|AYU4citSo?@3dkn+!bgd49d$_c`y6 z!+ApbaU4B(O#ZN1nzI~|bJL{hHqxF;Zi}mY6wfnpO|NJ-WcS|eiLLbzD zMnW0aak9`?pqD!FS-aud;lZ#Su|2yH>xBHSbPHN___1l#MK9AHe!e=xi7tCw3}uGt z&at&uf|g^@7T-~BK-cJ8=qb7cX_6FGMd*;8KcHnNh+CAbbI430)l{&eXjZFfvtDnU zvH~@=5ak-ybu+gX)hVsJT6<2bV^nf!NBVVz@1D?>%MQb4f2B|+kwqvI&zjZGaIt1P zX4jChK1hY+$v7#HA}JAWM#|)TAD)K3%tmJZBy@uN??K<;pry{nf-}qQo!Q1s=&bvI z;xziXfs@dkXLKjgSzf)|iCSf?4}~%@b1Q6a4s_*CN>M6UfL-wdi(@eb* zbFXNRYS|7uVN;ITO?xZ#roG)(aTRgKjS(6SB=!apCXMZ-)C~uc@L0GrH)$kpTjD`o zbaS2NjuDBTKI6Q4IW~WNVQta9vbc0Y}j6o%hBEedJkQmKU&4p2iqa)Rr6W^Bhcah*7}>n5QjR7g>SgxrjsPsh!N zgBxN}Dp3IvVnHPYQlu`rs1S=Ts?r4u_%-|ib}Tx)cN}Mt7FFVoo^#JR_q}KC$7tSA zQJh8}UR8e>t?eNz>LlB(?af-po1qsRvVv(V>fWettu}&AGFo41)Hb0M{O0%F0BRbZ z_d4mcD4u%y0gm7$W_xf9C-Is;eimuGkBi7NDxi#UT%k9G8GOoq4)e6jq=5}=VH<6H ziLV%cgYWPY`#s#leLSG|7*Fsg{-Wo3f8!r`zUO&L9aTNb^LkZ3?JMe}I;}*VRp(S# zMN~}1RZ3-4R*i5puZpV7Ubpf6z7subC;xN&s#;KObxYl*;*R=3?Hwq8Q4iH`Dr0zF z))=FGwv~*hUejn9ZR56aXJ7HH@%G(SrcQf2B8N~mp3|$J;bQf6^sb>s15o26PsT`r6iJD2GpbB32kmlrVN@j88C-+m|^Ia7`sJtSjuMD3hT6EHqD*%7iPPo;ws|w*M?{~kT@7f=+HR` zsZ08j@MyR@H>D+ZN8&3+u)b(7EiPYM8L7{%jy6i`#b#kE z@man#b~C=c`T53ByTgw+f1h*)Bfe}Kuz$xC&>ro3i*&s z@%}4w#O?eNPaue|=^o{E^y35%^$gx*E`$M`hlK?Hd|7|I7svTOJcGCJF2aZ)hB#6f z#s~^f6_#Ei%VdSr$tr1(8{|5fBQB|u8kr{xWHEr1OSZ<+#`hfU#kEOjlhkI2M(1@} NXLVBNQY1|>_!sq5NIw7o literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse60-25-w b/usr/share/terminfo/w/wyse60-25-w new file mode 100644 index 0000000000000000000000000000000000000000..f5f8461ca3da7833f4540ea67b269aeb640e6d87 GIT binary patch literal 1575 zcmbW1&2Jk;7{;I37L_)2snkLXFVH}}a)O(BcfI~1CXVCSZc`woLPQM`I9WT*hm$&q z!zSbdgb+x*z@bv5q6!WiP*p?^Nc6ygzl48)8yAFxx;(Rvb4ZISv8&%Z@B7X(Gw;lf z_66nO6ngNi`pxh+($;{J8t}LLjnziipP=8HwtDTPGvHlst}QP0Qq!DUYOF#jgiqLZ z11NlsAb6g1o+&&G^a~uoQ_LR15uCttVgDIeaF9Zd(I5&aqD-%falFTN5+Be`lNroo z5zA;}9b1e)A5kKJpey0}%f8bC26?#GNH~v9DU#WwNYpWjhj5?uC zDN$$CSrt=pl~A^FRffGel~)C}`YGw=HW3@-F0R*Pk-y%$9A|ub3^zte1G7WD`=e z@HDNBqYQg^sbzu#(j0pwnoqH*a7wQXsX7p!b5~oCWi~dXpN&h}BumvOq)#p!kg65> zJ|!#c(t}7X8&;ASl3GsJ>5WiUqNX0DTw=1K$JP@vE)84iuSso~N|tu)q%^tqnD{nl zNa=l*qj`4-VS%iEg2n3X=-omMN1!f}A{ikiGD^yXn^9GAA%d47?{Ff$`%929?!O0- zBhh@4(@#43q+*4b88m18lce8D z)3C$c>u`1G?1j{&LP=~m)*YMC61yYuAT|!OPL@dhsQ_gZwNJL#dCzBc9JngTQ!Ll8nK!#1nbH+i8gI22_5?(K`4lV zB6Oi3BIu$E1rb3P1vi2q2!bGp|GKJ=l)b z_<#jf9Uf168Lt`VbaQGZ)47wKldL8xOLZaN@5r{@3~8raov7D_W&njhOT}b)D;laI z+OQR22&`fZ!!=lk4N z$M_Fv$Adn~o0(!I9*7?>#O^3DOq7T+Q6bI{XNeJ_O7PZ1E_qa^ysLc++Bai8ud{B} zwFkvbVBMT+o3>kMN@%`C(|=EWp}no?9-)*;&Sr%6wP=^nVoXb-z1If(61GC$wi}}# z$3E3QkAFG0*!UWJJO6$1$JEd1U(hM&F}}Y>7%^+asS&G2yc#iU#H|s#M*JEvY~-sL IIcj+JH}s;!-T(jq literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse60-42 b/usr/share/terminfo/w/wyse60-42 new file mode 100644 index 0000000000000000000000000000000000000000..6b2b9c4dcf267dd50b25b67e4d02ebcda374504c GIT binary patch literal 1593 zcmbW1NpD+K6vzMPl`3sgmkL@aTncXSlQY!yd(T5`#qp5Dagz{|08(hXar^9MauO#_ zafV_9QdJ>92#EzOx+p>w5)~2%sZv{s1wt%XuwcQ5;0v%b|LX}UEvm$me&?R)o_p?~ z_o4*wJbG|K{xqsPQ7aI3u2**|#ilk-%^S76F)QG%m#(d@dBaYiw6s>NKm?7iF}4lJ zEb8@s()(#l~9)0m_7CN9C{xPTSPby7hUyQtxP z+`xylKf!0X#ql=2#y7Z2?LHpj7yL!7UjG}AgVJ2ROS;8F{b_lI@`St~r{uJl(kB72 zB_eSdmXwT0meHI{%5-bqOlxdbc~s8*XZ&qhl@H{G++@Z_@`ZfW$-FB+$bA_$>h-iS zPWk9JVQd>88=o4V8($i?S{b*EJNt6K-DfxJeAn`R|JdmMwSIhJ);;5a@sshh@vHIM z6La@h|Nr*y#vg{7Ko>kv7Sw<*;Y6(@)LT$HZGG4*+os>^HwR4DEIVzL;UwRd+Jnkl zd~hmn;|R?jK5aGcOW0A?d4r?Pah&ztEL6^cs&b)R8ES)r4b{gXOtwgjSz}PW>ihwf zvl@DpDVq%GNhBX*Mav2%RX(npc1IlLj)tHLKBgB)AW@)=)=8(#ne#@`jj=5#-#ojfqH?!D7h+rG*L2?c%W7EjkbPqz!Hr~S? zWRf>9MP4J*2c!Hb(zpW+1_!7(25NxVd#54|`G3t`0gPt@_lILiOz zNu0tN_%VPWLKwslQW%BgS$c^qlNC}Tt7MI=lgs1^aY=y`$yKsI7Cl%Qw>6d)4b9P7 ZNQHTkdv{~IB{I( zh3h6YAdt#}4N?~%A&@|#3pOA`t4c_8(FF?@ELgB$%|F1Bh57E-4pLfFiIINio^$SZ z&wY*V^UA?sS8}AK??`Kf@RJ3U}!JfO~j=Kk3!$f8lRHHD))|QFWYtn+ni&s7}?T zPOG2_sczM$Eaj@WdR4uq66{T?w3=#;n`yRu1B&7 zD!H~(ol@l7Gg7fxVLs)+K)+IL?^fK3Z(Xu)ZEqr^OFrv zvcm_do~Fk+^Z~Ciern%ox zaWPT)e`j{vEt%JqLkj8*h%fWZ;w}!*Q3?#8(Vu`tp>T_A4%ljbK=cT^Ku%x0xPx zEWU|xzKOd31Wxg-?7|Cp8DaDyf+z+tj4`C3vaDPnYh;}i$p$HrYh;Nm6OZIbo~)3o lWHo^GNn2xS<9m+wqT0CH3}_Rh(RrQLS)J6mK@ulJ_y^6NOKt!F literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse60-43 b/usr/share/terminfo/w/wyse60-43 new file mode 100644 index 0000000000000000000000000000000000000000..75d94671a07c2cffb5af0562b6dfd455aec5e914 GIT binary patch literal 1573 zcmbW1TW=dh6vzK(OBI^brGgd;L%}UxIl*7JXC6tctCs_z5q`(|FL5~q(zn3)$h!?&6zVZt9?U) zcny6xE`J)eotPDjgs<0js-?CzPt6;%ym2e&u9vT_u6ZNjV0me+RD}pyPiyQLkXbaF z0n&bgc+%7_Z~zDC?LjYI!Ks!#QNuMf@C9~p zllCoqjk_Gb!w>ig52!uD@AwOUQ)@Q=0py^xSMQNt@lbzBUZy-Quggg}C8i8WP;7}x zLWU(RBa&k@FOxF8H*aQdY*%?&&i!ZnV_B6iWmj%6<16`AzVBu}kYDAI3>(d6#u%r3 z`k64EG`Eeq@wu^U+}z8!W!&DE`^`SPUFXi8_wF;J``5bn+^qY?kH*i&FUD`i!{_Gi zum1n-$HpIqnm`XcP!?3cmvmxQ3hE=MosK?iR&3Mn^_v0HH7ia>WjMueOVyzY7G9*Z zahPTwKW#PdOWHBk`GBL%ah&zt98}(cs&S!w1!{wX4K=_aLbgbpSz}QB>f8a9w_19Q zDVq%GNu&^GMav4MR3V|8c1IlLj)tL%KBg3K?dywJ+=3;zHRt#AevjI0B(FXRV8uoGaT48;kbR;_~^Gbos(+W-Yfdwl#V+ z@=3NfvK`*3UfZm@jRyGLDc9lkx(+Y47$Rq(vNnyZP4^(wZ0qjpkV&5Q6nT$KllRFC zufK4axb5HKQFw8K>I=M#!#K(#J%Kmr^PwMSU?GAy|9?7u2uJu&Jb{xq4L<@1A&fx` zA&pT;fu)zoGFc&IvP#y-I=MtH6PFZ8iCiHIWYL3_aa&_)(b62Pg|&!i5!E6_q5aye Nz1pdLgCtH8_!qbsNag?l literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse60-43-w b/usr/share/terminfo/w/wyse60-43-w new file mode 100644 index 0000000000000000000000000000000000000000..ef1d7e474b94734846ca2f9a5bb6725141b8d433 GIT binary patch literal 1583 zcmbW1&u<%55XZl7OVu{1t4IwHF{K#r$|+9j-Sx(CNJtzzj?*MfOH~myNXW_BX`DE& z^9$D`HAR4m5aNK4;83X&2(GT-btA@ISw8 z8&LQRjYfntzePN0=pQ(Q!}K0O2TtN8zyCG3h+_mvS}9Co3bWMa@E$&3yM$%RRZ_+# zc2L6}Zu;53z*qR5{@b{NA90u3@3@bLcucL)_#6KKsyVx%4y&WoJ5+$OOLeOrbxH+Q zNcE~dWhqxB)Z6MEm1J*9Wzc09@ zrHn=+W6V%K{mmIq8aIra#^=VD#@DTgZ;bB_#NIw&H}l+Sd4G6j@4>l#dT!J`<7eX+ z<2U0El8j_+ zC%UD?xu>OSGsA#hU#3}HXe2(W>z`-2T$5h*6{utY>Kqv-DUv1=Bty6wl_gUFoQAy1 zOnUqbWSTqBi9knd)eDZ^v+!8hjF_I@xUG*N3-&Xd7tzfnya}nlE_JtEU}3VUNp5)G z#nbVt=Nx*2S7~xB=9pPYnA>v3EJ&|8tj!^sUWT?eVGc{y3|nFCcFb*aH*v$OYr^E{l{>E z?_v*L#Ty7Cf+%7b#4yH?hRQK>k*tz6QX=c5Os9K aT8nAnYB8WioI?AxTYI%r`vysZ4B=mHv`qg1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse60-AT b/usr/share/terminfo/w/wyse60-AT new file mode 100644 index 0000000000000000000000000000000000000000..377b3a077b6224718aa1ca876ff4437c4b0f00cf GIT binary patch literal 1251 zcmbW0O=uHA6vy8@g%&>#r3V`+0ojWv?#%8cDSHS_#YUSz#UNr3v`wU`Nt2ptQv5=s z;GuXC4+nzr7CYj88_ z(0VDN+Z2~ccS!e0_u(Nth9^W%;RU>e75E6BU=_Z?clZhG@SEPdUueBU42U5yEF9tk zq|F~!j8I=jOo)OwBhHI@W-<%+l=Zgu6o{vT-f%Rf7`{kO91xa zE*!+YxDWTE#1y9S2HdZ`FVS;3$Q*j#7DUEMn z=roj5%EC4(W$ELH6~{=Uq)Aeq6x3*uX7OieNf}E1U3^2<^b~<>+p0tcNYfN@)>iud zJSE08L-I|N^p&YeKV^dJN*kohncZ_;k28DPbpy^49FiQO<0B@^8bi;b^sUojQwi*O z8Q6-sBK>Vly9}(Oxv;%Oz60hZZRJDuviP{lICG^m!688XeC} z^2{X9O!CZR)X6iGJTqwr$8h4YANnotNjPu*>3wUxOM!_onaysGVtB=JKuTS8%T{2#4|j=J_<(mWiCH5 zKRw$LY)r)&CtkUfjP=x~;!Wwk`og4bXYJRLCDSkr0F;gbI+JkcGg1iPDI5o=;ORII zQHjT>CfA?=O^gxkM`0nZNxI}qpxe)%lU`sL8DvQX&!57a-{H=<=Yr?HV|?#-EMf`E zSivgRu#OFE;sds@&H65NfY12i^?vnd?rtsdcdvfRct%~~FaF`W?9>e&8C6DU$9?K& zb-Zkc6~J3^3_Cc+N9^Jg_W0j9z#)$4%jy6n*Y#5alw8{;Z+6$oi}c>! z{|y<^6`9b`=S6v~HUu~)J6O|ps}zb>R9T7`CYmlrO0G$4cHI_Y$i=8C>L0GG97eCk cevJRg{j`6-xhS4bew#X*{xx%gI$ku0TO(Ut4FCWD literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse60-vb b/usr/share/terminfo/w/wyse60-vb new file mode 100644 index 0000000000000000000000000000000000000000..cb70b612b6bdc81aad20f2094e1f1d3f530980c1 GIT binary patch literal 1581 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse75 b/usr/share/terminfo/w/wyse75 new file mode 100644 index 0000000000000000000000000000000000000000..e499b1fc85e21054bd573a955c2ad5cfce6eeb8f GIT binary patch literal 1662 zcmb7F-D@0G6hC)vX=8~kO0m+xT1y5@Kj+?=+1WVT-Ixkp+omZ}uw+|E+I(!YyXj`L z$!42vQBXkyABqS*DCmPPJ_!NwK?DUAN)Z$U{Re!LzV>PSowJk17EwC8zjJ=)+;h+U zIQP!%Q+sGH4brgsRCl^@)a!JYXQ5t)IuJ)hO8$MJVBk^sou@Q?7D&@Cx25ShVQI?k z+h{ut&~tQ;?4yoh9*fJ^t9})Y6I;mb&6Y7Gxs4l51s;U-MTdk>{dIRlm zsdv@;S-;!rL-kR{Im^F2pQ{b^ow|dl-_@V$9`yaJhvV#U2Awp0%GvK6gARe%dC3`d zPB|OkUpZex^7F0pz4N1U$N5?8Uo&r-Zr6jF+n*N6Z0mUjzJ2=nM_Rl`?5+4scKClI zHX~X4I;RVIOqcaJeL+v^DLtp_kCow{+5U^S9y9B@en-EjKhbVwl6KIO5M{S=dZ-Zi>^K9$`hg?sb_%|SGL&g2cLho|s^iQGsY0CuUIxx* zsm8&JN0fp*iaW3irr&lewgD1y2Lmf+>jAOwgzS+iU!>ij4HjXYS%$!`x<{~($Uk1h zQv5n@7V;)xV*LarW@Hk>+Sn?LILRkA!iYup#W8o-m#pYW!9wED7Ragm58zo^r@SR$~H;3%t;TCy01wg8EP)FZC~>mTsQh zn0EG$2xftk;+4E+%(o(Cn zyxeZDtgNnfI%{j)?u{Gk>%HF1o40u1vCks0x?vw_qk5ARhH-`F6Ga&dm-@>Oyt<&%K7{s0}2 gxBmdXCj1p(?M|!#ZD18>QEl2%?TP^cs$I48HzXpAr~m)} literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse75-mc b/usr/share/terminfo/w/wyse75-mc new file mode 100644 index 0000000000000000000000000000000000000000..fb76e93b6eae3e9bd3d2042e48bcd5d5c6a92932 GIT binary patch literal 1706 zcmb7FONd)#6h7zvgO4({xKZgvh%#3?Wv1R|Zo(atJ_b5WJ9bp?(O79F^GGJi%$+1N znam3n?81eDZi*<1F5I}V1;I_b6v4VtqzeU+E?m11!G-ZV|4lNsh|-^&?|kR+pa1-i zOAhlmJxs$i%3r8%0dN^i zJWJi~BM_!5L*4GvU^4#d5)IKkbRRuRkJB+qQy!6ND$oTgQW<=i)`07f4!uTiK)*wm zfigazkLgqJ&*&8Chzg#Y<=p5vPF=sgKxVkbF=9y3U?(Pji9e5J_`F2{;*zSwYtpoPtQsS;!ZX6Hm zLLQU7dx0E|R~wng=$DYkt(qA!LpqQ=7IdNCjJ0j=T6uX!aoXCkTGn=E7djH3W5phL zKj5SX5nmGBfr-Q*nd}UFp``eUIUh^8tkpVbEgZ5UGNLaa=D9Yc16hZxL7H^& zVzIcmxU{sqT&>n>_4>-n>S`RXtu-3WW~;TnzOm76Z*F!vTU*=PJ3G6(dvXIfagEsL zsEsoE9wp%FYfNt3*A7o(!u9RB`XZA=SKqg%pN8j3rl<2go$u*X0|17f7 zE3&**h-}C8{2(1>vKLBZo=^TJhVTSaprVHd+B~<3PFs)-NQ0_Hm#T9P#G`7-rN04C CU!48` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse75-vb b/usr/share/terminfo/w/wyse75-vb new file mode 100644 index 0000000000000000000000000000000000000000..764d030f7b028f4531ff95443af3d05ea83e2967 GIT binary patch literal 1684 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse85 b/usr/share/terminfo/w/wyse85 new file mode 100644 index 0000000000000000000000000000000000000000..04c4883c050bad7a89b52e85b58293e3b4e4052d GIT binary patch literal 1652 zcmb7FOK%fb6h3z@Y5@U}sv;hP5UD(BLlK>OXU5}bj9ngWEdq*ph@eK{0f^P`ojU_orEGHT?>pZ) z_c8aLbI0B;-li?ImIlO+veV54%bo7rMVJwoUAcfrm~TP?4w}HHj5%8=PFoq#HS`8z z+h`}fPoC-7N5|#(2FXY?g(9DhwW={u;O=obA8nNy`-?JWox&385vL0JctbdIEERDwTW@$_A?>Ee<*BrzKUKZ z76RTRsAN|TXYxw91vo=cYY$FRYD5+0Ag~`OXYw8|ax}HRTc=I% zg9b=3X(pfNwZwc39vNQjI`gfb5L0wsdt*# zQ7{5eM}DN;2!jw&aFiRVEF7h)h=frt(m@qx%3`|(`@IA9fZLZm>PRLZ6v!NaPv~6( z9UyzS%*!fx!^eQ*zzIZD$o(p3c#v7UhO>s54gtms*h^DYfGn!Iy^qQtD?kGt;3ICb zz^UBLqm0K1?RnTv68Y03K zu0#<<=G=y~-lW5RRaVz2@=a<-z7w(Zc==`cVdDFcK_UZ4oyaVtN@NI`bD{=M9(3B9 zoQr)>|yoimpfd!yNwJ}Y#3kvY4Hm>ON literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse85-8bit b/usr/share/terminfo/w/wyse85-8bit new file mode 100644 index 0000000000000000000000000000000000000000..e2069d174360cf48fad63075acff2ba46d2bff31 GIT binary patch literal 1592 zcmb7DO>7fK6n?XVXoy5|pc2qU$W&fIN+>(~qVjuSgL z29s7o0)&KwxU`Zvv}%Qr+CxuBhzm&Nz#)eoIQ7&c>Wv%Xu>Ib8Qwu4VjQxG{y*F>3 zXWkosA_i$E_0WL0B^yoOJ>-8=thXA?+RVD1giiQwqF71zhp?C^FXU&4MD*>DfPo?K z$s*S-3geN5cMENWZ#V6wgJef5!!$wX=>lDbHBAL@38>NveUJGT-JyG!!|(z9Ko6mQ zrbqM}{XtLZS>%6CFXglCvJ+{aqL}jPuz$85qKzm62HcN&c8k$iznhwv4)ku#T)S!^ZPhzi?&Vc z)536vme5ShDPTxTYopqi+Aq+LwBNxzUT811SK6BPS7g7AyWsqXBm>k~Yv-18YhgEdS3)Bx;W^zibV%TOuA4Fo)JUoIMAT@FZ zmb0Y$P$?@=pH^`qcM_HrIDusb2!cn!P-dV~FqBn*#|!+xatpXq3dbGM4~*&qW`F0W zP9@Xs2t^m@p|-tB?NQRtWT|bbRfw~|1aOYp%EO}anT9}?$&_LOj#8VY3ye`4#o@YS zR7oGE>@fvcfDJhCNB8F9ea2Cd#U<=oI6}w$MKbMl-F()rb#y(5+Yu$98Y?T!=Cy0rueVw^ZmgndXgI&PjECC| zm`HOPE#p3M?;IA~W-C(MuucUNCAR2RLx>NA$u$6GJ31AznP_!Gj(+c+kW|Z^l2sc%%JZb;HDDFWWQU_rCY) zRdv;SHJQC)f*z-bXp9-S);%)R0-tiQTlhh+2vQE-lbPnD-vBq*WXrgguh#I6f*)h&RO< z@irneVo^k*Ee2u(-WA||aaCMTb8m=`#HY|VfiJ{Y;_Ecd>)(IA5#Niu;x~-^CH@ij zV7D8|*ly!7V=weRW5OuFP63CFvT?#VW!!?kZQKF#^Rsc+_{I3u_+9&drqMXwV?Jr} z_&&|7M$a>dJ!?*EGBV29OsOr+2+RZKA@fyp+B{`e%~^BFY;I}(W;@tC*4g5^1M`ac zf%%DPRnO8+vZ{97Zb^GSv|GxaZzJF?fy!3(Xtp4wQ-pI2itQ-!ze#01yn|-}CFMuB zyjs*?4gm*&O19wgBF9tfIT7uG?>9k`NilgmC(kN)Kprc-%QG|v*<|t}Rw-PkW=&vW z$9b`c6JTkq87i-B<)Lyalux&?BmXo!6?&m^LL?y~;YcTxIXF_)5DCJ3sQenvl*4w5 z)^k(VxHFc#>a}daFOoh0pU~X^O_4QS;bkSf>DPgiz#E9jfX8KC^CYu!H0Lxky#i>@ zXD=;P5wavB>i|`bNI(HD;32N7z@>biv$V$r9eLPJ5`H;b@J3bd+zEx1EY z9po|jOwvV7fc-5vuFth`qiiA2SE7U_b8Q3Kq03?2Z>wXM_$GBj&kk9-y!<-+An`p& zKaoD9N@NaFCNhA`+hLO@PuksG_QIGQl2xWh(p%`E*8ytjhv_XWquzaB2&@6CK!;{# zW@i@{mzI{78;vMxHdj_ITxhjcSKIAQr`ugy>-GBm!C*MNc=6Ju_4Uh_H@E|(fUjRE zz~ROnEOVUezynHm(bH15T_sxgO(hN0DM~lm)stMs`L51)b-p}?0Je>v+dQsGHMasP z+11dI%JuwQke@tvo~*O_e_$JaMj0r!k3O*0^Z*;{0zIHjjafyFISIJbIIrkGgsqU9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse85-w b/usr/share/terminfo/w/wyse85-w new file mode 100644 index 0000000000000000000000000000000000000000..4a17128f703ade4bfb6559234408c832a0368e2d GIT binary patch literal 1676 zcmb7F&u<$=6n?XVAg!R0I8b0K zX>kFbOQI^8q9ZoMHCS&0?}`t^M``R$@v*oCeFykdd@jC9{ha^7_(uFFei8Sv@|XBW zkQK+f03J_Td#!!Y`>mI(BIZ|tk~M0bwWh2up})4i1M|3N{c8PY-M4->_MfRYj-QhI zB(EPZ%&I@0hwq>~y3I;IW;+$^XvfR)xI8V#UdR+sA4(=oB$?<@*XESlg_?dr#-NP21qe!CZG4@ScMPCXJt+~MT3wHCcn-qh38i7 z!$|D9M+>+CQX^-i{kENh%IZiRXyHV`d00B~Bke{Af=9tnZltm>l&-=PM!84_Rop3y z;}+}}Puj!oVDhN3p?pvva{<1gcNKJ!?C}Xst6+_v1tx)W@Tid2RnG7Tvvv(<4Kuw0 z7%N~aEmZ-ssOt7HnmDZh4S0YLzo`P3@*qbUiwoMfaGb<_d?@et-F))C#g8?6`H4nw zhuj5_&lE5z4>bYyw_tc&kR7U zix+2RE?=IXUtFx!>h(sW*<4y`wU(FL?Uj{IXLWULt=nB+@AWn|HaEAnu3WjwEhvWO zav?4^>>|w>E(9-V(?;J&(|4U{(>R@U)P!i$Y0qr(G{<`;-ZSxP6b>94-?s|hlXA8R zDmvxJRoe4|Y?vE)bC&FB^G|?Z{Q=6DU;hDm{NZemuj6DLU=3(fZAMe=k^(%c&1(7& DpG=Ml literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse85-wvb b/usr/share/terminfo/w/wyse85-wvb new file mode 100644 index 0000000000000000000000000000000000000000..a18a7eeb7fe18a96666f31c501d53800be037c11 GIT binary patch literal 1690 zcmb7F&u<$=6n?W?@uPx<1E?sAgh5`ZL5H@mHcluOqBzW2R1 zGjC_!8_T2O7#*g^XiVHR`-8kc-tSem`-9GMD$he^@_wdY>sB+pTBlZtmNS**D9T7z zjW4c8n~i3NNa$}u0uCO5&n_}QOL6+_B6=@AK#$;!&(Ro3JrYuh&e0rQhW9qDfY*Q~ z^=Jonm)@lhVB`2Bx=x=$-K1OeIekgr(GNQQBmGRj(67*U=pXuzY{9dYI3|i(#qkN) zsZ_`DjCftVB`%0dh|G%>5s9|g5kJq6%{gI02NhlP)JYn_AC_=n#Cr0g_CL$>TM7R>4E^Sm|9}pb^Lh zlNYf{;W}08C=xr)%LSYOsgW~OUfaq;*gouPAolxfBNL587 z2=k%xt2k2*+bvi}PFiEmNb;)JvXg#+^a1#U?hfcAS+gZhE8)$)0h|NgL_`KWF7uiv zn3bbBrGAX$dT4flV)|iv4X07? zJ}>|_feoNT^YaS}D=Vw3Yisp-6g3*n=K6Z8wXxA|cRJnf=4P+g?{94l23M|Jy}G@9 z?b;5vpcv@G1vuQ8gEVKk5ImrC8$B&`-&LY@<5bd7Jw@qGyLyqUc)qLWyL!Gng8;UT z-`f)INjcX974359NacEdF33+@UL@12k=#sDcWj3{+|B#c5OG-SsB68`rVpIL=2)Q$UKE9&oyL^Ie?8 z#c`9mNIif+2qD1*4i%N46-aR40HOyDJ#gT}iNAqsZ@qMRX6*ziiByS^e(%@3GxN@e zrc1i;3fgd7{x+($L}IS8RjsX;0%Mv+x3(aHpar^V1A-~|ekWGa0JfjD2 z2rr>4=s$@hQpg}jFONxFz$IF5V+OO-B`i>`kX78k2DWe;ckm(oPw*MOroM}N_zvIG z`W3(75&og&`;YMiPXo*MAuaNP_E2K?G9m9uMXFNc47cQC`C@0LZ{)uGD7NAIu5p%fZ#!o!8y^^VjE{^@ zjnA7IUm9QS%DubGZ_IPA8U1$O-rZ|GcxKiQ#!tr2#xKT0nL zjSpN+hmtXle=C%9sYW@wmxIbXP*t0{47Ex{^Awd!DkRRV5vU$D)}r!OU{_hx8oQ`8 zg*XectVl`~61rq>m}yx~Qw%X(h1HrKTa2iSs${F;X;nxwla+NGRm)u43MC!AyItC7VjqO{8c6zp(!I$Z5KJ1+D3gOqSOygfFi zQ|v~H2W8_R>(m#E-pH9g>&mQiZDVeA-d>nryu38DJhPI%o?9KMWN*0dXR5;+(c1dW zwN0;Hhq@V@MdZH&;w_HzA{}0$=kSV)5z+^hvFT)NhGS4u!7JE=Oz`k0$$4^tyh$!{ zio#XG%IYb_S9Ha7<{N+L5p?rs1D@kO9mWwJdM93GEQB7Mfdv6Bu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse99gt-25 b/usr/share/terminfo/w/wyse99gt-25 new file mode 100644 index 0000000000000000000000000000000000000000..41d58c42cf92be39dacf8bdfecedc7e43ba2ceb3 GIT binary patch literal 1603 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/w/wyse99gt-wvb b/usr/share/terminfo/w/wyse99gt-wvb new file mode 100644 index 0000000000000000000000000000000000000000..17c79a35c1d5dd608fddc86ff05155464e0d670c GIT binary patch literal 1637 zcmbW1&2Jk;7{;I3Qqhm33L+8_Q;-8**~Lk`yI#jOF^(PEansNbs!CCs1CG~D;>1au z*p2I?F#;7;2njB5sHnt;Kxz*hK=jZ<4?S?=#NWV`8yAEG%QNdFNFh=MBmLg*oqcC! zcU}~ecmby|D1O#j?L=a+IoulFD&5+*J+o2iCg{wx8x^1Od}hQNcGhb*R@Z!6)kd{c ztN2QlS`9+L8=l^?0fF0a-2u`a^XOyjSyuk#9%J-4PT)Co^Me>g9Ag+~JcB$6n5K0R z*Dy!@HXO=DvVwJNVhe5T;$8ah;{$w3eHZue1-_>BJ$}Gr{6fohf5mV3-LqWx5B$lN zTvrpvDNl$V(I@)FfH*6B!Y_hiNEpHrQ4weMb@7HsQ>!ttr@P*NkvTCd*2IQraE6w+ zEj~J!=`-=AxGzGQ>yBtP<-bQvThO+(UF|*Xj`rbR#mCwwhidO0^1Jig+lzjFWcKj8 zzItlaH`)X3TkSjTq4wyhwTEZ_|Ndj`$&qjSQTs`gQ|N^>AVdD7IclUJoBm{!s=e>e z>s7sO>gB6?-O|fhf6_|f6yy$M(cot%iza&Lp5|{LXZ*i>6bOW+hEgbX?d?NPq6VBHmX)~4RRJD-3u{AGGu~eNsiz3M~z<59p>5kf_#ybp}M+C2+pIyHS*%_1_o2!bd zzKUb}R;wT@LDen8r@Fhi>`z8g(8u+9TyM&AdPN5HG36%cI(hm|P9Kv6JzxY>*wUN& zPJCCt)vaO|5!&@p3MTA>gsoibz-3+3D+#0n`_INyiPRAxIK_jsc!-Y0 zBQA%@2xP{jlQ9{NL0<8`f*ptp-27?sCb>v1k;|N-SR(AKlal<3=4@-Jdwcf5hdVT% z;W_p2uI$GE&NAjl5JNCv^M*`%`I9(<=b3#8uONUB!iXT|-JV&9B41M_%VdSr$SPSQ x>tvpkh(pSxLKes(S?a~gq^U5J@GMJN5hZLTqDqWXsJIHNs0ylBjKoO-e*;Y}Y!v_i literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/x10term b/usr/share/terminfo/x/x10term new file mode 100644 index 0000000000000000000000000000000000000000..92abb2fec268db7a38d1d36e608a8ed0d59ee8f0 GIT binary patch literal 657 zcmah_Jxjw-6g|a7-5fOtafs+3uy1KfGAWlyHis!vAuLW`FBj@AZoV`Hk#^jGAraf7>I zC*DfRd);}^`iLhy|4R+hvA*C{C*DRR6bT|Ea%w~_J4FsV)ep3xf;xtuace{(O9GC*{Si}S;U0x^S2KWV1wK)|4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/x10term+sl b/usr/share/terminfo/x/x10term+sl new file mode 100644 index 0000000000000000000000000000000000000000..853009849b1675ec78453848430f64f915ad1bb5 GIT binary patch literal 387 zcmb1QRAmrkU|{HAkYcDXG$=_e%GEB;sVOc=EGaG4&B@G5RY=P(Qiw1#P^bV&0+m7m zBZOxBPZD5YAW8XuRua{dW;*p%b1_Iq+k1crHxS_p#HyL91%|3AA>i<0WME?81hYW0 J49Ueg3;@4iA4&iK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/x1700 b/usr/share/terminfo/x/x1700 new file mode 100644 index 0000000000000000000000000000000000000000..6d9b14d4fa57c0025ebd0f0cb810857c64596e0b GIT binary patch literal 429 zcmb1Q^kNWTU}ETE&}T@=OiaqjH#9RbsDU!gjS)<^s2NbO!qD6RCRJ0BT9jW=;{w*L z0MgC?1&lDdg@J?N|9=J`{{No|O#c7R3a0tNq##u6|9@dPOAO8e>4E`C1{oA_c?KmE zK1`h|R#BMjK+@_!muZ1rr^CR`AZ^4T&8eEHT41P}%)kW{NH4z|D1&}ZU6fnZ+76uN6|Nj|)`v3oD z0b>2lF^l#1OK?vbZVKPpmzZspAE^k{?J4F|af6GDsUSZ~+5`2S`dAGH@~g0A&6L Avj6}9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/x1750 b/usr/share/terminfo/x/x1750 new file mode 100644 index 0000000000000000000000000000000000000000..02a23f5a78654cbe38feca5e3c7e52cb66eaf6cc GIT binary patch literal 356 zcmb1QRAdlfU}9)z5MiiDEy}MjG&eG+fs>{NH4z|D1&}ZU6fnZ+76uN6|Nj|)`v3oD z0b>2lF^l#1OK?vbZVKPpmzZspAE^k{?J4F|af6GDsUSZ~+5`2S`dAGH@~g0A&6L Avj6}9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/x68k b/usr/share/terminfo/x/x68k new file mode 100644 index 0000000000000000000000000000000000000000..71c78fc0543f64ba0c24d7d7111085275dca6a29 GIT binary patch literal 1390 zcmb7CO=}ZT6uoa+s8w9J5TS!ou}@l1lKDu|n$pzRmRkE^TR~|k_9JN%o5X1|{Z5N+ z6v0IiL_}QJO;>_Y5Om?*pW#B>xN+ga)p+hrDu#;UW6rtf-gn-cnfqRoIz#8Ff!fpu zV=dagP-eQA^E2h)jGr9u331+h^+qp|l80m{Bp8Z|zYjGUwFr0P=x)x0tr1jEQj)r6W= zd8lQztsWxoR9(;2OSKEVSIu7|zES(?t$L^GjUZ?M{xlkY)jN%(=>A`oTK}LidT8e6 zp-SzV$$!k(x@U~6Q8av6vtisb9vF}RYklo*f6Jcy=f2O3U1QI9Z#2+xGE+LIJxizK z+Ou_f2?b{!)NiH+5Uv3nYfSxglpVO8X6g!X8MqD%k=Yt<>9o6`BL$Gf9?nA_y&_>P+m9o=I znUFs{Q_A?E72gVn;U1Ka?AV5MnDCMj{#4sSHZlr~0pqAxF`l>Dg=K*qW^FU|08thZ zrpiBia~64XHsAm*nZ1~jALAE@7&;LAZ&K+#5Q7JTx0Wg1RRp&)2e?cTri6n(ZznTG zChWXxSSPd>)qdR4ah5iuTahkgq#`ZtIl7EIrsD;+b!Z<)q%-KYj#o~qpBiauYI=HZ zZhrpGorQ&bzECI@@80#i#l@wiQpxw1mseI+SJ&3o*EcpcH_PR%t!?fC4ni28*2b;o zj;3tspDq1!r66s$D_Xi|OCuezJJMZ8JdSuQzHzv1xQ}TZO)6RhC3Gqtwrt0ZL}Tq8 Jld~wz(oYDeZXy5x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/x68k-ite b/usr/share/terminfo/x/x68k-ite new file mode 100644 index 0000000000000000000000000000000000000000..71c78fc0543f64ba0c24d7d7111085275dca6a29 GIT binary patch literal 1390 zcmb7CO=}ZT6uoa+s8w9J5TS!ou}@l1lKDu|n$pzRmRkE^TR~|k_9JN%o5X1|{Z5N+ z6v0IiL_}QJO;>_Y5Om?*pW#B>xN+ga)p+hrDu#;UW6rtf-gn-cnfqRoIz#8Ff!fpu zV=dagP-eQA^E2h)jGr9u331+h^+qp|l80m{Bp8Z|zYjGUwFr0P=x)x0tr1jEQj)r6W= zd8lQztsWxoR9(;2OSKEVSIu7|zES(?t$L^GjUZ?M{xlkY)jN%(=>A`oTK}LidT8e6 zp-SzV$$!k(x@U~6Q8av6vtisb9vF}RYklo*f6Jcy=f2O3U1QI9Z#2+xGE+LIJxizK z+Ou_f2?b{!)NiH+5Uv3nYfSxglpVO8X6g!X8MqD%k=Yt<>9o6`BL$Gf9?nA_y&_>P+m9o=I znUFs{Q_A?E72gVn;U1Ka?AV5MnDCMj{#4sSHZlr~0pqAxF`l>Dg=K*qW^FU|08thZ zrpiBia~64XHsAm*nZ1~jALAE@7&;LAZ&K+#5Q7JTx0Wg1RRp&)2e?cTri6n(ZznTG zChWXxSSPd>)qdR4ah5iuTahkgq#`ZtIl7EIrsD;+b!Z<)q%-KYj#o~qpBiauYI=HZ zZhrpGorQ&bzECI@@80#i#l@wiQpxw1mseI+SJ&3o*EcpcH_PR%t!?fC4ni28*2b;o zj;3tspDq1!r66s$D_Xi|OCuezJJMZ8JdSuQzHzv1xQ}TZO)6RhC3Gqtwrt0ZL}Tq8 Jld~wz(oYDeZXy5x literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/x820 b/usr/share/terminfo/x/x820 new file mode 100644 index 0000000000000000000000000000000000000000..24d1d64046077be5b32d1d473f67c0c978766744 GIT binary patch literal 355 zcmb1Qlwe?DU}k7yFlMMoEy}O3FfynC6A>Vu0+7qVz!<>r|GxwfGXT~82LcubE(RVj zi;qE_K@-T*2J>`*q&}DhQZ@X5Ap<)DFN2hdjiDWb1cM-hw5@7^p{lxqx~jHnvTA`5 Qj0p@LIR*}35OD)p08GvOcK`qY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xdku b/usr/share/terminfo/x/xdku new file mode 100644 index 0000000000000000000000000000000000000000..213d40fd7cda69568ce0c0e223ef9ca9af002a57 GIT binary patch literal 1452 zcmeHGOHWf#5T0p_q6SDbigIIuk0U_@dv9BM>#bDKL?WOyx{>RmD3n)QYG1qxJ6)L= zckGNC7beDqF5MUxx?tgg@Gtxg^_%G>hQJSS;YsJ4Z@x2g9&>Ix`2wAy7AkN(R9PxJ zb~sXBo?58ZhpV|<*MsVGxiVSm3TB8{e@$SP5SB*$8EOP04ebyeM%+TJbb?OnOeghH zAK5g3$fYFRq&r}vbe|r==coXz!d}oTdIP^nZ|Ob!NBTrx;J?#P+JbL1e$h7lrsFL9 zB(Ou-Sw6?-*>Df{vjb%SmgHd`;d}guCpd#R3!CQxP)138jaP!WsUD2${E}a5-X_1} z4`82zs;~Twe<xt!u zy@XqnWi7u(ZI}*wu{>OAaQ1JS%8tm>+quovIsqIqhEoEO-$EXr~+5m*gAbz|0g zW@Yy86Y~Z=+wpAIOC@ubkF>O1mVn^*!v8x@B9L0!Y zR57MFpcq$l6{T@wu-hJ5{7aiPR~PmMf9+@Eo<`U~`}`0ll|A zRM?~>s~9nLQ}N=)lh^@`Hfa`HIqlH{UsYZxlbM{% zW@l#Rdls(dF6S>6t}QMWi_fo=O678;yV_UlUFu&pD=Vw3YisrT`ufHO&N+dnY@=%lAoc}fKOl|-VizDz1>z_mhS>`;Mb#eUyb^13RcjE_2*@;n zFpUwSCP1bsMAQt(G=wnCflLbs(-I^K6wYPP7SIvYmC%zkxSha~xH0WV`p1k7SvRxy z=iJIYkask{uHZ=Fk)k8T@g;{#x0D?$KUA@~@^jUv>c=%VYUkAb13E4Rh#>(1@*)7Q Cs3A}Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xerox b/usr/share/terminfo/x/xerox new file mode 100644 index 0000000000000000000000000000000000000000..6d9b14d4fa57c0025ebd0f0cb810857c64596e0b GIT binary patch literal 429 zcmb1Q^kNWTU}ETE&}T@=OiaqjH#9RbsDU!gjS)<^s2NbO!qD6RCRJ0BT9jW=;{w*L z0MgC?1&lDdg@J?N|9=J`{{No|O#c7R3a0tNq##u6|9@dPOAO8e>4E`C1{oA_c?KmE zK1`h|R#BMjK+@_!muZ1rr^CR`AZ^4T&8eEHT41P}%)kW9-B5)Q=Cx{kj zkU|lcWl%uj!_+Ec6@|$TB&`Z`nFiQ(S`5-g4APvcnW_bbs>uvoz(A7bVvu%WkPc^% Vc4d%OV~`F4i5W6*GDwFq003QJ7>ED> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xerox1720 b/usr/share/terminfo/x/xerox1720 new file mode 100644 index 0000000000000000000000000000000000000000..02a23f5a78654cbe38feca5e3c7e52cb66eaf6cc GIT binary patch literal 356 zcmb1QRAdlfU}9)z5MiiDEy}MjG&eG+fs>{NH4z|D1&}ZU6fnZ+76uN6|Nj|)`v3oD z0b>2lF^l#1OK?vbZVKPpmzZspAE^k{?J4F|af6GDsUSZ~+5`2S`dAGH@~g0A&6L Avj6}9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xerox820 b/usr/share/terminfo/x/xerox820 new file mode 100644 index 0000000000000000000000000000000000000000..24d1d64046077be5b32d1d473f67c0c978766744 GIT binary patch literal 355 zcmb1Qlwe?DU}k7yFlMMoEy}O3FfynC6A>Vu0+7qVz!<>r|GxwfGXT~82LcubE(RVj zi;qE_K@-T*2J>`*q&}DhQZ@X5Ap<)DFN2hdjiDWb1cM-hw5@7^p{lxqx~jHnvTA`5 Qj0p@LIR*}35OD)p08GvOcK`qY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xfce b/usr/share/terminfo/x/xfce new file mode 100644 index 0000000000000000000000000000000000000000..4adf6d4064555fa3069cfb335d3d70e6fa051bb6 GIT binary patch literal 2995 zcmcguX>3$g6h3$EQx*daA`uuDP#*~z!n}QkCsdZ!7P<_ym4*=m(v}vw(S@?KAW<|Z zq7iTpS z_svu_k!DZ{J+2O0n_AX14>kg()i?Kav~{j-CsO7|=257e_l(pO2J+knKiz0xG8ps-imB4Rkwj6-pDe0*l3VU?=q&d(hwxx|bfHhv`u|Ku^K* zJiS7%(@~=piytO@3jAYYp8=mu>|*hEQfidCOqHmKYKpp6+3F_cs6Z8qb5Q1~g{neT zsXEvz)E%k?{7+A(8c=tcHoMd#>Hw^#|I*`#deL}Js;|{)bw>TH&MGHWEcz(to^Yf# z2UeG<^`~{Ug1eNF7QYF|}8LM-%_MBYLrTEcH?9 zv($;y$<+6$)2Xv5rN`(AdWxQ|XKF`hb*V1b)w)5i)Xlm>_v<0OQ$MKp=>z(pepbJv z-_-BuWBL<)Tz{#*(?956^dI^XYn(O7y4td>Syo`pwaTn2tIoRch%fG4VKrOptRZX1 zf9`qlnEzI}Kgqer+W)^~KWIH;jiPasF4%2$w_`WOcDHLc^}yk+1yrO9?qcu~6y~JW zt>;YXP(fqisz51qgLb^A#%KjCM46A0N2#XqK&OM!5p+Ld-Dim467bnFBWc8ikuGF9 z7~RFDeS12Kir)_4W?V{x)*EhiGMU-)*ft7`sFjGbaNrzjIg)=VbT4#5qu z!n|(D-Zdcr?-nP{*rj%NX!pgA9kc1e^u=`SZqFV>J+k8t)^c{=c)Pj8jwxM1W6-&b zR;^mSx}|09+P1cJ>(;MtZ|~^n?Ck35?%uGWr>D2Kudly<4cYD^RdS2C-u^Ggzo{)OZsLUd#(y@ENd(#vi+8!9{`7th&^K5hpK_%ez`|xpOVr zVUd}5UqQUJAlcodTa<7%;heCWNf_--#AH;iZ|VpWNbEpj2NF9-Vkc)O7S1M|6Gm*~ zcM&9sE$o{*Vuuntl-Qxf4wKmCv^h~MoJ}|{hq=JT z%f)_7e}Ul}c-rL>$@(i&v!qJG+fo8=zbMSEx;vOYQ9_9lN|ZpF1kxmsCV?~wMiTKWjzmI%P$(1$@uiCuvo)l4U07p%W4)u0YU;o140Bst*EVr3WN%T3WN%T zTFDtJIb$VftmKT9oUy9B9tsc=5E>975Nb^$t3aqgs6ePdsQG2LK?OnuLIpwvLS0tL eeSuJcP=Qc^P#f}G(4Zj?y&(^|ArG}7AJL!wu`>Pu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xgterm b/usr/share/terminfo/x/xgterm new file mode 100644 index 0000000000000000000000000000000000000000..b845f36fe86ef0107deb28e8fb2c66f94715c940 GIT binary patch literal 1566 zcmc&!OK1~O6uob(Xr+RJf_4OB>6D-%oyjDr3~fvsYik=`=|{!5Xl%@<`AyTbO~2qm zM4=SKl?yj6T)A@P%9Se-)P;he3k7lG%7q&tp8Jyi=t>YBa?U;X%=_GT^O9z9g4$>o zCB&#!NtJJu@=K{w+)ZaDJe*_-@th}FEP48e!@Wd8eK_E$v65R!&=BpVBUG&tY1BZ6 zshL`^M-|UWa;Ot3tg;^P1z>=r%16MLm8w>+sTijuWuaUutGq(XbhAE!*W>3F-GQ@O zch~4XJ%D})Jfg?+gr3qfdQLCsCB32d^pU>MH~LOL@ct+LA|Yz4>=upUU|rXooqSZZ zh*QGGs7}!Dp#~Tx;Eu zZTf#(d9^eDWS>8;+txx_L>v4s)eUKTXg}#OBV)Lxk#G#xG7=>iz7(iWk69NH2LO)S zM)lD?9)cf(9_sh zOhK4z#Vp09#oAOuOif)MxX+m@+^t!C08FZb9$GGX}uFs zwS0y*>q2nEwvj{zq6`%~v z0=S4=g3JQAEV2k-H#rI5u+pV$+@kDt6Yx=X0^0Qh;YbAB6AgnS{g;^KC^$Mc2p$>h J245YP^c$AC_jCXN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xiterm b/usr/share/terminfo/x/xiterm new file mode 100644 index 0000000000000000000000000000000000000000..438f6bafd464d4cab4805f9926e8a0a26bb77c35 GIT binary patch literal 1566 zcmc&zOKVe65T0|Y7~gi`gI<&(q^O|uKHA$7YG0zU4^k?E^ddAgZFAe)B)v@^Y16uQ zp@^ag>hEwNZd|x>)rAOxxDXf8g}4wG62F-w6iG$g*hA-=Z@x2k&Y3xBlQOA=j?hyz zu9yA7WEhnEEL=8O@N?N@#$TCCHM8s^Xr2rfGRZAvi6wMSL<9R5X>zl48P<>m5gdP5uZjy}*Q`a)mnJN?97gDRIJumh@59fRl9q)w@p zDz7N@ctN?UM{=&JQRRW9>b?j>xdXhX9;k=#k6}+lt*`j3PT#0gDqp?*gI-^AOL_lK z-+WY`)u#HUeyFnAt@rCjeOzzV+DUd&pV8-ao9^6!`}9@MysSt5%jskKrrtvb$?&3n zG;c;zv1s0kra}nzG$3wx)&Tq3U#Jb^U<&t|(Zrs}{6EM#VNLqkdAXU@@Rz#R-165-Or5%XSL#hj%7+e_G z8F(3ZRBX(Q>=^h}Y>e#~1Rxx7)dE9Rbp>@*ZPjGe0wWlcfeRQ`91NTcd_WeA=3@W= D8BY2; literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc b/usr/share/terminfo/x/xnuppc new file mode 100644 index 0000000000000000000000000000000000000000..accbc112fde7656ae5a584e8db63451ca5a28247 GIT binary patch literal 1195 zcmds1O;6NN6g^KDA_>8S1;!V`B;*BI80oaqN$T(+lQ2=R;Ks%1g3KT@rnaSnfyE@c zaLLjwTefWZAtolo#Gg{nyVJn|T@d2Ro8EKIyS?YV+qdWg^$1hAhmP7(hw;ZWZT4E* z*+D1n)r3l$$-z#xxms!_aW{!}N)MY!lw@;&k_Qsh!=dtg1o>ZM1j{JNJKz>3a39l{ zk@YMpcuKV_s~WK`D$myoepPUPhBR>>KF`=4ORDt^x*wfJ}i2A1%JjD z99_frwdgs<3DxNzjx(uzBYwv@e&8oYc~fJ|evGRLHL0|kzNqx;GivTiW#IV#`0)+D z)VrbYU)*3-t*J5ShUu8pF|EL)Wz))7aCZrH-FQxV!L)p-sm{VPrsW!QmAL}_wjA7{ zay}6J3-GM^ou8mXdPDj``a=2|OHQO0h1@gzfS)|L22%d!}7W_7$ z(uS@;`xu4ZVE?>XGUf`VjiLj!{fWAhr9#G>-dJcWS#^3f`VjiLqnqqWAhr9#G>-dJcWS#^3f`VjiLnDg{6N4I;#G>-dJcWS#^3f`VjiLnDg{6N?&`#G>-dJcWS#^3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc+144x48 b/usr/share/terminfo/x/xnuppc+144x48 new file mode 100644 index 0000000000000000000000000000000000000000..c75551beddf2cdaaff420275d601d9913f1fcd68 GIT binary patch literal 88 zcmb1QbYoy(Uf`VjiLlct<6N?&`#G>-dJcWS#^3f`VjiLo-dJcWS#^3Yf`VjiBLjm9Gm{#Z#G>-dJcWS#^3hX4N^7yvQ>8d?AV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc+200x75 b/usr/share/terminfo/x/xnuppc+200x75 new file mode 100644 index 0000000000000000000000000000000000000000..d8354c707e2eb0e9abf44a00f8573ddd2b8002e6 GIT binary patch literal 90 zcmb1QbZ1~-Uf`VjiBLjm9bJH4^#G>-dJcWS#^3f`VjiBU7^qOS2l6#G>-dJcWS#^3f`Vji3xf(H(;An=qVmi)S>`qh2;Fa;{2Rc1+b(- jF;HQCQHg?vnTbJ#iGhJaL1sm2PO&BfLjc47|B?&<+r}9E literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc+80x30 b/usr/share/terminfo/x/xnuppc+80x30 new file mode 100644 index 0000000000000000000000000000000000000000..52c54f54b2b0936dc48321c610fb04968e7fbe47 GIT binary patch literal 86 zcmb1QbY@^+Uf`Vji3xf({gBq8_qVmi)S>`qh2;Fa;{2Rc1+b(- jF;HQCQHg?vnTbJ#iG_heL1sm2PO&BfLjc47|8fif+TIxg literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc+90x30 b/usr/share/terminfo/x/xnuppc+90x30 new file mode 100644 index 0000000000000000000000000000000000000000..aeea15c1fccf8dc7f6495f99f8c661a077037eef GIT binary patch literal 86 zcmb1QbY@^+Uf`VjiOM?nygBq8_qVmi)S>`qh2;Fa;{2Rc1+b(- jF;HQCQHg?vxsgGIiG_heL1sm2PO&BfLlndR|8fif+in>R literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc+b b/usr/share/terminfo/x/xnuppc+b new file mode 100644 index 0000000000000000000000000000000000000000..7525bbd2b20b42e8ca8eb3cc65f2209e7d7d0b60 GIT binary patch literal 991 zcmds0&r2IY7=2R@wW6(31a$~T%HTl+H=CHiTB9b1&{Ws2Y2E=J@D)QC#W%Aa zM-DS|b7oZ}myC;|pRxXqwYBjIR#7#{Mx1ZKf6>vtK(iy=>+tROuk~--a}?_dPI2~* zx%0T^0+)1GZziryaznnw9q#dfUVf=BM5_kGpcobjG4_Hwo2=@l($nhX{~p#i@-XEss977(U-D@>(@FU^&T;XE z++{lR2Uk?ruM#)bxh3A=FYfVx48O(@yIY^cuow|iOguSVe^PvY;XEeZAAb=;kQEiG z#8C&HN^eZ`%h#*Lzf5!Hk*-eR-g6BT+{djNQn|TEGy(r)VhVWJ_ilg8liW+0h)9Pm2 z*$J%Gu(KVn&RdNzXovo`)!Ymk$ISdNw%TkB<9$GwA575qhCq_MCjJ#Ua|XP^I}Bq4 zY5oyqO!MTEIjxdw#wE#erfZp|_pW0DO;ZW7dW^#-9o_d&da9>AzI*;$e`GypnV#bU zmoJ#R%6hJGLwEbv#GR?!lOOPipZEn!BuS1)Ly1u_E^JZ!Q%UPnqVlZLo%sKBK@39H z)sBj6wdJZPueM?qoNuI>tS?fQ2(3?=YAnnVTC2o7@fmU>@AlI<#a(hqljFFBf-#e> zQSDQFhxB-d$9a$Q9_Q;7+n2LOTXKeK_R6s$G}V;~~r64C}oq>&(j%+BgAOyc^n$l^!FyY^k6yic_39511QGH(#_FEgWHkgl`d5mIn^#4 zRvYo|c3`cCyRCSA(Q1Z4H}qRp!%tdq&`4TVyAd?^>HA@9b=eih2_Vb|6V&}7()20P z|Hg#b0|xK{FENH}J&7{jb7#)%R*5yE(sVWF&pBrYf58UY#_@AMLUN~~H^5$>d(fwQ z`}g@MulbSlPyE911Nu(#np2!no&VEuVVq0i6|QlE-x%dfjWM$r7fQSlZ-xEG$^2>I z-g9~#kB{fYbI7{dR*|hXT@@A7W=zA`BGhDknY6;xe5a^JV}Yr;%3Ng5Lv9q@K`O`D zA(k{awp+|ZQ7`}IcSw&Xcp`=n!zCqWtzn3xePwo;d>Jod W20V|q81#wuivBwp0#A(k_zAb}DM*q4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-100x37 b/usr/share/terminfo/x/xnuppc-100x37 new file mode 100644 index 0000000000000000000000000000000000000000..f443578dc3173485413cb72cc636302660e398cc GIT binary patch literal 1217 zcmds1O>5Lp6g^KD)WF16jxqy&pG$zp7&nfA~)3W^8J1?s+v+c8|nUbzOn9f(quP{x1IS;8mIY!Q+fa;4blZu_Ow&>=hVWv z&dBlq@!bo4seeJ=zqr9g^-xVgw@u$&#W?SM~4;mHUB;3=BWI2!BK!n{vgxy92Jxg?X zF~PTR&qB~6G m5M|7SYj9=3nCRLI@q*B=*-!H1I9B82og|G5V4A|gjPU-@YyD3=@LF&SQt2tQTC%>6_b8l`}mTpW`@C6?+BnqMv{EDL5jFZiF^6pH# zTi=gQkAmm9WarFgc-n|JS2DFQI1XEl%v3uJ!df#9+l}c=5(b3*!4`FIi8}hBpjp5N zjNmiIF=6LP6!DE}(M}~|*($BqQr=G4q_y6`F7~Z+korFmyx2(gw2ph+lOFx}{55yd zoo>p1aE9|YkOI%T1|ChM2&Mol{fAJ6Z7!X5Lp6g^KD)$


3~jr3qU-&l9rX|k8b+s<4&jnjPIDLsIa2NKkyp^#w=2E`v@3@dQt z4R8fhxP=+aN__`)JfvEYszGduDvGBSzo@ue_9b3nOFBDM|1FYp6T|KEk?#J89=^ZG z{c2`V@kbou(_i>LS2IWWLiP1G$2aL56Ho9Rr}%+!RTLAR;0LFK%#AJyH|UEz>iZYdWFHYNnI3;k_X=b?Y(d3Dfeqp(Yz^Ov?@C zI&&5JbuGL`uZdL#NG`Xc&T%WkZfgu8l?Ea$Nsh_E||u-k~BXNfK^ zCioWaTL`*@dKbD59bg>#8Rr+wvdJEp{m?a`l{HGgl&;A?xyR%^ mL>V*T8eCa0Cc5@Qydd-!>?e709IO0F*&hr;;i{xr3cP1 z@&ECPn1*bqJ(aks6{y5ht&~Rb8=)#2TcjG>@Yqt7#s=GPg}ups2l>SdCaK&W!M}r& zQTKfe88RC(7cv(z*I0MEa?Nr_u9EG2%mG%I6Ra@DSi#I1Q^hW!WZ;znze6Z@Aj^-=Evv-v-S2|MCD_-2b;qFXax N982(9HtNF;ZUJ{mDW3oU literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-128x40 b/usr/share/terminfo/x/xnuppc-128x40 new file mode 100644 index 0000000000000000000000000000000000000000..236e8460e599f5244a3b6b34bee63baea0dbd6c2 GIT binary patch literal 1217 zcmds1O>5Lp6g^KD)7>bC8gDxboitAKMW^%tN*+j1kB7n`Ca{3w4>5sN zIPwO#gc;nx9Ok9Ig$C|ZtxDA-wnP=hlZu~LTrT?pFR>+^ovQx^$(f1K_W4+Me@u_w zpXWg}GpzU!AMo)nd`H#HF;1vH{pR>AoiD_%_=fNJfk{;qQ_M1^)r`8Xw3<8Zl>K?N zc&;;Y{C|Asf?w)i(DyHHa7jH>Q_yYGH<@d?p~>o|o3r7)CbV?>5$Q40@|mF)8*5C< zP3AiD0rabSc!kQ{B?PD7TlFj7Lr3&R^hNYV^tD&qST76r^b%RlV>b|CcMxH>5kb!~ zU0zJ^E!?#b^aza}bOSoTB=l3x*UXB^?wS42HKCPtO23q@$viV;9hi{kYvC%7^Om{C oXWhM{m-)U!?e1d%22`v3p{ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-128x40-m b/usr/share/terminfo/x/xnuppc-128x40-m new file mode 100644 index 0000000000000000000000000000000000000000..7276a978a9a0e459592541de6acc0ee3db53e7f3 GIT binary patch literal 987 zcmds0Jx?1!6r2qO2@;{8NR(BCCA10@7My*-mM-Dbg@qH&q)FkVK(@(&?7Pd^2p5*1 zNSTtBHf`GckVr@M{~u_xq5WkPU<_kW)$|KPCK{Mjl!rIBvH4$oJ+%ius_(M9xri@$5?`9 z0go_`=UBj^onN7hH&mN;st~JIY5gwa4;h=Z)*tZ+2i7^v{9}X@8|j|b$(Y+8)3?v> z^B~(9W_*rs`2HWci)`l-Kd65GllWzw-^43i;}8B~Mrb|DPHRrgi)TWLg*zwp7sc{D z=Qi>1cty-YHq?=d9o6zwTu`lqM)3=wDjU0`8r$&1QkBLw+i-=w!`_1YT=1r;oGzhs z2d+`0K7;g`^_laT^O=2!r O`QliD-?CAA`?vwaBPq22 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-128x48 b/usr/share/terminfo/x/xnuppc-128x48 new file mode 100644 index 0000000000000000000000000000000000000000..844e2c9de87506b5b6aba4eaa5af2a80123aa473 GIT binary patch literal 1217 zcmds1O>5Lp6g^KD)((D42qO4X;(0fjI;}3Gxbl*F&bc@Dy!Y}Jxu(`}9hWgsTWXl@=Xv**+YE<( zIO=T|2ZMB6wWM-3vxA*tbHnLo>28+nI5)dlk`)V1i&U#pwTNv|W%;n?CpA~gKE*R^OXo%1e}(kK#CZE+qPsVt$L~+` zu$~#!e262w`wQRudgcQ@QhoZ(@mV@wh+pvy-|+*}sw`)iRa{cD>Wb28?zmI+=hecg z&e-w)@$EByseeY_zqr9Abx+Mecg(=#uIWW4Z<=1ghWC=t)}8yL2TaQ+hT3ebGcC86 z8_YH6=gsH>mHV0y9D{GwuY3y~(;L$l(-+g%S#cA+EZo;iWI2!BK!n{vgxy92J0paBhEL>iplSqy~s6@l}$>&lCH@;Gh!W>i05nLB9HTixy$4| m#5ptN8eCa0A-eWLydd%$_LDq0j#YlG><@;aa9-5oE&K!_gz_5z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-128x48-m b/usr/share/terminfo/x/xnuppc-128x48-m new file mode 100644 index 0000000000000000000000000000000000000000..4087dcc76b7ad36e0ada3a9f3c76e0b677cc7bc3 GIT binary patch literal 987 zcmds0F;Ck-7=2fUQY6}ep;b>6k)jjLfQl1CESUmrGDHp3v5)05Q z;0b2%3bV-Dc@7?ysn+aNCDyFcdOhQ>8Jo1$TiC{~b@np<8^Q-0>7Lffn0qv)Z=XNr zLAEo@c!X2@_=nujZ08rwsLuaNTv+Flc!g`+;5Vj(*3;~?UWgg-Qb;j-=cImK6dpOZ ziT{t^iD}4&>Z;gLEnme&)ko?Nlqk?+a&KIQ-`%n4SQW2|6ig{e}H;2KyoQ0@@C4x|TJ z#uVfR_ZQTvikH-p?h)&&n NaV)`a*{IK7@CP<3Db)Y~ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-144x48 b/usr/share/terminfo/x/xnuppc-144x48 new file mode 100644 index 0000000000000000000000000000000000000000..4791612a7af142694b2f19a392f1a7700319f54e GIT binary patch literal 1217 zcmds1J#W-N6r6>E5GevF1&9@jrDz2y5a;uPPcr!+If)ZrPG~3&is&wIhm38Upj>eh z6qFPcw6wIe{17B0gv3uVv(LV82^1)z;>mAj-t(K?^%lOM)^QPMF;rV>l)lXK-WA{4 zk!_9p+r|Dcom6e9yv=NXr`X)^dRe-gB|F~bUY2CVl2>^EB@ZO1r$gZ#X3#+ShnT?{ zJb440z&y@l0gF;!LJK#j)}(3^JEF?+Zp{yBu9kg>N7$Cmle+&5>7j|q_Qh0pZ%R+z zALUU!Gp_kH-r((D_}F@68y2A9<>H3!`_LzDZaADO&q`UM-oQ$j~~Z)@J$a6o7cpj*%(W})wKzF}5Pe%?zWx<5#y9)`z$Tr+31#%pxY^~f6hM{m$)cq~|1WQ)(B>(^b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-144x48-m b/usr/share/terminfo/x/xnuppc-144x48-m new file mode 100644 index 0000000000000000000000000000000000000000..a489ec63b23c5a6cf892f4a15cd4860cfbfe17e8 GIT binary patch literal 987 zcmds0Jx?1!6r2r35+sv?B2iY6Euj^mK=IiJwseG#;KGWN97&VHNnzPeOl033XGgfO z1O+7pMOs=~T7C!;5<<#P+05=8U^`9fJo(Mcn|pJ+vUJZy4KFZ*IpK<7@H2{<%Z}>~ z-STp8)M~{0yTScjv2$)G+;7J_+qq^K^uumD_p%oTVY3s5z4lTr2?N6ZV2gUZ#0efD z56uD|U>?tq#e$s|QN|k8rkyIps#RLQOZijECav{nd_luH-%|evf{Be}PwRNh9gOMQ z=hHk)cSb26;t0q8ko%SHoZ^h?{IA4?buNilxW)~BV^(OLVJG!O%!{W&itL?}_zPlb z%DGMafBZ^hAnR&ZMUHBDDk`W}Or!XnP?hz!q#E1s#8Q>U8@AyJdz-xl`L*CZq;h(M z(jB-)-S+{c&#cd!&z#R(eZ%R>b;}+3nr!c54zR+UV1+rx3TD=sDs~C3ffWO#4x!wE zEJKzs3;CY=d9|UURW<4n;jxwN#y;10s%19Lc0DNhG53$1O{T(4k6N5@c-GDQbpD z?ZC*$ip0dq$_GJ0LP&fR_ubhkX<HIirG4@DA_)A@`w}^AVq^zWkB+YMgJx@A!eA_=OpfWwY$OZi+cEFQiyHb8>%K ztXy!$iL1x=FZreJC3FAd25aK6n1yVszDjJ>^;J?<-IRv&iqMkn4bl^~=5v!;H0o^4 zO?HF*2y&< zGz)l!45l!HS-YM?8Ov13+X_|H`dV+M{3&IV*7`HPV9z@Hss9bZy@_N_>v+WNkLa8C z4|$Nz3{(DrpZN73x!>u`ADmL1JxZKg=Yn{ND_r9*#)Z}s?4(|ajCd`in7MTle^%rk zI5&x>$BSYDvaSwPmNm*V*qOck|v0DyK^* z-GXb>U4Mu4nf00Tne&;euQ?sLYPl^}$o4#D11ro9R+w$9U}lx6LWkfQcx#~4CY0Nd zWyli7A-6ccq}EhaRDI7;o{@P7Vmq01= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-200x64 b/usr/share/terminfo/x/xnuppc-200x64 new file mode 100644 index 0000000000000000000000000000000000000000..c3f13da7adf9b15f574474d89a2a1024d6b98802 GIT binary patch literal 1217 zcmds1PfOfD9DUOsYz0y9(9%H+$e#=trH5?~va8)KX%eI29v0d| zk3IJ4wbx$#2>k#BK?FZa`eu@~>z{*2PyLbKdv9Lm%}nNyXJQ#+7(rWXiB5EwB#oJJ zsnnTsyUp$Ns2%l2RWq_SAJGFOc0* z+PBOb-~mSQ6yumM<4II7PnGAYR5jyg*?Pfm3eJ~(i+9*I&TipkDx_-!17+a?EkGatoz@Ff4(GM!nv`9|ukHQUCw| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-200x64-m b/usr/share/terminfo/x/xnuppc-200x64-m new file mode 100644 index 0000000000000000000000000000000000000000..e962810399c6d56283477ac194d0b372a70b7714 GIT binary patch literal 987 zcmds0F;Ck-7=2d;S|ng#Xw?%U5;_3`B2HWq$!(w|Lqu9kyL3nyP!gJ;#C8o;GDL!b zk+Ex6R#tujKL7~{A@Ng=cV`0umd^d;@4a`=-}9X;-CI$`G)6EXT+t7HM^Sw-m(BK< z-No*pu^so?!Na<2*O|?**NivUGW9Un3p>rsd^ZfjdMggQ&4o-7284ZJi+Z@kIbLEF zngzVT6y9J4vvxg)BHmLaZ_88_>udcvpQwASD81KZZwN&Q^}k0z2it>Ynge@NfG zf6D!IW{~nBj&S@Bxj*U5Uz|{#K1-Zg=Yn{ND_r9SV?yh3c2bjKO1u_Q%-lPPKPwiV zICqKvkC((aWKFeI%7wFZLdr|G|&g0l&d7TkH^> Ps=0A2!MkkK##h_|=rbw| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-200x75 b/usr/share/terminfo/x/xnuppc-200x75 new file mode 100644 index 0000000000000000000000000000000000000000..3c069905bed08c7f5930bb30816cfbe6ea382e26 GIT binary patch literal 1217 zcmds1O>5Lp6g^KD)!Ac8+7o_CX})9ONsD=)d{oO^T6doOR1>uL?NxPrdgQiJ48mUV8` zYqdeJIP7lc2mNGJHKlSk(}SISbKU8r$zB@oI5#_KoaPHo=>e2Hkf0t9h0mD428ut# z1Xkh58{h(Fa1C>qm-+@8xJ$JvRg>5fRTK{^eo}F{>{C3$wsc-p{Z~j%O^mkB$GZDt zdi4G*52~4A#qaPQhkxNas%DPyf$HOLj!)A0Li~zv_>Lc#R7EkxEMr>DsH;k=xsy)W zpH~ZKIwQyb$G6YU2)m64 zdY0+(VuEjB(L&H8GR_Cwc%R@N!~Qo1Jd%#d|pLY}XM%RJ6& q<{p#x5M|7SYj9=3nCRLI@q*B=*-!H1I9BD3EP1$iBOriEv>F z3Q9^^T3T9uLVf@eQWPmaWiz{XfPscOPkuA==HA?{EZu9-z$_*(ElOe-{EVX3d?BA7 zy5;%)sJ$8Q?*zAV&Cc1iaK96;RkN)y7=*n}_H925!d5p9`<+}i2?N6ZV2gUZ#4kKU z1DXXq!33DK?U!rmhDs{)~(X|Q_5dcHfgQD;X5|1vz7Y02<~hods@e1?%tTb zetw^a>CPzSLmc7w5xJ9e=M-mD=MNGW*105J;Wz%^FD8Z7Q|zQ(h#B!xNRhd55`RwQ z?m5?q|Bv5^DafYUQIVtCo{9>p9n&ao6Y8@0kDV5VF zxHnKT>b4IceP(^;eCB-SnoCYkE?Vx&4`h2EbAT1*1S`xjRxq>3RIx`W87LcYyM#&? zvI6O167n?)75Lp6g^KD)a@C$;>ye1bI!f*p7&nfVy>!nT*D>w)s`A0Z?dd&v$j|t z+^!G1+xbC18C6ZGoXzxLC*Ry~I%%?(#yif9P8z5Ayi*rrDt=sXx$P4?#kO>ItNu$QCniS6=VRUdF+Ey8 z&4X%YSn)f&$KhZ2j;fgt_(=8XH^*n`d?9|tH+;trOsb-oVwN$jX4GY+)$DPn?9ZwB zQ=O6H|KnR{{8ImnzJKw8OX{wgf^M6>$z0P7O;$7AoDJ^Xgf(Uzz2zr+3 z@?wH-VbMa+BQ$!@4d?)q&<{DkU{*|4H~XP$LMv;Oekom(d1lBuFd^^P!bM)^HFJ;2 ncZf1(!acaNU`%xFgLpycFW67=@42AQe9&O<#4@U9Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-256x96-m b/usr/share/terminfo/x/xnuppc-256x96-m new file mode 100644 index 0000000000000000000000000000000000000000..2c7281a533b7d12605ca6e58303e6cac6b3c121c GIT binary patch literal 987 zcmds0K~EDw7=5D$l>|I+&^RG9X(qs-!EH-hvPyyW&{$xr7Z24$(pC#;cb5gz9-8QZ zBS)@WxpL))n3xa~f6Dk~b_=CmJo}~Jd+&Suy`4#ueIe>tz(dT5ycqgl!?2aft`&ys zg-n0c-j43;Ytfb;FAnXses3%K6JjN$z z7VrS`c#cJ+?Yx8%UQun@sY5DV_O0_d@ekqO+lcqHjwalb2|a#3 z&BJ78l<;?);_M%C=gH0mE~&2mN?cp#2k|Fv@C&~&Beb4n$Msaqi)TWL#ak!#(_&@H z87KZfUKO*DO?99`N3~rQW>q_)k^4fZ$>tkUoo)EuQjNwo+i;a#VQ)cx%({=LoIas= z3wfjN`WvLjtjC|HN~H><4tzYJTB@F)10s%H9LcmPG!hZCIAvi73{_G{kg<(h)C`g6 z(2qoSzN~)=B2)k8Xi!sNYx-VMHR(b$L`W&bUbQxoIu^NH@xgdV>? z%Y$-eSn?kB@#!yopUasq_)7KdH^+f=4v9xN#&`U{v?_`j<|wYHS#?cmHFwe(_2<>X zna-@mxQCG}X%K(|fbWUlFkCaaom&W87f(A4cGq^C^Fr-qtrJYrgI zFjtump82og|GBw-a{39Sf)70x!Xr3(gP7pFLIh9-rR!m^zhWZzv5kX=|x zijZUf3QV8Sprqe;yE-6 zc!VW9!wOdIyoLhaQ0>^MO!TbM`hCKO37fRmAMg=%>wHf9V+2zh!#%Cz3HNkDkDfo| zezG%2_&a{!{2y``$<8HyQeFL(xVFv>@fN@E8+Vu!TFHqaG70V??QgcxHD8vmyjPr z&ZztT2I({FGv_nsGgsSoIT}Qb_W+-z*>8L2H2AuQC<^4Q7;dQ>UPuTn){D>X!9elIJ4$-NY NPmU${B^$MWfIq}PDB}PC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-80x30 b/usr/share/terminfo/x/xnuppc-80x30 new file mode 100644 index 0000000000000000000000000000000000000000..4f2ec6fd3bf25c76f8480a6ad0e731f891ab9ff7 GIT binary patch literal 1213 zcmds1J#W)c6g>|HN~H><4pclrEmcpYLq!}L9LcmPG*TnJoU$;a3{}#SAY&W1s2L*B zp(7(JD=RBM1PKWt@l(usH%>`g22?R|<$KP#*Y~{l{03iFb=<&J^wp*sByY2)*w9~m~kTROXC{}qxG6XWgkiSGV{9=|`$ zgK}nA@*$4!{x5tV%9)S&MD_WM* zb;geWk8hvzOZ{{D{>2Ths0}p(-8OxbxuzSMtZKSB8{SJoQ@0z*Z{hf3y0#NX^VxlyUVtuJv4y> zM~_~;diClLF)<+|{*>X(bg89YJoBaBd+&Suy`4#ueI`7tU>=V|UJQe?C~9mJGs9eF zqdRKW7Rl`9mu5PCqVbBXZt<+jK48le`4!f=Ol#K$y{$PuGx&*3Nz;kF8 zFo$J4#VXQvet{xhQ@ycMh3HwO^IU*Hm7{v-D_+4+X=R6qVn{It$5;%{8x8h@}Tv|eJ5>#j)pS*qRn3@2?lZxYwH?wf+wh$wkH$N;;R<`3{TA|5)_p+bbP0tC ze#8#=4!+r9hv@8@ OPmU${B^&kOBW?hxK`7h+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-90x30 b/usr/share/terminfo/x/xnuppc-90x30 new file mode 100644 index 0000000000000000000000000000000000000000..68cbee6862daecc433a6e5be379392df43940c23 GIT binary patch literal 1213 zcmds1O>5Lp6g|%_S_{QO7mAPCKzV2v;$)IGBe9)o2ORuL>qc;NQD&+$5|fy=bQS}; zaOu*mTeoigAwr=D{*-v$olKop7gAh#$vx-Xn|t1Sd5c_Db)*Y^Dc0`R0bxPLtg<-f^zA(>TqS9B}|j9!OA+hkA-BTtV@Nn8G?7 zc>|oo94=u2i&9@j4Y#P)rD_nHqKe`{$&X7OF8c(}uq~YzW&ahD6BDED^Re#Um>#`9 z&HZv_Q1Uyx$A`c0eJp1_;WO2j-yC11^No0jBYejXOsk@pVGiShno}2*Rtv|SVSiCA zo$8Dn{~zBt3)%p+Ul-K(>iN_TA-dWEYl_ zB4x_7Y15|74~Y~hio{P@X4i)?&`|T_H#2YU&F#w4%?S_lc!VdSAo{_16xA{-*?vBo zX%Fhhaql!3jb%HgD`Bq@S2ohMFzAG>MtZRw24Srkhwa8v+C~9kf3QV8UIK@h#0zK^ zFo9V-M+yseeu)y^P`$NNndn)i^>)Jh37fRm2l#+v>zpM18G;)d!#%CzF}FLWub$uL zezG%2_zS+`+dXpMlbs*oeyw=QCGbcUp4Ia#OC7?S0GvR+tm4FvnQI%o9BL+Pj}uLhip%H{n$Oz}FO*c~?i2R~v5d?5rwd4(HKP&()jmcA7Tl8#}F+ zy+Nl-Qx)T^CWH0f>Wb4$y8R?xcWyM3IO#cq+oJQ0ByQaVlsu54A1{S0n6P=L`8OzTrE5;H=8BX<}Fx)Fm~e=G4{0&aiLP ztz(^0;{Q|kgkQRN!rZ^O!HT-C&Oz5r$E2=lg(fYSR*wyDgH+S?2b70|)gzN?Y}_NP zR*4njF7#ReZ0Xp>59=n`~*Dd@+XzhEjRT{K&vS2UsZ1$uvIU6XodhvUG6JYWrHc%Iip ppWsbIDbeL3Tv|9LyY@=FAoLgPH+ga%>-^l=Ukpp(w74fv@e`C*_TB&h literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-f b/usr/share/terminfo/x/xnuppc-f new file mode 100644 index 0000000000000000000000000000000000000000..835c991715ec8179296f60d9185b677eb395f404 GIT binary patch literal 1227 zcmds1ziSjh6#hmFqaXxq#6dg=gGmv{-t1*BtmdM*z!86J)J8b22zR;M!Me9@)Tjis zu&}VSv`w2fZT^seAcB9!`pw%txkL*IRzCK9-}m0UH}htSy`}p_Rc8B}N%sxIc$CcnNLc_@TF$xg&8%c=9Q;vzcNLBNi|Mo z#vT73ubuIx>u2oy7cclkb<}0(wi%k#GriEHRnyCuu-k-|Zm*N>(H);CYB6z_?zl-` zrQd<>RKp8Yw)Tt|IIuSKeG!YHu+xRVgO0dI#Quo=5&PQ>FV@S#1AUt;bGd^=xRXS< z<3zA$nO!y}_zr3gf&rmEfUZLaxCH%x^$Vt9(na$kv^5htU3HpM6_Mv6H*67FhJgt= wX$u!Q+;jR4ov#z6^n^R|9Ko3Axo5IL=r6d-SsBhLzf|t8LsK{}>fs~&1XNr4A^-pY literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-f2 b/usr/share/terminfo/x/xnuppc-f2 new file mode 100644 index 0000000000000000000000000000000000000000..1400c3aade3e03d6a5fded405f07747608db1621 GIT binary patch literal 1235 zcmds1%W4!s6g{PjL_rX;36_!(DPk6Z^i;xT$}2!2OCfVdFgx3sr#t9Rg1o&YPg2W7^t>7h@U4(d$Cu3 z)oG>sgIHAEsnXVPzngB=O6_61H;lTao2_WnP2<+6Tk5sq_6sJWVY&b)_rV$Uq^T^M zM)pUW#yW1e9B>XZn8jSNo<|ic%&fa?o!D?H%kCHaxZr%_C)h^MMWP~}V05BlJix(3 z^yP#e=TGzNqULSE@9-WU{-W<=QFDkRs!zXle0Gs9#IN{<@A!eMe5pBlZr7Dj3u;k$ z$B{g~tb$XKamWA18)v-f<{A6`#S4b&sk#K+Gy{`(rW2T?Y&t0ec8Ac=&AX&~bm0?4 z4F>Meh3oVheFJ*C986JJ`;1r-uwLNj!k6VQe*+zIhmhSNyF+$2*StutI_~S+WH*%@ zBjM3g?}A_y|7%z0&_9DSpQRub*OLyZ$7iJ4dqja{HXvI@3xAf@eMFFjBX2C!gYcU?7bAkl+I zkG=Nl)vF)Gq)B7qN147ER*HJ@>}21cdHmkaWD^!e4ojHAoXCoSe;kI5x4mI=H|lqM znzA*?TF`GrwXI|$@DGD-EBU4u_(7u`1-(`Z5cYvx^pi_K>z9Pq;2HB+z%o|seia3* z({0*anOw0>>(8-%i`BHX{*E8mwaH$b@58@0F`Cmlnn;f({N3*lbr8=CV?D(g&Y#fx z70>*}1>NPN#+6O3$$#({H@HPYXgy1e)+;eDUJEIf$H^#P5vd2sUE}%bnwW*GtBwjC z)pS*uR?Ub(<|nBl>z^o9!sxxB3WJY?(K4|`e1P0ZyD#XR9w|Sjta1Nw0_m~qvFEYp zu~#oSU0Jl+mK#)iA9H{;<^*fZG1jnCWGmApWevSIly8#?ZO8&-9tp@VoPVcED$J=P z*HNyqY1-__Ix5VlA@_OZ@_rS}@Hz*?A;It9g@n&{@XeOHWT$HWa9je@)_vW^KOovB A761SM literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-m-b b/usr/share/terminfo/x/xnuppc-m-b new file mode 100644 index 0000000000000000000000000000000000000000..fa4c97741d9d3d97354942083713106dce3d34ef GIT binary patch literal 1011 zcmds0O=}ZT6g^KDexOwmL46cQ}Gw{HC*f*^wbWIXR?Qqzjy+RNN?&O39@dyj#+svcn$=P{$^)VpLeO*^GQslC;G zm5nwMkqwdFsvY&R)n%_^lc9}!-mQU6Y^R^uLC+iA?bz66rM8W`w*e&&q^PG$<@rhE ze=Sem0mpC=mvId@WPKBL+^1TSRfE_RmFG_ieo^pvtQ|nbso%W~9Wfj+7%>!Gpz5I3 zC)E4Ub?6#SLqFyGJ+o-iIrBCQswQ;0OkEjE-=u-r;<{!+Ua*N%yw4l8 UaBIPs=&!iHk)?24)U)UK1u3FNrvLx| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xnuppc-m-f b/usr/share/terminfo/x/xnuppc-m-f new file mode 100644 index 0000000000000000000000000000000000000000..09b00e77929ff81cadc79bb4e0e5ebcef95a2f07 GIT binary patch literal 1025 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 =X`rqmAq9Or7$k}s^r9_P?bDg8d00J z=>K1`c+w$PAx499GXC}|FxL!``nJW=qIxfWO(U9?)HG9VlWKEg3KB{J}q>Y=aG zWmBGF>u59HR5o5zE!2+pRDp)*1bu=&P504P=ze;D9-?!2HC@1~>1XtF`W5|-uF$LW z8da&0H}V!v@ca2@PI3ybq7LrnJ|5y>9_JZ8&Z~TiKg(a_Gkli6&5!V7`~+X*OZ+Tf z<`?)6e1%`(zu@KbI{%9eqtRGzyu;Xxm(TUaR&>+Ei*Frmz^ijJy&G@C1m1pIX&Zfz zZXt(4itsMXQWr+kM}u^b4$}n9&^#@p|DU3J=u314fnKDqs@m=2=}XAh6le-Hr8If^?DI7RnnFz} zO`e>KPULF}G=-W{LT>!6>MptQNfRFmwJv#bo+68;KvSqGB^2r`q0SQOETPU4>MVf{ z33N!HLjoNV)EkmB8VzX*G=-W{n&ehSh^NWd6le-Hr9k;b2wo}qZ{OTjwZA1o`5e92!sMDK#zzxd&Joz&K`00z}eB0g$D>15I!KBKzKXz zIe3Ba0^tS13xu~zTI`Y*yQIY~X|YRM?B3fC4-hUOd_XvX@b(Of7YHv9ULd?ccniJz z;RV7Agck@e5Z>M{sSAV`2rm#`AiM(w5d;hr;2$W!Jy3vmpaAEvOOtmw5cm&6FT-2j mlg$F#b9;cZn;AhBWe8Nysl3J9jZDeYeoS&0lRFhwnnVy-Kn4eej4AQZN1}5x4%EVf=z)&^C zx+p!#O0~d9wc5zkv{qG1wc60Yz@S!DU)4y@C_-Pgz!;~D33eIj7zXKRReO->)fTm? wHmW7YV4GA^!9s>+U@=RWysm1BYO1k?wJF3ss@A#a+D))%H#9)eZ-Sy90P0RJX#fBK literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+256color2 b/usr/share/terminfo/x/xterm+256color2 new file mode 100644 index 0000000000000000000000000000000000000000..33bf6ca935189213a7df0442772720b8d4abb2f1 GIT binary patch literal 1060 zcmb1Q)L@Wd;AhBWe8Nysl3J9jZDeYeoS&0lWK;v@D**YrU;%}+)Wnj~qErSvfbl<0 zz`*#w9;f7}#ApbR83GIp>5@WDUs;OWh oLo=|LB}`sdHAOYm*uu&b=n9~FRIPK-wVPnkZfJm_-vmWJ09NrV8~^|S literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+256setaf b/usr/share/terminfo/x/xterm+256setaf new file mode 100644 index 0000000000000000000000000000000000000000..301586fe88b0bf37b7a7d3883f286eec9e795f71 GIT binary patch literal 942 zcmb1Q)M8*@;AhBW>|m%UNiE9NHZnCUPAy4Hs{wNrfLz_={G9wE1r4CEZhl@)r6$9F zoPdGxe?3mgQHjwIAS(nIfGO@DSm!?|O_niaY2sw?V33YBwzM{}%mp%3?Ntj5RjVy( uRc%yDj6v)a)l{&Mp&3}r5+<(;k}I zr83|FjQ??h2nGi^oRXswqai?M2rw|PGmxp3LT#xGOBkeM4Gm1#fs~20YJs6@igi(X zl9g(Kk!rP(scEgMmTI-3fq_A-s=lg`o>7FpYJo9M858U>(lHFu(W>?!)2l6NRc%yD tjKMakrh+Is;_FKXB45YT40P*#ss^JbPR)Zw5mPG^lFP*RU6e3W3WxCsbC>P nGq9K?OkP(tMK#sf!paor3ZQ#bt#i?}n_$syXn>;M1Vujp>aQyI literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+acs b/usr/share/terminfo/x/xterm+acs new file mode 100644 index 0000000000000000000000000000000000000000..10be2438220985e474e2a7e20f69cdb757f65fbd GIT binary patch literal 445 zcmb1Qv}OQ-ISjT86(y-fx!Q@z#WkM6{<=m6Mn(#WIY6c&}oEQ=k5);$X($h0D vv$C?Yb8>QX^YZfZ3knJgi;9YiOG-*h%gV~jD=I20tE#H2Yieq1>*^Q)=+IwN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+alt+title b/usr/share/terminfo/x/xterm+alt+title new file mode 100644 index 0000000000000000000000000000000000000000..c3a2a19fbce74d4a671b5bc29ba81cca3516974d GIT binary patch literal 182 zcmb1QG-dz+O$HT)ijvf#T1caH0~5;(>1ZP(YXfV85|~I1P{bG_0supYXp8^= literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+alt1049 b/usr/share/terminfo/x/xterm+alt1049 new file mode 100644 index 0000000000000000000000000000000000000000..a3912c1487f3699afb3305a17517a979ebd6c251 GIT binary patch literal 144 zcmb1QlxF||O$H%`ijvf#T$M%Nj6G!O}n>Ej6*Ev?!H<;Xj!GmrhOw>1cb9 KT^TS&4g&zpja;?> literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+alt47 b/usr/share/terminfo/x/xterm+alt47 new file mode 100644 index 0000000000000000000000000000000000000000..9b82deea41cd3a337455fd32036e45526e18a635 GIT binary patch literal 152 zcmb1QRAvAHO$ITBijvf#T92t&gl69phUwJ0yKBvrRKxhOR?kAdMonE;ng ZP6lan>1cZs^9%;*Xd^E$Ge_Ej0RSV3Uo-#! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+app b/usr/share/terminfo/x/xterm+app new file mode 100644 index 0000000000000000000000000000000000000000..0df7c394e41e7869148d19aae00502a58613c86d GIT binary patch literal 422 zcmb1Qv|s>%r3?}b6(y-fx!Q>Z1vP0!iRrnic_j+vnI#zt$)!cb`9%uZsg=bFnRyC8 z1v#0?i6xo&c?!AtDX9$q2MjRawVMSj%K=rx1EmG<>KQPv04)|_koI>1VhC!a z6*Q7cGjmdaEZwA>{N!v+28RE*LH+-F+>)a*qai>}2!K-DKd{DsP?{W5$kW5g5X&GP zZER_6VwnqMsM@O*7^+rV)T-L3mKcNBDXOW)7FI@9R$vJ;Q&VHJT2+136bRqQ6wIqO uGBvGLRYQnEc&gSIW|~0FG@-;y21X!cU|?ck2htos77Ig=yAy-6KLY?~ U4D3K!0LWrt2y%B~aQ0^a0CQ)a*qai>}2rvLs+&{3!e^8nnQ^?c9 z$q>UJ9c^rBZDN@VWT@J!78t5lThyxBsFoOm*eR;1#uipaR$y^6Q&VHJT2+136bRqQ y6wIqOGBvGLRYQnEc&gSIMw&p4G@-yq21X!cU|?ck2htos77Ig=yAy-6KLY?hFD`-r literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+direct256 b/usr/share/terminfo/x/xterm+direct256 new file mode 100644 index 0000000000000000000000000000000000000000..43a22acc697fc1d2812f4cded935e6715c7f1dde GIT binary patch literal 1153 zcmb1Q^kHCN;AhBWRA8(qNiE9NPRT4vO)fDqHLC&h70NS9G87oD`s#Zc5-RG_b#0^x&|>#J59nVQzBsv$%nJXLE|YYeBDKurak2X%^} n0hkALD>k>7Ai2eaGPf`?FapaNCI)s84MZ#qLGDfr&i)Jl4s=a4 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+edit b/usr/share/terminfo/x/xterm+edit new file mode 100644 index 0000000000000000000000000000000000000000..9371ad3d6f87aa73d7446d1509329cfe1256838e GIT binary patch literal 418 zcmb1Q)MWsHr3`Wm6(y-fx!S2InI$!8MTzOTsd*&|Y57G8X1dv_l?ov7%)E3EyC5-z vf#Lsv0K)dNGH^lN#?K%!K&~VuXe1e=qmAo;gdvD90ug2)!W2Z9)G+`65Fb^@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+focus b/usr/share/terminfo/x/xterm+focus new file mode 100644 index 0000000000000000000000000000000000000000..a583f36783fdb1d05269f62d700a30de19e6008b GIT binary patch literal 93 zcmb1Q)M0>uijvf#T8OaB%40;2_oEh9U(8(}>Wu8V8{v+NK%YVhvKSi7_U&fqovprvB3o z>f+pk-^1PIl6x=L-s!7ppE}dBOp5f>CUqV^t=0pRq}4nwXW6rf!k*)tN1^LFCacn< zm`%-QslK+Li7Ixrr`A?f)BKQq9q3TUGXGZ8`SY}^qu>tr7-5VBYE*c`J8s~w@2$li z8NJQffA;LC%Z>h?Z&S$$bFTWly+nx*6llI^F~=)1ydXs`8@sZPJzU66>F1XicpiD} W4@mDeYBC5(e=;P;lPmIJ6zCgoF>!_f literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+meta b/usr/share/terminfo/x/xterm+meta new file mode 100644 index 0000000000000000000000000000000000000000..9864a0c3c10c8a25929a00c7a00e284895fb8bcc GIT binary patch literal 276 zcmb1QlxN^%U|>jR5Mrn(NiE9N&P^>ztN{@Ux%nxn3TgR83SbGKA_!poKWqR4(C^aG O_J#(=COI%h1_Jwm7k@yBFi1x`0kH=Vy8y8>5IX{~ G8v_8Ji&mQe literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+nofkeys b/usr/share/terminfo/x/xterm+nofkeys new file mode 100644 index 0000000000000000000000000000000000000000..2afbbd16ba33d1ec20548f74121f2441c427fb99 GIT binary patch literal 2354 zcmdT_O=w(I6h8Njm{t@)QLKY@q+TlxHSc#O<4Ze9lhRl-OxvWI<`L;6Gm}i_H}fXR zc;JbiF6 z+bCwMO`k}pKMw#(GYJ38GCo1O=r(Ha@Y_ZG@VJJqg~uMc6WJV~`{0?R<1~VG4+Ec} z0`weJsYPol%A@oIJxNakzeE@4BF5L~61_v0=|lRMK7;)=U7;W7XXV{)cZuN9dobS7 z!CRBr3wEE_FS>V}-Rj#T5?Ap`iD7XPb7Nvs6huw5#AD*Tcuu?^E_7DBD&7!piTA{( z;&a7(Bfb+qiC@I8;&(Bwwc8#f_)ThAEw2@|iel!WUs33y_WGtzyZz>0aJ&8P7AuVO z{~a%DAN->oeWZP%eW`t~{kXa6H?2Rib^qtK**yEy4&2sNq4jL!<*WE!>hNzz-rwf& z$u>KT_3y^7BHu=$-UM~g4HWfcQPvHab7kF>xdsSp25LC!na43c2;s5gb?i?VEEuNi zKn+7urc=hN2w<3HWzNDFgbW0vYdXxFfTSsUua42FKpCu3hHfWk@ley%UA+m$WZLEx zy^Io@%4Vc;9!HoXEK!d+6$6hptuTgN25qXPrdpPAX7BDZbiL;=+>vk8yQ>alxi;28 z4ucutU1X4E<|O14WK;zYW>dy&^pLW3ONGZ%El%?&NR<_DP=Ry^kYm8~hkzq0pOFv@ zg@7xjrp7|R^(#VbR!)(4cAA|`xoWJ-gEBWo(P_;6Z7;nbJDtl>G{L<}lT68aQZ~^6 znMduU8})SN;sm4AX8@YzeXqS%Az# zd^&qJn=KS(W{SnRxl*ZIu2ibkTCHB6pKmmLzu8<^SX^9MYPFV^S5{V6*Vfk8H#U&{ z1SFNAAXLTDB8U^d={{GAvfowUc~K zEZ(A_YIjIBZJAe=wJu@BJC?01qhrODWd&AF?bEaWlPDG^WGao_;05Tk%Lg42t~w6P z^r`Imb>(HY;u(dWihw)bWVoX?6(S9{gK|ewv_1XbLwZ-;WJi zq!rqr$LSoMr)TJStcu`n-A&iymcNN^!Kx_jrG2!Yx~Yd8a%q5$QJO~S4C0``lZIh- z@nEWiePGYRw`0=j5GpZ6n=u>;Pi3nR-XT5iLaBqe*_v6IFH094Z$a=)$SgweiBhMa zgpp4~4T7#`<{+p=rjE#_>a$XPTu@7W-!{K;>Wt&`re(f@_yglKK1PEL8uaO?MQNW# z^EB$yc$!LClS)$t#G=wPaNU6n3=KgKrU#&h9(ag#W(+!gdIWm(^bzQZQyFShS}pQf HwJP)n;w%WV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+nopcfkeys b/usr/share/terminfo/x/xterm+nopcfkeys new file mode 100644 index 0000000000000000000000000000000000000000..6101caecb199ebb75316beedae2b764a57f117ce GIT binary patch literal 808 zcmd6jzb^zq7=|B>N~IDK*+NAmyR-8R5*3X~6spq@*+twB*;{d!$WDwRqU5^i6me_*G0GWq6x-kHqgNKCc9_@-B8MQg6zIoiz+vwrt9FLw4?S-Xr* z4$A$`aT#r_&UedxGmCW2PYo7~GR8O)Of$nQF`*Xks=?R%d%`j+tg+4}4YtW?QqW_- z8RuMZ$rab!aLXO{Jn+a9&%E%;8}EGZ$<$Vo42E=K;;Ma;ie5BvL0lAm%PGbhMn8PAgxposf2(ZVMhd99nu5g2U^zew6-(5Xz?TbK!!U#_% z@kJm)VT2bGUj!l)MvO1u=@z~SL?}#ze*IL_6TS#UC=B|?jY}5FMA;}KWj#MqrL2^d UvQk!OHMzi9c4wKLWp&oz2fa`2ZU6uP literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+pcc1 b/usr/share/terminfo/x/xterm+pcc1 new file mode 100644 index 0000000000000000000000000000000000000000..537312cc9ee4eb3a7e62cdad87fbdc98745ff887 GIT binary patch literal 824 zcmdVX%Sr<=0EOWr*o9r#g(6;13T_lD(#|EIZpJAUsY+0@P!ZAI9O_t|j%dNR^c8#$ zJ*VKxrK<+=G4KbHOqQoA(D=kW-t$hDZaueJ)sJp=*GoH3dHF5LAIj;VopeX>Yc?EY z&CY1JTgCT;44^PEXZ_zVE&jP@2`ksN0}+Y3h{vzJfC|3&RX`CXzWfr_u#OFEqXvV0 zL};K13x_M*qK$-Wr!j+B%wZ9$T)T-K1lZ%sL!96om$<<_dU(Xk@2;M<_C+8~Rn3mSr8_SIKW#d5*kQ4uBn0o&L? z4f{Am6X$55jXNY5VvH%?@qtfvEntb&D_Fx8>nqrULLEMi*>Qzy+_0yIM?C+2yDLL@ z0wvG_BXDIhPoM-^U<7V3d!{E)0xd8CM~>+VJb@Buf$`CAT-fc}@N6g>+J-^@tl6Sr kQZeb6luX*o6Kk2YOj;%_lQs(NWb%7 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+pcc3 b/usr/share/terminfo/x/xterm+pcc3 new file mode 100644 index 0000000000000000000000000000000000000000..980da82e3f64bec3b07d8caf3f752b3ee472e029 GIT binary patch literal 902 zcmdUtJxjwt9EX1e2VJBfNKu4nr8brZ^B+#NqdspF|OJIeSle6!;g+ zV;QU1zzz&faft@H=;H~`c)=^)@Xn`3FotnVaQzHsv4ACbC?mi&4seV!T;LjYv~l-) z2TFG0iaoI})?y_)bj6<77i+N!f8OtkJ+Uv=;*y+PiCwWL_Qg6tt8!?kvT!Xt3*SPc owZC=3LNbwTBqPasv}-HLO0tryBx_{sC)NRS@*6wy|COzC8Go`eaf_w7V?d$wM@c%~`; z<*(`guNjAnTO&_*-@vwik5MNuxN47yNMHnB-~?rX4aM6im}x#ysuZIyy^0f&GmH;7 z>HxaXgFX!56<#C4JB(u*vsl6^z97R6_Hm3;e8)L{;tId;8-H+vTimgRd=>c~{dkEH zjPibrkEkHQJeIM7HPl$6i5%Z>f-_e6feT#Xx|p@t#fJ9e#TGUc8`%)cI#IB?M_I+G zc$HYi%8pSet2h;}5{sBnG&0)AgrbqrMn)TXjd+cCjd+cCjW~@sjW~@sjW~(aCo5J^ z7C35()^ Rx(kb+=#q3vx+GmP#v^=y8zuk% literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+pcf0 b/usr/share/terminfo/x/xterm+pcf0 new file mode 100644 index 0000000000000000000000000000000000000000..3c91b63e3d6e751db1481947774be37f491701dc GIT binary patch literal 1011 zcmd6jzb^zq6vw|WQ3(nWg;R(qBt&j!X4kG$P`JVs!%;|1LAc`*cZ3yp$wd?jg+f6= zL7`D9l}e>jsnlpR8VU2`b^d{yWWJy5%f3(EyaAekJ>7IijkLU98{6BcWLuT}^{raD zo(>&V)9sp%pcY_(&}!#P;MSfW%1hv2k1a2deDo03}P6gm}rZ++F&*RMo^f- z4CXKojb*H26FW%J!YR&iiEG^A9uIiL6Q1#cSG?gJANa%Y_dxq!Ah?Mbk7( zc`DEXtlJrF#9%NO z3MCb0-cqtR$I+Sa*qruheUV9vuF&OE%FVVXpI67)u`sMM^EHwtBORBmqV zR7E;v9B`p}O73?YRPjA61Xa&^IK{zZ_; zVg~bA!Ui@`#2z9X;S}e%#5Hblk4HS?74P`KC%*8FAN-<&UP{m)rD&8UNYXUT(ju)> zp0=q%4QkN|ozVqd(GA_v13l3TC6`x_%nRoj$>mjjbNa67j^pW0-pQC6m>R}aOquGM zDotOBSm7w4|HsgZ7;I6(%w#MB%aAFiEcHBlEhW=Y9=knud+heC+h$bEz%pcNx9JNl zv2LccbIND8&u*XHzIFRHH#1Pokg46~t=&x5QZgOovfE|1%Wl`Y&Gwv(Vg{BWQ@eS) RT4HlErJYlf-ICohhd(vQDWm`Z literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+pcfkeys b/usr/share/terminfo/x/xterm+pcfkeys new file mode 100644 index 0000000000000000000000000000000000000000..2938bc0ad96ac03050f4e6d6b37d3831bb689fbf GIT binary patch literal 2036 zcmc(fU8q!57>3_(i%Ewx`Z3EfJSY`u!r4D-?U{BF=cmIN$(h~clsHgk%vAnm#}g?W zjEKA_2_&cpDk6}APzV$xih`(%u#1Wyf{MU`f}o&+&`$5SzvWzZ(TxM^efC=KTJN`J z&swum#-N|2l1KaJ`m?*&?|opfvwvXUeAOEr%-;Xt?*5*+(ZM6Lqvhm=eRBtP^+&52 zShye`u#zfT##-5N6{VsYiE0^ zRgVqV&f_UOQ}vEeUkc-|4gH0Mqj($d;1oWjCw-XWgV%AL-k#(` zTqI0YjB`ZWG`ne`({)sPM3pcctYWO^hJ%`x=r(&v78dJXxtJSOaIXs6ZdjHF)&m>H zWGs;LtHiLOBn$HjXW7oOon^a_9bQIZtOquX%&x|hI4}*&jB(*D+grA`Y#*|#*B9r7 zu^!kkGP@dQwlNLNjB$}#c52zFWv3y#dV9<^)&mr{V4 z$nX#jN5B#+!*Z;`TCC%(uH!aLV-s(458LrD_Tq6I#M3y8=kYRL$D25glXwpw;ZuB$ zukk&8;@SQKXR$~|qUJ#w$~1z3y`T#74k4X(u++<=={&EpnK zU9ataUM_N5T3;myoguu2Hs-T6L=RN@jB*CY(Rqsh#o6;0)f78&W&znZX&nAvdIY3*sU(IDpDN_VEc zi7u5cl`fSom2OijHnn0?D>k)aQ!Cyvy_pV`7L^{ACY5e$i@H?0RJv5URJvv7Zn{*u lRJv5URJxs}uBFnY(xuX+((RVoIH6n8@0PT?CEaeB<6nBM;^6=Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+r6f2 b/usr/share/terminfo/x/xterm+r6f2 new file mode 100644 index 0000000000000000000000000000000000000000..9b4847e0d7fbe683675891999c6f4698410cdee0 GIT binary patch literal 1094 zcmd7Pze~eF6bJC{Tf{*@oQi^Ea1dR3m!wIIpg2gurDLH>#a3FdKd2Qeh;;1Ov17-M z9XodH*s)_rM@KhJ?!JQHKhPWA=MwIHdAS_OCDOGkYw2~XoyJ)w_n_a*)_JLSYfkI2 za`W80@77z*+v@9+bJwgmjaH@p@cQ@lxdy&BU;$g$!9FrL!ZA*fMQ$VJ+JLM1H^K$3 zkw*bVlu<()J@hfa5F?B+!4xyhvA_~5tnqES0~*rEn&g{)&736PKL7TsIA^|3Q?(8D9J3zNma;?$zN#FA8n#N_1E;$npeg_6vYoK%IJ z%)C^f1}I=;_)ijGAW=O#iRwvm3=I@>F-XT6Sxd(-fDn)c2_{AcCI${L6D$@I%m4t} C;T}c+ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+sl-twm b/usr/share/terminfo/x/xterm+sl-twm new file mode 100644 index 0000000000000000000000000000000000000000..67e954bb8dc0bd5418f035c38a941371626e5448 GIT binary patch literal 402 zcmb1Q^kCp(U|{HA;AN;NNiE9NF3!;{DbKA*OioTME>?(8D9J3zNma gUo{7VbgYpzI|DnIhJ+C#0}}%WmtFwBtK6fH@~zvm4V^^C>RZa zAs+$^4ARjy;FQn8z`>9VWT`S}GUx(nW+0yrC~FVQ1!mSj!URMZsoJX+7^+qq)~ed7 zmSm`==BQc&6?p=&KgcN6Ow|Ho)f8)xA`oc=B7s^=R7-qSQ*(ieBYYXMD?I&xgnwuV ILq#qF0J+QSUjP6A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+sm+1003 b/usr/share/terminfo/x/xterm+sm+1003 new file mode 100644 index 0000000000000000000000000000000000000000..b435db3870cebd04f48e7352e89b8b5154365b75 GIT binary patch literal 889 zcmb1QRAB&t6h;L-pART&56lB*)Q~us}>llRvXr;+Nzdh zsHWzqS_2h%0RZaAs+$^4ARlQ;9S7Oz`_s?WGMhKGf>nXloPChgn_EPYJs6@wPCHQ zt!hbzYHE(EHAojo*hIC&ST$9(z*tpXL0wf_HCfeKwZKSKT@l171!;pa86tccDsmYB D5nbtI literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+sm+1006 b/usr/share/terminfo/x/xterm+sm+1006 new file mode 100644 index 0000000000000000000000000000000000000000..846985c72c7712f045b93a8b2ccef0cc3a1a8460 GIT binary patch literal 869 zcmb1Q)Mo&J6h;Hm$w9zP6;?UNnM>f7KhM85Ny@FL@M~>O{(59iN23N)D|#TW)4)V39ZJTLQCU=s4+z{SDF6Tf literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+tmux2 b/usr/share/terminfo/x/xterm+tmux2 new file mode 100644 index 0000000000000000000000000000000000000000..fff7553eea356f0307db837559bb479f28f5dce4 GIT binary patch literal 162 zcmb1QG-QB*ijvf#Tv|k+o`pp=vRhV+!Q}g^VCV(F%nO a($OFlDL|HU5rcCvgKsfIa4JJ^F#`bGaU;P1 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+vt+edit b/usr/share/terminfo/x/xterm+vt+edit new file mode 100644 index 0000000000000000000000000000000000000000..dd5960ce35da399d54564c38d3afd64728fe734b GIT binary patch literal 464 zcmb1QG-CjPLkwID6(y-fx!PqV+Nmj-B{gY9iRrnic_j*I`9%t0Ax1_9y2T}xIjIUD k+049jh3wSIg2WVt|D%A4A;3UJc(O7`M;q1w36nYo00`rissI20 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+x10mouse b/usr/share/terminfo/x/xterm+x10mouse new file mode 100644 index 0000000000000000000000000000000000000000..2c7e61339b9967b6c0b5b439e0f2857d0f24378e GIT binary patch literal 853 zcmb1Q)L;OC6h;=S>1bbY+Gk>5VQ>brB!HM1C~9x1YOh*gs9J4Ut7@xSlA)TKqiPLOty*BLs;;1} Zs;!!=T41EAt_Wos!k7#Zz6=$)3;@o`;_Uzc literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm+x11hilite b/usr/share/terminfo/x/xterm+x11hilite new file mode 100644 index 0000000000000000000000000000000000000000..305a2472567ef9639eb93e4a90ead0ce6a13c088 GIT binary patch literal 903 zcmb1Qv|s>%6h;=S>1bbY+Gk>5VF(4Xq=A?jC~9wLU|^tXuUcTJT5VXXYO7k3p_-bbY7No=5;jpS pQ7tf5O;xQnu2r>GRaa0~)mBYbEih75SA;SRVN8YyUxtcY1^^cc=ZpXV literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-1002 b/usr/share/terminfo/x/xterm-1002 new file mode 100644 index 0000000000000000000000000000000000000000..061884ba9850937f439aea979ec80c3f0b5fb520 GIT binary patch literal 3848 zcmb_e3yhpq6+Y+x|LuzsYDL{TO1GguV8hn=pEKjX?a+Oc-LkVY?4ztZG-ix3CCC)da+QzsN$9umDgMZ6y>o|j z2j9(Kgzrmyh9Ba`_$hvdpXERB%e)fTSZ8cB-eA1h*kQC9Qa5X~8#$w3^czFQX;{9h ztl~Lie8c#*@v!lTvOEDKQ|y+xL9ys7E1O=WUu-tNs-*p|k8e|TE?up;!*tBFDrJFt zV|#AZzp^rDj+h6{33Jw5Fqh4n%@3Nlo1Zp6XWnN%Xnxat*nHglq4^W@SLSo(i{{@< zvesFftY&Mgb(z&_`Bt0NY4uuz*7eqyHDlGRCF>^Zly#f+3F|KFUh4ttto4xfsP&}v zW9t{zZ>`^1uRnrUBK~Ck)8eL!o0^*%wrx!ltGc$`e_mOvr(eU?$Z#&7ZF=m##6A<- zf7$f>c@Zz2S3Wo6|61Cx=E60J;s~v!3n@{wr|gPjk41LHwa4aR@FoD=iK4p?d<{f6 zj=K64RafYy4KQ^>vTiVgPZ5ga&Zy!f3LTI=+8DWkSPGCFC9X(bSdu()FOrAAt`)GGL*sXh-QO}j{>pD`p7SazHfW--5DLN^IX@wa07lz@fjw=Nd&;_F!uXIHzxrQRCl;x_1BAru~ z-i9K5P!?%kDT56~nxBIB0>KoC_pk)H_L6hLZneh_QQ|Os|1nEx7~?%LMv0W{f*jdd zyOObMSX;Y-ELO z8*W%yT3$YJ;-sv|2qc@5{gq8&Bjhp5`MnUCTQ8E;lSP6>NG<59QLU;j1*=AxT~~HZ z(e>lXvR=G$jyaOK1` zc+w$PAx499GXD0eFgFa5`nJW=rg|@@x>WO(U9?7|G9VlWKEg3KWis%VD$w2ZqA72& z^|TppDjP4VHtN88sz4)jBi%|LqTA_Hi26J|Kxgn~`W}6sendZ|U(<7VGrdgzB8xBJ z&Af$M_;TLK0k?4n-bB~(Fu#Y#xy&_Q;+yaex{W{1ck(@aAAg0v&fnoj`3L+o{~T|g z-}4Ln691L|ftQbItTiq$E;8O|yv0ZuTa8PNcNja-RTHni^|TT1&du~Dyblw2|81k~ zbU9r~4uurqZP-aY)JFp}Ob6&NP0<`J&=S3m-j7jyl9ce%-A||KEJpHOdYqo5 zr|D<(8;s?T^k@1zo}X)YBSzEAm+*Gpf$?~p=3U&*SMxQT=K;Qsi#*B`7*~}S`9{8l zKY)>aj6cbkY&V(I$G9jsXAU@yyH?0mD^-PF^l-Nx2x5a;5oLCha^c`Ik=vx`wj2ej zMN=B?g=823d;#~I4K`_)X6#5Z>#qVgo1}=p@%VG}B7JW)t|Cw0NWP{(Q>ZDW$ZnqeN4Y8$x~MQf10@=$(r}KZJ3Bl9Umy?&1yX=M5pnj3vrn9T;_QR7tFIFt zAY4HBfN%og?at@m1;Pu27YHv9-X3YOM_TNW7JH<{9%-?6?;t!txPb5h;RM3lH!NNt zyg+z?@B-m2^zVlk2rm#`AiO|$`+KA=5MCg>KzM=h4i!WYFjRnlr~vm+0p6hkoTDyH zA95h@ABJ9mx3Z_R6WEd41MKYCFPI+$=7xHK14He=k^VeQ*LyIF_59Ev&6n$SstVN0 F^lxgr*l+*< literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-1003 b/usr/share/terminfo/x/xterm-1003 new file mode 100644 index 0000000000000000000000000000000000000000..e0910784907e0c99c166928abc5c33c4427083f9 GIT binary patch literal 3846 zcmb_e3yhpq6+Y+x|LuzsYDL{TO1GguVAHMhKWD~&+ok&`yJcr**hg7+XzbFReROwr zr#rLlEW0gA08^s|BS!H-2ugwqN-C!H5yhb4Wg=pNMtlbo&?p!bjgO4qx%Z!iRt$-8 zGUxlwJ?GqWpZ~r0t-O;iql@S>ylG9XT3jf#I?1HBQml=Y%Cp6m`H2=~Z5f+eYAqfs z&Q)7V^NW=t5v#ut6osNR{$homr*+g!_1E~Vqbm_$(HcZ-p-a$*9kdIP8QM>Ml&5Q< zzndn2M`(^}w4$=Smu{w0^kL|C(LMA9@R#X9`Wk(U9-$}bDU_e3=jjFdi;Aw-*RpPU z3;6A^z7@PZ*6Z~vcqh9Y^1FBsckzDC^8vn&55ZrAO!FL9_&A@0ehZ)CkF3@^cSv{e z-TX!PzQkwvA%2XX;%E3-{sX_v^|;15W25l~IWM<*Ujn zo-@WbjBgtc8;>Z<6F@S>ZkZbti(ap9dX;{$+5D=K_P;*9P1U({wdM}fG1IEl4%`>p zv#b7keaIX&51EtZoVjSOm^YgrG;cRQZGO(Y&wSAQrune>xcNi#C+4rr=gb$)znNsM zvo=}H)>i8>tJU(YHml3(vxcnetZ{4Bs#?p|P1Y&vHtQ4CUDmzU1J+sVA?s1=N$bbf zFRb5Mzq4L{1g}K=$@-_oO&2#cH#KbAnkH9uZM*-xvRF^QhOLp|Tt3_M*nf$ACbs{w z>G|^_UOKOQZpQz$v|-JKYZ8S~T1yvFqF_(kWycVdSo!7M&SD2_X;ic=_bLiTE7% zqOh$D&5L~0gY1E&PmRJmNr@bi=cK=`Bc*E~1CT*joB)=BlTw&gm=Sc7z+8`LqI5wC z#V+AFnG7d#kyQxOlG9V8+iiEI61(BTFg(?9rC_W1RbI1Jx^%u*W0cu$N|A|<;ZOLn_m z&e&C~tzE>b*ioX86kBLlBgc+J4WPPOb)ouNb?mZdub`aLWglvw)fCjU9btWYXgy}^ zIAjU32ssL=(4j+PV-pjTlhe~jj?B!=&X!7ZbMy1%^3kIU3zbT>y101k*zx1F+S1Yu zH!Lr&teiM;QdVRX(w>t2)tn0iv)|1TF_OaT2);NR*f>duI!qE z>&KO4y-*qZMhII+NbjDwS}Nvr%o)vYGG@f9jB$rtKaPt6ojcIE1D!jFbH{r#(wvSt zqZzrC-F0I2V)ivVQK)l=I(MjZhjDJTo1IjoIURFGGjc0Ca%=Wt_BA_^r*nHcx2JP^ zac(tx$gMdYb4D|A>)Az;cuq9?aa`o<+`i83tK4#awTBt`(y?7}%8iRToD;KMh?0)$ z`9YXUXAa6X7x6NYpONFlll|(b4`H`m_3ff6c_(a?!nowCk`tFgRq}LcTy5Hd|9{Ei zNrzm87!A(J_}i<%+%QDy+ZIck>b;!mQq5O((HfD;fN&i62*=!%$iQ1FPj}OcraZ;g z(`LM>Y`m!2s1xt0JdM(gbSr&`Zl_Nn>htsfoxz*wd-Q$!5&e{YP0!)Y^fLX6EWUs@ z^A>L5%Xt?E+{T@F6J5h2{2rd*5?6VdZ^Aq1HvTx@$@lPm{1yH>e}^CCAMn%sbG&(e z&oA&x{8#=5UOuL=*0{j9$atgi79(M7H7+&YVeCRzO}zTn(?+~HH`AN&K1|^Kw~e;b z<+PI=3MsVVWqKdIAEWpv-9dNKXX#$LpH9>;ch(`#0Iq@%IqfP!og)Cw@JZmISN#Z zrZn6O$uI)=0_SeiDZ4mpN0M286}Z_XMf{D&pQ9J)d#iC3dHP23H3gbNO({*DJ_vnH zfu>MXN|Pstq!am?0!^W&l#m;LxVlSjeC)(0M59Zd9InWsDbN&ZN(qHJOQ^GiI!mat zggQ&0LjoNV=#W5%1gj0nfsKYV1)4%lDNS-kBgE6>YYH@lno^)#4T2|2?igeNB3H=_ zM6Q*22u_>a5eUA)Tp1~QAvuVv&KU)5@TG`69{ilE(uHFNJxglV7xDPlu+yNXN$k9x#7qeK)4G+;msaB(kK&?do E20L)q_W%F@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-1005 b/usr/share/terminfo/x/xterm-1005 new file mode 100644 index 0000000000000000000000000000000000000000..6f812b831baa5200c76d9a61ce6afa0e120e8e56 GIT binary patch literal 3812 zcmb_e3v66h5uJJO+4(4e5C!D2{lqk{DWNX=zPrmyvW>k??bPdCY;S73jg-`OY{$Qi z*G`<+4j-k00Hyqdh(u8YMO2g)6t!v)6+{YBX)2+%5>Tm#A_%CBM4|jtRfy%xy>GWo zD5`{5?VK}rX71eYyZ64AucMpjope8MXkMHjottiRlF49Mshdj!yW7&6r)L+cqeQI! zLQoWnQvZup^dhaM7OK6)Z#CV92#cB#aSdIMR=3fuh|JI)>Os9bp?`!90uRv)Ez+{e z@-aF|r|5Ig&(OE%JK*opqx1v%5j{yy({m_aqL=AU^mi3qtF2<)^fln?V*Lj2mRPUV zZsuFq<&ZzbJ2}UDxX63?F5VCSC}e_XxXMTQ1oV6O6n~*n@5&*a=5O#r@IAth^Lc)X zpW_$!6919^!L_)?YGa-8F5^AMHlxjux>=*$$QwnY&nOvZVR=kh#q+rFL*vKB1>;F& zc^XKj*e!FdV$o~04R6vnnJsTBY5&{fwW`jIjhfp`$4skI7PvdM=NtZ7ZNMBd_nTwp zjJaSgn7`!n|N!G@mt}H-BTkWd7NF%_M8JwZUq!Zm@2$+AQDN zZsn{VYrwk88nLFVd27k~gmudLy!BP-e6H!K{}TH`Y=5!o<*Oq8dR6(#jQ?wC zZS(r(M0to-(Rxah?FqZ$*dvi$aqW>g7`!n+SEB6h0p9@;j-zgWL)8_!Xe~@#kgOX_ z;Zua-xKpY)jzR}ymo`RjAeJH|Pl=n8;9wfy2xOh4pBYD^Zj_9Y^RT#L_N7Kzv{VCp z(Nv!Yk)~ZFQ5KuZfu>!rp2MGl*;Q3tRV^EgZ`qC$>4Q5Fj{YXftrciq4(J$U@1E(g=vKuK{p93bcrTP4oWC?2`|WGIFXC2LYS6< zo*Lb5))`OifD6O$RL7Nq3Fw4TjaRy&lzd&0RLXK&U6IZyOHW;qJ}8ScuatqhBF#@g ze1Tws#5*iOuD#@}*lqU6-IN%H?>}ZK4P(3~MktYzU63a`YgaP%Jl578#j4m*qMQ_4 zXwOHE9f=x1b+zh3^|k8Q70+HqIi<@!)Ih5#sA)UG`gYM8%-B)LF~|bsFr-TR_a8WL z@Zi|k#KfUPlao_Z)6+9Ev$K`T;lp!t)$08G!orawM~^Np9y@mY_|nqy^2*8yS&<<~ zHYNKjo5DsYV3rHJAu_jKB&#Qj1dEVb(1ua1sxAc$qs*==yQb{=ab;OARK~s$!qySe zyC<%eia8x~MzfoY8SyG(+#%PGfE8u9qQa+oLlW?ClzT<$DGlO+{%vJn!T8P%}(U$+@8+u>D*qNTg@JFYfi_U(Tv=B zc9A5W6U}}c7x_B3uXFn=12H3eu6LXMShl_=NI`8e3@V2zu@KbI{%9equE$% zyu;Xtm(R6EE4pdo#kYpm;f=YG-i^0m0&l-o+Cp3D7IG-02=Bribz?OBG)Vhsm?mhJ z7HA3m|0LZ@U!v0(=Qrs=dKhCkhnL?^=psEszrZMdOE1wY^f!7PPtRsv#~ZnYujehi zjc;X-)4YS*`F6g83mDIxT*ipTcpC4!WBgIRhd<5tF_yzkCiU?x3eJ~(j^nNpa@7h| zp_e_}sr!Q1pjJYe-K1PJxJ2X@DZ85w1Jz!$E#M9(!3N(e9QlP>j1h16B5y%`wZjVWb+$6IQ9597L5PX1z3R1f2NKufN69G4z zIww4P>*lTY2kc?ocK9B*wn||^);v~e*B}iJP!iI;zy^QNBvWPAc|O|0wlW zX)sTdxeiaj7YGDGffS%uM4Y|i>=kFPID6sj?9IUggbN5C5KbVxU4=ZnKzM=h0^tS1 z+bu12ON-soVz;!|EiLx!9)Jf37Z5%moIrSc2gM777YHv9ULd^1zP<1Q;RV7Agck^J zU$@i+!V82K2rm%cQc(l}r6T;LBHX1Syrm+X2V9!G+kwD847~zxWmhf-?8xr|=DPO^ b76yR%QV+1d)D9f#E708Z;v!WA7N_aofo{wO literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-1006 b/usr/share/terminfo/x/xterm-1006 new file mode 100644 index 0000000000000000000000000000000000000000..c285519f74b6813f563de10e737992e0057217f5 GIT binary patch literal 3798 zcmb_e3yhpq6+Y+x|J^>)YH2E290V%;5gQigf6k2mwnKMk+ugFWGw!1-J2YwOZg;o4 zvpe0{ZMWUs`bY`Z2M;xdCSn@JNJP*y5Nagaq$EH|43MZzFk%!9G!eyD2r-V|x%Z!e zRt$-8GUxlwJ?GqWpZ~r0!}_Xq}1#Bcl5QEXXdM;M6CWo zP!x(%|BF@hBCVtrs=dc=CEbDui<%K}6~KvbPx1X^d0&h_y_bj{fK@-&(QPq63VaA>+~o3yNa&WR$h-Is-UI(AWP+!;%7^(F^t<>3-`}Wr>5xwHxA+nG9^)tZEI-FD z@yq-w|B?T}wYbJgV~ufzaiy`@Xf>p6)@V2KM$zaq2949OJfW=OdD8f?@l)fR@r<%O z4UGT$y#Zxvs$cctsAUX%eUIB zoYi9uSa(<>)|548En1(mPFVL@4_K$Hhpiu4XRNc~ZfBHpzA zX>rqrrk19a9guC>7`cI1ijX`dZcKuMGQbhYI!Qk>jz--m871dnamDOQjkIW~2Kb_> zJ`W*HyGWuWHkAWSyIwtqKLxX^s=BILHW=U3hV$qXTM>@_CQ2JC(7eb;J;+vAdekVq zW0WW$c|rQ?I#T)+qz}>$ixa?7a#9M@3NwOk5?JUGO_UszQ0x+3kjZc&7g>ccEd@O_ zy4|cZp4b8xhT*A>D+LqK38NaXbVVuox+1BR<(9f4ol};cx*~m07HM8719e53pMdxR z!32qSp9Hz~qO)wb+9P*TVjq0}F-vI}<2^A#iInVuJlR>hlCkHow)QAi#f}oCq}W1x zE^_Qh)BvihRTrwSRmZM)_7ch|UG|{{T1`Ps+Y#2ci&kOA4nvMW<{<|mRob&>@813U z$Hpcm4jh=AoSG_^r>AFTDwTr=XJ@O`xw-lILx&C@URXGC=G$jyaO?b$^XA(@uWkpLW~CIWc=+_VXhk@ z^=*r#P4!+*b*bhnyJ+=DWk5I%e1v0e%4Faz)l1)`3#PoqR?&LAscgKc+NcBXsUi*2 zQTi->p6;cu(}VO7Jwm7PYC4No)6eMV^eg%uU8FbZEviv7ujLJ#;E(dhIms!!iaNQ6 z`+1o6@;J}%AztR={6+o>pX5{gU4D$8;HUT;pXV3(0>8q4;EVhQ{{=6fxA|Xe7|q6N z;{(QeynL=UHlmv*UVN))4PKb*=|gxMCh+##NSo+mbQ3ugQiOM5j=C|Lej1|Pw2vle zhURGz{lA;OOkbsw80WX?VR{r}ID?np({!F*pkH7Vzopmc4f-3sji+Zbui^FF!q@O7 z-pn_%$7$Ze?Yx6;~_gFv-dO2d7S3?qO#R2w^U+#a2>BT1@11YBlP zJN~TWFVKthRaL)zJbelIngUIsrj#a6pMAcjKvSqGrOA_X(TRLbfu>MXO301BRox{w zK561Zq247=&QoO36le-HrG!GACDd6$oh8&+LY*bhA%PAFbV#5>f<{AfMx!B3fu>MX zN|W5m2=O%engUIsrWB~K0KqGza0oIBk=tVuA~(ql1P4sv00f_1p@NjII#Lw0$+zpN z7gyumrS3-DdU<=ajJ4c0L_-7Ao}>0o>X@aDDs_64uTrs-iv83-O8r$D%F|@7!xQiY z0)bE<1?UwKXRkPW#n~&)UN}2@bMOG+0>TG`69{itArCJQULd?cc!BVCON-soVz;!| zEiHCSi#^*1-~qw~gbxTO5Z>M)@dDum!V82K2yd}(7ra1tf$#$11;X3cEp>tL0^tS1 z3xs#DD1v~&BK(6zxCe{y4i@3u>(b<%4g~&v&@1p(w&ilbj{G)Yu6vhYVE~vP>;d)< TwgZRz3N%|@SfHxFLYe*zHO9(! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-16color b/usr/share/terminfo/x/xterm-16color new file mode 100644 index 0000000000000000000000000000000000000000..cfb7d1658871bcd3e4fb677773a541786ab5d884 GIT binary patch literal 4058 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 b=6ZpheI3A_z9!&6caF-%xjCu`%oXXsK@H#V literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-88color b/usr/share/terminfo/x/xterm-88color new file mode 100644 index 0000000000000000000000000000000000000000..7891153c72e0db27f40d8a329f5e2e29061ce0bc GIT binary patch literal 3880 zcmb_eYiwM_6+Y+Q>kWwlZKF1VZ0ja8w?GthSiu!HU0`jNO^EG4m>__g+C zcN06Yot6qzppOVDfr11=^o2l8CDaF{ZA9M+RS_VSBK0M;5o)QLKGf0*scgS9bNvW4 z;!jt5zVF=g&77G#Gk0b-@rUTc^e%ds2NJW@k#h0oOlD|$a=JXPo;J^nRYx~xGMiPb zLd5DX1V^Db@?Uy_pQo$nTB@z`>!-c-L>47b;yS8F+uLXdN@i(4b)eos_#dUCz;T+Q zS(;Z_K2CSiJ@i@lkJ1exqPKjmWoERFv-;-!pz> zTr_^BA}<0Hro`8o?^Y~+t+sK6zsam$@uc;4#_Ls`o0e*(%(S^jJ+%Tm;&{)JUaJk5 zhs>j9(X5(t<|oX1&HK%V%*V_p%%{v}%l$mLRd3nW zcFVJNSxwe{tJ@l|j#%SX**b0AVcl(=wH~k@vA$%Tx4vOruzqYkZ@p~&+PY-@$@;7H z&Tp_>;$N0gx2A4WU47jRbvx>o<14*SuM)p+mDtKU%l?CPkH1aXXX5yUy8pbT#O}m$ z{r{iWn>d(A76xbyT}{b?J!Y32dpNR7u032vz&i$LOBUSy;M-uraj9FEU0tD#)*;je zYjlH2e2Q=!cTzo$;-ML~PX{A6kVqcZNy!^i;GhU_1R9-`pB+V`Zj_2rRYY6~`%)t# zUU~_9@l>Dtk)}y3S&*2@fu>z=F^4~iu&b)Ns#;?(y0yVcrFQN?ar8G?*iwS$MLz1m z_8`)s-oiUW$sCgBq`$5sPalDG!+H>L0z?W-`t zyXZ*sV=!MJ7$Z@Kq>yXRIScm9_V5u(4kZUMIcrejf5s|3 z%&i5tLmwd=z5wd>d=&z{F~T0i@61MQ~aX6y*F+(v6LZZoh` zuoJN3unHYIbolVmqsNYojg5~_OiWG|i&In6)1}h!RbQ z&CSm*ES!;f8GtpWWtBCiu^e(3>)b6c8DTGyIh3hFL`Y5RQc%sUehQX?GRCf~or3Gf zm1WjY8LLMK3rI+>p}1N)=1k04&2B1Ylvf$!4!M3@E(&z+K<5s0?jX(`uh2+yCg!YW zI9q0Sw~xz(C>(vjv&%vsIIt>Vb7*^AlN>_ncP{p(rWzn-U`)350F^cww*{!KMX@YVcYPV)796Q?+h z`&BDJX|Y{eY?l_>rNxe0dZ7Rz0igjQ0-<*GiwcAagbIWTgqrU@02K%o2o(qw z2(`Oi>H?txp#q@-q4wp)P@pdly)O^BFAudZ5Am=|6Gt2v^da~qsHJ@^Ex_i^eZZFX d1A@6;U}s+ku&1vHIMAJ=a&dN+Dgv`b`Y${g-pc?0 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-8bit b/usr/share/terminfo/x/xterm-8bit new file mode 100644 index 0000000000000000000000000000000000000000..5835108116dde71285c7405e479af15d5bb4bc55 GIT binary patch literal 1913 zcmcgtO^6&t6n<4hFa{(SK}~~KI9=T{J(G5KGVaDKW+NdU++>wx+?nijwtHrF zruS!dXIGL#FiIR1e=y}wkbvYOhy+BCKn|V)!HXb>c=g~-5f9RSRnu7l=Af|JbiMa| z)nC2p_g*!w3|L;7c;AIy%UWVUkc*BfmzLiW;M*#qouGKw>sJ4D4u5LTFtoA z3cJ~nne6jHv({S4KG*BU_2_XTW^U~OjMd=Qt!IIc&`!Fak~>^GX+H!R+Cg{GePq!? zw3i-((xwVc(9<*x{45=VeSuC;gBDDbCUt0;)(k#N=ipzZ*Xb>Kmp-CT=nDAfbd|oM zYetbIH&g#B{O>9L1OCqxCke3~Y!}e*DRzh* zP4RH%@Aeq0vVbi@)njMadH6Te74NeT*d^f0>{ByygWY7`vme-x>?daPByli?SDqKS z&&PSi%uK@e4C?bUTbd*}cN;#>FWkm%#o2!U27iZN3f9jUU+hxkH`*QP;gf>Z?)w)71>Lh3MCBRNv}h?I>{ zwsUR?LKmY5?xn+pH!m{-{ZpiJk#R;ILXIJ|R%&56-`M-4oy$Ej4j7U(TaXX8t?WS+ zsj}Cw#w`!~_>S-Tg%C?s$10MV*01Vp(g4wIdlR9wv86VcR<^56UK>xFqBbQMnbSxE zES@A)0EBEXK?9R(XpQT<8rE2v0D1Cb)yVSDnhU6&D2sMM#J(+j4JDvEgtllqq7Uv3xeJ&dLJzPg{7A1Ti5Ptob#y`a z^a|ZggB2Pq(V$0zMH+PJ=~PN&CEqRK)HpgXTddm~Vob!Ys2k=O tR!Es^n4PkMVa|}%P#L`Nb_7Ajj_J4ws6WAoES%$L_&HRVmc&XFgclG+Hsl7K#eCu3}@8Hc7LaG~Kjmo0cBD z^iV-BLP7B2MTB0wD5&7YgE#*I4_-WZ@*HR0ZsNfR3VLzL%>3rJGxO%n+whJv0|wwI zJZ9sex|gduLw7UFg}H`P&gQCaSWsc&3vQ+q&N;PG#w%CDL*coySZGJ|&)5e`5|0gc@ zhdV7wHECVil^(S7_M}g3{BI{S5c2B}hKvCH+x136$&hT{gl;$tvds&;qVlZ8D;m#M zk!}_tgNoq>uYQ4>l+)5#^&bM7IvD5(xD}yG+mXxA8Z{zuk2NX5tm+Z z+fr0bH_S*h7QanfCeh=T5vOz1sdtrcsGEF*dj`)5PZwS!@C@Opffo^;?t59W0o(X1 nRp?lCaa7cq(L%U42PAP*b-|I~`U>G)gwbh8PQ&zdxTM2(`|PS) literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-bold b/usr/share/terminfo/x/xterm-bold new file mode 100644 index 0000000000000000000000000000000000000000..5c29490c88c4981d4fa642a5466547e0503c502b GIT binary patch literal 1592 zcmc&zOKTHR6h8M>uu5%pQIQPDAlzcbN9Rt=v zS`8rhM-B-ivHg#LIcSGdP_F|>I0W4ggEM%RIzH#Xg+XK^9E~AfMVp2s#|wzp;1=^G z#w-L7BC9|ZcF^B}d+>lOH0^PdJwyMz$zPy<+2r;5D|iiW;RAexPw*MOz*qQ&wKh?& zx1)846XGO#dSc?V=xOpsrWG#=M_l2aNii=xWa*X_0cY+a-WLzWBk@GMLH@3#uQC07 zOTI(4?n{~DzsUc*yOHfa(3+SuWsf{Bwd|Kea$HWyxdW~L-AVqgc3r0AvdsUN(}e$c z*9}>fhv66)p314BrP8h{YLyN#VXq)e7@nR&KaECyU)Ka2r561A8QvJ$2-+OlEOa7T z0T_!ls)lbmfbW9)Ty+2d literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-color b/usr/share/terminfo/x/xterm-color new file mode 100644 index 0000000000000000000000000000000000000000..10bf2e1ad47faaceb461175c4e8168f76fe0c3fc GIT binary patch literal 1551 zcmc&zOKVe65T0{XtZ%#UK`u%WQXf$1eYCeF#I{y2HZ3WYf_OJANt>k2P14)+o%9E| zP()D#^>?@sH!fVc>OurTT!;&CAzg?Ijo(ZXN{J$F>?QNfH{Y2%=ggd&kUC54bd;Vb zPcN6I0>2|!$Q6QeUV?IZDnAuulWiiliAJR4#|}i0+4e`#D7DZ@s{ZC_p?>-aok-Je zIz}NngEMgA1&UAC^pQT(SNcXju(nH8t1YmDs#P6_=O?62tM)ptDb09MxvF1s zuBkEQfu)+>@I|=|ysPf32k?(zk40^+__RsiXi{o#z4?RQTysl#_fPM9P@mKnwW+?V zs@kIu=vI9~Z`ImKc1oYq9lA^R?!bAX^*sl4{J-ozu5akQbchTuoDCPva4HfmTH#ax z!A=8WhGz}I$6@TZWyNSer{Iric!RJ3*eGm-4g*b}4A=1b95;i=VQ?YU!13t_ILFqI zB;|}A1WvB5@`{fIH^ZWFiAx2D&4?XwBHgv@VcFVVCnIqg`KAfxS%Rj;+~hUSbOgHu zUBMo~UPh}^5RkZnu$v=JO`xR&x7251fAJY33NLfwK81`l2%kWd;RfMyqVRBpaJj#A zg)z81SQL)YKAM=AoSdFcr?c6anc3M~&iC{ALZMikn+t;Z`BG_NVR3P3X?b~NWp#CJ ztz52D)^Ygro!ChRA-!8N2dl(`_$pFkDA=6`;0mlH TJR9E<55Si0IC2^c7wOY4Ht%2m literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-direct b/usr/share/terminfo/x/xterm-direct new file mode 100644 index 0000000000000000000000000000000000000000..0c472bd51b8f365134895b369ba529a86af54921 GIT binary patch literal 3839 zcmbtW3v66R6}|VpXFH7ugfvtR8%WajMIo)*ec#>9bF##r#7@25#h+lj4J5H0d;Q&b zH?|YoX{iDtqACz`JQvJ)&>`xf z0(~6*C+Gxll4fa%R#cXI=^UM>2jE|zuhTcd-=?SOd-MZ(fnK7QQGT8NK!2vcsoJ$# z6YH+GfIk%b+rYQReyz5PZ)cZ7-oyL2gAZ|m5A)r86#5vf#Is!CMLrAvGkl&OTx<8v zDLukp<0qg!$5Uzo;AL2Ja1ewUQm&jfMiPCGS@2>zgFA$Hh;6({I-(T-yOHAHn*&`+-*8$T9vZE z193dJrq^l%=CFCx95-jpQ|5|!&b;4z$o#7LnE5U9Y4bVrlKG-}*?iUfwfTGVFXo#j zS?jEgRomyVgbPN7hfR zSFB%IzqPJd?>>X8HQuoPX>r5mhUSK=v1`2@*U@%fCw6T+UB10x?|-SAkK_Ffk6%;c zt!v8H&-}keH#L5sF;N_*CfY!WqFu7fjy)RLW!D~^N5C5gbR~-JA@E%=;keeptFCU) zMe7mjf@R%c8b3uijytW26DYL9_UmBe1`;X2a+KJW1P3z!MJmsgfwkpiK4_*4s`8$^&I{*!meuSs%F_>;?`CtnY?o!s$;x~;*K&r zFY?h2whxgWH4E=7CGtp~m+`uels*RQgY_fg1c(%!l)|*ajG&tY=DWlbrvpwXajBk{ z#c(1QS%t7HdA&5c->fr{*b52M@YKMSg9YeBP|a6{qMTgakyI-3(YhmpQ<0v!BV$kz z>0UVlbw|1{!F++BM52yJCD&edR_zvh^f)C(p#8@xr4fwx#3&_FvI}x#XYF#vuHxI; zWB4j|lqe=87TVRwu_JKPXd78jS6PMD?1IOU0ayIiuN4#*F$ZV>}?&kLyK&&K>C7fzBPox#PVVX->zS(Tvv-;SJ^NH9Q>F9)@X)Iyuf2vf2dYB%i$LI-q3NNUOctQPyen!8b z-_R9$gWjYXHSz}D%n81kKf*~);f2)6J>1X3e2gb}ju&{9&++H^OZ*65;K%t%eukgp zOZ*~V=2!VO{vBW8Kk;Aj3i=2Ciw&dESZ}=7*o0TmR%3@j7;O_yo(;5-Zls$q%B{4G zZpK)5(QSAOdX%QU)J6yCE{u8*0k6UPFoOr^A^HktD=$I)4t$<|h!}VJ0{77T(4--^LCHc<*KL-s|RG?!$|3m_NzKF{fFs@)^FDKg;*y zt@kivtGLOeKF-C#d2_^Z+$JGc?Vbw!qK7;7NDv3q7g1q1DHjhe6}eT4?)Hg?H z9`1)^7y;BFi;agPd#_!cu*atDNRsLw1}-;g9skVZU!)i5tE+w+dHPcFH3gbNO({*D zJ_~(Kfu>MXN|Pt&q!am?0!^W&l#m<$cJ+|l_~eNXiTaQ{IbV@QQ=lo-loAScmQZI2 zb(TIJs;4pVm}Zo!;AHiK`ue~9`Hw$ac4 zwdbj=gW5W&eV*DY)ag;KLWNE$^i%&B^;c*pM^hc`o`5e92!sMDK(CmHy(0FC*ehZ$ z#LnIhC_qR+Xh4WSs9pISR3KC!R3KC!)NbjqTYBu49=oN-Zt1b-zyK5=Bp@^(L?G1O zAyI))flz@^flv#5hoJ(Y0-*w-0-^SGOIsjRAXFe!Ak@Kv7%B`Fpbr)x4;G*f79bvT yY3jHGgFXVk47I$!qXXEU+YjvMJ}j6Y0OkgJfc=AQz~R0;&Ce_?QAJ>BhW-spIoR?5 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-direct16 b/usr/share/terminfo/x/xterm-direct16 new file mode 100644 index 0000000000000000000000000000000000000000..778ffdb969392d6189cd2b52ffddf68ffb76147e GIT binary patch literal 3915 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 DAaK>| literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-direct256 b/usr/share/terminfo/x/xterm-direct256 new file mode 100644 index 0000000000000000000000000000000000000000..ea499185387345bca5e2849bf176d956d4a09e46 GIT binary patch literal 3969 zcmbtWYiwLc6+Y+QYbT8egf^-YHV~)uMj@@q-skS-I@!jL#7@25#gAaT4dk(#`0b5% zV>_{(K9m9xRcTRGQADK(6@e%!sA^RZ6^#_3LMtIs3AGZ?B2f@T;!z|}1&HN4Gk2Xd z1p1?v&-a~szL|69&dko75Ahwel|Dd^^XHluYUSCf*3#H)`Do1z!X@?GGCx)uZPCHj zqcf8;v(=Wv)1?+PXc?O>l^4pT79A#H^)CcRp*W3yiNY_?YT7{c>;2tbznjRSX0+Hy zAHle`)5p;=L;I3>j*ss^O@$Kw#$UAvAck+HN@BzMy4?!=(#(0{m zJkMv~-_Pgx;gx>x{G`YDYy2d%r}#O(z(3(v_!s;p|B?UB^|;4s<9)^ljhl__Mynxx zvqrm-GYUq(F=RZA$g?Uc%5%mKj2DcH#)~TQGLTG(Tjm5Z zdC7du{I&Ue^DpMxCRwYkb=C%Jv$fS~wS241>a=>TLF+E7WKCK%Ytg#TI%hp(ec3v1 zebf4`^*!r?^<(R2)~nX*)^DxL*1Lbfl@@PV|FXDgeba`fE3s?6E!WYuUMF^KKmB}r z)2{!~HXp|anqI%A#d!1ebG^6dz0GHv6U7l)MQbThw8!j}asdvq{z1Bn!1IZA9xf`ci5Ban5H zer6Oeb)#gItRdn`*q0t@@lq?`i>Jmsj5O_HiK4_*4!qj+8aez)gk9CuRo$||=&fx| zGPz?nnq$0);+6_LFY?h3wi}UN^%dS3O5~9|FXMF`dHMvbA2xu96ChG_QVP=wGlFgs znC})(oK85Q#HD#&Cc}wbWEH}+CmCWhmRdQetc|fe0*YJa&l^FdU|H2QaN#AcD7or)lQzA zo133sSU7d+^y$ULrKRQNGqNHhuxv{9S2l%>kjE_N_rhduy+~G176}m{wV*3OwW|6l zSP9DPy0UAEt{-=n^+IRt8zF2RA-#LzZmF2lF=sTp$(YezWsC>p`f~A_j?uLMj%qZCyBJdWP>~QVtUzb zvumD`?6L|up^9Z1I(}JDbaT{3x&szU=d;URdZ)W{r)nJrfrkb=?2>*~&3D*~ZV)Wn zTdzd*6Mi)ETY2YD{Ob(GN&dgF_*ad^f3IU{OqLo2z7Y2eW(-R*MP#Dl>!b7ZhRIR` z;{OJ^5%rvnYOaksP|Fo)gih1F^m+OsJxY($6Z9lKjf(98Dz=}}&*_)+8@fzy(c4s~ zW?swdIl;H^$2iF;RAgP;%L6>Zhk2A|c#fC(EPsK&#ELg1!LVtx1sj* zC{4Slo%Ye481)dw{TV9JI8|s4)#rWqf(Pjl`U<{QDo`kDewp{A53 zPtIj0@-+pTLQN?lH$E%$klgsBiw~v7kUTlhkwsIWDb$n_3U!uHX9;zdP-h8smOwWN zbdx|g33QWSx2S?1cU~J z2!z_5&p`!31wsWv1w!qSH}=RId*qEh^2Q!{WAENUC_qR+Xh4WSsC~nt0-*w-0-*w- z7WxlB1wsWv1wsWv?eCGkK&U{dK&U{dLj^H37%D&?DnK48KpiSTJnYiM5eEkSDEtc4 o%AU?nU`K8bu(RiYV15vo8|noP47CGC`tvk9wXi@{frTmh54{un%K!iX literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-hp b/usr/share/terminfo/x/xterm-hp new file mode 100644 index 0000000000000000000000000000000000000000..f84bfe0a4bdb6ae1109cd7816685fadd1b2eb99e GIT binary patch literal 2586 zcmcImZHSar6h8O8W2=1-6=nKjZrNLYV9xtBv*W9d>#n-l4r8v?>Y%yq&N{QRvpc&p zyF2?Ok|8M61|bF#B@vMz{V=E?ihe{;P|%-*B0?k*B7a0b`ZYc0yfd4cK~W8J&V9~v z&pG$L_uPBAOVuiRgzltQ)OV3;B|BPNn=8!-Xr9Pda?QCClg<5OL%o&!@KAFhJ6R@D z^5+IXG=s*US;jkQA>B{4oBS5iW_U#C7I-Y72QY)x^cXx7w1YYk_cZWc>W3bnA*#}h zWI0OD(FuA1_%(Wi&Y^vq-l6yDL;93Hr>|gNrYm%neiiRptx1JLFG0HuvK;ad#Davs zm1>Q$m8arrz1pZYt2VVwb*eP_cR}{3Zk4I~9#B0hKOfhK58DwnrH-NRxSCThtF!8y zx}ZK#pQta?*Y$|+)n#=>{j3aQfx$70jirWVtTa{|YmJj&o)?yT=8Tt&)5aO&RbgI- zz9{Hhax2Dcz;_ z>SuIT7xajp(6joOKB4FIDSbwt)o<$a`tQ%`f`0EGc-Lwl>Cg0+`jY-(KI*FWBiD~N zeS^)tM{mMiAJwpqM^68R?^|{LeB|95JU+g`ZshuR?ZwD95i_%on&=KPGgjUz*;Zd* zl^m;Y6oh*is>94UJJ3D>;kNFz{SO!hbkMD!Iv`2MAH-1vu$@6Mb1>Qo&n1^EERMmVn&ALmXrim`?r*d^0AB^CY5ShK``_tFAfUMWLkIXn% zH$_&`DkZE6YG!4z+E!p@qRhptN?=<7Lm$uyp#$iJ(6&mhH3K^y+8&@E!Z=`y6`*b% zw1~_!7Bf8w!P2I&)af!EJlNCI-+%aUK0h!}C=3o3i$g=h!==*5$mnRfT&awWjgL=E zRI8JdQ&ZE^Gc&WZM^FpwYbr1RJvA)Fm66;H>FR?L+jY(`w zVq+3(^Jz@R61;CwB%Im4U4XG6rmaj6wH?>6el9MHn+UuF9}btRWJ~!sS{2XA zisjB)uwr$~6U(k!F|pjx>XTAsy#FMN%M)@$<7;s0>pKpIi$70@Kz1}U8)Wu;M{$@Z zJfnuE5OBx!1$V4Xkqo>H?!#-KS@FxFiSEH0Vl_o+J?*0dbO^5keiMw+I8D(JdX|pU zNqUh^Axh&tv50QRYvyjc7f~iHrxo-lt)X?~Q$Ve>ol?|Adyxn0yWh5*CT<*=Zy7k_ z;_le**9n=I&`vY9bw(yD2)95q7C^~Sny*aG$_`oqHf$Awt0s+$CXI`S_i?%a;XOSJ zLDAC#5G+MnE-5Lqs13ZHuH5PKH@lotoWGQnEh2wwH+Ao(woz&;(^i*KW$MaOSDCs~ zROoT2aL9(ZROkgR`HsOkRVuTp7U_4+ C%;;1A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-kitty b/usr/share/terminfo/x/xterm-kitty new file mode 100644 index 0000000000000000000000000000000000000000..d8eaab6e96e9c3460b98635928bd2dedb62cdb00 GIT binary patch literal 3711 zcmaJ@YiwLc6+Y+QYmyd~Hi#-|w{0qwYtbaO?|XN9(`;j}9d8qRw|*o}Hm0ew>)7!l zj(45dwVeP_RYX8kYJcMS&tM-q8IJ2&%*k_)$~`WZYlF4XYPMRf z(7M~|w0f*TYuKt98l_UuJ>*>15bBbeRP{?tKAWu%y1-wLJD zvQ|B0=j@rRUB}ehRm`Iur^=4_BD)^Db}Xg`Gtj1M&-nHd@@bt9V20XE!_3$*mZ6)j zQ7bAJDsA4pWlKv-YpdfNIPky&qoaoojg5_uA3i)WF*!LkH9dXg$jr>qqqDQMTD?9u zckI~li6CKs8qAIloZRCj4o%d+ZJ zYol}Fs#7M4Y;0XEl3H!lXu5?t*=c$45dn~pVS63%KyaOFpE&3?jx zW;gbAa6bvIrVQRBxXz|y&6$L=nh{*jFv=&>qB%&)#eohUB*FDc$Ss3?ic6@1Q&^6s z0Xe%IJFe#kVU*5fhq0T>lKgBOWU=LjT_?bi9u8u4AmZ6WBX_AY;DzC`y$NT*ahzql z&GuTop*GpXi&s#B%PVp_m3_HmJca7S;%vC~VrJRiYS(?$uw7LyH&VXrijHGwSADFj z?w&d&WjR`_)q~4acb%02s($dk`gns773mwa(_;JxXYS*8k=T@>9Cgu7x{tn0Ptr5= zJe|WErT=NUfEC-@=$ zB0tJc^4Iw}yb8|oi~KUb!msh`e4gLn3;YiMk4@uRW1X?V*l08xEk1h?K0)j0X1bMbr#tX=x|6n$Pg&YZ+bK^w@P;bUZrV>HG)7Z2 zOULnk`Yb&}U%*%%BY8VLL*G;*`Z2wPG5topn*M@O{hcn*+Zb1an)su57p>=8F|s?k zjYGVOw(|~*tsn29`?<;!e1z+G@tojO{CWNoM))|N!3eR-JjYR=4rSoR8FpPy_Lb|Y zm8*#zCN?~tT~iywbL6{$Z-RUj%G+dTdbb}1hMBuOY(y+`6ox)_MVnpGc`sBsy$zc$ zd9huQ(>o+kMJuxF)b@~&rMs1>+ui0!BROnt-D@%Ap2T^Rd(n*pO`)bpQ(DN^N6?Se znMH83p9nAB28&czP@<_O`)bpQ(BWRw=%kM~QTlNJoiult@Pjb&*gP33ZWB7YSDzk}m`r(iCcn zG^I7kmmNiXO@XFRQ=};^R6r^sd2&^igOxoYI{~jOpl_>1_OGa*V*eZs9HgNx8l9V* zoEWK4d!E`msbiKpYSdGsQYV%Asc$#+SMjgUO&+BFskzB{>aS7%!ZfP((P)K6t2EKx zxx-f&C=3-w3ez-^?|_)^fR^uol<$C&?+~F^l8C(`_KMgmVlTwb-aHf_Bp@^(L?G1e zVh>axR3KC!R3OxXv{;Z93({giS}aJ5ySfIT03iXP0U-jR_6~^(gbIWTgbIXO>e~$! z2o(qw2o(smuOM}SP=Qc^P=QbfOOjAvumpXu1bMIob+80+zJPg{FAfgS?9}``)v9%T MZAKCvrJ6YZ4=IGdKFP10tPbec9voAd{` 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 F{{mF`+bsY9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-noapp b/usr/share/terminfo/x/xterm-noapp new file mode 100644 index 0000000000000000000000000000000000000000..64d2f801c788e6b414a63fef4304c40e207b1f7a GIT binary patch literal 3774 zcmb_eYit}>6+UNXoF-8l)Tl(Ei&Ce`q)??{=efHY$Bti#oqD}XY^TPnpgOh_zt-OD z+K!#rX+eRKRBc635upU3wo-WoL8bDnprTZuAXT)8s;VL?B~n!RN2CHprBq$MbMNfZ zh9Zz)wdecJJ>R)!?#!LJ_ukAdZKn^>Ilk1eI5$=<-Z3*fTq-Rqzwy|_+<4>2e7Q1P zZk!rhsx(f_G|tSHi^J26#o5s@B36GPI10t7{Ur)NPitv2RX^ajmUbh-qBY3)2yMYg zZl|5d%+NmSp*-CM|5J1rI7u_KNXx3qy>yCB)4QnmAbp9xg4j8FjGm}9P^vtzs3IF!Nj#8S-h4v@J8OmH*+Iz=N;^Fnwy}v!a8{$=eUoD;1BZ{ zkJtOv`fHxzIbMNwFQ4Xz`B8p?&+`xY7yKK3G4Amy|B)~A>--K^RpdtFCgT?4R%4rS zn{mphR_}x9-)Z9koMzF*7vO+St@Uv?&p1-DDtM$L}#fH}!5``hUj&7ht!Je>7jy)RLCD$G;Bj6nYbR`Pz zKJc9|;W%sWKV99Si`FC51#5AGX?%)s9CunZ$I)nqwd!Ex1`^4`vXuB(5*!o(j({uR zi=GxQRR>=@HNru3Y7L_F_uJOYYCng`4|qY8Ic|} zLhmG8l*-9iTnDY(Ct>?xeTX=L=uS#uT46@eO$v62Cr$?}6i21YjXIHwszP$hux3i^ zg4g0CJzoZ-9Nc6le05JU0Oe$BjucRl-8Dysq#`{vN3N_Qa#7{<*BrU<1k4u*CP>r~ zNpkHI&We49J$i@|Bhdck*`yJSXL*zoDVf(S*)4V{W6xo>>@hrfJ4zIi5)19Q$gv}F z1GuhsUAVq>9lPY&%V?)`+lL!yHw8CsN0`GdT8Bq|47LQDhaH7g=*H!O|>q~v~lKBGRZ4tr?Bc$J%xLYdb zbj%seZZc-%OD#7Zkn6{JQJ`xFx^|#z2XXEAjf^y>W6o$sZ54N&n7x>N%}x~R+M%u; z>e^vkTfM_hD$<;eIinf1RUEZ7dolZ(oygO*Jzd+=wY|8udU~j>IURFGGivLniz4we z(d@^0k*{m}y0))s%Zk(zX5@3i>xy-2RKnqmgzZ9p`| z=nM1^eVNYD6Z9Q=3MZgv>DTlE{edphWm=^-=q;+!8oq&V;soEyALk^exS2b-N1bVg zah{pw1)N+?@%=croaJxull(n?nxEn4_yW!@ukdSpg;)71|B3&~Z}Yos7;B96#s*`f zvB~(Tu@%EKafVw**W)C)kv@#mUIM4Nt+b79qaEZ>ND)qY9n_7x>7zk9NFy{svoud9 zF#h}K0i5H`;yxdzZ_;_(!;k6b^eehRzoVCN7nkUDx=Mecw{ezS!`I`Swwbr^Hol#A zvWIipE^gz!e5X32-NgkS<|AC>3NP_J{5d|u4>2CHn@sBETO6z}2OY<~PRLa=RDoac zuuC2c;((e76?T)dysH zU!WK14XU>1czWycH3gbNO({*DUi*Aafu>MXN|Pt+q7(U=0!^W&l#m;Lt9nRoywb#r zLTyN%tf#1=DbN&ZN(qI!N~o)Zx=N_4gt|(gQv#h5=#)UG1oaEa8jTBS3N(e9Qkv9W zj1@+9Mr3LVG=-W{pxh#C4z>U*!?1hgreLy@%)+q1~ba4a@CTeph@;kPo1Ia zCn>czV%N*sV@1qm>mUvGQ(FhMby9no+AGxQQMN+)PRjRD-x&2(XfR7t9qpcgFAxZX z0x3YRn25b1_KMgmVlTwb-VP{0NI+;nh(M@axhzy5R3KC!R3OxDxnj3mv0JX#Em!Q8 zEB5T^hXRBIga(8NgxWhODiA6VDiA6VYJUF#s6ePds6ePdsQbI6FAypaDiA6V>Ofu$ z2?KfP19`{;d8h+!CXHuJJ18{8)yR#?axuU MxVT6afyE;I0~n{$?EnA( literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-old b/usr/share/terminfo/x/xterm-old new file mode 100644 index 0000000000000000000000000000000000000000..64473e4291fddc05b8f6b1d50d691da36b7136ea GIT binary patch literal 1493 zcmc&zOKTHR6h3#VSl@KvgA7U#QdFpP?xdNP5ZfBT*as;UH_oP^Nt3jhJSOip=?`$B zh@uGU?{Fb*T)1-8g$RPU5EtS?T!;%9zk8BW${^y#UUI(ko$sD|?!D(u0wPGmG(b;9 zTx-=bt}{|9q&ul%Enlf;f~*7^8Mm4*6^R7@lmlT@Z1)fgG)Sk(^N2LsM<*yi=dgo^ zagm}F1Dob34!j1Nr6k8UfH&zD^JT^yIpl&hsZCw@+jN)i^NgzYsL!6mzv%Oq@UQyZ z^Ip>%+M;*#fj-d}`bIzK7v=_p=MBP+h#_$jUX6e_D~9{Lr}*)bu*4MSTo;SN221-^ zIIP?O-V+bRL-@zAC#?D_KJ)2YKBc$n?H_c1%^l_aKdt#FK8vs7yZ9+Qv0po^4QZ#e zomzXz&S>Yg5p8TwPBZbJca3RN+5tLBx*f`g%0?(14V7gm?LsiKfP`+#8TeV4^1HGU zbV#M(@2A^w*feYbHc!WZhC{lg+mm4{hbXMTg4BbsL&w2YEN3{WppPR67y7E2aWG-! zl&D`;rCh{D)QpCskzV#3Z*6Xpp1gv5!vM1-qahVH)SPXE8OInc#&O08g>sY;ki3d8 zq9T==#FdijN|OfmXP?t!@Z2YLPbTx*M4f<@xox7#v7(y8M3wv7tvbdZ*o zQmK`dY&M@?U0qu%6db2mES1XTO2u`n)mp7yZ#0_CR;%4!U*Fj1bh_P59R9*6cH&0x y-6i)y_Bi)J@;xQ@L2@5VPB*!4Cg+=+k0-}hkzPc>ND+W1kjwDOa7H|sL%#ub-9`2Q literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-p370 b/usr/share/terminfo/x/xterm-p370 new file mode 100644 index 0000000000000000000000000000000000000000..915c17a4caa3ad1a1edf16debe59ccaacff4cdf7 GIT binary patch literal 3798 zcmb_e32aRfDJ?Qjkhh3AL4gNJSJuL2V=oWm8olhI8NhGi^dq zCB$g%IrrUr-+k+U@4cHh(@petx{o(BFD;DC&+MppQF=wGTPni~BNJP0gn@|FUkHjq zQR;uOLNC#3YN6Vj{8rO#2(YLb5!cc6XmdN=ipVVOrEV(GozOo_2Z4uZmX>HmW%($b zqSN#_=x6C$^d0c`=n?t>{fM5Rr|4OfU!a%hPxN;cU8}8P-SlX=K2jP2|AL9%BBtOf~ z@eBM%{s-5R8mo*LmG>+{xEt+Unx*7vRR)&=XQ*3;H6tzTQex2{-kJ%ZOGUa|gZ zanq)zmZrLGYtwi`*S3eQDU0>oo7n0ZuIBSiPyUzK=Mww#O)p&&@z-n0S7-cROKY3g zH>b)&w2IbKs%%f%6~`Wp?TTxU&coo113FV>cQ5!3h;R~h`|GN%&`E1y>V)LnU>cty z6vv%b#R(MJA-lCPb_21LAO%X@oCXIo07oF_r2Xs!8g=7zoL+#%6|*ljGNMHd@I_O7 z9z>cpkyKf1DhHZ&y?PFR8fI5jbyc-oFtM%GNvA)s3*qQ*s=T!V&5M21gY1H(TaCgy zNvR@|7p1?hBc%^PdLezVH~}nWCsLSEm=$!>z+$IpqU523VwdouOokJ?$SQCD@rNU6-lKmx78KtoU(M+73qVrNb^eRuPf60B*Yg8 zCP};_66D&;&Ix;mJ$g5#M&SF8S<1ke?1@oIMY0PDWasQk)?UEc+GAK1J5H6;Vhins z*s)_#1E{W6U8ufR9lPS$D=0_0>_ZK-8bQt2G1j+})?mhtLXJTeA%`JVI&ffk_~60u z@yW?Uho+{cr)OqnXXoZBmBWYU=d0C)g~i1qM~)s{S~_;@`0?fCm6a1GPRfc5L2{Ao zuUv$UP{b@3_dsNBy;xRH76}$1wV(~7T2);N8b+C2S9VR=^^?l7UZ{+HBZRFZq<2qJ zElN0(a8|RMP8jhjW6~klPvYW0=MHr4K<5sU+{xaIHD?meYDR8lcb$a2gni9U9O~Sm z&K>I9VUk{my92s`Zs-yTyX?}Uv~n3Q}~a*|T0N}eu_s!dz=|1ViQ>5!`sqro|ue0x=x>xNi; z+hS=|y_Zv6s`<(;T0K%35RL;M;h38lGVqq_p|8_rQ=VdLXd~WKHeOV%)Q=ZgS4MUXp-h= zk(SZ_Pta%SOLPX~{3bm>4`B@F@$&l#U81My7Z}BF=|y^({zk9i<=M>Zcq6y)^}LO@ z^R4W0hIeus-_Cb%5#za&%NWr(&)|J`j6cHn@Td4*#w5Gxv_8H?!TGY^aoklxu3Dig z^sDfu>MXq{-7~pRXy<6l#hzd2%i~v9Br66l#iu+~ix;U2>C? zCOH)9UGn5SMHWqgrchHP6zVLY&JyY@q0SQOEP)OQbV#5>0v!@G8j>>_4QUEAg_C}@>$*HbU9 z#=A@1jkxs+_Sg*8a`zw&_ETG)+B&Fxp4zL_;ZdPVr4B0fQQsK#RcWw5Q~7pJz!wMv zLV*a-BO=ZoarTI_N1Q!ycJ$=o0m21@4+tj^-p*nHULd?cc!BT&;q8(ZyQIY~X|YRM z?2;C{_w>U9gbN5C5KbVxJ%i!}!V82K2rm%cQtv)^f$#$11;Pu2x3^2`0^tS13xpR4 z??6ce0RtuY2TE`cl;9mG!8z>G)ZGpQ{t@UEcq_Z}d0=~CH!$C|Pq5ezEDUr5`v%&8 RL%l_spIKU>s=(3={To7U%4Prn literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-p371 b/usr/share/terminfo/x/xterm-p371 new file mode 100644 index 0000000000000000000000000000000000000000..107928077c5aeef6999dacbf9eeb9e2756a4ea55 GIT binary patch literal 3832 zcmb_e4QyOT5uSPP`P!rn2oq4swN(=QfHXAR`@hpm;>16Ro!EDW9jA`3MsaM%cI>my zK09$@J5WJOR8&PRv{EI4kV*l8iU28sR#2!4LR7ROLP4oi{wpW}6@~sswa+a04u`)D2JihVWFc7i&6N3eW zYDTR~u}Ig_23mcC-?g+06)Z}j#tn2c`n-jfhrUNo(*?SO@@4uH{gwU>Z5^+!z8xYz8@wgaw}LZ?zPjpj zmUnUs@8Nx1WPQo{n)Rslg!Mz~g7vKRE9>{xOV%sas+DTEuHnsRaHU3L z!%YpF8-j*hy;V!YnYym)J@dMcwkuJu)}C#+{9o$+Be7FzZR+Y4tE=l@SN?bJ z|61Cb+LlU}2Iv}EN9mG1VOJb`B(^KAJu(M_HwNfPm)w2e{Se`#*4`_sZqPw%Vd{W1 zyTKGbMJSFtrHbPyv_f`kW9$ZEDMGp-nWoc}eqRP!PzE>x%}&P8jiYNf&cvB{SX?pt z(k?4nR0m%)HS&IhX%R`6#HM0k0IpYy;ZMQrs-~`L)*OsCZFe%659~yBj9Lb>0^C$V z*^7O&hU|o;OU=l`NDJtqAY*qODSZ&q1L=ju31BHXk;1IPoS>Tl7CJ-|r433bcBx*F zg>hmRQH8KX1-(qV-)3h#y#p>x##6&r3YMWAMm1|0ic-33iiA>@T{T4prz~AHMaG~k z(!Ej+)D-D{0^$n<6C~bYspQ&A&We4jJ#vK7!|?sbDrI3z&c_I)BRLV>WH;NDoIQ^n zwnwoyc8o<9TWHV6jvb2{Ky|h1LiM%k*cH!SMmf@DA8Mf02x``jvCAE_2A#T1r?GlX zEA{RVV;N6CPC^zSvydtsK0GvZ^yt{w#Kf^6>rzlR z%96WsluE9jG?q<7V;m+SoF^fDq>^S)!r6p#n%zvosIMX>19JVOUL5GyfsP&M*g+CI zIk2(jY{EIsh^_3dldzYtui1%19Xr&qLmfLzVyh$WM6u>?l(R45lCMfmQVLbc)1?u0 zl1u*oC5k5laus4WxI&W;vI=v}5UUSfEZf!S<=U5KzOsu}tEmjAju!#du{LEQ1KC!d zK0}vG$=KFVBeE_VIoEb-MaEU60Xju@&>3V`570UK9I~sg)1&lV`T;#d7wI|r4PB;} z=oMO}6tCm;oaW8Eg)durz{?&Sd5c7P9zDSQ?4&S85ksUroKc=5z z7Qdz!=tcSqy@uR0#n*EqZ{VA`iErU;>>(4}flP2O@8<&Ma~qd1qcJXXl}{oIyc1dA zS;i{6nT)>FMZpC#=s4~*Lay4PD)f?vS9dT-3~DQs+0DrFgQrE_mXf=17N~YhX?P_v zVGK}LZT)DD+oMxzY(G=-WX zO`cqgPV8$6G=-WXAvgJ0^^n};s!48z+K@cCP!UB_pefW8357aJsH22BN~oiRI!d6c z1iDI~s|31AQ13`CX>_D1&=hKlG|5|yDxM}^Q=lo-6oCqh5M(fgOVj&ZPe0Et#i~`rFM_H zt5j^KVlVZMQg4;|yJ@nm)f4aq0)bE<0^~)+nHOhXoOyBP;cU;h!2^T~2p9JFK?Amhx9w1ym_<(Q%;m!Ap7YHv9ULd?cc#Ay; z;RV7Agck@e5Z<0nX$yoG2rm#`AiRA=5me|a!rxbfyRQguUlGnBmnM%m5cr3oSKzJe nZfgU!cJBtZbsiKf8~}Frbpd<(T7UyR1)3`_E>cxsu}uF0A6d_d literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-pcolor b/usr/share/terminfo/x/xterm-pcolor new file mode 100644 index 0000000000000000000000000000000000000000..af19a92e24902110f5e241cf01abf561bfdf5e6b GIT binary patch literal 1658 zcmc&!Noy2Q5U%%7;(`etL`i#Sgcc1b)34i^BuyN$fFTPLOc10EWXvo*Nzam*o@BCO zj*^2OJw$LJ;)4IggLv`a$&)8f9z+q^s_F^E3?c#1$JAF})vLFC?@f1#0XPpw;GuXX z8$q^Oyi}Pj`{n8y2l`SW@N`b-^;$Ng=gL*xE95;NEvV_~Qbw-@>7ZWI{X!`VAovFY zeFW(DH!*?hoq@2~E+7Mta0pI8C!E9GP)8Ry(1)y_qd~-LXrqvVN%S|-T$n`+L!WU0 zmSGdwUD$$q=(pi9>~PNu#8=G1@D2L6P5uu3`z8;=5AYE_!Dsja-ynp;;%R-6XCXX_$I3PyF6xU3PoG2q}w2au~%oD^N@m#zVuf?36yYk=VcjT75FCYAu-E9Bk zRUgTxvJFmv<{AZ~Vj3C8s3;>-#e|hd7}i`hf_@Z@{4Z6*aEwaukEpqWX#HptXyc$w z$DB53M{YW{RRk@exk)?WVZtUzIF^lB@+NuPu~iW|kWr*YxZ2mcsmpI>i_k_4yAmFy zwW~C16=Tz}9NURU^<%spYXh{@0M?r(GFLI0invLAu4yw~VN5V~GxiXw7$ZVz2*Wr< zRGPwLrs$YS6W3?&X?^HfJ32d)@m)eY;LO-Aq3Jk7f-#}#{&Xr7B0*x0gOM~UJx0)O zWIGH;b7K_8jldzD4TmCy5$PF4CPt)k6j@PZ8xHC`3`hB*U}h$r&gJs?LSb%he%|+s z#ZswUu2dEls?}O82Vt<~mLoFCpNKs#)}8s3pFDB7gq{e<WqX!04lkgMJqifp$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-r5 b/usr/share/terminfo/x/xterm-r5 new file mode 100644 index 0000000000000000000000000000000000000000..64449b815ebf3be7b31a14224eb3fd368e581758 GIT binary patch literal 1301 zcmc(eKWG$D5XQezK_ggL2y)wm$XbYk`|mcg>k_y>g$ z5GxBC3o9!tD=RAz)FxG`G&b6#uuu>YIlr0PpmJUn(B$-EP){&8bNl|a|&X;N92dMahtsdioU z+D^rM%Ne7$QRrVWsBeLGWfAS!V0sI*u0?bZ2CQ4r%1MxfNtBe^oCmEMw>ShR%XP9k zJ!ce7tdq2Bs(N-QiQU8{`oyq@!LMjYjC#>B(Q^~dv4$buY!mTqI=(Sq7~g4ghI{2j M3j6Ud(W}+*6AIYP2><{9 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-r6 b/usr/share/terminfo/x/xterm-r6 new file mode 100644 index 0000000000000000000000000000000000000000..16fd56e94d5c3d10cc442c7df5319399fedb0df8 GIT binary patch literal 1491 zcmc&zOKTHR6h3#VSl@KvgAA1-q^MBo%%qu?5ZfBT*as;QL7YuX(Lw5S6zr8hzoHcF2senknuYwDWwb|ZtNxJJKy>4x#!+{?j)posh_&& zsY+<|)dkNT@S;s2eK!pw9qp?wc$IvqNTlS)4n&aI?xARgy6H6eK9NTI=mdr6Eb99h z7br$?uyKhJz^kxHN=bYjc!O>UpBK!LOCDH_8q|WnO?T z|C-*=7QLen^ohREH~K-pFxRDgzZ-T$^{A8ZJVNS>>hJKj62yzjR%4QLO{J9smI@Q-0nL=9Ga7SOi>N_*AYKj^`lJIeciTJuqTR$tY3^;7w3zjj#b(N1YQ zwf2(rYUi{8ZD>zUGxDEzjca4t0Xj;$6V8XrMmQ4-m(6g-gJ5L=N!>9g;3r}1cV#8% z5U1epr#lJQIBW(sO~-(SOS-K)qY*oYD8gVvYD2`O^y9hGNXOxQUV z^-EmJLu|yXSR@v0XHUu2)+Xtx%g8qjFvk=$Oy&m9IYvZqNYEA>793$T2L%DCD+r?; zacT-zO7WFO4eT#Ir^n%?Pkc`y)7ykkAj;G>;c}vIbA)iYzugLLu(`1)oTP&^J3BYG zxR}l6^Gi$1%Y}mL7K^1)xxBLCd6mlQ>e^bhTC3ITjmG-=#zwQ*YHi~1=LfNqG(zrf wN*~NNmp+(sPgD9}N*^pqx1?{Dw{~r}uI;w& z9}+^0qCsLLgcu_UF-CdN7+=(AOf=!am>3^?)dwEbn5c;wA57}+-2QVw+!ckb_; z@0@$jJ@?$Ny;E$Y`{`zSS$yOxmy(5Cb8&cLL9xJ0x|9lZwYh?l^cAP(GGa{=q7lqrF*dcW_lQ&QQAwLh&u${MK))#ON~K9umtKqU?iyc*aea+f zD!O<;Gz&w7L{w}OtzwthBjRE|p7#KKVn7Vle3K$ACL3`}w=^qGh-dNav^Xa&h}Xs2 z;(hUn_)L5$zN$rhBfb|uiC@JEZI#Bc>$H2dW-X|hT1a~Vmb1#rPtIvCX|HG(wbzv8 z66Dv4UD3X4_*5!CUc-OZe!E8FIsTu|?;1&;Tqak_TjcF>jl4?+Uw*H2Bf ziu|6Q*7Js*aP+*XCkilFqYxc_&)kdgF@VRK*Y2yd8qh&2VCn#3W+;oR2x6F7rKX^? z0j*V|V}{tW4~Ub0QxIb)2Vt;?89_Um!lI@Vbb=*VOg7sb(ZVd!5H>TFb1$aZ$?$t@ zQ*&Tx)2h#5XJIx~sHwtYq11-0MliT#JKT}4-&>ytvm6_7z;;+Vv5O}$VrEX%I|w`u zxBw@=A2@ZhU-VBA=g}EEI~xQfX>xdU|H2 zT%Mhso133sSXf*G=R-`WdIxU<^VoL4>$}A07rl)fI(m$ zF!;K~!ckrW)yJhwaHoZNt(fjPLBq7{P&m>O9pF?MR@AYhoR7ujH`KXq(@VCVRGPJ@ zLkrh5TWLm33oFg4Y6*1)p8cQ9VsS#IlGqKdb*+`SK6QhmI+QKj`A96Ka-7{@bysD8 zKVDGqM{#nb;kSP^e(wW<|2s6%ZTOe4nS%5P_0thLir;sIzwj> zCGn48IjzLMm0Rf!MEPkQ-A5bgLE1tga;TMdQ=Gb}5A&eF1BPKX@nEWii{PGxH{w93 zW>9%4vl-w%P{}HW`yC8B5bBaNjwYoiv$}&$L}$3@78jl3qI+C)sEZDBu|XG|<>J&` zbe)T$xZGu?I%g%eazQQi)^5DJ)&0ZGitEW7=5Ot#-fn6uP+O69Srji)SCYDl)ElSF zkV%=N24GQU7(5>WTHD(p+v2T|?RyTgbh{zrJ)MwUJv$-$54cpwmCICQQO?mHt<%$U literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-sun b/usr/share/terminfo/x/xterm-sun new file mode 100644 index 0000000000000000000000000000000000000000..4001b51dcc361c4ea19db571dd8fb17fae203d37 GIT binary patch literal 2718 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 CXV$y` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-vt220 b/usr/share/terminfo/x/xterm-vt220 new file mode 100644 index 0000000000000000000000000000000000000000..ccf5c54449b608cb2bbcfefc7bb2659b53d05530 GIT binary patch literal 2410 zcmcImO>7%Q6n?X7kp{H_6;ZXgrJ;06RA{?9yKBeUHcpy^h7ikXlZG_gpytQz4QozLnV|0NPv()s5jID5(h3^IdJI-34}NxWWG0R8&IlBNFnlj^Sy80 zyqSIP?M|K&C+HMCM(>GOq+H4ra%WabN?Ds4H)V3m*|E~>!gSNnAXp-ye>?za&7k&U z7Pz1G(P64Q;BOzb!y!VCz~cx#jh#=^S$HO>m-?umUID&FQ_yp?KxNw0QC_2)^cKAf z`~lse9gLsQ=kz7rrF--(eGmI5x=%mTZ`!+3X%OMoM=&0%;^P=kR&k}$EM5>w#6+uT z6J4TL^ot>JU5sIV3Nj}aMXBmr7MtQ`ecitw=^b%fypOpL#g6z)d@a5a--#c@kK(@g zrMlt|Q4tZN(Ku!_8N5~*p3!b}8r?>ZaR}&D@3lRiodHKkGh~ zifOWM_}5_W|A$p$_kMibJY*gvT#a!wa%vBvJ$x^owIWU=8jMf_9iV6+XJy`&lfKL=IavVV zOhffV1J#T1WeAT|uS*LsArNwlI1* zD4SK%w%o)FHdVgmTO}}xX_r^DFpAfe%SfMj7-255L<8n@3~a5OS`0S}TIr=qFH3qe zC(qlKb*>HWIBzs~CJ*HJF4jTX!1U>-aJDI$M({MBSJ`Y`hFpORfU!L=fgRVnMe77> zWofJ-RJsdXj4k$0BOB>38{t+-dnS4TlQ_Af&#D2Qxf`T@MBZJ4R1M%vA=6$1d>-x7 zR|CAOW;p#C4AuZ|KMQeLd9%c`6YQkqhP@@v$jNbvPGD|VVp>2}+hCHSaV~s{WK!l6 zvV?NV3<@FrXkalHlO^AlK0^;sg-`*yA+%-Qk(;pNq3r^CA&djINFOEbp+;nE6|x3d zhAcsfbmPX@*wobY^z7{1-28kto69XMEH38rOG|}9u~;fCFR!euu9nMdYwPP98=IS3 zTiaZN5lAx5EtQO;_G!+t%XQ)8Dz12-*bbDguF{25y1GhN*Wo@09Hq7PceKCFuL*L4 zw`dX_62umuk}~iuTRE;5i?<|3Ij1a6!gmwgt_~;1)>*$GORmgl%h{5!VpYr4mR+@C z+Hyi`QfDY|_autL2U1#dE*#x6%(*p$eC5c%je7{UY?I&%yMdm--F%uXYNZi+mBw+~ z@?Be?6JhU3w0Jr%&e*S?OYFb)MVb(cjAY7gM)5nl~jgImGW6rr|;AEKp~W zx*bXtX&^%bMH)`g{FtKoaU0^$`~+~`gLHItL3gG)pu1igVx1m@PF?MT9=LiDdgMx) N3b}Hbimb{x`U|5G-^&01 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-vt52 b/usr/share/terminfo/x/xterm-vt52 new file mode 100644 index 0000000000000000000000000000000000000000..25633cf52f5baba44e1646e29a7f69c18930c2e2 GIT binary patch literal 537 zcmaix%Syvw5QUEyP>aQ_IGZdC6^cTGMG&O)Vznw*FDT-|hSHX{Nt&d8()7A;;li!Y z@4j9SiuKA;faQ=@4F(aOhPL)bVpM~+h|Fp)1vfnpH)!B zI=12az%r}vuVMq6q1(b9((DexF2i~lx*+BIM|1vr66^7wn>cYYm&irFfHJ!Zu2`>e zhetf)CEC@a+Kg&Ds_}b^Rr_bZm=F3MtmsPoT)P-yhF83WlXt8k2|A|>&?N$WlFf{q zl2US7uFIwpTTp>xpc1GE%7eW3#9Sl5gI2?_}6+Y*^x7(i-t+kphqqH0PXj3W7`<)qI+o8L&Ww-3?jQdlT9h$W4Zg;o4 zvpe0{ZD-kSMTM9ee=uqS2`UjaM6Ewf4K)}bVniS&l^8LpK||00iHQG(7{>41`(~gO zLt>oF`Mz_{x%b@Pckj89H`6urPWmFRZ>=qi&zE=BoMd@!u{ypo>?F4+(-u`GV)Yk- zqEM8^U#y}RX*IP`{Vjg0=?2uWs1-Ff(N*Yo2VIAn8QM?1Xm>O8Tj&VzD9uuhR#cQb z=uSFKpN4)veT}{W{tlg^AJ8N81U*g9p!@>8M1Q2esoM4WD%M?Z0>3}jH-opvdcD4# zuVt4*{vhw+9Pj5MAK+X05d7niDW2sjpWsu_@8Z+^*=D;-r*toWg}({kxA`G{jGyFZ z_#(f+f8f7!J#MkuSZBP;c(1X;*l9@HtkGfQjiS+S3>jx(`M$D>=ON=^<5A;r;|XPX z8c3$tEpx46(d+f~Z_+oKZEq@R|J&pHRGX`tEq9oXnO3DNa9?cCH~sbcpgCe5GAGPg zbJ1Ke?=(MYe%`##{Hpma^PKrZ^KtVj^XKNT%-@ z>t7bPY;0+3Y1rCZCYrjoow=+m*0XP6Yecw|&$m4JU+P|r?Z0Vx>9QJsxvYF?#Q(Ll zw)KkEL}`Rp(G`>^*;97KvBx62;@V^LFnAMy?nKGm555T^9M`(>4OKVjrnNA2L$Yo# zgHI8P*;P$l)hruKZr$Z1lh^M-b&NMrYOg@^A|LG_dtm8R zv+zz)qJZE98L#U|=|hly$N(%(087b9DNHNO2)apNp<6Uja!^9COZ9>*h7-AnDuiVz z=%vy9W}V5zZn!WFPYqltSb#1V)qG_rO361A38gGIG!z+}vh+3-8H2J&_evRTDAN5D z#1{yrNW7y`$+efAllD$~>^4e_!uKDml!h@r6JwM}$tlQ_owX|&djWfEk7HNtC{ap^ zEwmRR$Bsk|pt@Rhq54{N?22cvpq$cWA8Mf06x6gGVSl@64OZ*~WC^keIR>fHp+koc zA2~8HF*SAc==Ai=Ou0NeJ2zLU96L5YU#%`IEG`~De&R%}wzPEn?aRw6D<@B$k{ua= zWK(j!vMC&d0#>=O4&1D(6NI!c6>G?&FPpknh{&sT_Bet?5wq`G8U$YZ=I<}`{dpfok$5yL{*qYNZXEY`)*Nc1|+t;yu6=l{{SbjQhoF#x?oB!wuUw!r?Qbz?V?WPQ$-q~ zd0L`7=;O$pzCicU1IV4eN9XBL`U(AvenA)MdE`y6(m&{RYT{evY5#-}B4-3jZ0|&ujcT z8%C?K)_8}p(b$Axn#lOp&^lz98|XdA4HL-y+G#6oqie~bkRs%TIqJb|256WL(kM;Q z94*o^eFUTb6n&2F#XKLN2k8u*#S9*yAJbEGfqqH9#vERxSLmiG+6iTLlk(8u5s_D<4pv8{aVTWzZOs zC-*3#XbLoino>fcjuPr9p^g&jD4~uL=qiD(66h*{t`ammlDiolX$mxjno^qNHAWRr zldmbz6lzL=3N;9_lfrSxJVaiNX^6Zaa}ZoCg`*IBc!df=y6P%Xke5ep+m>zi2kcS# z_O`Xhs?$(u?=TGyQb&$Dx~OxWI;+&>QNBvWE-DVtz&H(5X*f^QxlT{O7YGDGffS%m zM4Wx%>=S37IQ!u2>dV0cgbN5C5KbVx-Gw~7KzM=h0^tS1+ao>pNRK_zV~_OMBR%%+ z8-xc47Z5%moIrT{hQ$kn7YHv9ULd^1{sZs=;RV7Agck^Je~+{U!V82K2rm%cp`r*X z3>D!YD#ATfgmHq)$ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-x11hilite b/usr/share/terminfo/x/xterm-x11hilite new file mode 100644 index 0000000000000000000000000000000000000000..1f6fb2e37b29f793129319dd14d6f570f28d65bb GIT binary patch literal 3822 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 VVBbI+aHzLH3p3R!RRpRt^l!$5%KHES literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-xf86-v32 b/usr/share/terminfo/x/xterm-xf86-v32 new file mode 100644 index 0000000000000000000000000000000000000000..ec4c264d4a66f8b4996d13dc059826a5d0c0e7cc GIT binary patch literal 2006 zcmcgtO^91n6h8N6)VA7IUHJD<0{TivXq)$wKVCcOOzjxrv{PE4(dlAhlbNJ>$z(Eb zCP`Geg(9jsr}V_$bJliIi9*lS|O*;i|p{CK6Y?3aRtc6@JfvR$cU zQgLU$9Y0-bmKQqlQ@y32(ikOD@@EAi$V`4iOVJ71Mo&=qH@|Ikn0^b1M(BRTJW0>s zbkEa%#Ac~LQ^-6G{tC?k%aAJhz%Xn9+td;MhTvQD4!utoX@fqdPvH5SuFy5QA!}iH zOY~3lGxV>0UkI(#;86Fe2h}6$arLx%R*k9yDycj*u8v~806DHssbW9&jG9%|VcsDB z&$^|0>P_`7qAscpwF&*%UoyT>SH<&<`d0m*ZmS>F9hKE#cn}i(#`J`q)CGN9JST_# zxAl9%KM?$I=nun>^d(rEfA9=y-AjMErJT$9ioT|A=$ra0eM^6>zti7uDgR!lxx0RQ zi*@hlU$lyCkL`>NYCIM@Gvou`f1@w;_t}hH{$F;y8v8P4%)Cku&`vUD%$nJ<%(7>; zY_r^k!Z$j=6mNXU$)FyRpStBxf?e_$gu(8Q;3I;CS+8FF=E6d&wYb=BFD(VZ^76_`r_=5BdgsrtuCA@E zuV3JvVN`+`-`)vhG=W-2A(Ie3v`j{ZVas6bh|6GXX}T?gv1KrhggY`wN8+7mko*{< zC3woqCqYw9-qZ5zv(PL~)^oG`1UgZZR;_jOkQumUg7%g5T5tkLK{IM!GWKZkdatuky5<-HftM`xJe;cX{rPosRmzSYA1HRb{xlv zoxc_d^#Vvp2sl(~IDkY?2r57baX=h6aRP)mAt6;ry~Cjgw0tvbyMRDdBw*!l=9_sl z?`P(%_kMMP9;OkxtUir(+vQe$w7Zn@M>mYw5i`!dYNHs$%k}l3*j{PHkL0IY<#Ni8 zn`0(^rrId2bmFHs*V^U!Q6eQjRv;po$uqDN&C?;em%_h!4$*N0AE4V1aUVT^y**0D z5SgYKnnm6j@aJd|vIJBpfDFSXWQ#h&Ule(fUZ&UR4Z2Kk)4T9|NT1N>^rei2;di2c zr5n({^?V_;QvEF*REO1wx?A0&EcKvzM2#w=(rO&zQ^2%3spfmJ3o5S`2YLPcKkJHG zRa@#MM7^rsRD00x{UzfAbyYmys_)fL>YDmlU003{Ll1}^Uq7xV^pu_!&&=H~ddea?Gb z|Dtbb6+0N~&oLZZ81TODztNX^>+Hp@{4XnBjeQ)m3eVH+bSGH_yJ|NbyOgn;u3c)u zVU{6sR>7TtJ_)eyMLm6!MhQ6@f-47P-LU|#qL2#I31AYK2Tsv2q*Es=iE%H<;~tA7 zT#@jY$xib4ld%eQ7VeCM2UZG(7qCY%T#3$(RUUf6NhBVdKol0|$y>;Tm8?KG8I$oc ze!!_#%9=p>abOm^yg=666u_Hvo%3MN0M7!a;c>>`DL6@yDUoTGZUS;H$BfC7AU^v! zd=BTGnK$gln6>A)}oQc;Fa;i_TdgS3P$&|8%|yk|Oo` zR6;m+hL=m&S)Qcn+dFnUV|J#_VQITPY?nvu3|Tokj1zW% zO<)~Z1=eVBu~=MMT3)VJ&z-B)f}mb+G*(uc&DGUbYi+IFUSHqX=ybZ>&CRW??d_eN z-QDwCGqgw~+ID2hI-0;-PXW^aZ<>2j@L0G;WW=R0t`yys#<yUZoqHe&fb%M;7#S-w~%vP!5I zX7T=&S@`@$`X0^6uO}EPRVOXqydiw;_?vkESNRTjV)zOU;T^jR)$0OnU;}8;WS;U1 QR4ckvd%*z=)y}%~J61lQ3;+NC literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-xf86-v333 b/usr/share/terminfo/x/xterm-xf86-v333 new file mode 100644 index 0000000000000000000000000000000000000000..ef6045b08b5702e4379791a976d278616d941240 GIT binary patch literal 2006 zcmcgtU1%It6h8M(u`$*Lgo1TYw%}+hr0&d}{bOyXO>MfgDVsK8Vh1E^caz=jPd1xL zcGGN%uRaLU2Ys+U6#pJXf)5t_fl?6iqA&VlLGVe0D(Jh?@jG{BSHXe=)ZP8Q^PMy2 zp8IoVb{-Lv^aPF3TjHkC3o4!FcyA$_9$!;R^|hbiV69bZBr46-Mk!e8Bo59^b}E%@ zI-w5Zo0zS&%1hnE%=$`DX&xdH`o{)BGYj@&W-(18^e~0@_>9moBTCTfU4?yvuF-XRkGAL|x&eQizND||Tb&Vx zceK45{tinbT84z(9qTZBK#YlfV!wD)91u^6aiK&`c;W=E7l0{oPCOsyUJx&eh2gk+ zYzd*3=!%!cE6BPk-W2b^ei)CqAwCs1p}!E@I&xclCw>%n#LwavF(Je7BoKX0$uqJj zXXLDo_`~>X@^!7RX?}Yc55xE62k`C=3hcn{Y|NJYSbipN$!+mu*kv!j_jyJ{YRulK?8XmNHRFnbg^HV{(-!F6>qAEXvsw+6UODbPjOzilpy zVBD=TnHla6PnWbjF49h0eJjY@R-Sza(v2i8DSasu`7SP{BAJ2ATKOiA$XUT&t1@Qg z$t=+Q*lZVA2UdY)V1?%AOQnT{#l>3f(xrO6(P%bXt)-=QdwIFjSy>5!)z!7NZnxK4 zU%z~LW24{S+`Pia=jj{4%b;TiC(J`h)H(@F0=#~QyX8BsX5AS_pSq(v zvtuubYWvo8iSlZ0{of)R>G_9sXOr2`Q#13d;XEK>&W-^&f zGD$OO!Q#SJ$ii%-vzyYHU+-kbZxK6;oo&>685n`@Ptwe54GsbKr8m*^-r&ap~;q#7^PW~w8t$!2`( zP+zlDN(FImM#g@1Fbp*_fm(XGh1 zm+r^h9-$q`OjAD%VB8?|vos7W!p5iy48sOBsZAZFU!s%XC0eG}=q#P1x9B|li}WFV zLZ7LOFubh!XYemt{|f$H>oB}ZA>AU@ign^nagW#}9u(c8N4O#kQ?Q+)SM-7T=oe3j zXS9wYH{x@mEE-}SSucuHVi|l!k9bqOE#8HGPh3=yOX3UhjkqkXi0{Q_BMdEAbX*Is zg^W%yeM{aJfX&%TphV&EE}hl_d4*Lj-OvWABGo< z_l=K?PmN2)m&Vt|cg7FKPsVS?RYS_#<=t|l+$1;4EwV=@WmfK&c{wPbmt|R%Q*u@= z$P@CEd{v&7Z^(D#1^LhO``{+$uOI!f{9Jw|zm->3$Nea`#jel#Z~Q5JotfD2|K*A= z$6kq6*E@Dv5HLu+%h0%7My{$^5D}w8)WL`KW zxNZgJG5CNZ;2Ul(g`nj zX{)u~Ds8YbWaelsZtgJ}9v&GP9W9qDmGSY3iE6c0tJfzd8;z-{W^;PF)tZ@^oo%=0 z=H};*9$i@IbQTwn@$wvoWs}_BY!Y4By4UPZsCs6;56p9PGinWe_I4L9A zyebZNu;6&S@D3I??{NPdZlDu&FvBfE4>hMWrz3U}nr+RlW>0b6=bAp(^tq<5YwCRw z&Bsn@PDhNI>bzrXj&2IGRDM3-ngQ1gxMrYhsvU%RMx4@|jua`JU8-+*cGVa z{VP>e$JNG;YVunL3VWkQWT7rx^BUm%9(^$tWNzV2Okcie@Qn}fArv#=)h4$;ul RG%@1P#0xgerHLaB{Q+y|m-+wz literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-xf86-v43 b/usr/share/terminfo/x/xterm-xf86-v43 new file mode 100644 index 0000000000000000000000000000000000000000..f74b0c9033a825bffcc5c7a9714324f814bbc7cc GIT binary patch literal 2226 zcmcguO=w(I6h8OeQQKf!>_+WF8GoKOV%mAXGvjMBO{+1)v{S9Lu>&QsGfAfNlj&sg z*CeGB>mq`pbWtm<;G$wd1t}ENRaR9*7cP{b6x;~vLW&?L`25a&Hxp?^U8uvH^L^)= zbI-l+p8MXLO=1^4KpW_sIG>nlm72A#nUPG;HRZYUDonCgt`Ap}rP^e5xHaBPZXWDy zmP(l*>1}b72g>#0_;hmL>_n?n>m(BD%K)N0la(*4%=gk7x`U!W`K+NG$Vkx5$hed4 z#@ZgDEy&DLKMi2q0q|#N2)+m#qbht9HK<9`G_Uw6S_HmCr|DHXPjAv&^bX?7^dT+L z6_pW1%NlWN!}|Tln+Z=2C`fB$~|(wJS0bCT~5h4c|x9&i}DqDR=y!G z%J<~^a!LO60zdwn->)D2nOv4v<+t+t_PC$qBZ=#?{+sxOp69v5i~q}vXA-X^%)&vs zh1QW-u*z1$wu+(EaI9hzf;$S=XBM1(;1e)Lo%Q%CjR*8m2c$k&&he|b6%`o+?1J^c z_QH14dU(GEXS2)MDKE=O9=i-n>9+HjsWlDaabp&0?9_-Vh{w)R*^bK0`D6EQvs0<9 z-N?cc%)&hlFgNt7oNabP8BhyzkCU0-3F9R>Hb+mwo`UUzV*5}Ec3Sz2@>%vy3O?V* zjLD-Q0qdNe$5rO}Dsy%`Q_dbUw6w|? z*<;7%=H}-Y7LM~y9fal5-0EB!4cffZ>`b9vFN~M!hP<%_J9MBhsJ(8BYQy8mZ;QN1 z4mY&mc-#jEd!2W2pn=Yx=sTJ|$`b)f8Y7-L3bHb&G`I%>w~YV=~X`6k5?z&%_< z(Lzv%%i*H8l?_yQ_DTI+VTCF3nOP_&G zlmmNOMb8>9C|vHewewFKuV1FM+pdmhRG)V`JCct4C$XWe^=h8;501t|kd+g=%uB8X*| zRXB#A7q%x91KVTe5bPjrg!d|N7Q3_+cT?QxvP-g*=s1^|nqv;HpJ=|qPW32*xa@3| zZL7?*H@0Pm6_4M&3t5;_G{3n9<^(Qg1=|IsPfgT0Nzv?H7*ENzI64eF0_%rjc~J6J zLiwcfDfV_8KAU02WFLsnI;Ur`-fXzuaHO;~7Tt+PHGdvQk%Mi5(L-f-oAAggr>{+T z0HyF=Dl*U}JW>hfvh(1M0WVu_5~4o80!0&iVmyJknKo;_*$6B%U}}T9A+^k!V=f?0 zgs}_ig){-0G=mEFNSTd|X0h80D4L;lSou9PG&DRsGBP?^Dvgg%Oq9!&O0_yUS*smC zUawD0H5${?Gc&WZ&F0+Pi4*hl3k!>jCwcD%Vd(@Pema38+qyTpEslEoVLVkQ;H}PE zfenR0?S4m8M-WC{N95hI`H1tj%O_)F_p>%1u+1lIhexc_6B?5mQz6=MjTll@(i5>= z6=yxJ>2XbuYkIn-zBoaMNsXxxQB&!*rP0yoD$M#^)90E#*YtHwb;Ybi5MokeDn!&& zI%f;HLOFbNE~>bKY7scbW~?EUL&+k*_0H zMV5|y6**y4z|BAv_g|@^PF`L3uqMBzz;Hh*WT@Z%F8u2Ae}@R3=k-t|{ta~D-Eti^ dt_f?vW?*&NlcU@KO$^&K@u&rJXyTYne*vD*qSgQa literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-xfree86 b/usr/share/terminfo/x/xterm-xfree86 new file mode 100644 index 0000000000000000000000000000000000000000..0b72f454ce25a95855aaa4a3a873ae540f890d4d GIT binary patch literal 2240 zcmcguU5Fc16h3$EVB59rf~Z)dvW1SeVl{JTCO=Hu^v@dW)@<8F<3?oHZuU3HrfGIJ z?Pkm3iwX)Vh@vb)S^R-2f}&Xb1;IWnh$2Nn-}+QV^uY&ZF@ERHO$xTf7d7OZ?>pZ; z_uSu^QGs!!E=Hs|;0ge^ou ze;GiuXVU(%3f@Pn=>}?D=Chi1BEhDskg3mZ zS6QIP=y7^V^XKU$;48F5Z_r!xK7BwRBmRPx>1+B{XS7-u46Xo4MANW=de%Pa{}Ma+r?@uYZ8yeyW)o8mq3 ziRp1xEQ_ze&x!A}@}u}!{4Q3+pF&tUtJOLLyZGtvM0v2Mb@Z(Dg2u&8TRVTrdi@fu z-F9U>t^2&w>3PQb%sQ*1FX7J_{fAC_t99PGVEtnKX8mEcEL*OX*UFpZCV7YSHTF8Y-EzJCaEG_G{{~N)abC6G{$EBsV}E4F3Inu?)={kBj5}4=84jJQa)xUV zyivGptf2M-?}IU#ta~ofs6&>zAZ1}06_oHOg1D-r!!ZPVV7nqQQ~@h}umiLnJ}ASv z>@sfLPjjQsF2z!^<9ud%j(NOlVudn0-J=BJvr{@->C8+pwrQIikKeTeS(s9+u(1l} zg+68l+X1ClPt-d}vD|JLPf58P9fTc%9fsltPzr8R`;_)+_9_ma%Q9oK7bL+tr{}QV zT(sV3q>MWj+m1#(e;!AZ18suQBV}is@W?u+w@r8et?*uI(%&XL(m2d#7r-3>Ub5U2 zM00+_6if1n@dV;d#;GQpdgwYKQw8cr)OD(!(?pz%Vjnb!Xc9E#gk|oLcIxY$Vz(1g zEK6&!^1EqpaA;^`WOQ_Vd}3m9vQ#RUE0w9KYW3*RTJ6}edVP9&W@dJ_(Kvqm#EH4N zW^;c2B=6k-ER*EJ&m?hVn|H^y#8Gb_jHl{_ywwFaR8Sc7?sr6e1W^=pMBXjMM_f=o zpNzup=M*2X;uBWU5u5a+!IZ&tgeqyX0!74~0RR91 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xterm-xi b/usr/share/terminfo/x/xterm-xi new file mode 100644 index 0000000000000000000000000000000000000000..071c8274175df090dece2daef39964fd2be99a00 GIT binary patch literal 1986 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 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/x/xwsh b/usr/share/terminfo/x/xwsh new file mode 100644 index 0000000000000000000000000000000000000000..166c6014c6ddd762c1b1f97e0011462f09109a2f GIT binary patch literal 1433 zcmb_bJ!lkB5T3UPNdzT@X|jS*xgddxd2e=RZm(S>$e~s$ zsIpTi70TVS3&n-f>T;!=Umcnln(D}&m>lY;6qfQGk|9zwPR(?HstulI>ZiTP5Nd9t zHfpDR)F~&sC_{ZvS=a!b22Rsi;1bL}%c3sF{x!NzH|Qq3J8|SL-HTPVdOucc;774u z2S28b*n3Vd={3Ej_w+aoBx5a+|TvHF#I`|1}L!w)&a^$Jxo~akVIrB=rX_$HUOY}pX|4F>hKVn~@ z$l2_mN%T&^Ho@J_{-5%jC;z|d`pft9IES3bIqr=7;ohkRxibx7|2oY%r{FZv4svse zLSj)T<}!&zlb9n65tt5Amq4DUg|ufq zW68G^SV~%oFND@hTk2)vk+d(8C(}u}sFPAO9%}#zX>zz0w9Lv4>p-LqWHUM`(;K@rosyi5M_U WIW|Ac1RnohK7$eTWj6MMSbYa6o9pxd literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z-100 b/usr/share/terminfo/z/z-100 new file mode 100644 index 0000000000000000000000000000000000000000..0d0311b25678040919f80d020b9ae83843923ae3 GIT binary patch literal 707 zcmb_Z%Syvg6rAi-1h?YZWYJKt*fvsiQ;OB9tyZm%D!M4fv^IUDNgvvm6a+yK1VIp7 z2!bF8;?MX&dUL&zcHyp*iCB@)_7Z3PCM-2uq4F@`^%3y|bj`5t--spnrsqC8RKdNqi6GjP>OJqZsFW0)D8h3$b?| z5r$F3kVKlR8IHf}HPL5z%?nn9+2?UT)Mm4G-@GgO9?_TzwIq zS5eIuHSEfYw1rimfVM*{k>zU9o4~))Q8_X$cf(w?yp_ znF~SCGAIgaIZOp@xwcI=bQQD+vO#O0ZBP}I6cP(zVQk|bXdjdY9e@r&DbNmRm)R4} qE{eHJ66_XzhQFj0^7&%6q?gakT;8@BHEr)y2K4YsbglszV^5+g>cV*2)t zV!mR!gz2&}=vs=>CI5sdD{=H;7(YE(106X)KL&*!f)_fo0Pjgm@i~JK!iWhsAY6L(FpgB;T*}7xLoUkQO z2xNhlK^veFXiZxDGl%e`ZO{&A7nA_)f#RS|&=$8xTQex^42bgUX{NW3%I9*Y*+S;* YeU@kFO8$3&Q1T`Tzg` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z100 b/usr/share/terminfo/z/z100 new file mode 100644 index 0000000000000000000000000000000000000000..0d0311b25678040919f80d020b9ae83843923ae3 GIT binary patch literal 707 zcmb_Z%Syvg6rAi-1h?YZWYJKt*fvsiQ;OB9tyZm%D!M4fv^IUDNgvvm6a+yK1VIp7 z2!bF8;?MX&dUL&zcHyp*iCB@)_7Z3PCM-2uq4F@`^%3y|bj`5t--spnrsqC8RKdNqi6GjP>OJqZsFW0)D8h3$b?| z5r$F3kVKlR8IHf}HPL5z%?nn9+2?UT)Mm4G-@GgO9?_TzwIq zS5eIuHSEfYw1rimfVM*{k>zU9o4~))Q8_X$cf(w?yp_ znF~SCGAIgaIZOp@xwcI=bQQD+vO#O0ZBP}I6cP(zVQk|bXdjdY9e@r&DbNmRm)R4} qE{eHJ66_XzhQFj0^7&%6q?gakT;8@BHEr)y2K4YsbglszV^5+g>cV*2)t zV!mR!gz2&}=vs=>CI5sdD{=H;7(YE(106X)KL&*!f)_fo0Pjgm@i~JK!iWhsAY6L(FpgB;T*}7xLoUkQO z2xNhlK^veFXiZxDGl%e`ZO{&A7nA_)f#RS|&=$8xTQex^42bgUX{NW3%I9*Y*+S;* YeU@kFO8$3&Q1T`Tzg` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z110 b/usr/share/terminfo/z/z110 new file mode 100644 index 0000000000000000000000000000000000000000..0d0311b25678040919f80d020b9ae83843923ae3 GIT binary patch literal 707 zcmb_Z%Syvg6rAi-1h?YZWYJKt*fvsiQ;OB9tyZm%D!M4fv^IUDNgvvm6a+yK1VIp7 z2!bF8;?MX&dUL&zcHyp*iCB@)_7Z3PCM-2uq4F@`^%3y|bj`5t--spnrsqC8RKdNqi6GjP>OJqZsFW0)D8h3$b?| z5r$F3kVKlR8IHf}HPL5z%?nn9+2?UT)Mm4G-@GgO9?_TzwIq zS5eIuHSEfYw1rimfVM*{k>zU9o4~))Q8_X$cf(w?yp_ znF~SCGAIgaIZOp@xwcI=bQQD+vO#O0ZBP}I6cP(zVQk|bXdjdY9e@r&DbNmRm)R4} qE{eHJ66_XzhQFj0^7&%6q?gakT;8@BHEr)y2K4YsbglszV^5+g>cV*2)t zV!mR!gz2&}=vs=>CI5sdD{=H;7(YE(106X)KL&*!f)_fo0Pjgm@i~JK!iWhsAY6L(FpgB;T*}7xLoUkQO z2xNhlK^veFXiZxDGl%e`ZO{&A7nA_)f#RS|&=$8xTQex^42bgUX{NW3%I9*Y*+S;* YeU@kFO8$3&Q1T`Tzg` literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z19 b/usr/share/terminfo/z/z19 new file mode 100644 index 0000000000000000000000000000000000000000..63b3b318f6117985ed510d9f546d01e3bd5b92f6 GIT binary patch literal 627 zcmaKpOG^S#6vzKo&;#5@XXBzt!ZefyETo5JS%PUVaZ`;tIpf=Wn-l~=n-F;N@!H+-gN< zOVl)S(ZycC0sAx6;TWdkRMZlf!8{BDnBZs_Q<%n_MNYoMGSdog9|9a@1QD`ohOs5o z>a!Vd5E7byj2nvIu{HoMj1MPx#KwYLd zXdkoNIe;gA-_*v-85Uc^%QglItN{VQlJDV2|6)H(w>-?DYaDGsyTEt zy{Yo=qC?Dr3e=S;9UQq9RjCS(<|`_CK3~Wcv!$D|TFF%Vb)|9FY`1uI8r|#rOZ)=Z Ccp-}b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z29 b/usr/share/terminfo/z/z29 new file mode 100644 index 0000000000000000000000000000000000000000..15e7e8a5eb95fab2c768264224f572ba3e367591 GIT binary patch literal 1219 zcmeH@%}bO~6vlrq5~dLDLV7@EF)srR>AWvWDw7|XmigT$>Mju{#hgfLW>BG3yP!Y8 zr369{2!bF8LW@8Uf;O#MivNP0_s*T#xU)rz4&3|vo_p>+=WwqDEo8~?KBx;Sao1X9 z{>AgvLIQEuv$YxLQVByqH4+Vi-`1c0$ysKSv$JMfeLavhgkwR)Pk>ZpaAbQ|5W z)yshGLyR%SEOW*Swra8Hd6}Zos&{XwuQkgIt&V|LehUhlB$7NJ*M*}E%)sIT%#?$#+YjoX;jM-_MX*oi7Q6DOz zSDk1GO`w-%a%f5A4wTnyZ(Pu8M^T@1)lo*PRjilw+&~Y}BlH+OK~K>nnnDjyZa5i9 lcicSv6jqk!X-wy18(`SP25CTxDs`w7X}UAarnEwG{}*_yOMUj}Q2WPxy>4_=;~P`#r7wk@8Q&zfy09 zD_~}~I-rJ>(=zN_x5HSz=Eky=kPJ9PdZ`p0hIsoIM{WSUmn z>eyCGTOG%0br~36qH#{soFRn&DDg1BkjK9?(>y^`344a7PE6VnZE2at5p&EH-$++{ zR~uavy^#-7CEg7-C`HJxwmbP==y!vB>@W0!IDa#?3k4QTo40bL#uPmn?GE)Eah|w9 zTqNcR4%C<>&JmYb=aFj!CvH>`22lrt83vkWc^Th``lgWnCNjM#wu)tGlj7#1E;2{C zzjlgU?pf5fCrgK1q$q|7J+4doh<0^ZS0ZlBYFn0-tL{N&;7dL17gzSzHXn3KnwQ>U JGn*fwhTnM`YIpzu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z29a-kc-bc b/usr/share/terminfo/z/z29a-kc-bc new file mode 100644 index 0000000000000000000000000000000000000000..0fc74c39a00adc8987116b2e9c5bf8f856842644 GIT binary patch literal 1413 zcmeHGziSg=7=At#)MCeiG++be$RH)TYvLvSq?#J!)W)<{tr(YUbM%7O8k19`L{Sh5 zigxu+5L_I@!NI}7!NI}7!NI}7!NI}7!R373uh$l#qnm#4ywCIgxcA=oJ8oE&aTqx~ zR?pO`Q}O#^#;z`oEiCrKZRrJm9Of?vEA2SUI+bjDC0ji^cPhJltrY+Y8%J2FEjNvB z=a`wnJ{&~ySIz+Y0K2dULm0*gMor%w%9x;j}Q2WPxy>4_=;~P`#r7wk@8Q&zfy09 zD_~}~I-rJ>(=zN_x5HSz=Eky=kPJ9PdZ`p0hIsoIM{WSUmn z>eyCGTOG%0br~36qH#{soFRn&DDg1BkjK9?(>y^`344a7PE6VnZE2at5p&EH-$++{ zR~uavy^#-7CEg7-C`HJxwmbP==y!vB>@W0!IDa#?3k4QTo40bL#uPmn?GE)Eah|w9 zTqNcR4%C<>&JmYb=aFj!CvH>`22lrt83vkWc^Th``lgWnCNjM#wu)tGlj7#1E;2{C zzjlgU?pf5fCrgK1q$q|7J+4doh<0^ZS0ZlBYFn0-tL{N&;7dL17gzSzHXn3KnwQ>U JGn*fwhTnM`YIpzu literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z29a-kc-uc b/usr/share/terminfo/z/z29a-kc-uc new file mode 100644 index 0000000000000000000000000000000000000000..267fb7fa232445eec95ac88680d2a173d64ebc78 GIT binary patch literal 1432 zcmeHGziSg=7=At#)MCeiG@u9N$RH)TYvMJ2QcVqVYGYcfR*Xx$J9;74B;F-zixmn& zK}A>p0m0Eh92^`R92^`R92^`R92^`R99-h_eZ95_9o_Wcd7tO~k@w#BJu)h4ID#x5 ziDzQPE;Ytm-gw`;6K>0^LA%)t4JM89`S~-(QpXRBTPoBFmc6LywTwpFH~MWqh!d|9 z2Zq;=lTHi>Y&?pE*mBe8b`D||`*0A0zw!*R53mb+FoIDW#+dG##UzeVO=<5WZG~`A z#hi{T;2IiKi`p9uBHX}jtyi(8c^wZlKTa#2ke?GTh?i;XmFCxYgSS-g@E#xV5uflG zU+@**boP5%`y=I_nt!F<4kut{w>Th1gvuQfS&^qIX>Tx?PWg1o%j8wDChn2fiTmPV zn%SZA|Ij~nfu~|GhLNe8O|xs6zBIeG>BkIAEYjF#Y0eRf|0r=W#E{E>X{LUPC==E! zO_i9kBHH2-jjhZHNBLSh%6FvJ1*JFgVXBnZXM{Uw!Kz82L@ zq5A8{%%<2XR!i#?Hy?A5InMp1U5L47L0Ya_I#idCww#a!S(HbmBPV4k;>s+w)TZjr c3Df|5ql^8@Rm)3@KedaJ7x&r8;uomkH(DKY7XSbN literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z29a-nkc-bc b/usr/share/terminfo/z/z29a-nkc-bc new file mode 100644 index 0000000000000000000000000000000000000000..7c095da70d4bb0a006e5ce903ce7f6d0ef871036 GIT binary patch literal 1435 zcmeHGziSg=7=At#)MCeiG@u9N$RH)TYhoHdsip=wwK1(#E2c|wIeH=2BwkW~lqw2B zLD8=M34)7*I5;>sI5;>sI5;>sI5;>sIJm^;`}(yibnI3?c;4rEf82ZT`yDqd$~b}~ z9*bvU+09o+TTOqo=C6c*>8nAj(F-l6t-|@)GuC3e9#}V2s1~*TrsXfi-F9qMTXn0| zwwl2$KWg|*Kw$kS7Gl#i(LXteY3##6^ta^*aD4vmgXFx_@5FF0}OfmOB0n-M1gRo zX-dR|6VYZDX4pO~ptsC@G*LzMn z&4MZYR*qDjq^Cx^Lp@7eBrXw`i8+D;m1l?x#1+(#^!&Gb0^OEgfE2hhNcl1K8NxVz^QK~2i z1x361CkQSM;^5%m;Nalk;Nalk;Nalk;NTLU@9VWHbnI3?c;4rEf82ZT`yDqd=5PcV zJQmNyvQ=_MTTOSg=dJ{Q=_`J#(G3iyjq>@~GsaTe^NkxS)N6Tu6ua%nH{4znw|KymN#y%WGe_PG~`vAMJ2SXUfVT|a$8I0o?)r9s= z(pCr?Rm|wfJQmh4Ak}V zYJ4rK8$$Khk*N)_S*(`UDQ-SeMCv&AmsURFo_T57YUzNBSjw1kOy*@l9+gEoE=wV| jX0@r7RaYHD&A^x1*sol*zcl%vRgk=NkIhVegbIEG!z^|2 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z29b b/usr/share/terminfo/z/z29b new file mode 100644 index 0000000000000000000000000000000000000000..15e7e8a5eb95fab2c768264224f572ba3e367591 GIT binary patch literal 1219 zcmeH@%}bO~6vlrq5~dLDLV7@EF)srR>AWvWDw7|XmigT$>Mju{#hgfLW>BG3yP!Y8 zr369{2!bF8LW@8Uf;O#MivNP0_s*T#xU)rz4&3|vo_p>+=WwqDEo8~?KBx;Sao1X9 z{>AgvLIQEuv$YxLQVByqH4+Vi-`1c0$ysKSv$JMfeLavhgkwR)Pk>ZpaAbQ|5W z)yshGLyR%SEOW*Swra8Hd6}Zos&{XwuQkgIt&V|LehUhlB$7NJ*M*}E%)sIT%#?$#+YjoX;jM-_MX*oi7Q6DOz zSDk1GO`w-%a%f5A4wTnyZ(Pu8M^T@1)lo*PRjilw+&~Y}BlH+OK~K>nnnDjyZa5i9 lcicSv6jqk!X-wy18(`SP25CTxDs`w7X}UAarnEwG{}*_yOMUh)sal42TUFq>CVwD@+|10{~Vp B^kV=3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z340 b/usr/share/terminfo/z/z340 new file mode 100644 index 0000000000000000000000000000000000000000..e8e62b78e2256f67ec1972c04f177800f91da0bf GIT binary patch literal 1550 zcmb7CO=ufO6n--{)G;-rhxU-|K`C0(`XcS@%92?pvTGYmVxy)>OX4NLYg@Kutz=nR z`A3$Wi*x8DhaB2N=^;Hd5D2vN&`VA^{xU!=ouN^hgm;cEfWHB*&{gtbm#9oN zSYAzSTXdcF=sUVa-)sLT`k8*w>MrfJg}kmRC*;i}8+*Bgc6P-wNWg@Wl#LL$t*W*qfby{2+c5x3#_l{!=^y zKNl~>f%r#^$S4|<6JTC5@|v8Ji*iN#)lM{uZp%Awbews__l|w}O?$r|iyh_uU;Xh8 zIY;^TGE- zD@_h7UBYFgehH@%8z*4hK{~lZ##x+WFN2%_lwr!Un*&*{qw3gPxfT~Tg-OR%aC(8a zbXagv%3^f^_!_u~h?PaevvQh;m{nS9EkT8G#0J^Ru!k!a_=t9!CRMryrVe-e&=haTBTa5vFz82snDNm6vNbdXs7Y| zIWn?j;4rQ!ZRX9|pc%TB>9SOiPAnbBOe`(4W}9vJS<|g>+K?HdlV%akG2P^_!rdq7 z1ol(OUA$j%2N#G(X%;WE0c-(HU=3){?5yuEE-o#ttdz?^P^na_tE;uz+FHHdXoO+2 zxxT)!vAMam)oN{Tx7#~AyZqwluV#!wVOpOy1E0I;DQ>Q(V$GfLlx~vJom9G$Hh0^z zm1do9>wJsH8r5Rz7cd9jU=@@%JvVJB+sO=Ob3<3>5t=7n-I(x1$A0+68ih?16$0x( QoyxwV@|*?ORGwG#8eFTAJ^%m! literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z340-nam b/usr/share/terminfo/z/z340-nam new file mode 100644 index 0000000000000000000000000000000000000000..7b11fe12145dce22f8335861c3287fc54e57919e GIT binary patch literal 1578 zcmb7EO>7%Q6n-;_)KXEY9N^I9upn>MMnd+^u46~r)-7$Ms3bC_1(mFdvT+>8@$TAL zuk+(N;R1(VdguWTh(mj5rAkO34qP~K;)I06sRz^xNR=v(A|dqvTD~`S8gil?>HFUI z-n@PD^Ts|dX6Y3=Os7O{tnavmx8fig%wM@WJ!gJ!6~39)lc*U7p;?c5VUV^H({@y? z9h$BRn{nMd8Mn=#m$suIZPv^vNE*$!dy067JrV-?6Uwp)U^v(#k~B`Q(s6o|PUx8l z^5_hmrx|#c=rZ_y;6u7j0c?X>)Pd#E)3#3^qwY<*O`mE1OS((a_u zKZ5-Yc&zqdCbd?V_x&-?U!1h4a3?1PVprVQ)ehpfz zz+3>%1MdQJKq0q7#>oOyF#_34E+>{)X>wWVEnGwD+i;?xaYNQ46mr{SoW(lM3djvX zMWzx{88O>)Rf6Kmvw35)c4 zajXISlI2C5Hf5#gq*X_AEH8Ij;p{W?66&ek4(>0vjROpy(gJR11K0w3z#7n{g@qtk zUT!p2S6i(xjG{Phw>zD+wIu0w)3n!HU*Fi++}zsg_ix-747Rs-_{J+Gek|xRO3dli z=HYWUeZ|f7)lhS1e5ISDbSIVWq{H3z9i>_4J38OyXN}$B)i2>4_>(cHV)!)P6)0*g+JHl?nxcOJ$gi9a literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z39-a b/usr/share/terminfo/z/z39-a new file mode 100644 index 0000000000000000000000000000000000000000..d9344010eb000703a29b696bd7087e74d62868aa GIT binary patch literal 1124 zcmd6my=zlp6vm%d@vC452bEsIAOs64qlrD8cds{`EHUXYN(1R zqKk`*i-Hav6hs6E{|pyVP!Q?h;Nalk;PpADw}PdMn-`wv{LXpLJ@?#8(q|m(!DjTD zFXl=pb|llK(`GA$W_~sQgOx_1JFS^76!R4-zQNN|r+npVb`~&Ly(Ai=DSZO2yO)(M z*oGbG!+spZVb)yN#t?>)fOJeEg^S3N@+f10v4bvdXy0wz(|8{b@R0NfPc&b~bG%e~ zO@E{0x^EfZc`Q$Pul$kznOebDe8YGAz)$?bCbQK@Pmj9m_Ih!b*=_cDEaw|t2h1T8 z)}CW#*d$3Q?~aTqnwoM;{VM&Mxv6}Me#hKZcHPJ3saZD9%nQw5dDV@cw!Ze^A9~l{ z`+w!1jFq;h`Qz9LEA21%Yqme@_-jFbc7cUZjuuQ<=@G`js91vbSDzdWQ4-^kJhp2r z(N9ppuw%=~AZ1U8jnm>b&-(+UNLgxPL9uY278Ozpllo$1xp(>>%?rpYPlEOm}LPhFt6O!5phNu}5)Tb`t3YuPp)mB+=SvXOok*Qn=P%*;$CGdGvZ&CeH$rBb7wpxpe?RKZLw8ViTdlbI`ec2|A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z39a b/usr/share/terminfo/z/z39a new file mode 100644 index 0000000000000000000000000000000000000000..d9344010eb000703a29b696bd7087e74d62868aa GIT binary patch literal 1124 zcmd6my=zlp6vm%d@vC452bEsIAOs64qlrD8cds{`EHUXYN(1R zqKk`*i-Hav6hs6E{|pyVP!Q?h;Nalk;PpADw}PdMn-`wv{LXpLJ@?#8(q|m(!DjTD zFXl=pb|llK(`GA$W_~sQgOx_1JFS^76!R4-zQNN|r+npVb`~&Ly(Ai=DSZO2yO)(M z*oGbG!+spZVb)yN#t?>)fOJeEg^S3N@+f10v4bvdXy0wz(|8{b@R0NfPc&b~bG%e~ zO@E{0x^EfZc`Q$Pul$kznOebDe8YGAz)$?bCbQK@Pmj9m_Ih!b*=_cDEaw|t2h1T8 z)}CW#*d$3Q?~aTqnwoM;{VM&Mxv6}Me#hKZcHPJ3saZD9%nQw5dDV@cw!Ze^A9~l{ z`+w!1jFq;h`Qz9LEA21%Yqme@_-jFbc7cUZjuuQ<=@G`js91vbSDzdWQ4-^kJhp2r z(N9ppuw%=~AZ1U8jnm>b&-(+UNLgxPL9uY278Ozpllo$1xp(>>%?rpYPlEOm}LPhFt6O!5phNu}5)Tb`t3YuPp)mB+=SvXOok*Qn=P%*;$CGdGvZ&CeH$rBb7wpxpe?RKZLw8ViTdlbI`ec2|A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/z50 b/usr/share/terminfo/z/z50 new file mode 100644 index 0000000000000000000000000000000000000000..5c666276e74b697b9fdbf1d7ab331f84430d7aaa GIT binary patch literal 336 zcmah=%L>9k5X&NpuMa3LND;S1>Y+*n4~ihZ5DzMX+G|<@HpeG*U{y2_A z(uU*U|L25ID#IiXtj9P(PXAq8;)-3BsiDrbi9k=*+a2Q{S)Z5~UG#KsWF`~57^l?i z&ndOA{L=F4T)VFH^v&$N8~xaOW8ZK0pZMC6@C|CqVM!K5K^A2shZh?Qx}_%Q4oU6o z*g4`Y9D+iS54r~3P>TXVZBYgVc_zo4F|NU56*hcwPocixplT9GH4~Rc3e>h)sal42TUFq>CVwD@+|10{~Vp B^kV=3 literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/zen50 b/usr/share/terminfo/z/zen50 new file mode 100644 index 0000000000000000000000000000000000000000..5c666276e74b697b9fdbf1d7ab331f84430d7aaa GIT binary patch literal 336 zcmah=%L>9k5X&NpuMa3LND;S1>Y+*n4~ihZ5DzMX+G|<@HpeG*U{y2_A z(uU*U|L25ID#IiXtj9P(PXAq8;)-3BsiDrbi9k=*+a2Q{S)Z5~UG#KsWF`~57^l?i z&ndOA{L=F4T)VFH^v&$N8~xaOW8ZK0pZMC6@C|CqVM!K5K^A2shZh?Qx}_%Q4oU6o z*g4`Y9D+iS54r~3P>TXVZBYgVc_zo4F|NU56*hcwPocixplT9GH4~Rc3e>F;N@!H+-gN< zOVl)S(ZycC0sAx6;TWdkRMZlf!8{BDnBZs_Q<%n_MNYoMGSdog9|9a@1QD`ohOs5o z>a!Vd5E7byj2nvIu{HoMj1MPx#KwYLd zXdkoNIe;gA-_*v-85Uc^%QglItN{VQlJDV2|6)H(w>-?DYaDGsyTEt zy{Yo=qC?Dr3e=S;9UQq9RjCS(<|`_CK3~Wcv!$D|TFF%Vb)|9FY`1uI8r|#rOZ)=Z Ccp-}b literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/zenith29 b/usr/share/terminfo/z/zenith29 new file mode 100644 index 0000000000000000000000000000000000000000..15e7e8a5eb95fab2c768264224f572ba3e367591 GIT binary patch literal 1219 zcmeH@%}bO~6vlrq5~dLDLV7@EF)srR>AWvWDw7|XmigT$>Mju{#hgfLW>BG3yP!Y8 zr369{2!bF8LW@8Uf;O#MivNP0_s*T#xU)rz4&3|vo_p>+=WwqDEo8~?KBx;Sao1X9 z{>AgvLIQEuv$YxLQVByqH4+Vi-`1c0$ysKSv$JMfeLavhgkwR)Pk>ZpaAbQ|5W z)yshGLyR%SEOW*Swra8Hd6}Zos&{XwuQkgIt&V|LehUhlB$7NJ*M*}E%)sIT%#?$#+YjoX;jM-_MX*oi7Q6DOz zSDk1GO`w-%a%f5A4wTnyZ(Pu8M^T@1)lo*PRjilw+&~Y}BlH+OK~K>nnnDjyZa5i9 lcicSv6jqk!X-wy18(`SP25CTxDs`w7X}UAarnEwG{}*_yOMUqlrD8cds{`EHUXYN(1R zqKk`*i-Hav6hs6E{|pyVP!Q?h;Nalk;PpADw}PdMn-`wv{LXpLJ@?#8(q|m(!DjTD zFXl=pb|llK(`GA$W_~sQgOx_1JFS^76!R4-zQNN|r+npVb`~&Ly(Ai=DSZO2yO)(M z*oGbG!+spZVb)yN#t?>)fOJeEg^S3N@+f10v4bvdXy0wz(|8{b@R0NfPc&b~bG%e~ zO@E{0x^EfZc`Q$Pul$kznOebDe8YGAz)$?bCbQK@Pmj9m_Ih!b*=_cDEaw|t2h1T8 z)}CW#*d$3Q?~aTqnwoM;{VM&Mxv6}Me#hKZcHPJ3saZD9%nQw5dDV@cw!Ze^A9~l{ z`+w!1jFq;h`Qz9LEA21%Yqme@_-jFbc7cUZjuuQ<=@G`js91vbSDzdWQ4-^kJhp2r z(N9ppuw%=~AZ1U8jnm>b&-(+UNLgxPL9uY278Ozpllo$1xp(>>%?rpYPlEOm}LPhFt6O!5phNu}5)Tb`t3YuPp)mB+=SvXOok*Qn=P%*;$CGdGvZ&CeH$rBb7wpxpe?RKZLw8ViTdlbI`ec2|A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/zenith39-ansi b/usr/share/terminfo/z/zenith39-ansi new file mode 100644 index 0000000000000000000000000000000000000000..d9344010eb000703a29b696bd7087e74d62868aa GIT binary patch literal 1124 zcmd6my=zlp6vm%d@vC452bEsIAOs64qlrD8cds{`EHUXYN(1R zqKk`*i-Hav6hs6E{|pyVP!Q?h;Nalk;PpADw}PdMn-`wv{LXpLJ@?#8(q|m(!DjTD zFXl=pb|llK(`GA$W_~sQgOx_1JFS^76!R4-zQNN|r+npVb`~&Ly(Ai=DSZO2yO)(M z*oGbG!+spZVb)yN#t?>)fOJeEg^S3N@+f10v4bvdXy0wz(|8{b@R0NfPc&b~bG%e~ zO@E{0x^EfZc`Q$Pul$kznOebDe8YGAz)$?bCbQK@Pmj9m_Ih!b*=_cDEaw|t2h1T8 z)}CW#*d$3Q?~aTqnwoM;{VM&Mxv6}Me#hKZcHPJ3saZD9%nQw5dDV@cw!Ze^A9~l{ z`+w!1jFq;h`Qz9LEA21%Yqme@_-jFbc7cUZjuuQ<=@G`js91vbSDzdWQ4-^kJhp2r z(N9ppuw%=~AZ1U8jnm>b&-(+UNLgxPL9uY278Ozpllo$1xp(>>%?rpYPlEOm}LPhFt6O!5phNu}5)Tb`t3YuPp)mB+=SvXOok*Qn=P%*;$CGdGvZ&CeH$rBb7wpxpe?RKZLw8ViTdlbI`ec2|A literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/zt-1 b/usr/share/terminfo/z/zt-1 new file mode 100644 index 0000000000000000000000000000000000000000..91424b20cd42b800fc2d36c6f45a031ca8154522 GIT binary patch literal 549 zcmbu5T}uK%6oy|3BKrl=d$UB-61La~mUSUmMrH+8RM?$_u_pLYOYO=AK@bH&5dDRI zXC0^6#jYD>&UxPR2{WHr#}cOSf-j7MFqWsaSWm~k#n97UE3UO$fuFx<_d0>^NR_8o zo&JrZHITvYu|APDn&cXo!5qHR1KB!lbQTL(6mpGP7Q137kAm@OOA2e){F5o8Vsuq( z-Da-DcPx(^yOw(x3I({w2oHF~(?rd)Sj0q!y?G1_2M1`oy)w!jl( fPr)Xv@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/ztx b/usr/share/terminfo/z/ztx new file mode 100644 index 0000000000000000000000000000000000000000..91424b20cd42b800fc2d36c6f45a031ca8154522 GIT binary patch literal 549 zcmbu5T}uK%6oy|3BKrl=d$UB-61La~mUSUmMrH+8RM?$_u_pLYOYO=AK@bH&5dDRI zXC0^6#jYD>&UxPR2{WHr#}cOSf-j7MFqWsaSWm~k#n97UE3UO$fuFx<_d0>^NR_8o zo&JrZHITvYu|APDn&cXo!5qHR1KB!lbQTL(6mpGP7Q137kAm@OOA2e){F5o8Vsuq( z-Da-DcPx(^yOw(x3I({w2oHF~(?rd)Sj0q!y?G1_2M1`oy)w!jl( fPr)Xv@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/ztx-1-a b/usr/share/terminfo/z/ztx-1-a new file mode 100644 index 0000000000000000000000000000000000000000..91424b20cd42b800fc2d36c6f45a031ca8154522 GIT binary patch literal 549 zcmbu5T}uK%6oy|3BKrl=d$UB-61La~mUSUmMrH+8RM?$_u_pLYOYO=AK@bH&5dDRI zXC0^6#jYD>&UxPR2{WHr#}cOSf-j7MFqWsaSWm~k#n97UE3UO$fuFx<_d0>^NR_8o zo&JrZHITvYu|APDn&cXo!5qHR1KB!lbQTL(6mpGP7Q137kAm@OOA2e){F5o8Vsuq( z-Da-DcPx(^yOw(x3I({w2oHF~(?rd)Sj0q!y?G1_2M1`oy)w!jl( fPr)Xv@ literal 0 HcmV?d00001 diff --git a/usr/share/terminfo/z/ztx11 b/usr/share/terminfo/z/ztx11 new file mode 100644 index 0000000000000000000000000000000000000000..91424b20cd42b800fc2d36c6f45a031ca8154522 GIT binary patch literal 549 zcmbu5T}uK%6oy|3BKrl=d$UB-61La~mUSUmMrH+8RM?$_u_pLYOYO=AK@bH&5dDRI zXC0^6#jYD>&UxPR2{WHr#}cOSf-j7MFqWsaSWm~k#n97UE3UO$fuFx<_d0>^NR_8o zo&JrZHITvYu|APDn&cXo!5qHR1KB!lbQTL(6mpGP7Q137kAm@OOA2e){F5o8Vsuq( z-Da-DcPx(^yOw(x3I({w2oHF~(?rd)Sj0q!y?G1_2M1`oy)w!jl( fPr)Xv@ literal 0 HcmV?d00001