diff --git a/misc/Makefile b/misc/Makefile
deleted file mode 100644
index 8b4ee67..0000000
--- a/misc/Makefile
+++ /dev/null
@@ -1,152 +0,0 @@
-# $Id: Makefile.in,v 1.43 2007/03/31 15:54:17 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 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
-#
-# Makefile for ncurses miscellany directory
-#
-# This makes/installs the terminfo database
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES :
-
-SHELL		= /bin/sh
-THIS		= Makefile
-
-CF_MFLAGS 	= 
-
-
-DESTDIR		= 
-top_srcdir	= ..
-srcdir		= .
-prefix		= /usr/local
-exec_prefix	= ${prefix}
-bindir		= ${exec_prefix}/bin
-libdir		= ${exec_prefix}/lib
-datadir		= ${prefix}/share
-
-CC		= agcc.pl
-HOSTCC		= gcc
-
-tabsetdir	= $(datadir)/tabset
-ticdir		= /usr/local/share/terminfo
-ticfile		= $(ticdir).db
-source		= ${top_srcdir}/misc/terminfo.src
-
-INSTALL		= /usr/bin/install -c
-INSTALL_PROG	= ${INSTALL}
-INSTALL_DATA	= ${INSTALL} -m 644
-
-################################################################################
-all :	terminfo.tmp
-
-depend :
-
-sources :
-
-install : install.data install.libs
-
-install.data :	terminfo.tmp \
-		$(DESTDIR)$(libdir) \
-		$(DESTDIR)$(datadir) \
-		$(DESTDIR)$(tabsetdir)
-	DESTDIR=${DESTDIR} \
-	prefix=${prefix} \
-	exec_prefix=${exec_prefix} \
-	bindir=${bindir} \
-	top_srcdir=${top_srcdir} \
-	srcdir=${srcdir} \
-	datadir=${datadir} \
-	ticdir=${ticdir} \
-	source=terminfo.tmp \
-	THIS_CC="$(CC)" \
-	THAT_CC="$(HOSTCC)" \
-	$(SHELL) ./run_tic.sh
-	@cd $(srcdir)/tabset && \
-		$(SHELL) -c 'for i in * ; do \
-			if test -f $$i ; then \
-			echo installing $$i; \
-			$(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
-			fi; done'
-
-NCURSES_CONFIG	= ncurses5-config
-
-install.libs : $(DESTDIR)$(bindir) ncurses-config
-	$(INSTALL_PROG) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
-
-terminfo.tmp : run_tic.sed $(source)
-	echo '** adjusting tabset paths'
-	sed -f run_tic.sed $(source) >terminfo.tmp
-
-run_tic.sed :
-	WHICH_XTERM=xterm-new \
-	ticdir=${ticdir} \
-	$(SHELL) $(srcdir)/gen_edit.sh >$@
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(libdir) \
-$(DESTDIR)$(datadir) \
-$(DESTDIR)$(tabsetdir) :
-	$(SHELL) $(top_srcdir)/mkdirs.sh $@
-
-uninstall : uninstall.data uninstall.libs
-
-uninstall.data :
-	-test -d $(DESTDIR)$(tabsetdir) && rm -rf $(DESTDIR)$(tabsetdir)
-	-test -d $(DESTDIR)$(ticdir) && rm -rf $(DESTDIR)$(ticdir)
-	-test -f $(DESTDIR)$(ticfile) && rm -f $(DESTDIR)$(ticfile)
-
-uninstall.libs :
-	-rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
-
-tags :
-
-TAGS :
-
-mostlyclean :
-	-rm -f terminfo.tmp
-	-rm -f run_tic.sed
-	-rm -f core tags TAGS *~ *.bak *.ln *.atac trace
-
-clean :: mostlyclean
-
-distclean : clean
-	-rm -f Makefile run_tic.sh ncurses-config
-
-realclean : distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/misc/Makefile.in b/misc/Makefile.in
index 4cb39b0..a62eb33 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.43 2007/03/31 15:54:17 tom Exp $
+# $Id: Makefile.in,v 1.63 2015/08/05 23:15:41 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2014,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"), #
@@ -42,7 +42,8 @@
 # turn off _all_ suffix rules; we'll generate our own
 .SUFFIXES :
 
-SHELL		= /bin/sh
+SHELL		= @SHELL@
+VPATH		= @srcdir@
 THIS		= Makefile
 
 CF_MFLAGS 	= @cf_cv_makeflags@
@@ -55,10 +56,11 @@
 exec_prefix	= @exec_prefix@
 bindir		= @bindir@
 libdir		= @libdir@
+datarootdir	= @datarootdir@
 datadir		= @datadir@
+includesubdir	= @includesubdir@
 
-CC		= @CC@
-HOSTCC		= @BUILD_CC@
+INCLUDEDIR	= $(DESTDIR)$(includedir)$(includesubdir)
 
 tabsetdir	= $(datadir)/tabset
 ticdir		= @TERMINFO@
@@ -66,17 +68,20 @@
 source		= @TERMINFO_SRC@
 
 INSTALL		= @INSTALL@
-INSTALL_PROG	= @INSTALL_PROGRAM@
+INSTALL_PROGRAM	= @INSTALL_PROGRAM@
+INSTALL_SCRIPT	= @INSTALL_SCRIPT@
 INSTALL_DATA	= @INSTALL_DATA@
 
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+
 ################################################################################
 all :	terminfo.tmp
 
 depend :
 
-sources :
+sources :: terminfo.tmp 
 
-install : install.data install.libs
+install : @MISC_INSTALL_DATA@ install.libs
 
 install.data :	terminfo.tmp \
 		$(DESTDIR)$(libdir) \
@@ -91,8 +96,7 @@
 	datadir=${datadir} \
 	ticdir=${ticdir} \
 	source=terminfo.tmp \
-	THIS_CC="$(CC)" \
-	THAT_CC="$(HOSTCC)" \
+	cross_compiling=@cross_compiling@ \
 	$(SHELL) ./run_tic.sh
 	@cd $(srcdir)/tabset && \
 		$(SHELL) -c 'for i in * ; do \
@@ -103,8 +107,16 @@
 
 NCURSES_CONFIG	= ncurses@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config
 
-install.libs : $(DESTDIR)$(bindir) ncurses-config
-	$(INSTALL_PROG) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
+install.libs :: $(DESTDIR)$(bindir) ncurses-config
+	$(INSTALL_SCRIPT) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
+
+@MAKE_PC_FILES@install.libs :: pc-files $(DESTDIR)$(PKG_CONFIG_LIBDIR)
+@MAKE_PC_FILES@	$(SHELL) -c 'for name in *.pc; do $(INSTALL_DATA) $$name $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
+
+@MAKE_PC_FILES@sources :: pc-files
+@MAKE_PC_FILES@pc-files :
+@MAKE_PC_FILES@	$(SHELL) ./gen-pkgconfig
+@MAKE_PC_FILES@	touch $@
 
 terminfo.tmp : run_tic.sed $(source)
 	echo '** adjusting tabset paths'
@@ -112,16 +124,18 @@
 
 run_tic.sed :
 	WHICH_XTERM=@WHICH_XTERM@ \
-	ticdir=${ticdir} \
+	XTERM_KBS=@XTERM_KBS@ \
+	datadir=${datadir} \
 	$(SHELL) $(srcdir)/gen_edit.sh >$@
 
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) \
 $(DESTDIR)$(datadir) \
-$(DESTDIR)$(tabsetdir) :
-	$(SHELL) $(top_srcdir)/mkdirs.sh $@
+$(DESTDIR)$(tabsetdir) \
+$(DESTDIR)$(PKG_CONFIG_LIBDIR) :
+	mkdir -p $@
 
-uninstall : uninstall.data uninstall.libs
+uninstall : @MISC_UNINSTALL_DATA@ uninstall.libs
 
 uninstall.data :
 	-test -d $(DESTDIR)$(tabsetdir) && rm -rf $(DESTDIR)$(tabsetdir)
@@ -130,6 +144,7 @@
 
 uninstall.libs :
 	-rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
+@MAKE_PC_FILES@	$(SHELL) -c 'for name in *.pc; do rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
 
 tags :
 
@@ -138,11 +153,13 @@
 mostlyclean :
 	-rm -f terminfo.tmp
 	-rm -f run_tic.sed
+@MAKE_PC_FILES@	-rm -f *.pc pc-files
 	-rm -f core tags TAGS *~ *.bak *.ln *.atac trace
 
 clean :: mostlyclean
 
 distclean : clean
+@MAKE_PC_FILES@	-rm -f gen-pkgconfig
 	-rm -f Makefile run_tic.sh ncurses-config
 
 realclean : distclean
diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
new file mode 100644
index 0000000..62d09ff
--- /dev/null
+++ b/misc/gen-pkgconfig.in
@@ -0,0 +1,160 @@
+#!@SHELL@
+# $Id: gen-pkgconfig.in,v 1.29 2015/07/04 20:37:01 tom Exp $
+##############################################################################
+# Copyright (c) 2009-2014,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: Thomas E. Dickey
+#
+# The complete configure script for ncurses is the ncurses5-config (or similar
+# name, depending on the flavor, e.g., ncursesw5-config, ncurses6-config, etc).
+# That provides more information than pkg-config, and is the portable and
+# recommended solution.
+#
+# For each library, generate a ".pc" file which depends on the base ncurses
+# library, except that the tinfo library does not depend on ncurses.
+LIB_NAME=@LIB_NAME@
+TINFO_NAME=@TINFO_NAME@
+PANEL_NAME=@PANEL_NAME@
+MENU_NAME=@MENU_NAME@
+FORM_NAME=@FORM_NAME@
+CXX_NAME=@CXX_NAME@
+DFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@
+TINFO_ARG_SUFFIX=@TINFO_ARG_SUFFIX@
+CXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@
+
+suffix=@PC_MODULE_SUFFIX@
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+includedir="@includedir@@includesubdir@"
+libdir="@libdir@"
+
+show_prefix='@prefix@'
+show_exec_prefix='@exec_prefix@'
+show_includedir='@includedir@@includesubdir@'
+show_libdir='@libdir@'
+
+MAIN_LIBRARY="${LIB_NAME}@USE_ARG_SUFFIX@"
+SUB_LIBRARY="${TINFO_ARG_SUFFIX}"
+PANEL_LIBRARY="${PANEL_NAME}@USE_ARG_SUFFIX@"
+MENU_LIBRARY="${MENU_NAME}@USE_ARG_SUFFIX@"
+FORM_LIBRARY="${FORM_NAME}@USE_ARG_SUFFIX@"
+
+CFLAGS="@PKG_CFLAGS@"
+if test "$includedir" != "/usr/include" ; then
+	includetop=`echo "$includedir" | sed -e 's,/include/[^/]*$,/include,'`
+	test "$includetop" = "/usr/include" && includetop="$includedir"
+	if test "x$includetop" != "x$includedir"
+	then
+		CFLAGS="$CFLAGS -I${includetop}"
+	fi
+	CFLAGS="$CFLAGS -I\${includedir}"
+fi
+
+LDFLAGS=
+if test "$libdir" != "/usr/lib" ; then
+	LDFLAGS="$LDFLAGS -L\${libdir}"
+fi
+if test "x@EXTRA_LDFLAGS@" != "x" ; then
+	LDFLAGS="$LDFLAGS @EXTRA_LDFLAGS@"
+fi
+
+# Check if we should specify the tinfo library explicitly so that terminfo
+# functions or curses variables (which also reside in tinfo) can be linked
+# using the -lncurses option.
+NEED_TINFO=no
+if test "x@TINFO_LIBS@" != "x" && \
+   test "x$TINFO_ARG_SUFFIX" != "x$MAIN_LIBRARY"
+then
+	case "x$LDFLAGS" in
+	(*--as-needed*)
+		NEED_TINFO=yes
+		;;
+	esac
+	case "x$LDFLAGS" in
+	(*,-rpath,*)
+		;;
+	(*)
+		NEED_TINFO=yes
+		;;
+	esac
+fi
+
+for name in @PC_MODULES_TO_MAKE@
+do
+	name="${name}"
+	LIBS="-l$name"
+
+	desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@"
+	reqs=
+
+	if test $name = $MAIN_LIBRARY ; then
+		desc="$desc library"
+		test $NEED_TINFO = yes && LIBS="$LIBS -l$TINFO_ARG_SUFFIX"
+	elif test $name = $SUB_LIBRARY ; then
+		desc="$desc terminal interface library"
+	elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then
+		reqs="$PANEL_LIBRARY${suffix}, $MENU_LIBRARY${suffix}, $FORM_LIBRARY${suffix}, $MAIN_LIBRARY${suffix}"
+		desc="$desc add-on library"
+	else
+		reqs="$MAIN_LIBRARY${suffix}"
+		desc="$desc add-on library"
+	fi
+
+	if test $name != $SUB_LIBRARY && \
+	   test $SUB_LIBRARY != $MAIN_LIBRARY && \
+	   test $name != $TINFO_NAME && \
+	   test $NEED_TINFO != yes ; then
+		test -n "$reqs" && reqs="$reqs, "
+		reqs="${reqs}${SUB_LIBRARY}${suffix}"
+	fi
+
+	echo "** creating ${name}${suffix}.pc"
+	cat >${name}${suffix}.pc <<EOF
+# pkg-config file generated by `basename $0`
+# vile:makemode
+
+prefix=$show_prefix
+exec_prefix=$show_exec_prefix
+libdir=$show_libdir
+includedir=$show_includedir
+abi_version=@cf_cv_abi_version@
+major_version=@NCURSES_MAJOR@
+version=@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@
+
+Name: ${name}${suffix}
+Description: $desc
+Version: \${version}
+URL: http://invisible-island.net/ncurses
+Requires.private: $reqs
+Libs: $LDFLAGS $LIBS
+Libs.private: @LIBS@
+Cflags: $CFLAGS
+EOF
+
+done
+# vile:shmode
diff --git a/misc/gen_edit.sh b/misc/gen_edit.sh
index f0aa72a..3460afc 100755
--- a/misc/gen_edit.sh
+++ b/misc/gen_edit.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 ##############################################################################
-# Copyright (c) 2004 Free Software Foundation, Inc.                          #
+# Copyright (c) 2004-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"), #
@@ -29,7 +29,7 @@
 #
 # Author: Thomas E. Dickey
 #
-# $Id: gen_edit.sh,v 1.1 2004/07/11 15:01:29 tom Exp $
+# $Id: gen_edit.sh,v 1.5 2012/04/01 15:04:37 tom Exp $
 # Generate a sed-script for converting the terminfo.src to the form which will
 # be installed.
 #
@@ -37,22 +37,82 @@
 #	The leaf directory names (lib, tabset, terminfo)
 #
 
-: ${ticdir=@TERMINFO@}
-: ${xterm_new=@WHICH_XTERM@}
+linux_dft=linux2.2
+
+: ${datadir=/usr/share}
+: ${WHICH_LINUX=$linux_dft}
+: ${WHICH_XTERM=xterm-new}
+: ${XTERM_KBS=BS}
 
 # If we're not installing into /usr/share/, we'll have to adjust the location
 # of the tabset files in terminfo.src (which are in a parallel directory).
-TABSET=`echo $ticdir | sed -e 's%/terminfo$%/tabset%'`
+TABSET=${datadir}/tabset
 if test "x$TABSET" != "x/usr/share/tabset" ; then
 cat <<EOF
 s%/usr/share/tabset%$TABSET%g
 EOF
 fi
 
-if test "$xterm_new" != "xterm-new" ; then
+if test "$WHICH_XTERM" != "xterm-new" ; then
+echo "** using $WHICH_XTERM terminal description for XTerm entry" >&2
 cat <<EOF
 /^# This is xterm for ncurses/,/^$/{
 	s/use=xterm-new,/use=$WHICH_XTERM,/
 }
 EOF
 fi
+
+if test "$XTERM_KBS" != "BS" ; then
+echo "** using DEL for XTerm backspace-key" >&2
+cat <<EOF
+/^xterm+kbs|fragment for backspace key/,/^#/{
+	s/kbs=^H,/kbs=^?,/
+}
+EOF
+fi
+
+# Work around incompatibities built into Linux console.  The 2.6 series added
+# a patch to fixup the SI/SO behavior, which is closer to vt100, but the older
+# kernels do not recognize those controls.  All of the kernels recognize the
+# older flavor of rmacs/smacs, but beginning in the late 1990s, changes made
+# as part of implementing UTF-8 prevent using those for line-drawing when the
+# console is in UTF-8 mode.  Taking into account the fact that it took about
+# ten years to provide (and distribute) the 2.6 series' change for SI/SO, the
+# default remains "linux2.2".
+case x$WHICH_LINUX in #(vi
+xauto)
+	system=`uname -s 2>/dev/null`
+	if test "x$system" = xLinux
+	then
+		case x`uname -r` in
+		x1.*)
+			WHICH_LINUX=linux-c
+			;;
+		x2.[0-4]*)
+			WHICH_LINUX=linux2.2
+			;;
+		*)
+			WHICH_LINUX=linux3.0
+			;;
+		esac
+	else
+		WHICH_LINUX=$linux_dft
+	fi
+	;;
+xlinux*)
+	# allow specific setting
+	;;
+*)
+	WHICH_LINUX=$linux_dft
+	;;
+esac
+
+if test $WHICH_LINUX != $linux_dft
+then
+echo "** using $WHICH_LINUX terminal description for Linux console" >&2
+cat <<EOF
+/^# This is Linux console for ncurses/,/^$/{
+	s/use=$linux_dft,/use=$WHICH_LINUX,/
+}
+EOF
+fi
diff --git a/misc/jpf-indent b/misc/jpf-indent
deleted file mode 100755
index cdd825c..0000000
--- a/misc/jpf-indent
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/bin/sh
-#****************************************************************************
-#* Copyright (c) 2004-2005,2006 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: jpf-indent,v 1.6 2006/02/18 17:07:15 tom Exp $
-# indent ncurses source written by Juergen Pfeifer
-NOOP=no
-OPTS='
--npro
---blank-lines-after-declarations
---blank-lines-after-procedures
---brace-indent2
---braces-after-if-line
---continue-at-parentheses
---indent-level2
---line-length80
---no-space-after-casts
---no-space-after-function-call-names
---parameter-indentation4
---swallow-optional-blank-lines
---tab-size8
-
--T FIELD
--T FIELDTYPE
--T FIELD_CELL
--T FORM
--T NCURSES_INLINE
--T RegExp_Arg 
--T TypeArgument 
--T WINDOW
--T attr_t
--T bool
--T cchar_t
--T chtype
--T enumARG
--T va_list
--T wchar_t 
-'
-for name in $*
-do
-	case $name in
-	-v|-n)
-		NOOP=yes
-		OPTS="$OPTS -v"
-		;;
-	-*)
-		OPTS="$OPTS $name"
-		;;
-	*.[ch])
-		save="${name}".a$$
-		test="${name}".b$$
-		rm -f "$save" "$test"
-		mv "$name" "$save"
-		sed \
-			-e '/MODULE_ID(/s/)$/);/' \
-			-e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
-			-e 's,\<GCC_PRINTFLIKE(,;//GCC_PRINTFLIKE(,' \
-			-e 's,\<GCC_SCANFLIKE(,;//GCC_SCANFLIKE(,' \
-			-e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
-			"$save" >"$test"
-		cp "$test" "$name"
-		chmod u+w "$name"
-		# ${INDENT_PROG-indent} --version
-		${INDENT_PROG-indent} -npro $OPTS "$name"
-		sed \
-			-e '/MODULE_ID(/s/);$/)/' \
-			-e 's,;[ 	]*//GCC_NORETURN;, GCC_NORETURN;,' \
-			-e 's,;[ 	]*//GCC_PRINTFLIKE(, GCC_PRINTFLIKE(,' \
-			-e 's,;[ 	]*//GCC_SCANFLIKE(, GCC_SCANFLIKE(,' \
-			-e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
-			"$name" >"$test"
-		mv "$test" "$name"
-		rm -f "${name}~"
-		if test $NOOP = yes ; then
-			if (cmp -s "$name" "$save" ) then
-				echo "** no change: $name"
-			else
-				diff -u "$save" "$name"
-			fi
-			rm -f "$name"
-			mv "$save" "$name"
-		elif ( cmp -s "$name" "$save" ) ; then
-			echo "** unchanged $name"
-			rm -f "${name}"
-			mv "$save" "$name"
-		else
-			echo "** updated $name"
-			rm -f "$save"
-		fi
-		;;
-	*)
-		echo "** ignored:   $name"
-		;;
-	esac
-done
diff --git a/misc/magic b/misc/magic
new file mode 100644
index 0000000..7e20f43
--- /dev/null
+++ b/misc/magic
@@ -0,0 +1,32 @@
+# $Id: magic,v 1.1 2015/05/02 18:49:38 tom Exp $
+##############################################################################
+# Copyright (c) 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.                                                             #
+##############################################################################
+# for reference, from file 5.22:
+0	string		\032\001	Compiled terminfo entry
+# ncurses-specific
+0       string          \210\210        Screen-dump (ncurses)
diff --git a/misc/ncu-indent b/misc/ncu-indent
deleted file mode 100755
index 862a108..0000000
--- a/misc/ncu-indent
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/bin/sh
-#****************************************************************************
-#* Copyright (c) 2001-2006,2008 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: ncu-indent,v 1.17 2008/08/03 15:46:44 tom Exp $
-NOOP=no
-OPTS='
---blank-lines-after-procedures
---braces-on-if-line
---continuation-indentation0
---continue-at-parentheses
---cuddle-else
---indent-level4
---leave-preprocessor-space
---no-blank-lines-after-commas
---no-blank-lines-after-declarations
---no-space-after-function-call-names
---procnames-start-lines
---space-special-semicolon
---swallow-optional-blank-lines
---tab-size8
-
--T NCURSES_EXPORT_VAR
--T NCURSES_INLINE
--T SCREEN
--T TERMTYPE
--T attr_t
--T cchar_t
--T chtype
--T inline
--T wchar_t
--T wint_t
-
--T BUFFER
--T CHARTYPE
--T FILE
--T GCC_NORETURN
--T LINE
--T MARK
--T RETSIGTYPE 
--T TBUFF
--T WINDOW
--T size_t
--T va_list
-
--T Cardinal
--T Widget
--T XtPointer
-'
-for name in $*
-do
-	case $name in
-	-v|-n)
-		NOOP=yes
-		OPTS="$OPTS -v"
-		;;
-	-*)
-		OPTS="$OPTS $name"
-		;;
-	*.[ch]|*.cc|*.cpp)
-		save="${name}".a$$
-		test="${name}".b$$
-		rm -f "$save" "$test"
-		mv "$name" "$save"
-		sed \
-			-e '/EMPTY_MODULE(/s/)$/);/' \
-			-e '/MODULE_ID(/s/)$/);/' \
-			-e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
-			-e 's,\<GCC_PRINTFLIKE(,;//GCC_PRINTFLIKE(,' \
-			-e 's,\<GCC_SCANFLIKE(,;//GCC_SCANFLIKE(,' \
-			-e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
-			"$save" >"$test"
-		cp "$test" "$name"
-		chmod u+w "$name"
-		# ${INDENT_PROG-indent} --version
-		${INDENT_PROG-indent} -npro $OPTS "$name"
-		sed \
-			-e '/EMPTY_MODULE(/s/);$/)/' \
-			-e '/MODULE_ID(/s/);$/)/' \
-			-e 's,;[ 	]*//GCC_NORETURN;, GCC_NORETURN;,' \
-			-e 's,;[ 	]*//GCC_PRINTFLIKE(, GCC_PRINTFLIKE(,' \
-			-e 's,;[ 	]*//GCC_SCANFLIKE(, GCC_SCANFLIKE(,' \
-			-e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
-			"$name" >"$test"
-		mv "$test" "$name"
-		rm -f "${name}~"
-		if test $NOOP = yes ; then
-			if (cmp -s "$name" "$save" ) then
-				echo "** no change: $name"
-			else
-				diff -u "$save" "$name"
-			fi
-			rm -f "$name"
-			mv "$save" "$name"
-		elif ( cmp -s "$name" "$save" ) ; then
-			echo "** unchanged $name"
-			rm -f "${name}"
-			mv "$save" "$name"
-		else
-			echo "** updated $name"
-			rm -f "$save"
-		fi
-		;;
-	*)
-		echo "** ignored:   $name"
-		;;
-	esac
-done
diff --git a/misc/ncurses-config b/misc/ncurses-config
deleted file mode 100644
index 1db5598..0000000
--- a/misc/ncurses-config
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/bin/sh
-# $Id: ncurses-config.in,v 1.12 2007/03/17 20:02:19 tom Exp $
-##############################################################################
-# Copyright (c) 2006,2007 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
-
-prefix="/usr/local"
-exec_prefix="${prefix}"
-
-bindir="${exec_prefix}/bin"
-libdir="${exec_prefix}/lib"
-datadir="${prefix}/share"
-mandir="${prefix}/man"
-
-THIS="ncurses"
-
-LANG=C;		export LANG
-LANGUAGE=C;	export LANGUAGE
-LC_ALL=C;	export LC_ALL
-LC_CTYPE=C;	export LC_CTYPE
-
-test $# = 0 && exec /bin/sh $0 --error
-
-while test $# -gt 0; do
-	case "$1" in
-	-*=*)
-		ARG=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
-		;;
-	*)
-		ARG=
-		;;
-	esac
-
-	case "$1" in
-	# basic configuration
-	--prefix=*)
-		prefix="$ARG"
-		test -z "$exec_prefix" && exec_prefix="$ARG"
-		;;
-	--prefix)
-		echo "$prefix"
-		;;
-	--exec-prefix=*)
-		exec_prefix="$ARG"
-		;;
-	--exec-prefix)
-		echo "$exec_prefix"
-		;;
-	# compile/link
-	--cflags)
-		INCS=
-		if test "${prefix}/include" != /usr/include ; then
-			INCS="-I${prefix}/include"
-		fi
-		if test "" != no ; then
-			INCS="$INCS -I${prefix}/include/${THIS}"
-		fi
-		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-			$INCS
-ENDECHO
-		;;
-	--libs)
-		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-			-L${exec_prefix}/lib  -l${THIS} 
-ENDECHO
-		;;
-	# identification
-	--version)
-		echo "5.7.20081102"
-		;;
-	--abi-version)
-		echo "5"
-		;;
-	--mouse-version)
-		echo "1"
-		;;
-	# locations
-	--bindir)
-		echo "${bindir}"
-		;;
-	--datadir)
-		echo "${datadir}"
-		;;
-	--libdir)
-		echo "${libdir}"
-		;;
-	--mandir)
-		echo "${mandir}"
-		;;
-	--terminfo)
-		echo "/usr/local/share/terminfo"
-		;;
-	--terminfo-dirs)
-		echo "/usr/local/share/terminfo"
-		;;
-	--termpath)
-		echo ""
-		;;
-	# general info
-	--help)
-		cat <<ENDHELP
-Usage: ${THIS}-config [options]
-
-Options:
-  --prefix           echos the package-prefix of ${THIS}
-  --prefix=ARG       sets the package-prefix of ${THIS}
-  --exec-prefix      echos the executable-prefix of ${THIS}
-  --exec-prefix=ARG  sets the executable-prefix of ${THIS}
-
-  --cflags           echos the C compiler flags needed to compile with ${THIS}
-  --libs             echos the libraries needed to link with ${THIS}
-
-  --version          echos the release+patchdate version of ${THIS}
-  --abi-version      echos the ABI version of ${THIS}
-  --mouse-version    echos the mouse-interface version of ${THIS}
-
-  --bindir           echos the directory containing ${THIS} programs
-  --datadir          echos the directory containing ${THIS} data
-  --libdir           echos the directory containing ${THIS} libraries
-  --mandir           echos the directory containing ${THIS} manpages
-  --terminfo         echos the \$TERMINFO terminfo database path
-  --terminfo-dirs    echos the \$TERMINFO_DIRS directory list
-  --termpath         echos the \$TERMPATH termcap list
-
-  --help             prints this message
-ENDHELP
-		;;
-	--error|*)
-		/bin/sh $0 --help 1>&2
-		exit 1
-		;;
-	esac
-	shift
-done
-# vile:shmode
diff --git a/misc/ncurses-config.in b/misc/ncurses-config.in
index a349250..73cbfff 100644
--- a/misc/ncurses-config.in
+++ b/misc/ncurses-config.in
@@ -1,7 +1,7 @@
 #!@SHELL@
-# $Id: ncurses-config.in,v 1.12 2007/03/17 20:02:19 tom Exp $
+# $Id: ncurses-config.in,v 1.35 2015/04/22 00:54:19 tom Exp $
 ##############################################################################
-# Copyright (c) 2006,2007 Free Software Foundation, Inc.                     #
+# Copyright (c) 2006-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"), #
@@ -28,67 +28,104 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey, 2006
-
-prefix="@prefix@"
-exec_prefix="@exec_prefix@"
-
-bindir="@bindir@"
-libdir="@libdir@"
-datadir="@datadir@"
-mandir="@mandir@"
-
-THIS="ncurses@DFT_ARG_SUFFIX@"
+# Author: Thomas E. Dickey, 2006-on
 
 LANG=C;		export LANG
 LANGUAGE=C;	export LANGUAGE
 LC_ALL=C;	export LC_ALL
 LC_CTYPE=C;	export LC_CTYPE
 
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+
+bindir="@bindir@"
+includedir="@includedir@"
+libdir="@libdir@"
+datarootdir="@datarootdir@"
+datadir="@datadir@"
+mandir="@mandir@"
+
+THIS="@LIB_NAME@@USE_LIB_SUFFIX@"
+TINFO_LIB="@TINFO_ARG_SUFFIX@"
+RPATH_LIST="@RPATH_LIST@"
+
+includesubdir="@includedir@/${THIS}"
+
+# Ensure that RPATH_LIST contains only absolute pathnames, if it is nonempty.
+# We cannot filter it out within the build-process since the variable is used
+# in some special cases of installation using a relative path.
+if test -n "$RPATH_LIST"
+then
+	save_IFS="$IFS"
+	IFS='@PATH_SEPARATOR@'
+	filtered=
+	for item in $RPATH_LIST
+	do
+		case "$item" in
+		./*|../*|*/..|*/../*)
+			;;
+		*)
+			test -n "$filtered" && filtered="${filtered}@PATH_SEPARATOR@"
+			filtered="${filtered}${item}"
+			;;
+		esac
+	done
+	IFS="$save_IFS"
+	# if the result is empty, there is little we can do to fix it
+	RPATH_LIST="$filtered"
+fi
+
+# with --disable-overwrite, we installed into a subdirectory, but transformed
+# the headers to include like this:
+#	<ncurses@LIB_SUFFIX@/curses.h>
+if test x@WITH_OVERWRITE@ = xno ; then
+	case $includedir in
+	$prefix/include/ncurses@LIB_SUFFIX@@EXTRA_SUFFIX@)
+		includedir=`echo "$includedir" | sed -e 's,/[^/]*$,,'`
+		;;
+	esac
+fi
+
 test $# = 0 && exec @SHELL@ $0 --error
 
 while test $# -gt 0; do
 	case "$1" in
-	-*=*)
-		ARG=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
-		;;
-	*)
-		ARG=
-		;;
-	esac
-
-	case "$1" in
 	# basic configuration
-	--prefix=*)
-		prefix="$ARG"
-		test -z "$exec_prefix" && exec_prefix="$ARG"
-		;;
 	--prefix)
 		echo "$prefix"
 		;;
-	--exec-prefix=*)
-		exec_prefix="$ARG"
-		;;
 	--exec-prefix)
 		echo "$exec_prefix"
 		;;
 	# compile/link
 	--cflags)
-		INCS=
-		if test "${prefix}/include" != /usr/include ; then
-			INCS="-I${prefix}/include"
+		INCS="@PKG_CFLAGS@"
+		if test "x@WITH_OVERWRITE@" = xno ; then
+			INCS="$INCS -I${includesubdir}"
 		fi
-		if test "@WITH_OVERWRITE@" != no ; then
-			INCS="$INCS -I${prefix}/include/${THIS}"
+		if test "${includedir}" != /usr/include ; then
+			INCS="$INCS -I${includedir}"
 		fi
 		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
 			$INCS
 ENDECHO
 		;;
 	--libs)
+		if test "$libdir" = /usr/lib
+		then
+			LIBDIR=
+		else
+			LIBDIR=-L$libdir
+		fi
+		if test @TINFO_NAME@ = @LIB_NAME@ ; then
 		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-			-L${exec_prefix}/lib @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
+			$LIBDIR @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
 ENDECHO
+		else
+		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
+			$LIBDIR @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@
+ENDECHO
+		fi
 		;;
 	# identification
 	--version)
@@ -107,6 +144,9 @@
 	--datadir)
 		echo "${datadir}"
 		;;
+	--includedir)
+		echo "${includedir}"
+		;;
 	--libdir)
 		echo "${libdir}"
 		;;
@@ -125,13 +165,11 @@
 	# general info
 	--help)
 		cat <<ENDHELP
-Usage: ${THIS}-config [options]
+Usage: `basename $0` [options]
 
 Options:
   --prefix           echos the package-prefix of ${THIS}
-  --prefix=ARG       sets the package-prefix of ${THIS}
   --exec-prefix      echos the executable-prefix of ${THIS}
-  --exec-prefix=ARG  sets the executable-prefix of ${THIS}
 
   --cflags           echos the C compiler flags needed to compile with ${THIS}
   --libs             echos the libraries needed to link with ${THIS}
@@ -142,6 +180,7 @@
 
   --bindir           echos the directory containing ${THIS} programs
   --datadir          echos the directory containing ${THIS} data
+  --includedir       echos the directory containing ${THIS} header files
   --libdir           echos the directory containing ${THIS} libraries
   --mandir           echos the directory containing ${THIS} manpages
   --terminfo         echos the \$TERMINFO terminfo database path
@@ -158,4 +197,5 @@
 	esac
 	shift
 done
+# vi:ts=4 sw=4
 # vile:shmode
diff --git a/misc/run_tic.in b/misc/run_tic.in
index 2732403..784f9f4 100644
--- a/misc/run_tic.in
+++ b/misc/run_tic.in
@@ -1,7 +1,7 @@
 #!@SHELL@
-# $Id: run_tic.in,v 1.23 2006/10/28 19:43:30 tom Exp $
+# $Id: run_tic.in,v 1.34 2012/10/06 19:00:51 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 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"), #
@@ -28,7 +28,7 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey 1996,2000
+# Author: Thomas E. Dickey 1996-on
 #
 # This script is used to install terminfo.src using tic.  We use a script
 # because the path checking is too awkward to do in a makefile.
@@ -41,38 +41,57 @@
 # The script is designed to be run from the misc/Makefile as
 #	make install.data
 
-: ${suffix=@PROG_EXT@}
-: ${DESTDIR=@DESTDIR@}
-: ${prefix=@prefix@}
-: ${exec_prefix=@exec_prefix@}
-: ${bindir=@bindir@}
-: ${top_srcdir=@top_srcdir@}
-: ${srcdir=@srcdir@}
-: ${datadir=@datadir@}
-: ${ticdir=@TERMINFO@}
-: ${source=@TERMINFO_SRC@}
-: ${LN_S="@LN_S@"}
-: ${THAT_CC=cc}
-: ${THIS_CC=cc}
-: ${ext_funcs=@NCURSES_EXT_FUNCS@}
+: ${suffix:=@EXEEXT@}
+: ${DESTDIR:=@DESTDIR@}
+: ${prefix:=@prefix@}
+: ${exec_prefix:=@exec_prefix@}
+: ${bindir:=@bindir@}
+: ${top_srcdir:=@top_srcdir@}
+: ${srcdir:=@srcdir@}
+: ${datarootdir:=@datarootdir@}
+: ${datadir:=@datadir@}
+: ${TIC_PATH:=@TIC_PATH@}
+: ${ticdir:=@TERMINFO@}
+: ${source:=@TERMINFO_SRC@}
+: ${LN_S:="@LN_S@"}
+: ${cross_compiling:=no}
+: ${ext_funcs:=@NCURSES_EXT_FUNCS@}
 
 test -z "${DESTDIR}" && DESTDIR=
 
 # Allow tic to run either from the install-path, or from the build-directory.
 # Do not do this if we appear to be cross-compiling.  In that case, we rely
 # on the host's copy of tic to compile the terminfo database.
-if test "$THAT_CC" = "$THIS_CC" ; then
-case "$PATH" in
-:*) PATH=../progs:../lib:${DESTDIR}$bindir$PATH ;;
-*) PATH=../progs:../lib:${DESTDIR}$bindir:$PATH ;;
-esac
-export PATH
-SHLIB="sh $srcdir/shlib"
+if test "x$cross_compiling" = "xno"
+then
+	if test -f ../progs/tic$suffix
+	then
+		case "$PATH" in
+		\@PATH_SEPARATOR@*)
+			PATH="../progs@PATH_SEPARATOR@../lib@PATH_SEPARATOR@${DESTDIR}$bindir$PATH"
+			;;
+		*)
+			PATH="../progs@PATH_SEPARATOR@../lib@PATH_SEPARATOR@${DESTDIR}$bindir@PATH_SEPARATOR@$PATH"
+			;;
+		esac
+		export PATH
+		if test @DFT_LWR_MODEL@ = shared
+		then
+			SHLIB="sh $srcdir/shlib"
+			TIC_PATH="$SHLIB tic"
+		else
+			TIC_PATH="tic"
+		fi
+	elif test "$TIC_PATH" = unknown
+	then
+		echo '? no tic program found'
+		exit 1
+	fi
 else
-# Cross-compiling, so don't set PATH or run shlib.
-SHLIB=
-# reset $suffix, since it applies to the target, not the build platform.
-suffix=
+	# Cross-compiling, so don't set PATH or run shlib.
+	SHLIB=
+	# reset $suffix, since it applies to the target, not the build platform.
+	suffix=
 fi
 
 
@@ -92,6 +111,14 @@
 # Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
 TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
 
+# Parent directory may not exist, which would confuse the install for hashed
+# database.  Fix.
+PARENT=`echo "$TERMINFO" | sed -e 's%/[^/]*$%%'`
+if test -n "$PARENT"
+then
+	test -d $PARENT || mkdir -p $PARENT
+fi
+
 # Remove the old terminfo stuff; we don't care if it existed before, and it
 # would generate a lot of confusing error messages if we tried to overwrite it.
 # We explicitly remove its contents rather than the directory itself, in case
@@ -100,7 +127,7 @@
 
 if test "$ext_funcs" = 1 ; then
 cat <<EOF
-Running tic to install $TERMINFO ...
+Running $TIC_PATH to install $TERMINFO ...
 
 	You may see messages regarding extended capabilities, e.g., AX.
 	These are extended terminal capabilities which are compiled
@@ -110,7 +137,7 @@
 	document, and install the terminfo without the -x option.
 
 EOF
-if ( $SHLIB tic$suffix -x -s -o $TERMINFO $source )
+if ( $TIC_PATH -x -s -o $TERMINFO $source )
 then
 	echo '** built new '$TERMINFO
 else
@@ -119,7 +146,7 @@
 fi
 else
 cat <<EOF
-Running tic to install $TERMINFO ...
+Running $TIC_PATH to install $TERMINFO ...
 
 	You may see messages regarding unknown capabilities, e.g., AX.
 	These are extended terminal capabilities which may be compiled
@@ -129,7 +156,7 @@
 	document, and install the terminfo without the -x option.
 
 EOF
-if ( $SHLIB tic$suffix -s -o $TERMINFO $source )
+if ( $TIC_PATH -s -o $TERMINFO $source )
 then
 	echo '** built new '$TERMINFO
 else
diff --git a/misc/run_tic.sed b/misc/run_tic.sed
deleted file mode 100644
index cbbdcac..0000000
--- a/misc/run_tic.sed
+++ /dev/null
@@ -1,4 +0,0 @@
-s%/usr/share/tabset%/usr/local/share/tabset%g
-/^# This is xterm for ncurses/,/^$/{
-	s/use=xterm-new,/use=xterm-new,/
-}
diff --git a/misc/run_tic.sh b/misc/run_tic.sh
deleted file mode 100644
index 4a8f5b3..0000000
--- a/misc/run_tic.sh
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/sh
-# $Id: run_tic.in,v 1.23 2006/10/28 19:43:30 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2005,2006 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,2000
-#
-# This script is used to install terminfo.src using tic.  We use a script
-# because the path checking is too awkward to do in a makefile.
-#
-# Assumes:
-#	The leaf directory names (lib, tabset, terminfo)
-#
-echo '** Building terminfo database, please wait...'
-#
-# The script is designed to be run from the misc/Makefile as
-#	make install.data
-
-: ${suffix=}
-: ${DESTDIR=}
-: ${prefix=/usr/local}
-: ${exec_prefix=${prefix}}
-: ${bindir=${exec_prefix}/bin}
-: ${top_srcdir=..}
-: ${srcdir=.}
-: ${datadir=${prefix}/share}
-: ${ticdir=/usr/local/share/terminfo}
-: ${source=${top_srcdir}/misc/terminfo.src}
-: ${LN_S="ln -s"}
-: ${THAT_CC=cc}
-: ${THIS_CC=cc}
-: ${ext_funcs=1}
-
-test -z "${DESTDIR}" && DESTDIR=
-
-# Allow tic to run either from the install-path, or from the build-directory.
-# Do not do this if we appear to be cross-compiling.  In that case, we rely
-# on the host's copy of tic to compile the terminfo database.
-if test "$THAT_CC" = "$THIS_CC" ; then
-case "$PATH" in
-:*) PATH=../progs:../lib:${DESTDIR}$bindir$PATH ;;
-*) PATH=../progs:../lib:${DESTDIR}$bindir:$PATH ;;
-esac
-export PATH
-SHLIB="sh $srcdir/shlib"
-else
-# Cross-compiling, so don't set PATH or run shlib.
-SHLIB=
-# reset $suffix, since it applies to the target, not the build platform.
-suffix=
-fi
-
-
-# set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
-# the PATH we just set.
-SHLIB_PATH=$PATH
-export SHLIB_PATH
-
-# set a variable to simplify environment update in shlib
-SHLIB_HOST=eabi
-export SHLIB_HOST
-
-# don't use user's TERMINFO variable
-TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
-umask 022
-
-# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
-
-# Remove the old terminfo stuff; we don't care if it existed before, and it
-# would generate a lot of confusing error messages if we tried to overwrite it.
-# We explicitly remove its contents rather than the directory itself, in case
-# the directory is actually a symbolic link.
-( test -d "$TERMINFO" && cd $TERMINFO && rm -fr ? 2>/dev/null )
-
-if test "$ext_funcs" = 1 ; then
-cat <<EOF
-Running tic to install $TERMINFO ...
-
-	You may see messages regarding extended capabilities, e.g., AX.
-	These are extended terminal capabilities which are compiled
-	using
-		tic -x
-	If you have ncurses 4.2 applications, you should read the INSTALL
-	document, and install the terminfo without the -x option.
-
-EOF
-if ( $SHLIB tic$suffix -x -s -o $TERMINFO $source )
-then
-	echo '** built new '$TERMINFO
-else
-	echo '? tic could not build '$TERMINFO
-	exit 1
-fi
-else
-cat <<EOF
-Running tic to install $TERMINFO ...
-
-	You may see messages regarding unknown capabilities, e.g., AX.
-	These are extended terminal capabilities which may be compiled
-	using
-		tic -x
-	If you have ncurses 4.2 applications, you should read the INSTALL
-	document, and install the terminfo without the -x option.
-
-EOF
-if ( $SHLIB tic$suffix -s -o $TERMINFO $source )
-then
-	echo '** built new '$TERMINFO
-else
-	echo '? tic could not build '$TERMINFO
-	exit 1
-fi
-fi
-
-# Make a symbolic link to provide compatibility with applications that expect
-# to find terminfo under /usr/lib.  That is, we'll _try_ to do that.  Not
-# all systems support symbolic links, and those that do provide a variety
-# of options for 'test'.
-if test "$TICDIR" != "$TERMINFO" ; then
-	( rm -f $TICDIR 2>/dev/null )
-	if ( cd $TICDIR 2>/dev/null )
-	then
-		cd $TICDIR
-		TICDIR=`pwd`
-		if test $TICDIR != $TERMINFO ; then
-			# Well, we tried.  Some systems lie to us, so the
-			# installer will have to double-check.
-			echo "Verify if $TICDIR and $TERMINFO are the same."
-			echo "The new terminfo is in $TERMINFO; the other should be a link to it."
-			echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
-		fi
-	else
-		cd ${DESTDIR}$prefix
-		# Construct a symbolic link that only assumes $ticdir has the
-		# same $prefix as the other installed directories.
-		RELATIVE=`echo $ticdir|sed -e 's%^'$prefix'/%%'`
-		if test "$RELATIVE" != "$ticdir" ; then
-			RELATIVE=../`echo $ticdir|sed -e 's%^'$prefix'/%%' -e 's%^/%%'`
-		fi
-		if ( ln -s $RELATIVE $TICDIR )
-		then
-			echo '** sym-linked '$TICDIR' for compatibility'
-		else
-			echo '** could not sym-link '$TICDIR' for compatibility'
-		fi
-	fi
-fi
-# vile:shmode
diff --git a/misc/terminfo.src b/misc/terminfo.src
index 92a8d69..e5d1687 100644
--- a/misc/terminfo.src
+++ b/misc/terminfo.src
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #	bug-ncurses@gnu.org
 #
-#	$Revision: 1.341 $
-#	$Date: 2008/10/12 23:03:54 $
+#	$Revision: 1.549 $
+#	$Date: 2015/07/25 19:27:20 $
 #
 # The original header is preserved below for reference.  It is noted that there
 # is a "newer" version which differs in some cosmetic details (but actually
@@ -321,7 +321,7 @@
 # DEL and ^C are hardcoded to act as kill characters.
 # ^D acts as a line break (just like newline).
 # It also interprets
-#      \033];xxx\007 
+#      \033];xxx\007
 # for compatibility with xterm -TD
 9term|Plan9 terminal emulator for X,
 	am,
@@ -340,7 +340,7 @@
 	cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
 	cuu=\E[%p1%dA, use=ansi+local1,
 ansi+tabs,
-	cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[2g,
+	cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[3g,
 ansi+inittabs,
 	it#8, use=ansi+tabs,
 ansi+erase,
@@ -376,11 +376,19 @@
 	dim=\E[2m,
 	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;%?%p7%t8;%;m,
 	use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul,
-ansi+pp|ansi printer port,
-	mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
 ansi+csr|ansi scroll-region plus cursor save & restore,
 	csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7,
 
+# The normal (ANSI) flavor of "media copy" building block asserts that
+# characters sent to the printer do not echo on the screen. DEC terminals
+# can also be put into autoprinter mode, where each line is sent to the
+# printer as you move off that line, e.g., by a carriage return.
+ansi+pp|ansi printer port,
+	mc5i,
+	mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
+dec+pp|DEC autoprinter mode,
+	mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i,
+
 # The IBM PC alternate character set.  Plug this into any Intel console entry.
 # We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
 # ROM graphics for control characters such as the diamond, up- and down-arrow.
@@ -452,12 +460,14 @@
 # For more detail on this rather pathetic standard, see the comments
 # near the end of this file.
 ibcs2|Intel Binary Compatibility Standard prescriptions,
-	cbt=\E[Z, clear=\Ec, cub=\E[%p1%dD, cud=\E[%p1%dB,
-	cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+	cbt=\E[Z, clear=\Ec, cub=\E[%p1%dD, cub1=\E[1D,
+	cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
 	dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX,
-	hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
-	indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, rmam=\E[?7l, sc=\E7,
-	smam=\E[?7h, tbc=\E[g, vpa=\E[%i%p1%dd,
+	hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+	il=\E[%p1%dL, indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT,
+	rmam=\E[?7l, sc=\E7, smam=\E[?7h, tbc=\E[g,
+	vpa=\E[%i%p1%dd,
 
 #### ANSI/ECMA-48 terminals and terminal emulators
 #
@@ -487,7 +497,7 @@
 # ansi-mtabs adds relative addressing and minimal tab support
 ansi-mtabs|any ansi terminal with pessimistic assumptions,
 	it#8,
-	ht=^I, use=ansi+local1, use=ansi-mini,
+	ht=^I, use=ansi-mini, use=ansi+local1,
 
 # ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL
 #
@@ -545,7 +555,7 @@
 	cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
 	dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
 	hts=\EH, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[2g,
+	kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[3g,
 	use=klone+sgr-dumb,
 pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode),
 	lines#25, use=pcansi-m,
@@ -576,7 +586,7 @@
 	kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
 	kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
 	rep=%p1%c\E[%p2%{1}%-%db, rin=\E[%p1%dT, s0ds=\E(B,
-	s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[2g,
+	s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[3g,
 	vpa=\E[%i%p1%dd, use=pcansi-m,
 
 ansi+enq|ncurses extension for ANSI ENQ,
@@ -617,11 +627,45 @@
 	clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[k, home=\E[H,
 	is2=\E[m\E[?7h, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-	khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s", rc=\E[u,
+	khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s"p, rc=\E[u,
 	rmam=\E[?7l, sc=\E[s, smam=\E[?7h, u6=\E[%i%d;%dR,
 	u7=\E[6n, use=klone+color, use=klone+sgr8,
+
+# Keypad:	Home=\0G	Up=\0H	PrPag=\0I
+#		ka1,kh		kcuu1		kpp,ka3
+#
+#		Left=\0K	5=\0L		Right=\0M
+#		kcub1		kb2		kcuf1
+#
+#		End=\0O		Down=\0P	NxPag=\0Q
+#		kc1,kend	kcud1		kc3,knp
+#
+#		Ins=\0R		Del=\0S
+#		kich1		kdch1
+#
+# On keyboard with 12 function keys,
+#	shifted f-keys: F13-F24
+#	control f-keys: F25-F36
+#	alt f-keys:     F37-F48
+# The shift/control/alt keys do not modify each other, but alt overrides both,
+# and control overrides shift.
+#
+# <pfkey> capability for F1-F48 -TD
 ansi.sys|ANSI.SYS 3.1 and later versions,
-	el=\E[K, use=ansi.sys-old,
+	el=\E[K, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
+	kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
+	kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
+	kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
+	kf17=\0X, kf18=\0Y, kf19=\0Z, kf2=\0<, kf20=\0[, kf21=\0\\,
+	kf22=\0], kf23=\0\207, kf24=\0\210, kf25=\0\^, kf26=\0_,
+	kf27=\0`, kf28=\0a, kf29=\0b, kf3=\0=, kf30=\0c, kf31=\0d,
+	kf32=\0e, kf33=\0f, kf34=\0g, kf35=\0\211, kf36=\0\212,
+	kf37=\0h, kf38=\0i, kf39=\0j, kf4=\0>, kf40=\0k, kf41=\0l,
+	kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
+	kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
+	kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
+	pfkey=\E[0;%?%p1%{11}%<%t%'\:'%e%p1%{13}%<%t%'z'%e%p1%{23}%<%t%'G'%e%p1%{25}%<%t%'p'%e%p1%'#'%<%t%'E'%e%p1%'%'%<%t%'f'%e%p1%'/'%<%t%'C'%e%{92}%;%p1%+%d;%p2"%s"p,
+	use=ansi.sys-old,
 
 #
 # Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
@@ -654,8 +698,841 @@
 	is2=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
 	use=ansi.sysk,
 
-#### ANSI console types
+#### Atari ST terminals
+
+# From Guido Flohr <gufl0000@stud.uni-sb.de>.
 #
+tw52|tw52-color|Toswin window manager with color,
+	bce,
+	colors#16, pairs#256,
+	oc=\Eb?\Ec0, op=\Eb?\Ec0,
+	setab=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
+	setaf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
+	setb=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
+	setf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
+	use=tw52-m,
+tw52-m|Toswin window manager monochrome,
+	ul,
+	ma#999,
+	bold=\Eya, dch1=\Ea, dim=\EyB,
+	is2=\Ev\Eq\Ez_\Ee\Ei\Eb?\Ec0, rev=\EyP, rmso=\EzQ,
+	rmul=\EzH, rs2=\Ev\Eq\Ez_\Ee\Ei\Eb?\Ec0, sgr0=\Ez_,
+	smso=\EyQ, smul=\EyH, use=at-m,
+tt52|Atari TT medium and high resolution,
+	lines#30, use=at-color,
+st52-color|at-color|atari-color|atari_st-color|Atari ST with color,
+	bce,
+	colors#16, pairs#256,
+	is2=\Ev\Eq\Ee\Eb1\Ec0, rs2=\Ev\Eq\Ee\Eb1\Ec0,
+	setab=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
+	setaf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
+	setb=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
+	setf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
+	use=st52,
+st52|st52-m|at|at-m|atari|atari-m|atari_st|atarist-m|Atari ST,
+	am, eo, mir, npc,
+	cols#80, it#8, lines#24,
+	bel=^G, civis=\Ef, clear=\EE, cnorm=\Ee, cr=^M, cub1=\ED,
+	cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+	cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, el1=\Eo, home=\EH, ht=^I,
+	il1=\EL, ind=^J, is2=\Ev\Eq\Ee, kLFT=\Ed, kRIT=\Ec, kbs=^H,
+	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\177,
+	kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
+	kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EQ,
+	kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV, kf8=\EW,
+	kf9=\EX, khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb, kpp=\Ea,
+	kund=\EK, nel=^M^J, rc=\Ek, rev=\Ep, ri=\EI, rmso=\Eq,
+	rs2=\Ev\Eq\Ee, sc=\Ej, sgr0=\Eq, smso=\Ep,
+tw100|toswin vt100 window mgr,
+	eo, mir, msgr, xon,
+	colors#8, cols#80, it#8, lines#24, pairs#64, vt#3,
+	acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	bel=^G, blink=\E[5m, bold=\E[1m, civis=\Ef,
+	clear=\E[2J\E[H, cnorm=\Ee, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\EB,
+	cuf=\E[%p1%dC, cuf1=\EC, cup=\E[%i%p1%d;%p2%dH,
+	cuu=\E[%p1%dA, cuu1=\EA, dch1=\Ea, dim=\E[2m, dl=\E[%p1%dM,
+	dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
+	hts=\EH, ich=\E[%p1%d@, il1=\EL, ind=^J, is2=\E<\E)0, kbs=^H,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\177,
+	kf1=\EOP, kf10=\EOY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
+	kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EOQ,
+	kf20=\Ey, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
+	kf8=\EOW, kf9=\EOX, khlp=\EH, khome=\E\EE, kich1=\EI,
+	knp=\Eb, kpp=\E\Ea, kund=\EK, ll=\E[24H, nel=\EE,
+	oc=\E[30;47m, op=\E[30;47m, rc=\E8, rev=\E[7m, ri=\EM,
+	rmacs=^O, rmcup=\E[?7h, rmir=\Ei, rmkx=\E[?1l\E>,
+	rmso=\E[m, rmul=\E[m,
+	rs1=\E<\E[20l\E[?3;6;9l\E[r\Eq\E(B\017\E)0\E>,
+	sc=\E7,
+	setb=\E[4%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=%t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'%=%t3%e7%;m,
+	setf=\E[3%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=%t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'%=%t3%e7%;m,
+	sgr0=\E[m, smacs=^N, smcup=\E[?7l, smir=\Eh,
+	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+# The entries for stv52 and stv52pc probably need a revision.
+stv52|MiNT virtual console,
+	am, msgr,
+	cols#80, it#8, lines#30,
+	bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
+	cnorm=\E. \Ee, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
+	dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
+	ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+	kcuu1=\EA, kdch1=\177, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
+	kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
+	kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
+	kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
+	kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
+	op=\Eb@\EcO, rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_,
+	rmso=\Eq, rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_,
+	smcup=\Ev\Ee\Ez_, smso=\Ep, smul=\EyH,
+stv52pc|MiNT virtual console with PC charset,
+	am, msgr,
+	cols#80, it#8, lines#30,
+	acsc=+\257\,\256-\^.v0\333I\374`\177a\260f\370g\361h\261j\331k\277l\332m\300n\305o\377p-q\304r-s_t+u+v+w+x\263y\363z\362{\343|\366}\234~\371,
+	bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
+	cnorm=\E. \Ee, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
+	dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
+	ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+	kcuu1=\EA, kdch1=\177, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
+	kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
+	kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
+	kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
+	kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
+	rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_, rmso=\Eq,
+	rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_,
+	smso=\Ep, smul=\EyH,
+
+# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
+atari-old|atari st,
+	OTbs, am,
+	cols#80, it#8, lines#25,
+	clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
+	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
+	ed=\EJ, el=\EK, ht=^I, il1=\EL, kcub1=\ED, kcud1=\EB,
+	kcuf1=\EC, kcuu1=\EA, ri=\EI, rmso=\Eq, sgr0=\Eq, smso=\Ep,
+# UniTerm terminal program for the Atari ST:  49-line VT220 emulation mode
+# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
+uniterm|uniterm49|UniTerm VT220 emulator with 49 lines,
+	lines#49,
+	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H,
+	use=vt220,
+# MiNT VT52 emulation. 80 columns, 25 rows.
+# MiNT is Now TOS, the operating system which comes with all Ataris now
+# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
+# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
+# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
+st52-old|Atari ST with VT52 emulation,
+	am, km,
+	cols#80, lines#25,
+	bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=^M, cub1=\ED,
+	cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+	cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
+	ind=^J, ka1=\E#7, ka3=\E#5, kb2=\E#9, kbs=^H, kc1=\E#1,
+	kc3=\E#3, kclr=\E#7, kcub1=\E#K, kcud1=\E#P, kcuf1=\E#M,
+	kcuu1=\E#H, kf0=\E#D, kf1=\E#;, kf2=\E#<, kf3=\E#=, kf4=\E#>,
+	kf5=\E#?, kf6=\E#@, kf7=\E#A, kf8=\E#B, kf9=\E#C, khome=\E#G,
+	kil1=\E#R, kind=\E#2, kri=\E#8, lf0=f10, nel=^M^J, rc=\Ek,
+	ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
+	smcup=\Ee, smso=\Ep,
+
+#### Apple Terminal.app
+
+# nsterm*|Apple_Terminal - AppKit Terminal.app
+#
+# Terminal.app is a Terminal emulator bundled with NeXT's NeXTStep and
+# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X
+# Server and Mac OS X operating systems. There is also a
+# "terminal.app" in GNUStep, but I believe it to be an unrelated
+# codebase and I have not attempted to describe it here.
+#
+# For NeXTStep, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you
+# are pretty much on your own. Use "nsterm-7-m" and hope for the best.
+# You might also try "nsterm-7" and "nsterm-old" if you suspect your
+# version supports color.
+#
+# To determine the version of Terminal.app you're using by running:
+#
+#     echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION"
+#
+# For Apple_Terminal v309+, use "nsterm-256color" (or "nsterm-bce")
+#
+# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm")
+#
+# For Apple_Terminal v71+/v100+, use "nsterm-bce".
+#
+# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s".
+#
+# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s".
+#
+# For all earlier versions (Apple_Terminal), try "nsterm-7-m"
+# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s"
+# might work too, but really you're on your own here since these
+# systems are very obsolete and I can't test them. I do welcome
+# patches, though :).
+
+# Other Terminals:
+#
+# For GNUstep_Terminal, you're probably best off using "linux" or
+# writing your own terminfo.
+
+# For MacTelnet, you're on your own. It's a different codebase, and
+# seems to be somewhere between "vt102", "ncsa" and "xterm-color".
+
+# For iTerm.app, see "iterm".
+
+#
+# The AppKit Terminal.app descriptions all have names beginning with
+# "nsterm". Note that the statusline (-s) versions use the window
+# titlebar as a phony status line, and may produce warnings during
+# compilation as a result ("tsl uses 0 parameters, expected 1".)
+# Ignore these warnings, or even ignore these entries entirely. Apps
+# which need to position the cursor or do other fancy stuff inside the
+# status line won't work with these entries. They're primarily useful
+# for programs like Pine which provide simple notifications in the
+# status line. Please note that non-ASCII characters don't work right
+# in the status line, since Terminal.app incorrectly interprets their
+# Unicode codepoints as MacRoman codepoints (in earlier Mac OS X
+# versions) or only accepts status lines consisting entirely of
+# characters from the first 256 Unicode positions (including C1 but
+# not C0 or DEL.)
+#
+# The Mythology* of AppKit Terminal.app:
+#
+# In the days of NeXTSTep 0.x and 1.x there were two incompatible
+# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a
+# shareware replacement for Terminal called "Stuart" which NeXT bought
+# and used as the basis for the Terminal.app in NeXTstep 2+,
+# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I
+# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or
+# capabilities for the early versions, but I believe that the
+# TERM_PROGRAM_VERSION may have been reset at some point.
+#
+# The early versions were tailored to the NeXT character set. Sometime
+# after the Apple aquisition the encoding was swiched to MacRoman
+# (initally with serious altcharset bugs due to incomplete conversion
+# of the old NeXT code,) and then later to UTF-8. Alos sometime during
+# or just prior to the early days of Mac OS X, the Terminal grew ANSI
+# 8-color support (initially buggy when combined with attributes, but
+# that was later fixed.) More recently, around Mac OS X version 10.3
+# or so (Terminal.app v100+) xterm-like 16-color support was added. In
+# some versions (for instance 133-1 which shipped with Mac OS X
+# version 10.4) this suffered from the <bce> bug, but that seems to
+# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+).
+#
+# In the early days of Mac OS X the terminal was fairly buggy and
+# would routinely crash under load. Many of these bugs seem to have
+# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but
+# some may still remain. This change seems to correspond to
+# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as
+# it did previously.
+#
+# * This may correspond with what actually happened, but I don't
+#   know. It is based on guesswork, hearsay, private correspondence,
+#   my faulty memory, and the following online sources and references:
+#
+# [1] "Three Scotts and a Duane" by Simson L. Garfinkel
+# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html
+#
+# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia
+# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep
+#
+# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
+#   "nsterm" to comply with the name length and case conventions and
+#   limitations of various software packages [notably Solaris terminfo
+#   and UNIX.] A single Apple_Terminal alias is retained for
+#   backwards-compatbility.
+#
+# * Added function key support (F1-F4). These only work in Terminal.app
+#   version 51, hopefully the capabilities won't cause problems for people
+#   using version 41.
+#
+# * Added "full color" (-c) entries which support the 16-color mode in
+#   version 51.
+#
+# * By default, version 51 uses UTF-8 encoding with broken altcharset
+#   support, so "ASCII" (-7) entries without altcharset support were
+#   added.
+
+# nsterm - AppKit Terminal.app
+#
+# Apple's Mac OS X includes a Terminal.app derived from the old NeXT
+# Terminal.app. It is a partial VT100 emulation with some xterm-like
+# extensions. This terminfo was written to describe versions 41
+# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X
+# version 10.1) of Terminal.app.
+#
+# Terminal.app runs under the Mac OS X Quartz windowing system (and
+# other AppKit-supported windowing systems.)  On the Mac OS X machine I
+# use, the executable for Terminal.app is:
+# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
+#
+# If you're looking for a description of the full-screen system
+# console which runs under Apple's Darwin operating system on PowerPC
+# platforms, see the "xnuppc" entry instead.
+#
+# There were no function keys in version 41. In version 51, there are
+# four working function keys (F1, F2, F3 and F4.) The function keys
+# are included in all of these entries.
+#
+# It does not support mouse pointer position reporting. Under some
+# circumstances the cursor can be positioned using option-click; this
+# works by comparing the cursor position and the selected position,
+# and simulating enough cursor-key presses to move the cursor to the
+# selected position. This technique fails in all but the simplest
+# applications.
+#
+# It provides partial ANSI color support (background colors interacted
+# badly with bold in version 41, though, as reflected in :ncv:.) The
+# monochrome (-m) entries are useful if you've disabled color support
+# or use a monochrome monitor. The full color (-c) entries are useful
+# in version 51, which doesn't exhibit the background color bug. They
+# also enable an xterm-compatible 16-color mode.
+#
+# The configurable titlebar is set using xterm-compatible sequences;
+# it is used as a status bar in the statusline (-s) entries. Its width
+# depends on font sizes and window sizes, but 50 characters seems to
+# be the default for an 80x24 window.
+#
+# The MacRoman character encoding is used for some of the alternate
+# characters in the "MacRoman" entries; the "ASCII" (-7) entries
+# disable alternate character set support entirely, and the "VT100"
+# (-acs) entries rely instead on Terminal.app's own buggy VT100
+# graphics emulation, which seems to think the character encoding is
+# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries
+# are useful in Terminal.app version 51, which supports UTF-8 and
+# other ASCII-compatible character encodings but does not correctly
+# implement VT100 graphics; once VT100 graphics are correctly
+# implemented in Terminal.app, the "VT100" (-acs) entries should be
+# usable in any ASCII-compatible character encoding [except perhaps
+# in UTF-8, where some experts argue for disallowing alternate
+# characters entirely.]
+#
+# Terminal.app reports "vt100" as the terminal type, but exports
+# several environment variables which may aid detection in a shell
+# profile (i.e. .profile or .login):
+#
+# TERM=vt100
+# TERM_PROGRAM=Apple_Terminal
+# TERM_PROGRAM_VERSION=41      # in Terminal.app version 41
+# TERM_PROGRAM_VERSION=51      # in Terminal.app version 51
+#
+# For example, the following Bourne shell script would detect the
+# correct terminal type:
+#
+# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ]
+# then
+#     export TERM
+#     if [ :"$TERM_PROGRAM_VERSION" = :41 ]
+#     then
+#         TERM="nsterm-old"
+#     else
+#         TERM="nsterm-c-7"
+#     fi
+# fi
+#
+# In a C shell derivative, this would be accomplished by:
+#
+# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
+#     if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
+#          if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
+#              setenv TERM "nsterm-old"
+#          else
+#              setenv TERM "nsterm-c-7"
+#          endif
+#     endif
+# endif
+
+# The '+' entries are building blocks
+nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
+	am, bw, msgr, xenl, xon,
+	cols#80, it#8, lines#24,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+	dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
+	el1=\E[1K, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L,
+	ind=^J, invis=\E[8m, kbs=\177, kcub1=\EOD, kcud1=\EOB,
+	kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM,
+	rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m,
+	sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+	smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys,
+
+nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
+	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	enacs=\E(B\E)0, rmacs=^O,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+	sgr0=\E[m\017, smacs=^N, use=nsterm+7,
+
+nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
+	acsc=+\335\,\334-\366.\3770#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245,
+	enacs=\E(B\E)0, rmacs=^O,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+	sgr0=\E[m\017, smacs=^N, use=nsterm+7,
+
+# compare with xterm+sl-twm
+nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
+	wsl#50, use=xterm+sl-twm,
+
+nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors),
+	op=\E[0m, use=ibm+16color,
+
+nsterm+c41|AppKit Terminal.app v41 color support,
+	colors#8, ncv#37, pairs#64,
+	op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+
+# These are different combinations of the building blocks
+
+# ASCII charset (-7)
+nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome),
+	use=nsterm+7,
+
+nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline),
+	use=nsterm+s, use=nsterm+7,
+
+nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color),
+	use=nsterm+c41, use=nsterm+7,
+
+nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color),
+	use=nsterm+c, use=nsterm+7,
+
+nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline),
+	use=nsterm+s, use=nsterm+c41, use=nsterm+7,
+
+nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline),
+	use=nsterm+s, use=nsterm+c, use=nsterm+7,
+
+# VT100 alternate-charset (-acs)
+nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome),
+	use=nsterm+acs,
+
+nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline),
+	use=nsterm+s, use=nsterm+acs,
+
+nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color),
+	use=nsterm+c41, use=nsterm+acs,
+
+nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color),
+	use=nsterm+c, use=nsterm+acs,
+
+nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline),
+	use=nsterm+s, use=nsterm+c41, use=nsterm+acs,
+
+nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline),
+	use=nsterm+s, use=nsterm+c, use=nsterm+acs,
+
+# MacRoman charset
+nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome),
+	use=nsterm+mac,
+
+nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline),
+	use=nsterm+s, use=nsterm+mac,
+
+nsterm-old|AppKit Terminal.app v41+ w/MacRoman charset (color),
+	use=nsterm+c41, use=nsterm+mac,
+
+nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color),
+	use=nsterm+c, use=nsterm+mac,
+
+nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline),
+	use=nsterm+s, use=nsterm+c41, use=nsterm+mac,
+
+nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline),
+	use=nsterm+s, use=nsterm+c, use=nsterm+mac,
+
+# In Mac OS X version 10.5 the format of the preferences has changed
+# and a new, more complex technique is needed, e.g.,
+#
+#       python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass(
+#       "NSUserDefaults");ud=NSUserDefaults.alloc();
+#       ud.init();prefs=ud.persistentDomainForName_(
+#       "com.apple.Terminal");prefs["Window Settings"][
+#       prefs["Default Window Settings"]]["TerminalType"
+#       ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs,
+#       "com.apple.Terminal")' nsterm-16color
+#
+# and it is still not settable from the preferences dialog. This is
+# tracked under rdar://problem/7365108 and rdar://problem/7365134
+# in Apple's bug reporter.
+#
+# In OS X 10.7 (Leopard) the TERM which can be set in the preferences dialog
+# defaults to xterm-color.  Alternative selections are ansi, dtterm, rxvt,
+# vt52, vt100, vt102 and xterm.
+nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
+	bw@, mir, npc,
+	civis=\E[?25l, cnorm=\E[?25h, dch=\E[%p1%dP, dch1=\E[P,
+	flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
+	ich=\E[%p1%d@, ich1=\E[@, kdch1=\E[3~, kend=\E[F,
+	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+	kf18=\E[22~, kf19=\E[33~, kf20=\E[34~, kf5=\E[15~,
+	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
+	knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
+	smcup=\E7\E[?47h, smir=\E[4h, vpa=\E[%i%p1%dd,
+	kLFT5=\E[5D, kRIT5=\E[5C, use=nsterm-c-s-acs,
+
+# The versions of Terminal.app in Mac OS X version 10.3.x seem to have
+# the background color erase feature. The newer version 240.2 in Mac OS X
+# version 10.5 does not.
+#
+# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
+# and D P Schreber comparing to nsterm-c-s-acs.
+#
+# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM
+# can be set in Terminal.app, e.g.,
+#
+#	defaults write com.apple.Terminal TermCapString nsterm-bce
+#
+# and that it is not set in Terminal's preferences dialog.
+#
+# Modified for OS X 10.8, omitting bw based on testing with tack -TD
+#
+# Notes:
+# * The terminal description matches the default settings.
+# * The keyboard is configurable via a dialog.
+# * By default khome, kend, knext and kprev are honored only with a
+#   shift-modifier.
+# * There are bindings for control left/right arrow (but not up/down).
+#   Added those to nsterm-16color, which is the version used for OS X 10.6
+# * "Allow VT100 application keypage mode" is by default disabled.
+#   There is no way to press keypad-comma unless application mode is enabled
+#   and used.
+# * 132-column mode stopped working during vttest's tests.  Consider it broken.
+# * CHT, REP, SU, SD are buggy.
+# * ECH works (also in Leopard), but is not used here for compatibility.
+# * The terminal preferences dialog replaces xterm-color by xterm-16color and
+#   xterm-256color.  However, it adds "nsterm", so it is possible to use the
+#   nsterm entry from this file to override the MacPorts (20110404) or
+#   system (20081102) copy of this file.
+# + In OS X 10.8 (Mountain Lion) the TERM which can be set in the preferences
+#   dialog defaults to xterm-256color.  Alternative selections are ansi,
+#   dtterm, rxvt, vt52, vt100, vt102, xterm and xterm-16color.  However,
+#   the menu says "Declare terminal as" without promising to actually emulate
+#   the corresponding terminals.  Indeed, changing TERM does not affect the
+#   emulation itself.  This means that
+#   + the function-keys do not match for dtterm for kf1-kf4 as well as
+#     khome/kend
+#   + the color model is the same for each setting of TERM (does not match
+#     ansi or dtterm).
+#   + the shift/control/meta key modifiers from rxvt and xterm variants are not
+#     recognised except for a few special cases, i.e., kRIT5 and kLFT5.
+#   + the vt52 emulation does not give a usable shell because screen-clearing
+#     does not work as expected.
+#   + selecting "xterm" or "xterm-16color" sets TERM to "xterm-256color".
+# + OSX 10.9 (Yosemite) added more extended keys in the default configuration
+#   as well as unmasking F10 (which had been used in the window manager). Those
+#   keys are listed in this entry.
+nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce),
+	bce, use=nsterm-16color,
+
+# This is tested with OS X 10.8 (Mountain Lion), 2012/08/11
+#	TERM_PROGRAM_VERSION=309
+# Earlier reports state that these differences also apply to OS X 10.7 (Lion),
+#	TERM_PROGRAM_VERSION=303
+nsterm-256color|Terminal.app in OS X 10.8,
+	use=xterm+256setaf, use=nsterm-bce,
+
+nsterm-build326|Terminal.app in OS X 10.9,
+	kDC=\E[3;2~, kLFT=\E[1;2D, kRIT=\E[1;2C, kcbt=\E[Z,
+	kf18=\E[32~, kDC5=\E[3;5~, kDC7=\E[3;5~, kLFT3=\Eb,
+	kLFT5=\E[1;5D, kRIT3=\Ef, kRIT5=\E[1;5C,
+	use=nsterm-256color,
+
+# actually "343.7"
+nsterm-build343|Terminal.app in OS X 10.10,
+	kend=\EOF, khome=\EOH, use=nsterm-build326,
+
+# This is an alias which should always point to the "current" version
+nsterm|Apple_Terminal|AppKit Terminal.app,
+	use=nsterm-build343,
+
+# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and
+# more featureful) terminal emulator for Mac OS X. It is similar
+# enough in capabilities to nsterm-16color that I have derived this
+# description from that one, but as far as I know they share no code.
+# Many of the features are user-configurable, but I attempt only to
+# describe the default configuration.
+#
+# NOTE: When tack tests (csr) + (nel) iTerm.app crashes, so (csr) is
+# disabled.
+iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X,
+	bce, bw@,
+	csr@, dim@, kend=\EOF, khome=\EOH,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+	use=xterm+256setaf, use=nsterm-16color,
+
+# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
+#
+# On PowerPC platforms, Apple's Darwin operating system uses a
+# full-screen system console derived from a NetBSD framebuffer
+# console. It is an ANSI-style terminal, and is not really VT-100
+# compatible.
+#
+# Under Mac OS X, this is the system console driver used while in
+# single-user mode [reachable by holding down Command-S during the
+# boot process] and when logged in using console mode [reachable by
+# typing ">console" at the graphical login prompt.]
+#
+# If you're looking for a description of the Terminal.app terminal
+# emulator which runs under the Mac OS X Quartz windowing system (and
+# other AppKit-supported windowing systems,) see the "nsterm"
+# entry instead.
+#
+# NOTE: Under Mac OS X version 10.1, the default login window does not
+# prompt for user name, instead requiring an icon to be selected from
+# a list of known users. Since the special ">console" login is not in
+# this list, you must make one of two changes in the Login Window
+# panel of the Login section of System Prefs to make the special
+# ">console" login accessible. The first option is to enable 'Show
+# "Other User" in list for network users', which will add a special
+# "Other..." icon to the graphical login panel. Selecting "Other..."
+# will present the regular graphical login prompt. The second option
+# is to change the 'Display Login Window as:' setting to 'Name and
+# password entry fields', which replaces the login panel with a
+# graphical login prompt.
+#
+# There are no function keys, at least not in Darwin 1.3.
+#
+# It has no mouse support.
+#
+# It has full ANSI color support, and color combines correctly with
+# all three supported attributes: bold, inverse-video and underline.
+# However, bold colored text is almost unreadable (bolding is
+# accomplished using shifting and or-ing, and looks smeared) so bold
+# has been excluded from the list of color-compatible attributes
+# [using (ncv)]. The monochrome entry (-m) is useful if you use a
+# monochrome monitor.
+#
+# There is one serious bug with this terminal emulation's color
+# support: repositioning the cursor onto a cell with non-matching
+# colors obliterates that cell's contents, replacing it with a blank
+# and displaying a colored cursor in the "current" colors. There is
+# no complete workaround at present [other than using the monochrome
+# (-m) entries,] but removing the (msgr) capability seemed to help.
+#
+# The "standout" chosen was simple reverse-video, although a colorful
+# standout might be more aesthetically pleasing. Similarly, the bold
+# chosen is the terminal's own smeared bold, although a simple
+# color-change might be more readable. The color-bold (-b) entries
+# uses magenta colored text for bolding instead. The fancy color (-f
+# and -f2) entries use color for bold, standout and underlined text
+# (underlined text is still underlined, though.)
+#
+# Apparently the terminal emulator does support a VT-100-style
+# alternate character set, but all the alternate character set
+# positions have been left blank in the font. For this reason, no
+# alternate character set capabilities have been included in this
+# description. The console driver appears to be ASCII-only, so (enacs)
+# has been excluded [although the VT-100 sequence does work.]
+#
+# The default Mac OS X and Darwin installation reports "vt100" as the
+# terminal type, and exports no helpful environment variables. To fix
+# this, change the "console" entry in /etc/ttys from "vt100" to
+# "xnuppc-WxH", where W and H are the character dimensions of your
+# console (see below.)
+#
+# The font used by the terminal emulator is apparently one originally
+# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This
+# file includes descriptions for the following geometries:
+#
+#     Pixels        Characters   Entry Name (append -m for monochrome)
+#    -------------------------------------------------------------------
+#     640x400       80x25        xnuppc-80x25
+#     640x480       80x30        xnuppc-80x30
+#     720x480       90x30        xnuppc-90x30
+#     800x600       100x37       xnuppc-100x37
+#     896x600       112x37       xnuppc-112x37
+#     1024x640      128x40       xnuppc-128x40
+#     1024x768      128x48       xnuppc-128x48
+#     1152x768      144x48       xnuppc-144x48
+#     1280x1024     160x64       xnuppc-160x64
+#     1600x1024     200x64       xnuppc-200x64
+#     1600x1200     200x75       xnuppc-200x75
+#     2048x1536     256x96       xnuppc-256x96
+#
+# The basic "xnuppc" entry includes no size information, and the
+# emulator includes no reporting capability, so you'll be at the mercy
+# of the TTY device (which reports incorrectly on my hardware.) The
+# color-bold entries do not include size information.
+
+# The '+' entries are building blocks
+xnuppc+basic|Darwin PowerPC Console basic capabilities,
+	am, bce, mir, xenl,
+	it#8,
+	bold=\E[1m, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+	cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+	cuu=\E[%p1%dA, cuu1=\E[A, dsl=\E]2;\007, ed=\E[J, el=\E[K,
+	el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=\177,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
+	rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m,
+	rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+	sc=\E7,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+	sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+	smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
+
+xnuppc+c|Darwin PowerPC Console ANSI color support,
+	colors#8, ncv#32, pairs#64,
+	op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+
+xnuppc+b|Darwin PowerPC Console color-bold support,
+	ncv#32,
+	bold=\E[35m,
+	sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+	use=xnuppc+basic,
+
+xnuppc+f|Darwin PowerPC Console fancy color support,
+	ncv#35,
+	sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;m,
+	smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b,
+
+xnuppc+f2|Darwin PowerPC Console alternate fancy color support,
+	ncv#35,
+	bold=\E[33m,
+	sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m,
+	smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic,
+
+# Building blocks for specific screen sizes
+xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels),
+	cols#80, lines#25,
+
+xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels),
+	cols#80, lines#30,
+
+xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels),
+	cols#90, lines#30,
+
+xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels),
+	cols#100, lines#37,
+
+xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels),
+	cols#112, lines#37,
+
+xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels),
+	cols#128, lines#40,
+
+xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels),
+	cols#128, lines#48,
+
+xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels),
+	cols#144, lines#48,
+
+xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels),
+	cols#160, lines#64,
+
+xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels),
+	cols#200, lines#64,
+
+xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels),
+	cols#200, lines#75,
+
+xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels),
+	cols#256, lines#96,
+
+# These are different combinations of the building blocks
+
+xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome),
+	use=xnuppc+basic,
+
+xnuppc|darwin|Darwin PowerPC Console (color),
+	use=xnuppc+c, use=xnuppc+basic,
+
+xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold),
+	use=xnuppc+b,
+
+xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold),
+	use=xnuppc+b, use=xnuppc+c,
+
+xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome),
+	use=xnuppc+f,
+
+xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color),
+	use=xnuppc+f, use=xnuppc+c,
+
+xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome),
+	use=xnuppc+f2,
+
+xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color),
+	use=xnuppc+f2, use=xnuppc+c,
+
+# Combinations for specific screen sizes
+xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25,
+	use=xnuppc+80x25, use=xnuppc+basic,
+
+xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25,
+	use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic,
+
+xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30,
+	use=xnuppc+80x30, use=xnuppc+basic,
+
+xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30,
+	use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic,
+
+xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30,
+	use=xnuppc+90x30, use=xnuppc+basic,
+
+xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30,
+	use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic,
+
+xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37,
+	use=xnuppc+100x37, use=xnuppc+basic,
+
+xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37,
+	use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic,
+
+xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37,
+	use=xnuppc+112x37, use=xnuppc+basic,
+
+xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37,
+	use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic,
+
+xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40,
+	use=xnuppc+128x40, use=xnuppc+basic,
+
+xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40,
+	use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic,
+
+xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48,
+	use=xnuppc+128x48, use=xnuppc+basic,
+
+xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48,
+	use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic,
+
+xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48,
+	use=xnuppc+144x48, use=xnuppc+basic,
+
+xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48,
+	use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic,
+
+xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64,
+	use=xnuppc+160x64, use=xnuppc+basic,
+
+xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64,
+	use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic,
+
+xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64,
+	use=xnuppc+200x64, use=xnuppc+basic,
+
+xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64,
+	use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic,
+
+xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75,
+	use=xnuppc+200x75, use=xnuppc+basic,
+
+xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75,
+	use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic,
+
+xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96,
+	use=xnuppc+256x96, use=xnuppc+basic,
+
+xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96,
+	use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic,
+
 
 #### BeOS
 #
@@ -712,13 +1589,14 @@
 #
 linux-basic|linux console,
 	am, bce, eo, mir, msgr, xenl, xon,
-	it#8, ncv#18,
+	it#8, ncv#18, U8#1,
 	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
 	bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H,
+	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+	dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
+	el=\E[K, el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H,
 	hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
 	il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177,
 	kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
@@ -730,7 +1608,7 @@
 	khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
 	kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
 	rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;11%;m,
 	smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g,
 	vpa=\E[%i%p1%dd, use=vt102+enq, use=klone+sgr,
 	use=ecma+color,
@@ -746,29 +1624,49 @@
 # 1.9.9.
 linux-c-nc|linux console with color-change,
 	ccc,
-	initc=\E]P%p1%x%p2%{256}%*%{1000}%/%02x%p3%{256}%*%{1000}%/%02x%p4%{256}%*%{1000}%/%02x,
+	initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
 	oc=\E]R, use=linux-basic,
 # From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
 linux-c|linux console 1.3.6+ for older ncurses,
 	ccc,
-	initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;,
+	initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;,
 	oc=\E]R, use=linux-basic,
 
 # The 2.2.x kernels add a private mode that sets the cursor type; use that to
 # get a block cursor for cvvis.
 # reported by Frank Heckenbach <frank@g-n-u.de>.
-linux|linux console,
+linux2.2|linux 2.2.x console,
 	civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
 	cvvis=\E[?25h\E[?8c, use=linux-c-nc,
 
+# Linux 2.6.x has a fix for SI/SO to work with UTF-8 encoding added here:
+#	http://lkml.indiana.edu/hypermail/linux/kernel/0602.2/0868.html
+# Using SI/SO has the drawback that it confuses screen.  SCS would work.
+# However, SCS is buggy (see comment in Debian #515609) -TD
+# Further, this breaks longstanding workarounds for Linux console's line
+# drawing (see Debian 665959) -TD
+linux2.6|linux 2.6.x console,
+	rmacs=^O,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;,
+	sgr0=\E[m\017, smacs=^N, use=linux2.2,
+
+# The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
+# It is the same as xterm's erase-saved-lines feature.
+linux3.0|linux 3.0 kernels,
+	E3=\E[3J, use=linux2.6,
+
+# This is Linux console for ncurses.
+linux|linux console,
+	use=linux2.2,
+
 # Subject: linux 2.6.26 vt back_color_erase
 # Changes to the Linux console driver broke bce model as reported in
 #	https://bugzilla.novell.com/show_bug.cgi?id=418613
 # apparently from
 #	http://lkml.org/lkml/2008/4/26/305
-#	http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/87f98338f0d636bb/aa96e8b86cee0d1e?lnk=st&q=#aa96e8b86cee0d1e
+#	http://lkml.org/lkml/2008/10/3/66
 linux2.6.26|linux console w/o bce,
-	bce@, use=linux,
+	bce@, use=linux2.6,
 
 # See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
 linux-nic|linux with ich/ich1 suppressed for non-curses programs,
@@ -814,6 +1712,41 @@
 	initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T,
 	use=linux,
 
+# 16-color linux console entry; this works with a 256-character
+# console font but bright background colors turn into dim ones when
+# you use a 512-character console font. This uses bold for bright
+# foreground colors and blink for bright background colors.
+linux-16color|linux console with 16 colors,
+	colors#16, ncv#63, pairs#256,
+	setab=\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m,
+	setaf=\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m,
+	use=linux,
+
+# bterm (bogl 0.1.18)
+# Implementation is in bogl-term.c
+# Key capabilities from linux terminfo entry
+#
+# Notes:
+# bterm only supports acs using wide-characters, has case for these: qjxamlkut
+# bterm does not support sgr, since it only processes one parameter -TD
+bterm|bogl virtual terminal,
+	am, bce,
+	colors#8, cols#80, lines#24, pairs#64,
+	acsc=aajjkkllmmqqttuuxx, bold=\E[1m, civis=\E[?25l,
+	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
+	cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ind=^J,
+	kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
+	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+	kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
+	kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
+	kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+	kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J,
+	op=\E[49m\E[39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m,
+	rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+	sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m,
+
 #### Mach
 #
 
@@ -839,6 +1772,24 @@
 	dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
 	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
 
+# From: Samuel Thibault
+# Source: git://git.sv.gnu.org/hurd/gnumach.git
+# Files: i386/i386at/kd.c
+#
+# Added nel, hpa, sgr and removed rmacs, smacs based on source -TD
+mach-gnu|GNU Mach,
+	acsc=+>\,<-\^.v0\333`+a\261f\370g\361h\260i#j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
+	el1=\E[1K, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[@,
+	indn=\E[%p1%dS, invis=\E[8m, nel=\EE, rin=\E[%p1%dT,
+	sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m,
+	use=mach,
+
+mach-gnu-color|Mach Console with ANSI color,
+	colors#8, pairs#64,
+	op=\E[37;40m, rmso=\E[27m, setab=\E[4%p1%dm,
+	setaf=\E[3%p1%dm, use=mach-gnu,
+
 # From: Marcus Brinkmann
 # http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/
 #
@@ -867,9 +1818,9 @@
 #
 # Reading the source, RIS resets cnorm, but not xmous.
 hurd|The GNU Hurd console server,
-	am, bce, bw, eo, km, mir, msgr, xon,
+	am, bce, bw, eo, km, mir, msgr, xenl, xon,
 	colors#8, it#8, ncv#18, pairs#64,
-	acsc=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
 	clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
 	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
@@ -896,382 +1847,6 @@
 	smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l,
 	gsbom=\E[>1h,
 
-#### OSF Unix
-#
-
-# OSF/1 1.1 Snapshot 2
-pmcons|pmconsole|PMAX console,
-	am,
-	cols#128, lines#57,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I,
-	ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-
-# SCO console and SOS-Syscons console for 386bsd
-# (scoansi: had unknown capabilities
-#	:Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
-#	:GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
-#	:G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
-#	:CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
-#	:WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
-# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
-# on the <smacs>=\E[12m  -- esr)
-#
-# klone+sgr-dumb is an error since the acsc does not match -TD
-#
-# In this description based on SCO's keyboard(HW) manpage list of default
-# function key values:
-#	F13-F24 are shifted F1-F12
-#	F25-F36 are control F1-F12
-#	F37-F48 are shift+control F1-F12
-#
-# hpa/vpa work in the console, but not in scoterm:
-#	hpa=\E[%p1%dG,
-#	vpa=\E[%p1%dd,
-#
-# SCO's terminfo uses
-#	kLFT=\E[d,
-#	kRIT=\E[c,
-# which do not work (console or scoterm).
-#
-# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
-scoansi-old|SCO Extended ANSI standard crt (5.0.5),
-	OTbs, am, bce, eo, xon,
-	colors#8, cols#80, it#8, lines#25, pairs#64,
-	acsc=-\230.\231\,.+/0[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
-	civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP,
-	dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M,
-	ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I,
-	hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
-	ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbeg=\E[E, kbs=^H,
-	kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
-	kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c,
-	kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g,
-	kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l,
-	kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p,
-	kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u,
-	kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P,
-	kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[],
-	kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q,
-	kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
-	kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8,
-	rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m,
-	rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
-	smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
-scoansi-new|SCO Extended ANSI standard crt (5.0.6),
-	km,
-	civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr,
-	cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m,
-	rep=\E[%p1%d;%p2%db, rmm=\E[=11L,
-	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
-	smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm,
-	smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m,
-	smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m,
-	smgtp=\E[=0;%i%p1%dm, smm=\E[=10L,
-	wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr,
-	use=scoansi-old,
-# make this easy to change...
-scoansi|SCO Extended ANSI standard crt,
-	use=scoansi-old,
-
-# This actually describes the generic SVr4 display driver for Intel boxes.
-# The <dim=\E[2m> isn't documented and therefore may not be reliable.
-# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
-att6386|at386|386at|AT&T WGS 6386 console,
-	am, bw, eo, xon,
-	cols#80, it#8, lines#25,
-	acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C,
-	clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD,
-	cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S,
-	indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H,
-	kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
-	kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
-	kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@,
-	knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m,
-	ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
-	sc=\E7,
-	sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
-	sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
-	tbc=\E[2g, vpa=\E[%i%p1%dd, use=klone+color,
-# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
-pc6300plus|AT&T 6300 plus,
-	OTbs, am, xon,
-	cols#80, lines#24,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C,
-	clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
-	dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K,
-	home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J,
-	invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe,
-	kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk,
-	nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
-	smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
-#
-# I have a UNIX PC which I use as a terminal attached to my Linux PC.
-# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
-# is broken. All the special key sequences are broken, making it unusable
-# with Emacs. The problem stems from the following:
-#
-# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
-# keypad!), loadable fonts, and strange highlighting modes ("dithered"
-# half-intensity, "smeared" bold, and real strike-out, for example.) It also
-# uses resizable terminal windows, but the bundled terminal program always
-# uses an 80x24 window (and doesn't support seem to support a 132-column
-# mode.)
-#
-# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
-# library which was a superset of SVr3.5 curses (called tam, for "terminal
-# access method".) tam includes support for real, overlapping windows,
-# onscreen function key labels, and bitmap graphics. But since the primary
-# user interface on the UNIX PC was a GUI program (ua, for "user
-# assistant",) and remote administration was considered important for the
-# machine, tam also supported VT100-compatible terminals attached to the
-# serial port or used across the StarLan network. To simulate the extra keys
-# not present on a VT100, users could press ESC and a two-letter sequence,
-# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
-# however, were not the same as those sent by the actual Undo key. The
-# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
-# (If you're interested in adding some of the tam calls to ncurses, btw, I
-# have the full documentation and several programs which use tam. It also
-# used an extended terminfo format to describe key sequences, special
-# highlighting modes, etc.)
-#
-# KEYS: This means that ncurses would quite painful on the UNIX PC, since
-# there are two sequences for every key-modifier combination (local keyboard
-# sequence and remote "VT100" sequence.) But I doubt many people are trying
-# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
-# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
-# seem to have been built from the manual describing the VT100 sequences.
-# This means it doesn't work for a real live UNIX PC.
-#
-# FONTS: The UNIX PC also has a strange interpretation of "alternate
-# character set". Rather than the VT100 graphics you might expect, it allows
-# up to 8 custom fonts to be loaded at any given time. This means that
-# programs expecting VT100 graphics will usually be disappointed. For this
-# reason I have disabled the smacs/rmacs sequences, but they could easily be
-# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
-# manpage), should you wish to do so:
-#
-# SGR10 - Select font 0 - ESC [ 10 m or SO
-# SGR11 - Select font 1 - ESC [ 11 m or SI
-# SGR12 - Select font 2 - ESC [ 12 m
-# ... (etc.)
-# SGR17 - Select font 7 - ESC [ 17 m
-#
-# Graphics for line drawing are not reliably found at *any* character
-# location because the UNIX PC has dynamically reloadable fonts. I use font
-# 0 for regular text and font 1 for italics, but this is by no means
-# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
-#
-# MISC: The cursor visible/cursor invisible sequences were swapped in the
-# distributed terminfo.
-#
-# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
-# the UNIX PC terminfo entry. The modified version works great with Lynx,
-# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
-# attached by serial cable. In Emacs, even the Undo key works, and many
-# applications can now use the F1-F8 keys.
-#
-# esr's notes:
-#	Terminfo entry for the AT&T Unix PC 7300
-#	from escape(7) in Unix PC 7300 Manual.
-#	Somewhat similar to a vt100-am (but different enough
-#	to redo this from scratch.)
-#
-#	/***************************************************************
-#	*
-#	*           FONT LOADING PROGRAM FOR THE UNIX PC
-#	*
-#	*     This routine loads a font defined in the file ALTFONT
-#	*     into font memory slot #1.  Once the font has been loaded,
-#	*     it can be used as an alternative character set.
-#	*
-#	*     The call to ioctl with the argument WIOCLFONT is the key
-#	*     to this routine.  For more information, see window(7) in
-#	*     the PC 7300 documentation.
-#	***************************************************************/
-#	#include <string.h>		/* needed for strcpy call */
-#	#include <sys/window.h>         /* needed for ioctl call */
-#	#define FNSIZE	60		/* font name size */
-#	#define ALTFONT  "/usr/lib/wfont/special.8.ft"  /* font file */
-#	/*
-#	*     The file /usr/lib/wfont/special.8.ft comes with the
-#	*     standard PC software.  It defines a graphics character set
-#	*     similar to that of the Teletype 5425 terminal.  To view
-#	*     this or other fonts in /usr/lib/wfont, use the command
-#	*     cfont <filename>.  For further information on fonts see
-#	*     cfont(1) in the PC 7300 documentation.
-#	*/
-#
-#	struct altfdata 	/* structure for alt font data */
-#	{
-#	short	altf_slot;		/* memory slot number */
-#	char	altf_name[FNSIZE];	/* font name (file name) */
-#	};
-#	ldfont()
-#	{
-#		int wd;		/* window in which altfont will be */
-#		struct altfdata altf;
-#		altf.altf_slot=1;
-#		strcpy(altf.altf_name,ALTFONT);
-#		for (wd =1; wd < 12; wd++) {
-#		     ioctl(wd, WIOCLFONT,&altf);
-#	        }
-#	}
-#
-# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry,
-# they're confirmed by the man page for the System V display---esr)
-#
-att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300,
-	am, xon,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C,
-	clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD,
-	cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
-	ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL,
-	il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB,
-	kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE,
-	kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM,
-	kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR,
-	kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO,
-	kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z,
-	kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf,
-	ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd,
-	kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
-	kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B,
-	kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv,
-	kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt,
-	kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB,
-	ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM,
-	rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m,
-	smul=\E[4m,
-
-# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
-# from SGI's terminfo database.  SGI's entry shows F9-F12 with the codes
-# for the application keypad mode.  We have added iris-ansi-ap rather than
-# change the original to keypad mode.
-#
-# (iris-ansi: added rmam/smam based on init string -- esr)
-#
-# This entry, and those derived from it, is used in xwsh (also known as
-# winterm).  Some capabilities that do not fit into the terminfo model
-# include the shift- and control-functionkeys:
-#
-# F1-F12 generate different codes when shift or control modifiers are used.
-# For example:
-#	F1      	\E[001q
-#	shift F1	\E[013q
-#	control-F1	\E[025q
-#
-# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
-# \EOP to \EOS.  The shifted and control modifiers still do the same thing.
-#
-# The cursor keys also have different codes:
-#	control-up	\E[162q
-#	control-down	\E[165q
-#	control-left	\E[159q
-#	control-right	\E[168q
-#
-#	shift-up	\E[161q
-#	shift-down	\E[164q
-#	shift-left	\E[158q
-#	shift-right	\E[167q
-#
-#	control-tab	\[072q
-#
-iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100),
-	am,
-	cols#80, it#8, lines#40,
-	bel=^G, bold=\E[1m, clear=\E[H\E[2J,
-	cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD,
-	cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P,
-	kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q,
-	kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
-	kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q,
-	kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q,
-	kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
-	kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
-	knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q,
-	kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\,
-	rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
-	sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m,
-	tbc=\E[3g,
-iris-ansi-ap|IRIS ANSI in application-keypad mode,
-	is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q,
-	kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi,
-
-# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
-# (T.Dickey 98/1/24)
-iris-color|xwsh|IRIX ANSI with color,
-	ncv#33,
-	csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m,
-	ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m,
-	rmul=\E[24m, rs1=\Ec,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sitm=\E[3m, use=vt100+enq, use=klone+color,
-	use=iris-ansi-ap,
-
-# The following is a version of the ibm-pc entry distributed with PC/IX,
-# (Interactive Systems' System 3 for the Big Blue), modified by Richard
-# McIntosh at UCB/CSM.  The :pt: and :uc: have been removed from the original,
-# (the former is untrue, and the latter failed under UCB/man); standout and
-# underline modes have been added.  Note: this entry describes the "native"
-# capabilities of the PC monochrome display, without ANY emulation; most
-# communications packages (but NOT PC/IX connect) do some kind of emulation.
-pcix|PC/IX console,
-	am, bw, eo,
-	cols#80, lines#24,
-	clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
-	home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
-	smul=\E[4m,
-
-# (ibmpcx: this entry used to be known as ibmx.
-# It formerly included the following extension capabilities:
-#	:GC=b:GL=v:GR=t:RT=^J:\
-#	:GH=\E[196g:GV=\E[179g:\
-#	:GU=\E[193g:GD=\E[194g:\
-#	:G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
-#	:CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
-#	:WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
-# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
-# ":kh=\E[Y:".  Added IBM-PC forms characters and highlights, they match
-# what was there before. -- esr)
-ibmpcx|xenix|ibmx|IBM PC xenix console display,
-	OTbs, am, msgr,
-	cols#80, lines#25,
-	clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d,
-	kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e,
-	kpp=\E[Z, use=klone+acs, use=klone+sgr8,
-
 #### QNX
 #
 
@@ -1373,7 +1948,7 @@
 qansi-g|QNX ANSI,
 	am, eslok, hs, xon,
 	colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~Oa,
+	acsc=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
 	clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M,
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
@@ -1416,7 +1991,7 @@
 	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
 	sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[2g,
+	smul=\E[4m, tbc=\E[3g,
 	tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH,
 #
 qansi|QNX ansi with console writes,
@@ -1435,6 +2010,204 @@
 qansi-w|QNX ansi for windows,
 	xvpa, use=qansi-m,
 
+#### SCO consoles
+
+# SCO console and SOS-Syscons console for 386bsd
+# (scoansi: had unknown capabilities
+#	:Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
+#	:GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
+#	:G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
+#	:CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
+#	:WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
+# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
+# on the <smacs>=\E[12m  -- esr)
+#
+# klone+sgr-dumb is an error since the acsc does not match -TD
+#
+# In this description based on SCO's keyboard(HW) manpage list of default
+# function key values:
+#	F13-F24 are shifted F1-F12
+#	F25-F36 are control F1-F12
+#	F37-F48 are shift+control F1-F12
+#
+# hpa/vpa work in the console, but not in scoterm:
+#	hpa=\E[%p1%dG,
+#	vpa=\E[%p1%dd,
+#
+# SCO's terminfo uses
+#	kLFT=\E[d,
+#	kRIT=\E[c,
+# which do not work (console or scoterm).
+#
+# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
+scoansi-old|SCO Extended ANSI standard crt (5.0.5),
+	OTbs, am, bce, eo, xon,
+	colors#8, cols#80, it#8, lines#25, pairs#64,
+	acsc=+/\,.-\230.\2310[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207,
+	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+	civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C,
+	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+	cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP,
+	dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M,
+	ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I,
+	hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
+	ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbeg=\E[E, kbs=^H,
+	kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
+	kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c,
+	kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g,
+	kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l,
+	kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p,
+	kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u,
+	kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P,
+	kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[],
+	kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q,
+	kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
+	kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8,
+	rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m,
+	rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7,
+	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
+	smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
+scoansi-new|SCO Extended ANSI standard crt (5.0.6),
+	km,
+	civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr,
+	cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m,
+	rep=\E[%p1%d;%p2%db, rmm=\E[=11L,
+	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%e;10%;m,
+	smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm,
+	smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m,
+	smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m,
+	smgtp=\E[=0;%i%p1%dm, smm=\E[=10L,
+	wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr,
+	use=scoansi-old,
+# make this easy to change...
+scoansi|SCO Extended ANSI standard crt,
+	use=scoansi-old,
+
+#### SGI consoles
+
+# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
+# from SGI's terminfo database.  SGI's entry shows F9-F12 with the codes
+# for the application keypad mode.  We have added iris-ansi-ap rather than
+# change the original to keypad mode.
+#
+# (iris-ansi: added rmam/smam based on init string -- esr)
+#
+# This entry, and those derived from it, is used in xwsh (also known as
+# winterm).  Some capabilities that do not fit into the terminfo model
+# include the shift- and control-functionkeys:
+#
+# F1-F12 generate different codes when shift or control modifiers are used.
+# For example:
+#	F1      	\E[001q
+#	shift F1	\E[013q
+#	control-F1	\E[025q
+#
+# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
+# \EOP to \EOS.  The shifted and control modifiers still do the same thing.
+#
+# The cursor keys also have different codes:
+#	control-up	\E[162q
+#	control-down	\E[165q
+#	control-left	\E[159q
+#	control-right	\E[168q
+#
+#	shift-up	\E[161q
+#	shift-down	\E[164q
+#	shift-left	\E[158q
+#	shift-right	\E[167q
+#
+#	control-tab	\[072q
+#
+iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100),
+	am,
+	cols#80, it#8, lines#40,
+	bel=^G, bold=\E[1m, clear=\E[H\E[2J,
+	cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD,
+	cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
+	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+	cuu1=\E[A, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h,
+	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+	home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+	is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P,
+	kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q,
+	kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
+	kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q,
+	kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q,
+	kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+	kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
+	knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q,
+	kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\,
+	rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
+	sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m,
+	tbc=\E[3g,
+iris-ansi-ap|IRIS ANSI in application-keypad mode,
+	is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q,
+	kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi,
+
+# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
+# (T.Dickey 98/1/24)
+iris-color|xwsh|IRIX ANSI with color,
+	ncv#33,
+	csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m,
+	ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m,
+	rmul=\E[24m, rs1=\Ec,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+	sitm=\E[3m, use=vt100+enq, use=klone+color,
+	use=iris-ansi-ap,
+
+#### OpenBSD consoles
+#
+# From: Alexei Malinin <Alexei.Malinin@mail.ru>; October, 2011.
+#
+# The following terminal descriptions for the  AMD/Intel PC console
+# were prepared  based on information contained in  the OpenBSD-4.9
+# termtypes.master and wscons(4) & vga(4) manuals (2010, November).
+#
+# Added bce based on testing with tack -TD
+# Added several capabilities to pccon+base, reading wsemul_vt100_subr.c -TD
+# Changed kbs to DEL and removed keys that duplicate stty settings -TD
+#
+pccon+keys|OpenBSD PC keyboard keys,
+	kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kdch1=\E[3~, kend=\E[8~, kent=^M, kf1=\E[11~, kf10=\E[21~,
+	kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
+	kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+	kf9=\E[20~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+	krfr=^R,
+pccon+sgr+acs0|sgr and simple ASCII pseudographics for OpenBSD PC console,
+	acsc=+>\,<-\^.v0#`+a\:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y#z#{*|!}#~o,
+	sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m,
+pccon+sgr+acs|sgr and default ASCII pseudographics for OpenBSD PC console,
+	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	enacs=\E)0$<5>, rmacs=\E(B$<5>,
+	sgr=\E[0%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<5>,
+	sgr0=\E[m\E(B$<5>, smacs=\E(0$<5>,
+pccon+colors|ANSI colors for OpenBSD PC console,
+	bce,
+	colors#8, pairs#64,
+	op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+pccon+base|base capabilities for OpenBSD PC console,
+	am, km, mc5i, msgr, npc, nxon, xenl, xon,
+	cols#80, it#8, lines#24,
+	bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+	dch1=\E[P, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+	el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+	il1=\E[L, ind=\ED, nel=\EE, rev=\E[7m, ri=\EM, rmam=\E[?7l,
+	rmso=\E[m, rs2=\Ec$<50>, smam=\E[?7h, smso=\E[7m,
+	tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
+pccon0-m|OpenBSD PC console without colors & with simple ASCII pseudographics,
+	use=pccon+base, use=pccon+sgr+acs0, use=pccon+keys,
+pccon0|OpenBSD PC console with simple ASCII pseudographics,
+	use=pccon0-m, use=pccon+colors,
+pccon-m|OpenBSD PC console without colors,
+	use=pccon+base, use=pccon+sgr+acs, use=pccon+keys,
+pccon|OpenBSD PC console,
+	use=pccon-m, use=pccon+colors,
+
 #### NetBSD consoles
 #
 # pcvt termcap database entries (corresponding to release 3.31)
@@ -1572,7 +2345,7 @@
 ofcons|DNARD OpenFirmware console,
 	bw,
 	cols#80, lines#30,
-	bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M,
+	bel=^G, blink=\2335m, bold=\2331m, clear=^L, cr=^M,
 	cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
 	cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
 	cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
@@ -1584,8 +2357,8 @@
 	kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r,
 	kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m,
 	rmso=\2330m, rmul=\2330m,
-	sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-	sgr0=\2330m,
+	sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t2%;%?%p7%t8%;%?%p1%p3%|%t;7%;m,
+	sgr0=\2330m, smso=\2337m, smul=\2334m,
 
 # NetBSD "wscons" emulator in vt220 mode.
 # This entry is based on the NetBSD termcap entry, correcting the ncv value.
@@ -1602,15 +2375,53 @@
 wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
 	bce, msgr,
 	colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
-	is2=\E[r\E[25;1H, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
+	civis=\E[?25l, cnorm=\E[?25h, is2=\E[r\E[25;1H,
+	kdch1=\E[3~, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
 	kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
 	kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
-	kf9=\E[20~, khome=\E[7~, op=\E[m, setab=\E[4%p1%dm,
-	setaf=\E[3%p1%dm, use=vt220,
+	kf9=\E[20~, khome=\E[7~, op=\E[m, rs1=\Ec,
+	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=vt220,
 
 wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
 	km, use=wsvt25,
 
+# NetBSD 6.x still uses wscons, with minor changes (2014/02/22) -TD
+#
+# TERM is by default vt100 for the console, wsvt25 for other ttys.
+# Initial testing set TERM=xterm, based on comments by developers, found too
+# many differences to continue in that path.  However, test-results may be
+# useful to people curious about compatibility with xterm.
+#
+# Testing with tack:
+# -----------------
+# Failed: cbt, bel, flash, cvvis, smul (color), blink, invis
+# There is color-bleeding in the color-pairs screen.
+# Attributes do not work with color
+# Failed: vpa/hpa
+# Failed: kf1-kf4, kf13-kf48, khome, kend
+# 	(effectively xterm-r6 for function-keys)
+# None of the function or cursor key-modifiers are encoded.
+# Console hangs in the smm/rmm test if TERM=xterm, does not show test
+#
+# Testing with vttest:
+# -------------------
+# Identifies as vt220 with selective erase
+# 	(however, selective erase refers to DECSCA, SPA)
+# Does not implement vt52
+# Uses spaces to simulate double-size characters
+# Does not support 8-bit controls
+# Does not support VT220 reports
+# Does not support send/receive mode
+# Supports ECH (like rxvt)
+# Does not support DECSCA
+# Does not support any of the ISO-6429 cursor-movement
+# Does not support any of the ISO-6429 miscellaneous tests
+# 	(SL/SR also leave unexpected char on screen too)
+# Background does not change in menu 11.6.9 (SGR 22-27)
+# None of the xterm special features tests work
+netbsd6|NetBSD wscons in 25 line DEC VT100 mode,
+	kbs=\177, use=wsvt25,
+
 # `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
 # DECstation/pmax.
 rcons|BSD rasterconsole,
@@ -1705,6 +2516,8 @@
 cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
 	acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
 	use=cons25w,
+cons25-debian|freebsd console with debian backspace (25-line ansi mode),
+	kbs=\177, kdch1=\E[3~, use=cons25,
 cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
 	colors@, pairs@,
 	bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
@@ -1760,6 +2573,52 @@
 cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
 	lines#60, use=cons25l1-m,
 
+# Starting with FreeBSD 8, an alternative configuration for syscons is provided,
+# which is intended to be xterm-compatible.  See for example
+#	http://svnweb.freebsd.org/base/stable/8/sys/dev/syscons/
+# in particular scterm-teken.c
+#
+# For FreeBSD 9 and 10:
+# --------------------
+# The /etc/ttys entries for console and other ttys are all configured to set
+# TERM=xterm.
+#
+# Testing with tack:
+# There is no VT100 line-drawing (uses +'s and -'s)
+# Shifted f1-f12 give cons25 codes, rather than xterm function-keys
+#
+# Testing with vttest:
+# Menu 2 diamonds don't work, blink ditto, light background ditto
+# The terminal identifies itself as VT100 with AVO
+# There is no VT52 support
+# There is no doublesize character support
+# The terminal supports ECH (like rxvt)
+# The terminal does not support send/receive mode
+# The terminal supports all of the ISO-6429 cursor-movement
+# The terminal supports some of the ISO-6429 miscellaneous tests
+#	(SL/SR also leave unexpected char on screen too)
+#
+# Considering cons25 as a base, the line-drawing mostly works, but is missing
+# the cells which happen to have ASCII control-character values:
+#	-    ^X    arrow pointing up
+#	.    ^Y    arrow pointing down
+#	i    ^Y    lantern
+#	`    ^D    diamond
+#
+# Those are removed from this entry's acsc string to avoid confusion.
+# The resulting description provides correct line-drawing and function-keys -TD
+teken|syscons with teken,
+	bw@, mir, xenl,
+	acsc=0\333a\260f\370g\361h\261j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
+	civis=\E[?25l, cnorm=\E[?25h, cvvis@, hpa=\E[%i%p1%dG,
+	hts=\EH, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kdch1=\E[3~, kend=\E[F, kent=^M, kf1=\EOP, kf10=\E[21~,
+	kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+	khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmir=\E[4l,
+	smir=\E[4h, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
+	u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd, use=cons25,
+
 #### 386BSD and BSD/OS Consoles
 #
 
@@ -1828,6 +2687,7 @@
 bsdos-ppc|PowerPC BSD/OS Console,
 	use=bsdos-pc,
 
+
 #### DEC VT52
 # (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr)
 #
@@ -1849,7 +2709,7 @@
 vt52|dec vt52,
 	OTbs,
 	cols#80, it#8, lines#24,
-	acsc=ffgghhompoqqss.k, bel=^G, clear=\EH\EJ, cr=^M,
+	acsc=+h.k0affggolpnqprrss, bel=^G, clear=\EH\EJ, cr=^M,
 	cub1=\ED, cud1=\EB, cuf1=\EC,
 	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
 	el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
@@ -2161,8 +3021,9 @@
 # with the key marked (ESC) on the vt220.  See vt220d for an alternate mapping.
 # PF1--PF4 are used as F1--F4.
 #
+# added msgr -TD
 vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
-	OTbs, OTpt, am, mir, xenl, xon,
+	OTbs, OTpt, am, mir, msgr, xenl, xon,
 	cols#80, lines#24, vt#3,
 	OTnl=^J,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
@@ -2188,8 +3049,15 @@
 # A much better description of the VT200/220; used to be vt220-8
 # changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1
 # designation to accommodate bug in pcvt -TD
+#
+# Here's a picture of the VT220 editing keypad:
+#	+--------+--------+--------+
+#	| Find   | Insert | Remove |
+#	+--------+--------+--------+
+#	| Select | Prev   | Next   |
+#	+--------+--------+--------+
 vt220|vt200|dec vt220,
-	OTbs, am, mc5i, mir, msgr, xenl, xon,
+	OTbs, am, mir, msgr, xenl, xon,
 	cols#80, it#8, lines#24, vt#3,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
@@ -2201,20 +3069,21 @@
 	flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
 	ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
 	il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	is2=\E[?7h\E[>\E[?1h\E F\E[?4l, kbs=^H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-	kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
-	kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
-	kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
-	lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i, mc4=\E[4i,
-	mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
-	rmul=\E[24m, rs1=\E[?3l, sc=\E7,
+	is2=\E[?7h\E[>\E[?1l\E F\E[?4l, kbs=^H, kcub1=\E[D,
+	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP,
+	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+	kf14=\E[26~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+	kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
+	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+	khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+	krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+	nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B$<4>,
+	rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+	rs1=\E[?3l, sc=\E7,
 	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
 	sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+	smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+pp,
+	use=ansi+enq,
 vt220-w|vt200-w|DEC vt220 in wide mode,
 	cols#132,
 	rs3=\E[?3h, use=vt220,
@@ -2231,18 +3100,18 @@
 	flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH,
 	ich=\233%p1%d@, if=/usr/share/tabset/vt100,
 	il=\233%p1%dL, il1=\233L, ind=\ED,
-	is2=\233?7h\233>\233?1h\E F\233?4l, kbs=^H,
+	is2=\233?7h\233>\233?1l\E F\233?4l, kbs=^H,
 	kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
-	kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
-	kf13=\23325~, kf14=\23326~, kf17=\23331~, kf18=\23332~,
-	kf19=\23333~, kf2=\EOQ, kf20=\23334~, kf3=\EOR, kf4=\EOS,
-	kf6=\23317~, kf7=\23318~, kf8=\23319~, kf9=\23320~,
-	kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~,
-	knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1,
-	lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i,
-	nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=\E(B,
-	rmam=\233?7l, rmir=\2334l, rmso=\23327m, rmul=\23324m,
-	rs1=\233?3l, sc=\E7,
+	kdch1=\2333~, kf1=\EOP, kf10=\23321~, kf11=\23323~,
+	kf12=\23324~, kf13=\23325~, kf14=\23326~, kf17=\23331~,
+	kf18=\23332~, kf19=\23333~, kf2=\EOQ, kf20=\23334~,
+	kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~, kf8=\23319~,
+	kf9=\23320~, kfnd=\2331~, khlp=\23328~, khome=\233H,
+	kich1=\2332~, knp=\2336~, kpp=\2335~, krdo=\23329~,
+	kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i,
+	mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8, rev=\2337m, ri=\EM,
+	rmacs=\E(B, rmam=\233?7l, rmir=\2334l, rmso=\23327m,
+	rmul=\23324m, rs1=\233?3l, sc=\E7,
 	sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
 	sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h,
 	smso=\2337m, smul=\2334m, tbc=\2333g,
@@ -2279,14 +3148,15 @@
 #
 # From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
 # (Added vt100 <rc>,<sc> to quiet a tic warning -- esr)
+# added msgr -TD
 vt200-js|vt220-js|dec vt200 series with jump scroll,
-	am,
+	am, msgr,
 	cols#80,
 	bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^J, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	il1=\E[L, ind=\ED,
-	is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
+	cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+	cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
+	ht=^I, il1=\E[L, ind=\ED,
+	is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1h\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
 	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
 	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8,
 	rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l,
@@ -2318,7 +3188,7 @@
 # From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
 # (vt320: uncommented <fsl> --esr)
 vt320|vt300|dec vt320 7 bit terminal,
-	am, eslok, hs, mir, msgr, xenl,
+	am, hs, mir, msgr, xenl,
 	cols#80, lines#24, wsl#80,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
@@ -2327,9 +3197,8 @@
 	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
 	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
-	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
-	il1=\E[L, ind=\ED,
+	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
+	hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
 	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
 	kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
 	kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
@@ -2337,8 +3206,7 @@
 	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
 	kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
 	kf9=\E[20~, khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I,
-	kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, mc0=\E[i, mc4=\E[?4i,
-	mc5=\E[?5i, nel=\EE, rc=\E8, rev=\E[7m,
+	kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m,
 	rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
 	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
 	rmul=\E[m,
@@ -2347,7 +3215,7 @@
 	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
 	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
 	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[1$}\E[H\E[K, use=vt220+keypad,
+	use=dec+pp, use=vt220+keypad, use=dec+sl, use=ansi+enq,
 vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
 	am@,
 	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
@@ -2457,33 +3325,38 @@
 	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
 	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
 	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[2$~\E[1$}\E[1;%dH,
+	tsl=\E[2$~\E[1$}\E[1;%dH, use=dec+sl,
 
 # (vt420: I removed <kf0>, it collided with <kf10>.  I also restored
 # a missing <sc> -- esr)
+# add msgr and other capabilities from vt220 -TD
 vt420|DEC VT420,
-	am, mir, xenl, xon,
-	cols#80, lines#24, vt#3,
+	am, mir, msgr, xenl, xon,
+	cols#80, it#8, lines#24, vt#3,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-	if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
-	is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
-	kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~, rc=\E8, rev=\E[7m$<2>,
-	rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
+	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
+	clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
+	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA, cuu1=\E[A,
+	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+	ech=\E[%p1%dX, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K,
+	enacs=\E)0, flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I,
+	hts=\EH, ich=\E[%p1%d@, if=/usr/share/tabset/vt300,
+	il=\E[%p1%dL, il1=\E[L, ind=\ED, is2=\E[1;24r\E[24;1H,
+	is3=\E[?67h\E[64;1"p, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, kf10=\E[29~,
+	kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~, kf6=\E[18~,
+	kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, kfnd=\E[1~,
+	kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, nel=\EE,
+	rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
+	ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
 	rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
+	rmso=\E[27m, rmul=\E[24m, rs3=\E[?67h\E[64;1"p, sc=\E7,
 	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-	smkx=\E=, smso=\E[7m, smul=\E[4m,
+	sgr0=\E[m\E(B$<2>, smacs=\E(0$<2>, smam=\E[?7h,
+	smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+	use=ansi+pp, use=dec+sl, use=ansi+enq,
 
 # DEC VT220 and up support DECUDK (user-defined keys).  DECUDK (i.e., pfx)
 # takes two parameters, the key and the string.  Translating the key is
@@ -2556,58 +3429,22 @@
 # terminal mode is being used.  If Set-Up has been disabled or
 # assigned to an unknown key, Set-Up may be entered by pressing
 # [F3] as the first key after power up, regardless of keyboard type.
-# (vt520: I added <rmam>/<smam> based on the init string, also <sc> -- esr)
 vt520|DEC VT520,
-	am, mir, xenl, xon,
-	cols#80, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-	if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
-	is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
-	kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~,
-	pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
-	rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
-	ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
-	rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m,
+	use=ansi+rca, use=vt420, use=ansi+tabs,
 
-# (vt525: I added <rmam>/<smam> based on the init string;
-# removed <rmso>=\E[m, <rmul>=\E[m, added <sc> -- esr)
 vt525|DEC VT525,
-	am, mir, xenl, xon,
-	cols#80, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-	if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
-	is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
-	kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~,
-	pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
-	rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
-	ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
-	rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m,
+	use=vt520,
+
+# I just got a brand new Boundless VT520 with that company's "ANSI 2011"
+# Keyboard, which replaces the old LK41R-AA keyboard.
+#
+# In trying to get the function keys to work, I had to cobble my own
+# terminfo.src entry, since the existing vt520 entry doesn't include most of
+# the function keys.  If I blend the entries for "vt420f" and "vt220+keypad"
+# I seem to get them all -Mike Gran
+vt520ansi|Boundless VT520 ANSI,
+	use=ansi+rca, use=vt420f, use=vt220+keypad,
+	use=ansi+tabs,
 
 #### VT100 emulations
 #
@@ -2671,8 +3508,8 @@
 # the default behavior -TD
 
 putty|PuTTY terminal emulator,
-	am, bce, bw, ccc, hs, mir, msgr, xenl, xon,
-	colors#8, it#8, ncv#22, pairs#64,
+	am, bce, bw, ccc, mir, msgr, xenl, xon, XT,
+	colors#8, it#8, ncv#22, pairs#64, U8#1,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
 	clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
@@ -2681,21 +3518,16 @@
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
 	dch=\E[%p1%dP, dch1=\E[P,
 	dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;,
-	dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX,
-	ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
-	flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG,
-	ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	indn=\E[%p1%dS,
+	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+	el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H,
+	hpa=\E[%i%p1%dG, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L,
+	ind=^J, indn=\E[%p1%dS,
 	initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
 	is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
-	kb2=\E[G, kbs=\177, kcan=^C, kcbt=\E[Z, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
-	kend=\E[4~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+	kLFT=\EOD, kRIT=\EOC, kb2=\E[G, kbs=\177, kcbt=\E[Z,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
+	kind=\EOB, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kri=\EOA,
 	kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m,
 	ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l,
 	rmcup=\E[2J\E[?47l, rmir=\E[4l, rmpch=\E[10m,
@@ -2706,20 +3538,82 @@
 	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
 	smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, use=vt102+enq,
+	tbc=\E[3g, vpa=\E[%i%p1%dd, E3=\E[3J, use=putty+fnkeys,
+	use=vt102+enq, use=xterm+sl,
 vt100-putty|Reset PuTTY to pure vt100,
 	rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
 	use=vt100,
 # palette is hardcoded...
 putty-256color|PuTTY 0.58 with xterm 256-colors,
-	initc@, use=xterm+256color, use=putty,
+	use=xterm+256setaf, use=putty,
 
 # One of the keyboard selections is "VT100+".
 # pterm (the X11 port) uses shifted F1-F10 as F11-F20
 putty-vt100|VT100+ keyboard layout,
+	use=putty+fnkeys+vt100, use=putty,
+
+putty-sco|putty with SCO function keys,
+	use=putty+fnkeys+sco, use=putty,
+
+# PuTTY has more than one section in its Keyboard configuration:
+# a) backspace/delete, which we ignore since that choice largely depends on
+#    whether one matches Unix and BSD or Linux.
+# b) home/end keys, also ignored because the "rxvt" setting sends keys which
+#    are unrelated to rxvt's actual settings.
+# c) function keys and keypad - this is the interesting part.  None of the
+#    selections match any of their respective namesakes, but they are shown
+#    here to help users who expect that the selections do what is implied.
+#
+# This is the default setting for PuTTY
+putty+fnkeys|fn-keys for PuTTY,
+	use=putty+fnkeys+esc,
+
+putty+fnkeys+esc|ESC[n~ fn-keys for PuTTY,
+	kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+	kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+	kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~,
+	kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
+	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+
+putty+fnkeys+linux|Linux fn-keys for PuTTY,
+	kf1=\E[[A, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
+	use=putty+fnkeys+esc,
+
+putty+fnkeys+xterm|Xterm R6 fn-keys for PuTTY,
+	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+	use=putty+fnkeys+esc,
+
+putty+fnkeys+vt400|VT400 fn-keys for PuTTY,
+	use=putty+fnkeys+esc,
+
+# Shifted F1 is F11.  F13-F20 inherit from the defaults, and the last distinct
+# key is F20.
+putty+fnkeys+vt100|VT100+ fn-keys for PuTTY,
 	kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EO[, kf2=\EOQ,
 	kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
-	kf9=\EOX, use=putty,
+	kf9=\EOX, use=putty+fnkeys+esc,
+
+# Unlike xterm-sco, this leaves kmous ambiguous with kf1.
+#
+# Use modifiers to obtain function keys past 12:
+# F1-F12 - normal
+# F13-F24 - shift
+# F25-F36 - control/alt
+# F37-F48 - control/shift
+#
+putty+fnkeys+sco|SCO fn-keys for PuTTY,
+	kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
+	kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b,
+	kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
+	kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
+	kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
+	kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
+	kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
+	kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
+	kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
+	kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
+	kich1=\E[L, knp=\E[G, kpp=\E[I,
 
 # This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
 # T. Teranishi dated Mar 10, 1998.  It is a free software terminal emulator
@@ -2864,14 +3758,19 @@
 ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+,
 	use=ms-vt100+,
 
+# expect-5.44.1.15/example/tkterm
 # a minimal subset of a vt100 (compare with "news-unk).
+#
+# The missing "=" in smkx is not a typo (here), but an error in tkterm.
 tt|tkterm|Don Libes' tk text widget terminal emulator,
-	clear=\E[H\E[J, cr=^M, cuf1=\E[C, cup=\E[%p1%d;%p2%dH,
-	cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-	kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, rmso=\E[m,
+	clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+	cup=\E[%p1%d;%p2%dH, cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ,
+	kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
+	kf9=\EOX, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E,
 	smso=\E[7m,
 
-#### X terminal emulators
+######## X TERMINAL EMULATORS
+#### XTERM
 #
 # You can add the following line to your .Xdefaults to change the terminal type
 # set by the xterms you start up to my-xterm:
@@ -2934,7 +3833,7 @@
 # added khome/kend, hts based on the R6 xterm code - TD
 # (khome/kend do not actually work in X11R5 or X11R6, but many people use this
 # for compatibility with other emulators).
-xterm-r6|xterm-old|xterm X11R6 version,
+xterm-r6|xterm X11R6 version,
 	OTbs, am, km, mir, msgr, xenl,
 	cols#80, it#8, lines#24,
 	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
@@ -2960,10 +3859,12 @@
 	sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
 	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
 	use=vt100+enq,
+xterm-old|antique xterm version,
+	use=xterm-r6,
 # This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
 # The name has been changed and some aliases have been removed.
 xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
-	OTbs, am, bce, km, mir, msgr, xenl,
+	OTbs, am, bce, km, mir, msgr, xenl, XT,
 	cols#80, it#8, lines#24, ncv@,
 	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
@@ -3007,13 +3908,13 @@
 # xterm to use terminfo-based descriptions with the titeInhibit resource.
 # -- the distribution contained incorrect khome/kend values -TD
 xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System),
-	mc5i,
 	blink=\E[5m, ich1@, invis=\E[8m,
 	is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
-	mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rmcup=\E[?1047l\E[?1048l,
-	rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
+	rmcup=\E[?1047l\E[?1048l, rs1=\Ec,
+	rs2=\E[!p\E[?3;4l\E[4l\E>,
 	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	smcup=\E[?1048h\E[?1047h, use=xterm-xf86-v33,
+	smcup=\E[?1048h\E[?1047h, use=ansi+pp,
+	use=xterm-xf86-v33,
 
 # This version was released in XFree86 4.0.
 xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
@@ -3054,12 +3955,14 @@
 # This version reflects the current xterm features.
 xterm-new|modern xterm terminal emulator,
 	npc,
-	indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
-	kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE,
-	kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M,
-	knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys,
+	indn=\E[%p1%dS, kb2=\EOE, kcbt=\E[Z, kent=\EOM,
+	rin=\E[%p1%dT, use=xterm+pcfkeys, use=xterm+tmux,
 	use=xterm-basic,
+
+# This fragment is for people who cannot agree on what the backspace key
+# should send.
+xterm+kbs|fragment for backspace key,
+	kbs=^H,
 #
 # This fragment describes as much of XFree86 xterm's "pc-style" function
 # keys as will fit into terminfo's 60 function keys.
@@ -3225,7 +4128,7 @@
 #
 # This chunk is used for building the VT220/Sun/PC keyboard variants.
 xterm-basic|modern xterm terminal emulator - common,
-	OTbs, am, bce, km, mc5i, mir, msgr, xenl, AX,
+	OTbs, am, bce, km, mir, msgr, xenl, AX, XT,
 	colors#8, cols#80, it#8, lines#24, pairs#64,
 	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
@@ -3233,34 +4136,40 @@
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
 	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
-	flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
-	ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
-	ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
-	kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
+	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+	el1=\E[1K, flash=\E[?5h$<100/>\E[?5l, home=\E[H,
+	hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+	il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
+	is2=\E[!p\E[?3;4l\E[4l\E>, kmous=\E[M, meml=\El,
 	memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
-	rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
+	ritm=\E[23m, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
+	rmir=\E[4l, rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m,
+	rmul=\E[24m, rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
 	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
 	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
 	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
-	sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
-	smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+	sgr0=\E(B\E[m, sitm=\E[3m, smacs=\E(0, smam=\E[?7h,
+	smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=,
+	smm=\E[?1034h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+	vpa=\E[%i%p1%dd, E3=\E[3J, use=ansi+pp, use=xterm+kbs,
+	use=vt100+enq,
 
 # From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
 # In retrospect, something like xterm-r6 was intended here -TD
 xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
 	rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
 
-# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
+# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
+# If configured to support 88- or 256-colors (which is fairly common in 2009),
+# xterm also recognizes the control sequences for initc -TD
 xterm-16color|xterm with 16 colors like aixterm,
+	ccc,
+	initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
 	use=ibm+16color, use=xterm-new,
 
-# This is a compile-time feature of XFree86 xterm beginning with
+# 256-colors is a compile-time feature of XFree86 xterm beginning with
 # patch #111 (1999/7/10) -TD
 xterm+256color|xterm 256-color feature,
 	ccc,
@@ -3270,7 +4179,15 @@
 	setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
 	setb@, setf@,
 
-# This is a compile-time feature of XFree86 xterm beginning with
+xterm+256setaf|xterm 256-color (set-only),
+	ccc@,
+	colors#256, pairs#32767,
+	initc@,
+	setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
+	setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
+	setb@, setf@,
+
+# 88-colors is a compile-time feature of XFree86 xterm beginning with
 # patch #115 (1999/9/18) -TD
 #
 # Note that the escape sequences used are the same as for 256-colors - xterm
@@ -3295,13 +4212,27 @@
 xterm-88color|xterm with 88 colors,
 	use=xterm+88color, use=xterm-256color,
 
-# These two are used to demonstrate the any-event mouse support, i.e., by
-# using an extended name "XM" which tells ncurses to put the terminal into
-# a special mode when initializing the xterm mouse.
-xterm-1002|testing xterm-mouse,
-	XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-new,
-xterm-1003|testing xterm-mouse,
-	XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-new,
+# This chunk is based on suggestions by Ailin Nemui and Nicholas Marriott, who
+# asked for some of xterm's advanced features to be added to its terminfo
+# entry.  It defines extended capabilities not found in standard terminfo or
+# termcap.  These are useful in tmux, for instance, hence the name.
+#
+# One caveat in adding extended capabilities in ncurses is that if the names
+# are longer than two characters, then they will not be visible through the
+# termcap interface.
+#
+# Ms modifies the selection/clipboard.  Its parameters are
+#	p1 = the storage unit (clipboard, selection or cut buffer)
+#	p2 = the base64-encoded clipboard content.
+#
+# Ss is used to set the cursor style as described by the DECSCUSR
+#	function to a block or underline.
+# Se resets the cursor style to the terminal power-on default.
+#
+# Cs and Cr set and reset the cursor colour.
+xterm+tmux|advanced xterm features used in tmux,
+	Cr=\E]112\007, Cs=\E]12;%p1%s\007,
+	Ms=\E]52;%p1%s;%p2%s\007, Se=\E[2 q, Ss=\E[%p1%d q,
 
 # This is another variant, for XFree86 4.0 xterm (T.Dickey)
 # This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
@@ -3328,8 +4259,8 @@
 	hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@,
 	il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m,
 	is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
-	ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H,
-	kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
+	ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kc1=\217q,
+	kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
 	kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
 	kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~,
 	kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
@@ -3351,6 +4282,7 @@
 	smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=,
 	smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR,
 	u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd,
+	use=xterm+kbs,
 
 xterm-hp|xterm with hpterm function keys,
 	kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
@@ -3397,8 +4329,9 @@
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
 	cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
-	home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
+	home=\EH, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+	kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
+	use=xterm+kbs,
 
 xterm-noapp|xterm with cursor keys in normal mode,
 	rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
@@ -3411,25 +4344,202 @@
 xterm|xterm terminal emulator (X Window System),
 	use=xterm-new,
 
-# These entries allow access to the X titlebar and icon name as a status line.
-# Note that twm (and possibly window managers descended from it such as tvtwm,
-# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
-# with it.
+# This entry assumes that xterm's handling of VT100 SI/SO is disabled by
+# setting the vt100Graphics resource to false.
+xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode,
+	U8#1, use=xterm,
+
+# These building-blocks allow access to the X titlebar and icon name as a
+# status line.  There are a few problems in using them in entries:
+#
+# a) tsl should have a parameter to denote the column on which to transfer to
+#    the status line.
+# b) the "0" code for xterm updates both icon-title and window title.  Some
+#    window managers such as twm (and possibly window managers descended from
+#    it such as tvtwm, ctwm, and vtwm) track windows by icon-name. Thus, you
+#    don't want to mess with icon-name when using those window managers.
+#
+# The extension "TS" is preferable, because it does not accept a parameter.
+# However, if you are using a non-extended terminfo, "TS" is not visible.
 xterm+sl|access X title line and icon name,
 	hs,
-	wsl#40,
-	dsl=\E]0;\007, fsl=^G, tsl=\E]0;, use=xterm,
+	dsl=\E]0;\007, fsl=^G, tsl=\E]0;, TS=\E]0;,
 xterm+sl-twm|access X title line (pacify twm-descended window managers),
 	hs,
-	wsl#40,
-	dsl=\E]2;\007, fsl=^G, tsl=\E]2;, use=xterm,
+	dsl=\E]2;\007, fsl=^G, tsl=\E]2;, TS=\E]2;,
+
+# In contrast, this block can be used for a DEC vt320 and up.  There are two
+# controls used.
+#
+# DECSASD (select active status display)
+#	\E[0$}	Main display
+#	\E[1$}	Status line
+#
+# DECSSDT (select status line type)
+#	\E[0$~	No status line
+#	\E[1$~	Indicator status line
+#	\E[2$~	Host-writable status line
+#
+# The building block assumes that the terminal always shows something at the
+# status line (either the indicator, or status line).  That is because if no
+# status line is used, then the terminal makes that line part of the user
+# window, changing its size without notice.
+#
+# Because there is no "esl" (enable status line) capability, the "tsl"
+# capability ensures that the status line is host-writable.  A DEC terminal
+# will clear the status line when changing from indicator to host-writable
+# mode.
+#
+# Once on the status line, the row part of cursor addressing is ignored.  Since
+# tsl expects a parameter (to specify the column), the shortest addressing that
+# can be used for this purpose is HPA, e.g., \E[5d to go to column 5.
+#
+dec+sl|DEC VTxx status line,
+	eslok, hs,
+	dsl=\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
 
 #
 # The following xterm variants don't depend on your base version
 #
 # xterm with bold instead of underline
 xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
+	sgr=%?%p9%t\016%e\017%;B\E[0%?%p6%t;1%;%?%p2%t;1%;%?%p1%p3%|%t;7%;m,
 	smso=\E[7m, smul=\E[1m, use=xterm-old,
+
+# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
+xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
+	ich@, ich1@, use=xterm,
+# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
+xterm1|xterm terminal emulator ignoring the alternate screen buffer,
+	rmcup@, smcup@, use=xterm,
+
+#### XTERM Mouse
+# The xterm mouse protocol is used by other terminal emulators.
+# In this section, two extended capabilities are used to illustrate the mouse
+# protocol: XM and xm.  The "XM" capability is recognized by ncurses to allow
+# enabling/disabling other mouse protocols.  The "xm" capability describes the
+# mouse response; currently there is no interpreter which would use this
+# information to make the mouse support completely data-driven.
+
+# Here is the "original" xterm mouse protocol.
+#
+# First seen in X10.3, February 1986, this likely dates from 1985 based on the
+# copyright dates in the sources.  A comment in charproc.c notes "MIT bogus
+# sequence", referring to the fact that it does not correspond to a "real"
+# terminal.  The mouse responses for the X10 protocol are sent only for
+# button-presses.
+xterm+x10mouse|X10 xterm mouse protocol,
+	kmous=\E[M, XM=\E[?9%?%p1%{1}%=%th%el%;,
+	xm=\E[M%p3%' '%+%c%p2%'!'%+%c%p1%'!'%+%c,
+xterm-x10mouse|X10 xterm mouse,
+	use=xterm+x10mouse, use=xterm,
+
+# Here is the conventional xterm mouse protocol, introduced with X11R1 in
+# September 1987.
+#
+# The mouse responses for the X11 protocol covered button releases, as well as
+# modifiers:
+#  shift    4
+#  alt/meta 8 (technically the "mod1" mask, because X11 has no such keys)
+#  control 16
+#
+# The modifiers are not reflected in this description because as used in xterm
+# they are normally inaccessible because the translations resources assign
+# shift and control to other features.  However, they are important because
+# they take up space in the first byte of the response.  The other bits of this
+# byte are used to encode the button number for both presses and releases.
+# In the X11 protocol, any button-release is encoded with "3" (the lowest 2
+# bits in the byte).  Later work on XFree86 xterm used the remaining 3 bits to
+# provide additional features, e.g., wheel mouse.
+#
+# X11R1's xterm also supported an "emacs" mouse protocol, with final character
+# "t" or "T", which was activated by double-clicking.  The "t" response was
+# used when the starting/ending positions were the same.
+#
+# X11R3 (February 1988) added the highlight/tracking mode.
+#
+# X11R4 (December 1989) added the control sequences document, listing the
+# control sequences for the X10/X11 protocols without descriptions.  It also
+# mentioned the "emacs" ("T") response.  Comments in button.c referred to the
+# X11 protocol as "DEC vt200 compatible", although DEC offered no such terminal.
+#
+# X11R5 (November 1993) gave a description of the mouse protocol.
+#
+# X11R6 (January 1995) moved the control sequences document out of the xterm
+# source-directory to xc/doc/specs/xterm, polishing the formatting but adding
+# no new information.
+xterm+x11mouse|X11 xterm mouse protocol,
+	kmous=\E[M, XM=\E[?1000%?%p1%{1}%=%th%el%;,
+	xm=\E[M%?%p4%t3%e%p3%' '%+%c%;%p2%'!'%+%c%p1%'!'%+%c,
+xterm-x11mouse|X11 mouse,
+	use=xterm+x11mouse, use=xterm,
+
+# Here is a suggested description of the xterm highlighting protocol.
+# A more complicated example could be constructed to account for the "t"
+# response.
+xterm+x11hilite|X11 xterm mouse protocol with highlight,
+	kmous=\E[M, XM=\E[?1001%?%p1%{1}%=%th%el%;,
+	xm=\E[%p7%'!'%+%p6%'!'%+%c%p9%'!'%+%c%p8%'!'%+%c%p2%'!'%+%c%p1%'!'%+%cT,
+xterm-x11hilite|X11 mouse with highlight,
+	use=xterm+x11mouse, use=xterm,
+
+# The preceding were the sources from X Consortium.  Other sources (or patches)
+# were available.  Starting in mid-1995, XFree86 developers collected some of
+# those changes and began improvements, e.g., to support color.  This was, by
+# the way, around the same time that rxvt developers began implementing color,
+# though dates (and attributions) are not well documented.  I became interested
+# in xterm in late 1995, and involved in early 1996.  To complete the picture,
+# CDE's dtterm was introduced around the same time, with no mouse protocol -TD
+
+# xterm patch #83 (1998/10/7), added Jason Bacon's changes to provide an
+# "any-event" mouse mode.
+xterm+sm+1002|xterm any-event mouse,
+	kmous=\E[M, XM=\E[?1002%?%p1%{1}%=%th%el%;,
+xterm-1002|xterm any-event mouse,
+	use=xterm+sm+1002, use=xterm,
+
+xterm+sm+1003|testing xterm-mouse,
+	kmous=\E[M, XM=\E[?1003%?%p1%{1}%=%th%el%;,
+
+xterm-1003|testing xterm-mouse,
+	use=xterm+sm+1003, use=xterm,
+
+# xterm patch #116 (1999/9/25) added Stephen P Wall's changes to support DEC
+# locator mode.
+
+# xterm patch #120 (1999/10/28) added my change to support wheel mouse, by
+# dropping support for the X11 mouse protocol's shift-modifier and using
+# available bits in the first byte of the response to encode buttons 4 and 5.
+# xterm patch #126 (2000/2/8) amended that change to avoid conflicting with
+# older configurations which might have used the obsolete modifiers.
+
+# xterm patch #262 (2010/8/30) added Ryan Johnson's changes to provide a mode
+# where the coordinates in the mouse response would be encoded in UTF-8,
+# thereby extending the range of coordinates past 222=(255-33).  This is the
+# "1005" mouse mode.
+xterm+sm+1005|xterm UTF-8 mouse,
+	kmous=\E[M, XM=\E[?1005;1000%?%p1%{1}%=%th%el%;,
+	xm=\E[M%?%p4%t3%e%p3%' '%+%c%;%p2%'!'%+%u%p1%'!'%+%u,
+xterm-1005|xterm UTF-8 mouse,
+	use=xterm+sm+1005, use=xterm,
+
+# xterm patch #277 (2012/1/7) provides a mode where the mouse response uses
+# SGR-style parameters.
+#
+# Someone stated that the 1005 mouse mode would not be handled properly in luit.
+# (By the way, this is a problem with the X11 protocol).  A more plausible
+# criticism is that the responses provided by the 1005 mode are not distinct
+# from the non-1005 responses.
+#
+# As an alternative (and fixing the longstanding limitation of X11 mouse
+# protocol regarding button-releases), I provided this:
+xterm+sm+1006|xterm SGR-mouse,
+	kmous=\E[<, XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
+	xm=\E[<%p1%d;%p2%d;%p3%d;%?%p4%tM%em%;,
+xterm-1006|xterm SGR-mouse,
+	use=xterm+sm+1006, use=xterm,
+
+#### KTERM
 # (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
 # (kterm should not invoke DEC Graphics as the alternate character set
 #  -- Kenji Rikitake)
@@ -3437,7 +4547,7 @@
 #  -- MATSUMOTO Shoji)
 # kterm implements acsc via built-in table of X Drawable's
 kterm|kterm kanji terminal emulator (X window system),
-	eslok, hs,
+	eslok, hs, XT,
 	ncv@,
 	acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~,
 	csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
@@ -3447,12 +4557,51 @@
 	tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color,
 kterm-color|kterm-co|kterm with ANSI colors,
 	ncv@, use=kterm, use=ecma+color,
-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
-	ich@, ich1@, use=xterm,
-# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
-xterm1|xterm terminal emulator ignoring the alternate screen buffer,
-	rmcup@, smcup@, use=xterm,
+
+#### Other XTERM
+# These (xtermc and xtermm) are distributed with Solaris.  They refer to a
+# variant of xterm which is apparently no longer supported, but are interesting
+# because they illustrate SVr4 curses mouse controls - T.Dickey
+xtermm|xterm terminal emulator (monocrome),
+	OTbs, am, km, mir, msgr, xenl,
+	btns#3, cols#80, it#8, lines#24,
+	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+	el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
+	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+	il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
+	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
+	kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
+	kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
+	knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
+	rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
+	rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
+	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+	sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
+	smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
+
+xtermc|xterm terminal emulator (color),
+	colors#8, ncv#7, pairs#64,
+	op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+	use=xtermm,
+
+# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
+# Here's a termcap entry I've been using for xterm_color, which comes
+# with BSD/OS 2.0, and the X11R6 contrib tape too I think.  Besides the
+# color stuff, I also have a status line defined as the window manager
+# title bar. [I have translated it to terminfo -- ESR]
+xterm-pcolor|xterm with color used for highlights and status line,
+	wsl#40,
+	bold=\E[1;43m, rev=\E[7;34m,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1;43%;%?%p2%t;4;42%;%?%p1%t;7;31%;%?%p3%t;7;34%;%?%p4%t;5%;%?%p7%t;8%;m,
+	smso=\E[7;31m, smul=\E[4;42m, use=xterm+sl, use=xterm-r6,
 
 # This describes the capabilities of color_xterm, an xterm variant from
 # before ECMA-64 color support was folded into the main-line xterm release.
@@ -3461,7 +4610,7 @@
 # The README's with the distribution also say that it supports SGR 21, 24, 25
 # and 27, but they are not present in the terminfo or termcap.
 color_xterm|cx|cx100|color_xterm color terminal emulator for X,
-	OTbs, am, km, mir, msgr, xenl,
+	OTbs, am, km, mir, msgr, xenl, XT,
 	cols#80, it#8, lines#65, ncv@,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
@@ -3500,6 +4649,32 @@
 	ncv@,
 	op=\E[m, use=xterm-r6, use=klone+color,
 
+# This entry describes an xterm with Sun-style function keys enabled
+# via the X resource setting "xterm*sunFunctionKeys:true"
+# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
+# The <kf13>...<kf20> keys are L3-L10.  We don't set <kf16=\E[197z>
+# because we want it to be seen as <kcpy>.
+# The <kf31>...<kf45> keys are R1-R15.  We treat some of these in accordance
+# with their Sun keyboard labels instead.
+# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
+xterm-sun|xterm with sunFunctionKeys true,
+	kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
+	kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
+	kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
+	kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
+	kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
+	kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z,
+	kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z,
+	kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z,
+	kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z,
+	kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
+	kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
+	kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
+	use=xterm-basic,
+xterms-sun|small (80x24) xterm with sunFunctionKeys true,
+	cols#80, lines#24, use=xterm-sun,
+
+#### GNOME (VTE)
 # this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
 gnome-rh62|Gnome terminal,
 	bce,
@@ -3553,7 +4728,7 @@
 #
 # bce and msgr are repaired.
 gnome-rh90|GNOME Terminal,
-	bce, msgr,
+	bce, msgr, XT,
 	hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C,
 	kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g,
 	vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys,
@@ -3574,8 +4749,10 @@
 # of the keys (which more/less correspond to the termcap values), and will
 # interpret those according to the $TERM value, but others not in the
 # terminfo according to some constantly changing set of hacker guidelines -TD
-gnome-2007|GNOME Terminal snapshot 2.18.1,
+vte-2007|VTE in GNOME Terminal snapshot 2.18.1,
 	use=xterm+pcc2, use=gnome-fc5,
+gnome-2007|GNOME Terminal snapshot 2.18.1,
+	use=vte-2007,
 
 # GNOME Terminal 2.22.3 (2008 snapshot)
 #
@@ -3584,8 +4761,26 @@
 # vt220's behavior, which will make it less usable on a VMS system (unclear
 # what the intent of the developer is, since the NRC feature exposed in vttest
 # by this change does not work).
+vte-2008|VTE in GNOME Terminal snapshot 2.22.3,
+	use=vte+pcfkeys, use=vte-2007,
 gnome-2008|GNOME Terminal snapshot 2.22.3,
-	use=gnome+pcfkeys, use=gnome-2007,
+	use=vte-2008,
+
+# GNOME Terminal 3.6.0 (2012)
+# VTE 0.34.1 was marked in git 2012-10-15 (three days after patch was applied
+# in ncurses).  It inherited from gnome-fc5, which broke the modified forms
+# of f1-f4 -TD
+#
+# Testing with tack shows that flash does not/has not worked -TD
+vte-2012|VTE 0.34.1,
+	ncv#16,
+	dim=\E[2m, flash@, invis=\E[8m, ritm=\E[23m,
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
+	sitm=\E[3m, use=vte-2008,
+# Version 3.6.1 sets TERM to xterm-256color (still hardcoded), which has
+# 61 differences from a correct entry for gnome terminal.
+gnome-2012|GNOME Terminal 3.6.0,
+	use=vte-2012,
 
 # GNOME terminal may automatically use the contents of the "xterm" terminfo to
 # supply key information which is not built into the program.  With 2.22.3,
@@ -3603,7 +4798,7 @@
 #
 # The parameters with \EO (SS3) are technically an error, since SS3 should have
 # no parameters.  This appears to be rote copying based on xterm+pcc0.
-gnome+pcfkeys|gnome variation on xterm+pcfkeys,
+vte+pcfkeys|VTE's variation on xterm+pcfkeys,
 	kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R,
 	kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q,
 	kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P,
@@ -3611,13 +4806,25 @@
 	kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S,
 	kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R,
 	use=xterm+pcfkeys,
+gnome+pcfkeys|VTE's variation on xterm+pcfkeys,
+	use=vte+pcfkeys,
 
+# deprecated - use "vte" for newer versions
 gnome|GNOME Terminal,
-	use=gnome-2008,
+	use=vte-2012,
+
+# relevant changes were made in January 2014
+vte-2014|VTE 0.35.1,
+	use=xterm+pcfkeys, use=vte-2012,
+
+vte|VTE aka GNOME Terminal,
+	use=vte-2014,
 
 # palette is hardcoded...
+vte-256color|VTE with xterm 256-colors,
+	use=xterm+256color, use=vte,
 gnome-256color|GNOME Terminal with xterm 256-colors,
-	initc@, use=xterm+256color, use=gnome,
+	use=vte-256color,
 
 # XFCE Terminal 0.2.5.4beta2
 #
@@ -3626,8 +4833,9 @@
 # Since most of the terminfo-related behavior is due to the VTE library,
 # the terminfo is the same as gnome-terminal.
 xfce|Xfce Terminal,
-	use=gnome,
+	use=vte-2008,
 
+#### Other GNOME
 # Multi-Gnome-Terminal 1.6.2
 #
 # This does not use VTE, and does have different behavior (compare xfce and
@@ -3635,6 +4843,7 @@
 mgt|Multi GNOME Terminal,
 	indn=\E[%p1%dS, rin=\E[%p1%dT, use=xterm-xf86-v333,
 
+#### KDE
 # This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
 # or not is debatable).
 kvt|KDE terminal,
@@ -3675,28 +4884,31 @@
 # Updated for konsole 1.6.6:
 #    add control-key modifiers for function-keys, etc.
 #
+# Updated for konsole 2.12.4:
+#    add sitm/ritm
+#
 # vttest menu 1 shows that both konsole and gnome terminal do wrapping
 # different from xterm (and vt100's).  They have the same behavior in this
 # detail, but it is unclear which copies the other.
 konsole-base|KDE console window,
-	bce, km@, npc,
+	bce, km@, npc, XT,
+	ncv@,
 	bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h,
 	ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l,
-	hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1@,
+	hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1=\E[3~,
 	kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@,
 	kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
-	kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, rmam=\E[?7l,
-	rmso=\E[27m, rmul=\E[24m,
+	kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, ritm=\E[23m,
+	rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m,
 	rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
 	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
+	sgr0=\E[0m\017, sitm=\E[3m, smam=\E[?7h, vpa=\E[%i%p1%dd,
 	use=ecma+color, use=xterm-r6,
 konsole-linux|KDE console window with linux keyboard,
-	kdch1=\E[3~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@,
-	kf2=\E[[B, kf20@, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	use=konsole-base,
+	kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13@,
+	kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E[[B, kf20@,
+	kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
+	kf8=\E[19~, kf9=\E[20~, use=konsole-base,
 konsole-solaris|KDE console window with Solaris keyboard,
 	kbs=^H, kend=\E[4~, khome=\E[1~, use=konsole-vt100,
 # KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather
@@ -3730,7 +4942,21 @@
 
 # palette is hardcoded...
 konsole-256color|KDE console window with xterm 256-colors,
-	initc@, use=xterm+256color, use=konsole,
+	use=xterm+256setaf, use=konsole,
+
+#### MLTERM
+# http://mlterm.sourceforge.net/
+
+mlterm|multi lingual terminal emulator,
+	use=mlterm3,
+
+# Tested mlterm 3.2.2:
+# mlterm 3.x has made changes, but they are not reflected in the included
+# mlterm.ti; this entry is based on testing with tack and vttest -TD
+mlterm3|multi lingual terminal emulator,
+	kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+	ritm=\E[23m, sitm=\E[3m, use=xterm+app, use=xterm+pcf0,
+	use=xterm+pcc2, use=xterm+pce2, use=mlterm2,
 
 # This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
 #
@@ -3751,8 +4977,8 @@
 #	control/alt		kf1 to kf12	\E[11;7~ to \E[24;7~
 #	control/shift/alt	kf1 to kf12	\E[11;8~ to \E[24;8~
 #
-mlterm|multi lingual terminal emulator,
-	am, eslok, km, mc5i, mir, msgr, npc, xenl,
+mlterm2|multi lingual terminal emulator,
+	am, eslok, km, mc5i, mir, msgr, npc, xenl, XT,
 	colors#8, cols#80, it#8, lines#24, pairs#64,
 	acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
@@ -3794,6 +5020,10 @@
 	kRIT6=\EO1;6C, kRIT7=\EO1;7C, kUP=\EO1;2A, kUP3=\EO1;3A,
 	kUP4=\EO1;4A, kUP5=\EO1;5A, kUP6=\EO1;6A, kUP7=\EO1;7A,
 
+mlterm-256color|mlterm 3.0 with xterm 256-colors,
+	use=xterm+256color, use=mlterm,
+
+#### RXVT
 # From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
 # Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
 # Notes:
@@ -3816,7 +5046,7 @@
 # removed dch/dch1 because they are inconsistent with bce/ech -TD
 # remove km as per tack test -TD
 rxvt-basic|rxvt terminal base (X Window System),
-	OTbs, am, bce, eo, mir, msgr, xenl, xon,
+	OTbs, am, bce, eo, mir, msgr, xenl, xon, XT,
 	cols#80, it#8, lines#24,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
@@ -3934,13 +5164,32 @@
 	kf38=\E[29\^, kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^,
 	kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
 	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, kDN=\E[b, kDN5=\EOb,
-	kEND5=\E[8\^, kEND6=\E[8@, kHOM5=\E[7\^, kHOM6=\E[7@,
-	kIC5=\E[2\^, kIC6=\E[2@, kLFT5=\EOd, kNXT5=\E[6\^,
-	kNXT6=\E[6@, kPRV5=\E[5\^, kPRV6=\E[5@, kRIT5=\EOc,
-	kUP=\E[a, kUP5=\EOa,
+	kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, kind=\E[a, knp=\E[6~,
+	kpp=\E[5~, kri=\E[b, kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@,
+	kDN=\E[b, kDN5=\EOb, kEND5=\E[8\^, kEND6=\E[8@,
+	kHOM5=\E[7\^, kHOM6=\E[7@, kIC5=\E[2\^, kIC6=\E[2@,
+	kLFT5=\EOd, kNXT5=\E[6\^, kNXT6=\E[6@, kPRV5=\E[5\^,
+	kPRV6=\E[5@, kRIT5=\EOc, kUP=\E[a, kUP5=\EOa,
 
+# rxvt was originally "xvt", first announced in April 1993:
+#	http://www.informatica.co.cr/linux-desktops/research/1993/0416.html
+#
+# Though its change-log does not mention this, John Davis has stated that he
+# was the author of the changes to use the bce ("new color model") which was
+# incorporated into rxvt 2.11 (June 15, 1995).  The change-log does not give
+# dates, nor give developer's names.  Initial color support was added for rxvt
+# "2.0", which was sometime in 1994.
+#
+# rxvt had usable color support with 2.16 (April 2, 1996), with some help by my work on
+# vttest, as well as bug reports to Mark Olesen.  For instance, the fix
+# mentioned here
+#	http://web.archiveorange.com/archive/v/6ETvLb5wHtbbzCaS4S9J
+# was from one of my bug-reports -TD
+#
+# While the color model both for xterm and rxvt was based on Linux console,
+# Olesen (or possibly Davis) diverged in one respect from Linux's bce color
+# behavior: inserting/deleting characters does not fill the newly empty cell
+# with the default background color.
 rxvt|rxvt terminal emulator (X Window System),
 	ncv@,
 	hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017,
@@ -3954,24 +5203,53 @@
 rxvt-xpm|rxvt terminal emulator (X Window System),
 	use=rxvt,
 rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
-	acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+	acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
 	use=rxvt,
 rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin,
-	acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
+	acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
 	use=rxvt-cygwin,
 
 # This variant is supposed to work with rxvt 2.7.7 when compiled with
 # NO_BRIGHTCOLOR defined.  rxvt needs more work...
-rxvt-16color|xterm with 16 colors like aixterm,
+rxvt-16color|rxvt with 16 colors like aixterm,
 	ncv#32, use=ibm+16color, use=rxvt,
 
-# mrxvt 0.5.3
+#### MRXVT
+# mrxvt 0.5.4
 #
 # mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
 # makes its function-keys different from other flavors of rxvt -TD
+#
+# Testing with tack:
+# +	made custom description (below) to work, though it sets TERM=xterm.
+#
+# Testing with vttest:
+# +	While "based on" rxvt, some of the basic functionality is broken.  The
+#	window collapses to a single line when running several of the screens
+#	in vttest, e.g., the tests for cursor movement, screen features,
+#	double-sized characters.
+# +	The vt52 test works properly, but this is an exception.  Due to the
+#	other bug(s) most of vttest is untestable.
+# +	the color test using ECH shows a gap in the bce model, like rxvt.
+#
+# Testing with xterm "vttest" scripts:
+# +	resize.pl does not work because mrxvt does implement CSI 18 t
+#	(not in rxvt, but not documented by mrxvt) but not CSI 19 t.
+# +	none of the "dynamic colors" (OSC colors) scripts work.
 mrxvt|multitabbed rxvt,
-	use=xterm+pcc2, use=xterm+r6f2, use=rxvt,
+	XT,
+	kEND=\E[8;2~, kHOM=\E[7;2~, kcub1=\E[D, kcud1=\E[B,
+	kcuf1=\E[C, kcuu1=\E[A, kend=\E[8~, khome=\E[7~,
+	kEND3=\E[8;3~, kEND4=\E[8;4~, kEND5=\E[8;5~,
+	kEND6=\E[8;6~, kEND7=\E[8;7~, kHOM3=\E[7;3~,
+	kHOM4=\E[7;4~, kHOM5=\E[7;5~, kHOM6=\E[7;6~,
+	kHOM7=\E[7;7~, use=xterm+r6f2, use=xterm+pcfkeys,
+	use=rxvt,
 
+mrxvt-256color|multitabbed rxvt with 256 colors,
+	use=xterm+256color, use=mrxvt,
+
+#### ETERM
 # From: Michael Jennings <mej@valinux.com>
 #
 # Eterm 0.9.3
@@ -3983,7 +5261,7 @@
 # remove nonworking flash -TD
 # remove km as per tack test -TD
 Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
-	am, bce, bw, eo, mc5i, mir, msgr, xenl, xon,
+	am, bce, bw, eo, mc5i, mir, msgr, xenl, xon, XT,
 	btns#5, cols#80, it#8, lines#24, lm#0, ncv@,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
@@ -4017,10 +5295,13 @@
 Eterm-88color|Eterm with 88 colors,
 	use=xterm+88color, use=Eterm,
 
+#### ATERM
 # Based on rxvt 2.4.8, it has a few differences in key bindings
 aterm|AfterStep terminal,
+	XT,
 	kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
 
+#### XITERM
 # xiterm  0.5-5.2
 # This is not based on xterm's source...
 # vttest shows several problems with keyboard, cursor-movements.
@@ -4029,48 +5310,8 @@
 	km@,
 	kbs=\177, kdch1=\E[3~, use=klone+color, use=xterm-r6,
 
-# These (xtermc and xtermm) are distributed with Solaris.  They refer to a
-# variant of xterm which is apparently no longer supported, but are interesting
-# because they illustrate SVr4 curses mouse controls - T.Dickey
-xtermm|xterm terminal emulator (monocrome),
-	OTbs, am, km, mir, msgr, xenl,
-	btns#3, cols#80, it#8, lines#24,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
-	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
-	kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
-	kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
-	knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
-	rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
-	rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
-	smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
 
-xtermc|xterm terminal emulator (color),
-	colors#8, ncv#7, pairs#64,
-	op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	use=xtermm,
-
-# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
-# Here's a termcap entry I've been using for xterm_color, which comes
-# with BSD/OS 2.0, and the X11R6 contrib tape too I think.  Besides the
-# color stuff, I also have a status line defined as the window manager
-# title bar. [I have translated it to terminfo -- ESR]
-xterm-pcolor|xterm with color used for highlights and status line,
-	bold=\E[1m\E[43m, rev=\E[7m\E[34m, smso=\E[7m\E[31m,
-	smul=\E[4m\E[42m, use=xterm+sl, use=xterm-r6,
-
+#### HPTERM
 # HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in
 # from BSD termcap.  (hpterm:  added empty <acsc>, we have no idea what ACS
 # chars look like --esr)
@@ -4103,31 +5344,7 @@
 	initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI,
 	op=\E&v0S, scp=\E&v%p1%dS, use=hpterm,
 
-# This entry describes an xterm with Sun-style function keys enabled
-# via the X resource setting "xterm*sunFunctionKeys:true"
-# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
-# The <kf13>...<kf20> keys are L3-L10.  We don't set <kf16=\E[197z>
-# because we want it to be seen as <kcpy>.
-# The <kf31>...<kf45> keys are R1-R15.  We treat some of these in accordance
-# with their Sun keyboard labels instead.
-# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
-xterm-sun|xterm with sunFunctionKeys true,
-	kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
-	kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
-	kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
-	kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
-	kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
-	kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z,
-	kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z,
-	kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z,
-	kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z,
-	kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
-	kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
-	kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
-	use=xterm-basic,
-xterms-sun|small (80x24) xterm with sunFunctionKeys true,
-	cols#80, lines#24, use=xterm-sun,
-
+#### EMU
 # This is for the extensible terminal emulator on the X11R6 contrib tape.
 # It corresponds to emu's internal emulation:
 #	emu -term emu
@@ -4140,7 +5357,7 @@
 	acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
 	bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;,
 	cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;,
-	cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\ED,
+	cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\EC,
 	cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA,
 	dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;,
 	ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I,
@@ -4189,6 +5406,8 @@
 	sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
 	smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
+
+#### MVTERM
 # A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
 # print interface, ANSI X3.64 colour escape sequences, etc.  Newsgroup postings
 # indicate that it emulates more than one terminal, but incompletely.
@@ -4223,7 +5442,7 @@
 	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
 	tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys,
 
-### MTERM
+#### MTERM
 #
 # This application is available by email from <mouse@Rodents.Montreal.QC.CA>.
 #
@@ -4285,6 +5504,33 @@
 	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR,
 	u7=\E[6n, vpa=\E[%i%p1%dd,
 
+#### VWM
+# http://vwm.sourceforge.net/
+#
+# VWM 2.0.2 (2009-05-01)
+# vwmterm is a terminal emulator written for the VWM console window manager.
+# This version is obsolete, replaced by libvterm in 2.1.0 (2009-10-23).
+vwmterm|(vwm term),
+	am, bce, ccc, mir, msgr, npc, xenl, xon,
+	colors#8, pairs#64,
+	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+	clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD,
+	cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+	cuu1=\E[A, cvvis=\E[?25h, dim=\E[2m, ed=\E[J, el=\E[K,
+	home=\E[H, il1=\E[L, ind=^J, invis=\E[8m, kcub1=\E[D,
+	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
+	kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[22~,
+	kf12=\E[23~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
+	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+	khome=\E[1~, knp=\E[6~, kpp=\E[5~, rev=\E[7m, rmacs=\E[10m,
+	rmam=\E[?7l, rmcup=\E[?1049l, rs1=\E[H\E[J\E[m\Ec,
+	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+	sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h,
+	smcup=\E[?1049h, smso=\E[3m, smul=\E[4m,
+
 #### MGR
 #
 # MGR is a Bell Labs window system lighter-weight than X.
@@ -4319,6 +5565,264 @@
 	kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
 	khome=\E[1~, knp=\E[6~, kpp=\E[5~, use=mgr,
 
+#### SIMPLETERM
+# st.suckless.org
+# st-0.4.1
+#
+# This version uses a table which supports a single modifier (a subset of
+# xterm's keys, using the same scheme).  Because it supports only a single
+# modifier in this table, function keys f36-f48 are normally unavailable
+# because they are assigned to modifier-4.
+#
+# The program assigns TERM to match the program name (the upstream source says
+# "st", but Debian renames it to "stterm").
+#
+# The source includes two entries which are not useful here:
+#	st-meta| simpleterm with meta key,
+#	st-meta-256color| simpleterm with meta key and 256 colors,
+# because st's notion of "meta" does not correspond to the terminfo definition.
+# Rather, it acts like xterm - when the meta feature is disabled.
+#
+# Removed invis -TD
+# Added eo, removed ul -TD
+#
+# Reviewed st 0.5:
+# implements control-modifier, but not control-shift for special keys
+# implements alt-modifier, but not alt-shift for special keys
+st|stterm| simpleterm 0.4.1,
+	am, bce, eo, hs, mir, msgr, xenl,
+	colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
+	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+	clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
+	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+	cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+	enacs=\E)0, flash=\E[?5h\E[?5l, fsl=^G, home=\E[H,
+	hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+	il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
+	is2=\E[4l\E>\E[?1034l, kDC=\E[3;2~, kEND=\E[1;2F,
+	kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~,
+	kPRV=\E[5;2~, kRIT=\E[1;2C, ka1=\E[1~, ka3=\E[5~, kb2=\EOu,
+	kbs=\177, kc1=\E[4~, kc3=\E[6~, kcbt=\E[Z, kclr=\E[3;5~,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+	kdch1=\E[3~, kdl1=\E[3;2~, ked=\E[1;5F, kel=\E[1;2F,
+	kend=\E[4~, kent=\EOM, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+	kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R,
+	kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
+	kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
+	kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
+	kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
+	kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
+	kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
+	kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,
+	kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
+	kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
+	kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
+	kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q,
+	kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
+	kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
+	kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
+	kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
+	kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+	kil1=\E[2;5~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
+	kpp=\E[5~, kri=\E[1;2A, krmir=\E[2;2~, op=\E[39;49m,
+	rc=\E8, rev=\E[7m, ri=\EM, ritm=\E[23m, rmacs=\E(B,
+	rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+	rmul=\E[m, rs1=\Ec, rs2=\E[4l\E>\E[?1034l, sc=\E7,
+	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
+	sgr0=\E[0m, sitm=\E[3m, smacs=\E(0, smcup=\E[?1049h,
+	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+	tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n,
+	u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd,
+#
+# st-0.1.1
+#
+# Note:  the original terminfo description uses leading blank to persuade
+# ncurses to use "st" as its name.  Proper fix for that is to use "st" as an
+# alias.
+#
+# Reading the code shows it should work for aixterm 16-colors
+# - added st-16color
+#
+# Using tack:
+# - set eo (erase-overstrike)
+# - set xenl
+# - tbc doesn't work
+# - hts works
+# - cbt doesn't work
+# - shifted cursor-keys send sequences like rxvt
+# - sgr referred to unimplemented "invis" mode.
+# Fixes: add eo and xenl per tack, remove nonworking cbt, hts and tbc, invis
+simpleterm|old-st| simpleterm 0.1.1,
+	am, eo, mir, msgr, ul, xenl,
+	colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
+	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
+	cnorm=\E[?12l\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+	cub1=^H, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+	dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
+	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
+	il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=\177,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
+	kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+	khome=\E[1~, knp=\E[6~, kpp=\E[5~, op=\E[37;40m, rc=\E8,
+	rev=\E[7m, rmacs=\E(B, rmso=\E[m, rmul=\E[m, sc=\E7,
+	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+	sgr0=\E[0m, smacs=\E(0, smso=\E[7m, smul=\E[4m,
+st-16color|stterm-16color|simpleterm with 16-colors,
+	use=ibm+16color, use=st,
+# 256 colors "works", but when running xterm's test-scripts, some garbage is
+# shown in the titlebar.
+#
+# terminal wants to use TERM=stterm-256color, but that is longer than 14
+# characters, making the choice nonportable.
+st-256color|stterm-256color|simpleterm with 256 colors,
+	use=xterm+256color, use=st,
+
+#### TERMINATOR
+# https://code.google.com/p/jessies/
+# Tested using their Debian package org.jessies.terminator 6.104.3256 on 64-bit
+# Debian/current -TD (2011/8/20)
+#
+# There are some packaging problems:
+# a) using Java, the program starts off using 50Mb, and climbs from there,
+#    up to 114Mb after testing (no scrollback).
+# b) it insists on reinstalling its terminal description in $HOME/.terminfo
+#    (two copies, just in case the host happens to be Mac OS X).
+#    I deleted this after testing with tack.
+#
+# Issues/features found with tack:
+# a) tbc does not work (implying that hts also is broken).
+#    Comparing with the tabs utility shows a problem with the last tabstop on
+#    a line.
+# b) has xterm-style shifted function-key strings
+#    meta also is used, but control is ignored.
+# c) has xterm-style modifiers for cursor keys (shift, control, shift+control, meta)
+# d) some combinations of shift/control send xterm-style sequences for
+#    insert/delete/home/end.
+# e) numeric keypad sends only numbers (compare with vttest).
+# f) meta mode (km) is not implemented.
+#
+# Issues found with ncurses test-program:
+# a) bce is inconsistently implemented
+# b) widths of Unicode values above 256 do not always agree with wcwidth.
+#
+# Checked with vttest, found low degree of compatibility there.
+#
+# Checked with xterm's scripts, found that the 256-color palette is fixed.
+#
+# Fixes:
+# a) add sgr string
+# b) corrected sgr0 to reset alternate character set
+# c) modified smacs/rmacs to use SCS rather than SI/SO
+# d) removed bce
+# e) removed km
+terminator|Terminator no line wrap,
+	eo, mir, msgr, xenl, xon,
+	colors#256, cols#80, it#8, lines#24, lm#0, pairs#32767,
+	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
+	cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+	enacs=\E(B\E)0, flash=^G, home=\E[H, hpa=\E[%i%p1%dG,
+	ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
+	is1=\E[?47l\E=\E[?1l,
+	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
+	kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+	kf15=\E[28~, kf16=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+	khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+	op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B,
+	rmcup=\E[?47l\E8, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+	rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
+	rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>,
+	s0ds=\E(B, s1ds=\E(0, sc=\E7, setab=\E[48;5;%p1%dm,
+	setaf=\E[38;5;%p1%dm,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+	sgr0=\E[m\E(B, smacs=\E(0, smcup=\E7\E[?47h, smir=\E[4h,
+	smso=\E[7m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
+	use=xterm+sl-twm,
+
+#### TERMINOLOGY
+# http://enlightenment.org
+#
+# Tested terminology-0.3.0, 0.6.1, using tack and vttest.  This is not a vt100
+# emulator, nor is it compatible with xterm, but it uses a few features from
+# both -TD
+#
+# General comments:
+#	cursor does not fill on focus
+#	there are pervasive problems with clearing/erasing parts of the screen
+#	resizing the window causes it to stop listening to the keyboard
+# tack -
+#	doesn't understand vt100 CPR needed for resize
+#	no CBT
+#	no cvvis
+#	has invis
+#	no blink
+#	uses bce model for colors, but (see below) fails the vttest screens
+#	has partial support for 256color feature.
+#	tack function-keys (a subset of xterm+pcf0), and
+#	tack cursor-keys (a subset of xterm+pce2):
+#			ctrl+shift (ignored)
+#		2	shift
+#			shift-alt modifier -> shift (2)
+#		3	alt
+#		4
+#		5	ctrl
+#	tack modifiers did not work for fkeys in 0.3.0; subset works in 0.6.1
+#	ctrl + khome/kend works - none of the other modifiers do
+# vttest -
+#	spits lots of messages from termptyesc.c especially in vttest.
+#	no 132-column mode
+#	fails menu 1, 2 (definitely not vt100-compatible)
+#	primary (claims vt420 with several options, apparently none work) and
+#	secondary report says (perhaps... vt420): \E[>41;285;0c
+#	CHA, HPR, VPA, CNL, CPL work
+#	BCE with ED/EL - fail
+#	BCE with ECH/indexing - fail
+#	SD/SU work
+#	unlike teken, background light/dark works
+#	can set title
+#	X10 and Normal mouse work
+#	Any-event mouse works
+#	Mouse button-event works
+#
+# This description uses xterm+pcf0, which is misleading because the program
+# does not handle combinations of modifiers - but listing them all would
+# involve more effort than its developers spent -TD
+terminology|EFL-based terminal emulator,
+	mc5i@, xon@,
+	blink@, ed@, el@, el1@, invis=\E[8m, kLFT=\E[1;2D,
+	kRIT=\E[1;2C, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+	kind=\E[1;2B, kri=\E[1;2A,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>,
+	vpa=\E[%i%p1%dd, kDC3=\E[3;3~, kDC4=\E[3;4~,
+	kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~, kDN=\E[1;2B,
+	kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B, kDN6=\E[1;6B,
+	kDN7=\E[1;7B, kEND5=\E[1;5F, kHOM5=\E[1;5H,
+	kLFT3=\E[1;3D, kLFT4=\E[1;4D, kLFT5=\E[1;5D,
+	kLFT6=\E[1;6D, kLFT7=\E[1;7D, kRIT3=\E[1;3C,
+	kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C,
+	kRIT7=\E[1;7C, kUP=\E[1;2A, use=xterm+pcf0, use=vt100,
+	use=xterm+256setaf,
+
 ######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
 #
 
@@ -4342,6 +5846,8 @@
 	cup=\EG%p1%{32}%+%c%p2%{32}%+%c, rmso=\Eb$, rmul=\Eb!,
 	smso=\Ea$, smul=\Ea!, use=cbunix,
 
+#### Emacs
+
 # The codes supported by the term.el terminal emulation in GNU Emacs 19.30
 eterm|gnu emacs term.el terminal emulation,
 	am, mir, xenl,
@@ -4357,6 +5863,28 @@
 	sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
 	smul=\E[4m,
 
+# The codes supported by the term.el terminal emulation in GNU Emacs 22.2
+eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
+	am, mir, msgr, xenl,
+	colors#8, cols#80, lines#24, pairs#64,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+	el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+	il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kbs=\177,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+	kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
+	knp=\E[6~, kpp=\E[5~, op=\E[39;49m, rc=\E8, rev=\E[7m,
+	ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+	sc=\E7, setab=\E[%p1%'('%+%dm, setaf=\E[%p1%{30}%+%dm,
+	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
+	sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+	u6=\E[%i%d;%dR, u7=\E[6n,
+
+#### Screen
+
 # Entries for use by the `screen' program by Juergen Weigert,
 # Michael Schroeder, Oliver Laumann.  The screen and
 # screen-w entries came with version 3.7.1.  The screen2 and screen3 entries
@@ -4371,36 +5899,86 @@
 #      S0   (str)   Switch charset 'G0' to the specified charset.
 #      E0   (str)   Switch charset 'G0' back to standard charset.
 #
-# tested with screen 3.09.08
+# Initially tested with screen 3.09.08
+#
+# According to its manual page
+#
+#      Screen is a full-screen window manager that multiplexes a physical
+#      terminal between several processes (typically interactive shells).  Each
+#      virtual terminal provides the functions of a DEC VT100 terminal and, in
+#      addition, several control functions from the ISO 6429 (ECMA 48, ANSI
+#      X3.64) and ISO 2022 standards (e.g.  insert/delete line and support for
+#      multiple character sets).
+#
+# However, there is a design error in its support for video highlights.  The
+# program uses a table (rendlist) which equates the SGR codes to terminal
+# capabilities.  That, and color-decoding are hardcoded in screen; its behavior
+# is modified only by the presence or absence of the corresponding capabilities.
+# Not by their values.
+#
+# If screen sets the TERMCAP variable, it uses hardcoded strings which
+# correspond to the rendlist table.
+#
+# The table gives this information:
+#
+#	SGR	capability
+#	---	---------
+#	1	bold
+#	2	dim
+#	3	standout
+#	4	underline
+#	5	blink
+#	-	(unused 6)
+#	7	reverse
+#	-	(unused 8-21)
+#	22	reset bold, standout and dim
+#	23	reset standout
+#	24	reset underline
+#	25	reset blink
+#	-	(unused 26)
+#	27	reset reverse
+#
+# ECMA-48 differs from this: 3 and 23 set and reset italics, respectively.
+# ECMA-48 does not define "standout" - that is a termcap/terminfo abstraction.
+# Without some redesign of screen, it is not possible to extend the set of
+# capabilities.  Substitution would be possible, e.g., sending italics in
+# place of underline.
+#
+# Because screen uses hard-coded parsing, it does not check if two capabilities
+# use the same value.  For example, changing standout to be the same as any of
+# the other capabilities will confuse screen.  Curses applications which use
+# sgr are not impacted (because that usually resets all capabilities before
+# setting any), but termcap applications do not use sgr -TD
 screen|VT 100/ANSI X3.64 virtual terminal,
 	OTbs, OTpt, am, km, mir, msgr, xenl, G0,
-	colors#8, cols#80, it#8, lines#24, pairs#64,
+	colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
 	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
 	clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
 	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
-	cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
-	flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcbt=\E[Z,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
+	cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+	enacs=\E(B\E)0, flash=\Eg, home=\E[H, ht=^I, hts=\EH,
+	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0,
+	kbs=^H, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+	kcuu1=\EOA, kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
 	kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
 	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
 	khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
 	nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
 	rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m,
 	rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+	sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h,
 	smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B,
 	S0=\E(%p1%c, use=ecma+color,
 # The bce and status-line entries are from screen 3.9.13 (and require some
 # changes to .screenrc).
 screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
-	bce, use=screen,
+	bce,
+	ech@, use=screen,
 screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
 	dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
 
@@ -4421,27 +5999,38 @@
 screen-16color-bce|GNU Screen with 16 colors and BCE,
 	use=ibm+16color, use=screen-bce,
 
-screen-16color-bce-s|GNU Screen with 16 colors, BCE, and status line,
+screen-16color-bce-s|GNU Screen with 16 colors using BCE and status line,
 	bce, use=ibm+16color, use=screen-s,
 
 # ======================================================================
 # Entries for GNU Screen 4.02 with --enable-colors256.
 
 screen-256color|GNU Screen with 256 colors,
-	ccc@,
-	initc@, use=xterm+256color, use=screen,
+	use=xterm+256setaf, use=screen,
 
 screen-256color-s|GNU Screen with 256 colors and status line,
-	ccc@,
-	initc@, use=xterm+256color, use=screen-s,
+	use=xterm+256setaf, use=screen-s,
 
 screen-256color-bce|GNU Screen with 256 colors and BCE,
-	ccc@,
-	initc@, use=xterm+256color, use=screen-bce,
+	bce, use=xterm+256setaf, use=screen-bce,
 
-screen-256color-bce-s|GNU Screen with 256 colors, BCE, and status line,
-	bce, ccc@,
-	initc@, use=xterm+256color, use=screen-s,
+screen-256color-bce-s|GNU Screen with 256 colors using BCE and status line,
+	bce, use=xterm+256setaf, use=screen-s,
+
+screen.xterm-256color|GNU Screen with xterm using 256 colors,
+	use=xterm+256setaf, use=screen.xterm-new,
+
+screen.konsole-256color|GNU Screen with konsole using 256 colors,
+	use=xterm+256setaf, use=screen.konsole,
+
+screen.vte-256color|GNU Screen with vte using 256 colors,
+	use=xterm+256setaf, use=screen.vte,
+
+screen.putty-256color|GNU Screen with putty using 256 colors,
+	use=xterm+256setaf, use=screen.putty,
+
+screen.mlterm-256color|GNU Screen with mlterm using 256 colors,
+	use=xterm+256setaf, use=screen.mlterm,
 
 # ======================================================================
 
@@ -4459,6 +6048,12 @@
 screen+fkeys|function-keys according to screen,
 	kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@,
 	khome=\E[1~, kslt@,
+
+# See explanation before "screen" entry.  Cancel italics so that applications
+# do not assume screen supports the feature.  Add this tweak to entries which
+# extend screen for terminals which do support italics.
+screen+italics|screen cannot support italics,
+	ritm@, sitm@,
 #
 # Here are a few customized entries which are useful -TD
 #
@@ -4479,8 +6074,10 @@
 screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
 	bce@, bw,
 	invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
-	use=screen+fkeys, use=xterm-new,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;m,
+	E3@, use=screen+italics, use=screen+fkeys, use=xterm-new,
+#:screen.xterm|screen for modern xterm,
+#:	use=screen.xterm-new,
 # xterm-r6 does not really support khome/kend unless it is propped up by
 # the translations resource.
 screen.xterm-r6|screen customized for X11R6 xterm,
@@ -4493,16 +6090,63 @@
 	use=screen+fkeys, use=screen,
 # Other terminals
 screen.rxvt|screen in rxvt,
-	bw,
+	bw, XT,
 	cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
 	kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
 	use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
+screen.Eterm|screen in Eterm,
+	use=screen+fkeys, use=Eterm,
+screen.mrxvt|screen in mrxvt,
+	use=screen+fkeys, use=mrxvt,
+screen.vte|screen in any VTE-based terminal,
+	use=screen+italics, use=screen+fkeys, use=vte,
+screen.gnome|screen in GNOME Terminal,
+	use=screen+italics, use=screen+fkeys, use=gnome,
+screen.konsole|screen in KDE console window,
+	use=screen+italics, use=screen+fkeys, use=konsole,
 # fix the backspace key
 screen.linux|screen in linux console,
 	bw,
 	kbs=\177, kcbt@, use=screen+fkeys, use=screen,
 screen.mlterm|screen in mlterm,
 	use=screen+fkeys, use=mlterm,
+screen.putty|screen in putty,
+	use=screen+fkeys, use=putty,
+
+# The default "screen" entry is reasonably portable, but not optimal for the
+# most widely-used terminal emulators.  The "bce" capability is supported in
+# screen since 3.9.13, and when used, will require fewer characters to be sent
+# to the terminal for updates.
+#
+# If you are using only terminals which support bce, then you can use this
+# feature in your screen configuration.
+#
+# Adding these lines to your ".screenrc" file will allow using these customized
+# entries:
+#	term screen-bce
+#	bce on
+#	defbce on
+screen-bce.xterm-new|screen optimized for modern xterm,
+	bce,
+	ech@, use=screen+italics, use=screen.xterm-new,
+screen-bce.rxvt|screen optimized for rxvt,
+	bce,
+	ech@, use=screen.rxvt,
+screen-bce.Eterm|screen optimized for Eterm,
+	bce,
+	ech@, use=screen.Eterm,
+screen-bce.mrxvt|screen optimized for mrxvt,
+	bce,
+	ech@, use=screen.mrxvt,
+screen-bce.gnome|screen optimized for GNOME-Terminal,
+	bce,
+	ech@, use=screen+italics, use=screen.gnome,
+screen-bce.konsole|screen optimized for KDE console window,
+	bce,
+	ech@, use=screen+italics, use=screen.konsole,
+screen-bce.linux|screen optimized for linux console,
+	bce,
+	ech@, use=screen.linux,
 
 screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
 	cols#132, use=screen,
@@ -4537,6 +6181,17 @@
 	sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
 	smul=\E[4m, tbc=\E[3g,
 
+# tmux is compatible with screen, but has support for italics, and some of the
+# xterm cursor bits.
+tmux|tmux terminal multiplexer,
+	ritm=\E[23m, rmso=\E[27m, sitm=\E[3m, smso=\E[7m, Ms@,
+	use=xterm+sl, use=xterm+tmux, use=screen,
+
+tmux-256color|tmux with 256 colors,
+	use=xterm+256setaf, use=tmux,
+
+#### NCSA Telnet
+
 # Francesco Potorti <F.Potorti@cnuce.cnr.it>:
 # NCSA telnet is one of the most used telnet clients for the Macintosh.  It has
 # been maintained until recently by the National Center for Supercomputer
@@ -4572,18 +6227,18 @@
 # sequences for setting the window-title.  So you must use tsl and fsl in
 # pairs, since the latter ends the string that is loaded to the window-title.
 ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
-	am, hs, km, mir, msgr, xenl,
+	am, km, mir, msgr, xenl,
 	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
 	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
 	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	dsl=\E]0;\007, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
-	flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, ht=^I, hts=\EH,
-	ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
-	il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>,
+	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+	el=\E[K, el1=\E[1K, enacs=\E)0, flash=\E[?5h\E[?5l,
+	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+	if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
+	ind=\n$<150*>,
 	is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
 	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
 	kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
@@ -4597,8 +6252,8 @@
 	rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
 	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
 	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
-	smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
-	u8=\E[?62;1;6c, use=ansi+enq,
+	smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+	u8=\E[?62;1;6c, use=xterm+sl, use=ansi+enq,
 ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
 	use=ncsa-m, use=klone+color,
 ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
@@ -4716,10 +6371,10 @@
 	kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
 	kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
 	kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
-	knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z,
-	kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s,
-	sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, smso=\E[7m,
-	u8=\E[1t, u9=\E[11t,
+	kich1=\E[247z, knp=\E[222z, kopt=\E[194z, kpp=\E[216z,
+	kres=\E[193z, kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@,
+	rs2=\E[s, sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m,
+	smso=\E[7m, u8=\E[1t, u9=\E[11t,
 # On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
 # flake out on the last line.  Unfortunately, without them the terminal has no
 # way to scroll.
@@ -4729,6 +6384,10 @@
 sun|sun1|sun2|Sun Microsystems Inc. workstation console,
 	use=sun-il,
 
+sun+sl|Sun Workstation window status line,
+	hs,
+	dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l,
+
 # From: <john@ucbrenoir>  Tue Sep 24 13:14:44 1985
 sun-s|Sun Microsystems Workstation window with status line,
 	hs,
@@ -4762,15 +6421,33 @@
 # Most of the current references to sun-color are from users wondering why this
 # is the default on install.  Details from reading the wscons manpage, adding
 # cub, etc., here (rather than in the base sun-il entry) since it is not clear
-# when those were added -TD
+# when those were added -TD (2005-05-28)
+#
+# According to wscons manpage, color is supported only on IA systems.
+# Sun's terminfo entry documents bold and smul/rmul capabilities, but wscons
+# does not list these.  It also sets ncv#3, however that corresponds to
+# underline and standout.
+#
+# Since the documentation and terminfo do not agree, see also current code at
+# http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/tem_safe.c
+#
+# That (actually a different driver which "supports" sun-color) also supports
+# these features:
+#	vpa=\E[%i%p1%dd
+#	hpa=\E[%i%p1%d`
+#	cbt=\E[Z
+#	dim=\E[2m
+#	blink=\E[5m
+# It supports bold, but not underline -TD (2009-09-19)
 sun-color|Sun Microsystems Workstation console with color support (IA systems),
-	colors#8, pairs#64,
-	cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-	cuu=\E[%p1%dA, home=\E[H, op=\E[m\E[p, setab=\E[4%p1%dm,
-	setaf=\E[3%p1%dm,
+	colors#8, ncv#3, pairs#64,
+	bold=\E[1m, cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
+	cuu=\E[%p1%dA, home=\E[H, op=\E[0m, rs2=\E[s,
+	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
 	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
 	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	use=sun,
+	sgr=\E[0%?%p6%t;1%;%?%p1%p3%|%t;7%;m, sgr0=\E[m,
+	smso=\E[7m, use=sun,
 
 #### Iris consoles
 #
@@ -4865,7 +6542,7 @@
 	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
 	ed=\E[J, el=\E[K, home=\E[H, ht=^I,
 	if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
-	is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
+	is2=\E[?7h\E[?1h\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
 	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP,
 	kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
 	kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM,
@@ -4913,7 +6590,7 @@
 	cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
 	home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
 	kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM,
 	rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
 	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
@@ -4978,7 +6655,7 @@
 nwp511|nwp-511|nwp-511 vt100,
 	OTbs, OTpt, am, xenl,
 	cols#80, lines#24,
-	clear=\E[;H\E[2J$<20/>, cuf1=\E[C,
+	clear=\E[;H\E[2J$<20/>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M,
 	ed=\E[J$<30/>, el=\E[K$<3/>,
 	flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
@@ -5037,29 +6714,10 @@
 	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
 	smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ecma+color,
 
-#### Non-Unix Consoles
+######## Non-Unix Consoles
 #
 
-### EMX termcap.dat compatibility modes
-#
-# Keypad:	Home=\0G	Up=\0H	PrPag=\0I
-#		ka1,kh		kcuu1		kpp,ka3
-#
-#		Left=\0K	5=\0L		Right=\0M
-#		kcub1		kb2		kcuf1
-#
-#		End=\0O		Down=\0P	NxPag=\0Q
-#		kc1,kend	kcud1		kc3,knp
-#
-#		Ins=\0R		Del=\0S
-#		kich1		kdch1
-#
-# On keyboard with 12 function keys,
-#	shifted f-keys: F13-F24
-#	control f-keys: F25-F36
-#	alt f-keys:     F37-F48
-# The shift/control/alt keys do not modify each other, but alt overrides both,
-# and control overrides shift.
+#### EMX termcap.dat compatibility modes
 #
 # Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
 # no_color_video to inform the application that standout(1), underline(2)
@@ -5067,19 +6725,7 @@
 emx-base|DOS special keys,
 	bce, bw,
 	it#8, ncv#71,
-	bel=^G, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
-	kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
-	kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
-	kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
-	kf17=\0X, kf18=\0Y, kf19=\0Z, kf2=\0<, kf20=\0[, kf21=\0\\,
-	kf22=\0], kf23=\0\207, kf24=\0\210, kf25=\0\^, kf26=\0_,
-	kf27=\0`, kf28=\0a, kf29=\0b, kf3=\0=, kf30=\0c, kf31=\0d,
-	kf32=\0e, kf33=\0f, kf34=\0g, kf35=\0\211, kf36=\0\212,
-	kf37=\0h, kf38=\0i, kf39=\0j, kf4=\0>, kf40=\0k, kf41=\0l,
-	kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
-	kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
-	kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
-	use=ansi.sys,
+	bel=^G, use=ansi.sys,
 
 # Except for the "-emx" suffixes, these are as distributed with EMX 0.9b,
 # a Unix-style environment used on OS/2.  (Note that the suffix makes some
@@ -5124,6 +6770,8 @@
 	kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m,
 	sgr0=\E[0m,
 
+#### Cygwin
+
 # Use this for cygwin32 (tested with beta 19.1)
 # underline is colored bright magenta
 # shifted kf1-kf12 are kf11-kf22
@@ -5210,7 +6858,7 @@
 	rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
 	rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R,
 	sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
 	sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h,
 	smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];,
 	vpa=\E[%i%p1%dd, use=vt102+enq,
@@ -5245,9 +6893,11 @@
 	rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, rmir=\E[4l,
 	rmso=\E[m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
 	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
 	sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[2g, vpa=\E[%i%p1%dd, use=vt102+enq,
+	smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt102+enq,
+
+#### DJGPP
 
 # Key definitions:
 # The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc.  match the
@@ -5415,6 +7065,8 @@
 	ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, setab=\E[4%p1%dm,
 	setaf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
 
+#### U/Win
+
 # This is tested using U/Win's telnet.  Scrolling is omitted because it is
 # buggy.  Another odd bug appears when displaying "~" in alternate character
 # set (the emulator spits out error messages).  Compare with att6386 -TD
@@ -5438,6 +7090,8 @@
 	smacs=\E[11m, smir=\E[4h, smpch=\E[11m, smso=\E[7m,
 	smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
 
+#### Microsoft (miscellaneous)
+
 # This entry fits the Windows NT console when the _POSIX_TERM environment
 # variable is set to 'on'.  While the Windows NT POSIX console is seldom used,
 # the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
@@ -5491,7 +7145,7 @@
 	ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H,
 	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
 	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>,
-	rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/lib/tabset/vt100,
+	rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/tabset/vt100,
 	ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
 	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
 	sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>,
@@ -5510,7 +7164,7 @@
 interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color,
 	am, bw, msgr,
 	colors#8, cols#80, lines#25, ncv#3, pairs#64,
-	acsc=`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~q\304r\362s_t\303u\264v\301w\302x\263y\371z\372{\373|\374}\375~\376.\031-\030\,\021+^P0\333p\304r\304y\363z\362{\343|\330}\234,
+	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
 	bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[2J, cub=\E[%p1%dD,
 	cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
 	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
@@ -5536,7 +7190,7 @@
 	rmcup=\E[2b\E[u\r\E[K, rmso=\E[m, rmul=\E[m, rs1=\Ec,
 	sc=\E[s, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
 	setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm,
-	sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[1m, smul=\E[4m,
+	sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[7m, smul=\E[4m,
 
 opennt-35|ntconsole-35|OpenNT-term35 compatible with color,
 	lines#35, use=opennt,
@@ -5634,7 +7288,7 @@
 #	:cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
 #	:XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
 #	:HL=^AP\r:SP=\E[i:\
-#	:IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
+#	:IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:
 altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V,
 	blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2,
 altos4|alt4|altos-4|altos IV,
@@ -5849,7 +7503,7 @@
 	da, db,
 	lm#0, pb#19200,
 	ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
-	is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk+cr,
+	is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk-cr,
 	use=hp+labels, use=scrhp,
 
 # This entry is for sysline. It allocates a 23 line window with
@@ -6050,7 +7704,7 @@
 hp2622|hp2622a|hp 2622,
 	da, db,
 	lm#0, pb#19200,
-	is2=\E&dj@\r, use=hp+pfk+cr, use=hp+labels, use=scrhp,
+	is2=\E&dj@\r, use=hp+pfk-cr, use=hp+labels, use=scrhp,
 
 # The 2623 is a 2622 with extra graphics hardware.
 hp2623|hp2623a|hp 2623,
@@ -6208,10 +7862,10 @@
 hp9845|HP 9845,
 	OTbs, am, da, db, eo, mir, xhp,
 	cols#80, lines#21,
-	OTbc=\ED, clear=\EH\EJ, cuf1=\EC, cup=\E&a%p2%2dc%p1%2dY,
-	cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK,
-	if=/usr/share/tabset/std, il1=\EL, rmir=\ER, rmso=\E&d@,
-	smir=\EQ, smso=\E&dB,
+	OTbc=\ED, clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
+	cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
+	ed=\EJ, el=\EK, if=/usr/share/tabset/std, il1=\EL,
+	rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
 # From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
 # (hp98550: replaced /usr/share/tabset/9837 with std because <it#8>,<hts=\E1>;
 # added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr)
@@ -6463,10 +8117,10 @@
 	sgr0=\E(, smso=\E),
 adm21|lear siegler adm21,
 	xmc#1,
-	bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=30*\ER, ed=\EY, el=\ET,
-	ich1=\EQ, il1=30*\EE, ind=^J, invis@, kbs=^H, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, use=adm+sgr,
-	use=adm3a,
+	bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=\ER$<30*>, ed=\EY,
+	el=\ET, ich1=\EQ, il1=\EE$<30*>, ind=^J, invis@, kbs=^H,
+	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
+	use=adm+sgr, use=adm3a,
 # (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
 # removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
 # removed bogus-looking \200 from before <cup>. -- esr)
@@ -6754,6 +8408,9 @@
 # What seems to be going on here is that this entry was designed so that
 # the normal highlight is bold and standout is dim plus something else
 # (reverse-video maybe?  But then, are there two <rev> sequences?)
+#
+# Added kdch1, kil1, kdl1 based on screenshot -TD:
+#	http://www.vintagecomputer.net/qume/qvt-108/qume_qvt-108_keyboard.jpg
 qvt101+|qvt101p|qume qvt 101 PLUS product,
 	am, bw, hs, ul,
 	cols#80, lines#24, xmc#0,
@@ -6762,11 +8419,11 @@
 	dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
 	flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
 	ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, kdl1=\ER, ked=\EY, kel=\ET,
-	kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
-	kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
-	khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@, rmso=\E(,
-	smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
+	kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+	kel=\ET, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r,
+	kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
+	kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@,
+	rmso=\E(, smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
 qvt102|qume qvt 102,
 	cnorm=\E., use=qvt101,
 # (qvt103: added <rmam>/<smam> based on init string -- esr)
@@ -7878,8 +9535,8 @@
 	rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l,
 	rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1,
 	rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0,
-	sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p9%t\E$%e\E%%%;,
-	sgr0=\EG0, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
+	sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p8%t\E&%;%?%p9%t\E$%e\E%%%;,
+	sgr0=\EG0\E%, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
 	smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
 	tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0,
 
@@ -8252,7 +9909,7 @@
 wy120|wyse120|wy150|wyse150|Wyse 120/150,
 	am, bw, hs, km, mc5i, mir, msgr, xon,
 	cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
-	acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+	acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
 	bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
 	cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
 	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
@@ -8331,7 +9988,7 @@
 wy60|wyse60|Wyse 60,
 	am, bw, hs, km, mc5i, mir, msgr,
 	cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
-	acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+	acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
 	bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
 	cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
 	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
@@ -8500,7 +10157,7 @@
 wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
 	am, bw, hs, km, mc5i, mir, msgr, xon,
 	cols#80, it#8, lines#25, wsl#46,
-	acsc='x+y.wi~_vj(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
+	acsc='x+y.w_vi~j(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
 	blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
 	cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L,
 	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
@@ -8552,7 +10209,7 @@
 wy160|wyse160|Wyse 160,
 	am, bw, hs, km, mc5i, mir, msgr,
 	cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
-	acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+	acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
 	bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
 	cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
 	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
@@ -8860,7 +10517,7 @@
 wy325|wyse325|Wyse epc,
 	am, bw, hs, mc5i, mir,
 	cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
-	acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+	acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
 	bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
 	cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
 	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
@@ -9307,7 +10964,7 @@
 kermit|standard kermit,
 	OTbs,
 	cols#80, lines#24,
-	clear=\EE, cub1=^H, cuf1=\EC,
+	clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
 	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
 	el=\EK, home=\EH, is2=K0 Standard Kermit  9-25-84\n,
 	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
@@ -9392,7 +11049,7 @@
 	flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l,
 	fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
 	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is2=\E>\E F\E[?1l\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
+	is2=\E>\E F\E[?1h\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
 	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~,
 	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
 	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~,
@@ -9646,7 +11303,7 @@
 	pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
 	rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
 	sc=\E7,
-	sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+	sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
 	tsl=\E7\E[25;%p1%{1}%+%dH,
 
@@ -9744,7 +11401,7 @@
 	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV,
 	rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
 	rmkx=\E[19;0j\E[21;1j\212, rmln=\E|,
-	sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+	sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
 	smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g,
 	tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
@@ -9792,14 +11449,14 @@
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j,
 	cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cvvis=\E[11;1j,
-	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J, el=\E[0K,
-	el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
-	hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
-	invis=\E[8m,
+	cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
+	cvvis=\E[11;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J,
+	el=\E[0K, el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
+	home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH,
+	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+	indn=\E[%p1%dE, invis=\E[8m,
 	is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
 	kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D,
 	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
@@ -9950,7 +11607,7 @@
 	rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l,
 	rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
 	rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
-	sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+	sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
 	smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m,
 	smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH,
@@ -9972,7 +11629,7 @@
 	bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V,
 	cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
 	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\EA, dch=\E[%p1%dP, dch1=\EP,
+	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EP,
 	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H,
 	hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^,
 	il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS,
@@ -10000,7 +11657,7 @@
 	acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
 	civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[1B,
+	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
 	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
 	cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP,
 	dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J,
@@ -10033,7 +11690,7 @@
 	acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
 	clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD,
-	cub1=^H, cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC,
+	cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
 	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
 	cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P,
 	dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K,
@@ -10230,8 +11887,8 @@
 	kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N,
 	kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
 	kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I,
-	rmsc=400\E[50;0|, smsc=250\E[?11l\E[50;1|, xoffc=g,
-	xonc=e, use=att605,
+	rmsc=\E[50;0|$<400>, smsc=\E[?11l\E[50;1|$<250>,
+	xoffc=g, xonc=e, use=att605,
 att605-w|AT&T 605-w 132 column 102 key keyboard,
 	cols#132, wsl#132,
 	is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0,
@@ -10347,7 +12004,7 @@
 	ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l,
 	rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
 	rs2=\Ec\E[?3l, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+	sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\E)0\016%e\E(B\017%;,
 	sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h,
 	smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
 	tsl=\E7\E[25;%i%p1%dx,
@@ -10407,7 +12064,7 @@
 	mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
 	rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m,
 	rmul=\E[m, rs2=\Ec, sc=\E7,
-	sgr=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m,
+	sgr=\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%p4%|%t;7%;m,
 	sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
 att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
 	lines#24, use=att630,
@@ -11057,23 +12714,23 @@
 	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
 	rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\,
 	rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7,
-	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
+	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
 	sgr0=\E[m,
 	smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
-	smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
+	smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
 	vpa=\E[%p1%{1}%+%dd,
 
 aaa+rv|ann arbor ambassador in reverse video,
 	blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m,
 	is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
 	rs1=\E[H\E[7m\E[J$<156>,
-	sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+	sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p2%|%p3%!%t7;%;%?%p7%t8;%;m\016,
 	sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m,
 # Ambassador with the DEC option, for partial vt100 compatibility.
 aaa+dec|ann arbor ambassador in dec vt100 mode,
 	acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}},
 	csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N,
-	sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
+	sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p3%|%!%t7;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
 	smacs=^O,
 aaa-18|ann arbor ambassador/18 lines,
 	lines#18,
@@ -11240,7 +12897,7 @@
 	blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m,
 	is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
 	rs1=\E[H\E[7m\E[J,
-	sgr=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+	sgr=\E[%?%p6%t1;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p1%!%t7;%;%?%p7%t8;%;m,
 	sgr0=\E[7m, smso=\E[m, smul=\E[4;7m,
 
 #### Applied Digital Data Systems (adds)
@@ -11430,7 +13087,7 @@
 cit80|cit-80|citoh 80,
 	OTbs, am,
 	cols#80, lines#24,
-	clear=\E[H\EJ, cr=^M, cub1=^H, cuf1=\E[C,
+	clear=\E[H\EJ, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
 	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L,
 	ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
 	kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
@@ -11439,9 +13096,9 @@
 cit101|citc|C.itoh fast vt100,
 	OTbs, am, xenl,
 	cols#80, lines#24,
-	bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E7\E[U,
-	dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
+	bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cud1=\E[B,
+	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+	cvvis=\E7\E[U, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
 	flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L,
 	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g,
 	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
@@ -11459,9 +13116,9 @@
 	OTbs, OTpt, am, mir, msgr,
 	cols#80, it#8, lines#24,
 	acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
-	cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
-	cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M, ed=\E[J,
-	el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
+	cub1=\E[D, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH,
+	cuu1=\E[A, cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M,
+	ed=\E[J, el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
 	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT,
 	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl,
 	kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l,
@@ -12082,7 +13739,7 @@
 #	 and mc5= should use the \E[?4i and \E[?5i strings instead).
 
 hds200|Human Designed Systems HDS200,
-	am, bw, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
+	am, bw, eslok, hs, km, mir, msgr, xenl, xon,
 	cols#80, it#8, lines#24, lm#0,
 	acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
 	blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{,
@@ -12111,13 +13768,12 @@
 	kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r,
 	kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H,
 	kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A,
-	mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\E[E, rc=\E8,
-	rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmso=\E[m\017,
-	rmul=\E[m\017, sc=\E7,
+	nel=\E[E, rc=\E8, rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l,
+	rmso=\E[m\017, rmul=\E[m\017, sc=\E7,
 	sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m,
 	smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG,
-	vpa=\E[%i%p1%dd,
+	vpa=\E[%i%p1%dd, use=ansi+pp,
 
 # <ht> through <el> included to specify padding needed in raw mode.
 # (avt-ns: added empty <acsc> to suppress a tic warning --esr)
@@ -12144,10 +13800,11 @@
 	ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n,
 	rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{,
 	sc=\E7,
-	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-	sgr0=\E[m, smacs=\017$<1>, smcup=\E[=4l\E[1;24w\E2\r,
-	smir=\E[4h, smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m,
-	tbc=\E[2g, vpa=\E[%p1%{1}%+%dd,
+	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;%?%p8%t99;%;m%?%p5%t\E[1!{%;%?%p9%t\017%e\016%;$<1>,
+	sgr0=\E[m\016$<1>, smacs=\017$<1>,
+	smcup=\E[=4l\E[1;24w\E2\r, smir=\E[4h,
+	smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+	vpa=\E[%p1%{1}%+%dd,
 avt-rv-ns|concept avt in reverse video mode/no status line,
 	flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
 	use=avt-ns,
@@ -12357,7 +14014,7 @@
 dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode,
 	bce, ccc,
 	colors#52, ncv#53, pairs#26,
-	initp=\036RG0%p1%02X%p2%{256}%*%{1001}%/%02X%p3%{256}%*%{1001}%/%02X%p4%{256}%*%{1001}%/%02X%p5%{256}%*%{1001}%/%02X%p6%{256}%*%{1001}%/%02X%p7%{256}%*%{1001}%/%02X,
+	initp=\036RG0%p1%02X%p2%{255}%*%{1000}%/%02X%p3%{255}%*%{1000}%/%02X%p4%{255}%*%{1000}%/%02X%p5%{255}%*%{1000}%/%02X%p6%{255}%*%{1000}%/%02X%p7%{255}%*%{1000}%/%02X,
 	oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00,
 	op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D,
 	scp=\036RG2%p1%02X,
@@ -12366,7 +14023,7 @@
 dg+ccc|Configurable color info for DG D430C terminals in DG mode,
 	bce, ccc,
 	colors#52, ncv#53, pairs#26,
-	initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
+	initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
 	oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00,
 	op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=,
 	scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c,
@@ -12402,11 +14059,11 @@
 dg210|dg-ansi|Data General 210/211,
 	am,
 	cols#80, lines#24,
-	OTnl=\E[B, clear=\E[2J, cud1=\E[B, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A, ed=\E[J, el=\E[K, home=\E[H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
-	nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m, smso=\E[7;m,
-	smul=\E[4;m,
+	OTnl=\E[B, clear=\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+	home=\E[H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	khome=\E[H, nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m,
+	smso=\E[7;m, smul=\E[4;m,
 # From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
 # courtesy of Carlos Rucalde of Vantage Software, Inc.
 # (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover.
@@ -12414,7 +14071,7 @@
 dg211|Data General d211,
 	cnorm=^L, cvvis=^L^R, ht=^I, ind@, kbs=^Y, kf0@, kf1@, kf2@, kf3@,
 	kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=^M^Z, rmcup=^L,
-	rmso=\036E$<\0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
+	rmso=\036E$<0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
 
 # dg450 from Cornell (not official)
 dg450|dg6134|data general 6134,
@@ -12429,7 +14086,6 @@
 # backspace on all terminals.  This is not so in DG mode.
 # (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
 # grounds that there is no matching ":ml:"
-# fixed garbled ":k9=\E[00\:z:" capability -- esr)
 dg460-ansi|Data General Dasher 460 in ANSI-mode,
 	OTbs, am, msgr, ul,
 	cols#80, it#8, lines#24,
@@ -12440,10 +14096,12 @@
 	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
 	kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z,
 	kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z,
-	kf8=\E[009z, kf9=\E[010z, khome=\E[H, lf0=f1, lf1=f2, lf2=f3,
-	lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10, rev=\E[7m,
-	ri=\E[T, rmso=\E[m, rmul=\E[05, sgr0=\E[m, smso=\E[7m,
-	smul=\E[4m,
+	kf8=\E[009z, kf9=\E[00\:z, khome=\E[H, lf0=f1, lf1=f2,
+	lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10,
+	mc0=\E[i, rev=\E[7m, ri=\E[T, rmso=\E[m, rmul=\E[05,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m,
+	sgr0=\E(B\E[m, smso=\E[7m, smul=\E[4m, u6=\E[%d;%dR,
+	u7=\E[6n, u8=\E[5n, u9=\E[0n,
 # From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
 # Data General 605x
 # Ought to work for a Model 6242, Type D210 as well as a 605x.
@@ -12490,7 +14148,7 @@
 	cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K,
 	el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l,
 	ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m,
-	sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m,
+	sgr=\E[%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;%?%p1%p3%|%p6%|%t7;%;m,
 	sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
 
 # DASHER D210 series terminals in DG mode.
@@ -12692,7 +14350,7 @@
 	is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i,
 	ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h,
 	rs2=\E[4;0;2;1;1;1v\E(B\E)4,
-	sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;,
+	sgr=\E[%?%p1%t2;7%;%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p1%p5%|%t2;%;%?%p6%t4;7;%;m\E)%?%p9%t6\016%e4\017%;,
 	sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
 
 # Initialization string 2 sets:
@@ -12862,12 +14520,12 @@
 #
 d470c|d470|Data General DASHER D470C,
 	is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
-	sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
+	sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m\E)%?%p9%t6\016%e4\017%;,
 	use=dg+color, use=d460,
 
 d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode,
 	is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
-	sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;,
+	sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m%?%p9%t\016%e\017%;,
 	use=dg+color, use=d460-7b,
 
 # Initialization string 2 sets:
@@ -13278,7 +14936,7 @@
 go140|graphon go-140,
 	OTbs,
 	cols#80, it#8, lines#24,
-	clear=\E[H\E[2J$<10/>, cub1=^H, cuf1=\E[C,
+	clear=\E[H\E[2J$<10/>, cub1=^H, cud1=\E[B, cuf1=\E[C,
 	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
 	ed=\E[J$<10/>, el=\E[K, ht=^I,
 	if=/usr/share/tabset/vt100, il1=\E[L,
@@ -13394,7 +15052,7 @@
 	smso=\E_1, smul=\E_0, tbc=\E3,
 sbi|superbee|beehive superbee at Indiana U.,
 	xsb,
-	cr=\r$<1>, il1=1\EN\EL$<9>\EQ \EP$<9> \EO\ER\EA,
+	cr=\r$<1>, il1=\EN$<1>\EL$<9>\EQ \EP$<9> \EO\ER\EA,
 	use=sb1,
 # Alternate (older) description of Superbee - f1=escape, f2=^C.
 # Note: there are at least 3 kinds of superbees in the world.  The sb1
@@ -13423,7 +15081,7 @@
 sb2|sb3|fixed superbee,
 	xsb@, use=superbee,
 
-####  Beehive Medical Electronics
+#### Beehive Medical Electronics
 #
 # Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
 # Regarding your question though; Beehive terminals weren't made by Harris.
@@ -13668,31 +15326,42 @@
 	sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162,
 # From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
 # removed kend, knp, kpp -TD
+#
+# From: Stephen Powell <zlinuxman@wowway.com> 23 Apr 2015
+# Added ich1 (kich1 without ich1 doesn't make sense).
+# Added il1 (kil1 without il1 doesn't make sense).
+# Added xon (terminal uses XON/XOFF flow control).
+#
 ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
-	OTbs, am, mir, msgr,
+	OTbs, am, mir, msgr, xon,
 	cols#80, it#8, lines#24,
 	acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370,
 	bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=^M, cub1=\ED,
 	cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH, ind=^J,
-	invis=\E4P, kbs=^H, kcbt=\E2, kclr=\EL\r, kctab=\E1,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EQ,
-	kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r, kf10=\Ej\r,
-	kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r, kf14=\E!b\r,
-	kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r, kf18=\E!f\r,
-	kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r, kf21=\E!i\r,
-	kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r, kf3=\Ec\r,
-	kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r, kf8=\Eh\r,
-	kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010, kil1=\EN,
-	ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A, rmcup=\E>A,
-	rmso=\E4@, rmul=\E4@,
+	cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH,
+	ich1=\EP \010, il1=\EN, ind=^J, invis=\E4P, kbs=^H, kcbt=\E2,
+	kclr=\EL\r, kctab=\E1, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+	kcuu1=\EA, kdch1=\EQ, kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r,
+	kf10=\Ej\r, kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r,
+	kf14=\E!b\r, kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r,
+	kf18=\E!f\r, kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r,
+	kf21=\E!i\r, kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r,
+	kf3=\Ec\r, kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r,
+	kf8=\Eh\r, kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010,
+	kil1=\EN, ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A,
+	rmcup=\E>A, rmso=\E4@, rmul=\E4@,
 	sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;,
 	sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B,
 
 ibm3161-C|IBM 3161-C NLS terminal using cartridge,
 	rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161,
+#
+# From: Stephen Powell <zlinuxman@wowway.com> 23 Apr 2015
+# Deleted il1.  (il1 will now be inherited from ibm3161-C, which inherits
+# it from ibm3161.
+#
 ibm3162|IBM 3162 display,
-	blink=\E4$a, bold=\E4(a, il1=\EN, invis=\E40a, rev=\E4!a,
+	blink=\E4$a, bold=\E4(a, invis=\E40a, rev=\E4!a,
 	rmso=\E4>b, rmul=\E4=b, sgr0=\E4@, smso=\E4!a, smul=\E4"a,
 	use=ibm3161-C,
 
@@ -13890,6 +15559,8 @@
 	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
 	sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
 	tbc=\E[3g,
+# "Megapel" refers to the display adapter, which was used with the IBM RT
+# aka IBM 6150.
 ibm5081|hft|IBM Megapel Color display,
 	acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
 	s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
@@ -14244,7 +15915,7 @@
 	is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ,
 	rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ,
 	rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1,
-	sgr=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ,
+	sgr=\E[%'0'%?%p1%t%'8'%|%;%?%p2%t%'8'%|%;%?%p3%t%'4'%|%;%?%p4%t%'2'%|%;%?%p7%t%'1'%|%;%cZZ,
 	sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3,
 icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols,
 	rs2=\Eo1, use=icl6404,
@@ -14274,9 +15945,9 @@
 intext2|intextii|INTERACTIVE modified owl 1251,
 	am, bw, ul,
 	cols#80, lines#24, xmc#0,
-	bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J, el=\E[K,
+	bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=\E[D,
+	cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+	dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
 	flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u,
 	hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
 	kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r,
@@ -14561,7 +16232,7 @@
 # (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
 #
 prism9|p9|P9|MDC Prism-9 in ANSII mode,
-	am, bw, hs, mc5i, msgr, xenl, xon,
+	am, bw, hs, msgr, xenl, xon,
 	cols#80, it#8, lines#24, vt#3, wsl#72,
 	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l,
 	clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v,
@@ -14577,14 +16248,15 @@
 	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
 	kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
 	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[H, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=^M^J,
-	prot=\E[32%{, rc=\E[%z, rep=\E[%p2%db%p1%c, rev=\E[7m,
-	ri=\E[L, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+	khome=\E[H, nel=^M^J, prot=\E[32%{, rc=\E[%z,
+	rep=\E[%p2%db%p1%c, rev=\E[7m, ri=\E[L, rmir=\E[4l,
+	rmso=\E[27m, rmul=\E[24m,
 	rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N,
 	sc=\E[%y,
-	sgr=\E[%{0}%?%p1%p3%|%t%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;,
+	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;m%?%p8%t\E[32%%{%;%?%p9%t\016%e\017%;,
 	sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	tbc=\E[2g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
+	tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
+	use=ansi+pp,
 
 # p9-w: Prism-9 in 132 column mode
 # --------------------------------
@@ -14948,7 +16620,7 @@
 	rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m,
 	rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
 	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
 	sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
 	smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
 	tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+keypad,
@@ -15005,7 +16677,7 @@
 	rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
 	rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
 	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
 	sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
 	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
 	tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
@@ -15061,7 +16733,7 @@
 	rmul=\E[24m,
 	rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
 	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
+	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
 	sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
 	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
 	tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
@@ -15451,14 +17123,14 @@
 # Manufactured in the early/mid eighties, behaves almost the same as a
 # Televideo 950.  Take a 950, change its cabinet for a more 80s-ish one (but
 # keep the same keyboard layout), add an optional 25-line mode, replace the DIP
-# switches with a menu and remove the "lock line" feature (ESC !  1 and ESC ! 
+# switches with a menu and remove the "lock line" feature (ESC !  1 and ESC !
 # 2), here is the NDR 9500.  Even the line-lock, albeit disabled, is
 # recognized:  if you type in "ESC !", the next (third) character is not
 # echoed, showing that the terminal was actually waiting for a parameter!
 ndr9500|nd9500|Newbury Data 9500,
 	am, bw, hs, mc5i, mir, msgr, ul, xon,
 	cols#80, lines#24, wsl#79,
-	acsc=qKnImAjDwNuLtMvOlBkCxJ, bel=^G, cbt=\EI, civis=\E.0,
+	acsc=jDkClBmAnIqKtMuLvOwNxJ, bel=^G, cbt=\EI, civis=\E.0,
 	clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
 	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
 	dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
@@ -15475,7 +17147,7 @@
 	pfloc=\E|%{48}%p1%+%c2%p2\031,
 	pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
 	rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
-	sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
+	sgr=\EG0\E%%%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
 	sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
 	tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
 
@@ -15578,8 +17250,8 @@
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L,
 	cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\EB,
-	cuf=\E[%p1%dC, cuf1=\EC, cup=\E[%i%p1%d;%p2%dH,
+	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
 	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EM,
 	dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H,
 	ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN,
@@ -15654,8 +17326,8 @@
 	cols#80, lines#24,
 	acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
 	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[0B, cuf1=\E[C,
-	cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[0A, dch1=\E[0P,
+	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+	cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[0P,
 	dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H,
 	ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B,
 	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K,
@@ -15806,7 +17478,7 @@
 	OTbs, am, mir, msgr, ul, xenl, xt,
 	cols#79, it#8, lines#29,
 	acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z,
-	clear=\E[2J\E[H, cr=^M, cud1=\E[1B, cuf1=\E[1C,
+	clear=\E[2J\E[H, cr=^M, cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C,
 	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P,
 	dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
 	il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m,
@@ -15925,6 +17597,15 @@
 	sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
 	smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g,
 
+# Tektronix 4107/4109 interpret 4 modes using "\E%!" followed by a code:
+# 0 selects Tek mode, i.e., \E%!0
+# 1 selects ANSI mode
+# 2 selects ANSI edit-mode
+# 3 selects VT52 mode
+#
+# One odd thing about the description (which has been unchanged since the 90s)
+# is that the cursor addressing is using VT52 mode, and a few others use the
+# VT52's non-CSI versions of ANSI, e.g., \EJ.
 tek4107|tek4109|tektronix terminals 4107 4109,
 	OTbs, am, mir, msgr, ul, xenl, xt,
 	cols#79, it#8, lines#29,
@@ -15934,9 +17615,9 @@
 	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3,
 	dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J,
 	kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	rev=\E%!1\E[7m$<2>\E%0, ri=\EI,
+	rev=\E%!1\E[7m$<2>\E%!0, ri=\EI,
 	rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
-	sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0,
+	sgr=\E%%!1\E[%?%p1%t;7;5%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t<0%;%?%p6%t;1%;m$<2>\E%%!0,
 	sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
 	smul=\E%!1\E[4m$<2>\E%!0,
 # Tektronix 4207 with sysline.  In the ancestral termcap file this was 4107-s;
@@ -15971,9 +17652,9 @@
 tek4112|tek4114|tektronix 4110 series,
 	OTbs, am, db,
 	cols#80, lines#34,
-	cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P, dl1=\E[M,
-	ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
+	cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cud1=\E[B,
+	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P,
+	dl1=\E[M, ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
 	ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8,
 	rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
 tek4112-nd|4112 not in dialog area,
@@ -16036,8 +17717,8 @@
 	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
 	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rmam=\E[?7l,
 	rmso=\E[m, rmul=\E[m,
-	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-	sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
+	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+	sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
 	vpa=\E[%p1%{1}%+%dd,
 # The tek4125 emulates a vt100 incorrectly - the scrolling region
 # command is ignored.  The following entry replaces <csr> with the needed
@@ -16123,9 +17804,10 @@
 	clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
 	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch1=\E[1P, dim=\E[=1;<6m, dl1=\E[1M, ech=\E%p1%dX,
-	ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
-	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
+	dch1=\E[1P, dim=\E[=1;<6m, dl=\E[%p1%dM, dl1=\E[1M,
+	ech=\E%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+	home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L,
+	ind=\ED,
 	initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1,
 	invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H,
 	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA,
@@ -16296,7 +17978,7 @@
 	kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V,
 	ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A,
 	rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
+	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t30;40%;m,
 	sgr0=\E[m, smso=\E[7m, smul=\E[4m,
 
 #### Apple II
@@ -16408,7 +18090,7 @@
 # This entry assumes that you are using an apple with the UCSD Pascal
 # language card.  SYSTEM.MISCINFO is assumed to be the same as that
 # supplied with the standard apple except that screenwidth should be set
-# using SETUP to 80 columns.  Note that the right arrow in not mapped in
+# using SETUP to 80 columns.  Note that the right arrow is not mapped in
 # this termcap entry.  This is because that key, on the Apple, transmits
 # a ^U and would thus preempt the more useful "up" function of vi.
 #
@@ -16444,15 +18126,16 @@
 apple-videx3|vapple|Apple II with 80 col card,
 	OTbs, am,
 	cols#80, lines#24,
-	clear=\Ev, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, el=\Ex, home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!,
-	kf5=\E", kf6=\E#, kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
+	clear=\Ev, cub1=\ED, cud1=\EB, cuf1=\EC,
+	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\Ex,
+	home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+	kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!, kf5=\E", kf6=\E#,
+	kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
 #From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
 aepro|Apple II+ running ASCII Express Pro--vt52,
 	OTbs,
 	cols#80, lines#24,
-	clear=\014$<300/>, cuf1=\EC,
+	clear=\014$<300/>, cub1=\ED, cud1=\EB, cuf1=\EC,
 	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
 	el=\EK, home=\EH,
 # UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
@@ -16524,505 +18207,6 @@
 mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
 	cols#132, use=mac,
 
-# The AppKit Terminal.app descriptions all have names beginning with
-# "nsterm". Note that the statusline (-s) versions use the window
-# titlebar as a phony status line, and may produce warnings during
-# compilation as a result ("tsl uses 0 parameters, expected 1".) Ignore
-# these warnings, or even ignore these entries entirely. Apps which
-# need to position the cursor or do other fancy stuff inside the status
-# line won't work with these entries. They're primarily useful for
-# programs like Pine which provide simple notifications in the status
-# line. Please note that non-ASCII characters don't work right in the
-# status line, since Terminal.app incorrectly interprets their Unicode
-# codepoints as MacRoman codepoints.
-#
-# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
-#   "nsterm" to comply with the name length and case conventions and
-#   limitations of various software packages [notably Solaris terminfo
-#   and UNIX.] A single Apple_Terminal alias is retained for
-#   backwards-compatbility.
-#
-# * Added function key support (F1-F4). These only work in Terminal.app
-#   version 51, hopefully the capabilities won't cause problems for people
-#   using version 41.
-#
-# * Added "full color" (-c) entries which support the 16-color mode in
-#   version 51.
-#
-# * By default, version 51 uses UTF-8 encoding with broken altcharset
-#   support, so "ASCII" (-7) entries without altcharset support were
-#   added.
-
-# nsterm - AppKit Terminal.app
-#
-# Apple's Mac OS X includes a Terminal.app derived from the old NeXT
-# Terminal.app. It is a partial VT100 emulation with some xterm-like
-# extensions. This terminfo was written to describe versions 41
-# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X
-# version 10.1) of Terminal.app.
-#
-# Terminal.app runs under the Mac OS X Quartz windowing system (and
-# other AppKit-supported windowing systems.)  On the Mac OS X machine I
-# use, the executable for Terminal.app is:
-# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
-#
-# If you're looking for a description of the full-screen system
-# console which runs under Apple's Darwin operating system on PowerPC
-# platforms, see the "xnuppc" entry instead.
-#
-# There were no function keys in version 41. In version 51, there are
-# four working function keys (F1, F2, F3 and F4.) The function keys
-# are included in all of these entries.
-#
-# It does not support mouse pointer position reporting. Under some
-# circumstances the cursor can be positioned using option-click; this
-# works by comparing the cursor position and the selected position,
-# and simulating enough cursor-key presses to move the cursor to the
-# selected position. This technique fails in all but the simplest
-# applications.
-#
-# It provides partial ANSI color support (background colors interacted
-# badly with bold in version 41, though, as reflected in :ncv:.) The
-# monochrome (-m) entries are useful if you've disabled color support
-# or use a monochrome monitor. The full color (-c) entries are useful
-# in version 51, which doesn't exhibit the background color bug. They
-# also enable an xterm-compatible 16-color mode.
-#
-# The configurable titlebar is set using xterm-compatible sequences;
-# it is used as a status bar in the statusline (-s) entries. Its width
-# depends on font sizes and window sizes, but 50 characters seems to
-# be the default for an 80x24 window.
-#
-# The MacRoman character encoding is used for some of the alternate
-# characters in the "MacRoman" entries; the "ASCII" (-7) entries
-# disable alternate character set support entirely, and the "VT100"
-# (-acs) entries rely instead on Terminal.app's own buggy VT100
-# graphics emulation, which seems to think the character encoding is
-# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries
-# are useful in Terminal.app version 51, which supports UTF-8 and
-# other ASCII-compatible character encodings but does not correctly
-# implement VT100 graphics; once VT100 graphics are correctly
-# implemented in Terminal.app, the "VT100" (-acs) entries should be
-# usable in any ASCII-compatible character encoding [except perhaps
-# in UTF-8, where some experts argue for disallowing alternate
-# characters entirely.]
-#
-# Terminal.app reports "vt100" as the terminal type, but exports
-# several environment variables which may aid detection in a shell
-# profile (i.e. .profile or .login):
-#
-# TERM=vt100
-# TERM_PROGRAM=Apple_Terminal
-# TERM_PROGRAM_VERSION=41      # in Terminal.app version 41
-# TERM_PROGRAM_VERSION=51      # in Terminal.app version 51
-#
-# For example, the following Bourne shell script would detect the
-# correct terminal type:
-#
-# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ]
-# then
-#     export TERM
-#     if [ :"$TERM_PROGRAM_VERSION" = :41 ]
-#     then
-#         TERM="nsterm"
-#     else
-#         TERM="nsterm-c-7"
-#     fi
-# fi
-#
-# In a C shell derivative, this would be accomplished by:
-#
-# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
-#     if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
-#          if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
-#              setenv TERM "nsterm"
-#          else
-#              setenv TERM "nsterm-c-7"
-#          endif
-#     endif
-# endif
-
-# The '+' entries are building blocks
-nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
-	am, bw, msgr, xenl, xon,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
-	rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
-	sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys,
-
-nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	enacs=\E(B\E)0, rmacs=^O,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	smacs=^N, use=nsterm+7,
-
-nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
-	acsc=0#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245+\335-\366\,\334.\377,
-	enacs=\E(B\E)0, rmacs=^O,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	smacs=^N, use=nsterm+7,
-
-nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
-	hs,
-	wsl#50,
-	dsl=\E]2;\007, fsl=^G, tsl=\E]2;,
-
-nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors),
-	op=\E[0m, use=ibm+16color,
-
-nsterm+c41|AppKit Terminal.app v41 color support,
-	colors#8, ncv#37, pairs#64,
-	op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-# These are different combinations of the building blocks
-
-# ASCII charset (-7)
-nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome),
-	use=nsterm+7,
-
-nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline),
-	use=nsterm+s, use=nsterm+7,
-
-nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color),
-	use=nsterm+c41, use=nsterm+7,
-
-nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color),
-	use=nsterm+c, use=nsterm+7,
-
-nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline),
-	use=nsterm+s, use=nsterm+c41, use=nsterm+7,
-
-nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline),
-	use=nsterm+s, use=nsterm+c, use=nsterm+7,
-
-# VT100 alternate-charset (-acs)
-nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome),
-	use=nsterm+acs,
-
-nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline),
-	use=nsterm+s, use=nsterm+acs,
-
-nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color),
-	use=nsterm+c41, use=nsterm+acs,
-
-nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color),
-	use=nsterm+c, use=nsterm+acs,
-
-nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline),
-	use=nsterm+s, use=nsterm+c41, use=nsterm+acs,
-
-nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline),
-	use=nsterm+s, use=nsterm+c, use=nsterm+acs,
-
-# MacRoman charset
-nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome),
-	use=nsterm+mac,
-
-nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline),
-	use=nsterm+s, use=nsterm+mac,
-
-nsterm|Apple_Terminal|AppKit Terminal.app v41+ w/MacRoman charset (color),
-	use=nsterm+c41, use=nsterm+mac,
-
-nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color),
-	use=nsterm+c, use=nsterm+mac,
-
-nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline),
-	use=nsterm+s, use=nsterm+c41, use=nsterm+mac,
-
-nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline),
-	use=nsterm+s, use=nsterm+c, use=nsterm+mac,
-
-
-# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
-# and D P Schreber comparing to nsterm-c-s-acs.
-#
-# D P Schreber notes that $TERM can be set in Terminal.app, e.g.,
-#	defaults write com.apple.Terminal TermCapString nsterm-c-s-acs
-# and that it is not set in Terminal's preferences dialog.
-nsterm-16color|AppKit Terminal.app v100.1.8 with MacOS X 10.3.9,
-	kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	knp=\E[6~, kpp=\E[5~, use=nsterm-c-s-acs,
-
-# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
-#
-# On PowerPC platforms, Apple's Darwin operating system uses a
-# full-screen system console derived from a NetBSD framebuffer
-# console. It is an ANSI-style terminal, and is not really VT-100
-# compatible.
-#
-# Under Mac OS X, this is the system console driver used while in
-# single-user mode [reachable by holding down Command-S during the
-# boot process] and when logged in using console mode [reachable by
-# typing ">console" at the graphical login prompt.]
-#
-# If you're looking for a description of the Terminal.app terminal
-# emulator which runs under the Mac OS X Quartz windowing system (and
-# other AppKit-supported windowing systems,) see the "nsterm"
-# entry instead.
-#
-# NOTE: Under Mac OS X version 10.1, the default login window does not
-# prompt for user name, instead requiring an icon to be selected from
-# a list of known users. Since the special ">console" login is not in
-# this list, you must make one of two changes in the Login Window
-# panel of the Login section of System Prefs to make the special
-# ">console" login accessible. The first option is to enable 'Show
-# "Other User" in list for network users', which will add a special
-# "Other..." icon to the graphical login panel. Selecting "Other..."
-# will present the regular graphical login prompt. The second option
-# is to change the 'Display Login Window as:' setting to 'Name and
-# password entry fields', which replaces the login panel with a
-# graphical login prompt.
-#
-# There are no function keys, at least not in Darwin 1.3.
-#
-# It has no mouse support.
-#
-# It has full ANSI color support, and color combines correctly with
-# all three supported attributes: bold, inverse-video and underline.
-# However, bold colored text is almost unreadable (bolding is
-# accomplished using shifting and or-ing, and looks smeared) so bold
-# has been excluded from the list of color-compatible attributes
-# [using (ncv)]. The monochrome entry (-m) is useful if you use a
-# monochrome monitor.
-#
-# There is one serious bug with this terminal emulation's color
-# support: repositioning the cursor onto a cell with non-matching
-# colors obliterates that cell's contents, replacing it with a blank
-# and displaying a colored cursor in the "current" colors. There is
-# no complete workaround at present [other than using the monochrome
-# (-m) entries,] but removing the (msgr) capability seemed to help.
-#
-# The "standout" chosen was simple reverse-video, although a colorful
-# standout might be more aesthetically pleasing. Similarly, the bold
-# chosen is the terminal's own smeared bold, although a simple
-# color-change might be more readable. The color-bold (-b) entries
-# uses magenta colored text for bolding instead. The fancy color (-f
-# and -f2) entries use color for bold, standout and underlined text
-# (underlined text is still underlined, though.)
-#
-# Apparently the terminal emulator does support a VT-100-style
-# alternate character set, but all the alternate character set
-# positions have been left blank in the font. For this reason, no
-# alternate character set capabilities have been included in this
-# description. The console driver appears to be ASCII-only, so (enacs)
-# has been excluded [although the VT-100 sequence does work.]
-#
-# The default Mac OS X and Darwin installation reports "vt100" as the
-# terminal type, and exports no helpful environment variables. To fix
-# this, change the "console" entry in /etc/ttys from "vt100" to
-# "xnuppc-WxH", where W and H are the character dimensions of your
-# console (see below.)
-#
-# The font used by the terminal emulator is apparently one originally
-# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This
-# file includes descriptions for the following geometries:
-#
-#     Pixels        Characters   Entry Name (append -m for monochrome)
-#    -------------------------------------------------------------------
-#     640x400       80x25        xnuppc-80x25
-#     640x480       80x30        xnuppc-80x30
-#     720x480       90x30        xnuppc-90x30
-#     800x600       100x37       xnuppc-100x37
-#     896x600       112x37       xnuppc-112x37
-#     1024x640      128x40       xnuppc-128x40
-#     1024x768      128x48       xnuppc-128x48
-#     1152x768      144x48       xnuppc-144x48
-#     1280x1024     160x64       xnuppc-160x64
-#     1600x1024     200x64       xnuppc-200x64
-#     1600x1200     200x75       xnuppc-200x75
-#     2048x1536     256x96       xnuppc-256x96
-#
-# The basic "xnuppc" entry includes no size information, and the
-# emulator includes no reporting capability, so you'll be at the mercy
-# of the TTY device (which reports incorrectly on my hardware.) The
-# color-bold entries do not include size information.
-
-# The '+' entries are building blocks
-xnuppc+basic|Darwin PowerPC Console basic capabilities,
-	am, bce, mir, xenl,
-	it#8,
-	bold=\E[1m, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dsl=\E]2;\007, ed=\E[J, el=\E[K,
-	el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=\177,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
-	rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m,
-	rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-	sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
-
-xnuppc+c|Darwin PowerPC Console ANSI color support,
-	colors#8, ncv#32, pairs#64,
-	op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-xnuppc+b|Darwin PowerPC Console color-bold support,
-	ncv#32,
-	bold=\E[35m,
-	sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-	use=xnuppc+basic,
-
-xnuppc+f|Darwin PowerPC Console fancy color support,
-	ncv#35,
-	sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;m,
-	smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b,
-
-xnuppc+f2|Darwin PowerPC Console alternate fancy color support,
-	ncv#35,
-	bold=\E[33m,
-	sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m,
-	smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic,
-
-# Building blocks for specific screen sizes
-xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels),
-	cols#80, lines#25,
-
-xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels),
-	cols#80, lines#30,
-
-xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels),
-	cols#90, lines#30,
-
-xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels),
-	cols#100, lines#37,
-
-xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels),
-	cols#112, lines#37,
-
-xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels),
-	cols#128, lines#40,
-
-xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels),
-	cols#128, lines#48,
-
-xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels),
-	cols#144, lines#48,
-
-xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels),
-	cols#160, lines#64,
-
-xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels),
-	cols#200, lines#64,
-
-xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels),
-	cols#200, lines#75,
-
-xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels),
-	cols#256, lines#96,
-
-# These are different combinations of the building blocks
-
-xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome),
-	use=xnuppc+basic,
-
-xnuppc|darwin|Darwin PowerPC Console (color),
-	use=xnuppc+c, use=xnuppc+basic,
-
-xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold),
-	use=xnuppc+b,
-
-xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold),
-	use=xnuppc+b, use=xnuppc+c,
-
-xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome),
-	use=xnuppc+f,
-
-xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color),
-	use=xnuppc+f, use=xnuppc+c,
-
-xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome),
-	use=xnuppc+f2,
-
-xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color),
-	use=xnuppc+f2, use=xnuppc+c,
-
-# Combinations for specific screen sizes
-xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25,
-	use=xnuppc+80x25, use=xnuppc+basic,
-
-xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25,
-	use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic,
-
-xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30,
-	use=xnuppc+80x30, use=xnuppc+basic,
-
-xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30,
-	use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic,
-
-xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30,
-	use=xnuppc+90x30, use=xnuppc+basic,
-
-xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30,
-	use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic,
-
-xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37,
-	use=xnuppc+100x37, use=xnuppc+basic,
-
-xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37,
-	use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic,
-
-xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37,
-	use=xnuppc+112x37, use=xnuppc+basic,
-
-xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37,
-	use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic,
-
-xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40,
-	use=xnuppc+128x40, use=xnuppc+basic,
-
-xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40,
-	use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic,
-
-xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48,
-	use=xnuppc+128x48, use=xnuppc+basic,
-
-xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48,
-	use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic,
-
-xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48,
-	use=xnuppc+144x48, use=xnuppc+basic,
-
-xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48,
-	use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic,
-
-xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64,
-	use=xnuppc+160x64, use=xnuppc+basic,
-
-xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64,
-	use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic,
-
-xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64,
-	use=xnuppc+200x64, use=xnuppc+basic,
-
-xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64,
-	use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic,
-
-xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75,
-	use=xnuppc+200x75, use=xnuppc+basic,
-
-xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75,
-	use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic,
-
-xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96,
-	use=xnuppc+256x96, use=xnuppc+basic,
-
-xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96,
-	use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic,
-
 #### Radio Shack/Tandy
 #
 
@@ -17064,42 +18248,6 @@
 	lf7=f8, mc4=\E]+, mc5=\E]=, rmacs=\ERg, rmso=\ER@, sgr0=\ER@,
 	smacs=\ERG, smso=\ERD,
 
-#### Atari ST
-#
-
-# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
-atari|atari st,
-	OTbs, am,
-	cols#80, it#8, lines#25,
-	clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
-	ed=\EJ, el=\EK, ht=^I, il1=\EL, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, ri=\EI, rmso=\Eq, sgr0=\Eq, smso=\Ep,
-# UniTerm terminal program for the Atari ST:  49-line VT220 emulation mode
-# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
-uniterm|uniterm49|UniTerm VT220 emulator with 49 lines,
-	lines#49,
-	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H,
-	use=vt220,
-# MiNT VT52 emulation. 80 columns, 25 rows.
-# MiNT is Now TOS, the operating system which comes with all Ataris now
-# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
-# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
-# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
-st52|Atari ST with VT52 emulation,
-	am, km,
-	cols#80, lines#25,
-	bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=^M, cub1=\ED,
-	cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
-	ind=^J, ka1=\E#7, ka3=\E#5, kb2=\E#9, kbs=^H, kc1=\E#1,
-	kc3=\E#3, kclr=\E#7, kcub1=\E#K, kcud1=\E#P, kcuf1=\E#M,
-	kcuu1=\E#H, kf0=\E#D, kf1=\E#;, kf2=\E#<, kf3=\E#=, kf4=\E#>,
-	kf5=\E#?, kf6=\E#@, kf7=\E#A, kf8=\E#B, kf9=\E#C, khome=\E#G,
-	kil1=\E#R, kind=\E#2, kri=\E#8, lf0=f10, nel=^M^J, rc=\Ek,
-	ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
-	smcup=\Ee, smso=\Ep,
-
 #### Commodore Business Machines
 #
 # Formerly located in West Chester, PA; went spectacularly bust in 1994
@@ -17307,23 +18455,48 @@
 # even as single processes under SunOS and the Macintosh OS.
 #
 
+# See
+#	http://www.minix3.org/manpages/html4/console.html
+minix|minix console (v3),
+	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+	kdch1=\177, kend=\E[Y, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~,
+	kf11=\E[11;2~, kf12=\E[12;2~, kf13=\E[13;2~,
+	kf14=\E[14;2~, kf15=\E[15;2~, kf16=\E[17;2~,
+	kf17=\E[18;2~, kf18=\E[19;2~, kf19=\E[20;2~, kf2=\E[12~,
+	kf20=\E[21;2~, kf21=\E[11;5~, kf22=\E[12;5~,
+	kf23=\E[13;5~, kf24=\E[14;5~, kf25=\E[15;5~,
+	kf26=\E[17;5~, kf27=\E[18;5~, kf28=\E[19;5~,
+	kf29=\E[20;5~, kf3=\E[13~, kf30=\E[21;5~, kf31=\E[11;6~,
+	kf32=\E[12;6~, kf33=\E[13;6~, kf34=\E[14;6~,
+	kf35=\E[15;6~, kf36=\E[17;6~, kf37=\E[18;6~,
+	kf38=\E[19;6~, kf39=\E[20;6~, kf4=\E[14~, kf40=\E[21;6~,
+	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+	kich1=\E[@, knp=\E[U, kpp=\E[V, lf0@, lf1@, lf2@, lf3@, lf4@, lf5@,
+	use=minix-3.0,
+
+minix-3.0|minix console (v3.0),
+	use=ecma+color, use=minix-1.7,
+
+# See
+#	http://www.minix-vmd.org/pub/Minix-vmd/1.7.0/wwwman/man4/console.4.html
 # This is the entry provided with minix 1.7.4, with bogus :ri: removed.
-minix|minix console (v1.7),
+minix-1.7|minix console (v1.7),
 	am, xenl,
 	cols#80, it#8, lines#25,
 	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
 	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
 	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
 	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S,
-	kf5=\E[G, khome=\E[H, lf0=End, lf1=PgUp, lf2=PgDn, lf3=Num +,
-	lf4=Num -, lf5=Num 5, nel=^M^J, rev=\E[7m, ri=\EM,
-	rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
+	dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, el1=\E[2K,
+	home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+	il1=\E[L, ind=^J, is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+	kcuf1=\E[C, kcuu1=\E[A, kf0=\E[Y, kf1=\E[V, kf2=\E[U,
+	kf3=\E[T, kf4=\E[S, kf5=\E[G, khome=\E[H, lf0=End, lf1=PgUp,
+	lf2=PgDn, lf3=Num +, lf4=Num -, lf5=Num 5, nel=^M^J,
+	rev=\E[7m, ri=\EM, rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m,
+	smso=\E[7m, smul=\E[4m,
 # Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
-minix-old|minix console (v1.5),
+minix-old|minix-1.5|minix console (v1.5),
 	xon,
 	cols#80, it#8, lines#25,
 	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
@@ -17342,7 +18515,7 @@
 	am, use=minix-old,
 
 pc-minix|minix console on an Intel box,
-	use=klone+acs, use=minix,
+	use=klone+acs, use=minix-3.0,
 
 # According to the Coherent 2.3 manual, the PC console is similar
 # to a z19. The differences seem to be (1) 25 lines, (2) no status
@@ -17428,7 +18601,7 @@
 xerox820|x820|Xerox 820,
 	am,
 	cols#80, lines#24,
-	bel=^G, clear=1^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+	bel=^G, clear=\032$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
 	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^Q, el=^X,
 	home=^^, ind=^J,
 
@@ -17729,7 +18902,7 @@
 	rmul=\E[m, rs2=\E[?=h\Ec, s0ds=^O, s1ds=^N,
 	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, smcup=\E[?>h\EPY99\:98\E\\,
-	smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[2g,
+	smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
 	tsl=\EPY99\:98\E\\\E[0;98v\E[2;7m,
 tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA,
 	dsl=\E[0;98v\E[2J\E[v, fsl=\E[v, is3=\Eb, tsl=\E[0;98v,
@@ -17745,6 +18918,7 @@
 	use=tws-generic,
 dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
 	blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb,
+	sgr=\E[0%?%p1%t;2;4;5;7%;%?%p3%t;7%;%?%p2%t;2%;%?%p4%t;2;4%;%?%p5%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
 	smso=\E[0;4;5;7m, smul=\E[0;2m, use=tws-generic,
 
 #=========================================================#
@@ -17824,7 +18998,7 @@
 
 # This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
 bq300|Bull vt320 ISO Latin 1 80 columns terminal,
-	am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
+	am, eo, eslok, hs, km, mir, msgr, xenl, xon,
 	cols#80, it#8, lines#24, vt#3, wsl#80,
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
@@ -17848,14 +19022,14 @@
 	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
 	khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
 	krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
-	mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
-	ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p,
-	rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
+	nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
+	rmcup=\E[?7h, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+	rmul=\E[24m, rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0,
+	sc=\E7,
 	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
 	sgr0=\E[0m\E(B, smacs=\E(0, smam=\E[?7h,
 	smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
+	smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~, use=ansi+pp,
 bq300-rv|Bull vt320 reverse 80 columns,
 	flash=\E[?5l$<50>\E[?5h,
 	is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
@@ -17930,14 +19104,15 @@
 	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, blink=\2335m, bold=\2331m, civis=\233?25l,
 	clear=\233H\233J, cnorm=\233?25h, cr=^M,
-	csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cud=\233%p1%dB,
-	cuf=\233%p1%dC, cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA,
-	dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM,
+	csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=\2331D,
+	cud=\233%p1%dB, cud1=\2331B, cuf=\233%p1%dC, cuf1=\2331C,
+	cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\2331A,
+	dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
 	dsl=\2331$}\2332$~\n\2330$}, ech=\233%p1%dX, ed=\233J,
 	el=\233K, el1=\2331K, enacs=\E(B\E)0,
 	flash=\233?5h$<50>\233?5l, fsl=\2330$}, home=\233H,
-	ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, ind=\ED,
-	is1=\E[63;2"p\E[2h,
+	ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, il1=\233L,
+	ind=\ED, is1=\E[63;2"p\E[2h,
 	is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
 	is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w,
 	ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s,
@@ -17950,11 +19125,12 @@
 	khlp=\23328~, kich1=\2332~, knp=\2336~, kpp=\2335~,
 	krdo=\23329~, kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3,
 	lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8,
-	rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l, rmcup=\233?7h,
-	rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
-	rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
+	rev=\2337m, ri=\EM, rmacs=\E(B, rmam=\233?7l,
+	rmcup=\233?7h, rmir=\2334l, rmkx=\233?1l\E>,
+	rmso=\23327m, rmul=\23324m, rs1=\E[!p, rs2=\E[?3l,
+	s0ds=\E(B, s1ds=\E(0, sc=\E7,
 	sgr=\233%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\2330m\E(B, smacs=^N, smam=\233?7h,
+	sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
 	smcup=\233?7l\233?1l\E(B, smir=\2334h, smso=\2337m,
 	smul=\2334m, tbc=\2333g, tsl=\2331$}\2332$~,
 bq300-8rv|Bull vt320 8-bit reverse mode 80 columns,
@@ -18472,11 +19648,11 @@
 h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
 	OTbs, am, eslok, hs, mir, msgr,
 	cols#80, it#8, lines#24,
-	acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{, bel=^G,
+	acsc=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^, bel=^G,
 	clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
 	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ex4,
 	dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=^J,
-	ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+	ip=$<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
 	kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW,
 	kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue, lf7=red,
 	lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
@@ -18559,14 +19735,14 @@
 	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
 	dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
-	dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l, home=\E[H,
-	ht=^I, hts=\EH, if=/usr/share/tabset/vt100, il=\E[%p1%dL,
-	ind=\ED, kbs=^H, kclr=\E[J, kcub1=\EOD, kcud1=\EOB,
-	kcuf1=\EOC, kcuu1=\EOA, ked=\E[J, kf0=\E[~, kf1=\EOS,
-	kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
-	kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help, mc0=\E#7,
-	nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM, rmcup=\E[?7h,
-	rmso=\E[m, rmul=\E[m,
+	dl1=\E[M, dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l,
+	home=\E[H, ht=^I, hts=\EH, if=/usr/share/tabset/vt100,
+	il=\E[%p1%dL, il1=\E[L, ind=\ED, kbs=^H, kclr=\E[J,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ked=\E[J,
+	kf0=\E[~, kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW,
+	kf6=\EOP, kf7=\EOQ, kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help,
+	mc0=\E#7, nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM,
+	rmcup=\E[?7h, rmso=\E[m, rmul=\E[m,
 	rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m,
 	sc=\E[s, sgr0=\E[m, smcup=\E[?7l, smso=\E[7;2m, smul=\E[4m,
 	tbc=\E[3g, tsl=\E[s\E[>5;1h\E[25;%i%dH\E[1K,
@@ -18610,7 +19786,7 @@
 z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
 	OTbs, OTpt, mir, msgr,
 	OTkn#10, cols#80, it#8, lines#24,
-	acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{,
+	acsc=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^,
 	clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB, cuf1=\EC,
 	cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>, cuu1=\EA,
 	cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>, ed=\EJ, el=\EK,
@@ -18658,7 +19834,7 @@
 ims-ansi|ultima2|ultimaII|IMS Ultima II,
 	OTbs, am,
 	cols#80, it#8, lines#24,
-	clear=\E[H\E[2J, cub1=^H, cud1=\ED,
+	clear=\E[H\E[2J, cub1=^H, cud1=\ED, cuf1=\EC,
 	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\EM, ed=\E[0J, el=\E[0K,
 	ht=^I, if=/usr/share/tabset/vt100,
 	is2=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r, kcub1=\E[D,
@@ -18769,9 +19945,9 @@
 modgraph2|modgraph gx-1000 80x24 with keypad not enabled,
 	am, da, db,
 	cols#80, it#8, lines#24,
-	clear=\EH\EJ$<50/>, cub1=^H, cuf1=\EC$<2/>,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5/>, cuu1=\EA$<2/>,
-	ed=\EJ$<50/>, el=\EK$<3/>, ht=^I,
+	clear=\EH\EJ$<50/>, cub1=^H, cud1=\EB$<2/>,
+	cuf1=\EC$<2/>, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5/>,
+	cuu1=\EA$<2/>, ed=\EJ$<50/>, el=\EK$<3/>, ht=^I,
 	is2=\E<\E\^5;2s\E\^7;1s\E[3g\E\^11;9s\E\^11;17s\E\^11;25s\E\^11;33s\E\^11;41s\E\^11;49s\E\^11;57s\E\^11;65s\E\^11;73s\E\^11;81s\E\^11;89s\E\^12;0s\E\^14;2s\E\^15;9s\E\^25;1s\E\^9;1s\E\^27;1,
 	ri=\EI$<5/>,
 #
@@ -18842,9 +20018,9 @@
 ex155|Motorola Exorterm 155,
 	OTbs, am, bw,
 	OTkn#5, OTug#1, cols#80, lines#24,
-	cbt=\E[, clear=\EX, cud1=\EB, cuf1=\ED,
-	cup=\EE%p1%{32}%+%c%p2%{32}%+%c, ed=\ET, el=\EU,
-	home=\E@, ht=\EZ, kbs=^H, kcbt=\E[, kclr=\EX, kcub1=^H,
+	cbt=\E[, clear=\EX, cub1=\ED, cud1=\EB, cuf1=\EC,
+	cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\ET,
+	el=\EU, home=\E@, ht=\EZ, kbs=^H, kcbt=\E[, kclr=\EX, kcub1=^H,
 	kcud1=^J, kcuf1=^L, kcuu1=^K, ked=\ET, kel=\EU, khome=\E@,
 	rmso=\Ec\ED, rmul=\Eg\ED, smso=\Eb\ED, smul=\Ef\ED,
 
@@ -19140,7 +20316,7 @@
 t10|teleray 10 special,
 	OTbs, km, xhp, xt,
 	cols#80, it#8, lines#24, xmc#2,
-	clear=\Ej$<30/>, cub1=^H, cuf1=\EC,
+	clear=\Ej$<30/>, cub1=^H, cud1=\EB, cuf1=\EC,
 	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
 	dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
 	ind=\Eq, pad=\0, ri=\Ep, rmso=\ER@, rmul=\ER@, smso=\ERD,
@@ -19236,12 +20412,11 @@
 	cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
 	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
 	il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=P$<\233>, kf1=P$<\217>,
-	kf2=Q$<\217>, kf3=R$<\217>, kf4=S$<\217>, kf5=~$<\23316>,
-	kf6=~$<\23317>, kf7=~$<\23318>, kf8=~$<\23319>,
-	kf9=~$<\23320>, kich1=@$<\233>, rc=\E8, rev=\E[7m, ri=\EM,
-	rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g,
+	kcuf1=\E[C, kcuu1=\E[A, kdch1=\233P, kf1=\217P, kf2=\217Q,
+	kf3=\217R, kf4=\217S, kf5=\23316~, kf6=\23317~,
+	kf7=\23318~, kf8=\23319~, kf9=\23320~, kich1=\233@, rc=\E8,
+	rev=\E[7m, ri=\EM, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m,
+	smso=\E[7m, smul=\E[4m, tbc=\E[3g,
 ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode,
 	cols#132, use=ti924,
 ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode,
@@ -19367,6 +20542,193 @@
 apollo_color|apollo color display,
 	rmir@, smir@, use=vt132,
 
+#### AT&T consoles
+
+# This actually describes the generic SVr4 display driver for Intel boxes.
+# The <dim=\E[2m> isn't documented and therefore may not be reliable.
+# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
+att6386|at386|386at|AT&T WGS 6386 console,
+	am, bw, eo, xon,
+	cols#80, it#8, lines#25,
+	acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
+	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C,
+	clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD,
+	cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+	dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+	ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S,
+	indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H,
+	kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
+	kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
+	kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@,
+	knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m,
+	ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
+	sc=\E7,
+	sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
+	sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
+	tbc=\E[3g, vpa=\E[%i%p1%dd, use=klone+color,
+# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
+pc6300plus|AT&T 6300 plus,
+	OTbs, am, xon,
+	cols#80, lines#24,
+	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C,
+	clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B,
+	cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
+	dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K,
+	home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J,
+	invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+	kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe,
+	kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk,
+	nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+	smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+
+# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
+#
+# I have a UNIX PC which I use as a terminal attached to my Linux PC.
+# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
+# is broken. All the special key sequences are broken, making it unusable
+# with Emacs. The problem stems from the following:
+#
+# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
+# keypad!), loadable fonts, and strange highlighting modes ("dithered"
+# half-intensity, "smeared" bold, and real strike-out, for example.) It also
+# uses resizable terminal windows, but the bundled terminal program always
+# uses an 80x24 window (and doesn't support seem to support a 132-column
+# mode.)
+#
+# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
+# library which was a superset of SVr3.5 curses (called tam, for "terminal
+# access method".) tam includes support for real, overlapping windows,
+# onscreen function key labels, and bitmap graphics. But since the primary
+# user interface on the UNIX PC was a GUI program (ua, for "user
+# assistant",) and remote administration was considered important for the
+# machine, tam also supported VT100-compatible terminals attached to the
+# serial port or used across the StarLan network. To simulate the extra keys
+# not present on a VT100, users could press ESC and a two-letter sequence,
+# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
+# however, were not the same as those sent by the actual Undo key. The
+# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
+# (If you're interested in adding some of the tam calls to ncurses, btw, I
+# have the full documentation and several programs which use tam. It also
+# used an extended terminfo format to describe key sequences, special
+# highlighting modes, etc.)
+#
+# KEYS: This means that ncurses would quite painful on the UNIX PC, since
+# there are two sequences for every key-modifier combination (local keyboard
+# sequence and remote "VT100" sequence.) But I doubt many people are trying
+# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
+# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
+# seem to have been built from the manual describing the VT100 sequences.
+# This means it doesn't work for a real live UNIX PC.
+#
+# FONTS: The UNIX PC also has a strange interpretation of "alternate
+# character set". Rather than the VT100 graphics you might expect, it allows
+# up to 8 custom fonts to be loaded at any given time. This means that
+# programs expecting VT100 graphics will usually be disappointed. For this
+# reason I have disabled the smacs/rmacs sequences, but they could easily be
+# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
+# manpage), should you wish to do so:
+#
+# SGR10 - Select font 0 - ESC [ 10 m or SO
+# SGR11 - Select font 1 - ESC [ 11 m or SI
+# SGR12 - Select font 2 - ESC [ 12 m
+# ... (etc.)
+# SGR17 - Select font 7 - ESC [ 17 m
+#
+# Graphics for line drawing are not reliably found at *any* character
+# location because the UNIX PC has dynamically reloadable fonts. I use font
+# 0 for regular text and font 1 for italics, but this is by no means
+# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
+#
+# MISC: The cursor visible/cursor invisible sequences were swapped in the
+# distributed terminfo.
+#
+# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
+# the UNIX PC terminfo entry. The modified version works great with Lynx,
+# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
+# attached by serial cable. In Emacs, even the Undo key works, and many
+# applications can now use the F1-F8 keys.
+#
+# esr's notes:
+#	Terminfo entry for the AT&T Unix PC 7300
+#	from escape(7) in Unix PC 7300 Manual.
+#	Somewhat similar to a vt100-am (but different enough
+#	to redo this from scratch.)
+#
+#	/***************************************************************
+#	*
+#	*           FONT LOADING PROGRAM FOR THE UNIX PC
+#	*
+#	*     This routine loads a font defined in the file ALTFONT
+#	*     into font memory slot #1.  Once the font has been loaded,
+#	*     it can be used as an alternative character set.
+#	*
+#	*     The call to ioctl with the argument WIOCLFONT is the key
+#	*     to this routine.  For more information, see window(7) in
+#	*     the PC 7300 documentation.
+#	***************************************************************/
+#	#include <string.h>		/* needed for strcpy call */
+#	#include <sys/window.h>         /* needed for ioctl call */
+#	#define FNSIZE	60		/* font name size */
+#	#define ALTFONT  "/usr/lib/wfont/special.8.ft"  /* font file */
+#	/*
+#	*     The file /usr/lib/wfont/special.8.ft comes with the
+#	*     standard PC software.  It defines a graphics character set
+#	*     similar to that of the Teletype 5425 terminal.  To view
+#	*     this or other fonts in /usr/lib/wfont, use the command
+#	*     cfont <filename>.  For further information on fonts see
+#	*     cfont(1) in the PC 7300 documentation.
+#	*/
+#
+#	struct altfdata 	/* structure for alt font data */
+#	{
+#	short	altf_slot;		/* memory slot number */
+#	char	altf_name[FNSIZE];	/* font name (file name) */
+#	};
+#	ldfont()
+#	{
+#		int wd;		/* window in which altfont will be */
+#		struct altfdata altf;
+#		altf.altf_slot=1;
+#		strcpy(altf.altf_name,ALTFONT);
+#		for (wd =1; wd < 12; wd++) {
+#		     ioctl(wd, WIOCLFONT,&altf);
+#	        }
+#	}
+#
+# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry,
+# they're confirmed by the man page for the System V display---esr)
+#
+att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300,
+	am, xon,
+	cols#80, it#8, lines#24,
+	bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C,
+	clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD,
+	cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+	cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+	ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL,
+	il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB,
+	kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE,
+	kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM,
+	kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR,
+	kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO,
+	kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z,
+	kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf,
+	ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd,
+	kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
+	kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B,
+	kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv,
+	kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt,
+	kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB,
+	ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM,
+	rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m,
+	smul=\E[4m,
+
 #### Convergent Technology
 #
 # Burroughs bought Convergent shortly before it merged with Univac.
@@ -19472,6 +20834,54 @@
 masscomp2|masscomp large screen version 2,
 	cols#64, lines#21, use=masscomp,
 
+#### OSF Unix
+#
+
+# OSF/1 1.1 Snapshot 2
+pmcons|pmconsole|PMAX console,
+	am,
+	cols#128, lines#57,
+	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I,
+	ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+
+#### Other consoles
+# The following is a version of the ibm-pc entry distributed with PC/IX,
+# (Interactive Systems' System 3 for the Big Blue), modified by Richard
+# McIntosh at UCB/CSM.  The :pt: and :uc: have been removed from the original,
+# (the former is untrue, and the latter failed under UCB/man); standout and
+# underline modes have been added.  Note: this entry describes the "native"
+# capabilities of the PC monochrome display, without ANY emulation; most
+# communications packages (but NOT PC/IX connect) do some kind of emulation.
+pcix|PC/IX console,
+	am, bw, eo,
+	cols#80, lines#24,
+	clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
+	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+	home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
+	smul=\E[4m,
+
+# (ibmpcx: this entry used to be known as ibmx.
+# It formerly included the following extension capabilities:
+#	:GC=b:GL=v:GR=t:RT=^J:\
+#	:GH=\E[196g:GV=\E[179g:\
+#	:GU=\E[193g:GD=\E[194g:\
+#	:G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
+#	:CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
+#	:WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
+# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
+# ":kh=\E[Y:".  Added IBM-PC forms characters and highlights, they match
+# what was there before. -- esr)
+ibmpcx|xenix|ibmx|IBM PC xenix console display,
+	OTbs, am, msgr,
+	cols#80, lines#25,
+	clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C,
+	cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+	ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H,
+	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d,
+	kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e,
+	kpp=\E[Z, use=klone+acs, use=klone+sgr8,
+
 ######## OTHER OBSOLETE TYPES
 #
 # These terminals are *long* dead -- these entries are retained for
@@ -19675,7 +21085,7 @@
 	cols#80, lines#24,
 	clear=^L, cub1=^H, cuf1=\EX,
 	cup=\E#%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EY,
-	dch1=.1*\E'D, dl1=\E&D$<2*/>, ed=\E'P, el=\E'L, ich1=,
+	dch1=\E'D$<.1*>, dl1=\E&D$<2*/>, ed=\E'P, el=\E'L, ich1=,
 	il1=\E&I$<2*/>, ip=$<.1*/>, kcub1=\EW, kcud1=\EZ,
 	kcuf1=\EX, kcuu1=\EY, pad=\177, rmcup=\E"N, rmir=\E'J,
 	rmso=\E"I, rmul=\E"U, smcup=\E"N, smir=\E'I, smso=\E"I,
@@ -19766,9 +21176,9 @@
 	sgr0=\EX, smacs=\EF, smso=\ET,
 env230|envision230|envision 230 graphics terminal,
 	xenl@,
-	mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-	sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
-	use=vt100,
+	enacs@, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rmacs@,
+	sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
+	sgr0=\E[0m$<2>, smacs@, use=vt100,
 # These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
 # coupler attached, the whole rig fitting in a suitcase and more or less
 # portable.  Hot stuff for c.1977 :-) -- esr
@@ -19823,7 +21233,7 @@
 	rmacs=\EH^C, rmam=\Ed., rmcup=, rmir=\Er, rmln=\EA11,
 	rmxon=\Ec20, rs1=\E~!\E~4$<150>, rs2=\EeF$<150>,
 	rs3=\EwG\Ee($<150>,
-	sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+	sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
 	sgr0=\E(\EH\003\EG0\EcD, smacs=\EH^B, smam=\Ed/,
 	smcup=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177,
 	smir=\Eq, smln=\EA10, smxon=\Ec21, tbc=\E0, tsl=\Ez(,
@@ -19862,7 +21272,7 @@
 v3220|LANPAR Vision II model 3220/3221/3222,
 	OTbs, am, mir, xenl,
 	cols#80, it#8, lines#24,
-	clear=\E[H\E[J, cub1=^H, cuf1=\E[C,
+	clear=\E[H\E[J, cub1=^H, cud1=\E[B, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
 	ed=\E[J, el=\E[K, ht=^I, il1=\E[L,
 	is2=\E>\E[?3l\E[?7h\E[?8h\E[p, kcub1=\E[D, kcud1=\E[B,
@@ -20430,7 +21840,7 @@
 # assigned in System V terminfo.  There are some variant extension sets out
 # there.  We try to describe them here.
 #
-# XENIX extensions:
+#### XENIX extensions:
 #
 # The XENIX extensions include a set of function-key capabilities as follows:
 #
@@ -20495,7 +21905,7 @@
 # When translating a termcap file, ncurses tic will do this automatically.
 # The double forms characters don't fit the SVr4 terminfo model.
 #
-# AT&T Extensions:
+#### AT&T Extensions:
 #
 # The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
 # nonstandard capabilities.  Its signature is the KM capability, used to name
@@ -20506,7 +21916,7 @@
 # FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make
 # cursor invisible), and CV=:ve: (make cursor normal).
 #
-# HP Extensions
+#### HP Extensions
 #
 # The HP library (as of mid-1995, their term.h file version 70.1) appears to
 # have the System V capabilities up to SVr1 level.  After that, it supports
@@ -20515,7 +21925,7 @@
 # label_off, and key_f11..key_f63 capabilities like SVr4's.  This makes the
 # HP binary format incompatible with SVr4's.
 #
-# IBM Extensions
+#### IBM Extensions
 #
 # There is a set of nonstandard terminfos used by IBM's AIX operating system.
 # The AIX terminfo library diverged from SVr1 terminfo, and replaces all
@@ -20543,7 +21953,7 @@
 # The box2 characters are the double-line versions of these forms graphics.
 # The AIX binary terminfo format is incompatible with SVr4's.
 #
-# Iris console extensions:
+#### Iris console extensions:
 #
 # HS is half-intensity start; HE is half-intensity end
 # CT is color terminal type (for Curses & rogue)
@@ -20552,7 +21962,7 @@
 #
 # The ncurses tic utility recognizes HS as an alias for mh <dim>.
 #
-# TC Extensions:
+#### TC Extensions:
 #
 # There is a set of extended termcaps associated with something
 # called the "Terminal Control" or TC package created by MainStream Systems,
@@ -20560,11 +21970,123 @@
 # CF for civis and CO for cvvis.  Finally, they define a boolean :ct:
 # that flags color terminals.
 #
+######## NCURSES USER-DEFINABLE CAPABILITIES
+#
+# Extensions added after ncurses 5.0 generally use the "-x" option of tic and
+# infocmp to manipulate user-definable capabilities.  Those that are intended
+# for use in either terminfo or termcap use 2-character names.  Extended
+# function keys do not use 2-character names, and are available only with
+# terminfo.
+#
+# As of mid-2012, no other terminfo/termcap implementation than ncurses
+# supports this extension; termcap libraries can as noted above make limited
+# use of the feature.
+#
+# ncurses makes explicit checks for a few user-definable capabilities:  AX, U8,
+# XM.
+#
+#### SCREEN Extensions:
+#
+# The screen program uses the termcap interface.  It recognizes a few useful
+# nonstandard capabilities.  Those are used in this file.
+#
+#       AX   (bool)  Does  understand  ANSI  set  default fg/bg color (\E[39m /
+#                    \E[49m).
+#       G0   (bool)  Terminal can deal with ISO 2022  font  selection sequences.
+#       E0   (str)   Switch charset 'G0' back to standard charset.
+#       S0   (str)   Switch charset 'G0' to the specified charset.
+#       XT   (bool)  Terminal understands special xterm sequences  (OSC,  mouse
+#                    tracking).
+#
+# AX is relatively straightforward; it is interpreted by ncurses to say that
+# SGR 39/49 reset the terminal's foreground and background colors to their
+# "default".
+#
+# XT is harder, since screen's manpage does not give more details.  For that,
+# we must read screen's source-code.  When XT is set, screen assumes
+#
+# a) OSC 1 sets the title string, e.g., for the icon.  Recent versions of
+#    screen may also set the terminal's name, which is (for xterm) distinct
+#    from the icon name.
+# b) OSC 20 sets the background pixmap.  This is an rxvt feature.
+# c) OSC 39 and OSC 49 set the default foreground/background colors.  Again
+#    this is an rxvt feature.
+# d) certain mode settings enable the mouse: 9, 1000, 1001, 1002, 1003.
+#    These are from xterm, although xterm accepts mouse codes that may not be
+#    recognized by screen, e.g., 1005, 1006.
+# e) colors beyond 0..7 are implemented by xterm's aixterm-like 16-color
+#    sequence.  However, because screen uses only termcap, the values returned
+#    by Af/Ab are not usable because they rely on expressions that termcap
+#    does not support.  Therefore, screen uses a hardcoded string to work
+#    around the limitation.
+# f) all entries named "*xterm*" or "*rxvt*" have the bce flag set.
+#
+# The other ISO-2022 features are rarely used, but provided here to make
+# screen's termcap features available.
+#
+#### XTERM Extensions:
+#
+# Most of the xterm extensions are for function-keys.  Since patch #94 (in
+# 1999), xterm has supported shift/control/alt/meta modifiers which produce
+# additional function-key strings.  Some other developers copied the feature,
+# though they did not follow xterm's lead in patch #167 (in 2002), to make
+# these key definitions less ambiguous.
+#
+# A few terminals provide similar functionality (sending distinct keys when
+# a modifier is used), including rxvt.
+#
+# These are the extended keys defined in this file:
+#
+# kDC3 kDC4 kDC5 kDC6 kDC7 kDN kDN3 kDN4 kDN5 kDN6 kDN7 kEND3 kEND4 kEND5 kEND6
+# kEND7 kHOM3 kHOM4 kHOM5 kHOM6 kHOM7 kIC3 kIC4 kIC5 kIC6 kIC7 kLFT3 kLFT4
+# kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7
+# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 ka2 kb1 kb3 kc2
+#
+# Here are the other xterm-related extensions which are used in this file:
+#
+# Cr is a string capability which resets the cursor color
+# Cs is a string capability which sets the cursor color to a given value.
+#    The single string parameter is the color name/number, according to the
+#    implementation.
+# Ms modifies the selection/clipboard.  Its parameters are
+#	p1 = the storage unit (clipboard, selection or cut buffer)
+#	p2 = the base64-encoded clipboard content.
+# Se resets the cursor style to the terminal power-on default.
+# Ss is a string capability with one numeric parameter.  It is used to set the
+#    cursor style as described by the DECSCUSR function to a block or
+#    underline.
+# TS is a string capability which acts like "tsl", but uses no parameter and
+#    goes to the first column of the "status line".
+# XM is a string capability which overrides ncurses's built-in string which
+#    enables/disables xterm mouse mode.
+# xm shows the format of the mouse responses.  Parameters are (from zero):
+#	p1 = y-ordinate
+#	p2 = x-ordinate
+#	p3 = button
+#	p4 = state, e.g., pressed or released
+#	p6 = y-ordinate starting region
+#	p7 = x-ordinate starting region
+#	p8 = y-ordinate ending region
+#	p9 = x-ordinate ending region
+# Other extensions, used in xm:
+#	%u = UTF-8
+#
+#### Miscellaneous extensions:
+#
+# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
+#    This was implemented for the Hurd.
+# E3 clears the terminal's scrollback buffer.  This was implemented in the
+#    Linux 3.0 kernel as a security feature.  It matches a feature which was
+#    added in xterm patch #107.
+# U8 is a numeric capability which denotes a terminal emulator which does not
+#    support VT100 SI/SO when processing UTF-8 encoding.  Set this to a nonzero
+#    value to enable it.
+#
 ######## CHANGE HISTORY
 #
 # The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
-# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses
-# project.
+# Releases 9 and 10 (up until the release of ncurses 4.2 in 1998) were
+# maintained by Eric S. Raymond as part of the ncurses project.
 #
 # This file contains all the capability information present in John Kunze's
 # last version of the termcap master file, except as noted in the change
@@ -20664,7 +22186,7 @@
 #	* Replaced HP entries up to hpsub with purpose-built ones.
 #	* Blank rmir/smir/rmdc/smdc capabilities removed.
 #	* Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924.
-# 9.4.8 (Fri Apr  7 09:36:34 EDT 199):
+# 9.4.8 (Fri Apr  7 09:36:34 EDT 1995):
 #	* Replaced the Ann Arbor entries with SCO's, the init strings are
 #	  more efficient (but the entries otherwise identical).
 #	* Added dg211 from Shuford archive.
@@ -21773,7 +23295,7 @@
 #	* add screen.rxvt -TD
 #
 # 2008-04-28
-#	* add screen+fkeys (prompted by Debian # 478094) -TD
+#	* add screen+fkeys (prompted by Debian #478094) -TD
 #
 # 2008-06-28
 #	* add screen.mlterm -TD
@@ -21791,13 +23313,393 @@
 #	* add "aterm" -TD
 #	* add "linux2.6.26" -TD
 #
-# The following sets edit modes for GNU EMACS.
-# Local Variables:
-# fill-prefix:"\t"
-# fill-column:75
-# comment-column:0
-# comment-start-skip:"^#+"
-# comment-start:"# "
-# compile-command:"tic -c terminfo.master"
-# End:
+# 2008-11-15
+#	* change several \E[2g (clear tab at current column) to \E[3g
+#	  (clear all tabs) to match definition for tbc capability -TD
+#
+# 2008-11-29
+#	* add eterm-color -TD
+#
+# 2009-01-10
+#	* add screen.Eterm -TD
+#
+# 2009-03-28
+#	* correct typo in pfkey of ansi.sys-old
+#	  (report by Kalle Olavi Niemitalo)
+#	* move function- and cursor-keys from emx-base to ansi.sys, and create
+#	  a pfkey capability which handles F1-F48 -TD
+#
+# 2009-05-02
+#	* add vwmterm entry (Bryan Christ)
+#
+# 2009-09-19
+#	* change ncv and op capabilities in sun-color to match Sun's entry for
+#	  this (report by Laszlo Peter)
+#	* improve interix smso by using reverse rather than bold (report by
+#	  Kristof Zelechovski).
+#
+# 2009-10-03
+#	* remove unnecessary kcan assignment to ^C from putty (Sven Joachim)
+#	* add linux-16color (Benjamin Sittler)
+#	* correct initc capability of linux-c-nc end-of-range (Benjamin Sittler)
+#	* similar change for dg+ccc and dgunix+ccc (Benjamin Sittler)
+#	* add ccc and initc capabilities to xterm-16color -TD
+#
+# 2009-10-31
+#	* updated nsterm* entries (Benjamin Sittler, prompted by GenToo #206201)
+#
+# 2009-12-12
+#	* updated nsterm* entries (Benjamin Sittler, Emanuele Giaquinta)
+#
+# 2009-12-19
+#	* add bw (auto-left-margin) to nsterm* entries (Benjamin Sittler)
+#	* rename minix to minix-1.7, add minix entry for Minux3 -TD
+#
+# 2009-12-26
+#	* add bterm (bogl 0.1.18) -TD
+#	* minor fix to rxvt+pcfkeys -TD
+#
+# 2010-02-06
+#	* update mrxvt to 0.5.4, add mrxvt-256color -TD
+#
+# 2010-02-13
+#	* add several screen-bce.XXX entries -TD
+#
+# 2010-02-23
+#	* modify screen-bce.XXX entries to exclude ech, since screen's color
+#	  model does not clear with color for that feature -TD
+#
+# 2010-03-20
+#	* rename atari and st52 to atari-old, st52-old, use newer entries from
+#	  FreeMiNT by Guido Flohr (from patch/report by Alan Hourihane).
+#
+# 2010-06-12
+#	* add mlterm+256color entry -TD
+#
+# 2010-07-17
+#	* add hard-reset for rs2 to wsvt25 to help ensure that reset ends
+#	  the alternate character set (patch by Nicholas Marriott)
+#
+# 2010-08-28
+#	* improve acsc for vt52 (Benjamin Sittler)
+#	* modify nsterm entries for consistent sgr/sgr0 -TD
+#	* modify xnuppc entries for consistent sgr/sgr0 -TD
+#	* add invis to tek4115 sgr -TD
+#
+# 2010-09-11
+#	* reformat acsc strings to canonical format -TD
+#
+# 2010-09-25
+#	* add "XT" capability to entries for terminals that support both
+#	  xterm-style mouse- and title-controls, for "screen" which
+#	  special-cases TERM beginning with "xterm" or "rxvt" -TD
+#
+# 2010-10-02
+#	* fill in no-parameter forms of cursor-movement where a parameterized
+#	  form is available -TD
+#	* fill in missing cursor controls where the form of the controls is
+#	  ANSI -TD
+#	* add parameterized cursor-controls to linux-basic (report by Dae) -TD
+#
+# 2010-10-09
+#	* correct comparison used for setting 16-colors in linux-16color
+#	  entry (Novell #644831) -TD
+#	* improve linux-16color entry, using "dim" for color-8 which makes it
+#	  gray rather than black like color-0 -TD
+#
+# 2010-11-20
+#	* make "vte" the principal entry defining "gnome", since GNOME terminal
+#	  is merely one of several terminals whose behavior is provided by this
+#	  library -TD
+#
+# 2010-11-27
+#	* fix typo in rmso for tek4106 -Goran Weinholt
+#
+# 2010-12-11
+#	* suppress ncv in screen entry, allowing underline -Alejandro R. Sedeno
+#	* also suppress ncv in konsole-base -TD
+#
+# 2011-02-05
+#	* add U8 feature to denote entries for terminal emulators which do not
+#	  support VT100 SI/SO when processing UTF-8 encoding -TD
+#	* add xterm-utf8 as a demo of the U8 feature -TD
+#
+# 2011-02-20
+#	* add cons25-debian entry (Brian M Carlson, Debian #607662).
+#
+# 2011-06-11
+#	* update minix entry to minix 3.2 (Thomas Cort).
+#
+# 2011-07-09
+#	* fix inconsistent tabset path in pcmw (Todd C. Miller).
+#	* remove a backslash which continued comment, obscuring altos3
+#	  definition with OpenBSD toolset (Nicholas Marriott).
+#
+# 2011-07-16
+#	* add/use xterm+tmux chunk from xterm #271 -TD
+#	* resync xterm-new entry from xterm #271 -TD
+#	* add E3 extended capability to linux-basic (Miroslav Lichvar)
+#	* add linux2.2, linux2.6, linux3.0 entries to give context for E3 -TD
+#	* add SI/SO change to linux2.6 entry (Debian #515609) -TD
+#
+# 2011-07-21
+#	* add kich1 to sun (Yuri Pankov)
+#	* use bold rather than reverse for smso in sun-color (Yuri Pankov).
+#
+# 2011-08-06
+#	* corrected k9 in dg460-ansi, add other features based on manuals -TD
+#
+# 2011-08-20
+#	* minor cleanup of X-terminal emulator section -TD
+#	* add terminator entry -TD
+#	* add simpleterm entry -TD
+#
+# 2011-09-10
+#	* add xterm+kbs fragment from xterm #272 -TD
+#
+# 2011-11-12
+#	* add pccon entries for OpenBSD console (Alexei Malinin)
+#
+# 2011-12-17
+#	* corrected old changelog comments -TD
+#
+# 2011-11-24
+#	* add putty-sco -TD
+#
+# 2012-01-28
+#	* add mach-gnu (Samuel Thibault)
+#	* add mach-gnu-color, tweaks to mach-gnu -TD
+#	* make sgr for sun-color agree with smso -TD
+#	* make sgr for prism9 agree with other caps -TD
+#	* make sgr for icl6404 agree with other caps -TD
+#	* make sgr for ofcons agree with other caps -TD
+#	* make sgr for att5410v1, att4415, att620 agree with other caps -TD
+#	* make sgr for aaa-unk, aaa-rv agree with other caps -TD
+#	* make sgr for avt-ns agree with other caps -TD
+#
+# 2012-02-11
+#	* make sgr for xterm-pcolor agree with other caps -TD
+#	* make sgr for att5425 agree with other caps -TD
+#	* make sgr for att630 agree with other caps -TD
+#	* make sgr for linux entries agree with other caps -TD
+#	* make sgr for tvi9065 agree with other caps -TD
+#	* make sgr for ncr260vt200an agree with other caps -TD
+#	* make sgr for ncr160vt100pp agree with other caps -TD
+#	* make sgr for ncr260vt300an agree with other caps -TD
+#	* make sgr for aaa-60-dec-rv, aaa+dec agree with other caps -TD
+#	* make sgr for cygwin, cygwinDBG agree with other caps -TD
+#
+# 2012-03-31
+#	* correct order of use-clauses in st-256color -TD
+#
+# 2012-04-01
+#	* revert 2011-07-16 change to "linux" alias, return to "linux2.2" -TD
+#
+# 2012-04-14
+#	* document all of the user-defined capabilities in one place -TD
+#	* add XT to some places to improve usefulness for other applications
+#	  than screen, which would like to pretend that xterm's title is
+#	  a status-line. -TD
+#	* change use-clauses in ansi-mtabs, hp2626, and hp2622 based on review
+#	  of ordering and overrides -TD
+#
+# 2012-04-21
+#	* add msgr to vt420, similar DEC vtXXX entries -TD
+#	* add several missing vt420 capabilities from vt220 -TD
+#	* factor out ansi+pp from several entries -TD
+#	* change xterm+sl and xterm+sl-twm to include only the status-line
+#	  capabilities and not "use=xterm", making them more generally useful
+#	  as building-blocks -TD
+#	* add dec+sl building block, as example -TD
+#
+# 2012-04-28
+#	* fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD
+#	* add eslok flag to dec+sl -TD
+#	* dec+sl applies to vt320 and up -TD
+#	* drop wsl width from xterm+sl -TD
+#	* reuse xterm+sl in putty and nsca-m -TD
+#	* add ansi+tabs to vt520 -TD
+#	* add ansi+enq to vt220-vt520 -TD
+#
+# 2012-05-05
+#	* remove p6 (bold) from opus3n1+ for consistency -TD
+#	* remove acs stuff from env230 per clues in Ingres termcap -TD
+#	* modify env230 sgr/sgr0 to match other capabilities -TD
+#	* modify smacs/rmacs in bq300-8 to match sgr/sgr0 -TD
+#	* make sgr for dku7202 agree with other caps -TD
+#	* make sgr for ibmpc agree with other caps -TD
+#	* make sgr for tek4107 agree with other caps -TD
+#	* make sgr for ndr9500 agree with other caps -TD
+#	* make sgr for sco-ansi agree with other caps -TD
+#	* make sgr for d410 agree with other caps -TD
+#	* make sgr for d210 agree with other caps -TD
+#	* make sgr for d470c, d470c-7b agree with other caps -TD
+#
+# 2012-05-12
+#	* rewrite vt520 entry based on vt420 -TD
+#	* corrected 'op' for bterm (report by Samuel Thibault) -TD
+#
+# 2012-06-02
+#	* add kdch1 to wsvt25 entry from NetBSD CVS (reported by David Lord,
+#	  analysis by Martin Husemann).
+#	* add cnorm/civis to wsvt25 entry from NetBSD CVS (report/analysis by
+#	  Onno van der Linden).
+#	* add kdch1 aka "Remove" to vt220 and vt220-8 entries -TD
+#	* add kdch1, etc., to qvt108 -TD
+#	* add dl1/il1 to some entries based on dl/il values -TD
+#	* add dl to simpleterm -TD
+#
+# 2012-06-10
+#	* modify some older xterm entries to align with xterm source -TD
+#	* separate "xterm-old" alias from "xterm-r6" -TD
+#
+# 2012-07-28
+#	* add E3 to xterm-basic and putty -TD
+#
+# 2012-08-11
+#	* add nsterm-256color, make this the default nsterm -TD
+#	* remove bw from nsterm-bce, per testing with tack -TD
+#
+# 2012-10-12
+#       * add vte-2012, gnome-2012, making these the defaults for vte/gnome
+#	  (patch by Christian Persch).
+#
+# 2012-11-02
+#	* reviewed vte-2012, reverted most of the change since it was incorrect
+#	  based on testing with tack -TD
+#	* un-cancel the initc in vte-256color, since this was implemented
+#	  starting with version 0.20 in 2009 -TD
+#
+# 2013-03-16
+#	* correct typo in sgr string for sun-color,
+#	  add bold for consistency with sgr,
+#	  change smso for consistency with sgr -TD
+#	* correct typo in sgr string for terminator -TD
+#	* add blink to the attributes masked by ncv in linux-16color (report
+#	  by Benjamin Sittler)
+#
+# 2013-03-23
+#	* change initialization for vt220, similar entries for consistency
+#	  with cursor-key strings (NetBSD #47674) -TD
+#	* further improvements to linux-16color (Benjamin Sittler)
+#
+# 2013-05-11
+#	* move nsterm-related entries out of "obsolete" section to more
+#	  plausible "ansi consoles" -TD
+#	* additional cleanup of table-of-contents by reordering -TD
+#
+# 2013-06-07
+#	* added note to clarify Terminal.app's non-emulation of the various
+#	  terminal types listed in the preferences dialog -TD
+#
+# 2013-11-02
+#	* use TS extension to describe xterm's title-escapes -TD
+#	* modify terminator and nsterm-s to use xterm+sl-twm building block -TD
+#	* update hurd.ti, add xenl to reflect 2011-03-06 change in
+#	  http://git.savannah.gnu.org/cgit/hurd/hurd.git/log/console/display.c
+#	  (Debian #727119).
+#	* simplify pfkey expression in ansi.sys -TD
+#
+# 2013-11-10
+#	* split-out building blocks xterm+sm+1002 and xterm+sm+1003 -TD
+#
+# 2014-02-22
+#	* updated notes for wsvt25 based on tack and vttest -TD
+#	* add teken entry to show actual properties of FreeBSD's "xterm"
+#	  console -TD
+#
+# 2014-03-22
+#	* add terminology entry -TD
+#	* add mlterm3 entry, use that as "mlterm" -TD
+#	* inherit mlterm-256color from mlterm -TD
+#
+# 2014-03-23
+#	* fix typo in "mlterm" entry (report by Gabriele Balducci) -TD
+#
+# 2014-03-30
+#	* cancel ccc in putty-256color and konsole-256color for consistency
+#	  with the cancelled initc capability (patch by Sven Zuhlsdorf).
+#	* add xterm+256setaf building block for various terminals which only
+#	  get the 256-color feature half-implemented -TD
+#	* updated "st" entry (leaving the 0.1.1 version as "simpleterm") to
+#	  0.4.1 -TD
+#
+# 2014-05-03
+#	* add vt520ansi (Mike Gran)
+#
+# 2014-05-24
+#	* correct several entries which had termcap-style padding used in
+#	  terminfo: adm21, aj510, alto-h19, att605-pc, x820 -TD
+#	* correct syntax for padding in some entries: dg211, h19 -TD
+#	* correct ti924-8 which had confused padding versus octal escapes -TD
+#	* correct padding in sbi entry -TD
+#
+# 2014-06-07
+#	* update xterm-new to patch #305 -TD
+#	+ change screen's smso to use SGR 7 (ECMA-80 reverse) rather than SGR 3
+#	  (italic).  This was a long-ago typo in screen 3.1.1 which was
+#	  overlooked until a few terminal emulators implemented the feature -TD
+#
+# 2014-06-09
+#	> fix regression in screen terminfo entries (reports by Christian
+#	  Ebert, Gabriele Balducci) -TD
+#	+ revert the change to screen; see notes for why this did not work -TD
+#	+ cancel sitm/ritm for entries which extend "screen", to work around
+#	  screen's hardcoded behavior for SGR 3 -TD
+#
+# 2014-06-14
+#	+ modify sgr for screen.xterm-new to support dim capability -TD
+#	+ add dim capability to nsterm+7 -TD
+#	+ cancel dim capability for iterm -TD
+#	+ add dim, invis capabilities to vte-2012 -TD
+#	+ add sitm/ritm to konsole-base and mlterm3 -TD
+#
+# 2014-10-06
+#	+ add xterm-1005 and xterm-1006 entries, with suggested extension
+#	  capability "xm" -TD
+#
+# 2014-10-07
+#	+ update test-report for mrxvt -TD
+#
+# 2014-10-11
+#	+ add xterm-x10mouse, xterm-x11mouse, etc. -TD
+#
+# 2014-10-18
+#	+ reviewed terminology 0.6.1, add function key definitions.  None of
+#	  the vt100-compatibility issues were improved -TD
+#
+# 2015-04-22
+#	+ add 'dim' capability to screen entry (report by Leonardo B Schenkel)
+#	+ add several key definitions to nsterm-bce to match preconfigured
+#	  keys, e.g., with OSX 10.9 and 10.10 (report by Leonardo B Schenkel)
+#
+# 2015-05-02
+#	+ remove unnecessary ';' from E3 capabilities -TD
+#	+ add tmux entry, derived from screen (patch by Nicholas Marriott).
+#	+ split-out recent change to nsterm-bce as nsterm-build326, and add
+#	  nsterm-build342 to reflect changes with successive releases of OSX
+#	  (discussion with Leonardo B Schenkel)
+#	+ add xon, ich1, il1 to ibm3161 (patch by Stephen Powell,
+#	  Debian #783806)
+#
+# 2015-05-17
+#	+ remove screen-bce.mlterm, since mlterm does not do "bce" -TD
+#	+ add several screen.XXX entries to support the respective variations
+#	  for 256 colors -TD
+#
+# 2015-05-23
+#	+ add putty+fnkeys* building-block entries -TD
+#
+# 2015-05-30
+#	+ remove spurious "%;" from st entry (report by Daniel Pitts) -TD
+#	+ add vte-2014, update vte to use that -TD
+#
+# 2015-06-27
+#	+ comment-out "screen.xterm" entry, and inherit screen.xterm-256color
+#	  from xterm-new (report by Richard Birkett) -TD
+#
+# 2015-07-25
+#	+ add status line to tmux via xterm+sl (patch by Nicholas Marriott).
+#	+ fixes for st 0.5 from testing with tack -TD
+#
 ######## SHANTIH!  SHANTIH!  SHANTIH!
diff --git a/misc/terminfo.tmp b/misc/terminfo.tmp
deleted file mode 100644
index 186199d..0000000
--- a/misc/terminfo.tmp
+++ /dev/null
@@ -1,21803 +0,0 @@
-######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE
-#
-# This version of terminfo.src is distributed with ncurses and is maintained
-# by Thomas E. Dickey (TD).
-#
-# Report bugs and new terminal descriptions to
-#	bug-ncurses@gnu.org
-#
-#	$Revision: 1.341 $
-#	$Date: 2008/10/12 23:03:54 $
-#
-# The original header is preserved below for reference.  It is noted that there
-# is a "newer" version which differs in some cosmetic details (but actually
-# stopped updates several years ago); we have decided to not change the header
-# unless there is also a change in content.
-#
-# To further muddy the waters, it is noted that changes to this file as part of
-# maintenance of ncurses (since 1996) are generally conceded to be copyright
-# under the ncurses MIT-style license.  That was the effect of the agreement
-# which the principal authors of ncurses made in 1998.  However, since much of
-# the file itself is of unknown authorship (and the disclaimer below makes it
-# obvious that Raymond cannot or will not convey rights over those parts),
-# there is no explicit copyright notice on the file itself.
-#
-# It would also be a nuisance to split the file into unknown/known authorship
-# and move pieces as they are maintained, since many of the maintenance changes
-# have been small corrections to Raymond's translations to/from termcap format,
-# correcting the data but not the accompanying annotations.
-#
-# In any case, note that almost half of this file is not data but annotations
-# which reflect creative effort.  Furthermore, the structure of entries to
-# reuse common chunks also is creative (and subject to copyright).  Finally,
-# some portions of the data are derivative work under a compatible MIT-style
-# license from xterm.
-#
-#------------------------------------------------------------------------------
-#	Version 10.2.1
-#	terminfo syntax
-#
-#	Eric S. Raymond		(current maintainer)
-#	John Kunze, Berkeley
-#	Craig Leres, Berkeley
-#
-# Please e-mail changes to terminfo@thyrsus.com; the old termcap@berkeley.edu
-# address is no longer valid.  The latest version can always be found at
-# <http://www.tuxedo.org/terminfo>.
-#
-# PURPOSE OF THIS FILE:
-#
-# This file describes the capabilities of various character-cell terminals,
-# as needed by software such as screen-oriented editors.
-#
-# Other terminfo and termcap files exist, supported by various OS vendors
-# or as relics of various older versions of UNIX.  This one is the longest
-# and most comprehensive one in existence.  It subsumes not only the entirety
-# of the historical 4.4BSD, GNU, System V and SCO termcap files and the BRL
-# termcap file, but also large numbers of vendor-maintained termcap and
-# terminfo entries more complete and carefully tested than those in historical
-# termcap/terminfo versions.
-#
-# Pointers to related resources (including the ncurses distribution) may
-# be found at <http://www.tuxedo.org/terminfo>.
-#
-# INTERNATIONALIZATION:
-#
-# This file uses only the US-ASCII character set (no ISO8859 characters).
-#
-# This file assumes a US-ASCII character set. If you need to fix this, start
-# by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers
-# for your character set.  \E(A and \E)A enables the British character set
-# with the pound sign at position 2/3.
-#
-# In a Japanese-processing environment using EUC/Japanese or Shift-JIS,
-# C1 characters are considered the first-byte set of the Japanese encodings,
-# so \E)0 should be avoided in <enacs> and initialization strings.
-#
-# FILE FORMAT:
-#
-# The version you are looking at may be in any of three formats: master
-# (terminfo with OT capabilities), stock terminfo, or termcap.  You can tell
-# which by the format given in the header above.
-#
-# The master format is accepted and generated by the terminfo tools in the
-# ncurses suite; it differs from stock (System V-compatible) terminfo only
-# in that it admits a group of capabilities (prefixed `OT') equivalent to
-# various obsolete termcap capabilities.  You can, thus, convert from master
-# to stock terminfo simply by filtering with `sed "/OT[^,]*,/s///"'; but if
-# you have ncurses `tic -I' is nicer (among other things, it automatically
-# outputs entries in a canonical form).
-#
-# The termcap version is generated automatically from the master version
-# using tic -C.  This filtering leaves in the OT capabilities under their
-# original termcap names.  All translated entries fit within the 1023-byte
-# string-table limit of archaic termcap libraries except where explicitly
-# noted below.  Note that the termcap translation assumes that your termcap
-# library can handle multiple tc capabilities in an entry. 4.4BSD has this
-# capability.  Older versions of GNU termcap, through 1.3, do not.
-#
-# For details on these formats, see terminfo(5) in the ncurses distribution,
-# and termcap(5) in the 4.4BSD Unix Programmer's Manual.  Be aware that 4.4BSD
-# curses has been declared obsolete by the caretakers of the 4.4BSD sources
-# as of June 1995; they are encouraging everyone to migrate to ncurses.
-#
-# Note: unlike some other distributed terminfo files (Novell Unix & SCO's),
-# no entry in this file has embedded comments.  This is so source translation
-# to termcap only has to carry over leading comments.  Also, no name field
-# contains embedded whitespace (such whitespace confuses rdist).
-#
-# Further note: older versions of this file were often installed with an editor
-# script (reorder) that moved the most common terminal types to the front of
-# the file.  This should no longer be necessary, as the file is now ordered
-# roughly by type frequency with ANSI/VT100 and other common types up front.
-#
-# Some information has been merged in from terminfo files distributed by
-# USL and SCO (see COPYRIGHTS AND OTHER DELUSIONS below).  Much information
-# comes from vendors who maintain official terminfos for their hardware
-# (notably DEC and Wyse).
-#
-# A detailed change history is included at the end of this file.
-#
-# FILE ORGANIZATION:
-#
-# Comments in this file begin with # - they cannot appear in the middle
-# of a terminfo/termcap entry (this feature had to be sacrificed in order
-# to allow standard terminfo and termcap syntax to be generated cleanly from
-# the master format).  Individual capabilities are commented out by
-# placing a period between the colon and the capability name.
-#
-# The file is divided up into major sections (headed by lines beginning with
-# the string "########") and minor sections (beginning with "####"); do
-#
-#	grep "^####" <file> | more
-#
-# to see a listing of section headings.  The intent of the divisions is
-# (a) to make it easier to find things, and (b) to order the database so
-# that important and frequently-encountered terminal types are near the
-# front (so that you'll get reasonable search efficiency from a linear
-# search of the termcap form even if you don't use reorder).  Minor sections
-# usually correspond to manufacturers or standard terminal classes.
-# Parenthesized words following manufacturer names are type prefixes or
-# product line names used by that manufacturers.
-#
-# HOW TO READ THE ENTRIES:
-#
-# The first name in an entry is the canonical name for the model or
-# type, last entry is a verbose description.  Others are mnemonic synonyms for
-# the terminal.
-#
-# Terminal names look like <manufacturer> <model> - <modes/options>
-# The part to the left of the dash, if a dash is present, describes the
-# particular hardware of the terminal.  The part to the right may be used
-# for flags indicating special ROMs, extra memory, particular terminal modes,
-# or user preferences.
-#
-# All names should be in lower case, for consistency in typing.
-#
-# The following are conventionally used suffixes:
-#	-2p	Has two pages of memory.  Likewise 4p, 8p, etc.
-#	-am	Enable auto-margin.
-#	-m	Monochrome.  Suppress color support
-#	-mc	Magic-cookie.  Some terminals (notably older Wyses) can
-#		only support one attribute without magic-cookie lossage.
-#		Their base entry is usually paired with another that
-#		uses magic cookies to support multiple attributes.
-#	-nam	No auto-margin - suppress <am> capability
-#	-nl	No labels - suppress soft labels
-#	-ns	No status line - suppress status line
-#	-rv	Terminal in reverse video mode (black on white)
-#	-s	Enable status line.
-#	-vb	Use visible bell (<flash>) rather than <bel>.
-#	-w	Wide - in 132 column mode.
-# If a name has multiple suffixes and one is a line height, that one should
-# go first.  Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'.
-#
-# Entries with embedded plus signs are designed to be included through use/tc
-# capabilities, not used as standalone entries.
-#
-# To avoid search clashes, some older all-numeric names for terminals have
-# been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621).
-# All primary names of terminals now have alphanumeric prefixes.
-#
-# Comments marked "esr" are mostly results of applying the termcap-compiler
-# code packaged with ncurses and contemplating the resulting error messages.
-# In many cases, these indicated obvious fixes to syntax garbled by the
-# composers.  In a few cases, I was able to deduce corrected forms for garbled
-# capabilities by looking at context.  All the information in the original
-# entries is preserved in the comments.
-#
-# In the comments, terminfo capability names are bracketed with <> (angle
-# brackets).  Termcap capability names are bracketed with :: (colons).
-#
-# INTERPRETATION OF USER CAPABILITIES
-#
-# The System V Release 4 and XPG4 terminfo format defines ten string
-# capabilities for use by applications, <u0>...<u9>.   In this file, we use
-# certain of these capabilities to describe functions which are not covered
-# by terminfo.  The mapping is as follows:
-#
-#	u9	terminal enquire string (equiv. to ANSI/ECMA-48 DA)
-#	u8	terminal answerback description
-#	u7	cursor position request (equiv. to VT100/ANSI/ECMA-48 DSR 6)
-#	u6	cursor position report (equiv. to ANSI/ECMA-48 CPR)
-#
-# The terminal enquire string <u9> should elicit an answerback response
-# from the terminal.  Common values for <u9> will be ^E (on older ASCII
-# terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals).
-#
-# The cursor position request (<u7>) string should elicit a cursor position
-# report.  A typical value (for VT100 terminals) is \E[6n.
-#
-# The terminal answerback description (u8) must consist of an expected
-# answerback string.  The string may contain the following scanf(3)-like
-# escapes:
-#
-#	%c	Accept any character
-#	%[...]	Accept any number of characters in the given set
-#
-# The cursor position report (<u6>) string must contain two scanf(3)-style
-# %d format elements.  The first of these must correspond to the Y coordinate
-# and the second to the %d.  If the string contains the sequence %i, it is
-# taken as an instruction to decrement each value after reading it (this is
-# the inverse sense from the cup string).  The typical CPR value is
-# \E[%i%d;%dR (on VT100/ANSI/ECMA-48-compatible terminals).
-#
-# These capabilities are used by tack(1m), the terminfo action checker
-# (distributed with ncurses 5.0).
-#
-# TABSET FILES
-#
-# All the entries in this file have been edited to assume that the tabset
-# files directory is /usr/local/share/tabset, in conformance with the File Hierarchy
-# Standard for Linux and open-source BSD systems.  Some vendors (notably Sun)
-# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset.
-#
-# No curses package we know of actually uses these files.  If their location
-# is an issue, you will have to hand-patch the file locations before compiling
-# this file.
-#
-# REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL
-#
-# As the ANSI/ECMA-48 standard and variants take firmer hold, and as
-# character-cell terminals are increasingly replaced by X displays, much of
-# this file is becoming a historical document (this is part of the reason for
-# the new organization, which puts ANSI types, xterm, Unix consoles,
-# and vt100 up front in confidence that this will catch 95% of new hardware).
-#
-# For the terminal types still alive, I'd like to have manufacturer's
-# contact data (Internet address and/or snail-mail + phone).
-#
-# I'm also interested in enriching the comments so that the latter portions of
-# the file do in fact become a potted history of VDT technology as seen by
-# UNIX hackers.  Ideally, I'd like the headers for each manufacturer to
-# include its live/dead/out-of-the-business status, and for as many
-# terminal types as possible to be tagged with information like years
-# of heaviest use, popularity, and interesting features.
-#
-# I'm especially interested in identifying the obscure entries listed under
-# `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal
-# wisdom about them gets lost.  If you know a lot about obscure old terminals,
-# please go to the terminfo resource page, grab the UFO file (ufo.ti), and
-# eyeball it for things you can identify and describe.
-#
-# If you have been around long enough to contribute, please read the file
-# with this in mind and send me your annotations.
-#
-# COPYRIGHTS AND OTHER DELUSIONS
-#
-# The BSD ancestor of this file had a standard Regents of the University of
-# California copyright with dates from 1980 to 1993.
-#
-# Some information has been merged in from a terminfo file SCO distributes.
-# It has an obnoxious boilerplate copyright which I'm ignoring because they
-# took so much of the content from the ancestral BSD versions of this file
-# and didn't attribute it, thereby violating the BSD Regents' copyright.
-#
-# Not that anyone should care.  However many valid functions copyrights may
-# serve, putting one on a termcap/terminfo file with hundreds of anonymous
-# contributors makes about as much sense as copyrighting a wall-full of
-# graffiti -- it's legally dubious, ethically bogus, and patently ridiculous.
-#
-# This file deliberately has no copyright.  It belongs to no one and everyone.
-# If you claim you own it, you will merely succeed in looking like a fool.
-# Use it as you like.  Use it at your own risk.  Copy and redistribute freely.
-# There are no guarantees anywhere.  Svaha!
-#
-
-######## ANSI, UNIX CONSOLE, AND SPECIAL TYPES
-#
-# This section describes terminal classes and brands that are still
-# quite common.
-#
-
-#### Specials
-#
-# Special "terminals".  These are used to label tty lines when you don't
-# know what kind of terminal is on it.  The characteristics of an unknown
-# terminal are the lowest common denominator - they look about like a ti 700.
-#
-
-dumb|80-column dumb tty,
-	am,
-	cols#80,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
-unknown|unknown terminal type,
-	gn, use=dumb,
-lpr|printer|line printer,
-	OTbs, hc, os,
-	cols#132, lines#66,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ff=^L, ind=^J,
-glasstty|classic glass tty interpreting ASCII control characters,
-	OTbs, am,
-	cols#80,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ht=^I, kcub1=^H,
-	kcud1=^J, nel=^M^J, .kbs=^H,
-
-vanilla|dumb tty,
-	OTbs,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
-
-# This is almost the same as "dumb", but with no prespecified width.
-# DEL and ^C are hardcoded to act as kill characters.
-# ^D acts as a line break (just like newline).
-# It also interprets
-#      \033];xxx\007 
-# for compatibility with xterm -TD
-9term|Plan9 terminal emulator for X,
-	am,
-	OTnl=^J, bel=^G, cud1=^J,
-
-#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
-#
-# See the end-of-file comment for more on these.
-#
-
-# ANSI capabilities are broken up into pieces, so that a terminal
-# implementing some ANSI subset can use many of them.
-ansi+local1,
-	cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
-ansi+local,
-	cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-	cuu=\E[%p1%dA, use=ansi+local1,
-ansi+tabs,
-	cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[2g,
-ansi+inittabs,
-	it#8, use=ansi+tabs,
-ansi+erase,
-	clear=\E[H\E[J, ed=\E[J, el=\E[K,
-ansi+rca,
-	hpa=\E[%p1%{1}%+%dG, vpa=\E[%p1%{1}%+%dd,
-ansi+cup,
-	cup=\E[%i%p1%d;%p2%dH, home=\E[H,
-ansi+rep,
-	rep=%p1%c\E[%p2%{1}%-%db,
-ansi+idl1,
-	dl1=\E[M, il1=\E[L,
-ansi+idl,
-	dl=\E[%p1%dM, il=\E[%p1%dL, use=ansi+idl1,
-ansi+idc,
-	dch1=\E[P, ich=\E[%p1%d@, ich1=\E[@, rmir=\E6, smir=\E6,
-ansi+arrows,
-	kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	khome=\E[H,
-ansi+sgr|ansi graphic renditions,
-	blink=\E[5m, invis=\E[8m, rev=\E[7m,
-	sgr=\E[0%?%p3%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
-	sgr0=\E[0m,
-ansi+sgrso|ansi standout only,
-	rmso=\E[m, smso=\E[7m,
-ansi+sgrul|ansi underline only,
-	rmul=\E[m, smul=\E[4m,
-ansi+sgrbold|ansi graphic renditions; assuming terminal has bold; not dim,
-	bold=\E[1m,
-	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
-	use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul,
-ansi+sgrdim|ansi graphic renditions; assuming terminal has dim; not bold,
-	dim=\E[2m,
-	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;%?%p7%t8;%;m,
-	use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul,
-ansi+pp|ansi printer port,
-	mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-ansi+csr|ansi scroll-region plus cursor save & restore,
-	csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7,
-
-# The IBM PC alternate character set.  Plug this into any Intel console entry.
-# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
-# ROM graphics for control characters such as the diamond, up- and down-arrow.
-# This works with the System V, Linux, and BSDI consoles.  It's a safe bet this
-# will work with any Intel console, they all seem to have inherited \E[11m
-# from the ANSI.SYS de-facto standard.
-klone+acs|alternate character set for ansi.sys displays,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	rmacs=\E[10m, smacs=\E[11m,
-
-# Highlight controls corresponding to the ANSI.SYS standard.  Most
-# console drivers for Intel boxes obey these.  Makes the same assumption
-# about \E[11m as klone+acs.  True ANSI/ECMA-48 would have <rmso=\E[27m>,
-# <rmul=\E[24m>, but this isn't a documented feature of ANSI.SYS.
-klone+sgr|attribute control for ansi.sys displays,
-	blink=\E[5m, bold=\E[1m, rev=\E[7m, rmpch=\E[10m,
-	rmso=\E[m, rmul=\E[m,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p9%t;11%;m,
-	sgr0=\E[0;10m, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
-	use=klone+acs,
-
-# Most Intel boxes do not treat "invis" (invisible) text.
-klone+sgr8|attribute control for ansi.sys displays,
-	invis=\E[8m,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
-	use=klone+sgr,
-
-# Highlight controls corresponding to the ANSI.SYS standard.  *All*
-# console drivers for Intel boxes obey these.  Does not assume \E[11m will
-# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
-# diamond and arrow characters under curses.
-klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m),
-	blink=\E[5m, bold=\E[1m, invis=\E[8m, rev=\E[7m, rmso=\E[m,
-	rmul=\E[m,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
-	sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
-	use=klone+acs,
-
-# KOI8-R (RFC1489) acs (alternate character set)
-# From: Qing Long <qinglong@Bolizm.ihep.su>, 24 Feb 1996.
-klone+koi8acs|alternate character set for ansi.sys displays with KOI8 charset,
-	acsc=+\020\,\021-\036.^_0\215`\004a\237f\234g\232h\222i\220j\205k\203l\202m\204n\212o\213p\216q\0r\217s\214t\206u\207v\210w\211x\201y\230z\231{\267|\274}L~\225,
-	rmacs=\E[10m, smacs=\E[11m,
-
-# ANSI.SYS color control.  The setab/setaf caps depend on the coincidence
-# between SVr4/XPG4's color numbers and ANSI.SYS attributes.  Here are longer
-# but equivalent strings that don't rely on that coincidence:
-# setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-# setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
-# They match a subset of ECMA-48.
-klone+color|color control for ansi.sys and ISO6429-compatible displays,
-	colors#8, ncv#3, pairs#64,
-	op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-# This is better than klone+color, it doesn't assume white-on-black as the
-# default color pair,  but many `ANSI' terminals don't grok the <op> cap.
-ecma+color|color control for ECMA-48-compatible terminals,
-	AX,
-	colors#8, ncv#3, pairs#64,
-	op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-# Attribute control for ECMA-48-compatible terminals
-ecma+sgr|attribute capabilities for true ECMA-48 terminals,
-	rmso=\E[27m, rmul=\E[24m, use=klone+sgr8,
-
-# For comparison, here are all the capabilities implied by the Intel
-# Binary Compatibility Standard (level 2) that fit within terminfo.
-# For more detail on this rather pathetic standard, see the comments
-# near the end of this file.
-ibcs2|Intel Binary Compatibility Standard prescriptions,
-	cbt=\E[Z, clear=\Ec, cub=\E[%p1%dD, cud=\E[%p1%dB,
-	cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX,
-	hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
-	indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, rmam=\E[?7l, sc=\E7,
-	smam=\E[?7h, tbc=\E[g, vpa=\E[%i%p1%dd,
-
-#### ANSI/ECMA-48 terminals and terminal emulators
-#
-# See near the end of this file for details on ANSI conformance.
-# Don't mess with these entries!  Lots of other entries depend on them!
-#
-# This section lists entries in a least-capable to most-capable order.
-# if you're in doubt about what `ANSI' matches yours, try them in that
-# order and back off from the first that breaks.
-
-# ansi-mr is for ANSI terminals with ONLY relative cursor addressing
-# and more than one page of memory.  It uses local motions instead of
-# direct cursor addressing, and makes almost no assumptions. It does
-# assume auto margins, no padding and/or xon/xoff, and a 24x80 screen.
-ansi-mr|mem rel cup ansi,
-	am, xon,
-	cols#80, lines#24, use=vanilla, use=ansi+erase,
-	use=ansi+local1,
-
-# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but
-# beware of screen size problems and memory relative cursor addressing.
-ansi-mini|any ansi terminal with pessimistic assumptions,
-	am, xon,
-	cols#80, lines#24, use=vanilla, use=ansi+cup,
-	use=ansi+erase,
-
-# ansi-mtabs adds relative addressing and minimal tab support
-ansi-mtabs|any ansi terminal with pessimistic assumptions,
-	it#8,
-	ht=^I, use=ansi+local1, use=ansi-mini,
-
-# ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL
-#
-# The following is an entry for the full ANSI 3.64 (1977).  It lacks
-# padding, but most terminals using the standard are "fast" enough
-# not to require any -- even at 9600 bps.  If you encounter problems,
-# try including the padding specifications.
-#
-# Note: the :as: and :ae: specifications are not implemented here, for
-# the available termcap documentation does not make clear WHICH alternate
-# character set to specify.  ANSI 3.64 seems to make allowances for several.
-# Please make the appropriate adjustments to fit your needs -- that is
-# if you will be using alternate character sets.
-#
-# There are very few terminals running the full ANSI 3.64 standard,
-# so I could only test this entry on one verified terminal (Visual 102).
-# I would appreciate the results on other terminals sent to me.
-#
-# Please report comments, changes, and problems to:
-#
-# U.S. MAIL:   Hugh Hansard
-#              Box: 22830
-#              Emory University
-#              Atlanta, GA. 30322.
-#
-# USENET {akgua,msdc,sb1,sb6,gatech}!emory!mlhhh.
-#
-# (Added vt100 <rc>,<sc> to quiet a tic warning --esr)
-ansi77|ansi 3.64 standard 1977 version,
-	OTbs, am, mir,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=\E[;H\E[2J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A, dch1=\E[P, dl1=\E[M$<5*/>, ed=\E[J, el=\E[K,
-	home=\E[H, ht=^I, il1=\E[L$<5*/>, ind=\ED, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
-	kf2=\EOR, kf4=\EOS, khome=\E[H, nel=^M\ED, rc=\E8, ri=\EM,
-	rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m,
-
-# Procomm and some other ANSI emulations don't recognize all of the ANSI-
-# standard capabilities.  This entry deletes <cuu>, <cuf>, <cud>, <cub>, and
-# <vpa>/<hpa> capabilities, forcing curses to use repetitions of <cuu1>,
-# <cuf1>, <cud1> and <cub1>.  Also deleted <ich> and <ich1>, as QModem up to
-# 5.03 doesn't recognize these.  Finally, we delete <rep> and <ri>, which seem
-# to confuse many emulators.  On the other hand, we can count on these programs
-# doing <rmacs>/<smacs>/<sgr>. Older versions of this entry featured
-# <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under
-# ANSI.SYS influence.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995
-pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode),
-	OTbs, am, mir, msgr,
-	cols#80, it#8, lines#24,
-	bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=\E[D,
-	cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	hts=\EH, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[2g,
-	use=klone+sgr-dumb,
-pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode),
-	lines#25, use=pcansi-m,
-pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode),
-	lines#33, use=pcansi-m,
-pcansi-43-m|ansi43m|ibm-pc terminal programs with 43 lines (mono mode),
-	lines#43, use=pcansi-m,
-# The color versions.  All PC emulators do color...
-pcansi|ibm-pc terminal programs claiming to be ansi,
-	use=klone+color, use=pcansi-m,
-pcansi-25|pcansi25|ibm-pc terminal programs with 25 lines,
-	lines#25, use=pcansi,
-pcansi-33|pcansi33|ibm-pc terminal programs with 33 lines,
-	lines#33, use=pcansi,
-pcansi-43|pcansi43|ibm-pc terminal programs with 43 lines,
-	lines#43, use=pcansi,
-
-# ansi-m -- full ANSI X3.64 with ANSI.SYS-compatible attributes, no color.
-# If you want pound signs rather than dollars, replace `B' with `A'
-# in the <s0ds>, <s1ds>, <s2ds>, and <s3ds> capabilities.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
-ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes,
-	mc5i,
-	cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-	cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
-	ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%i%p1%dG, ht=\E[I,
-	ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, kbs=^H,
-	kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
-	rep=%p1%c\E[%p2%{1}%-%db, rin=\E[%p1%dT, s0ds=\E(B,
-	s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[2g,
-	vpa=\E[%i%p1%dd, use=pcansi-m,
-
-ansi+enq|ncurses extension for ANSI ENQ,
-	u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
-	u9=\E[c,
-
-# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in
-# standard terminfo.  Assumes ANSI.SYS-compatible attributes and color.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
-ansi|ansi/pc-term compatible with color,
-	use=ansi+enq, use=ecma+color, use=klone+sgr8, use=ansi-m,
-
-# ansi-generic is a vanilla ANSI terminal. This is assumed to implement
-# all the normal ANSI stuff with no extensions. It assumes
-# insert/delete line/char is there, so it won't work with
-# vt100 clones. It assumes video attributes for bold, blink,
-# underline, and reverse, which won't matter much if the terminal
-# can't do some of those. Padding is assumed to be zero, which
-# shouldn't hurt since xon/xoff is assumed.
-ansi-generic|generic ansi standard terminal,
-	am, xon,
-	cols#80, lines#24, use=vanilla, use=ansi+csr, use=ansi+cup,
-	use=ansi+rca, use=ansi+erase, use=ansi+tabs,
-	use=ansi+local, use=ansi+idc, use=ansi+idl, use=ansi+rep,
-	use=ansi+sgrbold, use=ansi+arrows,
-
-#### DOS ANSI.SYS variants
-#
-# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
-# documentation (except for the keyboard key reassignment feature, which
-# doesn't fit the <pfkey> model well).  The klone+acs sequences were valid
-# though undocumented.  The <pfkey> capability is untested but should work for
-# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
-ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
-	OTbs, am, mir, msgr, xon,
-	cols#80, lines#25,
-	clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[k, home=\E[H,
-	is2=\E[m\E[?7h, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-	khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s", rc=\E[u,
-	rmam=\E[?7l, sc=\E[s, smam=\E[?7h, u6=\E[%i%d;%dR,
-	u7=\E[6n, use=klone+color, use=klone+sgr8,
-ansi.sys|ANSI.SYS 3.1 and later versions,
-	el=\E[K, use=ansi.sys-old,
-
-#
-# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
-# This should only be used when the terminal emulator cannot redefine the keys.
-# Since redefining keys with ansi.sys also affects PC-DOS programs, the key
-# definitions must be restored.  If the terminal emulator is quit while in vi
-# or others using <smkx>/<rmkx>, the keypad will not be defined as per PC-DOS.
-# The PgUp and PgDn are prefixed with ESC so that tn3270 can be used on Unix
-# (^U and ^D are already defined for tn3270).  The ESC is safe for vi but it
-# does "beep".  ESC ESC i is used for Ins to avoid tn3270 ESC i for coltab.
-# Note that <kcub1> is always BS, because PC-dos can tolerate this change.
-# Caution: vi is limited to 256 string bytes, longer crashes or weirds out vi.
-# Consequently the End keypad key could not be set (it is relatively safe and
-# actually useful because it sends ^@ O, which beeps and opens a line above).
-ansi.sysk|ansisysk|PC-DOS 3.1 ANSI.SYS with keypad redefined for vi,
-	is2=U2 PC-DOS 3.1 ANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
-	rmkx=\E[;71;0;71p\E[;72;0;72p\E[;73;0;73p\E[;77;0;77p\E[;80;0;80p\E[;81;0;81p\E[;82;0;82p\E[;83;0;83p,
-	smkx=\E[;71;30p\E[;72;11p\E[;73;27;21p\E[;77;12p\E[;80;10p\E[;81;27;4p\E[;82;27;27;105p\E[;83;127p,
-	use=ansi.sys,
-#
-# Adds ins/del line/character, hence vi reverse scrolls/inserts/deletes nicer.
-nansi.sys|nansisys|PC-DOS Public Domain NANSI.SYS,
-	dch1=\E[1P, dl1=\E[1M, ich1=\E[1@, il1=\E[1L,
-	is2=U3 PC-DOS Public Domain NANSI.SYS 9-23-86\n,
-	use=ansi.sys,
-#
-# See ansi.sysk and nansi.sys above.
-nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi,
-	dch1=\E[1P, dl1=\E[1M, ich1=\E[1@, il1=\E[1L,
-	is2=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
-	use=ansi.sysk,
-
-#### ANSI console types
-#
-
-#### BeOS
-#
-# BeOS entry for Terminal program Seems to be almost ANSI
-beterm|BeOS Terminal,
-	am, eo, mir, msgr, xenl, xon,
-	colors#8, cols#80, it#8, lines#25, ncv#5, pairs#64,
-	bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H,
-	hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
-	kend=\E[4~, kf1=\E[11~, kf10=\E[20~, kf11=\E[21~,
-	kf12=\E[22~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
-	kf5=\E[15~, kf6=\E[16~, kf7=\E[17~, kf8=\E[18~, kf9=\E[19~,
-	khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
-	nel=^M^J, op=\E[m, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
-	rmkx=\E[?4l, rmso=\E[m, rmul=\E[24m, rs1=\Ec, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	setb=\E[%p1%{40}%+%cm, setf=\E[%p1%{30}%+%cm,
-	sgr0=\E[0;10m, smir=\E[4h, smkx=\E[?4h, smso=\E[7m,
-	smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n,
-	vpa=\E[%i%p1%dd,
-
-#### Linux consoles
-#
-
-# This entry is good for the 1.2.13 or later version of the Linux console.
-#
-# ***************************************************************************
-# *                                                                         *
-# *                           WARNING:                                      *
-# * Linuxes come with a default keyboard mapping kcbt=^I.  This entry, in   *
-# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
-# * character. Here are the keymap replacement lines that will set this up: *
-# *                                                                         *
-#	keycode  15 = Tab             Tab
-#		alt     keycode  15 = Meta_Tab
-#		shift	keycode  15 = F26
-#	string F26 ="\033[Z"
-# *                                                                         *
-# * This has to use a key slot which is unfortunate (any unused one will    *
-# * do, F26 is the higher-numbered one).  The change ought to be built      *
-# * into the kernel tables.                                                 *
-# *                                                                         *
-# ***************************************************************************
-#
-# All linux kernels since 1.2.13 (at least) set the screen size
-# themselves; this entry assumes that capability.
-#
-linux-basic|linux console,
-	am, bce, eo, mir, msgr, xenl, xon,
-	it#8, ncv#18,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H,
-	hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177,
-	kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-	kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
-	kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
-	kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
-	kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
-	rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
-	smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g,
-	vpa=\E[%i%p1%dd, use=vt102+enq, use=klone+sgr,
-	use=ecma+color,
-
-linux-m|Linux console no color,
-	colors@, pairs@,
-	setab@, setaf@, setb@, setf@, use=linux,
-
-# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
-# and it matters, turn off <ccc>.  The %02x escape used to implement this is
-# not supposedly back-portable to older SV curses (although it has worked fine
-# on Solaris for several years) and not supported in ncurses versions before
-# 1.9.9.
-linux-c-nc|linux console with color-change,
-	ccc,
-	initc=\E]P%p1%x%p2%{256}%*%{1000}%/%02x%p3%{256}%*%{1000}%/%02x%p4%{256}%*%{1000}%/%02x,
-	oc=\E]R, use=linux-basic,
-# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
-linux-c|linux console 1.3.6+ for older ncurses,
-	ccc,
-	initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;,
-	oc=\E]R, use=linux-basic,
-
-# The 2.2.x kernels add a private mode that sets the cursor type; use that to
-# get a block cursor for cvvis.
-# reported by Frank Heckenbach <frank@g-n-u.de>.
-linux|linux console,
-	civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
-	cvvis=\E[?25h\E[?8c, use=linux-c-nc,
-
-# Subject: linux 2.6.26 vt back_color_erase
-# Changes to the Linux console driver broke bce model as reported in
-#	https://bugzilla.novell.com/show_bug.cgi?id=418613
-# apparently from
-#	http://lkml.org/lkml/2008/4/26/305
-#	http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/87f98338f0d636bb/aa96e8b86cee0d1e?lnk=st&q=#aa96e8b86cee0d1e
-linux2.6.26|linux console w/o bce,
-	bce@, use=linux,
-
-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-linux-nic|linux with ich/ich1 suppressed for non-curses programs,
-	ich@, ich1@, use=linux,
-
-# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts.
-# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997.
-linux-koi8|linux with koi8 alternate character set,
-	acsc=+\020\,\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224,
-	use=linux, use=klone+koi8acs,
-
-# Another entry for KOI8-r with Qing Long's acsc.
-# (which one better complies with the standard?)
-linux-koi8r|linux with koi8-r alternate character set,
-	use=linux, use=klone+koi8acs,
-
-# Entry for the latin1 and latin2 fonts
-linux-lat|linux with latin1 or latin2 alternate character set,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376,
-	use=linux,
-
-# This uses graphics from VT codeset instead of from cp437.
-# reason: cp437 (aka "straight to font") is not functional under luit.
-# from: Andrey V Lukyanov <land@long.yar.ru>.
-linux-vt|linux console using VT codes for graphics,
-	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
-	rmacs=\E(K, rmpch@, sgr@, sgr0=\E[0m\E(K\017, smacs=\E(0,
-	smpch@, use=linux,
-
-# This is based on the Linux console (relies on the console to perform some
-# of the functionality), but does not recognize as many control sequences.
-# The program comes bundled with an old (circa 1998) copy of the Linux
-# console terminfo.  It recognizes some non-ANSI/VT100 sequences such as
-#	\E*	move cursor to home, as as \E[H
-#	\E,X	same as \E(X
-#	\EE	move cursor to beginning of row
-#	\E[y,xf	same as \E[y,xH
-#
-# Note: The status-line support is buggy (dsl does not work).
-kon|kon2|jfbterm|Kanji ON Linux console,
-	ccc@, hs,
-	civis@, cnorm@, cvvis@, dsl=\E[?H, flash@, fsl=\E[?F, initc@,
-	initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T,
-	use=linux,
-
-#### Mach
-#
-
-# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
-mach|Mach Console,
-	am, km,
-	cols#80, it#8, lines#25,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ,
-	kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
-	kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U,
-	kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m, sgr0=\E[0m,
-	smso=\E[7m, smul=\E[4m,
-mach-bold|Mach Console with bold instead of underline,
-	rmul=\E[0m, smul=\E[1m, use=mach,
-mach-color|Mach Console with ANSI color,
-	colors#8, pairs#64,
-	dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
-
-# From: Marcus Brinkmann
-# http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/
-#
-# Comments in the original are summarized here:
-#
-# hurd uses 8-bit characters (km).
-#
-# Although it doesn't do XON/XOFF, we don't want padding characters (xon).
-#
-# Regarding compatibility to vt100:  hurd doesn't specify <xenl>, as we don't
-# have the eat_newline_glitch.  It doesn't support setting or removing tab
-# stops (hts/tbc).
-#
-# hurd uses ^H instead of \E[D for cub1, as only ^H implements <bw> and it is
-# one byte instead three.
-#
-# <ich1> is not included because hurd has insert mode.
-#
-# hurd doesn't use ^J for scrolling, because this could put things into the
-# scrollback buffer.
-#
-# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
-# This is a GNU extension.
-#
-# The original has commented-out ncv, but is restored here.
-#
-# Reading the source, RIS resets cnorm, but not xmous.
-hurd|The GNU Hurd console server,
-	am, bce, bw, eo, km, mir, msgr, xon,
-	colors#8, it#8, ncv#18, pairs#64,
-	acsc=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[34l, dch=\E[%p1%dP,
-	dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, flash=\Eg,
-	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
-	invis=\E[8m, kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
-	kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
-	kspd=^Z, nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\E[T,
-	rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E[10m, rmir=\E[4l,
-	rmso=\E[27m, rmul=\E[24m, rs1=\EM\E[?1000l, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
-	sgr0=\E[0m, sitm=\E[3m, smacs=\E[11m, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l,
-	gsbom=\E[>1h,
-
-#### OSF Unix
-#
-
-# OSF/1 1.1 Snapshot 2
-pmcons|pmconsole|PMAX console,
-	am,
-	cols#128, lines#57,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I,
-	ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-
-# SCO console and SOS-Syscons console for 386bsd
-# (scoansi: had unknown capabilities
-#	:Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
-#	:GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
-#	:G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
-#	:CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
-#	:WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
-# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
-# on the <smacs>=\E[12m  -- esr)
-#
-# klone+sgr-dumb is an error since the acsc does not match -TD
-#
-# In this description based on SCO's keyboard(HW) manpage list of default
-# function key values:
-#	F13-F24 are shifted F1-F12
-#	F25-F36 are control F1-F12
-#	F37-F48 are shift+control F1-F12
-#
-# hpa/vpa work in the console, but not in scoterm:
-#	hpa=\E[%p1%dG,
-#	vpa=\E[%p1%dd,
-#
-# SCO's terminfo uses
-#	kLFT=\E[d,
-#	kRIT=\E[c,
-# which do not work (console or scoterm).
-#
-# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
-scoansi-old|SCO Extended ANSI standard crt (5.0.5),
-	OTbs, am, bce, eo, xon,
-	colors#8, cols#80, it#8, lines#25, pairs#64,
-	acsc=-\230.\231\,.+/0[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
-	civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP,
-	dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M,
-	ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I,
-	hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
-	ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbeg=\E[E, kbs=^H,
-	kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
-	kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c,
-	kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g,
-	kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l,
-	kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p,
-	kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u,
-	kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P,
-	kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[],
-	kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q,
-	kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
-	kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8,
-	rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m,
-	rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
-	smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
-scoansi-new|SCO Extended ANSI standard crt (5.0.6),
-	km,
-	civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr,
-	cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m,
-	rep=\E[%p1%d;%p2%db, rmm=\E[=11L,
-	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
-	smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm,
-	smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m,
-	smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m,
-	smgtp=\E[=0;%i%p1%dm, smm=\E[=10L,
-	wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr,
-	use=scoansi-old,
-# make this easy to change...
-scoansi|SCO Extended ANSI standard crt,
-	use=scoansi-old,
-
-# This actually describes the generic SVr4 display driver for Intel boxes.
-# The <dim=\E[2m> isn't documented and therefore may not be reliable.
-# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
-att6386|at386|386at|AT&T WGS 6386 console,
-	am, bw, eo, xon,
-	cols#80, it#8, lines#25,
-	acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C,
-	clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD,
-	cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S,
-	indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H,
-	kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
-	kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
-	kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@,
-	knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m,
-	ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
-	sc=\E7,
-	sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
-	sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
-	tbc=\E[2g, vpa=\E[%i%p1%dd, use=klone+color,
-# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
-pc6300plus|AT&T 6300 plus,
-	OTbs, am, xon,
-	cols#80, lines#24,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C,
-	clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
-	dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K,
-	home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J,
-	invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe,
-	kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk,
-	nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
-	smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
-#
-# I have a UNIX PC which I use as a terminal attached to my Linux PC.
-# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
-# is broken. All the special key sequences are broken, making it unusable
-# with Emacs. The problem stems from the following:
-#
-# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
-# keypad!), loadable fonts, and strange highlighting modes ("dithered"
-# half-intensity, "smeared" bold, and real strike-out, for example.) It also
-# uses resizable terminal windows, but the bundled terminal program always
-# uses an 80x24 window (and doesn't support seem to support a 132-column
-# mode.)
-#
-# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
-# library which was a superset of SVr3.5 curses (called tam, for "terminal
-# access method".) tam includes support for real, overlapping windows,
-# onscreen function key labels, and bitmap graphics. But since the primary
-# user interface on the UNIX PC was a GUI program (ua, for "user
-# assistant",) and remote administration was considered important for the
-# machine, tam also supported VT100-compatible terminals attached to the
-# serial port or used across the StarLan network. To simulate the extra keys
-# not present on a VT100, users could press ESC and a two-letter sequence,
-# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
-# however, were not the same as those sent by the actual Undo key. The
-# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
-# (If you're interested in adding some of the tam calls to ncurses, btw, I
-# have the full documentation and several programs which use tam. It also
-# used an extended terminfo format to describe key sequences, special
-# highlighting modes, etc.)
-#
-# KEYS: This means that ncurses would quite painful on the UNIX PC, since
-# there are two sequences for every key-modifier combination (local keyboard
-# sequence and remote "VT100" sequence.) But I doubt many people are trying
-# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
-# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
-# seem to have been built from the manual describing the VT100 sequences.
-# This means it doesn't work for a real live UNIX PC.
-#
-# FONTS: The UNIX PC also has a strange interpretation of "alternate
-# character set". Rather than the VT100 graphics you might expect, it allows
-# up to 8 custom fonts to be loaded at any given time. This means that
-# programs expecting VT100 graphics will usually be disappointed. For this
-# reason I have disabled the smacs/rmacs sequences, but they could easily be
-# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
-# manpage), should you wish to do so:
-#
-# SGR10 - Select font 0 - ESC [ 10 m or SO
-# SGR11 - Select font 1 - ESC [ 11 m or SI
-# SGR12 - Select font 2 - ESC [ 12 m
-# ... (etc.)
-# SGR17 - Select font 7 - ESC [ 17 m
-#
-# Graphics for line drawing are not reliably found at *any* character
-# location because the UNIX PC has dynamically reloadable fonts. I use font
-# 0 for regular text and font 1 for italics, but this is by no means
-# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
-#
-# MISC: The cursor visible/cursor invisible sequences were swapped in the
-# distributed terminfo.
-#
-# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
-# the UNIX PC terminfo entry. The modified version works great with Lynx,
-# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
-# attached by serial cable. In Emacs, even the Undo key works, and many
-# applications can now use the F1-F8 keys.
-#
-# esr's notes:
-#	Terminfo entry for the AT&T Unix PC 7300
-#	from escape(7) in Unix PC 7300 Manual.
-#	Somewhat similar to a vt100-am (but different enough
-#	to redo this from scratch.)
-#
-#	/***************************************************************
-#	*
-#	*           FONT LOADING PROGRAM FOR THE UNIX PC
-#	*
-#	*     This routine loads a font defined in the file ALTFONT
-#	*     into font memory slot #1.  Once the font has been loaded,
-#	*     it can be used as an alternative character set.
-#	*
-#	*     The call to ioctl with the argument WIOCLFONT is the key
-#	*     to this routine.  For more information, see window(7) in
-#	*     the PC 7300 documentation.
-#	***************************************************************/
-#	#include <string.h>		/* needed for strcpy call */
-#	#include <sys/window.h>         /* needed for ioctl call */
-#	#define FNSIZE	60		/* font name size */
-#	#define ALTFONT  "/usr/lib/wfont/special.8.ft"  /* font file */
-#	/*
-#	*     The file /usr/lib/wfont/special.8.ft comes with the
-#	*     standard PC software.  It defines a graphics character set
-#	*     similar to that of the Teletype 5425 terminal.  To view
-#	*     this or other fonts in /usr/lib/wfont, use the command
-#	*     cfont <filename>.  For further information on fonts see
-#	*     cfont(1) in the PC 7300 documentation.
-#	*/
-#
-#	struct altfdata 	/* structure for alt font data */
-#	{
-#	short	altf_slot;		/* memory slot number */
-#	char	altf_name[FNSIZE];	/* font name (file name) */
-#	};
-#	ldfont()
-#	{
-#		int wd;		/* window in which altfont will be */
-#		struct altfdata altf;
-#		altf.altf_slot=1;
-#		strcpy(altf.altf_name,ALTFONT);
-#		for (wd =1; wd < 12; wd++) {
-#		     ioctl(wd, WIOCLFONT,&altf);
-#	        }
-#	}
-#
-# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry,
-# they're confirmed by the man page for the System V display---esr)
-#
-att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300,
-	am, xon,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C,
-	clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD,
-	cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
-	ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL,
-	il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB,
-	kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE,
-	kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM,
-	kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR,
-	kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO,
-	kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z,
-	kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf,
-	ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd,
-	kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
-	kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B,
-	kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv,
-	kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt,
-	kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB,
-	ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM,
-	rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m,
-	smul=\E[4m,
-
-# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
-# from SGI's terminfo database.  SGI's entry shows F9-F12 with the codes
-# for the application keypad mode.  We have added iris-ansi-ap rather than
-# change the original to keypad mode.
-#
-# (iris-ansi: added rmam/smam based on init string -- esr)
-#
-# This entry, and those derived from it, is used in xwsh (also known as
-# winterm).  Some capabilities that do not fit into the terminfo model
-# include the shift- and control-functionkeys:
-#
-# F1-F12 generate different codes when shift or control modifiers are used.
-# For example:
-#	F1      	\E[001q
-#	shift F1	\E[013q
-#	control-F1	\E[025q
-#
-# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
-# \EOP to \EOS.  The shifted and control modifiers still do the same thing.
-#
-# The cursor keys also have different codes:
-#	control-up	\E[162q
-#	control-down	\E[165q
-#	control-left	\E[159q
-#	control-right	\E[168q
-#
-#	shift-up	\E[161q
-#	shift-down	\E[164q
-#	shift-left	\E[158q
-#	shift-right	\E[167q
-#
-#	control-tab	\[072q
-#
-iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100),
-	am,
-	cols#80, it#8, lines#40,
-	bel=^G, bold=\E[1m, clear=\E[H\E[2J,
-	cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD,
-	cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P,
-	kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q,
-	kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
-	kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q,
-	kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q,
-	kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
-	kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
-	knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q,
-	kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\,
-	rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
-	sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m,
-	tbc=\E[3g,
-iris-ansi-ap|IRIS ANSI in application-keypad mode,
-	is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q,
-	kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi,
-
-# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
-# (T.Dickey 98/1/24)
-iris-color|xwsh|IRIX ANSI with color,
-	ncv#33,
-	csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m,
-	ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m,
-	rmul=\E[24m, rs1=\Ec,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sitm=\E[3m, use=vt100+enq, use=klone+color,
-	use=iris-ansi-ap,
-
-# The following is a version of the ibm-pc entry distributed with PC/IX,
-# (Interactive Systems' System 3 for the Big Blue), modified by Richard
-# McIntosh at UCB/CSM.  The :pt: and :uc: have been removed from the original,
-# (the former is untrue, and the latter failed under UCB/man); standout and
-# underline modes have been added.  Note: this entry describes the "native"
-# capabilities of the PC monochrome display, without ANY emulation; most
-# communications packages (but NOT PC/IX connect) do some kind of emulation.
-pcix|PC/IX console,
-	am, bw, eo,
-	cols#80, lines#24,
-	clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
-	home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
-	smul=\E[4m,
-
-# (ibmpcx: this entry used to be known as ibmx.
-# It formerly included the following extension capabilities:
-#	:GC=b:GL=v:GR=t:RT=^J:\
-#	:GH=\E[196g:GV=\E[179g:\
-#	:GU=\E[193g:GD=\E[194g:\
-#	:G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
-#	:CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
-#	:WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
-# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
-# ":kh=\E[Y:".  Added IBM-PC forms characters and highlights, they match
-# what was there before. -- esr)
-ibmpcx|xenix|ibmx|IBM PC xenix console display,
-	OTbs, am, msgr,
-	cols#80, lines#25,
-	clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d,
-	kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e,
-	kpp=\E[Z, use=klone+acs, use=klone+sgr8,
-
-#### QNX
-#
-
-# QNX 4.0 Console
-# Michael's original version of this entry had <am@>, <smcup=\Ei>,
-# <rmcup=\Eh\ER>; this was so terminfo applications could write the lower
-# right corner without triggering a scroll.  The ncurses terminfo library can
-# handle this case with the <ich1> capability, and prefers <am> for better
-# optimization.  Bug: The <op> capability resets attributes.
-# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996
-# (removed: <sgr=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,>)
-qnx|qnx4|qnx console,
-	daisy, km, mir, msgr, xhpa, xt,
-	colors#8, cols#80, it#4, lines#25, ncv#3, pairs#8,
-	acsc=O\333a\261j\331k\277l\332m\300n\305o\337q\304s\334t\303u\264v\301w\302x\263,
-	bel=^G, blink=\E{, bold=\E<, civis=\Ey0, clear=\EH\EJ,
-	cnorm=\Ey1, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ey2,
-	dch1=\Ef, dl1=\EF, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\Ee,
-	il1=\EE, ind=^J, kBEG=\377\356, kCAN=\377\263,
-	kCMD=\377\267, kCPY=\377\363, kCRT=\377\364,
-	kDL=\377\366, kEND=\377\301, kEOL=\377\311,
-	kEXT=\377\367, kFND=\377\370, kHLP=\377\371,
-	kHOM=\377\260, kIC=\377\340, kLFT=\377\264,
-	kMOV=\377\306, kMSG=\377\304, kNXT=\377\272,
-	kOPT=\377\372, kPRT=\377\275, kPRV=\377\262,
-	kRDO=\377\315, kRES=\377\374, kRIT=\377\266,
-	kRPL=\377\373, kSAV=\377\307, kSPD=\377\303,
-	kUND=\377\337, kbeg=\377\300, kcan=\377\243, kcbt=\377\0,
-	kclo=\377\343, kclr=\377\341, kcmd=\377\245,
-	kcpy=\377\265, kcrt=\377\305, kctab=\377\237,
-	kcub1=\377\244, kcud1=\377\251, kcuf1=\377\246,
-	kcuu1=\377\241, kdch1=\377\254, kdl1=\377\274,
-	ked=\377\314, kel=\377\310, kend=\377\250, kent=\377\320,
-	kext=\377\270, kf1=\377\201, kf10=\377\212,
-	kf11=\377\256, kf12=\377\257, kf13=\377\213,
-	kf14=\377\214, kf15=\377\215, kf16=\377\216,
-	kf17=\377\217, kf18=\377\220, kf19=\377\221,
-	kf2=\377\202, kf20=\377\222, kf21=\377\223,
-	kf22=\377\224, kf23=\377\333, kf24=\377\334,
-	kf25=\377\225, kf26=\377\226, kf27=\377\227,
-	kf28=\377\230, kf29=\377\231, kf3=\377\203,
-	kf30=\377\232, kf31=\377\233, kf32=\377\234,
-	kf33=\377\235, kf34=\377\236, kf35=\377\276,
-	kf36=\377\277, kf37=\377\321, kf38=\377\322,
-	kf39=\377\323, kf4=\377\204, kf40=\377\324,
-	kf41=\377\325, kf42=\377\326, kf43=\377\327,
-	kf44=\377\330, kf45=\377\331, kf46=\377\332,
-	kf47=\377\316, kf48=\377\317, kf5=\377\205, kf6=\377\206,
-	kf7=\377\207, kf8=\377\210, kf9=\377\211, kfnd=\377\346,
-	khlp=\377\350, khome=\377\240, khts=\377\342,
-	kich1=\377\253, kil1=\377\273, kind=\377\261,
-	kmov=\377\351, kmrk=\377\355, kmsg=\377\345,
-	knp=\377\252, knxt=\377\312, kopn=\377\357,
-	kopt=\377\353, kpp=\377\242, kprt=\377\255,
-	kprv=\377\302, krdo=\377\336, kref=\377\354,
-	kres=\377\360, krfr=\377\347, kri=\377\271,
-	krmir=\377\313, krpl=\377\362, krst=\377\352,
-	ksav=\377\361, kslt=\377\247, kspd=\377\335,
-	ktbc=\377\344, kund=\377\365, mvpa=\E!%p1%02d, op=\ER,
-	rep=\Eg%p2%{32}%+%c%p1%c, rev=\E(, ri=\EI, rmcup=\Eh\ER,
-	rmso=\E), rmul=\E], rs1=\ER, setb=\E@%p1%Pb%gb%gf%d%d,
-	setf=\E@%p1%Pf%gb%gf%d%d, sgr0=\E}\E]\E>\E), smcup=\Ei,
-	smso=\E(, smul=\E[,
-#
-#
-qnxt|qnxt4|QNX4 terminal,
-	crxm, use=qnx4,
-#
-qnxm|QNX4 with mouse events,
-	maddr#1,
-	chr=\E/, cvr=\E", is1=\E/0t, mcub=\E/>1h, mcub1=\E/>7h,
-	mcud=\E/>1h, mcud1=\E/>1l\E/>9h, mcuf=\E/>1h\E/>9l,
-	mcuf1=\E/>7l, mcuu=\E/>6h, mcuu1=\E/>6l, rmicm=\E/>2l,
-	smicm=\E/>2h, use=qnx4,
-#
-qnxw|QNX4 windows,
-	xvpa, use=qnxm,
-#
-#	Monochrome QNX4 terminal or console. Setting this terminal type will
-#	allow an application running on a color console to behave as if it
-#	were a monochrome terminal. Output will be through stdout instead of
-#	console writes because the term routines will recognize that the
-#	terminal name starts with 'qnxt'.
-#
-qnxtmono|Monochrome QNX4 terminal or console,
-	colors@, pairs@,
-	scp@, use=qnx4,
-
-# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998
-# (esr: commented out <scp> and <rmcup> to avoid warnings.)
-# (TD: derive from original qnx4 entry)
-qnxt2|qnx 2.15 serial terminal,
-	am,
-	civis@, cnorm@, cvvis@, dch1@, ich1@, kRES@, kRPL@, kUND@, kspd@,
-	rep@, rmcup@, rmso=\E>, setb@, setf@, smcup@, smso=\E<, use=qnx4,
-
-# QNX ANSI terminal definition
-qansi-g|QNX ANSI,
-	am, eslok, hs, xon,
-	colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~Oa,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J,
-	el=\E[K, el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l,
-	fsl=\E[?6h\E8, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
-	ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
-	ind=\E[S, indn=\E[%p1%dS, invis=\E[9m,
-	is2=\E>\E[?1l\E[?7h\E[0;10;39;49m, is3=\E(B\E)0,
-	kBEG=\ENn, kCAN=\E[s, kCMD=\E[t, kCPY=\ENs, kCRT=\ENt,
-	kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kHOM=\E[h,
-	kLFT=\E[d, kNXT=\E[u, kOPT=\ENz, kPRV=\E[v, kRIT=\E[c,
-	kbs=^H, kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa,
-	kcmd=\E[G, kcpy=\E[g, kctab=\E[z, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[p, kend=\E[Y,
-	kext=\E[y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA,
-	kf13=\EOp, kf14=\EOq, kf15=\EOr, kf16=\EOs, kf17=\EOt,
-	kf18=\EOu, kf19=\EOv, kf2=\EOQ, kf20=\EOw, kf21=\EOx,
-	kf22=\EOy, kf23=\EOz, kf24=\EOa, kf25=\E[1~, kf26=\E[2~,
-	kf27=\E[3~, kf28=\E[4~, kf29=\E[5~, kf3=\EOR, kf30=\E[6~,
-	kf31=\E[7~, kf32=\E[8~, kf33=\E[9~, kf34=\E[10~,
-	kf35=\E[11~, kf36=\E[12~, kf37=\E[17~, kf38=\E[18~,
-	kf39=\E[19~, kf4=\EOS, kf40=\E[20~, kf41=\E[21~,
-	kf42=\E[22~, kf43=\E[23~, kf44=\E[24~, kf45=\E[25~,
-	kf46=\E[26~, kf47=\E[27~, kf48=\E[28~, kf5=\EOT, kf6=\EOU,
-	kf7=\EOV, kf8=\EOW, kf9=\EOX, kfnd=\ENf, khlp=\ENh,
-	khome=\E[H, khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a,
-	kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo,
-	kopt=\ENk, kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg,
-	kri=\E[b, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T,
-	ktbc=\ENd, kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m,
-	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\E[T,
-	rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmso=\E[27m,
-	rmul=\E[24m, rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[2g,
-	tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH,
-#
-qansi|QNX ansi with console writes,
-	daisy, xhpa, use=qansi-g,
-#
-qansi-t|QNX ansi without console writes,
-	crxm, use=qansi,
-#
-qansi-m|QNX ansi with mouse,
-	maddr#1,
-	chr=\E[, cvr=\E], is1=\E[0t, mcub=\E[>1h, mcub1=\E[>7h,
-	mcud=\E[>1h, mcud1=\E[>1l\E[>9h, mcuf=\E[>1h\E[>9l,
-	mcuf1=\E[>7l, mcuu=\E[>6h, mcuu1=\E[>6l, rmicm=\E[>2l,
-	smicm=\E[>2h, use=qansi,
-#
-qansi-w|QNX ansi for windows,
-	xvpa, use=qansi-m,
-
-#### NetBSD consoles
-#
-# pcvt termcap database entries (corresponding to release 3.31)
-# Author's last edit-date: [Fri Sep 15 20:29:10 1995]
-#
-# (For the terminfo master file, I translated these into terminfo syntax.
-# Then I dropped all the pseudo-HP entries. we don't want and can't use
-# the :Xs: flag. Then I split :is: into a size-independent <is1> and a
-# size-dependent <is2>.  Finally, I added <rmam>/<smam> -- esr)
-
-# NOTE: <ich1> has been taken out of this entry. for reference, it should
-# be <ich1=\E[@>.  For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below.
-# (esr: added <civis> and <cnorm> to resolve NetBSD Problem Report #4583)
-pcvtXX|pcvt vt200 emulator (DEC VT220),
-	am, km, mir, msgr, xenl,
-	it#8, vt#3,
-	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS,
-	is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=\177,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
-	kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
-	khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, kpp=\E[5~,
-	nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/local/share/tabset/vt100,
-	ri=\EM, rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
-	rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-#	NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
-#	termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
-#	50 lines entries; 80 columns
-pcvt25|dec vt220 emulation with 25 lines,
-	cols#80, lines#25,
-	is2=\E[1;25r\E[25;1H, use=pcvtXX,
-pcvt28|dec vt220 emulation with 28 lines,
-	cols#80, lines#28,
-	is2=\E[1;28r\E[28;1H, use=pcvtXX,
-pcvt35|dec vt220 emulation with 35 lines,
-	cols#80, lines#35,
-	is2=\E[1;35r\E[35;1H, use=pcvtXX,
-pcvt40|dec vt220 emulation with 40 lines,
-	cols#80, lines#40,
-	is2=\E[1;40r\E[40;1H, use=pcvtXX,
-pcvt43|dec vt220 emulation with 43 lines,
-	cols#80, lines#43,
-	is2=\E[1;43r\E[43;1H, use=pcvtXX,
-pcvt50|dec vt220 emulation with 50 lines,
-	cols#80, lines#50,
-	is2=\E[1;50r\E[50;1H, use=pcvtXX,
-
-#	NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
-#	termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
-#	50 lines entries; 132 columns
-pcvt25w|dec vt220 emulation with 25 lines and 132 cols,
-	cols#132, lines#25,
-	is2=\E[1;25r\E[25;1H, use=pcvtXX,
-pcvt28w|dec vt220 emulation with 28 lines and 132 cols,
-	cols#132, lines#28,
-	is2=\E[1;28r\E[28;1H, use=pcvtXX,
-pcvt35w|dec vt220 emulation with 35 lines and 132 cols,
-	cols#132, lines#35,
-	is2=\E[1;35r\E[35;1H, use=pcvtXX,
-pcvt40w|dec vt220 emulation with 40 lines and 132 cols,
-	cols#132, lines#40,
-	is2=\E[1;40r\E[40;1H, use=pcvtXX,
-pcvt43w|dec vt220 emulation with 43 lines and 132 cols,
-	cols#132, lines#43,
-	is2=\E[1;43r\E[43;1H, use=pcvtXX,
-pcvt50w|dec vt220 emulation with 50 lines and 132 cols,
-	cols#132, lines#50,
-	is2=\E[1;50r\E[50;1H, use=pcvtXX,
-
-#	OpenBSD implements a color variation
-pcvt25-color|dec vt220 emulation with 25 lines and color,
-	cols#80, lines#25,
-	is2=\E[1;25r\E[25;1H, kf1=\EOP, kf10=\E[29~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
-	kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, use=pcvtXX,
-	use=ecma+color,
-
-# Terminfo entries to enable the use of the ncurses library in colour on a
-# NetBSD-arm32 console (only tested on a RiscPC).
-# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
-# modified codes for setf/setb to setaf/setab, then to klone+color, corrected
-# typo in invis - TD
-arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480),
-	am, bce, msgr, xenl, xon,
-	cols#80, it#8, lines#30,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C$<2>,
-	cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
-	cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
-	enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J,
-	invis=\E[8m$<2>, ka1=\E[q, ka3=\E[s, kb2=\E[r, kbs=^H,
-	kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x,
-	kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v,
-	kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>,
-	rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
-	rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>,
-	sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
-	smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr,
-	use=klone+color,
-
-arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768),
-	cols#132, lines#50, use=arm100,
-
-# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine
-# manufactured by Sharp for the Japenese market.
-# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996
-x68k|x68k-ite|NetBSD/x68k ITE,
-	cols#96, lines#32,
-	kclr=\E[9~, khlp=\E[28~, use=vt220,
-
-# <tv@pobox.com>:
-# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
-#
-# (still unfinished, but good enough so far.)
-ofcons|DNARD OpenFirmware console,
-	bw,
-	cols#80, lines#30,
-	bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M,
-	cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
-	cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
-	cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
-	dim=\2332m, dl=\233%p1%dM, dl1=\233M, ed=\233J, el=\233K,
-	flash=^G, ht=^I, ich=\233%p1%d@, ich1=\233@, il=\233%p1%dL,
-	il1=\233L, ind=^J, invis=\2338m, kbs=^H, kcub1=\233D,
-	kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\233P,
-	kf1=\2330P, kf10=\2330M, kf2=\2330Q, kf3=\2330W,
-	kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r,
-	kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m,
-	rmso=\2330m, rmul=\2330m,
-	sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-	sgr0=\2330m,
-
-# NetBSD "wscons" emulator in vt220 mode.
-# This entry is based on the NetBSD termcap entry, correcting the ncv value.
-# The emulator renders underlined text in red.  Colors are otherwise usable.
-#
-# Testing the emulator and reading the source code (NetBSD 2.0), it appears
-# that "vt220" is inaccurate.  There are a few vt220-features, but most of the
-# vt220 screens in vttest do not work with this emulator.  For instance, it
-# identifies itself (primary DA response) as a vt220 with selective erase.  But
-# the selective erase feature does not work.  The secondary response is copied
-# from Kermit's emulation of vt220, does not correspond to actual vt220.  At
-# the level of detail in a termcap, it is a passable emulator, since ECH does
-# work.  Don't use it on a VMS system -TD
-wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
-	bce, msgr,
-	colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
-	is2=\E[r\E[25;1H, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
-	kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
-	kf9=\E[20~, khome=\E[7~, op=\E[m, setab=\E[4%p1%dm,
-	setaf=\E[3%p1%dm, use=vt220,
-
-wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
-	km, use=wsvt25,
-
-# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
-# DECstation/pmax.
-rcons|BSD rasterconsole,
-	use=sun-il,
-# Color version of above. Color currently only provided by NetBSD.
-rcons-color|BSD rasterconsole with ANSI color,
-	bce,
-	colors#8, pairs#64,
-	op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=rcons,
-
-# mgterm -- MGL/MGL2, MobileGear Graphic Library
-# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k}
-# -- the setf/setb are probably incorrect, more likely setaf/setab -TD
-# -- compare with cons25w
-mgterm,
-	OTbs, OTpt, am, bce, bw, eo, km, msgr, npc,
-	colors#8, cols#80, it#8, lines#18, pairs#64,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
-	cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
-	home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
-	indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
-	kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf2=\E[N,
-	kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
-	kf9=\E[U, khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I,
-	nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
-	rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, setb=\E[4%p1%dm,
-	setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
-
-#### FreeBSD console entries
-#
-# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
-# Andrey Chernov maintains the FreeBSD termcap distributions.
-#
-# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade
-# or comment out the :cb: capability in the console entry.
-#
-# Alexander Lukyanov reports:
-# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
-# Now el1 clears not only to the line beginning, but also a large chunk
-# of previous line. But there is another bug - ech does not work at all.
-#
-
-# for syscons
-# common entry without semigraphics
-# Bug: The <op> capability resets attributes.
-# Bug? The ech and el1 attributes appear to move the cursor in some cases; for
-# instance el1 does if the cursor is moved to the right margin first.  Removed
-# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K)
-#
-# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
-# Note that this disables standout with color.
-#
-# The emulator sends difference strings based on shift- and control-keys,
-# like scoansi:
-#	F13-F24 are shifted F1-F12
-#	F25-F36 are control F1-F12
-#	F37-F48 are shift+control F1-F12
-cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
-	am, bce, bw, eo, msgr, npc,
-	colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
-	cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
-	cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m,
-	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
-	indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
-	kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y,
-	kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d,
-	kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h,
-	kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m,
-	kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q,
-	kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v,
-	kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, kf40=\E[z,
-	kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], kf45=\E[\^,
-	kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, kf6=\E[R,
-	kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L,
-	knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m,
-	ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
-	sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
-cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
-	acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
-	use=cons25w,
-cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
-	colors@, pairs@,
-	bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
-	sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
-	smul=\E[4m, use=cons25,
-cons30|ansi80x30|freebsd console (30-line ansi mode),
-	lines#30, use=cons25,
-cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
-	lines#30, use=cons25-m,
-cons43|ansi80x43|freebsd console (43-line ansi mode),
-	lines#43, use=cons25,
-cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode),
-	lines#43, use=cons25-m,
-cons50|ansil|ansi80x50|freebsd console (50-line ansi mode),
-	lines#50, use=cons25,
-cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode),
-	lines#50, use=cons25-m,
-cons60|ansi80x60|freebsd console (60-line ansi mode),
-	lines#60, use=cons25,
-cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode),
-	lines#60, use=cons25-m,
-cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic,
-	acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225,
-	use=cons25w,
-cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono),
-	colors@, pairs@,
-	op@, rmul=\E[m, setab@, setaf@,
-	sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
-	smul=\E[4m, use=cons25r,
-cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines),
-	lines#50, use=cons25r,
-cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono),
-	lines#50, use=cons25r-m,
-cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines),
-	lines#60, use=cons25r,
-cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono),
-	lines#60, use=cons25r-m,
-# ISO 8859-1 FreeBSD console
-cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars,
-	acsc=+\253\,\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237,
-	use=cons25w,
-cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono),
-	colors@, pairs@,
-	bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
-	sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
-	smul=\E[4m, use=cons25l1,
-cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines),
-	lines#50, use=cons25l1,
-cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono),
-	lines#50, use=cons25l1-m,
-cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines),
-	lines#60, use=cons25l1,
-cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
-	lines#60, use=cons25l1-m,
-
-#### 386BSD and BSD/OS Consoles
-#
-
-# This was the original 386BSD console entry (I think).
-# Some places it's named oldpc3|oldibmpc3.
-# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
-origpc3|origibmpc3|IBM PC 386BSD Console,
-	OTbs, am, bw, eo, xon,
-	cols#80, lines#25,
-	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
-	bold=\E[7m, clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
-	home=\E[H, ind=\E[S, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, khome=\E[Y, ri=\E[T, rmso=\E[1;0x\E[2;7x,
-	rmul=\E[1;0x\E[2;7x, sgr0=\E[m\E[1;0x\E[2;7x,
-	smso=\E[1;7x\E[2;0x, smul=\E[1;7x\E[2;0x,
-
-# description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
-oldpc3|oldibmpc3|old IBM PC BSD/386 Console,
-	OTbs, km,
-	lines#25,
-	bel=^G, bold=\E[=15F, cr=^M, cud1=^J, dim=\E[=8F, dl1=\E[M,
-	ht=^I, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, kll=\E[F,
-	knp=\E[G, kpp=\E[I, nel=^M^J, sgr0=\E[=R,
-
-# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
-# Note, the emulator supports many of the additional console features
-# listed in the iBCS2 (e.g. character-set selection) though not all
-# are described here.  This entry really ought to be upgraded.
-# Also note, the console will also work with fewer lines after doing
-# "stty rows NN", e.g. to use 24 lines.
-# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
-# Bug: The <op> capability resets attributes.
-bsdos-pc|IBM PC BSD/OS Console,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
-	use=bsdos-pc-nobold,
-
-bsdos-pc-nobold|BSD/OS PC console w/o bold,
-	use=klone+color, use=bsdos-pc-m,
-
-bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono,
-	OTbs, am, eo, km, xon,
-	cols#80, it#8, lines#25,
-	bel=^G, clear=\Ec, cr=^M, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
-	kll=\E[F, knp=\E[G, kpp=\E[I, nel=^M^J, rc=\E8, sc=\E7,
-	sgr=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;,
-	use=klone+sgr8,
-
-# Old names for BSD/OS PC console used in releases before 4.1.
-pc3|BSD/OS on the PC Console,
-	use=bsdos-pc-nobold,
-ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline,
-	use=bsdos-pc,
-
-# BSD/OS on the SPARC
-bsdos-sparc|Sun SPARC BSD/OS Console,
-	use=sun,
-
-# BSD/OS on the PowerPC
-bsdos-ppc|PowerPC BSD/OS Console,
-	use=bsdos-pc,
-
-#### DEC VT52
-# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr)
-#
-# Actually (TD pointed this out at the time the acsc string was added):
-# vt52 shouldn't define full acsc since most of the cells don't match.
-# see vt100 manual page A-31.  This is the list that does match:
-#	f degree
-#	g plus/minus
-#	h right-arrow
-#	k down-arrow
-#	m scan-1
-#	o scan-3
-#	q scan-5
-#	s scan-7
-# The line-drawing happens to work in several terminal emulators, but should
-# not be used as a guide to the capabilities of the vt52.  Note in particular
-# that vt52 does not support line-drawing characters (the scan-X values refer
-# to a crude plotting feature) -TD
-vt52|dec vt52,
-	OTbs,
-	cols#80, it#8, lines#24,
-	acsc=ffgghhompoqqss.k, bel=^G, clear=\EH\EJ, cr=^M,
-	cub1=\ED, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
-	el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-
-#### DEC VT100 and compatibles
-#
-# DEC terminals from the vt100 forward are collected here. Older DEC terminals
-# and micro consoles can be found in the `obsolete' section.  More details on
-# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be
-# found near the end of this file.
-#
-# Except where noted, these entries are DEC's official terminfos.
-# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
-# Engineering for more information.  Updated terminfos and termcaps
-# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
-#
-# In October 1995 DEC sold its terminals business, including the VT and Dorio
-# line and trademark, to SunRiver Data Systems.  SunRiver has since changed
-# its name to Boundless Technologies; see http://www.boundless.com.
-#
-
-# NOTE:  Any VT100 emulation, whether in hardware or software, almost
-# certainly includes what DEC called the `Level 1 editing extension' codes;
-# only the very oldest VT100s lacked these and there probably aren't any of
-# those left alive.  To capture these, use one of the VT102 entries.
-#
-# Note that the <xenl> glitch in vt100 is not quite the same as on the Concept,
-# since the cursor is left in a different position while in the
-# weird state (concept at beginning of next line, vt100 at end
-# of this line) so all versions of vi before 3.7 don't handle
-# <xenl> right on vt100. The correct way to handle <xenl> is when
-# you output the char in column 80, immediately output CR LF
-# and then assume you are in column 1 of the next line. If <xenl>
-# is on, am should be on too.
-#
-# I assume you have smooth scroll off or are at a slow enough baud
-# rate that it doesn't matter (1200? or less). Also this assumes
-# that you set auto-nl to "on", if you set it off use vt100-nam
-# below.
-#
-# The padding requirements listed here are guesses. It is strongly
-# recommended that xon/xoff be enabled, as this is assumed here.
-#
-# The vt100 uses <rs2> and <rf> rather than <is2>/<tbc>/<hts> because the
-# tab settings are in non-volatile memory and don't need to be
-# reset upon login. Also setting the number of columns glitches
-# the screen annoyingly. You can type "reset" to get them set.
-#
-# The VT100 series terminals have cursor ("arrows") keys which can operate
-# in two different modes: Cursor Mode and Application Mode.  Cursor Mode
-# is the reset state, and is assumed to be the normal state.  Application
-# Mode is the "set" state.  In Cursor Mode, the cursor keys transmit
-# "Esc [ {code}" sequences, conforming to ANSI standards.  In Application
-# Mode, the cursor keys transmit "Esc O <code>" sequences.  Application Mode
-# was provided primarily as an aid to the porting of VT52 applications.  It is
-# assumed that the cursor keys are normally in Cursor Mode, and expected that
-# applications such as vi will always transmit the <smkx> string.  Therefore,
-# the definitions for the cursor keys are made to match what the terminal
-# transmits after the <smkx> string is transmitted.  If the <smkx> string
-# is a null string or is not defined, then cursor keys are assumed to be in
-# "Cursor Mode", and the cursor keys definitions should match that assumption,
-# else the application may fail.  It is also expected that applications will
-# always transmit the <rmkx> string to the terminal before they exit.
-#
-# The VT100 series terminals have an auxiliary keypad, commonly referred to as
-# the "Numeric Keypad", because it is a cluster of numeric and function keys.
-# The Numeric Keypad which can operate in two different modes: Numeric Mode and
-# Application Mode.  Numeric Mode is the reset state, and is assumed to be
-# the normal state.  Application Mode is the "set" state.  In Numeric Mode,
-# the numeric and punctuation keys transmit ASCII 7-bit characters, and the
-# Enter key transmits the same as the Return key (Note: the Return key
-# can be configured to send either LF (\015) or CR LF).  In Application Mode,
-# all the keypad keys transmit "Esc O {code}" sequences.  The PF1 - PF4 keys
-# always send the same "Esc O {code}" sequences.  It is assumed that the keypad
-# is normally in Numeric Mode.  If an application requires that the keypad be
-# in Application Mode then it is expected that the user, or the application,
-# will set the TERM environment variable to point to a terminfo entry which has
-# defined the <smkx> string to include the codes that switch the keypad into
-# Application Mode, and the terminfo entry will also define function key
-# fields to match the Application Mode control codes.  If the <smkx> string
-# is a null string or is not defined, then the keypad is assumed to be in
-# Numeric Mode.  If the <smkx> string switches the keypad into Application
-# Mode, it is expected that the <rmkx> string will contain the control codes
-# necessary to reset the keypad to "Normal" mode, and it is also expected that
-# applications which transmit the <smkx> string will also always transmit the
-# <rmkx> string to the terminal before they exit.
-#
-# Here's a diagram of the VT100 keypad keys with their bindings.
-# The top line is the name of the key (some DEC keyboards have the keys
-# labelled somewhat differently, like GOLD instead of PF1, but this is
-# the most "official" name).  The second line is the escape sequence it
-# generates in Application Keypad mode (where "$" means the ESC
-# character).  The third line contains two items, first the mapping of
-# the key in terminfo, and then in termcap.
-#   _______________________________________
-#  |   PF1   |   PF2   |   PF3   |   PF4   |
-#  |   $OP   |   $OQ   |   $OR   |   $OS   |
-#  |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
-#  |    7         8         9         -    |
-#  |   $Ow   |   $Ox   |   $Oy   |   $Om   |
-#  |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________|
-#  |    4    |    5    |    6    |    ,    |
-#  |   $Ot   |   $Ou   |   $Ov   |   $Ol   |
-#  |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_|
-#  |    1    |    2    |    3    |         |
-#  |   $Oq   |   $Or   |   $Os   |  enter  |
-#  |_ka1__K1_|_kb2__K2_|_ka3__K3_|  $OM    |
-#  |         0         |   .     |         |
-#  |        $Op        |  $On    |         |
-#  |___kc1_______K4____|_kc3__K5_|_kent_@8_|
-#
-# Note however, that the arrangement of the 5-key ka1-kc3 do not follow the
-# terminfo guidelines.  That is a compromise used to assign the remaining
-# keys on the keypad to kf5-kf0, used on older systems with legacy termcap
-# support:
-vt100+keypad|dec vt100 numeric keypad no fkeys,
-	ka1=\EOq, ka3=\EOs, kb2=\EOr, kc1=\EOp, kc3=\EOn,
-vt100+pfkeys|dec vt100 numeric keypad,
-	kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-	use=vt100+keypad,
-vt100+fnkeys|dec vt100 numeric keypad,
-	kf0=\EOy, kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl,
-	kf9=\EOw, use=vt100+pfkeys,
-#
-# A better adaptation to modern keyboards such as the PC's, which have a dozen
-# function keys and the keypad 2,4,6,8 keys are labeled with arrows keys, is to
-# use the 5-key arrangement to model the arrow keys as suggested in the
-# terminfo guidelines:
-#   _______________________________________
-#  |   PF1   |   PF2   |   PF3   |   PF4   |
-#  |   $OP   |   $OQ   |   $OR   |   $OS   |
-#  |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
-#  |    7         8         9         -    |
-#  |   $Ow   |   $Ox   |   $Oy   |   $Om   |
-#  |_ka1__K1_|_________|_ka3__K3_|_________|
-#  |    4    |    5    |    6    |    ,    |
-#  |   $Ot   |   $Ou   |   $Ov   |   $Ol   |
-#  |_________|_kb2__K2_|_________|_________|
-#  |    1    |    2    |    3    |         |
-#  |   $Oq   |   $Or   |   $Os   |  enter  |
-#  |_kc1__K4_|_________|_kc3__K5_|  $OM    |
-#  |         0         |   .     |         |
-#  |        $Op        |  $On    |         |
-#  |___________________|_________|_kent_@8_|
-#
-vt220+keypad|dec vt220 numeric keypad,
-	ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, kent=\EOM,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ka2=\EOx, kb1=\EOt,
-	kb3=\EOv, kc2=\EOr,
-#
-vt100+enq|ncurses extension for vt100-style ENQ,
-	u8=\E[?1;2c, use=ansi+enq,
-vt102+enq|ncurses extension for vt102-style ENQ,
-	u8=\E[?6c, use=ansi+enq,
-#
-# And here, for those of you with orphaned VT100s lacking documentation, is
-# a description of the soft switches invoked when you do `Set Up'.
-#
-#  Scroll 0-Jump               Shifted 3   0-#
-#  |      1-Smooth             |           1-British pound sign
-#  | Autorepeat 0-Off          | Wrap Around 0-Off
-#  | |          1-On           | |           1-On
-#  | | Screen 0-Dark Bkg       | | New Line 0-Off
-#  | | |      1-Light Bkg      | | |        1-On
-#  | | | Cursor 0-Underline    | | | Interlace 0-Off
-#  | | | |      1-Block        | | | |         1-On
-#  | | | |                     | | | |
-#  1 1 0 1       1 1 1 1       0 1 0 0       0 0 1 0       <--Standard Settings
-#                | | | |                     | | | |
-#                | | | Auto XON/XOFF 0-Off   | | | Power 0-60 Hz
-#                | | |               1-On    | | |       1-50 Hz
-#                | | Ansi/VT52 0-VT52        | | Bits Per Char. 0-7 Bits
-#                | |           1-ANSI        | |                1-8 Bits
-#                | Keyclick 0-Off            | Parity 0-Off
-#                |          1-On             |        1-On
-#                Margin Bell 0-Off           Parity Sense 0-Odd
-#                            1-On                         1-Even
-#
-# The following SET-UP modes are assumed for normal operation:
-#	ANSI_MODE	AUTO_XON/XOFF_ON	NEWLINE_OFF	80_COLUMNS
-#	WRAP_AROUND_ON  JUMP_SCROLL_OFF
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements; I recommend
-#	AUTOREPEAT_ON	BLOCK_CURSOR	MARGIN_BELL_OFF    SHIFTED_3_#
-# Unless you have a graphics add-on such as Digital Engineering's VT640
-# (and even then, whenever it can be arranged!) you should set
-#	INTERLACE_OFF
-#
-# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
-vt100|vt100-am|dec vt100 (w/advanced video),
-	OTbs, am, mc5i, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C$<2>,
-	cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
-	cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
-	enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1,
-	lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-	rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
-	rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
-	sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
-	smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-	use=vt100+fnkeys,
-vt100nam|vt100-nam|vt100 no automargins,
-	am@, xenl@, use=vt100-am,
-vt100-vb|dec vt100 (w/advanced video) & no beep,
-	bel@, flash=\E[?5h\E[?5l, use=vt100,
-
-# Ordinary vt100 in 132 column ("wide") mode.
-vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video),
-	cols#132, lines#24,
-	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-am,
-vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin),
-	cols#132, lines#14, vt@,
-	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-nam,
-
-# vt100 with no advanced video.
-vt100-nav|vt100 without advanced video option,
-	xmc#1,
-	blink@, bold@, rev@, rmso=\E[m, rmul@, sgr@, sgr0@, smso=\E[7m,
-	smul@, use=vt100,
-vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option),
-	cols#132, lines#14, use=vt100-nav,
-
-# vt100 with one of the 24 lines used as a status line.
-# We put the status line on the top.
-vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline,
-	eslok, hs,
-	lines#23,
-	clear=\E[2;1H\E[J$<50>, csr=\E[%i%i%p1%d;%p2%dr,
-	cup=\E[%i%p1%{1}%+%d;%p2%dH$<5>, dsl=\E7\E[1;24r\E8,
-	fsl=\E8, home=\E[2;1H, is2=\E7\E[2;24r\E8,
-	tsl=\E7\E[1;%p1%dH\E[1K, use=vt100-am,
-
-# Status line at bottom.
-# Clearing the screen will clobber status line.
-vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline,
-	eslok, hs,
-	lines#23,
-	dsl=\E7\E[1;24r\E8, fsl=\E8, is2=\E[1;23r\E[23;1H,
-	tsl=\E7\E[24;%p1%dH\E[1K, use=vt100-am,
-
-# Most of the `vt100' emulators out there actually emulate a vt102
-# This entry (or vt102-nsgr) is probably the right thing to use for
-# these.
-vt102|dec vt102,
-	dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h,
-	use=vt100,
-vt102-w|dec vt102 in wide mode,
-	cols#132,
-	rs3=\E[?3h, use=vt102,
-
-# Many brain-dead PC comm programs that pretend to be `vt100-compatible'
-# fail to interpret the ^O and ^N escapes properly.  Symptom: the <sgr0>
-# string in the canonical vt100 entry above leaves the screen littered
-# with little  snowflake or star characters (IBM PC ROM character \017 = ^O)
-# after highlight turnoffs.  This entry should fix that, and even leave
-# ACS support working, at the cost of making multiple-highlight changes
-# slightly more expensive.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
-vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes),
-	sgr@, sgr0=\E[m, use=vt102,
-
-# VT125 Graphics CRT.  Clear screen also erases graphics
-# Some vt125's came configured with vt102 support.
-vt125|vt125 graphics terminal,
-	mir,
-	clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100,
-
-# This isn't a DEC entry, it came from University of Wisconsin.
-# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr)
-vt131|dec vt131,
-	OTbs, am, xenl,
-	cols#80, it#8, lines#24, vt#3,
-	bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
-	clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
-	cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
-	ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
-	is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
-	kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>,
-	rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>,
-	rmul=\E[m$<2/>,
-	rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=,
-	smso=\E[7m$<2/>, smul=\E[4m$<2/>,
-
-# vt132 - like vt100 but slower and has ins/del line and such.
-# I'm told that <smir>/<rmir> are backwards in the terminal from the
-# manual and from the ANSI standard, this describes the actual
-# terminal. I've never actually used a vt132 myself, so this
-# is untested.
-#
-vt132|DEC vt132,
-	xenl,
-	dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
-	ip=$<7>, rmir=\E[4h, smir=\E[4l, use=vt100,
-
-# This vt220 description maps F5--F9 to the second block of function keys
-# at the top of the keyboard.  The "DO" key is used as F10 to avoid conflict
-# with the key marked (ESC) on the vt220.  See vt220d for an alternate mapping.
-# PF1--PF4 are used as F1--F4.
-#
-vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
-	OTbs, OTpt, am, mir, xenl, xon,
-	cols#80, lines#24, vt#3,
-	OTnl=^J,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
-	clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-	if=/usr/local/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>,
-	is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\EOP,
-	kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
-	kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~,
-	khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rc=\E8,
-	rev=\E[7m$<2>, rf=/usr/local/share/tabset/vt100,
-	ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
-	rmso=\E[27m, rmul=\E[24m,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m,
-
-# A much better description of the VT200/220; used to be vt220-8
-# changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1
-# designation to accommodate bug in pcvt -TD
-vt220|vt200|dec vt220,
-	OTbs, am, mc5i, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
-	flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
-	ich=\E[%p1%d@, if=/usr/local/share/tabset/vt100,
-	il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	is2=\E[?7h\E[>\E[?1h\E F\E[?4l, kbs=^H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-	kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
-	kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
-	kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
-	lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i, mc4=\E[4i,
-	mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
-	rmul=\E[24m, rs1=\E[?3l, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-vt220-w|vt200-w|DEC vt220 in wide mode,
-	cols#132,
-	rs3=\E[?3h, use=vt220,
-vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
-	OTbs, am, mc5i, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=^M,
-	csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
-	cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
-	cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
-	dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
-	ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, enacs=\E)0,
-	flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH,
-	ich=\233%p1%d@, if=/usr/local/share/tabset/vt100,
-	il=\233%p1%dL, il1=\233L, ind=\ED,
-	is2=\233?7h\233>\233?1h\E F\233?4l, kbs=^H,
-	kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
-	kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
-	kf13=\23325~, kf14=\23326~, kf17=\23331~, kf18=\23332~,
-	kf19=\23333~, kf2=\EOQ, kf20=\23334~, kf3=\EOR, kf4=\EOS,
-	kf6=\23317~, kf7=\23318~, kf8=\23319~, kf9=\23320~,
-	kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~,
-	knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1,
-	lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i,
-	nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=\E(B,
-	rmam=\233?7l, rmir=\2334l, rmso=\23327m, rmul=\23324m,
-	rs1=\233?3l, sc=\E7,
-	sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h,
-	smso=\2337m, smul=\2334m, tbc=\2333g,
-
-# vt220d:
-# This vt220 description regards F6--F10 as the second block of function keys
-# at the top of the keyboard.  This mapping follows the description given
-# in the VT220 Programmer Reference Manual and agrees with the labeling
-# on some terminals that emulate the vt220.  There is no support for an F5.
-# See vt220 for an alternate mapping.
-#
-vt220d|DEC VT220 in vt100 mode with DEC function key labeling,
-	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
-	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
-	kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf5@, kf6=\E[17~,
-	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, use=vt220-old,
-
-vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins,
-	am@,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
-
-# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko
-# (not an official DEC entry!)
-# The problem with real vt220 terminals is they don't send escapes when in
-# in vt220 mode.  This can be gotten around two ways.  1> don't send
-# escapes or 2> put the vt220 into vt100 mode and use all the nifty
-# features of vt100 advanced video which it then has.
-#
-# This entry takes the view of putting a vt220 into vt100 mode so
-# you can use the escape key in emacs and everything else which needs it.
-#
-# You probably don't want to use this on a VMS machine since VMS will think
-# it has a vt220 and will get fouled up coming out of emacs
-#
-# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
-# (Added vt100 <rc>,<sc> to quiet a tic warning -- esr)
-vt200-js|vt220-js|dec vt200 series with jump scroll,
-	am,
-	cols#80,
-	bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^J, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	il1=\E[L, ind=\ED,
-	is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8,
-	rf=/usr/local/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m,
-	rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=,
-	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m,
-
-# This was DEC's vt320.  Use the purpose-built one below instead
-#vt320|DEC VT320 in vt100 emulation mode,
-#	use=vt220,
-
-# Use v320n for SCO's LYRIX.  Otherwise, use Adam Thompson's vt320-nam.
-#
-vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
-	am@,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
-
-# These entries are not DEC's official ones, they were purpose-built for the
-# VT320.  Here are the designer's notes:
-# <kel> is end on a PC kbd.  Actually 'select' on a VT.  Mapped to
-# 'Erase to End of Field'... since nothing seems to use 'end' anyways...
-# khome is Home on a PC kbd.  Actually 'FIND' on a VT.
-# Things that use <knxt> usually use tab anyways... and things that don't use
-# tab usually use <knxt> instead...
-# kprv is same as tab - Backtab is useless...
-# I left out <sgr> because of its RIDICULOUS complexity,
-# and the resulting fact that it causes the termcap translation of the entry
-# to SMASH the 1k-barrier...
-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-# (vt320: uncommented <fsl> --esr)
-vt320|vt300|dec vt320 7 bit terminal,
-	am, eslok, hs, mir, msgr, xenl,
-	cols#80, lines#24, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
-	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
-	il1=\E[L, ind=\ED,
-	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
-	kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
-	kf9=\E[20~, khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I,
-	kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, mc0=\E[i, mc4=\E[?4i,
-	mc5=\E[?5i, nel=\EE, rc=\E8, rev=\E[7m,
-	rf=/usr/local/share/tabset/vt300, ri=\EM, rmacs=\E(B,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
-	rmul=\E[m,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
-	sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[1$}\E[H\E[K, use=vt220+keypad,
-vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
-	am@,
-	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
-	use=vt320,
-# We have to init 132-col mode, not 80-col mode.
-vt320-w|vt300-w|dec vt320 wide 7 bit terminal,
-	cols#132, wsl#132,
-	is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
-	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
-	use=vt320,
-vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
-	am@,
-	is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
-	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
-	use=vt320-w,
-
-# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
-#   which are pretty much a superset of the VT320.  They have the
-#   host writable status line, yet another different DRCS matrix size,
-#   and such, but they add the DEC Technical character set, Multiple text
-#   pages, selectable length pages, and the like.  The difference between
-#   the vt330 and vt340 is that the latter has only 2 planes and a monochrome
-#   monitor, the former has 4 planes and a color monitor.  These terminals
-#   support VT131 and ANSI block mode, but as with much of these things,
-#   termcap/terminfo doesn't deal with these features.
-#
-# Note that this entry is are set up in what was the standard way for GNU
-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
-# keys were switched into application mode at the same time the numeric pad
-# is switched into application mode.  This changes the definitions of the
-# arrow keys.  Emacs v19 is smarter and mines its keys directly out of
-# your termcap or terminfo entry,
-#
-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
-# (vt340: string capability "sb=\E[M" corrected to "sr";
-# also, added <rmam>/<smam> based on the init string -- esr)
-vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
-	am, eslok, hs, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
-	cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$},
-	ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
-	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
-	il1=\E[L, ind=\ED,
-	is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
-	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
-	lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
-	rf=/usr/local/share/tabset/vt300, ri=\EM, rmacs=\E(B,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
-	rmul=\E[24m, rs1=\E[?3l, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[2$~\E[1$}\E[1;%dH,
-
-# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
-# (originally written with vt420 as its primary name, and usable for it).
-#
-# VT400/420 -- This terminal is a superset of the vt320.  It adds the multiple
-#    text pages and long text pages with selectable length of the vt340, along
-#    with left and right margins, rectangular area text copy, fill, and erase
-#    operations, selected region character attribute change operations,
-#    page memory and rectangle checksums, insert/delete column, reception
-#    macros, and other features too numerous to remember right now.  TERMCAP
-#    can only take advantage of a few of these added features.
-#
-# Note that this entry is are set up in what was the standard way for GNU
-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
-# keys were switched into application mode at the same time the numeric pad
-# is switched into application mode.  This changes the definitions of the
-# arrow keys.  Emacs v19 is smarter and mines its keys directly out of
-# your termcap entry,
-#
-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
-# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:";
-# also, added <rmam>/<smam> based on the init string -- esr)
-vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
-	am, eslok, hs, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[J$<10/>, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
-	el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
-	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
-	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
-	lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
-	rf=/usr/local/share/tabset/vt300, ri=\EM, rmacs=\E(B,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
-	rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[2$~\E[1$}\E[1;%dH,
-
-# (vt420: I removed <kf0>, it collided with <kf10>.  I also restored
-# a missing <sc> -- esr)
-vt420|DEC VT420,
-	am, mir, xenl, xon,
-	cols#80, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-	if=/usr/local/share/tabset/vt300, il1=\E[L, ind=\ED,
-	is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
-	kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~, rc=\E8, rev=\E[7m$<2>,
-	rf=/usr/local/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
-	rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-	smkx=\E=, smso=\E[7m, smul=\E[4m,
-
-# DEC VT220 and up support DECUDK (user-defined keys).  DECUDK (i.e., pfx)
-# takes two parameters, the key and the string.  Translating the key is
-# straightforward (keys 1-5 are not defined on real terminals, though some
-# emulators define these):
-#
-#               if (key < 16) then  value = key;
-#               else if (key < 21) then value = key + 1;
-#               else if (key < 25) then value = key + 2;
-#               else if (key < 27) then value = key + 3;
-#               else if (key < 30) then value = key + 4;
-#               else value = key + 5;
-#
-# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT".
-# There's no provision in terminfo for emitting a string in this format, so the
-# application has to know it.
-#
-vt420pc|DEC VT420 w/PC keyboard,
-	kdch1=\177, kend=\E[4~, kf1=\E[11~, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13=\E[11;2~, kf14=\E[12;2~,
-	kf15=\E[13;2~, kf16=\E[14;2~, kf17=\E[15;2~,
-	kf18=\E[17;2~, kf19=\E[18;2~, kf2=\E[12~, kf20=\E[19;2~,
-	kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
-	kf24=\E[24;2~, kf25=\E[23~, kf26=\E[24~, kf27=\E[25~,
-	kf28=\E[26~, kf29=\E[28~, kf3=\E[13~, kf30=\E[29~,
-	kf31=\E[31~, kf32=\E[32~, kf33=\E[33~, kf34=\E[34~,
-	kf35=\E[35~, kf36=\E[36~, kf37=\E[23;2~, kf38=\E[24;2~,
-	kf39=\E[25;2~, kf4=\E[14~, kf40=\E[26;2~, kf41=\E[28;2~,
-	kf42=\E[29;2~, kf43=\E[31;2~, kf44=\E[32;2~,
-	kf45=\E[33;2~, kf46=\E[34;2~, kf47=\E[35;2~,
-	kf48=\E[36;2~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, khome=\E[H,
-	pctrm=USR_TERM\:vt420pcdos\:,
-	pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
-	use=vt420,
-
-vt420pcdos|DEC VT420 w/PC for DOS Merge,
-	lines#25,
-	dispc=%?%p1%{19}%=%t\E\023\021%e%p1%{32}%<%t\E%p1%c%e%p1%{127}%=%t\E\177%e%p1%c%;,
-	pctrm@,
-	rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr@,
-	sgr0=\E[m, smsc=\E[?1;2r\E[34h, use=vt420pc,
-
-vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys,
-	kdch1=\177, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[H, lf1=\EOP, lf2=\EOQ, lf3=\EOR, lf4=\EOS,
-	use=vt420,
-
-vt510|DEC VT510,
-	use=vt420,
-vt510pc|DEC VT510 w/PC keyboard,
-	use=vt420pc,
-vt510pcdos|DEC VT510 w/PC for DOS Merge,
-	use=vt420pcdos,
-
-# VT520/VT525
-#
-# The VT520 is a monochrome text terminal capable of managing up to
-# four independent sessions in the terminal.  It has multiple ANSI
-# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console)
-# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950,
-# 925 910+, ADDS A2).  This terminfo data is for the ANSI emulations only.
-#
-# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or
-# [Alt]/[Print Screen] depending upon which keyboard and which
-# terminal mode is being used.  If Set-Up has been disabled or
-# assigned to an unknown key, Set-Up may be entered by pressing
-# [F3] as the first key after power up, regardless of keyboard type.
-# (vt520: I added <rmam>/<smam> based on the init string, also <sc> -- esr)
-vt520|DEC VT520,
-	am, mir, xenl, xon,
-	cols#80, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-	if=/usr/local/share/tabset/vt300, il1=\E[L, ind=\ED,
-	is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
-	kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~,
-	pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
-	rc=\E8, rev=\E[7m$<2>, rf=/usr/local/share/tabset/vt300,
-	ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
-	rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m,
-
-# (vt525: I added <rmam>/<smam> based on the init string;
-# removed <rmso>=\E[m, <rmul>=\E[m, added <sc> -- esr)
-vt525|DEC VT525,
-	am, mir, xenl, xon,
-	cols#80, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-	if=/usr/local/share/tabset/vt300, il1=\E[L, ind=\ED,
-	is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
-	kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~,
-	pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
-	rc=\E8, rev=\E[7m$<2>, rf=/usr/local/share/tabset/vt300,
-	ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
-	rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-	sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m,
-
-#### VT100 emulations
-#
-
-# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows
-# (the best Windows telnet as of September 1995) presents the name `dec-vt100'
-# to telnetd.   Michael Deutschmann <ldeutsch@mail.netshop.net> informs us
-# that this works best with a stock vt100 entry.
-dec-vt100|EWAN telnet's vt100 emulation,
-	use=vt100,
-
-# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996
-dec-vt220|DOS tnvt200 terminal emulator,
-	am@, use=vt220,
-
-# Zstem340 is an (IMHO) excellent VT emulator for PC's.  I recommend it to
-# anyone who needs PC VT340 emulation. (or anything below that level, for
-# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's
-# RDBM systems, it includes ReGIS and SiXel support!  I'm impressed...
-# I can send the address if requested.
-# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-z340|zstem vt340 terminal emulator 132col 42line,
-	lines#42,
-	is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
-	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
-	use=vt320-w,
-z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins),
-	am@,
-	is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
-	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
-	use=z340,
-
-# CRT is shareware.  It implements some xterm features, including mouse.
-crt|crt-vt220|CRT 2.3 emulating VT220,
-	bce, msgr,
-	ncv@,
-	hts=\EH, use=vt100+enq, use=vt220, use=ecma+color,
-
-# PuTTY 0.55 (released 3 August 2004)
-# http://www.chiark.greenend.org.uk/~sgtatham/putty/
-#
-# Comparing with 0.51, vttest is much better (only a few problems with the
-# cursor position reports and wrapping).
-#
-# PuTTY 0.51 (released 14 December 2000)
-#
-# This emulates vt100 + vt52 (plus a few vt220 features:  ech, SRM, DECTCEM, as
-# well as SCO and Atari, color palettes from Linux console).  Reading the code,
-# it is intended to be VT102 plus selected features.  By default, it sets $TERM
-# to xterm, which is incorrect, since several features are misimplemented:
-#
-#	Alt+key always sends ESC+key, so 'km' capability is removed.
-#
-#	Control responses, wrapping and tabs are buggy, failing a couple of
-#	screens in vttest.
-#
-#	xterm mouse support is not implemented (unrelease version may).
-#
-# Several features such as backspace/delete are optional; this entry documents
-# the default behavior -TD
-
-putty|PuTTY terminal emulator,
-	am, bce, bw, ccc, hs, mir, msgr, xenl, xon,
-	colors#8, it#8, ncv#22, pairs#64,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
-	dch=\E[%p1%dP, dch1=\E[P,
-	dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;,
-	dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX,
-	ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
-	flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG,
-	ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	indn=\E[%p1%dS,
-	initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
-	is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
-	kb2=\E[G, kbs=\177, kcan=^C, kcbt=\E[Z, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
-	kend=\E[4~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
-	kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m,
-	ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l,
-	rmcup=\E[2J\E[?47l, rmir=\E[4l, rmpch=\E[10m,
-	rmso=\E[27m, rmul=\E[24m,
-	rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l,
-	s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
-	smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, use=vt102+enq,
-vt100-putty|Reset PuTTY to pure vt100,
-	rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
-	use=vt100,
-# palette is hardcoded...
-putty-256color|PuTTY 0.58 with xterm 256-colors,
-	initc@, use=xterm+256color, use=putty,
-
-# One of the keyboard selections is "VT100+".
-# pterm (the X11 port) uses shifted F1-F10 as F11-F20
-putty-vt100|VT100+ keyboard layout,
-	kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EO[, kf2=\EOQ,
-	kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
-	kf9=\EOX, use=putty,
-
-# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
-# T. Teranishi dated Mar 10, 1998.  It is a free software terminal emulator
-# (communication program) which supports:
-#
-#	- Serial port connections.
-#	- TCP/IP (telnet) connections.
-#	- VT100 emulation, and selected VT200/300 emulation.
-#	- TEK4010 emulation.
-#	- File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and
-#	  Quick-VAN).
-#	- Scripts using the "Tera Term Language".
-#	- Japanese and Russian character sets.
-#
-# The program does not come with terminfo or termcap entries.  However, the
-# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no
-# vt52 or doublesize character support; blinking is done with color).  Besides
-# the HPA, VPA extensions it also implements CPL and CNL.
-#
-# All of the function keys can be remapped.  This description shows the default
-# mapping, as installed.  Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
-# are supported.  F13-F20 are obtained by shifting F3-F10.  The editing keypad
-# is laid out like vt220, rather than the face codes on the PC keyboard, i.e,
-#	kfnd	Insert
-#	kslt	Delete
-#	kich1	Home
-#	kdch1	PageUp
-#	kpp	End
-#	knp	PageDown
-#
-# ANSI colors are implemented, but cannot be combined with video attributes
-# except for reverse.
-#
-# No fonts are supplied with the program, so the acsc string is chosen to
-# correspond with the default Microsoft terminal font.
-#
-# Tera Term recognizes some xterm sequences, including those for setting and
-# retrieving the window title, and for setting the window size (i.e., using
-# "resize -s"), though it does not pass SIGWINCH to the application if the
-# user resizes the window with the mouse.
-teraterm2.3|Tera Term Pro,
-	km, xon@,
-	ncv#43, vt@,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
-	cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
-	flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG,
-	il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~,
-	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
-	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
-	kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
-	kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
-	kpp=\E[5~, kslt=\E[4~, op=\E[100m, rev=\E[7m, ri=\EM,
-	rmso=\E[27m, rmul=\E[24m, sgr0=\E[0m\017, smso=\E[7m,
-	smul=\E[4m, vpa=\E[%i%p1%dd, use=vt100+enq,
-	use=klone+color, use=vt100,
-
-# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary
-# to choose a Windows OEM font).
-#
-# Testing with tack:
-#	- it does not have xenl (suppress that)
-#	- underline seems to work with color (modify ncv).
-# Testing with vttest:
-#	- wrapping differs from vt100 (menu 1).
-#	- it recognizes xterm's X10 and normal mouse tracking, but none of the
-#	  other flavors.
-#	- it recognizes the dtterm window controls for reporting size in
-#	  characters and pixels.
-#	- it passes SIGWINCH.
-teraterm4.59|Tera Term Pro,
-	bce, xenl@,
-	ncv#41,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	kmous=\E[M, use=teraterm2.3,
-
-teraterm|Tera Term,
-	use=teraterm4.59,
-
-# Tested with WinNT 4.0, the telnet application assumes the screensize is
-# 25x80.  This entry uses the 'Terminal' font, to get line-drawing characters.
-#
-# Other notes:
-# a) Fails tack's cup (cursor-addressing) test, though cup works well enough
-#    for casual (occasional) use.  Also fails several of the vttest screens,
-#    but that is not unusual for vt100 "emulators".
-# b) Does not implement vt100 keypad
-# c) Recognizes a subset of vt52 controls.
-ms-vt100|MS telnet imitating dec vt100,
-	lines#25,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	ka1@, ka3@, kb2@, kc1@, kc3@, kent@, kf0@, kf1@, kf10@, kf2@, kf3@, kf4@,
-	kf5@, kf6@, kf7@, kf8@, kf9@, tbc@, use=vt102+enq, use=vt100,
-
-# Tested with Windows 2000, the telnet application runs in a console window,
-# also using 'Terminal' font.
-#
-# Other notes:
-# a) This version has no function keys or numeric keypad.  Unlike the older
-#    version, the numeric keypad is entirely ignored.
-# b) The program sets $TERM to "ansi", which of course is inaccurate.
-ms-vt100-color|vtnt|windows 2000 ansi (sic),
-	bce,
-	dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color,
-	use=ms-vt100,
-
-# Based on comments from Federico Bianchi:
-#
-#	vt100+ is basically a VT102-noSGR with ANSI.SYS colors and a different
-#	scheme for PF keys.
-#
-# and PuTTY wishlist:
-#
-#	The modifiers are represented as the codes listed above, prefixed to
-#	the normal sequences.  If the modifier is pressed alone, its sequence
-#	is transmitted twice in succession.  If multiple modifiers apply,
-#	they're transmitted in the order shift, control, alt.
-#
-#	Shift	\E^S
-#	Alt	\E^A,
-#	Ctrl	\E^C,
-ms-vt100+|vt100+|windows XP vt100+ (sic),
-	kdch1=\E-, kend=\Ek, kf1=\E1, kf10=\E0, kf11=\E!, kf12=\E@,
-	kf13=\E\023\E1, kf14=\E\023\E2, kf15=\E\023\E3,
-	kf16=\E\023\E4, kf17=\E\023\E5, kf18=\E\023\E6,
-	kf19=\E\023\E7, kf2=\E2, kf20=\E\023\E8, kf21=\E\023\E9,
-	kf22=\E\023\E0, kf23=\E\023\E!, kf24=\E\023\E@,
-	kf25=\E\003\E1, kf26=\E\003\E2, kf27=\E\003\E3,
-	kf28=\E\003\E4, kf29=\E\003\E5, kf3=\E3, kf30=\E\003\E6,
-	kf31=\E\003\E7, kf32=\E\003\E8, kf33=\E\003\E9,
-	kf34=\E\003\E0, kf35=\E\003\E!, kf36=\E\003\E@,
-	kf37=\E\001\E1, kf38=\E\001\E2, kf39=\E\001\E3, kf4=\E4,
-	kf40=\E\001\E4, kf41=\E\001\E5, kf42=\E\001\E6,
-	kf43=\E\001\E7, kf44=\E\001\E8, kf45=\E\001\E9,
-	kf46=\E\001\E0, kf47=\E\001\E!, kf48=\E\001\E@, kf5=\E5,
-	kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, khome=\Eh, kich1=\E+,
-	knp=\E/, kpp=\E?, use=ms-vt100-color,
-
-ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+,
-	use=ms-vt100+,
-
-# a minimal subset of a vt100 (compare with "news-unk).
-tt|tkterm|Don Libes' tk text widget terminal emulator,
-	clear=\E[H\E[J, cr=^M, cuf1=\E[C, cup=\E[%p1%d;%p2%dH,
-	cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-	kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, rmso=\E[m,
-	smso=\E[7m,
-
-#### X terminal emulators
-#
-# You can add the following line to your .Xdefaults to change the terminal type
-# set by the xterms you start up to my-xterm:
-#
-# *termName:  my-xterm
-#
-# System administrators can change the default entry for xterm instances
-# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm.  In either
-# case, xterm will detect and reject an invalid terminal type, falling back
-# to the default of xterm.
-#
-
-# X10/6.6	11/7/86, minus alternate screen, plus (csr)
-# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
-# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
-# as these seem not to work -- esr)
-x10term|vs100-x10|xterm terminal emulator (X10 window system),
-	OTbs, am, km, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#65,
-	bold=\E[1m, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
-	il1=\E[L, ind=^J, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmam=\E[?7l,
-	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
-	smso=\E[7m, smul=\E[4m,
-# Compatible with the R5 xterm
-# (from the XFree86 3.2 distribution, <blink=@> removed)
-# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD
-# corrected typos in rs2 string - TD
-# added u6-u9 -TD
-xterm-r5|xterm R5 version,
-	OTbs, am, km, msgr, xenl,
-	cols#80, it#8, lines#24,
-	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
-	kdl1=\E[31~, kel=\E[8~, kend=\E[4~, kf0=\EOq, kf1=\E[11~,
-	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
-	kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
-	kil1=\E[30~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8,
-	rev=\E[7m, ri=\EM, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
-	rmul=\E[m,
-	rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H,
-	sc=\E7,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
-	sgr0=\E[m, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, use=vt100+enq,
-# Compatible with the R6 xterm
-# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed)
-# added khome/kend, hts based on the R6 xterm code - TD
-# (khome/kend do not actually work in X11R5 or X11R6, but many people use this
-# for compatibility with other emulators).
-xterm-r6|xterm-old|xterm X11R6 version,
-	OTbs, am, km, mir, msgr, xenl,
-	cols#80, it#8, lines#24,
-	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
-	il1=\E[L, ind=^J,
-	is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7,
-	sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	use=vt100+enq,
-# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
-# The name has been changed and some aliases have been removed.
-xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
-	OTbs, am, bce, km, mir, msgr, xenl,
-	cols#80, it#8, lines#24, ncv@,
-	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
-	flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
-	ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
-	il1=\E[L, ind=^J,
-	is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
-	kbeg=\EOE, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
-	kcuu1=\EOA, kdch1=\177, kend=\EOF, kf1=\E[11~, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-	kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
-	kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
-	kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
-	kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
-	kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, meml=\El,
-	memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
-	rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
-	rmso=\E[27m, rmul=\E[24m, rs1=^O,
-	rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
-	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
-	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
-	use=ecma+color, use=vt220+keypad,
-
-# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
-# codes for F1-F4 except while in VT220 mode.
-xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System),
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-xf86-v32,
-
-# This version was released in XFree86 3.3.3 (November 1998).
-# Besides providing printer support, it exploits a new feature that allows
-# xterm to use terminfo-based descriptions with the titeInhibit resource.
-# -- the distribution contained incorrect khome/kend values -TD
-xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System),
-	mc5i,
-	blink=\E[5m, ich1@, invis=\E[8m,
-	is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
-	mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rmcup=\E[?1047l\E[?1048l,
-	rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	smcup=\E[?1048h\E[?1047h, use=xterm-xf86-v33,
-
-# This version was released in XFree86 4.0.
-xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
-	npc,
-	kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~,
-	kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@,
-	ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF,
-	kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
-	kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
-	kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
-	kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
-	kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~,
-	kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
-	kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P,
-	kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~,
-	kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
-	kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
-	kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	smcup=\E[?1049h, use=xterm-xf86-v333,
-
-# This version was released in XFree86 4.3.
-xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System),
-	kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
-	kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C,
-	kbeg@,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	use=xterm-xf86-v40,
-
-# This version was released in XFree86 4.4.
-xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System),
-	cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
-	rin=\E[%p1%dT, use=xterm-xf86-v43,
-
-xterm-xfree86|xterm terminal emulator (XFree86),
-	use=xterm-xf86-v44,
-
-# This version reflects the current xterm features.
-xterm-new|modern xterm terminal emulator,
-	npc,
-	indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
-	kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE,
-	kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M,
-	knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys,
-	use=xterm-basic,
-#
-# This fragment describes as much of XFree86 xterm's "pc-style" function
-# keys as will fit into terminfo's 60 function keys.
-# From ctlseqs.ms:
-#    Code     Modifiers
-#  ---------------------------------
-#     2       Shift
-#     3       Alt
-#     4       Shift + Alt
-#     5       Control
-#     6       Shift + Control
-#     7       Alt + Control
-#     8       Shift + Alt + Control
-#  ---------------------------------
-# The meta key may also be used as a modifier in this scheme, adding another
-# bit to the parameter.
-xterm+pcfkeys|fragment for PC-style fkeys,
-	use=xterm+app, use=xterm+pcf2, use=xterm+pcc2,
-	use=xterm+pce2,
-#
-xterm+noapp|fragment with cursor keys in normal mode,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
-	khome=\E[H,
-
-xterm+app|fragment with cursor keys in application mode,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF,
-	khome=\EOH,
-#
-# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
-# and revised in patch #167 (2002/8/24).  Some other terminal emulators copied
-# the earlier scheme, as noted in the "use=" clauses in this file.
-#
-# The original assignments from patch #94 for cursor-keys had some technical
-# issues:
-#
-#	A parameter for a function-key to represent a modifier is just more
-#	bits.  But for a cursor-key it may change the behavior of the
-#	application.  For instance, emacs decodes the first parameter of a
-#	cursor-key as a repeat count.
-#
-#	A parameterized string should (really) not begin with SS3 (\EO).
-#	Rather, CSI (\E[) should be used.
-#
-# For these reasons, the original assignments were deprecated.  For
-# compatibility reasons, they are still available as a setting of xterm's
-# modifyCursorKeys resource.  These fragments list the modified cursor-keys
-# that might apply to xterm+pcfkeys with different values of that resource.
-xterm+pcc3|fragment with modifyCursorKeys:3,
-	kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
-	kri=\E[>1;2A, kDN=\E[>1;2B, kDN3=\E[>1;3B, kDN4=\E[>1;4B,
-	kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B,
-	kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D,
-	kLFT6=\E[>1;6D, kLFT7=\E[>1;7D, kRIT3=\E[>1;3C,
-	kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C,
-	kRIT7=\E[>1;7C, kUP=\E[>1;2A, kUP3=\E[>1;3A,
-	kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A,
-	kUP7=\E[>1;7A,
-
-xterm+pcc2|fragment with modifyCursorKeys:2,
-	kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
-	kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
-	kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D, kLFT4=\E[1;4D,
-	kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D,
-	kRIT3=\E[1;3C, kRIT4=\E[1;4C, kRIT5=\E[1;5C,
-	kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A,
-	kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A,
-
-xterm+pcc1|fragment with modifyCursorKeys:1,
-	kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
-	kDN3=\E[3B, kDN4=\E[4B, kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B,
-	kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D, kLFT6=\E[6D,
-	kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C,
-	kRIT6=\E[6C, kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A,
-	kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A,
-
-xterm+pcc0|fragment with modifyCursorKeys:0,
-	kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
-	kDN3=\EO3B, kDN4=\EO4B, kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B,
-	kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D, kLFT6=\EO6D,
-	kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C,
-	kRIT6=\EO6C, kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A,
-	kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A,
-
-#
-# Here are corresponding fragments from xterm patch #216:
-#
-xterm+pcf0|fragment with modifyFunctionKeys:0,
-	kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
-	kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
-	kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
-	kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
-	kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf3=\EOR,
-	kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
-	kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
-	kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
-	kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
-	kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
-	kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P,
-	kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S,
-	kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
-	kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
-	kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
-	kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-#
-xterm+pcf2|fragment with modifyFunctionKeys:2,
-	kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
-	kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
-	kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
-	kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
-	kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
-	kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
-	kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
-	kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
-	kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
-	kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
-	kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
-	kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
-	kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
-	kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
-	kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
-	kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~,
-#
-# Chunks from xterm #230:
-xterm+pce2|fragment with modifyCursorKeys:2,
-	kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
-	kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~,
-	kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~,
-	kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F,
-	kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
-	kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
-	kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
-	kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~,
-	kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~,
-	kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
-	kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~,
-	use=xterm+edit,
-
-xterm+edit|fragment for 6-key editing-keypad,
-	kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	use=xterm+pc+edit,
-
-xterm+pc+edit|fragment for pc-style editing keypad,
-	kend=\E[4~, khome=\E[1~,
-
-xterm+vt+edit|fragment for vt220-style editing keypad,
-	kfnd=\E[1~, kslt=\E[4~,
-
-#
-# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
-# Alternatively, the same scheme with old-style function keys as in xterm-r6
-# is shown here (because that is used in mrxvt and mlterm):
-xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2,
-	kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~,
-	kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~,
-	kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~,
-	kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~,
-	kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~,
-	kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
-	kf63=\E[13;4~, use=xterm+pcf2,
-#
-# This chunk is used for building the VT220/Sun/PC keyboard variants.
-xterm-basic|modern xterm terminal emulator - common,
-	OTbs, am, bce, km, mc5i, mir, msgr, xenl, AX,
-	colors#8, cols#80, it#8, lines#24, pairs#64,
-	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
-	flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
-	ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
-	ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
-	kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
-	memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
-	rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
-	sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
-	smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
-
-# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
-# In retrospect, something like xterm-r6 was intended here -TD
-xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
-	rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
-
-# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
-xterm-16color|xterm with 16 colors like aixterm,
-	use=ibm+16color, use=xterm-new,
-
-# This is a compile-time feature of XFree86 xterm beginning with
-# patch #111 (1999/7/10) -TD
-xterm+256color|xterm 256-color feature,
-	ccc,
-	colors#256, pairs#32767,
-	initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
-	setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
-	setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
-	setb@, setf@,
-
-# This is a compile-time feature of XFree86 xterm beginning with
-# patch #115 (1999/9/18) -TD
-#
-# Note that the escape sequences used are the same as for 256-colors - xterm
-# has a different table of default color resource values.  If built for
-# 256-colors, it can still handle an 88-color palette by using the initc
-# capability.
-#
-# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals
-# which support the xterm+256color feature support the associated initc
-# capability.  So it is cancelled in the entries which use this and/or the
-# xterm+256color block.
-#
-# The default color palette for the 256- and 88-colors are different.  A
-# given executable will have one palette (perhaps compiled-in).  If the program
-# supports xterm's control sequence, it can be programmed using initc.
-xterm+88color|xterm 88-color feature,
-	colors#88, pairs#7744, use=xterm+256color,
-
-# These variants of XFree86 3.9.16 xterm are built as a configure option.
-xterm-256color|xterm with 256 colors,
-	use=xterm+256color, use=xterm-new,
-xterm-88color|xterm with 88 colors,
-	use=xterm+88color, use=xterm-256color,
-
-# These two are used to demonstrate the any-event mouse support, i.e., by
-# using an extended name "XM" which tells ncurses to put the terminal into
-# a special mode when initializing the xterm mouse.
-xterm-1002|testing xterm-mouse,
-	XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-new,
-xterm-1003|testing xterm-mouse,
-	XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-new,
-
-# This is another variant, for XFree86 4.0 xterm (T.Dickey)
-# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
-# To use it, your decTerminalID resource must be set to 200 or above.
-#
-#	HTS	\E H	\210
-#	RI	\E M	\215
-#	SS3	\E O	\217
-#	CSI	\E [	\233
-#
-xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
-	OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, AX,
-	colors#8, cols#80, it#8, lines#24, pairs#64,
-	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z,
-	civis=\233?25l, clear=\233H\2332J,
-	cnorm=\233?25l\233?25h, cr=^M, csr=\233%i%p1%d;%p2%dr,
-	cub=\233%p1%dD, cub1=^H, cud=\233%p1%dB, cud1=^J,
-	cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
-	cuu=\233%p1%dA, cuu1=\233A, cvvis=\233?12;25h,
-	dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
-	ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
-	flash=\233?5h$<100/>\233?5l, home=\233H,
-	hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@,
-	il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m,
-	is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
-	ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H,
-	kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
-	kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
-	kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~,
-	kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
-	kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
-	kf2=\23312~, kf20=\23334~, kf3=\23313~, kf4=\23314~,
-	kf5=\23315~, kf6=\23317~, kf7=\23318~, kf8=\23319~,
-	kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M,
-	knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i,
-	meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m,
-	ri=\215, rmacs=\E(B, rmam=\233?7l, rmcup=\233?1049l,
-	rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
-	rs1=\Ec,
-	rs2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
-	sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm,
-	setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
-	smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=,
-	smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR,
-	u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd,
-
-xterm-hp|xterm with hpterm function keys,
-	kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es,
-	kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ,
-	knp=\ES, kpp=\ET, use=xterm-basic,
-
-xterm-sco|xterm with SCO function keys,
-	kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
-	kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b,
-	kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
-	kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
-	kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
-	kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
-	kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
-	kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
-	kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
-	kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
-	kich1=\E[L, kmous=\E[>M, knp=\E[G, kpp=\E[I,
-	use=xterm-basic,
-
-# The xterm-new description has all of the features, but is not completely
-# compatible with vt220.  If you are using a Sun or PC keyboard, set the
-# sunKeyboard resource to true:
-#	+ maps the editing keypad
-#	+ interprets control-function-key as a second array of keys, so a
-#	  12-fkey keyboard can support vt220's 20-fkeys.
-#	+ maps numeric keypad "+" to ",".
-#	+ uses DEC-style control sequences for the application keypad.
-#
-xterm-vt220|xterm emulating vt220,
-	kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kend=\E[4~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
-	kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
-	use=xterm+app, use=xterm+edit, use=xterm-basic,
-	use=vt220+keypad,
-
-xterm-vt52|xterm emulating dec vt52,
-	cols#80, it#8, lines#24,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
-	home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-
-xterm-noapp|xterm with cursor keys in normal mode,
-	rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
-	use=xterm,
-
-xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
-	lines#24, use=xterm-old,
-
-# This is xterm for ncurses.
-xterm|xterm terminal emulator (X Window System),
-	use=xterm-new,
-
-# These entries allow access to the X titlebar and icon name as a status line.
-# Note that twm (and possibly window managers descended from it such as tvtwm,
-# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
-# with it.
-xterm+sl|access X title line and icon name,
-	hs,
-	wsl#40,
-	dsl=\E]0;\007, fsl=^G, tsl=\E]0;, use=xterm,
-xterm+sl-twm|access X title line (pacify twm-descended window managers),
-	hs,
-	wsl#40,
-	dsl=\E]2;\007, fsl=^G, tsl=\E]2;, use=xterm,
-
-#
-# The following xterm variants don't depend on your base version
-#
-# xterm with bold instead of underline
-xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
-	smso=\E[7m, smul=\E[1m, use=xterm-old,
-# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
-# (kterm should not invoke DEC Graphics as the alternate character set
-#  -- Kenji Rikitake)
-# (proper setting of enacs, smacs, rmacs makes kterm to use DEC Graphics
-#  -- MATSUMOTO Shoji)
-# kterm implements acsc via built-in table of X Drawable's
-kterm|kterm kanji terminal emulator (X window system),
-	eslok, hs,
-	ncv@,
-	acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~,
-	csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
-	kmous=\E[M, rc=\E8, rmacs=\E(B, rmam=\E[?7l, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h,
-	tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color,
-kterm-color|kterm-co|kterm with ANSI colors,
-	ncv@, use=kterm, use=ecma+color,
-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
-	ich@, ich1@, use=xterm,
-# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
-xterm1|xterm terminal emulator ignoring the alternate screen buffer,
-	rmcup@, smcup@, use=xterm,
-
-# This describes the capabilities of color_xterm, an xterm variant from
-# before ECMA-64 color support was folded into the main-line xterm release.
-# This entry is straight from color_xterm's maintainer.
-# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
-# The README's with the distribution also say that it supports SGR 21, 24, 25
-# and 27, but they are not present in the terminfo or termcap.
-color_xterm|cx|cx100|color_xterm color terminal emulator for X,
-	OTbs, am, km, mir, msgr, xenl,
-	cols#80, it#8, lines#65, ncv@,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, el1=\E[1K, enacs=\E(B\E)0, home=\E[H, ht=^I,
-	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, kbs=^H, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kf1=\E[11~,
-	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
-	kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~,
-	kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l,
-	rmso=\E[27m, rmul=\E[24m,
-	rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
-	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[0m\017, smacs=^N, smam=\E[?7h,
-	smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m,
-	smul=\E[4m, use=ecma+color, use=vt220+keypad,
-
-# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of
-# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
-# SGR 39 or 49.  SGR 0 does reset colors (along with everything else).  This
-# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except
-# that each of those implements the home, end, delete keys differently.
-#
-# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce
-# colors; note that this is not compatible with the 5.2 version.
-# csw (2002-05-15): make xterm-color primary instead of nxterm, to
-#   match XFree86's xterm.terminfo usage and prevent circular links
-xterm-color|nxterm|generic color xterm,
-	ncv@,
-	op=\E[m, use=xterm-r6, use=klone+color,
-
-# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
-gnome-rh62|Gnome terminal,
-	bce,
-	kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-	use=xterm-color,
-
-# GNOME Terminal 1.4.0.4 (Redhat 7.2)
-#
-# This implements a subset of vt102 with a random selection of features from
-# other terminals such as color and function-keys.
-#
-# shift-f1 to shift-f10 are f11 to f20
-#
-# NumLock changes the application keypad to approximate vt100 keypad, except
-# that there is no escape sequence matching comma (,).
-#
-# Other defects observed:
-#	vt100 LNM mode is not implemented.
-#	vt100 80/132 column mode is not implemented.
-#	vt100 DECALN is not implemented.
-#	vt100 DECSCNM mode is not implemented, so flash does not work.
-#	vt100 TBC (tab reset) is not implemented.
-#	xterm alternate screen controls do not restore cursor position properly
-#	it hangs in tack after running function-keys test.
-gnome-rh72|GNOME Terminal,
-	bce, km@,
-	civis=\E[?25l, cnorm=\E[?25h, kdch1=\E[3~, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmam=\E[?7l,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=xterm-color,
-
-# GNOME Terminal 2.0.1 (Redhat 8.0)
-#
-# Documentation now claims it implements vt220 (which is demonstrably false).
-# However, it does implement ECH, which is a vt220 feature.  And there are
-# workable vt100 LNM, DECALN, DECSNM modes, making it possible to display
-# more of its bugs using vttest.
-#
-# However, note that bce and msgr are broken in this release.  Tabs (tbc and
-# hts) are broken as well.  Sometimes flash (as in xterm-new) works.
-#
-# kf1 and kf10 are not tested since they're assigned (hardcoded?) to menu
-# operations.  Shift-tab generates a distinct sequence so it can be argued
-# that it implements kcbt.
-gnome-rh80|GNOME Terminal,
-	bce@, msgr@,
-	ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kbs=\177,
-	kcbt=\E^I, op=\E[39;49m, use=gnome-rh72,
-
-# GNOME Terminal 2.2.1 (Redhat 9.0)
-#
-# bce and msgr are repaired.
-gnome-rh90|GNOME Terminal,
-	bce, msgr,
-	hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C,
-	kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g,
-	vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys,
-	use=gnome-rh80,
-
-# GNOME Terminal 2.14.2 (Fedora Core 5)
-# Ed Catmur notes that gnome-terminal has recognized soft-reset since May 2002.
-gnome-fc5|GNOME Terminal,
-	rs1=\Ec,
-	rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
-	use=ansi+enq, use=xterm+pcc0, use=gnome-rh90,
-
-# GNOME Terminal 2.18.1 (2007 snapshot)
-#
-# For any "recent" version of gnome-terminal, it is futile to attempt to
-# support modifiers on cursor- and keypad keys because the program usually
-# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset
-# of the keys (which more/less correspond to the termcap values), and will
-# interpret those according to the $TERM value, but others not in the
-# terminfo according to some constantly changing set of hacker guidelines -TD
-gnome-2007|GNOME Terminal snapshot 2.18.1,
-	use=xterm+pcc2, use=gnome-fc5,
-
-# GNOME Terminal 2.22.3 (2008 snapshot)
-#
-# In vttest, it claims to be a vt220 with national replacement character-sets,
-# but aside from the identifier string, implements only a small fraction of
-# vt220's behavior, which will make it less usable on a VMS system (unclear
-# what the intent of the developer is, since the NRC feature exposed in vttest
-# by this change does not work).
-gnome-2008|GNOME Terminal snapshot 2.22.3,
-	use=gnome+pcfkeys, use=gnome-2007,
-
-# GNOME terminal may automatically use the contents of the "xterm" terminfo to
-# supply key information which is not built into the program.  With 2.22.3,
-# this list is built into the program (which addresses the inadvertant use of
-# random terminfo data, though using a set of values which does not correspond
-# to any that xterm produces - still not solving the problem that GNOME
-# terminal hardcodes the $TERM variable as "xterm").
-#
-#	terminfo	modifier	code	keys
-#	kf13-kf24	shift		2	F1 to F12
-#	kf25-kf36	control		5	F1 to F12
-#	kf37-kf48	shift/control	6	F1 to F12
-#	kf49-kf60	alt		3	F1 to F12
-#	kf61-kf63	shift-alt	4	F1 to F3
-#
-# The parameters with \EO (SS3) are technically an error, since SS3 should have
-# no parameters.  This appears to be rote copying based on xterm+pcc0.
-gnome+pcfkeys|gnome variation on xterm+pcfkeys,
-	kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R,
-	kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q,
-	kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P,
-	kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S,
-	kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S,
-	kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R,
-	use=xterm+pcfkeys,
-
-gnome|GNOME Terminal,
-	use=gnome-2008,
-
-# palette is hardcoded...
-gnome-256color|GNOME Terminal with xterm 256-colors,
-	initc@, use=xterm+256color, use=gnome,
-
-# XFCE Terminal 0.2.5.4beta2
-#
-# This is based on some of the same source code, e.g., the VTE library, as
-# gnome-terminal, but has fewer features, fails more screens in vttest.
-# Since most of the terminfo-related behavior is due to the VTE library,
-# the terminfo is the same as gnome-terminal.
-xfce|Xfce Terminal,
-	use=gnome,
-
-# Multi-Gnome-Terminal 1.6.2
-#
-# This does not use VTE, and does have different behavior (compare xfce and
-# gnome).
-mgt|Multi GNOME Terminal,
-	indn=\E[%p1%dS, rin=\E[%p1%dT, use=xterm-xf86-v333,
-
-# This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
-# or not is debatable).
-kvt|KDE terminal,
-	bce, km@,
-	kdch1=\177, kend=\E[F, khome=\E[H, use=xterm-color,
-
-# Konsole 1.0.1
-# (formerly known as kvt)
-#
-# This program hardcodes $TERM to 'xterm', which is not accurate.  However, to
-# simplify this entry (and point out why konsole isn't xterm), we base this on
-# xterm-r6.  The default keyboard appears to be 'linux'.
-#
-# Notes:
-# a) konsole implements several features from XFree86 xterm, though none of
-#    that is documented - except of course in its source code - apparently
-#    because its implementors are unaccustomed to reading documentation - as
-#    evidenced by the sparse and poorly edited documentation distributed with
-#    konsole.  Some features such as the 1049 private mode are recognized but
-#    incorrectly implemented as a duplicate of the 47 private mode.
-# b) even with the "vt100 (historical)" keyboard setting, the numeric keypad
-#    sends PC-style escapes rather than vt100.
-# c) fails vttest menu 3 (Test of character sets) because it does not properly
-#    parse some control sequences.  Also fails vttest Primary Device Attributes
-#    by sending a bogus code (in the source it says it's supposed to be a
-#    vt220, which is doubly incorrect because it does not implement vt220
-#    control sequences except for a few special cases).  Treat it as a
-#    mildly-broken vt102.
-#
-# Update for konsole 1.3.2:
-#    The 1049 private mode works (but see the other xterm screens in vttest).
-#    Primary Device Attributes now returns the code for a vt100 with advanced
-#    video option.  Perhaps that's intended to be a "mildly-broken vt102".
-#
-# Updated for konsole 1.6.4:
-#    add konsole-solaris
-#
-# Updated for konsole 1.6.6:
-#    add control-key modifiers for function-keys, etc.
-#
-# vttest menu 1 shows that both konsole and gnome terminal do wrapping
-# different from xterm (and vt100's).  They have the same behavior in this
-# detail, but it is unclear which copies the other.
-konsole-base|KDE console window,
-	bce, km@, npc,
-	bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h,
-	ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l,
-	hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1@,
-	kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@,
-	kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
-	kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, rmam=\E[?7l,
-	rmso=\E[27m, rmul=\E[24m,
-	rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
-	use=ecma+color, use=xterm-r6,
-konsole-linux|KDE console window with linux keyboard,
-	kdch1=\E[3~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@,
-	kf2=\E[[B, kf20@, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	use=konsole-base,
-konsole-solaris|KDE console window with Solaris keyboard,
-	kbs=^H, kend=\E[4~, khome=\E[1~, use=konsole-vt100,
-# KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather
-# than testing the code.
-konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
-	kend=\E[4~, khome=\E[1~, use=konsole-vt100,
-# The value for kbs reflects local customization rather than the settings used
-# for XFree86 xterm.
-konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
-	kend=\EOF, khome=\EOH, use=konsole+pcfkeys,
-	use=konsole-vt100,
-# Konsole does not implement shifted cursor-keys.
-konsole+pcfkeys|konsole subset of xterm+pcfkeys,
-	kLFT@, kRIT@, kcbt=\E[Z, kind@, kri@, kDN@, kUP@, use=xterm+pcc2,
-	use=xterm+pcf0,
-# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
-# it is still useful for deriving the other entries.
-konsole-vt100|KDE console window with vt100 (sic) keyboard,
-	kbs=\177, kdch1=\E[3~, kend=\E[F, kf1=\E[11~, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@,
-	kf18@, kf19@, kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[H, use=konsole-base,
-konsole-vt420pc|KDE console window with vt420 pc keyboard,
-	kbs=^H, kdch1=\177, use=konsole-vt100,
-konsole-16color|klone of xterm-16color,
-	ncv#32, use=ibm+16color, use=konsole,
-# make a default entry for konsole
-konsole|KDE console window,
-	use=konsole-xf4x,
-
-# palette is hardcoded...
-konsole-256color|KDE console window with xterm 256-colors,
-	initc@, use=xterm+256color, use=konsole,
-
-# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
-#
-# It is nominally a vt102 emulator, with features borrowed from rxvt and
-# xterm.
-#
-# The function keys are numbered based on shift/control/alt modifiers, except
-# that the control-modifier itself is used to spawn a new copy of mlterm (the
-# "-P" option).  So control/F1 to control/F12 may not be usable, depending on
-# how it is configured.
-#
-#				kf1 to kf12	\E[11~   to \E[24~
-#	shift			kf1 to kf12	\E[11;2~ to \E[24;2~
-#	alt			kf1 to kf12	\E[11;3~ to \E[24;3~
-#	shift/alt		kf1 to kf12	\E[11;4~ to \E[24;4~
-#	control			kf1 to kf12	\E[11;5~ to \E[24;5~ (maybe)
-#	control/shift		kf1 to kf12	\E[11;6~ to \E[24;6~
-#	control/alt		kf1 to kf12	\E[11;7~ to \E[24;7~
-#	control/shift/alt	kf1 to kf12	\E[11;8~ to \E[24;8~
-#
-mlterm|multi lingual terminal emulator,
-	am, eslok, km, mc5i, mir, msgr, npc, xenl,
-	colors#8, cols#80, it#8, lines#24, pairs#64,
-	acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=,
-	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
-	is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
-	kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
-	kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~,
-	khome=\EOH, kich1=\E[2~, kind=\EO1;2B, kmous=\E[M,
-	knp=\E[6~, kpp=\E[5~, kri=\EO1;2A, kslt=\E[4~, mc0=\E[i,
-	nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
-	rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
-	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
-	rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
-	sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
-	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
-	vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2,
-
-# The insert/delete/home/end keys do not respond to modifiers because mlterm
-# looks in its termcap to decide which string to send.  If it used terminfo
-# (when available), it could use the extended names introduced for xterm.
-mlterm+pcfkeys|fragment for PC-style fkeys,
-	kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C,
-	kDN=\EO1;2B, kDN3=\EO1;3B, kDN4=\EO1;4B, kDN5=\EO1;5B,
-	kDN6=\EO1;6B, kDN7=\EO1;7B, kIC5=\E[2;5~, kIC6=\E[2;6~,
-	kLFT3=\EO1;3D, kLFT4=\EO1;4D, kLFT5=\EO1;5D,
-	kLFT6=\EO1;6D, kLFT7=\EO1;7D, kNXT5=\E[6;5~,
-	kNXT6=\E[6;6~, kPRV5=\E[5;5~, kPRV6=\E[5;6~,
-	kRIT3=\EO1;3C, kRIT4=\EO1;4C, kRIT5=\EO1;5C,
-	kRIT6=\EO1;6C, kRIT7=\EO1;7C, kUP=\EO1;2A, kUP3=\EO1;3A,
-	kUP4=\EO1;4A, kUP5=\EO1;5A, kUP6=\EO1;6A, kUP7=\EO1;7A,
-
-# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
-# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
-# Notes:
-# rxvt 2.21b uses
-#	smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O,
-# but some applications don't work with that.
-# It also has an AIX extension
-#	box2=lqkxjmwuvtn,
-# and
-#	ech=\E[%p1%dX,
-# but the latter does not work correctly.
-#
-# The distributed terminfo says it implements hpa and vpa, but they are not
-# implemented correctly, using relative rather than absolute positioning.
-#
-# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
-# Since rxvt is not really compatible with xterm, it should be configured as
-# "rxvt" or "rxvt-color".
-#
-# removed dch/dch1 because they are inconsistent with bce/ech -TD
-# remove km as per tack test -TD
-rxvt-basic|rxvt terminal base (X Window System),
-	OTbs, am, bce, eo, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ht=^I,
-	hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
-	ind=^J, is1=\E[?47l\E=\E[?1l,
-	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
-	kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
-	rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
-	rmul=\E[24m,
-	rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
-	rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
-	s0ds=\E(B, s1ds=\E(0, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
-	smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq,
-	use=rxvt+pcfkeys, use=vt220+keypad,
-# Key Codes from rxvt reference:
-#
-# Note: Shift + F1-F10 generates F11-F20
-#
-# For the keypad, use Shift to temporarily override Application-Keypad
-# setting use Num_Lock to toggle Application-Keypad setting if Num_Lock
-# is off, escape sequences toggle Application-Keypad setting.
-# Also note that values of Home, End, Delete may have been compiled
-# differently on your system.
-#
-#                   Normal       Shift        Control      Ctrl+Shift
-#  Tab              ^I           ESC [ Z      ^I           ESC [ Z
-#  BackSpace        ^H           ^?           ^?           ^?
-#  Find             ESC [ 1 ~    ESC [ 1 $    ESC [ 1 ^    ESC [ 1 @
-#  Insert           ESC [ 2 ~    paste        ESC [ 2 ^    ESC [ 2 @
-#  Execute          ESC [ 3 ~    ESC [ 3 $    ESC [ 3 ^    ESC [ 3 @
-#  Select           ESC [ 4 ~    ESC [ 4 $    ESC [ 4 ^    ESC [ 4 @
-#  Prior            ESC [ 5 ~    scroll-up    ESC [ 5 ^    ESC [ 5 @
-#  Next             ESC [ 6 ~    scroll-down  ESC [ 6 ^    ESC [ 6 @
-#  Home             ESC [ 7 ~    ESC [ 7 $    ESC [ 7 ^    ESC [ 7 @
-#  End              ESC [ 8 ~    ESC [ 8 $    ESC [ 8 ^    ESC [ 8 @
-#  Delete           ESC [ 3 ~    ESC [ 3 $    ESC [ 3 ^    ESC [ 3 @
-#  F1               ESC [ 11 ~   ESC [ 23 ~   ESC [ 11 ^   ESC [ 23 ^
-#  F2               ESC [ 12 ~   ESC [ 24 ~   ESC [ 12 ^   ESC [ 24 ^
-#  F3               ESC [ 13 ~   ESC [ 25 ~   ESC [ 13 ^   ESC [ 25 ^
-#  F4               ESC [ 14 ~   ESC [ 26 ~   ESC [ 14 ^   ESC [ 26 ^
-#  F5               ESC [ 15 ~   ESC [ 28 ~   ESC [ 15 ^   ESC [ 28 ^
-#  F6               ESC [ 17 ~   ESC [ 29 ~   ESC [ 17 ^   ESC [ 29 ^
-#  F7               ESC [ 18 ~   ESC [ 31 ~   ESC [ 18 ^   ESC [ 31 ^
-#  F8               ESC [ 19 ~   ESC [ 32 ~   ESC [ 19 ^   ESC [ 32 ^
-#  F9               ESC [ 20 ~   ESC [ 33 ~   ESC [ 20 ^   ESC [ 33 ^
-#  F10              ESC [ 21 ~   ESC [ 34 ~   ESC [ 21 ^   ESC [ 34 ^
-#  F11              ESC [ 23 ~   ESC [ 23 $   ESC [ 23 ^   ESC [ 23 @
-#  F12              ESC [ 24 ~   ESC [ 24 $   ESC [ 24 ^   ESC [ 24 @
-#  F13              ESC [ 25 ~   ESC [ 25 $   ESC [ 25 ^   ESC [ 25 @
-#  F14              ESC [ 26 ~   ESC [ 26 $   ESC [ 26 ^   ESC [ 26 @
-#  F15 (Help)       ESC [ 28 ~   ESC [ 28 $   ESC [ 28 ^   ESC [ 28 @
-#  F16 (Menu)       ESC [ 29 ~   ESC [ 29 $   ESC [ 29 ^   ESC [ 29 @
-#  F17              ESC [ 31 ~   ESC [ 31 $   ESC [ 31 ^   ESC [ 31 @
-#  F18              ESC [ 32 ~   ESC [ 32 $   ESC [ 32 ^   ESC [ 32 @
-#  F19              ESC [ 33 ~   ESC [ 33 $   ESC [ 33 ^   ESC [ 33 @
-#  F20              ESC [ 34 ~   ESC [ 34 $   ESC [ 34 ^   ESC [ 34 @
-#
-#                                                          Application
-#  Up               ESC [ A      ESC [ a      ESC O a      ESC O A
-#  Down             ESC [ B      ESC [ b      ESC O b      ESC O B
-#  Right            ESC [ C      ESC [ c      ESC O c      ESC O C
-#  Left             ESC [ D      ESC [ d      ESC O d      ESC O D
-#  KP_Enter         ^M                                     ESC O M
-#  KP_F1            ESC O P                                ESC O P
-#  KP_F2            ESC O Q                                ESC O Q
-#  KP_F3            ESC O R                                ESC O R
-#  KP_F4            ESC O S                                ESC O S
-#  XK_KP_Multiply   *                                      ESC O j
-#  XK_KP_Add        +                                      ESC O k
-#  XK_KP_Separator  ,                                      ESC O l
-#  XK_KP_Subtract   -                                      ESC O m
-#  XK_KP_Decimal    .                                      ESC O n
-#  XK_KP_Divide     /                                      ESC O o
-#  XK_KP_0          0                                      ESC O p
-#  XK_KP_1          1                                      ESC O q
-#  XK_KP_2          2                                      ESC O r
-#  XK_KP_3          3                                      ESC O s
-#  XK_KP_4          4                                      ESC O t
-#  XK_KP_5          5                                      ESC O u
-#  XK_KP_6          6                                      ESC O v
-#  XK_KP_7          7                                      ESC O w
-#  XK_KP_8          8                                      ESC O x
-#  XK_KP_9          9                                      ESC O y
-#
-# The source-code for rxvt actually defines mappings for F21-F35, using
-# "ESC [ 35 ~" to "ESC [  49 ~".  Keyboards with more than 12 function keys
-# are rare, so this entry uses the shift- and control-modifiers as in
-# xterm+pcfkeys to define keys past F12.
-#
-# kIC is normally not used, since rxvt performs a paste for that (shifted
-# insert), unless private mode 35 is set.
-#
-# kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD
-# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
-rxvt+pcfkeys|fragment for PC-style fkeys,
-	kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
-	kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
-	kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf2=\E[12~, kf20=\E[34~, kf21=\E[23$, kf22=\E[24$,
-	kf23=\E[11\^, kf24=\E[12\^, kf25=\E[13\^, kf26=\E[14\^,
-	kf27=\E[15\^, kf28=\E[17\^, kf29=\E[18\^, kf3=\E[13~,
-	kf30=\E[19\^, kf31=\E[20\^, kf32=\E[21\^, kf33=\E[23\^,
-	kf34=\E[24\^, kf35=\E[25\^, kf36=\E[26\^, kf37=\E[28\^,
-	kf38=\E[29\^, kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^,
-	kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, kDN=\E[b, kDN5=\EOb,
-	kEND5=\E[8\^, kEND6=\E[8@, kHOM5=\E[7\^, kHOM6=\E[7@,
-	kIC5=\E[2\^, kIC6=\E[2@, kLFT5=\EOd, kNXT5=\E[6\^,
-	kNXT6=\E[6@, kPRV5=\E[5\^, kPRV6=\E[5@, kRIT5=\EOc,
-	kUP=\E[a, kUP5=\EOa,
-
-rxvt|rxvt terminal emulator (X Window System),
-	ncv@,
-	hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017,
-	vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color,
-rxvt-color|rxvt terminal emulator (X Window System),
-	use=rxvt,
-rxvt-256color|rxvt 2.7.9 with xterm 256-colors,
-	use=xterm+256color, use=rxvt,
-rxvt-88color|rxvt 2.7.9 with xterm 88-colors,
-	use=xterm+88color, use=rxvt,
-rxvt-xpm|rxvt terminal emulator (X Window System),
-	use=rxvt,
-rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
-	acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	use=rxvt,
-rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin,
-	acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
-	use=rxvt-cygwin,
-
-# This variant is supposed to work with rxvt 2.7.7 when compiled with
-# NO_BRIGHTCOLOR defined.  rxvt needs more work...
-rxvt-16color|xterm with 16 colors like aixterm,
-	ncv#32, use=ibm+16color, use=rxvt,
-
-# mrxvt 0.5.3
-#
-# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
-# makes its function-keys different from other flavors of rxvt -TD
-mrxvt|multitabbed rxvt,
-	use=xterm+pcc2, use=xterm+r6f2, use=rxvt,
-
-# From: Michael Jennings <mej@valinux.com>
-#
-# Eterm 0.9.3
-#
-# removed kf0 which conflicts with kf10 -TD
-# remove cvvis which conflicts with cnorm -TD
-# Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT
-# but does otherwise follow the rxvt+pcfkeys model -TD
-# remove nonworking flash -TD
-# remove km as per tack test -TD
-Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
-	am, bce, bw, eo, mc5i, mir, msgr, xenl, xon,
-	btns#5, cols#80, it#8, lines#24, lm#0, ncv@,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
-	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is1=\E[?47l\E>\E[?1l,
-	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kNXT@,
-	kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^H,
-	kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M,
-	mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
-	rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=,
-	rmso=\E[27m, rmul=\E[24m,
-	rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
-	rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
-	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
-	smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	vpa=\E[%i%p1%dd, use=vt100+enq, use=rxvt+pcfkeys,
-	use=ecma+color,
-
-Eterm-256color|Eterm with xterm 256-colors,
-	use=xterm+256color, use=Eterm,
-
-Eterm-88color|Eterm with 88 colors,
-	use=xterm+88color, use=Eterm,
-
-# Based on rxvt 2.4.8, it has a few differences in key bindings
-aterm|AfterStep terminal,
-	kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
-
-# xiterm  0.5-5.2
-# This is not based on xterm's source...
-# vttest shows several problems with keyboard, cursor-movements.
-# see also http://invisible-island.net/xterm/xterm.faq.html#bug_xiterm
-xiterm|internationalized terminal emulator for X,
-	km@,
-	kbs=\177, kdch1=\E[3~, use=klone+color, use=xterm-r6,
-
-# These (xtermc and xtermm) are distributed with Solaris.  They refer to a
-# variant of xterm which is apparently no longer supported, but are interesting
-# because they illustrate SVr4 curses mouse controls - T.Dickey
-xtermm|xterm terminal emulator (monocrome),
-	OTbs, am, km, mir, msgr, xenl,
-	btns#3, cols#80, it#8, lines#24,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
-	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
-	kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
-	kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
-	knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
-	rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
-	rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
-	smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
-
-xtermc|xterm terminal emulator (color),
-	colors#8, ncv#7, pairs#64,
-	op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	use=xtermm,
-
-# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
-# Here's a termcap entry I've been using for xterm_color, which comes
-# with BSD/OS 2.0, and the X11R6 contrib tape too I think.  Besides the
-# color stuff, I also have a status line defined as the window manager
-# title bar. [I have translated it to terminfo -- ESR]
-xterm-pcolor|xterm with color used for highlights and status line,
-	bold=\E[1m\E[43m, rev=\E[7m\E[34m, smso=\E[7m\E[31m,
-	smul=\E[4m\E[42m, use=xterm+sl, use=xterm-r6,
-
-# HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in
-# from BSD termcap.  (hpterm:  added empty <acsc>, we have no idea what ACS
-# chars look like --esr)
-hpterm|X-hpterm|hp X11 terminal emulator,
-	am, da, db, mir, xhp,
-	cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0,
-	acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M,
-	cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC,
-	cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK,
-	hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=^J, kbs=^H,
-	kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
-	kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
-	khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
-	knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El,
-	memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
-	pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
-	pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
-	pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
-	rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@,
-	rmul=\E&d@,
-	sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
-	sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
-	smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-# HPUX 11 provides a color version.
-hpterm-color|HP X11 terminal emulator with color,
-	ccc,
-	colors#64, pairs#8,
-	home=\E&a0y0C,
-	initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI,
-	op=\E&v0S, scp=\E&v%p1%dS, use=hpterm,
-
-# This entry describes an xterm with Sun-style function keys enabled
-# via the X resource setting "xterm*sunFunctionKeys:true"
-# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
-# The <kf13>...<kf20> keys are L3-L10.  We don't set <kf16=\E[197z>
-# because we want it to be seen as <kcpy>.
-# The <kf31>...<kf45> keys are R1-R15.  We treat some of these in accordance
-# with their Sun keyboard labels instead.
-# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
-xterm-sun|xterm with sunFunctionKeys true,
-	kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
-	kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
-	kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
-	kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
-	kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
-	kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z,
-	kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z,
-	kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z,
-	kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z,
-	kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
-	kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
-	kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
-	use=xterm-basic,
-xterms-sun|small (80x24) xterm with sunFunctionKeys true,
-	cols#80, lines#24, use=xterm-sun,
-
-# This is for the extensible terminal emulator on the X11R6 contrib tape.
-# It corresponds to emu's internal emulation:
-#	emu -term emu
-# emu's default sets TERM to "xterm", but that doesn't work well -TD
-# fixes: remove bogus rmacs/smacs, change oc to op, add bce, am -TD
-# fixes: add civis, cnorm, sgr -TD
-emu|emu native mode,
-	am, bce, mir, msgr, xon,
-	colors#15, cols#80, it#8, lines#24, pairs#64, vt#200,
-	acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
-	bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;,
-	cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;,
-	cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\ED,
-	cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA,
-	dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;,
-	ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I,
-	hts=\Eh, il=\EQ%p1%d;, il1=\EQ1;, ind=\EG,
-	is2=\ES\Er0;\Es0;, kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED,
-	kcuu1=\EA, kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01,
-	kf10=\EF10, kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14,
-	kf15=\EF15, kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19,
-	kf2=\EF02, kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05,
-	kf6=\EF06, kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind,
-	kich1=\Eins, knp=\Enext, kpp=\Eprior, kslt=\Esel,
-	op=\Es0;\Er0;, rev=\ET, ri=\EF, rmir=\EX, rmso=\ES, rmul=\ES,
-	rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;,
-	setaf=\Er%i%p1%d;,
-	sgr=\ES%?%p1%t\ET%;%?%p2%t\EV%;%?%p3%t\ET%;%?%p4%t\EW%;%?%p6%t\EU%;,
-	sgr0=\ES, smir=\EY, smso=\ET, smul=\EV, tbc=\Ej,
-
-# vt220 Terminfo entry for the Emu emulation, corresponds to
-#	emu -term vt220
-# with NumLock set (to make the keypad transmit kf0-kf9).
-# fixes: add am, xenl, corrected sgr0 -TD
-emu-220|Emu-220 (vt200-7bit mode),
-	am, xenl, xon,
-	cols#80, it#8, lines#24, vt#200,
-	acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
-	blink=\E[0;5m, bold=\E[0;1m, civis=\E[?25l,
-	clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
-	cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
-	dch=\E[%p1%dP, dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M,
-	ed=\E[0J, el=\E[0K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
-	hts=\EH, if=/usr/local/share/tabset/vt300, il=\E[%p1%dL,
-	il1=\E[1L, ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h,
-	kbs=^H, kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf0=\EOp, kf1=\EOq,
-	kf10=\EOl, kf11=\EOm, kf12=\EOn, kf13=\EOP, kf14=\EOQ,
-	kf15=\EOR, kf16=\EOS, kf2=\EOr, kf26=\E[17~, kf27=\E[18~,
-	kf28=\E[19~, kf29=\E[20~, kf3=\EOs, kf30=\E[21~,
-	kf34=\E[26~, kf37=\E[31~, kf38=\E[32~, kf39=\E[33~,
-	kf4=\EOt, kf40=\E[34~, kf5=\EOu, kf6=\EOv, kf7=\EOw,
-	kf8=\EOx, kf9=\EOy, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
-	knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8, rev=\E[0;7m,
-	ri=\EM, rmacs=^O, rmcup=\E>, rmkx=\E>, rmso=\E[m, rmul=\E[m,
-	rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7,
-	sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
-	smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
-# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
-# print interface, ANSI X3.64 colour escape sequences, etc.  Newsgroup postings
-# indicate that it emulates more than one terminal, but incompletely.
-#
-# This is adapted from a FreeBSD bug-report by Daniel Rudy <dcrudy@pacbell.net>
-# It is based on vt102's entry, with some subtle differences, but also
-#	has status line
-#	supports ANSI colors (except for 'op' string)
-#	apparently implements alternate screen like xterm
-#	does not use padding, of course.
-mvterm|vv100|SwitchTerm aka mvTERM,
-	am, eslok, hs, km, mir, msgr, xenl,
-	colors#8, cols#80, it#8, lines#24, pairs#64,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	dsl=\E[?E, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0,
-	fsl=\E[?F, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOy,
-	kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw,
-	op=\E[100m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
-	rmcup=\E[2J\E[?47l\E8, rmkx=\E[?1l\E>, rmso=\E[m,
-	rmul=\E[m,
-	rs2=\E>\E[1;3;4;5;6l\E[?7h\E[100m\E[m\E[r\E[2J\E[H,
-	sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys,
-
-### MTERM
-#
-# This application is available by email from <mouse@Rodents.Montreal.QC.CA>.
-#
-# "mterm -type ansi" sets $TERM to "ansi"
-mterm-ansi|ANSI emulation,
-	am, bw, mir, msgr,
-	it#8,
-	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-	cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
-	el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=,
-	il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
-	invis=\E[8m, is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m,
-	ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmso=\E[27m,
-	rmul=\E[24m,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	vpa=\E[%i%p1%dd,
-# mterm normally sets $TERM to "mterm"
-mterm|mouse-sun|Der Mouse term,
-	am, bw, mir,
-	it#8,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^N, cuf1=^S,
-	cup=\006%p1%d.%p2%d., cuu1=^X, dch1=^Y, dl1=^K, ed=^B, el=^C,
-	home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=^M^U, ri=^W,
-	rmir=^O, rmso=^T, smir=^Q, smso=^V,
-# "mterm -type decansi" sets $TERM to "decansi"
-#
-# note: kdch1, kfnd, kslt are in the source code, but do not work -TD
-decansi|ANSI emulation with DEC compatibility hacks,
-	am, mir, msgr, xenl,
-	colors#8, it#8, pairs#64,
-	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, enacs=\E(B\E)0,
-	home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL,
-	il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m,
-	is2=\E)0\E[r\017, kbs=^H, kcub1=\EOD, kcud1=\EOB,
-	kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\E[11~,
-	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
-	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
-	kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
-	kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
-	kpp=\E[5~, kslt=\E[4~, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m,
-	ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR,
-	u7=\E[6n, vpa=\E[%i%p1%dd,
-
-#### MGR
-#
-# MGR is a Bell Labs window system lighter-weight than X.
-# These entries describe MGR's xterm-equivalent.
-# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997
-#
-
-mgr|Bellcore MGR (non X) window system terminal emulation,
-	am, km,
-	bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=^M,
-	csr=\E%p1%d;%p2%dt, cub1=^H, cud1=\Ef, cuf1=\Er,
-	cup=\E%p2%d;%p1%dM, cuu1=\Eu, cvvis=\E0h,
-	dch=\E%p1%dE$<5>, dch1=\EE, dl=\E%p1%dd$<3*>,
-	dl1=\Ed$<3>, ed=\EC, el=\Ec, hd=\E1;2f, ht=^I, hu=\E1;2u,
-	ich=\E%p1%dA$<5>, ich1=\EA, il=\E%p1%da$<3*>,
-	il1=\Ea$<3>, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, nel=^M^J, rev=\E1n, rmam=\E5S,
-	rmso=\E0n, rmul=\E0n, sgr0=\E0n, smam=\E5s, smso=\E1n,
-	smul=\E4n,
-mgr-sun|Mgr window with Sun keyboard,
-	ka1=\E[214z, ka3=\E[216z, kb2=\E[218z, kc1=\E[220z,
-	kc3=\E[222z, kcpy=\E[197z, kend=\E[220z, kent=\E[250z,
-	kf1=\E[224z, kf10=\E[233z, kf11=\E[234z, kf12=\E[235z,
-	kf2=\E[225z, kf3=\E[226z, kf4=\E[227z, kf5=\E[228z,
-	kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z,
-	kfnd=\E[200z, khlp=\E[207z, khome=\E[214z, knp=\E[222z,
-	kopn=\E[198z, kpp=\E[216z, kund=\E[195z, use=mgr,
-mgr-linux|Mgr window with Linux keyboard,
-	ka1=\E[H, ka3=\E[5~, kb2=\E[G, kc1=\E[Y, kc3=\E[6~,
-	kdch1=\E[3~, kend=\E[4~, kf0=\E[[J, kf1=\E[[A, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D,
-	kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, knp=\E[6~, kpp=\E[5~, use=mgr,
-
-######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
-#
-
-# Columbus UNIX virtual terminal. This terminal also appears in
-# UNIX 4.0 and successors as line discipline 1 (?), but is
-# undocumented and does not really work quite right.
-cbunix|cb unix virtual terminal,
-	OTbs, am, da, db,
-	cols#80, lines#24, lm#0,
-	bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EG%p2%c%p1%c, cuu1=\EA, dch1=\EM, dl1=\EN, ed=\EL,
-	el=\EK, ich1=\EO, il1=\EP, ind=^J, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, khome=\EE, rmso=\Eb^D, rmul=\Eb^A,
-	smso=\Ea^D, smul=\Ea^A,
-# (vremote: removed obsolete ":nl@:" -- esr)
-vremote|virtual remote terminal,
-	am@,
-	cols#79, use=cbunix,
-
-pty|4bsd pseudo teletype,
-	cup=\EG%p1%{32}%+%c%p2%{32}%+%c, rmso=\Eb$, rmul=\Eb!,
-	smso=\Ea$, smul=\Ea!, use=cbunix,
-
-# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
-eterm|gnu emacs term.el terminal emulation,
-	am, mir, xenl,
-	cols#80, lines#24,
-	bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, rev=\E[7m,
-	rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
-	smul=\E[4m,
-
-# Entries for use by the `screen' program by Juergen Weigert,
-# Michael Schroeder, Oliver Laumann.  The screen and
-# screen-w entries came with version 3.7.1.  The screen2 and screen3 entries
-# come from University of Wisconsin and may be older.
-# (screen: added <cnorm> on ANSI model -- esr)
-#
-# 'screen' defines extensions to termcap.  Some are used in its terminal
-# description:
-#      G0   (bool)  Terminal can deal with ISO 2022  font  selection sequences.
-#      AX   (bool)  Does  understand ANSI set default fg/bg color
-#                   (\E[39m / \E[49m).
-#      S0   (str)   Switch charset 'G0' to the specified charset.
-#      E0   (str)   Switch charset 'G0' back to standard charset.
-#
-# tested with screen 3.09.08
-screen|VT 100/ANSI X3.64 virtual terminal,
-	OTbs, OTpt, am, km, mir, msgr, xenl, G0,
-	colors#8, cols#80, it#8, lines#24, pairs#64,
-	acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
-	cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
-	flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcbt=\E[Z,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
-	nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
-	rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m,
-	rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B,
-	S0=\E(%p1%c, use=ecma+color,
-# The bce and status-line entries are from screen 3.9.13 (and require some
-# changes to .screenrc).
-screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
-	bce, use=screen,
-screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
-	dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
-
-# ======================================================================
-# Entries for GNU Screen with 16 colors.
-# Those variations permit to benefit from 16 colors palette, and from
-# bold font and blink attribute separated from bright colors. But they
-# are less portable than the generic "screen" 8 color entries: Their
-# usage makes real sense only if the terminals you attach and reattach
-# do all support 16 color palette.
-
-screen-16color|GNU Screen with 16 colors,
-	use=ibm+16color, use=screen,
-
-screen-16color-s|GNU Screen with 16 colors and status line,
-	use=ibm+16color, use=screen-s,
-
-screen-16color-bce|GNU Screen with 16 colors and BCE,
-	use=ibm+16color, use=screen-bce,
-
-screen-16color-bce-s|GNU Screen with 16 colors, BCE, and status line,
-	bce, use=ibm+16color, use=screen-s,
-
-# ======================================================================
-# Entries for GNU Screen 4.02 with --enable-colors256.
-
-screen-256color|GNU Screen with 256 colors,
-	ccc@,
-	initc@, use=xterm+256color, use=screen,
-
-screen-256color-s|GNU Screen with 256 colors and status line,
-	ccc@,
-	initc@, use=xterm+256color, use=screen-s,
-
-screen-256color-bce|GNU Screen with 256 colors and BCE,
-	ccc@,
-	initc@, use=xterm+256color, use=screen-bce,
-
-screen-256color-bce-s|GNU Screen with 256 colors, BCE, and status line,
-	bce, ccc@,
-	initc@, use=xterm+256color, use=screen-s,
-
-# ======================================================================
-
-# Read the fine manpage:
-#       When  screen  tries  to  figure  out  a  terminal name for
-#       itself, it first looks for an entry named "screen.<term>",
-#       where  <term>  is the contents of your $TERM variable.  If
-#       no such entry exists, screen tries "screen" (or "screen-w"
-#       if the terminal is wide (132 cols or more)).  If even this
-#       entry cannot be found, "vt100" is used as a substitute.
-#
-# Notwithstanding the manpage, screen uses its own notion of the termcap
-# and some keys from "screen.<term>" are ignored.  Here is an entry which
-# covers those (tested with screen 4.00.02) -TD
-screen+fkeys|function-keys according to screen,
-	kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@,
-	khome=\E[1~, kslt@,
-#
-# Here are a few customized entries which are useful -TD
-#
-# Notes:
-# (a)	screen does not support invis.
-# (b)	screen's implementation of bw is incorrect according to tack.
-# (c)	screen appears to hardcode the strings for khome/kend, making it
-#	necessary to override the "use=" clause's values (screen+fkeys).
-# (d)	screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry,
-#	which is NOT the same as the terminfo screen.<term>.
-# (e)	when screen finds one of these customized entries, it sets $TERM to
-#	match.  Hence, no "screen.xterm" entry is provided, since that would
-#	create heartburn for people running remote xterm's.
-#
-#	xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV
-#	since the default translations override the built-in keycode
-#	translation.  They are suppressed here to show what is tested by tack.
-screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
-	bce@, bw,
-	invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
-	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
-	use=screen+fkeys, use=xterm-new,
-# xterm-r6 does not really support khome/kend unless it is propped up by
-# the translations resource.
-screen.xterm-r6|screen customized for X11R6 xterm,
-	bw, use=screen+fkeys, use=xterm-r6,
-# Color applications running in screen and TeraTerm do not play well together
-# on Solaris because Sun's curses implementation gets confused.
-screen.teraterm|disable ncv in teraterm,
-	ncv#127,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	use=screen+fkeys, use=screen,
-# Other terminals
-screen.rxvt|screen in rxvt,
-	bw,
-	cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
-	kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
-	use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
-# fix the backspace key
-screen.linux|screen in linux console,
-	bw,
-	kbs=\177, kcbt@, use=screen+fkeys, use=screen,
-screen.mlterm|screen in mlterm,
-	use=screen+fkeys, use=mlterm,
-
-screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
-	cols#132, use=screen,
-
-screen2|old VT 100/ANSI X3.64 virtual terminal,
-	cols#80, it#8, lines#24,
-	cbt=\E[Z, clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL,
-	il1=\E[L, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
-	kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
-	nel=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m,
-	rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smir=\E[4h,
-	smso=\E[3m, smul=\E[4m, tbc=\E[3g,
-# (screen3: removed unknown ":xv:LP:G0:" -- esr)
-screen3|older VT 100/ANSI X3.64 virtual terminal,
-	km, mir, msgr,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
-	cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
-	kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
-	rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs1=\Ec,
-	sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
-	smul=\E[4m, tbc=\E[3g,
-
-# Francesco Potorti <F.Potorti@cnuce.cnr.it>:
-# NCSA telnet is one of the most used telnet clients for the Macintosh.  It has
-# been maintained until recently by the National Center for Supercomputer
-# Applications, and it is feature rich, stable and free.  It can be downloaded
-# from www.ncsa.edu.  This terminfo description file is based on xterm-vt220,
-# xterm+sl, and the docs at NCSA.  It works well.
-#
-# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode
-# The terminal options should be set as follows:
-#         Xterm sequences ON
-#         use VT wrap mode ON
-#         use Emacs arrow keys OFF
-#         CTRL-COMND is Emacs meta ON
-#         8 bit mode ON
-#         answerback string: "ncsa-vt220-8"
-#         setup keys: all disabled
-#
-# Application mode is not used.
-#
-# Other special mappings:
-#	Apple		VT220
-#	HELP 		Find
-#	HOME		Insert here
-#	PAGEUP		Remove
-#	DEL		Select
-#	END		Prev Screen
-#	PAGEDOWN	Next Screen
-#
-# Though it supports ANSI color, NCSA Telnet uses color to represent blinking
-# text.
-#
-# The status-line manipulation is a mapping of the xterm-compatible control
-# sequences for setting the window-title.  So you must use tsl and fsl in
-# pairs, since the latter ends the string that is loaded to the window-title.
-ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
-	am, hs, km, mir, msgr, xenl,
-	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	dsl=\E]0;\007, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
-	flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, ht=^I, hts=\EH,
-	ich=\E[%p1%d@, if=/usr/local/share/tabset/vt100,
-	il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>,
-	is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
-	kf11=\E[29~, kf12=\E[31~, kf13=\E[32~, kf14=\E[33~,
-	kf15=\E[34~, kf2=\E[18, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~,
-	kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~,
-	khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i,
-	rc=\E8, rev=\E[7m, rf=/usr/local/share/tabset/vt100, ri=\EM,
-	rmacs=\E(B, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
-	rmso=\E[27m, rmul=\E[24m,
-	rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
-	smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
-	u8=\E[?62;1;6c, use=ansi+enq,
-ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
-	use=ncsa-m, use=klone+color,
-ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
-	hs@,
-	dsl@, fsl@, tsl@, use=ncsa,
-ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
-	hs@,
-	dsl@, fsl@, tsl@, use=ncsa-m,
-# alternate -TD:
-# The documented function-key mapping refers to the Apple Extended Keyboard
-# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6).  We use the VT220-style
-# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
-# some keyboards and many applications require these as F1-F4.
-#
-ncsa-vt220|NCSA Telnet using vt220-compatible function keys,
-	kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
-	kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
-	kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, use=ncsa,
-
-#### Pilot Pro Palm-Top
-#
-# Termcap for Top Gun Telnet and SSH on the Palm Pilot.
-# http://www.ai/~iang/TGssh/
-pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional,
-	OTbs, am, xenl,
-	cols#39, lines#16,
-	bel=^G, clear=\Ec, cr=^M, cub1=^H, cud1=^J,
-	cup=\Em%p1%{32}%+%c%p2%{32}%+%c, home=\Em\s\s, ht=^I,
-	ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s,
-	rmso=\EB, smso=\Eb,
-
-# From: Federico Bianchi <bianchi@www.arte.unipi.it>
-# These entries are for the Embeddable Linux Kernel System (ELKS)
-# project - an heavily stripped down Linux to be run on 16 bit
-# boxes or, eventually, to be used in embedded systems - and have been
-# adapted from the stock ELKS termcap. The project itself looks stalled,
-# and the latest improvements I know of date back to March 2000.
-#
-# To cope with the ELKS dumb console I added an "elks-glasstty" entry;
-# as an added bonus, this deals with all the capabilities common to
-# both VT52 and ANSI (or, eventually, "special") modes.
-
-elks-glasstty|ELKS glass-TTY capabilities,
-	OTbs, am,
-	cols#80, it#8, lines#25,
-	bel=^G, cr=^M, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
-	nel=^M^J,
-
-elks-vt52|ELKS vt52 console,
-	clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\EK,
-	home=\EH, use=elks-glasstty,
-
-elks-ansi|ELKS ANSI console,
-	clear=\E[H\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
-	rmso=\E[m, smso=\E[7m, use=elks-glasstty,
-
-# As a matter of fact, ELKS 0.0.83 on PCs defaults to ANSI emulation
-# instead of VT52, but the "elks" entry still refers to the latter.
-
-elks|default ELKS console,
-	use=elks-vt52,
-
-# Project SIBO (for Psion 3 palmtops) console is identical to the ELKS
-# one but in screen size
-
-sibo|ELKS SIBO console,
-	cols#61, it#8, lines#20, use=elks-vt52,
-
-######## COMMERCIAL WORKSTATION CONSOLES
-#
-
-#### Alpha consoles
-#
-
-# This is from the OSF/1 Release 1.0 termcap file
-pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation,
-	am, xon,
-	cols#80, lines#25,
-	bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
-	nel=^M^J, rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m,
-
-#### Sun consoles
-#
-
-# :is1: resets scrolling region in case a previous user had used "tset vt100"
-oldsun|Sun Microsystems Workstation console,
-	OTbs, am, km, mir, msgr,
-	cols#80, it#8, lines#34,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
-	dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is1=\E[1r, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
-	rmso=\E[m, sgr0=\E[m, smso=\E[7m,
-# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995
-# <lines> capability later corrected by J.T. Conklin <jtc@cygnus.com>
-# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998)
-sun-il|Sun Microsystems console with working insert-line,
-	am, km, msgr,
-	cols#80, lines#34,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
-	dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kdch1=\177, kend=\E[220z, kf1=\E[224z,
-	kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
-	kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
-	kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
-	knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z,
-	kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s,
-	sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, smso=\E[7m,
-	u8=\E[1t, u9=\E[11t,
-# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
-# flake out on the last line.  Unfortunately, without them the terminal has no
-# way to scroll.
-sun-cgsix|sun-ss5|Sun SparcStation 5 console,
-	il@, il1@, use=sun-il,
-# If you are using an SS5, change the sun definition to use sun-ss5.
-sun|sun1|sun2|Sun Microsystems Inc. workstation console,
-	use=sun-il,
-
-# From: <john@ucbrenoir>  Tue Sep 24 13:14:44 1985
-sun-s|Sun Microsystems Workstation window with status line,
-	hs,
-	dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun,
-sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs,
-	hs,
-	dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e,
-sun-48|Sun 48-line window,
-	cols#80, lines#48, use=sun,
-sun-34|Sun 34-line window,
-	cols#80, lines#34, use=sun,
-sun-24|Sun 24-line window,
-	cols#80, lines#24, use=sun,
-sun-17|Sun 17-line window,
-	cols#80, lines#17, use=sun,
-sun-12|Sun 12-line window,
-	cols#80, lines#12, use=sun,
-sun-1|Sun 1-line window for sysline,
-	eslok, hs,
-	cols#80, lines#1,
-	dsl=^L, fsl=\E[K, tsl=^M, use=sun,
-sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character,
-	ich1@, rmir@, smir@, use=sun,
-sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history,
-	lines#35,
-	rmcup=\E[>4h, smcup=\E[>4l, use=sun,
-sun-type4|Sun Workstation console with type 4 keyboard,
-	kcub1=\E[217z, kcud1=\E[221z, kcuf1=\E[219z,
-	kcuu1=\E[215z, use=sun-il,
-
-# Most of the current references to sun-color are from users wondering why this
-# is the default on install.  Details from reading the wscons manpage, adding
-# cub, etc., here (rather than in the base sun-il entry) since it is not clear
-# when those were added -TD
-sun-color|Sun Microsystems Workstation console with color support (IA systems),
-	colors#8, pairs#64,
-	cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-	cuu=\E[%p1%dA, home=\E[H, op=\E[m\E[p, setab=\E[4%p1%dm,
-	setaf=\E[3%p1%dm,
-	setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-	use=sun,
-
-#### Iris consoles
-#
-
-# (wsiris: this had extension capabilities
-#	:HS=\E7F2:HE=\E7F7:\
-#	:CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite:
-# See the note on Iris extensions near the end of this file.
-# Finally, removed suboptimal <clear>=\EH\EJ and added <cud1> &
-# <flash> from BRL -- esr)
-wsiris|iris40|iris emulating a 40 line visual 50 (approximately),
-	OTbs, OTnc, OTpt, am,
-	OTkn#3, cols#80, it#8, lines#40,
-	OTnl=\EB, bel=^G, clear=\Ev, cnorm=\E>, cub1=^H, cud1=\EB,
-	cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
-	cvvis=\E;, dim=\E7F2, dl1=\EM, ed=\EJ, el=\EK,
-	flash=\E7F4\E7B1\013\E7F7\E7B0, home=\EH, ht=^I, il1=\EL,
-	ind=^J, is2=\E7B0\E7F7\E7C2\E7R3, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3,
-	kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, ri=\EI,
-	rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7, smso=\E9P,
-	smul=\E7R2\E9P,
-
-#### NeWS consoles
-#
-# Console terminal windows under the NeWS (Sun's Display Postscript windowing
-# environment).   Note: these have nothing to do with Sony's News workstation
-# line.
-#
-
-# Entry for NeWS's psterm from Eric Messick & Hugh Daniel
-# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr)
-psterm|psterm-basic|NeWS psterm-80x34,
-	OTbs, am, hs, km, ul,
-	cols#80, it#8, lines#34,
-	blink=\EOb, bold=\EOd, clear=^L, csr=\EE%p1%d;%p2%d;,
-	cub1=\ET, cud1=\EP, cuf1=\EV, cup=\E%p1%d;%p2%d;, cuu1=\EY,
-	dch1=\EF, dl1=\EK, ed=\EB, el=\EC, flash=\EZ, fsl=\ENl,
-	home=\ER, ht=^I, il1=\EA, ind=\EW, is1=\EN*, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ll=\EU, rc=^\, rev=\EOr,
-	ri=\EX, rmcup=\ENt, rmir=\ENi, rmso=\ENo, rmul=\ENu, sc=^],
-	sgr0=\EN*, smcup=\EOt, smir=\EOi, smso=\EOo, smul=\EOu,
-	tsl=\EOl,
-psterm-96x48|NeWS psterm 96x48,
-	cols#96, lines#48, use=psterm,
-psterm-90x28|NeWS psterm 90x28,
-	cols#90, lines#28, use=psterm,
-psterm-80x24|NeWS psterm 80x24,
-	cols#80, lines#24, use=psterm,
-# This is a faster termcap for psterm.  Warning:  if you use this termcap,
-# some control characters you type will do strange things to the screen.
-# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr)
-psterm-fast|NeWS psterm fast version (flaky ctrl chars),
-	OTbs, am, hs, km, ul,
-	cols#80, it#8, lines#34,
-	blink=^Ob, bold=^Od, clear=^L, csr=\005%p1%d;%p2%d;,
-	cub1=^T, cud1=^P, cuf1=^V, cup=\004%p1%d;%p2%d;, cuu1=^Y,
-	dch1=^F, dl1=^K, ed=^B, el=^C, flash=^Z, fsl=^Nl, home=^R, ht=^I,
-	il1=^A, ind=^W, is1=^N*, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, ll=^U, rc=^\, rev=^Or, ri=^X, rmcup=^Nt, rmir=^Ni,
-	rmso=^No, rmul=^Nu, sc=^], sgr0=^N*, smcup=^Ot, smir=^Oi,
-	smso=^Oo, smul=^Ou, tsl=^Ol,
-
-#### NeXT consoles
-#
-# Use `glasstty' for the Workspace application
-#
-
-# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995
-next|NeXT console,
-	am, xt,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
-	ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
-	rmso=\E[4;1m, sgr0=\E[m, smso=\E[4;2m,
-nextshell|NeXT Shell application,
-	am,
-	cols#80,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, kbs=^H, kcub1=^H,
-	kcud1=^J, nel=^M^J,
-
-#### Sony NEWS workstations
-#
-
-# (news-unk: this had :KB=news: -- esr)
-news-unk|SONY NEWS vt100 emulator common entry,
-	OTbs, OTpt, am, xenl,
-	cols#80,
-	OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
-	cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
-	ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	if=/usr/local/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
-	is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
-	kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM,
-	rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sc=\E7,
-	sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-#
-# (news-29: this had :TY=ascii: --esr)
-news-29,
-	lines#29, use=news-unk,
-# (news-29-euc: this had :TY=euc: --esr)
-news-29-euc,
-	use=news-29,
-# (news-29-sjis: this had :TY=sjis: --esr)
-news-29-sjis,
-	use=news-29,
-#
-# (news-33: this had :TY=ascii: --esr)
-news-33,
-	lines#33, use=news-unk,
-# (news-33-euc: this had :TY=euc: --esr)
-news-33-euc,
-	use=news-33,
-# (news-33-sjis: this had :TY=sjis: --esr)
-news-33-sjis,
-	use=news-33,
-#
-# (news-42: this had :TY=ascii: --esr)
-news-42,
-	lines#42, use=news-unk,
-# (news-42-euc: this had :TY=euc: --esr)
-news-42-euc,
-	use=news-42,
-# (news-42-sjis: this had :TY=sjis: --esr)
-news-42-sjis,
-	use=news-42,
-#
-#	NEWS-OS old termcap entry
-#
-# (news-old-unk: this had :KB=news:TY=sjis: --esr)
-news-old-unk|SONY NEWS vt100 emulator common entry,
-	OTbs, OTpt, am, xenl,
-	cols#80, vt#3,
-	OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
-	cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
-	home=\E[H, ht=^I, if=/usr/local/share/tabset/vt100, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM,
-	rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-#
-# (nwp512: this had :DE=^H:, which I think means <OTbs> --esr)
-nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines,
-	OTbs,
-	lines#40,
-	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
-	use=news-old-unk,
-#
-# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr)
-nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line,
-	lines#42,
-	is2=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8,
-	use=news-old-unk,
-#
-# (nwp-512-o: this had :KB=nwp410:DE=^H:  I interpret the latter as <OTbs>. --esr)
-nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines,
-	OTbs,
-	lines#40,
-	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
-	use=news-old-unk,
-#
-# (nwp513: this had :DE=^H: and the alias vt100-bm --esr)
-nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines,
-	OTbs,
-	lines#31,
-	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
-	use=news-old-unk,
-#
-# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as <OTbs>; --esr)
-# also the alias vt100-bm.
-nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines,
-	OTbs,
-	lines#33,
-	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8,
-	use=news-old-unk,
-#
-# (nwp513-o: had :DE=^H:, I think that's <OTbs>; also the alias vt100-bm --esr)
-nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines,
-	OTbs,
-	lines#31,
-	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
-	use=news-old-unk,
-#
-# (news28: this had :DE=^H:, I think that's <OTbs>, and :KB=nws1200: --esr)
-news28|sony vt100 emulator 28 lines,
-	OTbs,
-	lines#28,
-	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8,
-	use=news-old-unk,
-#
-# (news29: this had :TY=ascii:KB=nws1200:\ --esr)
-news29|news28-a|sony vt100 emulator 29 lines,
-	lines#29,
-	is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8,
-	use=news-old-unk,
-#
-# (news511: this had :TY=sjis: --esr)
-nwp511|nwp-511|nwp-511 vt100,
-	OTbs, OTpt, am, xenl,
-	cols#80, lines#24,
-	clear=\E[;H\E[2J$<20/>, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M,
-	ed=\E[J$<30/>, el=\E[K$<3/>,
-	flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
-	il1=\E[L, is2=\E[?5l\E[?1l\E>\E[?7h\E[?8h, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
-	kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\E#W, khome=\E[H,
-	ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
-	rs2=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h,
-	smso=\E[7m$<2/>, smul=\E[4m$<2/>,
-# (news517: this had :TY=sjis:. --esr)
-nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows,
-	eslok, hs,
-	cols#80, lines#30,
-	OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
-	is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	tsl=\E[1$}\E[;%df, use=vt200,
-# (news517-w: this had :TY=sjis:. --esr)
-nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows,
-	eslok, hs,
-	cols#132, lines#50,
-	OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
-	is2=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
-	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
-	tsl=\E[1$}\E[;%df, use=vt200,
-
-#### Common Desktop Environment
-#
-
-# This ships with Sun's CDE in Solaris 2.5
-# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net>
-dtterm|CDE desktop terminal,
-	am, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, lm#0, ncv@,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
-	enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, home=\E[H,
-	ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
-	ind=\ED, invis=\E[8m, is2=\E F\E>\E[?1l\E[?7h\E[?45l,
-	kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
-	rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
-	sc=\E7,
-	sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ecma+color,
-
-#### Non-Unix Consoles
-#
-
-### EMX termcap.dat compatibility modes
-#
-# Keypad:	Home=\0G	Up=\0H	PrPag=\0I
-#		ka1,kh		kcuu1		kpp,ka3
-#
-#		Left=\0K	5=\0L		Right=\0M
-#		kcub1		kb2		kcuf1
-#
-#		End=\0O		Down=\0P	NxPag=\0Q
-#		kc1,kend	kcud1		kc3,knp
-#
-#		Ins=\0R		Del=\0S
-#		kich1		kdch1
-#
-# On keyboard with 12 function keys,
-#	shifted f-keys: F13-F24
-#	control f-keys: F25-F36
-#	alt f-keys:     F37-F48
-# The shift/control/alt keys do not modify each other, but alt overrides both,
-# and control overrides shift.
-#
-# Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
-# no_color_video to inform the application that standout(1), underline(2)
-# reverse(4) and invisible(64) don't work with color.
-emx-base|DOS special keys,
-	bce, bw,
-	it#8, ncv#71,
-	bel=^G, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
-	kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
-	kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
-	kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
-	kf17=\0X, kf18=\0Y, kf19=\0Z, kf2=\0<, kf20=\0[, kf21=\0\\,
-	kf22=\0], kf23=\0\207, kf24=\0\210, kf25=\0\^, kf26=\0_,
-	kf27=\0`, kf28=\0a, kf29=\0b, kf3=\0=, kf30=\0c, kf31=\0d,
-	kf32=\0e, kf33=\0f, kf34=\0g, kf35=\0\211, kf36=\0\212,
-	kf37=\0h, kf38=\0i, kf39=\0j, kf4=\0>, kf40=\0k, kf41=\0l,
-	kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
-	kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
-	kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
-	use=ansi.sys,
-
-# Except for the "-emx" suffixes, these are as distributed with EMX 0.9b,
-# a Unix-style environment used on OS/2.  (Note that the suffix makes some
-# names longer than 14 characters, the nominal maximum).
-#
-# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
-ansi-emx|ANSI.SYS color,
-	am, bce, eo, mir, msgr, xon,
-	colors#8, cols#80, it#8, lines#25, pairs#64,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
-	cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
-	home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
-	kb2=\E[G, kbs=^H, kf0=\0D, kll=\0O, kspd=^Z, nel=^M^J,
-	rev=\E[5;37;41m, rmir=\E[4l, rmpch=\E[10m,
-	rmso=\E[0;44m\E[1;33m, rmul=\E[0;44m\E[1;33m, rs1=\Ec,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smpch=\E[11m,
-	smso=\E[0;31;47m, smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c,
-	u9=\E[c, use=emx-base,
-# nice colors for Emacs (white on blue, mode line white on cyan)
-ansi-color-2-emx|ANSI.SYS color 2,
-	clear=\E[0;37;44m\E[H\E[J, rev=\E[1;37;46m,
-	rmso=\E[0;37;44m, rmul=\E[0;37;44m, rs1=\Ec,
-	setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smso=\E[1;37;46m,
-	smul=\E[1;36;44m, use=ansi-emx,
-# nice colors for Emacs (white on black, mode line black on cyan)
-ansi-color-3-emx|ANSI.SYS color 3,
-	clear=\E[0;37;40m\E[H\E[J, rev=\E[1;37;46m,
-	rmso=\E[0;37;40m, rmul=\E[0;37;40m, rs1=\Ec,
-	setaf=\E[3%p1%dm, sgr0=\E[0;10m, smso=\E[1;37;46m,
-	smul=\E[0;36;40m, use=ansi-emx,
-mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
-	am,
-	cols#80, it#8, lines#24,
-	clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
-	ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M,
-	kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>,
-	kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G,
-	kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m,
-	sgr0=\E[0m,
-
-# Use this for cygwin32 (tested with beta 19.1)
-# underline is colored bright magenta
-# shifted kf1-kf12 are kf11-kf22
-cygwinB19|ansi emulation for cygwin32,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-	kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
-	kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
-	kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@,
-	use=ansi.sys,
-
-# Use this for cygwin (tested with version 1.1.0).
-# I've combined pcansi and linux.  Some values of course were different and
-# I've indicated which of these were and which I used.
-# Cheers, earnie_boyd@yahoo.com
-# several changes based on running with tack and comparing with older entry -TD
-# more changes from csw:
-#   add    cbt   [backtab]
-#   remove eo    [erase overstrike with blank]
-#   change clear was \E[H\E[J  now \E[2J  (faster?)
-#   remove cols
-#   remove lines
-#   remove ncv#3 [colors collide with highlights, bitmask] not applicable
-#                to MSDOS box?
-#   add    cub   [cursor back param]
-#   add    cuf   [cursor forward param]
-#   add    cuu   [cursor up param]
-#   add    cud   [cursor down param]
-#   add    hs    [has status line]
-#   add    fsl   [return from status line]
-#   add    tsl   [go to status line]
-#   add    smacs [Start alt charset] (not sure if this works)
-#   add    rmacs [End alt charset]   (ditto)
-#   add    smcup [enter_ca_mode] (save console; thanks Corinna)
-#   add    rmcup [exit_ca_mode]  (restore console; thanks Corinna)
-#   add    kb2   [center of keypad]
-#   add    u8    [user string 8] \E[?6c
-#   add    el    [clear to end of line] \E[K
-# Notes:
-#   cnorm [make cursor normal] not implemented
-#   flash [flash] not implemented
-#   blink [blink] not implemented very usefully in cygwin? \E[5m
-#   dim   [dim] not implemented very usefully in cygwin? \E[2m
-#   cub1  [cursor back 1] typically \E[D, but ^H is faster?
-#   kNXT  [shifted next key] not implemented
-#   kPRV  [shifted prev key] not implemented
-#   khome [home key] really is \E[1~ NOT \E[H
-#   tbc   [clear tab stops] not implemented
-#   xenl  [newline ignnored after 80 cols] messes up last line? Ehud Karni
-#   smpch [Start PC charset] is \E[11m, same as smacs
-#   rmpch [End PC charset] is \E[10m, same as rmacs
-#   mir   [move in insert mode] fails in tack?
-#   bce   [back color erase] causes problems with change background color?
-#   cvvis [make cursor very visible] causes a stackdump when testing with
-#         testcurs using the output option? \E[?25h\E[?8c
-#   civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c
-#   ech   [erase characters param] broken \E[%p1%dX
-#   kcbt  [back-tab key] not implemented in cygwin?  \E[Z
-#
-# 2005/11/12 -TD
-#	Remove cbt since it does not work in current cygwin
-#	Add 'mir' and 'in' flags based on tack
-cygwin|ansi emulation for Cygwin,
-	am, hs, mir, msgr, xon,
-	colors#8, it#8, pairs#64,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD,
-	cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H,
-	hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G,
-	kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-	kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
-	kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
-	kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
-	nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
-	rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R,
-	sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
-	sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h,
-	smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];,
-	vpa=\E[%i%p1%dd, use=vt102+enq,
-
-# I've supplied this so that you can help test new values and add other
-# features.  Cheers, earnie_boyd@yahoo.com.
-#
-# Some features are from pcansi.  The op value is from linux.  Function-keys
-# are from linux.  These have been tested not to cause problems.  xenl was in
-# this list, but DOES cause problems so it has been removed
-cygwinDBG|Debug Version for Cygwin,
-	am, eo, mir, msgr, xon,
-	colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
-	cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG,
-	ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
-	il1=\E[L, ind=^J, invis=\E[8m, kNXT=\E[6$, kPRV=\E[5$,
-	kb2=\E[G, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
-	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
-	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
-	kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
-	kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
-	knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m,
-	rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, rmir=\E[4l,
-	rmso=\E[m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
-	sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[2g, vpa=\E[%i%p1%dd, use=vt102+enq,
-
-# Key definitions:
-# The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc.  match the
-# encodings used by other x86 environments.  All others are invented for DJGPP.
-# Oddly enough, while several combinations of modifiers are tabulated, there is
-# none for shifted cursor keys.
-#
-#	F1			\E[[A
-#	F2			\E[[B
-#	F3			\E[[C
-#	F4			\E[[D
-#	F5			\E[[E
-#	F6			\E[17~
-#	F7			\E[18~
-#	F8			\E[19~
-#	F9			\E[20~
-#	F10			\E[21~
-#	F11			\E[23~
-#	F12			\E[24~
-#
-#	Delete			\E[3~
-#	Down Arrow		\E[B
-#	End			\E[4~
-#	Home			\E[1~
-#	Insert			\E[2~
-#	Left Arrow		\E[D
-#	Page Down		\E[6~
-#	Page Up			\E[5~
-#	Right Arrow		\E[C
-#	Up Arrow		\E[A
-#
-#	Shift-F1		\E[25~
-#	Shift-F2		\E[26~
-#	Shift-F3		\E[27~
-#	Shift-F4		\E[28~
-#	Shift-F5		\E[29~
-#	Shift-F6		\E[30~
-#	Shift-F7		\E[31~
-#	Shift-F8		\E[32~
-#	Shift-F9		\E[33~
-#	Shift-F10		\E[34~
-#	Shift-F11		\E[35~
-#	Shift-F12		\E[36~
-#
-#	Ctrl-F1			\E[47~
-#	Ctrl-F2			\E[48~
-#	Ctrl-F3			\E[49~
-#	Ctrl-F4			\E[50~
-#	Ctrl-F5			\E[51~
-#	Ctrl-F6			\E[52~
-#	Ctrl-F7			\E[53~
-#	Ctrl-F8			\E[54~
-#	Ctrl-F9			\E[55~
-#	Ctrl-F10		\E[56~
-#	Ctrl-F11		\E[57~
-#	Ctrl-F12		\E[58~
-#
-#	Ctrl-Delete		\E[43~
-#	Ctrl-Down Arrow		\E[38~
-#	Ctrl-End		\E[44~
-#	Ctrl-Home		\E[41~
-#	Ctrl-Insert		\E[42~
-#	Ctrl-Left Arrow		\E[39~
-#	Ctrl-Page Down		\E[46~
-#	Ctrl-Page Up		\E[45~
-#	Ctrl-Right Arrow	\E[40~
-#	Ctrl-Up Arrow		\E[37~
-#
-#	Alt-F1			\E[59~
-#	Alt-F2			\E[60~
-#	Alt-F3			\E[61~
-#	Alt-F4			\E[62~
-#	Alt-F5			\E[63~
-#	Alt-F6			\E[64~
-#	Alt-F7			\E[65~
-#	Alt-F8			\E[66~
-#	Alt-F9			\E[67~
-#	Alt-F10			\E[68~
-#	Alt-F11			\E[79~
-#	Alt-F12			\E[80~
-#
-#	Alt-Delete		\E[65~
-#	Alt-Down Arrow		\E[60~
-#	Alt-End			\E[66~
-#	Alt-Home		\E[41~
-#	Alt-Insert		\E[64~
-#	Alt-Left Arrow		\E[61~
-#	Alt-Page Down		\E[68~
-#	Alt-Page Up		\E[67~
-#	Alt-Right Arrow		\E[62~
-#	Alt-Up Arrow		\E[59~
-#
-# Also:
-#	Alt-A			\E[82~
-#	Alt-B			\E[82~
-#	Alt-C			\E[83~
-#	Alt-D			\E[84~
-#	Alt-E			\E[85~
-#	Alt-F			\E[86~
-#	Alt-G			\E[87~
-#	Alt-H			\E[88~
-#	Alt-I			\E[89~
-#	Alt-J			\E[90~
-#	Alt-K			\E[91~
-#	Alt-L			\E[92~
-#	Alt-M			\E[93~
-#	Alt-N			\E[94~
-#	Alt-O			\E[95~
-#	Alt-P			\E[96~
-#	Alt-Q			\E[97~
-#	Alt-R			\E[98~
-#	Alt-S			\E[99~
-#	Alt-T			\E[100~
-#	Alt-U			\E[101~
-#	Alt-V			\E[102~
-#	Alt-W			\E[103~
-#	Alt-X			\E[104~
-#	Alt-Y			\E[105~
-#	Alt-Z			\E[106~
-djgpp|ansi emulation for DJGPP alpha,
-	am, bce, msgr, xhp, xon, xt,
-	colors#8, it#8, pairs#64,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
-	clear=\E[H\E[J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
-	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
-	indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
-	kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=^M^J,
-	op=\E[37;40m, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%e;25%;%?%p6%t;1%;%?%p7%t;8%;m,
-	sgr0=\E[m, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
-
-djgpp203|Entry for DJGPP 2.03,
-	OTbs, am,
-	cols#80, it#8, lines#25,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H,
-	kcud1=^J, nel=^M^J,
-
-djgpp204|Entry for DJGPP 2.04,
-	OTbs, am, AX,
-	colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
-	clear=\E[H\E[2J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD,
-	cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
-	il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kf0=\E[21~, kf1=\E[[A, kf10=\E[21~, kf2=\E[[B,
-	kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
-	kll=\E[4~, knp=\E[6~, kpp=\E[5~, nel=^M^J, rev=\E[7m,
-	ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, setab=\E[4%p1%dm,
-	setaf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-
-# This is tested using U/Win's telnet.  Scrolling is omitted because it is
-# buggy.  Another odd bug appears when displaying "~" in alternate character
-# set (the emulator spits out error messages).  Compare with att6386 -TD
-uwin|U/Win 3.2 console,
-	am, eo, in, msgr, xenl, xon,
-	colors#8, it#8, ncv#58, pairs#64,
-	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
-	ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH,
-	ich=\E[%p1%d@, ich1=\E[@, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[Y, kf1=\EOP,
-	kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX,
-	khome=\E[H, kich1=\E[@, nel=^M^J, op=\E[39;49m, rc=\E8,
-	rev=\E[7m, rmacs=\E[10m, rmir=\E[4l, rmpch=\E[10m,
-	rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
-	smacs=\E[11m, smir=\E[4h, smpch=\E[11m, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
-
-# This entry fits the Windows NT console when the _POSIX_TERM environment
-# variable is set to 'on'.  While the Windows NT POSIX console is seldom used,
-# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
-# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating
-# systems is not, and (surprise!) they match very well.
-#
-# See:  MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up
-# VI POSIX Editor for Windows NT 3.1".  True to Microsoft form, not only
-# are the installation instructions a pile of mind-numbing bureaucratese,
-# but the termcap entry is actually broken and unusable as given; the :do:
-# capability is misspelled "d".
-#
-# To use this, you need to a bunch of environment variables:
-#
-# SET _POSIX_TERM=on
-# SET TERM=ansi
-# SET TERMCAP=location of termcap file in POSIX file format
-# which is case-sensitive.
-# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap
-# SET TMP=//C/TEMP
-#
-# Important note: setting the TMP environment variable in POSIX style renders
-# it incompatible with a lot of other applications, including Visual C++. So
-# you should have a separate command window just for vi. All the other
-# variables may be permanently set in the Control Panel\System applet.
-#
-# You can find out more about the restrictions of this facility at
-# <http://www.nentug.org/unix-to-nt/ntposix.htm>.
-#
-# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997
-ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode,
-	am, bw, msgr,
-	cols#80, it#8, lines#25,
-	bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
-	home=\E[H, ht=^I, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[V,
-	kcuf1=\E[C, kcuu1=\E[A, nel=\r\E[S, rc=\E[u, rev=\E[7m,
-	ri=\E[T, rmso=\E[m, sc=\E[s, sgr0=\E[0m, smso=\E[7m,
-# From: jew@venus.sunquest.com
-# Date: 19 Feb 93 23:41:07 GMT
-# Here's  a  combination of  ansi and  vt100 termcap
-# entries   that  works  nearly   perfectly  for  me
-# (Gateway 2000 Handbook and Microsoft Works 3.0):
-pcmw|PC running Microsoft Works,
-	am, xenl,
-	cols#80, it#8, lines#24, vt#3,
-	bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
-	clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J,
-	cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
-	cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
-	ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>,
-	rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/lib/tabset/vt100,
-	ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>,
-	tbc=\E[3g$<2/>,
-
-# From: Federico Bianchi
-# This is the entry for the OpenNT terminal.
-# The ntconsole name is for backward compatability.
-# This is for OpenNT 2.0 and later.
-# Later OpenNT was renamed to Interix.
-#
-# Presently it is distributed by Microsoft as Services For Unix (SFU).
-# The 3.5 beta contains ncurses 4.2 (that is header files and executables,
-# the documentation dates from 1.9.9e) -TD
-
-interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color,
-	am, bw, msgr,
-	colors#8, cols#80, lines#25, ncv#3, pairs#64,
-	acsc=`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~q\304r\362s_t\303u\264v\301w\302x\263y\371z\372{\373|\374}\375~\376.\031-\030\,\021+^P0\333p\304r\304y\363z\362{\343|\330}\234,
-	bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[2J, cub=\E[%p1%dD,
-	cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
-	home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
-	indn=\E[%p1%dS, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[M, kend=\E[U, kf0=\EFA,
-	kf1=\EF1, kf10=\EFA, kf11=\EFB, kf12=\EFC, kf13=\EFD,
-	kf14=\EFE, kf15=\EFF, kf16=\EFG, kf17=\EFH, kf18=\EFI,
-	kf19=\EFJ, kf2=\EF2, kf20=\EFK, kf21=\EFL, kf22=\EFM,
-	kf23=\EFN, kf24=\EFO, kf25=\EFP, kf26=\EFQ, kf27=\EFR,
-	kf28=\EFS, kf29=\EFT, kf3=\EF3, kf30=\EFU, kf31=\EFV,
-	kf32=\EFW, kf33=\EFX, kf34=\EFY, kf35=\EFZ, kf36=\EFa,
-	kf37=\EFb, kf38=\EFc, kf39=\EFd, kf4=\EF4, kf40=\EFe,
-	kf41=\EFf, kf42=\EFg, kf43=\EFh, kf44=\EFi, kf45=\EFj,
-	kf46=\EFk, kf47=\EFm, kf48=\EFn, kf49=\EFo, kf5=\EF5,
-	kf50=\EFp, kf51=\EFq, kf52=\EFr, kf53=\EFs, kf54=\EFt,
-	kf55=\EFu, kf56=\EFv, kf57=\EFw, kf58=\EFx, kf59=\EFy,
-	kf6=\EF6, kf60=\EFz, kf61=\EF+, kf62=\EF-,
-	kf63=\EF\014 kf64=\EF$, kf7=\EF7, kf8=\EF8, kf9=\EF9,
-	kich1=\E[L, kll=\E[U, knp=\E[T, kpp=\E[S, ll=\E[U, nel=^M^J,
-	op=\E[m, rc=\E[u, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
-	rmcup=\E[2b\E[u\r\E[K, rmso=\E[m, rmul=\E[m, rs1=\Ec,
-	sc=\E[s, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm,
-	sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[1m, smul=\E[4m,
-
-opennt-35|ntconsole-35|OpenNT-term35 compatible with color,
-	lines#35, use=opennt,
-
-opennt-50|ntconsole-50|OpenNT-term50 compatible with color,
-	lines#50, use=opennt,
-
-opennt-60|ntconsole-60|OpenNT-term60 compatible with color,
-	lines#60, use=opennt,
-
-opennt-100|ntconsole-100|OpenNT-term100 compatible with color,
-	lines#100, use=opennt,
-
-# OpenNT wide terminals
-opennt-w|opennt-25-w|ntconsole-w|ntconsole-25-w|OpenNT-term-w compat with color,
-	cols#125, use=opennt,
-
-opennt-35-w|ntconsole-35-w|OpenNT-term35-w compatible with color,
-	lines#35, use=opennt-w,
-
-opennt-50-w|ntconsole-50-w|OpenNT-term50-w compatible with color,
-	lines#50, use=opennt-w,
-
-opennt-60-w|ntconsole-60-w|OpenNT-term60-w compatible with color,
-	lines#60, use=opennt-w,
-
-opennt-w-vt|opennt-25-w-vt|ntconsole-w-vt|ntconsole-25-w-vt|OpenNT-term-w-vt compat with color,
-	cols#132, use=opennt,
-
-# OpenNT terminals with no smcup/rmcup (names match termcap entries)
-interix-nti|opennt-nti|opennt-25-nti|ntconsole-25-nti|OpenNT-nti compatible with color,
-	rmcup@, smcup@, use=opennt,
-
-opennt-35-nti|ntconsole-35-nti|OpenNT-term35-nti compatible with color,
-	lines#35, use=opennt-nti,
-
-opennt-50-nti|ntconsole-50-nti|OpenNT-term50-nti compatible with color,
-	lines#50, use=opennt-nti,
-
-opennt-60-nti|ntconsole-60-nti|OpenNT-term60-nti compatible with color,
-	lines#60, use=opennt-nti,
-
-opennt-100-nti|ntconsole-100-nti|OpenNT-term100-nti compatible with color,
-	lines#100, use=opennt-nti,
-
-######## COMMON TERMINAL TYPES
-#
-# This section describes terminal classes and maker brands that are still
-# quite common, but have proprietary command sets not blessed by ANSI.
-#
-
-#### Altos
-#
-# Altos made a moderately successful line of UNIX boxes.  In 1990 they were
-# bought out by Acer, a major Taiwanese manufacturer of PC-clones.
-# Acer has a web site at http://www.acer.com.
-#
-# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993
-# His comments suggest they were shipped with the system.
-#
-
-# (altos2: had extension capabilities
-#	:c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
-#	:c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
-#	:c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
-#	:cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
-#	:XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
-#	:YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\
-#	:HL=^AP\r:SP=\E[i:\
-#	:IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
-#	:LO=\E[0q:LC=\E[5q:LL=\E[6q:\
-# Comparison with the k* capabilities makes it obvious that the c* things are
-# shift keys.  I have renamed them to keys 32 and up accordingly.  Also,
-# :sr: was given as a boolean-- esr)
-altos2|alt2|altos-2|altos II,
-	cols#80, it#8, lines#24, xmc#0,
-	clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[1B, cuf1=\E[1C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch1=\E[P, dl1=\E[M,
-	ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
-	if=/usr/local/share/tabset/vt100, il1=\E[L, ind=^J,
-	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kDL=^Am\r,
-	kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^AM\r, kel=^AN\r,
-	kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
-	kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
-	kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
-	kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, khome=\E[f, kil1=^AJ\r, kind=^AO\r,
-	nel=^M^J, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
-	smam=\E[?7h, smso=\E[7m, smul=\E[4m,
-# (altos3: had extension capabilities
-#	:c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
-#	:c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
-#	:c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
-#	:cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
-#	:XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
-#	:HL=^AP\r:SP=\E[i:\
-#	:IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
-altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V,
-	blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2,
-altos4|alt4|altos-4|altos IV,
-	use=wy50,
-# (altos7: had extension capabilities:
-#	:GG#0:GI=\EH8:GF=\EH7:\
-#	:c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
-#	:c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
-#	:c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
-#	:cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
-# Comparison with the k* capabilities makes it obvious that the c* things are
-# shift keys.  I have renamed them to keys 32 and up accordingly.  I have
-# also made this entry relative to adm12 in order to give it an <sgr>. The
-# <invis> imported by use=adm+sgr may work, let me know. -- esr)
-altos7|alt7|altos VII,
-	am, mir,
-	cols#80, lines#24, xmc#0,
-	acsc=j5k3l2m1n8q\:t4u9v=w0x6, blink=\EG2, bold=\EGt,
-	clear=\E+^^, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dim=\EGp, dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, il1=\EE,
-	ind=^J, invis=\EG1,
-	is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r,
-	kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=^AM\r, kel=^AN\r,
-	kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
-	kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
-	kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
-	kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, khome=^^, kil1=^AJ\r, kind=^AO\r,
-	knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=^M^J, ri=\Ej,
-	rmir=\Er, smir=\Eq, use=adm+sgr,
-altos7pc|alt7pc|altos PC VII,
-	kend=\ET, use=altos7,
-
-#### Hewlett-Packard (hp)
-#
-#	Hewlett-Packard
-#	8000 Foothills Blvd
-#	Roseville, CA 95747
-#	Vox: 1-(916)-785-4363	(Technical response line for VDTs)
-#	     1-(800)-633-3600	(General customer support)
-#
-#
-# As of March 1998, HP no longer has any terminals in production.
-# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being
-# supported (they still have parts). So are the 2392a and 2394a.
-# See the WORKSTATION CONSOLES section for the 700s.
-#
-
-# Generic HP terminal - this should (hopefully) work on any HP terminal.
-hpgeneric|hp|hewlett-packard generic terminal,
-	OTbs, OTpt, am, da, db, mir, xhp,
-	cols#80, lines#24, lm#0, vt#6,
-	bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\E&a%p2%dc%p1%dY$<6>, cuu1=\EA, dch1=\EP, dl1=\EM,
-	ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL,
-	ind=^J, kbs=^H, kcbt=\Ei, rmir=\ER, rmso=\E&d@, rmul=\E&d@,
-	sgr0=\E&d@, smir=\EQ, smso=\E&dJ, smul=\E&dD, tbc=\E3,
-	vpa=\E&a%p1%dY,
-
-hp110|hewlett-packard model 110 portable,
-	lines#16, use=hpgeneric,
-
-hp+pfk+cr|hp function keys with CR,
-	kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r,
-	kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r,
-
-hp+pfk-cr|hp function keys w/o CR,
-	kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev,
-	kf8=\Ew,
-
-# The hp2621s use the same keys for the arrows and function keys,
-# but not separate escape sequences. These definitions allow the
-# user to use those keys as arrow keys rather than as function
-# keys.
-hp+pfk+arrows|hp alternate arrow definitions,
-	kcub1=\Eu\r, kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1@,
-	kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, khome=\Ep\r, kind=\Er\r,
-	kll=\Eq\r, kri=\Es\r,
-
-hp+arrows|hp arrow definitions,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
-	kind=\ES, kll=\EF, kri=\ET,
-
-# Generic stuff from the HP 262x series
-#
-hp262x|HP 262x terminals,
-	xhp,
-	blink=\E&dA, dch1=\EP$<2>, ed=\EJ, ht=\011$<2>, ind=\ES,
-	invis=\E&dS, ip=$<2>, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
-	kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET,
-	krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
-	sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c,
-	sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, smul=\E&dD,
-
-# Note: no <home> on HPs since that homes to top of memory, not screen.
-# Due to severe 2621 braindamage, the only way to get the arrow keys to
-# transmit anything at all is to turn on the function key labels
-# with <smkx>, and even then the user has to hold down shift!
-# The default 2621 turns off the labels except when it has to to
-# enable the function keys. If your installation prefers labels
-# on all the time, or off all the time (at the "expense" of the
-# function keys), use 2621-nl or 2621-wl.
-#
-# Note: there are newer ROMs for 2621's that allow you to set
-# strap A so the regular arrow keys xmit \EA, etc, as with the
-# 2645. However, even with this strap set, the terminal stops
-# xmitting if you reset it, until you unset and reset the strap!
-# Since there is no way to set/unset the strap with an escape
-# sequence, we don't use it in the default.
-# If you like, you can use 2621-ba (brain-damaged arrow keys).
-hp2621-ba|2621 w/new rom and strap A set,
-	rmkx@, smkx@, use=hp+arrows, use=hp2621,
-
-# hp2621 with function labels. Most of the time they are off,
-# but inside vi, the function key labels appear. You have to
-# hold down shift to get them to xmit.
-hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels,
-	is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl,
-hp2621-fl|hp 2621,
-	xhp@, xon,
-	pb#19200,
-	cbt=\Ei, cup=\E&a%p2%dc%p1%dY, dch1=\EP$<2>, ht=\011$<2>,
-	ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, rmso=\E&d@, rmul=\E&d@,
-	sgr0=\E&d@, smkx=\E&jB, smso=\E&dD, smul=\E&dD,
-	use=hp+pfk+cr, use=hpgeneric,
-
-# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
-hp2621p|hp 2621 with printer,
-	mc4=\E&p13C, mc5=\E&p11C, use=hp2621,
-
-hp2621p-a|hp2621p with fn as arrows,
-	use=hp+pfk+arrows, use=hp2621p,
-
-# hp2621 with k45 keyboard
-hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard,
-	kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621,
-
-# 2621 using all 48 lines of memory, only 24 visible at any time.
-hp2621-48|48 line 2621,
-	lines#48,
-	cup=\E&a%p2%dc%p1%dR, home=\EH, vpa=\E&a%p1%dR,
-	use=hp2621,
-
-# 2621 with no labels ever. Also prevents vi delays on escape.
-hp2621-nl|hp 2621 with no labels,
-	kcub1@, kcud1@, kcuf1@, kcuu1@, khome@, rmkx@, smkx@,
-	use=hp2621-fl,
-
-# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
-# (wrong).
-#
-hp2621-nt|hp 2621 w/no tabs,
-	ht@, use=hp2621,
-
-# Hp 2624 B with 4 or 10 pages of memory.
-#
-# Some assumptions are made with this entry. These settings are
-# NOT set up by the initialization strings.
-#
-# Port Configuration
-# 	RecvPace=Xon/Xoff
-# 	XmitPace=Xon/Xoff
-# 	StripNulDel=Yes
-#
-# Terminal Configuration
-# 	InhHndShk=Yes
-# 	InhDC2=Yes
-# 	XmitFnctn(A)=No
-# 	InhEolWrp=No
-#
-# Note: the 2624 DOES have a true <home>, believe it or not!
-#
-# The 2624 has an "error line" to which messages can be sent.
-# This is CLOSE to what is expected for a "status line". However,
-# after a message is sent to the "error line", the next carriage
-# return is EATEN and the "error line" is turned back off again!
-# So I guess we can't define <hs>, <eslok>, <wsl>, <dsl>, <fsl>, <tsl>.
-#
-# This entry supports emacs (and any other program that uses raw
-# mode) at 4800 baud and less. I couldn't get the padding right
-# for 9600.
-#
-# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr)
-hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B,
-	da, db,
-	lm#96,
-	flash=\E&w13F$<66/>\E&w12F$<66/>\E&w13F$<66/>\E&w12F,
-	use=hp+labels, use=scrhp,
-
-# This hp2626 entry does not use any of the fancy windowing stuff
-# of the 2626.
-#
-# Indeed, terminfo does not yet handle such stuff. Since changing
-# any window clears memory, it is probably not possible to use
-# this for screen opt.
-#
-# ed is incredibly slow most of the time - I am guessing at the
-# exact padding. Since the terminal uses xoff/xon this is intended
-# only for cost computation, so that the terminal will prefer el
-# or even dl1 which is probably faster!
-#
-# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only
-# extra slow on the last line of the window.
-#
-# The padding probably should be changed.
-#
-hp2626|hp2626a|hp2626p|hp 2626,
-	da, db,
-	lm#0, pb#19200,
-	ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
-	is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk+cr,
-	use=hp+labels, use=scrhp,
-
-# This entry is for sysline. It allocates a 23 line window with
-# a 115 line workspace for regular use, and a 1 line window for
-# the status line.
-#
-# This assumes port 2 is being used.
-# Turn off horizontal line, Create ws #1 with 115 lines,
-# Create ws #2 with 1 line, Create window #1 lines 1-23,
-# Create window #2 lines 24-24, Attach cursor to workspace #1.
-# Note that this clears the tabs so it must be done by tset before
-# it sets the tabs.
-#
-hp2626-s|hp 2626 using only 23 lines,
-	eslok, hs,
-	lines#23,
-	fsl=\E&d@\E&w7f2p1I\E&w4f1I,
-	is1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r,
-	tsl=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC, use=hp2626,
-# Force terminal back to 24 lines after being 23.
-hp2626-ns|hp 2626 using all 24 lines,
-	is1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r,
-	use=hp2626,
-# Various entries useful for small windows on 2626.
-hp2626-12|hewlett-packard 2626 12 lines,
-	lines#12, use=hp2626,
-hp2626-12x40|hewlett-packard 2626 12 lines 40 columns,
-	cols#40, lines#12, use=hp2626,
-hp2626-x40|hewlett-packard 2626 40 columns,
-	cols#40, use=hp2626,
-hp2626-12-s|hewlett-packard 2626 11 lines plus status,
-	lines#11, use=hp2626-s,
-
-#
-# hp2627 color tubes from University of Wisconsin
-#
-hp2627a-rev|hp 2627 with reverse video colors,
-	cr=^M, cud1=^J, ht=^I, ind=^J,
-	is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r,
-	kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmul=\E&v0S\E&d@,
-	smul=\E&dD\E&v1S, use=hp2621-nl,
-hp2627a|hp 2627 color terminal with no labels,
-	cr=^M, cud1=^J, ht=^I, ind=^J,
-	is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r,
-	kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmso=\E&v0S,
-	rmul=\E&v0S\E&d@, smso=\E&v2S, smul=\E&dD\E&v1S,
-	use=hp2621-nl,
-hp2627c|hp 2627 color (cyan) terminal with no labels,
-	cr=^M, cud1=^J, ht=^I, ind=^J,
-	is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r,
-	kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, use=hp2627a,
-
-# hp2640a doesn't have the Y cursor addressing feature, and C is
-# memory relative instead of screen relative, as we need.
-#
-hp2640a|hp 2640a,
-	cup@, rmkx@, smkx@, use=hp2645,
-
-hp2640b|hp2644a|hp 264x series,
-	rmkx@, smkx@, use=hp2645,
-
-# (hp2641a: removed unknown :gu: -- esr)
-hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry,
-	am, da, db, mir, xhp,
-	cols#80, lines#24,
-	bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
-	ed=\EJ, el=\EK, hpa=\E&a%p1%2dC, ht=^I,
-	if=/usr/local/share/tabset/std, il1=\EL, ind=^J,
-	is2=\EE$<500/>, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
-	rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
-	vpa=\E&a%p1%2dY,
-
-# This terminal should be used at 4800 baud or less. It needs padding for
-# plain characters at 9600, I guessed at an appropriate cr delay.  It really
-# wants ^E/^F handshaking, but that doesn't work well even if you write
-# software to support it.
-hp2645|hp45|HP 2645 series,
-	pb#9600,
-	blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
-	ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL,
-	kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, rev=\E&dB,
-	rmkx=\E&s0A,
-	sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c,
-	sgr0=\E&d@, smkx=\E&s1A, smul=\E&dD, use=hpgeneric,
-# You should use this terminal at 4800 baud or less.
-hp2648|hp2648a|HP 2648a graphics terminal,
-	clear=\EH\EJ$<50>, cup=\E&a%p2%dc%p1%dY$<20>,
-	dch1=\EP$<7>, ip=$<5>, use=hp2645,
-
-# The HP 150 terminal is a fairly vanilla HP terminal, with the
-# clreol standout problem. It also has graphics capabilities and
-# a touch screen, which we don't describe here.
-hp150|hewlett packard Model 150,
-	OTbs, use=hp2622,
-
-# HP 2382a terminals, "the little ones." They don't have any
-# alternate character set support and sending out ^N/^O will
-# leave the screen blank.
-hp2382a|hp2382|hewlett packard 2382a,
-	da, db,
-	lh#1, lm#48,
-	acsc@,
-	pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
-	rmacs@,
-	sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c,
-	sgr0=\E&d@, smacs@, use=hp+labels, use=scrhp,
-
-hp2621-a|hp2621a-a|hp2621 with fn as arrows,
-	use=hp+pfk+arrows, use=hp2621-fl,
-
-# newer hewlett packard terminals
-
-newhpkeyboard|generic entry for HP extended keyboard,
-	kbs=^H, kcbt=\Ei, kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
-	kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF, knp=\EU, kpp=\EV,
-	kri=\ES, krmir=\ER, rmkx=\E&s0A, smkx=\E&s1A,
-	use=hp+pfk-cr,
-
-newhp|generic entry for new hewlett packard terminals,
-	am, bw, mir, xhp, xon,
-	cols#80, lines#24, pb#4800,
-	acsc=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRmFn/q\,t5u6v8w7x.,
-	bel=^G, blink=\E&dA, bold=\E&dF, cbt=\Ei, cr=^M, cub1=^H,
-	cud1=^J, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH,
-	dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=^J,
-	invis=\E&dS, ip=$<2>, is1=\E&jB$<8>, nel=^M^J,
-	pfkey=\E&f0a%p1%dk0d%p2%l%dL%p2%s,
-	pfloc=\E&f1a%p1%dk0d%p2%l%dL%p2%s,
-	pfx=\E&f2a%p1%dk0d%p2%l%dL%p2%s, rev=\E&dB, ri=\ET,
-	rmacs=^O, rmir=\ER, rmso=\E&d@, rmul=\E&d@, rs1=\Eg,
-	sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;,
-	sgr0=\E&d@\017, smacs=^N, smir=\EQ, smso=\E&dJ, smul=\E&dD,
-	tbc=\E3, use=newhpkeyboard,
-
-memhp|memory relative addressing for new HP ttys,
-	vt#6,
-	clear=\EH\EJ$<40>, cub=\E&a-%p1%dC, cud=\E&a+%p1%dR,
-	cuf=\E&a+%p1%dC, cup=\E&a%p1%dr%p2%dC, cuu=\E&a-%p1%dR,
-	home=\EH, hpa=\E&a%p1%dC, ll=\E&a23R\r,
-	mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dR, use=newhp,
-
-scrhp|screen relative addressing for new HP ttys,
-	clear=\E&a0c0Y\EJ$<40>, cub=\E&a-%p1%dC,
-	cud=\E&a+%p1%dR, cuf=\E&a+%p1%dC,
-	cup=\E&a%p1%dy%p2%dC$<10>, cuu=\E&a-%p1%dR,
-	home=\E&a0y0C, hpa=\E&a%p1%dC, ll=\E&a0y0C\EA,
-	mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dY, use=newhp,
-
-# (hp+labels: added label values from a BRL termcap -- esr)
-hp+labels|"standard" label info for new HP ttys,
-	lh#2, lw#8, nlab#8,
-	lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8,
-	pln=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
-	rmln=\E&j@, smln=\E&jB,
-
-hp+printer|"standard" printer info for HP ttys,
-	ff=\E&p4u0C, mc0=\EH\E&p4dF, mc4=\E&p13C, mc5=\E&p11C,
-
-
-# The new hp2621b is kind of a cross between the old 2621 and the
-# new 262x series of machines. It has dip-switched options.
-# The firmware has a bug in it such that if you give it a null
-# length label, the following character is eaten!
-hp2621b|hp 2621b with old style keyboard,
-	lh#1, lm#48, lw#8, nlab#8,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
-	kind=\ET, kll=\EF, kri=\ES,
-	pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r,
-	smln=\E&jB, use=hp2621,
-
-hp2621b-p|hp 2621b with printer,
-	use=hp+printer, use=hp2621b,
-
-# hp2621b - new 2621b with new extended keyboard
-# these are closer to the new 26xx series than the other 2621b
-hp2621b-kx|hp 2621b with extended keyboard,
-	use=newhpkeyboard, use=hp2621b,
-
-hp2621b-kx-p|hp 2621b with new keyboard & printer,
-	use=hp+printer, use=hp2621b-kx,
-
-# Some assumptions are made in the following entries.
-# These settings are NOT set up by the initialization strings.
-#
-#    Port Configuration
-# RecvPace=Xon/Xoff	XmitPace=Xon/Xoff	StripNulDel=Yes
-#
-#    Terminal Configuration
-# InhHndShk(G)=Yes	InhDC2(H)=Yes
-# XmitFnctn(A)=No		InhEolWrp=No
-#
-#
-# Hp 2622a & hp2623a display and graphics terminals
-#
-hp2622|hp2622a|hp 2622,
-	da, db,
-	lm#0, pb#19200,
-	is2=\E&dj@\r, use=hp+pfk+cr, use=hp+labels, use=scrhp,
-
-# The 2623 is a 2622 with extra graphics hardware.
-hp2623|hp2623a|hp 2623,
-	use=hp2622,
-
-hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer,
-	use=hp+printer, use=hp2624,
-
-# The hewlett packard B can have an optional extra 6 pages of memory.
-hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory,
-	lm#240, use=hp2624,
-
-hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer,
-	lm#240, use=hp2624b-p,
-
-# Color manipulations for HP terminals
-hp+color|hp with colors,
-	ccc,
-	colors#16, ncv#17, pairs#7,
-	initp=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI,
-	oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I,
-	op=\E&v0S, scp=\E&v%p1%dS,
-
-# <is2> sets the screen to be 80 columns wide
-hp2397a|hp2397|hewlett packard 2397A color terminal,
-	is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color,
-
-#  HP 700/44 Setup parameters:
-# Terminal Mode		HP-PCterm
-# Inhibit Auto Wrap	NO
-# Status Line		Host Writable
-# PC Character Set	YES
-# Twenty-Five Line Mode	YES
-# XON/XOFF		@128 or 64 (sc)
-# Keycode Mode 		NO   or YES (sc)
-# Backspace Key		BS or BS/DEL
-#
-# <is2> 	sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
-# \E\\? does not turn off keycode mode
-# <smsc>	sets alternate start/stop; keycode on
-hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode,
-	am, eo, xenl, xon,
-	cols#80, lines#25,
-	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
-	bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[2J\E[H,
-	cnorm=\E[?25h, cr=^M, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
-	ind=^J,
-	is2=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\,
-	kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
-	kf2=\E[18~, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~,
-	kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~,
-	kpp=\E[5~, rmam=\E[?7l,
-	rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\, rmso=\E[m,
-	rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
-	smsc=\E[>11h\EPO**x0/65;1/67\E\\$<250>, smso=\E[7m,
-	smul=\E[4m, xoffc=g, xonc=e,
-#
-# (hp2392: copied <rmir> here from hpex -- esr)
-hp2392|239x series,
-	cols#80,
-	cbt=\Ei, cup=\E&a%p1%dy%p2%dC, kf1=\Ep\r, kf2=\Eq\r,
-	kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r,
-	kf8=\Ew\r, khome=\Eh, kind=\EU, knp=\Eu, kpp=\Ev, kri=\EV,
-	rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD, vpa=\E&a%p1%dY,
-	use=hpsub,
-
-hpsub|hp terminals -- capability subset,
-	am, da, db, mir, xhp, xon,
-	lines#24,
-	bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC,
-	ht=^I, if=/usr/local/share/tabset/stdcrt, il1=\EL, ind=^J,
-	is2=\E&s1A\E<\E&k0\\, kbs=^H, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, khome=\Eh, rmkx=\E&s0A, rmso=\E&d@,
-	sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB,
-
-# hpex:
-#	May be used for most 24 x 80 hp terminals,
-# but has no padding added, so may allow runover in some terminals at high
-# baud rates.  Will not work for hp2640a or hp2640b terminals, hp98x6 and
-# hp98x5 terminal emulators or hp98x6 consoles.
-# 	Adds xy-cursor addressing, vertical cursor addressing, home,
-# last line, and underline capabilities.
-#
-# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
-# moved <rmir> here from hpsub -- esr)
-hpex|hp extended capabilites,
-	cr=^M, cud1=^J, cup=\E&a%p1%dy%p2%dC, ht=^I, ind=^J, kbs=^H,
-	kcub1=^H, kcud1=^J, nel=^M^J, rmir=\ER, rmul=\E&d@, smir=\EQ,
-	smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub,
-
-# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996
-hp2|hpex2|hewlett-packard extended capabilities newer version,
-	am, da, db, mir, xhp,
-	cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, xmc#0,
-	bel=^G, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
-	cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
-	dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
-	il1=\EL, ind=^J, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
-	ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
-	kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
-	kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
-	krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
-	pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
-	pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
-	pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
-	pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rmir=\ER, rmkx=\E&s0A,
-	rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
-	sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
-	sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smln=\E&jB, smso=\E&dB,
-	smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-# HP 236 console
-# From: <ddavis@ic.berkeley.edu>
-hp236|hp236 internal terminal emulator,
-	OTbs, am,
-	cols#80, lines#24,
-	clear=\EF, cnorm=\EDE, cub1=^H,
-	cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\EDB,
-	dch1=\EJ, dl1=\EH, el=\EK, ich1=\EI, il1=\EG, rmso=\ECI,
-	sgr0=\ECI, smso=\EBI,
-
-# This works on a hp300 console running Utah 4.3 BSD
-# From: Craig Leres <leres@okeeffe.berkeley.edu>
-hp300h|HP Catseye console,
-	OTbs, am, da, db, mir, xhp,
-	cols#128, lines#51, lm#0, xmc#0,
-	bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
-	cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
-	dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I,
-	if=/usr/local/share/tabset/stdcrt, il1=\EL, ind=^J, kbs=^H,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
-	rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@,
-	smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, tbc=\E3,
-	vpa=\E&a%p1%dY,
-# From: Greg Couch <gregc@ernie.berkeley.edu>
-hp9837|hp98720|hp98721|HP 9000/300 workstations,
-	OTbs, am, da, db, mir, xhp,
-	cols#128, it#8, lines#46, lm#0,
-	bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cub1=^H, cud1=\EB,
-	cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
-	dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
-	il1=\EL, ind=^J, is2=\E&v0m1b0i&j@, kbs=^H, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
-	ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, knp=\EU,
-	kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S, rmul=\E&d@,
-	sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S, smul=\E&dD,
-	tbc=\E3, vpa=\E&a%p1%dY,
-# HP 9845 desktop computer from BRL
-# (hp9845: removed unknown capability :gu: -- esr)
-hp9845|HP 9845,
-	OTbs, am, da, db, eo, mir, xhp,
-	cols#80, lines#21,
-	OTbc=\ED, clear=\EH\EJ, cuf1=\EC, cup=\E&a%p2%2dc%p1%2dY,
-	cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK,
-	if=/usr/local/share/tabset/std, il1=\EL, rmir=\ER, rmso=\E&d@,
-	smir=\EQ, smso=\E&dB,
-# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
-# (hp98550: replaced /usr/local/share/tabset/9837 with std because <it#8>,<hts=\E1>;
-# added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr)
-hp98550|hp98550a|HP 9000 Series 300 color console,
-	OTbs, am, da, db, mir, xhp,
-	cols#128, it#8, lines#49, lm#0,
-	acsc=, bel=^G, blink=\E&dA, bold=\E&dJ, cbt=\Ei, civis=\E*dR,
-	clear=\EH\EJ, cnorm=\E*dQ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, dim=\E&dH,
-	dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
-	if=/usr/local/share/tabset/std, il1=\EL, ind=^J, invis=\E&ds,
-	kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
-	kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
-	khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
-	knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, rev=\E&dJ,
-	rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
-	sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smso=\E&dJ,
-	smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-# From: Victor Duchovni <vic@fine.princeton.edu>
-# (hp700-wy: removed obsolete ":nl=^J:";
-# replaced /usr/local/share/tabset/hp700-wy with std because <it#8>,<hts=\E1> -- esr)
-hp700-wy|HP700/41 emulating wyse30,
-	OTbs, am, bw, mir, msgr,
-	cols#80, it#8, lines#24, xmc#1,
-	cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\EY, el=\ET$<10/>, home=^^, ht=^I, hts=\E1,
-	if=/usr/local/share/tabset/stdcrt, il1=\EE$<0.7*/>,
-	is1=\E~"\EC\Er\E(\EG0\003\E`9\E`1, kbs=\177, kcbt=\EI,
-	kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ked=\EY,
-	kel=\ET, khome=^^, khts=\EI, kich1=\Eq, krmir=\Er, ll=^^^K,
-	ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>,
-	sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>,
-	smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c,
-hp70092|hp70092a|hp70092A|HP 700/92,
-	am, da, db, xhp,
-	cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8,
-	acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA,
-	bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H,
-	cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
-	dch1=\EP, dim=\E&dH, dl1=\EM, el=\EK, hpa=\E&a%p1%dC, ht=^I,
-	hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
-	ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
-	kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
-	kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
-	krmir=\ER, ktbc=\E3, rev=\E&dB, ri=\ET, rmacs=^O, rmir=\ER,
-	rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
-	sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
-	smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-bobcat|sbobcat|HP 9000 model 300 console,
-	am, da, db, mir, xhp,
-	cols#128, it#8, lines#47, xmc#0,
-	cbt=\Ei, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\E&a%p1%dy%p2%dC$<6/>, cuu1=\EA, dch1=\EP,
-	dl1=\EM$<10*/>, ed=\EJ, el=\EK, hpa=\E&a%p1%dC$<6/>, ht=^I,
-	il1=\EL$<10*/>, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, khome=\Eh, nel=^M^J, rmir=\ER,
-	rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smir=\EQ,
-	smkx=\E&s1A, smso=\E&dB, smul=\E&dD, vpa=\E&a%p1%dY$<6/>,
-gator-t|HP 9000 model 237 emulating extra-tall AAA,
-	lines#94, use=gator,
-gator|HP 9000 model 237 emulating AAA,
-	bw, km, mir, ul,
-	cols#128, it#8, lines#47,
-	bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
-	dch=\E[%p1%dP$<4/>, dch1=\E[P, dl=\E[%p1%dM$<1*/>,
-	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%d`,
-	ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@, il=\E[%p1%dL$<1*/>,
-	il1=\E[L, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
-	rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m,
-	rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-gator-52|HP 9000 model 237 emulating VT52,
-	cols#128, lines#47, use=vt52,
-gator-52t|HP 9000 model 237 emulating extra-tall VT52,
-	lines#94, use=gator-52,
-
-#### Honeywell-Bull
-#
-# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93
-#
-
-# Honeywell Bull terminal.  Its cursor and function keys send single
-# control characters and it has standout/underline glitch.  Most programs
-# do not like these features/bugs.  Visual bell is realized by flashing the
-# "keyboard locked" LED.
-dku7003-dumb|Honeywell Bull DKU 7003 dumb mode,
-	cols#80, lines#25,
-	clear=^]^_, cr=^M, cub1=^Y, cud1=^K, cuf1=^X,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, ed=^_, el=\E[K,
-	flash=\E[2h\E[2l, home=^], ht=^I, ind=^J, kbs=^H, kcub1=^Y,
-	kcud1=^K, kcuf1=^X, kcuu1=^Z, khome=^], nel=^M^J,
-dku7003|Honeywell Bull DKU 7003 all features described,
-	msgr,
-	xmc#1,
-	blink=\E[5m, bold=\E[7m, dim=\E[2m, rev=\E[7m, rmso=\E[m,
-	rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-	use=dku7003-dumb,
-
-#### Lear-Siegler (adm)
-#
-# These guys are long since out of the terminals business, but
-# in 1995 many current terminals still have an adm type as one of their
-# emulations (usually their stupidest, and usually labeled adm3, though
-# these `adm3' emulations normally have adm3a+ capabilities).
-#
-# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a
-# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator')
-# was being held to ground would trigger a send of the top line on the screen.
-# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22
-# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
-# for clearing up this point.)
-
-adm1a|adm1|lsi adm1a,
-	am,
-	cols#80, lines#24,
-	bel=^G, clear=\E;$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^,
-	ind=^J,
-adm2|lsi adm2,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=^J,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
-# (adm3: removed obsolete ":ma=^K^P:" -- esr)
-adm3|lsi adm3,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, ind=^J,
-# The following ADM-3A switch settings are assumed for normal operation:
-#	SPACE		U/L_DISP	CLR_SCRN	24_LINE
-#	CUR_CTL		LC_EN		AUTO_NL		FDX
-# Other switches may be set for operator convenience or communication
-# requirements.  I recommend
-#	DISABLE_KB_LOCK	LOCAL_OFF	103		202_OFF
-#	ETX_OFF		EOT_OFF
-# Most of these terminals required an option ROM to support lower case display.
-# Open the case and look at the motherboard; if you see an open 24-pin DIP
-# socket, you may be out of luck.
-#
-# (adm3a: some capabilities merged in from BRl entry -- esr)
-adm3a|lsi adm3a,
-	OTbs, am,
-	cols#80, lines#24,
-	OTma=^K^P, OTnl=^J, bel=^G, clear=\032$<1/>, cr=^M, cub1=^H,
-	cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=^K, home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L,
-	kcuu1=^K, rs2=^N,
-adm3a+|adm3a plus,
-	kbs=^H, use=adm3a,
-# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr)
-adm5|lsi adm5,
-	xmc#1,
-	bel=^G, cr=^M, cud1=^J, ed=\EY, el=\ET, kbs=^H, khome=^^,
-	rmso=\EG, smso=\EG, use=adm3a+,
-# A lot of terminals other than adm11s use these.  Wherever you see
-# use=adm+sgr with some of its capabilities disabled, try the
-# disabled ones.  They may well work but not have been documented or
-# expressed in the using entry.  We'd like to cook up an <sgr> but the
-# <rmacs>/<smacs> sequences of the using entries vary too much.
-adm+sgr|adm style highlight capabilities,
-	invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, sgr0=\EG0,
-	smso=\EG4, smul=\EG8,
-# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL
-# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs>
-# <khome> from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>.  <clear> could also
-# be ^Z, according to his entry.
-# (adm11: <smul>=\EG4 was obviously erroneous because it also said
-# <rev>=\EG4.  Looking at other ADMs confirms this -- esr)
-adm11|LSI ADM-11,
-	OTbs, am, hs,
-	OTkn#8, cols#80, lines#24,
-	OTnl=^J, bel=^G, blink=\EG2, clear=\E*, cr=^M, cub1=^H,
-	cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=^K, dsl=\Eh, ed=\EY, el=\ET, fsl=\E(\r, home=^^, ht=^I,
-	kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
-	kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
-	kf7=^AF\r, kf8=^AG\r, khome=^^, nel=^M^J, tsl=\EF\E),
-	use=adm+sgr,
-# From: Andrew Scott Beals <bandy@lll-crg.ARPA>
-# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995
-# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996
-# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :".  This formerly had
-# <is2>=\Eq but that looked wrong; this <is2> is from Dave Yost <esquire!yost>
-# via BRL.  That entry asserted <xmc#1>, but I've left that out because
-# neither earlier nor later ADMSs have it -- esr)
-#
-# You will need to get into the supervisor setup before you can set
-# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should
-# see a lot more setup options.
-#
-# While in supervisor setup you can also use following codes:
-#
-# Ctrl-P Personality character selections (configure for example what
-#        arrow keys send, if I recall correctly)
-# Ctrl-T tabs 1-80   use left&right to move and up to set and
-# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor
-# Ctrl-B Binary setup (probably not needed. I think that everything can
-#        be set using normal setup)
-# Ctrl-A Answerback mode (enter answerback message)
-# Ctrl-U User friendly mode (normal setup)
-# Ctrl-D Defaults entire setup and function keys from EPROM tables
-# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds.
-# Ctrl-R Reads both setup and functions keys from NVM.
-# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status
-#
-# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to
-# RTS/CTS used nowadays with virtually every modem and computer. 19200
-# bps works fine with hardware flow control.
-#
-# The following null-modem cable should fix this and enable you to use
-# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also
-# set ADM-12+ for DTR handshaking from supervisor setup.
-#
-# PC Serial   ADM-12+
-#  --------   -------
-#         2 - 3
-#         3 - 2
-#         4 - 5
-#         5 - 20
-#       6,8 - 4
-#         7 - 7
-#        20 - 6,8
-#
-adm12|lsi adm12,
-	OTbs, OTpt, am, mir,
-	OTug#1, cols#80, it#8, lines#24,
-	bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
-	is2=\E0        \E1        \E1        \E1        \E1        \E1        \E1        \E1        \E1,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
-	kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
-	kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, smir=\Eq, tbc=\E0,
-	use=adm+sgr,
-# (adm20: removed obsolete ":kn#7:" -- esr)
-adm20|lear siegler adm20,
-	OTbs, am,
-	cols#80, it#8, lines#24,
-	bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cuf1=^L,
-	cup=\E=%i%p2%{31}%+%c%p1%{31}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, ich1=\EQ, il1=\EE,
-	kf1=^A, kf2=^B, kf3=^W, kf4=^D, kf5=^E, kf6=^X, kf7=^Z, rmso=\E(,
-	sgr0=\E(, smso=\E),
-adm21|lear siegler adm21,
-	xmc#1,
-	bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=30*\ER, ed=\EY, el=\ET,
-	ich1=\EQ, il1=30*\EE, ind=^J, invis@, kbs=^H, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, use=adm+sgr,
-	use=adm3a,
-# (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
-# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
-# removed bogus-looking \200 from before <cup>. -- esr)
-adm22|lsi adm22,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\Ey, el=\Et, home=^^, ht=\Ei, ich1=\EQ, il1=\EE,
-	is2=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0,
-	kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
-	kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
-	kf7=^AF\r, khome=^^, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
-	lf6=F6, lf7=F7, rmso=\E(, sgr0=\E(, smso=\E),
-# ADM 31 DIP Switches
-#
-# This information comes from two versions of the manual for the
-# Lear-Siegler ADM 31.
-#
-# Main board:
-#                  rear of case
-#   +-||||-------------------------------------+
-#   + S1S2                              ||S    +
-#   +                                   ||3    +
-#   +                                          +
-#   +                                ||S       +
-#   +                                ||4       +
-#   +                                          +
-#   +                                          +
-#   +                                          +
-#   +                                          +
-#   +                                          +
-# +-+                                          +-+
-# +                                              +
-# +                               S5 S6 S7       +
-# +                               == == ==       +
-# +----------------------------------------------+
-#            front of case (keyboard)
-#
-#  S1 - Data Rate - Modem
-#  S2 - Data Rate - Printer
-# ------------------------
-# Data Rate   Setting
-# -------------------
-# 50          0 0 0 0
-# 75          1 0 0 0
-# 110         0 1 0 0
-# 134.5       1 1 0 0
-# 150         0 0 1 0
-# 300         1 0 1 0
-# 600         0 1 1 0
-# 1200        1 1 1 0
-# 1800        0 0 0 1
-# 2000        1 0 0 1
-# 2400        0 1 0 1
-# 3600        1 1 0 1
-# 4800        0 0 1 1
-# 7200        1 0 1 1
-# 9600        0 1 1 1
-# x           1 1 1 1
-#
-# S3 - Interface/Printer/Attributes
-# ---------------------------------
-# Printer Busy Control
-# sw1   sw2   sw3
-# ---------------
-# off   off   off   Busy not active, CD disabled
-# off   off   on    Busy not active, CD enabled
-# off   on    off   Busy active on J5-20, CD disabled
-# on    off   off   Busy active on J5-19, CD disabled - Factory Set.
-# on    off   on    Busy active on J5-19, CD enabled
-#
-# sw4   Used in conjuction with S4 for comm interface control - Fact 0
-#
-# sw5   Secondary Channel Control (Hardware implementation only) - Fact 0
-#
-# sw6   ON enables printer BUSY active LOW - Factory Setting
-#       OFF enables printer BUSY active HIGH - If set to this, ADM31 senses
-#
-# sw7   ON - steady cursor - Factory Setting
-#       OFF - blinking cursor
-#
-# sw8   ON causes selected attribute character to be displayed
-#       OFF causes SPACE to be displayed instead - Factory Setting
-#
-# S4 - Interface
-# --------------
-# Modem Interface
-# S3    S4    S4    S4    S4
-# sw4   sw1   sw2   sw3   sw4
-# ---------------------------
-# OFF   ON    OFF   ON    OFF   Enable RS-232C interface, Direct Connect and
-#                               Current Loop disabled - Factory Setting
-# ON    ON    OFF   ON    OFF   Enable Current Loop interface, Direct Connect
-#                               disabled
-# OFF   OFF   ON    OFF   ON    Enable Direct Connect interface, RS-232C and
-#                               Current Loop Disabled
-#
-# sw5   ON disables dot stretching mode - Factory Setting
-#       OFF enables dot stretching mode
-# sw6   ON enables blanking function
-#       OFF enables underline function - Factory Setting
-# sw7   ON causes NULLS to be displayed as NULLS
-#       OFF causes NULLS to be displayed as SPACES - Factory Setting
-#
-# S5 - Word Structure
-# -------------------
-# sw1   ON enables BREAK key - Factory Setting
-#       OFF disables BREAK key
-# sw2   ON selects 50Hz monitor refresh rate
-#       OFF selects 60Hz monitor refresh rate - Factory Setting
-#
-# Modem Port Selection
-# sw3   sw4   sw5
-# ---------------
-# ON    ON    ON    Selects 7 DATA bits, even parity, 2 STOP bits
-# OFF   ON    ON    Selects 7 DATA bits, odd  parity, 2 STOP bits
-# ON    OFF   ON    Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set.
-# OFF   OFF   ON    Selects 7 DATA bits, odd  parity, 1 STOP bit
-# ON    ON    OFF   Selects 8 DATA bits, no   parity, 2 STOP bits
-# OFF   ON    OFF   Selects 8 DATA bits, no   parity, 1 STOP bit
-# ON    OFF   OFF   Selects 8 DATA bits, even parity, 1 STOP bit
-# OFF   OFF   OFF   Selects 8 DATA bits, odd  parity, 1 STOP bit
-#
-# sw6   ON  sends bit 8 a 1 (mark)
-#       OFF sends bit 8 as 0 (space) - Factory Setting
-# sw7   ON  selects Block Mode
-#       OFF selects Conversation Mode - Factory Setting
-# sw8   ON  selects Full Duplex operation
-#       OFF selects Half Duplex operation - Factory Setting
-#
-# S6 - Printer
-# ------------
-# sw1, sw2, sw6, sw7   Reserved - Factory 0
-#
-# Printer Port Selection
-# same as Modem above, bit 8 (when 8 DATA bits) is always = 0
-#
-# sw8   ON   enables Printer Port
-#       OFF disables Printer Port - Factory Setting
-#
-# S7 - Polling Address
-# --------------------
-# sw1-7 Establish ASCII character which designates terminal polling address
-#       ON  = logic 0
-#       OFF = logic 1 - Factory Setting
-# sw8   ON   enables Polling Option
-#       OFF disables Polling Option - Factory Setting
-#
-#
-# On some older adm31s, S4 does not exist, and S5-sw6 is not defined.
-#
-# This adm31 entry uses underline as the standout mode.
-# If the adm31 gives you trouble with standout mode, check the DIP switch in
-# position 6, bank @c11, 25% from back end of the circuit board.  Should be
-# OFF.  If there is no such switch, you have an old adm31 and must use oadm31.
-# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr)
-adm31|lsi adm31 with sw6 set for underline mode,
-	OTbs, am, mir,
-	cols#80, lines#24,
-	bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, ind=^J, is2=\Eu\E0,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
-	kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
-	kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, rmso=\EG0,
-	rmul=\EG0, sgr0=\EG0, smir=\Eq, smso=\EG1, smul=\EG1,
-adm31-old|o31|old adm31,
-	rmul@, smso=\EG4, smul@, use=adm31,
-# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL
-adm36|LSI ADM36,
-	OTbs, OTpt,
-	OTkn#4,
-	if=/usr/local/share/tabset/vt100,
-	is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l,
-	use=vt100,
-# (adm42: removed obsolete ":ma=^K^P:" -- esr)
-adm42|lsi adm42,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, cbt=\EI, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ht=^I,
-	il1=\EE$<270>, ind=^J, invis@, ip=$<6*>, kcub1=^H, kcud1=^J,
-	kcuf1=^L, kcuu1=^K, khome=^^, pad=\177, rmir=\Er, rmul@,
-	smir=\Eq, smul@, use=adm+sgr,
-# The following termcap for the Lear Siegler ADM-42 leaves the
-# "system line" at the bottom of the screen blank (for those who
-# find it distracting otherwise)
-adm42-ns|lsi adm-42 with no system line,
-	cbt=\EI\EF \011, clear=\E;\EF \011,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<6>\EF \011,
-	dch1=\EW\EF \011, dl1=\ER\EF \011, ed=\EY\EF \011,
-	el=\ET\EF \011, il1=\EE\EF \011, rmir=\Er\EF \011,
-	smir=\Eq\EF \011, use=adm42,
-# ADM 1178 terminal -- rather like an ADM-42.  Manual is dated March 1 1985.
-# The insert mode of this terminal is commented out because it's broken for our
-# purposes in that it will shift the position of every character on the page,
-# not just the cursor line!
-# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996
-adm1178|1178|lsi adm1178,
-	am,
-	cols#80, lines#24, xmc#1,
-	bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J,
-	cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET,
-	home=^^, ht=^I, il1=\EE, ind=^J, ip=$<6*/>, kbs=^H, kcub1=^H,
-	kcud1=^J, nel=^M^J, pad=\177, rev=\EG4, rmso=\EG0, rmul=\EG0,
-	sgr0=\E), smso=\EG4, smul=\EG1,
-
-#### Prime
-#
-# Yes, Prime made terminals.  These entries were posted by Kevin J. Cummings
-# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr.
-# Prime merged with ComputerVision in the late 1980s; you can reach them at:
-#
-#	ComputerVision Services
-#	500 Old Connecticut Path
-#	Framingham, Mass.
-#
-
-# Standout mode is dim reverse-video.
-pt100|pt200|wren|fenix|prime pt100/pt200,
-	am, bw, mir, msgr,
-	cols#80, it#8, lines#24,
-	cbt=\E[Z, clear=\E?, cr=^M, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu=\E[%p1%dA,
-	cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M,
-	ed=\E[J\E[r, el=\E[K\E[t, flash=\E$$<200/>\E$P,
-	home=\E$B, ht=^I, il1=\E[L\E[t, ind=^J, kbs=^H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E$A, nel=^M^J,
-	rmcup=, rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m,
-	smcup=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q,
-	smir=\E[4h, smkx=\E[>13h, smso=\E[2;7m, smul=\E[4m,
-pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode,
-	cols#132,
-	cup=\E[%i%p1%d;%p2%dH, use=pt100,
-pt250|Prime PT250,
-	rmso@, smso@, use=pt100,
-pt250w|Prime PT250 in 132-column mode,
-	rmso@, smso@, use=pt100w,
-
-#### Qume (qvt)
-#
-#	Qume, Inc.
-#	3475-A North 1st Street
-#	San Jose CA 95134
-#	Vox: (800)-457-4447
-#	Fax: (408)-473-1510
-#	Net: josed@techsupp.wyse.com (Jose D'Oliveira)
-#
-# Qume was bought by Wyse, but still (as of early 1995) has its own support
-# group and production division.
-#
-# Discontinued Qume models:
-#
-# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+
-# built to replace them, and a qvt119+ which was a 101+ with available wide
-# mode (132 columns).  There was a qvt103 which added vt100/vt131 emulations
-# and an ANSI-compatible qvt203 that replaced it.  Qume started producing
-# ANSI-compatible terminals with the qvt323 and qvt61.
-#
-# Current Qume models (as of February 1995):
-#
-# All current Qume terminals have ANSI-compatible operation modes.
-# Qume is still producing the qvt62, which features emulations for other
-# popular lines such as ADDS, and dual-host capabilities.  The qvt82 is
-# designed for use as a SCO ANSI terminal.  The qvt70 is a color terminal
-# with many emulations including Wyse370, Wyse 325, etc.  Their newest
-# model is the qvt520, which is vt420-compatible.
-#
-# There are some ancient printing Qume terminals under `Daisy Wheel Printers'
-#
-# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its
-# setup mode.  Shift-s should be a configuration save to NVRAM.
-
-qvt101|qvt108|qume qvt 101 and QVT 108,
-	xmc#1, use=qvt101+,
-
-# This used to have <cvvis=\E.2> but no <cnorm> or <civis>.  The BSD termcap
-# file had <cvvis=\EM4 \200\200\200>.  I've done the safe thing and yanked
-# both. The <rev> is from BSD, which also claimed bold=\E( and dim=\E).
-# What seems to be going on here is that this entry was designed so that
-# the normal highlight is bold and standout is dim plus something else
-# (reverse-video maybe?  But then, are there two <rev> sequences?)
-qvt101+|qvt101p|qume qvt 101 PLUS product,
-	am, bw, hs, ul,
-	cols#80, lines#24, xmc#0,
-	bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^J,
-	cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
-	flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
-	ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, kdl1=\ER, ked=\EY, kel=\ET,
-	kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
-	kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
-	khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@, rmso=\E(,
-	smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
-qvt102|qume qvt 102,
-	cnorm=\E., use=qvt101,
-# (qvt103: added <rmam>/<smam> based on init string -- esr)
-qvt103|qume qvt 103,
-	am, xenl, xon,
-	cols#80, it#8, lines#24, vt#3,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C$<2>,
-	cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
-	cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-	hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
-	kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8,
-	rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>,
-	rmso=\E[m$<2>, rmul=\E[m$<2>,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
-	sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=,
-	smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-qvt103-w|qume qvt103 132 cols,
-	cols#132, lines#24,
-	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt103,
-qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals,
-	am, hs, mir, msgr,
-	cols#80, lines#24, xmc#0,
-	bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=^M, cub1=^H,
-	cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=^K, cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey,
-	el=\Et, flash=\En0$<200>\En1, fsl=^M, home=^^, ht=^I,
-	hts=\E1, il1=\EE, ind=^J, is2=\EDF\EC\EG0\Er\E(\E%EX,
-	kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r,
-	kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
-	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
-	mc4=\EA, mc5=\E@, ri=\EJ, rmir=\Er, smir=\Eq, smul=\EG8,
-	tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
-qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines,
-	lines#25, use=qvt119+,
-qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode,
-	cols#132,
-	is2=\EDF\EC\EG0\Er\E(\E%\EX\En4, use=qvt119+,
-qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25,
-	lines#25, use=qvt119+,
-qvt203|qvt203+|qume qvt 203 Plus,
-	dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
-	ip=$<7>, kf0=\E[29~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
-	kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
-	kf9=\E[28~, rmir=\E[4l, smir=\E[4h, use=qvt103,
-qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video),
-	cols#132, lines#24,
-	rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt203,
-#
-#	Since a command is present for enabling 25 data lines,
-#	a specific terminfo entry may be generated for the 203.
-#	If one is desired for the QVT 119 PLUS then 25 lines must
-#	be selected in the status line (setup line 9).
-#
-qvt203-25|QVT 203 PLUS with 25 by 80 column mode,
-	cols#80, lines#25,
-	is2=\E[=40h\E[?3l, use=qvt203,
-qvt203-25-w|QVT 203 PLUS with 25 by 132 columns,
-	cols#132, lines#25,
-	rs2=\E[?3h\E[=40h, use=qvt203,
-
-#### Televideo (tvi)
-#
-#	TeleVideo
-#	550 East Brokaw Road
-#	PO Box 49048    95161
-#	San Jose CA 95112
-#	Vox: (408)-954-8333
-#	Fax: (408)-954-0623
-#
-#
-# These require incredible amounts of padding.
-#
-# All of these terminals (912 to 970 and the tvipt) are discontinued.  Newer
-# Televideo terminals are ANSI and PC-ANSI compatible.
-
-tvi803|televideo 803,
-	clear=\E*$<10>, use=tvi950,
-
-# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
-# Switch settings are:
-#
-# S1  1 2 3 4
-#     D D D D  9600
-#     D D D U    50
-#     D D U D    75
-#     D D U U   110
-#     D U D D   135
-#     D U D U   150
-#     D U U D   300
-#     D U U U   600
-#     U D D D  1200
-#     U D D U  1800
-#     U D U D  2400
-#     U D U U  3600
-#     U U D D  4800
-#     U U D U  7200
-#     U U U D  9600
-#     U U U U 19200
-#
-# S1  5 6 7 8
-#     U D X D  7N1 (data bits, parity, stop bits) (X means ignored)
-#     U D X U  7N2
-#     U U D D  7O1
-#     U U D U  7O2
-#     U U U D  7E1
-#     U U U U  7E2
-#     D D X D  8N1
-#     D D X U  8N2
-#     D U D D  8O1
-#     D U U U  8E2
-#
-# S1  9  Autowrap
-#     U  on
-#     D  off
-#
-# S1 10  CR/LF
-#     U  do CR/LF when CR received
-#     D  do CR when CR received
-#
-# S2  1  Mode
-#     U  block
-#     D  conversational
-#
-# S2  2  Duplex
-#     U  half
-#     D  full
-#
-# S2  3  Hertz
-#     U  50
-#     D  60
-#
-# S2  4  Edit mode
-#     U  local
-#     D  duplex
-#
-# S2  5  Cursor type
-#     U  underline
-#     D  block
-#
-# S2  6  Cursor down key
-#     U  send ^J
-#     D  send ^V
-#
-# S2  7  Screen colour
-#     U  green on black
-#     D  black on green
-#
-# S2  8  DSR status (pin 6)
-#     U  disconnected
-#     D  connected
-#
-# S2  9  DCD status (pin 8)
-#     U  disconnected
-#     D  duplex
-#
-# S2 10  DTR status (pin 20)
-#     U  disconnected
-#     D  duplex
-# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added <khome>, <cub1>, <cud1>,
-# <ind>, <hpa>, <vpa>, <am>, <msgr> from SCO entry -- esr)
-tvi910|televideo model 910,
-	OTbs, am, msgr,
-	cols#80, it#8, lines#24, xmc#1,
-	bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
-	home=\E=\001\001, hpa=\E]%p1%{32}%+%c, ht=^I,
-	if=/usr/local/share/tabset/stdcrt, ind=^J, invis@, kbs=^H,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, kf1=^A@\r,
-	kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
-	kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
-	vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-# From: Alan R. Rogers <rogers%albany@csnet-relay>
-# as subsequently hacked over by someone at SCO
-# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr)
-#
-# Here are the 910+'s DIP switches (U = up, D = down, X = don't care):
-#
-# S1  1 2 3 4:
-#     D D D D  9600     D D D U    50     D D U D    75     D D U U   110
-#     D U D D   135     D U D U   150     D U U D   300     D U U U   600
-#     U D D D  1200     U D D U  1800     U D U D  2400     U D U U  3600
-#     U U D D  4800     U U D U  7200     U U U D  9600     U U U U 19200
-#
-# S1  5 6 7 8:
-#     U D X D  7N1     U D X U  7N2     U U D D  7O1     U U D U  7O2
-#     U U U D  7E1     U U U U  7E2     D D X D  8N1     D D X U  8N2
-#     D U D D  8O1     D U U U  8E2
-#
-# S1  9  Autowrap            (U = on, D = off)
-# S1 10  CR/LF               (U = CR/LF on CR received, D = CR on CR received)
-# S2  1  Mode                (U = block, D = conversational)
-# S2  2  Duplex              (U =  half, D = full)
-# S2  3  Hertz               (U = 50, D = 60)
-# S2  4  Edit mode           (U = local, D = duplex)
-# S2  5  Cursor type         (U = underline, D = block)
-# S2  6  Cursor down key     (U = send ^J, D = send ^V)
-# S2  7  Screen colour       (U = green on black, D = black on green)
-# S2  8  DSR status (pin 6)  (U = disconnected, D = connected)
-# S2  9  DCD status (pin 8)  (U = disconnected, D = connected)
-# S2 10  DTR status (pin 20) (U = disconnected, D = connected)
-#
-tvi910+|televideo 910+,
-	dch1=\EW, dl1=\ER$<33*>, home=^^, ich1=\EQ, il1=\EE$<33*>,
-	kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r,
-	kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r,
-	ll=\E=7\s, use=tvi910,
-
-# (tvi912: removed obsolete ":ma=^K^P^L :", added  <flash> and
-# <khome> from BRL entry -- esr)
-tvi912|tvi914|tvi920|old televideo 912/914/920,
-	OTbs, OTpt, am, msgr,
-	cols#80, it#8, lines#24, xmc#1,
-	bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER$<33*>, ed=\Ey, el=\ET, flash=\Eb$<50/>\Ed, home=^^,
-	ht=^I, hts=\E1, ich1=\EQ, if=/usr/local/share/tabset/stdcrt,
-	il1=\EE$<33*>, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
-	kcuu1=^K, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
-	kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
-	kf9=^AH\r, khome=^^, rmso=\Ek, rmul=\Em, smso=\Ej, smul=\El,
-	tbc=\E3,
-# We got some new tvi912c terminals that act really weird on the regular
-# termcap, so one of our gurus worked this up. Seems that cursor
-# addressing is broken.
-tvi912cc|tvi912 at cowell college,
-	cup@, use=tvi912c,
-
-# tvi{912,920}[bc] - TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C
-# From: Benjamin C. W. Sittler
-#
-# Someone has put a scanned copy of the manual online at:
-#     http://vt100.net/televideo/912b-om/
-#
-# These terminals were produced ca. 1979, and had a 12" monochrome
-# screen, supported 75-9600 baud (no handshaking), monochrome, 7-bit
-# ASCII, and were generally similar to adm3a but with attributes
-# (including some with magic cookies), fancy half-duplex mode, and
-# different bugs.
-#
-# Some operations reqire truly incredible amounts of padding. The
-# insert_line (<il1>) and delete_line (<dl1>) operations in particular
-# are so slow as to be nearly unusable.
-#
-# There may or may not have been a separate, earlier series of 912/920
-# terminals (without the "B" and "C" suffix); I have never seen one,
-# and the manual only describes the "B" and "C" series. The 912 and 920
-# are quite distinct from the 914 and 924, which were much nicer non-
-# magic-cookie terminals similar to the 950.
-#
-# This is a new description for the following TeleVideo terminals,
-# distinguished chiefly by their keyboards:
-#
-#   TVI-912B - very odd layout, no function keys (84 keys)
-#   TVI-920B - typewriter layout, no function keys (103 keys)
-#   TVI-912C - very odd layout, function keys F1-F11 (82 keys)
-#   TVI-920C - typewriter layout, function keys F1-F11 (101 keys)
-#
-# To choose a setting for the TERM variable, start with the model:
-#
-#    Model  || base name
-# ----------||-----------
-#  TVI-912B || tvi912b
-#  TVI-912C || tvi912c
-#  TVI-920B || tvi920b
-#  TVI-920C || tvi920c
-#
-# Then add a suffix from the following table describing installed options
-# and how you'd like to use the terminal:
-#
-#   Use Video | Second | Visual |  Magic  |  Page || feature
-#  Attributes |  Page  |  Bell  | Cookies | Print || suffix
-# ------------|--------|--------|---------|-------||---------
-#      No     |   No   |  N/A   |   N/A   |   No  || -unk
-#      No     |   No   |  N/A   |   N/A   |  Yes  || -p
-#      No     |  Yes   |   No   |   N/A   |   No  || -2p-unk
-#      No     |  Yes   |   No   |   N/A   |  Yes  || -2p-p
-#      No     |  Yes   |  Yes   |   N/A   |   No  || -vb-unk
-#      No     |  Yes   |  Yes   |   N/A   |  Yes  || -vb-p
-#     Yes     |   No   |  N/A   |    No   |  N/A  ||
-#     Yes     |   No   |  N/A   |   Yes   |  N/A  || -mc
-#     Yes     |  Yes   |   No   |    No   |  N/A  || -2p
-#     Yes     |  Yes   |   No   |   Yes   |  N/A  || -2p-mc
-#     Yes     |  Yes   |  Yes   |    No   |  N/A  || -vb
-#     Yes     |  Yes   |  Yes   |   Yes   |  N/A  || -vb-mc
-#
-# So e.g. a model 920 C with second page memory option, visual bell
-# and no magic cookies would be tvi920c-vb; a model 912 B without the
-# second page memory option and using magic cookies would be
-# tvi912b-mc
-#
-# PADDING
-#
-# At 9600 baud, the terminal is prone to overflow its input buffer
-# during complex operations (insert/delete
-# character/line/screen/page), and it does not signal this over the
-# RS232 cable. The typical symptom of an overrun is that the terminal
-# starts beeping, and output becomes garbled.
-#
-# The padding delays in this terminfo were derived using tack(1)
-# running on a Linux box connected to a TVI-920C with a later-model
-# (A49C1-style) ROM running at 9600 baud, so your mileage may
-# vary. The numbers below seem to give the terminal enough time so
-# that it doesn't overflow its input buffer and start losing
-# characters.
-#
-# KEYS
-#
-# If you want to use the FUNCT key on a tvi912[bc], use the
-# corresponding tvi920[bc] terminfo with FUNCT + ... equivalents from
-# the following table (these also work on the 920 series):
-#
-# Unshifted Function Keys:
-#
-#  Key | capname|| Equivalent
-# -----|--------||------------
-#   F1 |  <kf1> || FUNCT + @
-#   F2 |  <kf2> || FUNCT + A
-#   F3 |  <kf3> || FUNCT + B
-#   F4 |  <kf4> || FUNCT + C
-#   F5 |  <kf5> || FUNCT + D
-#   F6 |  <kf6> || FUNCT + E
-#   F7 |  <kf7> || FUNCT + F
-#   F8 |  <kf8> || FUNCT + G
-#   F9 |  <kf9> || FUNCT + H
-#  F10 | <kf10> || FUNCT + I
-#  F11 | <kf11> || FUNCT + J
-#
-# Shifted Function Keys:
-#
-#  SHIFT + Key | capname|| Equivalent
-# -------------|--------||------------
-#   SHIFT + F1 | <kf12> || FUNCT + `
-#   SHIFT + F2 | <kf13> || FUNCT + a
-#   SHIFT + F3 | <kf14> || FUNCT + b
-#   SHIFT + F4 | <kf15> || FUNCT + c
-#   SHIFT + F5 | <kf16> || FUNCT + d
-#   SHIFT + F6 | <kf17> || FUNCT + e
-#   SHIFT + F7 | <kf18> || FUNCT + f
-#   SHIFT + F8 | <kf19> || FUNCT + g
-#   SHIFT + F9 | <kf20> || FUNCT + h
-#  SHIFT + F10 | <kf21> || FUNCT + i
-#  SHIFT + F11 | <kf22> || FUNCT + j
-#
-# PORTS AND SWITCH SETTINGS
-#
-# Here are the switch settings for the TVI-912B/TVI-920B and
-# TVI-912C/TVI-920C:
-#
-# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down:
-# 2: 9600	3: 4800		4: 2400		5: 1200
-# 6:  600	7:  300		8:  150		9:   75
-# 10: 110
-#
-# S2 UART/Terminal options:
-# 		Up			Down
-# 1:		Not used		Not allowed
-# 2:	Alternate character set	  Standard character set
-# 3:	    Full duplex		    Half duplex
-# 4:	    50 Hz refresh	    60 Hz refresh
-# 5:	      No parity		     Send parity
-# 6:	     2 stop bits	     1 stop bit
-# 7:	     8 data bits	     7 data bits
-# 8:		Not used		Not allowed on Rev E or lower
-# 9:	     Even parity	     Odd parity
-# 10:	    Steady cursor	    Blinking cursor
-# 	(On Rev E or lower, use W25 instead of switch 10.)
-#
-# S5 UART/Terminal options:
-# 		Open			Closed
-# 1:	P3-6 Not connected	DSR received on P3-6
-# 2:	P3-8 Not connected	DCD received on P3-8
-#
-# 3 Open, 4 Open:		P3-20 Not connected
-# 3 Open, 4 Closed:	DTR on when terminal is on
-# 3 Closed, 4 Open:	DTR is connected to RTS
-# 3 Closed, 4 Closed:	Not allowed
-#
-# 5 Closed:	HDX printer (hardware control) Rev. K with extension port off,
-# 		all data transmitted out of the modem port (P3) will also be
-# 		transmitted out of the printer port (P4).
-#
-# 6 Open, 7 Open:		Not allowed
-# 6 Open, 7 Closed:	20ma current loop input
-# 6 Closed, 7 Open:	RS232 input
-# 6 Closed, 7 Closed:	Not allowed
-#
-# Jumper options:
-# If the jumper is installed, the effect will occur (the next time the terminal
-# is switched on).
-#
-# S4/W31:	Enables automatic LF upon receipt of CR from
-# 		remote or keyboard.
-# S4/W32:	Enables transmission of EOT at the end of Send.  If not
-# 		installed, a carriage return is sent.
-# S4/W33:	Disables automatic carriage return in column 80.
-# S4/W34:	Selects Page Print Mode as initial condition.  If not
-# 		installed, Extension Mode is selected.
-#
-# NON-STANDARD CAPABILITIES
-#
-# Sending <u9> or <u7> returns a cursor position report in the format
-# YX\r, where Y and X are as in <cup>. This format is described in
-# <u8> and <u6>, but it's not clear how one should write an
-# appropriate scanf string, since we need to subtract %' ' from the
-# character after reading it. The <u9> capability is used by tack(1)
-# to synchronize during padding tests, and seems to work for that
-# purpose.
-#
-# This description also includes the obsolete termcap capabilities
-# has_hardware_tabs (<OTpt>) and backspaces_with_bs (<OTbs>).
-#
-# FEATURES NOT YET DESCRIBED IN THIS TERMINFO
-#
-# The FUNCT modifier actually works with every normal key by sending
-# ^AX\r, where X is the sequence normally sent by that key. This is a
-# sort of meta key not currently describable in terminfo.
-#
-# There are quite a few other keys (especially on the 920 models,) but
-# they are for the most part only useful in block mode.
-#
-# These terminals have lots of forms manipulation features, mainly
-# useful in block mode, including "clear X to nulls" (vs. "clear X to
-# spaces"; nulls are sentinels for "send X" operations); "send X"
-# operations for uploading all or part of the screen; and block-mode
-# editing keys (they don't send escape sequences, but manipulate video
-# memory directly). Block mode is used for local editing, and protect
-# mode (in conjunction with the "write protect" attribute,
-# a.k.a. half-intensity outside of protect mode) is used to control
-# which parts of the screen are edited/sent/printed (by <mc0>).
-#
-# There are at least two major families of ROM, "early" and
-# A49B1/A49C1; the major difference seems to be that the latter ROMs
-# support a few extra escape sequences for manipulating the off-screen
-# memory page, and for sending whole pages back to the host (mainly
-# useful in block mode.) The descriptions in this file don't use any
-# of those sequences: set cursor position including page (\E-PYX,
-# where P is \s for page 0 and ! for page 1 [actually only the LSB of
-# P is taken into account, so e.g. 0 and 1 work too,] and Y and X are
-# as in <cup>); read cursor position (\E/), which is analogous to <u9>
-# and returns PYX\r, where P is \s for page 0 or ! for page 1, and YX
-# are as in <cup>, and some "send page" features mainly useful for
-# forms manipulation.
-#
-# The keyboard enable (\E") and disable (\E#) sequences are unused,
-# except that a terminal reset (<is2>) enables the keyboard.
-#
-# Auto-flip mode (\Ev) is likely faster than the scrolling mode (\Ew)
-# enabled in <is2>, but auto-flip is very jarring so we don't use it.
-#
-# BUGS
-#
-# At least up to the A49B1 and A49C1 ROMs, there are no \Eb and \Ed
-# sequences (I infer that in some TeleVideo terminal they may invert
-# and uninvert the display) so the <flash> sequence given here is a
-# cheesy page-flip instead.
-#
-# The back_tab (<cbt>) sequence (\EI) doesn't work according to
-# tack(1), so it is not included in the descriptions below.
-#
-# It's not clear whether auto_left_margin (<bw>) flag should be set
-# for these terminals; tack says yes, so it is set here, but this
-# differs from other descriptions I've seen.
-#
-# Extension print mode (<mc5>) echoes all characters to the printer
-# port [in addition to displaying them] except for the page print mode
-# sequence (<mc4>); this is a slight violation of the terminfo
-# definition for <mc5> but I don't expect it to cause problems.  We
-# reset to page print mode in <rs1> since it may have been enabled
-# accidentally.
-#
-# The descriptions with plus signs (+) are building blocks.
-
-tvi912b-unk|tvi912c-unk|TeleVideo TVI-912B or TVI-912C (no attributes),
-	OTbs, OTpt, am, bw,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=\032$<50>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%' '%+%c%p2%' '%+%c, cuu1=^K, dch1=\EW$<30>,
-	dl1=\ER$<1*>$<100>, ed=\Ey$<2*>$<10>, el=\ET$<15>,
-	home=^^, ht=^I, hts=\E1, ich1=\EQ$<30>,
-	if=/usr/local/share/tabset/stdcrt, il1=\EE$<1*>$<100>,
-	ind=\n$<10>, is2=\Ew\EA\E'\E"\E(, kcub1=^H, kcud1=^J,
-	kcuf1=^L, kcuu1=^K, kdch1=\177, kent=^M, khome=^^, mc4=\EA,
-	mc5=\E@, rs1=\Ek\010\Em\010\Eq\032, tbc=\E3, u6=%c%c\r,
-	u7=\E?, u8=%c%c\r, u9=\E?,
-
-# This isn't included in the basic capabilities because it is
-# typically unusable in combination with the full range of video
-# attributes, since the magic cookie attributes turn into ASCII
-# control characters, and the half-intensity ("protected") attribute
-# converts all affected characters to spaces.
-
-tvi912b+printer|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C page print support,
-	mc0=\EP,
-
-# This uses half-intensity mode (<dim>) for standout (<smso>), and
-# exposes no other attributes (half-intensity is the only attribute
-# that does not generate a magic cookie.)
-
-tvi912b+dim|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C half-intensity attribute support,
-	msgr,
-	dim=\E), rmso=\E(, sgr=\E%?%p1%p5%|%t)%e(%;, sgr0=\E(,
-	smso=\E),
-
-# Full magic-cookie attribute support, with half-intensity reverse
-# video for standout. Note that we add a space in the <dim> sequence
-# to give a consistent magic-cookie count. Also note that <sgr> uses
-# backspacing (in the TVI-supported order) to apply all requested
-# attributes with only a single magic cookie.
-
-tvi912b+mc|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C full magic-cookie attribute support,
-	xmc#1,
-	blink=\E\^, dim=\E)\s, invis=\E_, rev=\Ej, rmso=\E(\Ek,
-	rmul=\Em,
-	sgr=\E%?%p1%p5%|%t)%e(%; \010\E%?%p1%p3%|%tj%ek%;\010\E%?%p2%tl%em%;\010\E%?%p7%t_%e%?%p4%t\^%eq%;%;,
-	sgr0=\E(\Ek\010\Em\010\Eq, smso=\E)\Ej, smul=\El,
-
-# This uses the second page memory option to save & restore screen
-# contents. If your terminal is missing the option, this description
-# should still work, but that has not been tested.
-
-tvi912b+2p|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option support,
-	flash=\EK$<100>\EK, rmcup=\032$<50>\EK\E=7\s,
-	smcup=\EK\032$<50>\E(\Ek\010\Em\010\Eq\032$<50>,
-
-# This simulates flashing by briefly toggling to the other page
-# (kludge!)
-
-tvi912b+vb|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option "visible bell" support,
-	bel=\EK$<100>\EK, use=tvi912b+2p,
-
-# Function keys (<kf12> .. <kf22> are shifted <kf1> .. <kf11>)
-
-tvi920b+fn|TeleVideo TVI-920B and TVI-920C function key support,
-	kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^A`\r, kf13=^Aa\r,
-	kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r, kf17=^Ae\r, kf18=^Af\r,
-	kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r, kf21=^Ai\r, kf22=^Aj\r,
-	kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r,
-
-# Combinations of the basic building blocks
-
-tvi912b-2p-unk|tvi912c-2p-unk|tvi912b-unk-2p|tvi912c-unk-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes),
-	use=tvi912b+2p, use=tvi912b-unk,
-
-tvi912b-vb-unk|tvi912c-vb-unk|tvi912b-unk-vb|tvi912c-unk-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes),
-	use=tvi912b+vb, use=tvi912b-unk,
-
-tvi912b-p|tvi912c-p|TeleVideo TVI-912B or TVI-912C (no attributes; page print),
-	use=tvi912b+printer, use=tvi912b-unk,
-
-tvi912b-2p-p|tvi912c-2p-p|tvi912b-p-2p|tvi912c-p-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes; page print),
-	use=tvi912b+2p, use=tvi912b+printer, use=tvi912b-unk,
-
-tvi912b-vb-p|tvi912c-vb-p|tvi912b-p-vb|tvi912c-p-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes; page print),
-	use=tvi912b+vb, use=tvi912b+printer, use=tvi912b-unk,
-
-tvi912b-2p|tvi912c-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; half-intensity attribute),
-	use=tvi912b+2p, use=tvi912b+dim, use=tvi912b-unk,
-
-tvi912b-2p-mc|tvi912c-2p-mc|tvi912b-mc-2p|tvi912c-mc-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; magic cookies),
-	use=tvi912b+2p, use=tvi912b+mc, use=tvi912b-unk,
-
-tvi912b-vb|tvi912c-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; half-intensity attribute),
-	use=tvi912b+vb, use=tvi912b+dim, use=tvi912b-unk,
-
-tvi912b-vb-mc|tvi912c-vb-mc|tvi912b-mc-vb|tvi912c-mc-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; magic cookies),
-	use=tvi912b+vb, use=tvi912b+mc, use=tvi912b-unk,
-
-tvi912b|tvi912c|TeleVideo TVI-912B or TVI-912C (half-intensity attribute),
-	use=tvi912b+dim, use=tvi912b-unk,
-
-tvi912b-mc|tvi912c-mc|TeleVideo TVI-912B or TVI-912C (magic cookies),
-	use=tvi912b+mc, use=tvi912b-unk,
-
-tvi920b-unk|tvi920c-unk|TeleVideo TVI-920B or TVI-920C (no attributes),
-	use=tvi920b+fn, use=tvi912b-unk,
-
-tvi920b-2p-unk|tvi920c-2p-unk|tvi920b-unk-2p|tvi920c-unk-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes),
-	use=tvi920b+fn, use=tvi912b+2p, use=tvi912b-unk,
-
-tvi920b-vb-unk|tvi920c-vb-unk|tvi920b-unk-vb|tvi920c-unk-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes),
-	use=tvi920b+fn, use=tvi912b+vb, use=tvi912b-unk,
-
-tvi920b-p|tvi920c-p|TeleVideo TVI-920B or TVI-920C (no attributes; page print),
-	use=tvi920b+fn, use=tvi912b+printer, use=tvi912b-unk,
-
-tvi920b-2p-p|tvi920c-2p-p|tvi920b-p-2p|tvi920c-p-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes; page print),
-	use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+printer,
-	use=tvi912b-unk,
-
-tvi920b-vb-p|tvi920c-vb-p|tvi920b-p-vb|tvi920c-p-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes; page print),
-	use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+printer,
-	use=tvi912b-unk,
-
-tvi920b-2p|tvi920c-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; half-intensity attribute),
-	use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+dim,
-	use=tvi912b-unk,
-
-tvi920b-2p-mc|tvi920c-2p-mc|tvi920b-mc-2p|tvi920c-mc-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; magic cookies),
-	use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+mc,
-	use=tvi912b-unk,
-
-tvi920b-vb|tvi920c-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; half-intensity attribute),
-	use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+dim,
-	use=tvi912b-unk,
-
-tvi920b-vb-mc|tvi920c-vb-mc|tvi920b-mc-vb|tvi920c-mc-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; magic cookies),
-	use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+mc,
-	use=tvi912b-unk,
-
-tvi920b|tvi920c|TeleVideo TVI-920B or TVI-920C (half-intensity attribute),
-	use=tvi920b+fn, use=tvi912b+dim, use=tvi912b-unk,
-
-tvi920b-mc|tvi920c-mc|TeleVideo TVI-920B or TVI-920C (magic cookies),
-	use=tvi920b+fn, use=tvi912b+mc, use=tvi912b-unk,
-
-# Televideo 921 and variants
-# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
-# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
-# also added empty <acsc> to suppress tic warning -- esr)
-tvi921|televideo model 921 with sysline same as page & real vi function,
-	OTbs, OTpt, am, hs, xenl, xhp,
-	cols#80, lines#24, xmc#0,
-	acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
-	cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
-	el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
-	if=/usr/local/share/tabset/stdcrt, il1=\EE, ind=^J, invis@,
-	is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, kcub1=^H,
-	kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER$<1*/>,
-	ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=^M^J, rmacs=\E%%,
-	rmir=, smacs=\E$, smir=, tsl=\Ef\EG0, use=adm+sgr,
-# without the beeper
-# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
-# also added empty <acsc> to suppress tic warning -- esr)
-tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper,
-	am, hs, xenl, xhp,
-	cols#80, lines#24, xmc#0,
-	acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
-	cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
-	el=\ET, flash=\Eb$<200/>\Ed, fsl=\Eg, home=^^, ht=^I,
-	ich1=\EQ, if=/usr/local/share/tabset/stdcrt, il1=\EE, ind=^J,
-	invis@, is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z,
-	kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
-	kdl1=\ER$<1*/>, ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE,
-	nel=^M^J, rmacs=\E%%, smacs=\E$, tsl=\Ef\EG0, use=adm+sgr,
-# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr)
-tvi92D|tvi92B with DTR instead of XON/XOFF & better padding,
-	dl1=\ER$<2*/>, il1=\EE$<2*/>,
-	is2=\El\E"\EF1\E.3\016\EA\E<, kdl1=\ER$<2*/>,
-	kil1=\EE$<2*/>, use=tvi92B,
-
-# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>.  I put the new strings
-# in from a BSD termcap file because it looks like they do something the
-# old ones skip -- esr)
-tvi924|televideo tvi924,
-	am, bw, hs, in, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, wsl#80, xmc#0,
-	bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0,
-	cnorm=\E.3, cr=^M, csr=\E_%p1%{32}%+%c%p2%{32}%+%c,
-	cub1=^H, cud1=^V, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\E.1,
-	dch1=\EW, dl1=\ER, dsl=\Es0\Ef\031, ed=\Ey, el=\Et,
-	flash=\Eb$<200>\Ed, fsl=\031\Es1, home=^^, ht=^I, hts=\E1,
-	ich1=\EQ, if=/usr/local/share/tabset/stdcrt, il1=\EE, ind=^J,
-	invis@, is1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0,
-	kbs=^H, kclr=\E*0, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
-	kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A@\r, kf1=^AA\r,
-	kf10=^AJ\r, kf11=^AK\r, kf12=^AL\r, kf13=^AM\r, kf14=^AN\r,
-	kf15=^AO\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, kf5=^AE\r,
-	kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, khome=^^,
-	kich1=\EQ, kil1=\EE, lf0=F1, lf1=F2, lf10=F11, lf2=F3, lf3=F4,
-	lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10,
-	pfkey=\E|%p1%{49}%+%c%p2%s\031, ri=\Ej, tbc=\E3, tsl=\Ef,
-	use=adm+sgr,
-
-# TVI925 DIP switches.  In each of these, D = Down and U = Up,
-#
-# Here are the settings for the external (baud) switches (S1):
-#
-#             Position		Baud
-# 7	8	9	10		[Printer]
-# 1	2	3	4		[Main RS232]
-# -----------------------------------------------------
-# D	D	D	D	9600
-# D	D	D	U	  50
-# D	D	U	D	  75
-# D	D	U	U	 110
-# D	U	D	D	 135
-# D	U	D	U	 150
-# D	U	U	D	 300
-# D	U	U	U	 600
-# U	D	D	D	1200
-# U	D	D	U	1800
-# U	D	U	D	2400
-# U	D	U	U	3600
-# U	U	D	D	4800
-# U	U	D	U	7200
-# U	U	U	D	9600
-# U	U	U	U	19200
-#
-#
-# Settings for word length and stop-bits (S1)
-#
-#  Position	Description
-# 5	6
-# ---------------------------
-# U	-	7-bit word
-# D	-	8-bit word
-# -	U	2 stop bits
-# -	D	1 stop bit
-#
-#
-# S2 (external) settings
-#
-# Position	Up	Dn	Description
-# --------------------------------------------
-# 1		X		Local edit
-# 			X	Duplex edit (transmit editing keys)
-# --------------------------------------------
-# 2		X		912/920 emulation
-# 			X	925
-# --------------------------------------------
-# 3			X
-# 4			X	No parity
-# 5			X
-# --------------------------------------------
-# 3			X
-# 4			X	Odd parity
-# 5		X
-# --------------------------------------------
-# 3			X
-# 4		X		Even parity
-# 5		X
-# --------------------------------------------
-# 3		X
-# 4			X	Mark parity
-# 5		X
-# --------------------------------------------
-# 3		X
-# 4		X		Space parity
-# 5		X
-# --------------------------------------------
-# 6		X		White on black display
-# 			X	Black on white display
-# --------------------------------------------
-# 7			X	Half Duplex
-# 8			X
-# --------------------------------------------
-# 7		X		Full Duplex
-# 8			X
-# --------------------------------------------
-# 7			X	Block mode
-# 8		X
-# --------------------------------------------
-# 9			X	50 Hz
-# 		X		60 Hz
-# --------------------------------------------
-# 10		X		CR/LF (Auto LF)
-# 			X	CR only
-#
-# S3 (internal switch) settings:
-#
-# Position	Up	Dn	Description
-# --------------------------------------------
-# 1		X		Keyclick off
-# 			X	Keyclick on
-# --------------------------------------------
-# 2			X	English
-# 3			X
-# --------------------------------------------
-# 2			X	German
-# 3		X
-# --------------------------------------------
-# 2		X		French
-# 3			X
-# --------------------------------------------
-# 2		X		Spanish
-# 3		X
-# --------------------------------------------
-# 4			X	Blinking block cursor
-# 5			X
-# --------------------------------------------
-# 4			X	Blinking underline cursor
-# 5		X
-# --------------------------------------------
-# 4		X		Steady block cursor
-# 5			X
-# --------------------------------------------
-# 4		X		Steady underline cursor
-# 5		X
-# --------------------------------------------
-# 6		X		Screen blanking timer (ON)
-# 			X	Screen blanking timer (OFF)
-# --------------------------------------------
-# 7		X		Page attributes
-# 			X	Line attributes
-# --------------------------------------------
-# 8		X		DCD disconnected
-# 			X	DCD connected
-# --------------------------------------------
-# 9		X		DSR disconnected
-# 			X	DSR connected
-# --------------------------------------------
-# 10		X		DTR Disconnected
-# 			X	DTR connected
-# --------------------------------------------
-#
-# (tvi925: BSD has <clear=\E*>.  I got <is2> and <ri> from there -- esr)
-tvi925|televideo 925,
-	OTbs, am, bw, hs, ul,
-	cols#80, lines#24, xmc#1,
-	bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^V,
-	cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
-	flash=\Eb$<200>\Ed, fsl=^M\Eg, home=^^, ht=^I, hts=\E1,
-	ich1=\EQ, il1=\EE, ind=^J, invis@, is2=\El\E", kbs=^H, kclr=^Z,
-	kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
-	ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
-	kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
-	kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, ri=\Ej, tbc=\E3,
-	tsl=\Eh\Ef, use=adm+sgr,
-# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL
-# to avoid "magic cookie" standout glitch:
-tvi925-hi|TeleVideo Model 925 with half intensity standout mode,
-	xmc@,
-	kbs=^H, kcub1=^H, kcud1=^J, rmso=\E(, smso=\E), use=tvi925,
-
-# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
-# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
-# for additional capabilities,
-# The following tvi descriptions from B:pjphar and virus!mike
-# is for all 950s.  It sets the following attributes:
-# full duplex (\EDF)		write protect off (\E()
-# conversation mode (\EC)	graphics mode off (\E%)
-# white on black (\Ed)		auto page flip off (\Ew)
-# turn off status line (\Eg)	clear status line (\Ef\r)
-# normal video (\E0)		monitor mode off (\EX or \Eu)
-# edit mode (\Er)		load blank char to space (\Ee\040)
-# line edit mode (\EO)		enable buffer control (^O)
-# protect mode off (\E\047)	duplex edit keys (\El)
-# program unshifted send key to send line all (\E016)
-# program shifted send key to send line unprotected (\E004)
-# set the following to nulls:
-#	field delimiter (\Ex0\200\200)
-#	line delimiter (\Ex1\200\200)
-#	start-protected field delimiter (\Ex2\200\200)
-#	end-protected field delimiter (\Ex3\200\200)
-# set end of text delimiter to carriage return/null (\Ex4\r\200)
-#
-#                     TVI 950 Switch Setting Reference Charts
-#
-#                                     TABLE 1:
-#
-#      S1     1     2     3     4     5     6     7     8     9    10
-#          +-----------------------+-----+-----+-----------------------+
-#          | Computer Baud Rate    |Data |Stop | Printer Baud Rate     |
-#          |                       |Bits |Bits |                       |
-#   +------+-----------------------+-----+-----+-----------------------+
-#   |  Up  |        See            |  7  |  2  |        See            |
-#   +------+-----------------------+-----+-----+-----------------------+
-#   | Down |      TABLE 2          |  8  |  1  |      TABLE 2          |
-#   +------+-----------------------+-----+-----+-----------------------+
-#
-#
-#      S2     1     2     3     4     5     6     7     8     9    10
-#          +-----+-----+-----------------+-----+-----------+-----+-----+
-#          |Edit |Cursr|    Parity       |Video|Transmiss'n| Hz  |Click|
-#   +------+-----+-----+-----------------+-----+-----------+-----+-----+
-#   |  Up  | Dplx|Blink|      See        |GonBk|   See     | 60  | Off |
-#   +------+-----+-----+-----------------+-----+-----------+-----+-----+
-#   | Down |Local|St'dy|    TABLE 3      |BkonG|  CHART    | 50  | On  |
-#   +------+-----+-----+-----------------+-----+-----------+-----+-----+
-#
-#                                    TABLE 2:
-#
-#             +-----------+-----+-----+-----+-----+-----------+
-#             | Display   |  1  |  2  |  3  |  4  |   Baud    |
-#             +-----------+-----+-----+-----+-----+           |
-#             | Printer   |  7  |  8  |  9  | 10  |   Rate    |
-#             +-----------+-----+-----+-----+-----+-----------+
-#                         |  D  |  D  |  D  |  D  |   9600    |
-#                         |  U  |  D  |  D  |  D  |     50    |
-#                         |  D  |  U  |  D  |  D  |     75    |
-#                         |  U  |  U  |  D  |  D  |    110    |
-#                         |  D  |  D  |  U  |  D  |    135    |
-#                         |  U  |  D  |  U  |  D  |    150    |
-#                         |  D  |  U  |  U  |  D  |    300    |
-#                         |  U  |  U  |  U  |  D  |    600    |
-#                         |  D  |  D  |  D  |  U  |   1200    |
-#                         |  U  |  D  |  D  |  U  |   1800    |
-#                         |  D  |  U  |  D  |  U  |   2400    |
-#                         |  U  |  U  |  D  |  U  |   3600    |
-#                         |  D  |  D  |  U  |  U  |   4800    |
-#                         |  U  |  D  |  U  |  U  |   7200    |
-#                         |  D  |  U  |  U  |  U  |   9600    |
-#                         |  U  |  U  |  U  |  U  |  19200    |
-#                         +-----+-----+-----+-----+-----------+
-#
-#                                    TABLE 3:
-#                         +-----+-----+-----+-----------+
-#                         |  3  |  4  |  5  |   Parity  |
-#                         +-----+-----+-----+-----------+
-#                         |  X  |  X  |  D  |    None   |
-#                         |  D  |  D  |  U  |     Odd   |
-#                         |  D  |  U  |  U  |    Even   |
-#                         |  U  |  D  |  U  |    Mark   |
-#                         |  U  |  U  |  U  |   Space   |
-#                         +-----+-----+-----+-----------+
-#                                 X = don't care
-#
-#                                     CHART:
-#                         +-----+-----+-----------------+
-#                         |  7  |  8  | Communication   |
-#                         +-----+-----+-----------------+
-#                         |  D  |  D  |  Half Duplex    |
-#                         |  D  |  U  |  Full Duplex    |
-#                         |  U  |  D  |     Block       |
-#                         |  U  |  U  |     Local       |
-#                         +-----+-----+-----------------+
-#
-# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:".
-# I also inserted <ich1> and <kich1>; the :ko: string indicated that <ich>
-# should be present and all tvi native modes use the same string for this.
-# Finally, note that BSD has cud1=^V. -- esr)
-tvi950|televideo 950,
-	OTbs, am, hs, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, xmc#1,
-	acsc=b\011c\014d\re\ni\013, bel=^G, cbt=\EI, clear=\E*,
-	cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, el=\Et, flash=\Eb$<200/>\Ed,
-	fsl=^M, home=^^, ht=^I, hts=\E1, ich1=\EQ, il1=\EE, ind=^J,
-	invis@,
-	is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r,
-	kbs=^H, kcbt=\EI, kclr=\E*, kcub1=^H, kcud1=^V, kcuf1=^L,
-	kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A0\r,
-	kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
-	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
-	kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ri=\Ej, rmacs=^X,
-	rmir=\Er, smacs=^U, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
-	use=adm+sgr,
-#
-# is for 950 with two pages adds the following:
-#	set 48 line page (\E\\2)
-#	place cursor at page 0, line 24, column 1 (\E-07 )
-#	set local (no send) edit keys (\Ek)
-#
-# two page 950 adds the following:
-#	when entering ex, set 24 line page (\E\\1)
-#	when exiting ex, reset 48 line page (\E\\2)
-#			 place cursor at 0,24,1 (\E-07 )
-#	set duplex (send) edit keys (\El) when entering vi
-#	set local (no send) edit keys (\Ek) when exiting vi
-#
-tvi950-2p|televideo950 w/2 pages,
-	is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07 \011,
-	rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
-	smkx=\El, use=tvi950,
-#
-# is for 950 with four pages adds the following:
-#	set 96 line page (\E\\3)
-#	place cursor at page 0, line 24, column 1 (\E-07 )
-#
-# four page 950 adds the following:
-#	when entering ex, set 24 line page (\E\\1)
-#	when exiting ex, reset 96 line page (\E\\3)
-#			 place cursor at 0,24,1 (\E-07 )
-#
-tvi950-4p|televideo950 w/4 pages,
-	is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07 \011,
-	rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
-	smkx=\El, use=tvi950,
-#
-# <is2> for reverse video 950 changes the following:
-#	set reverse video (\Ed)
-#
-# set vb accordingly (\Ed ...delay... \Eb)
-#
-tvi950-rv|televideo950 rev video,
-	flash=\Ed$<200/>\Eb,
-	is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0,
-	use=tvi950,
-
-# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv
-tvi950-rv-2p|televideo950 rev video w/2 pages,
-	flash=\Ed$<200/>\Eb,
-	is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07\s,
-	rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
-	smkx=\El, use=tvi950,
-
-# tvi950-rv uses the appropriate entries from 950-4p and 950-rv
-tvi950-rv-4p|televideo950 rev video w/4 pages,
-	flash=\Ed$<200/>\Eb,
-	is2=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07\s,
-	rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
-	smkx=\El, use=tvi950,
-# From: Andreas Stolcke <stolcke@icsi.berkeley.edu>
-# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H";
-# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in
-# the :rs: string, inserted the <ich> implied by the termcap :ko: string.  Note
-# the :ko: string had :cl: in it, which means that one of the original
-# <clear=\E*>, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what
-# the 950 has.   Finally, corrected the <kel> string to match the 950 and what
-# ko implies -- esr)
-# If the BSD termcap file was right, <cup=\E=%p1%{32}%+%c%p2%{32}%+%c> would
-# also work.
-tvi955|televideo 955,
-	OTbs, mc5i, msgr@,
-	it#8, xmc@,
-	acsc=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ, blink=\EG2,
-	civis=\E.0, cnorm=\E.2, cud1=^V, cup=\E[%i%p1%d;%p2%dH,
-	cvvis=\E.1, dim=\E[=5h, ind@, invis=\EG1,
-	is2=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El, kctab=\E2, khts=\E1,
-	knp=\EK, kpp=\EJ, krmir=\EQ, ktbc=\E3, mc0=\EP, rmacs=\E%%,
-	rmam=\E[=7l, rmxon=^N,
-	rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r,
-	sgr0=\EG0\E[=5l, smacs=\E$, smam=\E[=7h, smxon=^O,
-	use=tvi950,
-tvi955-w|955-w|televideo955 w/132 cols,
-	cols#132,
-	is2=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El, use=tvi955,
-# use half-intensity as normal mode, full intensity as <bold>
-tvi955-hb|955-hb|televideo955 half-bright,
-	bold=\E[=5l, dim@, is2=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El,
-	sgr0=\EG0\E[=5h, use=tvi955,
-# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin
-# (tvi970: removed ":sg#0:"; removed <rmso>=\E[m, <rmul>=\E[m;
-# added <am>/<csr>/<home>/<hpa>/<vpa>/<smcup>/<rmcup> from BRL.
-# According to BRL we could have <rmkx>=\E>, <smkx>=\E= but I'm not sure what
-# it does to the function keys.  I deduced <rmam>/<smam>.
-# also added empty <acsc> to suppress tic warning,  -- esr)
-tvi970|televideo 970,
-	OTbs, OTpt, am, da, db, mir, msgr,
-	cols#80, it#8, lines#24,
-	acsc=, cbt=\E[Z, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=\ED, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
-	cuu1=\EM, cvvis=\E[1Q, dch1=\E[P, dl1=\E[M, dsl=\Eg\Ef\r,
-	ed=\E[J, el=\E[K, flash=\E[5m$<200/>\E[m, home=\E[H,
-	hpa=\E[%i%p1%dG, ht=^I, il1=\E[L,
-	is2=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J,
-	kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf1=\E?a, kf2=\E?b, kf3=\E?c, kf4=\E?d, kf5=\E?e, kf6=\E?f,
-	kf7=\E?g, kf8=\E?h, kf9=\E?i, khome=\E[H, ri=\EM, rmacs=\E(B,
-	rmam=\E[?7h, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smacs=\E(B, smam=\E[?7l,
-	smcup=\E[?20l\E[?7h\E[1Q, smir=\E[4h, smso=\E[7m,
-	smul=\E[4m, vpa=\E[%i%p1%dd,
-tvi970-vb|televideo 970 with visual bell,
-	flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
-	use=tvi970,
-tvi970-2p|televideo 970 with using 2 pages of memory,
-	rmcup=\E[H\E[J\E[V, smcup=\E[U\E[?20l\E[?7h\E[1Q,
-	use=tvi970,
-# Works with vi and rogue.  NOTE: Esc v sets autowrap on, Esc u sets 80 chars
-# per line (rather than 40), Esc K chooses the normal character set.  Not sure
-# padding is needed, but adapted from the tvi920c termcap.  The <smso> and
-# <smul> strings are klutzy, but at least use no screen space.
-# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:".  I wish we knew <rmam>,
-# its absence means <smam>=\Ev isn't safe to use. -- esr)
-# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
-# The <ed>/<kf0>/<kf1>/<khome>/<mc4>, and <mc5> caps are from BRL, which says:
-# F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
-tvipt|televideo personal terminal,
-	OTbs, am,
-	cols#80, lines#24,
-	cbt=\EI, clear=^Z, cub1=^H, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER$<5*>,
-	ed=\EY, el=\ET, home=^^, if=/usr/local/share/tabset/stdcrt,
-	il1=\EE$<5*>, is2=\Ev\Eu\EK, kbs=^H, kcub1=^H, kcud1=^J,
-	kcuf1=^L, kcuu1=^K, kf0=^A, kf1=^B, khome=^^, mc4=^T, mc5=^R,
-	rmso=\EF, rmul=\EF, smso=\EG1@A\EH, smul=\EG1B@\EH,
-# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996
-tvi9065|televideo 9065,
-	am, bw, chts, hs, mc5i, mir, msgr, xenl, xon,
-	cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0,
-	wnum#0, wsl#30,
-	acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G,
-	blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z,
-	cnorm=\E.3, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD,
-	cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA,
-	cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp,
-	dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY,
-	el=\ET, flash=\Eb$<15>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
-	ich=\E[%p1%d@, if=/usr/local/share/tabset/stdcrt,
-	il=\E[%p1%dL, il1=\EE, ind=^J, indn=\E[%p1%dS, invis=\EG1,
-	ip=$<3>,
-	is1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er,
-	is2=\EF2\EG0\E\\L, is3=\E<\E[=4l\E[=8h, kHOM=\E\s\s\s,
-	kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
-	kdch1=\EW, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r,
-	kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
-	kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ll=\E[25;1H,
-	mc0=\E[0;0i, mc4=\Ea, mc5=\E`, nel=^M^J,
-	pfkey=\E|%p1%{48}%+%c3%p2%s\031,
-	pfloc=\E|%p1%{48}%+%c2%p2%s\031,
-	pfx=\E|%p1%{48}%+%c1%p2%s\031,
-	pln=\E_%p1%{63}%+%c%p2%s\r, prot=\E&,
-	rep=\E[%p2%db%p1%c, rev=\EG4,
-	rf=/usr/local/share/tabset/stdcrt, ri=\Ej, rin=\E[%p1%dT,
-	rmacs=\E%%, rmam=\E[=7l, rmcup=\E.3\Er\E[1;25r\E[25;0H,
-	rmdc=\0, rmir=\Er, rmln=\E[4;1v, rmso=\EG0, rmul=\EG0,
-	rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l,
-	rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1,
-	rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0,
-	sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p9%t\E$%e\E%%%;,
-	sgr0=\EG0, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
-	smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
-	tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0,
-
-#### Visual (vi)
-#
-# In September 1993, Visual Technology of Westboro, Massachusetts,
-# merged with White Pine Software of Nashua, New Hampshire.
-#
-# White Pine Software may be contacted at +1 603/886-9050.
-# Or visit White Pine on the World Wide Web at URL http://www.wpine.com.
-#
-
-# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
-# Recently I hacked together the following termcap for Visual
-# Technology's Visual 50 terminal. It's a slight modification of
-# the vt52 termcap.
-# It's intended to run when the Visual 50 is in vt52 emulation mode
-# (I know what you're thinking; if it's emulating a vt52, then why
-# another termcap? Well, it turns out that the Visual 50 can handle
-# <dl1> and db(?) among other things, which the vt52 can't)
-# The termcap works OK for the most part. The only problem is on
-# character inserts. The whole line gets painfully redrawn for each
-# character typed. Any suggestions?
-# Beau's entry is combined with the vi50 entry from University of Wisconsin.
-# Note especially the <il1> function.  <kf4>-<kf6> are really l4-l6 in
-# disguise; <kf7>-<kf9> are really l1-l3.
-vi50|visual 50,
-	OTbs, OTpt, am, da, db, msgr,
-	cols#80, it#8, lines#24,
-	OTnl=^J, bel=^G, cbt=\Ez$<4/>, clear=\EH\EJ, cr=^M, cub1=^H,
-	cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, dl1=\EM$<3*/>, ed=\EJ, el=\EK$<16/>, home=\EH,
-	ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV,
-	kf5=\EE, kf6=\E], kf7=\EL, kf8=\Ev, kf9=\EM, khome=\EH,
-	nel=^M^J, ri=\EI, rmso=\ET, rmul=\EW, smso=\EU, smul=\ES,
-# this one was BSD & SCO's vi50
-vi50adm|visual 50 in adm3a mode,
-	am, msgr,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\EM,
-	ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=^J, kbs=^H,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH,
-	rmso=\ET, smso=\EU,
-# From: Jeff Siegal <jbs@quiotix.com>
-vi55|Visual 55,
-	OTbs, am, mir, msgr,
-	cols#80, it#8, lines#24,
-	clear=\Ev, csr=\E_%p1%{65}%+%c%p2%{65}%+%c, cub1=^H,
-	cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, dch1=\Ew, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I,
-	il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EI, rmir=\Eb, rmso=\ET,
-	smir=\Ea, smso=\EU,
-
-# Visual 200 from BRL
-# The following switch settings are assumed for normal operation:
-#	FULL_DUPLEX		SCROLL			CR
-#	AUTO_NEW_LINE_ON	VISUAL_200_EMULATION_MODE
-# Other switches may be set for operator convenience or communication
-# requirements.
-# Character insertion is kludged in order to get around the "beep" misfeature.
-# (This cap is commented out because <smir>/<rmir> is more efficient -- esr)
-# Supposedly "4*" delays should be used for <il1>, <ed>, <clear>, <dch1>,
-# and <dl1> strings, but we seem to get along fine without them.
-vi200|visual 200,
-	OTbs, OTpt, am, mir, msgr,
-	OTkn#10, cols#80, it#8, lines#24,
-	acsc=, bel=^G, cbt=\Ez, clear=\Ev, cnorm=\Ec, cr=^M, cub1=^H,
-	cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, cvvis=\Ed, dch1=\EO, dim=\E4, dl1=\EM, ed=\Ey,
-	el=\Ex, home=\EH, ht=^I, hts=\E1, il1=\EL, ind=^J, invis=\Ea,
-	kbs=^H, kclr=\Ev, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p,
-	kf1=\E?q, kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v,
-	kf7=\E?w, kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei,
-	kil1=\EL, krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI,
-	rmacs=\EG, rmkx=\E>, rmso=\E3,
-	rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX, sgr0=\E3\Eb, smacs=\EF,
-	smkx=\E=, smso=\E4, tbc=\Eg,
-# The older Visuals didn't come with function keys. This entry uses
-# <smkx> and <rmkx> so that the keypad keys can be used as function keys.
-# If your version of vi doesn't support function keys you may want
-# to use vi200-f.
-vi200-f|visual 200 no function keys,
-	is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, kf0=\E?p, kf1=\E?q,
-	kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w,
-	kf8=\E?x, kf9=\E?y, rmkx=\E>, rmso@, smkx=\E=, smso@,
-	use=vi200,
-vi200-rv|visual 200 reverse video,
-	cnorm@, cvvis@, ri@, rmso=\E3, smso=\E4, use=vi200,
-
-# the function keys are programmable but we don't reprogram them to their
-# default values with <is2> because programming them is very verbose. maybe
-# an initialization file should be made for the 300 and they could be stuck
-# in it.
-# (vi300: added <rmam>/<smam> based on init string -- esr)
-vi300|visual 300 ansi x3.64,
-	am, bw, mir, xenl,
-	cols#80, lines#24,
-	bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	dch1=\E[P$<40>, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	il1=\E[L, ind=^J,
-	is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf1=\E_A\E\\, kf2=\E_B\E\\, kf3=\E_C\E\\, kf4=\E_D\E\\,
-	kf5=\E_E\E\\, kf6=\E_F\E\\, kf7=\E_G\E\\, kf8=\E_H\E\\,
-	kf9=\E_I\E\\, khome=\E[H, ri=\EM, rmam=\E[?7l, rmir=\E[4l,
-	rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
-	smso=\E[1m, smul=\E[4m,
-# some of the vi300s have older firmware that has the command
-# sequence for setting editing extent reversed.
-vi300-old|visual 300 with old firmware (set edit extent reversed),
-	is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s,
-	use=vi300,
-
-# Visual 500 prototype entry from University of Wisconsin.
-# The best place to look for the escape sequences is page A1-1 of the
-# Visual 500 manual.  The initialization sequence given here may be
-# overkill, but it does leave out some of the initializations which can
-# be done with the menus in set-up mode.
-# The :xp: line below is so that emacs can understand the padding requirements
-# of this slow terminal.  :xp: is 10 time the padding factor.
-# (vi500: removed unknown :xp#4: termcap;
-# also added empty <acsc> to suppress tic warning -- esr)
-vi500|visual 500,
-	am, mir, msgr,
-	cols#80, it#8, lines#33,
-	acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=^M,
-	csr=\E(%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\EB,
-	cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
-	dch1=\EO$<3*/>, dl1=\EM$<3*/>, ed=\Ey$<3*/>,
-	el=\Ex$<16/>, home=\EH, ht=\011$<8/>, il1=\EL\Ex$<3*/>,
-	ind=^J,
-	is2=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\,
-	kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	khome=\EH, nel=^M^J, rmacs=^O, rmir=\Ej, rmso=\E^G,
-	rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D,
-
-# The visual 550 is a visual 300 with tektronix graphics,
-# and with 33 lines. clear screen is modified here to
-# also clear the graphics.
-vi550|visual 550 ansi x3.64,
-	lines#33,
-	clear=\030\E[H\E[2J, use=vi300,
-
-vi603|visual603|visual 603,
-	hs, mir,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
-	csr=\E[%i%p1%d;%p2%dr, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L,
-	ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r,
-	rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
-	sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=\EP2~,
-	use=vt100,
-
-#### Wyse (wy)
-#
-#	Wyse Technology
-#	3471 North First Street
-#	San Jose, CA 95134
-#	Vox: (408)-473-1200
-#	Fax: (408) 473-1222
-#	Web: http://www.wyse.com
-#
-# Wyse sales can be reached by phone at 1-800-GET-WYSE.  Tech support is at
-# (800)-800-WYSE (option 5 gets you a human).  There's a Web page at the
-# obvious address, <http://www.wyse.com>.  They keep terminfo entries at
-# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>.
-#
-# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995.
-# They now own the Qume and Amdek brands, too.  So these are the people to
-# talk with about all Link, Qume, and Amdek terminals.
-#
-# These entries include a few small fixes.
-# I canceled the bel capacities in the vb entries.
-# I made two trivial syntax fixes in the wyse30 entry.
-# I made some entries relative to adm+sgr.
-#
-#
-# Note: The wyse75, wyse85, and wyse99 have been discontinued.
-
-#	   Although the Wyse 30 can support more than one attribute
-#	it requires magic cookies to do so.  Many applications do not
-#	function well with magic cookies.  The following terminfo uses
-#	the protect mode to support one attribute (dim) without cookies.
-#	If more than one attribute is needed then the wy30-mc terminfo
-#	should be used.
-#
-wy30|wyse30|Wyse 30,
-	am, bw, hs, mc5i, mir, msgr, xon,
-	cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
-	acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
-	civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=^M, cub1=^H,
-	cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=^K, dch1=\EW$<10>, dim=\E`7\E), dl1=\ER$<1>,
-	dsl=\EF\r, ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9,
-	fsl=^M, home=^^, ht=\011$<1>, hts=\E1, il1=\EE$<2>,
-	ind=\n$<2>, ip=$<2>, is2=\E'\E(\E\^3\E`9\016\024,
-	kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
-	kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kent=\E7,
-	kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
-	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=^^, kich1=\EQ,
-	kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er, ll=^^^K, mc0=\EP, mc4=^T,
-	mc5=^X, nel=^M^J, pfx=\Ez%p1%{63}%+%c%p2%s\177,
-	pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), ri=\Ej$<3>,
-	rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
-	sgr=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
-	sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
-	smso=\E`7\E), tbc=\E0, tsl=\EF,
-#
-#	This terminal description uses the non-hidden attribute mode
-#	(with magic cookie).
-#
-# (wy30-mc: added <smcup> to suppress tic warning --esr)
-wy30-mc|wyse30-mc|wyse 30 with magic cookies,
-	msgr@,
-	ma@, xmc#1,
-	blink=\EG2, dim=\EGp, prot=\EG0\E), rmacs=\EG0\EH\003,
-	rmcup=\EG0, rmso=\EG0,
-	sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
-	sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
-	smso=\EG4, use=wy30, use=adm+sgr,
-#	The mandatory pause used by <flash> does not work with
-#	older versions of terminfo.  If you see this effect then
-#	unset xon and delete the / from the delay.
-#	i.e. change $<100/> to $<100>
-wy30-vb|wyse30-vb|wyse 30 visible bell,
-	bel@, use=wy30,
-#
-#	   The Wyse 50 can support one attribute (e.g. Dim, Inverse,
-#	Normal) without magic cookies by using the protect mode.
-#	The following description uses this feature, but when more
-#	than one attribute is put on the screen at once, all attributes
-#	will be changed to be the same as the last attribute given.
-#	   The Wyse 50 can support more attributes when used with magic
-#	cookies.  The wy50-mc terminal description uses magic cookies
-#	to correctly handle multiple attributes on a screen.
-#
-wy50|wyse50|Wyse 50,
-	am, bw, hs, mc5i, mir, msgr, xon,
-	cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
-	acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
-	civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, cub1=^H,
-	cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, dsl=\EF\r,
-	ed=\EY$<20>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
-	home=^^, ht=^I, hts=\E1, il1=\EE, ind=\n$<2>, ip=$<1>,
-	is1=\E`\:\E`9$<30>, is2=\016\024\E'\E(, kHOM=\E{, kbs=^H,
-	kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW,
-	kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
-	kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
-	kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
-	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
-	kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
-	ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J,
-	pfx=\Ez%p1%{63}%+%c%p2%s\177,
-	pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), rev=\E`6\E),
-	ri=\Ej, rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
-	sgr=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
-	sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
-	smso=\E`6\E), tbc=\E0, tsl=\EF,
-#
-#	This terminal description uses the non-hidden attribute mode
-#	(with magic cookie).
-#
-#	The mandatory pause used by flash does not work with some
-#	older versions of terminfo.  If you see this effect then
-#	unset <xon> and delete the / from the delay.
-#	i.e. change $<100/> to $<100>
-# (wy50-mc: added <smcup> to suppress tic warning --esr)
-wy50-mc|wyse50-mc|wyse 50 with magic cookies,
-	msgr@,
-	ma@, xmc#1,
-	blink=\EG2, dim=\EGp, prot=\EG0\E), rev=\EG4,
-	rmacs=\EG0\EH\003, rmcup=\EG0, rmso=\EG0,
-	sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
-	sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
-	smso=\EGt, use=wy50, use=adm+sgr,
-wy50-vb|wyse50-vb|wyse 50 visible bell,
-	bel@, use=wy50,
-wy50-w|wyse50-w|wyse 50 132-column,
-	cols#132, lw#7, nlab#16, wsl#97,
-	cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
-	use=wy50,
-wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell,
-	bel@, use=wy50-w,
-
-#
-#	The Wyse 350 is a Wyse 50 with color.
-#	Unfortunately this means that it has magic cookies.
-#	The color attributes are designed to overlap the reverse, dim and
-#	underline attributes.  This is nice for monochrome applications
-#	because you can make underline stuff green (or any other color)
-#	but for true color applications it's not so hot because you cannot
-#	mix color with reverse, dim or underline.
-#	    To further complicate things one of the attributes must be
-#	black (either the foreground or the background).  In reverse video
-#	the background changes color with black letters.  In normal video
-#	the foreground changes colors on a black background.
-#	    This terminfo uses some of the more advanced features of curses
-#	to display both color and blink.  In the final analysis I am not
-#	sure that the wy350 runs better with this terminfo than it does
-#	with the wy50 terminfo (with user adjusted colors).
-#
-#	The mandatory pause used by flash does not work with
-#	older versions of terminfo.  If you see this effect then
-#	unset xon and delete the / from the delay.
-#	i.e. change $<100/> to $<100>
-#
-# Bug: The <op> capability resets attributes.
-wy350|wyse350|Wyse 350,
-	am, bw, hs, mc5i, mir, xon,
-	colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8,
-	wsl#45, xmc#1,
-	acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
-	cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
-	cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<1>,
-	dim=\EGp, dl1=\ER, dsl=\EF\r, ed=\EY$<20>, el=\ET,
-	flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
-	il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`\:\E`9$<30>,
-	is2=\016\024\E'\E(, is3=\E%?, kHOM=\E{, kbs=^H, kcbt=\EI,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
-	ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
-	kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
-	kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
-	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
-	kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
-	ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, oc=\E%?, op=\EG0,
-	pfx=\Ez%p1%{63}%+%c%p2%s\177,
-	pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\EG0\E), ri=\Ej,
-	rmacs=\EG0\EH\003, rmir=\Er, rmln=\EA11, setb=,
-	setf=%?%p1%{0}%=%t%{76}%e%p1%{1}%=%t%{64}%e%p1%{2}%=%t%{8}%e%p1%{3}%=%t%{72}%e%p1%{4}%=%t%{4}%e%p1%{5}%=%t%{68}%e%p1%{6}%=%t%{12}%e%p1%{7}%=%t%{0}%;%PC\EG%gC%gA%+%{48}%+%c,
-	sgr=%{0}%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;%PA\EG%?%gC%t%gC%e%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p5%t%{64}%|%;%;%gA%+%{48}%+%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
-	sgr0=\EG0\E(\EH\003%{0}%PA%{0}%PC, smacs=\EG0\EH\002,
-	smir=\Eq, smln=\EA10, tbc=\E0, tsl=\EF, use=adm+sgr,
-wy350-vb|wyse350-vb|wyse 350 visible bell,
-	bel@, use=wy350,
-wy350-w|wyse350-w|wyse 350 132-column,
-	cols#132, lw#7, nlab#16, wsl#97,
-	cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
-	use=wy350,
-wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell,
-	bel@, use=wy350-w,
-#
-#	This terminfo description is untested.
-#	The wyse100 emulates an adm31, so the adm31 entry should work.
-#
-wy100|wyse 100,
-	hs, mir,
-	cols#80, lines#24, xmc#1,
-	bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, dsl=\EA31, ed=\EY, el=\ET, fsl=^M, il1=\EE, ind=^J,
-	invis@, is2=\Eu\E0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
-	kcuu1=^K, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
-	kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=\E{,
-	rmir=\Er, smir=\Eq, tsl=\EF, use=adm+sgr,
-#
-#	The Wyse 120/150 has most of the features of the Wyse 60.
-#	This terminal does not need padding up to 9600 baud!
-#	<msgr> should be set but the clear screen fails when in
-#	alt-charset mode.  Try \EcE\s\s\E+\s if the screen is really clear
-#	then set <msgr>.
-#
-wy120|wyse120|wy150|wyse150|Wyse 120/150,
-	am, bw, hs, km, mc5i, mir, msgr, xon,
-	cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
-	acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
-	bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
-	cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
-	dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
-	flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=\011$<1>,
-	hts=\E1, il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
-	is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
-	is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
-	kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
-	kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
-	kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
-	kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
-	kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
-	mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
-	pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
-	pfx=\EZ1%p1%{63}%+%c%p2%s\177,
-	pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
-	rmacs=\EcD, rmam=\Ed., rmcup=\Ew1, rmir=\Er, rmln=\EA11,
-	rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
-	rs3=\EwG\Ee($<100>,
-	sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
-	sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
-	smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
-	tbc=\E0, tsl=\EF, use=adm+sgr,
-#
-wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column,
-	cols#132, lw#7, nlab#16, wsl#97,
-	cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
-	rs2=\E`;$<70>, use=wy120,
-#
-wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<100>, use=wy120,
-#
-wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<100>, use=wy120-w,
-#
-wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell,
-	bel@, use=wy120,
-#
-wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell,
-	bel@, use=wy120-w,
-#
-#	The Wyse 60 is like the Wyse 50 but with more padding.
-#	The reset strings are slow and the pad times very depending
-#	on other parameters such as font loading.  I have tried
-#	to follow the following outline:
-#
-#		<rs1> -> set personality
-#		<rs2> -> set number of columns
-#		<rs3> -> set number of lines
-#		<is1> -> select the proper font
-#		<is2> -> do the initialization
-#		<is3> -> set up display memory (2 pages)
-#
-#	The Wyse 60's that have vt100 emulation are slower than the
-#	older Wyse 60's.  This change happened mid-1987.
-#	The capabilities effected are <dch1> <dl1> <il1> <ind> <ri>
-#
-#	The meta key is only half right.  This terminal will return the
-#	high order bit set when you hit CTRL-function_key
-#
-#	It may be useful to assign two function keys with the
-#	values  \E=(\s  look at old data in page 1
-#	        \E=W,   look at bottom of page 1
-#	where \s is a space ( ).
-#
-#	Note:
-#	   The Wyse 60 runs faster when the XON/XOFF
-#	   handshake is turned off.
-#
-# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid
-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
-wy60|wyse60|Wyse 60,
-	am, bw, hs, km, mc5i, mir, msgr,
-	cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
-	acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
-	bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
-	cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>, dsl=\EF\r,
-	ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
-	home=\E{, ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>,
-	ip=$<3>, is1=\EcB0\EcC1,
-	is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
-	is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
-	kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
-	kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
-	kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
-	kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
-	kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
-	mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
-	pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
-	pfx=\EZ1%p1%{63}%+%c%p2%s\177,
-	pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
-	rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew1, rmir=\Er,
-	rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<150>,
-	rs2=\EeG$<150>, rs3=\EwG\Ee($<200>,
-	sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
-	sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
-	smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
-	tbc=\E0, tsl=\EF, use=adm+sgr,
-#
-wy60-w|wyse60-w|wyse 60 132-column,
-	cols#132, lw#7, nlab#16, wsl#97,
-	cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<16>, ip=$<5>,
-	rs2=\EeF$<150>\E`;$<150>, use=wy60,
-#
-wy60-25|wyse60-25|wyse 60 80-column 25-lines,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<200>, use=wy60,
-wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<200>, use=wy60-w,
-#
-wy60-42|wyse60-42|wyse 60 80-column 42-lines,
-	lines#42,
-	clear=\E+$<260>, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<2>,
-	dch1=\EW$<16>, dl1=\ER$<11>, ed=\Ey$<260>, il1=\EE$<11>,
-	ind=\n$<9>, ip=$<5>, is1=\EcB2\EcC3, nel=\r\n$<6>,
-	ri=\Ej$<10>, rs3=\Ee*$<150>, use=wy60,
-wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines,
-	cols#132, lw#7, nlab#16, wsl#97,
-	clear=\E+$<260>, cup=\Ea%i%p1%dR%p2%dC$<2>,
-	dch1=\EW$<19>, ed=\Ey$<260>, home=\036$<2>, ip=$<6>,
-	nel=\r\n$<11>, rs2=\EeF$<150>\E`;$<150>, use=wy60-42,
-#
-wy60-43|wyse60-43|wyse 60 80-column 43-lines,
-	lh@, lines#43, lw@, nlab@,
-	pln@, rs3=\Ee+$<150>, use=wy60-42,
-wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines,
-	lh@, lines#43, lw@, nlab@,
-	pln@, rs3=\Ee+$<150>, use=wy60-42-w,
-#
-wy60-vb|wyse60-vb|Wyse 60 visible bell,
-	bel@, use=wy60,
-wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell,
-	bel@, use=wy60-w,
-
-#	The Wyse-99GT looks at lot like the Wyse 60 except that it
-#	does not have the 42/43 line mode.  In the Wyse-60 the "lines"
-#	setup parameter controls the number of lines on the screen.
-#	For the Wyse 99GT the "lines" setup parameter controls the
-#	number of lines in a page.  The screen can display 25 lines max.
-#	    The Wyse-99GT also has personalities for the VT220 and
-#	Tektronix 4014.  But this has no bearing on the native mode.
-#
-#	(msgr) should be set but the clear screen fails when in
-#	alt-charset mode.  Try \EcE\s\s\E+\s if the screen is really clear
-#	then set msgr, else use msgr@.
-#
-#	u0 -> enter Tektronix mode
-#	u1 -> exit Tektronix mode
-#
-wy99gt|wyse99gt|Wyse 99gt,
-	msgr@,
-	clear=\E+$<130>, dch1=\EW$<7>, dl1=\ER$<4>, ed=\Ey$<130>,
-	el=\Et$<5>, flash=\E`8$<100/>\E`9, ht=\011$<1>,
-	il1=\EE$<4>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@,
-	ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`\:$<150>, smcup=\Ew1,
-	u0=\E~>\E8, u1=\E[42h, use=wy60,
-#
-wy99gt-w|wyse99gt-w|wyse 99gt 132-column,
-	cols#132, lw#7, nlab#16, wsl#97,
-	clear=\E+$<160>, cup=\Ea%i%p1%dR%p2%dC$<2>,
-	dch1=\EW$<9>, ed=\Ey$<160>, ip=$<4>, rs2=\E`;$<150>,
-	use=wy99gt,
-#
-wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs2=\E`\:$<150>, rs3=\EwG\Ee)$<200>, use=wy99gt,
-#
-wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs2=\E`;$<150>, use=wy99gt-w,
-#
-wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell,
-	bel@, use=wy99gt,
-#
-wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell,
-	bel@, use=wy99gt-w,
-
-# Can't set tabs! Other bugs (ANSI mode only):
-# - can't redefine function keys (anyway, key redefinition in ANSI mode
-#   is too much complex to be described);
-# - meta key can't be described (the terminal forgets it when reset);
-# The xon-xoff handshaking can't be disabled while in ansi personality, so
-# emacs can't work at speed greater than 9600 baud.  No padding is needed at
-# this speed.
-#   dch1 has been commented out because it causes annoying glittering when
-# vi deletes one character at the beginning of a line with tabs in it.
-#   dch makes sysgen(1M) have a horrible behaviour when deleting
-# a screen and makes screen(1) behave badly, so it is disabled too. The nice
-# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are
-# not, so smir and rmir are commented out as well.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard),
-	am, km, mc5i, mir, msgr, xenl,
-	cols#80, it#8, lines#25, vt#3,
-	acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J$<200>, cnorm=\E[34h\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<1>,
-	cub1=\010$<1>, cud=\E[%p1%dB, cud1=\ED,
-	cuf=\E[%p1%dC$<1>, cuf1=\E[C$<1>,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
-	cvvis=\E[34l\E[?25h, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>,
-	enacs=\E)0, flash=\E[?5h$<30/>\E[?5l, home=\E[H,
-	hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL,
-	il1=\E[L, ind=\n$<1>, invis=\E[8m,
-	is2=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i,
-	kbs=^H, kcbt=\E[z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
-	kcuu1=\EOA, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf17=\E[K, kf18=\E[31~, kf19=\E[32~, kf2=\EOQ,
-	kf20=\E[33~, kf21=\E[34~, kf22=\E[35~, kf23=\E[1~,
-	kf24=\E[2~, kf3=\EOR, kf4=\EOS, kf5=\E[M, kf6=\E[17~,
-	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ll=\E[24E, mc0=\E[?19h,
-	mc4=\E[4i, mc5=\E[5i, nel=\EE, prot=\E[1"q, rc=\E8,
-	rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
-	rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m,
-	rs2=\E[61"p\E[40h\E[?6l\E[1r\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[24E\E[4i,
-	sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%O%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m\E[%?%p8%t1%;"q%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017\E["q, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
-
-#   This is the american terminal. Here tabs work fine.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
-	hts=\EH, is3=\E[?5l, rs3=\E[?5l, tbc=\E[3g, use=wy99-ansi,
-
-# This terminal (firmware version 02) has a lot of bugs:
-# - can't set tabs;
-# - other bugs in ANSI modes (see above).
-# This description disables handshaking when using cup. This is because
-# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal
-# cannot be used at speeds greater than 9600 baud, because at greater
-# speeds handshaking is needed even for character sending. If you use
-# DTR handshaking, you can use even greater speeds.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
-	am, bw, hs, km, mc5i, mir, msgr, xon,
-	cols#80, it#8, lines#25, wsl#46,
-	acsc='x+y.wi~_vj(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
-	blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
-	cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, dsl=\EF\r,
-	ed=\EY$<8*>, el=\ET$<8>, enacs=\Ec@1J$<2000>,
-	flash=\E\^1$<30/>\E\^0, fsl=^M, home=^^, ht=^I, il1=\EE,
-	ind=^J, invis=\EG3,
-	is2=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024,
-	ka1=^^, ka3=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r,
-	kf11=^AJ\r, kf12=^AK\r, kf13=^A`\r, kf14=^Aa\r, kf15=^Ab\r,
-	kf16=^Ac\r, kf17=^Ad\r, kf18=^Ae\r, kf19=^Af\r, kf2=^AA\r,
-	kf20=^Ag\r, kf21=^Ah\r, kf22=^Ai\r, kf23=^Aj\r, kf24=^Ak\r,
-	kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, kprt=\EP, mc0=\EP, mc4=^T, mc5=\Ed#,
-	nel=^_, prot=\E), rev=\EG4, ri=\Ej, rmacs=\EcD, rmam=\Ed.,
-	rmcup=\Ec21\Ec31, rmir=\Er, rmso=\EG0, rmxon=\Ec20\Ec30,
-	rs2=\Eu\E~4\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\Ec@0B\EcD\024,
-	sgr=\E(\EG%{48}%?%p1%p3%O%t%{4}%+%;%?%p2%t%{8}%+%;%?%p4%t%{2}%+%;%?%p5%t%{64}%+%;%?%p7%t%{1}%+%;%c%?%p8%t\E)%;%?%p9%t\EcE%e\EcD%;,
-	sgr0=\E(\EG0, smacs=\EcE, smam=\Ed/, smcup=\Ec20\Ec30,
-	smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, tsl=\EF,
-
-# This is the american terminal. Here tabs work.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard),
-	hts=\E1, tbc=\E0, use=wy99f,
-
-#
-#	The Wyse 160 is combination of the WY-60 and the WY-99gt.
-#	The reset strings are slow and the pad times very depending
-#	on other parameters such as font loading.  I have tried
-#	to follow the following outline:
-#
-#		<rs1> -> set personality
-#		<rs2> -> set number of columns
-#		<rs3> -> set number of lines
-#		<is1> -> select the proper font
-#		<is2> -> do the initialization
-#		<is3> -> set up display memory (2 pages)
-#
-#	The display memory may be used for either text or graphics.
-#	When "Display Memory = Shared" the terminal will have more pages
-#	but garbage may be left on the screen when you switch from
-#	graphics to text.  If "Display Memory = Unshared" then the
-#	text area will be only one page long.
-#
-# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid
-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
-wy160|wyse160|Wyse 160,
-	am, bw, hs, km, mc5i, mir, msgr,
-	cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
-	acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
-	bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
-	cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
-	dclk=\E`b, dim=\EGp, dl1=\ER$<1>, dsl=\EF\r, ed=\EY$<30>,
-	el=\ET$<5>, flash=\E`8$<100/>\E`9, fsl=^M, home=\E{, ht=^I,
-	hts=\E1, il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1,
-	is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
-	is3=\Ew0$<100>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
-	kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
-	kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
-	kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
-	kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
-	kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
-	mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<1>,
-	pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
-	pfx=\EZ1%p1%{63}%+%c%p2%s\177,
-	pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<1>,
-	rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew0, rmir=\Er,
-	rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<70>,
-	rs2=\E`\:$<100>, rs3=\EwG\Ee($<140>,
-	sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
-	sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
-	smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
-	tbc=\E0, tsl=\EF, use=adm+sgr,
-#
-wy160-w|wyse160-w|wyse 160 132-column,
-	cols#132, lw#7, nlab#16, wsl#90,
-	cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<9>,
-	rs2=\EeF$<150>\E`;$<150>, use=wy160,
-#
-wy160-25|wyse160-25|wyse 160 80-column 25-lines,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<200>, use=wy160,
-wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<200>, use=wy160-w,
-#
-wy160-42|wyse160-42|wyse 160 80-column 42-lines,
-	lines#42,
-	clear=\E+$<50>, dl1=\ER$<2>, ed=\Ey$<50>, il1=\EE$<2>,
-	ind=\n$<2>, is1=\EcB2\EcC3, nel=\r\n$<2>, ri=\Ej$<2>,
-	rs3=\Ee*$<150>, use=wy160,
-wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines,
-	cols#132, lw#7, nlab#16, wsl#90,
-	cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<8>, ip=$<3>,
-	rs2=\EeF$<150>\E`;$<150>, use=wy160-42,
-#
-wy160-43|wyse160-43|wyse 160 80-column 43-lines,
-	lh@, lines#43, lw@, nlab@,
-	pln@, rs3=\Ee+$<150>, use=wy160-42,
-wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines,
-	lh@, lines#43, lw@, nlab@,
-	pln@, rs3=\Ee+$<150>, use=wy160-42-w,
-#
-wy160-vb|wyse160-vb|Wyse 160 visible bell,
-	bel@, use=wy160,
-wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell,
-	bel@, use=wy160-w,
-#
-#	The Wyse 75 is a vt100 lookalike without advanced video.
-#
-#	   The Wyse 75 can support one attribute (e.g. Dim, Inverse,
-#	Underline) without magic cookies.  The following description
-#	uses this capability, but when more than one attribute is
-#	put on the screen at once, all attributes will be changed
-#	to be the same as the last attribute given.
-#	   The Wyse 75 can support more attributes when used with magic
-#	cookies.  The wy75-mc terminal description uses magic cookies
-#	to correctly handle multiple attributes on a screen.
-#
-wy75|wyse75|wyse 75,
-	am, hs, mc5i, mir, msgr, xenl, xon,
-	cols#80, lines#24, ma#1, pb#1201, wsl#78,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<30>,
-	cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr$<2>,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP$<3*>,
-	dch1=\E[P$<3>, dim=\E[0t\E[2m, dl=\E[%p1%dM$<1*>,
-	dl1=\E[M, dsl=\E[>\,\001\001\E[>-\001\001,
-	ech=\E[%p1%dX, ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>,
-	enacs=\E)0, flash=\E[30h\E\,\E[30l$<250>, fsl=^A,
-	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
-	ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
-	ind=\n$<2>, ip=$<1>,
-	is1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h,
-	is2=\E>\E(B\E)0\017, is3=\E[m, kbs=^H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K,
-	kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
-	kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i,
-	kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
-	khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~,
-	kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i,
-	mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m,
-	rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l,
-	sc=\E7,
-	sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m,
-	tbc=\E[3g, tsl=\E[>\,\001, use=vt220+keypad,
-#
-#	This terminal description uses the non-hidden attribute mode
-#	(with magic cookie).
-#
-wy75-mc|wyse75-mc|wyse 75 with magic cookies,
-	msgr@,
-	ma@, xmc#1,
-	blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p,
-	rev=\E[16p, rmacs=\E[0p\017, rmso=\E[0p, rmul=\E[0p,
-	sgr=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;,
-	sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p,
-	use=wy75,
-wy75-vb|wyse75-vb|wyse 75 with visible bell,
-	pb@,
-	bel@, use=wy75,
-wy75-w|wyse75-w|wyse 75 in 132 column mode,
-	cols#132, wsl#130,
-	rs2=\E[35h\E[?3h$<80>, use=wy75,
-wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns,
-	pb@,
-	bel@, use=wy75-w,
-#
-#	Wyse 85 emulating a vt220 7 bit mode.
-#		24 line screen with status line.
-#
-#	The vt220 mode permits more function keys but it wipes out
-#	the escape key.  I strongly recommend that <f11> be set to
-#	escape (esc).
-#	The terminal may have to be set for 8 data bits and 2 stop
-#	bits for the arrow keys to work.
-#	The Wyse 85 runs faster with XON/XOFF enabled.  Also the
-#	<dch> and <ich> work best when XON/XOFF is set.  <ich> and
-#	<dch> leave trash on the screen when used without XON/XOFF.
-#
-wy85|wyse85|wyse 85,
-	am, hs, mc5i, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
-	dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
-	ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
-	enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
-	fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
-	ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
-	ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
-	is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
-	is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-	kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
-	kf19=\E[33~, kf20=\E[34~, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
-	khome=\E[26~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
-	mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
-	rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
-	rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
-	rs3=\E[?5l, sc=\E7,
-	sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+keypad,
-#
-#	Wyse 85 with visual bell.
-wy85-vb|wyse85-vb|wyse 85 with visible bell,
-	bel@, flash=\E[30h\E\,\E[30l$<300>, use=wy85,
-#
-#	Wyse 85 in 132-column mode.
-wy85-w|wyse85-w|wyse 85 in 132-column mode,
-	cols#132, wsl#132,
-	rs2=\E[35h\E[?3h$<70>, use=wy85,
-#
-#	Wyse 85 in 132-column mode with visual bell.
-wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
-	bel@, use=wy85-w,
-
-# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
-# This copes with an apparent firmware bug in the wy85.  He writes:
-# "What I did was change leave the terminal cursor keys set to Normal
-# (instead of application), and change \E[ to \233 for all the keys in
-# terminfo. At one point, I found some reference indicating that this
-# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
-# me), but I can't find that and the server under my bookmark to "Wyse
-# Technical" isn't responding.  So there's the question of wether the wy85
-# terminfo should reflect the manufactuer's intended behaviour of the terminal
-# or the actual."
-wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode,
-	am, hs, mc5i, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
-	dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
-	ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
-	enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
-	fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
-	ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
-	ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
-	is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
-	is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
-	kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B,
-	kcuf1=\233C, kcuu1=\233A, kdch1=\2333~, kent=\EOM,
-	kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
-	kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~,
-	kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\EOQ,
-	kf20=\23334~, kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~,
-	kf8=\23319~, kf9=\23320~, kfnd=\2331~, khlp=\23328~,
-	khome=\23326~, kich1=\2332~, knp=\2336~, kpp=\2335~,
-	kslt=\2334~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
-	mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
-	rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
-	rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
-	rs3=\E[?5l, sc=\E7,
-	sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;+m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[40h\E7\E[25;%i%p1%dH,
-#
-#	Wyse 185 emulating a vt320 7 bit mode.
-#
-#	This terminal always displays 25 lines.  These lines may be used
-#	as 24 data lines and a terminal status line (top or bottom) or
-#	25 data lines.  The 48 and 50 line modes change the page size
-#	and not the number of lines on the screen.
-#
-#	The Compose Character key can be used as a meta key if changed
-#	by set-up.
-#
-wy185|wyse185|wyse 185,
-	am, hs, km, mc5i, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<3>,
-	dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
-	dsl=\E7\E[99;0H\E[K\E8, ech=\E[%p1%dX, ed=\E[J$<40>,
-	el=\E[K, el1=\E[1K, enacs=\E)0,
-	flash=\E[30h\E\,\E[30l$<100>, fsl=\E[1;24r\E8,
-	home=\E[H, hpa=\E[%i%p1%d`, ht=^I, hts=\EH,
-	ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>,
-	ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
-	is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h,
-	is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP,
-	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
-	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
-	kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR,
-	kf4=\EOS, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, kich1=\E[2~,
-	knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3,
-	lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
-	ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
-	rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
-	rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
-	rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
-	sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
-	smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
-	use=vt220+keypad,
-#
-#	Wyse 185 with 24 data lines and top status (terminal status)
-wy185-24|wyse185-24|wyse 185 with 24 data lines,
-	hs@,
-	dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
-	use=wy185,
-#
-#	Wyse 185 with visual bell.
-wy185-vb|wyse185-vb|wyse 185+flash,
-	bel@, use=wy185,
-#
-#	Wyse 185 in 132-column mode.
-wy185-w|wyse185-w|wyse 185 in 132-column mode,
-	cols#132, wsl#132,
-	dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
-	ip=$<7>, rs2=\E[35h\E[?3h, use=wy185,
-#
-#	Wyse 185 in 132-column mode with visual bell.
-wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
-	bel@, use=wy185-w,
-
-# wy325 terminfo entries
-# Done by Joe H. Davis        3-9-92
-
-# lines 25  columns 80
-#
-wy325|wyse325|Wyse epc,
-	am, bw, hs, mc5i, mir,
-	cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
-	acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
-	bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
-	cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
-	dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
-	flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
-	il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
-	is2=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
-	is3=\Ew0$<16>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
-	kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
-	kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
-	kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
-	kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq,
-	kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
-	mc0=\EP, mc4=^T, mc5=\Ed#,
-	pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
-	pfx=\EZ1%p1%{63}%+%c%p2%s\177,
-	pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
-	rmacs=\EcD, rmam=\Ed., rmcup=\Ew0, rmir=\Er, rmln=\EA11,
-	rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
-	rs3=\EwG\Ee($<100>,
-	sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
-	sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
-	smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, tbc=\E0,
-	tsl=\EF, use=adm+sgr,
-
-#
-# lines 24  columns 80  vb
-#
-wy325-vb|wyse325-vb|wyse-325 with visual bell,
-	bel@, use=wy325,
-
-#
-# lines 24  columns 132
-#
-wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode,
-	cols#132, lw#7, nlab#16, wsl#97,
-	cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
-	rs2=\E`;$<70>, use=wy325,
-#
-# lines 25  columns 80
-#
-wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<100>, use=wy325,
-#
-# lines 25  columns 132
-#
-wy325-25w|wyse325-25w|wy325 132 columns,
-	lh@, lines#25, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
-#
-# lines 25  columns 132  vb
-#
-wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video,
-	bel@, use=wy325-w,
-
-#
-# lines 42  columns 80
-#
-wy325-42|wyse325-42|wyse-325 42 lines,
-	lh@, lines#42, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<100>, use=wy325,
-#
-# lines 42  columns 132
-#
-wy325-42w|wyse325-42w|wyse-325 42 lines wide mode,
-	lh@, lines#42, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
-#
-# lines 42  columns 132  vb
-#
-wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell,
-	bel@, use=wy325-w,
-#
-# lines 43  columns 80
-#
-wy325-43|wyse325-43|wyse-325 43 lines,
-	lh@, lines#43, lw@, nlab@,
-	pln@, use=wy325,
-#
-# lines 43  columns 132
-#
-wy325-43w|wyse325-43w|wyse-325 43 lines wide mode,
-	lh@, lines#43, lw@, nlab@,
-	pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
-#
-# lines 43  columns 132  vb
-#
-wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell,
-	bel@, use=wy325-w,
-
-#	Wyse 370 -- 24 line screen with status line.
-#
-#	The terminal may have to be set for 8 data bits and 2 stop
-#	bits for the arrow keys to work.
-#
-#	If you change keyboards the terminal will send different
-#	escape sequences.
-#	The following definition is for the basic terminal without
-#	function keys.
-#
-#	<u0> -> enter Tektronix 4010/4014 mode
-#	<u1> -> exit  Tektronix 4010/4014 mode
-#	<u2> -> enter ASCII mode (from any ANSI mode)
-#	<u3> -> exit  ASCII mode (goto native ANSI mode)
-#	<u4> -> enter Tek 4207 ANSI mode (from any ANSI mode)
-#	<u5> -> exit  Tek 4207 mode (goto native ANSI mode)
-#
-# Bug: The <op> capability resets attributes.
-wy370-nk|wyse 370 without function keys,
-	am, ccc, hs, mc5i, mir, msgr, xenl, xon,
-	colors#64, cols#80, it#8, lines#24, ncv#48, pairs#64, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>,
-	dclk=\E[31h, dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
-	dsl=\E[40l, ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>,
-	el=\E[K$<10>, el1=\E[1K$<12>, enacs=\E)0,
-	flash=\E[30h\E\,\E[30l$<300>, fsl=\E[1;24r\E8,
-	home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>, hts=\EH,
-	ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
-	ind=\n$<2>,
-	initc=\E[66;%p1%d;%?%p2%{250}%<%t%{0}%e%p2%{500}%<%t%{16}%e%p2%{750}%<%t%{32}%e%{48}%;%?%p3%{250}%<%t%{0}%e%p3%{500}%<%t%{4}%e%p3%{750}%<%t%{8}%e%{12}%;%?%p4%{250}%<%t%{0}%e%p4%{500}%<%t%{1}%e%p4%{750}%<%t%{2}%e%{3}%;%{1}%+%+%+%dw,
-	invis=\E[8m, ip=$<1>, is1=\E[90;1"p\E[?5W$<6>,
-	is2=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h,
-	is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i, mc4=\E[4i,
-	mc5=\E[5i,
-	oc=\E[60w\E[63;0w\E[66;1;4w\E[66;2;13w\E[66;3;16w\E[66;4;49w\E[66;5;51w\E[66;6;61w\E[66;7;64w,
-	op=\E[m, rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O,
-	rmam=\E[?7l, rmclk=\E[31l, rmcup=\E[ R, rmir=\E[4l,
-	rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
-	rs1=\E[13l\E[3l\E!p\E[?4i, rs2=\E[35h\E[?3l$<8>,
-	rs3=\E[?5l, sc=\E7, setb=\E[62;%p1%dw, setf=\E[61;%p1%dw,
-	sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
-	smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH,
-	u0=\E[?38h\E8, u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B,
-	u4=\E[92;76"p, u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd,
-#
-#	Function key set for the ASCII (wy-50 compatible) keyboard
-#	This is the default 370.
-#
-wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard,
-	kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i,
-	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
-	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\E[?3i,
-	kf3=\E[2i, kf4=\E[@, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\EOP, kil1=\EOP,
-	knp=\E[U, kpp=\E[V, use=wy370-nk,
-#
-#	Function key set for the VT-320 (and wy85) compatible keyboard
-#
-wy370-105k|Wyse 370 with 105 key keyboard,
-	kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
-	kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
-	khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~,
-	kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
-	use=wy370-nk, use=vt220+keypad,
-#
-#	Function key set for the PC compatible keyboard
-#
-wy370-EPC|Wyse 370 with 102 key keyboard,
-	kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-	kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[H, kich1=\E[2~, knp=\E[U, kpp=\E[V, use=wy370-nk,
-#
-#	Wyse 370 with visual bell.
-wy370-vb|Wyse 370 with visible bell,
-	bel@, use=wy370,
-#
-#	Wyse 370 in 132-column mode.
-wy370-w|Wyse 370 in 132-column mode,
-	cols#132, wsl#132,
-	rs2=\E[35h\E[?3h$<70>, use=wy370,
-#
-#	Wyse 370 in 132-column mode with visual bell.
-wy370-wvb|Wyse 370 with visible bell 132-columns,
-	flash=\E[30h\E\,\E[30l$<300>, use=wy370-w,
-wy370-rv|Wyse 370 reverse video,
-	rs3=\E[32h\E[?5h, use=wy370,
-#
-#	Wyse 99gt Tektronix 4010/4014 emulator,
-#
-wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator,
-	am, os,
-	cols#74, lines#35,
-	bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
-	cup=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
-	cuu1=^K, ff=^L,
-	hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
-	home=^]7`x @\037,
-	hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
-	is2=\E8, nel=^M^J, u0=\E~>\E8, u1=\E[42h,
-#
-#	Wyse 160 Tektronix 4010/4014 emulator,
-#
-wy160-tek|Wyse 160 Tektronix 4010/4014 emulator,
-	cup=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
-	home=^]8`g @\037, use=wy99gt-tek,
-#
-#	Wyse 370 Tektronix 4010/4014 emulator,
-#
-wy370-tek|Wyse 370 Tektronix 4010/4014 emulator,
-	am, os,
-	cols#80, lines#36,
-	bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
-	cup=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037,
-	cuu1=^K, ff=^L,
-	hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
-	home=^]8g @\037,
-	hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
-	is2=\E8, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^I, kcuu1=^K,
-	nel=^M^J, u0=\E[?38h\E8, u1=\E[?38l\E)0,
-
-# Vendor-supplied Wyse entries end here.
-
-#
-#TITLE:  TERMINFO ENTRY WY520
-#DATE:   8/5/93
-# The WY520 terminfo is based on the WY285 entry published on the WYSE
-# BBS with the addition of more function keys and special keys.
-#
-#               rs1 -> set personality
-#               rs2 -> set number of columns
-#               rs3 -> set number of lines
-#               is1 -> select the proper font
-#               is2 -> do the initialization
-#               is3 -> If this string is empty then rs3 gets sent.
-#
-#       Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard
-#       - The BS key is programmed to generate BS in smcup since
-#         is2 doesn't seem to work.
-#       - Remove and shift/Remove: delete a character
-#       - Insert : enter insert mode
-#       - Find   : delete to end of file
-#       - Select : clear a line
-#       - F11, F12, F13: send default sequences (not ESC, BS, LF)
-#       - F14 : Home key
-#       - Bottom status line (host writable line) is used.
-#       - smkx,rmkx are removed because this would put the numeric
-#         keypad in Dec application mode which doesn't seem to work
-#         with SCO applications.
-#
-wy520|wyse520|wyse 520,
-	am, hs, km, mc5i, mir, xenl, xon,
-	cols#80, it#8, lines#24, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<30>,
-	dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[0$~,
-	ech=\E[%p1%dX, ed=\E[J$<40>, el=\E[K, el1=\E[1K,
-	enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`, ht=^I,
-	hts=\EH, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>,
-	il1=\E[L$<3>, ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
-	is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h,
-	is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ked=\E[1~,
-	kel=\E[4~, kent=\EOM, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
-	kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, khome=\E[26~,
-	kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1,
-	lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-	rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O, rmam=\E[?7l,
-	rmcup=\E[ R, rmir=\E[4l, rmso=\E[m, rmul=\E[24m,
-	rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
-	rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
-	sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h,
-	smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
-	vpa=\E[%i%p1%dd, use=vt220+keypad,
-#
-#       Wyse 520 with 24 data lines and status (terminal status)
-wy520-24|wyse520-24|wyse 520 with 24 data lines,
-	hs@,
-	dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
-	use=wy520,
-#
-#       Wyse 520 with visual bell.
-wy520-vb|wyse520-vb|wyse 520 with visible bell,
-	flash=\E[30h\E\,\E[30l$<100>, use=wy520,
-#
-#       Wyse 520 in 132-column mode.
-wy520-w|wyse520-w|wyse 520 in 132-column mode,
-	cols#132, wsl#132,
-	dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
-	ip=$<7>, rs2=\E[35h\E[?3h, use=wy520,
-#
-#       Wyse 520 in 132-column mode with visual bell.
-wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns,
-	flash=\E[30h\E\,\E[30l$<100>, use=wy520-w,
-#
-#
-#       Wyse 520 emulating a vt420 7 bit mode.
-#       The DEL key is programmed to generate BS in is2.
-#       With EPC keyboard.
-#       - 'End' key will clear till end of line on EPC keyboard
-#       - Shift/End : ignored.
-#       - Insert : enter insert mode.
-#       - Delete : delete a character (have to change interrupt character
-#                  to CTRL-C: stty intr '^c') for it to work since the
-#                  Delete key sends 7FH.
-wy520-epc|wyse520-epc|wyse 520 with EPC keyboard,
-	kdch1=\177, kel=\E[4~, kend=\E[4~, kf0=\E[21~, kf1=\E[11~,
-	kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, khome=\E[H,
-	use=wy520,
-#
-#       Wyse 520 with 24 data lines and status (terminal status)
-#       with EPC keyboard.
-wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard,
-	hs@,
-	dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
-	use=wy520-epc,
-#
-#       Wyse 520 with visual bell.
-wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard,
-	flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc,
-#
-#       Wyse 520 in 132-column mode.
-wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard,
-	cols#132, wsl#132,
-	dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
-	ip=$<7>, rs2=\E[35h\E[?3h, use=wy520-epc,
-#
-#       Wyse 520 in 132-column mode with visual bell.
-wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard,
-	flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc-w,
-#
-#       Wyse 520 in 80-column, 36 lines
-wy520-36|wyse520-36|wyse 520 with 36 data lines,
-	hs@,
-	lines#36,
-	dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
-	use=wy520,
-#
-#       Wyse 520 in 80-column, 48 lines
-wy520-48|wyse520-48|wyse 520 with 48 data lines,
-	hs@,
-	lines#48,
-	dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
-	use=wy520,
-#
-#       Wyse 520 in 132-column, 36 lines
-wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines,
-	cols#132, wsl#132,
-	rs2=\E[?3h,
-	rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
-	use=wy520-36,
-#
-#       Wyse 520 in 132-column, 48 lines
-wy520-48w|wyse520-48w|wyse 520 with 48 data lines,
-	cols#132, wsl#132,
-	rs2=\E[?3h,
-	rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
-	use=wy520-48,
-#
-#
-#       Wyse 520 in 80-column, 36 lines with EPC keyboard
-wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard,
-	hs@,
-	lines#36,
-	dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
-	use=wy520-epc,
-#
-#       Wyse 520 in 80-column, 48 lines with EPC keyboard
-wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard,
-	hs@,
-	lines#48,
-	dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
-	use=wy520-epc,
-#
-#       Wyse 520 in 132-column, 36 lines with EPC keyboard
-wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard,
-	cols#132, wsl#132,
-	rs2=\E[?3h,
-	rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
-	use=wy520-36pc,
-#
-#       Wyse 520 in 132-column, 48 lines with EPC keyboard
-wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard,
-	cols#132, wsl#132,
-	rs2=\E[?3h,
-	rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
-	use=wy520-48pc,
-
-# From: John Gilmore <hoptoad!gnu@lll-crg.arpa>
-# (wyse-vp: removed <if=/usr/local/share/tabset/wyse-adds>, there's no such
-# file and we don't know what <hts> is -- esr)
-wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on,
-	OTbs, am,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EW,
-	dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=^J,
-	is2=\E`\:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=^J, kcuf1=^F,
-	kcuu1=^Z, khome=^A, ll=^A^Z, nel=^M^J, rmir=\Er, rmso=^O,
-	rmul=^O, rs1=\E`\:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N,
-	smul=^N,
-
-wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad,
-	is2=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	khome=\EOH, rmkx=\E[?1l\E>$<10/>, smkx=\E[?1h\E=$<10/>,
-	use=wy75,
-
-# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu>
-wy100q|Wyse 100 for Quotron,
-	OTbs,
-	cols#80, lines#24, xmc#1,
-	cbt=\EI, clear=^Z, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, invis@,
-	is2=\E`\:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=^J,
-	kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr,
-
-#### Kermit terminal emulations
-#
-# Obsolete Kermit versions may be listed in the section describing obsolete
-# non-ANSI terminal emulators later in the file.
-#
-
-# KERMIT standard all versions.
-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
-# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
-# From: greg small <gts@populi.berkeley.edu> 9-25-84
-kermit|standard kermit,
-	OTbs,
-	cols#80, lines#24,
-	clear=\EE, cub1=^H, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
-	el=\EK, home=\EH, is2=K0 Standard Kermit  9-25-84\n,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
-kermit-am|standard kermit plus auto-margin,
-	am,
-	is2=K1 Standard Kermit plus Automatic Margins\n,
-	use=kermit,
-# IBMPC Kermit 1.2.
-# Bugs: <ed>, <el>: do not work except at beginning of line!  <clear> does
-# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of
-# line).
-# From: greg small <gts@populi.berkeley.edu> 8-30-84
-pckermit|pckermit12|UCB IBMPC Kermit 1.2,
-	am,
-	lines#25,
-	clear=\EH\EJ, ed@, el@,
-	is2=K2 UCB IBMPC Kermit 1.2  8-30-84\n, use=kermit,
-# IBMPC Kermit 1.20
-# Cannot use line 25, now acts funny like ansi special scrolling region.
-# Initialization must escape from that region by cursor position to line 24.
-# Cannot use character insert because 1.20 goes crazy if insert at col 80.
-# Does not use :am: because autowrap is lost when kermit dropped and restarted.
-# From: greg small <gts@populi.berkeley.edu> 12-19-84
-pckermit120|UCB IBMPC Kermit 1.20,
-	it#8, lines#24,
-	cud1=\EB, cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I,
-	il1=\EL,
-	is2=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20  12-19-84\n,
-	rmir@, rmso=\Eq, smir@, smso=\Ep, use=kermit,
-# MS-DOS Kermit 2.27 for the IBMPC
-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
-# Cannot use line 25, now acts funny like ansi special scrolling region.
-# Initialization must escape from that region by cursor position to line 24.
-# Does not use am: because autowrap is lost when kermit dropped and restarted.
-# Reverse video for standout like H19.
-# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
-# From: greg small <gts@populi.berkeley.edu> 3-17-85
-msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC,
-	OTbs, am@,
-	cols#80, it#8, lines#24,
-	clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
-	cvvis=\EO\Eq\EG\EwK4, dch1=\EN, dl1=\EM, ed=\EJ, el=\EK,
-	home=\EH, ht=^I, il1=\EL,
-	is2=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rc=\Ek,
-	rmir=\EO, rmso=\Eq, sc=\Ej, smir=\E@, smso=\Ep,
-# MS-DOS Kermit 2.27 with automatic margins
-# From:	greg small <gts@populi.berkeley.edu> 3-17-85
-msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins,
-	am,
-	cvvis=\EO\Eq\EG\EvK5,
-	is2=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n,
-	use=msk227,
-# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC
-# Automatic margins now default.  Use ansi <sgr> for highlights.
-# Define function keys.
-# (msk22714: removed obsolete ":kn#10:" -- esr)
-# From: greg small <gts@populi.berkeley.edu> 3-17-85
-msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC,
-	am,
-	bold=\E[1m, cvvis=\EO\Eq\EG\EvK6,
-	is2=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n,
-	kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6,
-	kf7=\E7, kf8=\E8, kf9=\E9, rev=\E[7m, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smso=\E[1m, smul=\E[4m, use=mskermit227,
-# This was designed for a VT320 emulator, but it is probably a good start
-# at support for the VT320 itself.
-# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
-# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
-vt320-k3|MS-Kermit 3.00's vt320 emulation,
-	am, eslok, hs, km, mir, msgr, xenl,
-	cols#80, it#8, lines#49, pb#9600, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[J, cmdch=\E, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l,
-	fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
-	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is2=\E>\E F\E[?1l\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
-	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~,
-	kpp=\E[5~, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, nel=^M^J, rc=\E8,
-	rev=\E[7m, ri=\EM, rin=\E[%p1%dL, rmacs=\E(B, rmam=\E[?7l,
-	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
-	rs1=\E(B\E)B\E>\E F\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h\E[4i\E[?4i\E[m\E[r\E[2$~,
-	sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd,
-# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991
-# ACS capabilities from Philippe De Muyter  <phdm@info.ucl.ac.be> 30 May 1996
-# (I removed a bogus boolean :mo: and added <msgr>, <smam>, <rmam> -- esr)
-vt320-k311|dec vt320 series as defined by kermit 3.11,
-	am, eslok, hs, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[;H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
-	flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH,
-	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED,
-	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
-	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
-	lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
-	rf=/usr/local/share/tabset/vt100, ri=\EM, rmacs=^O,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
-	rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
-	smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
-
-######## NON-ANSI TERMINAL EMULATIONS
-#
-
-#### Avatar
-#
-# These entries attempt to describe Avatar, a terminal emulation used with
-# MS-DOS bulletin-board systems.  It was designed to give ANSI-like
-# capabilities, but with cheaper (shorter) control sequences.  Messy design,
-# excessively dependent on PC idiosyncracies, but apparently rather popular
-# in the BBS world.
-#
-# No color support.  Avatar doesn't fit either of the Tektronix or HP color
-# models that terminfo knows about.  An Avatar color attribute is the
-# low 7 bits of the IBM-PC display-memory attribute.  Bletch.
-#
-# I wrote these entries while looking at the Avatar spec.  I don't have
-# the facilities to test them.  Let me know if they work, or don't.
-#
-# Avatar escapes not used by these entries (because maybe you're smarter
-# and more motivated than I am and can figure out how to wrap terminfo
-# around some of them, and because they are weird enough to be funny):
-#				level 0:
-# ^L		-- clear window/reset current attribute to default
-# ^V^A%p1%c	-- set current color attribute, parameter decodes as follows:
-#
-#      bit:         6   5   4   3   2   1   0
-#                   |       |   |   |       |
-#                   +---+---+   |   +---+---+
-#                       |       |       |
-#                       |       |  foreground color
-#                       |  foreground intensity
-#                  background color
-#				level 0+:
-# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c	-- scroll (p2,p3) to (p4,p5) up by p1 lines
-# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c	-- scroll (p2,p3) to (p4,p5) down by p1 lines
-# ^V^L%p1%c%p2%c%p3%c		-- clear p2 lines and p3 cols w/attr %p1
-# ^V^M%p1%c%p2%c%p3%c%p4%c	-- fill p3 lines & p4 cols w/char p2+attr %p1
-# (^V^L and ^V^M set the current attribute as a side-effect.)
-# ^V ^Y <a> [...] <c>	-- repeat pattern. <a> specifies the number of bytes
-#			   in the pattern, <c> the number of times the pattern
-#		  	   should be repeated. If either value is 0, no-op.
-#			   The pattern can contain Avatar console codes,
-#			   including other ^V ^Y patterns.
-#				level 1:
-# ^V^O		-- clockwise mode on; turn print direction right each time you
-#		   hit a window edge (yes, really).  Turned off by CR
-# ^V^P		-- no-op
-# ^V^Q%c	-- query the driver
-# ^V^R		-- driver reset
-# ^V^S		-- Sound tone (PC-specific)
-# ^V^T			-- change highlight at current cursor poition to %c
-# ^V^U%p1%c%p2%c	-- highlight window <a> with attribute <b>
-# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c
-#			-- define window
-#
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-# (The <blink>/<bold>/<rev>/<smacs>/<smul>/<smso> capabilities exist only to
-# tell ncurses that the corresponding highlights exist; it should use <sgr>,
-# which is the only method that will actually work for multiple highlights.)
-#
-# Update by TD - 2004: half of this was inconsistent.  Found documentation
-# and repaired most of the damage.  sgr0 is probably incorrect, but the
-# available documentation gives no clues for a workable string.
-avatar0|avatar terminal emulator level 0,
-	am, bce, msgr,
-	cols#80, it#8, lines#25,
-	blink=^V^B, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D,
-	cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G,
-	ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%c, rev=^V^Ap,
-	rmacs@, rs2=^L,
-	sgr=%?%p1%p2%|%p3%|%p6%|%p7%|%t\026\001%?%p7%t%{128}%e%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p6%t%{16}%|%;%;%c%;%?%p4%t\026\002%;,
-	sgr0=^V^A^G, smacs@, smso=^V^Ap, smul=^V^A^A,
-	use=klone+acs,
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-avatar0+|avatar terminal emulator level 0+,
-	dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0,
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-avatar|avatar1|avatar terminal emulator level 1,
-	civis=^V'^B, cnorm=^V'^A, cvvis=^V^C, dl1=^V-, il1=^V+,
-	rmam=^V", rmir=^V^P, smam=^V$, use=avatar0+,
-
-#### RBcomm
-#
-# RBComm is a lean and mean terminal emulator written by the Interrupt List
-# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early
-# '90s), especially in the BBS world, and still has some loyal users due to
-# its very small memory footprint and to a cute macro language.
-rbcomm|IBM PC with RBcomm and EMACS keybindings,
-	am, bw, mir, msgr, xenl,
-	cols#80, it#8, lines#25,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^C, cuf1=^B,
-	cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^, dch1=^W,
-	dl=\E[%p1%dM, dl1=^Z, ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I,
-	il=\E[%p1%dL, il1=^K, ind=\ED, invis=\E[8m,
-	is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H,
-	kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED,
-	rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=,
-	rmir=^], rmkx=\E>, rmso=^U, rmul=^U,
-	rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m,
-	smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T,
-rbcomm-nam|IBM PC with RBcomm without autowrap,
-	am@,
-	bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
-	is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H,
-	kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
-rbcomm-w|IBM PC with RBcomm in 132 column mode,
-	cols#132,
-	bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
-	is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H,
-	kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
-
-######## LCD DISPLAYS
-#
-
-#### Matrix Orbital
-# from: Eric Z. Ayers  (eric@ale.org)
-#
-# Matrix Orbital 20x4 LCD display
-# Command Character is 0xFE (decimal 254, octal 376)
-#
-# On this device, cursor addressability isn't possible.  The LCD expects:
-#      0xfe G <col> <row>
-#      for cup: %p1 == row and %p2 is column
-#
-# This line:
-#	cup=\376G%p2%c%p1%c
-# LOOKS like it will work, but sometimes only one of the two numbers is sent.
-# See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'.
-#
-# Alas, there is no cursor upline capability on this display.
-#
-# These entries add some 'sanity stuff' to the clear function.  That is, it
-# does a 'clear' and also turns OFF auto scroll, turns ON Auto Line Wrapping,
-# and turns off the cursor blinking and stuff like that.
-#
-# NOTE: calling 'beep' turns on the backlight (bell)
-# NOTE: calling 'flash' turns it on and back off (visual bell)
-#
-MtxOrb|Generic Matrix Orbital LCD display,
-	bel=\376B^A, clear=\376X\376C\376R\376K\376T,
-	cnorm=\376K\376T, cub1=\376L, cuf1=\376M,
-	flash=\376B\001$<200>\376F, home=\376H,
-MtxOrb204|20x4 Matrix Orbital LCD display,
-	cols#20, lines#4, use=MtxOrb,
-MtxOrb162|16x2 Matrix Orbital LCD display,
-	cols#16, lines#2, use=MtxOrb,
-# The end
-
-######## OLDER TERMINAL TYPES
-#
-# This section is devoted to older commercial terminal brands that are now
-# discontinued, but known to be still in use or represented by emulations.
-#
-
-#### AT&T (att, tty)
-#
-# This section also includes Teletype-branded VDTs.
-#
-# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now
-# Boundless Technologies); for details, see the header comment on the ADDS
-# section.
-#
-# These are AT&T's official terminfo entries.  All-caps aliases have been
-# removed.
-#
-att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode,
-	am, eo, mir, msgr, xon,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcbt=\E[Z, kclr=\E[J,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
-	kdl1=\E[M, kf1=\E[1r, kf10=\E[10r, kf11=\E[11r,
-	kf12=\E[12r, kf13=\E[13r, kf14=\E[14r, kf15=\E[15r,
-	kf16=\E[16r, kf2=\E[2r, kf3=\E[3r, kf4=\E[4r, kf5=\E[5r,
-	kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, khome=\E[H,
-	kich1=\E[@, kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-	rev=\E[7m, rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h,
-	smso=\E[7m,
-att2350|AT&T 2350 Video Information Terminal 80 column mode,
-	mc0@, mc4@, mc5@, use=att2300,
-
-# Must setup RETURN KEY - CR, REC'VD LF - INDEX.
-# Seems upward compatible with vt100, plus ins/del line/char.
-# On sgr, the protection parameter is ignored.
-# No check is made to make sure that only 3 parameters are output.
-# 	standout= reverse + half-intensity = 3 | 5.
-# 	bold= reverse + underline = 2 | 3.
-# note that half-bright blinking doesn't look different from normal blinking.
-# NOTE:you must program the function keys first, label second!
-# (att4410: a BSD entry has been seen with the following capabilities:
-# <is2=\E[?6l>, <kf1=\EOc>, <kf2=\EOd>, <kf3=\EOe>, <kf4=\EOg>,
-# <kf6=\EOh>, <kf7=\EOi>, <kf8=\EOj>, -- esr)
-att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1,
-	am, hs, mir, msgr, xon,
-	cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
-	acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[2;7m, clear=\E[H\E[J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dim=\E[2m,
-	dl1=\E[M, ed=\E[J, el=\E[K, fsl=\E8, home=\E[H, ht=^I,
-	ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, is1=\E[?3l\E)0,
-	is3=\E[1;03q   f1           \EOP\E[2;03q   f2           \EOQ\E[3;03q   f3           \EOR\E[4;03q   f4           \EOS\E[5;03q   f5           \EOT\E[6;03q   f6           \EOU\E[7;03q   f7           \EOV\E[8;03q   f8           \EOW,
-	kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
-	kf6=\EOU, kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H,
-	ll=\E[24H, nel=^M^J,
-	pfx=\E[%p1%1d;%p2%l%2.2dq   f%p1%1d           %p2%s,
-	pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
-	sc=\E7,
-	sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
-	tsl=\E7\E[25;%p1%{1}%+%dH,
-
-att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1,
-	cols#132, wsl#132,
-	is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att5410v1,
-
-att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2,
-	OTbs,
-	pfx=\E[%p1%d;%p2%l%02dq   f%p1%d           %p2%s,
-	use=att5410v1,
-
-att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode,
-	cols#132, wsl#132,
-	is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410,
-
-# 5410 in terms of a vt100
-# (v5410: added <rmam>/<smam> based on init string -- esr)
-v5410|att5410 in terms of a vt100,
-	am, mir, msgr, xon,
-	cols#80, it#8, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^J, cuf1=\E[C$<2>,
-	cup=\E[%i%p1%d;%p2%dH$<5>, cuu1=\E[A$<2>, dch1=\E[P,
-	dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
-	enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich1=\E[@,
-	il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
-	kcuu1=\EOA, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O,
-	rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
-	rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
-	sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
-	smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-	use=vt100+fnkeys,
-
-#
-# Teletype Model 5420 -- A souped up 5410, with multiple windows,
-# even! the 5420 has three modes: scroll, window or page mode
-# this terminfo should work in scroll or window mode, but doesn't
-# take advantage of any of the differences between them.
-#
-# Has memory below (2 lines!)
-# 3 pages of memory (plus some spare)
-# The 5410 sequences for <cup>, <cvvis>, <dch>, <dl>, <ech>, <flash>, <home>,
-# <hpa>, <hts> would work for these, but these work in both scroll and window
-# mode... Unset insert character so insert mode works
-# <is1> sets 80 column mode,
-# <is2> escape sequence:
-# 1) turn off all fonts
-# 2) function keys off, keyboard lock off, control display off,
-#    insert mode off, erasure mode off,
-# 3) full duplex, monitor mode off, send graphics off, nl on lf off
-# 4) reset origin mode
-# 5) set line wraparound
-# 6) exit erasure mode, positional attribute mode, and erasure extent mode
-# 7) clear margins
-# 8) program ENTER to transmit ^J,
-# We use \212 to program the ^J because a bare ^J will get translated by
-# UNIX into a CR/LF. The enter key is needed for AT&T uOMS.
-#     1      2            3              4     5     6    7  8
-# <is3> set screen color to black,
-# No representation in terminfo for the delete word key: kdw1=\Ed
-# Key capabilities assume the power-up send sequence...
-# This <rmcup> is not strictly necessary, but it helps maximize
-# memory usefulness: <rmcup=\Ez>,
-# Alternate sgr0:	<sgr0=\E[m\EW^O>,
-# Alternate sgr:	<sgr=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;>,
-# smkx programs the SYS PF keys to send a set sequence.
-# It also sets up labels f1, f2, ..., f8, and sends edit keys.
-# This string causes them to send the strings <kf1>-<kf8>
-# when pressed in SYS PF mode.
-# (att4415: I added <rmam>/<smam> based on the init string -- esr)
-att4415|tty5420|att5420|AT&T 4415/5420 80 cols,
-	OTbs, db, mir, xon,
-	lh#2, lm#78, lw#8, nlab#8, wsl#55,
-	cbt=\E[Z, clear=\E[x\E[J, cnorm=\E[11;0j, cub=\E[%p1%dD,
-	cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dx,
-	cuu=\E[%p1%dA, cvvis=\E[11;1j, dch=\E[%p1%dP,
-	dl=\E[%p1%dM, ech=\E[%p1%ds\E[%p1%dD,
-	flash=\E[?5h$<200>\E[?5l, home=\E[x,
-	hpa=\E[%p1%{1}%+%dG, hts=\EH, ich=\E[%p1%d@, ich1@,
-	il=\E[%p1%dL, indn=\E[%p1%dE, is1=\E[?3l$<100>,
-	is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212,
-	is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M,
-	kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, kf2=\EOd,
-	kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
-	kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
-	kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
-	lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?2i, mc4=\E[?9i,
-	mc5=\E[?4i, mrcup=\E[%i%p1%d;%p2%dt,
-	pfx=\E[%p1%d;%p2%l%02dq   F%p1%d           %p2%s,
-	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV,
-	rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
-	rmkx=\E[19;0j\E[21;1j\212, rmln=\E|,
-	sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g,
-	tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
-	use=att4410,
-
-att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols,
-	cols#132, lm#54, wsl#97,
-	is1=\E[?3h$<100>, use=att4415,
-
-att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv,
-	flash=\E[?5l$<200>\E[?5h, is3=\E[?5h, use=att4415,
-
-att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv,
-	cols#132, lm#54, wsl#97,
-	flash=\E[?5l$<200>\E[?5h, is1=\E[?3h$<100>, is3=\E[?5h,
-	use=att4415,
-
-# Note that this mode permits programming USER PF KEYS and labels
-# However, when you program user pf labels you have to reselect
-# user pf keys to make them appear!
-att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels,
-	kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
-	pfx=\E[%p1%d;%p2%l%02d;0;1q   F%p1%d           %p2%s,
-	pln=\E[%p1%d;0;0;1q%p2%:-16.16s,
-
-att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels,
-	kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
-	use=att4415,
-
-att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels,
-	kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
-	use=att4415-rv,
-
-att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels,
-	kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
-	use=att4415-w,
-
-att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels,
-	kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
-	use=att4415-w-rv,
-
-att5420_2|AT&T 5420 model 2 80 cols,
-	am, db, hs, mir, msgr, xon,
-	cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j,
-	cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cvvis=\E[11;1j,
-	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J, el=\E[0K,
-	el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
-	hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
-	invis=\E[8m,
-	is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
-	kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
-	kel=\E[2K, kend=\Ez, kent=^J, kf1=\EOc, kf2=\EOd, kf3=\EOe,
-	kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, khome=\E[H,
-	kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
-	kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
-	lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?;2i, mc4=\E[4i,
-	mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=^M^J,
-	pfx=\E[%p1%d;%p2%l%02dq   F%p1%d           %p2%s\E~,
-	pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, rc=\E8,
-	rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j,
-	rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
-	sc=\E7,
-	sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~,
-	smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
-att5420_2-w|AT&T 5420 model 2 in 132 column mode,
-	cols#132,
-	is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
-	use=att5420_2,
-
-att4418|att5418|AT&T 5418 80 cols,
-	am, xon,
-	cols#80, lines#24,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD,
-	cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H,
-	ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=^J,
-	is1=\E[?3l, is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@,
-	kcud1=\EU, kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h,
-	kf10=\E[m, kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I,
-	kf15=\E[J, kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E,
-	kf21=\E[_, kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j,
-	kf6=\E[k, kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8,
-	rev=\E[7m, rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7,
-	sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
-att4418-w|att5418-w|AT&T 5418 132 cols,
-	cols#132,
-	is1=\E[?3h, use=att5418,
-
-att4420|tty4420|teletype 4420,
-	OTbs, da, db, eo, msgr, ul, xon,
-	cols#80, lines#24, lm#72,
-	bel=^G, clear=\EH\EJ, cr=\EG, cub1=\ED, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
-	dl1=\EM, ed=\EJ, el=\Ez, home=\EH, il1=\EL, ind=\EH\EM\EY7\s,
-	kcbt=\EO, kclr=\EJ, kcub1=^H, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\EP, kdl1=\EM, kf0=\EU, kf3=\E@, khome=\EH,
-	kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET,
-	lf0=segment advance, lf3=cursor tab, rmdc@, rmso=\E~,
-	rmul=\EZ, smdc@, smso=\E}, smul=\E\\,
-
-#  The following is a terminfo entry for the Teletype 4424
-#  asynchronous keyboard-display terminal.  It supports
-#  the vi editor.  The terminal must be set up as follows,
-#
-# 	HIGHLIGHT DEFINITION	3-TONE
-# 	DISPLAY FUNCTION	GROUP III
-#
-#  The second entry below provides limited (a la adm3a)
-#  operation under GROUP II.
-#
-#  This must be used with DISPLAY FUNCTION GROUP I or III
-# 	and HIGHLIGHT DEFINITION 3-TONE
-# The terminal has either bold or blink, depending on options
-#
-# (att4424: commented out <smcup>=\E[1m, we don't need bright locked on -- esr)
-att4424|tty4424|teletype 4424,
-	OTbs, am, xon,
-	cols#80, lines#24,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\EB, cuf=\E[%p1%dC, cuf1=\EC,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EA,
-	dch=\E[%p1%dP, dch1=\EP, dim=\EW, dl=\E[%p1%dM, dl1=\EM,
-	ed=\EJ, el=\Ez, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E\^, il=\E[%p1%dL, il1=\EL, ind=^J, is2=\E[20l\E[?7h,
-	kbs=^H, kclr=\EJ, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-	khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~,
-	rmul=\EZ,
-	sgr=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m,
-	sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\,
-	tbc=\EF,
-
-att4424-1|tty4424-1|teletype 4424 in display function group I,
-	kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@,
-	use=att4424,
-
-# This entry is not one of AT&T's official ones, it was translated from the
-# 4.4BSD termcap file.  The highlight strings are different from att4424.
-# I have no idea why this is -- older firmware version, maybe?
-# The following two lines are the comment originally attached to the entry:
-# This entry appears to avoid the top line - I have no idea why.
-# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp
-att4424m|tty4424m|teletype 4424M,
-	am, da, db, mir,
-	cols#80, it#8, lines#23,
-	bel=^G, clear=\E[2;H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%2d;%p2%2dH\E[B, cuu1=\E[A, dch1=\EP,
-	dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=^J, ip=$<2/>,
-	is2=\E[m\E[2;24r, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, khome=\E[H, nel=^M^J, ri=\ET, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-
-# The Teletype 5425 is really version 2 of the Teletype 5420. It
-# is quite similar, except for some minor differences. No page
-# mode, for example, so all of the <cup> sequences used above have
-# to change back to what's being used for the 5410. Many of the
-# option settings have changed their numbering as well.
-#
-# This has been tested on a preliminary model.
-#
-# (att5425: added <rmam>/<smam> based on the init string -- esr)
-att5425|tty5425|att4425|AT&T 4425/5425,
-	am, da, db, hs, mir, msgr, xenl, xon,
-	cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
-	clear=\E[H\E[J, cnorm=\E[12;0j, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[12;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[J,
-	el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
-	flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
-	hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
-	invis=\E[8m, is1=\E<\E[?3l$<100>,
-	is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212,
-	is3=\E[?5l, kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[J,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
-	kdl1=\E[M, kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc,
-	kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi,
-	kf8=\EOj, khome=\E[H, kich1=\E[4h, kil1=\E[L, kind=\E[T,
-	kri=\E[S, ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i,
-	nel=^M^J,
-	pfx=\E[%p1%d;%p2%l%02dq   F%p1%1d           %p2%s,
-	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, rc=\E8,
-	rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l,
-	rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
-	rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
-	sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH,
-	vpa=\E[%p1%{1}%+%dd,
-
-att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels,
-	smkx=\E[21;1j\E[25;4j\Eent, use=att4425,
-
-att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode,
-	cols#132, lm#54, wsl#97,
-	is1=\E[?3h$<100>, use=tty5425,
-
-# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
-# I also added <rmam>/<smam> -- esr)
-att4426|tty4426|teletype 4426S,
-	am, da, db, xon,
-	cols#80, lines#24, lm#48,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V,
-	cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\EA, dch=\E[%p1%dP, dch1=\EP,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H,
-	hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^,
-	il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS,
-	is1=\Ec\E[?7h, is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO,
-	kclr=\E[2J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
-	kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, ll=\E[24H,
-	nel=^M^J, rc=\E8, rev=\E[7m, ri=\ET, rin=\E[%p1%dT,
-	rmacs=\E(B, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
-	rs2=\Ec\E[?3l\E[2;0y, sc=\E7, sgr0=\E[m\E(B, smacs=\E(0,
-	smam=\E[?7h, smso=\E[5m, smul=\E[4m, tbc=\E[3g,
-	vpa=\E[%p1%dd,
-
-# Terminfo entry for the AT&T 510 A Personal Terminal
-# Function keys 9 - 16 are available only after the
-# screen labeled (soft keys/action blocks) are labeled.  Function key
-# 9 corresponds to the leftmost touch target on the screen,
-# function key 16 corresponds to the rightmost.
-#
-# This entry is based on one done by Ernie Rice at Summit, NJ and
-# changed by Anne Gallup, Skokie, IL, ttrdc!anne
-att510a|bct510a|AT&T 510A Personal Terminal,
-	am, mir, msgr, xenl, xon,
-	cols#80, lh#2, lines#24, lw#7, nlab#8,
-	acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
-	civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[1B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP,
-	dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J,
-	el=\E[0K, el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ht=^I,
-	hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E(B\E)1\E[2l,
-	is3=\E[21;1|\212, kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm,
-	kf10=\EOd, kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh,
-	kf15=\EOi, kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe,
-	kf6=\ENf, kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T,
-	mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, nel=\EE,
-	pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
-	rmacs=^O, rmkx=\E[19;0|, rmso=\E[m, rmul=\E[m, sc=\E7,
-	sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smkx=\E[19;1|, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g,
-
-# Terminfo entry for the AT&T 510 D Personal Terminal
-# Function keys 9 through 16 are accessed by bringing up the
-# system blocks.
-# Function key 9 corresponds to the leftmost touch target on the screen,
-# function key 16 corresponds to the rightmost.
-#
-# There are problems with soft key labeling.  These are due to
-# strangenesses in the native terminal that are impossible to
-# describe in a terminfo.
-att510d|bct510d|AT&T 510D Personal Terminal,
-	am, da, db, mir, msgr, xenl, xon,
-	cols#80, lh#2, lines#24, lm#48, lw#7, nlab#8,
-	acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
-	clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD,
-	cub1=^H, cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P,
-	dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K,
-	el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H,
-	hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
-	invis=\E[8m, is1=\E(B\E)1\E[5;0|, is3=\E[21;1|\212,
-	kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd,
-	kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi,
-	kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf,
-	kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ll=\E#2,
-	mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, mgc=\E\:, nel=\EE,
-	pln=\E[%p1%dp%p2%:-16s, rc=\E8,
-	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
-	rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|,
-	rmln=\E<, rmso=\E[m, rmul=\E[m, rmxon=\E[29;1|,
-	rs2=\E[5;0|, sc=\E7,
-	sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smgl=\E4, smgr=\E5, smir=\E[4h,
-	smkx=\E[19;1|, smln=\E?, smso=\E[7m, smul=\E[4m,
-	smxon=\E[29;0|, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
-
-# (att500: I merged this with the att513 entry, att500 just used att513 -- esr)
-att500|att513|AT&T 513 using page mode,
-	am, chts, mir, msgr, xenl, xon,
-	cols#80, lh#2, lines#24, lw#8, nlab#8,
-	acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
-	clear=\E[H\E[J, cnorm=\E[11;0|, cr=^M,
-	csr=%i\E[%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[11;1|, dch=\E[%p1%dP, dch1=\E[P$<1>, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	enacs=\E(B\E)1, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
-	hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	indn=\E[%p1%dE, invis=\E[8m,
-	is1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l,
-	kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
-	kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
-	kFND=\EOX, kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK,
-	kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, kOPT=\EOR, kPRT=\EOZ,
-	kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, kRIT=\ENL, kRPL=\EOY,
-	kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kbs=^H, kcan=\EOw,
-	kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd,
-	kcrt=\EOn, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\Eent,
-	kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
-	kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm,
-	khome=\E[H, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi,
-	kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
-	kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
-	kres=\EOq, krfr=\ENa, kri=\E[T, krpl=\EOy, krst=\EOB,
-	ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, ll=\E#2,
-	mc0=\E[?98l\E[0i, mc4=\E[?98l\E[?8i, mc5=\E[?98l\E[?4i,
-	nel=\EE,
-	pfkey=\E[%p1%d;%p2%l%d;3;0p   F%p1%d           %p2%s,
-	pfloc=\E[%p1%d;%p2%l%d;2;0p   F%p1%d           %p2%s,
-	pfx=\E[%p1%d;%p2%l%d;1;0p   F%p1%d           %p2%s,
-	pln=\E[%p1%dp%p2%:-16s, rc=\E8,
-	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
-	rin=\E[%p1%dF, rmacs=^O, rmir=\E[4l,
-	rmkx=\E[19;0|\E[21;1|\212, rmln=\E<, rmso=\E[m,
-	rmul=\E[m,
-	rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l,
-	rs2=\E[5;0|, sc=\E7,
-	sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smir=\E[4h,
-	smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
-
-# 01-07-88
-# printer must be set to EMUL ANSI to accept ESC codes
-# <cuu1> stops at top margin
-# <is1> sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font
-#	and alt font ascii,wrap on,tabs cleared
-# <is2> disables newline on LF,Emphasized off
-# The <u0> capability sets form length
-att5310|att5320|AT&T Model 53210 or 5320 matrix printer,
-	xhpa, xvpa,
-	bufsz#8192, cols#132, cps#120, it#8, lines#66, orc#10,
-	orhi#100, orl#12, orvi#72,
-	cpi=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;,
-	cr=^M,
-	csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%{12}%=%tsecurity%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmosaic%;,
-	cud=\E[%p1%de, cud1=^J, cuf=\E[%p1%da, cuf1=\s, cuu1=\EM,
-	ff=^L, hpa=\E[%p1%d`, ht=^I, is1=\Ec, is2=\E[20l\r,
-	lpi=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;,
-	rshm=\E[m,
-	scs=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%t\E(8%e%p1%{15}%=%t\E(}%;,
-	smgbp=\E[;%p1%dr, smglp=\E[%{1}%p1%+%ds,
-	smgrp=\E[;%{1}%p1%+%ds, smgtp=\E[%p1%dr, sshm=\E[5m,
-	u0=\E[%p1%dt, vpa=\E[%p1%dd,
-
-# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL
-# The following SET-UP modes are assumed for normal operation:
-#	CR_DEF=CR	NL_DEF=INDEX	DUPLEX=FULL
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements.  This termcap description is for the Resident Terminal Mode.
-# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# The BRL entry also said: UNSAFE :ll=\E[70H:
-att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs,
-	am, xon,
-	cols#88, it#8, lines#70, vt#3,
-	bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
-	dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
-	home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
-	il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=^H, kclr=\E[2J,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
-	kll=\E[70;1H, nel=^M^J, rc=\E8, ri=\E[T, rin=\E[%p1%dT,
-	rs1=\Ec, sc=\E7,
-
-# 5620 terminfo  (2.0 or later ROMS with char attributes)
-# The following SET-UP modes are assumed for normal operation:
-#	DUPLEX=FULL	GEN_FLOW=ON	NEWLINE=INDEX	RETURN=CR
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements.  This termcap description is for Resident Terminal Mode.  No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# assumptions: <ind> (scroll forward one line) is only done at screen bottom
-# Be aware that older versions of the dmd have a firmware bug that affects
-# parameter defaulting; for this terminal, the 0 in \E[0m is not optional.
-# <msgr> is from an otherwise inferior BRL for this terminal.  That entry
-# also has <ll>=\E[70H commented out and marked unsafe.
-# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>.
-att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns,
-	OTbs, am, msgr, npc, xon,
-	cols#88, it#8, lines#70,
-	bel=^G, bold=\E[2m, clear=\E[H\E[J, cr=^M, cub1=^H,
-	cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
-	indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kll=\E[70;1H, nel=^J,
-	pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\E[T,
-	rin=\E[%p1%dT, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7,
-	sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
-att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer,
-	lines#24, use=att5620,
-att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer,
-	lines#34, use=att5620,
-# 5620 layer running the "S" system's downloaded graphics handler:
-att5620-s|tty5620-s|layer|vitty|5620 S layer,
-	OTbs, OTpt, am,
-	cols#80, it#8, lines#72,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
-	cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=^K, dl1=\ED,
-	el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=^J, kbs=^H, kclr=\E[2J,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
-	kll=\E[70;1H,
-
-# Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
-#
-# Entries for <kf29> thru <kf46> refer to the alternate keypad mode
-# keys:  = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER
-att605|AT&T 605 80 column 102key keyboard,
-	am, eo, xon,
-	cols#80, lines#24, lw#8, nlab#8, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
-	cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
-	dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K, el1=\E[1K, fsl=\E8, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
-	il1=\E[L, ind=^J, invis=\E[8m,
-	is1=\E[8;0|\E[?\E[13;20l\E[?\E[12h, is2=\E[m\017,
-	kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, kclr=\E[2J,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
-	kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, kf11=\ENq,
-	kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD,
-	kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH,
-	kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ,
-	kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe,
-	kf30=\EOQ, kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx,
-	kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv,
-	kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs,
-	kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh,
-	kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, kich1=\E[@,
-	kil1=\E[L, kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H,
-	mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
-	pfx=\E[%p1%d;%p2%l%02dq   F%p1%1d           %p2%s,
-	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
-	rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
-	rs2=\Ec\E[?3l, sc=\E7, sgr0=\E[m\017, smacs=\E)0\016,
-	smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
-	tsl=\E7\E[25;%i%p1%dx,
-att605-pc|ATT 605 in pc term mode,
-	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
-	cbt=\E[Z, cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
-	dch1=\E[P, dl1=\E[M, ich1=\E[@, il1=\E[L, kcbt=\E[Z,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
-	kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N,
-	kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
-	kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I,
-	rmsc=400\E[50;0|, smsc=250\E[?11l\E[50;1|, xoffc=g,
-	xonc=e, use=att605,
-att605-w|AT&T 605-w 132 column 102 key keyboard,
-	cols#132, wsl#132,
-	is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0,
-	use=att605,
-# (att610: I added <rmam>/<smam> based on the init string.  I also
-# added <indn> and <rin> because the BSD file says the att615s have them,
-# and the 615 is like a 610 with a big keyboard, and most of their other
-# smart terminals support the same sequence -- esr)
-att610|AT&T 610; 80 column; 98key keyboard,
-	am, eslok, hs, mir, msgr, xenl, xon,
-	cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
-	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	indn=\E[%p1%dS, invis=\E[8m,
-	is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
-	is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
-	kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
-	kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
-	kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
-	kind=\E[S, kri=\E[T, ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i,
-	nel=\EE,
-	pfx=\E[%p1%d;%p2%l%02dq   F%p1%1d           %p2%s,
-	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
-	ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
-	rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smln=\E[p, smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,
-att610-w|AT&T 610; 132 column; 98key keyboard,
-	cols#132, wsl#132,
-	is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
-	use=att610,
-
-att610-103k|AT&T 610; 80 column; 103key keyboard,
-	kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
-	kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
-	kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
-	kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
-	kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
-	kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
-	kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
-	kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf9@, kfnd=\EOx,
-	khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, kmsg=\EOl,
-	knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, kpp=\E[V,
-	kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, kres=\EOq,
-	krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, ksav=\EOo,
-	kslt=\ENI, kspd=\EOp, kund=\EOs, use=att610,
-att610-103k-w|AT&T 610; 132 column; 103key keyboard,
-	cols#132, wsl#132,
-	is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
-	use=att610-103k,
-att615|AT&T 615; 80 column; 98key keyboard,
-	kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
-	kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
-	kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
-	kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
-	kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
-	kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
-	kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610,
-att615-w|AT&T 615; 132 column; 98key keyboard,
-	kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
-	kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
-	kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
-	kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
-	kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
-	kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
-	kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610-w,
-att615-103k|AT&T 615; 80 column; 103key keyboard,
-	kLFT=\E[ A, kRIT=\E[ @, use=att610-103k,
-att615-103k-w|AT&T 615; 132 column; 103key keyboard,
-	kLFT=\E[ A, kRIT=\E[ @, use=att610-103k-w,
-# (att620: I added <rmam>/<smam> based on the init string and
-# <rin>/<indn> from a BSD termcap -- esr)
-att620|AT&T 620; 80 column; 98key keyboard,
-	am, eslok, hs, mir, msgr, xenl, xon,
-	cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
-	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	indn=\E[%p1%dS, invis=\E[8m,
-	is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h,
-	is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H,
-	kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
-	kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, kf17=\EOE,
-	kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, kf21=\EOI,
-	kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR,
-	kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, kf30=\EOQ,
-	kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, kf35=\EOy,
-	kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, kf4=\EOf,
-	kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, kf44=\EOp,
-	kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
-	kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T, ll=\E[24H,
-	mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
-	pfx=\E[%p1%d;%p2%l%02dq   F%p1%1d           %p2%s,
-	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
-	ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l,
-	rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
-	rs2=\Ec\E[?3l, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h,
-	smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
-	tsl=\E7\E[25;%i%p1%dx,
-att620-w|AT&T 620; 132 column; 98key keyboard,
-	cols#132, wsl#132,
-	is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
-	use=att620,
-att620-103k|AT&T 620; 80 column; 103key keyboard,
-	kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
-	kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
-	kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
-	kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
-	kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
-	kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
-	kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
-	kext=\EOk, kf10@, 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@, kf9@,
-	kfnd=\EOx, khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi,
-	kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
-	kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
-	kres=\EOq, krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB,
-	ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, use=att620,
-
-att620-103k-w|AT&T 620; 132 column; 103key keyboard,
-	cols#132, wsl#132,
-	is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
-	use=att620-103k,
-
-# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal
-# The following SETUP modes are assumed for normal operation:
-#	Local_Echo=Off	Gen_Flow=On	Return=CR	Received_Newline=LF
-#	Font_Size=Large		Non-Layers_Window_Cols=80
-#				Non-Layers_Window_Rows=60
-# Other SETUP modes may be set for operator convenience or communication
-# requirements.  Some capabilities assume a printer attached to the Aux EIA
-# port.  This termcap description is for the Fixed Non-Layers Window.  No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# (att630: added <ich1>, <blink> and <dim> from a BSD termcap file -- esr)
-att630|AT&T 630 windowing terminal,
-	OTbs, am, da, db, mir, msgr, npc, xon,
-	cols#80, it#8, lines#60, lm#0,
-	bel=^G, blink=\E[5m, cbt=\E[Z, clear=\E[H\E[J, cr=^M,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
-	el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, is2=\E[m,
-	kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kent=^M,
-	kf10=\ENp, kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt,
-	kf15=\ENu, kf16=\ENv, kf17=\ENw, kf18=\ENx, kf19=\ENy,
-	kf20=\ENz, kf21=\EN{, kf22=\EN|, kf23=\EN}, kf24=\EN~,
-	kf9=\ENo, khome=\E[H, kich1=\E[@, kil1=\E[L, mc4=\E[?4i,
-	mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
-	rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m,
-	rmul=\E[m, rs2=\Ec, sc=\E7,
-	sgr=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m,
-	sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
-	lines#24, use=att630,
-
-# This is the att700 entry for 700 native emulation of the AT&T 700
-# terminal.  Comments are relative to changes from the 605V2 entry and
-# att730 on which the entry is based.  Comments show the terminfo
-# capability name, termcap name, and description.
-#
-# Here is what's going onm in the init string:
-#	ESC [ 50;4|	set 700 native mode (really is 605)
-# x	ESC [ 56;ps| 	set lines to 24: ps=0; 40: ps=1 (plus status line)
-#	ESC [ 53;0|	set GenFlow to Xon/Xoff
-#	ESC [ 8 ;0|	set CR on NL
-# x	ESC [ ? 3 l/h	set workspace: 80 col(l); 132 col(h)
-#	ESC [ ? 4 l	jump scroll
-#	ESC [ ? 5 l/h	video: normal (l); reverse (h)
-#	ESC [ ?13 l	Labels on
-#	ESC [ ?15 l	parity check = no
-#	ESC [ 13 l	monitor mode off
-#	ESC [ 20 l	LF on NL (not CRLF on NL)
-#	ESC [ ? 7 h	autowrap on
-#	ESC [ 12 h	local echo off
-#	ESC ( B		GO = ASCII
-#	ESC ) 0		G1 = Special Char & Line Drawing
-#	ESC [ ? 31 l	Set 7 bit controls
-#
-# Note: Most terminals, especially the 600 family use Reverse Video for
-# standout mode.  DEC also uses reverse video.  The VT100 uses bold in addition
-# Assume we should stay with reverse video for 70..  However, the 605V2 exits
-# standout mode with \E[m (all normal attributes).  The 730 entry simply
-# exits reverse video which would leave other current attributes intact.  It
-# was assumed the 730 entry to be more correct so rmso has changed.  The
-# 605V2 has no sequences to turn individual attributes off, thus its setting
-# and the rmso/smso settings from the 730.
-#
-# Note: For the same reason as above in rmso I changed exit under-score mode
-# to specifically turn off underscore, rather than return to all normal
-# attributes
-#
-# Note: The following pkey_xmit is taken from the 605V2 which contained the
-# capability as pfxl.  It was changed here to pfx since pfxl
-# will only compile successfully with Unix 4.0 tic.  Also note that pfx only
-# allows strings to be parameters and label values must be programmed as
-# constant strings.  Supposedly the pfxl of Version 4.0 allows both labels
-# and strings to be parameters.  The 605V2 pfx entry should be examined later
-# in this regard. For reference the 730 pfxl entry is shown here for comparison
-# 730 pfx entry:
-#     pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s
-# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s,
-#
-# (for 4.0 tic)
-#     pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t   F%p1%1d           %;%p2%s,
-#
-# (for <4.0 tic)
-#     pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t   F%p1%1d           %;%p2%s,
-#
-# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9
-#
-# Port1 Interface
-#
-# modular 10 pin Connector
-# Left side       Right side
-# Pin 1 2 3 4 5 6 7 8 9 10
-#
-#        Key (notch) at bottom
-#
-# Pin    1 DSR
-#        3 DCD
-#        4 DTR
-#        5 Sig Ground
-#        6 RD
-#        7 SD
-#        8 CTS
-#        9 RTS
-#        10 Frame Ground
-#
-# The manual is 189 pages and is loaded with details about the escape codes,
-# etc..... Available from AT&T CIC 800-432-6600...
-# ask for Document number 999-300-660..
-#
-att700|AT&T 700 24x80 column display w/102key keyboard,
-	am, eslok, hs, mir, msgr, xenl, xon,
-	cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fln=4\,4,
-	fsl=\E8, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	il=\E[%p1%dL, il1=\E[L, ind=\ED, invis=\E[8m,
-	is2=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017,
-	is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z,
-	kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp,
-	kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC,
-	kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd,
-	kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP,
-	kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOq,
-	kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt, kf33=\EOu,
-	kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy, kf38=\EOu,
-	kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr,
-	kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg,
-	kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
-	kich1=\E[@, kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H,
-	mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
-	pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t   F%p1%1d           %;%p2%s,
-	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
-	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
-	rmir=\E[4l, rmln=\E[2p, rmso=\E[27m, rmul=\E[24m,
-	rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p, smso=\E[7m,
-	smul=\E[4m, smxon=\E[53;0|, tbc=\E[3g,
-	tsl=\E7\E[99;%i%p1%dx,
-
-# This entry was modified 3/13/90 by JWE.
-# fixes include additions of <enacs>, correcting <rep>, and modification
-# of <kHOM>.  (See comments below)
-# att730 has status line of 80 chars
-# These were commented out: <indn=\E[%p1%dS>, <rin=\E[%p1%dT>,
-# the <kf25> and up keys are used for shifted system Fkeys
-# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is
-# currently the same as <khome> (unshifted HOME or \E[H).  On the 102, 102+1
-# and 122 key keyboards, the 730's translation is \E[2J.  For consistency
-# <kHOM> has been commented out.  The user can uncomment <kHOM> if using the
-# 102, 102+1, or 122 key keyboards
-#       kHOM=\E[2J,
-# (att730: I added <rmam>/<smam> based on the init string -- esr)
-att730|AT&T 730 windowing terminal,
-	am, da, db, eslok, hs, mir, msgr, npc, xenl, xon,
-	cols#80, it#8, lh#2, lines#60, lm#0, lw#8, nlab#24, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
-	home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
-	ind=\ED, invis=\E[8m,
-	is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B,
-	is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
-	kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
-	kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw,
-	kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz, kf21=\EN{,
-	kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC, kf26=\EOD,
-	kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe, kf30=\EOH,
-	kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP, kf35=\ENQ,
-	kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU, kf4=\EOf,
-	kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY, kf44=\EOZ,
-	kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^, kf5=\EOg,
-	kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
-	kich1=\E[@, kil1=\E[L, kind=\E[S, kri=\E[T,
-	mc0=\E[?19h\E[0i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
-	pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq   SYS     F%p1%:-2d  %e;0;3q%;%p2%s,
-	pfxl=\E[%p1%d;%p2%l%02d;0;0q%p3%:-16.16s%p2%s,
-	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
-	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
-	rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h, rmso=\E[27m,
-	rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smln=\E[?13l, smso=\E[7m, smul=\E[4m, smxon=\E[?21h,
-	swidm=\E#6, tsl=\E7\E[;%i%p1%dx,
-att730-41|730MTG-41|AT&T 730-41 windowing terminal Version,
-	lines#41, use=att730,
-att730-24|730MTG-24|AT&T 730-24 windowing terminal Version,
-	lines#24, use=att730,
-att730r|730MTGr|AT&T 730 rev video windowing terminal Version,
-	flash=\E[?5l$<200>\E[?5h,
-	is1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B,
-	use=att730,
-att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version,
-	lines#41, use=att730r,
-att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version,
-	lines#24, use=att730r,
-
-# The following represents the screen layout along with the associated
-# bezel buttons for the 5430/pt505 terminal. The "kf" designations do
-# not appear on the screen but are shown to reference the bezel buttons.
-# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate
-# position relative to the screen.
-#
-#
-#
-#      +----------------------------------------------------------------+
-#      |                                                                |
-# XXXX | kf0                                                       kf24 | XXXX
-#      |                                                                |
-#      |                                                                |
-# XXXX | kf1                                                       kf23 | XXXX
-#      |                                                                |
-#      |                                                                |
-# XXXX | kf2                                                       kf22 | XXXX
-#      |                                                                |
-#      |                                                                |
-# XXXX | kf3                                                       kf21 | XXXX
-#      |                                                                |
-#      |                                                                |
-# XXXX | kf4                                                       kf20 | XXXX
-#      |                                                                |
-#      |                                                                |
-# XXXX | kf5                                                       kf19 | XXXX
-#      |                                                                |
-#      |                                                                |
-# XXXX | kf6                                                       kf18 | XXXX
-#      |                                                                |
-#      |                                                                |
-# XXXX |                                                                | XXXX
-#      |                                                                |
-#      |                                                                |
-#      +----------------------------------------------------------------+
-#
-#          XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX  XXXX
-#
-# Note: XXXX represents the screen buttons
-#                                                          CMD   REDRAW
-#
-#                                                          MAIL
-#
-# version 1 note:
-#	The character string sent by key 'kf26' may be user programmable
-#       to send either \E[16s, or \E[26s.
-#       The character string sent by key 'krfr' may be user programmable
-#       to send either \E[17s, or \E[27s.
-#
-# Depression of the "CMD" key sends    \E!    (kcmd)
-# Depression of the "MAIL" key sends   \E[26s (kf26)
-# "REDRAW" same as "REFRESH" (krfr)
-#
-# "kf" functions adds carriage return to output string if terminal is in
-# 'new line' mode.
-#
-# The following are functions not covered in the table above:
-#
-#       Set keyboard character (SKC): \EPn1;Pn2w
-#                       Pn1= 0 Back Space key
-#                       Pn1= 1 Break key
-#                       Pn2=   Program char (hex)
-#
-#       Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t
-#                       Pn1=     Window number (1-39)
-#                       Pn2-Pn5= Y;X;Y;X coordinates
-#
-#       Screen Selection (SSL): \E[Pnu
-#                       Pn= Window number
-#
-#       Set Terminal Modes (SM): \E[Pnh
-#                       Pn= 3 Graphics mode
-#                       Pn= > Cursor blink
-#                       Pn= < Enter new line mode
-#                       Pn= = Enter reverse insert/replace mode
-#                       Pn= ? Enter no scroll mode
-#
-#       Reset Terminal Mode (RM): \E[Pnl
-#                       Pn= 3 Exit graphics mode
-#                       Pn= > Exit cursor blink
-#                       Pn= < Exit new line mode
-#                       Pn= = Exit reverse insert/replace mode
-#                       Pn= ? Exit no scroll mode
-#
-#       Screen Status Report (SSR): \E[Pnp
-#                       Pn= 0 Request current window number
-#                       Pn= 1 Request current window dimensions
-#
-#       Device Status Report (DSR): \E[6n    Request cursor position
-#
-#       Call Status Report (CSR): \E[Pnv
-#                       Pn= 0 Call failed
-#                       Pn= 1 Call successful
-#
-#       Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string
-#                       Pn1= Button number to be loaded
-#                       Pn2= Character count of "string"
-#                       Pn3= Key mode being loaded:
-#                               0= Unshifted
-#                               1= Shifted
-#                               2= Control
-#                       String= Text string (15 chars max)
-#
-#       Screen Number Report (SNR): \E[Pnp
-#                       Pn= Screen number
-#
-#       Screen Dimension Report (SDR): \E[Pn1;Pn2r
-#                       Pn1= Number of rows available in window
-#                       Pn2= Number of columns available in window
-#
-#       Cursor Position Report (CPR): \E[Pn1;Pn2R
-#                       Pn1= "Y" Position of cursor
-#                       Pn2= "X" Position of cursor
-#
-#       Request Answer Back (RAB): \E[c
-#
-#       Answer Back Response (ABR): \E[?;*;30;VSV
-#                       *=  0 No printer available
-#                       *=  2 Printer available
-#                       V=  Software version number
-#                       SV= Software sub version number
-#	(printer-available field not documented in v1)
-#
-#       Screen Alignment Aid: \En
-#
-#       Bell (lower pitch): \E[x
-#
-#       Dial Phone Number: \EPdstring\
-#                       string= Phone number to be dialed
-#
-#       Set Phone Labels: \EPpstring\
-#                       string= Label for phone buttons
-#
-#       Set Clock: \EPchour;minute;second\
-#
-#       Position Clock: \EPsY;X\
-#                       Y= "Y" coordinate
-#                       X= "X" coordinate
-#
-#       Delete Clock: \Epr\
-#
-#       Programming The Function Buttons: \EPfPn;string\
-#                       Pn= Button number (00-06, 18-24)
-#                                         (kf00-kf06, kf18-kf24)
-#                       string= Text to sent on button depression
-#
-# The following in version 2 only:
-#
-#       Request For Local Directory Data: \EPp12;\
-#
-#       Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\
-#
-#	Request for Local Directory Data in print format: \EPp13;\
-#
-#	Enable 'Prt on Line' mode: \022 (DC2)
-#
-#	Disable 'Prt on Line' mode: \024 (DC4)
-#
-
-# 05-Aug-86:
-# The following Terminfo entry describes functions which are supported by
-# the AT&T 5430/pt505 terminal software version 2 and later.
-att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal,
-	am, xon,
-	cols#80, it#8, lines#24,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H,
-	cnorm=\E[>l, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[>h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[0J, el=\E[0K, el1=\E[2K, home=\E[H, ht=^I,
-	il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l,
-	kbs=^H, kcmd=\E!, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf0=\E[00s, kf1=\E[01s, kf18=\E[18s,
-	kf19=\E[19s, kf2=\E[02s, kf20=\E[20s, kf21=\E[21s,
-	kf22=\E[22s, kf23=\E[23s, kf24=\E[24s, kf26=\E[26s,
-	kf3=\E[03s, kf4=\E[04s, kf5=\E[05s, kf6=\E[06s,
-	krfr=\E[27s, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
-	rmacs=\E[10m, rmam=\E[11;1j, rmir=\E[4l, rmso=\E[m,
-	rmul=\E[m, rs1=\Ec, sc=\E7, sgr0=\E[m, smacs=\E[11m,
-	smam=\E[11;0j, smir=\E[4h, smso=\E[1m, smul=\E[4m,
-
-# The following Terminfo entry describes functions which are supported by
-# the AT&T 5430/pt505 terminal software version 1.
-att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines,
-	lines#24,
-	mc4@, mc5@, rc@, rmam@, sc@, smam@, use=att505,
-tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines,
-	lines#22, use=att505,
-#
-#### ------------------ TERMINFO FILE CAN BE SPLIT HERE ---------------------
-# This cut mark helps make life less painful for people running ncurses tic
-# on machines with relatively little RAM.  The file can be broken in half here
-# cleanly and compiled in sections -- no `use' references cross this cut
-# going forward.
-#
-
-#### Ampex (Dialogue)
-#
-# Yes, these are the same people who are better-known for making audio- and
-# videotape.  I'm told they are located in Redwood City, CA.
-#
-
-# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981
-# (ampex80: some capabilities merged in from SCO's entry -- esr)
-ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80,
-	OTbs, am, bw, ul,
-	cols#80, it#8, lines#24,
-	bel=^G, cbt=\EI, clear=\E*$<75>, cr=^M, cub1=^H, cud1=^J,
-	cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	dch1=\EW, dl1=\ER$<5*>, ed=\Ey, el=\Et, ht=^I, hts=\E1,
-	ich1=\EQ, il1=\EE$<5*>, ind=^J, is2=\EA, rmso=\Ek, rmul=\Em,
-	smso=\Ej, smul=\El, tbc=\E3,
-# This entry was from somebody anonymous, Tue Aug  9 20:11:37 1983, who wrote:
-ampex175|ampex d175,
-	am,
-	cols#80, lines#24,
-	bel=^G, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\Ey, el=\Et, home=^^, ich1=\EQ, il1=\EE, ind=^J,
-	is2=\EX\EA\EF, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-	kdch1=\EW, kdl1=\ER, khome=^^, kich1=\EQ, kil1=\EE, ll=^^^K,
-	rmcup=\EF, rmso=\Ek, rmul=\Em, smcup=\EN, smso=\Ej, smul=\El,
-# No backspace key in the main QWERTY cluster. Fortunately, it has a
-# NEWLINE/PAGE key just above RETURN that sends a strange single-character
-# code.  Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS
-# mode), this key can be used as the erase key; I find I like this. Because
-# some people and some systems may not, there is another termcap ("ampex175")
-# that suppresses this little eccentricity by omitting the relevant capability.
-ampex175-b|ampex d175 using left arrow for erase,
-	kbs=^_, use=ampex175,
-# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu>
-# (ampex210: removed obsolete ":kn#10:" -- esr)
-ampex210|a210|ampex a210,
-	OTbs, am, hs, xenl,
-	cols#80, it#8, lines#24, xmc#1,
-	cbt=\EI, clear=\E*, cub1=^H, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\Ey, el=\Et, flash=\EU\EX\EU\EX\EU\EX\EU\EX,
-	fsl=\E.2, home=^^, ht=^I, ich1=\EQ,
-	if=/usr/local/share/tabset/std, il1=\EE, invis@,
-	is2=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En, kcub1=^H,
-	kcud1=^V, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
-	kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
-	kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, khome=^^,
-	tsl=\E.0\Eg\E}\Ef, use=adm+sgr,
-# (ampex219: I added <rmam>/<smam> based on the init string, added <cvvis>
-# from ampex219w, added <cnorm>=\E[?3l, irresistibly suggested by <cvvis>,
-# and moved the padding to be *after* the caps -- esr)
-ampex219|ampex-219|amp219|Ampex with Automargins,
-	hs, xenl,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, cbt=\E[Z,
-	clear=\E[H\E[2J$<50>, cnorm=\E[?3l, cr=^M,
-	csr=%i\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B,
-	cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
-	cuu1=\E[A$<2>, cvvis=\E[?3h, dim=\E[1m, ed=\E[J$<50>,
-	el=\E[K$<3>, home=\E[H, ht=^I, ind=^J,
-	is2=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[21~,
-	kf1=\E[7~, kf2=\E[8~, kf3=\E[9~, kf4=\E[10~, kf5=\E[11~,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
-	rev=\E[7m, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E>,
-	rmso=\E[m$<2>, rmul=\E[m$<2>, sgr0=\E[m$<2>, smam=\E[?7h,
-	smkx=\E=, smso=\E[7m$<2>, smul=\E[4m$<2>,
-ampex219w|ampex-219w|amp219w|Ampex 132 cols,
-	cols#132, lines#24,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
-	is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, use=ampex219,
-# (ampex232: removed <if=/usr/local/share/tabset/ampex>, no file and no <hts> --esr)
-ampex232|ampex-232|Ampex Model 232,
-	am,
-	cols#80, lines#24, xmc#1,
-	cbt=\EI, civis=\E.0, clear=\E+, cnorm=\E.4, cub1=^H, cud1=^V,
-	cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	dch1=\EW, dl1=\ER$<5*/>, ed=\EY, el=\ET,
-	flash=\Eb$<200/>\Ed, ht=^I, ich1=\EQ, il1=\EE$<5*/>,
-	invis@, is2=\Eg\El, kbs=^H, kcub1=^H, kcud1=^V, kcuf1=^L,
-	kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
-	kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
-	kf9=^AI\r, khome=^^, use=adm+sgr,
-# (ampex: removed <if=/usr/local/share/tabset/amp-132>, no file and no <hts> -- esr)
-ampex232w|Ampex Model 232 / 132 columns,
-	cols#132, lines#24,
-	is2=\E\034Eg\El, use=ampex232,
-
-#### Ann Arbor (aa)
-#
-# Ann Arbor made dream terminals for hackers -- large screen sizes and huge
-# numbers of function keys.  At least some used monitors in portrait mode,
-# allowing up to 76-character screen heights!  They were reachable at:
-#
-#	Ann Arbor Terminals
-#	6175 Jackson Road
-#	Ann Arbor, MI 48103
-#	(313)-663-8000
-#
-# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor
-# can't be found on the Web; I fear they're long dead.  R.I.P.
-#
-
-
-# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs.
-# Highly modified 6/22 by Mike O'Brien.
-# split out into several for the various screen sizes by dave-yost@rand
-# Modifications made 3/82 by Mark Horton
-# Modified by Tom Quarles at UCB for greater efficiency and more diversity
-# status line moved to top of screen, <flash> removed 5/82
-# Some unknown person at SCO then hacked the init strings to make them more
-# efficient.
-#
-# assumes the following setup:
-#   A menu: 0000 1010  0001 0000
-#   B menu: 9600  0100 1000  0000 0000  1000 0000  17  19
-#   C menu: 56   66   0    0    9600  0110 1100
-#   D menu: 0110 1001   1   0
-#
-#	Briefly, the settings are for the following modes:
-#	   (values are for bit set/clear with * indicating our preference
-#	    and the value used to test these termcaps)
-#	Note that many of these settings are irrelevent to the terminfo
-#	and are just set to the default mode of the terminal as shipped
-#	by the factory.
-#
-# A menu: 0000 1010  0001 0000
-#	Block/underline cursor*
-#	blinking/nonblinking cursor*
-#	key click/no key click*
-#	bell/no bell at column 72*
-#
-#	key pad is cursor control*/key pad is numeric
-#	return and line feed/return for <cr> key *
-#	repeat after .5 sec*/no repeat
-#	repeat at 25/15 chars per sec. *
-#
-#	hold data until pause pressed/process data unless pause pressed*
-#	slow scroll/no slow scroll*
-#	Hold in area/don't hold in area*
-#	functions keys have default*/function keys disabled on powerup
-#
-#	show/don't show position of cursor during page transmit*
-#	unused
-#	unused
-#	unused
-#
-# B menu: 9600  0100 1000  0000 0000  1000 0000  17  19
-#	Baud rate (9600*)
-#
-#	2 bits of parity - 00=odd,01=even*,10=space,11=mark
-#	1 stop bit*/2 stop bits
-#	parity error detection off*/on
-#
-#	keyboard local/on line*
-#	half/full duplex*
-#	disable/do not disable keyboard after data transmission*
-#
-#	transmit entire page/stop transmission at cursor*
-#	transfer/do not transfer protected characters*
-#	transmit all characters/transmit only selected characters*
-#	transmit all selected areas/transmit only 1 selected area*
-#
-#	transmit/do not transmit line separators to host*
-#	transmit/do not transmit page tab stops tabs to host*
-#	transmit/do not transmit column tab stop tabs to host*
-#	transmit/do not transmit graphics control (underline,inverse..)*
-#
-#	enable*/disable auto XON/XOFF control
-#	require/do not require receipt of a DC1 from host after each LF*
-#	pause key acts as a meta key/pause key is pause*
-#	unused
-#
-#	unused
-#	unused
-#	unused
-#	unused
-#
-#	XON character (17*)
-#	XOFF character (19*)
-#
-# C menu: 56   66   0    0    9600  0110 1100
-#	number of lines to print data on (printer) (56*)
-#
-#	number of lines on a sheet of paper (printer) (66*)
-#
-#	left margin (printer) (0*)
-#
-#	number of pad chars on new line to printer (0*)
-#
-#	printer baud rate (9600*)
-#
-#	printer parity: 00=odd,01=even*,10=space,11=mark
-#	printer stop bits: 2*/1
-#	print/do not print guarded areas*
-#
-#	new line is: 01=LF,10=CR,11=CRLF*
-#	unused
-#	unused
-#
-# D menu: 0110 1001   1   0
-#	LF is newline/LF is down one line, same column*
-#	wrap to preceding line if move left from col 1*/don't wrap
-#	wrap to next line if move right from col 80*/don't wrap
-#	backspace is/is not destructive*
-#
-#	display*/ignore DEL character
-#	display will not/will scroll*
-#	page/column tab stops*
-#	erase everything*/erase unprotected only
-#
-#	editing extent: 0=display,1=line*,2=field,3=area
-#
-#	unused
-#
-
-annarbor4080|aa4080|ann arbor 4080,
-	OTbs, am,
-	cols#80, lines#40,
-	bel=^G, clear=\014$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=^_,
-	cup=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c,
-	cuu1=^N, home=^K, ht=^I, hts=^]^P1, ind=^J, kbs=^^, kcub1=^H,
-	kcud1=^J, kcuf1=^_, kcuu1=^N, khome=^K, tbc=^\^P^P,
-
-# Strange Ann Arbor terminal from BRL
-aas1901|Ann Arbor K4080 w/S1901 mod,
-	am,
-	cols#80, lines#40,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^N,
-	home=^K, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ll=^O\0c,
-	nel=^M^J,
-
-# If you're using the GNU termcap library, add
-#	:cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp:
-# to these capabilities.  This is the nonstandard GNU termcap scrolling
-# capability, arguments are:
-#   1. Total number of lines on the screen.
-#   2. Number of lines above desired scroll region.
-#   3. Number of lines below (outside of) desired scroll region.
-#   4. Total number of lines on the screen, the same as the first parameter.
-# The generic Ann Arbor entry is the only one that uses this.
-aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly),
-	OTbs, am, km, mc5i, mir, xon,
-	cols#80, it#8,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
-	clear=\E[H\E[J$<156>, cr=^M, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-	el=\E[K$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
-	hts=\EH, ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il=\E[%p1%dL,
-	il1=\E[L$<3>, ind=^K, invis=\E[8m, is1=\E[m\E7\E[H\E9\E8,
-	is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kbs=^H, kcbt=\E[Z,
-	kclr=\E[J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E[P, kdl1=\E[M, kf1=\EOA, kf10=\EOJ, kf11=\EOK,
-	kf12=\EOL, kf13=\EOM, kf14=\EON, kf15=\EOO, kf16=\EOP,
-	kf17=\EOQ, kf18=\EOR, kf19=\EOS, kf2=\EOB, kf20=\EOT,
-	kf21=\EOU, kf22=\EOV, kf23=\EOW, kf24=\EOX, kf3=\EOC,
-	kf4=\EOD, kf5=\EOE, kf6=\EOF, kf7=\EOG, kf8=\EOH, kf9=\EOI,
-	khome=\E[H, kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i,
-	mc4=^C, mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8,
-	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
-	rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\,
-	rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7,
-	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-	sgr0=\E[m,
-	smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
-	smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
-	vpa=\E[%p1%{1}%+%dd,
-
-aaa+rv|ann arbor ambassador in reverse video,
-	blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m,
-	is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
-	rs1=\E[H\E[7m\E[J$<156>,
-	sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
-	sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m,
-# Ambassador with the DEC option, for partial vt100 compatibility.
-aaa+dec|ann arbor ambassador in dec vt100 mode,
-	acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}},
-	csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N,
-	sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
-	smacs=^O,
-aaa-18|ann arbor ambassador/18 lines,
-	lines#18,
-	is2=\E7\E[60;0;0;18p\E8,
-	rmcup=\E[60;0;0;18p\E[60;1H\E[K, smcup=\E[18;0;0;18p,
-	use=aaa+unk,
-aaa-18-rv|ann arbor ambassador/18 lines+reverse video,
-	use=aaa+rv, use=aaa-18,
-aaa-20|ann arbor ambassador/20 lines,
-	lines#20,
-	is2=\E7\E[60;0;0;20p\E8,
-	rmcup=\E[60;0;0;20p\E[60;1H\E[K, smcup=\E[20;0;0;20p,
-	use=aaa+unk,
-aaa-22|ann arbor ambassador/22 lines,
-	lines#22,
-	is2=\E7\E[60;0;0;22p\E8,
-	rmcup=\E[60;0;0;22p\E[60;1H\E[K, smcup=\E[22;0;0;22p,
-	use=aaa+unk,
-aaa-24|ann arbor ambassador/24 lines,
-	lines#24,
-	is2=\E7\E[60;0;0;24p\E8,
-	rmcup=\E[60;0;0;24p\E[60;1H\E[K, smcup=\E[24;0;0;24p,
-	use=aaa+unk,
-aaa-24-rv|ann arbor ambassador/24 lines+reverse video,
-	use=aaa+rv, use=aaa-24,
-aaa-26|ann arbor ambassador/26 lines,
-	lines#26,
-	is2=\E7\E[60;0;0;26p\E8,
-	rmcup=\E[60;0;0;26p\E[26;1H\E[K,
-	smcup=\E[H\E[J$<156>\E[26;0;0;26p, use=aaa+unk,
-aaa-28|ann arbor ambassador/28 lines,
-	lines#28,
-	is2=\E7\E[60;0;0;28p\E8,
-	rmcup=\E[60;0;0;28p\E[28;1H\E[K,
-	smcup=\E[H\E[J$<156>\E[28;0;0;28p, use=aaa+unk,
-aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status,
-	eslok, hs,
-	lines#29,
-	dsl=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K,
-	fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;30p\E8,
-	rmcup=\E[60;1;0;30p\E[29;1H\E[K,
-	smcup=\E[H\E[J$<156>\E[30;1;0;30p\E[30;1H\E[K,
-	tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
-aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video,
-	use=aaa+rv, use=aaa-30-s,
-aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context,
-	rmcup=\E[60;1;0;30p\E[59;1H\E[K,
-	smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s,
-aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video,
-	rmcup=\E[60;1;0;30p\E[59;1H\E[K,
-	smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s-rv,
-aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines,
-	lines#30,
-	is2=\E7\E[60;0;0;30p\E8,
-	rmcup=\E[60;0;0;30p\E[30;1H\E[K,
-	smcup=\E[H\E[J$<156>\E[30;0;0;30p, use=aaa+unk,
-aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video,
-	use=aaa+rv, use=aaa-30,
-aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context,
-	rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
-	use=aaa-30,
-aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context,
-	rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
-	use=aaa+rv, use=aaa-30,
-aaa-36|ann arbor ambassador/36 lines,
-	lines#36,
-	is2=\E7\E[60;0;0;36p\E8,
-	rmcup=\E[60;0;0;36p\E[36;1H\E[K,
-	smcup=\E[H\E[J$<156>\E[36;0;0;36p, use=aaa+unk,
-aaa-36-rv|ann arbor ambassador/36 lines+reverse video,
-	use=aaa+rv, use=aaa-36,
-aaa-40|ann arbor ambassador/40 lines,
-	lines#40,
-	is2=\E7\E[60;0;0;40p\E8,
-	rmcup=\E[60;0;0;40p\E[40;1H\E[K,
-	smcup=\E[H\E[J$<156>\E[40;0;0;40p, use=aaa+unk,
-aaa-40-rv|ann arbor ambassador/40 lines+reverse video,
-	use=aaa+rv, use=aaa-40,
-aaa-48|ann arbor ambassador/48 lines,
-	lines#48,
-	is2=\E7\E[60;0;0;48p\E8,
-	rmcup=\E[60;0;0;48p\E[48;1H\E[K,
-	smcup=\E[H\E[J$<156>\E[48;0;0;48p, use=aaa+unk,
-aaa-48-rv|ann arbor ambassador/48 lines+reverse video,
-	use=aaa+rv, use=aaa-48,
-aaa-60-s|ann arbor ambassador/59 lines+status,
-	eslok, hs,
-	lines#59,
-	dsl=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K,
-	fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;60p\E8,
-	tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
-aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video,
-	use=aaa+rv, use=aaa-60-s,
-aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video,
-	use=aaa+dec, use=aaa+rv, use=aaa-60-s,
-aaa-60|ann arbor ambassador/60 lines,
-	lines#60,
-	is2=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8,
-	use=aaa+unk,
-aaa-60-rv|ann arbor ambassador/60 lines+reverse video,
-	use=aaa+rv, use=aaa-60,
-aaa-db|ann arbor ambassador 30/destructive backspace,
-	OTbs@,
-	cub1=\E[D, is3=\E[1Q\E[m\E[>20l\E[>30h, use=aaa-30,
-
-guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols,
-	lines#33,
-	flash=\E[>59h$<100>\E[>59l,
-	is2=\E7\E[255;0;0;33;80;80p\E8\E[J, is3=\E[>59l,
-	rmcup=\E[255p\E[255;1H\E[K, smcup=\E[33p, use=aaa+unk,
-guru+rv|guru changes for reverse video,
-	flash=\E[>59l$<100>\E[>59h, is3=\E[>59h,
-guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video,
-	use=guru+rv, use=guru-33,
-guru+s|guru status line,
-	eslok, hs,
-	dsl=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K, fsl=\E[>51l,
-	rmcup=\E[255;1p\E[255;1H\E[K, smcup=,
-	tsl=\E[>51h\E[1;%p1%dH\E[2K,
-guru-nctxt|guru with no saved context,
-	smcup=\E[H\E[J$<156>\E[33p\E[255;1H\E[K, use=guru,
-guru-s|guru-33-s|ann arbor guru/33 lines+status,
-	lines#32,
-	is2=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J,
-	smcup=\E[33;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-24|ann arbor guru 24 lines,
-	cols#80, lines#24,
-	is2=\E7\E[255;0;0;24;80;80p\E8\E[J, smcup=\E[24p,
-	use=guru+unk,
-guru-44|ann arbor guru 44 lines,
-	cols#97, lines#44,
-	is2=\E7\E[255;0;0;44;97;100p\E8\E[J, smcup=\E[44p,
-	use=guru+unk,
-guru-44-s|ann arbor guru/44 lines+status,
-	lines#43,
-	is2=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J,
-	smcup=\E[44;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-76|guru with 76 lines by 89 cols,
-	cols#89, lines#76,
-	is2=\E7\E[255;0;0;76;89;100p\E8\E[J, smcup=\E[76p,
-	use=guru+unk,
-guru-76-s|ann arbor guru/76 lines+status,
-	cols#89, lines#75,
-	is2=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J,
-	smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-76-lp|guru-lp|guru with page bigger than line printer,
-	cols#134, lines#76,
-	is2=\E7\E[255;0;0;76;134;134p\E8\E[J, smcup=\E[76p,
-	use=guru+unk,
-guru-76-w|guru 76 lines by 178 cols,
-	cols#178, lines#76,
-	is2=\E7\E[255;0;0;76;178;178p\E8\E[J, smcup=\E[76p,
-	use=guru+unk,
-guru-76-w-s|ann arbor guru/76 lines+status+wide,
-	cols#178, lines#75,
-	is2=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J,
-	smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-76-wm|guru 76 lines by 178 cols with 255 cols memory,
-	cols#178, lines#76,
-	is2=\E7\E[255;0;0;76;178;255p\E8\E[J, smcup=\E[76p,
-	use=guru+unk,
-aaa-rv-unk|ann arbor unknown type,
-	lh#0, lw#0, nlab#0,
-	blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m,
-	is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
-	rs1=\E[H\E[7m\E[J,
-	sgr=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
-	sgr0=\E[7m, smso=\E[m, smul=\E[4;7m,
-
-#### Applied Digital Data Systems (adds)
-#
-# ADDS itself is long gone.  ADDS was bought by NCR, and the same group made
-# ADDS and NCR terminals.  When AT&T and NCR merged, the engineering for
-# terminals was merged again.  Then AT&T sold the terminal business to
-# SunRiver, which later changed its  name to Boundless Technologies.  The
-# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there
-# as of early 1995) are at:
-#
-#	Boundless Technologies
-#	100 Marcus Boulevard
-#	Hauppauge, NY 11788-3762
-#	Vox: (800)-231-5445
-#	Fax: (516)-342-7378
-#	Web: http://boundless.com
-#
-# Their voice mail used to describe the place as "SunRiver (formerly ADDS)".
-# In 1995 Boundless acquired DEC's terminals business.
-#
-
-# Regent: lowest common denominator, works on all regents.
-# (regent: renamed ":bc:" to ":le:" -- esr)
-regent|Adds Regent Series,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, cuu1=^Z,
-	home=\EY\s\s, ind=^J, ll=^A,
-# Regent 100 has a bug where if computer sends escape when user is holding
-# down shift key it gets confused, so we avoid escape.
-regent100|Adds Regent 100,
-	xmc#1,
-	bel=^G,
-	cup=\013%p1%' '%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
-	kf0=^B1\r, kf1=^B2\r, kf2=^B3\r, kf3=^B4\r, kf4=^B5\r,
-	kf5=^B6\r, kf6=^B7\r, kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3,
-	lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@,
-	sgr0=\E0@, smso=\E0P, smul=\E0`, use=regent,
-regent20|Adds Regent 20,
-	bel=^G, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ed=\Ek, el=\EK,
-	use=regent,
-regent25|Adds Regent 25,
-	bel=^G, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, khome=^A,
-	use=regent20,
-regent40|Adds Regent 40,
-	xmc#1,
-	bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf0=^B1\r, kf1=^B2\r,
-	kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
-	kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6,
-	lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, sgr0=\E0@, smso=\E0P,
-	smul=\E0`, use=regent25,
-regent40+|Adds Regent 40+,
-	is2=\EB, use=regent40,
-regent60|regent200|Adds Regent 60,
-	dch1=\EE, is2=\EV\EB, kdch1=\EE, kich1=\EF, krmir=\EF,
-	rmir=\EF, rmso=\ER\E0@\EV, smir=\EF, smso=\ER\E0P\EV,
-	use=regent40+,
-# From: <edward@onyx.berkeley.edu> Thu Jul  9 09:27:33 1981
-# (viewpoint: added <kcuf1>, function key, and <dl1> capabilities -- esr)
-viewpoint|addsviewpoint|adds viewpoint,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=^L, cnorm=\017\E0`, cr=^M, cub1=^H, cud1=^J,
-	cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
-	cvvis=\017\E0P, dl1=\El, ed=\Ek$<16.1*>, el=\EK$<16>,
-	ind=^J, is2=\017\E0`, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
-	kf0=^B1, kf2=^B2, kf3=^B!, kf4=^B", kf5=^B#, khome=^A, ll=^A,
-	rmso=^O, rmul=^O, sgr0=^O, smso=^N, smul=^N,
-# Some viewpoints have bad ROMs that foo up on ^O
-screwpoint|adds viewpoint with ^O bug,
-	cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint,
-
-# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
-# The <civis>/<cnorm>/<sgr>/<sgr0> strings were added by ESR from specs.
-# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000,
-# underline=01100000, rev=01010000, blink=01000010,dim=01000001,
-# invis=01000100 and %c is the logical or of desired attributes.
-# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(.
-#
-# Update by TD - 2004:
-# Adapted from
-#	http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt
-#
-# COMMANDS                        ASCII CODE
-#
-# Address, Absolute               ESC,=,row,column
-# Beep                            BEL
-# Aux Port Enable                 ESC,@
-# Aux Port Disable                ESC,A
-# Backspace                       BS
-# Cursor back                     BS
-# Cursor down                     LF
-# Cursor forward                  FF
-# Cursor home                     RS
-# Cursor up                       VT
-# Cursor supress                  ETB
-# Cursor enable                   CAN
-# Erase to end of line            ESC,T
-# Erase to end of page            ESC,Y
-# Erase screen                    SUB
-# Keyboard lock                   SI
-# Keyboard unlock                 SO
-# Read current cursor position    ESC,?
-# Set Attribute                   ESC,0,x  (see below for values of x)
-# Tag bit reset                   ESC,(
-# Tag bit set                     ESC,)
-# Transparent Print on            ESC,3
-# Transparent Print off           ESC,4
-#
-#
-# ATTRIBUTES
-#
-# Normal                          @	0100
-# Half Intensity                  A	0101
-# Blinking                        B	0102
-# Half Intensity Blinking         C	0103
-# Reverse Video                   P	0120
-# Reverse Video Half Intensity    Q	0121
-# Reverse Video Blinking          R	0122
-# Reverse Video Half Intensity
-#    Blinking                     S	0123
-# Underlined                      `	0140
-# Underlined Half Intensity       a	0141
-# Underlined Blinking             b	0142
-# Underlined Half Intensity
-#    Blinking                     c	0143
-# Video suppress                  D	0104
-vp3a+|viewpoint3a+|adds viewpoint 3a+,
-	am, bw,
-	cols#80, it#8, lines#24,
-	blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M,
-	cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dim=\E0A\E),
-	ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, invis=\E0D\E),
-	kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
-	nel=^M^J, rev=\E0P\E), rmso=\E(,
-	sgr=%?%p1%p2%|%p3%|%p4%|%p5%|%p7%|%t\E0%{64}%?%p1%t%{17}%|%;%?%p2%t%{32}%|%;%?%p3%t%{16}%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%c%?%p7%tD%;\E)%e\E(%;,
-	sgr0=\E(, smso=\E0Q\E), smul=\E0`\E),
-vp60|viewpoint60|addsvp60|adds viewpoint60,
-	use=regent40,
-#
-# adds viewpoint 90 - from cornell
-# Note:  emacs sends ei occasionally to insure the terminal is out of
-#        insert mode. This unfortunately puts the viewpoint90 IN insert
-#        mode.  A hack to get around this is <ich1=\EF\s\EF^U>.  (Also,
-#   -    :ei=:im=: must be present in the termcap translation.)
-#   -    <xhp> indicates glitch that attributes stick to location
-#   -    <msgr> means it's safe to move in standout mode
-#   -    <clear=\EG\Ek>: clears screen and visual attributes without affecting
-#               the status line
-# Function key and label capabilities merged in from SCO.
-vp90|viewpoint90|adds viewpoint 90,
-	OTbs, bw, msgr, xhp,
-	cols#80, lines#24,
-	clear=\EG\Ek, cub1=^H, cud1=^J, cuf1=^F,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EE,
-	dl1=\El, ed=\Ek, el=\EK, home=\EY\s\s, ht=^I,
-	ich1=\EF \EF\025, ind=^J, kbs=^H, kcub1=^U, kcud1=^J,
-	kcuf1=^F, kcuu1=^Z, kf0=^B1\r, kf1=^B2\r, kf10=^B;\r,
-	kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
-	kf7=^B8\r, kf8=^B9\r, kf9=^B\:\r, khome=^A, lf0=F1, lf1=F2,
-	lf10=F11, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9,
-	lf9=F10, ll=^A, rmso=\ER\E0@\EV, rmul=\ER\E0@\EV,
-	sgr0=\ER\E0@\EV, smso=\ER\E0Q\EV, smul=\ER\E0`\EV,
-# Note: if return acts weird on a980, check internal switch #2
-# on the top chip on the CONTROL pc board.
-adds980|a980|adds consul 980,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\014$<1>\013@, cr=^M, cub1=^H, cud1=^J,
-	cuf1=\E^E01, cup=\013%p1%{64}%+%c\E\005%p2%2d,
-	dl1=\E\017$<13>, il1=\E\016$<13>, ind=^J, kf0=\E0, kf1=\E1,
-	kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8,
-	kf9=\E9, rmso=^O, sgr0=^O, smso=^Y^^^N,
-
-#### C. Itoh Electronics
-#
-# As of 1995 these people no longer make terminals (they're still in the
-# printer business).  Their terminals were all clones of the DEC VT series.
-# They're located in Orange County, CA.
-#
-
-# CIT 80  - vt-52 emulator, the termcap has been modified to remove
-#           the delay times and do an auto tab set rather than the indirect
-#           file used in vt100.
-cit80|cit-80|citoh 80,
-	OTbs, am,
-	cols#80, lines#24,
-	clear=\E[H\EJ, cr=^M, cub1=^H, cuf1=\E[C,
-	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L,
-	ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
-	kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
-# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985
-# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr)
-cit101|citc|C.itoh fast vt100,
-	OTbs, am, xenl,
-	cols#80, lines#24,
-	bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E7\E[U,
-	dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
-	flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L,
-	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m,
-# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL
-# The following termcap entry was created from the Callan cd100 entry.  The
-# last two lines (with the capabilities in caps) are used by RM-cobol to allow
-# full selection of combinations of reverse video, underline, and blink.
-# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\
-# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\
-# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr)
-cit101e|C. Itoh CIT-101e,
-	OTbs, OTpt, am, mir, msgr,
-	cols#80, it#8, lines#24,
-	acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
-	cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
-	cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M, ed=\E[J,
-	el=\E[K, if=/usr/local/share/tabset/vt100, il1=\E[L,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl,
-	kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l,
-	rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N, smir=\E[4h,
-	smkx=\E=, smso=\E[7m, smul=\E[4m,
-# From: David S. Lawyer, June 1997:
-# The CIT 101-e was made in Japan in 1983-4 and imported by CIE
-# Terminals in Irvine, CA.  It was part of CITOH Electronics.  In the
-# late 1980's CIT Terminals went out of business.
-# There is no need to use the initialization string is=... (by invoking
-# tset or setterm etc.) provided that the terminal has been manually set
-# up (and the setup saved with ^S) to be compatible with this termcap.  To be
-# compatible it should be in ANSI mode (not VT52).   A set-up that
-# works is to set all the manually setable stuff to factory defaults
-# by pressing ^D in set-up mode.  Then increse the brighness with the
-# up-arrow key since the factory default will likely be dim on an old
-# terminal.  Then change any options you want (provided that they are
-# compatible with the termcap).  For my terminal I set: Screen
-# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver:
-# on.  I also set up mine for parity (but you may not need it).  Then
-# save the setup with ^S.
-# (cit101e-rv: added empty <rmcup> to suppress a tic warning. --esr)
-cit101e-rv|Citoh CIT-101e (sets reverse video),
-	am, eo, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24,
-	OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
-	civis=\E[1v, clear=\E[H\E[J, cnorm=\E[0;3;4v, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l\E[?5h$<200/>,
-	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
-	is2=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H,
-	kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8,
-	rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=, rmir=\E[4l,
-	rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g, sc=\E7,
-	sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%p1%d;%p2%dR,
-	u7=\E[6n, u8=\E[?6c, u9=\E[c,
-cit101e-n|CIT-101e w/o am,
-	am@,
-	cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
-	use=cit101e,
-cit101e-132|CIT-101e with 132 cols,
-	cols#132,
-	kbs=^H, kcub1=^H, kcud1=^J, use=cit101e,
-cit101e-n132|CIT-101e with 132 cols w/o am,
-	am@,
-	cols#132,
-	cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
-	use=cit101e,
-# CIE Terminals CIT-500 from BRL
-# The following SET-UP modes are assumed for normal operation:
-#	GENERATE_XON/XOFF:YES	DUPLEX:FULL		NEWLINE:OFF
-#	AUTOWRAP:ON		MODE:ANSI		SCREEN_LENGTH:64_LINES
-#	DSPLY_CNTRL_CODES?NO	PAGE_WIDTH:80		EDIT_MODE:OFF
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements.
-# Hardware tabs are assumed to be set every 8 columns; they can be set up
-# by the "reset", "tset", or "tabs" utilities.  No delays are specified; use
-# "stty ixon -ixany" to enable DC3/DC1 flow control!
-# (cit500: I added <rmam>/<smam> based on the init string -- esr)
-cit500|CIE Terminals CIT-500,
-	OTbs, OTpt, mir, msgr, xon,
-	OTkn#10, cols#80, it#8, lines#64, vt#3,
-	acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
-	clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\EM, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ed=\EJ, el=\EK, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
-	il1=\E[L, ind=^J, is2=\E<\E)0, kbs=^H, kcbt=\E[Z, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[P, kdl1=\E[M,
-	ked=\EJ, kel=\EK, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
-	kf4=\EOU, kf5=\EOV, kf6=\EOW, kf7=\EOX, kf8=\EOY, kf9=\EOZ,
-	khome=\E[H, kich1=\E[4h, kil1=\E[L, krmir=\E[4l, lf0=PF1,
-	lf1=PF2, lf2=PF3, lf3=PF4, lf4=F15, lf5=F16, lf6=F17, lf7=F18,
-	lf8=F19, lf9=F20, ll=\E[64H, nel=\EE, rc=\E8, rev=\E[7m,
-	ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
-	rmso=\E[m, rmul=\E[m,
-	rs1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>,
-	sc=\E7, sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-# C. Itoh printers begin here
-citoh|ci8510|8510|c.itoh 8510a,
-	cols#80, it#8,
-	bold=\E!, cub1@,
-	is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073.,
-	rep=\ER%p2%03d%p1%c, ri=\Er, rmul=\EY, sgr0=\E"\EY,
-	smul=\EX, use=lpr,
-citoh-pica|citoh in pica,
-	is1=\EN, use=citoh,
-citoh-elite|citoh in elite,
-	cols#96,
-	is1=\EE,
-	is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089.,
-	use=citoh,
-citoh-comp|citoh in compressed,
-	cols#136,
-	is1=\EQ,
-	is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089\,097\,105\,113\,121\,129.,
-	use=citoh,
-# citoh has infinite cols because we don't want lp ever inserting \n\t**.
-citoh-prop|citoh-ps|ips|citoh in proportional spacing mode,
-	cols#32767,
-	is1=\EP, use=citoh,
-citoh-6lpi|citoh in 6 lines per inch mode,
-	is3=\EA, use=citoh,
-citoh-8lpi|citoh in 8 lines per inch mode,
-	lines#88,
-	is3=\EB, use=citoh,
-
-#### Control Data (cdc)
-#
-
-cdc456|cdc 456 terminal,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E1%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dl1=\EJ, ed=^X,
-	el=^V, home=^Y, il1=\EL, ind=^J,
-
-# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick)
-cdc721|CDC Viking,
-	OTbs, am,
-	cols#80, lines#24,
-	clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
-	cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
-	kcuu1=^W, khome=^Y,
-cdc721ll|CDC Vikingll,
-	OTbs, am,
-	cols#132, lines#24,
-	clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
-	cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
-	kcuu1=^W, khome=^Y,
-# (cdc752: the BRL entry had :ll=\E1  ^Z: commented out
-cdc752|CDC 752,
-	OTbs, am, bw, xhp,
-	cols#80, lines#24,
-	bel=^G, clear=\030\E1\s\s, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
-	cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, el=^V,
-	home=\E1\s\s, ind=^J, ll=^Y, rs1=\E1  \030\002\003\017,
-# CDC 756
-# The following switch/key settings are assumed for normal operation:
-#	96 chars	SCROLL		FULL duplex	not BLOCK
-# Other switches may be set according to communication requirements.
-# Insert/delete-character cannot be used, as the whole display is affected.
-# "so" & "se" are commented out until jove handles "sg" correctly.
-cdc756|CDC 756,
-	OTbs, am, bw,
-	OTkn#10, cols#80, lines#24,
-	bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
-	cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z,
-	dl1=\EJ$<6*/>, ed=^X, el=^V, home=^Y, il1=\EL$<6*/>, ind=^J,
-	kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, kdch1=\EI,
-	kdl1=\EL, ked=^X, kel=^V, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED,
-	kf4=\EE, kf5=\EF, kf6=\EG, kf7=\EH, kf8=\Ea, kf9=\Eb, khome=^Y,
-	khts=^O, kich1=\EK, kil1=\EL, lf0=F1, lf1=F2, lf2=F3, lf3=F4,
-	lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, ll=^Y^Z,
-	rs1=\031\030\002\003\017,
-#
-# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
-#
-# Part of the long initialization string defines the "DOWN" key to the left
-# of the tab key to send an ESC.  The real ESC key is positioned way out
-# in right field.
-#
-# The termcap won't work in 132 column mode due to the way it it moves the
-# cursor.  Termcap doesn't have the capability (as far as I could tell) to
-# handle the 721 in 132 column mode.
-#
-# (cdc721: changed :ri: to :sr: -- esr)
-cdc721-esc|Control Data 721,
-	OTbs, OTpt, am, bw, msgr, xon,
-	OTkn#10, cols#80, it#8, lines#30,
-	bel=^G, blink=^N, cbt=^^^K, clear=^L, cub1=^H, cud1=^Z,
-	cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, cuu1=^W,
-	dch1=^^N, dim=^\, dl1=^^Q, ed=^^P, el=^K, home=^Y, hts=^^^RW,
-	ich1=^^O, il1=^^R, ind=\036W =\036U, invis=^^^R[,
-	is2=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\^\036\022b\036\022i\036W =\036\022Z\036\011C1-` `!k/o,
-	kbs=^H, kcub1=^H, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^q,
-	kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, kf6=^^w, kf7=^^x,
-	kf8=^^y, kf9=^^z, khome=^Y, ll=^B =, rev=^^D,
-	ri=\036W =\036V, rmir=, rmkx=^^^Rl, rmso=^^E, rmul=^],
-	sgr0=\017\025\035\036E\036\022\\, smir=, smkx=^^^Rk,
-	smso=^^D, smul=^\, tbc=^^^RY,
-
-#### Getronics
-#
-# Getronics is a Dutch electronics company that at one time was called
-# `Geveke' and made async terminals; but (according to the company itself!)
-# they've lost all their documentation on the command set.  The hardware
-# documentation suggests the terminals were actually manufactured by a
-# Taiwanese electronics company named Cal-Comp.  There are known
-# to have been at least two models, the 33 and the 50.
-#
-
-# The 50 seems to be a top end vt220 clone, with the addition of a higher
-# screen resolution, a larger screen, at least 1 page of memory above and
-# below the screen, apparently pages of memory right and left of the screen
-# which can be panned, and about 75 function keys (15 function keys x normal,
-# shift, control, func A, func B). It also has more setup possibilities than
-# the vt220. The monitor case is dated November 1978 and the keyboard case is
-# May 1982.
-#
-# The vt100 emulation works as is.  The entry below describes the rather
-# non-conformant (but more featureful) ANSI mode.
-#
-# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995
-visa50|geveke visa 50 terminal in ansi 80 character mode,
-	bw, mir, msgr,
-	cols#80, lines#25,
-	acsc=0_aaffggh jjkkllmmnnooqqssttuuvvwwxx, bel=^G,
-	blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, home=\E[H,
-	hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
-	is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h,
-	ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS,
-	kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
-	kdl1=\EOS, kf0=\E010, kf1=\E001, kf10=\E011, kf2=\E002,
-	kf3=\E003, kf4=\E004, kf5=\E005, kf6=\E006, kf7=\E007,
-	kf8=\E008, kf9=\E009, khome=\E[f, lf2=A delete char,
-	lf3=A insert line, lf4=A delete line, lf5=A clear,
-	lf6=A ce of/cf gn, lf7=A print, lf8=A on-line,
-	lf9=A funcl0=A send, nel=^M^J, rev=\E[7m, rmacs=\E[3l,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[0;2m,
-	rmul=\E[0m, sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h,
-	smir=\E[4h, smkx=\E=, smso=\E[2;7m, smul=\E[4m, tbc=\E[3g,
-	vpa=\E[%i%p1%dd,
-
-#### Human Designed Systems (Concept)
-#
-#	Human Designed Systems
-#	400 Fehley Drive
-#	King of Prussia, PA 19406
-#	Vox: (610)-277-8300
-#	Fax: (610)-275-5739
-#	Net: support@hds.com
-#
-# John Martin <john@hds.com> is their termcap expert.  They're mostly out of
-# the character-terminal business now (1995) and making X terminals.  In
-# particular, the whole `Concept' line described here was discontinued long
-# ago.
-#
-
-# From: <vax135!hpk>  Sat Jun 27 07:41:20 1981
-# Extensive changes to c108 by arpavax:eric Feb 1982
-# Some unknown person at SCO then translated it to terminfo.
-#
-# There seem to be a number of different versions of the C108 PROMS
-# (with bug fixes in its Z-80 program).
-#
-# The first one that we had would lock out the keyboard of you
-# sent lots of short lines (like /usr/dict/words) at 9600 baud.
-# Try that on your C108 and see if it sends a ^S when you type it.
-# If so, you have an old version of the PROMs.
-#
-# You should configure the C108 to send ^S/^Q before running this.
-# It is much faster (at 9600 baud) than the c100 because the delays
-# are not fixed.
-# new status line display entries for c108-8p:
-# <is3> - init str #3 - setup term for status display -
-# set programmer mode, select window 2, define window at last
-# line of memory, set bkgnd stat mesg there, select window 0.
-#
-# <tsl> - to status line - select window 2, home cursor, erase to
-# end-of-window, 1/2 bright on, goto(line#0, col#?)
-#
-# <fsl> - from status line - 1/2 bright off, select window 0
-#
-# <dsl> - disable status display - set bkgnd status mesg with
-# illegal window #
-#
-# There are probably more function keys that should be added but
-# I don't know what they are.
-#
-# No delays needed on c108 because of ^S/^Q handshaking
-#
-c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages,
-	is3=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev  \001\177p\Ep\n,
-	rmcup=\Ev  \001\177p\Ep\r\n, use=c108-4p,
-c108-4p|concept108-4p|concept 108 w/4 pages,
-	OTbs, eslok, hs, xon,
-	pb@,
-	acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=^M,
-	cup=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c,
-	cvvis=\EW, dch1=\E 1$<16*>, dsl=\E ;\177, fsl=\Ee\E z\s,
-	ind=^J, is1=\EK\E!\E F,
-	is3=\EU\E z"\Ev\177 !p\E ;"\E z \Ev  \001 p\Ep\n,
-	rmacs=\Ej\s, rmcup=\Ev  \001 p\Ep\r\n, smacs=\Ej!,
-	smcup=\EU\Ev  8p\Ep\r\E\025,
-	tsl=\E z"\E?\E\005\EE\Ea %+\s, use=c100,
-c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video,
-	rmcup=\Ev  \002 p\Ep\r\n, smcup=\EU\Ev  8p\Ep\r,
-	use=c108-rv-4p,
-c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video,
-	flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, smso=\EE,
-	use=c108-4p,
-c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode,
-	cols#132,
-	is1=\E F\E", rmcup=\Ev  ^A0\001D\Ep\r\n,
-	smcup=\EU\Ev  8\001D\Ep\r, use=c108-8p,
-
-# Concept 100:
-# These have only window relative cursor addressing, not screen
-# relative. To get it to work right here, smcup/rmcup (which
-# were invented for the concept) lock you into a one page
-# window for screen style programs.
-#
-# To get out of the one page window, we use a clever trick:
-# we set the window size to zero ("\Ev    " in rmcup) which the
-# terminal recognizes as an error and resets the window to all
-# of memory.
-#
-# This trick works on c100 but does not on c108, sigh.
-#
-# Some tty drivers use cr3 for concept, others use nl3, hence
-# the delays on cr and ind below. This padding is only needed at
-# 9600 baud and up.  One or the other is commented out depending on
-# local conventions.
-#
-# 2 ms padding on <rmcup> isn't always enough. 6 works fine. Maybe
-# less than 6 but more than 2 will work.
-#
-# Note: can't use function keys f7-f10 because they are
-# indistinguishable from arrow keys (!), also, del char and
-# clear eol use xon/xoff so they probably won't work very well.
-#
-# Also note that we don't define insrt/del char/delline/eop/send
-# because they don't transmit unless we reset them - I figured
-# it was a bad idea to clobber their definitions.
-#
-# The <mc5> sequence changes the escape character to ^^ so that
-# escapes will be passed through to the printer. Only trouble
-# is that ^^ won't be - ^^ was chosen to be unlikely.
-# Unfortunately, if you're sending raster bits through to be
-# plotted, any character you choose will be likely, so we lose.
-#
-# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
-# cannot be # in is2 because it will hang a c100 with no printer
-# if sent twice.
-c100|concept100|concept|c104|c100-4p|hds concept 100,
-	OTbs, am, eo, mir, ul, xenl,
-	cols#80, lines#24, pb#9600, vt#8,
-	bel=^G, blink=\EC, clear=\E?\E\005$<2*>, cr=$<9>\r,
-	cub1=^H, cud1=^J, cuf1=\E=,
-	cup=\Ea%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E;,
-	dch1=\E\021$<16*>, dim=\EE, dl1=\E\002$<3*>,
-	ed=\E\005$<16*>, el=\E\025$<16>, flash=\Ek$<200>\EK,
-	ht=\011$<8>, il1=\E\022$<3*>, ind=^J, invis=\EH, ip=$<16*>,
-	is1=\EK,
-	is2=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E\010A@ \E4#\:"\E\:a\E4#;"\E\:b\E4#<"\E\:c,
-	is3=\Ev    $<6>\Ep\n, kbs=^H, kcbt=\E', kctab=\E_,
-	kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q,
-	kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7,
-	kf4=\E8, kf5=\E9, kf6=\E\:a, kf7=\E\:b, kf8=\E\:c, khome=\E?,
-	khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E.,
-	kri=\E\\, krmir=\E\0, mc4=\036o \E\EQ!\EYP\027,
-	mc5=\EQ"\EY(\027\EYD\Eo \036, prot=\EI,
-	rep=\Er%p1%c%p2%{32}%+%c$<.2*>, rev=\ED,
-	rmcup=\Ev    $<6>\Ep\r\n, rmir=\E\s\s, rmkx=\Ex,
-	rmso=\Ed, rmul=\Eg, sgr0=\EN@,
-	smcup=\EU\Ev  8p\Ep\r\E\025$<16>, smir=\E^P, smkx=\EX,
-	smso=\ED, smul=\EG,
-c100-rv|c100-rv-4p|concept100-rv|c100 rev video,
-	cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee,
-	smso=\EE, use=c100,
-oc100|oconcept|c100-1p|old 1 page concept 100,
-	in,
-	is3@, use=c100,
-
-# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996.
-# Lots of notes, originally inline, but ncurses doesn't grok that.
-#
-# am: 	not available in power on mode, but turned on with \E[=107;207h in
-#	is2=.  Also, \E=124l in is2= could have been used to prevent needing
-#	to specify xenl:, but that would have rendered the last space on the
-#	last line useless.
-# bw:	Not available in power on mode, but turned on with \E[=107;207h in
-#	is2=.
-# clear: Could be done with \E[2J alone, except that vi (and probably most
-#	other programs) assume that this also homes the cursor.
-# dsl:	Go to window 2, go to the beginning of the line, use a line feed to
-#	scroll the window, and go back to window 1.
-# is2:	the string may cause a warning to be issued by tic that it
-#	found a very long line and that it suspects that a comma is missing
-#	somewhere.  This warning can be ignored (unless it comes up more than
-#	once).  The initialization string contains the following commands:
-#
-#	 [Setup mode items changed from factory defaults:]
-#		\E)0			set alternate character set to
-#						graphics
-#		^O			set character set to default
-#	 [In case it wasn't]
-#		\E[m			turn off all attributes
-#	 [In case they weren't off]
-#		\E[=107;		cursor wrap and
-#			207h			character wrap on
-#		\E[90;3u		set Fkey definitions to "transmit"
-#						defaults
-#		\E[92;3u		set cursor key definitions to
-#						"transmit" defaults
-#		\E[43;1u		set shift F13 to transmit...
-#		\177\E$P\177
-#		\E[44;1u		set shift F14 to transmit...
-#			\177\E$Q\177
-#		\E[45;1u		set shift F15 to transmit...
-#			\177\E$R\177
-#		\E[46;1u		set shift F16 to transmit...
-#			\177\E$S\177
-#		\E[200;1u		set shift up to transmit...
-#			\177\E$A\177
-#		\E[201;1u		set shift down to transmit...
-#			\177\E$B\177
-#		\E[202;1u		set shift right to transmit...
-#			\177\E$C\177
-#		\E[203;1u		set shift left to transmit...
-#			\177\E$D\177
-#		\E[204;1u		set shift home to transmit...
-#			\177\E$H\177
-#		\E[212;1u		set backtab to transmit...
-#			\177\E$I\177
-#		\E[213;1u		set shift backspace to transmit...
-#			\177\E$^H\177
-#		\E[214;1u		set shift del to transmit...
-#			"\E$\177"
-#	 [Necessary items not mentioned in setup mode:]
-#		\E[2!w			move to window 2
-#		\E[25;25w		define window as line 25 of memory
-#		\E[!w			move to window 1
-#		\E[2*w			show current line of window 2 as
-#						status line
-#		\E[2+x			set meta key to use high bit
-#		\E[;3+}			move underline to bottom of character
-#
-#	All Fkeys are set to their default transmit definitions with \E[90;3u
-#	in is2=.  IMPORTANT:  to use this terminal definition, the "quit" stty
-#	setting MUST be redefined or deactivated, because the default is
-#	contained in almost all of this terminal's Fkey strings!  If for some
-#	reason "quit" cannot be altered, the Fkeys can, but it would be
-#	necessary to change ^| to ^] in all of these definitions, and add
-#	\E[2;029!t to is2.
-# lines: is set to 24 because this terminal refuses to treat the 25th
-#	line normally.
-# ll:	Not available in power on mode, but turned on with \E[=107;207h in
-#	is2=.
-# lm:	Pointless, given that this definition locks a single screen of
-#	memory into view, but what the hey...
-# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any
-#	other attributes alone), but some programs expect this to turn off
-#	everything.
-# rmul: Could use \E[4!{ to turn off only underline (leaving any other
-#	attributes alone), but some programs expect this to turn off
-#	everything.
-# sgr:	Attributes are set on this terminal with the string \E[ followed by
-#	a list of attribute code numbers (in decimal, separated by
-#	semicolons), followed by the character m.  The attribute code
-#	numbers are:
-#		  1 for bold;
-#		  2 for dim (which is ignored in power on mode);
-#		  4 for underline;
-#		  5 for blinking;
-#		  7 for inverse;
-#		  8 for not displayable; and
-#		=99 for protected (except that there are strange side
-#		effects to protected characters which make them inadvisable).
-#	 The mapping of terminfo parameters to attributes is as follows:
-#		%p1 (standout) = bold and inverse together;
-#		%p2 (underline) = underline;
-#		%p3 (reverse) = inverse;
-#		%p4 (blink) = blinking;
-#		%p5 (dim) is ignored;
-#		%p6 (bold) = bold;
-#		%p7 (invisible) = not displayable;
-#		%p8 (protected) is ignored; and
-#		%p9 (alt char set) = alt char set.
-#	 The code to do this is:
-#		\E[0		OUTPUT	\E[0
-#		%?%p1%p6%O	IF	(standout; bold) OR
-#		%t;1		THEN	OUTPUT	;1
-#		%;		ENDIF
-#		%?%p2		IF	underline
-#		%t;4		THEN	OUTPUT	;4
-#		%;		ENDIF
-#		%?%p4		IF	blink
-#		%t;5		THEN	OUTPUT	;5
-#		%;		ENDIF
-#		%?%p1%p3%O	IF	(standout; reverse) OR
-#		%t;7		THEN	OUTPUT	;7
-#		%;		ENDIF
-#		%?%p7		IF	invisible
-#		%t;8		THEN	OUTPUT	;8
-#		%;		ENDIF
-#		m		OUTPUT	m
-#		%?%p9		IF	altcharset
-#		%t^N		THEN	OUTPUT	^N
-#		%e^O		ELSE	OUTPUT	^O
-#		%;		ENDIF
-# sgr0: Everything is turned off (including alternate character set), since
-#	there is no way of knowing what it is that the program wants turned
-#	off.
-# smul: The "underline" attribute is reconfigurable to an overline or
-#	strikethru, or (as done with \E[;3+} in is2=), to a line at the true
-#	bottom of the character cell.  This was done to allow for more readable
-#	underlined characters, and to be able to distinguish between an
-#	underlined space, an underscore, and an underlined underscore.
-# xenl: Terminal can be configured to not need this, but this "glitch"
-#	behavior is actually preferable with autowrap terminals.
-#
-# Parameters kf31= thru kf53= actually contain the strings sent by the shifted
-# Fkeys.  There are no parameters for shifted Fkeys in terminfo.  The is2
-# string modifies the 'O' in kf43 to kf46 to a '$'.
-#
-# kcbt was originally ^I but redefined in is2=.
-# kHOM was \E[H originally but redefined in is2=, as were a number of
-# other keys.
-# kDC was originally \177 but redefined in is2=.
-#
-# kbs:	Shift was also ^H originally but redefined as \E$^H in is2=.
-# tsl:	Go to window 2, then do an hpa=.
-#
-#------- flash=\E[8;3!}^G\E[3;3!}
-#------- flash=\E[?5h$<100>\E[?5l
-# There are two ways to flash the screen, both of which have their drawbacks.
-# The first is to set the bell mode to video, transmit a bell character, and
-# set the bell mode back - but to what?  There is no way of knowing what the
-# user's old bell setting was before we messed with it.  Worse, the command to
-# set the bell mode also sets the key click volume, and there is no way to say
-# "leave that alone", or to know what it's set to, either.
-# The second way to do a flash is to set the screen to inverse video, pad for a
-# tenth of a second, and set it back - but like before, there's no way to know
-# that the screen wasn't ALREADY in inverse video, or that the user may prefer
-# it that way.  The point is moot anyway, since vi (and probably other
-# programs) assume that by defining flash=, you want the computer to use it
-# INSTEAD of bel=, rather than as a secondary type of signal.
-#
-#------- cvvis=\E[+{
-# The is the power on setting, which is also as visible as the cursor
-# gets.
-#-------  wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw
-# Windowing is possible, but not defined here because it is also used to
-# emulate status line functions.  Allowing a program to set a window could
-# clobber the status line or render it unusable.  There is additional memory,
-# but screen scroll functions are destructive and do not make use of it.
-#
-#-------   dim=			Not available in power on mode.
-# You have a choice of defining low intensity characters as "half bright" and
-# high intensity as "normal", or defining low as "normal" and high as "bold".
-# No matter which you choose, only one of either "half bright" or "bold" is
-# available at any time, so taking the time to override the default is
-# pointless.
-#
-#-------  prot=\E[=0;99m
-# Not defined, because it appears to have some strange side effects.
-#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
-#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
-#-------   pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%;
-#	 Available, but making them available to programs is inadvisable.
-#	 The code to do this is:
-#		%?%p1%{24}%<	IF	((key; 24) <;
-#		%p1%{30}%>		 ((key; 30) >;
-#		%p1%{54}%<		  (key; 54) <
-#		%A			 ) AND
-#		%O		  	) OR
-#	 [that is, "IF key < 24 OR (key > 30 AND key < 54)",]
-#		%t\E[		THEN	OUTPUT	\E[
-#		%p1%d			OUTPUT	(key) as decimal
-#	 [next line applies to pfx only]
-#		;1			OUTPUT	;1
-#		u			OUTPUT	u
-#		\177			OUTPUT	\177
-#		%p2%s			OUTPUT	(string) as string
-#		\177			OUTPUT	\177
-#	 [DEL chosen as delimiter, but could be any character]
-#	 [implied:		ELSE	do nothing]
-#		%;		ENDIF
-#
-#-------   rs2=
-# Not defined since anything it might do could be done faster and easier with
-# either Meta-Shift-Reset or the main power switch.
-#
-#-------  smkx=\E[1!z
-#-------  rmkx=\E[!z
-# These sequences apply to the cursor and setup keys only, not to the
-# numeric keypad.  But it doesn't matter anyway, since making these
-# available to programs is inadvisable.
-# For the key definitions below, all sequences beginning with \E$ are
-# custom and programmed into the terminal via is2.  \E$ also has no
-# meaning to any other terminal.
-#
-#------- cmdch=\E[;%p1%d!t
-# Available, but making it available to programs is inadvisable.
-#------- smxon=\E[1*q
-# Available, but making it available to programs is inadvisable.
-# Terminal will send XON/XOFF on buffer overflow.
-#------- rmxon=\E[*q
-# Available, but making it available to programs is inadvisable.
-# Terminal will not notify on buffer overflow.
-#-------   smm=\E[2+x
-#-------   rmm=\E[+x
-# Available, but making them available to programs is inadvisable.
-#
-# Printing:
-#	 It's not made clear in the manuals, but based on other ansi/vt type
-#	 terminals, it's a good guess that this terminal is capable of both
-#	 "transparent print" (which doesn't copy data to the screen, and
-#	 therefore needs mc5i: specified to say so) and "auxilliary print"
-#	 (which does duplicate printed data on the screen, in which case mc4=
-#	 and mc5= should use the \E[?4i and \E[?5i strings instead).
-
-hds200|Human Designed Systems HDS200,
-	am, bw, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, lm#0,
-	acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
-	blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{,
-	clear=\E[H\E[J, cnorm=\E[+{, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	dsl=\E[2!w\r\n\E[!w, ed=\E[J, el=\E[K, el1=\E[1K,
-	fsl=\E[!w, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
-	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	invis=\E[0;8m,
-	is2=\E)0\017\E[m\E[=107;207h\E[90;3u\E[92;3u\E[43;1u\177\E$P\177\E[44;1u\177\E$Q\177\E[45;1u\177\E$R\177\E[46;1u\177\E$S\177\E[200;1u\177\E$A\177\E[201;1u\177\E$B\177\E[202;1u\177\E$C\177\E[203;1u\177\E$D\177\E[204;1u\177\E$H\177\E[212;1u\177\E$I\177\E[213;1u\177\E$\010\177\E[214;1u"\E$\177"\E[2!w\E[25;25w\E[!w\E[2*w\E[2+x\E[;3+},
-	kDC=\E$\177, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kbs=^H,
-	kcbt=\E$I, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\177, kent=^M, kf1=^\001\r, kf10=^\010\r,
-	kf11=^\011\r, kf12=^\012\r, kf13=\EOP, kf14=\EOQ,
-	kf15=\EOR, kf16=\EOS, kf17=^\017\r, kf18=^\018\r,
-	kf19=^\019\r, kf2=^\002\r, kf20=^\020\r, kf21=^\021\r,
-	kf22=^\022\r, kf23=^\023\r, kf3=^\003\r, kf31=^\031\r,
-	kf32=^\032\r, kf33=^\033\r, kf34=^\034\r, kf35=^\035\r,
-	kf36=^\036\r, kf37=^\037\r, kf38=^\038\r, kf39=^\039\r,
-	kf4=^\004\r, kf40=^\040\r, kf41=^\041\r, kf42=^\042\r,
-	kf43=\E$P, kf44=\E$Q, kf45=\E$R, kf46=\E$S, kf47=^\047\r,
-	kf48=^\048\r, kf49=^\049\r, kf5=^\005\r, kf50=^\050\r,
-	kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r,
-	kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H,
-	kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A,
-	mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\E[E, rc=\E8,
-	rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmso=\E[m\017,
-	rmul=\E[m\017, sc=\E7,
-	sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m,
-	smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG,
-	vpa=\E[%i%p1%dd,
-
-# <ht> through <el> included to specify padding needed in raw mode.
-# (avt-ns: added empty <acsc> to suppress a tic warning --esr)
-avt-ns|concept avt no status line,
-	OTbs, am, eo, mir, ul, xenl, xon,
-	cols#80, it#8, lines#24, lm#192,
-	acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
-	clear=\E[H\E[J$<38>, cnorm=\E[=119l, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[=119h, dch1=\E[P, dim=\E[1!{, dl=\E[%p1%dM$<4*>,
-	dl1=\E[M$<4>, ed=\E[J$<96>, el=\E[K$<6>, home=\E[H,
-	hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>,
-	invis=\E[8m, ip=$<4>, is1=\E[=103l\E[=205l,
-	is2=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[!y\E[!z\E>\E[0\:0\:32!r\E[0*w\E[w\E2\r\n\E[2;27!t,
-	kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\E^B\r, ked=\E^D\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, khome=\E[H, kich1=\E^A\r, kil1=\E^C\r, ll=\E[24H,
-	mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-	pfloc=\E[%p1%d;0u#%p2%s#, pfx=\E[%p1%d;1u#%p2%s#,
-	prot=\E[99m, rc=\E8, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
-	ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n,
-	rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{,
-	sc=\E7,
-	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-	sgr0=\E[m, smacs=\017$<1>, smcup=\E[=4l\E[1;24w\E2\r,
-	smir=\E[4h, smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m,
-	tbc=\E[2g, vpa=\E[%p1%{1}%+%dd,
-avt-rv-ns|concept avt in reverse video mode/no status line,
-	flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
-	use=avt-ns,
-avt-w-ns|concept avt in 132 column mode/no status line,
-	is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
-	use=avt-ns,
-avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video,
-	flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
-	smcup=\E[H\E[1;24;1;132w, use=avt-ns,
-
-# Concept AVT with status line. We get the status line using the
-# "Background status line" feature of the terminal. We swipe the
-# first line of memory in window 2 for the status line, keeping
-# 191 lines of memory and 24 screen lines for regular use.
-# The first line is used instead of the last so that this works
-# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this
-# assumes an 8 page AVT but lm isn't currently used anywhere.)
-#
-avt+s|concept avt status line changes,
-	eslok, hs,
-	lm#191,
-	dsl=\E[0*w, fsl=\E[1;1!w,
-	is3=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n,
-	rmcup=\E[2w\E2\r\n, smcup=\E[2;25w\E2\r,
-	tsl=\E[2;1!w\E[;%p1%dH\E[2K,
-avt|avt-s|concept-avt|avt w/80 columns,
-	use=avt+s, use=avt-ns,
-avt-rv|avt-rv-s|avt reverse video w/sl,
-	flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
-	use=avt+s, use=avt-ns,
-avt-w|avt-w-s|concept avt 132 cols+status,
-	is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
-	use=avt+s, use=avt-ns,
-avt-w-rv|avt-w-rv-s|avt wide+status+rv,
-	flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
-	smcup=\E[H\E[1;24;1;132w, use=avt+s, use=avt-ns,
-
-#### Contel Business Systems.
-#
-
-# Contel c300 and c320 terminals.
-contel300|contel320|c300|Contel Business Systems C-300 or C-320,
-	am, in, xon,
-	cols#80, lines#24, xmc#1,
-	bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
-	dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
-	el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
-	hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
-	kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
-	kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
-	rmso=\E!\0, sgr0=\E!\0, smso=\E!\r, tbc=\E3,
-# Contel c301 and c321 terminals.
-contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321,
-	flash@, ich1@, ip@, rmso=\E!\0$<20>, smso=\E!\r$<20>,
-	use=contel300,
-
-#### Data General (dg)
-#
-# According to James Carlson <carlson@xylogics.com> writing in January 1995,
-# the terminals group at Data General was shut down in 1991; all these
-# terminals have thus been discontinued.
-#
-# DG terminals have function keys that respond to the SHIFT and CTRL keys,
-# e.g., SHIFT-F1 generates a different code from F1.  To number the keys
-# sequentially, first the unmodified key codes are listed as F1 through F15.
-# Then their SHIFT versions are listed as F16 through F30, their CTRL versions
-# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as
-# F46 through F60.  This is done in the private "includes" below whose names
-# start with "dgkeys+".
-#
-# DG terminals generally support 8 bit characters.  For each of these terminals
-# two descriptions are supplied:
-#	1) A default description for 8 bits/character communications, which
-#	   uses the default DG international character set and keyboard codes.
-#	2) A description with suffix "-7b" for 7 bits/character communications.
-#	   This description must use the NON-DEFAULT native keyboard language.
-
-# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33),
-# Ctrl/Shift fdkeys (kf34-kf44).
-
-dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys,
-	ka1=\233020z, ka3=\233021z, kc1=\233022z, kc3=\233023z,
-	kclr=\2332J, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
-	kcuu1=\233A, kel=\233K, kf1=\233001z, kf10=\233010z,
-	kf11=\233011z, kf12=\233012z, kf13=\233013z,
-	kf14=\233014z, kf15=\233000z, kf16=\233101z,
-	kf17=\233102z, kf18=\233103z, kf19=\233104z,
-	kf2=\233002z, kf20=\233105z, kf21=\233106z,
-	kf22=\233107z, kf23=\233108z, kf24=\233109z,
-	kf25=\233110z, kf26=\233111z, kf27=\233112z,
-	kf28=\233113z, kf29=\233114z, kf3=\233003z,
-	kf30=\233100z, kf31=\233201z, kf32=\233202z,
-	kf33=\233203z, kf34=\233204z, kf35=\233205z,
-	kf36=\233206z, kf37=\233207z, kf38=\233208z,
-	kf39=\233209z, kf4=\233004z, kf40=\233210z,
-	kf41=\233211z, kf42=\233212z, kf43=\233213z,
-	kf44=\233214z, kf45=\233200z, kf46=\233301z,
-	kf47=\233302z, kf48=\233303z, kf49=\233304z,
-	kf5=\233005z, kf50=\233305z, kf51=\233306z,
-	kf52=\233307z, kf53=\233308z, kf54=\233309z,
-	kf55=\233310z, kf56=\233311z, kf57=\233312z,
-	kf58=\233313z, kf59=\233314z, kf6=\233006z,
-	kf60=\233300z, kf7=\233007z, kf8=\233008z, kf9=\233009z,
-	khome=\233H, kprt=\233i,
-
-dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys,
-	ka1=\E[020z, ka3=\E[021z, kc1=\E[022z, kc3=\E[023z,
-	kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kel=\E[K, kf1=\E[001z, kf10=\E[010z, kf11=\E[011z,
-	kf12=\E[012z, kf13=\E[013z, kf14=\E[014z, kf15=\E[000z,
-	kf16=\E[101z, kf17=\E[102z, kf18=\E[103z, kf19=\E[104z,
-	kf2=\E[002z, kf20=\E[105z, kf21=\E[106z, kf22=\E[107z,
-	kf23=\E[108z, kf24=\E[109z, kf25=\E[110z, kf26=\E[111z,
-	kf27=\E[112z, kf28=\E[113z, kf29=\E[114z, kf3=\E[003z,
-	kf30=\E[100z, kf31=\E[201z, kf32=\E[202z, kf33=\E[203z,
-	kf34=\E[204z, kf35=\E[205z, kf36=\E[206z, kf37=\E[207z,
-	kf38=\E[208z, kf39=\E[209z, kf4=\E[004z, kf40=\E[210z,
-	kf41=\E[211z, kf42=\E[212z, kf43=\E[213z, kf44=\E[214z,
-	kf45=\E[200z, kf46=\E[301z, kf47=\E[302z, kf48=\E[303z,
-	kf49=\E[304z, kf5=\E[005z, kf50=\E[305z, kf51=\E[306z,
-	kf52=\E[307z, kf53=\E[308z, kf54=\E[309z, kf55=\E[310z,
-	kf56=\E[311z, kf57=\E[312z, kf58=\E[313z, kf59=\E[314z,
-	kf6=\E[006z, kf60=\E[300z, kf7=\E[007z, kf8=\E[008z,
-	kf9=\E[009z, khome=\E[H, kprt=\E[i,
-
-dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys,
-	kclr=^L, kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kel=^K,
-	kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^a, kf13=^^b, kf14=^^c,
-	kf15=^^d, kf16=^^e, kf17=^^f, kf18=^^g, kf19=^^h, kf2=^^r,
-	kf20=^^i, kf21=^^j, kf22=^^k, kf23=^^1, kf24=^^2, kf25=^^3,
-	kf26=^^4, kf27=^^5, kf28=^^6, kf29=^^7, kf3=^^s, kf30=^^8,
-	kf31=^^9, kf32=^^\:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#,
-	kf37=^^$, kf38=^^%%, kf39=^^&, kf4=^^t, kf40=^^', kf41=^^(,
-	kf42=^^), kf43=^^*, kf44=^^+, kf5=^^u, kf6=^^v, kf7=^^w,
-	kf8=^^x, kf9=^^y, khome=^H,
-
-dgkeys+15|Private entry describing 15 DG mode special keys,
-	kHOM=^^^H, kLFT=^^^Y, kRIT=^^^X, ka1=^^\\, ka3=^^], kc1=^^\^,
-	kc3=^^_, kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^|, kf13=^^},
-	kf14=^^~, kf15=^^p, kf16=^^a, kf17=^^b, kf18=^^c, kf19=^^d,
-	kf2=^^r, kf20=^^e, kf21=^^f, kf22=^^g, kf23=^^h, kf24=^^i,
-	kf25=^^j, kf26=^^k, kf27=^^l, kf28=^^m, kf29=^^n, kf3=^^s,
-	kf30=^^`, kf31=^^1, kf32=^^2, kf33=^^3, kf34=^^4, kf35=^^5,
-	kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^\:,
-	kf41=^^;, kf42=^^<, kf43=^^=, kf44=^^>, kf45=^^0, kf46=^^!,
-	kf47=^^", kf48=^^#, kf49=^^$, kf5=^^u, kf50=^^%%, kf51=^^&,
-	kf52=^^', kf53=^^(, kf54=^^), kf55=^^*, kf56=^^+, kf57=^^\,,
-	kf58=^^-, kf59=^^., kf6=^^v, kf60=^^\s, kf7=^^w, kf8=^^x,
-	kf9=^^y,
-
-# Data General color terminals use the "Tektronix" color model.  The total
-# number of colors varies with the terminal model, as does support for
-# attributes used in conjunction with color.
-
-# Removed u7, u8 definitions since they conflict with tack:
-#		Preserve user-defined colors in at least some cases.
-#	u7=^^Fh,
-#		Default is ACM mode.
-#	u8=^^F}20^^Fi^^F}21,
-#
-dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode,
-	bce,
-	colors#16, ncv#53, pairs#256,
-	op=\036Ad\036Bd,
-	setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
-	setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
-	setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
-
-dg+fixed|Fixed color info for DG D430C terminals in DG mode,
-	use=dgunix+fixed,
-
-# Video attributes are coordinated using static variables set by "sgr", then
-# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings.
-# (D=dim, U=underline, B=blink, R=reverse.)
-dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode,
-	bce,
-	colors#8, ncv#16, pairs#64,
-	op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m,
-	setab=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-	setaf=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-	setb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-	setf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-
-dg+color|Color info for Data General D470C terminals in ANSI mode,
-	colors#16, ncv#53, pairs#256,
-	setab=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-	setaf=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-	setb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-	setf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-	use=dg+color8,
-
-dgmode+color8|Color info for Data General D220/D230C terminals in DG mode,
-	bce,
-	colors#8, ncv#16, pairs#64,
-	op=\036Ad\036Bd,
-	setab=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
-	setaf=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
-	setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
-
-dgmode+color|Color info for Data General D470C terminals in DG mode,
-	colors#16, pairs#256,
-	setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
-	setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
-	use=dgmode+color8,
-
-dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode,
-	bce, ccc,
-	colors#52, ncv#53, pairs#26,
-	initp=\036RG0%p1%02X%p2%{256}%*%{1001}%/%02X%p3%{256}%*%{1001}%/%02X%p4%{256}%*%{1001}%/%02X%p5%{256}%*%{1001}%/%02X%p6%{256}%*%{1001}%/%02X%p7%{256}%*%{1001}%/%02X,
-	oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00,
-	op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D,
-	scp=\036RG2%p1%02X,
-
-# Colors are in the order:  normal, reverse, dim, dim + reverse.
-dg+ccc|Configurable color info for DG D430C terminals in DG mode,
-	bce, ccc,
-	colors#52, ncv#53, pairs#26,
-	initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
-	oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00,
-	op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=,
-	scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c,
-
-# The generic DG terminal type (an 8-bit-clean subset of the 6053)
-# Initialization string 1 sets:
-#	^R		- vertical scrolling enabled
-#	^C		- blinking enabled
-dg-generic|Generic Data General terminal in DG mode,
-	am, bw, msgr, xon,
-	cols#80, lines#24,
-	bel=^G, blink=^N, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
-	cup=\020%p2%c%p1%c, cuu1=^W, dim=^\, el=^K, ind=^J, is1=^R^C,
-	mc0=^Q, nel=^J, rmso=^], rmul=^U, sgr0=^O^U^], smso=^\,
-	smul=^T, use=dgkeys+11,
-
-# According to the 4.4BSD termcap file, the dg200 <cup> should be the
-# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap
-# notation that's "^P%r%+\200%+\200").  Those \200s are suspicious,
-# maybe they were originally nuls (which would fit).
-
-dg200|data general dasher 200,
-	OTbs, am, bw,
-	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
-	cup=\020%p2%c%p1%c, cuu1=^W, el=^K, home=^H, ind=^J,
-	kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z, kf1=^^q,
-	kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v, kf7=^^w, kf8=^^x,
-	kf9=^^y, khome=^H, lf0=f10, nel=^J, rmso=^^E, rmul=^U,
-	smso=^^D, smul=^T,
-
-# Data General 210/211 (and 410?)	from Lee Pearson (umich!lp) via BRL
-dg210|dg-ansi|Data General 210/211,
-	am,
-	cols#80, lines#24,
-	OTnl=\E[B, clear=\E[2J, cud1=\E[B, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A, ed=\E[J, el=\E[K, home=\E[H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
-	nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m, smso=\E[7;m,
-	smul=\E[4;m,
-# From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
-# courtesy of Carlos Rucalde of Vantage Software, Inc.
-# (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover.
-# I suspect the d200 function keys actually work on the dg211, check it out.)
-dg211|Data General d211,
-	cnorm=^L, cvvis=^L^R, ht=^I, ind@, kbs=^Y, kf0@, kf1@, kf2@, kf3@,
-	kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=^M^Z, rmcup=^L,
-	rmso=\036E$<\0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
-
-# dg450 from Cornell (not official)
-dg450|dg6134|data general 6134,
-	cub1@, cuf1=^X, use=dg200,
-
-# Not official...
-# Note: lesser Dasher terminals will not work with vi because vi insists upon
-# having a command to move straight down from any position on the bottom line
-# and scroll the screen up, or a direct vertical scroll command.  The 460 and
-# above have both, the D210/211, for instance, has neither.  We must use ANSI
-# mode rather than DG mode because standard UNIX tty drivers assume that ^H is
-# backspace on all terminals.  This is not so in DG mode.
-# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
-# grounds that there is no matching ":ml:"
-# fixed garbled ":k9=\E[00\:z:" capability -- esr)
-dg460-ansi|Data General Dasher 460 in ANSI-mode,
-	OTbs, am, msgr, ul,
-	cols#80, it#8, lines#24,
-	OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P,
-	dim=\E[2m, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	ich1=\E[@, il1=\E[L, ind=\E[S, is2=^^F@, kbs=\E[D,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z,
-	kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z,
-	kf8=\E[009z, kf9=\E[010z, khome=\E[H, lf0=f1, lf1=f2, lf2=f3,
-	lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10, rev=\E[7m,
-	ri=\E[T, rmso=\E[m, rmul=\E[05, sgr0=\E[m, smso=\E[7m,
-	smul=\E[4m,
-# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
-# Data General 605x
-# Ought to work for a Model 6242, Type D210 as well as a 605x.
-# Note that the cursor-down key transmits ^Z.  Job control users, beware!
-# This also matches a posted description of something called a `Dasher 100'
-# so there's a dg100 alias here.
-# (dg6053: the 4.4BSD file had <cub1=^H>, <cud1=^J>, <cuf1=^S>. -- esr)
-dg6053-old|dg100|data general 6053,
-	OTbs, am, bw, ul,
-	cols#80, lines#24,
-	OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=^M, cub1=^Y, cud1=^Z,
-	cuf1=^X, cup=\020%p2%c%p1%c, cuu1=^W, cvvis=^L^R, el=^K,
-	home=^H, ht=^I, is2=^R, kbs=^Y, kcub1=^Y, kcud1=^Z, kcuf1=^X,
-	kcuu1=^W, kf0=^^q, kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v,
-	kf6=^^w, kf7=^^x, kf8=^^y, kf9=^^z, khome=^H, rmcup=^L,
-	rmso=\0^^E, rmul=^U, smcup=^L^R, smso=\0\0\0\0\0\036D,
-	smul=^T,
-
-# (Some performance can be gained over the generic DG terminal type)
-dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053,
-	xon@,
-	home=^P\0\0, ll=^P\0^W, use=dg-generic,
-
-# Like 6053, but adds reverse video and more keypad and function keys.
-d200|d200-dg|Data General DASHER D200,
-	bold=^^D^T, home@, ll@, rev=^^D, rmso=^^E^],
-	sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;,
-	sgr0=\017\025\035\036E, smso=^^D^\, use=dgkeys+15,
-	use=dg6053,
-
-# DASHER D210 series terminals in ANSI mode.
-#	Reverse video, no insert/delete character/line, 7 bits/character only.
-#
-# Initialization string 1 sets:
-#	<0		- scrolling enabled
-#	<1		- blink enabled
-#	<4		- print characters regardless of attributes
-d210|d214|Data General DASHER D210 series,
-	am, bw, msgr, xon,
-	cols#80, lines#24,
-	bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=^M,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K,
-	el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l,
-	ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m,
-	sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m,
-	sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
-
-# DASHER D210 series terminals in DG mode.
-# Like D200, but adds clear to end-of-screen and needs XON/XOFF.
-d210-dg|d214-dg|Data General DASHER D210 series in DG mode,
-	xon,
-	ed=^^FF, use=d200-dg,
-
-# DASHER D211 series terminals in ANSI mode.
-# Like the D210, but with 8-bit characters and local printer support.
-#
-# Initialization string 2 sets:
-#	\E[2;1;1;1v
-#		2;1	- 8 bit operations
-#		1;1	- 8 bit (international) keyboard language
-#	\E(B		- default primary character set (U.S. ASCII)
-#	\E)4		- default secondary character set (international)
-#	^O		- primary character set
-#
-d211|d215|Data General DASHER D211 series,
-	km,
-	is2=\E[2;1;1;1v\E(B\E)4\017, mc0=\E[i, use=dgkeys+8b,
-	use=d210,
-
-# Initialization string 2 sets:
-#	\E[2;0;1;0v
-#		2;0	- 7 bit operations
-#		1;0	- 7 bit (native) keyboard language
-#	\E(0		- default character set (the keyboard native language)
-#	^O		- primary character set
-d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode,
-	km@,
-	is2=\E[2;0;1;0v\E(0\017, use=dgkeys+7b, use=d211,
-
-# Like the D210 series, but adds support for 8-bit characters.
-#
-# Reset string 2 sets:
-#	^^N	- secondary character set
-#	^^FS0>	- 8 bit international character set
-#	^^O	- primary character set
-#	^^FS00	- default character set (matching the native keyboard language)
-#
-d211-dg|d215-dg|Data General DASHER D211 series in DG mode,
-	km,
-	rs2=\036N\036FS0>\036O\036FS00, use=d210-dg,
-
-d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode,
-	use=d211-dg,
-
-# Enhanced DG mode with changes to be more UNIX compatible.
-d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode,
-	mc5i,
-	it#8,
-	acsc=a\177j$k"l!m#n)q+t'u&v(w%x*, blink=^^PI,
-	clear=^^PH, cub1=^^PD, cud1=^^PB, cuf1=^^PC, cuu1=^^PA,
-	el=^^PE, home=^^PF, hpa=\020%p1%c\177, ht=^I, ind=^J,
-	is1=\022\003\036P@1, is3=\036Fz0, kHOM=^^Pf, kLFT=^^Pd,
-	kPRT=^^P1, kRIT=^^Pc, kclr=^^PH, kcub1=^^PD, kcud1=^^PB,
-	kcuf1=^^PC, kcuu1=^^PA, kel=^^PE, khome=^^PF, kprt=^^P0,
-	mc0=\036F?9, mc4=^^Fa, mc5=^^F`, rmacs=\036FS00,
-	rs2=\036N\036FS0E\036O\036FS00,
-	sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
-	sgr0=\036PJ\025\035\036E\036FS00, smacs=\036FS11,
-	vpa=\020\177%p1%c, use=dgkeys+15, use=d216-dg,
-d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines,
-	lines#25,
-	is3=\036Fz2, use=d216+,
-
-d217-unix|Data General DASHER D217 in DG-UNIX mode,
-	use=d216-unix,
-d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines,
-	use=d216-unix-25,
-
-# DASHER D220 color terminal in ANSI mode.
-# Like the D470C but with fewer colors and screen editing features.
-#
-# Initialization string 1 sets:
-#	\E[<0;<1;<4l
-#		<0	- scrolling enabled
-#		<1	- blink enabled
-#		<4	- print characters regardless of attributes
-#	\E[m		- all attributes off
-# Reset string 1 sets:
-#	\Ec		- initial mode defaults (RIS)
-#
-d220|Data General DASHER D220,
-	mc5i@,
-	dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
-	use=dg+color8, use=d470c,
-
-d220-7b|Data General DASHER D220 in 7 bit mode,
-	mc5i@,
-	dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
-	use=dg+color8, use=d470c-7b,
-
-# Initialization string 3 sets:
-#	- default cursor (solid rectangle)
-# Reset string 2 sets:
-#	^^N     - secondary character set
-#	^^FS0>  - 8 bit international character set
-#	^^O     - primary character set
-#       ^^FS00  - default character set (matching the native keyboard language)
-#
-d220-dg|Data General DASHER D220 color terminal in DG mode,
-	mc5i@,
-	dl1@, home@, il1@, is2@, is3=\036FQ2, ll@, mc4@, mc5@, rs1@,
-	rs2=\036N\036FS0>\036O\036FS00, use=dgmode+color8,
-	use=d470c-dg,
-
-# DASHER D230C color terminal in ANSI mode.
-# Like the D220 but with minor ANSI compatibility improvements.
-#
-d230c|d230|Data General DASHER D230C,
-	blink=\E[5;50m, bold=\E[4;7;50m, dim=\E[2;50m, nel=^M^J,
-	rev=\E[7;50m, rmkx=\E[2;1v, rmso=\E[50m, rmul=\E[50m,
-	sgr=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
-	sgr0=\E[50m\E)4\017, smkx=\E[2;0v, smso=\E[2;7;50m,
-	smul=\E[4;50m, use=dgkeys+7b, use=d220,
-
-d230c-dg|d230-dg|Data General DASHER D230C in DG mode,
-	use=d220-dg,
-
-# DASHER D400/D450 series terminals.
-# These add intelligent features like insert/delete to the D200 series.
-#
-# Initialization string 2 sets:
-#	^^FQ2		- default cursor (solid rectangle)
-#	^^FW		- character protection disabled
-#	^^FJ		- normal (80 column) mode
-#	^^F\^		- horizontal scrolling enabled (for alignment)
-#	^^FX004?	- margins at columns 0 and 79
-#	^^F]		- horizontal scrolling disabled
-#	^^O		- primary character set
-#	^^FS00		- default character set (the keyboard native language)
-#	- (should reset scrolling regions, but that glitches the screen)
-# Reset string 1 sets:
-#	^^FA		- all terminal defaults except scroll rate
-# Reset string 2 sets:
-#	^^F]		- horizontal scrolling disabled
-#	^^FT0		- jump scrolling
-#
-d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series,
-	mc5i,
-	acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\036FQ0,
-	cnorm=\036FQ2, dch1=^^K, dl1=^^FI,
-	enacs=\036N\036FS11\036O, home=^^FG, hpa=\020%p1%c\177,
-	ich1=^^J, il1=^^FH,
-	is2=\036FQ2\036FW\036FJ\036F\^\036FX004?\036F]\036O\036FS00,
-	ll=\036FG\027, mc4=^^Fa, mc5=^^F`, ri=^^I, rmacs=^^O,
-	rs1=^^FA, rs2=\036F]\036FT0,
-	sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;,
-	sgr0=\017\025\035\036E\036O, smacs=^^N,
-	vpa=\020\177%p1%c, use=d210-dg,
-
-# DASHER D410/D460 series terminals in ANSI mode.
-# These add a large number of intelligent terminal features.
-#
-# Initialization string 1 sets:
-#	\E[<0;<1;<2;<4l
-#		<0	- scrolling enabled
-#		<1	- blink enabled
-#		<2	- horizontal scrolling enabled (for alignment)
-#		<4	- print characters regardless of attributes
-#	\E[5;0v		- normal (80 column) mode
-#	\E[1;1;80w	- margins at columns 1 and 80
-#	\E[1;6;<2h
-#		1	- print all characters even if protected
-#		6	- character protection disabled
-#		<2	- horizontal scrolling disabled
-#	- (should reset scrolling regions, but that glitches the screen)
-#
-# Initialization string 2 sets:
-#	\E[3;2;2;1;1;1v
-#		3;2	- default cursor (solid rectangle)
-#		2;1	- 8 bit operations
-#		1;1	- international keyboard language
-#	\E(B		- default primary character set (U.S. ASCII)
-#	\E)4		- default secondary character set (international)
-#	^O		- primary character set
-#
-#	Reset string 1 sets:
-#	\Ec		- initial mode defaults (RIS)
-#	\E[<2h		- horizontal scrolling disabled
-#
-# Reset string 2 sets:
-#	\E[4;0;2;1;1;1v
-#		4;0	- jump scrolling
-#		2;1	- 8 bit operations
-#		1;1	- 8 bit (international) keyboard language
-#	\E(B		- default primary character set (U.S. ASCII)
-#	\E)4		- default secondary character set (international)
-#
-d410|d411|d460|d461|Data General DASHER D410/D460 series,
-	mc5i,
-	acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\E[3;0v,
-	cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
-	is1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h,
-	is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i,
-	ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h,
-	rs2=\E[4;0;2;1;1;1v\E(B\E)4,
-	sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;,
-	sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
-
-# Initialization string 2 sets:
-#	\E[3;2;2;0;1;0v
-#		3;2	- default cursor (solid rectangle)
-#		2;0	- 7 bit operations
-#		1;0	- 7 bit (native) keyboard language
-#	\E(0		- default character set (the keyboard native language)
-#	^O		- primary character set
-#
-# Reset string 2 sets:
-#	\E[4;0;2;0;1;0v
-#		4;0	- jump scrolling
-#		2;0	- 7 bit operations
-#		1;0	- 7 bit (native) keyboard language
-#	\E(0		- default character set (the keyboard native language)
-#
-d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode,
-	km@,
-	enacs=\E)6, is2=\E[3;2;2;0;1;0v\E(0\017, rmacs=^O,
-	rs2=\E[4;0;2;0;1;0v\E(0,
-	sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, use=dgkeys+7b, use=d410,
-
-d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode,
-	km,
-	enacs@, rmacs=\036FS00,
-	sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
-	sgr0=\017\025\035\036E\036FS00, smacs=\036FS11,
-	use=d400-dg,
-
-# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode.
-#
-# Initialization string 1 sets:
-#	\E[<0;<1;<2;<4l
-#		<0	- scrolling enabled
-#		<1	- blink enabled
-#		<2	- horizontal scrolling enabled (for alignment)
-#		<4	- print characters regardless of attributes
-#	\E[5;1v		- compressed (135 column) mode
-#	\E[1;1;126	- margins at columns 1 and 126
-#	\E[1;6;<2h
-#		1	- print all characters even if protected
-#		6	- character protection disabled
-#		<2	- horizontal scrolling disabled
-#	- (should reset scrolling regions, but that glitches the screen)
-#
-# Reset string 1 sets:
-#	\Ec		- initial mode defaults (RIS)
-#	\E[5;1v		- compressed (135 column) mode
-#	\E[1;1;126w	- margins at columns 1 and 126
-#	\E[<2h		- horizontal scrolling disabled
-#
-d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode,
-	cols#126,
-	is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
-	rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410,
-
-d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode,
-	cols#126,
-	is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
-	rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410-7b,
-
-d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode,
-	use=d410-dg,
-
-# These add intelligent features like scrolling regions.
-d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode,
-	civis=\036FQ0, clear=^^FE, cnorm=\036FQ5,
-	cup=\036FP%p2%2.2X%p1%2.2X, dch1=^^K, dl1=^^FI,
-	home=^^FG, hpa=\036FP%p1%2.2XFF, ich1=^^J, il1=^^FH,
-	is2=\036FQ5\036FW\036FJ\036F\^\036FX004F\036O\036FS00,
-	ll=\036FG\036PA, mc0=^A, rc=\036F}11, ri=^^I,
-	rs1=\036FA\036FT0, rs2=\036P@1, sc=\036F}10,
-	vpa=\036FPFF%p1%2.2X,
-	wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
-	use=d216+,
-d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode,
-	cols#132,
-	is2=\036FQ5\036FW\036FK\036F\^\036FX0083\036O\036FS00,
-	rs2=\036P@1\036FK\036FX0083,
-	wind=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X,
-	use=d412-unix,
-d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines,
-	lines#25,
-	is3=\036Fz2,
-	wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
-	use=d462+,
-d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line,
-	eslok, hs,
-	clear=\036FG\036PH, fsl=\036F}01\022,
-	is3=\036Fz2\036F}00\036FB180000\036F}01, ll@,
-	tsl=\036F}00\036FP%p1%2.2X18\036PG,
-	wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X,
-	use=d462+,
-
-#	Relative cursor motions are confined to the current window,
-#	which is not what the scrolling region specification expects.
-#	Thus, relative vertical cursor positioning must be deleted.
-d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region,
-	csr=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;,
-	cud1@, cuu1@, ll@, use=d462+,
-
-d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode,
-	use=d412-unix,
-d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode,
-	use=d412-unix-w,
-d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines,
-	use=d412-unix-25,
-d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line,
-	use=d412-unix-s,
-d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region,
-	use=d412-unix-sr,
-
-d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode,
-	use=d413-unix,
-d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode,
-	use=d413-unix-w,
-d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines,
-	use=d413-unix-25,
-d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line,
-	use=d413-unix-s,
-d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region,
-	use=d413-unix-sr,
-
-d430c-dg|d430-dg|Data General D430C in DG mode,
-	use=d413-dg, use=dg+fixed,
-d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors,
-	use=d413-dg, use=dg+ccc,
-
-d430c-unix|d430-unix|Data General D430C in DG-UNIX mode,
-	use=d413-unix, use=dgunix+fixed,
-d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode,
-	use=d413-unix-w, use=dgunix+fixed,
-d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines,
-	use=d413-unix-25, use=dgunix+fixed,
-d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line,
-	use=d413-unix-s, use=dgunix+fixed,
-d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region,
-	use=d413-unix-sr, use=dgunix+fixed,
-d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors,
-	use=d413-unix, use=dgunix+ccc,
-d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors,
-	use=d413-unix-w, use=dgunix+ccc,
-d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors,
-	use=d413-unix-25, use=dgunix+ccc,
-d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors,
-	use=d413-unix-s, use=dgunix+ccc,
-d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors,
-	use=d413-unix-sr, use=dgunix+ccc,
-
-# DASHER D470C color terminal in ANSI mode.
-# Like the D460 but with 16 colors and without a compressed mode.
-#
-# Initialization string 1 sets:
-#	\E[<0;<1;<2;<4l
-#		<0	- scrolling enabled
-#		<1	- blink enabled
-#		<2	- horizontal scrolling enabled (for alignment)
-#		<4	- print characters regardless of attributes
-#	\E[1;1;80w	- margins at columns 1 and 80
-#	\E[1;6;<2h
-#		1	- print all characters even if protected
-#		6	- character protection disabled
-#		<2	- horizontal scrolling disabled
-#	- (should reset scrolling regions, but that glitches the screen)
-#
-d470c|d470|Data General DASHER D470C,
-	is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
-	sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
-	use=dg+color, use=d460,
-
-d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode,
-	is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
-	sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;,
-	use=dg+color, use=d460-7b,
-
-# Initialization string 2 sets:
-#	^^FQ2		- default cursor (solid rectangle)
-#	^^FW		- character protection disabled
-#	^^F\^		- horizontal scrolling enabled (for alignment)
-#	^^FX004?	- margins at columns 0 and 79
-#	^^F]		- horizontal scrolling disabled
-#	^^O		- primary character set
-#	^^FS00		- default character set (the keyboard native language)
-#	- (should reset scrolling regions, but that glitches the screen)
-#
-d470c-dg|d470-dg|Data General DASHER D470C in DG mode,
-	is2=\036FQ2\036FW\036F\^\036FX004?\036F]\036O\036FS00,
-	use=dgmode+color, use=d460-dg,
-
-# DASHER D555 terminal in ANSI mode.
-# Like a D411, but has an integrated phone.
-d555|Data General DASHER D555,
-	use=d411,
-d555-7b|Data General DASHER D555 in 7-bit mode,
-	use=d411-7b,
-d555-w|Data General DASHER D555 in wide mode,
-	use=d411-w,
-d555-7b-w|Data General DASHER D555 in wide 7-bit mode,
-	use=d411-7b-w,
-d555-dg|Data General DASHER D555 series in DG mode,
-	use=d411-dg,
-
-# DASHER D577 terminal in ANSI mode.
-# Like a D411, but acts as a keyboard for serial printers ("KSR" modes).
-d577|Data General DASHER D577,
-	use=d411,
-d577-7b|Data General DASHER D577 in 7-bit mode,
-	use=d411-7b,
-d577-w|Data General DASHER D577 in wide mode,
-	use=d411-w,
-d577-7b-w|Data General DASHER D577 in wide 7-bit mode,
-	use=d411-7b-w,
-
-d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode,
-	use=d411-dg,
-
-# DASHER D578 terminal.
-# Like a D577, but without compressed mode; like a D470C in this respect.
-#
-# Initialization string 1 sets:
-#	\E[<0;<1;<2;<4l
-#		<0	- scrolling enabled
-#		<1	- blink enabled
-#		<2	- horizontal scrolling enabled (for alignment)
-#		<4	- print characters regardless of attributes
-#	\E[1;1;80w	- margins at columns 1 and 80
-#	\E[1;6;<2h
-#		1	- print all characters even if protected
-#		6	- character protection disabled
-#		<2	- horizontal scrolling disabled
-#	- (should reset scrolling regions, but that glitches the screen)
-#
-d578|Data General DASHER D578,
-	is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577,
-d578-7b|Data General DASHER D578 in 7-bit mode,
-	is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577-7b,
-
-#### Datamedia (dm)
-#
-# Datamedia was headquartered in Nashua, New Hampshire until it went
-# out of business in 1993, but the ID plates on the terminals referred
-# to the factory in Pennsauken, NJ.  The factory was sold to a PCB board
-# manufacturer which threw out all information about the terminals.
-#
-
-cs10|colorscan|Datamedia Color Scan 10,
-	msgr,
-	cols#80, lines#24,
-	bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ed=\E[J, el=\E[K,
-	ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-cs10-w|Datamedia Color Scan 10 with 132 columns,
-	cols#132,
-	cup=\E[%i%p1%02d;%p2%03dH, use=cs10,
-
-# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr)
-dm1520|dm1521|datamedia 1520,
-	OTbs, am, xenl,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
-	cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
-	home=^Y, ht=^I, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
-	khome=^Y,
-# dm2500: this terminal has both <ich> and <smir>. Applications using
-# termcap/terminfo directly (rather than through ncurses) might be confused.
-dm2500|datamedia2500|datamedia 2500,
-	OTbs, OTnc,
-	cols#80, lines#24,
-	bel=^G, clear=^^^^\177, cub1=^H, cud1=^J, cuf1=^\,
-	cup=\014%p2%{96}%^%c%p1%{96}%^%c, cuu1=^Z,
-	dch1=\020\010\030\035$<10*>,
-	dl1=\020\032\030\035$<10*>, el=^W, home=^B,
-	ich1=\020\034\030\035$<10*>,
-	il1=\020\n\030\035\030\035$<15>, ind=^J, pad=\377,
-	rmdc=^X^], rmir=\377\377\030\035$<10>, rmso=^X^],
-	smdc=^P, smir=^P, smso=^N,
-# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82)
-# also, has a meta-key.
-# From: <goldberger@su-csli.arpa>
-# (dmchat: ":MT:" changed to ":km:" -- esr)
-dmchat|dmchat version of datamedia 2500,
-	km,
-	dl1=\020\032\030\035$<2/>,
-	il1=\020\n\030\035\030\035$<1*/>, use=dm2500,
-# (dm3025: ":MT:" changed to ":km:" -- esr)
-dm3025|datamedia 3025a,
-	OTbs, km,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=\EM$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
-	dch1=\010$<6>, dl1=\EP\EA\EQ$<130>, ed=\EJ$<2>, el=\EK,
-	home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=^J, ip=$<6>,
-	is2=\EQ\EU\EV, rmdc=\EQ, rmir=\EQ, rmso=\EO0, smdc=\EP,
-	smir=\EP, smso=\EO1,
-dm3045|datamedia 3045a,
-	OTbs, am, eo, km@, ul, xenl,
-	dch1=\EB$<6>, dl1@, il1@, is2=\EU\EV, kcuf1=\EC, kcuu1=\EA,
-	kf0=\Ey\r, kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r,
-	kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, kf9=\Ex\r,
-	khome=\EH, pad=\177, rmdc@, rmir=\EP, rmso@, smdc@, smso@,
-	use=dm3025,
-# Datamedia DT80 soft switches:
-# 1	0=Jump  1=Smooth
-# 	Autorepeat 	0=off  1=on
-# 	Screen		0=Dark 1=light
-# 	Cursor		0=u/l  1=block
-#
-# 2	Margin Bell	0=off  1=on
-# 	Keyclick	0=off  1=on
-# 	Ansi/VT52	0=VT52 1=Ansi
-# 	Xon/Xoff	0=Off  1=On
-#
-# 3	Shift3		0=Hash 1=UK Pound
-# 	Wrap		0=Off  1=On
-# 	Newline		0=Off  1=On
-# 	Interlace	0=Off  1=On
-#
-# 4	Parity		0=Odd  1=Even
-# 	Parity		0=Off  1=On
-# 	Bits/Char	0=7    1=8
-# 	Power		0=60Hz 1=50Hz
-#
-# 5	Line Interface  0=EIA  1=Loop
-# 	Aux Interface   0=EIA  1=Loop
-# 	Local Copy    	0=Off  1=On
-# 	Spare
-#
-# 6	Aux Parity	0=Odd  1=Even
-# 	Aux Parity	0=Off  1=On
-# 	Aux Bits/Char   0=7    1=8
-# 	CRT Saver	0=Off  1=On
-# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding.
-dm80|dmdt80|dt80|datamedia dt80/1,
-	clear=\E[2J\E[H, cud1=^J, cuf1=\E[C,
-	cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
-	home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM,
-	rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-	use=vt100,
-# except in 132 column mode, where it needs a little padding.
-# This is still less padding than the vt100, and you can always turn on
-# the ^S/^Q handshaking, so you can use vt100 flavors for things like
-# reverse video.
-dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode,
-	cols#132,
-	clear=\E[H\E[2J$<50/>, cud1=^J,
-	cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<5/>,
-	ed=\E[0J$<20/>, el=\E[0K$<20/>, use=dm80,
-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-dt80-sas|Datamedia DT803/DTX for SAS usage,
-	am, bw,
-	cols#80, lines#24,
-	acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
-	bel=^G, clear=^L, cr=^M,
-	csr=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2,
-	cub1=^H, cud1=\EB, cuf1=^\,
-	cup=\E=%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, dl1=\EM, ed=^K,
-	el=^], ff=^L, home=^Y, ht=^I, hts=\E'1, il1=\EL, ind=\EB,
-	is2=\E)0\E<\EP\E'0\E$2, kclr=^L, kcub1=^H, kcud1=^J,
-	kcuf1=^\, kcuu1=^_, ked=^K, kel=^], khome=^Y, mc4=^O, mc5=^N,
-	rev=\E$2\004, ri=\EI, rmacs=\EG, rmso=^X, sgr0=^X, smacs=\EF,
-	smso=\E$2\004, tbc=\E'0,
-
-# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL
-# These aren't end-all Excel termcaps; but do insert/delete char/line
-# and name some of the extra function keys.  (Mike Feldman ccvaxa!feldman)
-# The naming convention has been bent somewhat, with the use of E? (where
-# E is for 'Excel') as # a name.  This was done to distinguish the entries
-# from the other Datamedias in use here, and yet to associate a model of
-# the Excel terminals with the regular datamedia terminals that share
-# major characteristics.
-excel62|excel64|datamedia Excel 62,
-	dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
-	kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
-	use=dt80,
-excel62-w|excel64-w|datamedia Excel 62 in 132 char mode,
-	dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
-	kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
-	use=dt80w,
-excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode,
-	dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=^J,
-	kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l,
-	smir=\E[4h, use=dt80,
-
-#### Falco
-#
-#	Falco Data Products
-#	440 Potrero Avenue
-#	Sunnyvale, CA 940864-196
-#	Vox: (800)-325-2648
-#	Fax: (408)-745-7860
-#	Net: techsup@charm.sys.falco.com
-#
-# Current Falco models as of 1995 are generally ANSI-compatible and support
-# emulations of DEC VT-series, Wyse, and Televideo types.
-#
-
-# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info
-# This terminal was released around 1983 and was discontinued long ago.
-# The standout and underline highlights are the same.
-falco|ts1|ts-1|falco ts-1,
-	OTbs, am,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\EY, el=\ET\EG0\010, home=^^, ht=^I, il1=\EE,
-	ind=^J, is2=\Eu\E3, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-	kf0=^A0\r, rmir=\Er, rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0,
-	smir=\Eq, smso=\Eg1, smul=\Eg1,
-falco-p|ts1p|ts-1p|falco ts-1 with paging option,
-	OTbs, am, da, db, mir, msgr, ul,
-	cols#80, it#8, lines#24,
-	bel=^G, cbt=\EI, clear=\E*, cr=^M, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E[A,
-	dch1=\EW, dl1=\ER, ed=\EY, el=\ET\EG0\010\Eg0, ht=^I,
-	il1=\EE, ind=^J, is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er,
-	rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq,
-	smso=\Eg4, smul=\Eg1,
-# (ts100: I added <rmam>/<smam> based on the init string -- esr)
-ts100|ts100-sp|falco ts100-sp,
-	am, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C$<2>,
-	cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
-	cuu1=\E[A$<2>, dch1=\E~W, dl1=\E~R, ed=\E[J$<50>,
-	el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H,
-	ht=^I, hts=\EH, ich1=\E~Q, il1=\E~E, ind=^J, is1=\E~)\E~ea,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
-	rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
-	sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
-	smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-	use=vt100+fnkeys,
-ts100-ctxt|falco ts-100 saving context,
-	rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
-
-#### Florida Computer Graphics
-#
-
-# Florida Computer Graphics Beacon System, using terminal emulator program
-# "host.com", as provided by FCG.  This description is for an early release
-# of the "host" program.  Known bug: <ed> clears the whole screen, so it's
-# commented out.
-
-# From: David Bryant <cbosg!djb> 1/7/83
-beacon|FCG Beacon System,
-	am, da, db,
-	cols#80, lines#32,
-	bel=\ESTART\r\E37\r\EEND\r$<1>,
-	blink=\ESTART\r\E61\,1\r\EEND\r, clear=\EZ$<10>, cr=^M,
-	cub1=^H, cud1=^J, cuf1=\EV,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=\EU,
-	dch1=\EW, dl1=\ER, el=\ET, home=\EH$<10>, ich1=\EQ, il1=\EE,
-	ind=^J, rev=\ESTART\r\E59\,1\r\EEND\r, rmcup=,
-	rmso=\ESTART\r\E70\,0\r\EEND\r$<20>,
-	rmul=\ESTART\r\E60\,0\r\EEND\r,
-	sgr0=\ESTART\r\E78\r\E70\,0\r\EEND\r$<20>,
-	smcup=\ESTART\r\E2\,0\r\E12\r\EEND\r$<10>,
-	smso=\ESTART\r\E70\,6\r\EEND\r$<20>,
-	smul=\ESTART\r\E60\,1\r\EEND\r,
-
-#### Fluke
-#
-
-# The f1720a differences from ANSI: no auto margin, destructive
-# tabs, # of lines, funny highlighting and underlining
-f1720|f1720a|fluke 1720A,
-	xt,
-	cols#80, lines#16, xmc#1,
-	bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J,
-	el=\E[K, ind=\ED, is2=\E[H\E[2J, kcub1=^_, kcud1=^],
-	kcuf1=^^, kcuu1=^\, ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
-	smso=\E[7m, smul=\E[4m,
-
-#### Liberty Electronics (Freedom)
-#
-#	Liberty Electronics
-#	48089 Fremont Blvd
-#	Fremont CA 94538
-#	Vox: (510)-623-6000
-#	Fax: (510)-623-7021
-
-# From: <faletti@berkeley.edu>
-# (f100: added empty <acsc> to suppress a tic warning;
-# made this relative to adm+sgr -- note that <invis> isn't
-# known to work for f100 but does on the f110. --esr)
-f100|freedom|freedom100|freedom model 100,
-	OTbs, am, bw, hs, mir, msgr, xon,
-	cols#80, lines#24,
-	acsc=, bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J,
-	cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	dch1=\EW, dl1=\ER$<11.5*>, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
-	flash=\Eb$<200>\Ed, fsl=^M, home=^^, hpa=\E]%p1%{32}%+%c,
-	ht=^I, hts=\E1, il1=\EE$<8.5*>, ind=^J, ip=$<6>,
-	is2=\Eg\Ef\r\Ed, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V,
-	kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r,
-	kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, khome=^^, ri=\Ej, rmacs=\E$, rmir=\Er,
-	smacs=\E%%, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
-	vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-f100-rv|freedom-rv|freedom 100 in reverse video,
-	flash=\Ed$<200>\Eb, is2=\Eg\Ef\r\Eb, use=f100,
-# The f110 and f200 have problems with vi(1).  They use the ^V
-# code for the down cursor key. When kcud1 is defined in terminfo
-# as ^V, the Control Character Quoting capability (^V in insert mode)
-# is lost! It cannot be remapped in vi because it is necessary to enter
-# a ^V to to quote the ^V that is being remapped!!!
-#
-# f110/f200 users will have to decide whether
-# to lose the down cursor key or the quoting capability. We will opt
-# initially for leaving the quoting capability out, since use of VI
-# is not generally applicable to most interactive applications
-# (f110: added <ht>, <khome> & <kcbt> from f100 -- esr)
-f110|freedom110|Liberty Freedom 110,
-	bw@, eslok,
-	it#8, wsl#80,
-	blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V,
-	dim=\EG@, dl1=\ER, dsl=\Ef\r, flash=\Eb$<200/>\Ed, il1=\EE,
-	ip@, is2@, kclr=^^, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET,
-	kf0=^AI\r, kf10@, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
-	ri=\EJ, rmacs=\E%%, rmir=\Er\EO, smacs=\E$, smir=\EO\Eq,
-	smso=\EG<, tsl=\Ef, use=f100,
-f110-14|Liberty Freedom 110 14inch,
-	dch1@, use=f110,
-f110-w|Liberty Freedom 110 - 132 cols,
-	cols#132, use=f110,
-f110-14w|Liberty Freedom 110 14in/132 cols,
-	cols#132,
-	dch1@, use=f110,
-# (f200: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-f200|freedom200|Liberty Freedom 200,
-	OTbs, am, eslok, hs, mir, msgr, xon,
-	cols#80, it#8, lines#24, wsl#80,
-	acsc=, bel=^G, blink=\EG2, bold=\EG0, cbt=\EI, civis=\E.0,
-	clear=^Z, cnorm=\E.1, cr=^M,
-	csr=\Em0%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^V,
-	cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET,
-	flash=\Eo$<200/>\En, fsl=^M, home=^^,
-	hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=^J, kbs=^H,
-	kclr=^^, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
-	kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
-	kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
-	ri=\EJ, rmacs=\E%%, rmir=\Er, smacs=\E$, smir=\Eq, smso=\EG<,
-	tbc=\E3, tsl=\Ef, vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-f200-w|Liberty Freedom 200 - 132 cols,
-	cols#132, use=f200,
-# The f200 has the ability to reprogram the down cursor key. The key is
-# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM,
-# so powering the terminal off and on will not cause the change to be lost.
-f200vi|Liberty Freedom 200 for vi,
-	flash=\Eb$<200/>\Ed, kcud1=^J, use=f200,
-f200vi-w|Liberty Freedom 200 - 132 cols for vi,
-	cols#132, use=f200vi,
-
-#### GraphOn (go)
-#
-#	Graphon Corporation
-#	544 Division Street
-#	Campbell, CA 95008
-#	Vox: (408)-370-4080
-#	Fax: (408)-370-5047
-#	Net: troy@graphon.com (Troy Morrison)
-#
-#
-# The go140 and go225 have been discontinued.  GraphOn now makes X terminals,
-# including one odd hybrid that starts out life on power-up as a character
-# terminal, than can be switched to X graphics mode (driven over the serial
-# line) by an escape sequence.  No info on this beast yet.
-# (go140: I added <rmam>/<smam> based on the init string -- esr)
-go140|graphon go-140,
-	OTbs,
-	cols#80, it#8, lines#24,
-	clear=\E[H\E[2J$<10/>, cub1=^H, cuf1=\E[C,
-	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	ed=\E[J$<10/>, el=\E[K, ht=^I,
-	if=/usr/local/share/tabset/vt100, il1=\E[L,
-	is2=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
-	rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-go140w|graphon go-140 in 132 column mode,
-	am,
-	cols#132,
-	is2=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q,
-	use=go140,
-# Hacked up vt200 termcap to handle GO-225/VT220
-# From: <edm@nwnexus.WA.COM>
-# (go225: I added <rmam>/<smam> based on the init string -- esr)
-go225|go-225|Graphon 225,
-	OTbs, am, mir, xenl,
-	cols#80, it#8, lines#25, vt#3,
-	blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
-	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[L, ind=\ED,
-	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, rc=\E8, rev=\E[7m,
-	rf=/usr/local/share/tabset/vt100, ri=\EM, rmam=\E[?7l,
-	rmcup=\E[!p\E[?7h\E[2;1;1#w, rmir=\E[4l, rmkx=\E>,
-	rmso=\E[27m, rmul=\E[24m, rs1=\E[!p\E[?7h\E[2;1;1#w,
-	sc=\E7, sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r,
-	smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
-
-#### Harris (Beehive)
-#
-# Bletch.  These guys shared the Terminal Brain Damage laurels with Hazeltine.
-# Their terminal group is ancient history now (1995) though the parent
-# company is still in business.
-#
-
-# Beehive documentation is undated and marked Preliminary and has no figures
-# so we must have early Superbee2 (Model 600, according to phone conversation
-# with mfr.). It has proved reliable except for some missing padding
-# (notably after \EK and <nl> at bottom of screen).
-#
-# The key idea is that AEP mode is poison for <cup> & that US's in
-# the local memory should be avoided like the plague. That means
-# that the 2048 character local buffer is used as 25 lines of 80
-# characters, period. No scrolling local memory, folks. It also
-# appears that we cannot use naked INS LINE feature since it uses
-# US. The sbi fakes <il1> with an 80-space insert that may be too
-# slow at low speeds; also spaces get converted to \040 which is
-# too long for some programs (not vi).  DEL LINE is ok but slow.
-#
-# The <nl> string is designed for last line of screen ONLY; cup to
-# 25th line corrects the motion inherent in scrolling to Page 1.
-#
-# There is one understood bug. It is that the screen appears to
-# pop to a new (blank) page after a <nel>, or leave a half-line
-# ellipsis to a quad that is the extra 48 memory locations. The
-# data received is dumped into memory but not displayed.  Not to
-# worry if <cup> is being used; the lines not displayed will be,
-# whenever the cursor is moved up there. Since <cup> is addressed
-# relative to MEMORY of window, nothing is lost; but beware of
-# relative cursor motion (<cuu1>,<cud1>,<cuf1>,<cub1>). Recommended,
-# therefore, is setenv MORE -c .
-#
-# WARNING: Not all features tested.
-#
-# Timings are assembled from 3 sources. Some timings may reflect
-# SB2/Model 300 that were used if more conservative.
-# Tested on a Model 600 at 1200 and 9600 bd.
-#
-# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly
-# placed on the keyboard and useless because of AEP, is made
-# into a backspace key. In use ESC must be pressed twice (to send)
-# and sending ^C must be prefixed by ESC to avoid that weird
-# transmit mode associated with ENTER key.
-#
-# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across
-# the screen, then it has dropped into ENTER mode; hit
-# RESET--ONLINE--!tset.
-#
-# As delivered this machine has a FATAL feature that will throw
-# it into that strange transmit state (SPOW) if the space bar is
-# hit after a CR is received, but before receiving a LF (or a
-# few others).
-#
-# The circuits MUST be modified to eliminate the SPOW latch.
-# This is done by strapping on chip A46 of the I/O board; cut
-# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that
-# chip. This mod has been checked out on a Mod 600 of Superbee II.
-# With this modification absurdly high timings on cr are
-# unnecessary.
-#
-# NOTE WELL that the rear panel switch should be set to CR/LF,
-# not AEP!
-#
-sb1|beehive superbee,
-	OTbs, am, bw, da, db, mir, ul, xsb,
-	cols#80, lines#25, xmc#1,
-	bel=^G, cbt=\E`$<650>, clear=\EH$<1>\EJ$<3>, cr=$<1>\r,
-	cub1=^H, cud1=^J, cuf1=\EC$<3>, cup=\EF%p2%03d%p1%03d,
-	cuu1=\EA$<3>, dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>,
-	el=\EK$<3>, home=\EH$<1>, ht=^I, hts=\E1,
-	il1=\EN\EL$<3>\EQ                                                                                \EP$<3> \EO\ER\EA$<3>,
-	ind=^J, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdl1=\EM, ked=\EJ, kel=\EK,
-	kf0=\E2, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu,
-	kf7=\Ev, kf8=\Ew, kf9=\E1, khome=\EH, kich1=\EQ\EO,
-	krmir=\ER, lf0=TAB CLEAR, lf9=TAB SET, rmcup=, rmir=\ER,
-	rmso=\E_3, rmul=\E_3, sgr0=\E_3, smcup=\EO, smir=\EQ\EO,
-	smso=\E_1, smul=\E_0, tbc=\E3,
-sbi|superbee|beehive superbee at Indiana U.,
-	xsb,
-	cr=\r$<1>, il1=1\EN\EL$<9>\EQ \EP$<9> \EO\ER\EA,
-	use=sb1,
-# Alternate (older) description of Superbee - f1=escape, f2=^C.
-# Note: there are at least 3 kinds of superbees in the world.  The sb1
-# holds onto escapes and botches ^C's.  The sb2 is the best of the 3.
-# The sb3 puts garbage on the bottom of the screen when you scroll with
-# the switch in the back set to CRLF instead of AEP.  This description
-# is tested on the sb2 but should work on all with either switch setting.
-# The f1/f2 business is for the sb1 and the <xsb> can be taken out for
-# the other two if you want to try to hit that tiny escape key.
-# This description is tricky: being able to use cup depends on there being
-# 2048 bytes of memory and the hairy <nl> string.
-superbee-xsb|beehive super bee,
-	am, da, db, xsb,
-	cols#80, it#8, lines#25,
-	clear=\EH\EJ$<3>, cnorm=^J, cr=\r$<1000>, cub1=^H, cud1=^J,
-	cuf1=\EC, cup=\EF%p2%3d%p1%3d, cuu1=\EA$<3>,
-	dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, el=\EK$<3>,
-	home=\EH, ht=^I, hts=\E1,
-	ind=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET, is2=\EH\EJ,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ep, kf2=\Eq,
-	kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
-	khome=\EH, rmso=\E_3, sgr0=\E_3, smso=\E_1, tbc=\E3,
-# This loses on lines > 80 chars long, use at your own risk
-superbeeic|super bee with insert char,
-	ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb,
-sb2|sb3|fixed superbee,
-	xsb@, use=superbee,
-
-####  Beehive Medical Electronics
-#
-# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
-# Regarding your question though; Beehive terminals weren't made by Harris.
-# They were made by Beehive Medical Electronics in Utah. They went out of
-# business in the early '80s.
-#
-# (OK, then, I don't know why a couple of these say "harris beehive".)
-#
-
-# Reports are that most of these Beehive entries (except superbee) have not
-# been tested and do not work right.  <rmso> is a trouble spot.  Be warned.
-
-# (bee: <ich1> was empty, which is obviously bogus -- esr)
-beehive|bee|harris beehive,
-	OTbs, am, mir,
-	cols#80, lines#24,
-	cbt=\E>, clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
-	dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, kbs=^H, kcbt=\E>,
-	kclr=\EE, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ, kil1=\EL,
-	krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@, sgr0=\Ed@,
-	smir=\EQ, smso=\EdP, smul=\Ed`,
-# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs.
-# good grief - does this entry make :sg:/:ug: when it doesn't have to?
-# look at those spaces in <rmso>/<smso>.  Seems strange to me...
-# (beehive: <if=/usr/local/share/tabset/beehive> removed, no such file.  If you
-# really care, cook up one using ^F -- esr)
-beehive3|bh3m|beehiveIIIm|harris beehive 3m,
-	OTbs, am,
-	cols#80, it#8, lines#20,
-	bel=^G, clear=^E^R, cr=^M, cub1=^H, cud1=^J, cuf1=^L, cuu1=^K,
-	dl1=\021$<350>, ed=^R, el=^P, home=^E, ht=^I, hts=^F,
-	il1=\023$<160>, ind=^J, ll=^E^K, rmso=\s^_, smso=^]\s,
-beehive4|bh4|beehive 4,
-	am,
-	cols#80, lines#24,
-	bel=^G, clear=\EE, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
-	cuu1=\EA, ed=\EJ, el=\EK, home=\EH, ind=^J,
-# There was an early Australian kit-built computer called a "Microbee".
-# It's not clear whether this is for one of those or for a relative
-# of the Beehive.
-microb|microbee|micro bee series,
-	OTbs, am,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
-	el=\EK, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
-	kf6=\Eu, kf7=\Ev, kf8=\Ew, kf9=\Ex, khome=\EH, rmso=\Ed@,
-	rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`,
-
-# 8675, 8686, and bee from Cyrus Rahman
-# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
-ha8675|harris 8675,
-	is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU, kf1=^F,
-	kf10=\Ed, kf11=^W, kf12=\ER, kf13=\EE, kf14=\EI, kf15=\Ei,
-	kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=^J, kf6=^T, kf7=^H,
-	kf8=\177, kf9=\Ee, use=bee,
-# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation
-# in :is: -- esr)
-ha8686|harris 8686,
-	is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#,
-	kf1=\002\Ep\003, kf10=\Ej, kf11=\EW, kf12=\002\E{\003,
-	kf13=\002\E|\003, kf14=\002\E}\003, kf15=\002\E~\003,
-	kf16=\002\E\177\003, kf2=\002\Eq\003, kf3=\002\Er\003,
-	kf4=\002\Es\003, kf5=\E3, kf6=\EI, kf7=\ER, kf8=\EJ, kf9=\E(,
-	use=bee,
-
-#### Hazeltine
-#
-# Hazeltine appears to be out of the terminal business as of 1995.  These
-# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with
-# Harris. They have a hazeltine.com domain (but no web page there ) and can
-# be reached at:
-#
-#	Hazeltine
-#	450 East Pulaski Road
-#	Greenlawn, New York 11740
-#
-# As late as 1993, manuals for the terminal product line could still be
-# purchased from:
-#
-#	TRW Customer Service Division
-#	15 Law Drive
-#	P.O. Box 2076
-#	Fairfield, NJ 07007-2078
-#
-# They're now (1998) a subsidiary of General Electric, operating under the
-# marque "GEC-Marconi Hazeltine" and doing military avionics.  Web page
-# at <http://www.gec.com/cpd/1ncpd.htm#1.55>.
-#
-
-# Since <cuf1> is blank, when you want to erase something you
-# are out of luck.  You will have to do ^L's a lot to
-# redraw the screen.  h1000 is untested.  It doesn't work in
-# vi - this terminal is too dumb for even vi.  (The code is
-# there but it isn't debugged for this case.)
-hz1000|hazeltine 1000,
-	OTbs,
-	cols#80, lines#12,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, home=^K,
-	ind=^J,
-# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
-hz1420|hazeltine 1420,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=^J, cuf1=^P,
-	cup=\E\021%p2%c%p1%{32}%+%c, cuu1=\E^L, dl1=\E^S,
-	ed=\E^X, el=\E^O, ht=^N, il1=\E^Z, ind=^J, rmso=\E^Y,
-	smso=\E^_,
-# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>.  Prevents
-# freakout with out-of-range args and tn3270.  No hz since it needs to
-# receive tildes.
-hz1500|hazeltine 1500,
-	OTbs, am, hz,
-	cols#80, lines#24,
-	bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
-	cup=~\021%p2%p2%?%{30}%>%t%{32}%+%;%{96}%+%c%p1%{96}%+%c,
-	cuu1=~^L, dl1=~\023$<40>, ed=~\030$<10>, el=~^O, home=~^R,
-	il1=~\032$<40>, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^P,
-	kcuu1=~^L, khome=~^R, rmso=~^Y, smso=~^_,
-# h1510 assumed to be in sane escape mode.  Else use h1500.
-# (h1510: early versions of this entry apparently had "<rmso=\E^_>,
-# <smso=\E^Y>, but these caps were commented out in 8.3; also,
-# removed incorrect and overridden ":do=^J:" -- esr)
-hz1510|hazeltine 1510,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, cuf1=^P,
-	cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ed=\E^X,
-	el=\E^O, il1=\E^Z, ind=^J,
-# Hazeltine 1520
-# The following switch settings are assumed for normal operation:
-#	FULL		CR		U/L_CASE	ESCAPE
-#	FORMAT_OFF	EOM_A_OFF	EOM_B_OFF	WRAPAROUND_ON
-# Other switches may be set for operator convenience or communication
-# requirements.
-hz1520|Hazeltine 1520,
-	OTbs, am, bw, msgr,
-	cols#80, lines#24,
-	bel=^G, bold=\E^_, clear=\E^\, cr=^M, cub1=^H, cud1=^J,
-	cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
-	ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, kbs=^H,
-	kclr=\E^\, kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L,
-	kdl1=\E^S, ked=\E^X, kel=\E^O, khome=\E^R, kil1=\E^Z,
-	rmso=\E^Y, rs1=\E$\E\005\E?\E\031, sgr0=\E^Y, smso=\E^_,
-# This version works with the escape switch off
-# (h1520: removed incorrect and overridden ":do=^J:" -- esr)
-hz1520-noesc|hazeltine 1520,
-	am, hz,
-	cols#80, lines#24,
-	bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
-	cup=~\021%p2%c%p1%c$<1>, cuu1=~^L, dl1=~^S, ed=~^X, el=~^O,
-	home=~^R, il1=~^Z, ind=^J, rmso=~^Y, smso=~^_,
-# Note: the h1552 appears to be the first Hazeltine terminal which
-# is not braindamaged.  It has tildes and backprimes and everything!
-# Be sure the auto lf/cr switch is set to cr.
-hz1552|hazeltine 1552,
-	OTbs,
-	cud1=^J, dl1=\EO, il1=\EE, kf1=\EP, kf2=\EQ, kf3=\ER, lf1=blue,
-	lf2=red, lf3=green, use=vt52,
-hz1552-rv|hazeltine 1552 reverse video,
-	cud1=^J, rmso=\ET, smso=\ES, use=hz1552,
-# Note: h2000 won't work well because of a clash between upper case and ~'s.
-hz2000|hazeltine 2000,
-	OTbs, OTnc, am,
-	cols#74, lines#27,
-	bel=^G, clear=~\034$<6>, cub1=^H, cud1=^J,
-	cup=~\021%p2%c%p1%c, dl1=~\023$<6>, home=~^R,
-	il1=~\032$<6>, ind=^J, pad=\177,
-# Date: Fri Jul 23 10:27:53 1982.  Some unknown person wrote:
-# I tested this termcap entry for the Hazeltine Esprit with vi. It seems
-# to work ok. There is one problem though if one types a lot of garbage
-# characters very fast vi seems not able to keep up and hangs while trying
-# to insert. That's in insert mode while trying to insert in the middle of
-# a line. It might be because the Esprit doesn't have insert char and delete
-# char as a built in function. Vi has to delete to end of line and then
-# redraw the rest of the line.
-esprit|Hazeltine Esprit I,
-	OTbs, am, bw,
-	cols#80, lines#24,
-	bel=^G, cbt=\E^T, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K,
-	cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
-	ed=\E^W, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, is2=\E?, kbs=^H,
-	kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, kf0=^B0^J,
-	kf1=^B1^J, kf2=^B2^J, kf3=^B3^J, kf4=^B4^J, kf5=^B5^J,
-	kf6=^B6^J, kf7=^B7^J, kf8=^B8^J, kf9=^B9^J, khome=\E^R,
-	lf0=0, lf1=1, lf2=2, lf3=3, lf4=4, lf5=5, lf6=6, lf7=7, lf8=8, lf9=9,
-	rmkx=\E>, rmso=\E^Y, smkx=\E<, smso=\E^_,
-esprit-am|hazeltine esprit auto-margin,
-	am, use=esprit,
-# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL
-# Vi it seems always wants to send a control J for "do" and it turned out
-# that the terminal would work somewhat if the auto LF/CR was turned off.
-# (hmod1: removed :dn=~^K: -- esr)
-hmod1|Hazeltine Modular 1,
-	OTbs, am, hz,
-	cols#80, lines#24,
-	bel=^G, cbt=~^T, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
-	cup=~\021%p2%c%p1%c, cuu1=~^L, dl1=~^S, home=~^R, il1=~^Z,
-	ind=^J, kcub1=^H, kcud1=~^K, kcuf1=^P, kcuu1=~^L, khome=~^R,
-	rc=~^Q, rmso=~^Y, sc=~^E, sgr0=~^Y, smso=~^_,
-#
-# Hazeltine Executive 80 Model 30 (1554?)
-#	from  Will Martin <control@ALMSA-1.ARPA> via BRL
-# Like VT100, except for different "am" behavior.
-hazel|exec80|h80|he80|Hazeltine Executive 80,
-	OTbs, OTpt, am,
-	cols#80, it#8, lines#24, vt#3,
-	OTnl=^J, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
-	clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
-	cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
-	ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
-	is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
-	kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
-	rf=/usr/local/share/tabset/vt100, ri=\EM$<5/>,
-	rmkx=\E[?1l\E>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
-	rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>,
-	smul=\E[4m$<2/>,
-
-#### IBM
-#
-
-ibm327x|line mode IBM 3270 style,
-	gn,
-	clear=^M^J, el=^M, home=^M,
-
-ibm3101|i3101|IBM 3101-10,
-	OTbs, am, xon,
-	cols#80, lines#24,
-	bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
-	el=\EI, home=\EH, hts=\E0, ind=^J, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, nel=^M^J, tbc=\EH,
-ibm3151|IBM 3151 display,
-	is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B,
-	sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;,
-	sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162,
-# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
-# removed kend, knp, kpp -TD
-ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
-	OTbs, am, mir, msgr,
-	cols#80, it#8, lines#24,
-	acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370,
-	bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=^M, cub1=\ED,
-	cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH, ind=^J,
-	invis=\E4P, kbs=^H, kcbt=\E2, kclr=\EL\r, kctab=\E1,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EQ,
-	kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r, kf10=\Ej\r,
-	kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r, kf14=\E!b\r,
-	kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r, kf18=\E!f\r,
-	kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r, kf21=\E!i\r,
-	kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r, kf3=\Ec\r,
-	kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r, kf8=\Eh\r,
-	kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010, kil1=\EN,
-	ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A, rmcup=\E>A,
-	rmso=\E4@, rmul=\E4@,
-	sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;,
-	sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B,
-
-ibm3161-C|IBM 3161-C NLS terminal using cartridge,
-	rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161,
-ibm3162|IBM 3162 display,
-	blink=\E4$a, bold=\E4(a, il1=\EN, invis=\E40a, rev=\E4!a,
-	rmso=\E4>b, rmul=\E4=b, sgr0=\E4@, smso=\E4!a, smul=\E4"a,
-	use=ibm3161-C,
-
-# This really should not use setab/setaf, but it is clear that the
-# original terminfo does not toggle red/blue colors as in setb/setf.
-ibm3164|i3164|IBM 3164,
-	msgr,
-	colors#8, pairs#64,
-	op=\E4 "@, rmcup=\E!9(N\E>B, s0ds=\E>B, s1ds=\E>A,
-	setab=\E4  %p1%{64}%+%c,
-	setaf=\E4%?%p1%t %p1%{32}%+%c%e!'%;@,
-	smcup=\E!9/N\E>B, use=ibm3161,
-
-ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display,
-	am, bw, msgr, xon,
-	cols#80, it#8, lines#25,
-	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H,
-	hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
-	indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z,
-	kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, kel=\E[142q,
-	kend=\E[146q, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q,
-	kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, kf15=\E[015q,
-	kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, kf19=\E[019q,
-	kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, kf22=\E[022q,
-	kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, kf26=\E[026q,
-	kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, kf3=\E[003q,
-	kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, kf33=\E[033q,
-	kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, kf4=\E[004q,
-	kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
-	kf9=\E[009q, khome=\E[H, kich1=\E[139q, kil1=\E[140q,
-	kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q,
-	krmir=\E[4l, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmir=\E[4l,
-	rmso=\E[m, rmul=\E[m, rs2=\Ec,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
-	sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-
-ibmaed|IBM Experimental display,
-	OTbs, am, eo, msgr,
-	cols#80, it#8, lines#52,
-	clear=\EH\EK, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
-	dl1=\EO, ed=\EJ, el=\EI, flash=\EG, home=\EH, ht=^I, ich1=\EP,
-	il1=\EN, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	rmso=\E0, sgr0=\E0, smso=\E0,
-ibm-apl|apl|IBM apl terminal simulator,
-	lines#25, use=dm1520,
-# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
-# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr)
-ibmmono|IBM workstation monochrome,
-	eslok, hs,
-	bold=\EZ, dl1=\EM, dsl=\Ej\EY8 \EI\Ek, fsl=\Ek, il1=\EL,
-	invis=\EF\Ef0;\Eb0;, kbs=^H, kf0=\E<, kf1=\ES, kf2=\ET,
-	kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EY,
-	khome=\EH, kich1=\0, kind=\EE, knp=\EE, kpp=\Eg, kri=\EG,
-	lf0=f10, rev=\Ep, ri=\EA, rmso=\Ez, rmul=\Ew,
-	sgr0=\Ew\Eq\Ez\EB, smso=\EZ, smul=\EW, tsl=\Ej\EY8%+ \Eo,
-	use=ibm3101,
-ibmega|IBM Enhanced Color Display,
-	cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
-	nel=^M^J, use=ibmmono,
-# This color scheme is assumed in some recent IBM terminal descriptions
-# (green on black, emulated on a 16-color terminal).
-ibm+color|IBM color definitions,
-	colors#8, ncv#3, pairs#64,
-	op=\E[32m\E[40m,
-	setb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;,
-	setf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;,
-ibm+16color|IBM aixterm color definitions,
-	colors#16, pairs#256,
-	setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm,
-	setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm,
-	setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
-	setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
-ibm5154|IBM 5154 Color display,
-	colors#8, ncv@, pairs#64,
-	bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
-	use=ibm+color,
-ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline,
-	rmso=\EB, rmul=\EB, smso=\EF\Ef3;, smul=\EF\Ef2;,
-	use=ibmmono,
-ibmvga-c|IBM VGA display color termcap,
-	cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
-	nel=^M^J, use=ibmega-c,
-ibmvga|IBM VGA display,
-	cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
-	nel=^M^J, use=ibmega,
-# ibmapa* and ibmmono entries come from ACIS 4.3 distribution
-rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display,
-	lines#32,
-	dsl=\Ej\EY@ \EI\Ek, tsl=\Ej\EY@%+ \Eo, use=ibmmono,
-ibm6155|IBM 6155 Black & White display,
-	blink@, bold@, use=ibm5151,
-# Advanced Monochrome (6153) and Color (6154) Graphics Display:
-ibmapa8c|ibmapa8|IBM 6154 Advanced Graphics Display,
-	lines#31,
-	dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, use=ibmmono,
-ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display,
-	lines#31,
-	dim=\EF\Ef7;, dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo,
-	use=ibmega-c,
-ibm6154|IBM 6154 Color displays,
-	blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
-	sgr0=\E[0;10m, use=ibm5154,
-ibm6153|IBM 6153 Black & White display,
-	blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
-	sgr0=\E[0;10m, use=ibm5151,
-ibm6153-90|IBM 6153 Black & White display,
-	cols#90, lines#36,
-	blink@, bold@, use=ibm5151,
-ibm6153-40|IBM 6153 Black & White display,
-	cols#40, lines#12, use=ibm6153-90,
-ibm8512|ibm8513|IBM color VGA Terminal,
-	am, mir, msgr,
-	cols#80, it#8, lines#25,
-	acsc=jjkkllmmnnqqttuuvvwwxx, blink=\E[5m, bold=\E[1m,
-	clear=\E[H\E[J, cub1=\E[D, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, il=\E[%p1%dL,
-	il1=\E[L, is2=\Eb\E[m\017\E[?7h, kcud1=\E[B, kcuu1=\E[A,
-	kf0=\E[010q, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q,
-	kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
-	kf8=\E[008q, kf9=\E[009q, khome=\E[H, rc=\E[u, rev=\E[7m,
-	rmacs=^O, rmam=\E[?7l, rmcup=\E[20h, rmdc=\E[4l,
-	rmir=\E[4l, rmso=\E[m, rmul=\E[m,
-	rs1=\Eb\E[m\017\E[?7h\E[H\E[J, sc=\E[s, sgr0=\E[m,
-	smacs=^N, smam=\E[?7h, smcup=\E[20;4l\E[?7h\Eb,
-	smdc=\E[4h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	use=ibm8503,
-hft-c|HFT with Color,
-	colors#8, pairs#64,
-	acsc=jjkkllmmnnqqttuuvvwwxx, s0ds=\E(B, s1ds=\E(0,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m\E(B,
-	use=ibm5151, use=ibm+color,
-hft-c-old|HFT with Color PC850,
-	colors#8, pairs#64,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
-	use=ibm+color,
-hft-old|AIWS High Function Terminal,
-	am, xon,
-	cols#80, lines#25,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-	cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
-	ht=^I, ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
-	kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
-	kf9=\E[009q, khome=\E[H, knp=\E[153q, kpp=\E[159q,
-	ktbc=\E[010q, rev=\E[7m, rmir=\E6, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m, use=ibm+color,
-ibm-system1|system1|ibm system/1 computer,
-	am, xt,
-	cols#80, lines#24,
-	bel=^G, clear=^Z, cub1=^H, cuf1=^\,
-	cup=\005%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, home=^K,
-	ind=^J,
-#       lft-pc850 : IBM Low Function Terminal Device
-#    lft "supports" underline, bold, and blink in the sense that the lft code
-#    sets all the right bits.  HOWEVER, depending upon the adapter, these
-#    attributes may or may not be supported by the device driver.
-lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device,
-	am, bw, msgr, xon,
-	cols#80, it#8, lines#25,
-	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
-	cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[2J, el=\E[0K,
-	home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, il=\E[%p1%dL,
-	il1=\E[L, ind=\ED, indn=\E[%p1%dS, invis=\E[8m, is2=\Ec,
-	kbs=^H, kcbt=\E[Z, kclr=\E[144q, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ked=\E[148q,
-	kel=\E[142q, kend=\E[146q, kf1=\E[001q, kf10=\E[010q,
-	kf11=\E[011q, kf12=\E[012q, kf13=\E[013q, kf14=\E[014q,
-	kf15=\E[015q, kf16=\E[016q, kf17=\E[017q, kf18=\E[018q,
-	kf19=\E[019q, kf2=\E[002q, kf20=\E[020q, kf21=\E[021q,
-	kf22=\E[022q, kf23=\E[023q, kf24=\E[024q, kf25=\E[025q,
-	kf26=\E[026q, kf27=\E[027q, kf28=\E[028q, kf29=\E[029q,
-	kf3=\E[003q, kf30=\E[030q, kf31=\E[031q, kf32=\E[032q,
-	kf33=\E[033q, kf34=\E[034q, kf35=\E[035q, kf36=\E[036q,
-	kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
-	kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
-	kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q,
-	kri=\E[155q, krmir=\E[4l, rev=\E[7m, ri=\EL, rin=\E[%p1%dT,
-	rmacs=\E(B, rmir=\E[4l, rmso=\E[0m, rmul=\E[0m, rs2=\Ec,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g,
-ibm5081|hft|IBM Megapel Color display,
-	acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
-	s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
-ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display,
-	eslok, hs,
-	lines#33,
-	dsl=\Ej\EYA \EI\Ek, fsl=\Ek, tsl=\Ej\EYA%+ \Eo,
-	use=ibmega-c,
-ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display,
-	use=hft-c,
-ibm8514|IBM 8514/a color VGA display,
-	eslok, hs,
-	dsl=\Ej\EYI \EI\Ek, fsl=\Ek, tsl=\Ej\EYI%+ \Eo, use=hft,
-ibm8514-c|IBM 8514 color display with standout and underline,
-	eslok, hs,
-	lines#41,
-	cr=^M, cud1=^J, dsl=\Ej\EYI \EI\Ek, fsl=\Ek, ht=^I, ind=^J,
-	kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, tsl=\Ej\EYI%+ \Eo,
-	use=ibmega-c,
-
-#
-# AIX entries.  IBM ships these with AIX 3.2.5.
-# -- added rc, sc based on manpage -TD
-# Note that we could use ibm+16color, but that is not how IBM defines this one.
-aixterm|IBM Aixterm Terminal Emulator,
-	eslok, hs,
-	acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
-	fsl=\E[?F, rc=\E8, ri@, s0ds=\E(B, s1ds=\E(0, sc=\E7,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6154,
-aixterm-m|IBM AIXterm Monochrome Terminal Emulator,
-	eslok, hs,
-	acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
-	fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
-	sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153,
-aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator,
-	eslok, hs,
-	bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
-	tsl=\E[?%p1%dT, use=ibm6153,
-jaixterm|IBM Kanji Aixterm Terminal Eemulator,
-	acsc@, use=aixterm,
-jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator,
-	acsc@, use=aixterm-m,
-
-# This flavor is adapted from xterm, in turn from aixterm documentation -TD
-aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors,
-	use=ibm+16color, use=aixterm,
-
-#### Infoton/General Terminal Corp.
-#
-
-# gt100 sounds like something DEC would come out with.  Let's hope they don't.
-i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100),
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM,
-	ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL,
-	ind=^J, rmso=\Ea, smso=\Eb,
-i400|infoton 400,
-	OTbs, am,
-	cols#80, lines#25,
-	bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%3d;%p2%3dH, cuu1=\E[A,
-	dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N,
-	il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q,
-# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
-addrinfo,
-	am,
-	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y,
-	cup=\037%p1%c%p2%c, cuu1=^\, ed=^K, home=^H, ind=^J, ll=^H^\,
-# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
-infoton,
-	am,
-	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\,
-	ed=^K, ind=^J, ll=^H^\,
-
-# The ICL6402 was actually the Kokusai Display System 6402.
-# The 6404 was the KDS7372 (color version of the 6402).
-#
-# ICL6404 control codes follow:
-#
-#code            function
-#~~~~~~~~~~~     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#ctrl-A          set SOM position at cursor position
-#ctrl-G          Bell
-#ctrl-H          Backspace
-#ctrl-I          Horiz tab
-#ctrl-J          Linefeed
-#ctrl-K          Cursor up
-#ctrl-L          Cursor right
-#ctrl-M          Carriage return
-#ctrl-N          Disable xon/xoff to host
-#ctrl-O          Enable xon/xoff to host
-#ctrl-R          Enable bidirectional mode
-#ctrl-T          Disable bidirectional mode
-#ctrl-V          Cursor down
-#ctrl-Z          Clear unprotected data to insert char
-#ctrl-^          Cursor home
-#ctrl-_          Newline
-#
-#ESC             lead-in char for multiple character command
-#
-#ESC space R     execute power on sequence
-#ESC ! p1 p2     define scroll region:
-#                p1 = scroll top    line:  20h - 37h
-#                p1 = scroll bottom line:  20h - 37h
-#ESC "           unlock keyboard
-#ESC #           lock keyboard
-#ESC $           Semi-graphics mode on
-#ESC %           Semi-graphics mode off
-#ESC &           protect mode on
-#ESC '           protect mode off
-#ESC (           write protect mode off (full intensity)
-#ESC )           write protect mode on (half intensity)
-#
-#ESC *           clear screen
-#ESC +           clear unprotected data to insert char
-#ESC ,           clear unprotected data to half intensity spaces
-#ESC - p1 p2 p3 p4     address cursor to page, row, column:
-#                      p1 = page number  0 - 3
-#                      p2 = row          20h - 7fh
-#                      p3 = column (lo)  20h - 7fh
-#                      p4 = column (hi)  20h - 21h (only 132 col)
-#ESC . p1        set cursor style:
-#                p1 = 0  invisible cursor
-#                p1 = 1  block blinking cursor
-#                p1 = 2  block steady cursor
-#                p1 = 3  underline blinking cursor
-#                p1 = 4  underline steady cursor
-#ESC /           transmit cursor location (page, row, column)
-#ESC 0 p1 p2 p3 p4     program edit key:
-#                      p1 = edit key code: '@'-'S', '`'-'s'
-#                      p2 p3 p4 = program data (3 bytes)
-#
-#ESC 1           set tab
-#ESC 2           clear tab at cursor
-#ESC 3           clear all tabs
-#ESC 4           send unprotect line to cursor
-#ESC 5           send unprotect page to cursor
-#ESC 6           send line to cursor
-#ESC 7           send page to cursor
-#ESC 8 n         set scroll mode:
-#                n = 0   set jump scroll
-#                n = 1   set smooth scroll
-#ESC 9 n         control display:
-#                n = 0   display off
-#                n = 1   display on
-#ESC :           clear unprotected data to null
-#ESC ;           clear unprotected data to insert char
-#
-#ESC <           keyclick on
-#ESC = p1 p2     address cursor to row, column
-#                p1 = row          20h - 7fh
-#                p2 = column (lo)  20h - 7fh
-#                p3 = column (hi)  20h - 21h (only 132 col)
-#ESC >           keyclick off
-#ESC ?           transmit cursor location (row, column)
-#
-#ESC @           copy print mode on
-#ESC A           copy print mode off
-#ESC B           block mode on
-#ESC C           block mode off (conversation mode)
-#ESC D F         set full duplex
-#ESC D H         set half duplex
-#ESC E           line insert
-#ESC F p1 p2     set page colour (p1 = f/grnd, p2 = b/grnd)
-#                0 = black, 1 = red,     2 = green, 3 = yellow
-#                4 = blue,  5 = magenta, 6 = cyan,  7 = white
-#ESC G n         set serial field attribute (n = 30h - 3Fh)
-#ESC H n         full graphics mode:
-#                n = 0  exit full graphics mode
-#                n = 1  enter full graphics mode
-#ESC I           back tab
-#ESC J           back page
-#ESC K           forward page
-#
-#ESC L           unformatted page print
-#ESC M L         move window left  (132 col mode only)
-#ESC M R         move window right (132 col mode only)
-#ESC N           set page edit (clear line edit)
-#ESC O           set line edit (clear page edit)
-#ESC P           formatted page print
-#ESC Q           character insert
-#ESC R           line delete
-#ESC S           send message unprotected only
-#ESC T           erase line to insert char
-#ESC U           set monitor mode   (see ESC X, ESC u)
-#
-#ESC V n         select video attribute mode:
-#                n = 0   serial field attribute mode
-#                n = 1   parallel character attribute mode
-#ESC V 2 n       define line attribute:
-#                n = 0   single width single height
-#                n = 1   single width double height
-#                n = 2   double width single height
-#                n = 3   double width double height
-#ESC V 3 n       select character font:
-#                n = 0   system font
-#                n = 1   user defined font
-#ESC V 4 n       select screen mode:
-#                n = 0   page screen mode
-#                n = 1   virtual screen mode
-#ESC V 5 n       control mouse mode:
-#                n = 0   disable mouse
-#                n = 1   enable sample mode
-#                n = 2   send mouse information
-#                n = 3   enable request mode
-#ESC W           character delete
-#ESC X           clear monitor mode (see ESC U, ESC u)
-#ESC Y           erase page to insert char
-#
-#ESC Z n         send user/status line:
-#                n = 0   send user line
-#                n = 1   send status line
-#                n = 2   send terminal ID
-#ESC [ p1 p2 p3  set character attribute (parallel char mode):
-#                p1: 0 = normal
-#                    1 = blank
-#                    2 = blink
-#                    3 = blink blank (= blank)
-#                    4 = reverse
-#                    5 = reverse blank
-#                    6 = reverse blink
-#                    7 = reverse blink blank (= reverse blank)
-#                    8 = underline
-#                    9 = underline blank
-#                    : = underline blink
-#                    ; = underline blink blank
-#                    < = reverse underline
-#                    = = reverse underline blank
-#                    > = reverse underline blink
-#                    ? = reverse underline blink blank
-#                p2, p3: f/grnd, b/grnd colour
-#                (see ESC F for colours)
-#                use ZZ for mono, eg.
-#                    ESC [ 0 Z Z for normal
-#                    ESC [ 4 Z Z for inverse etc.
-#
-#ESC \ n         set page size:
-#                n = 1   24 lines/page
-#                n = 2   48 lines/page
-#                n = 3   72 lines/page
-#                n = 4   96 lines/page
-#ESC ] n         set Wordstar mode:
-#                n = 0   normal (KDS7372) mode
-#                n = 1   Wordstar mode
-#
-#ESC b           set foreground colour screen
-#
-#ESC c n         enter self-test mode:
-#                n = 0   exit self test mode
-#                n = 1   ROM test
-#                n = 2   RAM test
-#                n = 3   NVRAM test
-#                n = 4   screen display test
-#                n = 5   main/printer port test
-#                n = 6   mouse port test
-#                n = 7   graphics board test
-#                n = 8   graphics memory test
-#                n = 9   display all 'E'
-#                n = :   display all 'H'
-#ESC d           set background colour screen
-#
-#ESC e n         program insert char (n = insert char)
-#ESC f text CR   load user status line with 'text'
-#
-#ESC g           display user status line on 25th line
-#ESC h           display system status line on 25th line
-#ESC i           tab
-#ESC j           reverse linefeed
-#ESC k n         duplex/local edit mode:
-#                n = 0   duplex edit mode
-#                n = 1   local edit mode
-#ESC l n         select virtual screen:
-#                n = 0   screen 1
-#                n = 1   screen 2
-#ESC m           save current config to NVRAM
-#ESC n p1        select display screen:
-#                p1 = 0  screen 1
-#                p1 = 1  screen 2
-#                p1 = 2  screen 3
-#                p1 = 3  screen 4
-#ESC o p1 p2     set characters/line and attribute:
-#                p1 = 0  80 chars/line
-#
-#ESC o p1 p2     set characters/line and attribute:
-#                p1 = 0  80 chars/line
-#                p1 = 1  132 chars/line
-#                p2 = 0  single width single height
-#                p2 = 1  single width double height
-#                p2 = 2  double width single height
-#                p2 = 3  double width double height
-#
-#ESC q           insert mode on
-#ESC r           edit mode on
-#ESC s           send message all
-#ESC t           erase line to null
-#ESC u           clear monitor mode (see ESC U, ESC X)
-#ESC v           autopage mode on
-#ESC w           autopage mode off
-#ESC x p1 p2 p3  define delimiter code...
-#ESC y           erase page to null
-#
-#ESC z 2 p1 p2 p3 p4   draw quadrangle:
-#                      p1 = starting row
-#                      p2 = starting column
-#                      p3 = end row
-#                      p4 = end column
-#
-#ESC { p1 p2 p3 p4     configure main port
-#                      (baud, stop bits, parity, word length)
-#
-#ESC | p1 p2 text Ctrl-Y    program function key with 'text':
-#                        p1 = function key code:
-#                             '1' - ';'  normal f1- f11
-#                             '<' - 'F'  shifted f1 - f11
-#                        p2 = program mode:
-#                             1 = FDX
-#                             2 = LOC
-#                             3 = HDX
-#                        Ctrl-Y = terminator
-#                        (use Ctrl-P to escape ^P, ^Y )
-#
-#ESC } p1 p2 p3 p4     configure printer port
-#                      (baud, stop bits, parity, word length)
-#ESC ~           send system status
-#
-# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997
-#
-# Entry is by esr going solely on above information and is UNTESTED.
-# This actually looks a lot like a Televideo 9xx.
-# This entry uses page 0 and is monochrome; I'm not brave enough to try
-# to make color work without a test terminal.  The <am> capability is a guess.
-# The initialization string sets conversation mode, blinking underline cursor,
-# full duplex, parallel attribute mode, display user status line, white
-# foreground, black background, normal highlight.
-#
-icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372,
-	OTbs, am, hs,
-	cols#80, lines#24,
-	bel=^G, blink=\E[2ZZ, cbt=\EI, civis=\E.0, clear=\E*,
-	cnorm=\E.3, cr=^M,
-	csr=\E!%+%p1%{32}%+%p2%{32} cud1=\026, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{80}%m%{32}%+%c%p2%{80}%>%{32}%+%c,
-	cuu1=^K, cvvis=\E.1, dch1=\EW, dl1=\ER, home=^^, ht=^I,
-	hts=\E1, il1=\EE, invis=\E[1ZZ,
-	is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ,
-	rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ,
-	rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1,
-	sgr=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ,
-	sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3,
-icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols,
-	rs2=\Eo1, use=icl6404,
-
-#### Interactive Systems Corp
-#
-# ISC used to sell OEMed and customized hardware to support ISC UNIX.
-# ISC UNIX still exists in 1995, but ISC itself is no more; they got
-# bought out by Sun.
-#
-
-# From: <cithep!eric>  Wed Sep 16 08:06:44 1981
-# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the
-# ":le=^_:" later overridden -- esr)
-intext|Interactive Systems Corporation modified owl 1200,
-	OTbs, am,
-	cols#80, it#8, lines#24, xmc#1,
-	bel=^G, cbt=^Y, clear=\014$<132>, cr=^M, cub1=^H, cud1=^J,
-	cuf1=^^, cup=\017%p1%{32}%+%c%p2%{32}%+%c, cuu1=^\,
-	dch1=\022$<5.5*>, dl1=\021$<5.5*>, ed=\026J$<5.5*>,
-	el=^Kp^R, ht=^I, il1=\020$<5.5*>, ind=^J, ip=$<5.5*>, kbs=^H,
-	kcub1=^_, kcud1=^J, kcuf1=^^, kcuu1=^\, kf0=^VJ\r, kf1=^VA\r,
-	kf2=^VB\r, kf3=^VC\r, kf4=^VD\r, kf5=^VE\r, kf6=^VF\r,
-	kf7=^VG\r, kf8=^VH\r, kf9=^VI\r, khome=^Z, rmir=^V<,
-	rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036\:\264\026%%,
-	smso=^V$\,,
-intext2|intextii|INTERACTIVE modified owl 1251,
-	am, bw, ul,
-	cols#80, lines#24, xmc#0,
-	bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J, el=\E[K,
-	flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u,
-	hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
-	kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r,
-	kf0=\E@\r, kf1=\EP\r, kf2=\EQ\r, kf3=\ES\r, kf4=\ET\r,
-	kf5=\EU\r, kf6=\EV\r, kf7=\EW\r, kf8=\EX\r, kf9=\EY\r,
-	khome=\ER\r, lf0=REFRSH, lf1=DEL CH, lf2=TABSET, lf3=GOTO,
-	lf4=+PAGE, lf5=+SRCH, lf6=-PAGE, lf7=-SRCH, lf8=LEFT,
-	lf9=RIGHT, ri=\E[T, rmso=\E[2 D, rmul=\E[2 D, smso=\E[6 D,
-	smul=\E[18 D,
-
-#### Kimtron (abm, kt)
-#
-# Kimtron seems to be history, but as March 1998 these people are still
-# offering repair services for Kimtron equipment:
-#
-#    Com/Pair Monitor Service
-#    1105 N. Cliff Ave.
-#    Sioux Falls, South Dakota 57103
-#
-#    WATS voice:  1-800/398-4946
-#    POTS   fax: +1 605/338-8709
-#    POTS voice: +1 605/338-9650
-#         Email: <compair@sd.cybernex.net>
-#  Internet/Web: <http://www.com-pair.com>
-#
-# Kimtron entries include (undocumented) codes for: enter dim mode,
-# enter bold mode, enter reverse mode, turn off all attributes.
-#
-
-# Kimtron ABM 85 added by Dual Systems
-# (abm85: removed duplicated ":kd=^J:" -- esr)
-abm85|Kimtron ABM 85,
-	OTbs, am, bw, msgr,
-	cols#80, it#8, lines#24, xmc#1,
-	cbt=\EI, clear=\E*, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\Ey, el=\Et, ht=^I,
-	if=/usr/local/share/tabset/stdcrt, il1=\EE,
-	is2=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq, kbs=^H, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rmir=\Er, rmso=\Ek,
-	rmul=\Em, smir=\EQ, smso=\Ej, smul=\El,
-# Kimtron ABM 85H added by Dual Systems.
-# Some notes about the abm85h entries:
-# 1) there are several firmware revs of 85H in the world. Use abm85h-old for
-#    firmware revs prior to SP51
-# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the
-#    abm85e entry if it is in tvi920 emulation mode. They are incompatible
-#    in some places and NOT software settable i.e., <is2> can't fix it)
-# 3) In 85h mode, the arrow keys and special functions transmit when
-#    the terminal is in dup-edit, and work only locally in local-edit.
-#    Vi won't swallow `del char' for instance, but <smcup> turns on
-#    dup-edit anyway so that the arrow keys will work right. If the
-#    arrow keys don't work the way you like, change <smcup>, <rmcup>, and
-#    <is2>.  Note that 920E mode does not have software commands to toggle
-#    between dup and local edit, so you get whatever was set last on the
-#    terminal.
-# 4) <flash> attribute is nice, but seems too slow to work correctly
-#    (\Eb<pad>\Ed)
-# 5) Make sure `hidden' attributes are selected. If `embedded' attributes
-#    are selected, the <xmc@> entry should be removed.
-# 6) auto new-line should be on (selectable from setup mode only)
-#
-# From: Erik Fair <fair@ucbarpa>  Sun Oct 27 07:21:05 1985
-abm85h|Kimtron ABM 85H native mode,
-	hs,
-	xmc@,
-	bel=^G, cnorm=\E.4, cvvis=\E.2, dim=\E), dsl=\Ee, flash@,
-	fsl=^M, invis@,
-	is2=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El,
-	kcud1=^V, sgr0=\E(\EG0, smir=\EZ, tsl=\Eg\Ef, use=adm+sgr,
-	use=abm85,
-abm85e|Kimtron ABM 85H in 920E mode,
-	xmc@,
-	bel=^G, dim=\E), flash@,
-	is2=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em,
-	rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
-abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.,
-	xmc@,
-	bel=^G, dim=\E),
-	is2=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF,
-	rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
-# From: <malman@bbn-vax.arpa>
-# (kt7: removed obsolete :ma=^V^J^L :" -- esr)
-kt7|kimtron model kt-7,
-	OTbs, am,
-	cols#80, it#8, lines#24,
-	cbt=\EI, clear=^Z, cub1=^H, cud1=^V, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\EY, el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
-	if=/usr/local/share/tabset/stdcrt, il1=\EE, invis@, is2=\El\E",
-	kbs=^H, kcbt=\EI, kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L,
-	kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r,
-	kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
-	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
-	kich1=\EQ, kil1=\EE, tsl=\Ef, use=adm+sgr,
-# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the
-# other kt7 entry and the adjacent key capabilities).  Removed EE which is
-# identical to :mh:.  Removed :ES=\EGD: which is some kind of highlight
-# but we can't figure out what.
-kt7ix|kimtron model kt-7 or 70 in IX mode,
-	am, bw,
-	cols#80, it#8, lines#25,
-	acsc=jYk?lZm@nEqDt4uCvAwBx3, bel=^G, blink=\EG2, cbt=\EI,
-	civis=\E.0, clear=\E*, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V,
-	cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=^M,
-	home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=^J,
-	is2=\EG0\E s\017\E~, kbs=^H, kcbt=\EI, kclr=\E*,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\ER,
-	ked=\EY, kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
-	kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, knp=\EJ,
-	nel=^M^J, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0,
-	sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef,
-
-#### Microdata/MDIS
-#
-# This was a line of terminals made by McDonnell-Douglas Information Systems.
-# These entries come direct from MDIS documentation.  I have edited them only
-# to move primary names of the form p[0-9] * to aliases, and to comment out
-# <rmacs>/<smacs> in a couple of entries without <acsc> strings.  I have
-# also removed the change history; the last version indicates this is
-# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989).
-#
-
-# McDonnell Information Systems Terminal Family History
-# =========================================
-#
-# Prism-1, Prism-2 and P99:
-#       Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
-#
-# Prism-4 and Prism-5:
-#       Slightly less ancient range of Microdata terminals. Follow-on from
-#       Prism-2, but with many enhancements. P5 has eight display pages.
-#
-# Prism-6:
-#       A special terminal for use with library systems, primarily in Germany.
-#       Limited numbers. Similar functionality to P5 (except attributes?).
-#
-# Prism-7, Prism-8 and Prism-9:
-#       More recent range of MDIS terminals, in which P7 and P8
-#       replace the P4 & P5, with added functionality, and P9 is the flagship.
-#       The P9 has two emulation modes - P8 and ANSI - and includes a
-#       large number of the DEC VT220 control sequences. Both
-#       P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats.
-#
-# Prism-12 and Prism-14:
-#       Latest range, functionally very similar to the P9.  The P14 has a
-#       black-on-white overscanning screen.
-#
-# The terminfo definitions given here are:
-#
-# p2      - Prism-2 (or Prism-1 or P99).
-#
-# p4      - Prism-4 (and older P7s & P8s).
-# p5      - Prism-5 (or Prism-6).
-#
-# p7      - Prism-7.
-# p8      - Prism-8 (in national or multinational mode).
-# p8-w    - 132 column version of p8.
-# p9      - Prism-9 in ANSI mode.
-# p9-w    - 132 column version of p9.
-# p9-8    - Prism-9 in Prism-8 emulation mode.
-# p9-8-w  - As p9-8, but with 132 columns.
-#
-# p12     - Prism-12 in ANSI mode.
-# p12-w   - 132 column version of p12.
-# p12-m   - Prism-12 in MDC emulation mode.
-# p12-m-w - As p12-m, but with 132 columns.
-# p14     - Prism-14 in ANSI mode.
-# p14-w   - 132 column version of p14.
-# p14-m   - Prism-14 in MDC emulation mode.
-# p14-m-w - As p14-m, but with 132 columns.
-#
-# p2: Prism-2
-# -----------
-#
-# Includes Prism-1 and basic P99 without SP or MP loaded.
-# The simplest form of Prism-type terminal.
-# Basic cursor movement and clearing operations only.
-# No video attributes.
-# Notes:
-#  Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
-#  value up, followed by backspace.
-#
-prism2|MDC Prism-2,
-	am, bw, msgr,
-	cols#80, lines#24,
-	bel=^G, clear=\014$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
-	cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
-	cuu1=^Z, ed=\EJ, el=\EK, home=^A,
-	hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
-	ind=^J, kbs=^H, khome=^A, vpa=\013%p1%{32}%+%c,
-
-# p4: Prism-4
-# -----------
-#
-# Includes early versions of P7 & P8.
-# Basic family definition for most Prisms (except P2 and P9 ANSI).
-# Notes:
-#  Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
-#  value up, followed by backspace.
-#  Cursor key definitions removed because they interfere with vi and csh keys.
-#
-prism4|p4|P4|MDC Prism-4,
-	am, bw, hs, mc5i, msgr,
-	cols#80, lines#24, wsl#72, xmc#1,
-	bel=^G, blink=^CB, civis=^]\344, clear=\014$<20>,
-	cnorm=^]\342, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
-	cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
-	cuu1=^Z, dim=^CA, dsl=\035\343\035\345, ed=\EJ, el=\EK,
-	fsl=^]\345, home=^A,
-	hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
-	ind=^J, invis=^CH, kbs=^H, khome=^A, mc0=\EU, mc4=\ET, mc5=\ER,
-	rev=^CD, rmso=^C\s, rmul=^C\s,
-	sgr=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;,
-	sgr0=^C\s, smso=^CD, smul=^CP, tsl=^]\343,
-	vpa=\013%p1%{32}%+%c,
-
-# p5: Prism-5
-# -----------
-#
-# Same definition as p4. Includes Prism-6 (not tested!).
-# Does not use any multi-page features.
-#
-prism5|p5|P5|MDC Prism-5,
-	use=p4,
-
-# p7: Prism-7
-# -----------
-#
-# Similar definition to p4. Uses ANSI cursor motion to avoid network problems.
-# Notes:
-#  Use p4 for very early models of P7.
-#  Rev-index removed; can't send nulls to terminal in 8-bit modes.
-#
-prism7|p7|P7|MDC Prism-7,
-	cup=\E[%i%p1%d;%p2%dH, hpa@, vpa@, use=p4,
-
-# p8: Prism-8
-# -----------
-#
-# Similar definition to p7. Uses ANSI cursor motion to avoid network problems.
-# Supports national and multinational character sets.
-# Notes:
-#  Alternate char set operations only work in multinational mode.
-#  Use p4 for very early models of P8.
-#  Rev-index removed; can't send nulls to terminal in 8-bit modes.
-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
-#
-prism8|p8|P8|MDC Prism-8,
-	cup=\E[%i%p1%d;%p2%dH, hpa=\E[%i%p1%d`, is2=\E[<12h,
-	vpa=\E[%i%p1%dd, use=p4,
-
-# p8-w: Prism-8 in 132 column mode
-# --------------------------------
-#
-# 'Wide' version of p8.
-# Notes:
-#  Rev-index removed; can't send nulls to terminal in 8-bit modes.
-#
-prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode,
-	cols#132,
-	is2=\E[<12h\E[<14h, use=p8,
-
-# p9: Prism-9 in ANSI mode
-# -------------------------
-#
-# The "flagship" model of this generation of terminals.
-# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones.
-# Notes:
-#  Tabs only reset by "reset". Otherwise assumes default (8 cols).
-#  Fixes to deal with terminal firmware bugs:
-#  . 'ri' uses insert-line since rev index doesn't always
-#  . 'sgr0' has extra '0' since esc[m fails
-#  . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25
-#  Not covered in the current definition:
-#  . Labels
-#  . Programming Fn keys
-#  . Graphic characters (defaults correctly to vt100)
-#  . Padding values (sets xon)
-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
-#
-prism9|p9|P9|MDC Prism-9 in ANSII mode,
-	am, bw, hs, mc5i, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3, wsl#72,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l,
-	clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, dsl=\E[%}\024, ech=\E[%p1%dX,
-	ed=\E[J$<10>, el=\E[K, fsl=^T, home=\E[H, hpa=\E[%i%p1%d`,
-	ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is2=\E[&p\E[<12l\E F, kbs=^H, kclr=^L, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~,
-	kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
-	kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
-	kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	khome=\E[H, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=^M^J,
-	prot=\E[32%{, rc=\E[%z, rep=\E[%p2%db%p1%c, rev=\E[7m,
-	ri=\E[L, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
-	rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N,
-	sc=\E[%y,
-	sgr=\E[%{0}%?%p1%p3%|%t%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;,
-	sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	tbc=\E[2g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
-
-# p9-w: Prism-9 in 132 column mode
-# --------------------------------
-#
-# 'Wide' version of p9.
-#
-prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode,
-	cols#132,
-	is2=\E[&p\E[<12l\E F\E[<14h,
-	rs2=\E[&p\E[<12l\E F\E[<14h, use=p9,
-
-# p9-8: Prism-9 in P8 mode
-# ------------------------
-#
-# P9 terminal in P8 emulation mode.
-# Similar to p8 definition.
-# Insertion and deletion operations possible.
-#
-prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8,
-
-# p9-8-w: Prism-9 in P8 and 132 column modes
-# ------------------------------------------
-#
-# P9 terminal in P8 emulation mode and 132 column mode.
-#
-prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8-w,
-
-# p12: Prism-12 in ANSI mode
-# ---------------------------
-#
-# See p9 definition.
-#
-prism12|p12|P12|MDC Prism-12 in ANSI mode,
-	use=p9,
-
-# p12-w: Prism-12 in 132 column mode
-# ----------------------------------
-#
-# 'Wide' version of p12.
-#
-prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode,
-	use=p9-w,
-
-# p12-m: Prism-12 in MDC emulation mode
-# -------------------------------------
-#
-# P12 terminal in MDC emulation mode.
-# Similar to p8 definition.
-# Insertion and deletion operations possible.
-#
-prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode,
-	use=p9-8,
-
-# p12-m-w: Prism-12 in MDC emulation and 132 column modes
-# -------------------------------------------------------
-#
-# P12 terminal in MDC emulation mode and 132 column mode.
-#
-prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode,
-	use=p9-8-w,
-
-# p14: Prism-14 in ANSII mode
-# ---------------------------
-#
-# See p9 definition.
-#
-prism14|p14|P14|MDC Prism-14 in ANSII mode,
-	use=p9,
-
-# p14-w: Prism-14 in 132 column mode
-# ----------------------------------
-#
-# 'Wide' version of p14.
-#
-prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode,
-	use=p9-w,
-
-# p14-m: Prism-14 in MDC emulation mode
-# -------------------------------------
-#
-# P14 terminal in MDC emulation mode.
-# Similar to p8 definition.
-# Insertion and deletion operations possible.
-#
-prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode,
-	use=p9-8,
-
-# p14-m-w: Prism-14 in MDC emulation and 132 column modes
-# -------------------------------------------------------
-#
-# P14 terminal in MDC emulation mode and 132 column mode.
-#
-prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode,
-	use=p9-8-w,
-
-# End of McDonnell Information Systems Prism definitions
-
-# These things were popular in the Pick database community at one time
-# From: George Land <georgeland@aol.com> 24 Sep 1996
-p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition,
-	am, bw, hs, mir,
-	cols#80, lines#24, ma#1, wsl#78, xmc#1,
-	bel=^G, blink=^CB, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, dch1=\s^H, dim=^CA, dl1=^P,
-	ed=\EJ, el=\EK, home=^A, ind=^J, invis=^CH, kbs=^H, kcub1=^U,
-	kcud1=^J, kcuf1=^F, kcuu1=^Z, kdch1=\s^H, kdl1=^P, ked=\EJ,
-	kel=\EK, kf1=^A@\r, kf10=^AI\r, kf12=^AJ\r, kf13=^AK\r,
-	kf14=^AL\r, kf15=^AM\r, kf16=^AN\r, kf17=^AO\r, kf2=^AA\r,
-	kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, khome=^A, lf1=F1, lf10=F10, lf2=F2,
-	lf3=F3, lf4=F4, lf5=F5, lf6=F6, lf7=F7, lf8=F8, lf9=F9, nel=^J^M,
-	pad=\0, rev=^CD, rmso=^C\s, rmul=^C\s, sgr0=^C\s, smso=^CE,
-	smul=^C0,
-
-#### Microterm (act, mime)
-#
-# The mime1 entries refer to the Microterm Mime I or Mime II.
-# The default mime is assumed to be in enhanced act iv mode.
-#
-
-# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>.  Prevents
-# freakout with out-of-range args on Sytek multiplexors.  No <smso=^N> and
-# <rmso=^N> since  it gets confused and it's too dim anyway.  No <ich1>
-# since Sytek insists ^S means xoff.
-# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr)
-act4|microterm|microterm act iv,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\014$<12/>, cr=^M, cub1=^H, cud1=^K, cuf1=^X,
-	cup=\024%p1%{24}%+%c%p2%p2%?%{47}%>%t%{48}%+%;%{80}%+%c,
-	cuu1=^Z, dch1=\004$<.1*/>, dl1=\027$<2.3*/>,
-	ed=\037$<2.2*/>, el=\036$<.1*/>, home=^],
-	il1=\001<2.3*/>, ind=^J, kcub1=^H, kcud1=^K, kcuf1=^X,
-	kcuu1=^Z,
-# The padding on :sr: and :ta: for act5 and mime is a guess and not final.
-# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)...
-# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr)
-act5|microterm5|microterm act v,
-	kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, ri=\EH$<3>, uc=^H\EA,
-	use=act4,
-# Mimes using brightness for standout.  Half bright is really dim unless
-# you turn up the brightness so far that lines show up on the screen.
-mime-fb|full bright mime1,
-	is2=^S\E, rmso=^S, smso=^Y, use=mime,
-mime-hb|half bright mime1,
-	is2=^Y\E, rmso=^Y, smso=^S, use=mime,
-# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode
-# the more plausible ":do=^J:" -- esr)
-# uc was at one time disabled to get around a curses bug, be wary of it
-mime|mime1|mime2|mimei|mimeii|microterm mime1,
-	OTbs, am,
-	cols#80, it#8, lines#24, vt#9,
-	bel=^G, clear=^]^C, cr=^M, cub1=^H, cud1=^J, cuf1=^X,
-	cup=\024%p1%{24}%+%c%p2%p2%?%{32}%>%t%{48}%+%;%{80}%+%c,
-	cuu1=^Z, dl1=\027$<80>, ed=^_, el=^^, home=^], ht=\011$<2>,
-	il1=\001$<80>, ind=^J, is2=^S\E^Q, kcub1=^H, kcud1=^K,
-	kcuf1=^X, kcuu1=^Z, ri=\022$<3>, uc=^U,
-# These termcaps (for mime2a) put the terminal in low intensity mode
-# since high intensity mode is so obnoxious.
-mime2a-s|microterm mime2a (emulating an enhanced soroc iq120),
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EI, dch1=\ED,
-	dl1=\027$<20*>, ed=\EJ$<20*>, el=\EK, home=^^,
-	il1=\001$<20*>, ind=^J, ip=$<2>, is2=\E), kcub1=^H, kcud1=^J,
-	kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7,
-	smir=\EE, smso=\E\:, smul=\E6,
-# This is the preferred mode (but ^X can't be used as a kill character)
-mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52),
-	OTbs,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=^N,
-	dl1=\027$<20*>, ed=\EQ$<20*>, el=\EP, home=\EH, ht=^I,
-	il1=\001$<20*>, ind=^J, ip=$<2>, is2=^Y, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EA, rmir=^Z, rmso=\E9,
-	rmul=\E5, smir=^O, smso=\E8, smul=\E4,
-# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr)
-mime3a|mime1 emulating 3a,
-	am@,
-	kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a,
-mime3ax|mime-3ax|mime1 emulating enhanced 3a,
-	it#8,
-	dl1=\027$<80>, ed=^_, el=^X, ht=\011$<3>, il1=\001$<80>,
-	use=mime3a,
-# Wed Mar  9 18:53:21 1983
-# We run our terminals at 2400 baud, so there might be some timing problems at
-# higher speeds. The major improvements in this model are the terminal now
-# scrolls down and insert mode works without redrawing the rest of the line
-# to the right of the cursor. This is done with a bit of a kludge using the
-# exit graphics mode to get out of insert, but it does not appear to hurt
-# anything when using vi at least. If you have some users using act4s with
-# programs that use curses and graphics mode this could be a problem.
-mime314|mm314|mime 314,
-	am,
-	cols#80, lines#24,
-	clear=^L, cub1=^H, cuf1=^X, cup=\024%p1%c%p2%c, cuu1=^Z,
-	dch1=^D, dl1=^W, ed=^_, el=^^, home=^], ht=^I, il1=^A, kcub1=^H,
-	kcud1=^K, kcuf1=^X, kcuu1=^Z, rmir=^V, smir=^S,
-# Microterm mime 340 from University of Wisconsin
-mm340|mime340|mime 340,
-	cols#80, lines#24,
-	clear=\032$<12/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	dch1=\E#$<2.1*/>, dl1=\EV$<49.6/>, ed=\037$<2*/>,
-	el=\EL$<2.1/>, ht=^I, il1=\EU$<46/>, ind=^J, is2=\E\,,
-	kbs=^H, kcub1=^H, kcud1=^J, kcuu1=^K, nel=^M^J,
-# This came from University of Wisconsin marked "astro termcap for jooss".
-# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:";
-# also added <rmam>/<smam> based  on the init string -- esr)
-mt4520-rv|micro-term 4520 reverse video,
-	am, hs, msgr, xenl, xon,
-	cols#80, it#8, lines#24, wsl#80,
-	bel=^G, clear=\E[H\E[J, cnorm=\E[0V\E8, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h,
-	fsl=\E[?5l\E[?5h, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	is2=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J,
-	kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
-	ll=\E[24;1H, nel=\EE, rc=\E8, rf=/usr/local/share/tabset/vt100,
-	ri=\EM, rmam=\E[?7l, rmso=\E[0m, rmul=\E[24m,
-	rs1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J,
-	sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
-	tbc=\E[g, tsl=\E[25;1H,
-
-# Fri Aug  5 08:11:57 1983
-# This entry works for the ergo 4000 with the following setups:
-# ansi,wraparound,newline disabled, xon/xoff disabled in both
-# setup a & c.
-#
-# WARNING!!! There are multiple versions of ERGO 4000 microcode
-# Be advised that very early versions DO NOT WORK RIGHT !!
-# Microterm does have a ROM exchange program- use it or lose big
-# (ergo400: added <rmam>/<smam> based on the init string -- esr)
-ergo4000|microterm ergo 4000,
-	da, db, msgr,
-	cols#80, lines#66,
-	bel=^G, clear=\E[H\E[2J$<80>, cr=^M, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	dch1=\E[1P$<80>, dl1=\E[1M$<5*>, ed=\E[0J$<15>,
-	el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>, ind=\ED$<20*>,
-	is2=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h$<300>,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=pf1, lf2=pf2, lf3=pf3,
-	lf4=pf4, ri=\EM$<20*>, rmam=\E[?7l, rmir=\E[4l,
-	rmkx=\E=$<4>, rmso=\E[m$<20>, sgr0=\E[m$<20>,
-	smam=\E[?7m, smir=\E[4h$<6>, smkx=\E=$<4>,
-	smso=\E[7m$<20>,
-
-#### NCR
-#
-# NCR's terminal group was merged with AT&T's when AT&T bought the company.
-# For what happened to that group, see the ADDS section.
-#
-# There is an NCR4103 terminal that's just a re-badged Wyse-50.
-#
-
-# The following vendor-supplied termcaps were captured from the Boundless
-# Technologies site, 8 March 1998.  I removed all-upper-case names that were
-# identical, except for case, to lower-case ones.  I also uncommented the acsc
-# capabilities.X
-#
-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
-	colors#8, pairs#64,
-	op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	use=ncr260vt300an,
-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
-	colors#8, pairs#64,
-	op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	use=ncr260vt300wan,
-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard,
-	colors#8, pairs#64,
-	op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	use=ncr260vt300pp,
-# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a
-# DEC vt200/300 with color capabilities added.
-ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode,
-	colors#8, pairs#64,
-	op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-	use=ncr260vt300wpp,
-# This definition for ViewPoint supports several attributes.  This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies.  The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-ncr260vppp|NCR 2900_260 viewpoint,
-	am, bw, hs, km, mc5i, mir, msgr, xon,
-	cols#80, lines#24, nlab#32, xmc#1,
-	acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
-	cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5,
-	cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>,
-	dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c, ed=\Ek$<2>,
-	el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I, hts=\E1,
-	il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
-	is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
-	kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
-	kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F,
-	kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B\:\r,
-	kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r,
-	kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r,
-	kf20=^B$\r, kf21=\002%^M, kf22=^B&\r, kf23=^B'\r,
-	kf24=^B(\r, kf25=^B)\r, kf26=^B*\r, kf27=^B+\r,
-	kf28=^B\,\r, kf29=^B-\r, kf3=^B3\r, kf30=^B.\r, kf31=^B/\r,
-	kf32=^B0\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r,
-	kf8=^B8\r, kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ,
-	kprt=\EP, ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R,
-	mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>,
-	nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003,
-	rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
-	rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
-	sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq,
-	smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF,
-ncr260vpwpp|NCR 2900_260 viewpoint wide mode,
-	cols#132,
-	cup=\Ea%i%p1%dR%p2%dC$<30>,
-	is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
-	rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
-	use=ncr260vppp,
-ncr260vt100an|NCR 2900_260 vt100 with ansi kybd,
-	am, hs, mir, msgr, xenl, xon,
-	cols#80, lines#24, nlab#32,
-	acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
-	blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>,
-	cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
-	cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
-	cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
-	dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
-	ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>,
-	fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I,
-	hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>,
-	il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>,
-	invis=\E[8m,
-	is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
-	knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, nel=\EE$<5>,
-	rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m,
-	rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
-	sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+keypad,
-ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd,
-	cols#132,
-	cup=\E[%i%p1%d;%p2%dH$<30>,
-	is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	use=ncr260vt100an,
-ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd,
-	is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
-	kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~,
-	lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>,
-	rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	smkx=\E=, use=ncr260vt100an,
-ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+  kybd,
-	cols#132,
-	cup=\E[%i%p1%d;%p2%dH$<30>,
-	is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	use=ncr260vt100pp,
-ncr260vt200an|NCR 2900_260 vt200 with ansi kybd,
-	am, hs, mir, msgr, xenl, xon,
-	cols#80, lines#24, nlab#32,
-	acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
-	blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
-	csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
-	cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
-	cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
-	cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
-	dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
-	ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
-	fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
-	ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
-	ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
-	is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf2=\EOQ, kf20=\E[34~, kf21=\E[31~, kf22=\E[32~,
-	kf23=\E[33~, kf24=\E[34~, kf25=\E[35~, kf26=\E[1~,
-	kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR, kf30=\E[5~,
-	kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~,
-	kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
-	kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
-	mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
-	ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
-	rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
-	sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
-	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-	use=vt220+keypad,
-ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd,
-	cols#132,
-	cup=\E[%i%p1%d;%p2%dH$<30>,
-	is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
-	rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
-	use=ncr260vt200an,
-ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd,
-	ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
-	kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
-	use=ncr260vt200an,
-ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+  kybd,
-	cols#132,
-	cup=\E[%i%p1%d;%p2%dH$<30>,
-	is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	use=ncr260vt200pp,
-ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
-	am, hs, mir, msgr, xenl, xon,
-	cols#80, lines#24, nlab#32,
-	acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
-	blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
-	csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
-	cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
-	cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
-	cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
-	dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
-	ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
-	fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
-	ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
-	ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
-	is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
-	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-	kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, kf23=\E[33~,
-	kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, kf27=\E[2~,
-	kf28=\E[3~, kf29=\E[4~, kf30=\E[5~, kf31=\E[6~, kf32=\E[7~,
-	kf33=\E[8~, kf34=\E[9~, kf35=\E[10~, kf5=\E[M, kf6=\E[17~,
-	kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
-	khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	krdo=\E[29~, kslt=\E[4~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
-	nel=\EE, rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=\017$<20>,
-	rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
-	rmul=\E[24m,
-	rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
-	sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
-	smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-	use=vt220+keypad,
-ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd,
-	cols#132,
-	cup=\E[%i%p1%d;%p2%dH$<30>,
-	is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
-	rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
-	use=ncr260vt300an,
-ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd,
-	ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
-	kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
-	use=ncr260vt300an,
-NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+  kybd,
-	cols#132,
-	cup=\E[%i%p1%d;%p2%dH$<30>,
-	is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
-	use=ncr260vt300pp,
-# This terminfo file contains color capabilities for the Wyse325 emulation of
-# the NCR 2900/260C color terminal.  Because of the structure of the command
-# (escape sequence) used to set color attributes, one of the fore/background
-# colors must be preset to a given value. I have set the background color to
-# black.  The user can change this setup by altering the last section of the
-# 'setf' definition.  The escape sequence to set color attributes is
-#		ESC d y <foreground_color> <background_color> 1
-# In addition, the background color can be changed through the desk accessories.
-# The capablitiy 'op' sets colors to green on black (default combination).
-#
-# NOTE:  The NCR Unix System Administrator's Shell will not function properly
-# 	    if the 'pairs' capability is defined. Un-Comment the 'pairs'
-#	    capability and recompile if you wish to have it included.
-#
-ncr260wy325pp|NCR 2900_260 wyse 325,
-	am, bw, hs, km, mc5i, mir, msgr, xon,
-	colors#16, cols#80, lines#24, ncv#33, nlab#32,
-	acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
-	cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=^M,
-	cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
-	cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
-	ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<5>, ht=^I,
-	hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
-	is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
-	kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET,
-	kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r,
-	kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r,
-	kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r,
-	kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r,
-	kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, kf30=^Am\r, kf31=^An\r,
-	kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ,
-	kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
-	mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
-	nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
-	rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
-	rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	setb=\s,
-	setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{64}%e%p1%{8}%=%t%{57}%e%p1%{9}%=%t%{58}%e%p1%{10}%=%t%{59}%e%p1%{11}%=%t%{60}%e%p1%{12}%=%t%{61}%e%p1%{13}%=%t%{62}%e%p1%{14}%=%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>,
-	sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/,
-	smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
-	tsl=\EF,
-ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode,
-	cols#132,
-	cup=\Ea%i%p1%dR%p2%dC$<30>,
-	is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	use=ncr260wy325pp,
-# This definition for Wyse 350 supports several attributes.  This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies.  The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-# In addition, color capabilities have been added to this file.  The drawback,
-# however, is that the background color has to be black.  The foreground colors
-# are numbered 0 through 15.
-#
-# NOTE:  The NCR Unix System Administrator's Shell does not function properly
-# 	    with the 'pairs' capability defined as below.  If you wish to
-#	    have it included, Un-comment it and recompile (using 'tic').
-#
-ncr260wy350pp|NCR 2900_260 wyse 350,
-	am, bw, hs, km, mc5i, mir, msgr, xon,
-	colors#16, cols#80, lines#24, ncv#33, nlab#32, pairs#16, xmc#1,
-	acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
-	cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
-	cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>,
-	cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
-	ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<10>, ht=^I,
-	hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
-	is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
-	kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
-	kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
-	kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
-	kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
-	kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
-	kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
-	kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
-	kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
-	khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
-	mc0=\EP$<10>, mc4=^T, mc5=^R,
-	mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>,
-	nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
-	rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
-	rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	setb=\s,
-	setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{102}%e%p1%{8}%=%t%{97}%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>,
-	sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/,
-	smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
-	tsl=\EF,
-ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode,
-	cols#132,
-	cup=\Ea%i%p1%dR%p2%dC$<30>,
-	is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
-	rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
-	use=ncr260wy350pp,
-# This definition for Wyse 50+ supports several attributes.  This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies.  The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-# (ncr260wy50+pp: originally contained commented-out
-# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
-ncr260wy50+pp|NCR 2900_260 wyse 50+,
-	am, bw, hs, km, mc5i, mir, msgr, xon,
-	cols#80, lines#24, nlab#32, xmc#1,
-	acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
-	cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
-	cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>,
-	cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
-	ed=\EY$<5>, el=\ET$<5>, fsl=^M, home=\036$<10>,
-	ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>,
-	invis=\EG1,
-	is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
-	kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
-	kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
-	kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
-	kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
-	kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
-	kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
-	kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
-	kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
-	khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
-	mc0=\EP$<10>, mc4=^T, mc5=^R,
-	mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
-	nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
-	rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
-	rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq,
-	smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF,
-ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode,
-	cols#132,
-	cup=\Ea%i%p1%dR%p2%dC$<30>,
-	is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
-	rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
-	use=ncr260wy50+pp,
-ncr260wy60pp|NCR 2900_260 wyse 60,
-	am, bw, hs, km, mc5i, mir, msgr, xon,
-	cols#80, lines#24, nlab#32,
-	acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
-	cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1,
-	cr=^M, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
-	cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
-	ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<25>,
-	ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>,
-	invis=\EG1,
-	is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
-	kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK,
-	kcbt=\EI$<15>, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-	kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
-	kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
-	kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r,
-	kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r,
-	kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r,
-	kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r,
-	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
-	kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
-	mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>,
-	nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
-	rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
-	rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/,
-	smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>,
-	tsl=\EF,
-ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode,
-	cols#132,
-	cup=\Ea%i%p1%dR%p2%dC$<30>,
-	is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
-	use=ncr260wy60pp,
-ncr160vppp|NCR 2900_160 viewpoint,
-	use=ncr260vppp,
-ncr160vpwpp|NCR 2900_160 viewpoint wide mode,
-	use=ncr260vpwpp,
-ncr160vt100an|NCR 2900_160 vt100 with ansi kybd,
-	use=ncr260vt100an,
-ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd,
-	use=ncr260vt100pp,
-ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd,
-	use=ncr260vt100wan,
-ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+  kybd,
-	use=ncr260vt100wpp,
-ncr160vt200an|NCR 2900_160 vt200 with ansi kybd,
-	use=ncr260vt200an,
-ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd,
-	use=ncr260vt200pp,
-ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd,
-	use=ncr260vt200wan,
-ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+  kybd,
-	use=ncr260vt200wpp,
-ncr160vt300an|NCR 2900_160 vt300 with ansi kybd,
-	use=ncr260vt300an,
-ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd,
-	use=ncr260vt300pp,
-ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd,
-	use=ncr260vt300wan,
-ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+  kybd,
-	use=ncr260vt300wpp,
-ncr160wy50+pp|NCR 2900_160 wyse 50+,
-	use=ncr260wy50+pp,
-ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode,
-	use=ncr260wy50+wpp,
-ncr160wy60pp|NCR 2900_160 wyse 60,
-	use=ncr260wy60pp,
-ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode,
-	use=ncr260wy60wpp,
-ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal,
-	am, hs, mc5i, mir, msgr, xon,
-	cols#80, it#8, lines#24, nlab#32,
-	acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~,
-	bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>,
-	clear=\E[2J\E[1;1H$<300>, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>,
-	cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>,
-	cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>,
-	cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>,
-	cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>,
-	dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>,
-	ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>,
-	enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>,
-	ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>,
-	ind=\ED,
-	is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>,
-	kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=^M, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE,
-	rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>,
-	rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>,
-	rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
-	sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>,
-	sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>,
-	smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>,
-	tsl=\E[>+1$<70>,
-ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal,
-	cols#132,
-	is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>,
-	rs2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
-	use=ncrvt100an,
-#
-# Vendor-supplied NCR termcaps end here
-
-# NCR7900 DIP switches:
-#
-# Switch A:
-# 1-4 - Baud Rate
-# 5   - Parity (Odd/Even)
-# 6   - Don't Send or Do Send Spaces
-# 7   - Parity Enable
-# 8   - Stop Bits (One/Two)
-#
-# Switch B:
-# 1   - Upper/Lower Shift
-# 2   - Typewriter Shift
-# 3   - Half Duplex / Full Duplex
-# 4   - Light/Dark Background
-# 5-6 - Carriage Return Without / With Line Feed
-# 7   - Extended Mode
-# 8   - Suppress Keyboard Display
-#
-# Switch C:
-# 1   - End of line entry disabled/enabled
-# 2   - Conversational mode / (Local?) Mode
-# 3   - Control characters displayed / not displayed
-# 4   - (2-wire?) / 4-wire communications
-# 5   - RTS on and off for each character
-# 6   - (50Hz?) / 60 Hz
-# 7   - Exit after level zero diagnostics
-# 8   - RS-232 interface
-#
-# Switch D:
-# 1   - Reverse Channel (yes / no)
-# 2   - Manual answer (no / yes)
-# 3-4 - Cursor appearance
-# 5   - Communication Rate
-# 6   - Enable / Disable EXT turnoff
-# 7   - Enable / Disable CR turnoff
-# 8   - Enable / Disable backspace
-#
-# Since each attribute parameter is 0 or 1, we shift each attribute (standout,
-# reverse, blink, dim, and underline) the appropriate number of bits (by
-# multiplying the 0 or 1 by a correct factor to shift) so the bias character,
-# '@' is (effectively) "or"ed with each attribute to generate the proper third
-# character in the <ESC>0 sequence.  The <sgr> string implements the following
-# equation:
-#
-# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17))    =>
-# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17))
-#
-#	Where:  P1 <==> Standout attribute parameter
-#		P2 <==> Underline attribute parameter
-#		P3 <==> Reverse attribute parameter
-#		P4 <==> Blink attribute parameter
-#		P5 <==> Dim attribute parameter
-# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO.
-ncr7900i|ncr7900|ncr 7900 model 1,
-	am, bw, ul,
-	cols#80, lines#24, xmc#1,
-	bel=^G, blink=\E0B, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
-	cup=\E1%p2%c%p1%c, cuu1=^Z, dim=\E0A, ed=\Ek, el=\EK, ind=^J,
-	is2=\E0@\010\E3\E4\E7, kcub1=^U, kcud1=^J, kcuf1=^F,
-	kcuu1=^Z, khome=^A, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=\E0@,
-	rmul=\E0@,
-	sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c,
-	sgr0=\E0@, smso=\E0Q, smul=\E0`,
-ncr7900iv|ncr 7900 model 4,
-	am, bw, eslok, hs,
-	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
-	cup=\013%p1%{64}%+%c\E\005%p2%02d, dl1=\E^O, dsl=\Ey1,
-	fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=^J, kbs=^H,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET,
-	kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
-	khome=\EH, lf6=blue, lf7=red, lf8=white, nel=^M^J,
-	tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo,
-# Warning: This terminal will lock out the keyboard when it receives a CTRL-D.
-#	   The user can enter a CTRL-B to get out of this locked state.
-# In <hpa>, we want to output the character given by the formula:
-#		((col / 10) * 16) + (col % 10)		where "col" is "p1"
-ncr7901|ncr 7901 model,
-	am, bw, ul,
-	cols#80, lines#24,
-	bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=^M,
-	cub1=^H, cud1=^J, cuf1=^F,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dim=\E0A,
-	ed=\Ek, el=\EK,
-	hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c, ind=^J,
-	is2=\E4^O, kclr=^L, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
-	khome=^H, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=^O, rmul=^O,
-	sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016,
-	sgr0=^O, smso=\E0Q\016, smul=\E0`\016,
-	vpa=\013%p1%{64}%+%c,
-
-# Newbury Data Recording Limited (Newbury Data)
-#
-# Have been manufacturing and reselling  various peripherals for a long time
-# They don't make terminals anymore, but are still in business (in 2007).
-# Their e-mail address is at ndsales@newburydata.co.uk
-# and their post address is:
-#
-# Newbury Data Recording Ltd,
-# Premier Park, Road One,
-# Winsford, Cheshire, CW7 3PT
-#
-# Their technical support is still good, they sent me for free a printed copy
-# of the 9500 user manual and I got it just 1 week after I first contacted them
-# (in 2005)!
-
-# NDR 9500
-# Manufactured in the early/mid eighties, behaves almost the same as a
-# Televideo 950.  Take a 950, change its cabinet for a more 80s-ish one (but
-# keep the same keyboard layout), add an optional 25-line mode, replace the DIP
-# switches with a menu and remove the "lock line" feature (ESC !  1 and ESC ! 
-# 2), here is the NDR 9500.  Even the line-lock, albeit disabled, is
-# recognized:  if you type in "ESC !", the next (third) character is not
-# echoed, showing that the terminal was actually waiting for a parameter!
-ndr9500|nd9500|Newbury Data 9500,
-	am, bw, hs, mc5i, mir, msgr, ul, xon,
-	cols#80, lines#24, wsl#79,
-	acsc=qKnImAjDwNuLtMvOlBkCxJ, bel=^G, cbt=\EI, civis=\E.0,
-	clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
-	flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
-	ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO,
-	kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z,
-	kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
-	ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
-	kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r,
-	kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r,
-	kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
-	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
-	kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_,
-	pfloc=\E|%{48}%p1%+%c2%p2\031,
-	pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
-	rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
-	sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
-	sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
-	tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
-
-ndr9500-nl|NDR 9500 with no status line,
-	hs@,
-	wsl@,
-	dsl@, fsl@, tsl@, use=ndr9500,
-
-ndr9500-25|NDR 9500 with 25th line enabled,
-	lines#25, use=ndr9500,
-
-ndr9500-25-nl|NDR 9500 with 25 lines and no status line,
-	lines#25, use=ndr9500-nl,
-
-ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink),
-	msgr@,
-	xmc#1,
-	blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
-	sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
-	sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500,
-
-ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
-	lines#25, use=ndr9500-mc,
-
-ndr9500-mc-nl|NDR 9500 with magic cookies and no status line,
-	hs@,
-	wsl@,
-	dsl@, fsl@, tsl@, use=ndr9500-mc,
-
-ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line,
-	lines#25, use=ndr9500-mc-nl,
-
-#### Perkin-Elmer (Owl)
-#
-# These are official terminfo entries from within Perkin-Elmer.
-#
-
-bantam|pe550|pe6100|perkin elmer 550,
-	OTbs,
-	cols#80, lines#24,
-	bel=^G, clear=\EK$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
-	el=\EI$<20>, home=\EH, ind=^J, ll=\EH\EA,
-fox|pe1100|perkin elmer 1100,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
-	cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
-	ed=\EJ$<5.5*>, el=\EI, flash=\020\002$<200/>\020\003,
-	home=\EH, hts=\E1, ind=^J, ll=\EH\EA, tbc=\E3,
-owl|pe1200|perkin elmer 1200,
-	OTbs, am, in,
-	cols#80, lines#24,
-	bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
-	cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
-	dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
-	el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
-	hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
-	kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
-	kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
-	rmso=\E!\0, sgr0=\E!\0, smso=\E!^H, tbc=\E3,
-pe1251|pe6300|pe6312|perkin elmer 1251,
-	am,
-	cols#80, it#8, lines#24, pb#300, vt#8, xmc#1,
-	bel=^G, clear=\EK$<332>, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
-	cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
-	ed=\EJ$<20*>, el=\EI$<10*>, home=\EH, hts=\E1, ind=^J,
-	kf0=\ERA, kf1=\ERB, kf10=\ERK, kf2=\ERC, kf3=\ERD, kf4=\ERE,
-	kf5=\ERF, kf6=\ERG, kf7=\ERH, kf8=\ERI, kf9=\ERJ, tbc=\E3,
-# (pe7000m: this had
-# 	rmul=\E!\0, smul=\E!\040,
-# which is probably wrong, it collides with kf0
-pe7000m|perkin elmer 7000 series monochrome monitor,
-	am,
-	cols#80, lines#24,
-	bel=^G, cbt=\E!Y, clear=\EK, cr=^M, cub1=\ED, cud1=\EB,
-	cuf1=\EC, cup=\ES%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
-	ed=\EJ, el=\EI, home=\EH, ind=^J,
-	is1=\E!\0\EW  7o\Egf\ES7\s, kbs=^H, kcub1=\E!V,
-	kcud1=\E!U, kcuf1=\E!W, kcuu1=\E!T, kf0=\E!\0, kf1=\E!^A,
-	kf10=\E!^J, kf2=\E!^B, kf3=\E!^C, kf4=\E!^D, kf5=\E!^E,
-	kf6=\E!^F, kf7=\E!^G, kf8=\E!^H, kf9=\E!^I, khome=\E!S,
-	ll=\ES7\s, ri=\ER,
-pe7000c|perkin elmer 7000 series colour monitor,
-	is1=\E!\0\EW  7o\Egf\Eb0\Ec7\ES7\s, rmso=\Eb0,
-	rmul=\E!\0, smso=\Eb2, smul=\E!\s, use=pe7000m,
-
-#### Sperry Univac
-#
-# Sperry Univac has merged with Burroughs to form Unisys.
-#
-
-# This entry is for the Sperry UTS30 terminal running the TTY
-# utility under control of CP/M Plus 1R1. The functionality
-# provided is comparable to the DEC vt100.
-# (uts30: I added <rmam>/<smam> based on the init string -- esr)
-uts30|sperry uts30 with cp/m@1R1,
-	am, bw, hs,
-	cols#80, lines#24, wsl#40,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L,
-	cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\EB,
-	cuf=\E[%p1%dC, cuf1=\EC, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EM,
-	dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H,
-	ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN,
-	ind=^J, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\E[H,
-	rc=\EX, rev=\E[7m, rf=/usr/local/share/tabset/vt100, ri=\EI,
-	rin=\E[%p1%dA, rmacs=\Ed, rmam=\E[?7l, rmso=\E[m,
-	rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	sc=\EW, sgr0=\E[m, smacs=\EF, smam=\E[?7m, smso=\E[7m,
-	smul=\E[4m, tsl=\E], uc=\EPB,
-
-#### Tandem
-#
-# Tandem builds these things for use with its line of fault-tolerant
-# transaction-processing computers.  They aren't generally available
-# on the merchant market, and so are fairly uncommon.
-#
-
-tandem6510|adm3a repackaged by Tandem,
-	use=adm3a,
-
-# A funny series of terminal that TANDEM uses.  The actual model numbers
-# have a fourth digit after 653 that designates minor variants.  These are
-# natively block-mode and rather ugly, but they have a character mode which
-# this doubtless(?) exploits.  There is a 6520 that is slightly dumber.
-# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also,
-# removed <if=/usr/local/share/tabset/tandem653>, no such file -- esr)
-tandem653|t653x|Tandem 653x multipage terminal,
-	OTbs, am, da, db, hs,
-	cols#80, lines#24, wsl#64, xmc#1,
-	clear=\EI, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\023%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dsl=\Eo\r,
-	ed=\EJ, el=\EK, fsl=^M, home=\EH, ind=\ES, ri=\ET, rmso=\E6\s,
-	rmul=\E6\s, sgr0=\E6\s, smso=\E6$, smul=\E60, tsl=\Eo,
-
-#### Tandy/Radio Shack
-#
-# Tandy has a line of VDTs distinct from its microcomputers.
-#
-
-dmterm|deskmate terminal,
-	am, bw,
-	cols#80, lines#24,
-	bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=^M, cub1=^H,
-	cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, dch1=\ES, dl1=\ER, ed=\EJ, el=\EK, home=\EH, ht=^I,
-	ich1=\EQ, il1=\EP, ind=\EX, invis@, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, kf0=\E1, kf1=\E2, kf2=\E3, kf3=\E4,
-	kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0,
-	khome=\EH, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6,
-	lf6=f7, lf7=f8, lf8=f9, lf9=f10, ll=\EE, rmul@, smul@,
-	use=adm+sgr,
-dt100|dt-100|Tandy DT-100 terminal,
-	xon,
-	cols#80, lines#24, xmc#1,
-	acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
-	il1=\E[L, ind=^J, is2=\E[?3l\E)0\E(B, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[?3i,
-	kf10=\E[?5i, kf2=\E[2i, kf3=\E[@, kf4=\E[M, kf5=\E[17~,
-	kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, khome=\E[H,
-	knp=\E[29~, kpp=\E[28~, lf1=f1, lf2=f2, lf3=f3, lf4=f4, lf5=f5,
-	lf6=f6, lf7=f7, lf8=f8, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
-dt100w|dt-100w|Tandy DT-100 terminal (wide mode),
-	cols#132, use=dt100,
-dt110|Tandy DT-110 emulating ansi,
-	xon,
-	cols#80, lines#24,
-	acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
-	clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[0B, cuf1=\E[C,
-	cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[0A, dch1=\E[0P,
-	dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H,
-	ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K,
-	kf1=\E[1~, kf10=\E[10~, kf2=\E[2~, kf3=\E[3~, kf4=\E[4~,
-	kf5=\E[5~, kf6=\E[6~, kf7=\E[7~, kf8=\E[8~, kf9=\E[9~,
-	khome=\E[G, kich1=\E[@, knp=\E[26~, kpp=\E[25~, lf0=f1,
-	lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf8=f9,
-	lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
-	smacs=^N, smso=\E[7m, smul=\E[4m,
-pt210|TRS-80 PT-210 printing terminal,
-	hc, os,
-	cols#80,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
-
-#### Tektronix (tek)
-#
-# Tektronix tubes are graphics terminals.  Most of them use modified
-# oscilloscope technology incorporating a long-persistence green phosphor,
-# and support vector graphics on a main screen with an attached "dialogue
-# area" for interactive text.
-#
-
-tek|tek4012|tektronix 4012,
-	OTbs, os,
-	cols#75, lines#35,
-	bel=^G, clear=\E\014$<1000>, cr=^M, cub1=^H, cud1=^J,
-	ff=\014$<1000>, is2=\E^O,
-# (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4013|tektronix 4013,
-	acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012,
-tek4014|tektronix 4014,
-	cols#81, lines#38,
-	is2=\E\017\E9, use=tek4012,
-# (tek4015: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4015|tektronix 4015,
-	acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014,
-tek4014-sm|tektronix 4014 in small font,
-	cols#121, lines#58,
-	is2=\E\017\E\:, use=tek4014,
-# (tek4015-sm: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4015-sm|tektronix 4015 in small font,
-	acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm,
-# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay>
-#
-# You need to have "stty nl2" in effect.  Some versions of tset(1) know
-# how to set it for you.
-#
-# It's got the Magic Cookie problem around stand-out mode.  If you can't
-# live with Magic Cookie, remove the :so: and :se: fields and do without
-# reverse video.  If you like reverse video stand-out mode but don't want
-# it to flash, change the letter 'H' to 'P' in the :so: field.
-tek4023|tektronix 4023,
-	OTbs, am,
-	OTdN#4, cols#80, lines#24, vt#4, xmc#1,
-	OTnl=^J, bel=^G, clear=\E\014$<4/>, cr=^M, cub1=^H, cud1=^J,
-	cuf1=^I, cup=\034%p2%{32}%+%c%p1%{32}%+%c, kbs=^H,
-	rmso=^_@, smso=^_P,
-# It is recommended that you run the 4025 at 4800 baud or less;
-# various bugs in the terminal appear at 9600.  It wedges at the
-# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed
-# on keyboard don't work.  You have to hit BREAK twice to get
-# one break at any speed - this is a documented feature.
-# Can't use cursor motion because it's memory relative, and
-# because it only works in the workspace, not the monitor.
-# Same for home. Likewise, standout only works in the workspace.
-#
-# <el> was commented out since vi and rogue seem to work better
-# simulating it with lots of spaces!
-#
-# <il1> and <il> had 145ms of padding, but that slowed down vi's ^U
-# and didn't seem necessary.
-#
-tek4024|tek4025|tek4027|tektronix 4024/4025/4027,
-	OTbs, am, da, db,
-	cols#80, it#8, lines#34, lm#0,
-	bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=^M,
-	cub=\037lef %p1%d\r, cub1=^H, cud=\037dow %p1%d\r,
-	cud1=^F^J, cuf=\037rig %p1%d\r, cuf1=\037rig\r,
-	cuu=\037up %p1%d\r, cuu1=^K, dch1=\037dch\r,
-	dl=\037dli %p1%d\r\006, dl1=\037dli\r\006,
-	ed=\037dli 50\r, ht=^I, ich1=\037ich\r \010,
-	il=\037up\r\037ili %p1%d\r, il1=\037up\r\037ili\r,
-	ind=^F^J,
-	is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
-	rmkx=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r,
-	smkx=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r,
-tek4025-17|tek 4025 17 line window,
-	lines#17, use=tek4025,
-tek4025-17-ws|tek 4025 17 line window in workspace,
-	is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r,
-	rmcup=\037mon h\r, rmso=\037att s\r, smcup=\037wor h\r,
-	smso=\037att e\r, use=tek4025-17,
-tek4025-ex|tek4027-ex|tek 4025/4027 w/!,
-	is2=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r,
-	rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
-# Tektronix 4025a
-# From: Doug Gwyn <gwyn@brl-smoke.ARPA>
-# The following status modes are assumed for normal operation (replace the
-# initial "!" by whatever the current command character is):
-#	!COM 29			# NOTE: changes command character to GS (^])
-#	^]DUP
-#	^]ECH R
-#	^]EOL
-#	^]RSS T
-#	^]SNO N
-#	^]STO 9 17 25 33 41 49 57 65 73
-# Other modes may be set according to communication requirements.
-# If the command character is inadvertently changed, termcap can't restore it.
-# Insert-character cannot be made to work on both top and bottom rows.
-# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas.
-# There also seems to be a problem with vertical motion, perhaps involving
-# delete/insert-line, following a typed carriage return.  This terminal sucks.
-# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't
-# work any more. -- esr)
-tek4025a|Tektronix 4025A,
-	OTbs, OTpt, am, bw, da, db, xon,
-	cols#80, it#8, lines#34,
-	bel=^G, cbt=\035bac;, clear=\035era;\n\035rup;, cmdch=^],
-	cr=^M, cub=\035lef %p1%d;, cub1=^H, cud=\035dow %p1%d;,
-	cud1=^J, cuf=\035rig %p1%d;, cuf1=\035rig;,
-	cuu=\035up %p1%d;, cuu1=^K, dch=\035dch %p1%d;,
-	dch1=\035dch;, dl=\035dli %p1%d;, dl1=\035dli;,
-	el=\035dch 80;, hpa=\r\035rig %p1%d;, ht=^I,
-	il1=\013\035ili;, ind=^J, indn=\035dow %p1%d;,
-	rs2=!com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;,
-	tbc=\035sto;,
-# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981
-# Here's the command file that I use to get rogue to work on the 4025.
-# It should work with any program using the old curses (e.g. it better
-# not try to scroll, or cursor addressing won't work.  Also, you can't
-# see the cursor.)
-# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh)
-tek4025-cr|tek 4025 for curses and rogue,
-	OTbs, am,
-	cols#80, it#8, lines#33,
-	clear=\037era;, cub1=^H, cud1=^F^J, cuf1=\037rig;,
-	cup=\037jum%i%p1%d\,%p2%d;, cuu1=^K, ht=^I, ind=^F^J,
-	is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
-	rmcup=\037wor 0, smcup=\037wor 33h,
-# next two lines commented out since curses only allows 128 chars, sigh.
-#	:ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\
-#	:te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0:
-tek4025ex|4025ex|4027ex|tek 4025 w/!,
-	is2=\037com 33\r\n!sto 9\,17\,25\,33\,41\,49\,57\,65\,73\r,
-	rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
-tek4105|tektronix 4105,
-	OTbs, am, mir, msgr, ul, xenl, xt,
-	cols#79, it#8, lines#29,
-	acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z,
-	clear=\E[2J\E[H, cr=^M, cud1=\E[1B, cuf1=\E[1C,
-	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P,
-	dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m,
-	is2=\E%!1\E[?6141\E[m, kbs=^H, kcub1=\E[1D, kcud1=\E[1B,
-	kcuf1=\E[1C, kcuu1=\E[1A, rev=\E[=1;<3m, ri=\E[T,
-	rmacs=\E[m, rmcup=, rmir=\E[4l, rmso=\E[=0;<1m,
-	rmul=\E[=0;<1m, sgr0=\E[=0;<1m, smacs=\E[1m,
-	smcup=\E%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
-	smul=\E[=5;<2m, tbc=\E[1g,
-
-# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr)
-tek4105-30|4015 emulating 30 line vt100,
-	am, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#30, vt#3,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-	clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C$<2>,
-	cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
-	cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
-	enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
-	rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
-	rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
-	sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
-	smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-	use=vt100+fnkeys,
-
-# Tektronix 4105 from BRL
-# The following setup modes are assumed for normal operation:
-#	CODE ansi		CRLF no			DABUFFER 141
-#	DAENABLE yes		DALINES 30		DAMODE replace
-#	DAVISIBILITY yes	ECHO no			EDITMARGINS 1 30
-#	FLAGGING input		INSERTREPLACE replace	LFCR no
-#	ORIGINMODE relative	PROMPTMODE no		SELECTCHARSET G0 B
-#	SELECTCHARSET G1 0	TABS -2
-# Other setup modes may be set for operator convenience or communication
-# requirements; I recommend
-#	ACURSOR 1 0		AUTOREPEAT yes		AUTOWRAP yes
-#	BYPASSCANCEL <LF>	CURSORKEYMODE no	DAINDEX 1 0 0
-#	EOFSTRING ''		EOLSTRING <CR>		EOMCHARS <CR> <NU>
-#	GAMODE overstrike	GCURSOR 0 100 0		GSPEED 10 1
-#	IGNOREDEL no		KEYEXCHAR <DL>		NVDEFINE -53 "<NU>"
-#	PROMPTSTRING ''		QUEUESIZE 2460		WINDOW 0 0 4095 3132
-#	XMTDELAY 0
-# and factory color maps.  After setting these modes, save them with NVSAVE. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# "IC" cannot be used in combination with "im" & "ei".
-# "tek4105a" is just a guess:
-tek4105a|Tektronix 4105,
-	OTbs, OTpt, msgr, xon,
-	OTkn#8, cols#80, it#8, lines#30, vt#3,
-	acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
-	civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
-	cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
-	kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
-	lf5=F6, lf6=F8, ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
-	rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
-	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs2=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
-	sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-#
-# Tektronix 4106/4107/4109 from BRL
-# The following setup modes are assumed for normal operation:
-#	CODE ansi		COLUMNMODE 80		CRLF no
-#	DABUFFER 141		DAENABLE yes		DALINES 32
-#	DAMODE replace		DAVISIBILITY yes	ECHO no
-#	EDITMARGINS 1 32	FLAGGING input		INSERTREPLACE replace
-#	LFCR no			LOCKKEYBOARD no		ORIGINMODE relative
-#	PROMPTMODE no		SELECTCHARSET G0 B	SELECTCHARSET G1 0
-#	TABS -2
-# Other setup modes may be set for operator convenience or communication
-# requirements; I recommend
-#	ACURSOR 1 0		AUTOREPEAT yes		AUTOWRAP yes
-#	BYPASSCANCEL <LF>	CURSORKEYMODE no	DAINDEX 1 0 0
-#	EOFSTRING ''		EOLSTRING <CR>		EOMCHARS <CR> <NU>
-#	GAMODE overstrike	GCURSOR 0 100 0		GSPEED 9 3
-#	IGNOREDEL no		KEYEXCHAR <DL>		NVDEFINE -53 "<NU>"
-#	PROMPTSTRING ''		QUEUESIZE 2620		WINDOW 0 0 4095 3132
-#	XMTDELAY 0
-# and factory color maps.  After setting these modes, save them with NVSAVE.  No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# "IC" cannot be used in combination with "im" & "ei".
-tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109,
-	msgr, xon,
-	cols#80, it#8, lines#32, vt#3,
-	acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
-	civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
-	cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
-	il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
-	kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
-	lf5=F6, lf6=F8, ll=\E[32;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
-	rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
-	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
-	sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
-	smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g,
-
-tek4107|tek4109|tektronix terminals 4107 4109,
-	OTbs, am, mir, msgr, ul, xenl, xt,
-	cols#79, it#8, lines#29,
-	bel=^G, blink=\E%!1\E[5m$<2>\E%!0,
-	bold=\E%!1\E[1m$<2>\E%!0, clear=\ELZ, cnorm=\E%!0, cr=^M,
-	cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3,
-	dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J,
-	kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	rev=\E%!1\E[7m$<2>\E%0, ri=\EI,
-	rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
-	sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0,
-	sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
-	smul=\E%!1\E[4m$<2>\E%!0,
-# Tektronix 4207 with sysline.  In the ancestral termcap file this was 4107-s;
-# see the note attached to tek4207.
-tek4207-s|Tektronix 4207 with sysline but no memory,
-	eslok, hs,
-	dsl=\E7\E[?6l\E[2K\E[?6h\E8, fsl=\E[?6h\E8,
-	is1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
-	is2=\E7\E[?6l\E[2K\E[?6h\E8,
-	tsl=\E7\E[?6l\E[2K\E[;%i%df, use=tek4107,
-
-# The 4110 series may be a wonderful graphics series, but they make the 4025
-# look good for screen editing.  In the dialog area, you can't move the cursor
-# off the bottom line.  Out of the dialog area, ^K moves it up, but there
-# is no way to scroll.
-#
-# Note that there is a floppy for free from Tek that makes the
-# 4112 emulate the vt52 (use the vt52 termcap). There is also
-# an expected enhancement that will use ANSI standard sequences.
-#
-# 4112 in non-dialog area pretending to scroll. It really wraps
-# but vi is said to work (more or less) in this mode.
-#
-# 'vi' works reasonably well with this entry.
-#
-otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series,
-	am,
-	cols#80, lines#34,
-	bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ind=^J,
-	rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0,
-# The 4112 with the ANSI compatibility enhancement
-tek4112|tek4114|tektronix 4110 series,
-	OTbs, am, db,
-	cols#80, lines#34,
-	cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P, dl1=\E[M,
-	ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
-	ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8,
-	rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-tek4112-nd|4112 not in dialog area,
-	OTns,
-	cuu1=^K, use=tek4112,
-tek4112-5|4112 in 5 line dialog area,
-	lines#5, use=tek4112,
-# (tek4113: this used to have "<cuf1=\LM1\s\LM0>", someone's mistake;
-# removed "<smacs=\E^N>, <rmacs=\E^O>", which had been commented out in 8.3.
-# Note, the !0 and !1 sequences in <rmcup>/<smcup>/<cnorm>/<civis> were
-# previously \0410 and \0411 sequences...I don't *think* they were supposed
-# to be 4-digit octal -- esr)
-tek4113|tektronix 4113 color graphics with 5 line dialog area,
-	OTbs, am, da, eo,
-	cols#80, lines#5,
-	clear=\ELZ, cub1=^H, cud1=^J, cuf1=\ELM1 \ELM0,
-	flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
-	is2=\EKA1\ELL5\ELV0\ELV1, uc=\010\ELM1_\ELM0,
-tek4113-34|tektronix 4113 color graphics with 34 line dialog area,
-	lines#34,
-	is2=\EKA1\ELLB2\ELV0\ELV1, use=tek4113,
-# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
-# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
-# :vb: needs enough delay to let you see the background color being toggled.
-tek4113-nd|tektronix 4113 color graphics with no dialog area,
-	OTbs, am, eo,
-	cols#80, it#8, lines#34,
-	clear=\E^L, cub1=^H, cud1=^J, cuf1=^I, cuu1=^K,
-	cvvis=\ELZ\EKA0,
-	flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
-	home=\ELF7l\177 @, ht=^I, is2=\ELZ\EKA0\ELF7l\177 @,
-	ll=\ELF hl @, rmso=\EMT1, smso=\EMT2, uc=\010\EMG1_\EMG0,
-# This entry is from Tek. Inc.  (Brian Biehl)
-# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr)
-otek4115|Tektronix 4115,
-	OTbs, am, da, db, eo,
-	cols#80, it#8, lines#34,
-	cbt=\E[Z, clear=\E[H\E[2J,
-	cnorm=\E%!0\ELBG8\E%!1\E[34;1H, cub1=\E[D, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	cvvis=\E%!0\ELBB2\E%!1, dch1=\E[P, dl1=\E[M, ed=\E[J,
-	el=\E[K, home=\E[H, ht=^I, if=/usr/local/share/tabset/vt100,
-	il1=\E[L,
-	is2=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m,
-	kbs=^H, ri=\EM, rmam=\E[?7l,
-	rmcup=\E%!0\ELBG8\E%!1\E[34;1H\E[J, rmir=\E[4l,
-	rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
-	smcup=\E%!0\ELBB2\E%!1, smir=\E[4h, smkx=\E=, smso=\E[7m,
-	smul=\E[4m,
-tek4115|newer tektronix 4115 entry with more ANSI capabilities,
-	am, xon,
-	cols#80, lines#34,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
-	cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%p1%{1}%+%dG,
-	ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
-	il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
-	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rmam=\E[?7l,
-	rmso=\E[m, rmul=\E[m,
-	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-	sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
-	vpa=\E[%p1%{1}%+%dd,
-# The tek4125 emulates a vt100 incorrectly - the scrolling region
-# command is ignored.  The following entry replaces <csr> with the needed
-# <il>, <il>, and <smir>; removes some cursor pad commands that the tek4125
-# chokes on; and adds a lot of initialization for the tek dialog area.
-# Note that this entry uses all 34 lines and sets the cursor color to green.
-# Steve Jacobson 8/85
-# (tek4125: there were two "\!"s in the is that I replaced with "\E!";
-# commented out, <smir>=\E1 because there's no <rmir>  -- esr)
-tek4125|tektronix 4125,
-	lines#34,
-	csr@, dl1=\E[1M, il1=\E[1L,
-	is2=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E!1\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	rc@, sc@, smkx=\E=, use=vt100,
-
-# From: <jcoker@ucbic>
-# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO
-# supplied another, less capable 4107 entry.  So we'll use that for 4107 and
-# note that if jcoker wasn't confused you may be able to use this one.
-# I merged in <msgr>,<ind>,<ri>,<invis>,<tbc> from a BRL entry -- esr)
-tek4207|Tektronix 4207 graphics terminal with memory,
-	am, bw, mir, msgr, ul, xenl,
-	cols#80, it#8, lines#32,
-	blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J$<156/>,
-	cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\EM, dch1=\E[P$<4/>, dl1=\E[M$<3/>, ed=\E[J,
-	el=\E[K$<5/>, home=\E[H, ht=^I, ich1=\E[@$<4/>,
-	il1=\E[L$<3/>, ind=\E[S, invis=\E[=6;<5,
-	is2=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
-	kcub1=\E[D, kcud1=\ED, kcuf1=\E[C, kcuu1=\EM, khome=\E[H,
-	rev=\E[7m, ri=\E[T,
-	rmcup=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f, rmso=\E[m,
-	rmul=\E[m, sgr0=\E[m, smcup=\E[?6l\E[H\E[J, smso=\E[7m,
-	smul=\E[4m, tbc=\E[1g,
-
-# From: <carolyn@dali.berkeley.edu>  Thu Oct 31 12:54:27 1985
-# (tek4404: There was a "\!" in <smcup> that I replaced with "\E!".
-# Tab had been given as \E2I,that must be the tab-set capability -- esr)
-tek4404|tektronix 4404,
-	OTbs,
-	cols#80, it#8, lines#32,
-	blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
-	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[1M,
-	ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I, il1=\E[1L,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rc=\E8,
-	rmcup=\E[1;1H\E[0J\E[?6h\E[?1l, rmir=\E[4l,
-	rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sc=\E7, sgr0=\E[m,
-	smcup=\E%\E!1\E[1;32r\E[?6l\E>, smir=\E[4h,
-	smkx=\E[?1l, smso=\E[7m, smul=\E[4m,
-# Some unknown person wrote:
-# I added the is string - straight Unix has ESC ; in the login
-# string which sets a ct8500 into monitor mode (aka 4025 snoopy
-# mode). The is string here cleans up a few things (but not
-# everything).
-ct8500|tektronix ct8500,
-	am, bw, da, db,
-	cols#80, lines#25,
-	bel=^G, cbt=\E^I, clear=\E^E, cr=^M, cub1=^H, cud1=^J,
-	cuf1=\ES, cup=\E|%p1%{32}%+%c%p2%{32}%+%c, cuu1=\ER,
-	dch1=\E^], dl1=\E^M, ed=\E^U, el=\E^T, ht=^I, ich1=\E^\,
-	il1=\E^L, ind=^J, is2=\037\EZ\Ek, ri=\E^A, rmso=\E\s,
-	rmul=\E\s, sgr0=\E\s, smso=\E$, smul=\E!,
-
-# Tektronix 4205 terminal.
-#
-# am is not defined because the wrap around occurs not when the char.
-# is placed in the 80'th column, but when we are attempting to type
-# the 81'st character on the line.  (esr: hmm, this is like the vt100
-# version of xenl, perhaps am + xenl would work!)
-#
-# Bold, dim, and standout are simulated by colors and thus not allowed
-# with colors.  The tektronix color table is mapped into the RGB color
-# table by setf/setb. All colors are reset to factory specifications by oc.
-# The <initc> cap uses RGB notation to define colors.  for arguments 1-3 the
-# interval (0-1000) is broken into 8 smaller sub-intervals (125).  Each sub-
-# interval then maps into pre-defined value.
-tek4205|tektronix 4205,
-	ccc, mir, msgr,
-	colors#8, cols#80, it#8, lines#30, ncv#49, pairs#63,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[=7;<4m, cbt=\E[Z,
-	clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch1=\E[1P, dim=\E[=1;<6m, dl1=\E[1M, ech=\E%p1%dX,
-	ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
-	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
-	initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1,
-	invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA,
-	kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EP, kf5=\EQ, kf6=\ER,
-	kf7=\ES,
-	oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1,
-	op=\E[39;40m, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=,
-	rmir=\E[4l, rmso=\E[=0;<1m, rmul=\E[24m,
-	setb=\E[=%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
-	setf=\E[<%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
-	sgr0=\E[=0;<1m\E[24;25;27m\017, smacs=^N,
-	smcup=\E%%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
-	smul=\E[4m, tbc=\E[1g,
-
-#### Teletype (tty)
-#
-# These are the hardcopy Teletypes from before AT&T bought the company,
-# clattering electromechanical dinosaurs in Bakelite cases that printed on
-# pulpy yellow roll paper.  If you remember these you go back a ways.
-# Teletype-branded VDTs are listed in the AT&T section.
-#
-# The earliest UNIXes were designed to use these clunkers; nroff and a few
-# other programs still default to emitting codes for the Model 37.
-#
-
-tty33|tty35|model 33 or 35 teletype,
-	hc, os, xon,
-	cols#72,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
-tty37|model 37 teletype,
-	OTbs, hc, os, xon,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
-	ind=^J,
-
-# There are known to be at least three flavors of the tty40, all seem more
-# like IBM half duplex forms fillers than ASCII terminals.  They have lots of
-# awful braindamage, such as printing a visible newline indicator after each
-# newline.  The 40-1 is a half duplex terminal and is hopeless.  The 40-2 is
-# braindamaged but has hope and is described here.  The 40-4 is a 3270
-# lookalike and beyond hope.  The terminal has visible bell but I don't know
-# it - it's null here to prevent it from showing the BL character.
-# There is an \EG in <nl> because of a bug in old vi (if stty says you have
-# a "newline" style terminal (-crmode) vi figures all it needs is nl
-# to get crlf, even if <cr> is not ^M.)
-# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr)
-tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2,
-	OTbs, xon,
-	cols#80, lines#24,
-	clear=\EH$<20>\EJ$<80>, cr=\EG, cub1=^H, cud1=\EB,
-	cuf1=\EC, cuu1=\E7, dch1=\EP$<50>, dl1=\EM$<50>,
-	ed=\EJ$<75>, home=\EH$<10>, ht=\E@$<10>, hts=\E1,
-	ich1=\E\^$<50>, il1=\EL$<50>, ind=\ES$<20>, kbs=^],
-	kcub1=^H, mc4=^T, mc5=\022$<2000>, ri=\ET$<10>, rmso=\E4,
-	rs2=\023\ER$<60>, smso=\E3, tbc=\EH\E2$<80>,
-tty43|model 43 teletype,
-	OTbs, am, hc, os, xon,
-	cols#132,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
-
-#### Tymshare
-#
-
-# You can add <is2=\E<> to put this 40-column mode, though I can't
-# for the life of me think why anyone would want to.
-scanset|sc410|sc415|Tymshare Scan Set,
-	am, bw, msgr,
-	cols#80, lines#24,
-	acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=^M, cub1=^H,
-	cud1=^J, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=^J, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, mc0=\E;3, mc4=\E;0,
-	mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N,
-
-#### Volker-Craig (vc)
-#
-# If you saw a Byte Magazine cover with a terminal on it during the early
-# 1980s, it was probably one of these.  Carl Helmers liked them because
-# they could crank 19.2 and were cheap (that is, he liked them until he tried
-# to program one...)
-#
-
-# Missing in vc303a and vc303 descriptions:  they scroll 2 lines at a time
-# every other linefeed.
-vc303|vc103|vc203|volker-craig 303,
-	OTbs, OTns, am,
-	cols#80, lines#24,
-	bel=^G, clear=\014$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
-	cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=^J, kcuf1=^I,
-	kcuu1=^N, ll=\017$<1>W,
-vc303a|vc403a|volker-craig 303a,
-	clear=\030$<40>, cuf1=^U, cuu1=^Z, el=\026$<20>,
-	home=\031$<40>, kcuf1=^U, kcuu1=^Z, ll=^P, use=vc303,
-# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr)
-vc404|volker-craig 404,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\030$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
-	cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
-	ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=^J,
-	kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z,
-vc404-s|volker-craig 404 w/standout mode,
-	cud1=^J, rmso=^O, smso=^N, use=vc404,
-# From: <wolfgang@cs.sfu.ca>
-# (vc414: merged in cup/dl1/home from an old vc414h-noxon)
-vc414|vc414h|Volker-Craig 414H in sane escape mode.,
-	OTbs, am,
-	cols#80, lines#24,
-	clear=\E\034$<40>, cud1=\E^K, cuf1=^P,
-	cup=\E\021%p2%c%p1%c$<40>, cuu1=\E^L, dch1=\E3,
-	dl1=\E\023$<40>, ed=\E^X, el=\E\017$<10/>, home=\E^R,
-	ich1=\E\:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P,
-	kcuu1=\E^L, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, kf4=\EE,
-	kf5=\EF, kf6=\EG, kf7=\EH, khome=\E^R, lf0=PF1, lf1=PF2,
-	lf2=PF3, lf3=PF4, lf4=PF5, lf5=PF6, lf6=PF7, lf7=PF8,
-	rmso=\E^_, smso=\E^Y,
-vc415|volker-craig 415,
-	clear=^L, use=vc404,
-
-######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
-#
-
-#### IBM PC and clones
-#
-
-# The pcplot IBM-PC terminal emulation program is really messed up. It is
-# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly,
-# doesn't support scrolling regions, ignores add line commands, and ignores
-# delete line commands. Consequently, the resulting behavior looks like a
-# crude adm3a-type terminal.
-# Steve Jacobson 8/85
-pcplot|pc-plot terminal emulation program,
-	xenl@,
-	csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100,
-# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA>
-# I've found that my KayPro II, running MDM730, continues to emulate an
-# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX
-# system the following termcap entry works well:
-# I have noticed a couple of minor glitches, but nothing I can't work
-# around. (I added two capabilities from the BRL entry -- esr)
-kaypro|kaypro2|kaypro II,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\032$<1/>, cr=^M, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER, ed=^W,
-	el=^X, home=^^, il1=\EE, ind=^J, kcud1=^J, kcuf1=^L, kcuu1=^K,
-
-# From IBM, Thu May  5 19:35:27 1983
-# (ibmpc: commented out <smir>=\200R because we don't know <rmir> -- esr)
-ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS),
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=^L^K, cr=^M^^, cub1=^], cud1=^J, cuf1=^\,
-	cuu1=^^, home=^K, ind=\n$<10>, kcud1=^_,
-
-ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX,
-	OTbs, am, bw, eo, hs, km, msgr, ul,
-	cols#80, it#8, lines#24,
-	acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
-	cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-	home=\E[H, hpa=\E[%i%p1%dG, ind=\E[S\E[B,
-	indn=\E[%p1%dS\E[%p1%dB, invis=\E[30;40m, kbs=^H,
-	kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kdch1=\177, kend=\E[Y, kf1=\240, kf10=\251, kf2=\241,
-	kf3=\242, kf4=\243, kf5=\244, kf6=\245, kf7=\246, kf8=\247,
-	kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V,
-	ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A,
-	rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
-	sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-
-#### Apple II
-#
-# Apple II firmware console first, then various 80-column cards and
-# terminal emulators.  For two cents I'd toss all these in the UFO file
-# along with the 40-column apple entries.
-#
-
-# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL
-#	'it#8' tells UNIX that you have tabs every 8 columns.  This is a
-#		function of TIC, not the firmware.
-#	The clear key on a IIgs will do something like clear-screen,
-#		depending on what you're in.
-appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface,
-	OTbs, am, bw, eo, msgr,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
-	cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
-	home=^Y, ht=^I, ind=^W, kbs=^H, kclr=^X, kcub1=^H, kcud1=^J,
-	kcuf1=^U, kcuu1=^K, kdch1=\177, nel=^M^W, ri=^V, rmso=^N,
-	smso=^O,
-# Apple //e with 80-column card, entry from BRL
-# The modem interface is permitted to discard LF (maybe DC1), otherwise
-# passing characters to the 80-column firmware via COUT (PR#3 assumed).
-# Auto-wrap does not work right due to newline scrolling delay, which also
-# requires that you set "stty cr2".
-# Note: Cursor addressing is only available via the Pascal V1.1 entry,
-# not via the BASIC PR#3 hook.  All this nonsense can be avoided only by
-# using a terminal emulation program instead of the built-in firmware.
-apple2e|Apple //e,
-	bw, msgr,
-	cols#80, lines#24,
-	bel=^G, clear=\014$<100/>, cub1=^H, cud1=^J, cuu1=^_,
-	ed=\013$<4*/>, el=\035$<4/>, home=^Y, ht=^I, ind=^W,
-	is2=^R^N, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^K,
-	nel=\r$<100/>, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
-	smso=^O,
-# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro
-# 4.20, with incoming and outgoing terminals both on 0, emulation On.
-apple2e-p|Apple //e via Pascal,
-	cup=\036%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, kcub1=^H,
-	kcud1=^J, use=apple2e,
-# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL
-# Enable DC3/DC1 flow control with "stty ixon -ixany".
-apple-ae|ASCII Express,
-	OTbs, am, bw, msgr, nxon, xon,
-	cols#80, it#8, lines#24,
-	bel=\007$<500/>, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
-	cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
-	home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=^J,
-	kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
-	smso=^O,
-appleII|apple ii plus,
-	OTbs, am,
-	cols#80, it#8, lines#24,
-	clear=^L, cnorm=^TC2, cub1=^H, cud1=^J, cuf1=^\,
-	cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, cvvis=^TC6,
-	ed=^K, el=^], flash=\024G1$<200/>\024T1, home=\E^Y, ht=^I,
-	is2=\024T1\016, kcud1=^J, kcuf1=^U, rmso=^N, sgr0=^N,
-	smso=^O,
-# Originally by Gary Ford 21NOV83
-# From: <ee178aci%sdcc7@SDCSVAX.ARPA>  Fri Oct 11 21:27:00 1985
-apple-80|apple II with smarterm 80 col,
-	OTbs, am, bw,
-	cols#80, lines#24,
-	cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=^J,
-	cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_,
-	ed=\013$<10*/>, el=\035$<10/>, home=^Y,
-apple-soroc|apple emulating soroc 120,
-	am,
-	cols#80, lines#24,
-	bel=^G, clear=\E*$<300>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
-	home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-# From Peter Harrison, Computer Graphics Lab, San Francisco
-#   ucbvax!ucsfmis!harrison  .....uucp
-#   ucbvax!ucsfmis!harrison@BERKELEY   .......ARPA
-# "These two work.  If you don't have the inverse video chip for the
-# Apple with videx then remove the :so: and :se: fields."
-# (apple-videx: this used to be called DaleApple -- esr)
-apple-videx|Apple with videx videoterm 80 column board with inverse video,
-	OTbs, am, xenl,
-	cols#80, it#8, lines#24,
-	clear=\014$<300/>, cub1=^H, cud1=^J, cuf1=^\,
-	cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
-	home=^Y, ht=^I, kcub1=^H, kcud1=^J, kcuf1=^U, khome=^Y,
-	rmso=^Z2, sgr0=^Z2, smso=^Z3,
-# My system [for reference] : Apple ][+, 64K, Ultraterm display card,
-#			      Apple Cat ][ 212 modem, + more all
-#			      controlled by ASCII Express: Pro.
-# From Dave Shaver <isucs1!shaver>
-apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell,
-	OTbs, am, eo, xt,
-	cols#80, lines#24,
-	acsc=, clear=^L, cuf1=^\,
-	cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
-	flash=^W35^W06, home=^Y,
-	is2=^V4^W06\017\rVisible Bell Installed.\016\r\n,
-	rmso=^N, smso=^O,
-apple-uterm|Ultraterm for Apple micros,
-	OTbs, am, eo, xt,
-	cols#80, lines#24,
-	acsc=, clear=^L, cuf1=^\,
-	cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
-	home=^Y, is2=^V4^W06\016, rmso=^N, smso=^O,
-# from trwrba!bwong (Bradley W. Wong):
-#
-# This entry assumes that you are using an apple with the UCSD Pascal
-# language card.  SYSTEM.MISCINFO is assumed to be the same as that
-# supplied with the standard apple except that screenwidth should be set
-# using SETUP to 80 columns.  Note that the right arrow in not mapped in
-# this termcap entry.  This is because that key, on the Apple, transmits
-# a ^U and would thus preempt the more useful "up" function of vi.
-#
-# HMH 2/23/81
-apple80p|80-column apple with Pascal card,
-	am, bw,
-	cols#80, lines#24,
-	clear=^Y^L, cuf1=^\\:,
-	cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
-	home=^Y, kcub1=^H,
-#
-# Apple II+ equipped with Videx 80 column card
-#
-# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL;
-# manually converted by D A Gwyn
-#
-# DO NOT use any terminal emulation with this data base, it works directly
-# with the Videx card.  This has been tested with vi 1200 baud and works fine.
-#
-# This works great for vi, except I've noticed in pre-R2, ^U will scroll back
-# 1 screen, while in R2 ^U doesn't.
-# For inverse alternate character set add:
-#	<smacs>=^O:<rmacs>=^N:
-# (apple-v: added it#8 -- esr)
-apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520),
-	am, xenl,
-	cols#80, it#8, lines#24,
-	bel=\007$<100/>, clear=\014$<16*/>, cr=^M, cub1=^H,
-	cud1=^J, cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c,
-	cuu1=^_, ed=\013$<16*/>, el=^], home=^Y, ht=\011$<8/>,
-	ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
-	khome=^Y, rmso=^Z2, smso=^Z3,
-apple-videx3|vapple|Apple II with 80 col card,
-	OTbs, am,
-	cols#80, lines#24,
-	clear=\Ev, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, el=\Ex, home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!,
-	kf5=\E", kf6=\E#, kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
-#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
-aepro|Apple II+ running ASCII Express Pro--vt52,
-	OTbs,
-	cols#80, lines#24,
-	clear=\014$<300/>, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
-	el=\EK, home=\EH,
-# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
-apple-vm80|ap-vm80|apple with viewmax-80,
-	OTbs,
-	cols#80, lines#24,
-	clear=\014$<300/>, cuf1=^\\:,
-	cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_,
-	ed=\013$<300/>, el=^], home=\031$<200/>,
-
-#### Apple Lisa & Macintosh
-#
-
-# (lisa: changed <cvvis> to <cnorm> -- esr)
-lisa|apple lisa console display (black on white),
-	OTbs, am, eo, msgr,
-	cols#88, it#8, lines#32,
-	acsc=jdkclfmenbqattuvvuwsx`, civis=\E[5h, clear=^L,
-	cnorm=\E[5l, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
-	is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smacs=\E[11m, smso=\E[7m, smul=\E[4m,
-liswb|apple lisa console display (white on black),
-	is2=\E>\E[0;7m\014, rmso=\E[0;7m, rmul=\E[0;7m,
-	smso=\E[m, smul=\E[4m, use=lisa,
-
-# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL;
-# <is2> revised by Ferd Brundick <fsbrn@BRL.ARPA>
-#
-# These entries assume that the 'Auto Wraparound' is enabled.
-# Xon-Xoff flow control should also be enabled.
-#
-# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
-# settings are in non-volatile memory and don't need to be reset upon login.
-# Also setting the number of columns glitches the screen annoyingly.
-# You can type "reset" to get them set.
-#
-lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation,
-	OTbs, OTpt, am, xenl, xon,
-	OTkn#4, cols#80, it#8, lines#24, vt#3,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
-	el=\E[K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP, kf1=\EOQ,
-	kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rc=\E8,
-	rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r,
-	sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-	tbc=\E[3g,
-# Lisaterm in 132 column ("wide") mode.
-lisaterm-w|Apple Lisa with Lisaterm in 132 column mode,
-	cols#132,
-	kbs=^H, kcub1=^H, kcud1=^J, use=lisaterm,
-# Although MacTerminal has insert/delete line, it is commented out here
-# since it is much faster and cleaner to use the "lock scrolling region"
-# method of inserting and deleting lines due to the MacTerminal implementation.
-# Also, the "Insert/delete ch" strings have an extra character appended to them
-# due to a bug in MacTerminal V1.1.  Blink is disabled since it is not
-# supported by MacTerminal.
-mac|macintosh|Macintosh with MacTerminal,
-	xenl,
-	OTdN#30,
-	blink@, dch1=\E[P$<7/>, ich1=\E[@$<9/>, ip=$<7/>, use=lisa,
-# Lisaterm in 132 column ("wide") mode.
-mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
-	cols#132, use=mac,
-
-# The AppKit Terminal.app descriptions all have names beginning with
-# "nsterm". Note that the statusline (-s) versions use the window
-# titlebar as a phony status line, and may produce warnings during
-# compilation as a result ("tsl uses 0 parameters, expected 1".) Ignore
-# these warnings, or even ignore these entries entirely. Apps which
-# need to position the cursor or do other fancy stuff inside the status
-# line won't work with these entries. They're primarily useful for
-# programs like Pine which provide simple notifications in the status
-# line. Please note that non-ASCII characters don't work right in the
-# status line, since Terminal.app incorrectly interprets their Unicode
-# codepoints as MacRoman codepoints.
-#
-# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
-#   "nsterm" to comply with the name length and case conventions and
-#   limitations of various software packages [notably Solaris terminfo
-#   and UNIX.] A single Apple_Terminal alias is retained for
-#   backwards-compatbility.
-#
-# * Added function key support (F1-F4). These only work in Terminal.app
-#   version 51, hopefully the capabilities won't cause problems for people
-#   using version 41.
-#
-# * Added "full color" (-c) entries which support the 16-color mode in
-#   version 51.
-#
-# * By default, version 51 uses UTF-8 encoding with broken altcharset
-#   support, so "ASCII" (-7) entries without altcharset support were
-#   added.
-
-# nsterm - AppKit Terminal.app
-#
-# Apple's Mac OS X includes a Terminal.app derived from the old NeXT
-# Terminal.app. It is a partial VT100 emulation with some xterm-like
-# extensions. This terminfo was written to describe versions 41
-# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X
-# version 10.1) of Terminal.app.
-#
-# Terminal.app runs under the Mac OS X Quartz windowing system (and
-# other AppKit-supported windowing systems.)  On the Mac OS X machine I
-# use, the executable for Terminal.app is:
-# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
-#
-# If you're looking for a description of the full-screen system
-# console which runs under Apple's Darwin operating system on PowerPC
-# platforms, see the "xnuppc" entry instead.
-#
-# There were no function keys in version 41. In version 51, there are
-# four working function keys (F1, F2, F3 and F4.) The function keys
-# are included in all of these entries.
-#
-# It does not support mouse pointer position reporting. Under some
-# circumstances the cursor can be positioned using option-click; this
-# works by comparing the cursor position and the selected position,
-# and simulating enough cursor-key presses to move the cursor to the
-# selected position. This technique fails in all but the simplest
-# applications.
-#
-# It provides partial ANSI color support (background colors interacted
-# badly with bold in version 41, though, as reflected in :ncv:.) The
-# monochrome (-m) entries are useful if you've disabled color support
-# or use a monochrome monitor. The full color (-c) entries are useful
-# in version 51, which doesn't exhibit the background color bug. They
-# also enable an xterm-compatible 16-color mode.
-#
-# The configurable titlebar is set using xterm-compatible sequences;
-# it is used as a status bar in the statusline (-s) entries. Its width
-# depends on font sizes and window sizes, but 50 characters seems to
-# be the default for an 80x24 window.
-#
-# The MacRoman character encoding is used for some of the alternate
-# characters in the "MacRoman" entries; the "ASCII" (-7) entries
-# disable alternate character set support entirely, and the "VT100"
-# (-acs) entries rely instead on Terminal.app's own buggy VT100
-# graphics emulation, which seems to think the character encoding is
-# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries
-# are useful in Terminal.app version 51, which supports UTF-8 and
-# other ASCII-compatible character encodings but does not correctly
-# implement VT100 graphics; once VT100 graphics are correctly
-# implemented in Terminal.app, the "VT100" (-acs) entries should be
-# usable in any ASCII-compatible character encoding [except perhaps
-# in UTF-8, where some experts argue for disallowing alternate
-# characters entirely.]
-#
-# Terminal.app reports "vt100" as the terminal type, but exports
-# several environment variables which may aid detection in a shell
-# profile (i.e. .profile or .login):
-#
-# TERM=vt100
-# TERM_PROGRAM=Apple_Terminal
-# TERM_PROGRAM_VERSION=41      # in Terminal.app version 41
-# TERM_PROGRAM_VERSION=51      # in Terminal.app version 51
-#
-# For example, the following Bourne shell script would detect the
-# correct terminal type:
-#
-# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ]
-# then
-#     export TERM
-#     if [ :"$TERM_PROGRAM_VERSION" = :41 ]
-#     then
-#         TERM="nsterm"
-#     else
-#         TERM="nsterm-c-7"
-#     fi
-# fi
-#
-# In a C shell derivative, this would be accomplished by:
-#
-# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
-#     if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
-#          if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
-#              setenv TERM "nsterm"
-#          else
-#              setenv TERM "nsterm-c-7"
-#          endif
-#     endif
-# endif
-
-# The '+' entries are building blocks
-nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
-	am, bw, msgr, xenl, xon,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
-	home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
-	rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
-	sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys,
-
-nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	enacs=\E(B\E)0, rmacs=^O,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	smacs=^N, use=nsterm+7,
-
-nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
-	acsc=0#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245+\335-\366\,\334.\377,
-	enacs=\E(B\E)0, rmacs=^O,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-	smacs=^N, use=nsterm+7,
-
-nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
-	hs,
-	wsl#50,
-	dsl=\E]2;\007, fsl=^G, tsl=\E]2;,
-
-nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors),
-	op=\E[0m, use=ibm+16color,
-
-nsterm+c41|AppKit Terminal.app v41 color support,
-	colors#8, ncv#37, pairs#64,
-	op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-# These are different combinations of the building blocks
-
-# ASCII charset (-7)
-nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome),
-	use=nsterm+7,
-
-nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline),
-	use=nsterm+s, use=nsterm+7,
-
-nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color),
-	use=nsterm+c41, use=nsterm+7,
-
-nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color),
-	use=nsterm+c, use=nsterm+7,
-
-nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline),
-	use=nsterm+s, use=nsterm+c41, use=nsterm+7,
-
-nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline),
-	use=nsterm+s, use=nsterm+c, use=nsterm+7,
-
-# VT100 alternate-charset (-acs)
-nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome),
-	use=nsterm+acs,
-
-nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline),
-	use=nsterm+s, use=nsterm+acs,
-
-nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color),
-	use=nsterm+c41, use=nsterm+acs,
-
-nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color),
-	use=nsterm+c, use=nsterm+acs,
-
-nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline),
-	use=nsterm+s, use=nsterm+c41, use=nsterm+acs,
-
-nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline),
-	use=nsterm+s, use=nsterm+c, use=nsterm+acs,
-
-# MacRoman charset
-nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome),
-	use=nsterm+mac,
-
-nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline),
-	use=nsterm+s, use=nsterm+mac,
-
-nsterm|Apple_Terminal|AppKit Terminal.app v41+ w/MacRoman charset (color),
-	use=nsterm+c41, use=nsterm+mac,
-
-nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color),
-	use=nsterm+c, use=nsterm+mac,
-
-nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline),
-	use=nsterm+s, use=nsterm+c41, use=nsterm+mac,
-
-nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline),
-	use=nsterm+s, use=nsterm+c, use=nsterm+mac,
-
-
-# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
-# and D P Schreber comparing to nsterm-c-s-acs.
-#
-# D P Schreber notes that $TERM can be set in Terminal.app, e.g.,
-#	defaults write com.apple.Terminal TermCapString nsterm-c-s-acs
-# and that it is not set in Terminal's preferences dialog.
-nsterm-16color|AppKit Terminal.app v100.1.8 with MacOS X 10.3.9,
-	kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-	knp=\E[6~, kpp=\E[5~, use=nsterm-c-s-acs,
-
-# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
-#
-# On PowerPC platforms, Apple's Darwin operating system uses a
-# full-screen system console derived from a NetBSD framebuffer
-# console. It is an ANSI-style terminal, and is not really VT-100
-# compatible.
-#
-# Under Mac OS X, this is the system console driver used while in
-# single-user mode [reachable by holding down Command-S during the
-# boot process] and when logged in using console mode [reachable by
-# typing ">console" at the graphical login prompt.]
-#
-# If you're looking for a description of the Terminal.app terminal
-# emulator which runs under the Mac OS X Quartz windowing system (and
-# other AppKit-supported windowing systems,) see the "nsterm"
-# entry instead.
-#
-# NOTE: Under Mac OS X version 10.1, the default login window does not
-# prompt for user name, instead requiring an icon to be selected from
-# a list of known users. Since the special ">console" login is not in
-# this list, you must make one of two changes in the Login Window
-# panel of the Login section of System Prefs to make the special
-# ">console" login accessible. The first option is to enable 'Show
-# "Other User" in list for network users', which will add a special
-# "Other..." icon to the graphical login panel. Selecting "Other..."
-# will present the regular graphical login prompt. The second option
-# is to change the 'Display Login Window as:' setting to 'Name and
-# password entry fields', which replaces the login panel with a
-# graphical login prompt.
-#
-# There are no function keys, at least not in Darwin 1.3.
-#
-# It has no mouse support.
-#
-# It has full ANSI color support, and color combines correctly with
-# all three supported attributes: bold, inverse-video and underline.
-# However, bold colored text is almost unreadable (bolding is
-# accomplished using shifting and or-ing, and looks smeared) so bold
-# has been excluded from the list of color-compatible attributes
-# [using (ncv)]. The monochrome entry (-m) is useful if you use a
-# monochrome monitor.
-#
-# There is one serious bug with this terminal emulation's color
-# support: repositioning the cursor onto a cell with non-matching
-# colors obliterates that cell's contents, replacing it with a blank
-# and displaying a colored cursor in the "current" colors. There is
-# no complete workaround at present [other than using the monochrome
-# (-m) entries,] but removing the (msgr) capability seemed to help.
-#
-# The "standout" chosen was simple reverse-video, although a colorful
-# standout might be more aesthetically pleasing. Similarly, the bold
-# chosen is the terminal's own smeared bold, although a simple
-# color-change might be more readable. The color-bold (-b) entries
-# uses magenta colored text for bolding instead. The fancy color (-f
-# and -f2) entries use color for bold, standout and underlined text
-# (underlined text is still underlined, though.)
-#
-# Apparently the terminal emulator does support a VT-100-style
-# alternate character set, but all the alternate character set
-# positions have been left blank in the font. For this reason, no
-# alternate character set capabilities have been included in this
-# description. The console driver appears to be ASCII-only, so (enacs)
-# has been excluded [although the VT-100 sequence does work.]
-#
-# The default Mac OS X and Darwin installation reports "vt100" as the
-# terminal type, and exports no helpful environment variables. To fix
-# this, change the "console" entry in /etc/ttys from "vt100" to
-# "xnuppc-WxH", where W and H are the character dimensions of your
-# console (see below.)
-#
-# The font used by the terminal emulator is apparently one originally
-# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This
-# file includes descriptions for the following geometries:
-#
-#     Pixels        Characters   Entry Name (append -m for monochrome)
-#    -------------------------------------------------------------------
-#     640x400       80x25        xnuppc-80x25
-#     640x480       80x30        xnuppc-80x30
-#     720x480       90x30        xnuppc-90x30
-#     800x600       100x37       xnuppc-100x37
-#     896x600       112x37       xnuppc-112x37
-#     1024x640      128x40       xnuppc-128x40
-#     1024x768      128x48       xnuppc-128x48
-#     1152x768      144x48       xnuppc-144x48
-#     1280x1024     160x64       xnuppc-160x64
-#     1600x1024     200x64       xnuppc-200x64
-#     1600x1200     200x75       xnuppc-200x75
-#     2048x1536     256x96       xnuppc-256x96
-#
-# The basic "xnuppc" entry includes no size information, and the
-# emulator includes no reporting capability, so you'll be at the mercy
-# of the TTY device (which reports incorrectly on my hardware.) The
-# color-bold entries do not include size information.
-
-# The '+' entries are building blocks
-xnuppc+basic|Darwin PowerPC Console basic capabilities,
-	am, bce, mir, xenl,
-	it#8,
-	bold=\E[1m, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dsl=\E]2;\007, ed=\E[J, el=\E[K,
-	el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=\177,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
-	rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m,
-	rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-	sc=\E7,
-	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-	sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
-
-xnuppc+c|Darwin PowerPC Console ANSI color support,
-	colors#8, ncv#32, pairs#64,
-	op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-xnuppc+b|Darwin PowerPC Console color-bold support,
-	ncv#32,
-	bold=\E[35m,
-	sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-	use=xnuppc+basic,
-
-xnuppc+f|Darwin PowerPC Console fancy color support,
-	ncv#35,
-	sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;m,
-	smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b,
-
-xnuppc+f2|Darwin PowerPC Console alternate fancy color support,
-	ncv#35,
-	bold=\E[33m,
-	sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m,
-	smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic,
-
-# Building blocks for specific screen sizes
-xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels),
-	cols#80, lines#25,
-
-xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels),
-	cols#80, lines#30,
-
-xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels),
-	cols#90, lines#30,
-
-xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels),
-	cols#100, lines#37,
-
-xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels),
-	cols#112, lines#37,
-
-xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels),
-	cols#128, lines#40,
-
-xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels),
-	cols#128, lines#48,
-
-xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels),
-	cols#144, lines#48,
-
-xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels),
-	cols#160, lines#64,
-
-xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels),
-	cols#200, lines#64,
-
-xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels),
-	cols#200, lines#75,
-
-xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels),
-	cols#256, lines#96,
-
-# These are different combinations of the building blocks
-
-xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome),
-	use=xnuppc+basic,
-
-xnuppc|darwin|Darwin PowerPC Console (color),
-	use=xnuppc+c, use=xnuppc+basic,
-
-xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold),
-	use=xnuppc+b,
-
-xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold),
-	use=xnuppc+b, use=xnuppc+c,
-
-xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome),
-	use=xnuppc+f,
-
-xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color),
-	use=xnuppc+f, use=xnuppc+c,
-
-xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome),
-	use=xnuppc+f2,
-
-xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color),
-	use=xnuppc+f2, use=xnuppc+c,
-
-# Combinations for specific screen sizes
-xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25,
-	use=xnuppc+80x25, use=xnuppc+basic,
-
-xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25,
-	use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic,
-
-xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30,
-	use=xnuppc+80x30, use=xnuppc+basic,
-
-xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30,
-	use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic,
-
-xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30,
-	use=xnuppc+90x30, use=xnuppc+basic,
-
-xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30,
-	use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic,
-
-xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37,
-	use=xnuppc+100x37, use=xnuppc+basic,
-
-xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37,
-	use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic,
-
-xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37,
-	use=xnuppc+112x37, use=xnuppc+basic,
-
-xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37,
-	use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic,
-
-xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40,
-	use=xnuppc+128x40, use=xnuppc+basic,
-
-xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40,
-	use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic,
-
-xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48,
-	use=xnuppc+128x48, use=xnuppc+basic,
-
-xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48,
-	use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic,
-
-xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48,
-	use=xnuppc+144x48, use=xnuppc+basic,
-
-xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48,
-	use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic,
-
-xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64,
-	use=xnuppc+160x64, use=xnuppc+basic,
-
-xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64,
-	use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic,
-
-xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64,
-	use=xnuppc+200x64, use=xnuppc+basic,
-
-xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64,
-	use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic,
-
-xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75,
-	use=xnuppc+200x75, use=xnuppc+basic,
-
-xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75,
-	use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic,
-
-xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96,
-	use=xnuppc+256x96, use=xnuppc+basic,
-
-xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96,
-	use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic,
-
-#### Radio Shack/Tandy
-#
-
-# (coco3: This had "ta" used incorrectly as a boolean and bl given as "bl#7".
-# I read these as mistakes for ":it#8:" and ":bl=\007:" respectively -- esr)
-# From: <{pbrown,ctl}@ocf.berkeley.edu> 12 Mar 90
-coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II,
-	OTbs, am,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=^_", bold=\E\:^A, civis=^E\s,
-	clear=\014$<5*/>, cnorm=^E!, cub1=^H, cud1=^J, cuf1=^F,
-	cup=\002%p2%{32}%+%c%p1%{32}%+%c$<2/>, cuu1=^I,
-	dl1=^_1, ed=^K, el=^D, home=^A, il1=^_0, kcub1=^H, kcud1=^J,
-	kcuf1=^I, kcuu1=^L, rev=^_\s, rmso=^_!, rmul=^_#,
-	sgr0=\037!\E\:\0, smso=^_\s, smul=^_",
-# (trs2: removed obsolete ":nl=^_:" -- esr)
-trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M,
-	OTbs, am, msgr,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^_, cuf1=^],
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, dl1=^K, ed=^B,
-	el=^A, home=^F, ht=^I, il1=^D, ind=^J, kbs=^H, kcub1=^\,
-	kcud1=^_, kcuf1=^], kcuu1=^^, rmso=^O, sgr0=^O, smso=^N,
-# From: Kevin Braunsdorf <ksb@mentor.cc.purdue.edu>
-# (This had extension capabilities
-#	:BN=\E[?33h:BF=\E[?33l:UC=\E[_ q:BC=\E[\177 q:\
-#	:CN=\ERC:CF=\ERc:NR=\ERD:NM=\ER@:
-# I also deleted the unnecessary ":kn#2:", ":sg#0:" -- esr)
-trs16|trs-80 model 16 console,
-	OTbs, am,
-	cols#80, it#8, lines#24,
-	acsc=jak`l_mbquvewcxs, bel=^G, civis=\ERc, clear=^L,
-	cnorm=\ERC, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
-	dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
-	ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	kf0=^A, kf1=^B, kf2=^D, kf3=^L, kf4=^U, kf5=^P, kf6=^N, kf7=^S,
-	khome=^W, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7,
-	lf7=f8, mc4=\E]+, mc5=\E]=, rmacs=\ERg, rmso=\ER@, sgr0=\ER@,
-	smacs=\ERG, smso=\ERD,
-
-#### Atari ST
-#
-
-# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
-atari|atari st,
-	OTbs, am,
-	cols#80, it#8, lines#25,
-	clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
-	ed=\EJ, el=\EK, ht=^I, il1=\EL, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, ri=\EI, rmso=\Eq, sgr0=\Eq, smso=\Ep,
-# UniTerm terminal program for the Atari ST:  49-line VT220 emulation mode
-# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
-uniterm|uniterm49|UniTerm VT220 emulator with 49 lines,
-	lines#49,
-	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H,
-	use=vt220,
-# MiNT VT52 emulation. 80 columns, 25 rows.
-# MiNT is Now TOS, the operating system which comes with all Ataris now
-# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
-# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
-# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
-st52|Atari ST with VT52 emulation,
-	am, km,
-	cols#80, lines#25,
-	bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=^M, cub1=\ED,
-	cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
-	ind=^J, ka1=\E#7, ka3=\E#5, kb2=\E#9, kbs=^H, kc1=\E#1,
-	kc3=\E#3, kclr=\E#7, kcub1=\E#K, kcud1=\E#P, kcuf1=\E#M,
-	kcuu1=\E#H, kf0=\E#D, kf1=\E#;, kf2=\E#<, kf3=\E#=, kf4=\E#>,
-	kf5=\E#?, kf6=\E#@, kf7=\E#A, kf8=\E#B, kf9=\E#C, khome=\E#G,
-	kil1=\E#R, kind=\E#2, kri=\E#8, lf0=f10, nel=^M^J, rc=\Ek,
-	ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
-	smcup=\Ee, smso=\Ep,
-
-#### Commodore Business Machines
-#
-# Formerly located in West Chester, PA; went spectacularly bust in 1994
-# after years of shaky engineering and egregious mismanagement.  Made one
-# really nice machine (the Amiga) and boatloads of nasty ones (PET, C-64,
-# C-128, VIC-20).  The C-64 is said to have been the most popular machine
-# ever (most units sold); they can still be found gathering dust in closets
-# everywhere.
-#
-
-# From: Kent Polk <kent@swrinde.nde.swri.edu>, 30 May 90
-# Added a few more entries, converted caret-type control sequence (^x) entries
-# to '\0xx' entries since a couple of people mentioned losing '^x' sequences.
-# Corrections by Ty Sarna <tsarna@endicor.com>, Sat Feb 28 18:55:15 1998
-#
-# :as:, :ae:			Support for alternate character sets.
-# :ve=\E[\040p:vi=\E[\060\040p:	cursor visible/invisible.
-# :xn:  vt100 kludginess at column 80/NEWLINE ignore after 80 cols(Concept)
-#     This one appears to fix a problem I always had with a line ending
-#     at 'width+1' (I think) followed by a blank line in vi. The blank
-#     line tended to disappear and reappear depending on how the screen
-#     was refreshed. Note that this is probably needed only if you use
-#     something like a Dnet Fterm with the window sized to some peculiar
-#     dimension larger than 80 columns.
-# :k0=\E9~:	map F10 to k0 - could have F0-9 -> k0-9, but ... F10 was 'k;'
-# (amiga: removed obsolete :kn#10:,
-# also added empty <acsc> to suppress a warning --esr)
-amiga|Amiga ANSI,
-	OTbs, am, bw, xenl,
-	cols#80, lines#24,
-	acsc=, bel=^G, blink=\E[7;2m, bold=\E[1m, cbt=\E[Z,
-	civis=\E[0 p, clear=\E[H\E[J, cnorm=\E[ p, cub=\E[%p1%dD,
-	cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
-	indn=\E[%p1%dS, invis=\E[8m, is2=\E[20l, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[9~,
-	kf1=\E[0~, kf2=\E[1~, kf3=\E[2~, kf4=\E[3~, kf5=\E[4~,
-	kf6=\E[5~, kf7=\E[6~, kf8=\E[7~, kf9=\E[8~, rev=\E[7m,
-	ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmso=\E[m, rmul=\E[m,
-	rs1=\Ec, sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
-
-# From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995
-# (amiga: added empty <acsc> to suppress a warning.
-# I'm told this entry screws up badly with AS225, the Amiga
-# TCP/IP package once from Commodore, and now sold by InterWorks.--esr)
-amiga-h|Hans Verkuil's Amiga ANSI,
-	OTbs, bw, msgr,
-	cols#80, lines#24,
-	acsc=, bel=^G, blink=\2337;2m, bold=\2331m, cbt=\233Z,
-	civis=\2330 p, clear=\233H\233J, cnorm=\233 p, cr=^M,
-	cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
-	cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
-	cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
-	dim=\2332m, ech=\233%p1%dP, ed=\233J, el=\233K, flash=^G,
-	home=\233H, ht=^I, ich=\233%p1%d@, ich1=\233@, ind=\233S,
-	indn=\233%p1%dS, invis=\2338m, is2=\23320l, kbs=^H,
-	kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
-	kdch1=\177, kf0=\2339~, kf1=\2330~, kf2=\2331~, kf3=\2332~,
-	kf4=\2333~, kf5=\2334~, kf6=\2335~, kf7=\2336~, kf8=\2337~,
-	kf9=\2338~, nel=\233B\r, rev=\2337m, ri=\233T,
-	rin=\233%p1%dT, rmacs=^O, rmcup=\233?7h, rmso=\2330m,
-	rmul=\2330m, rs1=\Ec, sgr0=\2330m, smacs=^N, smcup=\233?7l,
-	smso=\2337m, smul=\2334m,
-
-# From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999
-#
-# Pavel Fedin added
-#	Home    Shift+Left
-#	End     Shift+Right
-#	PgUp    Shift+Up
-#	PgDn    Shift+Down
-amiga-8bit|Amiga ANSI using 8-bit controls,
-	acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
-	ind=\204, indn@, kend=\233 @, khome=\233 A, knp=\233S,
-	kpp=\233T, ri=\215, rin@, use=amiga-h,
-
-# From: Ruediger Kuhlmann <terminfo@ruediger-kuhlmann.de>, 18 Jul 2000
-# requires use of appropriate preferences settings.
-amiga-vnc|Amiga using VNC console (black on light gray),
-	am, da, db, msgr, ndscr,
-	btns#1, colors#16, cols#80, lines#24, lm#0, ncv#0, pairs#256,
-	bel=^G, blink=\E[7;2m, bold=\E[1m, civis=\E[0p,
-	clear=\E[H\E[J, cnorm=\E[p\E[>?6l, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\E[>?6h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-	dl=\E[%p1%dM, dl1=\E[1M, ed=\E[J, el=\E[K, flash=^G,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
-	indn=\E[%p1%dS, invis=\E8m,
-	is2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h,
-	kbs=^H, kcbt=\233Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kdch1=\177, kf0=\E[9~, kf1=\E[0~, kf2=\E[1~,
-	kf3=\E[2~, kf4=\E[3~, kf5=\E[4~, kf6=\E[5~, kf7=\E[6~,
-	kf8=\E[7~, kf9=\E[8~, khlp=\E[?~, khome=\E[44~, kll=\E[45~,
-	kmous=\E[M, knp=\E[42~, kpp=\E[41~, nel=\EE, oc=\E[0m,
-	rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=\E[?7h\E[r\E[J,
-	rmkx=\E[?1l, rmso=\E[21m, rmul=\E[24m, rs1=\Ec,
-	rs2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h,
-	setab=\E[%?%p1%{8}%>%t%'F'%p1%+%d%e4%p1%d%;m,
-	setaf=\E[%?%p1%{8}%>%t%'2'%p1%+%d%e3%p1%d%;m,
-	sgr0=\E[0m\017\E[30;85;>15m, smcup=\E[?7h, smkx=\E[?1h,
-	smso=\E[1m, smul=\E[4m,
-
-# MorphOS on Genesi Pegasos
-# By Pavel Fedin <sonic_amiga@rambler.ru>
-morphos,
-	acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
-	ind=\204, indn@, kend=\23345~, kf11=\23320~, kf12=\23321~,
-	khome=\23344~, kich1=\23340~, knp=\23342~, kpp=\23341~,
-	ri=\215, rin@, use=amiga-h,
-
-# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA>
-# 	I'm trying to write a termcap for a commodore b-128, and I'm
-# having a little trouble. I've had to map most of my control characters
-# to something that unix will accept (my delete-char is a ctrl-t, etc),
-# and create some functions (like cm), but thats life.
-# 	The problem is with the arrow keys - right, and up work fine, but
-# left deletes the previous character and down I just can't figure out.
-# Jove knows what I want, but I don't know what it's sending to me (it
-# isn't thats bound to next-line in jove).
-# 	Anybody got any ideas? Here's my termcap.
-# DAG -- I changed his "^n" entries to "\n"; see if that works.
-#
-commodore|b-128|Commodore B-128 micro,
-	am, bw,
-	OTdN#20, cols#80, lines#24, pb#150,
-	OTbc=^H, OTnl=^M, clear=\E\006$<10/>, cr=^M, cud1=^J,
-	cuf1=^F, cup=\E\013%p1%2d\,%p2%2d\,$<20/>, cuu1=^P,
-	dch1=\177$<10*/>, dl1=\Ed$<10*/>, el=\Eq$<10/>,
-	home=\E^E, ht=\011$<5/>, ich1=\E\n$<5/>, il1=\Ei$<10/>,
-	kcub1=^B, kcud1=^J, kcuf1=^F, kcuu1=^P, khome=\E^E, rmir=,
-	smir=,
-
-#### North Star
-#
-# North Star Advantage from Lt. Fickie <brl-ibd!fickie> via BRL
-northstar|North Star Advantage,
-	OTbs,
-	cols#80, lines#24,
-	clear=\004$<200/>,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<1/>, ed=\017$<200/>,
-	el=\016$<200/>, home=\034\032$<200/>,
-
-#### Osborne
-#
-# Thu Jul  7 03:55:16 1983
-#
-# As an aside, be careful; it may sound like an anomaly on the
-# Osborne, but with the 80-column upgrade, it's too easy to
-# enter lines >80 columns!
-#
-# I've already had several comments...
-# The Osborne-1 with the 80-col option is capable of being
-# 52, 80, or 104 characters wide; default to 80 for compatibility
-# with most systems.
-#
-# The tab is destructive on the Ozzie; make sure to 'stty -tabs'.
-osborne-w|osborne1-w|osborne I in 104-column mode,
-	msgr, ul, xt,
-	cols#104, lines#24,
-	bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, el=\ET, ich1=\EQ, il1=\EE, ind=^J, kcub1=^H, kcud1=^J,
-	kcuf1=^L, kcuu1=^K, rmso=\E(, rmul=\Em, smso=\E), smul=\El,
-# Osborne I	from ptsfa!rhc (Robert Cohen) via BRL
-osborne|osborne1|osborne I in 80-column mode,
-	OTbs, am, mir, msgr, ul, xhp,
-	OTdB#4, cols#80, lines#24,
-	clear=^Z, cub1=\010$<4>, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
-	dch1=\EW$<4/>, dl1=\ER, el=\ET, il1=\EE, is2=^Z, kbs=^H,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, rmir=, rmso=\E),
-	rmul=\Em, smir=\EQ, smso=\E(, smul=\El,
-#
-# Osborne Executive definition from BRL
-# Similar to tvi920
-# Added by David Milligan and Tom Smith (SMU)
-osexec|Osborne executive,
-	OTbs, am,
-	OTug#1, cols#80, lines#24, xmc#1,
-	OTnl=^J, bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
-	is2=\Eq\Ek\Em\EA\Ex0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
-	kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
-	kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
-	kf9=^AI\r, rmir=, rmso=\Ek, rmul=\Em, smir=, smso=\Ej,
-	smul=\El, tbc=\E3,
-
-#### Console types for obsolete UNIX clones
-#
-# Coherent, Minix, Venix, and several lesser-known kin were OSs for 8088
-# machines that tried to emulate the UNIX look'n'feel.  Coherent and Venix
-# were commercial, Minix an educational tool sold in conjunction with a book.
-# Memory-segmentation limits and a strong tendency to look like V7 long after
-# it was obsolete made all three pretty lame.  Venix croaked early.  Coherent
-# and Minix were ported to 32-bit Intel boxes, only to be run over by a
-# steamroller named `Linux' (which, to be fair, traces some lineage to Minix).
-# Coherent's vendor, the Mark Williams Company, went belly-up in 1994.  There
-# are also, I'm told, Minix ports that ran on Amiga and Atari machines and
-# even as single processes under SunOS and the Macintosh OS.
-#
-
-# This is the entry provided with minix 1.7.4, with bogus :ri: removed.
-minix|minix console (v1.7),
-	am, xenl,
-	cols#80, it#8, lines#25,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S,
-	kf5=\E[G, khome=\E[H, lf0=End, lf1=PgUp, lf2=PgDn, lf3=Num +,
-	lf4=Num -, lf5=Num 5, nel=^M^J, rev=\E[7m, ri=\EM,
-	rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
-# Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
-minix-old|minix console (v1.5),
-	xon,
-	cols#80, it#8, lines#25,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-	kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S, kf5=\E[G,
-	khome=\E[H, nel=^M^J, rev=\E[7m, ri=\EM, rmso=\E[0m,
-	rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
-# The linewrap option can be specified by editing /usr/include/minix/config.h
-# before recompiling the minix 1.5 kernel.
-minix-old-am|minix console with linewrap,
-	am, use=minix-old,
-
-pc-minix|minix console on an Intel box,
-	use=klone+acs, use=minix,
-
-# According to the Coherent 2.3 manual, the PC console is similar
-# to a z19. The differences seem to be (1) 25 lines, (2) no status
-# line, (3) standout is broken, (4) ins/del line is broken, (5)
-# has blinking and bold.
-pc-coherent|pcz19|coherent|IBM PC console running Coherent,
-	am, mir,
-	cols#80, it#8, lines#25,
-	bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EN,
-	ed=\EJ, el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, ri=\EI, rmir=\EO,
-	rmso=\Eq, sgr0=\Eq, smir=\E@, smso=\Ep,
-
-# According to the Venix 1.1 manual, the PC console is similar
-# to a DEC vt52.  Differences seem to be (1) arrow keys send
-# different strings, (2) enhanced standout, (3) added insert/delete line.
-# Note in particular that it doesn't have automatic margins.
-# There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they
-# not described here because this derives from an old termcap entry.
-pc-venix|venix|IBM PC console running Venix,
-	cols#80, it#8, lines#25,
-	bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
-	ed=\EJ, el=\EK, ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\EK,
-	kcud1=\EP, kcuf1=\EM, kcuu1=\EH, khome=\EG, ri=\EI,
-
-#### Miscellaneous microcomputer consoles
-#
-# If you know anything more about any of these, please tell me.
-#
-
-# The MAI Basic Four computer was obsolete at the end of the 1980s.
-# It may be used as a terminal by putting it in "line" mode as seen on
-# one of the status lines.
-# Initialization is similar to CIT80. <is2> will set ANSI mode for you.
-# Hardware tabs set by <if> at 8-spacing.  Auto line wrap causes glitches so
-# wrap mode is reset by <cvvis>.  Using <ind>=\E[S caused errors so I
-# used \ED instead.
-# From: bf347@lafn.org (David Lawyer), 28 Jun 1997
-mai|basic4|MAI Basic Four in ansi mode,
-	am, da, db, mir, msgr,
-	cols#82, it#8, lines#25,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=^]^_, cnorm=\E[?7h,
-	cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=^X,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, cvvis=\E[?7l, dch1=\E[1P,
-	dl1=\E[M, ed=^_, el=^^, home=^], ht=^I,
-	if=/usr/local/share/tabset/vt100, il1=\E[L, ind=\ED,
-	is2=\E>\E[?1h\E[?7h\E[?5l\017\E(B\E[m\E[20l\E[1;24r\E[24;1H,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
-	kf7=\EOV, kf8=\EOW, nel=^M\ED, rc=\E8, rev=\E[7m, ri=\E[T,
-	rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m,
-	smir=\E[4h, smso=\E[7m, smul=\E[4m,
-# basis from Peter Harrison, Computer Graphics Lab, San Francisco
-#   ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA
-#
-# On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote:
-# The Basis 108 was a Apple II clone, manufactured by the "Basis
-# Mikrocomputer GmbH" in Munster, Germany (the company still exists today,
-# about 1,5 km from where I live, but doesn't build own computers any
-# more). A Basis 108 featured a really heavy (cast aluminium?) case, was
-# equipped with one or two 5.25" disk drives, had a monochrome and colour
-# video output for a TV set or a dedicated monitor and several slots for
-# Apple II cards. Basis 108 were quite popular at german schools before
-# the advent of the IBM PC. They run, for example, the UCSD Pascal
-# development system (which I used even in 1993 to program the steering
-# and data recording for our school's experimental solar panel :), Apple DOS
-# or CP/M.
-# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr)
-basis|BASIS108 computer with terminal translation table active,
-	clear=\E*$<300/>, cud1=\n$<5000/>, ed=\EY, el=\ET, kbs=^H,
-	kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, rmso=\E), sgr0=\E),
-	smso=\E(, use=adm3a,
-# luna's BMC terminal emulator
-luna|luna68k|LUNA68K Bitmap console,
-	cols#88, lines#46, use=ansi-mini,
-megatek|pegasus workstation terminal emulator,
-	am, os,
-	cols#83, lines#60,
-# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived
-# interface (pre-Macintosh by several years) that went nowhere.
-xerox820|x820|Xerox 820,
-	am,
-	cols#80, lines#24,
-	bel=^G, clear=1^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^Q, el=^X,
-	home=^^, ind=^J,
-
-#### Videotex and teletext
-#
-
-# \E\:1}	switch to te'le'informatique mode (ascii terminal/ISO 6429)
-# \E[?3l	80 columns
-# \E[?4l	scrolling on
-# \E[12h	local echo off
-# \Ec		reset: G0 U.S. charset (to get #,@,{,},...), 80 cols, clear screen
-# \E)0		G1 DEC set (line graphics)
-#
-# From: Igor Tamitegama <igor@ppp1493-ft.teaser.fr>, 18 Jan 1997
-m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel 2 mode te'le'informatique,
-	OTbs, eslok, hs, xenl,
-	cols#80, it#8, lines#24, wsl#72, xmc#0,
-	acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx, bel=^G,
-	blink=\E[5m, bold=\E[1m, civis=\E[<1h, clear=\E[H\E[J,
-	cnorm=\E[<1l, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, flash=^G, fsl=^J,
-	home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J, ip=$<7/>,
-	is1=\E\:1}\Ec\E[?4l\E[12h, is2=\Ec\E[12h\E)0,
-	is3=\E[?3l kbs=\010, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kf0=\EOp,
-	kf1=\EOq, kf10=\EOp, kf2=\EOr, kf3=\EOs, kf4=\EOt, kf5=\EOu,
-	kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, khome=\E[H,
-	kich1=\E[4h, kil1=\E[4l, knp=\EOn, kpp=\EOR, ll=\E[24;80H,
-	mc0=\E[i, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
-	rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
-	rs1=\Ec\E[?4l\E[12h, rs2=\Ec\E)0, sc=\E7, sgr0=\E[m,
-	smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=^_@A,
-	u6=\E[%i%d;%dR, u7=\E[6n,
-
-# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998
-#
-minitel1|minitel 1,
-	am, bw, eslok, hs, hz, msgr,
-	colors#8, cols#40, lines#24, pairs#8,
-	acsc=+.\,\,./f0g1, bel=^G, blink=\EH, civis=^T, clear=^L,
-	cnorm=^Q, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
-	cup=\037%p1%{65}%+%c%p2%{65}%+%c, cuu1=^K, el=^X,
-	enacs=^Y, fsl=^J, home=^^, ind=^J,
-	is2=\E;`ZQ\E\:iC\E\:iE\021, nel=^M^J, op=\EG,
-	rep=%p1%c\022%p2%{63}%+%c, rev=\E], ri=^K, rmso=\E\\,
-	setf=\E%?%p1%{1}%=%tD%e%p1%{3}%=%tF%e%p1%{4}%=%tA%e%p1%{6}%=%tC%e%p1%{64}%+%c%;,
-	sgr=%?%p1%t\E]%;%?%p3%t\E]%;%?%p4%t\EH%;,
-	sgr0=\EI\E\\, smso=\E], tsl=\037@%p1%{65}%+%c,
-# is2=Fnct TE, Fnct MR, Fnct CM et pour finir: curseur ON.
-minitel1b|minitel 1-bistandard (in 40cols mode),
-	mir,
-	cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-	cuu=\E[%p1%dA, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el1=\E[1K, il=\E[%p1%dL, il1=\E[L,
-	is1=\E;iYA\E;jYC, kclr=\E[2J, kctab=^I, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
-	kel=^X, khome=\E[H, kich1=\E[4h, kil1=\E[L, rmir=\E[4l,
-	smir=\E[4h, smkx=\E;iYA\E;jYC, use=minitel1,
-# <rmkx> posait des problemes (logout en sortant de vi).
-minitel1b-80|minitel 1-bistandard (standard teleinformatique),
-	am@, bw@, hz@,
-	colors@, cols#80, it#8, pairs@,
-	blink=\E[5m, bold=\E[1m, civis=\037@A\024\n,
-	clear=\E[H\E[2J, cnorm=\037@A\021\n, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
-	ht=^I, ind=\ED, is1@, is2@, kent=\EOM, kf0=\EOp, kf1=\EOq,
-	kf2=\EOr, kf3=\EOs, kf4=\EOt, kf5=\EOu, kf6=\EOv, kf7=\EOw,
-	kf8=\EOx, kf9=\EOy, nel=\EE, op@, rc=\E8, rep@, rev=\E[7m,
-	ri=\EM, rmkx@, rmso=\E[27m, rmul=\E[24m, sc=\E7, setf@,
-	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-	sgr0=\E[m, smkx@, smso=\E[7m, smul=\E[4m, use=minitel1b,
-
-######## OBSOLETE VDT TYPES
-#
-# These terminals are *long* dead -- these entries are retained for
-# historical interest only.
-
-#### Amtek Business Machines
-#
-
-# (abm80: early versions of this entry apparently had ":se=\E^_:so=\E^Y",
-# but these caps were commented out in 8.3; also, removed overridden
-# ":do=^J:" -- esr)
-abm80|amtek business machines 80,
-	OTbs, am, bw,
-	cols#80, lines#24,
-	cbt=^T, clear=\E^\, cub1=^H, cud1=\E^K, cuf1=^P,
-	cup=\E\021%p2%{32}%+%c%p1%{32}%+%c, cuu1=\E^L,
-	dl1=\E^S, ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z,
-
-#### Bell Labs blit terminals
-#
-# These were AT&T's official entries.  The 5620 FAQ maintained by
-# David Breneman <daveb@dgtl.com> has this to say:
-#
-#  Actually, in the beginning was the Jerq, and the Jerq was white with a
-#  green face, and Locanthi and Pike looked upon the Jerq and said the Jerq
-#  was good.  But lo, upon the horizon loomed a mighty management-type person
-#  (known now only by the initials VP) who said, the mighty Jerq must stay
-#  alone, and could not go forth into the world. So Locanthi and Pike put the
-#  Jerq to sleep, cloned its parts, and the Blit was brought forth unto the
-#  world. And the Jerq lived the rest of its days in research, but never
-#  strayed from those paths.
-#
-#  In all seriousness, the Blit was originally known as the Jerq, but when
-#  it started to be shown outside of the halls of the Bell Labs Research
-#  organization, the management powers that be decided that the name could
-#  not remain. So it was renamed to be Blit. This was in late 1981.
-#
-# (The AT&T 5620 was the commercialized Blit.  Its successors were the 630,
-# 730, and 730+.)
-#
-
-blit|jerq|blit running teletype rom,
-	am, eo, ul, xon,
-	cols#87, it#8, lines#72,
-	bel=^G, clear=^L, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
-	cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
-	dch=\Ee%p1%{32}%+%c, dch1=\Ee!, dl=\EE%p1%{32}%+%c,
-	dl1=\EE!, el=\EK, ht=^I, ich=\Ef%p1%{32}%+%c, ich1=\Ef!,
-	il=\EF%p1%{32}%+%c, il1=\EF!, ind=^J, kbs=^H, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ex, kf2=\Ey, kf3=\Ez,
-
-# (cbblit: here's a BSD termcap that says <cud1=\EG> -- esr)
-cbblit|fixterm|blit running columbus code,
-	cols#88,
-	ed=\EJ, flash=\E^G, ich1@, mc4=^T, mc5=^R, mc5p=\EP%p1%03d,
-	rmir=\ER, rmso=\EV!, rmul=\EV", smir=\EQ, smso=\EU!,
-	smul=\EU", use=blit,
-
-oblit|ojerq|first version of blit rom,
-	am, da, db, eo, mir, ul, xon,
-	cols#88, it#8, lines#72,
-	bel=^G, clear=^L, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
-	cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dch1=\EO,
-	dl=\Ee%p1%{32}%+%c, dl1=\EE, ed=\EJ, el=\EK, flash=\E^G,
-	ht=^I, il=\Ef%p1%{32}%+%c, il1=\EF, ind=^J, kbs=^H, rmir=\ER,
-	smir=\EQ,
-
-#### Bolt, Beranek & Newman (bbn)
-#
-# The BitGraph was a product of the now-defunct BBN Computer Corporation.
-# The parent company, best known as the architects of the Internet, is
-# still around.
-#
-# Jeff DelPapa <dp@world.std.com> writes:
-# The bitgraph was a large white box that contained a monochrome bitmap
-# display, and a 68000 to run it.  You could download code and run it on
-# the cpu, it had 128kb (I think) of memory.  I used one in the late
-# 70's, sure beat a vt100.  It had one strange feature tho -- it used
-# the cpu to bitblt pixels to scroll, it took longer than the refresh
-# rate, and looked like a rubber sheet stretching, then snapping
-# upwards.  It had everything the early mac had, except a floppy drive a
-# small screen (it had a 17" crisp beauty) and a real OS. They (Bolt
-# Beranek and Neuman) sold at most a few hundred of them to the real
-# world.  DOD may have bought more...
-#
-
-# Entries for the BitGraph terminals.  The problem
-# with scrolling in vi can only be fixed by getting BBN to put
-# smarter scroll logic in the terminal or changing vi or padding
-# scrolls with about 500 ms delay.
-#
-# I always thought the problem was related to the terminal
-# counting newlines in its input buffer before scrolling and
-# then moving the screen that much. Then vi comes along and
-# paints lines in on the bottom line of the screen, so you get
-# this big white gap.
-
-bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video),
-	flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
-	use=bg2.0,
-bg2.0rv|bg3.10rv|bbn bitgraph 2.0 (reverse video),
-	flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
-	use=bg2.0,
-bg2.0|bg3.10|bbn bitgraph 2.0 or later (no init),
-	OTbs, xenl,
-	cols#85, lines#64,
-	bel=^G, clear=\E[H\E[J$<150>, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, dl1=\E[M$<2*>,
-	ed=\E[J$<150>, el=\E[K$<2>, ht=^I, il1=\E[L$<2*>,
-	ind=\n$<280>, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-	kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=PF1,
-	lf2=PF2, lf3=PF3, lf4=PF4, rc=\E8, rmkx=\E>, rmso=\E[m, sc=\E7,
-	sgr0=\E[m, smkx=\E=, smso=\E[7m,
-
-bg1.25rv|bbn bitgraph 1.25 (reverse video),
-	flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
-	use=bg1.25,
-bg1.25nv|bbn bitgraph 1.25 (normal video),
-	flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
-	use=bg1.25,
-# (bg1.25: I added <rmam>/<smam> based on the init string -- esr)
-bg1.25|bbn bitgraph 1.25,
-	cols#85, lines#64,
-	bel=^G, clear=\E[H\E[J$<150>, cr=^M, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A,
-	dl1=\E[M$<2*>, ed=\E[J$<150>, el=\E[K$<2>, ht=^I,
-	il1=\E[L$<2*>, ind=\n$<280>, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\ES,
-	lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, ll=\E[64;1H, rmam=\E[?7l,
-	rmkx=\E>, rmso=\E[m, sgr0=\E[m, smam=\E[?7h, smkx=\E=,
-	smso=\E[7m,
-
-#### Bull (bq, dku, vip)
-#
-# (Adapted for terminfo; AIX extension capabilities translated -- esr)
-
-#============================================#
-# BULL QUESTAR 210 `SDP' terminals emulation #
-#============================================#
-#
-# Description written by R.K.Saunders (Bull Transac)
-#
-# Modifications written by F. Girard (Bull MTS)
-#		19-05-87 V02.00.01
-#		17-12-87 V02.00.02
-#		15-09-89 V02.00.05
-#
-#	Typical technical selections F1 (modes SDP/ROLL):
-# -------------------------------------------------------
-# |   01   02   03   04   05   06   07   08   09   10   |
-# |  1010 0011 1010 0110 0110 0001 0100 0000 0000 0000  |
-# |                                                     |
-# |   11   12   13   14   15   16   17   18   19   20   |
-# |  0000 0110 100? 0000 0000 0000 0001 0000 0000 0001  |
-# |                                                     |
-# |   21   22   23   24   25   26   27   28   29   30   |
-# |  0011 0000 0001 1000 0000 0000 0000 0000 0000 0000  |
-# |                                                     |
-# |   31   32   33   34   35   36   37   38   39   40   |
-# |  1010 0011 0000 0000 0000 0000 0000 0000 0000 0000  |
-# -------------------------------------------------------
-#	Typical firmware identification F5 "etat 6":
-#  P287.02.04b	(AZERTY)
-#  P297.11.04	(24-pin: 2732)	or P798.11.04	(28-pin: 2764)
-#  P298.03.03	(monochrome)	or P374.03.02	(colour)
-#
-#	SM SDP mode (VIP command):	^[[?=h
-#	RIS (erases screen):		^[c
-#	DMI disable keyboard:		^[`
-#	SM double rendition mode:	^[[?>h
-#	RM solicited status mode:	^[[5l
-#	RM character mode:		^[[>l
-#	RM echoplex mode:		^[[12l
-#	RM column tab mode:		^[[18l
-#	RM forbid SS2 keyboard mode:	^[[?<l
-#	SM scroll mode:			^[[=h
-#	FCF enable XON/XOFF:		^[P1s^[\
-#	MTL select end msg character:	^[[^Wp
-#	EMI enable keyboard:		^[b
-#	RIS retour etat initial:	^[c
-#	enable FC keypad:		^[[?<h,
-#	MPW map status line window:	^[PY99:98^[\
-#	SCP select status line:		^[[0;98v
-#	ED erase entire partition:	^[[2J
-#	SCP select main partition:	^[[v
-#	SM character insertion mode:	^[[4h
-#	RM character replacement mode:	^[[4l
-#	COO cursor on:			^[[r
-#	COO cursor off:			^[[1r
-#	SGR dim (turquoise) rev attr:	^[[2;7m
-#	SGR Data normal attr:		^[[m
-#	SO Line-graphic mode ON:	^N
-#	SI Line-graphic mode OFF:	^O
-#	MC start routing to printer:	^[[5i
-#	MC stop routing to printer:	^M^[[4i
-#
-
-# This entry covers the following terminals:
-# dku7102, tws2102, and tws models 2105 to 2112
-tws-generic|dku7102|Bull Questar tws terminals,
-	am, eslok, hs, mir, msgr, xenl, xhp@, xon,
-	cols#80, it#8, lines#24, wsl#80,
-	acsc=``aaffggj)k\,l&m#n/ooppq*rrsst'u-v+w.x%yyzz{{||}}~~,
-	bel=^G, blink=\E[0;5m, cbt=\E[Z, civis=\E[1r, clear=\E[2J,
-	cnorm=\E[r, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
-	cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dim=\E[0;2m, dl=\E[%p1%dM, dl1=\E[M,
-	dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[v, ed=\E[J, el=\E[K,
-	fsl=\E[v, home=\E[H, ht=\E[I, hts=\EH, il=\E[%p1%dL,
-	il1=\E[L, ind=^J, invis=\E[0;8m,
-	is1=\E[?=h\Ec\E`\E[?>h\EPY99\:98\E\\,
-	is2=\E[5;>;12;18;?<l\E[=h\EP1s\E\\\E[\027p,
-	is3=\Eb\E[?<h, kbs=^H, kcbt=\E[Z, kctab=\E[g, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
-	ked=\E[J, kel=\E[K, kf1=\E[1u\027, kf2=\E[2u\027,
-	kf3=\E[3u\027, kf4=\E[4u\027, kf5=\E[5u\027,
-	kf6=\E[6u\027, kf7=\E[7u\027, kf8=\E[8u\027, khome=\E[H,
-	khts=\EH, kil1=\E[L, krmir=\E[4l, ll=\E[H\E[A, mc0=\E[0i,
-	mc4=\r\E[4i, mc5=\E[5i, rev=\E[0;7m, rmacs=^O,
-	rmcup=\E[0;98v\E[2J\E[v, rmir=\E[4l, rmso=\E[m,
-	rmul=\E[m, rs2=\E[?=h\Ec, s0ds=^O, s1ds=^N,
-	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-	sgr0=\E[m\017, smacs=^N, smcup=\E[?>h\EPY99\:98\E\\,
-	smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[2g,
-	tsl=\EPY99\:98\E\\\E[0;98v\E[2;7m,
-tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA,
-	dsl=\E[0;98v\E[2J\E[v, fsl=\E[v, is3=\Eb, tsl=\E[0;98v,
-	use=tws-generic,
-tws2103|xdku|BULL Questar tws2103,
-	ht=^I, use=tws-generic,
-tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA,
-	ht=^I, use=tws2102-sna,
-dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6),
-	clear=\E[2J\E[H, cup@, dl@, dl1@,
-	dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[H\E[v, el=\E[K\E[m,
-	il@, il1@, tsl=\EPY99\:98\E\\\E[0;98v\E[H\E[2;7m,
-	use=tws-generic,
-dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
-	blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb,
-	smso=\E[0;4;5;7m, smul=\E[0;2m, use=tws-generic,
-
-#=========================================================#
-# BULL QUESTAR 303 & 310 `DEC VT 320' terminals emulation #
-#=========================================================#
-#
-# Description written by J. Staerck (BULL SA)
-#       Copyright (c) 1989 BULL SA
-#---------------------------------------------------------------------------
-#  This entry is used for terminals with vt320 emulation mode
-#  and following set-up :
-#    8 bit ISO Latin Character Set (ISO 8859-1),
-#    7 bit Control Characters,
-#    80 columns screen.
-#  Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300)
-#  They are used in string capabilities with vt220-320 emulation mode.
-#  In the following DEC definitions, two kinds of terminfo databases are
-#    provided :
-#    1. the first with Command Sequence Introducer starting with escape
-#       sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode.
-#    2. the second with Command Sequence Introducer starting with escape
-#       sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B.
-#	Soft Terminal Reset		esc [ ! p
-#	RIS (erases screen):		esc c
-#	DECKPNM numeric keypad mode:	esc >
-#	DECKPAM applic. keypad mode:	esc =
-#	DECSTBM Scrolling region:	esc [ r
-#	SCS select G0 = US:		esc ( B
-#	SCS select G1 = line-graphic:	esc ) 0
-#	Select 7-bit C1 controls:	esc sp F
-#	Select 8-bit C1 controls:	esc sp G
-#	Select cursor home:		esc [  H
-#	Select erase screen:		esc [  J
-#	SM KAM lock keyboard:		esc [ 2 h
-#	RM KAM unlock keyboard:		esc [ 2 l
-#	SM SRM local echo off:		esc [ 1 2 h
-#	RM SRM local echo on:		esc [ 1 2 l
-#	SM LNM New line :		esc [ 2 0 h
-#	RM LNM return = CR only:	esc [ 2 0 l
-#	SM DECCKM cursor keys mode:	esc [ ? 1 h
-#	RM DECCKM appli. keys mode:	esc [ ? 1 l
-#	SM DECANM ANSI mode on:		esc [ ? 2 h
-#	RM DECANM ANSI mode off:	esc [ ? 2 l
-#	SM DECCOLM 132-column screen:	esc [ ? 3 h
-#	RM DECCOLM 80-column screen:	esc [ ? 3 l
-#	SM DECSCLM Smooth scroll:	esc [ ? 4 h
-#	RM DECSCLM Jump scroll:		esc [ ? 4 l
-#	SM DECSCNM screen light backgr.	esc [ ? 5 h
-#	RM DECSCNM screen dark backgr.	esc [ ? 5 l
-#	SM DECOM move within margins:	esc [ ? 6 h
-#	RM DECOM move outside margins:	esc [ ? 6 l
-#	SM DECAWM auto right margin:	esc [ ? 7 h
-#	RM DECAWM auto right margin:	esc [ ? 7 l
-#	SM DECARM auto repeat:		esc [ ? 8 h
-#	RM DECARM auto repeat:		esc [ ? 8 l
-#	DECSASD Select active main:	esc [ 0 $ }
-#	DECSASD Select active status:	esc [ 1 $ }
-#	DECSSDT Select status none:	esc [ 0 $ ~
-#	DECSSDT Select status indic.:	esc [ 1 $ ~
-#	DECSSDT Select status host-wr:	esc [ 2 $ ~
-#	SM DECTCEM Visible cursor:	esc [ ? 2 5 h
-#	RM DECTCEM Invisible cursor:	esc [ ? 2 5 l
-#	SM DECNCRM 7 bits NCR set:	esc [ ? 4 2 h
-#	RM DECNCRM Multi or ISO latin:	esc [ ? 4 2 l
-#	SM DECNKM numeric keypad mode:	esc [ ? 6 6 h
-#	RM DECNKM numeric keypad appl.:	esc [ ? 6 6 l
-#	SM DECKBUM clavier informatique	esc [ ? 6 8 h
-#	RM DECKBUM clavier bureautique:	esc [ ? 6 8 l
-#	DECSCL vt300 mode 8-bit ctrl:	esc [ 6 3 " p
-# or	DECSCL vt300 mode 8-bit ctrl:	esc [ 6 3 ; 0 " p
-# or	DECSCL vt300 mode 8-bit ctrl:	esc [ 6 3 ; 2 " p
-#	DECSCL vt300 mode 7-bit ctrl:	esc [ 6 3 ; 1 " p
-#	Char. and Line attributes:	esc [ Ps ... Ps m
-# with:  0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
-# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
-#
-
-# This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
-bq300|Bull vt320 ISO Latin 1 80 columns terminal,
-	am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	dsl=\E[1$}\E[2$~\n\E[0$}, ech=\E[%p1%dX, ed=\E[J,
-	el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
-	flash=\E[?5h$<50>\E[?5l, fsl=\E[0$}, home=\E[H, ht=^I,
-	hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
-	is1=\E[63;1"p\E[2h,
-	is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
-	is3=\E[0$}\E[?25h\E[2l\E[H\E[J, ka1=\EOw, ka3=\EOy,
-	kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, kf10=\E[21~,
-	kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-	kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
-	kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS,
-	kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
-	khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
-	mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
-	ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
-	rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p,
-	rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
-	sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\E[0m\E(B, smacs=\E(0, smam=\E[?7h,
-	smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
-bq300-rv|Bull vt320 reverse 80 columns,
-	flash=\E[?5l$<50>\E[?5h,
-	is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
-	use=bq300,
-bq300-w|Bull vt320 132 columns,
-	cols#132, wsl#132,
-	is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
-	rs2=\E[?3h, use=bq300,
-bq300-w-rv|Bull vt320 reverse mode 132 columns,
-	cols#132, wsl#132,
-	flash=\E[?5l$<50>\E[?5h,
-	is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
-	rs2=\E[?3h, use=bq300,
-
-#  This entry is used for terminals with vt320 emulation mode
-#  and following set-up :
-#    8 bit ISO Latin Character Set (ISO 8859-1),
-#    8 bit Control Characters, (CSI coded as x9B for ESC [)
-#    80 columns screen.
-#	Soft Terminal Reset		csi ! p
-#	RIS (erases screen):		esc c
-#	DECKPNM numeric keypad mode:	esc >
-#	DECKPAM applic. keypad mode:	esc =
-#	DECSTBM Scrolling region:	esc [ r
-#	SCS select G0 = US:		esc ( B
-#	SCS select G1 = line-graphic:	esc ) 0
-#	Select 7-bit C1 controls:	esc sp F
-#	Select 8-bit C1 controls:	esc sp G
-#	Select cursor home:		csi H
-#	Select erase screen:		csi J
-#	SM KAM lock keyboard:		csi 2 h
-#	RM KAM unlock keyboard:		csi 2 l
-#	SM SRM local echo off:		csi 1 2 h
-#	RM SRM local echo on:		csi 1 2 l
-#	SM LNM New line :		csi 2 0 h
-#	RM LNM return = CR only:	csi 2 0 l
-#	SM DECCKM cursor keys mode:	csi ? 1 h
-#	RM DECCKM appli. keys mode:	csi ? 1 l
-#	SM DECANM ANSI mode on:		csi ? 2 h
-#	RM DECANM ANSI mode off:	csi ? 2 l
-#	SM DECCOLM 132-column screen:	csi ? 3 h
-#	RM DECCOLM 80-column screen:	csi ? 3 l
-#	SM DECSCLM Smooth scroll:	csi ? 4 h
-#	RM DECSCLM Jump scroll:		csi ? 4 l
-#	SM DECSCNM screen light backgr.	csi ? 5 h
-#	RM DECSCNM screen dark backgr.	csi ? 5 l
-#	SM DECOM move within margins:	csi ? 6 h
-#	RM DECOM move outside margins:	csi ? 6 l
-#	SM DECAWM auto right margin:	csi ? 7 h
-#	RM DECAWM auto right margin:	csi ? 7 l
-#	SM DECARM auto repeat:		csi ? 8 h
-#	RM DECARM auto repeat:		csi ? 8 l
-#	DECSASD Select active main:	csi 0 $ }
-#	DECSASD Select active status:	csi 1 $ }
-#	DECSSDT Select status none:	csi 0 $ ~
-#	DECSSDT Select status indic.:	csi 1 $ ~
-#	DECSSDT Select status host-wr:	csi 2 $ ~
-#	SM DECTCEM Visible cursor:	csi ? 2 5 h
-#	RM DECTCEM Invisible cursor:	csi ? 2 5 l
-#	SM DECNCRM 7 bits NCR set:	csi ? 4 2 h
-#	RM DECNCRM Multi or ISO latin:	csi ? 4 2 l
-#	DECSCL vt300 mode 8-bit ctrl:	csi 6 3 " p
-# or	DECSCL vt300 mode 8-bit ctrl:	csi 6 3 ; 0 " p
-#	DECSCL vt300 mode 7-bit ctrl:	csi 6 3 ; 1 " p
-#	Char. and Line attributes:	csi Ps ... Ps m
-# with:  0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
-# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
-# (bq300-8: <cub1>,<cuf1>,<cuu1>,<cud1>,<dl1>,<il1> to get under 1024 --esr)
-bq300-8|Bull vt320 full 8 bits 80 columns,
-	am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3, wsl#80,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\2335m, bold=\2331m, civis=\233?25l,
-	clear=\233H\233J, cnorm=\233?25h, cr=^M,
-	csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cud=\233%p1%dB,
-	cuf=\233%p1%dC, cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA,
-	dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM,
-	dsl=\2331$}\2332$~\n\2330$}, ech=\233%p1%dX, ed=\233J,
-	el=\233K, el1=\2331K, enacs=\E(B\E)0,
-	flash=\233?5h$<50>\233?5l, fsl=\2330$}, home=\233H,
-	ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, ind=\ED,
-	is1=\E[63;2"p\E[2h,
-	is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
-	is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w,
-	ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s,
-	kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
-	kdch1=\2333~, kf1=\217P, kf10=\23321~, kf11=\23323~,
-	kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
-	kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
-	kf2=\217Q, kf20=\23334~, kf3=\217R, kf4=\217S, kf6=\23317~,
-	kf7=\23318~, kf8=\23319~, kf9=\23320~, kfnd=\2331~,
-	khlp=\23328~, kich1=\2332~, knp=\2336~, kpp=\2335~,
-	krdo=\23329~, kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3,
-	lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8,
-	rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l, rmcup=\233?7h,
-	rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
-	rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
-	sgr=\233%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
-	sgr0=\2330m\E(B, smacs=^N, smam=\233?7h,
-	smcup=\233?7l\233?1l\E(B, smir=\2334h, smso=\2337m,
-	smul=\2334m, tbc=\2333g, tsl=\2331$}\2332$~,
-bq300-8rv|Bull vt320 8-bit reverse mode 80 columns,
-	flash=\233?5l$<50>\233?5h,
-	is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
-	use=bq300-8,
-bq300-8w|Bull vt320 8-bit 132 columns,
-	cols#132, wsl#132,
-	is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
-	rs2=\233?3h, use=bq300-8,
-bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns,
-	cols#132, wsl#132,
-	flash=\233?5l$<50>\233?5h,
-	is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
-	rs2=\233?3h, use=bq300-8,
-
-#  This entry is used for terminals with vt320 emulation mode
-#  a 102 keys keyboard (PC scancode !) and following set-up :
-#    8 bit ISO Latin Character Set (ISO 8859-1),
-#    7 bit Control Characters,
-#    80 columns screen.
-bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns,
-	kbs=^H, kdch1=\E[3~, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
-	kf11=\E[29~, kf12=\E[31~, kf13@, kf14@, kf15@, kf16@, kf17@,
-	kf18@, kf19@, kf2=\E[18~, kf20@, kf3=\E[19~, kf4=\E[20~,
-	kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~,
-	kfnd@, khlp@, khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-	krdo@, kslt@, lf1@, lf2@, lf3@, lf4@, use=bq300,
-bq300-pc-rv|Questar 303 with PC keyboard reverse mode 80 columns,
-	flash=\E[?5l$<50>\E[?5h,
-	is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
-	use=bq300-pc,
-bq300-pc-w|Questar 303 with PC keyboard 132 columns terminal,
-	cols#132, wsl#132,
-	is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
-	rs2=\E[?3h, use=bq300-pc,
-bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns,
-	cols#132, wsl#132,
-	flash=\E[?5l$<50>\E[?5h,
-	is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
-	rs2=\E[?3h, use=bq300-pc,
-#    8 bit ISO Latin Character Set (ISO 8859-1),
-#    8 bit Control Characters,
-#    80 columns screen.
-bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns,
-	kbs=^H, kdch1=\2333~, kend=\2334~, kf1=\23317~,
-	kf10=\23328~, kf11=\23329~, kf12=\23331~, kf13@, kf14@,
-	kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\23318~, kf20@,
-	kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
-	kf7=\23324~, kf8=\23325~, kf9=\23326~, kfnd@, khlp@,
-	khome=\2331~, kich1=\2332~, knp=\2336~, kpp=\2335~, krdo@,
-	kslt@, lf1@, lf2@, lf3@, lf4@, use=bq300-8,
-bq300-8-pc-rv|Questar 303 with PC keyboard full 8 bits reverse mode 80 columns,
-	flash=\E[?5l$<50>\E[?5h,
-	is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
-	use=bq300-8-pc,
-bq300-8-pc-w|Questar 303 with PC keyboard full 8 bits 132 columns,
-	cols#132, wsl#132,
-	is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
-	rs2=\E[?3h, use=bq300-8-pc,
-bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns,
-	cols#132, wsl#132,
-	flash=\E[?5l$<50>\E[?5h,
-	is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
-	rs2=\E[?3h, use=bq300-8-pc,
-
-#======================================================#
-# BULL QUESTAR 310 `VIP 7800/8800' terminals emulation #
-#======================================================#
-
-# normal mode, 8 bits, 80 columns terminal.
-#	RES reset :			^[e
-#	RIS reset initial state:	^[c
-#	BLE bell enable			^[h
-#	BLD bell disable		^[g
-#	CAMS char. attr. mode set	^[[D
-#	CAMR char. attr. mode reset	^[[G
-#	CLR clear			^[`
-#	KBU keyboard unlock (set)	^[[W
-#	KBL keyboard lock (reset)	^[[X
-#	CM  character mode (async.) 	^[k
-#	NEP non echoplex mode (by host)	^[l
-#	EP  echoplex mode (by host) 	^[m
-#	IM  insert mode set		^[[I
-#	IM  insert mode reset 		^[[J
-#	RMS roll mode set 		^[r
-#	RMR roll mode reset 		^[q
-#	SM78 set mode vip7800	 	^[[1q
-#	SD  scroll up  	(72 lines) 	^[[0s
-#	SD  scroll down	(72 lines) 	^[[1s
-#	RBM block mode reset		^[[E
-#	SLS status line set 		^[w
-#	SLR status line reset 		^[v
-#	SLL status line lock 		^[O
-#	LGS Line-graphic mode set 	^[G
-#	LGR Line-graphic mode reset 	^[F
-#	TBC tab clear (at cursor pos.)	^[[g
-#	TBI tab initialize 		^[[N
-#	TBS tab set (at cursor pos.)	^[p
-#	PDS  print data space		^[[0p
-#	PHD  print host data 		^[[3p
-#	PDT  print data terminator	^[[<p
-#	PRES print adapter reset	^[[2p
-#	SSPR multi-part. reset		^[[<>u
-#	SSP0 partition 0 set		^[[00u
-#	SSP1 partition n format 1 	^[[PnPnSTRINGu
-#	SSP2 partition n format 2 	^[[PnPnSTRINGu
-#	SSP3 partition n format 3 	^[[PnPnu
-#	ATR attribute (visual)
-#	    blink :			^[sB
-#	    dim :			^[sL
-#	    hide (blank) :		^[sH
-#	    restore :			^[sR
-#	    inverse video :		^[sI
-#	    prot. :			^[sP
-#	    underline :			^[s_
-#	    reset :			^{
-#
-# This covers the vip7800 and BQ3155-vip7800
-vip|Bull Questar 3155-7800,
-	am, eslok, hs, km, mc5i, msgr, xenl, xon,
-	cols#80, it#8, lines#24, vt#3, wsl#80,
-	acsc=0pjdkblamcnkqitgufvhwexj, bel=^G, blink=\EsB,
-	cbt=\E[Z, clear=\E`, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\E[%i%p1%03d%p2%03df, cuu1=\EA, dch1=\E[P, dim=\EsL,
-	dl1=\E[M, dsl=\Ev, ed=\EJ, el=\EK,
-	flash=\007$<80>\007$<80>\007, fsl=\EO, home=\EH, ht=^I,
-	hts=\Ep, ich1=\E[I, ind=^J, invis=\EsH,
-	is2=\E[00u\E[<>001001024080024080u\E[01u,
-	is3=\Er\E[W\E`, kHOM=\EH, kLFT=\Eo, kRIT=\Eu, kbs=^H,
-	kcbt=\E[Z, kclr=\E`, kctab=\E[g, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, kdch1=\E[P, kdl1=\E[M, ked=\EJ,
-	kel=\EK, kf1=\E0, kf10=\ET, kf11=\E\\, kf12=\E\^, kf13@, kf14@,
-	kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E2, kf20@, kf21=\E1,
-	kf22=\E5, kf23=\E7, kf24=\E9, kf25=\E;, kf26=\E=, kf27=\E?,
-	kf28=\EQ, kf29=\ES, kf3=\E6, kf30=\EV, kf31=\E], kf32=\E_,
-	kf4=\E8, kf5=\E\:, kf6=\E<, kf7=\E>, kf8=\EP, kf9=\ER,
-	khome=\EH, khts=\Ep, kich1=\E[I, kil1=\E[L, kind=\E[0s,
-	kll=\EH\EA, kri=\E[1s, krmir=\E[J, ktbc=\E[N, lf1=pf1,
-	lf2=pf2, lf3=pf3, lf4=pf4, ll=\EH\EA, mc0=\E[0p, mc4=\E[<p,
-	mc5=\E[3p, nel=^M, prot=\EsP, rev=\EsI,
-	ri=\EA\EJ\EH\E[L$<10>, rmacs=\EF, rmir=\E[J, rmso=\EsR,
-	rmul=\EsR, rs1=\Ec, rs2=\E[G, s0ds=\EF, s1ds=\EG,
-	sgr0=\EsR\EsU\EF, smacs=\EG, smir=\E[I, smso=\EsI,
-	smul=\Es_, tbc=\E[N, tsl=\Ew,
-# normal screen, 8 bits, 132 columns terminal.
-vip-w|vip7800-w|Q310-vip-w|Q310-vip-w-am|Questar 3155-vip7800 wide,
-	cols#132, wsl#132,
-	is2=\E[00u\E[<>001001024132024132u\E[01u, use=vip,
-vip-H|vip7800-H|Q310-vip-H|Q310-vip-H-am|Questar 3155-vip7800 72 lines,
-	lines#72,
-	is2=\E[00u\E[<>001001024080072080u\E[01u, use=vip,
-vip-Hw|vip7800-Hw|Q310-vip-Hw|Questar 3155-vip7800 wide 72 lines,
-	cols#132, lines#72, wsl#132,
-	is2=\E[00u\E[<>001001024132072132u\E[01u, use=vip,
-
-#### Chromatics
-#
-
-# I have put the long strings in <smcup>/<rmcup>. Ti sets up a window
-# that is smaller than the screen, and puts up a warning message
-# outside the window. Te erases the warning message, puts the
-# window back to be the whole screen, and puts the cursor at just
-# below the small window. I defined <cnorm> and <civis> to really turn
-# the cursor on and off, but I have taken this out since I don't
-# like the cursor being turned off when vi exits.
-cg7900|chromatics|chromatics 7900,
-	am,
-	cols#80, lines#40,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^],
-	cup=\001M%p2%d\,%p1%d\,, cuu1=^K, dch1=^A<1, dl1=^A<2,
-	ed=^Al, el=^A`, home=^\, ich1=^A>1, il1=^A>2, ind=^J, ll=^A|,
-	rmcup=\001W0\,40\,85\,48\,\014\001W0\,0\,85\,48\,\001M0\,40\,,
-	rmso=\001C1\,\001c2\,,
-	smcup=\001P0\001O1\001R1\001C4\,\001c0\,\014\001M0\,42\,WARNING DOUBLE ENTER ESCAPE and \025\001C1\,\001c2\,\001W0\,0\,79\,39\,,
-	smso=\001C4\,\001c7\,, uc=\001\001_\001\0,
-
-#### Computer Automation
-#
-
-ca22851|computer automation 22851,
-	am,
-	cols#80, lines#24,
-	bel=^G, clear=\014$<8>, cr=^M, cub1=^U, cud1=^J, cuf1=^I,
-	cup=\002%i%p1%c%p2%c, cuu1=^V, ed=^\, el=^], home=^^, ind=^J,
-	kcub1=^U, kcud1=^W, kcuu1=^V, khome=^^,
-
-#### Cybernex
-#
-
-# This entry has correct padding and the undocumented "ri" capability
-cyb83|xl83|cybernex xl-83,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\014$<62>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
-	cup=\027%p1%{32}%+%c%p2%{32}%+%c, cuu1=^N,
-	ed=\020$<62>, el=\017$<3>, home=^K, ind=^J, kcub1=^H,
-	kcud1=^J, kcuf1=^I, kcuu1=^N, ri=^N,
-# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr)
-cyb110|mdl110|cybernex mdl-110,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=\030$<70>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
-	cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
-	dch1=\016A\036$<3.5>, dl1=\016A\016\036$<40>,
-	ed=\016@\026$<6>, el=\016@\026$<145>, home=^Y,
-	ht=\011$<43>, ich1=\016A\035$<3.5>,
-	il1=\016A\016\035$<65>, ind=^J, rmso=^NG, smso=^NF,
-
-#### Datapoint
-#
-# Datapoint is gone.  They used to be headquartered in Texas.
-# They created ARCnet, an Ethernet competitor that flourished for a while
-# in the early 1980s before 3COM got wise and cut its prices.  The service
-# side of Datapoint still lives (1995) in the form of Intelogic Trace.
-#
-
-dp3360|datapoint|datapoint 3360,
-	OTbs, am,
-	cols#82, lines#25,
-	bel=^G, clear=^]^_, cr=^M, cub1=^H, cud1=^J, cuf1=^X, cuu1=^Z,
-	ed=^_, el=^^, home=^], ind=^J,
-
-# From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997
-# The Datapoint 8242 Workstation was sold at least between 1985
-# and 1989. To make the terminal work with this entry, press
-# CONTROL-INT-INT to take the terminal off-line, and type (opt).
-# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO
-# CR/LF off. Use control-shift-[] as escape key, control-I as tab,
-# shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in
-# fact unusable because the strings sent by the terminal conflict
-# with other keys).
-# The terminal is capable of displaying "box draw" characters.
-# For each graphic character you must send 2 ESC's (\E\E) followed
-# by a control character as follows:
-#         character        meaning
-#         =========        =======
-#         ctrl-E           top tee
-#         ctrl-F           right tee
-#         ctrl-G           bottom tee
-#         ctrl-H           left tee
-#         ctrl-I           cross
-#         ctrl-J           top left corner
-#         ctrl-K           top right corner
-#         ctrl-L           bottom left corner
-#         ctrl-M           bottom right corner
-#         ctrl-N           horizontal line
-#         ctrl-O           vertical line
-# Unfortunately this cannot be fitted into the termcap/terminfo
-# description scheme.
-dp8242|datapoint 8242,
-	msgr,
-	cols#80, lines#25,
-	bel=^G, civis=^Y, clear=\025\E\004\027\030, cnorm=^X,
-	cr=^M, cub1=^H, cud1=^J,
-	cup=\011%p2%'\0'%+%c%p1%'\0'%+%c, dl1=\E^Z, ed=^W, el=^V,
-	home=^U, ht=^I, il1=\E^T, ind=^C,
-	is1=\E\014\E\016\0\230\0\317\025\027\030\E\004,
-	kbs=^H, kcub1=^D, kcud1=^B, kcuf1=^F, kcuu1=^E, kf1=^G\Ee,
-	kf10=\EK\Ea, kf2=^I\Ed, kf3=^J\Ec, kf4=^J\Eb, kf5=^S\Ea,
-	kf6=\EO\Ee, kf7=\EN\Ed, kf8=\EM\Ec, kf9=\EL\Eb, nel=^M^J,
-	rep=\E\023%p1%c%p2%c, ri=^K, rmso=\E^D, rmul=\E^D,
-	rs1=\E\014\E\016\0\230\0\317\025\027\030\E\004,
-	smso=\E^E, smul=\E^F,
-	wind=\E\014\E\016%p1%'\0'%+%c%p2%'\0'%+%c%p3%'\0'%+%c%p4%'\0'%+%c\025,
-
-#### DEC terminals (Obsolete types: DECwriter and vt40/42/50)
-#
-# These entries are DEC's official terminfos for its older terminals.
-# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
-# Engineering for more information.  Updated terminfos and termcaps
-# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
-#
-
-gt40|dec gt40,
-	OTbs, os,
-	cols#72, lines#30,
-	bel=^G, cr=^M, cub1=^H, cud1=^J,
-gt42|dec gt42,
-	OTbs, os,
-	cols#72, lines#40,
-	bel=^G, cr=^M, cub1=^H, cud1=^J,
-vt50|dec vt50,
-	OTbs,
-	cols#80, lines#12,
-	bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cuu1=\EA, ed=\EJ, el=\EK, ht=^I, ind=^J,
-vt50h|dec vt50h,
-	OTbs,
-	cols#80, lines#12,
-	bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
-	el=\EK, ht=^I, ind=^J, ri=\EI,
-# (vt61: there's a BSD termcap that claims <dl1=\EPd>, <il1=\EPf.> <kbs=^H>)
-vt61|vt-61|vt61.5|dec vt61,
-	cols#80, lines#24,
-	bel=^G, clear=\EH\EJ$<120>, cr=\r$<20>, cub1=^H, cud1=^J,
-	cuf1=\EC$<20>, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<20>,
-	cuu1=\EA$<20>, ed=\EJ$<120>, el=\EK$<70>, ht=^I,
-	ind=\n$<20>, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-	ri=\E$<20>I,
-
-# The gigi does standout with red!
-# (gigi: I added <rmam>/<smam> based on the init string, corrected cub1 -- esr)
-gigi|vk100|dec gigi graphics terminal,
-	OTbs, am, xenl,
-	cols#84, lines#24,
-	bel=^G, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
-	el=\E[K, ht=^I, ind=^J,
-	is2=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
-	rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7;31m,
-	smul=\E[4m,
-
-# DEC PRO-350 console (VT220-style).  The 350 was DEC's attempt to produce
-# a PC differentiated from the IBM clones.  It was a total, ludicrous,
-# grossly-overpriced failure (among other things, DEC's OS didn't include
-# a format program, so you had to buy pre-formatted floppies from DEC at
-# a hefty premium!).
-pro350|decpro|dec pro console,
-	OTbs,
-	cols#80, it#8, lines#24,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	clear=\EH\EJ, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
-	el=\EK, home=\EH, ht=^I, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kf0=\EE, kf1=\EF, kf2=\EG, kf3=\EH, kf4=\EI,
-	kf5=\EJ, kf6=\Ei, kf7=\Ej, khome=\EH, ri=\EI, rmacs=\EG,
-	rmso=\E^N, rmul=\E^C, smacs=\EF, smso=\E^H, smul=\E^D,
-
-dw1|decwriter I,
-	OTbs, hc, os,
-	cols#72,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J,
-dw2|decwriter|dw|decwriter II,
-	OTbs, hc, os,
-	cols#132,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
-# \E(B		Use U.S. character set (otherwise # => british pound !)
-# \E[20l	Disable "linefeed newline" mode (else puts \r after \n,\f,\v)
-# \E[w   	10 char/in pitch
-# \E[1;132	full width horizontal margins
-# \E[2g		clear all tab stops
-# \E[z		6 lines/in
-# \E[66t	66 lines/page (for \f)
-# \E[1;66r	full vertical page can be printed
-# \E[4g		clear vertical tab stops
-# \E>		disable alternate keypad mode (so it transmits numbers!)
-# \E[%i%p1%du	set tab stop at column %d (origin == 1)
-#		(Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is
-#		a tab stop)
-#
-#       The dw3 does standout with wide characters.
-#
-dw3|la120|decwriter III,
-	OTbs, hc, os,
-	cols#132,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J,
-	is1=\E(B\E[20l\E[w\E[0;132s\E[2g\E[z\E[66t\E[1;66r\E[4g\E>,
-	is2=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u\r,
-	kbs=^H, rmso=\E[w, sgr0=\E[w, smso=\E[6w,
-dw4|decwriter IV,
-	OTbs, am, hc, os,
-	cols#132,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, is2=\Ec, kbs=^H,
-	kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
-
-# These aren't official
-ln03|dec ln03 laser printer,
-	hc,
-	cols#80, lines#66,
-	bel=^G, cr=^M, cud1=^J, hd=\EK, ht=^I, hu=\EL, ind=^J, nel=^M^J,
-	rmso=\E[22m, rmul=\E[24m, sgr0=\E[m, smso=\E[1m,
-	smul=\E[4m,
-ln03-w|dec ln03 laser printer 132 cols,
-	cols#132,
-	bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H,
-	kcud1=^J, nel=^M^J, use=ln03,
-
-#### Delta Data (dd)
-#
-
-# Untested. The cup sequence is hairy enough that it probably needs work.
-# The idea is ctrl(O), dd(row), dd(col), where dd(x) is x - 2*(x%16) + '9'.
-# There are BSD-derived termcap entries floating around for this puppy
-# that are *certainly* wrong.
-delta|dd5000|delta data 5000,
-	OTbs, am,
-	cols#80, lines#27,
-	bel=^G, clear=^NR, cub1=^H, cud1=^J, cuf1=^Y,
-	cup=\017%p1%p1%{16}%m%{2}%*%-%{57}%+%c%p2%p2%{16}%m%{2}%*%-%{57}%+%c,
-	cuu1=^Z, dch1=^NV, el=^NU, home=^NQ, ind=^J,
-
-#### Digital Data Research (ddr)
-#
-
-# (ddr: I added <rmam>/<smam> based on the init string -- esr)
-ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator,
-	OTbs, am, xenl,
-	cols#80, it#8, lines#24, vt#3,
-	blink=\E[5m$<2/>, bold=\E[1m$<2/>,
-	clear=\E[H\E[2J$<50/>, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
-	cud1=^J, cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
-	cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
-	ht=^I, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H, kbs=^H,
-	kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
-	kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
-	rf=/usr/local/share/tabset/vt100, ri=\EM$<5/>, rmam=\E[7l,
-	rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m$<2/>,
-	rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-	sgr0=\E[m$<2/>, smam=\E[7l, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m$<2/>,
-
-#### Evans & Sutherland
-#
-
-# Jon Leech <leech@cs.unc.edu> tells us:
-# The ps300 was the Evans & Sutherland Picture System 300, a high
-# performance 3D vector graphics system with a bunch of specialized hardware.
-# Approximate date of release was 1982 (early 80s, anyway), and it had several
-# evolutions including (limited) color versions such as the PS330C. PS300s
-# were effectively obsolete by the late 80s, replaced by raster graphics
-# systems, although specialized applications like molecular modelling
-# hung onto them for a while longer.  AFAIK all E&S vector graphics systems
-# are out of production, though of course E&S is very much alive (in 1996).
-# (ps300: changed ":pt@:" to "it@" -- esr)
-#
-ps300|Picture System 300,
-	xt,
-	it@,
-	rmso@, rmul@, smso@, smul@, use=vt100,
-
-#### General Electric (ge)
-#
-
-terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200,
-	OTbs, hc, os,
-	cols#120,
-	bel=^G, cr=^M, cud1=^J, ind=^J,
-
-#### Heathkit/Zenith
-#
-
-# Here is a description of the H19 DIP switches:
-#
-# S401
-# 0-3 = baud rate as follows:
-#
-#         3       2       1       0
-#	---	---	---	---
-#         0       0       1       1       300 baud
-#         0       1       0       1       1200 baud
-#         1       0       0       0       2400 baud
-#         1       0       1       0       4800 baud
-#         1       1       0       0       9600 baud
-#         1       1       0       1       19.2K baud
-#
-# 4 = parity (0 = no parity)
-# 5 = even parity (0 = odd parity)
-# 6 = stick parity (0 = normal parity)
-# 7 = full duplex (0 = half duplex)
-#
-# S402
-# 0 = block cursor (0 = underscore cursor)
-# 1 = no key click (0 = keyclick)
-# 2 = wrap at end of line (0 = no wrap)
-# 3 = auto LF on CR (0 = no LF on CR)
-# 4 = auto CR on LF (0 = no CR on LF)
-# 5 = ANSI mode (0 = VT52 mode)
-# 6 = keypad shifted (0 = keypad unshifted)
-# 7 = 50Hz refresh (1 = 60Hz refresh)
-#
-# Factory Default settings are as follows:
-#          7 6 5 4 3 2 1 0
-# S401     1 0 0 0 1 1 0 0
-# S402     0 0 0 0 0 0 0 0
-# (h19: I added <rmam>/<smam> based on the init string;
-# also added empty <acsc> to suppress a tic warning -- esr)
-h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode,
-	OTbs, am, mir, msgr,
-	cols#80, it#8, lines#24,
-	acsc=, bel=^G, clear=\E[2J, cnorm=\E[>4l, cr=^M, cub1=^H,
-	cud1=\E[1B, cuf1=\E[1C, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[1A, cvvis=\E[>4h, dch1=\E[1P, dl1=\E[1M$<1*>,
-	ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[1L$<1*>, ind=^J,
-	is2=\E<\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m\E[?7h,
-	kbs=^H, kcub1=\E[1D, kcud1=\E[1B, kcuf1=\E[1C, kcuu1=\E[1A,
-	kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP,
-	kf7=\EOQ, kf8=\EOR, khome=\E[H, lf6=blue, lf7=red, lf8=white,
-	ri=\EM, rmacs=\E[11m, rmam=\E[?7l, rmir=\E[4l, rmso=\E[m,
-	smacs=\E[10m, smam=\E[?7h, smir=\E[4h, smso=\E[7m,
-h19-bs|heathkit w/keypad shifted,
-	rmkx=\Eu, smkx=\Et, use=h19-b,
-h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor,
-	rmkx=\Eu, smkx=\Et, use=h19-u,
-# (h19: merged in <ip> from BSDI hp19-e entry>;
-# also added empty <acsc> to suppress a tic warning --esr)
-# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998
-# Tim tells us that:
-# I have an old Zenith-19 terminal at home that still gets a lot of use.
-# This terminal suffers from the same famous insert-mode padding lossage
-# that has been acknowledged for the Z29 terminal.  Emacs is nearly
-# unusable on this box, since even a half-scroll up or down the window
-# causes flaming terminal death.
-#
-# On the Z19, the only way I have found around this problem is to remove
-# the :al: and :dl: entries entirely.  No amount of extra padding will
-# help (I have tried up to 20000).  Removing <il1=\EL$> and <dl1=\EM$>
-# makes Emacs a little slower, but it remains in the land of the living.
-# Big win.
-h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
-	OTbs, am, eslok, hs, mir, msgr,
-	cols#80, it#8, lines#24,
-	acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{, bel=^G,
-	clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ex4,
-	dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=^J,
-	ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW,
-	kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue, lf7=red,
-	lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
-	smir=\E@, smso=\Ep, tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
-h19-u|heathkit with underscore cursor,
-	cnorm@, cvvis@, use=h19-b,
-h19-g|h19g|heathkit w/block cursor,
-	cnorm=\Ex4, cvvis@, use=h19-b,
-alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
-	lines#60,
-	dl1=\EM, il1=\EL, use=h19,
-
-# The major problem with the Z29 is that it requires more padding than the Z19.
-#
-# The problem with declaring an H19 to be synonymous with a Z29 is that
-# it needs more padding. It especially loses if a program attempts
-# to put the Z29 into insert mode and insert text at 9600 baud. It
-# even loses worse if the program attempts to insert tabs at 9600
-# baud. Adding padding to text that is inserted loses because in
-# order to make the Z29 not die, one must add so much padding that
-# whenever the program tries to use insert mode, the effective
-# rate is about 110 baud.
-#
-# What program would want to put the terminal into insert mode
-# and shove stuff at it at 9600 baud you ask?
-#
-# Emacs. Emacs seems to want to do the mathematically optimal
-# thing in doing a redisplay rather than the practical thing.
-# When it is about to output a line on top of a line that is
-# already on the screen, instead of just killing to the end of
-# the line and outputting the new line, it compares the old line
-# and the new line and if there are any similarities, it
-# constructs the new line by deleting the text on the old line
-# on the terminal that is already there and then inserting new
-# text into the line to transform it into the new line that is
-# to be displayed. The Z29 does not react kindly to this.
-#
-# But don't cry for too long.... There is a solution. You can make
-# a termcap entry for the Z29 that says the Z29 has no insert mode.
-# Then Emacs cannot use it. "Oh, no, but now inserting into a
-# line will be really slow", you say. Well there is a sort of a
-# solution to that too. There is an insert character option on
-# the Z29 that will insert one character. Unfortunately, it
-# involves putting the terminal into ansi mode, inserting the
-# character, and changing it back to H19 mode. All this takes 12
-# characters. Pretty expensive to insert one character, but it
-# works. Either Emacs doesn't try to use its inserting hack when
-# it's only given an insert character ability or the Z29 doesn't
-# require padding with this (the former is probably more likely,
-# but I haven't checked it out).
-# (z29: added empty <acsc> to suppress a tic warning, merged in
-# status line capabilities from BRL entry --esr)
-z29|zenith29|z29b|zenith z29b,
-	OTbs, OTpt, am, eslok, hs, mir, msgr,
-	OTkn#10, cols#80, lines#24,
-	OTbc=\ED, acsc=, bel=^G, cbt=\E-, clear=\EE$<14>, cnorm=\Ey4,
-	cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E$<1>A,
-	cvvis=\Ex4, dch1=\EN$<0.1*>, dl1=\EM$<1/>, dsl=\Ey1,
-	ed=\EJ$<14>, el=\EK$<1>, fsl=\Ek\Ey5, home=\EH, ht=^I,
-	ich1=\E<\E[1@\E[?2h$<1>, il1=\EL$<1/>, ind=\n$<2>,
-	is2=\E<\E[?2h\Ev, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
-	kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
-	lf0=home, ri=\EI$<2/>, rmacs=\EF, rmir=\EO, rmso=\Eq,
-	rmul=\Es0, smacs=\EG, smir=\E@, smso=\Ep, smul=\Es8,
-	tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
-# z29 in ansi mode. Assumes that the cursor is in the correct state, and that
-# the world is stable. <rs1> causes the terminal to be reset to the state
-# indicated by the name. kc -> key click, nkc -> no key click, uc -> underscore
-# cursor, bc -> block cursor.
-# From: Mike Meyers
-# (z29a: replaced nonexistent <if=/usr/local/share/tabset/zenith29> befause <hts>
-# looks vt100-compatible -- esr)
-z29a|z29a-kc-bc|h29a-kc-bc|heath/zenith 29 in ansi mode,
-	OTbs, OTpt, am, eslok, hs, mir, msgr,
-	OTkn#10, cols#80, it#8, lines#24,
-	OTbc=\ED, bel=^G, blink=\E[5m, bold=\E[2m, clear=\E[2J,
-	cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
-	dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l, home=\E[H,
-	ht=^I, hts=\EH, if=/usr/local/share/tabset/vt100, il=\E[%p1%dL,
-	ind=\ED, kbs=^H, kclr=\E[J, kcub1=\EOD, kcud1=\EOB,
-	kcuf1=\EOC, kcuu1=\EOA, ked=\E[J, kf0=\E[~, kf1=\EOS,
-	kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
-	kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help, mc0=\E#7,
-	nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM, rmcup=\E[?7h,
-	rmso=\E[m, rmul=\E[m,
-	rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m,
-	sc=\E[s, sgr0=\E[m, smcup=\E[?7l, smso=\E[7;2m, smul=\E[4m,
-	tbc=\E[3g, tsl=\E[s\E[>5;1h\E[25;%i%dH\E[1K,
-z29a-kc-uc|h29a-kc-uc|z29 ansi mode with keyckick and underscore cursor,
-	rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m,
-	use=z29a,
-z29a-nkc-bc|h29a-nkc-bc|z29 ansi mode with block cursor and no keyclick,
-	rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2;4h\E[>1;3;5;6;7;8;9l\E[m\E[11m,
-	use=z29a,
-z29a-nkc-uc|h29a-nkc-uc|z29 ansi mode with underscore cursor and no keyclick,
-	rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2h\E[>1;3;4;5;6;7;8;9l\E[m\E[11m,
-	use=z29a,
-# From: Jeff Bartig <jeffb@dont.doit.wisc.edu> 31 Mar 1995
-z39-a|z39a|zenith39-a|zenith39-ansi|Zenith 39 in ANSI mode,
-	am, eslok, hs, mc5i, mir, msgr, xon,
-	cols#80, lines#24,
-	acsc=0a``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
-	blink=\E[5m, bold=\E[1m, cbt=\E[1Z, civis=\E[>5h,
-	clear=\E[2J\E[H, cnorm=\E[>5l, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
-	dl1=\E[1M, dsl=\E[>1l, ed=\E[0J, el=\E[0K, el1=\E[1K,
-	fsl=\E[u, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[1L,
-	ind=^J, is2=\E<\E[>1;3;5;6;7l\E[0m\E[2J, ka1=\EOw,
-	ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ked=\E[J, kf1=\EOS,
-	kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
-	kf8=\EOR, kf9=\EOX, khlp=\E[~, khome=\E[H, ll=\E[24;1H,
-	mc0=\E[?19h\E[i, mc4=\E[4i, mc5=\E[5i, rc=\E[u, rev=\E[7m,
-	rmacs=\E(B, rmir=\E[4l, rmkx=\E[>7l, rmso=\E[0m,
-	rmul=\E[0m, rs2=\E<\Ec\0, sc=\E[s, sgr0=\E[0m, smacs=\E(0,
-	smir=\E[4h, smkx=\E[>7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-	tsl=\E[s\E[>1h\E[25;%i%p1%dH,
-
-# From: Brad Brahms <Brahms@USC-ECLC>
-z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor,
-	cnorm=\Ey4\Em70, cvvis=\Ex4\Em71, use=z100bw,
-# (z100bw: removed obsolete ":kn#10:", added empty <acsc> -- esr)
-z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
-	OTbs, OTpt, mir, msgr,
-	OTkn#10, cols#80, it#8, lines#24,
-	acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{,
-	clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>, cuu1=\EA,
-	cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>, ed=\EJ, el=\EK,
-	home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H, kcub1=\ED, kcud1=\EB,
-	kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES, kf2=\ET, kf3=\EU,
-	kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EOI,
-	khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
-	smir=\E@, smso=\Ep,
-p19|h19-b with il1/dl1,
-	dl1=\EM$<2*/>, il1=\EL$<2*/>, use=h19-b,
-# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
-# (ztx: removed duplicate :sr: -- esr)
-ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11,
-	OTbs, am, eslok, hs,
-	cols#80, it#8, lines#24,
-	clear=\EE, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
-	dsl=\Ey1, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I,
-	il1=\EL, is2=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>,
-	kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\ES,
-	kf1=\EB, kf2=\EU, kf3=\EV, kf4=\EW, kf5=\EP, kf6=\EQ, kf7=\ER,
-	ri=\EI, rmso=\Eq, rmul=\Eq, smso=\Es5, smul=\Es2,
-	tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
-
-#### IMS International (ims)
-#
-# There was a company called IMS International located in Carson City,
-# Nevada, that flourished from the mid-70s to mid-80s.  They made S-100
-# bus/Z80 hardware and a line of terminals called Ultimas.
-#
-
-# From: Erik Fair <fair@ucbarpa.berkeley.edu>  Sun Oct 27 07:21:05 1985
-ims950-b|bare ims950 no init string,
-	is2@, use=ims950,
-# (ims950: removed obsolete ":ko@:" -- esr)
-ims950|ims televideo 950 emulation,
-	xenl@,
-	flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
-	kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950,
-# (ims950-rv: removed obsolete ":ko@:" -- esr)
-ims950-rv|ims tvi950 rev video,
-	xenl@,
-	flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
-	kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950-rv,
-ims-ansi|ultima2|ultimaII|IMS Ultima II,
-	OTbs, am,
-	cols#80, it#8, lines#24,
-	clear=\E[H\E[2J, cub1=^H, cud1=\ED,
-	cup=\E[%i%p1%2d;%p2%2dH, cuu1=\EM, ed=\E[0J, el=\E[0K,
-	ht=^I, if=/usr/local/share/tabset/vt100,
-	is2=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, ri=\EM,
-	rmso=\E[m\E[1m, rmul=\E[m\E[1m, sgr0=\E[m, smso=\E[7m,
-	smul=\E[4m,
-
-#### Intertec Data Systems
-#
-# I think this company is long dead as of 1995.  They made an early CP/M
-# micro called the "Intertec Superbrain" that was moderately popular,
-# then sank out of sight.
-#
-
-superbrain|intertec superbrain,
-	OTbs, am, bw,
-	cols#80, lines#24,
-	OTbc=^U, bel=^G, clear=\014$<5*>, cr=^M, cub1=^H, cud1=^J,
-	cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=^K,
-	ed=\E~k<10*>, el=\E~K$<15>, ht=^I, ind=^J, kcub1=^U,
-	kcud1=^J, kcuf1=^F, kcuu1=^K, rmcup=^L, smcup=^L,
-# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>,
-# rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM,
-# and the reverse is actually true.  Try it. -- esr)
-intertube|intertec|Intertec InterTube,
-	OTbs, am,
-	cols#80, lines#25,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<50>, cuu1=^Z, home=^A,
-	ind=^J, rmso=\E0@, smso=\E0P,
-# The intertube 2 has the "full duplex" problem like the tek 4025: if you
-# are typing and a command comes in, the keystrokes you type get interspersed
-# with the command and it messes up
-intertube2|intertec data systems intertube 2,
-	OTbs,
-	cup=\016%p1%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
-	el=\EK, hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c,
-	ll=^K^X\r, vpa=\013%p1%c, use=intertube,
-
-#### Ithaca Intersystems
-#
-# This company made S100-bus personal computers long ago in the pre-IBM-PC
-# past.  They used to be reachable at:
-#
-#	Ithaca Intersystems
-#	1650 Hanshaw Road
-#	Ithaca, New York 14850
-#
-# However, the outfit went bankrupt years ago.
-#
-
-# The Graphos III was a color graphics terminal from Ithaca Intersystems.
-# These entries were written (originally in termcap syntax) by Brian Yandell
-# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the
-# University of Wisconsin.
-
-# (graphos: removed obsolete and syntactically incorrect :kn=4:,
-# removed <if=/usr/local/share/tabset/init.graphos> and
-# <rf=/usr/local/share/tabset/init.graphos> no such file & no <hts> -- esr)
-graphos|graphos III,
-	am, mir,
-	cols#80, it#8, lines#24,
-	clear=\E[H\E[2J, cnorm=\Ez56;2;0;0z\Ez73z\Ez4;1;1z,
-	cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A,
-	cvvis=\Ez4;2;1z\Ez56;2;80;24z, dch1=\E[P, dl=\E[%p1%dM,
-	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
-	il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
-	kf4=\EOS, khome=\E[H, nel=^M\ED, rc=\E8, ri=\EM, rmdc=\E[4l,
-	rmir=\E[4l, rmso=\E[m, sc=\E7, sgr0=\E[m, smdc=\E[4h,
-	smir=\E[4h, smso=\E[7m,
-graphos-30|graphos III with 30 lines,
-	lines#30,
-	cvvis=\Ez4;2;1z\Ez56;2;80;30z, use=graphos,
-
-#### Modgraph
-#
-# These people used to be reachable at:
-#
-#	Modgraph, Inc
-#	1393 Main Street,
-#	Waltham, MA 02154
-#	Vox: (617)-890-5796.
-#
-# However, if you call that number today you'll get an insurance company.
-# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated
-# 26 Feb 1997 that says:
-#
-# Modgraph GX-1000, replaced by GX-2000.  Both are out of production, have been
-# for ~7 years.  Modgraph still in business.  Products are rugged laptop and
-# portable PC's and specialized CRT and LCD monitors (rugged, rack-mount
-# panel-mount etc).  I can be emailed at sonfour@aol.com
-#
-# Peter D. Smith <pdsmith@nbbn.com> notes that his modgraph manual was
-# dated 1984.  According to the manual, it featured Tek 4010/4014
-# graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard.
-#
-
-modgraph|mod24|modgraph terminal emulating vt100,
-	xenl@,
-	cols#80, lines#24,
-	cvvis=\E\^9;0s\E\^7;1s,
-	is2=\E\^9;0s\E\^7;1s\E[3g\E\^11;9s\E\^11;17s\E\^11;25s\E\^11;33s\E\^11;41s\E\^11;49s\E\^11;57s\E\^11;65s\E\^11;73s\E\^11;81s\E\^11;89s,
-	rf@, ri=\EM\E[K$<5/>, use=vt100,
-# The GX-1000 manual is dated 1984.  This looks rather like a VT-52.
-modgraph2|modgraph gx-1000 80x24 with keypad not enabled,
-	am, da, db,
-	cols#80, it#8, lines#24,
-	clear=\EH\EJ$<50/>, cub1=^H, cuf1=\EC$<2/>,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5/>, cuu1=\EA$<2/>,
-	ed=\EJ$<50/>, el=\EK$<3/>, ht=^I,
-	is2=\E<\E\^5;2s\E\^7;1s\E[3g\E\^11;9s\E\^11;17s\E\^11;25s\E\^11;33s\E\^11;41s\E\^11;49s\E\^11;57s\E\^11;65s\E\^11;73s\E\^11;81s\E\^11;89s\E\^12;0s\E\^14;2s\E\^15;9s\E\^25;1s\E\^9;1s\E\^27;1,
-	ri=\EI$<5/>,
-#
-# Modgraph from Nancy L. Cider <nancyc@brl-tbd>
-# BUG NOTE from Barbara E. Ringers <barb@brl-tbd>:
-# If we set TERM=vt100, and set the Modgraph screen to 24 lines, setting a
-# mark and using delete-to-killbuffer work correctly.  However, we would
-# like normal mode of operation to be using a Modgraph with 48 line setting.
-# If we set TERM=mod (which is a valid entry in termcap with 48 lines)
-# the setting mark and delete-to-killbuffer results in the deletion of only
-# the line the mark is set on.
-# We've discovered that the delete-to-killbuffer works correctly
-# with TERM=mod and screen set to 80x48 but it's not obvious.  Only
-# the first line disappears but a ctrl-l shows that it did work
-# correctly.
-modgraph48|mod|Modgraph w/48 lines,
-	OTbs, OTpt, am, xenl,
-	cols#80, it#8, lines#48, vt#3,
-	OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
-	cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
-	flash=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q,
-	home=\E[H, ht=^I, is2=\E<\E[1;48r\E[0q\E[3;4q\E=\E[?1h,
-	kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-	kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m,
-	ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs1=\E=\E[0q\E>, sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=,
-	smso=\E[7m, smul=\E[4m,
-
-#### Morrow Designs
-#
-# This was George Morrow's company.  They started in the late 1970s making
-# S100-bus machines.  They used to be reachable at:
-#
-#        Morrow
-#        600 McCormick St.
-#        San Leandro, CA 94577
-#
-# but they're long gone now (1995).
-#
-
-# The mt70 terminal was shipped with the Morrow MD-3 microcomputer.
-# Jeff's specimen was dated June 1984.
-# From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995
-mt70|mt-70|Morrow MD-70; native Morrow mode,
-	am, mir, msgr, xon,
-	cols#80, it#8, lines#24,
-	acsc=+z\,{-x.yOi`|jGkFlEmDnHqJtLuKvNwMxI, bel=^G,
-	cbt=\EI, civis=\E"0, clear=^Z, cnorm=\E"2, cr=^M, cub1=^H,
-	cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<1>,
-	cuu1=^K, dch1=\EW, dim=\EG2, dl1=\ER, ed=\EY, el=\ET$<10>,
-	flash=\EK1$<200>\EK0, home=^^, ht=^I, ich1=\EQ, il1=\EE,
-	ind=^J, invis@, is1=\E"2\EG0\E], kbs=^H, kcbt=^A^Z\r,
-	kclr=^An\r, kcub1=^AL\r, kcud1=^AK\r, kcuf1=^AM\r,
-	kcuu1=^AJ\r, kdch1=\177, kf1=^A@\r, kf10=^AI\r, kf11=^A`\r,
-	kf12=^Aa\r, kf13=^Ab\r, kf14=^Ac\r, kf15=^Ad\r, kf16=^Ae\r,
-	kf17=^Af\r, kf18=^Ag\r, kf19=^Ah\r, kf2=^AA\r, kf20=^Ai\r,
-	kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, khlp=^AO\r, khome=^AN\r, nel=^_,
-	rmacs=\E%%, rmcup=, smacs=\E$, smcup=\E"2\EG0\E],
-	smul=\EG1, tbc=\E0, use=adm+sgr,
-
-#### Motorola
-#
-
-# Motorola EXORterm 155	from {decvax, ihnp4}!philabs!sbcs!megad!seth via BRL
-# (Seth H Zirin)
-ex155|Motorola Exorterm 155,
-	OTbs, am, bw,
-	OTkn#5, OTug#1, cols#80, lines#24,
-	cbt=\E[, clear=\EX, cud1=\EB, cuf1=\ED,
-	cup=\EE%p1%{32}%+%c%p2%{32}%+%c, ed=\ET, el=\EU,
-	home=\E@, ht=\EZ, kbs=^H, kcbt=\E[, kclr=\EX, kcub1=^H,
-	kcud1=^J, kcuf1=^L, kcuu1=^K, ked=\ET, kel=\EU, khome=\E@,
-	rmso=\Ec\ED, rmul=\Eg\ED, smso=\Eb\ED, smul=\Ef\ED,
-
-#### Omron
-#
-# This company is still around in 1995, manufacturing point-of-sale systems.
-
-omron|Omron 8025AG,
-	OTbs, am, da, db,
-	cols#80, lines#24,
-	bel=^G, clear=\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, cuu1=\EA,
-	cvvis=\EN, dch1=\EP, dl1=\EM, ed=\ER, el=\EK, home=\EH,
-	il1=\EL, ind=\ES, ri=\ET, rmso=\E4, smso=\Ef,
-
-#### Ramtek
-#
-# Ramtek was a vendor of high-end graphics terminals around 1979-1983; they
-# were competition for things like the Tektronics 4025.
-#
-
-# Ramtek 6221 from BRL, probably by Doug Gwyn
-# The following SET-UP modes are assumed for normal operation:
-#	UNDERLINE_CURSOR	ANSI_MODE	AUTO_XON/XOFF_ON
-#	NEWLINE_OFF		80_COLUMNS
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements; I recommend
-#	SMOOTH_SCROLL	AUTO_REPEAT_ON	3_#_SHIFTED	WRAP_AROUND_ON
-# Hardware tabs are assumed to be every 8 columns; they can be set up by the
-# "reset", "tset", or "tabs" utilities (use rt6221-w, 160 columns, for this).
-# Note that the Control-E key is useless on this brain-damaged terminal.  No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-rt6221|Ramtek 6221 80x24,
-	OTbs, OTpt, msgr, xon,
-	OTkn#4, cols#80, it#8, lines#24, vt#3,
-	acsc=, bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[>5l,
-	clear=\E[1;1H\E[J, cnorm=\E[>5h\E[>9h, cr=^M,
-	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
-	cvvis=\E[>7h\E[>9l, ed=\E[J, el=\E[K, home=\E[1;1H, ht=^I,
-	hts=\EH, ind=^J, is2=\E)0, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kf0=\EOP, kf1=\EOQ, kf2=\EOR,
-	kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3, lf3=PF4, ll=\E[24;1H,
-	nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmkx=\E>,
-	rmso=\E[m, rmul=\E[m,
-	rs1=\E[1w\E[>37m\E[>39m\E[1v\E[20l\E[?3l\E[?6l\E[>5h\E[>6h\E[>7h\E[>8l\E[>9h\E[>10l\E[1;24r\E[m\E[q\E(B\017\E)0\E#5\E>,
-	sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E=, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g,
-# [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)].
-rt6221-w|Ramtek 6221 160x48,
-	cols#160, lines#48,
-	ll=\E[48;1H, use=rt6221,
-
-#### RCA
-#
-
-# RCA VP3301 or VP3501
-rca|rca vp3301/vp3501,
-	OTbs,
-	cols#40, lines#24,
-	clear=^L, cuf1=^U, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=^K, home=^Z, rmso=\E\ES0, smso=\E\ES1,
-
-
-#### Selanar
-#
-
-# Selanar HiREZ-100 from BRL, probably by Doug Gwyn
-# The following SET-UP modes are assumed for normal operation:
-#	SET_DEFAULT_TABS	48_LINES		80_COLUMNS
-#	ONLINE			ANSI			CURSOR_VISIBLE
-#	VT102_AUTO_WRAP_ON	VT102_NEWLINE_OFF	VT102_MONITOR_MODE_OFF
-#	LOCAL_ECHO_OFF		US_CHAR_SET		WPS_TERMINAL_DISABLED
-#	CPU_AUTO_XON/XOFF_ENABLED			PRINT_FULL_SCREEN
-# For use with graphics software, all graphics modes should be set to factory
-# default.  Other SET-UP modes may be set for operator convenience or
-# communication requirements.  No delays are specified; use "stty ixon -ixany"
-# to enable DC3/DC1 flow control!
-# I commented out the scrolling capabilities since they are too slow.
-hirez100|Selanar HiREZ-100,
-	OTbs, OTpt, mir, msgr, xon,
-	OTkn#4, cols#80, it#8, lines#48, vt#3,
-	acsc=, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
-	cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	hts=\EH, il=\E[%p1%dL, il1=\E[L, is2=\E<\E)0, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP,
-	kf1=\EOQ, kf2=\EOR, kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3,
-	lf3=PF4, ll=\E[48H, mc0=\E[i, mc4=\E[4i\E[?4i,
-	mc5=\E[?5i\E[5i, nel=\EE, rc=\E8, rev=\E[7m, rmacs=^O,
-	rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
-	rs1=\030\E2\E<\E[4i\E[?4i\E[12h\E[2;4;20l\E[?0;7h\E[?1;3;6;19l\E[r\E[m\E(B\017\E)0\E>,
-	sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E[?1h\E=, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g,
-hirez100-w|Selanar HiREZ-100 in 132-column mode,
-	cols#132, use=hirez100,
-
-#### Signetics
-#
-
-# From University of Wisconsin
-vsc|Signetics Vsc Video driver by RMC,
-	am, msgr,
-	cols#80, it#8, lines#26,
-	clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
-	ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rev=^_\s,
-	rmso=^_!, rmul=^_#, sgr0=^_!, smso=^_\s, smul=^_",
-
-#### Soroc
-#
-# Alan Frisbie <frisbie@flying-disk.com> writes:
-#
-# As you may recall, the Soroc logo consisted of their name,
-# with the letter "S" superimposed over an odd design.   This
-# consisted of a circle with a slightly smaller 15 degree (approx.)
-# wedge with rounded corners inside it.   The color was sort of
-# a metallic gold/yellow.
-#
-# If I had been more of a beer drinker it might have been obvious
-# to me, but it took a clue from their service department to make
-# me exclaim, "Of course!"   The circular object was the top of
-# a beer can (the old removable pop-top style) and "Soroc" was an
-# anagram for "Coors".
-#
-# I can just imagine the founders of the company sitting around
-# one evening, tossing back a few and trying to decide what to
-# call their new company and what to use for a logo.
-#
-
-# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr)
-soroc120|iq120|soroc|soroc iq120,
-	clear=\E*$<2>, cud1=^J, ed=\EY, el=\ET, kcub1=^H, kcud1=^J,
-	kcuf1=^L, kcuu1=^K, use=adm3a,
-soroc140|iq140|soroc iq140,
-	OTbs, am, mir,
-	cols#80, lines#24,
-	bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\Ew,
-	dl1=\Er$<.7*>, ed=\Ey, el=\Et, home=^^, il1=\Ee$<1*>, ind=^J,
-	kbs=^H, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A@\r, kf2=^AA\r,
-	kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
-	kf8=^AG\r, kf9=^AH\r, khome=^^, ll=^^^K, rmir=\E8,
-	rmso=\E\177, rmul=\E^A, smir=\E9, smso=\E\177, smul=\E^A,
-
-#### Southwest Technical Products
-#
-# These guys made an early personal micro called the M6800.
-# The ct82 was probably its console terminal.
-#
-
-# (swtp: removed obsolete ":bc=^D:" -- esr)
-swtp|ct82|southwest technical products ct82,
-	am,
-	cols#82, lines#20,
-	bel=^G, clear=^L, cr=^M, cub1=^D, cud1=^J, cuf1=^S,
-	cup=\013%p2%c%p1%c, cuu1=^A, dch1=^\^H, dl1=^Z, ed=^V, el=^F,
-	home=^P, ich1=^\^X, il1=^\^Y, ind=^N,
-	is2=\034\022\036\023\036\004\035\027\011\023\036\035\036\017\035\027\022\011,
-	ll=^C, ri=^O, rmso=^^^F, smso=^^^V,
-
-#### Synertek
-#
-# Bob Manson <manson@pattyr.acs.ohio-state.edu> writes (28 Apr 1995):
-#
-# Synertek used to make ICs, various 6502-based single-board process
-# control and hobbyist computers, and assorted peripherals including a
-# series of small inexpensive terminals (I think they were one of the
-# first to have a "terminal-on-a-keyboard", where the terminal itself
-# was only slightly larger than the keyboard).
-#
-# They apparently had a KTM-1 model, which I've never seen. The KTM-2/40
-# was a 40x24 terminal that could connect to a standard TV through a
-# video modulator.  The KTM-2/80 was the 80-column version (the 2/40
-# could be upgraded to the 2/80 by adding 2 2114 SRAMs and a new ROM).
-# I have a KTM-2/80 still in working order.  The KTM-2s had fully
-# socketed parts, used 2 6507s, a 6532 as keyboard scanner, a program
-# ROM and 2 ROMs as character generators. They were incredibly simple,
-# and I've never had any problems with mine (witness the fact that mine
-# was made in 1981 and is still working great... I've blown the video
-# output transistor a couple of times, but it's a 2N2222 :-)
-#
-# The KTM-3 (which is what is listed in the terminfo file) was their
-# attempt at putting a KTM-2 in a box (and some models came with a
-# CRT). It wasn't much different from the KTM-2 hardware-wise, but the
-# control and escape sequences are very different. The KTM-3 was always
-# real broken, at least according to the folks I've talked to about it.
-#
-# The padding in the entry is probably off--these terminals were very
-# slow (it takes like 100ms for the KTM-2 to clear the screen...) And
-# anyone with any sanity replaced the ROMs with something that provided
-# a reasonable subset of VT100 functionality, since the usual ROMs were
-# obviously very primitive... oh, you could get an upgraded ROM from
-# Synertek for some incredible amount of money, but what hacker with an
-# EPROM burner would do that? :)
-#
-# Sorry I don't have any contact info; I believe they were located in
-# Sunnyvale, and I'm fairly sure they are still manufacturing ICs
-# (they've gone to ASICs and FPGAs), but I doubt they're in the computer
-# business these days.
-#
-
-# Tested, seems to work fine with vi.
-synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal,
-	am,
-	cols#80, lines#24,
-	clear=^Z, cub1=^H, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EJ, el=\EK,
-
-#### Tab Office Products
-#
-#	TAB Products Co. - Palo Alto, California
-#	Electronic Office Products,
-#	1451 California Avenue 94304
-#
-# I think they're out of business.
-#
-
-# The tab 132 uses xon/xoff, so no padding needed.
-# <smkx>/<rmkx> have nothing to do with arrow keys.
-# <is2> sets 80 col mode, normal video, autowrap on (for <am>).
-# Seems to be no way to get rid of status line.
-# The manual for this puppy was dated June 1981.  It claims to be VT52-
-# compatible but looks more vt100-like.
-tab132|tab|tab132-15|tab 132/15,
-	da, db,
-	OTdN@, cols#80, lines#24, lm#96,
-	cud1=^J, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M,
-	il1=\E[L, is2=\E[?7h\E[?3l\E[?5l, kcub1=\E[D, kcud1=\E[B,
-	kcuu1=\E[A, rmir=\E[4l, rmkx@, smir=\E[4h, smkx@, use=vt100,
-tab132-w|tab132 in wide mode,
-	cols#132,
-	is2=\E[?7h\E[?3h\E[?5l, use=tab132,
-tab132-rv|tab132 in reverse-video mode,
-	is2=\E[?7h\E[?3l\E[?5h, use=tab132,
-tab132-w-rv|tab132 in reverse-video/wide mode,
-	is2=\E[?7h\E[?3h\E[?5h, use=tab132-w,
-
-
-#### Teleray
-#
-#	Research Incorporated
-#	6425 Flying Cloud Drive
-#	Eden Prairie, MN 55344
-#	Vox: (612)-941-3300
-#
-# The Teleray terminals were all discontinued in 1992-93.  RI still services
-# and repairs these beasts, but no longer manufactures them.  The Teleray
-# people believe that all the types listed below are very rare now (1995).
-# There was a newer line of Telerays (Model 7, Model 20, Model 30, and
-# Model 100) that were ANSI-compatible.
-#
-# Note two things called "teleray".  Reorder should move the common one
-# to the front if you have either.  A dumb teleray with the cursor stuck
-# on the bottom and no obvious model number is probably a 3700.
-#
-
-t3700|dumb teleray 3700,
-	OTbs,
-	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ind=^J,
-t3800|teleray 3800 series,
-	OTbs,
-	cols#80, it#8, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EJ, el=\EK,
-	home=\EH, ht=^I, ind=^J, ll=\EY7\s,
-t1061|teleray|teleray 1061,
-	OTbs, am, km, xhp, xt,
-	cols#80, it#8, lines#24, xmc#1,
-	bel=^G, clear=\014$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
-	dl1=\EM$<2*>, ed=\EJ$<1>, el=\EK, home=\EH, ht=^I, hts=\EF,
-	ich1=\EP, il1=\EL$<2*>, ind=^J, ip=$<0.4*>,
-	is2=\Ee\EU01^Z1\EV\EU02^Z2\EV\EU03^Z3\EV\EU04^Z4\EV\EU05^Z5\EV\EU06^Z6\EV\EU07^Z7\EV\EU08^Z8\EV\Ef,
-	kf1=^Z1, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5, kf6=^Z6, kf7=^Z7,
-	kf8=^Z8, rmso=\ER@, rmul=\ER@, smso=\s\ERD, smul=\ERH,
-	tbc=\EG,
-t1061f|teleray 1061 with fast PROMs,
-	dl1=\EM, il1=\EL, ip@, use=t1061,
-# "Teleray Arpa Special", officially designated as
-# "Teleray Arpa network model 10" with "Special feature 720".
-# This is the new (1981) fast microcode updating the older "arpa" proms
-# (which gave meta-key and programmable-fxn keys).  720 is much much faster,
-# converts the keypad to programmable function keys, and has other goodies.
-# Standout mode is still broken (magic cookie, etc) so is suppressed as no
-# programs handle such lossage properly.
-# Note: this is NOT the old termcap's "t1061f with fast proms."
-# From: J. Lepreau <lepreau@utah-cs> Tue Feb  1 06:39:37 1983, Univ of Utah
-# (t10: removed overridden ":so@:se@:us@:ue@:" -- esr)
-t10|teleray 10 special,
-	OTbs, km, xhp, xt,
-	cols#80, it#8, lines#24, xmc#2,
-	clear=\Ej$<30/>, cub1=^H, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
-	dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
-	ind=\Eq, pad=\0, ri=\Ep, rmso=\ER@, rmul=\ER@, smso=\ERD,
-	smul=\ERH,
-# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and
-# back/forth words. Put the function keys (f1-f10) where they can be
-# found, and turn off the other magic keys along the top row, except
-# for line/local. Do the magic appropriate to make the page shifts work.
-# Also toggle ^S/^Q for those of us who use Emacs.
-t16|teleray 16,
-	am, da, db, mir, xhp, xt,
-	cols#80, lines#24,
-	bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=%i\E[%p1%d;%p2%df, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H, ht=^I, il1=\E[L,
-	ind=^J, kf1=^Z1, kf10=^Z0, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5,
-	kf6=^Z6, kf7=^Z7, kf8=^Z8, kf9=^Z9, ri=\E[T,
-	rmcup=\E[V\E[24;1f\E[?38h, rmir=\E[4l, rmso=\E[m,
-	rmul=\E[m, sgr0=\E[m, smcup=\E[U\E[?38l, smir=\E[4h,
-	smso=\E[7m, smul=\E[4m,
-
-#### Texas Instruments (ti)
-#
-
-# The Silent 700 was so called because it was built around a quiet thermal
-# printer.  It was portable, equipped with an acoustic coupler, and pretty
-# neat for its day.
-ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800,
-	OTbs, hc, os,
-	cols#80,
-	bel=^G, cr=\r$<162>, cub1=^H, cud1=^J, ind=^J,
-
-#
-# Texas Instruments 916 VDT 7 bit control mode
-#
-ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL,
-	da, db, in, msgr,
-	cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[2J$<6>,
-	cnorm=\E[?25h, cub=\E[%p1%dD, cud=\E[%p1%dB,
-	cuf=\E[%p1%dC, cup=\E[%p1%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
-	dch=\E[%p1%dP$<250>, dch1=\E[P, dl=\E[%p1%dM,
-	ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K, el1=\E[1K,
-	enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>,
-	hpa=\E[%p1%{1}%+%dG, hts=\E[0W, ich=\E[%p1%d@$<250>,
-	il=\E[%p1%dL$<36>, ip=$<10>, is2=\E[1;24r\E[24;1H,
-	kcmd=\E[29~, kdch1=\E[P, kent=^J, kf1=\E[17~, kf10=\E[28~,
-	kf11=\E[29~, kf12=\E[31~, kf2=\E[18~, kf3=\E[19~,
-	kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
-	kf9=\E[26~, khome=\E[H, kich1=\E[@, knp=\E[S, kpp=\E[T,
-	kprt=^X, prot=\E&, rmacs=\017$<2>, rs2=\E[!p, sgr@,
-	smacs=\016$<2>, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
-	use=vt220,
-#
-# Texas Instruments 916 VDT 8 bit control mode
-#
-ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 vt220 mode bit CTRL,
-	kcmd=\23329~, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
-	kcuu1=\233A, kdch1=\233P, kent=^J, kf1=\23317~,
-	kf10=\23328~, kf11=\23329~, kf12=\23331~, kf2=\23318~,
-	kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
-	kf7=\23324~, kf8=\23325~, kf9=\23326~, khome=\233H,
-	kich1=\233@, knp=\233S, kpp=\233T, kprt=^X, use=ti916,
-#
-# Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode
-#
-ti916-132|Texas Instruments 916 VDT vt220 132 column,
-	cols#132, use=ti916,
-#
-# Texas Instruments 916 VDT 8859/1 8 bit control 132 column mode
-#
-ti916-8-132|Texas Instruments 916 VDT 8-bit vt220 132 column,
-	cols#132, use=ti916-8,
-ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL,
-	OTbs, am, xon,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
-	csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
-	cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
-	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
-	il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kf1=\EOP, kf2=\EOQ,
-	kf3=\EOR, kf4=\EOS, kf5=\E[16~, kf6=\E[17~, kf7=\E[18~,
-	kf8=\E[19~, kf9=\E[20~, kich1=\E[@, rc=\E8, rev=\E[7m,
-	ri=\EM, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g,
-ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL,
-	am, xon,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-	clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
-	csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
-	cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
-	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
-	il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=P$<\233>, kf1=P$<\217>,
-	kf2=Q$<\217>, kf3=R$<\217>, kf4=S$<\217>, kf5=~$<\23316>,
-	kf6=~$<\23317>, kf7=~$<\23318>, kf8=~$<\23319>,
-	kf9=~$<\23320>, kich1=@$<\233>, rc=\E8, rev=\E[7m, ri=\EM,
-	rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
-	smul=\E[4m, tbc=\E[3g,
-ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode,
-	cols#132, use=ti924,
-ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode,
-	cols#132, use=ti924-8,
-ti931|Texas Instruments 931 VDT,
-	OTbs, am, xon,
-	cols#80, lines#24,
-	bel=^G, blink=\E4P, clear=\EL, cnorm=\E4@, cr=^M, cub1=\ED,
-	cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH,
-	ich1=\ER\EP\EM, il1=\EN, ind=\Ea, invis=\E4H,
-	is2=\EGB\E(@B@@\E), kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-	kcuu1=\EA, kdch1=\EQ, kdl1=\EO, kf1=\Ei1, kf2=\Ei2, kf3=\Ei3,
-	kf4=\Ei4, kf5=\Ei5, kf6=\Ei6, kf7=\Ei7, kf8=\Ei8, kf9=\Ei9,
-	kich1=\EP, kil1=\EN, rev=\E4B, ri=\Eb, rmso=\E4@, rmul=\E4@,
-	sgr0=\E4@, smso=\E4A, smul=\E4D,
-ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL,
-	csr@, ind=\E[1S, ri=\E[1T, use=ti924,
-# (ti926-8: I corrected this from the broken SCO entry -- esr)
-ti926-8|Texas Instruments 926 VDT 8859/1 8 bit CTRL,
-	csr@, ind=\2331S, ri=\2331T, use=ti924-8,
-ti_ansi|basic entry for ti928,
-	am, bce, eo, xenl, xon,
-	colors#8, cols#80, it#8, lines#25, pairs#64,
-	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[2J\E[H,
-	cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B,
-	cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
-	dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
-	il1=\E[L, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kend=\E[F, kf0=\E[V, kf1=\E[M,
-	kf2=\E[N, kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S,
-	kf8=\E[T, kf9=\E[U, khome=\E[H, knp=\E[G, kpp=\E[I,
-	op=\E[37;40m, ri=\E[T, rmso=\E[m, rmul=\E[m,
-	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[m,
-	smso=\E[7m, smul=\E[4m,
-#
-#       928 VDT 7 bit control mode
-#
-ti928|Texas Instruments 928 VDT 8859/1 7 bit CTRL,
-	kdch1=\E[P, kend=\E_1\E\\, kent=\E[8~, kf1=\E[17~,
-	kf10=\E[28~, kf11=\E[29~, kf12=\E[31~, kf13=\E[32~,
-	kf15=\E[34~, kf2=\E[18~, kf3=\E[19~, kf4=\E[20~,
-	kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~,
-	kich1=\E[@, knp=\E[S, kpp=\E[T, kprt=\E[35~, use=ti_ansi,
-#
-#       928 VDT 8 bit control mode
-#
-ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL,
-	kdch1=\233P, kend=\2371\234, kent=\2338~, kf1=\23317~,
-	kf10=\23328~, kf11=\23329~, kf12=\23331~, kf13=\23332~,
-	kf15=\23334~, kf2=\23318~, kf3=\23319~, kf4=\23320~,
-	kf5=\23321~, kf6=\23323~, kf7=\23324~, kf8=\23325~,
-	kf9=\23326~, khome=\233H, kich1=\233@, knp=\233S,
-	kpp=\233T, kprt=\23335~, use=ti_ansi,
-
-#### Zentec (zen)
-#
-
-# (zen30: removed obsolete :ma=^L ^R^L^K^P:.  This entry originally
-# had just <smso>=\EG6 which I think means standout was supposed to be
-# dim-reverse using ADM12-style attributes. ADM12 <smul>/<rmul> and
-# <invis> might work-- esr)
-zen30|z30|zentec 30,
-	OTbs, am, mir, ul,
-	cols#80, lines#24,
-	bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
-	dim=\EG2, dl1=\ER$<1.5*>, ed=\EY, el=\ET$<1.0*>, home=^^,
-	il1=\EE$<1.5*>, ind=^J, rmir=\Er, rmul@, smir=\Eq, smso=\EG6,
-	smul@, use=adm+sgr,
-# (zen50: this had extension capabilities
-#	:BS=^U:CL=^V:CR=^B:
-# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh,
-# which were also in the original entry -- esr)
-# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr)
-zen50|z50|zentec zephyr,
-	OTbs, am,
-	cols#80, lines#24, xmc#1,
-	clear=\E+, cub1=^H, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
-	cuu1=^K, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ich1=\EQ, il1=\EE,
-	invis@, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
-	rmul@, smul@, use=adm+sgr,
-
-# CCI 4574 (Office Power) from Will Martin <wmartin@BRL.ARPA> via BRL
-cci|cci1|z8001|zen8001|CCI Custom Zentec 8001,
-	OTbs, am, bw,
-	cols#80, lines#24,
-	blink=\EM", clear=\EH\EJ, cnorm=\EP,
-	csr=\ER%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^J,
-	cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
-	cvvis=\EF\EQ\EM \ER 7, dim=\EM!, ed=\EJ, el=\EK, home=\EH,
-	invis=\EM(, is2=\EM \EF\ET\EP\ER 7, kbs=^H, kcub1=\ED,
-	kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, mc4=^T, mc5=^R,
-	rev=\EM$, ri=\EI, rmso=\EM\s, rmul=\EM\s, sgr0=\EM\s,
-	smso=\EM$, smul=\EM0,
-
-######## OBSOLETE UNIX CONSOLES
-#
-
-#### Apollo consoles
-#
-# Apollo got bought by Hewlett-Packard.  The Apollo workstations are
-# labeled HP700s now.
-#
-
-# From: Gary Darland <goodmanc@garnet.berkeley.edu>
-apollo|apollo console,
-	OTbs, am, mir,
-	cols#88, lines#53,
-	clear=^L, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\EM%p1%{32}%+%c%p2%d), cuu1=\EA, dch1=\EP, dl1=\EL,
-	ed=\EJ, el=\EK, hpa=\EN%p1%d, il1=\EI, ind=\EE, ri=\ED,
-	rmcup=\EX, rmir=\ER, rmso=\ET, rmul=\EV, smcup=\EW, smir=\EQ,
-	smso=\ES, smul=\EU, vpa=\EO+\s,
-
-# We don't know whether or not the apollo guys replicated DEC's firmware bug
-# in the VT132 that reversed <rmir>/<smir>.  To be on the safe side, disable
-# both these capabilities.
-apollo_15P|apollo 15 inch display,
-	rmir@, smir@, use=vt132,
-apollo_19L|apollo 19 inch display,
-	rmir@, smir@, use=vt132,
-apollo_color|apollo color display,
-	rmir@, smir@, use=vt132,
-
-#### Convergent Technology
-#
-# Burroughs bought Convergent shortly before it merged with Univac.
-# CTOS is (I believe) dead.  Probably the aws is too (this entry dates
-# from 1991 or earlier).
-#
-
-# Convergent AWS workstation from Gould/SEL UTX/32 via BRL
-# (aws: removed unknown :dn=^K: -- esr)
-aws|Convergent Technologies AWS workstation under UTX and Xenix,
-	am,
-	OTug#0, cols#80, lines#28, xmc#0,
-	OTbc=^H, OTma=\016h\013j\001k\022l\002m, OTnl=^J, acsc=,
-	clear=^L, cud1=^K, cuf1=^R, cup=\EC%p2%c%p1%c, cuu1=^A,
-	dch1=\EDC, dl1=\EDL, ed=\EEF, el=\EEL, hpa=\EH%p1%c,
-	ich1=\EIC, il1=\EIL, ind=\ESU, kbs=^H, kcub1=^N, kcud1=^K,
-	kcuf1=^R, kcuu1=^A, ri=\ESD, rmacs=\EAAF, rmso=\EARF,
-	rmul=\EAUF, smacs=\EAAN, smso=\EARN, smul=\EAUN,
-	vpa=\EV%p1%c,
-awsc|Convergent Technologies AWS workstation under CTOS,
-	am,
-	OTug#0, cols#80, lines#24, xmc#0,
-	OTbc=^N, OTma=\016h\013j\001k\022l\002m, acsc=, clear=^L,
-	cud1=^K, cuf1=^R, cup=\EC%p2%c%p1%c, cuu1=^A, ed=\EEF,
-	el=\EEL, kbs=^H, kcub1=^N, kcud1=^K, kcuf1=^R, kcuu1=^A,
-	rmacs=\EAAF, rmso=\EAA, rmul=\EAA, smacs=\EAAN, smso=\EAE,
-	smul=\EAC,
-
-#### DEC consoles
-#
-
-# The MicroVax console.  Tim Theisen <tim@cs.wisc.edu> writes:
-# The digital uVax II's had a graphic display called a qdss.  It was
-# supposed to be a high performance graphic accelerator, but it was
-# late to market and barely appeared before faster dumb frame buffers
-# appeared.  I have only used this display while running X11.  However,
-# during bootup, it was in text mode, and probably had a terminal emulator
-# within it.  And that is what your termcap entry is for.  In graphics
-# mode the screen size is 1024x864 pixels.
-qdss|qdcons|qdss glass tty,
-	OTbs, am,
-	cols#128, lines#57,
-	clear=\032$<1/>, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\E=%p1%c%p2%c, cuu1=^K,
-
-#### Fortune Systems consoles
-#
-# Fortune made a line of 68K-based UNIX boxes that were pretty nifty
-# in their day; I (esr) used one myself for a year or so around 1984.
-# They had no graphics, though, and couldn't compete against Suns and
-# the like.  R.I.P.
-#
-
-# From: Robert Nathanson <c160-3bp@Coral> via tut   Wed Oct 5, 1983
-# (This had extension capabilities
-#	:rv=\EH:re=\EI:rg=0:GG=0:\
-#	:CO=\E\\:WL=^Aa\r:WR=^Ab\r:CL=^Ac\r:CR=^Ad\r:DL=^Ae\r:RF=^Af\r:\
-#	:RC=^Ag\r:CW=^Ah\r:NU=^Aj\r:EN=^Ak\r:HM=^Al:PL=^Am\r:\
-#	:PU=^An\r:PD=^Ao\r:PR=^Ap\r:HP=^A@\r:RT=^Aq\r:TB=\r:CN=\177:MP=\E+F:
-# It had both ":bs:" and ":bs=^H:"; I removed the latter.  Also, it had
-# ":sg=0:" and ":ug=0:"; evidently the composer was trying (unnecessarily)
-# to force both magic cookie glitches off.  Once upon a time, I
-# used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are
-# function keys; thus the "Al" value for HM was certainly an error.  I renamed
-# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC.
-# I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent
-# "reverse-video-glitch" capability; I have put :rv: and :re: in with standard
-# names below.  I've removed obsolete ":nl=5^J:" as there is a :do: -- esr)
-fos|fortune|Fortune system,
-	OTbs, am, bw,
-	cols#80, lines#25,
-	acsc=j*k(l m"q&v%w#x-, bel=^G, blink=\EN, civis=\E],
-	clear=\014$<20>, cnorm=\E\\, cr=^M, cub1=^H, cud1=\n$<3>,
-	cup=\034C%p1%{32}%+%c%p2%{32}%+%c, cuu1=\013$<3>,
-	cvvis=\E\:, dch1=\034W$<5>, dl1=\034R$<15>,
-	ed=\034Y$<3*>, el=^\Z, home=\036$<10>, ht=^Z,
-	ich1=\034Q$<5>, il1=\034E$<15>, ind=^J, is2=^_.., kbs=^H,
-	kcub1=^Aw\r, kcud1=^Ay\r, kcuf1=^Az\r, kcuu1=^Ax\r,
-	kend=^Ak\r, kent=^Aq, kf1=^Aa\r, kf2=^Ab\r, kf3=^Ac\r,
-	kf4=^Ad\r, kf5=^Ae\r, kf6=^Af\r, kf7=^Ag\r, kf8=^Ah\r,
-	khome=^A?\r, knp=^Ao\r, kpp=^An\r, nel=^M^J, rev=\EH,
-	rmacs=^O, rmso=^\I`, rmul=^\IP, sgr0=\EI, smacs=\Eo,
-	smso=^\H`, smul=^\HP,
-
-#### Masscomp consoles
-#
-# Masscomp has gone out of business.  Their product line was purchased by
-# comany in Georgia (US) called "XS International", parts and service may
-# still be available through them.
-#
-
-# (masscomp: ":MT:" changed to ":km:";  -- esr)
-masscomp|masscomp workstation console,
-	OTbs, km, mir,
-	cols#80, it#8, lines#24,
-	clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	ed=\E[J, el=\E[K, ht=^I, il1=\E[L, is2=\EGc\EGb\EGw, kbs=^H,
-	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmir=\E[4l,
-	rmso=\E[m, rmul=\EGau, smir=\E[4h, smso=\E[7m, smul=\EGu,
-masscomp1|masscomp large screen version 1,
-	cols#104, lines#36, use=masscomp,
-masscomp2|masscomp large screen version 2,
-	cols#64, lines#21, use=masscomp,
-
-######## OTHER OBSOLETE TYPES
-#
-# These terminals are *long* dead -- these entries are retained for
-# historical interest only.
-#
-
-#### Obsolete non-ANSI software emulations
-#
-
-# CTRM terminal emulator
-# 1. underlining is not allowed with colors: first, is is simulated by
-# black on white, second, it disables background color manipulations.
-# 2. BLINKING, REVERSE and BOLD are allowed with colors,
-# so we have to save their status in the static registers A, B and H
-# respectively, to be able to restore them when color changes
-# (because any color change turns off ALL attributes)
-# 3. <bold> and <rev> sequences alternate modes,
-# rather than simply  entering them.  Thus we have to check the
-# static register B and H to determine the status, before sending the
-# escape sequence.
-# 4. <sgr0> now must set the status of all 3 register (A,B,H) to zero
-# and then reset colors
-# 5. implementation of the protect mode would badly penalize the performance.
-# we would have to use \E&bn sequence to turn off colors (as well as all
-# other attributes), and keep the status of protect mode in yet another
-# static variable.  If someone really needs this mode, they would have to
-# create another terminfo entry.
-# 6. original color-pair is white on black.
-# store the information about colors into static registers
-# 7. set foreground color.  it performs the following steps.
-#   1) turn off all attributes
-#   2) turn on the background and video attributes that have been turned
-#      on before (this information is stored in static registers X,Y,Z,A,B,H,D).
-#   3) turn on foreground attributes
-#   4) store information about foreground into U,V,W static registers
-# 8. turn on background: similar to turn on foreground above
-ctrm|C terminal emulator,
-	am, bce, xon,
-	colors#8, cols#80, lh#0, lines#24, lm#0, lw#0, ncv#2, nlab#0,
-	pairs#63, pb#19200, vt#6,
-	bel=^G, blink=\E&dA%{1}%PA,
-	bold=%?%gH%{0}%=%t\E&dH%{1}%PH%;, cbt=\Ei,
-	clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\E&a%p2%dc%p1%dY, cuu1=\EA, dch1=\EP$<2>, dl1=\EM,
-	ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=\011$<2>, hts=\E1,
-	il1=\EL, ind=^J, ip=$<2>, is2=\E&jA\r, kbs=^H, kcub1=\Eu\r,
-	kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1=\Ep\r,
-	kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r,
-	kf7=\Ev\r, kf8=\Ew\r, khome=\Ep\r,
-	op=\E&bn\E&bB\E&bG\E&bR%{0}%PX%{0}%PY%{0}%PZ%{1}%PW%{1}%PV%{1}%PU,
-	rev=%?%gB%{0}%=%t\E&dB%{1}%PB%;, rmir=\ER, rmkx=\E&jA,
-	setb=\E&bn%?%gA%t\E&dA%;%?%gB%t\E&dB%;%?%gH%t\E&dH%;%?%gU%t\E&bR%;%?%gV%t\E&bG%;%?%gW%t\E&bB%;%?%p1%{1}%&%t\E&bb%{1}%e%{0}%;%PZ%?%p1%{2}%&%t\E&bg%{1}%e%{0}%;%PY%?%p1%{4}%&%t\E&br%{1}%e%{0}%;%PX,
-	setf=\E&bn%?%gA%t\E&dA%;%?%gB%t\E&dB%;%?%gH%t\E&dH%;%?%gX%t\E&br%;%?%gY%t\E&bg%;%?%gZ%t\E&bb%;%?%p1%{1}%&%t\E&bB%{1}%e%{0}%;%PW%?%p1%{2}%&%t\E&bG%{1}%e%{0}%;%PV%?%p1%{4}%&%t\E&bR%{1}%e%{0}%;%PU,
-	sgr=\E&d@%{0}%PA%{0}%PB%{0}%PD%{0}%PH%?%p1%p3%p5%|%|%t\E&dB%{1}%PB%;%?%p4%t\E&dA%{1}%PA%;%?%p6%t\E&dH%{1}%PH%;%?%p2%t\E&dD%;,
-	sgr0=\E&d@%{0}%PA%{0}%PB%{0}%PH, smir=\EQ, smkx=\E&jB,
-	smso=\E&dD, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-# gs6300 - can't use blue foreground, it clashes with underline;
-# it's simulated with cyan
-# Bug: The <op> capability probably resets attributes.
-# (gs6300: commented out <rmln> (no <smln>) --esr)
-gs6300|emots|AT&T PC6300 with EMOTS terminal emulator,
-	am, bce, msgr, xon,
-	colors#8, cols#80, it#8, lines#24, pairs#63,
-	acsc=++\,\,--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-	cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-	ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-	is2=\E[m, kbs=^H, kcbt=^R^I, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kf1=\E[0s, kf2=\E[24s, kf3=\E[1s,
-	kf4=\E[23s, kf5=\E[2s, kf6=\E[22s, kf7=\E[3s, kf8=\E[21s,
-	khome=\E[H, mc4=\E[4i, mc5=\E[5i, op=\E[?;m, rev=\E[7m,
-	ri=\E[L, rmacs=\E[10m, rs1=\Ec, setb=\E[?;%p1%dm,
-	setf=\E[?%?%p1%{0}%=%t0%e%p1%{1}%=%t2%e%p1%{1}%-%d%;m,
-	sgr0=\E[m\E[10m, smacs=\E[11m, smso=\E[1m, smul=\E[4m,
-
-# From: <earle@smeagol.UUCP> 29 Oct 85 05:40:18 GMT
-# MS-Kermit with Heath-19 emulation mode enabled
-# (h19k: changed ":pt@:" to ":it@"
-h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin),
-	am@, da, db, xt,
-	it@,
-	ht@, use=h19-u,
-
-# Apple Macintosh with Versaterm, a terminal emulator distributed by Synergy
-# Software (formerly Peripherals Computers & Supplies, Inc) of
-# 2457 Perkiomen Ave., Reading, PA 19606, 1-800-876-8376.  They can
-# also be reached at support@synergy.com.
-versaterm|versaterm vt100 emulator for the macintosh,
-	am, xenl,
-	cols#80, it#8, lines#24,
-	bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
-	clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-	cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
-	cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
-	dch1=\E[1P$<7/>, dl1=\E[1M$<9/>, ed=\E[J$<50/>,
-	el=\E[K$<3/>, home=\E[H, ht=^I, ich1=\E[1@$<7/>,
-	il1=\E[1L$<9/>, is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD,
-	kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
-	kf3=\EOR, kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>,
-	rf=/usr/local/share/tabset/vt100, ri=\EM$<5/>,
-	rmkx=\E>\E[?1l, rmso=\E[m$<2/>, rmul=\E[m$<2/>, rs1=\E>,
-	sc=\E7, sgr0=\E[m$<2/>, smkx=\E=\E[?1h, smso=\E[7m$<2/>,
-	smul=\E[4m$<2/>,
-
-# From: Rick Thomas <ihnp4!btlunix!rbt>
-# (xtalk: I added <rmam>/<smam> based on the init string.
-xtalk|IBM PC with xtalk communication program (versions up to 3.4),
-	am, mir, msgr, xon,
-	cols#80, it#8, lines#24, vt#3, xmc#1,
-	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-	bel=^G, clear=\E[H\E[J$<50>, cr=^M, cub=\E[%p1%dD, cub1=^H,
-	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C$<2>,
-	cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
-	cuu1=\E[A$<2>, dl1=\E[M$<99>, ed=\E[J$<50>, el=\E[K$<3>,
-	el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH,
-	il1=\E[L$<99>, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB,
-	kcuf1=\EOC, kcuu1=\EOA, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
-	rmkx=\E[?1l\E>, rmso=\E[m\s,
-	rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr0=\E[m,
-	smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m\s,
-	tbc=\E[3g, use=vt100+fnkeys,
-
-# The official PC terminal emulator program of the AT&T Product Centers.
-# Note - insert mode commented out - doesn't seem to work on AT&T PC.
-simterm|attpc running simterm,
-	am,
-	cols#80, lines#24,
-	bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
-	cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\ER,
-	dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, ind=^J, rmcup=\EVE,
-	rmso=\E&d@, sgr0=\E&d@, smcup=\EVS, smso=\E&dB,
-
-#### Daisy wheel printers
-#
-# This section collects Diablo, DTC, Xerox, Qume, and other daisy
-# wheel terminals.  These are now largely obsolete.
-#
-
-# (diablo1620: removed <if=/usr/local/share/tabset/xerox1720>, no such file -- esr)
-diablo1620|diablo1720|diablo450|ipsi|diablo 1620,
-	hc, os,
-	cols#132, it#8,
-	cub1=^H, cud1=^J, cuu1=\E^J, hd=\ED, hpa=\E\011%i%p1%c,
-	ht=^I, hts=\E1, hu=\EU, kbs=^H, tbc=\E2,
-diablo1620-m8|diablo1640-m8|diablo 1620 w/8 column left margin,
-	cols#124,
-	is2=\r        \E9, use=diablo1620,
-# (diablo1640: removed <if=/usr/local/share/tabset/xerox1730>, no such file -- esr)
-diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|diablo 1640,
-	bel=^G, rmso=\E&, rmul=\ER, smso=\EW, smul=\EE,
-	use=diablo1620,
-# (diablo1640-lm: removed <if=/usr/local/share/tabset/xerox1730-lm>, no such
-# file -- esr)
-diablo1640-lm|diablo-lm|xerox-lm|diablo 1640 with indented left margin,
-	cols#124,
-	rmso=\E&, rmul=\ER, smso=\EW, smul=\EE, use=diablo1620,
-diablo1740-lm|630-lm|1730-lm|x1700-lm|diablo 1740 printer,
-	use=diablo1640-lm,
-# DTC 382 with VDU.  Has no <ed> so we fake it with <el>.  Standout
-# <smso=^P\s\002^PF> works but won't go away without dynamite <rmso=^P\s\0>.
-# The terminal has tabs, but I'm getting tired of fighting the braindamage.
-# If no tab is set or the terminal's in a bad mood, it glitches the screen
-# around all of memory.  Note that return puts a blank ("a return character")
-# in the space the cursor was at, so we use ^P return (and thus ^P newline for
-# newline).  Note also that if you turn off :pt: and let Unix expand tabs,
-# curses won't work (some old BSD versions) because it doesn't clear this bit,
-# and cursor addressing sends a tab for row/column 9.  What a losing terminal!
-# I have been unable to get tabs set in all 96 lines - it always leaves at
-# least one line with no tabs in it, and once you tab through that line,
-# it completely weirds out.
-# (dtc382: change <rmcup> to <smcup> -- it  just does a clear --esr)
-dtc382|DTC 382,
-	am, da, db, xhp,
-	cols#80, lines#24, lm#96,
-	bel=^G, clear=\020\035$<20>, cnorm=^Pb, cr=^P^M, cub1=^H,
-	cuf1=^PR, cup=\020\021%p2%c%p1%c, cuu1=^P^L, cvvis=^PB,
-	dch1=^X, dl1=^P^S, ed=\020\025\020\023\020\023, el=^P^U,
-	home=^P^R, il1=^P^Z, ind=^J, pad=\177, rmcup=, rmir=^Pi,
-	rmul=^P \0, smcup=\020\035$<20>, smir=^PI, smul=^P ^P,
-dtc300s|DTC 300s,
-	hc, os,
-	cols#132,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
-	hts=\E1, hu=\EH, ind=^J, kbs=^H, tbc=\E3,
-gsi|mystery gsi terminal,
-	hc, os,
-	cols#132,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, hd=\Eh, ht=^I, hu=\EH,
-	ind=^J,
-aj830|aj832|aj|anderson jacobson,
-	hc, os,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
-	ind=^J,
-# From: Chris Torek <chris@gyre.umd.edu> Thu, 7 Nov 85 18:21:58 EST
-aj510|Anderson-Jacobson model 510,
-	am, mir,
-	cols#80, lines#24,
-	clear=^L, cub1=^H, cuf1=\EX,
-	cup=\E#%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EY,
-	dch1=.1*\E'D, dl1=\E&D$<2*/>, ed=\E'P, el=\E'L, ich1=,
-	il1=\E&I$<2*/>, ip=$<.1*/>, kcub1=\EW, kcud1=\EZ,
-	kcuf1=\EX, kcuu1=\EY, pad=\177, rmcup=\E"N, rmir=\E'J,
-	rmso=\E"I, rmul=\E"U, smcup=\E"N, smir=\E'I, smso=\E"I,
-	smul=\E"U,
-# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
-# This is incomplete, but it's a start.
-nec5520|nec|spinwriter|nec 5520,
-	hc, os,
-	cols#132, it#8,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E9, ff=^L,
-	hd=\E]s\n\E]W, ht=^I, hts=\E1, hu=\E]s\E9\E]W, ind=^J,
-	kbs=^H, tbc=\E3,
-qume5|qume|Qume Sprint 5,
-	hc, os,
-	cols#80, it#8,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
-	hts=\E1, hu=\EH, ind=^J, kbs=^H, tbc=\E3,
-# I suspect the xerox 1720 is the same as the diablo 1620.
-xerox1720|x1720|x1750|xerox 1720,
-	hc, os,
-	cols#132, it#8,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, ff=^L, ht=^I, hts=\E1, ind=^J,
-	tbc=\E2,
-
-#### Miscellaneous obsolete terminals, manufacturers unknown
-#
-# If you have any information about these (like, a manufacturer's name,
-# and a date on the serial-number plate) please send it!
-
-cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars,
-	OTbs, am,
-	cols#73, lines#36,
-	clear=^Z, cub1=^H, cuf1=^L, cuu1=^K, home=^^,
-cad68-2|cgc2|cad68 basic monitor transparent mode size 2 chars,
-	OTbs, am,
-	cols#85, lines#39,
-	clear=^Z, cub1=^H, cuf1=^L, cuu1=^K, home=^^, kcub1=\E3,
-	kcud1=\E2, kcuf1=\E4, kcuu1=\E1, kf1=\E5, kf2=\E6, kf3=\E7,
-	kf4=\E8, rmso=\Em^C, smso=\Em^L,
-cops10|cops|cops-10|cops 10,
-	am, bw,
-	cols#80, lines#24,
-	bel=^G, clear=\030$<30/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
-	cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^W, el=^V,
-	ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-	khome=^Y,
-# (d132: removed duplicate :ic=\E5:,
-# merged in capabilities from a BRL entry -- esr)
-d132|datagraphix|datagraphix 132a,
-	da, db, in,
-	cols#80, lines#30,
-	bel=^G, clear=^L, cnorm=\Em\En, cr=^M, cub1=^H, cud1=^J,
-	cuf1=\EL, cup=\E8%i%p1%3d%p2%3d, cuu1=\EK, cvvis=\Ex,
-	dch1=\E6, home=\ET, ht=^I, ich1=\E5, il1=\E3, ind=^J, kbs=^H,
-	kcub1=^H, kcud1=^J, nel=^M^J, ri=\Ew,
-# The d800 was an early portable terminal from c.1984-85 that looked a lot
-# like the original Compaq `lunchbox' portable (but no handle).  It had a vt220
-# mode (which is what this entry looks like) and several other lesser-known
-# emulations.
-d800|Direct 800/A,
-	OTbs, am, da, db, msgr, xhp,
-	cols#80, it#8, lines#24,
-	acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
-	bel=^G, clear=\E[1;1H\E[2J, cnorm=\E[>12h, cr=^M, cub1=^H,
-	cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-	cvvis=\E[>12l, ed=\E[J, el=\E[K, ht=^I, ind=\ED, kcub1=\E[D,
-	kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
-	kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
-	ri=\EM, rmacs=\E[m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
-	smacs=\E[1m, smso=\E[7m, smul=\E[4m,
-digilog|digilog 333,
-	OTbs,
-	cols#80, lines#16,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, cuf1=^I, cuu1=^O, el=^X,
-	home=^N, ind=^J,
-# The DWK was a terminal manufactured in the Soviet Union c.1986
-dwk|dwk-vt|dwk terminal,
-	am,
-	cols#80, it#8, lines#24,
-	acsc=+\^\,Q-S.M0\177`+a\:f'g#h#i#jXkClJmFnNo~qUs_tEuPv\\wKxW~_,
-	bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
-	ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EQ, ind=^J, kbs=\177,
-	kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\Ee,
-	kf1=\Ef1, kf10=\Ef0, kf2=\Ef2, kf3=\Ef3, kf4=\Ef4, kf5=\Ef5,
-	kf6=\Ef6, kf7=\Ef7, kf8=\Ef8, kf9=\Ef9, kich1=\Ed, knp=\Eh,
-	kpp=\Eg, nel=^M^J, rev=\ET, ri=\ES, rmacs=\EG, rmso=\EX,
-	sgr0=\EX, smacs=\EF, smso=\ET,
-env230|envision230|envision 230 graphics terminal,
-	xenl@,
-	mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-	sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
-	use=vt100,
-# These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
-# coupler attached, the whole rig fitting in a suitcase and more or less
-# portable.  Hot stuff for c.1977 :-) -- esr
-ep48|ep4080|execuport 4080,
-	OTbs, am, os,
-	cols#80,
-	bel=^G, cr=^M, cub1=^H, cud1=^J, hd=^\, hu=^^, ind=^J,
-ep40|ep4000|execuport 4000,
-	cols#136, use=ep4080,
-# Adam Thompson <athompso@pangea.ca> tells us:
-# Informer series - these are all portable units, resembling older
-# automatic bread-baking machines.  The terminal looks like a `clamshell'
-# design, but isn't.  The structure is similar to the Direct terminals,
-# but only half the width.  The entire unit is only about 10" wide.
-# It features an 8" screen (6" or 7" if you have color!), and an 9"x6"
-# keyboard.  All the keys are crammed together, much like some laptop
-# PCs today, but perhaps less well organized...all these units have a
-# bewildering array of plugs on the back, including a built-in modem.
-# The 305 was a color version of the 304; the 306 and 307 were mono and
-# color terminals built for IBM bisync protocols.
-# From: Paul Leondis <unllab@amber.berkeley.edu>
-ifmr|Informer D304,
-	OTbs, am,
-	cols#80, lines#24,
-	clear=\EZ, cub1=^H, cud1=^J, cuf1=\EC,
-	cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dch1=\E\\,
-	ed=\E/, el=\EQ, home=\EH, ich1=\E[, ri=\En, rmso=\EK, sgr0=\EK,
-	smso=\EJ,
-# Entry largely based on wy60 and has the features of wy60ak.
-opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys,
-	am, bw, hs, km, mir, msgr, ul, xon,
-	cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#80,
-	acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
-	cbt=\EI, civis=\E`0, clear=\E*$<100>, cnorm=\E`1, cr=^M,
-	cub1=^H, cud1=^J, cuf1=^L, cup=\Ea%i%p1%dR%p2%dC, cuu1=^K,
-	dch1=\EW$<11>, dim=\EGp, dl1=\ER$<5>, dsl=\Ez(\r,
-	ed=\EY$<100>, el=\ET, fsl=^M, home=\036$<2>, ht=\011$<5>,
-	hts=\E1, if=/usr/local/share/tabset/std, il1=\EE$<4>, ind=^J,
-	ip=$<3>,
-	is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177\Ezz`\E[F\177\EA1*\EZH12,
-	kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\EW, kdl1=\ER, ked=\EY,
-	kel=\ET, kend=\E[F, kent=\E7, kf1=^A@\r, kf10=^AI\r,
-	kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
-	kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
-	kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
-	kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
-	mc0=\EP, mc4=^T, mc5=^R, nel=\r\n$<3>,
-	pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
-	pfx=\EZ1%p1%{63}%+%c%p2%s\177,
-	pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
-	rmacs=\EH^C, rmam=\Ed., rmcup=, rmir=\Er, rmln=\EA11,
-	rmxon=\Ec20, rs1=\E~!\E~4$<150>, rs2=\EeF$<150>,
-	rs3=\EwG\Ee($<150>,
-	sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
-	sgr0=\E(\EH\003\EG0\EcD, smacs=\EH^B, smam=\Ed/,
-	smcup=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177,
-	smir=\Eq, smln=\EA10, smxon=\Ec21, tbc=\E0, tsl=\Ez(,
-	uc=\EG8\EG0, use=adm+sgr,
-teletec|Teletec Datascreen,
-	OTbs, am,
-	cols#80, lines#24,
-	bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^K,
-	home=^^, ind=^J,
-# From: Mark Dornfeld <romwa@ucbvax.berkeley.edu>
-# This description is for the LANPAR Technologies VISION 3220
-# terminal from 1984/85.  The function key definitions k0-k5 represent the
-# edit keypad: FIND, INSERT HERE, REMOVE, SELECT, PREV SCREEN,
-# NEXT SCREEN. The key definitions k6-k9 represent the PF1 to PF4 keys.
-#
-# Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998:
-# I had a couple of scopes (3221) like this once where I used to work, around
-# the 1987 time frame if memory serves me correctly.  These scopes were made
-# by an outfit called LANPAR Technologies, and were meant to me DEC VT 220
-# compatible.  The 3220 was a plain text terminal like the VT-220, the 3221
-# was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222
-# was like the VT-241 (color with Regis + Sixel Graphics).  These terminals
-# (3221) cost about $1500 each, and one was always broken -- had to be sent
-# back to the shop for repairs.
-# The only real advantage these scopes had over the VT-240's were:
-# 1) They were faster in the Regis display, or at least the ones I did
-# 2) They had a handy debugging feature where you could split-screen the
-# scope, the graphics would appear on the top, and the REGIS commands would
-# appear on the bottom.  I don't remember the VT-240s being able to do that.
-# I would swear that LANPAR Technologies was in MA someplace, but since I
-# don't work at the same place anymore, and those terminals and manuals were
-# long since junked, I cannot be any more sure than that.
-#
-# (v3220: removed obsolete ":kn#10:",
-# I added <rmam>/<smam> based on the init string -- esr)
-v3220|LANPAR Vision II model 3220/3221/3222,
-	OTbs, am, mir, xenl,
-	cols#80, it#8, lines#24,
-	clear=\E[H\E[J, cub1=^H, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
-	ed=\E[J, el=\E[K, ht=^I, il1=\E[L,
-	is2=\E>\E[?3l\E[?7h\E[?8h\E[p, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kf0=\E[1~, kf1=\E[2~, kf2=\E[3~,
-	kf3=\E[4~, kf4=\E[5~, kf5=\E[6~, kf6=\E[OP, kf7=\E[OQ,
-	kf8=\E[OR, kf9=\E[OS, khome=\E[H, ri=\EM, rmam=\E[?7l,
-	rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
-	smam=\E[?7h, smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
-######## ICH/ICH1 VERSUS RMIR/SMIR
-#
-# Some non-curses applications get confused if both ich/ich1 and rmir/smir
-# are present; the symptom is doubled characters in an update using insert.
-# These applications are technically correct; in both 4.3BSD termcap and
-# terminfo, you're not actually supposed to specify both ich/ich1 and rmir/smir
-# unless the terminal needs both.  To my knowledge, no terminal still in this
-# file requires both other than the very obsolete dm2500.
-#
-# For ncurses-based applications this is not a problem, as ncurses uses
-# one or the other as appropriate but never mixes the two.  Therefore we
-# have not corrected entries like `linux' and `xterm' that specify both.
-# If you see doubled characters from these, use the linux-nic and xterm-nic
-# entries that suppress ich/ich1.  And upgrade to ncurses!
-#
-
-######## VT100/ANSI/ISO 6429/ECMA-48/PC-TERM TERMINAL STANDARDS
-#
-# ANSI X3.64 has been withdrawn and replaced by ECMA-48.  The ISO 6429 and
-# ECMA-48 standards are said to be almost identical, but are not the same
-# as X3.64 (though for practical purposes they are close supersets of it).
-#
-# You can obtain ECMA-48 for free by sending email to helpdesk@ecma.ch
-# requesting the standard(s) you want (i.e. ECMA-48, "Control Functions for
-# Coded Character Sets"), include your snail-mail address, and you should
-# receive the document in due course.  Don't expect an email acknowledgement.
-#
-# Related standards include "X3.4-1977: American National Standard Code for
-# Information Interchange" (the ASCII standard) and "X3.41.1974:
-# Code-Extension Techniques for Use with the 7-Bit Coded Character Set of
-# American National Standard for Information Interchange."  I believe (but
-# am not certain) that these are effectively identical to ECMA-6 and ECMA-35
-# respectively.
-#
-
-#### VT100/ANSI/ECMA-48
-#
-# ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals
-# and ECMA-48 Control Functions for Coded Character Sets.
-#
-# Much of the content of this comment is adapted from a table prepared by
-# Richard Shuford, based on a 1984 Byte article.  Terminfo correspondences,
-# discussion of some terminfo-related issues, and updates to capture ECMA-48
-# have been added.  Control functions described in ECMA-48 only are tagged
-# with * after their names.
-#
-# The table is a complete list of the defined ANSI X3.64/ECMA-48 control
-# sequences.  In the main table, \E stands for an escape (\033) character,
-# SPC for space.  Pn stands for a single numeric parameter to be inserted
-# in decimal ASCII.  Ps stands for a list of such parameters separated by
-# semicolons.  Parameter meanings for most parametrized sequences are
-# decribed in the notes.
-#
-# Sequence     Sequence                             Parameter   or
-# Mnemonic     Name              Sequence           Value      Mode   terminfo
-# -----------------------------------------------------------------------------
-# APC  Applicatn Program Command \E _                -         Delim  -
-# BEL  Bell *                    ^G                  -         -      bel
-# BPH  Break Permitted Here *    \E B                -         *      -
-# BS   Backpace *                ^H                  -         EF     -
-# CAN  Cancel *                  ^X                  -         -      -   (A)
-# CBT  Cursor Backward Tab       \E [ Pn Z           1         eF     cbt
-# CCH  Cancel Previous Character \E T                -         -      -
-# CHA  Cursor Horizntal Absolute \E [ Pn G           1         eF     hpa (B)
-# CHT  Cursor Horizontal Tab     \E [ Pn I           1         eF     tab (C)
-# CMD  Coding Method Delimiter * \E
-# CNL  Cursor Next Line          \E [ Pn E           1         eF     nel (D)
-# CPL  Cursor Preceding Line     \E [ Pn F           1         eF     -
-# CPR  Cursor Position Report    \E [ Pn ; Pn R      1, 1      -      -   (E)
-# CSI  Control Sequence Intro    \E [                -         Intro  -
-# CTC  Cursor Tabulation Control \E [ Ps W           0         eF     -   (F)
-# CUB  Cursor Backward           \E [ Pn D           1         eF     cub
-# CUD  Cursor Down               \E [ Pn B           1         eF     cud
-# CUF  Cursor Forward            \E [ Pn C           1         eF     cuf
-# CUP  Cursor Position           \E [ Pn ; Pn H      1, 1      eF     cup (G)
-# CUU  Cursor Up                 \E [ Pn A           1         eF     cuu
-# CVT  Cursor Vertical Tab       \E [ Pn Y           -         eF     -   (H)
-# DA   Device Attributes         \E [ Pn c           0         -      -
-# DAQ  Define Area Qualification \E [ Ps o           0         -      -
-# DCH  Delete Character          \E [ Pn P           1         eF     dch
-# DCS  Device Control String     \E P                -         Delim  -
-# DL   Delete Line               \E [ Pn M           1         eF     dl
-# DLE  Data Link Escape *        ^P                  -         -      -
-# DMI  Disable Manual Input      \E \                -         Fs     -
-# DSR  Device Status Report      \E [ Ps n           0         -      -   (I)
-# DTA  Dimension Text Area *     \E [ Pn ; Pn SPC T  -         PC     -
-# EA   Erase in Area             \E [ Ps O           0         eF     -   (J)
-# ECH  Erase Character           \E [ Pn X           1         eF     ech
-# ED   Erase in Display          \E [ Ps J           0         eF     ed  (J)
-# EF   Erase in Field            \E [ Ps N           0         eF     -
-# EL   Erase in Line             \E [ Ps K           0         eF     el  (J)
-# EM   End of Medium *           ^Y                  -         -      -
-# EMI  Enable Manual Input       \E b                          Fs     -
-# ENQ  Enquire                   ^E                  -         -      -
-# EOT  End Of Transmission       ^D                  -         *      -
-# EPA  End of Protected Area     \E W                -         -      -   (K)
-# ESA  End of Selected Area      \E G                -         -      -
-# ESC  Escape                    ^[                  -         -      -
-# ETB  End Transmission Block    ^W                  -         -      -
-# ETX  End of Text               ^C                  -         -      -
-# FF   Form Feed                 ^L                  -         -      -
-# FNK  Function Key *            \E [ Pn SPC W       -         -      -
-# GCC  Graphic Char Combination* \E [ Pn ; Pn SPC B  -         -      -
-# FNT  Font Selection            \E [ Pn ; Pn SPC D  0, 0      FE     -
-# GSM  Graphic Size Modify       \E [ Pn ; Pn SPC B  100, 100  FE     -   (L)
-# GSS  Graphic Size Selection    \E [ Pn SPC C       none      FE     -
-# HPA  Horz Position Absolute    \E [ Pn `           1         FE     -   (B)
-# HPB  Char Position Backward    \E [ j              1         FE     -
-# HPR  Horz Position Relative    \E [ Pn a           1         FE     -   (M)
-# HT   Horizontal Tab *          ^I                  -         FE     -   (N)
-# HTJ  Horz Tab w/Justification  \E I                -         FE     -
-# HTS  Horizontal Tab Set        \E H                -         FE     hts
-# HVP  Horz & Vertical Position  \E [ Pn ; Pn f      1, 1      FE     -   (G)
-# ICH  Insert Character          \E [ Pn @           1         eF     ich
-# IDCS ID Device Control String  \E [ SPC O          -         *      -
-# IGS  ID Graphic Subrepertoire  \E [ SPC M          -         *      -
-# IL   Insert Line               \E [ Pn L           1         eF     il
-# IND  Index                     \E D                -         FE     -
-# INT  Interrupt                 \E a                -         Fs     -
-# JFY  Justify                   \E [ Ps SPC F       0         FE     -
-# IS1  Info Separator #1 *       ^_                  -         *      -
-# IS2  Info Separator #1 *       ^^                  -         *      -
-# IS3  Info Separator #1 *       ^]                  -         *      -
-# IS4  Info Separator #1 *       ^\                  -         *      -
-# LF   Line Feed                 ^J                  -         -      -
-# LS1R Locking Shift Right 1 *   \E ~                -         -      -
-# LS2  Locking Shift 2 *         \E n                -         -      -
-# LS2R Locking Shift Right 2 *   \E }                -         -      -
-# LS3  Locking Shift 3 *         \E o                -         -      -
-# LS3R Locking Shift Right 3 *   \E |                -         -      -
-# MC   Media Copy                \E [ Ps i           0         -      -   (S)
-# MW   Message Waiting           \E U                -         -      -
-# NAK  Negative Acknowledge *    ^U                  -         *      -
-# NBH  No Break Here *           \E C                -         -      -
-# NEL  Next Line                 \E E                -         FE     nel (D)
-# NP   Next Page                 \E [ Pn U           1         eF     -
-# NUL  Null *                    ^@                  -         -      -
-# OSC  Operating System Command  \E ]                -         Delim  -
-# PEC  Pres. Expand/Contract *   \E Pn SPC Z         0         -      -
-# PFS  Page Format Selection *   \E Pn SPC J         0         -      -
-# PLD  Partial Line Down         \E K                -         FE     -   (T)
-# PLU  Partial Line Up           \E L                -         FE     -   (U)
-# PM   Privacy Message           \E ^                -         Delim  -
-# PP   Preceding Page            \E [ Pn V           1         eF     -
-# PPA  Page Position Absolute *  \E [ Pn SPC P       1         FE     -
-# PPB  Page Position Backward *  \E [ Pn SPC R       1         FE     -
-# PPR  Page Position Forward *   \E [ Pn SPC Q       1         FE     -
-# PTX  Parallel Texts *          \E [ \              -         -      -
-# PU1  Private Use 1             \E Q                -         -      -
-# PU2  Private Use 2             \E R                -         -      -
-# QUAD Typographic Quadding      \E [ Ps SPC H       0         FE     -
-# REP  Repeat Char or Control    \E [ Pn b           1         -      rep
-# RI   Reverse Index             \E M                -         FE     -   (V)
-# RIS  Reset to Initial State    \E c                -         Fs     -
-# RM   Reset Mode *              \E [ Ps l           -         -      -   (W)
-# SACS Set Add. Char. Sep. *     \E [ Pn SPC /       0         -      -
-# SAPV Sel. Alt. Present. Var. * \E [ Ps SPC ]       0         -      -   (X)
-# SCI  Single-Char Introducer    \E Z                -         -      -
-# SCO  Sel. Char. Orientation *  \E [ Pn ; Pn SPC k  -         -      -
-# SCS  Set Char. Spacing *       \E [ Pn SPC g       -         -      -
-# SD   Scroll Down               \E [ Pn T           1         eF     rin
-# SDS  Start Directed String *   \E [ Pn ]           1         -      -
-# SEE  Select Editing Extent     \E [ Ps Q           0         -      -   (Y)
-# SEF  Sheet Eject & Feed *      \E [ Ps ; Ps SPC Y  0,0       -      -
-# SGR  Select Graphic Rendition  \E [ Ps m           0         FE     sgr (O)
-# SHS  Select Char. Spacing *    \E [ Ps SPC K       0         -      -
-# SI   Shift In                  ^O                  -         -      -   (P)
-# SIMD Sel. Imp. Move Direct. *  \E [ Ps ^           -         -      -
-# SL   Scroll Left               \E [ Pn SPC @       1         eF     -
-# SLH  Set Line Home *           \E [ Pn SPC U       -         -      -
-# SLL  Set Line Limit *          \E [ Pn SPC V       -         -      -
-# SLS  Set Line Spacing *        \E [ Pn SPC h       -         -      -
-# SM   Select Mode               \E [ Ps h           none      -      -   (W)
-# SO   Shift Out                 ^N                  -         -      -   (Q)
-# SOH  Start Of Heading *        ^A                  -         -      -
-# SOS  Start of String *         \E X                -         -      -
-# SPA  Start of Protected Area   \E V                -         -      -   (Z)
-# SPD  Select Pres. Direction *  \E [ Ps ; Ps SPC S  0,0       -      -
-# SPH  Set Page Home *           \E [ Ps SPC G       -         -      -
-# SPI  Spacing Increment         \E [ Pn ; Pn SPC G  none      FE     -
-# SPL  Set Page Limit *          \E [ Ps SPC j       -         -      -
-# SPQR Set Pr. Qual. & Rapid. *  \E [ Ps SPC X       0         -      -
-# SR   Scroll Right              \E [ Pn SPC A       1         eF     -
-# SRCS Set Reduced Char. Sep. *  \E [ Pn SPC f       0         -      -
-# SRS  Start Reversed String *   \E [ Ps [           0         -      -
-# SSA  Start of Selected Area    \E F                -         -      -
-# SSU  Select Size Unit *        \E [ Pn SPC I       0         -      -
-# SSW  Set Space Width *         \E [ Pn SPC [       none      -      -
-# SS2  Single Shift 2 (G2 set)   \E N                -         Intro  -
-# SS3  Single Shift 3 (G3 set)   \E O                -         Intro  -
-# ST   String Terminator         \E \                -         Delim  -
-# STAB Selective Tabulation *    \E [ Pn SPC ^       -         -      -
-# STS  Set Transmit State        \E S                -         -      -
-# STX  Start pf Text *           ^B                  -         -      -
-# SU   Scroll Up                 \E [ Pn S           1         eF     indn
-# SUB  Substitute *              ^Z                  -         -      -
-# SVS  Select Line Spacing *     \E [ Pn SPC \       1         -      -
-# SYN  Synchronous Idle *        ^F                  -         -      -
-# TAC  Tabul. Aligned Centered * \E [ Pn SPC b       -         -      -
-# TALE Tabul. Al. Leading Edge * \E [ Pn SPC a       -         -      -
-# TATE Tabul. Al. Trailing Edge* \E [ Pn SPC `       -         -      -
-# TBC  Tab Clear                 \E [ Ps g           0         FE     tbc
-# TCC  Tabul. Centered on Char * \E [ Pn SPC c       -         -      -
-# TSR  Tabulation Stop Remove  * \E [ Pn SPC d       -         FE     -
-# TSS  Thin Space Specification  \E [ Pn SC E        none      FE     -
-# VPA  Vert. Position Absolute   \E [ Pn d           1         FE     vpa
-# VPB  Line Position Backward *  \E [ Pn k           1         FE     -
-# VPR  Vert. Position Relative   \E [ Pn e           1         FE     -   (R)
-# VT   Vertical Tabulation *     ^K                  -         FE     -
-# VTS  Vertical Tabulation Set   \E J                -         FE     -
-#
-# ---------------------------------------------------------------------------
-#
-# Notes:
-#
-# Some control characters are listed in the ECMA-48 standard without
-# being assigned functions relevant to terminal control there (they
-# referred to other standards such as ISO 1745 or ECMA-35).  They are listed
-# here anyway for completeness.
-#
-# (A) ECMA-48 calls this "CancelCharacter" but retains the CCH abbreviation.
-#
-# (B) There seems to be some confusion abroad between CHA and HPA.  Most
-# `ANSI' terminals accept the CHA sequence, not the HPA. but terminfo calls
-# the capability (hpa).  ECMA-48 calls this "Cursor Character Absolute" but
-# preserved the CHA abbreviation.
-#
-# (C) CHT corresponds to terminfo (tab).  Usually it has the value ^I.
-# Occasionally (as on, for example, certain HP terminals) this has the HTJ
-# value.  ECMA-48 calls this "Cursor Forward Tabulation" but preserved the
-# CHT abbreviation.
-#
-# (D) terminfo (nel) is usually \r\n rather than ANSI \EE.
-#
-# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR
-# abbreviation.
-#
-# (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear
-# char tab, 3 = clear line tab, 4 = clear all char tabs on current line,
-# 5 = clear all char tabs, 6 = clear all line tabs.
-#
-# (G) CUP and HVP are identical in effect.  Some ANSI.SYS versions accept
-# HVP, but always allow CUP as an alternate.  ECMA-48 calls HVP "Character
-# Position Absolute" but retains the HVP abbreviation.
-#
-# (H) ECMA calls this "Cursor Line Tabulation" but preserves the CVT
-# abbreviation.
-#
-# (I) DSR parameter values: 0 = ready, 1 = busy, 2 = busy, will send DSR
-# later, 3 = malfunction, 4 = malfunction, will send DSR later, 5 = request
-# DSR, 6 = request CPR response.
-#
-# (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end,
-# 1 = clear from beginning, 2 = clear.
-#
-# (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation.
-#
-# (L) The GSM parameters are vertical and horizontal parameters to scale by.
-#
-# (M) Some ANSI.SYS versions accept HPR, but more commonly `ANSI' terminals
-# use CUF for this function and ignore HPR.  ECMA-48 calls this "Character
-# Position Relative" but retains the HPR abbreviation.
-#
-# (N) ECMA-48 calls this "Character Tabulation" but retains the HT
-# abbreviation.
-#
-# (O) SGR parameter values: 0 = default mode (attributes off), 1 = bold,
-# 2 = dim, 3 = italicized, 4 = underlined, 5 = slow blink, 6 = fast blink,
-# 7 = reverse video, 8 = invisible, 9 = crossed-out (marked for deletion),
-# 10 = primary font, 10 + n (n in 1..9) = nth alternative font, 20 = Fraktur,
-# 21 = double underline, 22 = turn off 2, 23 = turn off 3, 24 = turn off 4,
-# 25 = turn off 5, 26 = proportional spacing, 27 = turn off 7, 28 = turn off
-# 8, 29 = turn off 9, 30 = black fg, 31 = red fg, 32 = green fg, 33 = yellow
-# fg, 34 = blue fg, 35 = magenta fg, 36 = cyan fg, 37 = white fg, 38 = set
-# fg color as in CCIT T.416, 39 = set default fg color, 40 = black bg
-# 41 = red bg, 42 = green bg, 43 = yellow bg, 44 = blue bg, 45 = magenta bg,
-# 46 = cyan bg, 47 = white bg, 48 = set bg color as in CCIT T.416, 39 = set
-# default bg color, 50 = turn off 26, 51 = framed, 52 = encircled, 53 =
-# overlined, 54 = turn off 51 & 52, 55 = not overlined, 56-59 = reserved,
-# 61-65 = variable highlights for ideograms.
-#
-# (P) SI is also called LSO, Locking Shift Zero.
-#
-# (Q) SI is also called LS1, Locking Shift One.
-#
-# (R) Some ANSI.SYS versions accept VPR, but more commonly `ANSI' terminals
-# use CUD for this function and ignore VPR.  ECMA calls it `Line Position
-# Absolute' but retains the VPA abbreviation.
-#
-# (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from
-# primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer
-# from secondary aux device, 4 = stop relay to primary aux device, 5 =
-# start relay to primary aux device, 6 = stop relay to secondary aux device,
-# 7 = start relay to secondary aux device.
-#
-# (T) ECMA-48 calls this "Partial Line Forward" but retains the PLD
-# abbreviation.
-#
-# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLU
-# abbreviation.
-#
-# (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation.
-#
-# (W) RM/SM modes are as follows: 1 = Guarded Area Transfer Mode (GATM),
-# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM),
-# 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM),
-# 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional
-# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM),
-# 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM),
-# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM),
-# 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer
-# Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer
-# Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed
-# New Line Mode (LF/NL), Graphic Rendition Combination Mode (GRCM), 22 =
-# Zero Default Mode (ZDM).  The EBM and LF/NL modes have actually been removed
-# from ECMA-48's 5th edition but are listed here for reference.
-#
-# (X) Select Alternate Presentation Variants is used only for non-Latin
-# alphabets.
-#
-# (Y) "Select Editing Extent" (SEE) was ANSI "Select Edit Extent Mode" (SEM).
-#
-# (Z) ECMA-48 calls this "Start of Guarded Area" but retains the SPA
-# abbreviation.
-#
-# ---------------------------------------------------------------------------
-#
-# Abbreviations:
-#
-# Intro  an Introducer of some kind of defined sequence; the normal 7-bit
-#        X3.64 Control Sequence Introducer is the two characters "Escape ["
-#
-# Delim  a Delimiter
-#
-# x/y    identifies a character by position in the ASCII table (column/row)
-#
-# eF     editor function (see explanation)
-#
-# FE     format effector (see explanation)
-#
-# F      is a Final character in
-#             an Escape sequence (F from 3/0 to 7/14 in the ASCII table)
-#             a control sequence (F from 4/0 to 7/14)
-#
-# Gs     is a graphic character appearing in strings (Gs ranges from
-#        2/0 to 7/14) in the ASCII table
-#
-# Ce     is a control represented as a single bit combination in the C1 set
-#        of controls in an 8-bit character set
-#
-# C0     the familiar set of 7-bit ASCII control characters
-#
-# C1     roughly, the set of control chars available only in 8-bit systems.
-#        This is too complicated to explain fully here, so read Jim Fleming's
-#        article in the February 1983 BYTE, especially pages 214 through 224.
-#
-# Fe     is a Final character of a 2-character Escape sequence that has an
-#        equivalent representation in an 8-bit environment as a Ce-type
-#        (Fe ranges from 4/0 to 5/15)
-#
-# Fs     is a Final character of a 2-character Escape sequence that is
-#        standardized internationally with identical representation in 7-bit
-#        and 8-bit environments and is independent of the currently
-#        designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14)
-#
-# I      is an Intermediate character from 2/0 to 2/15 (inclusive) in the
-#        ASCII table
-#
-# P      is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII
-#        table
-#
-# Pn     is a numeric parameter in a control sequence, a string of zero or
-#        more characters ranging from 3/0 to 3/9 in the ASCII table
-#
-# Ps     is a variable number of selective parameters in a control sequence
-#        with each selective parameter separated from the other by the code
-#        3/11 (which usually represents a semicolon); Ps ranges from
-#        3/0 to 3/9 and includes 3/11
-#
-# *      Not relevant to terminal control, listed for completeness only.
-#
-# Format Effectors versus Editor Functions
-#
-# A format effector specifies how following output is to be displayed.
-# An editor function allows you to modify the display.  Informally
-# format effectors may be destructive; format effectors should not be.
-#
-# For instance, a format effector that moves the "active position" (the
-# cursor or equivalent) one space to the left would be useful when you want to
-# create an overstrike, a compound character made of two standard characters
-# overlaid. Control-H, the Backspace character, is actually supposed to be a
-# format effector, so you can do this. But many systems use it in a
-# nonstandard fashion, as an editor function, deleting the character to the
-# left of the cursor and moving the cursor left. When Control-H is assumed to
-# be an editor function, you cannot predict whether its use will create an
-# overstrike unless you also know whether the output device is in an "insert
-# mode" or an "overwrite mode". When Control-H is used as a format effector,
-# its effect can always be predicted. The familiar characters carriage
-# return, linefeed, formfeed, etc., are defined as format effectors.
-#
-# NOTES ON THE DEC VT100 IMPLEMENTATION
-#
-# Control sequences implemented in the VT100 are as follows:
-#
-#      CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND,
-#      LNM, NEL, RI, RIS, RM, SGR, SM, TBC
-#
-# plus several private DEC commands.
-#
-# Erasing parts of the display (EL and ED) in the VT100 is performed thus:
-#
-#      Erase from cursor to end of line           Esc [ 0 K    or Esc [ K
-#      Erase from beginning of line to cursor     Esc [ 1 K
-#      Erase line containing cursor               Esc [ 2 K
-#      Erase from cursor to end of screen         Esc [ 0 J    or Esc [ J
-#      Erase from beginning of screen to cursor   Esc [ 1 J
-#      Erase entire screen                        Esc [ 2 J
-#
-# Some brain-damaged terminal/emulators respond to Esc [ J as if it were
-# Esc [ 2 J, but this is wrong; the default is 0.
-#
-# The VT100 responds to receiving the DA (Device Attributes) control
-#
-#      Esc [ c    (or Esc [ 0 c)
-#
-# by transmitting the sequence
-#
-#      Esc [ ? l ; Ps c
-#
-# where Ps is a character that describes installed options.
-#
-# The VT100's cursor location can be read with the DSR (Device Status
-# Report) control
-#
-#      Esc [ 6 n
-#
-# The VT100 reports by transmitting the CPR sequence
-#
-#      Esc [ Pl ; Pc R
-#
-# where Pl is the line number and Pc is the column number (in decimal).
-#
-# The specification for the DEC VT100 is document EK-VT100-UG-003.
-
-#### ANSI.SYS
-#
-# Here is a description of the color and attribute controls supported in the
-# the ANSI.SYS driver under MS-DOS.  Most console drivers and ANSI
-# terminal emulators for Intel boxes obey these.  They are a proper subset
-# of the ECMA-48 escapes.
-#
-# 0	all attributes off
-# 1	foreground bright
-# 4	underscore on
-# 5	blink on/background bright (not reliable with brown)
-# 7	reverse-video
-# 8	set blank (non-display)
-# 10	set primary font
-# 11	set first alternate font (on PCs, display ROM characters 1-31)
-# 12	set second alternate font (on PCs, display IBM high-half chars)
-#
-#			Color attribute sets
-# 3n	set foreground color       / 0=black, 1=red,     2=green, 3=brown,
-# 4n	set background color       \ 4=blue,  5=magenta, 6=cyan,  7=white
-# Bright black becomes gray.  Bright brown becomes yellow,
-# These coincide with the prescriptions of the ISO 6429/ECMA-48 standard.
-#
-# * If the 5 attribute is on and you set a background color (40-47) it is
-#   supposed to enable bright background.
-#
-# * Many VGA cards (such as the Paradise and compatibles) do the wrong thing
-#   when you try to set a "bright brown" (yellow) background with attribute
-#   5 (you get a blinking yellow foreground instead).  A few displays
-#   (including the System V console) support an attribute 6 that undoes this
-#   braindamage (this is required by iBCS2).
-#
-# * Some older versions of ANSI.SYS have a bug that causes thems to require
-#   ESC [ Pn k as EL rather than the ANSI ESC [ Pn K.  (This is not ECMA-48
-#   compatible.)
-
-#### Intel Binary Compatibility Standard
-#
-# For comparison, here are the capabilities implied by the Intel Binary
-# Compatibility Standard for UNIX systems (Intel order number 468366-001).
-# These recommendations are optional.  IBCS2 allows the leading escape to
-# be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with
-# the ANSI X.364/ISO 6429/ECMA-48 standard.  Here are the iBCS2 capabilities
-# (as described in figure 9-3 of the standard).  Those expressed in the ibcs2
-# terminfo entry are followed with the corresponding capability in parens:
-#
-#	CSI <n>k		disable (n=0) or enable (n=1) keyclick
-#	CSI 2h   		lock keyboard
-#	CSI 2i  		send screen as input
-#	CSI 2l  		unlock keyboard
-#	CSI 6m  		enable background color intensity
-#	CSI <0-2>c		reserved
-#	CSI <0-59>m		select graphic rendition
-#	CSI <n>;<m>H	(cup)	cursor to line n and column m
-#	CSI <n>;<m>f		cursor to line n and column m
-#	CSI <n>@	(ich)	insert characters
-#	CSI <n>A	(cuu)	cursor up n lines
-#	CSI <n>B	(cud)	cursor down n lines
-#	CSI <n>C	(cuu)	cursor right n characters
-#	CSI <n>D	(cud)	cursor left n characters
-#	CSI <n>E		cursor down n lines and in first column
-#	CSI <n>F		cursor up n lines and in first column
-#	CSI <n>G	(hpa)	position cursor at column n-1
-#	CSI <n>J	(ed)	erase in display
-#	CSI <n>K	(el)	erase in line
-#	CSI <n>L	(il)	insert line(s)
-#	CSI <n>P	(dch)	delete characters
-#	CSI <n>S	(indn)	scroll up n lines
-#	CSI <n>T	(rin)	scroll down n lines
-#	CSI <n>X	(ech)	erase characters
-#	CSI <n>Z	(cbt)	back up n tab stops
-#	CSI <n>`		cursor to column n on line
-#	CSI <n>a	(cuu)	cursor right n characters
-#	CSI <n>d	(vpa)	cursor to line n
-#	CSI <n>e		cursor down n lines and in first column
-#	CSI <n>g	(cbt)	clear all tabs
-#	CSI <n>z		make virtual terminal n active
-#	CSI ?7h 	(smam)	turn automargin on
-#	CSI ?7l 	(rmam)	turn automargin off
-#	CSI s     		save cursor position
-#	CSI u   		restore cursor position to saved value
-#	CSI =<c>A		set overscan color
-#	CSI =<c>F		set normal foreground color
-#	CSI =<c>G		set normal background color
-#	CSI =<c>H		set reverse foreground color
-#	CSI =<c>I		set reverse foreground color
-#	CSI =<c>J		set graphic foreground color
-#	CSI =<c>K		set graphic foreground color
-#	CSI =<n>g	(dispc) display n from alternate graphics character set
-#	CSI =<p>;<d>B		set bell parameters
-#	CSI =<s>;<e>C		set cursor parameters
-#	CSI =<x>D		enable/disable intensity of background color
-#	CSI =<x>E		set/clear blink vs. bold background
-#	CSI 7     	(sc)	(sc) save cursor position
-#	CSI 8   	(rc)	(rc) restore cursor position to saved value
-#	CSI H		(hts)	(hts) set tab stop
-#	CSI Q<n><string>	define function key string
-#				(string must begin and end with delimiter char)
-#	CSI c   	(clear) clear screen
-#
-# The lack of any specification for attributes in SGR (among other things)
-# makes this a wretchedly weak standard. The table above is literally
-# everything iBSC2 has to say about terminal escape sequences; there is
-# no further discussion of their meaning or how to set the parameters
-# in these sequences at all.
-#
-
-######## NONSTANDARD CAPABILITY TRANSLATIONS USED IN THIS FILE
-#
-# The historical termcap file entries were written primarily in 4.4BSD termcap.
-# The 4.4BSD termcap set was substantially larger than the original 4.1BSD set,
-# with the extension names chosen for compatibility with the termcap names
-# assigned in System V terminfo.  There are some variant extension sets out
-# there.  We try to describe them here.
-#
-# XENIX extensions:
-#
-# The XENIX extensions include a set of function-key capabilities as follows:
-#
-#       code	XENIX variable name	terminfo name	name clashes?
-#	----	-------------------	-------------	-----------------------
-#	CL	key_char_left
-#	CR	key_char_right
-#	CW	key_change_window			create_window
-#	EN	key_end          	kend
-#	HM	key_home		khome
-#	HP	??
-#	LD	key_delete_line  	kdl1
-#	LF	key_linefeed     			label_off
-#	NU	key_next_unlocked_cell
-#	PD	key_page_down   	knp
-#	PL	??
-#	PN	start_print		mc5
-#	PR	??
-#	PS	stop_print		mc4
-#	PU	key_page_up     	kpp		pulse
-#	RC	key_recalc				remove_clock
-#	RF	key_toggle_ref				req_for_input
-#	RT	key_return      	kent
-#	UP	key_up_arrow           	kcuu1   	parm_up_cursor
-#	WL	key_word_left
-#	WR	key_word_right
-#
-# The XENIX extensions also include the following character-set and highlight
-# capabilities:
-#
-#	XENIX	terminfo	function
-#	-----	--------	------------------------------
-#	GS	smacs		start alternate character set
-#	GE	rmacs		end alternate character set
-#	GG			:as:/:ae: glitch (analogous to :sg:/:ug:)
-#	bo	blink		begin blink (not used in /etc/termcap)
-#	be			end blink (not used in /etc/termcap)
-#	bb			blink glitch  (not used in /etc/termcap)
-#	it	dim		begin dim (not used in /etc/termcap)
-#	ie			end dim (not used in /etc/termcap)
-#	ig			dim glitch  (not used in /etc/termcap)
-#
-# Finally, XENIX also used the following forms-drawing capabilities:
-#
-#	single	double  type             ASCII approximation
-#	------	------	-------------    -------------------
-#	GV	Gv	vertical line             |
-#	GH	Gv	horizontal line       -   _
-#	G1	G5	top right corner       _   |
-#	G2	G6	top left corner       |
-#	G3	G7	bottom left corner         |_
-#	G4	G8	bottom right corner   _|
-#	GD	Gd	down-tick character        T
-#	GL	Gl	left-tick character   -|
-#	GR	Gr	right-tick character       |-
-#	GC	Gc	middle intersection   -|-
-#	GU	Gu	up-tick character          _|_
-#
-# These were invented to take advantage of the IBM PC ROM character set.  One
-# can compose an acsc string from the single-width characters as follows
-#	"j{G4}k{G1}l{G2}m{G3}q{GH}x{GV}t{GR}u{GL}v{GU}w{GD}n{GC}"
-# When translating a termcap file, ncurses tic will do this automatically.
-# The double forms characters don't fit the SVr4 terminfo model.
-#
-# AT&T Extensions:
-#
-# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
-# nonstandard capabilities.  Its signature is the KM capability, used to name
-# some sort of keymap file.  EE, BO, CI, CV, XS, DS, FL and FE are in this
-# set.  Comments in the original, and a little cross-checking with other AT&T
-# documentation, seem to establish that BO=:mr: (start reverse video), DS=:mh:
-# (start dim), XS=:mk: (secure/invisible mode), EE=:me: (end highlights),
-# FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make
-# cursor invisible), and CV=:ve: (make cursor normal).
-#
-# HP Extensions
-#
-# The HP library (as of mid-1995, their term.h file version 70.1) appears to
-# have the System V capabilities up to SVr1 level.  After that, it supports
-# two nonstandard caps meml and memu corresponding to the old termcap :ml:,
-# :mu: capabilities.  After that, it supports caps plab_norm, label_on,
-# label_off, and key_f11..key_f63 capabilities like SVr4's.  This makes the
-# HP binary format incompatible with SVr4's.
-#
-# IBM Extensions
-#
-# There is a set of nonstandard terminfos used by IBM's AIX operating system.
-# The AIX terminfo library diverged from SVr1 terminfo, and replaces all
-# capabilities following prtr_non with the following special capabilties:
-# box[12], batt[12], colb[0123456789], colf[0123456789], f[01234567], kbtab,
-# kdo, kcmd, kcpn, kend, khlp, knl, knpn, kppn, kppn, kquit, ksel, kscl, kscr,
-# ktab, kmpf[123456789], apstr, ksf1..ksf10, kf11...kf63, kact, topl, btml,
-# rvert, lvert.   Some of these are identical to XPG4/SVr4 equivalents:
-# kcmd, kend, khlp, and kf11...kf63.  Two others (kbtab and ksel) can be
-# renamed (to kcbt and kslt).  The places in the box[12] capabilities
-# correspond to acsc chars, here is the mapping:
-#
-#	box1[0]  = ACS_ULCORNER
-#	box1[1]  = ACS_HLINE
-#	box1[2]  = ACS_URCORNER
-#	box1[3]  = ACS_VLINE
-#	box1[4]  = ACS_LRCORNER
-#	box1[5]  = ACS_LLCORNER
-#	box1[6]  = ACS_TTEE
-#	box1[7]  = ACS_RTEE
-#	box1[8]  = ACS_BTEE
-#	box1[9]  = ACS_LTEE
-#	box1[10] = ACS_PLUS
-#
-# The box2 characters are the double-line versions of these forms graphics.
-# The AIX binary terminfo format is incompatible with SVr4's.
-#
-# Iris console extensions:
-#
-# HS is half-intensity start; HE is half-intensity end
-# CT is color terminal type (for Curses & rogue)
-# CP is color change escape sequence
-# CZ are color names (for Curses & rogue)
-#
-# The ncurses tic utility recognizes HS as an alias for mh <dim>.
-#
-# TC Extensions:
-#
-# There is a set of extended termcaps associated with something
-# called the "Terminal Control" or TC package created by MainStream Systems,
-# Winfield Kansas.  This one also uses GS/GE for as/ae, and also uses
-# CF for civis and CO for cvvis.  Finally, they define a boolean :ct:
-# that flags color terminals.
-#
-######## CHANGE HISTORY
-#
-# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
-# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses
-# project.
-#
-# This file contains all the capability information present in John Kunze's
-# last version of the termcap master file, except as noted in the change
-# comments at end of file.  Some information about very ancient obsolete
-# capabilities has been moved to comments.  Some all-numeric names of older
-# terminals have been retired.
-#
-# I changed :MT: to :km: (the 4.4BSD name) everywhere.  I commented out some
-# capabilities (EP, dF, dT, dV, kn, ma, ml, mu, xr, xx) that are no longer
-# used by BSD curses.
-#
-# The 9.1.0 version of this file was translated from my lightly-edited copy of
-# 8.3, then mechanically checked against 8.3 using Emacs Lisp code written for
-# the purpose.  Unless the ncurses tic implementation and the Lisp code were
-# making perfectly synchronized mistakes which I then failed to catch by
-# eyeball, the translation was correct and perfectly information-preserving.
-#
-# Major version number bumps correspond to major version changes in ncurses.
-#
-# Here is a log of the changes since then:
-#
-# 9.1.0 (Wed Feb  1 04:50:32 EST 1995):
-#	* First terminfo master translated from 8.3.
-# 9.2.0 (Wed Feb  1 12:21:45 EST 1995):
-#	* Replaced Wyse entries with updated entries supplied by vendor.
-#
-# 9.3.0 (Mon Feb  6 19:14:40 EST 1995):
-#	* Added contact & status info from G. Clark Brown <clark@sssi.com>.
-# 9.3.1 (Tue Feb  7 12:00:24 EST 1995):
-#	* Better XENIX keycap translation.  Describe TC termcaps.
-#	* Contact and history info supplied by Qume.
-# 9.3.2 (Sat Feb 11 23:40:02 EST 1995):
-#	* Raided the Shuford FTP site for recent termcaps/terminfos.
-#	* Added information on X3.64 and VT100 standard escape sequences.
-# 9.3.3 (Mon Feb 13 12:26:15 EST 1995):
-#	* Added a correct X11R6 xterm entry.
-#	* Fixed terminfo translations of padding.
-# 9.3.4 (Wed Feb 22 19:27:34 EST 1995):
-#	* Added correct acsc/smacs/rmacs strings for vt100 and xterm.
-#	* Added u6/u7/u8/u9 capabilities.
-#	* Added PCVT entry.
-# 9.3.5 (Thu Feb 23 09:37:12 EST 1995):
-#	* Emacs uses :so:, not :mr:, for its mode line.  Fix linux entry
-#	  to use reverse-video standout so Emacs will look right.
-#	* Added el1 capability to ansi.
-#	* Added smacs/rmacs to ansi.sys.
-#
-# 9.4.0 (Sat Feb 25 16:43:25 EST 1995):
-#	* New mt70 entry.
-#	* Added COPYRIGHTS AND OTHER DELUSIONS.
-#	* Added AT&T 23xx & 500/513, vt220 and vt420, opus3n1+, netronics
-#	  smartvid & smarterm, ampex 175 & 219 & 232,
-#	  env230, falco ts100, fluke, intertube, superbrain, ncr7901, vic20,
-#	  ozzie, trs200, tr600, Tandy & Texas Instruments VDTs, intext2,
-#	  screwpoint, fviewpoint, Contel Business Systems, Datamedia Colorscan,
-#	  adm36, mime314, ergo4000, ca22851.  Replaced att7300, esprit, dd5500.
-#	* Replaced the Perkin-Elmer entries with vendor's official ones.
-#	* Restored the old minimal-ansi entry, luna needs it.
-#	* Fixed some incorrect ip and proportional-padding translations.
-# 9.4.1 (Mon Feb 27 14:18:33 EST 1995):
-#	* Fix linux & AT386 sgr strings to do A_ALTCHARSET turnoff correctly.
-#	* Make the xterm entry 65 lines again; create xterm25 and xterm24
-#	  to force a particular height.
-#	* Added beehive4 and reorganized other Harris entries.
-# 9.4.2 (Thu Mar  9 01:45:44 EST 1995):
-#	* Merged in DEC's official entries for its terminals.  The only old
-#	  entry I kept was Doug Gwyn's alternate vt100 (as vt100-avo).
-#	* Replaced the translated BBN Bitgraph entries with purpose-built
-#	  ones from AT&T's SVr3.
-#	* Replaced the AT&T entries with AT&T's official terminfos.
-#	* Added teleray 16, vc415, cops10.
-#	* Merged in many individual capabilities from SCO terminfo files.
-# 9.4.3 (Mon Mar 13 02:37:53 EST 1995):
-#	* Typo fixes.
-#	* Change linux entry so A_PROTECT enables IBM-PC ROM characters.
-# 9.4.4 (Mon Mar 27 12:32:35 EST 1995):
-#	* Added tty35, Ann Arbor Guru series. vi300 and 550, cg7900, tvi803,
-#	  pt210, ibm3164, IBM System 1, ctrm, Tymshare scanset, dt200, adm21,
-#	  simterm, citoh and variants.
-#	* Replaced sol entry with sol1 and sol2.
-#	* Replaced Qume QVT and Freedom-series entries with purpose-built
-#	  terminfo entries.
-#	* Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek
-#	  and dg200 entries using caps from from SCO.
-#	* Added the usual set of function-key mappings to ANSI entry.
-#	* Corrected xterm's function-key capabilities.
-# 9.4.5 (Tue Mar 28 14:27:49 EST 1995):
-#	* Fix in xterm entry, cub and cud are not reliable under X11R6.
-# 9.4.6 (Thu Mar 30 14:52:15 EST 1995):
-#	* Fix in xterm entry, get the arrow keys right.
-#	* Change some \0 escapes to \200.
-# 9.4.7 (Tue Apr  4 11:27:11 EDT 1995)
-#	* Added apple (Videx card), adm1a, oadm31.
-#	* Fixed malformed ampex csr.
-#	* Fixed act4, cyb110; they had old-style prefix padding left in.
-#	* Changed mandatory to advisory padding in many entries.
-#	* Replaced HP entries up to hpsub with purpose-built ones.
-#	* Blank rmir/smir/rmdc/smdc capabilities removed.
-#	* Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924.
-# 9.4.8 (Fri Apr  7 09:36:34 EDT 199):
-#	* Replaced the Ann Arbor entries with SCO's, the init strings are
-#	  more efficient (but the entries otherwise identical).
-#	* Added dg211 from Shuford archive.
-#	* Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk,
-#	  adm42-nl, pc52, gs6300, xerox820, uts30.
-#	* Pull SCO's padding into vi200 entry.
-#	* Improved capabilities for tvi4107 and other Televideo and Viewpoint
-#	  entries merged in from SCO's descriptions.
-#	* Fixed old-style prefix padding on zen50, h1500.
-#	* Moved old superbee entry to superbee-xsb, pulled in new superbee
-#	  entry from SCO's description.
-#	* Reorganized the special entries.
-#	* Added lm#0 to cbunix and virtual entries.
-#
-# 9.5.0 (Mon Apr 10 11:30:00 EDT 1995):
-#	* Restored cdc456tst.
-#	* Fixed sb1 entry, SCO erroneously left out the xsb glitch.
-#	* Added megatek, beacon, microkit.
-#	* Freeze for ncurses-1.9 release.
-# 9.5.1 (Fri Apr 21 12:46:42 EDT 1995):
-#	* Added historical data for TAB.
-#	* Comment fixes from David MacKenzie.
-#	* Added the new BSDI pc3 entry.
-# 9.5.2 (Tue Apr 25 17:27:52 EDT 1995)
-#	* A change in the tic -C logic now ensures that all entries in
-#	  the termcap translation will fit in < 1024 bytes.
-#	* Added `bobcat' and `gator' HP consoles and the Nu machine entries
-#	  from GNU termcap file.  This merges in all their local information.
-# 9.5.3 (Tue Apr 25 22:28:13 EDT 1995)
-#	* Changed tic -C logic to dump all capabilities used by GNU termcap.
-#	* Added warnings about entries with long translations (restoring
-#	  all the GNU termcaps pushes a few over the edge).
-# 9.5.4 (Wed Apr 26 15:35:09 EDT 1995)
-#	* Yet another tic change, and a couple of entry tweaks, to reduce the
-#	  number of long (> 1024) termcap translations back to 0.
-#
-# 9.6.0 (Mon May  1 10:35:54 EDT 1995)
-#	* Added kf13-kf20 to Linux entry.
-#	* Regularize Prime terminal names.
-#	* Historical data on Synertek.
-#	* Freeze for ncurses-1.9.1.
-# 9.6.1 (Sat May  6 02:00:52 EDT 1995):
-#	* Added true xterm-color entry, renamed djm's pseudo-color entry.
-#	* Eliminate whitespace in short name fields, this tanks some scripts.
-#	* Name field changes to shorten some long entries.
-#	* Termcap translation now automatically generates empty rmir/smir
-#	  when ich1/ich is present (copes with an ancient vi bug).
-#	* Added `screen' entries from FSF's screen-3.6.2.
-#	* Added linux-nic and xterm-nic entries.
-# 9.6.2 (Sat May  6 17:00:55 EDT 1995):
-#	* Change linux entry to use smacs=\E[11m and have an explicit acsc,
-#	  eliminating some special-case code in ncurses.
-#
-# 9.7.0 (Tue May  9 18:03:12 EDT 1995):
-#	* Added vt320-k3, rsvidtx from the Emacs termcap.dat file.  I think
-#	  that captures everything unique from it.
-#	* Added reorder script generator.
-#	* Freeze for ncurses 1.9.2 release.
-# 9.7.1 (Thu Jun 29 09:35:22 EDT 1995):
-#	* Added Sean Farley's kspd, flash, rs1 capabilities for linux.
-#	* Added Olaf Siebert's corrections for adm12.
-#	* ansi-pc-color now includes the colors and pairs caps, so that
-#	  entries which use it will inherit them automatically.
-#	* The linux entry can now recognize the center (keypad 5) key.
-#	* Removed some junk that found its way into Linux acsc.
-#
-# 9.8.0 (Fri Jul  7 04:46:57 EDT 1995):
-#	* Add 50% cut mark as a desperate hack to reduce tic's core usage.
-#	* xterm doesn't try to use application keypad mode any more.
-#	* Freeze for ncurses-1.9.3 release.
-# 9.8.1 (Thu Jul 19 17:02:12 EDT 1995):
-#	* Added corrected sun entry from vendor.
-#	* Added csr capability to linux entry.
-#	* Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG.
-#	* Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators.
-#	* Some commented-out caps in long entries come back in, my code
-#	  for computing string-table lengths had a bug in it.
-#	* pcansi series modified to fit comm-program reality better.
-# 9.8.2 (Sat Sep  9 23:35:00 EDT 1995):
-#	* BSD/OS actually ships the ibmpc3 bold entry as its console.
-#	* Correct some bad aliases in the pcansi series
-#	* Added entry for QNX console.
-#	* Clean up duplicate long names for use with 4.4 library.
-#	* Change vt100 standout to be normal reverse vide, not bright reverse;
-#	  this makes the Emacs status line look better.
-# 9.8.3 (Sun Sep 10 13:07:34 EDT 1995):
-#	* Added Adam Thompson's VT320 entries, also his dtx-sas and z340.
-#	* Minor surgery, mostly on name strings, to shorten termcap version.
-#
-# 9.9.0 (Sat Sep 16 23:03:48 EDT 1995):
-#	* Added dec-vt100 for use with the EWAN emulator.
-#	* Added kmous to xterm for use with xterm's mouse-tracking facility.
-#	* Freeze for 1.9.5 alpha release.
-# 9.9.1 (Wed Sep 20 13:46:09 EDT 1995):
-#	* Changed xterm lines to 24, the X11R6 default.
-# 9.9.2 (Sat Sep 23 21:29:21 EDT 1995):
-#	* Added 7 newly discovered, undocumented acsc characters to linux
-#	  entry (the pryz{|} characters).
-#	* ncurses no longer steals A_PROTECT.  Simplify linux sgr accordingly.
-#	* Correct two typos in the xterm entries introduced in 9.9.1.
-#	* I finally figured out how to translate ko capabilities.  Done.
-#	* Added tvi921 entries from Tim Theisen.
-#	* Cleanup: dgd211 -> dg211, adm42-nl -> adm42-nsl.
-#	* Removed mystery tec entry, it was neither interesting nor useful.
-#	* shortened altos3, qvt203, tvi910+, tvi92D, tvi921-g, tvi955, vi200-f,
-#	  vi300-ss, att505-24, contel301, dm3045, f200vi, pe7000c, vc303a,
-#	  trs200, wind26, wind40, wind50, cdc456tst, dku7003, f110, dg211,
-#	  by making them relative to use capabilities
-#	* Added cuf1=^L to tvi925 from deleted variant tvi925a.
-#	* fixed cup in adm22 entry and parametrized strings in vt320-k3.
-#	* added it#8 to entries that used to have :pt: -- tvi912, vi200,
-#	  ampex80,
-#	* Translate all home=\E[;H capabilities to home=\E[H, they're
-#	  equivalent.
-#	* Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of
-#	  vt100 and ANSI-like terminals.
-# 9.9.3 (Tue Sep 26 20:11:15 EDT 1995):
-#	* Added it#8 and ht=\t to *all* entries with :pt:; the ncurses tic
-#	  does this now, too.
-#	* fviewpoint is gone, it duplicated screwpoint.
-#	* Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c,
-#	  ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3,
-#	  versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW.
-#	  The UW vi50 replaces the old one, which becomes vi50adm,
-#	* No more embedded commas in name fields.
-#
-# 9.10.0 (Wed Oct  4 15:39:37 EDT 1995):
-#	* XENIX forms characters in fos, trs16, scoansi become acsc strings,
-#	* Introduced klone+* entries for describing Intel-console behavior.
-#	* Linux kbs is default-mapped to delete for some brain-dead reason.
-#	* -nsl -> -ns.  The -pp syntax is obsolete.
-#	* Eliminate [A-Z]* primaries in accordance with SVr4 terminfo docs.
-#	* Make xterm entry do application-keypad mode again.  I got complaints
-#	  that it was messing up someone's 3270 emulator.
-#	* Added some longname fields in order to avoid warning messages from
-#	  older tic implementations.
-#	* According to ctlseqs.ms, xterm has a full vt100 graphics set.  Use
-#	  it! (This gives us pi, greater than, less than, and a few more.)
-#	* Freeze for ncurses-1.9.6 release.
-# 9.10.1 (Sat Oct 21 22:18:09 EDT 1995):
-#	* Add xon to a number of console entries, they're memory-mapped and
-#	  don't need padding.
-#	* Correct the use dependencies in the ansi series.
-#	* Hand-translate more XENIX capabilities.
-#	* Added hpterm entry for HP's X terminal emulator.
-#	* Added aixterm entries.
-#	* Shortened four names so everything fits in 14 chars.
-#
-# 9.11.0 (Thu Nov  2 17:29:35 EST 1995):
-#	* Added ibcs2 entry and info on iBCS2 standard.
-#	* Corrected hpa/vpa in linux entry.  They still fail the worm test.
-#	* We can handle the HP meml/memu capability now.
-#	* Added smacs to klone entries, just as documentation.
-#	* Carrected ansi.sys and cit-500 entries.
-#	* Added z39, vt320-k311, v220c, and avatar entries.
-#	* Make pcansi use the ansi.sys invis capability.
-#	* Added DIP switch descriptions for vt100, adm31, tvi910, tvi920c,
-#	  tvi925, tvi950, dt80, ncr7900i, h19.
-#	* X3.64 has been withdrawn, change some references.
-#	* Removed function keys from ansi-m entry.
-#	* Corrected ansi.sys entry.
-#	* Freeze for ncurses-1.9.7 release.
-# 9.11.1 (Tue Nov  6 18:18:38 EST 1995):
-#	* Added rmam/smam capabilities to many entries based on init strings.
-#	* Added correct hpa/vpa to linux.
-#	* Reduced several entries relative to vt52.
-# 9.11.2 (Tue Nov  7 00:21:06 EST 1995):
-#	* Exiled some utterly unidentifiable custom and homebrew types to the
-#	  UFO file; also, obsolete small-screen hardware; also, entries which
-#	  look flat-out incorrect, garbled, or redundant.  These include the
-#	  following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec,
-#	  tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile,
-#	  apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu,
-#	  fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55,
-#	  yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2,
-#	  vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200,
-#	  trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40,
-#	  att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w,
-#	  tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na,
-#	  c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na,
-#	  regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb,
-#	  vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam,
-#	  vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms.
-#	* Corrected pcvt25h as suggested by Brian C. Grayson
-#	  <bgrayson@pine.ece.utexas.edu>.
-# 9.11.3 (Thu Nov  9 12:14:40 EST 1995):
-#	* Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H.
-#	* Added kent=\EOM to xterm entry.
-#
-# 9.11.4 (Fri Nov 10 08:31:35 EST 1995):
-#	* Corrected gigi entry.
-#	* Restored cuf/cud1 to xterm, their apparent bugginess was due to
-#	  bad hpa/vpa capabilities.
-#	* Corrected flash strings to have a uniform delay of .2 sec.  No
-#	  more speed-dependent NUL-padding!
-#	* terminfo capabilities in comments bracketed with <>.
-# 9.11.5 (Fri Nov 10 15:35:02 EST 1995):
-#	* Replaced pcvt with the 3.31 pcvt entries.
-#	* Freeze for 1.9.7a.
-# 9.11.6 (Mon Nov 13 10:20:24 EST 1995):
-#	* Added emu entry from the X11R6 contrib tape sources.
-#
-# 9.12.0 (Wed Nov 29 04:22:25 EST 1995):
-#	* Improved iris-ansi and sun entries.
-#	* More flash string improvements.
-#	* Corrected wy160 & wy160 as suggested by Robert Dunn
-#	* Added dim to at386.
-#	* Reconciled pc3 and ibmpc3 with the BSDI termcap file.  Keith says
-#	  he's ready to start using the termcap generated from this one.
-#	* Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m,
-#	  ln03, lno3-w, h19-g, z29a*, qdss.  Made vt200 an alias of vt220.
-#	* Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925,
-#	  att610, att620, att630,
-#	* Changed hazeltine name prefix from h to hz.
-#	* Sent t500 to the UFI file.
-#	* I think we've sucked all the juice out of BSDI's termcap file now.
-#	* Freeze for ncurses 1.9.8 release
-# 9.12.1 (Thu Nov 30 03:14:06 EST 1995)
-#	* Unfreeze, linux kbs needed to be fixed.
-#	* Tim Theisen pinned down a bug in the DMD firmware.
-# 9.12.2 (Thu Nov 30 19:08:55 EST 1995):
-#	* Fixes to ansi and klone capabilities (thank you, Aaron Ucko).
-#	  (The broken ones had been shadowed by sgr.)
-# 9.12.3 (Thu Dec  7 17:47:22 EST 1995):
-#	* Added documentation on ECMA-48 standard.
-#	* New Amiga entry.
-# 9.12.4 (Thu Dec 14 04:16:39 EST 1995):
-#	* More ECMA-48 stuff
-#	* Corrected typo in minix entry, added pc-minix.
-#	* Corrected khome/kend in xterm (thank you again, Aaron Ucko).
-#	* Added rxvt entry.
-#	* Added 1.3.x color-change capabilities to linux entry.
-# 9.12.5 (Tue Dec 19 00:22:10 EST 1995):
-#	* Corrected rxvt entry khome/kend.
-#	* Corrected linux color change capabilities.
-#	* NeXT entries from Dave Wetzel.
-#	* Cleaned up if and rf file names (all in /usr/share now).
-#	* Changed linux op capability to avoid screwing up a background color
-#	  pair set by setterm.
-# 9.12.6 (Wed Feb  7 16:14:35 EST 1996):
-#	* Added xterm-sun.
-# 9.12.7 (Fri Feb  9 13:27:35 EST 1996):
-#	* Added visa50.
-#
-# 9.13.0 (Sun Mar 10 00:13:08 EST 1996):
-#	* Another sweep through the Shuford archive looking for new info.
-#	* Added dg100 alias to dg6053 based on a comp.terminals posting.
-# 	* Added st52 from Per Persson.
-#	* Added eterm from the GNU Emacs 19.30 distribution.
-#	* Freeze for 1.9.9.
-# 9.13.1 (Fri Mar 29 14:06:46 EST 1996):
-#	* FreeBSD console entries from Andrew Chernov.
-#	* Removed duplicate Atari st52 name.
-# 9.13.2 (Tue May  7 16:10:06 EDT 1996)
-#	* xterm doesn't actually have ACS_BLOCK.
-#	* Change klone+color setf/setb to simpler forms that can be
-#	  translated into termcap.
-#	* Added xterm1.
-#	* Removed mechanically-generated junk capabilities from cons* entries.
-#	* Added color support to bsdos.
-# 9.13.3 (Thu May  9 10:35:51 EDT 1996):
-#	* Added Wyse 520 entries from Wm. Randolph Franklin <wrf@ecse.rpi.edu>.
-#	* Created ecma+color, linux can use it.  Also added ech to linux.
-#	* Teach xterm about more keys. Add Thomas Dickey's 3.1.2E updates.
-#	* Add descriptions to FreeBSD console entries.  Also shorten
-#	  some aliases to <= 14 chars for portability.
-#	* Added x68k console
-#	* Added OTbs to several VT-series entries.
-# 9.13.4 (Wed May 22 10:54:09 EDT 1996):
-#	* screen entry update for 3.7.1 from Michael Alan Dorman.
-# 9.13.5 (Wed Jun  5 11:22:41 EDT 1996):
-#	* kterm correction due to Kenji Rikitake.
-#	* ACS correction in vt320-kll due to Phillippe De Muyter.
-# 9.13.6 (Sun Jun 16 15:01:07 EDT 1996):
-#	* Sun console entry correction from J.T. Conklin.
-#	* Changed all DEC VT300 and up terminals to use VT300 tab set
-# 9.13.7 (Mon Jul  8 20:14:32 EDT 1996):
-#	* Added smul to linux entry (we never noticed it was missing
-#	  because of sgr!).
-#	* Added rmln to hp+labels (deduced from other HP entries).
-#	* Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas,
-#	  pro350, att7300, 5420_2, att4418, att4424, att4426, att505, vt320-k3.
-#	* Corrected vt220 acsc.
-#	* The klone+sgr and klone+sgr-dumb entries now use klone+acs;
-#	  this corresponds to reality and helps prevent some tic warnings.
-#	* Added sgr0 to c101, pcix, vt100-nav, screen2, oldsun, next, altos2,
-#	  hpgeneric, hpansi, hpsub, hp236, hp700-wy, bobcat, dku7003, adm11,
-#	  adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200,
-#	  qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc,
-#	  wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90,
-#	  adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p,
-#	  f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000,
-#	  owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx,
-#	  lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25,
-#	  dw3, ln03, ims-ansi, graphos, t16, zen30, xtalk, simterm, d800,
-#	  ifmr, v3220, wy100q, tandem653, ibmaed.
-#	* Added DWK terminal description.
-# 9.13.8 (Wed Jul 10 11:45:21 EDT 1996):
-#	* Many entries now have highlights inherited from adm+sgr.
-#	* xterm entry now corresponds to XFree86 3.1.2E, with color.
-#	* xtitle and xtitle-twm enable access to the X status line.
-#	* Added linux-1.3.6 color palette caps in conventional format.
-#	* Added adm1178 terminal.
-#	* Move fos and apollo terminals to obsolete category.
-#	* Aha! The BRL terminals file told us what the Iris extensions mean.
-#	* Added, from the BRL termcap file: rt6221, rt6221-w, northstar,
-#	  commodore, cdc721-esc, excel62, osexec.  Replaced from the BRL file:
-#	  cit500, adm11.
-# 9.13.9 (Mon Jul 15 00:32:51 EDT 1996):
-#	* Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756,
-#	  aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155.
-#	* Corrected, from BRL termcap file: vi50.
-#	* Better rxvt entry & corrected xterm entries from Thomas Dickey.
-# 9.13.10 (Mon Jul 15 12:20:13 EDT 1996):
-#	* Added from BRL: cit101e & variants, hmod1, vi200, ansi77, att5620-1,
-#	  att5620-s, att5620-s, dg210, aas1901, hz1520, hp9845, osborne
-#	  (old osborne moved to osborne-w), tvi970-vb, tvi970-2p, tvi925-hi,
-#	  tek4105brl, tek4106brl, tek4107brl,tek4109brl, hazel, aepro,
-#	  apple40p, apple80p, appleIIgs, apple2e, apple2e-p, apple-ae.
-#	* Paired-attribute fixes to various terminals.
-#	* Sun entry corrections from A. Lukyanov & Gert-Jan Vons.
-#	* xterm entry corrections from Thomas Dickey.
-# 9.13.11 (Tue Jul 30 16:42:58 EDT 1996):
-#	* Added t916 entry, translated from a termcap in SCO's support area.
-#	* New qnx entry from Michael Hunter.
-# 9.13.12 (Mon Aug  5 14:31:11 EDT 1996):
-#	* Added hpex2 from Ville Sulko.
-#	* Fixed a bug that ran the qnx and pcvtXX together.
-# 9.13.13 (Fri Aug  9 01:16:17 EDT 1996):
-#	* Added dtterm entry from Solaris CDE.
-# 9.13.14 (Tue Sep 10 15:31:56 EDT 1996):
-#	* corrected pairs#8 typo in dtterm entry.
-#	* added tvi9065.
-# 9.13.15 (Sun Sep 15 02:47:05 EDT 1996):
-#	* updated xterm entry to cover 3.1.2E's new features.
-# 9.13.16 (Tue Sep 24 12:47:43 EDT 1996):
-#	* Added new minix entry
-#	* Removed aliases of the form ^[0-9]* for obsolete terminals.
-#	* Commented out linux-old, nobody's using pre-1.2 kernels now.
-# 9.13.17 (Fri Sep 27 13:25:38 EDT 1996):
-#	* Added Prism entries and kt7ix.
-#	* Caution notes about EWAN and tabset files.
-#	* Changed /usr/lib/tabset -> /usr/local/share/tabset.
-#	* Added acsc/rmacs/smacs to vt52.
-# 9.13.18 (Mon Oct 28 13:24:59 EST 1996):
-#	* Merged in Thomas Dickey's reorganization of the xterm entries;
-#	  added technical corrections to avoid warning messages.
-# 9.13.19 (Sat Nov 16 16:05:49 EST 1996):
-#	* Added rmso=\E[27m in Linux entry.
-#	* Added koi8-r support for Linux console.
-#	* Replace xterm entries with canonical ones from XFree86 3.2.
-# 9.13.20 (Sun Nov 17 23:02:51 EST 1996):
-#	* Added color_xterm from Jacob Mandelson
-# 9.13.21 (Mon Nov 18 12:43:42 EST 1996):
-#	* Back off the xterm entry to use r6 as a base.
-# 9.13.22 (Sat Nov 30 11:51:31 EST 1996):
-#	* Added dec-vt220 at Adrian Garside's request.
-#
-#-(original-changelog-1996/12/29-to-1998/02/28-by-TD)---------------------------
-#
-# 10.1.0 (Sun Dec 29 02:36:31 EST 1996): withdrawn
-#	* Minor corrections to xterm entries.
-#	* Replaced EWAN telnet entry.
-#	* Dropped the reorder script generator.  It was a fossil.
-# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
-#	* Replaced minitel-2 entry.
-#	* Added MGR, ansi-nt.
-# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
-#	* Thorsten Lockert added termcap `bs' to a lot of types, working from
-#	  the 4.4BSD Lite2 file.
-#
-# 10.1.1 (Sat May  3 21:41:27 EDT 1997):
-#	* Use setaf/setab consistently with SVr4.
-#	* Remove ech, el1 from cons25w, they do not work in FreeBSD 2.1.5
-# 10.1.2 (Sat May 24 21:10:57 EDT 1997)
-#	* update xterm-xf86-v32 to match XFree86 3.2A (changes F1-F4)
-#	* add xterm-16color, for XFree86 3.3
-# 10.1.3 (Sat May 31 12:21:05 EDT 1997)
-#	* correct typo in emu
-#	* correct typo in vt102-w (Robert Wuest)
-#	* make new entry xterm-xf86-v33, restored xterm-xf86-v32.
-# 10.1.4 (Sun Jun 15 08:29:05 EDT 1997)
-#	* remove ech capability from rxvt (it does the wrong thing)
-# 10.1.5 (Sat Jun 28 21:34:36 EDT 1997)
-#	* remove spurious newlines from several entries (hp+color, wy50,
-#	  wy350, wy370-nk, wy99gt-tek, wy370-tek, ibm3161, tek4205, ctrm,
-#	  gs6300)
-# 10.1.6 (Sat Jul  5 15:08:16 EDT 1997)
-#	* correct rmso capability of wy50-mc
-# 10.1.7 (Sat Jul 12 20:05:55 EDT 1997)
-#	* add cbt to xterm-xf86-v32
-#	* disentangle some entries from 'xterm', preferring xterm-r6 in case
-#	  'xterm' is derived from xterm-xf86-v32, which implements ech and
-#	  other capabilities not in xterm-r6.
-#	* remove alternate character set from kterm entry.
-# 10.1.8 (Sat Aug  2 18:43:18 EDT 1997)
-#	* correct acsc entries for ACS_LANTERN, which is 'i', not 'I'.
-# 10.1.9 (Sat Aug 23 17:54:38 EDT 1997)
-#	* add xterm-8bit entry.
-# 10.1.10 (Sat Oct  4 18:17:13 EDT 1997)
-#	* repair several places where early version of tic replaced \, with \\\,
-#	* make acsc entries canonical form (sorted, uniq).
-#	* modify acsc entries for linux, linux-koi8
-#	* new rxvt entry, from corrected copy of distribution in rxvt 2.21b
-#	* add color, mouse support to kterm.
-# 10.1.11 (Sat Oct 11 14:57:10 EDT 1997)
-#	* correct wy120 smxon/tbc capabilities which were stuck together.
-# 10.1.12 (Sat Oct 18 17:38:41 EDT 1997)
-#	* add entry for xterm-xf86-v39t
-# 10.1.13 (Sat Nov  8 13:43:33 EST 1997)
-#	* add u8,u9 to sun-il description
-# 10.1.14 (Sat Nov 22 19:59:03 EST 1997)
-#	* add vt220-js, pilot, rbcomm, datapoint entries from esr's 27-jun-97
-#	  version.
-#	* add hds200 description (Walter Skorski)
-#	* add EMX 0.9b descriptions
-#	* correct rmso/smso capabilities in wy30-mc and wy50-mc (Daniel Weaver)
-#	* rename xhpterm back to hpterm.
-# 10.1.15 (Sat Nov 29 19:21:59 EST 1997)
-#	* change initc in linux-c-nc to use 0..1000 range.
-# 10.1.16 (Sat Dec 13 19:41:59 EST 1997)
-#	* remove hpa/vpa from rxvt, which implements them incorrectly.
-#	* add sgr0 for rxvt.
-#	* remove bogus smacs/rmacs from EMX descriptions.
-# 10.1.17 (Sat Dec 20 17:54:10 EST 1997)
-#	* revised entry for att7300
-# 10.1.18 (Sat Jan  3 17:58:49 EST 1998)
-#	* use \0 rather than \200.
-#	* rename rxvt-color to rxvt to match rxvt 2.4.5 distribution.
-# 10.1.19 (Sat Jan 17 14:24:57 EST 1998)
-#	* change xterm (xterm-xf86-v40), xterm-8bit rs1 to use hard reset.
-#	* rename xterm-xf86-v39t to xterm-xf86-v40
-#	* remove bold/underline from sun console entries since they're not
-#	  implemented.
-# 10.1.20 (Sat Jan 24 11:02:51 EST 1998)
-#	* add beterm entry (Fred Fish)
-#	* add irix-color/xwsh entry.
-#	* turn ncv off for linux.
-# 10.1.21 (Sat Jan 31 17:39:16 EST 1998)
-#	* set ncv for FreeBSD console (treat colors with reverse specially).
-#	* remove sgr string from qnx based on report by Xiaodan Tang
-# 10.1.22 (Wed Feb 11 18:40:12 EST 1998)
-#	* remove spurious commas from descriptions
-#	* correct xterm-8bit to match XFree86 3.9Ad F1-F4.
-# 10.1.23 (Sat Feb 28 17:48:38 EST 1998)
-#	* add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
-#	  apparently based on cp-866).
-#
-#-(replaced-changelog-1998/02/28-by-ESR)----------------------------------------
-#
-# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
-#	* Replaced minitel-2 entry.
-#	* Added MGR, ansi-nt.
-#	* Minor corrections to xterm entries.
-#	* Replaced EWAN telnet entry.
-#	* Dropped the reorder script generator.  It was a fossil.
-# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
-#	* Thorsten Lockert added termcap `bs' to a lot of types, working from
-#	  the 4.4BSD Lite2 file.
-# 9.13.25 (Fri Jun 20 12:33:36 EDT 1997):
-#	* Added Datapoint 8242, pilot, ansi_psx, rbcomm, vt220js.
-#	* Updated iris-ansi; corrected vt102-w.
-#	* Switch base xterm entry to 3.3 level.
-# 9.13.26 (Mon Jun 30 22:45:45 EDT 1997)
-#	* Added basic4.
-#	* Removed rmir/smir from tv92B.
-#
-# 10.2.0 (Sat Feb 28 12:47:36 EST 1998):
-#	* add hds200 description (Walter Skorski)
-#	* add beterm entry (Fred Fish)
-#	* add Thomas Dickey's xterm-xf86-v40, xterm-8bit, xterm-16color,
-#	  iris-color entries.
-#	* add emx entries.
-#	* Replaced unixpc entry with Benjamin Sittler's corrected version.
-#	* Replaced xterm/rxvt/emu/syscons entries with Thomas Dickey's
-#	  versions.
-#	* remove sgr string from qnx based on report by Xiaodan Tang
-#	* Added u8/u9, removed rmul/smul from sun-il.
-#	* 4.2 tic displays \0 rather than \200.
-#	* add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
-#	  apparently based on cp-866).
-#	* Merged in Pavel Roskin's acsc for linux-koi8
-#	* Corrected some erroneous \\'s to \.
-#	* 4.2 ncurses has been changed to use setaf/setab, consistent w/SysV.
-#	* II -> ii in pcvtXX, screen, xterm.
-#	* Removed \n chars following ANSI escapes in sgr & friends.
-#	* Updated Wyse entries.
-#	* h19 corrections from Tim Pierce.
-#	* Noted that the dm2500 has both ich and smir.
-#	* added pccons for the Alpha under OSF/1.
-#	* Added Sony NEWS workstation entries and cit101e-rv.
-#	* Reverted `amiga'; to Kent Polk's version, as I'm told
-#	  the Verkuil entry messes up with Amiga Telnet.
-# 10.2.1 (Sun Mar  8 18:32:04 EST 1998):
-#	* Corrected attributions in 10.2.0 release notes.
-#	* Scanned the Shuford archive for new terminfos and information.
-#	* Removed sgr from qnx entry (Thomas Dickey).
-#	* Added entries for ICL and Kokusai Data Systems terminals.
-#	* Incorporated NCR terminfos from the Boundless Technology FTP site.
-#	* Incorporated att700 from the Boundless Technology FTP site.
-#	* Miscellaneous contact-address and Web-page updates.
-#
-#-(changelog-beginning-ncurses-4.2)---------------------------------------------
-#
-# 1998/5/9
-#	* add nxterm and xterm-color terminfo description (request by Cristian
-#	  Gafton <gafton@redhat.com>).
-#	* modify rxvt terminfo description to clear alternate screen before
-#	  switching back to normal screen, for compatibility with applications
-#	  which use xterm (reported by Manoj Kasichainula <manojk@io.com>).
-#	* modify linux terminfo description to reset color palette (reported
-#	  by Telford Tendys <telford@eng.uts.edu.au>).
-#
-# 1998/7/4
-#	* merge changes from current XFree86 xterm terminfo descriptions.
-#
-# 1998/7/25
-#	* Added minitel1 entries from Alexander Montaron.
-#	* Added qnxt2 from Federico Bianchi.
-#	* Added arm100 terminfo entries from Dave Millen.
-#
-# 1998/8/6
-#	* Added ncsa telnet entries from Francesco Potorti
-#
-# 1998/8/15
-#	* modify ncsa telnet entry to reflect color, other capabilities based on
-#	  examination of the source code - T.Dickey.
-#
-# 1998/8/22
-#	* Corrected some erroneous \\'s to \ (eterm, osborne) - TD.
-#
-# 1998/8/29
-#	* Added Francesco Potorti's tuned Wyse 99 entries.
-#	* dtterm enacs correction from Alexander V. Lukyanov.
-#	* Add ncsa-ns, ncsa-m-ns and ncsa-m entries from esr version.
-#	* correct a typo in icl6404 entry.
-#	* add xtermm and xtermc
-#
-# 1998/9/26
-#	* format most %'char' sequences to %{number}
-#	* adapt IBM AIX 3.2.5 terminfo - T.Dickey
-#	* merge Data General terminfo from Hasufin <hasufin@vidnet.net> - TD
-#
-# 1998/10/10
-#	* update xterm-xfree86 to current (patch 84), for is2/rs2 changes - TD
-#	* correct initialization string in xterm-r5, add misc other features
-#	  to correspond with xterm patch 84 - TD
-#
-# 1998/12/19
-#	* update xterm-xfree86 to current (patch 90), smcur/rmcur changes - TD
-#	* add Mathew Vernon's mach console entries
-#	* corrections for ncsa function-keys (report by Larry Virden)
-#
-# 1998/12/19
-#	* change linux to use ncv#2, since underline does not work with color - TD
-#
-# 1999/1/9
-#	* add kbt to iris-ansi, document other shift/control functionkeys - TD
-#	* correct iris-ansi and iris-ansi-ap with respect to normal vs keypad
-#	  application modes, change kent to use the correct keypad code - TD
-#
-# 1999/1/10
-#	* add entry for Tera Term - TD
-#
-# 1999/1/23
-#	* minor improvements for teraterm entry - TD
-#	* rename several entries used by BSDI: bsdos to bsdos-pc-nobold,
-#	  and bsdos-bold to bsdos-pc (Jeffrey C Honig)
-#
-# 1999/2/20
-#	* resolve ambiguity of kend/kll/kslt and khome/kfnd/kich1 strings in
-#	  xterm and ncsa entries by removing the unneeded ones.  Note that
-#	  some entries will return kend & khome versus kslt and kfnd, for
-#	  PC-style keyboards versus strict vt220 compatiblity - TD
-#
-# 1999/3/13
-#	* adjust xterm-xfree86 khome/kend to match default PC-style keyboard
-#	  tables - TD
-#	* add 'crt' entry - TD
-#	* correct typos in 'linux-c' entry - TD
-#
-# 1999/3/14
-#	* update entries for BSD/OS console to use klone+sgr and klone+color
-#	  (Jeffrey C Honig)
-#
-# 1999/3/27
-#	* adjust xterm-xfree86 miscellaneous keypad keys, as per patch #94 - TD.
-#
-# 1999/4/10
-#	* add linux-lat, from RedHat patches to ncurses 4.2
-#
-# 1999/4/17
-#	* add complete set of default function-key definitions for scoansi - TD.
-#
-# 1999/7/3
-#	* add cnorm, cvvis for Linux 2.2 kernels
-#
-# 1999/7/24
-#	* add kmous to xterm-r5 -TD
-#	* correct entries xterm+sl and xterm+sl-twm, which were missing the
-#	  parent "use" clause -TD
-#
-# 1999/7/31
-#	* corrected cnorm, added el1 in 'screen' description -TD
-#
-# 1999/8/14
-#	* add ms-vt100 -TD
-#
-# 1999/8/21
-#	* corrections to beterm entry -TD
-#
-# 1999/8/28
-#	* add cygwin entry -TD
-#
-# 1999/9/4
-#	* minor corrections for beterm entry -TD
-#
-# 1999/9/18
-#	* add acsc string to HP 70092 terminfo entry -Joerg Wunsch
-#
-# 1999/9/25
-#	* add amiga-8bit entry
-#	* add console entries from NetBSD: ofcons, wsvt25, wsvt25m, rcons,
-#	  rcons-color, based on
-#	  ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/share/termcap/termcap.src
-#	* add alias for iris-ansi-net
-#
-# 1999/10/2
-#	* corrected scoansi entry's acsc, some function keys, add color -TD
-#
-# 1999/10/23
-#	* add cnorm, cvvis to cons25w, and modify ncv to add 'dim' -TD
-#	* reorder ncsa entries to make ncsa-vt220 use the alternate function
-#	  key mapping, leaving Potorti's entries more like he named them -TD
-#	* remove enter/exit am-mode from cygwin -TD
-#
-# 1999/10/30
-#	* correct typos in several entries (missing '[' from CSI):
-#	  mgr-sun, ncsa-m, vt320-k3, att505, avt-ns, as well as smir/rmir
-#	  strings for avt-ns -TD
-#	* add 'dim' to ncv mask for linux (report by Klaus Weide).
-#
-# 1999/11/27
-#	* correct kf1-kf4 in xterm-r6 which were vt100-style PF1-PF4 -TD
-#	* add hts to xterm-r6, and u6-u9 to xterm-r5 -TD
-#	* add xterm-88color and xterm-256color -TD
-#
-# 1999/12/4
-#	* add "obsolete" termcap strings -TD
-#	* add kvt and gnome entries -TD
-#
-# 1999/12/11
-#	* correct cup string for regent100 -TD
-#
-# 2000/1/1
-#	* update mach, add mach-color based on Debian diffs for ncurses 5.0 -TD
-#	* add entries for xterm-hp, xterm-vt220, xterm-vt52 and xterm-noapp -TD
-#	* change OTrs capabilities to rs2 -TD
-#	* add obsolete and extended capabilities to 'screen' -TD
-#
-# 2000/1/5
-#	* remove kf0 from rxvt, vt520, vt525 and ibm5151 since it conflicts
-#	  with kf10 -TD
-#	* updated xterm-xf86-v40, making kdch1 correspond to vt220 'Remove',
-#	  and adding kcbt -TD
-#
-# 2000/1/12
-#	* remove incorrect khome/kend from xterm-xf86-v333, which was based on
-#	  nonstandard resource settings -TD
-#
-# 2000/2/26
-#	* minor fixes for xterm-*, based on Debian #58530 -TD
-#
-# 2000/3/4
-#	* add several terminal types from esr's "11.0", as well as comments.
-#	  bq300*, dku7102-old, dku7202, hft, lft, pcmw, pmcons, tws*, vip*,
-#	  vt220-8bit, vt220-old, wy85-8bit
-#
-# 2000/3/18
-#	* add several terminal types from esr's "11.0.1" (ansi-*).
-#	* update OTxx capabilities for changes on 2000/3/4.
-#	* revert part of vt220 change (request by Todd C Miller for OpenBSD)
-#
-# 2000/3/26
-#	* move screen's AX extension to ecma+color, modify several entries to
-#	  use that, adjusting ncv as needed -TD
-#
-# 2000/4/8
-#	* add bsdos-pc-m, bsdos-pc-mono (Jeffrey C Honig)
-#	* correct spelling error in entry name: bq300-rv was given as bg300-rv
-#	  in esr's version.
-#
-# 2000/4/15
-#	* add cud, ech, etc., to beterm based on feedback from Rico Tudor -TD
-#	* correct color definition for ibm3164, make minor changes to other
-#	  IBM terminal definitions based on recent terminfo descriptions -TD
-#
-# 2000/4/22
-#	* add mgterm, from NetBSD -TD
-#	* add alias sun-cgsix for sun-ss5 as per NetBSD
-#	* change cons25w to use rs2 for reset rather than rs1 -TD
-#	* add rc/sc to aixterm based on manpage -TD
-#
-# 2000/5/13
-#	* remove ncv from xterm-16color, xterm-256color
-#
-# 2000/6/10
-#	* add kmous capability to linux to use Joerg Schoen's gpm patch.
-#
-# 2000/7/1
-#	* add Eterm (Michael Jennings)
-#
-# 2000-07-18
-#       * add amiga-vnc entry.
-#
-# 2000-08-12
-#	* correct description of Top Gun Telnet.
-#	* add kterm-color
-#
-# 2000-08-26
-#	* add qansi* entries from QNX ftp site.
-#
-# 2000-09-16
-#	* add Matrix Orbital entries by Eric Z. Ayers).
-#	* add xterm-basic, xterm-sco entries, update related entries to XFree86
-#	  4.0.1c -TD
-#
-# 2000-09-17
-#	* add S0, E0 extensions to screen's entry -TD
-#
-# 2000-09-23
-#	* several corrections based on tic's new parameter-checking code -TD
-#	* modify xterm-r6 and similar rs2 sequences which had \E7...\E8
-#	  bracketing sequences that reset video attributes (\E8 would restore
-#	  them) -TD
-#
-# 2000-11-11
-#	* rename cygwin to cygwinB19, adapt newer entry from Earnie Boyd -TD
-#
-# 2000-12-16
-#	* improved scoansi, based on SCO man-page, and testing console,
-#	  scoterm with tack -TD
-#
-# 2001-01-27
-#	* modify kterm to use acsc via SCS controls.
-#
-# 2001-02-10
-#	* screen 3.9.8 allows xterm mouse controls to pass-through
-#
-# 2001-03-11
-#	* remove spurious "%|" from some xterm entries.
-#
-# 2001-03-31
-#	* modify 'screen' khome/kend to match screen 3.09.08
-#	* add examples of 'screen' customization (screen.xterm-xfree86,
-#	  screen.xterm-r6, screen.teraterm) -TD
-#
-# 2001-04-14
-#	* correct definitions of shifted editing keys for xterm-xfree86 -TD
-#	* add "Apple_Terminal" entries -Benjamin Sittler
-#	* remove time-delays from "Apple_Terminal" entries -TD
-#	* make sgr entries time-delays consistent with individual caps -TD
-#
-# 2001-05-05
-#	* corrected/updated screen.xterm-xfree86
-#
-# 2001-05-19
-#	* ELKS descriptions, from Federico Bianchi
-#	* add u6 (CSR) to Eterm (Michael Jennings).
-#
-# 2001-07-21
-#	* renamed "Apple_Terminal" entries to "nsterm" to work with Solaris's
-#	  tic which handles names no longer than 14 characters.  Add
-#	  corresponding descriptions for the Darwin PowerPC console named
-#	  "xnuppc" -Benjamin Sittler
-#
-# 2001-09-01
-#	* change kbs in mach entries to ^? (Marcus Brinkmann).
-#
-# 2001-11-17
-#	* add "putty" entry -TD
-#	* updated "Apple_Terminal" entries -Benjamin Sittler
-#
-# 2001-11-24
-#	* add ms-vt100-color entry -TD
-#	* add "konsole" entries -TD
-#
-# 2001-12-08
-#	* update gnome entry to Redhat 7.2 -TD
-#
-# 2002-05-25
-#	* add kf13-kf48 strings to cons25w -TD
-#	* add pcvt25-color entry -TD
-#	* changed a few /usr/lib/tabset -> /usr/local/share/tabset.
-#	* improve some features of scoansi entry based on SCO's version -TD
-#	* add scoansi-new entry corresponding to OpenServer 5.0.6
-#
-# 2002-06-15
-#	* add kcbt to screen entry -TD
-#
-# 2002-06-22
-#	* add rxvt-16color, ibm+16color, mvterm entries -TD
-#
-# 2002-09-28
-#	* split out linux-basic entry, making linux-c inherit from that, and
-#	  in turn linux (with cnorm, etc) inherit from linux-c-nc to reflect
-#	  the history of this console type -TD
-#	* scaled the linux-c terminfo entry to match linux-c-nc, i.e., the
-#	  r/g/b parameters of initc are in the range 0 to 1000 -TD
-#
-# 2002-10-05
-#	* minor fix for scale-factor of linux-c and linux-c-nc -TD
-#
-# 2002-11-09
-#	* split-out vt100+keypad and vt220+keypad, fix interchanged ka3/kb2
-#	  in the latter -TD
-#
-# 2002-11-16
-#	* add entries for mterm (mterm, mterm-ansi, decansi) -TD
-#	* ncr260wy350pp has only 16 color pairs -TD
-#	* add sun-type4 from NetBSD -TD
-#	* update xterm-xfree86 to current (patch 170) -TD
-#	* add screen-bce, screen-s entries -TD
-#	* add xterm-1002, xterm-1003 entries -TD
-#
-# 2003-01-11
-#	* update homepage for Top Gun Telnet/SSH
-#
-# 2003-01-25
-#	* reduce duplication in emx entries, added emx-base -TD
-#
-# 2003-05-24
-#	* corrected acs for screen.teraterm -TD
-#	* add tkterm entry -TD
-#
-# 2003-07-15
-#	* cygwin changes from Charles Wilson:
-#	  misc/terminfo.src (nxterm|xterm-color): make xterm-color
-#	  primary instead of nxterm, to match XFree86's xterm.terminfo
-#	  usage and to prevent circular links.
-#	  (rxvt): add additional codes from rxvt.org.
-#	  (rxvt-color): new alias
-#	  (rxvt-xpm): new alias
-#	  (rxvt-cygwin): like rxvt, but with special acsc codes.
-#	  (rxvt-cygwin-native): ditto.  rxvt may be run under XWindows, or
-#	  with a "native" MSWin GUI.  Each takes different acsc codes,
-#	  which are both different from the "normal" rxvt's acsc.
-#	  (cygwin): cygwin-in-cmd.exe window.  Lots of fixes.
-#	  (cygwinDBG): ditto.
-#
-# 2003-09-27
-#	* update gnome terminal entries -TD
-#
-# 2003-10-04
-#	* add entries for djgpp 2.03 and 2.04 -TD
-#
-# 2003-10-25
-#	* add alias for vtnt -TD
-#	* update xterm-xfree86 for XFree86 4.4 -TD
-#
-# 2003-11-22
-#	* add linux-vt (Andrey V Lukyanov)
-#
-# 2003-12-20
-#	* add screen.linux -TD
-#
-# 2004-01-10
-#	* revised/improved entries for tvi912b, tvi920b (Benjamin Sittler)
-#
-# 2004-01-17
-#	* add OpenNT/Interix/SFU entries (Federico Bianchi)
-#	* add vt100+ and vt-utf8 entries -TD
-#	* add uwin entry -TD
-#
-# 2004-03-27
-#	* add sgr strings to several common entries lacking them, e.g.,
-#	  screen, to make the entries more portable -TD
-#	* remove cvvis from rxvt entry, since it is the same as cnorm -TD
-#	* similar fixups for cvvis/cnorm various entries -TD
-#
-# 2004-05-22
-#	* remove 'ncv' from xterm-256color (patch 188) -TD
-#
-# 2004-06-26
-#	* add mlterm -TD
-#	* add xterm-xf86-v44 -TD
-#	* modify xterm-new aka xterm-xfree86 to accommodate luit, which relies
-#	  on G1 being used via an ISO-2022 escape sequence (report by
-#	  Juliusz Chroboczek) -TD
-#	* add 'hurd' entry -TD
-#
-# 2004-07-03
-#	* make xterm-xf86-v43 derived from xterm-xf86-v40 rather than
-#	  xterm-basic -TD
-#	* align with xterm #192's use of xterm-new -TD
-#	* update xterm-new and xterm-8bit for cvvis/cnorm strings -TD
-#	* make xterm-new the default "xterm" -TD
-#
-# 2004-07-10
-#	* minor fixes for emu -TD
-#	* add emu-220
-#	* add rmam/smam to linux (Trevor Van Bremen)
-#	* change wyse acsc strings to use 'i' map rather than 'I' -TD
-#	* fixes for avatar0 -TD
-#	* fixes for vp3a+ -TD
-#
-# 2004-07-17
-#	* add xterm-pc-fkeys -TD
-#	* review/update gnome and gnome-rh90 entries (prompted by
-#	  Redhat Bugzilla #122815) -TD
-#	* review/update konsole entries -TD
-#	* add sgr, correct sgr0 for kterm and mlterm -TD
-#	* correct tsl string in kterm -TD
-#
-# 2004-07-24
-#	* make ncsa-m rmacs/smacs consistent with sgr -TD
-#	* add sgr, rc/sc and ech to syscons entries -TD
-#	* add function-keys to decansi -TD
-#	* add sgr to mterm-ansi -TD
-#	* add sgr, civis, cnorm to emu -TD
-#	* correct/simplify cup in addrinfo -TD
-#	* corrections for gnome and konsole entries
-#	  (Redhat Bugzilla #122815) -Hans de Goede
-#	* modify DEC entries (vt220, etc), to add sgr string, and to use
-#	  ISO-2022 strings for rmacs/smacs -TD
-#
-# 2004-07-31
-#	* rename xterm-pc-fkeys to xterm+pcfkeys -TD
-#
-# 2004-08-07
-#	* improved putty entry -Robert de Bath
-#
-# 2004-08-14
-#	* remove dch/dch1 from rxvt because they are implemented inconsistently
-#	  with the common usage of bce/ech -TD
-#	* remove khome from vt220 (vt220's have no home key) -TD
-#	* add rxvt+pcfkeys -TD
-#
-# 2004-08-21
-#	* modify several entries to ensure xterm mouse and cursor visibility
-#	  are reset in rs2 string:  hurd, putty, gnome, konsole-base, mlterm,
-#	  Eterm, screen.  (The xterm entries are left alone - old ones for
-#	  compatibility, and the new ones do not require this change) -TD
-#
-# 2004-08-28
-#	* add morphos entry -Pavel Fedin
-#	* modify amiga-8bit to add khome/kend/knp/kpp -Pavel Fedin
-#	* corrected \E[5?l to \E[?5l in vt320 entries -TD
-#
-# 2004-11-20
-#	* update wsvt25 entry -TD
-#
-# 2005-01-29
-#	* update pairs for xterm-88color and xterm-256color to reflect the
-#	  ncurses extended-color support -TD
-#
-# 2005-02-26
-#	* modify sgr/sgr0 in xterm-new to improve tgetent's derived "me" -TD
-#	* add aixterm-16color to demonstrate 16-color capability -TD
-#
-# 2005-04-23
-#	* add media-copy to vt100 -TD
-#	* corrected acsc string for vt52 -TD
-#
-# 2005-04-30
-#	* add kUP, kDN (user-defined shifted up/down arrow) definitions for
-#	  xterm-new -TD
-#	* add kUP5, kUP6, etc., for xterm-new and rxvt -TD
-#
-# 2005-05-07
-#	* re-corrected acsc string for vt52 -TD
-#
-# 2005-05-28
-#	* corrected sun-il sgr string which referred to bold and underline -TD
-#	* add sun-color entry -TD
-#
-# 2005-07-23
-#	* modify sgr0 in several entries to reset alternate-charset as in the
-#	  sgr string -TD
-#	* modify sgr string of prism9 to better match the individual
-#	  attributes -TD
-#
-# 2005-10-15
-#	* correct order of use= in rxvt-basic -TD
-#
-# 2005-10-26
-#	* use kind/kri as shifted up/down cursor keys for xterm-new -TD
-#
-# 2005-11-12
-#	* other minor fixes to cygwin based on tack -TD
-#	* correct smacs in cygwin (report by Baurzhan Ismagulov).
-#
-# 2006-02-18
-#	* add nsterm-16color entry -TD
-#	* remove ncv flag from xterm-16color -TD
-#	* remove setf/setb from xterm-256color to match xterm #209 -TD
-#	* update mlterm entry to 2.9.2 -TD
-#
-# 2006-02-25
-#	* fixes to make nsterm-16color match report
-#	  by Christian Ebert -Alain Bench
-#
-# 2006-04-22
-#	* add xterm+256color building block -TD
-#	* add gnome-256color, putty-256color, rxvt-256color -TD
-#
-# 2006-05-06
-#	* add hpterm-color -TD
-#
-# 2006-06-24
-#	* add xterm+pcc0, xterm+pcc1, xterm+pcc2, xterm+pcc3 -TD
-#	* add gnome-fc5 (prompted by GenToo #122566) -TD
-#	* remove obsolete/misleading comments about kcbt on Linux -Alain Bench
-#	* improve xterm-256color by combining the ibm+16color setaf/setab
-#	  strings with SGR 48.  The setf/setb strings also are cancelled here
-#	  rather than omitted so derived entries will cancel those also -Alain
-#	  Bench
-#
-# 2006-07-01
-#	* add some notes regarding copyright to terminfo.src -TD
-#	* use rxvt+pcfkeys in Eterm -TD
-#	* remove km and flash from gnome, Eterm and rxvt since they do not work
-#	  as one would expect (km sends ESC rather than setting the 8th bit
-#	  of the key) -TD
-#	* add/use ansi+enq, vt100+enq and vt102+enq -TD
-#	* add konsole-solaris -TD
-#
-# 2006-07-22
-#	* update xterm-sun and xterm-sco entries to match xterm #216 -TD
-#	* modify is2/rs2 strings for xterm-r6 as per fix in xterm #148 -TD
-#	* modify xterm-24 to inherit from "xterm" -TD
-#	* add xiterm entry -TD
-#	* add putty-vt100 entry -TD
-#	* corrected spelling of Michael A Dorman's name, prompted by
-#	  http://www.advogato.org/person/mdorman/diary.html -TD
-#
-# 2006-08-05
-#	* add xterm+pcf0, xterm+pcf2 from xterm #216 -TD
-#	* update xterm+pcfkeys to match xterm #216 -TD
-#
-# 2006-08-17
-#	* make descriptions of xterm entries consistent with its terminfo -TD
-#
-# 2006-08-26
-#	* add xfce, mgt -TD
-#
-# 2006-09-02
-#	* correct acsc string in kterm -TD
-#
-# 2006-09-09
-#	* add kon entry -TD
-#	* remove invis from linux and related entries, add klone+sgr8 for those
-#	  that implement the feature (or have not been shown to lack it) -TD
-#
-# 2006-09-23
-#	* add ka2, kb1, kb3, kc2 to vt220-keypad as an extension -TD
-#	* minor improvements to rxvt+pcfkeys -TD
-#
-# 2006-09-30
-#	* fix a few typos in if/then/else expressions -TD
-#
-# 2006-10-07
-#	* add several GNU Screen variations with 16- and 256-colors, and
-#	  status line (Alain Bench).
-#
-# 2007-03-03
-#	* add Newbury Data entries (Jean-Charles Billaud).
-#
-# 2007-06-10
-#	* corrected xterm+pcf2 modifiers for F1-F4, match xterm #226 -TD
-#
-# 2007-07-14
-#	* restore section of pre-ncurses-4.2 changelog to fix attribution -TD
-#	* add konsole-256color entry -TD
-#
-# 2007-08-18
-#	* add 9term entry (request by Juhapekka Tolvanen) -TD
-#
-# 2007-10-13
-#	* correct kIC in rxvt+pcfkeys (prompted by Debian #446444) -TD
-#	* add shift-control- and control-modified keys for rxvt editing
-#	  keypad -TD
-#	* update mlterm entry to 2.9.3 -TD
-#	* add mlterm+pcfkeys -TD
-#
-# 2007-10-20
-#	* move kLFT, kRIT, kind and kri capabilities from xterm-new to
-#	  xterm+pcc0, etc., to make the corresponding building blocks reflect
-#	  xterm's capabilities -TD
-#	* add mrxvt entry -TD
-#	* add xterm+r6f2, use in mlterm and mrxvt entries -TD
-#
-# 2007-11-03
-#	* correct acsc strings for h19 and z100 (Benjamin Sittler)
-#
-# 2007-11-11
-#	* use xterm-xf86-v44 for "xterm-xfree86", reflecting changes to
-#	  xterm starting with patch #216 -TD
-#	* make legacy xterm entries such as xterm-24 inherit from xterm-old,
-#	  to match xterm #230 -TD
-#	* extend xterm+pccX entries to match xterm #230 -TD
-#	* add xterm+app, xterm+noapp, from xterm #230 -TD
-#	* add/use xterm+pce2 from xterm #230, in xterm+pcfkeys -TD
-#
-# 2008-04-19
-#	* add screen.rxvt -TD
-#
-# 2008-04-28
-#	* add screen+fkeys (prompted by Debian # 478094) -TD
-#
-# 2008-06-28
-#	* add screen.mlterm -TD
-#	* improve mlterm and mlterm+pcfkeys -TD
-#
-# 2008-08-23
-#	* add Eterm-256color, Eterm-88color -TD
-#	* add rxvt-88color -TD
-#
-# 2008-10-12
-#	* add teraterm4.59 entry, use that as primary teraterm entry, rename
-#	  original to teraterm2.3 -TD
-#	* update "gnome" to 2.22.3 -TD
-#	* update "konsole" to 1.6.6 -TD
-#	* add "aterm" -TD
-#	* add "linux2.6.26" -TD
-#
-# The following sets edit modes for GNU EMACS.
-# Local Variables:
-# fill-prefix:"\t"
-# fill-column:75
-# comment-column:0
-# comment-start-skip:"^#+"
-# comment-start:"# "
-# compile-command:"tic -c terminfo.master"
-# End:
-######## SHANTIH!  SHANTIH!  SHANTIH!
