diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/buffer.c | 14 | ||||
| -rw-r--r-- | src/nvim/diff.c | 83 | ||||
| -rw-r--r-- | src/nvim/edit.c | 6 | ||||
| -rw-r--r-- | src/nvim/eval.c | 12 | ||||
| -rw-r--r-- | src/nvim/ex_cmds.c | 13 | ||||
| -rw-r--r-- | src/nvim/ex_docmd.c | 11 | ||||
| -rw-r--r-- | src/nvim/fileio.c | 12 | ||||
| -rw-r--r-- | src/nvim/mark.c | 6 | ||||
| -rw-r--r-- | src/nvim/mbyte.c | 4 | ||||
| -rw-r--r-- | src/nvim/path.c | 6 | ||||
| -rw-r--r-- | src/nvim/regexp.c | 33 | ||||
| -rw-r--r-- | src/nvim/regexp_nfa.c | 88 | ||||
| -rw-r--r-- | src/nvim/spell_defs.h | 6 | ||||
| -rw-r--r-- | src/nvim/spellfile.c | 39 | ||||
| -rw-r--r-- | src/nvim/strings.c | 28 | ||||
| -rw-r--r-- | src/nvim/testdir/setup.vim | 1 | ||||
| -rw-r--r-- | src/nvim/testdir/test_diffmode.vim | 31 | ||||
| -rw-r--r-- | src/nvim/testdir/test_functions.vim | 97 | ||||
| -rw-r--r-- | src/nvim/testdir/test_match.vim | 14 | ||||
| -rw-r--r-- | src/nvim/testdir/test_normal.vim | 7 | ||||
| -rw-r--r-- | src/nvim/testdir/test_search.vim | 27 | ||||
| -rw-r--r-- | src/nvim/testdir/test_undo.vim | 132 | ||||
| -rw-r--r-- | src/nvim/tui/terminfo.c | 64 | ||||
| -rw-r--r-- | src/nvim/tui/terminfo_defs.h | 1654 | ||||
| -rw-r--r-- | src/nvim/vim.h | 4 | 
25 files changed, 2145 insertions, 247 deletions
| diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 71e04ec0fb..3fadcc75bf 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -505,14 +505,20 @@ void close_buffer(win_T *win, buf_T *buf, int action, int abort_if_last)    int nwindows = buf->b_nwindows; -  /* decrease the link count from windows (unless not in any window) */ -  if (buf->b_nwindows > 0) -    --buf->b_nwindows; +  // decrease the link count from windows (unless not in any window) +  if (buf->b_nwindows > 0) { +    buf->b_nwindows--; +  } + +  if (diffopt_hiddenoff() && !unload_buf && buf->b_nwindows == 0) { +    diff_buf_delete(buf);   // Clear 'diff' for hidden buffer. +  }    /* Return when a window is displaying the buffer or when it's not     * unloaded. */ -  if (buf->b_nwindows > 0 || !unload_buf) +  if (buf->b_nwindows > 0 || !unload_buf) {      return; +  }    if (buf->terminal) {      terminal_close(buf->terminal, NULL); diff --git a/src/nvim/diff.c b/src/nvim/diff.c index 8699c16351..878971a35c 100644 --- a/src/nvim/diff.c +++ b/src/nvim/diff.c @@ -44,6 +44,7 @@ static int diff_busy = FALSE;    // ex_diffgetput() is busy  #define DIFF_IWHITE     4        // ignore change in white space  #define DIFF_HORIZONTAL 8        // horizontal splits  #define DIFF_VERTICAL   16       // vertical splits +#define DIFF_HIDDEN_OFF 32       // diffoff when hidden  static int diff_flags = DIFF_FILLER;  #define LBUFLEN 50               // length of line in diff file @@ -1597,6 +1598,34 @@ static bool diff_equal_entry(diff_T *dp, int idx1, int idx2)    return true;  } +// Compare the characters at "p1" and "p2".  If they are equal (possibly +// ignoring case) return true and set "len" to the number of bytes. +static bool diff_equal_char(const char_u *const p1, const char_u *const p2, +                            int *const len) +{ +  const int l = utfc_ptr2len(p1); + +  if (l != utfc_ptr2len(p2)) { +    return false; +  } +  if (l > 1) { +    if (STRNCMP(p1, p2, l) != 0 +        && (!(diff_flags & DIFF_ICASE) +            || utf_fold(utf_ptr2char(p1)) != utf_fold(utf_ptr2char(p2)))) { +      return false; +    } +    *len = l; +  } else { +    if ((*p1 != *p2) +        && (!(diff_flags & DIFF_ICASE) +            || TOLOWER_LOC(*p1) != TOLOWER_LOC(*p2))) { +      return false; +    } +    *len = 1; +  } +  return true; +} +  /// Compare strings "s1" and "s2" according to 'diffopt'.  /// Return non-zero when they are different.  /// @@ -1623,30 +1652,12 @@ static int diff_cmp(char_u *s1, char_u *s2)        p1 = skipwhite(p1);        p2 = skipwhite(p2);      } else { -      int l  = (*mb_ptr2len)(p1); -      if (l != (*mb_ptr2len)(p2)) { +      int l; +      if (!diff_equal_char(p1, p2, &l)) {          break;        } - -      if (l > 1) { -        if ((STRNCMP(p1, p2, l) != 0) -            && (!enc_utf8 -                || !(diff_flags & DIFF_ICASE) -                || (utf_fold(utf_ptr2char(p1)) -                    != utf_fold(utf_ptr2char(p2))))) { -          break; -        } -        p1 += l; -        p2 += l; -      } else { -        if ((*p1 != *p2) -            && (!(diff_flags & DIFF_ICASE) -                || (TOLOWER_LOC(*p1) != TOLOWER_LOC(*p2)))) { -          break; -        } -        ++p1; -        ++p2; -      } +      p1 += l; +      p2 += l;      }    } @@ -1828,6 +1839,9 @@ int diffopt_changed(void)      } else if ((STRNCMP(p, "foldcolumn:", 11) == 0) && ascii_isdigit(p[11])) {        p += 11;        diff_foldcolumn_new = getdigits_int(&p); +    } else if (STRNCMP(p, "hiddenoff", 9) == 0) { +      p += 9; +      diff_flags_new |= DIFF_HIDDEN_OFF;      }      if ((*p != ',') && (*p != NUL)) { @@ -1870,6 +1884,12 @@ bool diffopt_horizontal(void)    return (diff_flags & DIFF_HORIZONTAL) != 0;  } +// Return true if 'diffopt' contains "hiddenoff". +bool diffopt_hiddenoff(void) +{ +  return (diff_flags & DIFF_HIDDEN_OFF) != 0; +} +  /// Find the difference within a changed line.  ///  /// @param  wp      window whose current buffer to check @@ -1887,6 +1907,7 @@ bool diff_find_change(win_T *wp, linenr_T lnum, int *startp, int *endp)    int ei_org;    int ei_new;    bool added = true; +  int l;    // Make a copy of the line, the next ml_get() will invalidate it.    char_u *line_org = vim_strsave(ml_get_buf(wp->w_buffer, lnum, FALSE)); @@ -1933,11 +1954,11 @@ bool diff_find_change(win_T *wp, linenr_T lnum, int *startp, int *endp)            si_org = (int)(skipwhite(line_org + si_org) - line_org);            si_new = (int)(skipwhite(line_new + si_new) - line_new);          } else { -          if (line_org[si_org] != line_new[si_new]) { +          if (!diff_equal_char(line_org + si_org, line_new + si_new, &l)) {              break;            } -          ++si_org; -          ++si_new; +          si_org += l; +          si_new += l;          }        } @@ -1972,11 +1993,17 @@ bool diff_find_change(win_T *wp, linenr_T lnum, int *startp, int *endp)                ei_new--;              }            } else { -            if (line_org[ei_org] != line_new[ei_new]) { +            const char_u *p1 = line_org + ei_org; +            const char_u *p2 = line_new + ei_new; + +            p1 -= utf_head_off(line_org, p1); +            p2 -= utf_head_off(line_new, p2); + +            if (!diff_equal_char(p1, p2, &l)) {                break;              } -            ei_org--; -            ei_new--; +            ei_org -= l; +            ei_new -= l;            }          } diff --git a/src/nvim/edit.c b/src/nvim/edit.c index dfb0386d0a..085f12473e 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -6418,8 +6418,10 @@ stuff_inserted (    /* may want to stuff the command character, to start Insert mode */    if (c != NUL)      stuffcharReadbuff(c); -  if ((esc_ptr = (char_u *)vim_strrchr(ptr, ESC)) != NULL) -    *esc_ptr = NUL;         /* remove the ESC */ +  if ((esc_ptr = STRRCHR(ptr, ESC)) != NULL) { +    // remove the ESC. +    *esc_ptr = NUL; +  }    /* when the last char is either "0" or "^" it will be quoted if no ESC     * comes after it OR if it will inserted more than once and "ptr" diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 9765b04922..22cb544f54 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -7603,7 +7603,7 @@ static void f_count(typval_T *argvars, typval_T *rettv, FunPtr fptr)      const char_u *expr = (char_u *)tv_get_string_chk(&argvars[1]);      const char_u *p = argvars[0].vval.v_string; -    if (!error && expr != NULL && p != NULL) { +    if (!error && expr != NULL && *expr != NUL && p != NULL) {        if (ic) {          const size_t len = STRLEN(expr); @@ -12227,7 +12227,7 @@ static void find_some_match(typval_T *const argvars, typval_T *const rettv,    long start = 0;    long nth = 1;    colnr_T startcol = 0; -  int match = 0; +  bool match = false;    list_T      *l = NULL;    listitem_T  *li = NULL;    long idx = 0; @@ -12325,7 +12325,7 @@ static void find_some_match(typval_T *const argvars, typval_T *const rettv,      for (;; ) {        if (l != NULL) {          if (li == NULL) { -          match = FALSE; +          match = false;            break;          }          xfree(tofree); @@ -12351,7 +12351,7 @@ static void find_some_match(typval_T *const argvars, typval_T *const rettv,          startcol = (colnr_T)(regmatch.startp[0]                               + (*mb_ptr2len)(regmatch.startp[0]) - str);          if (startcol > (colnr_T)len || str + startcol <= regmatch.startp[0]) { -            match = FALSE; +            match = false;              break;          }        } @@ -12424,13 +12424,13 @@ static void find_some_match(typval_T *const argvars, typval_T *const rettv,      vim_regfree(regmatch.regprog);    } -  if (type == kSomeMatchStrPos && l == NULL) { +theend: +  if (type == kSomeMatchStrPos && l == NULL && rettv->vval.v_list != NULL) {      // matchstrpos() without a list: drop the second item      list_T *const ret_l = rettv->vval.v_list;      tv_list_item_remove(ret_l, TV_LIST_ITEM_NEXT(ret_l, tv_list_first(ret_l)));    } -theend:    xfree(tofree);    p_cpo = save_cpo;  } diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c index 1420a9aae4..4dcecae9d8 100644 --- a/src/nvim/ex_cmds.c +++ b/src/nvim/ex_cmds.c @@ -307,9 +307,12 @@ static int linelen(int *has_tab)      ;    save = *last;    *last = NUL; -  len = linetabsize(line);              /* get line length */ -  if (has_tab != NULL)                  /* check for embedded TAB */ -    *has_tab = (vim_strrchr(first, TAB) != NULL); +  // Get line length. +  len = linetabsize(line); +  // Check for embedded TAB. +  if (has_tab != NULL) { +    *has_tab = STRRCHR(first, TAB) != NULL; +  }    *last = save;    return len; @@ -5016,8 +5019,8 @@ void fix_help_buffer(void)                  if (fnamencmp(f1, f2, t1 - f1) != 0) {                    continue;                  } -                const char_u *const e1 = vim_strrchr(t1, '.'); -                const char_u *const e2 = vim_strrchr(path_tail(f2), '.'); +                const char_u *const e1 = STRRCHR(t1, '.'); +                const char_u *const e2 = STRRCHR(path_tail(f2), '.');                  if (e1 == NULL || e2 == NULL) {                    continue;                  } diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 3d3d02fd71..c31242f2ac 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -8607,11 +8607,14 @@ eval_vars (        break;      } -    resultlen = STRLEN(result);         /* length of new string */ -    if (src[*usedlen] == '<') {         /* remove the file name extension */ -      ++*usedlen; -      if ((s = vim_strrchr(result, '.')) != NULL && s >= path_tail(result)) +    // Length of new string. +    resultlen = STRLEN(result); +    // Remove the file name extension. +    if (src[*usedlen] == '<') { +      (*usedlen)++; +      if ((s = STRRCHR(result, '.')) != NULL && s >= path_tail(result)) {          resultlen = (size_t)(s - result); +      }      } else if (!skip_mod) {        valid |= modify_fname(src, usedlen, &result, &resultbuf, &resultlen);        if (result == NULL) { diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c index 0858436db3..78fac5acf8 100644 --- a/src/nvim/fileio.c +++ b/src/nvim/fileio.c @@ -1380,15 +1380,15 @@ retry:              }            } else if (fio_flags & FIO_UCS4) {              if (fio_flags & FIO_ENDIAN_L) { -              u8c = (*--p << 24); -              u8c += (*--p << 16); -              u8c += (*--p << 8); +              u8c = (unsigned)(*--p) << 24; +              u8c += (unsigned)(*--p) << 16; +              u8c += (unsigned)(*--p) << 8;                u8c += *--p;              } else {          /* big endian */                u8c = *--p; -              u8c += (*--p << 8); -              u8c += (*--p << 16); -              u8c += (*--p << 24); +              u8c += (unsigned)(*--p) << 8; +              u8c += (unsigned)(*--p) << 16; +              u8c += (unsigned)(*--p) << 24;              }            } else {        /* UTF-8 */              if (*--p < 0x80) diff --git a/src/nvim/mark.c b/src/nvim/mark.c index b9c91de2a8..3861d9ceb8 100644 --- a/src/nvim/mark.c +++ b/src/nvim/mark.c @@ -1465,7 +1465,11 @@ void mark_mb_adjustpos(buf_T *buf, pos_T *lp)  {    if (lp->col > 0 || lp->coladd > 1) {      const char_u *const p = ml_get_buf(buf, lp->lnum, false); -    lp->col -= (*mb_head_off)(p, p + lp->col); +    if (*p == NUL || (int)STRLEN(p) < lp->col) { +      lp->col = 0; +    } else { +      lp->col -= (*mb_head_off)(p, p + lp->col); +    }      // Reset "coladd" when the cursor would be on the right half of a      // double-wide character.      if (lp->coladd == 1 diff --git a/src/nvim/mbyte.c b/src/nvim/mbyte.c index 7c196831ba..15fe51cad1 100644 --- a/src/nvim/mbyte.c +++ b/src/nvim/mbyte.c @@ -566,7 +566,9 @@ int utf_off2cells(unsigned off, unsigned max_off)  /// Convert a UTF-8 byte sequence to a wide character  ///  /// If the sequence is illegal or truncated by a NUL then the first byte is -/// returned. Does not include composing characters for obvious reasons. +/// returned. +/// For an overlong sequence this may return zero. +/// Does not include composing characters for obvious reasons.  ///  /// @param[in]  p  String to convert.  /// diff --git a/src/nvim/path.c b/src/nvim/path.c index 0b90329686..cc4a5f62a7 100644 --- a/src/nvim/path.c +++ b/src/nvim/path.c @@ -1770,7 +1770,7 @@ void path_fix_case(char_u *name)    }    // Open the directory where the file is located. -  char_u *slash = vim_strrchr(name, '/'); +  char_u *slash = STRRCHR(name, '/');    char_u *tail;    Directory dir;    bool ok; @@ -2213,10 +2213,10 @@ static int path_to_absolute(const char_u *fname, char_u *buf, size_t len,    // expand it if forced or not an absolute path    if (force || !path_is_absolute(fname)) { -    p = vim_strrchr(fname, '/'); +    p = STRRCHR(fname, '/');  #ifdef WIN32      if (p == NULL) { -      p = vim_strrchr(fname, '\\'); +      p = STRRCHR(fname, '\\');      }  #endif      if (p != NULL) { diff --git a/src/nvim/regexp.c b/src/nvim/regexp.c index be6c43493b..98d737c9a9 100644 --- a/src/nvim/regexp.c +++ b/src/nvim/regexp.c @@ -1664,9 +1664,8 @@ static char_u *regpiece(int *flagp)    case Magic('@'):    {      int lop = END; -    int nr; +    int64_t nr = getdecchrs(); -    nr = getdecchrs();      switch (no_Magic(getchr())) {      case '=': lop = MATCH; break;                                 /* \@= */      case '!': lop = NOMATCH; break;                               /* \@! */ @@ -2087,7 +2086,7 @@ static char_u *regatom(int *flagp)      case 'u':               /* %uabcd hex 4 */      case 'U':               /* %U1234abcd hex 8 */      { -      int i; +      int64_t i;        switch (c) {        case 'd': i = getdecchrs(); break; @@ -2976,9 +2975,9 @@ static void ungetchr(void)   * The parameter controls the maximum number of input characters. This will be   * 2 when reading a \%x20 sequence and 4 when reading a \%u20AC sequence.   */ -static int gethexchrs(int maxinputlen) +static int64_t gethexchrs(int maxinputlen)  { -  int nr = 0; +  int64_t nr = 0;    int c;    int i; @@ -3000,9 +2999,9 @@ static int gethexchrs(int maxinputlen)   * Get and return the value of the decimal string immediately after the   * current position. Return -1 for invalid.  Consumes all digits.   */ -static int getdecchrs(void) +static int64_t getdecchrs(void)  { -  int nr = 0; +  int64_t nr = 0;    int c;    int i; @@ -3029,9 +3028,9 @@ static int getdecchrs(void)   *     blahblah\%o210asdf   *	   before-^  ^-after   */ -static int getoctchrs(void) +static int64_t getoctchrs(void)  { -  int nr = 0; +  int64_t nr = 0;    int c;    int i; @@ -3055,7 +3054,7 @@ static int getoctchrs(void)   */  static int coll_get_char(void)  { -  int nr = -1; +  int64_t nr = -1;    switch (*regparse++) {    case 'd': nr = getdecchrs(); break; @@ -4922,13 +4921,13 @@ regmatch (                    (colnr_T)STRLEN(regline);                }              } else { -              if (has_mbyte) { -                rp->rs_un.regsave.rs_u.pos.col -= -                  (*mb_head_off)(regline, regline -                                 + rp->rs_un.regsave.rs_u.pos.col - 1) + 1; -              } else { -                rp->rs_un.regsave.rs_u.pos.col--; -              } +              const char_u *const line = +                  reg_getline(behind_pos.rs_u.pos.lnum); + +              rp->rs_un.regsave.rs_u.pos.col -= +                  utf_head_off(line, +                               line + rp->rs_un.regsave.rs_u.pos.col - 1) +                  + 1;              }            } else {              if (rp->rs_un.regsave.rs_u.ptr == regline) { diff --git a/src/nvim/regexp_nfa.c b/src/nvim/regexp_nfa.c index deef3042d2..29191c14a8 100644 --- a/src/nvim/regexp_nfa.c +++ b/src/nvim/regexp_nfa.c @@ -1409,7 +1409,7 @@ static int nfa_regatom(void)      case 'u':               /* %uabcd hex 4 */      case 'U':               /* %U1234abcd hex 8 */      { -      int nr; +      int64_t nr;        switch (c) {        case 'd': nr = getdecchrs(); break; @@ -1485,7 +1485,7 @@ static int nfa_regatom(void)      default:      { -      int n = 0; +      long n = 0;        int cmp = c;        if (c == '<' || c == '>') @@ -1511,7 +1511,13 @@ static int nfa_regatom(void)            EMIT(cmp == '<' ? NFA_VCOL_LT :                 cmp == '>' ? NFA_VCOL_GT : NFA_VCOL);          } -        EMIT(n); +#if SIZEOF_INT < SIZEOF_LONG +        if (n > INT_MAX) { +          EMSG(_("E951: \\% value too large")); +          return FAIL; +        } +#endif +        EMIT((int)n);          break;        } else if (c == '\'' && n == 0) {          /* \%'m  \%<'m  \%>'m  */ @@ -1859,7 +1865,7 @@ static int nfa_regpiece(void)    int greedy = TRUE;                /* Braces are prefixed with '-' ? */    parse_state_T old_state;    parse_state_T new_state; -  int c2; +  int64_t c2;    int old_post_pos;    int my_post_start;    int quest; @@ -2032,9 +2038,10 @@ static int nfa_regpiece(void)      break;    }     /* end switch */ -  if (re_multi_type(peekchr()) != NOT_MULTI) -    /* Can't have a multi follow a multi. */ -    EMSG_RET_FAIL(_("E871: (NFA regexp) Can't have a multi follow a multi !")); +  if (re_multi_type(peekchr()) != NOT_MULTI) { +    // Can't have a multi follow a multi. +    EMSG_RET_FAIL(_("E871: (NFA regexp) Can't have a multi follow a multi")); +  }    return OK;  } @@ -2124,7 +2131,6 @@ static int nfa_regconcat(void)   */  static int nfa_regbranch(void)  { -  int ch;    int old_post_pos;    old_post_pos = (int)(post_ptr - post_start); @@ -2133,10 +2139,13 @@ static int nfa_regbranch(void)    if (nfa_regconcat() == FAIL)      return FAIL; -  ch = peekchr(); -  /* Try next concats */ -  while (ch == Magic('&')) { +  // Try next concats +  while (peekchr() == Magic('&')) {      skipchr(); +    // if concat is empty do emit a node +    if (old_post_pos == (int)(post_ptr - post_start)) { +      EMIT(NFA_EMPTY); +    }      EMIT(NFA_NOPEN);      EMIT(NFA_PREV_ATOM_NO_WIDTH);      old_post_pos = (int)(post_ptr - post_start); @@ -2146,7 +2155,6 @@ static int nfa_regbranch(void)      if (old_post_pos == (int)(post_ptr - post_start))        EMIT(NFA_EMPTY);      EMIT(NFA_CONCAT); -    ch = peekchr();    }    /* if a branch is empty, emit one node for it */ @@ -2447,6 +2455,8 @@ static void nfa_set_code(int c)  }  static FILE *log_fd; +static char_u e_log_open_failed[] = N_( +    "Could not open temporary log file for writing, displaying on stderr... ");  /*   * Print the postfix notation of the current regexp. @@ -2459,10 +2469,11 @@ static void nfa_postfix_dump(char_u *expr, int retval)    f = fopen(NFA_REGEXP_DUMP_LOG, "a");    if (f != NULL) {      fprintf(f, "\n-------------------------\n"); -    if (retval == FAIL) -      fprintf(f, ">>> NFA engine failed ... \n"); -    else if (retval == OK) +    if (retval == FAIL) { +      fprintf(f, ">>> NFA engine failed... \n"); +    } else if (retval == OK) {        fprintf(f, ">>> NFA engine succeeded !\n"); +    }      fprintf(f, "Regexp: \"%s\"\nPostfix notation (char): \"", expr);      for (p = post_start; *p && p < post_ptr; p++) {        nfa_set_code(*p); @@ -2716,7 +2727,7 @@ static void st_error(int *postfix, int *end, int *p)      fclose(df);    }  #endif -  EMSG(_("E874: (NFA) Could not pop the stack !")); +  EMSG(_("E874: (NFA) Could not pop the stack!"));  }  /* @@ -3224,7 +3235,13 @@ static nfa_state_T *post2nfa(int *postfix, int *end, int nfa_calc_size)        if (pattern) {          /* NFA_ZEND -> NFA_END_PATTERN -> NFA_SKIP -> what follows. */          skip = alloc_state(NFA_SKIP, NULL, NULL); +        if (skip == NULL) { +          goto theend; +        }          zend = alloc_state(NFA_ZEND, s1, NULL); +        if (zend == NULL) { +          goto theend; +        }          s1->out= skip;          patch(e.out, zend);          PUSH(frag(s, list1(&skip->out))); @@ -4685,8 +4702,7 @@ static int recursive_regmatch(nfa_state_T *state, nfa_pim_T *pim, nfa_regprog_T      fprintf(log_fd, "MATCH = %s\n", !result ? "FALSE" : "OK");      fprintf(log_fd, "****************************\n");    } else { -    EMSG(_( -            "Could not open temporary log file for writing, displaying on stderr ... ")); +    EMSG(_(e_log_open_failed));      log_fd = stderr;    }  #endif @@ -4952,7 +4968,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,    FILE        *debug = fopen(NFA_REGEXP_DEBUG_LOG, "a");    if (debug == NULL) { -    EMSG2(_("(NFA) COULD NOT OPEN %s !"), NFA_REGEXP_DEBUG_LOG); +    EMSG2("(NFA) COULD NOT OPEN %s!", NFA_REGEXP_DEBUG_LOG);      return false;    }  #endif @@ -4990,8 +5006,7 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,          abs(start->id), code);      fprintf(log_fd, "**********************************\n");    } else { -    EMSG(_( -            "Could not open temporary log file for writing, displaying on stderr ... ")); +    EMSG(_(e_log_open_failed));      log_fd = stderr;    }  #endif @@ -5056,8 +5071,9 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,      fprintf(log_fd, "------------------------------------------\n");      fprintf(log_fd, ">>> Reginput is \"%s\"\n", reginput);      fprintf(log_fd, -        ">>> Advanced one character ... Current char is %c (code %d) \n", curc, -        (int)curc); +            ">>> Advanced one character... Current char is %c (code %d) \n", +            curc, +            (int)curc);      fprintf(log_fd, ">>> Thislist has %d states available: ", thislist->n);      {        int i; @@ -5089,16 +5105,17 @@ static int nfa_regmatch(nfa_regprog_T *prog, nfa_state_T *start,        {          int col; -        if (t->subs.norm.in_use <= 0) +        if (t->subs.norm.in_use <= 0) {            col = -1; -        else if (REG_MULTI) +        } else if (REG_MULTI) {            col = t->subs.norm.list.multi[0].start_col; -        else +        } else {            col = (int)(t->subs.norm.list.line[0].start - regline); +        }          nfa_set_code(t->state->c); -        fprintf(log_fd, "(%d) char %d %s (start col %d)%s ... \n", -            abs(t->state->id), (int)t->state->c, code, col, -            pim_info(&t->pim)); +        fprintf(log_fd, "(%d) char %d %s (start col %d)%s... \n", +                abs(t->state->id), (int)t->state->c, code, col, +                pim_info(&t->pim));        }  #endif @@ -6252,8 +6269,9 @@ static long nfa_regtry(nfa_regprog_T *prog, colnr_T col, proftime_T *tm)      nfa_print_state(f, start);      fprintf(f, "\n\n");      fclose(f); -  } else -    EMSG(_("Could not open temporary log file for writing ")); +  } else { +    EMSG("Could not open temporary log file for writing"); +  }  #endif    clear_sub(&subs.norm); @@ -6479,10 +6497,10 @@ static regprog_T *nfa_regcomp(char_u *expr, int re_flags)      FILE *f = fopen(NFA_REGEXP_RUN_LOG, "a");      if (f != NULL) { -      fprintf( -          f, -          "\n*****************************\n\n\n\n\tCompiling regexp \"%s\" ... hold on !\n", -          expr); +      fprintf(f, +              "\n*****************************\n\n\n\n\t" +              "Compiling regexp \"%s\"... hold on !\n", +              expr);        fclose(f);      }    } diff --git a/src/nvim/spell_defs.h b/src/nvim/spell_defs.h index ddd54c724e..e83b21b219 100644 --- a/src/nvim/spell_defs.h +++ b/src/nvim/spell_defs.h @@ -13,6 +13,9 @@                                  // Some places assume a word length fits in a                                  // byte, thus it can't be above 255. +// Number of regions supported. +#define MAXREGIONS 8 +  // Type used for indexes in the word tree need to be at least 4 bytes.  If int  // is 8 bytes we could use something smaller, but what?  typedef int idx_T; @@ -124,7 +127,8 @@ struct slang_S {    char_u      *sl_info;         // infotext string or NULL -  char_u sl_regions[17];        // table with up to 8 region names plus NUL +  char_u sl_regions[MAXREGIONS * 2 + 1]; +                                // table with up to 8 region names plus NUL    char_u      *sl_midword;      // MIDWORD string or NULL diff --git a/src/nvim/spellfile.c b/src/nvim/spellfile.c index 6578c7d66c..b8774bd680 100644 --- a/src/nvim/spellfile.c +++ b/src/nvim/spellfile.c @@ -45,7 +45,8 @@  //                          website, etc)  //  // sectionID == SN_REGION: <regionname> ... -// <regionname>  2 bytes    Up to 8 region names: ca, au, etc.  Lower case. +// <regionname>  2 bytes    Up to MAXREGIONS region names: ca, au, etc. +//                          Lower case.  //                          First <regionname> is region 1.  //  // sectionID == SN_CHARFLAGS: <charflagslen> <charflags> @@ -460,7 +461,8 @@ typedef struct spellinfo_S {    char_u      *si_info;         // info text chars or NULL    int si_region_count;          // number of regions supported (1 when there                                  // are no regions) -  char_u si_region_name[17];    // region names; used only if +  char_u si_region_name[MAXREGIONS * 2 + 1]; +                                // region names; used only if                                  // si_region_count > 1)    garray_T si_rep;              // list of fromto_T entries from REP lines @@ -878,9 +880,10 @@ void suggest_load_files(void)        // don't try again and again.        slang->sl_sugloaded = true; -      dotp = vim_strrchr(slang->sl_fname, '.'); -      if (dotp == NULL || fnamecmp(dotp, ".spl") != 0) +      dotp = STRRCHR(slang->sl_fname, '.'); +      if (dotp == NULL || fnamecmp(dotp, ".spl") != 0) {          continue; +      }        STRCPY(dotp, ".sug");        fd = mch_fopen((char *)slang->sl_fname, "r");        if (fd == NULL) @@ -1003,7 +1006,7 @@ static char_u *read_cnt_string(FILE *fd, int cnt_bytes, int *cntp)  // Return SP_*ERROR flags.  static int read_region_section(FILE *fd, slang_T *lp, int len)  { -  if (len > 16) { +  if (len > MAXREGIONS * 2) {      return SP_FORMERROR;    }    SPELL_READ_NONNUL_BYTES((char *)lp->sl_regions, (size_t)len, fd, ;); @@ -1990,7 +1993,7 @@ static afffile_T *spell_read_aff(spellinfo_T *spin, char_u *fname)      return NULL;    } -  vim_snprintf((char *)IObuff, IOSIZE, _("Reading affix file %s ..."), fname); +  vim_snprintf((char *)IObuff, IOSIZE, _("Reading affix file %s..."), fname);    spell_message(spin, IObuff);    // Only do REP lines when not done in another .aff file already. @@ -3029,7 +3032,7 @@ static int spell_read_dic(spellinfo_T *spin, char_u *fname, afffile_T *affile)    hash_init(&ht);    vim_snprintf((char *)IObuff, IOSIZE, -      _("Reading dictionary file %s ..."), fname); +               _("Reading dictionary file %s..."), fname);    spell_message(spin, IObuff);    // start with a message for the first line @@ -3545,7 +3548,7 @@ static int spell_read_wordfile(spellinfo_T *spin, char_u *fname)      return FAIL;    } -  vim_snprintf((char *)IObuff, IOSIZE, _("Reading word file %s ..."), fname); +  vim_snprintf((char *)IObuff, IOSIZE, _("Reading word file %s..."), fname);    spell_message(spin, IObuff);    // Read all the lines in the file one by one. @@ -3612,10 +3615,10 @@ static int spell_read_wordfile(spellinfo_T *spin, char_u *fname)                 fname, lnum, line);          else {            line += 8; -          if (STRLEN(line) > 16) +          if (STRLEN(line) > MAXREGIONS * 2) {              smsg(_("Too many regions in %s line %d: %s"),                   fname, lnum, line); -          else { +          } else {              spin->si_region_count = (int)STRLEN(line) / 2;              STRCPY(spin->si_region_name, line); @@ -4995,7 +4998,7 @@ static void sug_write(spellinfo_T *spin, char_u *fname)    }    vim_snprintf((char *)IObuff, IOSIZE, -      _("Writing suggestion file %s ..."), fname); +               _("Writing suggestion file %s..."), fname);    spell_message(spin, IObuff);    // <SUGHEADER>: <fileID> <versionnr> <timestamp> @@ -5077,7 +5080,7 @@ mkspell (    char_u      *wfname;    char_u      **innames;    int incount; -  afffile_T   *(afile[8]); +  afffile_T *(afile[MAXREGIONS]);    int i;    int len;    bool error = false; @@ -5134,13 +5137,13 @@ mkspell (        spin.si_add = true;    } -  if (incount <= 0) +  if (incount <= 0) {      EMSG(_(e_invarg));          // need at least output and input names -  else if (vim_strchr(path_tail(wfname), '_') != NULL) +  } else if (vim_strchr(path_tail(wfname), '_') != NULL) {      EMSG(_("E751: Output file name must not have region name")); -  else if (incount > 8) -    EMSG(_("E754: Only up to 8 regions supported")); -  else { +  } else if (incount > MAXREGIONS) { +    EMSGN(_("E754: Only up to %ld regions supported"), MAXREGIONS); +  } else {      // Check for overwriting before doing things that may take a lot of      // time.      if (!over_write && os_path_exists(wfname)) { @@ -5231,7 +5234,7 @@ mkspell (      if (!error && !got_int) {        // Write the info in the spell file.        vim_snprintf((char *)IObuff, IOSIZE, -          _("Writing spell file %s ..."), wfname); +                   _("Writing spell file %s..."), wfname);        spell_message(&spin, IObuff);        error = write_vim_spell(&spin, wfname) == FAIL; diff --git a/src/nvim/strings.c b/src/nvim/strings.c index 3f31914c03..f24de72743 100644 --- a/src/nvim/strings.c +++ b/src/nvim/strings.c @@ -344,14 +344,17 @@ char *strcase_save(const char *const orig, bool upper)    char *p = res;    while (*p != NUL) { -    int l; -      int c = utf_ptr2char((const char_u *)p); +    int l = utf_ptr2len((const char_u *)p); +    if (c == 0) { +      // overlong sequence, use only the first byte +      c = *p; +      l = 1; +    }      int uc = upper ? mb_toupper(c) : mb_tolower(c);      // Reallocate string when byte count changes.  This is rare,      // thus it's OK to do another malloc()/free(). -    l = utf_ptr2len((const char_u *)p);      int newl = utf_char2len(uc);      if (newl != l) {        // TODO(philix): use xrealloc() in strup_save() @@ -456,25 +459,6 @@ char_u *vim_strchr(const char_u *const string, const int c)  }  /* - * Search for last occurrence of "c" in "string". - * Return NULL if not found. - * Does not handle multi-byte char for "c"! - */ -char_u *vim_strrchr(const char_u *string, int c) -  FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE -{ -  const char_u *retval = NULL; -  const char_u *p = string; - -  while (*p) { -    if (*p == c) -      retval = p; -    MB_PTR_ADV(p); -  } -  return (char_u *) retval; -} - -/*   * Sort an array of strings.   */ diff --git a/src/nvim/testdir/setup.vim b/src/nvim/testdir/setup.vim index 51bf8ce0fc..b38f50b501 100644 --- a/src/nvim/testdir/setup.vim +++ b/src/nvim/testdir/setup.vim @@ -9,6 +9,7 @@ let s:did_load = 1  " Align Nvim defaults to Vim.  set sidescroll=0  set directory^=. +set undodir^=.  set backspace=  set nohidden smarttab noautoindent noautoread complete-=i noruler noshowcmd  set listchars=eol:$ diff --git a/src/nvim/testdir/test_diffmode.vim b/src/nvim/testdir/test_diffmode.vim index d95b29759e..90fd34d93e 100644 --- a/src/nvim/testdir/test_diffmode.vim +++ b/src/nvim/testdir/test_diffmode.vim @@ -279,13 +279,13 @@ func Test_diffopt_icase()    set diffopt=icase,foldcolumn:0    e one -  call setline(1, ['One', 'Two', 'Three', 'Four']) +  call setline(1, ['One', 'Two', 'Three', 'Four', 'Fi#ve'])    redraw    let normattr = screenattr(1, 1)    diffthis    botright vert new two -  call setline(1, ['one', 'TWO', 'Three ', 'Four']) +  call setline(1, ['one', 'TWO', 'Three ', 'Four', 'fI=VE'])    diffthis    redraw @@ -294,6 +294,10 @@ func Test_diffopt_icase()    call assert_notequal(normattr, screenattr(3, 1))    call assert_equal(normattr, screenattr(4, 1)) +  let dtextattr = screenattr(5, 3) +  call assert_notequal(dtextattr, screenattr(5, 1)) +  call assert_notequal(dtextattr, screenattr(5, 5)) +    diffoff!    %bwipe!    set diffopt& @@ -371,6 +375,29 @@ func Test_diffopt_vertical()    %bwipe  endfunc +func Test_diffopt_hiddenoff() +  set diffopt=filler,foldcolumn:0,hiddenoff +  e! one +  call setline(1, ['Two', 'Three']) +  redraw +  let normattr = screenattr(1, 1) +  diffthis +  botright vert new two +  call setline(1, ['One', 'Four']) +  diffthis +  redraw +  call assert_notequal(normattr, screenattr(1, 1)) +  set hidden +  close +  redraw +  " should not diffing with hidden buffer two while 'hiddenoff' is enabled +  call assert_equal(normattr, screenattr(1, 1)) + +  bwipe! +  bwipe! +  set hidden& diffopt& +endfunc +  func Test_diffoff_hidden()    set diffopt=filler,foldcolumn:0    e! one diff --git a/src/nvim/testdir/test_functions.vim b/src/nvim/testdir/test_functions.vim index 3b16f2ce9f..6d0a6b9d5e 100644 --- a/src/nvim/testdir/test_functions.vim +++ b/src/nvim/testdir/test_functions.vim @@ -96,6 +96,30 @@ func Test_min()    " call assert_fails('call min(v:none)', 'E712:')  endfunc +func Test_strwidth() +  for aw in ['single', 'double'] +    exe 'set ambiwidth=' . aw +    call assert_equal(0, strwidth('')) +    call assert_equal(1, strwidth("\t")) +    call assert_equal(3, strwidth('Vim')) +    call assert_equal(4, strwidth(1234)) +    call assert_equal(5, strwidth(-1234)) + +    if has('multi_byte') +      call assert_equal(2, strwidth('😉')) +      call assert_equal(17, strwidth('Eĥoŝanĝo ĉiuĵaŭde')) +      call assert_equal((aw == 'single') ? 6 : 7, strwidth('Straße')) +    endif + +    call assert_fails('call strwidth({->0})', 'E729:') +    call assert_fails('call strwidth([])', 'E730:') +    call assert_fails('call strwidth({})', 'E731:') +    call assert_fails('call strwidth(1.2)', 'E806:') +  endfor + +  set ambiwidth& +endfunc +  func Test_str2nr()    call assert_equal(0, str2nr(''))    call assert_equal(1, str2nr('1')) @@ -215,6 +239,21 @@ func Test_setbufvar_options()    bwipe!  endfunc +func Test_pathshorten() +  call assert_equal('', pathshorten('')) +  call assert_equal('foo', pathshorten('foo')) +  call assert_equal('/foo', pathshorten('/foo')) +  call assert_equal('f/', pathshorten('foo/')) +  call assert_equal('f/bar', pathshorten('foo/bar')) +  call assert_equal('f/b/foobar', pathshorten('foo/bar/foobar')) +  call assert_equal('/f/b/foobar', pathshorten('/foo/bar/foobar')) +  call assert_equal('.f/bar', pathshorten('.foo/bar')) +  call assert_equal('~f/bar', pathshorten('~foo/bar')) +  call assert_equal('~.f/bar', pathshorten('~.foo/bar')) +  call assert_equal('.~f/bar', pathshorten('.~foo/bar')) +  call assert_equal('~/f/bar', pathshorten('~/foo/bar')) +endfunc +  func Test_strpart()    call assert_equal('de', strpart('abcdefg', 3, 2))    call assert_equal('ab', strpart('abcdefg', -2, 4)) @@ -299,6 +338,11 @@ func Test_tolower()    " Ⱥ (U+023A) and Ⱦ (U+023E) are the *only* code points to increase    " in length (2 to 3 bytes) when lowercased. So let's test them.    call assert_equal("ⱥ ⱦ", tolower("Ⱥ Ⱦ")) + +  " This call to tolower with invalid utf8 sequence used to cause access to +  " invalid memory. +  call tolower("\xC0\x80\xC0") +  call tolower("123\xC0\x80\xC0")  endfunc  func Test_toupper() @@ -369,6 +413,11 @@ func Test_toupper()    call assert_equal("ZŹŻŽƵẐẔ", toupper("ZŹŻŽƵẐẔ"))    call assert_equal("Ⱥ Ⱦ", toupper("ⱥ ⱦ")) + +  " This call to toupper with invalid utf8 sequence used to cause access to +  " invalid memory. +  call toupper("\xC0\x80\xC0") +  call toupper("123\xC0\x80\xC0")  endfunc  " Tests for the mode() function @@ -573,10 +622,46 @@ func Test_strridx()    call assert_equal(-1, strridx('hello', 'hello world'))  endfunc +func Test_match_func() +  call assert_equal(4,  match('testing', 'ing')) +  call assert_equal(4,  match('testing', 'ing', 2)) +  call assert_equal(-1, match('testing', 'ing', 5)) +  call assert_equal(-1, match('testing', 'ing', 8)) +  call assert_equal(1, match(['vim', 'testing', 'execute'], 'ing')) +  call assert_equal(-1, match(['vim', 'testing', 'execute'], 'img')) +endfunc +  func Test_matchend()    call assert_equal(7,  matchend('testing', 'ing'))    call assert_equal(7,  matchend('testing', 'ing', 2))    call assert_equal(-1, matchend('testing', 'ing', 5)) +  call assert_equal(-1, matchend('testing', 'ing', 8)) +  call assert_equal(match(['vim', 'testing', 'execute'], 'ing'), matchend(['vim', 'testing', 'execute'], 'ing')) +  call assert_equal(match(['vim', 'testing', 'execute'], 'img'), matchend(['vim', 'testing', 'execute'], 'img')) +endfunc + +func Test_matchlist() +  call assert_equal(['acd', 'a', '', 'c', 'd', '', '', '', '', ''],  matchlist('acd', '\(a\)\?\(b\)\?\(c\)\?\(.*\)')) +  call assert_equal(['d', '', '', '', 'd', '', '', '', '', ''],  matchlist('acd', '\(a\)\?\(b\)\?\(c\)\?\(.*\)', 2)) +  call assert_equal([],  matchlist('acd', '\(a\)\?\(b\)\?\(c\)\?\(.*\)', 4)) +endfunc + +func Test_matchstr() +  call assert_equal('ing',  matchstr('testing', 'ing')) +  call assert_equal('ing',  matchstr('testing', 'ing', 2)) +  call assert_equal('', matchstr('testing', 'ing', 5)) +  call assert_equal('', matchstr('testing', 'ing', 8)) +  call assert_equal('testing', matchstr(['vim', 'testing', 'execute'], 'ing')) +  call assert_equal('', matchstr(['vim', 'testing', 'execute'], 'img')) +endfunc + +func Test_matchstrpos() +  call assert_equal(['ing', 4, 7], matchstrpos('testing', 'ing')) +  call assert_equal(['ing', 4, 7], matchstrpos('testing', 'ing', 2)) +  call assert_equal(['', -1, -1], matchstrpos('testing', 'ing', 5)) +  call assert_equal(['', -1, -1], matchstrpos('testing', 'ing', 8)) +  call assert_equal(['ing', 1, 4, 7], matchstrpos(['vim', 'testing', 'execute'], 'ing')) +  call assert_equal(['', -1, -1, -1], matchstrpos(['vim', 'testing', 'execute'], 'img'))  endfunc  func Test_nextnonblank_prevnonblank() @@ -687,6 +772,7 @@ func Test_count()    call assert_equal(0, count("foo", "O"))    call assert_equal(2, count("foo", "O", 1))    call assert_equal(2, count("fooooo", "oo")) +  call assert_equal(0, count("foo", ""))  endfunc  func Test_changenr() @@ -770,6 +856,17 @@ func Test_col()    bw!  endfunc +func Test_inputlist() +  call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>1\<cr>", 'tx') +  call assert_equal(1, c) +  call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>2\<cr>", 'tx') +  call assert_equal(2, c) +  call feedkeys(":let c = inputlist(['Select color:', '1. red', '2. green', '3. blue'])\<cr>3\<cr>", 'tx') +  call assert_equal(3, c) + +  call assert_fails('call inputlist("")', 'E686:') +endfunc +  func Test_balloon_show()    if has('balloon_eval')      " This won't do anything but must not crash either. diff --git a/src/nvim/testdir/test_match.vim b/src/nvim/testdir/test_match.vim index 066bb2f6a1..e608a2e58b 100644 --- a/src/nvim/testdir/test_match.vim +++ b/src/nvim/testdir/test_match.vim @@ -1,5 +1,5 @@  " Test for :match, :2match, :3match, clearmatches(), getmatches(), matchadd(), -" matchaddpos(), matcharg(), matchdelete(), matchstrpos() and setmatches(). +" matchaddpos(), matcharg(), matchdelete(), and setmatches().  function Test_match()    highlight MyGroup1 term=bold ctermbg=red guibg=red @@ -150,18 +150,6 @@ function Test_match()    highlight MyGroup3 NONE  endfunc -func Test_matchstrpos() -  call assert_equal(['ing', 4, 7], matchstrpos('testing', 'ing')) - -  call assert_equal(['ing', 4, 7], matchstrpos('testing', 'ing', 2)) - -  call assert_equal(['', -1, -1], matchstrpos('testing', 'ing', 5)) - -  call assert_equal(['ing', 1, 4, 7], matchstrpos(['vim', 'testing', 'execute'], 'ing')) - -  call assert_equal(['', -1, -1, -1], matchstrpos(['vim', 'testing', 'execute'], 'img')) -endfunc -  func Test_matchaddpos()    syntax on    set hlsearch diff --git a/src/nvim/testdir/test_normal.vim b/src/nvim/testdir/test_normal.vim index c638920dd3..4c63bd1f71 100644 --- a/src/nvim/testdir/test_normal.vim +++ b/src/nvim/testdir/test_normal.vim @@ -1201,6 +1201,13 @@ func! Test_normal19_z_spell()    call assert_match("Word 'goood' added to ./Xspellfile2.add", a)    call assert_equal('goood', cnt[0]) +  " Test for :spellgood! +  let temp = execute(':spe!0/0') +  call assert_match('Invalid region', temp) +  let spellfile = matchstr(temp, 'Invalid region nr in \zs.*\ze line \d: 0') +  call assert_equal(['# goood', '# goood/!', '#oood', '0/0'], readfile(spellfile)) +  call delete(spellfile) +    " clean up    exe "lang" oldlang    call delete("./Xspellfile.add") diff --git a/src/nvim/testdir/test_search.vim b/src/nvim/testdir/test_search.vim index 5da9397be5..7663c9e283 100644 --- a/src/nvim/testdir/test_search.vim +++ b/src/nvim/testdir/test_search.vim @@ -453,3 +453,30 @@ func Test_search_multibyte()    enew!    let &encoding = save_enc  endfunc + +func Test_search_undefined_behaviour() +  if !has("terminal") +    return +  endif +  let h = winheight(0) +  if h < 3 +    return +  endif +  " did cause an undefined left shift +  let g:buf = term_start([GetVimProg(), '--clean', '-e', '-s', '-c', 'call search(getline("."))', 'samples/test000'], {'term_rows': 3}) +  call assert_equal([''], getline(1, '$')) +  call term_sendkeys(g:buf, ":qa!\<cr>") +  bwipe! +endfunc + +func Test_search_undefined_behaviour2() +  call search("\%UC0000000") +endfunc + +" This was causing E874.  Also causes an invalid read? +func Test_look_behind() +  new +  call setline(1, '0\|\&\n\@<=')  +  call search(getline(".")) +  bwipe! +endfunc diff --git a/src/nvim/testdir/test_undo.vim b/src/nvim/testdir/test_undo.vim index 2bc6073d52..f31499607b 100644 --- a/src/nvim/testdir/test_undo.vim +++ b/src/nvim/testdir/test_undo.vim @@ -4,28 +4,88 @@  " Also tests :earlier and :later.  func Test_undotree() -  exe "normal Aabc\<Esc>" +  new + +  normal! Aabc +  set ul=100 +  let d = undotree() +  call assert_equal(1, d.seq_last) +  call assert_equal(1, d.seq_cur) +  call assert_equal(0, d.save_last) +  call assert_equal(0, d.save_cur) +  call assert_equal(1, len(d.entries)) +  call assert_equal(1, d.entries[0].newhead) +  call assert_equal(1, d.entries[0].seq) +  call assert_true(d.entries[0].time <= d.time_cur) + +  normal! Adef +  set ul=100 +  let d = undotree() +  call assert_equal(2, d.seq_last) +  call assert_equal(2, d.seq_cur) +  call assert_equal(0, d.save_last) +  call assert_equal(0, d.save_cur) +  call assert_equal(2, len(d.entries)) +  call assert_equal(1, d.entries[0].seq) +  call assert_equal(1, d.entries[1].newhead) +  call assert_equal(2, d.entries[1].seq) +  call assert_true(d.entries[1].time <= d.time_cur) + +  undo    set ul=100 -  exe "normal Adef\<Esc>" +  let d = undotree() +  call assert_equal(2, d.seq_last) +  call assert_equal(1, d.seq_cur) +  call assert_equal(0, d.save_last) +  call assert_equal(0, d.save_cur) +  call assert_equal(2, len(d.entries)) +  call assert_equal(1, d.entries[0].seq) +  call assert_equal(1, d.entries[1].curhead) +  call assert_equal(1, d.entries[1].newhead) +  call assert_equal(2, d.entries[1].seq) +  call assert_true(d.entries[1].time == d.time_cur) + +  normal! Aghi    set ul=100 +  let d = undotree() +  call assert_equal(3, d.seq_last) +  call assert_equal(3, d.seq_cur) +  call assert_equal(0, d.save_last) +  call assert_equal(0, d.save_cur) +  call assert_equal(2, len(d.entries)) +  call assert_equal(1, d.entries[0].seq) +  call assert_equal(2, d.entries[1].alt[0].seq) +  call assert_equal(1, d.entries[1].newhead) +  call assert_equal(3, d.entries[1].seq) +  call assert_true(d.entries[1].time <= d.time_cur) +    undo +  set ul=100    let d = undotree() -  call assert_true(d.seq_last > 0) -  call assert_true(d.seq_cur > 0) -  call assert_true(d.seq_cur < d.seq_last) -  call assert_true(len(d.entries) > 0) -  " TODO: check more members of d +  call assert_equal(3, d.seq_last) +  call assert_equal(1, d.seq_cur) +  call assert_equal(0, d.save_last) +  call assert_equal(0, d.save_cur) +  call assert_equal(2, len(d.entries)) +  call assert_equal(1, d.entries[0].seq) +  call assert_equal(2, d.entries[1].alt[0].seq) +  call assert_equal(1, d.entries[1].curhead) +  call assert_equal(1, d.entries[1].newhead) +  call assert_equal(3, d.entries[1].seq) +  call assert_true(d.entries[1].time == d.time_cur)    w! Xtest -  call assert_equal(d.save_last + 1, undotree().save_last) +  let d = undotree() +  call assert_equal(1, d.save_cur) +  call assert_equal(1, d.save_last)    call delete('Xtest') -  bwipe Xtest +  bwipe! Xtest  endfunc  func FillBuffer()    for i in range(1,13)      put=i -    " Set 'undolevels' to split undo.  +    " Set 'undolevels' to split undo.      exe "setg ul=" . &g:ul    endfor  endfunc @@ -135,19 +195,19 @@ func Test_undolist()    new    set ul=100 -  let a=execute('undolist') +  let a = execute('undolist')    call assert_equal("\nNothing to undo", a)    " 1 leaf (2 changes).    call feedkeys('achange1', 'xt')    call feedkeys('achange2', 'xt') -  let a=execute('undolist') +  let a = execute('undolist')    call assert_match("^\nnumber changes  when  *saved\n *2  *2 .*$", a)    " 2 leaves.    call feedkeys('u', 'xt')    call feedkeys('achange3\<Esc>', 'xt') -  let a=execute('undolist') +  let a = execute('undolist')    call assert_match("^\nnumber changes  when  *saved\n *2  *2  *.*\n *3  *2 .*$", a)    close!  endfunc @@ -270,7 +330,7 @@ endfunc  " Also test this in an empty buffer.  func Test_cmd_in_reg_undo()    enew! -  let @a="Ox\<Esc>jAy\<Esc>kdd" +  let @a = "Ox\<Esc>jAy\<Esc>kdd"    edit +/^$ test_undo.vim    normal @au    call assert_equal(0, &modified) @@ -279,7 +339,7 @@ func Test_cmd_in_reg_undo()    normal @au    call assert_equal(0, &modified)    only! -  let @a='' +  let @a = ''  endfunc  func Test_redo_empty_line() @@ -288,3 +348,45 @@ func Test_redo_empty_line()    exe "norm."    bwipe!  endfunc + +" This used to cause an illegal memory access +func Test_undo_append() +  new +  call feedkeys("axx\<Esc>v", 'xt') +  undo +  norm o +  quit +endfunc + +funct Test_undofile() +  " Test undofile() without setting 'undodir'. +  if has('persistent_undo') +    call assert_equal(fnamemodify('.Xundofoo.un~', ':p'), undofile('Xundofoo')) +  else +    call assert_equal('', undofile('Xundofoo')) +  endif +  call assert_equal('', undofile('')) + +  " Test undofile() with 'undodir' set to to an existing directory. +  call mkdir('Xundodir') +  set undodir=Xundodir +  let cwd = getcwd() +  if has('win32') +    " Replace windows drive such as C:... into C%... +    let cwd = substitute(cwd, '^\([A-Z]\):', '\1%', 'g') +  endif +  let pathsep = has('win32') ? '\' : '/' +  let cwd = substitute(cwd . pathsep . 'Xundofoo', pathsep, '%', 'g') +  if has('persistent_undo') +    call assert_equal('Xundodir' . pathsep . cwd, undofile('Xundofoo')) +  else +    call assert_equal('', undofile('Xundofoo')) +  endif +  call assert_equal('', undofile('')) +  call delete('Xundodir', 'd') + +  " Test undofile() with 'undodir' set to a non-existing directory. +  " call assert_equal('', undofile('Xundofoo')) + +  set undodir& +endfunc diff --git a/src/nvim/tui/terminfo.c b/src/nvim/tui/terminfo.c index 2f07e83158..c3dc4124b9 100644 --- a/src/nvim/tui/terminfo.c +++ b/src/nvim/tui/terminfo.c @@ -14,74 +14,12 @@  #include "nvim/message.h"  #include "nvim/option.h"  #include "nvim/tui/terminfo.h" +#include "nvim/tui/terminfo_defs.h"  #ifdef INCLUDE_GENERATED_DECLARATIONS  # include "tui/terminfo.c.generated.h"  #endif -// One creates the dumps from terminfo.src by using -//      od -t d1 -w | cut -c9- | sed -e 's/\>/,/g' -// on the compiled files. - -// Taken from Dickey ncurses terminfo.src dated 2017-04-22. -// This is a 256-colour terminfo description that lacks true-colour and -// DECSTBM/DECSLRM/DECLRMM capabilities that xterm actually has. -static const signed char xterm_256colour_terminfo[] = { -  26,   1,  37,   0,  29,   0,  15,   0, 105,   1, -42,   5, 120, 116, 101, 114, 109,  45,  50,  53,  54,  99, 111, 108, 111, 114, 124, 120, 116, 101, 114, 109,  32, 119, 105, 116, 104,  32,  50,  53,  54,  32,  99, 111, 108, 111, 114, 115,   0,   0,   1,   0,   0,   1,   0,   0,   0,   1,   0,   0,   0,   0,   1,   1,   0,   0,   0,   0,   0,   0,   0,   1,   0,   0,   1,   0,   1,   1,  80,   0,   8,   0,  24,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   0,   1,  -1, 127,   0,   0,   4,   0,   6,   0,   8,   0,  25,   0,  30,   0,  38,   0,  42,   0,  46,   0,  -1,  -1,  57,   0,  74,   0,  76,   0,  80,   0,  87,   0,  -1,  -1,  89,   0, 102,   0,  -1,  -1, 106,   0, 110,   0, 120,   0, 124,   0,  -1,  -1,  -1,  -1,-128,   0,-124,   0,-119,   0,-114,   0,  -1,  -1,-105,   0,-100,   0, -95,   0,  -1,  -1, -90,   0, -85,   0, -80,   0, -75,   0, -66,   0, -62,   0, -55,   0,  -1,  -1, -46,   0, -41,   0, -35,   0, -29,   0,  -1,  -1,  -1,  -1,  -1,  -1, -11,   0,  -1,  -1,  -1,  -1,  -1,  -1,   7,   1,  -1,  -1,  11,   1,  -1,  -1,  -1,  -1,  -1,  -1,  13,   1,  -1,  -1,  18,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  22,   1,  26,   1,  32,   1,  36,   1,  40,   1,  44,   1,  50,   1,  56,   1,  62,   1,  68,   1,  74,   1,  78,   1,  -1,  -1,  83,   1,  -1,  -1,  87,   1,  92,   1,  97,   1, 101,   1, 108,   1,  -1,  -1, 115,   1, 119,   1, 127,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,-121,   1,-112,   1,  -1,  -1,  -1,  -1,-103,   1, -94,   1, -85,   1, -76,   1, -67,   1, -58,   1, -49,   1, -40,   1, -31,   1, -22,   1,  -1,  -1,  -1,  -1,  -1,  -1, -13,   1,  -9,   1,  -4,   1,  -1,  -1,   1,   2,  10,   2,  -1,  -1,  -1,  -1,  28,   2,  31,   2,  42,   2,  45,   2,  47,   2,  50,   2,-113,   2,  -1,  -1,-110,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,-108,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,-104,   2,  -1,  -1, -51,   2,  -1,  -1,  -1,  -1, -47,   2, -41,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -35,   2, -31,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -27,   2,  -1,  -1,  -1,  -1, -20,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -13,   2,  -6,   2,   1,   3,  -1,  -1,  -1,  -1,   8,   3,  -1,  -1,  15,   3,  -1,  -1,  -1,  -1,  -1,  -1,  22,   3,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  29,   3,  35,   3,  41,   3,  48,   3,  55,   3,  62,   3,  69,   3,  77,   3,  85,   3,  93,   3, 101,   3, 109,   3, 117,   3, 125,   3,-123,   3,-116,   3,-109,   3,-102,   3, -95,   3, -87,   3, -79,   3, -71,   3, -63,   3, -55,   3, -47,   3, -39,   3, -31,   3, -24,   3, -17,   3, -10,   3,  -3,   3,   5,   4,  13,   4,  21,   4,  29,   4,  37,   4,  45,   4,  53,   4,  61,   4,  68,   4,  75,   4,  82,   4,  89,   4,  97,   4, 105,   4, 113,   4, 121,   4,-127,   4,-119,   4,-111,   4,-103,   4, -96,   4, -89,   4, -82,   4,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -77,   4, -66,   4, -61,   4, -42,   4, -38,   4, -29,   4, -22,   4,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  72,   5,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  77,   5,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  83,   5,  -1,  -1,  -1,  -1,  -1,  -1,  87,   5,-106,   5,  27,  91,  90,   0,   7,   0,  13,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100, 114,   0,  27,  91,  51, 103,   0,  27,  91,  72,  27,  91,  50,  74,   0,  27,  91,  75,   0,  27,  91,  74,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  71,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100,  72,   0,  10,   0,  27,  91,  72,   0,  27,  91,  63,  50,  53, 108,   0,   8,   0,  27,  91,  63,  49,  50, 108,  27,  91,  63,  50,  53, 104,   0,  27,  91,  67,   0,  27,  91,  65,   0,  27,  91,  63,  49,  50,  59,  50,  53, 104,   0,  27,  91,  80,   0,  27,  91,  77,   0,  27,  40,  48,   0,  27,  91,  53, 109,   0,  27,  91,  49, 109,   0,  27,  91,  63,  49,  48,  52,  57, 104,   0,  27,  91,  50, 109,   0,  27,  91,  52, 104,   0,  27,  91,  56, 109,   0,  27,  91,  55, 109,   0,  27,  91,  55, 109,   0,  27,  91,  52, 109,   0,  27,  91,  37, 112,  49,  37, 100,  88,   0,  27,  40,  66,   0,  27,  40,  66,  27,  91, 109,   0,  27,  91,  63,  49,  48,  52,  57, 108,   0,  27,  91,  52, 108,   0,  27,  91,  50,  55, 109,   0,  27,  91,  50,  52, 109,   0,  27,  91,  63,  53, 104,  36,  60,  49,  48,  48,  47,  62,  27,  91,  63,  53, 108,   0,  27,  91,  33, 112,  27,  91,  63,  51,  59,  52, 108,  27,  91,  52, 108,  27,  62,   0,  27,  91,  76,   0,   8,   0,  27,  91,  51, 126,   0,  27,  79,  66,   0,  27,  79,  80,   0,  27,  91,  50,  49, 126,   0,  27,  79,  81,   0,  27,  79,  82,   0,  27,  79,  83,   0,  27,  91,  49,  53, 126,   0,  27,  91,  49,  55, 126,   0,  27,  91,  49,  56, 126,   0,  27,  91,  49,  57, 126,   0,  27,  91,  50,  48, 126,   0,  27,  79,  72,   0,  27,  91,  50, 126,   0,  27,  79,  68,   0,  27,  91,  54, 126,   0,  27,  91,  53, 126,   0,  27,  79,  67,   0,  27,  91,  49,  59,  50,  66,   0,  27,  91,  49,  59,  50,  65,   0,  27,  79,  65,   0,  27,  91,  63,  49, 108,  27,  62,   0,  27,  91,  63,  49, 104,  27,  61,   0,  27,  91,  63,  49,  48,  51,  52, 108,   0,  27,  91,  63,  49,  48,  51,  52, 104,   0,  27,  91,  37, 112,  49,  37, 100,  80,   0,  27,  91,  37, 112,  49,  37, 100,  77,   0,  27,  91,  37, 112,  49,  37, 100,  66,   0,  27,  91,  37, 112,  49,  37, 100,  64,   0,  27,  91,  37, 112,  49,  37, 100,  83,   0,  27,  91,  37, 112,  49,  37, 100,  76,   0,  27,  91,  37, 112,  49,  37, 100,  68,   0,  27,  91,  37, 112,  49,  37, 100,  67,   0,  27,  91,  37, 112,  49,  37, 100,  84,   0,  27,  91,  37, 112,  49,  37, 100,  65,   0,  27,  91, 105,   0,  27,  91,  52, 105,   0,  27,  91,  53, 105,   0,  27,  99,  27,  93,  49,  48,  52,   7,   0,  27,  91,  33, 112,  27,  91,  63,  51,  59,  52, 108,  27,  91,  52, 108,  27,  62,   0,  27,  56,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100, 100,   0,  27,  55,   0,  10,   0,  27,  77,   0,  37,  63,  37, 112,  57,  37, 116,  27,  40,  48,  37, 101,  27,  40,  66,  37,  59,  27,  91,  48,  37,  63,  37, 112,  54,  37, 116,  59,  49,  37,  59,  37,  63,  37, 112,  53,  37, 116,  59,  50,  37,  59,  37,  63,  37, 112,  50,  37, 116,  59,  52,  37,  59,  37,  63,  37, 112,  49,  37, 112,  51,  37, 124,  37, 116,  59,  55,  37,  59,  37,  63,  37, 112,  52,  37, 116,  59,  53,  37,  59,  37,  63,  37, 112,  55,  37, 116,  59,  56,  37,  59, 109,   0,  27,  72,   0,   9,   0,  27,  79,  69,   0,  96,  96,  97,  97, 102, 102, 103, 103, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126,   0,  27,  91,  90,   0,  27,  91,  63,  55, 104,   0,  27,  91,  63,  55, 108,   0,  27,  79,  70,   0,  27,  79,  77,   0,  27,  91,  51,  59,  50, 126,   0,  27,  91,  49,  59,  50,  70,   0,  27,  91,  49,  59,  50,  72,   0,  27,  91,  50,  59,  50, 126,   0,  27,  91,  49,  59,  50,  68,   0,  27,  91,  54,  59,  50, 126,   0,  27,  91,  53,  59,  50, 126,   0,  27,  91,  49,  59,  50,  67,   0,  27,  91,  50,  51, 126,   0,  27,  91,  50,  52, 126,   0,  27,  91,  49,  59,  50,  80,   0,  27,  91,  49,  59,  50,  81,   0,  27,  91,  49,  59,  50,  82,   0,  27,  91,  49,  59,  50,  83,   0,  27,  91,  49,  53,  59,  50, 126,   0,  27,  91,  49,  55,  59,  50, 126,   0,  27,  91,  49,  56,  59,  50, 126,   0,  27,  91,  49,  57,  59,  50, 126,   0,  27,  91,  50,  48,  59,  50, 126,   0,  27,  91,  50,  49,  59,  50, 126,   0,  27,  91,  50,  51,  59,  50, 126,   0,  27,  91,  50,  52,  59,  50, 126,   0,  27,  91,  49,  59,  53,  80,   0,  27,  91,  49,  59,  53,  81,   0,  27,  91,  49,  59,  53,  82,   0,  27,  91,  49,  59,  53,  83,   0,  27,  91,  49,  53,  59,  53, 126,   0,  27,  91,  49,  55,  59,  53, 126,   0,  27,  91,  49,  56,  59,  53, 126,   0,  27,  91,  49,  57,  59,  53, 126,   0,  27,  91,  50,  48,  59,  53, 126,   0,  27,  91,  50,  49,  59,  53, 126,   0,  27,  91,  50,  51,  59,  53, 126,   0,  27,  91,  50,  52,  59,  53, 126,   0,  27,  91,  49,  59,  54,  80,   0,  27,  91,  49,  59,  54,  81,   0,  27,  91,  49,  59,  54,  82,   0,  27,  91,  49,  59,  54,  83,   0,  27,  91,  49,  53,  59,  54, 126,   0,  27,  91,  49,  55,  59,  54, 126,   0,  27,  91,  49,  56,  59,  54, 126,   0,  27,  91,  49,  57,  59,  54, 126,   0,  27,  91,  50,  48,  59,  54, 126,   0,  27,  91,  50,  49,  59,  54, 126,   0,  27,  91,  50,  51,  59,  54, 126,   0,  27,  91,  50,  52,  59,  54, 126,   0,  27,  91,  49,  59,  51,  80,   0,  27,  91,  49,  59,  51,  81,   0,  27,  91,  49,  59,  51,  82,   0,  27,  91,  49,  59,  51,  83,   0,  27,  91,  49,  53,  59,  51, 126,   0,  27,  91,  49,  55,  59,  51, 126,   0,  27,  91,  49,  56,  59,  51, 126,   0,  27,  91,  49,  57,  59,  51, 126,   0,  27,  91,  50,  48,  59,  51, 126,   0,  27,  91,  50,  49,  59,  51, 126,   0,  27,  91,  50,  51,  59,  51, 126,   0,  27,  91,  50,  52,  59,  51, 126,   0,  27,  91,  49,  59,  52,  80,   0,  27,  91,  49,  59,  52,  81,   0,  27,  91,  49,  59,  52,  82,   0,  27,  91,  49,  75,   0,  27,  91,  37, 105,  37, 100,  59,  37, 100,  82,   0,  27,  91,  54, 110,   0,  27,  91,  63,  37,  91,  59,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  93,  99,   0,  27,  91,  99,   0,  27,  91,  51,  57,  59,  52,  57, 109,   0,  27,  93,  49,  48,  52,   7,   0,  27,  93,  52,  59,  37, 112,  49,  37, 100,  59, 114, 103,  98,  58,  37, 112,  50,  37, 123,  50,  53,  53, 125,  37,  42,  37, 123,  49,  48,  48,  48, 125,  37,  47,  37,  50,  46,  50,  88,  47,  37, 112,  51,  37, 123,  50,  53,  53, 125,  37,  42,  37, 123,  49,  48,  48,  48, 125,  37,  47,  37,  50,  46,  50,  88,  47,  37, 112,  52,  37, 123,  50,  53,  53, 125,  37,  42,  37, 123,  49,  48,  48,  48, 125,  37,  47,  37,  50,  46,  50,  88,  27,  92,   0,  27,  91,  51, 109,   0,  27,  91,  50,  51, 109,   0,  27,  91,  77,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  51,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  57,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  51,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  52,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  49,  48,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  52,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0 -}; -// Taken from unibilium/t/static_tmux.c as of 2015-08-14. -// This is an 256-colour terminfo description that lacks -// status line capabilities that tmux actually has. -static const signed char tmux_256colour_terminfo[] = { -  26, 1, 56, 0, 15, 0, 15, 0, 105, 1, -48, 2, 116, 109, 117, 120, 124, 86, 84, 32, 49, 48, 48, 47, 65, 78, 83, 73, 32, 88, 51, 46, 54, 52, 32, 118, 105, 114, 116, 117, 97, 108, 32, 116, 101, 114, 109, 105, 110, 97, 108, 32, 119, 105, 116, 104, 32, 50, 53, 54, 32, 99, 111, 108, 111, 114, 115, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 80, 0, 8, 0, 24, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, 127, 0, 0, 4, 0, 6, 0, 8, 0, 25, 0, 30, 0, 37, 0, 41, 0, -1, -1, -1, -1, 45, 0, 62, 0, 64, 0, 68, 0, 75, 0, -1, -1, 77, 0, 89, 0, -1, -1, 93, 0, 96, 0, 102, 0, 106, 0, -1, -1, -1, -1, 110, 0, 112, 0, 117, 0, 122, 0, -1, -1, -1, -1, 123, 0, -1, -1, -1, -1, -128, 0, -123, 0, -118, 0, -1, -1, -113, 0, -111, 0, -106, 0, -1, -1, -105, 0, -100, 0, -94, 0, -88, 0, -1, -1, -1, -1, -1, -1, -85, 0, -1, -1, -1, -1, -1, -1, -81, 0, -1, -1, -77, 0, -1, -1, -1, -1, -1, -1, -75, 0, -1, -1, -70, 0, -1, -1, -1, -1, -1, -1, -1, -1, -66, 0, -62, 0, -56, 0, -52, 0, -48, 0, -44, 0, -38, 0, -32, 0, -26, 0, -20, 0, -14, 0, -9, 0, -1, -1, -4, 0, -1, -1, 0, 1, 5, 1, 10, 1, -1, -1, -1, -1, -1, -1, 14, 1, 18, 1, 26, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, 1, -1, -1, 37, 1, 46, 1, 55, 1, 64, 1, -1, -1, 73, 1, 82, 1, 91, 1, -1, -1, 100, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 1, -1, -1, -1, -1, 126, 1, -1, -1, -127, 1, -124, 1, -122, 1, -119, 1, -46, 1, -1, -1, -43, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -41, 1, -1, -1, 24, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 2, 46, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, 2, -1, -1, -1, -1, -1, -1, 81, 2, -112, 2, 27, 91, 90, 0, 7, 0, 13, 0, 27, 91, 37, 105, 37, 112, 49, 37, 100, 59, 37, 112, 50, 37, 100, 114, 0, 27, 91, 51, 103, 0, 27, 91, 72, 27, 91, 74, 0, 27, 91, 75, 0, 27, 91, 74, 0, 27, 91, 37, 105, 37, 112, 49, 37, 100, 59, 37, 112, 50, 37, 100, 72, 0, 10, 0, 27, 91, 72, 0, 27, 91, 63, 50, 53, 108, 0, 8, 0, 27, 91, 51, 52, 104, 27, 91, 63, 50, 53, 104, 0, 27, 91, 67, 0, 27, 77, 0, 27, 91, 51, 52, 108, 0, 27, 91, 80, 0, 27, 91, 77, 0, 14, 0, 27, 91, 53, 109, 0, 27, 91, 49, 109, 0, 0, 27, 91, 52, 104, 0, 27, 91, 55, 109, 0, 27, 91, 55, 109, 0, 27, 91, 52, 109, 0, 15, 0, 27, 91, 109, 15, 0, 0, 27, 91, 52, 108, 0, 27, 91, 50, 55, 109, 0, 27, 91, 50, 52, 109, 0, 27, 103, 0, 27, 41, 48, 0, 27, 91, 76, 0, 8, 0, 27, 91, 51, 126, 0, 27, 79, 66, 0, 27, 79, 80, 0, 27, 91, 50, 49, 126, 0, 27, 79, 81, 0, 27, 79, 82, 0, 27, 79, 83, 0, 27, 91, 49, 53, 126, 0, 27, 91, 49, 55, 126, 0, 27, 91, 49, 56, 126, 0, 27, 91, 49, 57, 126, 0, 27, 91, 50, 48, 126, 0, 27, 91, 49, 126, 0, 27, 91, 50, 126, 0, 27, 79, 68, 0, 27, 91, 54, 126, 0, 27, 91, 53, 126, 0, 27, 79, 67, 0, 27, 79, 65, 0, 27, 91, 63, 49, 108, 27, 62, 0, 27, 91, 63, 49, 104, 27, 61, 0, 27, 69, 0, 27, 91, 37, 112, 49, 37, 100, 80, 0, 27, 91, 37, 112, 49, 37, 100, 77, 0, 27, 91, 37, 112, 49, 37, 100, 66, 0, 27, 91, 37, 112, 49, 37, 100, 64, 0, 27, 91, 37, 112, 49, 37, 100, 76, 0, 27, 91, 37, 112, 49, 37, 100, 68, 0, 27, 91, 37, 112, 49, 37, 100, 67, 0, 27, 91, 37, 112, 49, 37, 100, 65, 0, 27, 99, 27, 91, 63, 49, 48, 48, 48, 108, 27, 91, 63, 50, 53, 104, 0, 27, 56, 0, 27, 55, 0, 10, 0, 27, 77, 0, 27, 91, 48, 37, 63, 37, 112, 54, 37, 116, 59, 49, 37, 59, 37, 63, 37, 112, 49, 37, 116, 59, 55, 37, 59, 37, 63, 37, 112, 50, 37, 116, 59, 52, 37, 59, 37, 63, 37, 112, 51, 37, 116, 59, 55, 37, 59, 37, 63, 37, 112, 52, 37, 116, 59, 53, 37, 59, 109, 37, 63, 37, 112, 57, 37, 116, 14, 37, 101, 15, 37, 59, 0, 27, 72, 0, 9, 0, 43, 43, 44, 44, 45, 45, 46, 46, 48, 48, 96, 96, 97, 97, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 0, 27, 91, 90, 0, 27, 40, 66, 27, 41, 48, 0, 27, 91, 52, 126, 0, 27, 91, 50, 51, 126, 0, 27, 91, 50, 52, 126, 0, 27, 91, 49, 75, 0, 27, 91, 51, 57, 59, 52, 57, 109, 0, 27, 91, 51, 109, 0, 27, 91, 50, 51, 109, 0, 27, 91, 77, 0, 27, 91, 37, 63, 37, 112, 49, 37, 123, 56, 125, 37, 60, 37, 116, 51, 37, 112, 49, 37, 100, 37, 101, 37, 112, 49, 37, 123, 49, 54, 125, 37, 60, 37, 116, 57, 37, 112, 49, 37, 123, 56, 125, 37, 45, 37, 100, 37, 101, 51, 56, 59, 53, 59, 37, 112, 49, 37, 100, 37, 59, 109, 0, 27, 91, 37, 63, 37, 112, 49, 37, 123, 56, 125, 37, 60, 37, 116, 52, 37, 112, 49, 37, 100, 37, 101, 37, 112, 49, 37, 123, 49, 54, 125, 37, 60, 37, 116, 49, 48, 37, 112, 49, 37, 123, 56, 125, 37, 45, 37, 100, 37, 101, 52, 56, 59, 53, 59, 37, 112, 49, 37, 100, 37, 59, 109, 0 -}; -// Taken from unibilium/t/static_screen-256color.c as of 2015-08-14. -// This is an 256-colour terminfo description that lacks -// status line capabilities that screen actually has. -static const signed char screen_256colour_terminfo[] = { -  26, 1, 43, 0, 43, 0, 15, 0, 105, 1, -43, 2, 115, 99, 114, 101, 101, 110, 45, 50, 53, 54, 99, 111, 108, 111, 114, 124, 71, 78, 85, 32, 83, 99, 114, 101, 101, 110, 32, 119, 105, 116, 104, 32, 50, 53, 54, 32, 99, 111, 108, 111, 114, 115, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 80, 0, 8, 0, 24, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, -1, 127, 0, 0, 4, 0, 6, 0, 8, 0, 25, 0, 30, 0, 37, 0, 41, 0, -1, -1, -1, -1, 45, 0, 62, 0, 64, 0, 68, 0, 75, 0, -1, -1, 77, 0, 89, 0, -1, -1, 93, 0, 96, 0, 102, 0, 106, 0, -1, -1, -1, -1, 110, 0, 112, 0, 117, 0, 122, 0, -1, -1, -1, -1, -125, 0, -1, -1, -1, -1, -120, 0, -115, 0, -110, 0, -1, -1, -105, 0, -103, 0, -98, 0, -1, -1, -89, 0, -84, 0, -78, 0, -72, 0, -1, -1, -1, -1, -1, -1, -69, 0, -1, -1, -1, -1, -1, -1, -65, 0, -1, -1, -61, 0, -1, -1, -1, -1, -1, -1, -59, 0, -1, -1, -54, 0, -1, -1, -1, -1, -1, -1, -1, -1, -50, 0, -46, 0, -40, 0, -36, 0, -32, 0, -28, 0, -22, 0, -16, 0, -10, 0, -4, 0, 2, 1, 7, 1, -1, -1, 12, 1, -1, -1, 16, 1, 21, 1, 26, 1, -1, -1, -1, -1, -1, -1, 30, 1, 34, 1, 42, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, 1, -1, -1, 53, 1, 62, 1, 71, 1, 80, 1, -1, -1, 89, 1, 98, 1, 107, 1, -1, -1, 116, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, 1, -1, -1, -1, -1, -114, 1, -1, -1, -111, 1, -108, 1, -106, 1, -103, 1, -30, 1, -1, -1, -27, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -25, 1, -1, -1, 40, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 51, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, 2, 62, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 2, -1, -1, -1, -1, -1, -1, 86, 2, -107, 2, 27, 91, 90, 0, 7, 0, 13, 0, 27, 91, 37, 105, 37, 112, 49, 37, 100, 59, 37, 112, 50, 37, 100, 114, 0, 27, 91, 51, 103, 0, 27, 91, 72, 27, 91, 74, 0, 27, 91, 75, 0, 27, 91, 74, 0, 27, 91, 37, 105, 37, 112, 49, 37, 100, 59, 37, 112, 50, 37, 100, 72, 0, 10, 0, 27, 91, 72, 0, 27, 91, 63, 50, 53, 108, 0, 8, 0, 27, 91, 51, 52, 104, 27, 91, 63, 50, 53, 104, 0, 27, 91, 67, 0, 27, 77, 0, 27, 91, 51, 52, 108, 0, 27, 91, 80, 0, 27, 91, 77, 0, 14, 0, 27, 91, 53, 109, 0, 27, 91, 49, 109, 0, 27, 91, 63, 49, 48, 52, 57, 104, 0, 27, 91, 52, 104, 0, 27, 91, 55, 109, 0, 27, 91, 51, 109, 0, 27, 91, 52, 109, 0, 15, 0, 27, 91, 109, 15, 0, 27, 91, 63, 49, 48, 52, 57, 108, 0, 27, 91, 52, 108, 0, 27, 91, 50, 51, 109, 0, 27, 91, 50, 52, 109, 0, 27, 103, 0, 27, 41, 48, 0, 27, 91, 76, 0, 8, 0, 27, 91, 51, 126, 0, 27, 79, 66, 0, 27, 79, 80, 0, 27, 91, 50, 49, 126, 0, 27, 79, 81, 0, 27, 79, 82, 0, 27, 79, 83, 0, 27, 91, 49, 53, 126, 0, 27, 91, 49, 55, 126, 0, 27, 91, 49, 56, 126, 0, 27, 91, 49, 57, 126, 0, 27, 91, 50, 48, 126, 0, 27, 91, 49, 126, 0, 27, 91, 50, 126, 0, 27, 79, 68, 0, 27, 91, 54, 126, 0, 27, 91, 53, 126, 0, 27, 79, 67, 0, 27, 79, 65, 0, 27, 91, 63, 49, 108, 27, 62, 0, 27, 91, 63, 49, 104, 27, 61, 0, 27, 69, 0, 27, 91, 37, 112, 49, 37, 100, 80, 0, 27, 91, 37, 112, 49, 37, 100, 77, 0, 27, 91, 37, 112, 49, 37, 100, 66, 0, 27, 91, 37, 112, 49, 37, 100, 64, 0, 27, 91, 37, 112, 49, 37, 100, 76, 0, 27, 91, 37, 112, 49, 37, 100, 68, 0, 27, 91, 37, 112, 49, 37, 100, 67, 0, 27, 91, 37, 112, 49, 37, 100, 65, 0, 27, 99, 27, 91, 63, 49, 48, 48, 48, 108, 27, 91, 63, 50, 53, 104, 0, 27, 56, 0, 27, 55, 0, 10, 0, 27, 77, 0, 27, 91, 48, 37, 63, 37, 112, 54, 37, 116, 59, 49, 37, 59, 37, 63, 37, 112, 49, 37, 116, 59, 51, 37, 59, 37, 63, 37, 112, 50, 37, 116, 59, 52, 37, 59, 37, 63, 37, 112, 51, 37, 116, 59, 55, 37, 59, 37, 63, 37, 112, 52, 37, 116, 59, 53, 37, 59, 109, 37, 63, 37, 112, 57, 37, 116, 14, 37, 101, 15, 37, 59, 0, 27, 72, 0, 9, 0, 43, 43, 44, 44, 45, 45, 46, 46, 48, 48, 96, 96, 97, 97, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 0, 27, 91, 90, 0, 27, 40, 66, 27, 41, 48, 0, 27, 91, 52, 126, 0, 27, 91, 50, 51, 126, 0, 27, 91, 50, 52, 126, 0, 27, 91, 49, 75, 0, 27, 91, 51, 57, 59, 52, 57, 109, 0, 27, 91, 77, 0, 27, 91, 37, 63, 37, 112, 49, 37, 123, 56, 125, 37, 60, 37, 116, 51, 37, 112, 49, 37, 100, 37, 101, 37, 112, 49, 37, 123, 49, 54, 125, 37, 60, 37, 116, 57, 37, 112, 49, 37, 123, 56, 125, 37, 45, 37, 100, 37, 101, 51, 56, 59, 53, 59, 37, 112, 49, 37, 100, 37, 59, 109, 0, 27, 91, 37, 63, 37, 112, 49, 37, 123, 56, 125, 37, 60, 37, 116, 52, 37, 112, 49, 37, 100, 37, 101, 37, 112, 49, 37, 123, 49, 54, 125, 37, 60, 37, 116, 49, 48, 37, 112, 49, 37, 123, 56, 125, 37, 45, 37, 100, 37, 101, 52, 56, 59, 53, 59, 37, 112, 49, 37, 100, 37, 59, 109, 0, 0, 3, 0, 1, 0, 24, 0, 52, 0, -112, 0, 1, 1, 0, 0, 1, 0, 0, 0, 4, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 3, 0, 6, 0, 9, 0, 12, 0, 15, 0, 18, 0, 23, 0, 28, 0, 32, 0, 37, 0, 43, 0, 49, 0, 55, 0, 61, 0, 66, 0, 71, 0, 77, 0, 83, 0, 89, 0, 95, 0, 101, 0, 107, 0, 111, 0, 116, 0, 120, 0, 124, 0, -128, 0, 27, 40, 66, 0, 27, 40, 37, 112, 49, 37, 99, 0, 65, 88, 0, 71, 48, 0, 88, 84, 0, 85, 56, 0, 69, 48, 0, 83, 48, 0, 107, 68, 67, 53, 0, 107, 68, 67, 54, 0, 107, 68, 78, 0, 107, 68, 78, 53, 0, 107, 69, 78, 68, 53, 0, 107, 69, 78, 68, 54, 0, 107, 72, 79, 77, 53, 0, 107, 72, 79, 77, 54, 0, 107, 73, 67, 53, 0, 107, 73, 67, 54, 0, 107, 76, 70, 84, 53, 0, 107, 78, 88, 84, 53, 0, 107, 78, 88, 84, 54, 0, 107, 80, 82, 86, 53, 0, 107, 80, 82, 86, 54, 0, 107, 82, 73, 84, 53, 0, 107, 85, 80, 0, 107, 85, 80, 53, 0, 107, 97, 50, 0, 107, 98, 49, 0, 107, 98, 51, 0, 107, 99, 50, 0 -}; -// Taken from Dickey ncurses terminfo.src dated 2017-04-22. -static const signed char iterm_256colour_terminfo[] = { -  26,   1,  57,   0,  29,   0,  15,   0, 105,   1,  73,   3, 105,  84, 101, 114, 109,  46,  97, 112, 112, 124, 105, 116, 101, 114, 109, 124, 105,  84, 101, 114, 109,  46,  97, 112, 112,  32, 116, 101, 114, 109, 105, 110,  97, 108,  32, 101, 109, 117, 108,  97, 116, 111, 114,  32, 102, 111, 114,  32,  77,  97,  99,  32,  79,  83,  32,  88,   0,   0,   1,   0,   0,   1,   0,   0,   0,   0,   1,   0,   0,   0,   1,   1,   0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   1,   0,   0,   1,  80,   0,   8,   0,  24,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  50,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   0,   1,  -1, 127,  -1,  -1,   0,   0,   2,   0,  -2,  -1,   4,   0,   9,   0,  16,   0,  20,   0,  24,   0,  -1,  -1,  35,   0,  52,   0,  54,   0,  58,   0,  65,   0,  -1,  -1,  67,   0,  74,   0,  -1,  -1,  78,   0,  -1,  -1,  82,   0,  86,   0,  90,   0,  -1,  -1,  96,   0,  98,   0, 103,   0, 108,   0,  -1,  -1,  -2,  -1, 117,   0, 122,   0,  -1,  -1, 127,   0,-124,   0,-119,   0,  -1,  -1,-114,   0,-112,   0,-107,   0,  -1,  -1, -94,   0, -89,   0, -85,   0, -81,   0,  -1,  -1, -63,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -61,   0, -57,   0,  -1,  -1, -53,   0,  -1,  -1,  -1,  -1,  -1,  -1, -51,   0,  -1,  -1, -46,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -42,   0, -38,   0, -32,   0, -28,   0, -24,   0, -20,   0, -14,   0,  -8,   0,  -2,   0,   4,   1,  10,   1,  -1,  -1,  -1,  -1,  14,   1,  -1,  -1,  18,   1,  23,   1,  28,   1,  -1,  -1,  -1,  -1,  -1,  -1,  32,   1,  36,   1,  44,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  52,   1,  61,   1,  70,   1,  79,   1,  -1,  -1,  88,   1,  97,   1, 106,   1,  -1,  -1, 115,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 124,   1,  -1,  -1,  -1,  -1,-104,   1,-101,   1, -90,   1, -87,   1, -85,   1, -82,   1,  -4,   1,  -1,  -1,  -1,   1,   1,   2,  -1,  -1,  -1,  -1,  -1,  -1,   6,   2,  10,   2,  14,   2,  18,   2,  22,   2,  -1,  -1,  -1,  -1,  26,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  77,   2,  83,   2,  -1,  -1,  -1,  -1,  89,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  96,   2, 100,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 104,   2, 110,   2, 116,   2, 122,   2,-128,   2,-122,   2,-116,   2,-110,   2, 104,   2, -98,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -92,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -87,   2, -76,   2, -71,   2, -63,   2, -59,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -54,   2,   9,   3,   7,   0,  13,   0,  27,  91,  51, 103,   0,  27,  91,  72,  27,  91,  74,   0,  27,  91,  75,   0,  27,  91,  74,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  71,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100,  72,   0,  10,   0,  27,  91,  72,   0,  27,  91,  63,  50,  53, 108,   0,   8,   0,  27,  91,  63,  50,  53, 104,   0,  27,  91,  67,   0,  27,  91,  65,   0,  27,  91,  80,   0,  27,  91,  77,   0,  27,  93,  50,  59,   7,   0,  14,   0,  27,  91,  53, 109,   0,  27,  91,  49, 109,   0,  27,  55,  27,  91,  63,  52,  55, 104,   0,  27,  91,  52, 104,   0,  27,  91,  56, 109,   0,  27,  91,  55, 109,   0,  27,  91,  55, 109,   0,  27,  91,  52, 109,   0,  15,   0,  27,  91, 109,  15,   0,  27,  91,  50,  74,  27,  91,  63,  52,  55, 108,  27,  56,   0,  27,  91,  52, 108,   0,  27,  91, 109,   0,  27,  91, 109,   0,  27,  91,  63,  53, 104,  36,  60,  50,  48,  48,  47,  62,  27,  91,  63,  53, 108,   0,   7,   0,  27,  91,  64,   0,  27,  91,  76,   0, 127,   0,  27,  91,  51, 126,   0,  27,  79,  66,   0,  27,  79,  80,   0,  27,  91,  50,  49, 126,   0,  27,  79,  81,   0,  27,  79,  82,   0,  27,  79,  83,   0,  27,  91,  49,  53, 126,   0,  27,  91,  49,  55, 126,   0,  27,  91,  49,  56, 126,   0,  27,  91,  49,  57, 126,   0,  27,  91,  50,  48, 126,   0,  27,  79,  72,   0,  27,  79,  68,   0,  27,  91,  54, 126,   0,  27,  91,  53, 126,   0,  27,  79,  67,   0,  27,  79,  65,   0,  27,  91,  63,  49, 108,  27,  62,   0,  27,  91,  63,  49, 104,  27,  61,   0,  27,  91,  37, 112,  49,  37, 100,  80,   0,  27,  91,  37, 112,  49,  37, 100,  77,   0,  27,  91,  37, 112,  49,  37, 100,  66,   0,  27,  91,  37, 112,  49,  37, 100,  64,   0,  27,  91,  37, 112,  49,  37, 100,  76,   0,  27,  91,  37, 112,  49,  37, 100,  68,   0,  27,  91,  37, 112,  49,  37, 100,  67,   0,  27,  91,  37, 112,  49,  37, 100,  65,   0,  27,  62,  27,  91,  63,  51, 108,  27,  91,  63,  52, 108,  27,  91,  63,  53, 108,  27,  91,  63,  55, 104,  27,  91,  63,  56, 104,   0,  27,  56,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100, 100,   0,  27,  55,   0,  10,   0,  27,  77,   0,  27,  91,  48,  37,  63,  37, 112,  54,  37, 116,  59,  49,  37,  59,  37,  63,  37, 112,  50,  37, 116,  59,  52,  37,  59,  37,  63,  37, 112,  49,  37, 112,  51,  37, 124,  37, 116,  59,  55,  37,  59,  37,  63,  37, 112,  52,  37, 116,  59,  53,  37,  59,  37,  63,  37, 112,  55,  37, 116,  59,  56,  37,  59, 109,  37,  63,  37, 112,  57,  37, 116,  14,  37, 101,  15,  37,  59,   0,  27,  72,   0,   9,   0,  27,  93,  50,  59,   0,  27,  79, 113,   0,  27,  79, 115,   0,  27,  79, 114,   0,  27,  79, 112,   0,  27,  79, 110,   0,  96,  96,  97,  97, 102, 102, 103, 103, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126,   0,  27,  91,  63,  55, 104,   0,  27,  91,  63,  55, 108,   0,  27,  40,  66,  27,  41,  48,   0,  27,  79,  70,   0,  27,  79,  77,   0,  27,  91,  50,  51, 126,   0,  27,  91,  50,  52, 126,   0,  27,  91,  50,  53, 126,   0,  27,  91,  50,  54, 126,   0,  27,  91,  50,  56, 126,   0,  27,  91,  50,  57, 126,   0,  27,  91,  51,  49, 126,   0,  27,  91,  50,  50, 126,   0,  27,  91,  51,  51, 126,   0,  27,  91,  51,  52, 126,   0,  27,  91,  49,  75,   0,  27,  91,  37, 105,  37, 100,  59,  37, 100,  82,   0,  27,  91,  54, 110,   0,  27,  91,  63,  49,  59,  50,  99,   0,  27,  91,  99,   0,  27,  91,  48, 109,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  51,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  57,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  51,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  52,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  49,  48,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  52,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0 -}; -// Taken from Dickey ncurses terminfo.src dated 2017-04-22. -// This is a 256-colour terminfo description that lacks true-colour -// capabilities that rxvt actually has. -static const signed char rxvt_256colour_terminfo[] = { -  26,   1,  47,   0,  29,   0,  15,   0, 110,   1, -31,   4, 114, 120, 118, 116,  45,  50,  53,  54,  99, 111, 108, 111, 114, 124, 114, 120, 118, 116,  32,  50,  46,  55,  46,  57,  32, 119, 105, 116, 104,  32, 120, 116, 101, 114, 109,  32,  50,  53,  54,  45,  99, 111, 108, 111, 114, 115,   0,   0,   1,   0,   0,   1,   1,   0,   0,   0,   0,   0,   0,   0,   1,   1,   0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,   0,   1,   1,  80,   0,   8,   0,  24,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   0,   1,  -1, 127,  -1,  -1,   0,   0,   2,   0,   4,   0,  21,   0,  26,   0,  34,   0,  38,   0,  42,   0,  -1,  -1,  53,   0,  70,   0,  72,   0,  76,   0,  83,   0,  -1,  -1,  85,   0,  92,   0,  -1,  -1,  96,   0,  -1,  -1,  -1,  -1, 100,   0,  -1,  -1,  -1,  -1, 104,   0, 106,   0, 111,   0, 116,   0,  -1,  -1,  -1,  -1, 125,   0,  -1,  -1,  -1,  -1,-126,   0,-121,   0,-116,   0,  -1,  -1,-111,   0,-109,   0,-104,   0,  -1,  -1, -91,   0, -86,   0, -80,   0, -74,   0,  -1,  -1,  -1,  -1, -56,   0, -42,   0,  -1,  -1,  -1,  -1,  -8,   0,  -4,   0,  -1,  -1,   0,   1,  -1,  -1,  -1,  -1,  -1,  -1,   2,   1,  -1,  -1,   7,   1,  -1,  -1,  11,   1,  -1,  -1,  16,   1,  22,   1,  28,   1,  34,   1,  40,   1,  46,   1,  52,   1,  58,   1,  64,   1,  70,   1,  76,   1,  82,   1,  87,   1,  -1,  -1,  92,   1,  -1,  -1,  96,   1, 101,   1, 106,   1, 110,   1, 114,   1,  -1,  -1, 118,   1, 122,   1, 125,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,-128,   1,-119,   1,-110,   1,  -1,  -1,-101,   1, -92,   1, -83,   1,  -1,  -1, -74,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -65,   1, -32,   1,  -1,  -1,  -1,  -1,  18,   2,  21,   2,  32,   2,  35,   2,  37,   2,  40,   2, 107,   2,  -1,  -1, 110,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 112,   2, 116,   2, 120,   2, 124,   2,-128,   2,  -1,  -1,  -1,  -1,-124,   2,  -1,  -1, -73,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -69,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -62,   2, -57,   2,  -1,  -1, -53,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -48,   2,  -1,  -1, -43,   2, -38,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -33,   2, -28,   2, -23,   2,  -1,  -1,  -1,  -1, -19,   2,  -1,  -1, -14,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -9,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -5,   2,   1,   3,   7,   3,  13,   3,  19,   3,  25,   3,  31,   3,  37,   3,  43,   3,  49,   3,  55,   3,  61,   3,  67,   3,  73,   3,  79,   3,  85,   3,  91,   3,  97,   3, 103,   3, 109,   3, 115,   3, 121,   3, 127,   3,-123,   3,-117,   3,-111,   3,-105,   3, -99,   3, -93,   3, -87,   3, -81,   3, -75,   3, -69,   3, -63,   3,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -57,   3,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -52,   3, -41,   3, -36,   3, -28,   3, -24,   3, -15,   3,  -8,   3,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  86,   4,  -1,  -1,  -1,  -1,  -1,  -1,  90,   4,-103,   4,  -1,  -1,  -1,  -1,  -1,  -1, -39,   4, -35,   4,   7,   0,  13,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100, 114,   0,  27,  91,  51, 103,   0,  27,  91,  72,  27,  91,  50,  74,   0,  27,  91,  75,   0,  27,  91,  74,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  71,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100,  72,   0,  10,   0,  27,  91,  72,   0,  27,  91,  63,  50,  53, 108,   0,   8,   0,  27,  91,  63,  50,  53, 104,   0,  27,  91,  67,   0,  27,  91,  65,   0,  27,  91,  77,   0,  14,   0,  27,  91,  53, 109,   0,  27,  91,  49, 109,   0,  27,  55,  27,  91,  63,  52,  55, 104,   0,  27,  91,  52, 104,   0,  27,  91,  55, 109,   0,  27,  91,  55, 109,   0,  27,  91,  52, 109,   0,  15,   0,  27,  91, 109,  15,   0,  27,  91,  50,  74,  27,  91,  63,  52,  55, 108,  27,  56,   0,  27,  91,  52, 108,   0,  27,  91,  50,  55, 109,   0,  27,  91,  50,  52, 109,   0,  27,  91,  63,  53, 104,  36,  60,  49,  48,  48,  47,  62,  27,  91,  63,  53, 108,   0,  27,  91,  63,  52,  55, 108,  27,  61,  27,  91,  63,  49, 108,   0,  27,  91, 114,  27,  91, 109,  27,  91,  50,  74,  27,  91,  72,  27,  91,  63,  55, 104,  27,  91,  63,  49,  59,  51,  59,  52,  59,  54, 108,  27,  91,  52, 108,   0,  27,  91,  64,   0,  27,  91,  76,   0,   8,   0,  27,  91,  51, 126,   0,  27,  91,  66,   0,  27,  91,  56,  94,   0,  27,  91,  50,  49, 126,   0,  27,  91,  49,  49, 126,   0,  27,  91,  50,  49, 126,   0,  27,  91,  49,  50, 126,   0,  27,  91,  49,  51, 126,   0,  27,  91,  49,  52, 126,   0,  27,  91,  49,  53, 126,   0,  27,  91,  49,  55, 126,   0,  27,  91,  49,  56, 126,   0,  27,  91,  49,  57, 126,   0,  27,  91,  50,  48, 126,   0,  27,  91,  55, 126,   0,  27,  91,  50, 126,   0,  27,  91,  68,   0,  27,  91,  54, 126,   0,  27,  91,  53, 126,   0,  27,  91,  67,   0,  27,  91,  97,   0,  27,  91,  98,   0,  27,  91,  65,   0,  27,  62,   0,  27,  61,   0,  27,  91,  37, 112,  49,  37, 100,  77,   0,  27,  91,  37, 112,  49,  37, 100,  66,   0,  27,  91,  37, 112,  49,  37, 100,  64,   0,  27,  91,  37, 112,  49,  37, 100,  76,   0,  27,  91,  37, 112,  49,  37, 100,  68,   0,  27,  91,  37, 112,  49,  37, 100,  67,   0,  27,  91,  37, 112,  49,  37, 100,  65,   0,  27,  62,  27,  91,  49,  59,  51,  59,  52,  59,  53,  59,  54, 108,  27,  91,  63,  55, 104,  27,  91, 109,  27,  91, 114,  27,  91,  50,  74,  27,  91,  72,   0,  27,  91, 114,  27,  91, 109,  27,  91,  50,  74,  27,  91,  72,  27,  91,  63,  55, 104,  27,  91,  63,  49,  59,  51,  59,  52,  59,  54, 108,  27,  91,  52, 108,  27,  62,  27,  91,  63,  49,  48,  48,  48, 108,  27,  91,  63,  50,  53, 104,   0,  27,  56,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100, 100,   0,  27,  55,   0,  10,   0,  27,  77,   0,  27,  91,  48,  37,  63,  37, 112,  54,  37, 116,  59,  49,  37,  59,  37,  63,  37, 112,  50,  37, 116,  59,  52,  37,  59,  37,  63,  37, 112,  49,  37, 112,  51,  37, 124,  37, 116,  59,  55,  37,  59,  37,  63,  37, 112,  52,  37, 116,  59,  53,  37,  59, 109,  37,  63,  37, 112,  57,  37, 116,  14,  37, 101,  15,  37,  59,   0,  27,  72,   0,   9,   0,  27,  79, 119,   0,  27,  79, 121,   0,  27,  79, 117,   0,  27,  79, 113,   0,  27,  79, 115,   0,  96,  96,  97,  97, 102, 102, 103, 103, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126,   0,  27,  91,  90,   0,  27,  40,  66,  27,  41,  48,   0,  27,  91,  56, 126,   0,  27,  79,  77,   0,  27,  91,  49, 126,   0,  27,  91,  51,  36,   0,  27,  91,  52, 126,   0,  27,  91,  56,  36,   0,  27,  91,  55,  36,   0,  27,  91,  50,  36,   0,  27,  91, 100,   0,  27,  91,  54,  36,   0,  27,  91,  53,  36,   0,  27,  91,  99,   0,  27,  91,  50,  51, 126,   0,  27,  91,  50,  52, 126,   0,  27,  91,  50,  53, 126,   0,  27,  91,  50,  54, 126,   0,  27,  91,  50,  56, 126,   0,  27,  91,  50,  57, 126,   0,  27,  91,  51,  49, 126,   0,  27,  91,  51,  50, 126,   0,  27,  91,  51,  51, 126,   0,  27,  91,  51,  52, 126,   0,  27,  91,  50,  51,  36,   0,  27,  91,  50,  52,  36,   0,  27,  91,  49,  49,  94,   0,  27,  91,  49,  50,  94,   0,  27,  91,  49,  51,  94,   0,  27,  91,  49,  52,  94,   0,  27,  91,  49,  53,  94,   0,  27,  91,  49,  55,  94,   0,  27,  91,  49,  56,  94,   0,  27,  91,  49,  57,  94,   0,  27,  91,  50,  48,  94,   0,  27,  91,  50,  49,  94,   0,  27,  91,  50,  51,  94,   0,  27,  91,  50,  52,  94,   0,  27,  91,  50,  53,  94,   0,  27,  91,  50,  54,  94,   0,  27,  91,  50,  56,  94,   0,  27,  91,  50,  57,  94,   0,  27,  91,  51,  49,  94,   0,  27,  91,  51,  50,  94,   0,  27,  91,  51,  51,  94,   0,  27,  91,  51,  52,  94,   0,  27,  91,  50,  51,  64,   0,  27,  91,  50,  52,  64,   0,  27,  91,  49,  75,   0,  27,  91,  37, 105,  37, 100,  59,  37, 100,  82,   0,  27,  91,  54, 110,   0,  27,  91,  63,  49,  59,  50,  99,   0,  27,  91,  99,   0,  27,  91,  51,  57,  59,  52,  57, 109,   0,  27,  93,  49,  48,  52,   7,   0,  27,  93,  52,  59,  37, 112,  49,  37, 100,  59, 114, 103,  98,  58,  37, 112,  50,  37, 123,  50,  53,  53, 125,  37,  42,  37, 123,  49,  48,  48,  48, 125,  37,  47,  37,  50,  46,  50,  88,  47,  37, 112,  51,  37, 123,  50,  53,  53, 125,  37,  42,  37, 123,  49,  48,  48,  48, 125,  37,  47,  37,  50,  46,  50,  88,  47,  37, 112,  52,  37, 123,  50,  53,  53, 125,  37,  42,  37, 123,  49,  48,  48,  48, 125,  37,  47,  37,  50,  46,  50,  88,  27,  92,   0,  27,  91,  77,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  51,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  57,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  51,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  52,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  49,  48,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  52,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0,  27,  40,  66,   0,  27,  40,  48,   0 -}; -// Taken from Dickey ncurses terminfo.src dated 2017-04-22. -// This is a 16-colour terminfo description that lacks true-colour -// and 256-colour capabilities that linux (4.8+) actually has. -static const signed char linux_16colour_terminfo[] = { -  26,   1,  43,   0,  29,   0,  16,   0, 125,   1, 125,   3, 108, 105, 110, 117, 120,  45,  49,  54,  99, 111, 108, 111, 114, 124, 108, 105, 110, 117, 120,  32,  99, 111, 110, 115, 111, 108, 101,  32, 119, 105, 116, 104,  32,  49,  54,  32,  99, 111, 108, 111, 114, 115,   0,   0,   1,   0,   0,   1,   1,   0,   0,   0,   0,   0,   0,   0,   1,   1,   0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,   0,   1,   1,  -1,  -1,   8,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  16,   0,   0,   1,  42,   0,  -1,  -1,   0,   0,   2,   0,   4,   0,  21,   0,  26,   0,  33,   0,  37,   0,  41,   0,  -1,  -1,  52,   0,  69,   0,  71,   0,  75,   0,  87,   0,  -1,  -1,  89,   0, 101,   0,  -1,  -1, 105,   0, 109,   0, 121,   0, 125,   0,  -1,  -1,  -1,  -1,-127,   0,-125,   0,-120,   0,  -1,  -1,  -1,  -1,-115,   0,-110,   0,  -1,  -1,  -1,  -1,-105,   0,-100,   0, -95,   0, -90,   0, -81,   0, -79,   0,  -1,  -1,  -1,  -1, -74,   0, -69,   0, -63,   0, -57,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -39,   0, -35,   0,  -1,  -1, -31,   0,  -1,  -1,  -1,  -1,  -1,  -1, -29,   0,  -1,  -1, -24,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -20,   0, -15,   0,  -9,   0,  -4,   0,   1,   1,   6,   1,  11,   1,  17,   1,  23,   1,  29,   1,  35,   1,  40,   1,  -1,  -1,  45,   1,  -1,  -1,  49,   1,  54,   1,  59,   1,  -1,  -1,  -1,  -1,  -1,  -1,  63,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  67,   1,  -1,  -1,  70,   1,  79,   1,  88,   1,  97,   1,  -1,  -1, 106,   1, 115,   1, 124,   1,  -1,  -1,-123,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,-114,   1,  -1,  -1,  -1,  -1,  -1,  -1,-108,   1,-105,   1, -94,   1, -91,   1, -89,   1, -86,   1,   1,   2,  -1,  -1,   4,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   6,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  10,   2,  -1,  -1,  77,   2,  -1,  -1,  -1,  -1,  81,   2,  87,   2,  -1,  -1,  -1,  -1,  93,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  97,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 102,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 104,   2, 110,   2, 116,   2, 122,   2,-128,   2,-122,   2,-116,   2,-110,   2,-104,   2, -98,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -92,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -87,   2, -76,   2, -71,   2, -65,   2, -61,   2, -52,   2, -48,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  33,   3,  -1,  -1,  -1,  -1,  -1,  -1,  37,   3,  75,   3,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 113,   3, 119,   3,   7,   0,  13,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100, 114,   0,  27,  91,  51, 103,   0,  27,  91,  72,  27,  91,  74,   0,  27,  91,  75,   0,  27,  91,  74,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  71,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100,  72,   0,  10,   0,  27,  91,  72,   0,  27,  91,  63,  50,  53, 108,  27,  91,  63,  49,  99,   0,   8,   0,  27,  91,  63,  50,  53, 104,  27,  91,  63,  48,  99,   0,  27,  91,  67,   0,  27,  91,  65,   0,  27,  91,  63,  50,  53, 104,  27,  91,  63,  56,  99,   0,  27,  91,  80,   0,  27,  91,  77,   0,  14,   0,  27,  91,  53, 109,   0,  27,  91,  49, 109,   0,  27,  91,  50, 109,   0,  27,  91,  52, 104,   0,  27,  91,  55, 109,   0,  27,  91,  55, 109,   0,  27,  91,  52, 109,   0,  27,  91,  37, 112,  49,  37, 100,  88,   0,  15,   0,  27,  91, 109,  15,   0,  27,  91,  52, 108,   0,  27,  91,  50,  55, 109,   0,  27,  91,  50,  52, 109,   0,  27,  91,  63,  53, 104,  36,  60,  50,  48,  48,  47,  62,  27,  91,  63,  53, 108,   0,  27,  91,  64,   0,  27,  91,  76,   0, 127,   0,  27,  91,  51, 126,   0,  27,  91,  66,   0,  27,  91,  91,  65,   0,  27,  91,  50,  49, 126,   0,  27,  91,  91,  66,   0,  27,  91,  91,  67,   0,  27,  91,  91,  68,   0,  27,  91,  91,  69,   0,  27,  91,  49,  55, 126,   0,  27,  91,  49,  56, 126,   0,  27,  91,  49,  57, 126,   0,  27,  91,  50,  48, 126,   0,  27,  91,  49, 126,   0,  27,  91,  50, 126,   0,  27,  91,  68,   0,  27,  91,  54, 126,   0,  27,  91,  53, 126,   0,  27,  91,  67,   0,  27,  91,  65,   0,  13,  10,   0,  27,  91,  37, 112,  49,  37, 100,  80,   0,  27,  91,  37, 112,  49,  37, 100,  77,   0,  27,  91,  37, 112,  49,  37, 100,  66,   0,  27,  91,  37, 112,  49,  37, 100,  64,   0,  27,  91,  37, 112,  49,  37, 100,  76,   0,  27,  91,  37, 112,  49,  37, 100,  68,   0,  27,  91,  37, 112,  49,  37, 100,  67,   0,  27,  91,  37, 112,  49,  37, 100,  65,   0,  27,  99,  27,  93,  82,   0,  27,  56,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100, 100,   0,  27,  55,   0,  10,   0,  27,  77,   0,  27,  91,  48,  59,  49,  48,  37,  63,  37, 112,  49,  37, 116,  59,  55,  37,  59,  37,  63,  37, 112,  50,  37, 116,  59,  52,  37,  59,  37,  63,  37, 112,  51,  37, 116,  59,  55,  37,  59,  37,  63,  37, 112,  52,  37, 116,  59,  53,  37,  59,  37,  63,  37, 112,  53,  37, 116,  59,  50,  37,  59,  37,  63,  37, 112,  54,  37, 116,  59,  49,  37,  59, 109,  37,  63,  37, 112,  57,  37, 116,  14,  37, 101,  15,  37,  59,   0,  27,  72,   0,   9,   0,  27,  91,  71,   0,  43,  43,  44,  44,  45,  45,  46,  46,  48,  48,  95,  95,  96,  96,  97,  97, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125,  99, 126, 126,   0,  27,  91,  90,   0,  27,  91,  63,  55, 104,   0,  27,  91,  63,  55, 108,   0,  27,  41,  48,   0,  27,  91,  52, 126,   0,  26,   0,  27,  91,  50,  51, 126,   0,  27,  91,  50,  52, 126,   0,  27,  91,  50,  53, 126,   0,  27,  91,  50,  54, 126,   0,  27,  91,  50,  56, 126,   0,  27,  91,  50,  57, 126,   0,  27,  91,  51,  49, 126,   0,  27,  91,  51,  50, 126,   0,  27,  91,  51,  51, 126,   0,  27,  91,  51,  52, 126,   0,  27,  91,  49,  75,   0,  27,  91,  37, 105,  37, 100,  59,  37, 100,  82,   0,  27,  91,  54, 110,   0,  27,  91,  63,  54,  99,   0,  27,  91,  99,   0,  27,  91,  51,  57,  59,  52,  57, 109,   0,  27,  93,  82,   0,  27,  93,  80,  37, 112,  49,  37, 120,  37, 112,  50,  37, 123,  50,  53,  53, 125,  37,  42,  37, 123,  49,  48,  48,  48, 125,  37,  47,  37,  48,  50, 120,  37, 112,  51,  37, 123,  50,  53,  53, 125,  37,  42,  37, 123,  49,  48,  48,  48, 125,  37,  47,  37,  48,  50, 120,  37, 112,  52,  37, 123,  50,  53,  53, 125,  37,  42,  37, 123,  49,  48,  48,  48, 125,  37,  47,  37,  48,  50, 120,   0,  27,  91,  77,   0,  27,  91,  51,  37, 112,  49,  37, 123,  56, 125,  37, 109,  37, 100,  37,  63,  37, 112,  49,  37, 123,  55, 125,  37,  62,  37, 116,  59,  49,  37, 101,  59,  50,  49,  37,  59, 109,   0,  27,  91,  52,  37, 112,  49,  37, 123,  56, 125,  37, 109,  37, 100,  37,  63,  37, 112,  49,  37, 123,  55, 125,  37,  62,  37, 116,  59,  53,  37, 101,  59,  50,  53,  37,  59, 109,   0,  27,  91,  49,  49, 109,   0,  27,  91,  49,  48, 109,   0 -}; -// Taken from Dickey ncurses terminfo.src dated 2017-04-22. -static const signed char putty_256colour_terminfo[] = { -  26,   1,  48,   0,  29,   0,  16,   0, 125,   1,-106,   4, 112, 117, 116, 116, 121,  45,  50,  53,  54,  99, 111, 108, 111, 114, 124,  80, 117,  84,  84,  89,  32,  48,  46,  53,  56,  32, 119, 105, 116, 104,  32, 120, 116, 101, 114, 109,  32,  50,  53,  54,  45,  99, 111, 108, 111, 114, 115,   0,   1,   1,   0,   0,   1,   0,   0,   0,   0,   1,   0,   0,   0,   1,   1,   0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,   0,   0,   1,   0,  -1,  -1,   8,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   0,   1,  -1, 127,  22,   0,   0,   0,   4,   0,   6,   0,   8,   0,  25,   0,  30,   0,  37,   0,  41,   0,  45,   0,  -1,  -1,  56,   0,  73,   0,  76,   0,  80,   0,  87,   0,  -1,  -1,  89,   0,  96,   0,  -1,  -1, 100,   0,  -1,  -1, 103,   0, 107,   0, 111,   0,  -1,  -1, 117,   0, 119,   0, 124,   0,-127,   0,  -1,  -1,  -1,  -1,-120,   0,  -1,  -1,  -1,  -1,-115,   0,-110,   0,-105,   0,-100,   0, -91,   0, -89,   0, -84,   0,  -1,  -1, -73,   0, -68,   0, -62,   0, -56,   0,  -1,  -1, -38,   0,  -1,  -1, -36,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -2,   0,  -1,  -1,   2,   1,  -1,  -1,  -1,  -1,  -1,  -1,   4,   1,  -1,  -1,   9,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  13,   1,  19,   1,  25,   1,  31,   1,  37,   1,  43,   1,  49,   1,  55,   1,  61,   1,  67,   1,  73,   1,  78,   1,  -1,  -1,  83,   1,  -1,  -1,  87,   1,  92,   1,  97,   1, 101,   1, 105,   1,  -1,  -1, 109,   1, 113,   1, 121,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,-127,   1,  -1,  -1,-124,   1,-115,   1,-106,   1,  -1,  -1, -97,   1, -88,   1, -79,   1, -70,   1, -61,   1, -52,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -43,   1,  -1,  -1,  -1,  -1, -10,   1,  -7,   1,   4,   2,   7,   2,   9,   2,  12,   2,  84,   2,  -1,  -1,  87,   2,  89,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  94,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  98,   2,  -1,  -1,-107,   2,  -1,  -1,  -1,  -1,-103,   2, -97,   2,  -1,  -1,  -1,  -1, -91,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -84,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -79,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -77,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -73,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -69,   2, -63,   2, -57,   2, -51,   2, -45,   2, -39,   2, -33,   2, -27,   2, -21,   2, -15,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -9,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -4,   2,   7,   3,  12,   3,  18,   3,  22,   3,  31,   3,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  35,   3,  -1,  -1,  -1,  -1,  -1,  -1,  39,   3, 102,   3,  -1,  -1,  -1,  -1,  -1,  -1, -90,   3, -84,   3, -78,   3,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -72,   3,-118,   4,-112,   4,  27,  91,  90,   0,   7,   0,  13,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100, 114,   0,  27,  91,  51, 103,   0,  27,  91,  72,  27,  91,  74,   0,  27,  91,  75,   0,  27,  91,  74,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  71,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100,  72,   0,  27,  68,   0,  27,  91,  72,   0,  27,  91,  63,  50,  53, 108,   0,   8,   0,  27,  91,  63,  50,  53, 104,   0,  27,  91,  67,   0,  27,  77,   0,  27,  91,  80,   0,  27,  91,  77,   0,  27,  93,  48,  59,   7,   0,  14,   0,  27,  91,  53, 109,   0,  27,  91,  49, 109,   0,  27,  91,  63,  52,  55, 104,   0,  27,  91,  52, 104,   0,  27,  91,  55, 109,   0,  27,  91,  55, 109,   0,  27,  91,  52, 109,   0,  27,  91,  37, 112,  49,  37, 100,  88,   0,  15,   0,  27,  91, 109,  15,   0,  27,  91,  50,  74,  27,  91,  63,  52,  55, 108,   0,  27,  91,  52, 108,   0,  27,  91,  50,  55, 109,   0,  27,  91,  50,  52, 109,   0,  27,  91,  63,  53, 104,  36,  60,  49,  48,  48,  47,  62,  27,  91,  63,  53, 108,   0,   7,   0,  27,  55,  27,  91, 114,  27,  91, 109,  27,  91,  63,  55, 104,  27,  91,  63,  49,  59,  52,  59,  54, 108,  27,  91,  52, 108,  27,  56,  27,  62,  27,  93,  82,   0,  27,  91,  76,   0, 127,   0,  27,  91,  51, 126,   0,  27,  79,  66,   0,  27,  91,  49,  49, 126,   0,  27,  91,  50,  49, 126,   0,  27,  91,  49,  50, 126,   0,  27,  91,  49,  51, 126,   0,  27,  91,  49,  52, 126,   0,  27,  91,  49,  53, 126,   0,  27,  91,  49,  55, 126,   0,  27,  91,  49,  56, 126,   0,  27,  91,  49,  57, 126,   0,  27,  91,  50,  48, 126,   0,  27,  91,  49, 126,   0,  27,  91,  50, 126,   0,  27,  79,  68,   0,  27,  91,  54, 126,   0,  27,  91,  53, 126,   0,  27,  79,  67,   0,  27,  91,  66,   0,  27,  91,  65,   0,  27,  79,  65,   0,  27,  91,  63,  49, 108,  27,  62,   0,  27,  91,  63,  49, 104,  27,  61,   0,  13,  10,   0,  27,  91,  37, 112,  49,  37, 100,  80,   0,  27,  91,  37, 112,  49,  37, 100,  77,   0,  27,  91,  37, 112,  49,  37, 100,  66,   0,  27,  91,  37, 112,  49,  37, 100,  83,   0,  27,  91,  37, 112,  49,  37, 100,  76,   0,  27,  91,  37, 112,  49,  37, 100,  68,   0,  27,  91,  37, 112,  49,  37, 100,  67,   0,  27,  91,  37, 112,  49,  37, 100,  84,   0,  27,  91,  37, 112,  49,  37, 100,  65,   0,  27,  60,  27,  91,  34, 112,  27,  91,  53,  48,  59,  54,  34, 112,  27,  99,  27,  91,  63,  51, 108,  27,  93,  82,  27,  91,  63,  49,  48,  48,  48, 108,   0,  27,  56,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100, 100,   0,  27,  55,   0,  10,   0,  27,  77,   0,  27,  91,  48,  37,  63,  37, 112,  49,  37, 112,  54,  37, 124,  37, 116,  59,  49,  37,  59,  37,  63,  37, 112,  50,  37, 116,  59,  52,  37,  59,  37,  63,  37, 112,  49,  37, 112,  51,  37, 124,  37, 116,  59,  55,  37,  59,  37,  63,  37, 112,  52,  37, 116,  59,  53,  37,  59, 109,  37,  63,  37, 112,  57,  37, 116,  14,  37, 101,  15,  37,  59,   0,  27,  72,   0,   9,   0,  27,  93,  48,  59,   0,  27,  91,  71,   0,  96,  96,  97,  97, 102, 102, 103, 103, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126,   0,  27,  91,  90,   0,  27,  91,  63,  55, 104,   0,  27,  91,  63,  55, 108,   0,  27,  40,  66,  27,  41,  48,   0,  27,  91,  52, 126,   0,  26,   0,  27,  91,  68,   0,  27,  91,  67,   0,  27,  91,  50,  51, 126,   0,  27,  91,  50,  52, 126,   0,  27,  91,  50,  53, 126,   0,  27,  91,  50,  54, 126,   0,  27,  91,  50,  56, 126,   0,  27,  91,  50,  57, 126,   0,  27,  91,  51,  49, 126,   0,  27,  91,  51,  50, 126,   0,  27,  91,  51,  51, 126,   0,  27,  91,  51,  52, 126,   0,  27,  91,  49,  75,   0,  27,  91,  37, 105,  37, 100,  59,  37, 100,  82,   0,  27,  91,  54, 110,   0,  27,  91,  63,  54,  99,   0,  27,  91,  99,   0,  27,  91,  51,  57,  59,  52,  57, 109,   0,  27,  93,  82,   0,  27,  91,  77,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  51,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  57,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  51,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  52,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  49,  48,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  52,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0,  27,  91,  49,  48, 109,   0,  27,  91,  49,  49, 109,   0,  27,  91,  49,  50, 109,   0,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  61,  37, 116,  27,  37,  37,  71, -30,-105,-104,  27,  37,  37,  64,  37, 101,  37, 112,  49,  37, 123,  49,  48, 125,  37,  61,  37, 116,  27,  37,  37,  71, -30,-105,-103,  27,  37,  37,  64,  37, 101,  37, 112,  49,  37, 123,  49,  50, 125,  37,  61,  37, 116,  27,  37,  37,  71, -30,-103,-128,  27,  37,  37,  64,  37, 101,  37, 112,  49,  37, 123,  49,  51, 125,  37,  61,  37, 116,  27,  37,  37,  71, -30,-103, -86,  27,  37,  37,  64,  37, 101,  37, 112,  49,  37, 123,  49,  52, 125,  37,  61,  37, 116,  27,  37,  37,  71, -30,-103, -85,  27,  37,  37,  64,  37, 101,  37, 112,  49,  37, 123,  49,  53, 125,  37,  61,  37, 116,  27,  37,  37,  71, -30,-104, -68,  27,  37,  37,  64,  37, 101,  37, 112,  49,  37, 123,  50,  55, 125,  37,  61,  37, 116,  27,  37,  37,  71, -30,-122,-112,  27,  37,  37,  64,  37, 101,  37, 112,  49,  37, 123,  49,  53,  53, 125,  37,  61,  37, 116,  27,  37,  37,  71, -32,-126, -94,  27,  37,  37,  64,  37, 101,  37, 112,  49,  37,  99,  37,  59,   0,  27,  91,  49,  49, 109,   0,  27,  91,  49,  48, 109,   0 -}; -// Taken from Dickey ncurses terminfo.src dated 2017-04-22. -static const signed char interix_8colour_terminfo[] = { -  26,   1,  82,   0,  15,   0,  16,   0, 105,   1, 123,   2, 105, 110, 116, 101, 114, 105, 120, 124, 111, 112, 101, 110, 110, 116, 124, 111, 112, 101, 110, 110, 116,  45,  50,  53, 124, 110, 116,  99, 111, 110, 115, 111, 108, 101, 124, 110, 116,  99, 111, 110, 115, 111, 108, 101,  45,  50,  53, 124,  79, 112, 101, 110,  78,  84,  45, 116, 101, 114, 109,  32,  99, 111, 109, 112,  97, 116, 105,  98, 108, 101,  32, 119, 105, 116, 104,  32,  99, 111, 108, 111, 114,   0,   1,   1,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   0,  80,   0,  -1,  -1,  25,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   8,   0,  64,   0,   3,   0,   0,   0,   4,   0,  -1,  -1,  -1,  -1,  -1,  -1,   6,   0,  11,   0,  15,   0,  -1,  -1,  -1,  -1,  19,   0,  36,   0,  38,   0,  -1,  -1,  42,   0,  -1,  -1,  -1,  -1,  46,   0,  50,   0,  54,   0,  -1,  -1,  -1,  -1,  58,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  62,   0,  67,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  75,   0,  80,   0,  85,   0,  -1,  -1,  -1,  -1,  90,   0,  95,   0,  -1,  -1,  -1,  -1, 107,   0, 111,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 115,   0,  -1,  -1, 119,   0,  -1,  -1,  -1,  -1,  -1,  -1, 121,   0,  -1,  -1, 125,   0,  -1,  -1,  -1,  -1,  -1,  -1,-127,   0,-123,   0,-119,   0,-115,   0,-111,   0,-107,   0,-103,   0, -99,   0, -95,   0, -91,   0, -87,   0,  -1,  -1, -83,   0,  -1,  -1, -79,   0, -75,   0, -71,   0, -67,   0, -63,   0,  -1,  -1,  -1,  -1,  -1,  -1, -59,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -55,   0,  -1,  -1,  -1,  -1, -52,   0, -43,   0,  -1,  -1, -34,   0, -25,   0, -16,   0,  -7,   0,   2,   1,  11,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  20,   1,  -1,  -1,  -1,  -1,  -1,  -1,  23,   1,  -1,  -1,  27,   1,  31,   1,  35,   1,  -1,  -1,  -1,  -1,  -1,  -1,  39,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  41,   1,  -1,  -1, 104,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 108,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 112,   1, 116,   1, 120,   1, 124,   1,-128,   1,-124,   1,-120,   1,-116,   1,-112,   1,-108,   1,-104,   1,-100,   1, -96,   1, -92,   1, -88,   1, -84,   1, -80,   1, -76,   1, -72,   1, -68,   1, -64,   1, -60,   1, -56,   1, -52,   1, -48,   1, -44,   1, -40,   1, -36,   1, -32,   1, -28,   1, -24,   1, -20,   1, -16,   1, -12,   1,  -8,   1,  -4,   1,   0,   2,   4,   2,   8,   2,  12,   2,  16,   2,  20,   2,  24,   2,  28,   2,  32,   2,  36,   2,  40,   2,  44,   2,  48,   2,  52,   2,  56,   2,  60,   2,  64,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  68,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  72,   2,  88,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 103,   2, 113,   2,  27,  91,  90,   0,   7,   0,  27,  91,  50,  74,   0,  27,  91,  75,   0,  27,  91,  74,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100,  72,   0,  10,   0,  27,  91,  72,   0,  27,  91,  68,   0,  27,  91,  67,   0,  27,  91,  85,   0,  27,  91,  65,   0,  27,  91,  77,   0,  27,  91,  49, 109,   0,  27,  91, 115,  27,  91,  49,  98,   0,  27,  91,  55, 109,   0,  27,  91,  55, 109,   0,  27,  91,  52, 109,   0,  27,  91,  48, 109,   0,  27,  91,  50,  98,  27,  91, 117,  13,  27,  91,  75,   0,  27,  91, 109,   0,  27,  91, 109,   0,  27,  91,  76,   0,   8,   0,  27,  91,  77,   0,  27,  91,  66,   0,  27,  70,  65,   0,  27,  70,  49,   0,  27,  70,  65,   0,  27,  70,  50,   0,  27,  70,  51,   0,  27,  70,  52,   0,  27,  70,  53,   0,  27,  70,  54,   0,  27,  70,  55,   0,  27,  70,  56,   0,  27,  70,  57,   0,  27,  91,  76,   0,  27,  91,  68,   0,  27,  91,  85,   0,  27,  91,  84,   0,  27,  91,  83,   0,  27,  91,  67,   0,  27,  91,  65,   0,  13,  10,   0,  27,  91,  37, 112,  49,  37, 100,  77,   0,  27,  91,  37, 112,  49,  37, 100,  66,   0,  27,  91,  37, 112,  49,  37, 100,  83,   0,  27,  91,  37, 112,  49,  37, 100,  76,   0,  27,  91,  37, 112,  49,  37, 100,  68,   0,  27,  91,  37, 112,  49,  37, 100,  67,   0,  27,  91,  37, 112,  49,  37, 100,  84,   0,  27,  91,  37, 112,  49,  37, 100,  65,   0,  27,  99,   0,  27,  91, 117,   0,  27,  91, 115,   0,  27,  91,  83,   0,  27,  91,  84,   0,   9,   0,  43,  16,  44,  17,  45,  24,  46,  25,  48, -37,  96,   4,  97, -79, 102,  -8, 103, -15, 104, -80, 106, -39, 107, -65, 108, -38, 109, -64, 110, -59, 111, 126, 112, -60, 113, -60, 114, -60, 115,  95, 116, -61, 117, -76, 118, -63, 119, -62, 120, -77, 121, -13, 122, -14, 123, -29, 124, -40, 125,-100, 126,  -2,   0,  27,  91,  90,   0,  27,  91,  85,   0,  27,  70,  66,   0,  27,  70,  67,   0,  27,  70,  68,   0,  27,  70,  69,   0,  27,  70,  70,   0,  27,  70,  71,   0,  27,  70,  72,   0,  27,  70,  73,   0,  27,  70,  74,   0,  27,  70,  75,   0,  27,  70,  76,   0,  27,  70,  77,   0,  27,  70,  78,   0,  27,  70,  79,   0,  27,  70,  80,   0,  27,  70,  81,   0,  27,  70,  82,   0,  27,  70,  83,   0,  27,  70,  84,   0,  27,  70,  85,   0,  27,  70,  86,   0,  27,  70,  87,   0,  27,  70,  88,   0,  27,  70,  89,   0,  27,  70,  90,   0,  27,  70,  97,   0,  27,  70,  98,   0,  27,  70,  99,   0,  27,  70, 100,   0,  27,  70, 101,   0,  27,  70, 102,   0,  27,  70, 103,   0,  27,  70, 104,   0,  27,  70, 105,   0,  27,  70, 106,   0,  27,  70, 107,   0,  27,  70, 109,   0,  27,  70, 110,   0,  27,  70, 111,   0,  27,  70, 112,   0,  27,  70, 113,   0,  27,  70, 114,   0,  27,  70, 115,   0,  27,  70, 116,   0,  27,  70, 117,   0,  27,  70, 118,   0,  27,  70, 119,   0,  27,  70, 120,   0,  27,  70, 121,   0,  27,  70, 122,   0,  27,  70,  43,   0,  27,  70,  45,   0,  27,  70,  12,   0,  27,  91, 109,   0,  27,  91,  37, 112,  49,  37, 123,  51,  48, 125,  37,  43,  37, 100, 109,   0,  27,  91,  37, 112,  49,  37,  39,  40,  39,  37,  43,  37, 100, 109,   0,  27,  91,  51,  37, 112,  49,  37, 100, 109,   0,  27,  91,  52,  37, 112,  49,  37, 100, 109,   0 -}; -// Taken from Dickey ncurses terminfo.src dated 2017-04-22. -// This is a 256-colour terminfo description that lacks true-colour -// capabilities that stterm actually has. -static const signed char st_256colour_terminfo[] = { -  26,   1,  55,   0,  29,   0,  15,   0, 105,   1, 117,   5, 115, 116,  45,  50,  53,  54,  99, 111, 108, 111, 114, 124, 115, 116, 116, 101, 114, 109,  45,  50,  53,  54,  99, 111, 108, 111, 114, 124, 115, 105, 109, 112, 108, 101, 116, 101, 114, 109,  32, 119, 105, 116, 104,  32,  50,  53,  54,  32,  99, 111, 108, 111, 114, 115,   0,   0,   1,   0,   0,   1,   0,   0,   0,   0,   1,   0,   0,   0,   1,   1,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   0,   0,   1,  80,   0,   8,   0,  24,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   0,   1,  -1, 127,   0,   0,   4,   0,   6,   0,   8,   0,  25,   0,  30,   0,  38,   0,  42,   0,  46,   0,  -1,  -1,  57,   0,  74,   0,  76,   0,  80,   0,  87,   0,  -1,  -1,  89,   0, 102,   0,  -1,  -1, 106,   0, 110,   0, 117,   0, 121,   0,  -1,  -1,  -1,  -1, 125,   0,-127,   0,-122,   0,-117,   0,  -1,  -1,  -1,  -1,-108,   0,-103,   0,  -1,  -1, -98,   0, -93,   0, -88,   0, -83,   0, -74,   0, -70,   0, -65,   0,  -1,  -1, -56,   0, -51,   0, -45,   0, -39,   0,  -1,  -1, -21,   0,  -1,  -1, -19,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -4,   0,  -1,  -1,   0,   1,  -1,  -1,   2,   1,  -1,  -1,   9,   1,  14,   1,  21,   1,  25,   1,  32,   1,  39,   1,  -1,  -1,  46,   1,  50,   1,  56,   1,  60,   1,  64,   1,  68,   1,  74,   1,  80,   1,  86,   1,  92,   1,  98,   1, 103,   1, 108,   1, 115,   1,  -1,  -1, 119,   1, 124,   1,-127,   1,-123,   1,-116,   1,  -1,  -1,-109,   1,-105,   1, -97,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -89,   1, -80,   1, -71,   1, -62,   1, -53,   1, -44,   1, -35,   1, -26,   1,  -1,  -1, -17,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -8,   1,  -4,   1,   1,   2,  -1,  -1,   6,   2,   9,   2,  -1,  -1,  -1,  -1,  24,   2,  27,   2,  38,   2,  41,   2,  43,   2,  46,   2,-128,   2,  -1,  -1,-125,   2,-123,   2,  -1,  -1,  -1,  -1,  -1,  -1,-118,   2,-113,   2,-108,   2,-104,   2, -99,   2,  -1,  -1,  -1,  -1, -94,   2,  -1,  -1, -29,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -25,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -21,   2, -16,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -12,   2,  -1,  -1,  -1,  -1,  -5,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   2,   3,   9,   3,  16,   3,  -1,  -1,  -1,  -1,  23,   3,  -1,  -1,  30,   3,  -1,  -1,  -1,  -1,  -1,  -1,  37,   3,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  44,   3,  50,   3,  56,   3,  63,   3,  70,   3,  77,   3,  84,   3,  92,   3, 100,   3, 108,   3, 116,   3, 124,   3,-124,   3,-116,   3,-108,   3,-101,   3, -94,   3, -87,   3, -80,   3, -72,   3, -64,   3, -56,   3, -48,   3, -40,   3, -32,   3, -24,   3, -16,   3,  -9,   3,  -2,   3,   5,   4,  12,   4,  20,   4,  28,   4,  36,   4,  44,   4,  52,   4,  60,   4,  68,   4,  76,   4,  83,   4,  90,   4,  97,   4, 104,   4, 112,   4, 120,   4,-128,   4,-120,   4,-112,   4,-104,   4, -96,   4, -88,   4, -81,   4, -74,   4, -67,   4,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -62,   4, -51,   4, -46,   4, -38,   4, -34,   4,  -2,  -1,  -2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -25,   4,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -20,   4,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -14,   4,  -1,  -1,  -1,  -1,  -1,  -1, -10,   4,  53,   5,  27,  91,  90,   0,   7,   0,  13,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100, 114,   0,  27,  91,  51, 103,   0,  27,  91,  72,  27,  91,  50,  74,   0,  27,  91,  75,   0,  27,  91,  74,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  71,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100,  72,   0,  10,   0,  27,  91,  72,   0,  27,  91,  63,  50,  53, 108,   0,   8,   0,  27,  91,  63,  49,  50, 108,  27,  91,  63,  50,  53, 104,   0,  27,  91,  67,   0,  27,  91,  65,   0,  27,  91,  63,  50,  53, 104,   0,  27,  91,  80,   0,  27,  91,  77,   0,  27,  40,  48,   0,  27,  91,  53, 109,   0,  27,  91,  49, 109,   0,  27,  91,  63,  49,  48,  52,  57, 104,   0,  27,  91,  52, 104,   0,  27,  91,  56, 109,   0,  27,  91,  55, 109,   0,  27,  91,  55, 109,   0,  27,  91,  52, 109,   0,  27,  91,  37, 112,  49,  37, 100,  88,   0,  27,  40,  66,   0,  27,  91,  48, 109,   0,  27,  91,  63,  49,  48,  52,  57, 108,   0,  27,  91,  52, 108,   0,  27,  91,  50,  55, 109,   0,  27,  91,  50,  52, 109,   0,  27,  91,  63,  53, 104,  36,  60,  49,  48,  48,  47,  62,  27,  91,  63,  53, 108,   0,   7,   0,  27,  91,  52, 108,  27,  62,  27,  91,  63,  49,  48,  51,  52, 108,   0,  27,  91,  76,   0, 127,   0,  27,  91,  51,  59,  53, 126,   0,  27,  91,  51, 126,   0,  27,  91,  51,  59,  50, 126,   0,  27,  79,  66,   0,  27,  91,  50,  59,  50, 126,   0,  27,  91,  49,  59,  50,  70,   0,  27,  91,  49,  59,  53,  70,   0,  27,  79,  80,   0,  27,  91,  50,  49, 126,   0,  27,  79,  81,   0,  27,  79,  82,   0,  27,  79,  83,   0,  27,  91,  49,  53, 126,   0,  27,  91,  49,  55, 126,   0,  27,  91,  49,  56, 126,   0,  27,  91,  49,  57, 126,   0,  27,  91,  50,  48, 126,   0,  27,  91,  49, 126,   0,  27,  91,  50, 126,   0,  27,  91,  50,  59,  53, 126,   0,  27,  79,  68,   0,  27,  91,  54, 126,   0,  27,  91,  53, 126,   0,  27,  79,  67,   0,  27,  91,  49,  59,  50,  66,   0,  27,  91,  49,  59,  50,  65,   0,  27,  79,  65,   0,  27,  91,  63,  49, 108,  27,  62,   0,  27,  91,  63,  49, 104,  27,  61,   0,  27,  91,  37, 112,  49,  37, 100,  80,   0,  27,  91,  37, 112,  49,  37, 100,  77,   0,  27,  91,  37, 112,  49,  37, 100,  66,   0,  27,  91,  37, 112,  49,  37, 100,  64,   0,  27,  91,  37, 112,  49,  37, 100,  83,   0,  27,  91,  37, 112,  49,  37, 100,  76,   0,  27,  91,  37, 112,  49,  37, 100,  68,   0,  27,  91,  37, 112,  49,  37, 100,  67,   0,  27,  91,  37, 112,  49,  37, 100,  65,   0,  27,  91, 105,   0,  27,  91,  52, 105,   0,  27,  91,  53, 105,   0,  27,  99,   0,  27,  91,  52, 108,  27,  62,  27,  91,  63,  49,  48,  51,  52, 108,   0,  27,  56,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100, 100,   0,  27,  55,   0,  10,   0,  27,  77,   0,  37,  63,  37, 112,  57,  37, 116,  27,  40,  48,  37, 101,  27,  40,  66,  37,  59,  27,  91,  48,  37,  63,  37, 112,  54,  37, 116,  59,  49,  37,  59,  37,  63,  37, 112,  50,  37, 116,  59,  52,  37,  59,  37,  63,  37, 112,  49,  37, 112,  51,  37, 124,  37, 116,  59,  55,  37,  59,  37,  63,  37, 112,  52,  37, 116,  59,  53,  37,  59,  37,  63,  37, 112,  55,  37, 116,  59,  56,  37,  59, 109,   0,  27,  72,   0,   9,   0,  27,  93,  48,  59,   0,  27,  91,  49, 126,   0,  27,  91,  53, 126,   0,  27,  79, 117,   0,  27,  91,  52, 126,   0,  27,  91,  54, 126,   0,  43,  67,  44,  68,  45,  65,  46,  66,  48,  69,  96,  96,  97,  97, 102, 102, 103, 103, 104,  70, 105,  71, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126,   0,  27,  91,  90,   0,  27,  41,  48,   0,  27,  91,  52, 126,   0,  27,  79,  77,   0,  27,  91,  51,  59,  50, 126,   0,  27,  91,  49,  59,  50,  70,   0,  27,  91,  49,  59,  50,  72,   0,  27,  91,  50,  59,  50, 126,   0,  27,  91,  49,  59,  50,  68,   0,  27,  91,  54,  59,  50, 126,   0,  27,  91,  53,  59,  50, 126,   0,  27,  91,  49,  59,  50,  67,   0,  27,  91,  50,  51, 126,   0,  27,  91,  50,  52, 126,   0,  27,  91,  49,  59,  50,  80,   0,  27,  91,  49,  59,  50,  81,   0,  27,  91,  49,  59,  50,  82,   0,  27,  91,  49,  59,  50,  83,   0,  27,  91,  49,  53,  59,  50, 126,   0,  27,  91,  49,  55,  59,  50, 126,   0,  27,  91,  49,  56,  59,  50, 126,   0,  27,  91,  49,  57,  59,  50, 126,   0,  27,  91,  50,  48,  59,  50, 126,   0,  27,  91,  50,  49,  59,  50, 126,   0,  27,  91,  50,  51,  59,  50, 126,   0,  27,  91,  50,  52,  59,  50, 126,   0,  27,  91,  49,  59,  53,  80,   0,  27,  91,  49,  59,  53,  81,   0,  27,  91,  49,  59,  53,  82,   0,  27,  91,  49,  59,  53,  83,   0,  27,  91,  49,  53,  59,  53, 126,   0,  27,  91,  49,  55,  59,  53, 126,   0,  27,  91,  49,  56,  59,  53, 126,   0,  27,  91,  49,  57,  59,  53, 126,   0,  27,  91,  50,  48,  59,  53, 126,   0,  27,  91,  50,  49,  59,  53, 126,   0,  27,  91,  50,  51,  59,  53, 126,   0,  27,  91,  50,  52,  59,  53, 126,   0,  27,  91,  49,  59,  54,  80,   0,  27,  91,  49,  59,  54,  81,   0,  27,  91,  49,  59,  54,  82,   0,  27,  91,  49,  59,  54,  83,   0,  27,  91,  49,  53,  59,  54, 126,   0,  27,  91,  49,  55,  59,  54, 126,   0,  27,  91,  49,  56,  59,  54, 126,   0,  27,  91,  49,  57,  59,  54, 126,   0,  27,  91,  50,  48,  59,  54, 126,   0,  27,  91,  50,  49,  59,  54, 126,   0,  27,  91,  50,  51,  59,  54, 126,   0,  27,  91,  50,  52,  59,  54, 126,   0,  27,  91,  49,  59,  51,  80,   0,  27,  91,  49,  59,  51,  81,   0,  27,  91,  49,  59,  51,  82,   0,  27,  91,  49,  59,  51,  83,   0,  27,  91,  49,  53,  59,  51, 126,   0,  27,  91,  49,  55,  59,  51, 126,   0,  27,  91,  49,  56,  59,  51, 126,   0,  27,  91,  49,  57,  59,  51, 126,   0,  27,  91,  50,  48,  59,  51, 126,   0,  27,  91,  50,  49,  59,  51, 126,   0,  27,  91,  50,  51,  59,  51, 126,   0,  27,  91,  50,  52,  59,  51, 126,   0,  27,  91,  49,  59,  52,  80,   0,  27,  91,  49,  59,  52,  81,   0,  27,  91,  49,  59,  52,  82,   0,  27,  91,  49,  75,   0,  27,  91,  37, 105,  37, 100,  59,  37, 100,  82,   0,  27,  91,  54, 110,   0,  27,  91,  63,  49,  59,  50,  99,   0,  27,  91,  99,   0,  27,  91,  51,  57,  59,  52,  57, 109,   0,  27,  91,  51, 109,   0,  27,  91,  50,  51, 109,   0,  27,  91,  77,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  51,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  57,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  51,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0,  27,  91,  37,  63,  37, 112,  49,  37, 123,  56, 125,  37,  60,  37, 116,  52,  37, 112,  49,  37, 100,  37, 101,  37, 112,  49,  37, 123,  49,  54, 125,  37,  60,  37, 116,  49,  48,  37, 112,  49,  37, 123,  56, 125,  37,  45,  37, 100,  37, 101,  52,  56,  59,  53,  59,  37, 112,  49,  37, 100,  37,  59, 109,   0 -}; -// Taken from Dickey ncurses terminfo.src dated 2017-04-22. -// This is a 256-colour terminfo description that lacks true-colour -// capabilities that gnome actually has. -static const signed char vte_256colour_terminfo[] = { -  26,    1,   52,    0,   29,    0,   15,    0,  105,    1,  -55,    5,  103,  110,  111,  109, 101,   45,   50,   53,   54,   99,  111,  108,  111,  114,  124,   71,   78,   79,   77,   69,  32,   84,  101,  114,  109,  105,  110,   97,  108,   32,  119,  105,  116,  104,   32,  120, 116,  101,  114,  109,   32,   50,   53,   54,   45,   99,  111,  108,  111,  114,  115,    0,   0,    1,    0,    0,    1,    0,    0,    0,    0,    0,    0,    0,    0,    1,    1,    0,   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    1,    1,    0,   80,    0,   8,    0,   24,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,    1,   -1,  127,    0,    0,    4,    0,   6,    0,    8,    0,   25,    0,   30,    0,   38,    0,   42,    0,   46,    0,   -1,   -1,  57,    0,   74,    0,   76,    0,   80,    0,   87,    0,   -1,   -1,   89,    0,   96,    0,  -1,   -1,  100,    0,   -1,   -1,  104,    0,  108,    0,   -1,   -1,   -1,   -1,  112,    0,  -1,   -1,  114,    0,  119,    0,   -1,   -1, -128,    0, -123,    0, -118,    0,   -1,   -1,-113,    0, -108,    0, -103,    0,  -98,    0,  -89,    0,  -87,    0,  -81,    0,   -1,   -1, -68,    0,  -63,    0,  -57,    0,  -51,    0,   -1,   -1,   -1,   -1,   -1,   -1,  -33,    0,  -1,   -1,   -1,   -1,   -1,   -1,    0,    1,   -1,   -1,    4,    1,   -1,   -1,   -1,   -1,  -1,   -1,    6,    1,   -1,   -1,   11,    1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  15,    1,   19,    1,   25,    1,   29,    1,   33,    1,   37,    1,   43,    1,   49,    1,  55,    1,   61,    1,   67,    1,   71,    1,   -1,   -1,   76,    1,   -1,   -1,   80,    1,  85,    1,   90,    1,   94,    1,  101,    1,   -1,   -1,  108,    1,  112,    1,  120,    1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, -128,    1,-119,    1, -110,    1, -101,    1,  -92,    1,  -83,    1,  -74,    1,  -65,    1,  -56,    1, -47,    1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, -38,    1,  -35,    1,   -1,   -1,   -1,   -1,   16,    2,   19,    2,   30,    2,   33,    2,  35,    2,   38,    2,  116,    2,   -1,   -1,  119,    2,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,  121,    2,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1, 125,    2,   -1,   -1,  -78,    2,   -1,   -1,   -1,   -1,  -74,    2,  -68,    2,   -1,   -1,  -1,   -1,  -62,    2,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,  -58,    2,  -54,    2,   -1,   -1,  -50,    2,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -45,    2,   -1,   -1,  -38,    2, -33,    2,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -26,    2,  -19,    2,  -12,    2,  -1,   -1,   -1,   -1,   -5,    2,   -1,   -1,    2,    3,   -1,   -1,   -1,   -1,   -1,   -1,   9,    3,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   16,    3,   22,    3,  28,    3,   35,    3,   42,    3,   49,    3,   56,    3,   64,    3,   72,    3,   80,    3,  88,    3,   96,    3,  104,    3,  112,    3,  120,    3,  127,    3, -122,    3, -115,    3,-108,    3, -100,    3,  -92,    3,  -84,    3,  -76,    3,  -68,    3,  -60,    3,  -52,    3, -44,    3,  -37,    3,  -30,    3,  -23,    3,  -16,    3,   -8,    3,    0,    4,    8,    4,  16,    4,   24,    4,   32,    4,   40,    4,   48,    4,   55,    4,   62,    4,   69,    4,  76,    4,   84,    4,   92,    4,  100,    4,  108,    4,  116,    4,  124,    4, -124,    4,-116,    4, -109,    4, -102,    4,  -95,    4,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,  -90,    4,  -79,    4,  -74,    4,  -55,    4,  -51,    4, -42,    4,  -35,    4,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,    5,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   64,    5,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  -1,   -1,   70,    5,   -1,   -1,   -1,   -1,   -1,   -1,   74,    5, -119,    5,   27,   91,  90,    0,    7,    0,   13,    0,   27,   91,   37,  105,   37,  112,   49,   37,  100,   59,  37,  112,   50,   37,  100,  114,    0,   27,   91,   51,  103,    0,   27,   91,   72,   27,  91,   50,   74,    0,   27,   91,   75,    0,   27,   91,   74,    0,   27,   91,   37,  105,  37,  112,   49,   37,  100,   71,    0,   27,   91,   37,  105,   37,  112,   49,   37,  100,  59,   37,  112,   50,   37,  100,   72,    0,   10,    0,   27,   91,   72,    0,   27,   91,  63,   50,   53,  108,    0,    8,    0,   27,   91,   63,   50,   53,  104,    0,   27,   91,  67,    0,   27,   91,   65,    0,   27,   91,   80,    0,   27,   91,   77,    0,   14,    0,  27,   91,   49,  109,    0,   27,   55,   27,   91,   63,   52,   55,  104,    0,   27,   91,  50,  109,    0,   27,   91,   52,  104,    0,   27,   91,   56,  109,    0,   27,   91,   55, 109,    0,   27,   91,   55,  109,    0,   27,   91,   52,  109,    0,   27,   91,   37,  112,  49,   37,  100,   88,    0,   15,    0,   27,   91,   48,  109,   15,    0,   27,   91,   50,  74,   27,   91,   63,   52,   55,  108,   27,   56,    0,   27,   91,   52,  108,    0,   27,  91,   50,   55,  109,    0,   27,   91,   50,   52,  109,    0,   27,   91,   63,   53,  104,  36,   60,   49,   48,   48,   47,   62,   27,   91,   63,   53,  108,    0,   27,   91,  109,  27,   91,   63,   55,  104,   27,   91,   52,  108,   27,   62,   27,   55,   27,   91,  114,  27,   91,   63,   49,   59,   51,   59,   52,   59,   54,  108,   27,   56,    0,   27,   91,  76,    0,  127,    0,   27,   91,   51,  126,    0,   27,   79,   66,    0,   27,   79,   80,   0,   27,   91,   50,   49,  126,    0,   27,   79,   81,    0,   27,   79,   82,    0,   27,  79,   83,    0,   27,   91,   49,   53,  126,    0,   27,   91,   49,   55,  126,    0,   27,  91,   49,   56,  126,    0,   27,   91,   49,   57,  126,    0,   27,   91,   50,   48,  126,   0,   27,   79,   72,    0,   27,   91,   50,  126,    0,   27,   79,   68,    0,   27,   91,  54,  126,    0,   27,   91,   53,  126,    0,   27,   79,   67,    0,   27,   91,   49,   59,  50,   66,    0,   27,   91,   49,   59,   50,   65,    0,   27,   79,   65,    0,   27,   91,  63,   49,  108,   27,   62,    0,   27,   91,   63,   49,  104,   27,   61,    0,   27,   91,  37,  112,   49,   37,  100,   80,    0,   27,   91,   37,  112,   49,   37,  100,   77,    0,  27,   91,   37,  112,   49,   37,  100,   66,    0,   27,   91,   37,  112,   49,   37,  100,  64,    0,   27,   91,   37,  112,   49,   37,  100,   83,    0,   27,   91,   37,  112,   49,  37,  100,   76,    0,   27,   91,   37,  112,   49,   37,  100,   68,    0,   27,   91,   37, 112,   49,   37,  100,   67,    0,   27,   91,   37,  112,   49,   37,  100,   84,    0,   27,  91,   37,  112,   49,   37,  100,   65,    0,   27,   99,    0,   27,   55,   27,   91,  114,  27,   56,   27,   91,  109,   27,   91,   63,   55,  104,   27,   91,   33,  112,   27,   91,  63,   49,   59,   51,   59,   52,   59,   54,  108,   27,   91,   52,  108,   27,   62,   27,  91,   63,   49,   48,   48,   48,  108,   27,   91,   63,   50,   53,  104,    0,   27,   56,   0,   27,   91,   37,  105,   37,  112,   49,   37,  100,  100,    0,   27,   55,    0,   10,   0,   27,   77,    0,   27,   91,   48,   37,   63,   37,  112,   54,   37,  116,   59,   49,  37,   59,   37,   63,   37,  112,   50,   37,  116,   59,   52,   37,   59,   37,   63,   37, 112,   53,   37,  116,   59,   50,   37,   59,   37,   63,   37,  112,   55,   37,  116,   59,  56,   37,   59,   37,   63,   37,  112,   49,   37,  112,   51,   37,  124,   37,  116,   59,  55,   37,   59,  109,   37,   63,   37,  112,   57,   37,  116,   14,   37,  101,   15,   37,  59,    0,   27,   72,    0,    9,    0,   27,   91,   69,    0,   96,   96,   97,   97,  102, 102,  103,  103,  105,  105,  106,  106,  107,  107,  108,  108,  109,  109,  110,  110,  111, 111,  112,  112,  113,  113,  114,  114,  115,  115,  116,  116,  117,  117,  118,  118,  119, 119,  120,  120,  121,  121,  122,  122,  123,  123,  124,  124,  125,  125,  126,  126,    0,  27,   91,   90,    0,   27,   91,   63,   55,  104,    0,   27,   91,   63,   55,  108,    0,  27,   41,   48,    0,   27,   79,   70,    0,   27,   79,   77,    0,   27,   91,   49,  126,   0,   27,   91,   51,   59,   50,  126,    0,   27,   91,   52,  126,    0,   27,   91,   49,  59,   50,   70,    0,   27,   91,   49,   59,   50,   72,    0,   27,   91,   50,   59,   50, 126,    0,   27,   91,   49,   59,   50,   68,    0,   27,   91,   54,   59,   50,  126,    0,  27,   91,   53,   59,   50,  126,    0,   27,   91,   49,   59,   50,   67,    0,   27,   91,  50,   51,  126,    0,   27,   91,   50,   52,  126,    0,   27,   91,   49,   59,   50,   80,   0,   27,   91,   49,   59,   50,   81,    0,   27,   91,   49,   59,   50,   82,    0,   27,  91,   49,   59,   50,   83,    0,   27,   91,   49,   53,   59,   50,  126,    0,   27,   91,  49,   55,   59,   50,  126,    0,   27,   91,   49,   56,   59,   50,  126,    0,   27,   91,  49,   57,   59,   50,  126,    0,   27,   91,   50,   48,   59,   50,  126,    0,   27,   91,  50,   49,   59,   50,  126,    0,   27,   91,   50,   51,   59,   50,  126,    0,   27,   91,  50,   52,   59,   50,  126,    0,   27,   91,   49,   59,   53,   80,    0,   27,   91,   49,  59,   53,   81,    0,   27,   91,   49,   59,   53,   82,    0,   27,   91,   49,   59,   53,  83,    0,   27,   91,   49,   53,   59,   53,  126,    0,   27,   91,   49,   55,   59,   53, 126,    0,   27,   91,   49,   56,   59,   53,  126,    0,   27,   91,   49,   57,   59,   53, 126,    0,   27,   91,   50,   48,   59,   53,  126,    0,   27,   91,   50,   49,   59,   53, 126,    0,   27,   91,   50,   51,   59,   53,  126,    0,   27,   91,   50,   52,   59,   53, 126,    0,   27,   91,   49,   59,   54,   80,    0,   27,   91,   49,   59,   54,   81,    0,  27,   91,   49,   59,   54,   82,    0,   27,   91,   49,   59,   54,   83,    0,   27,   91,  49,   53,   59,   54,  126,    0,   27,   91,   49,   55,   59,   54,  126,    0,   27,   91,  49,   56,   59,   54,  126,    0,   27,   91,   49,   57,   59,   54,  126,    0,   27,   91,  50,   48,   59,   54,  126,    0,   27,   91,   50,   49,   59,   54,  126,    0,   27,   91,  50,   51,   59,   54,  126,    0,   27,   91,   50,   52,   59,   54,  126,    0,   27,   91,  49,   59,   51,   80,    0,   27,   91,   49,   59,   51,   81,    0,   27,   91,   49,   59,  51,   82,    0,   27,   91,   49,   59,   51,   83,    0,   27,   91,   49,   53,   59,   51, 126,    0,   27,   91,   49,   55,   59,   51,  126,    0,   27,   91,   49,   56,   59,   51, 126,    0,   27,   91,   49,   57,   59,   51,  126,    0,   27,   91,   50,   48,   59,   51, 126,    0,   27,   91,   50,   49,   59,   51,  126,    0,   27,   91,   50,   51,   59,   51, 126,    0,   27,   91,   50,   52,   59,   51,  126,    0,   27,   91,   49,   59,   52,   80,   0,   27,   91,   49,   59,   52,   81,    0,   27,   91,   49,   59,   52,   82,    0,   27,  91,   49,   75,    0,   27,   91,   37,  105,   37,  100,   59,   37,  100,   82,    0,   27,  91,   54,  110,    0,   27,   91,   63,   37,   91,   59,   48,   49,   50,   51,   52,   53,  54,   55,   56,   57,   93,   99,    0,   27,   91,   99,    0,   27,   91,   51,   57,   59,  52,   57,  109,    0,   27,   93,   49,   48,   52,    7,    0,   27,   93,   52,   59,   37, 112,   49,   37,  100,   59,  114,  103,   98,   58,   37,  112,   50,   37,  123,   50,   53,  53,  125,   37,   42,   37,  123,   49,   48,   48,   48,  125,   37,   47,   37,   50,   46,  50,   88,   47,   37,  112,   51,   37,  123,   50,   53,   53,  125,   37,   42,   37,  123,  49,   48,   48,   48,  125,   37,   47,   37,   50,   46,   50,   88,   47,   37,  112,   52,  37,  123,   50,   53,   53,  125,   37,   42,   37,  123,   49,   48,   48,   48,  125,   37,  47,   37,   50,   46,   50,   88,   27,   92,    0,   27,   91,   51,  109,    0,   27,   91,  50,   51,  109,    0,   27,   91,   77,    0,   27,   91,   37,   63,   37,  112,   49,   37, 123,   56,  125,   37,   60,   37,  116,   51,   37,  112,   49,   37,  100,   37,  101,   37, 112,   49,   37,  123,   49,   54,  125,   37,   60,   37,  116,   57,   37,  112,   49,   37, 123,   56,  125,   37,   45,   37,  100,   37,  101,   51,   56,   59,   53,   59,   37,  112,  49,   37,  100,   37,   59,  109,    0,   27,   91,   37,   63,   37,  112,   49,   37,  123,  56,  125,   37,   60,   37,  116,   52,   37,  112,   49,   37,  100,   37,  101,   37,  112,  49,   37,  123,   49,   54,  125,   37,   60,   37,  116,   49,   48,   37,  112,   49,   37, 123,   56,  125,   37,   45,   37,  100,   37,  101,   52,   56,   59,   53,   59,   37,  112,  49,   37,  100,   37,   59,  109,    0 -}; -// Taken from Dickey ncurses terminfo.src dated 2017-04-22. -static const signed char ansi_terminfo[] = { -  26,   1,  40,   0,  23,   0,  16,   0, 125,   1,  68,   2,  97, 110, 115, 105, 124,  97, 110, 115, 105,  47, 112,  99,  45, 116, 101, 114, 109,  32,  99, 111, 109, 112,  97, 116, 105,  98, 108, 101,  32, 119, 105, 116, 104,  32,  99, 111, 108, 111, 114,   0,   0,   1,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   1,   0,   0,   0,   0,   0,   0,   0,   1,   0,  80,   0,   8,   0,  24,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,   8,   0,  64,   0,   3,   0,   0,   0,   4,   0,   6,   0,  -1,  -1,   8,   0,  13,   0,  20,   0,  24,   0,  28,   0,  -1,  -1,  39,   0,  56,   0,  60,   0,  -1,  -1,  64,   0,  -1,  -1,  -1,  -1,  68,   0,  -1,  -1,  72,   0,  -1,  -1,  76,   0,  80,   0,  -1,  -1,  -1,  -1,  84,   0,  90,   0,  95,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 100,   0,  -1,  -1, 105,   0, 110,   0, 115,   0, 120,   0,-127,   0,-121,   0,  -1,  -1,  -1,  -1,  -1,  -1,-113,   0,-109,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,-105,   0,  -1,  -1,-101,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -99,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -95,   0, -91,   0,  -1,  -1, -87,   0,  -1,  -1,  -1,  -1,  -1,  -1, -83,   0,  -1,  -1,  -1,  -1,  -1,  -1, -79,   0,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -75,   0,  -1,  -1, -70,   0, -61,   0, -52,   0, -43,   0, -34,   0, -25,   0, -16,   0,  -7,   0,   2,   1,  11,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  20,   1,  25,   1,  30,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  50,   1,  -1,  -1,  61,   1,  -1,  -1,  63,   1,-107,   1,  -1,  -1,-104,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,-100,   1,  -1,  -1, -37,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -33,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, -28,   1, -17,   1, -12,   1,   7,   2,  11,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  20,   2,  30,   2,  -1,  -1,  -1,  -1,  -1,  -1,  40,   2,  44,   2,  48,   2,  52,   2,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  56,   2,  62,   2,  27,  91,  90,   0,   7,   0,  13,   0,  27,  91,  51, 103,   0,  27,  91,  72,  27,  91,  74,   0,  27,  91,  75,   0,  27,  91,  74,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  71,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100,  59,  37, 112,  50,  37, 100,  72,   0,  27,  91,  66,   0,  27,  91,  72,   0,  27,  91,  68,   0,  27,  91,  67,   0,  27,  91,  65,   0,  27,  91,  80,   0,  27,  91,  77,   0,  27,  91,  49,  49, 109,   0,  27,  91,  53, 109,   0,  27,  91,  49, 109,   0,  27,  91,  56, 109,   0,  27,  91,  55, 109,   0,  27,  91,  55, 109,   0,  27,  91,  52, 109,   0,  27,  91,  37, 112,  49,  37, 100,  88,   0,  27,  91,  49,  48, 109,   0,  27,  91,  48,  59,  49,  48, 109,   0,  27,  91, 109,   0,  27,  91, 109,   0,  27,  91,  76,   0,   8,   0,  27,  91,  66,   0,  27,  91,  72,   0,  27,  91,  76,   0,  27,  91,  68,   0,  27,  91,  67,   0,  27,  91,  65,   0,  13,  27,  91,  83,   0,  27,  91,  37, 112,  49,  37, 100,  80,   0,  27,  91,  37, 112,  49,  37, 100,  77,   0,  27,  91,  37, 112,  49,  37, 100,  66,   0,  27,  91,  37, 112,  49,  37, 100,  64,   0,  27,  91,  37, 112,  49,  37, 100,  83,   0,  27,  91,  37, 112,  49,  37, 100,  76,   0,  27,  91,  37, 112,  49,  37, 100,  68,   0,  27,  91,  37, 112,  49,  37, 100,  67,   0,  27,  91,  37, 112,  49,  37, 100,  84,   0,  27,  91,  37, 112,  49,  37, 100,  65,   0,  27,  91,  52, 105,   0,  27,  91,  53, 105,   0,  37, 112,  49,  37,  99,  27,  91,  37, 112,  50,  37, 123,  49, 125,  37,  45,  37, 100,  98,   0,  27,  91,  37, 105,  37, 112,  49,  37, 100, 100,   0,  10,   0,  27,  91,  48,  59,  49,  48,  37,  63,  37, 112,  49,  37, 116,  59,  55,  37,  59,  37,  63,  37, 112,  50,  37, 116,  59,  52,  37,  59,  37,  63,  37, 112,  51,  37, 116,  59,  55,  37,  59,  37,  63,  37, 112,  52,  37, 116,  59,  53,  37,  59,  37,  63,  37, 112,  54,  37, 116,  59,  49,  37,  59,  37,  63,  37, 112,  55,  37, 116,  59,  56,  37,  59,  37,  63,  37, 112,  57,  37, 116,  59,  49,  49,  37,  59, 109,   0,  27,  72,   0,  27,  91,  73,   0,  43,  16,  44,  17,  45,  24,  46,  25,  48, -37,  96,   4,  97, -79, 102,  -8, 103, -15, 104, -80, 106, -39, 107, -65, 108, -38, 109, -64, 110, -59, 111, 126, 112, -60, 113, -60, 114, -60, 115,  95, 116, -61, 117, -76, 118, -63, 119, -62, 120, -77, 121, -13, 122, -14, 123, -29, 124, -40, 125,-100, 126,  -2,   0,  27,  91,  90,   0,  27,  91,  49,  75,   0,  27,  91,  37, 105,  37, 100,  59,  37, 100,  82,   0,  27,  91,  54, 110,   0,  27,  91,  63,  37,  91,  59,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  93,  99,   0,  27,  91,  99,   0,  27,  91,  51,  57,  59,  52,  57, 109,   0,  27,  91,  51,  37, 112,  49,  37, 100, 109,   0,  27,  91,  52,  37, 112,  49,  37, 100, 109,   0,  27,  40,  66,   0,  27,  41,  66,   0,  27,  42,  66,   0,  27,  43,  66,   0,  27,  91,  49,  49, 109,   0,  27,  91,  49,  48, 109,   0 -}; -  bool terminfo_is_term_family(const char *term, const char *family)  {    if (!term) { diff --git a/src/nvim/tui/terminfo_defs.h b/src/nvim/tui/terminfo_defs.h new file mode 100644 index 0000000000..000c0ea8e7 --- /dev/null +++ b/src/nvim/tui/terminfo_defs.h @@ -0,0 +1,1654 @@ +// This is an open source non-commercial project. Dear PVS-Studio, please check +// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + +// +// Generated by scripts/update_terminfo.sh and ncurses 6.1.20180127 +// + +#ifndef NVIM_TUI_TERMINFO_DEFS_H +#define NVIM_TUI_TERMINFO_DEFS_H + +#include <stdint.h> + +// ansi|ansi/pc-term compatible with color, +//  auto_right_margin, +//  backspaces_with_bs, +//  move_insert_mode, +//  move_standout_mode, +//  prtr_silent, +//  columns#80, +//  init_tabs#8, +//  lines#24, +//  max_colors#8, +//  max_pairs#64, +//  no_color_video#3, +//  acs_chars=+^P\054^Q-^X.^Y0\333`^Da\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, +//  back_tab=\E[Z, +//  bell=^G, +//  carriage_return=\r, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\E[B, +//  cursor_home=\E[H, +//  cursor_left=\E[D, +//  cursor_right=\E[C, +//  cursor_up=\E[A, +//  delete_character=\E[P, +//  delete_line=\E[M, +//  enter_alt_charset_mode=\E[11m, +//  enter_blink_mode=\E[5m, +//  enter_bold_mode=\E[1m, +//  enter_pc_charset_mode=\E[11m, +//  enter_reverse_mode=\E[7m, +//  enter_secure_mode=\E[8m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  erase_chars=\E[%p1%dX, +//  exit_alt_charset_mode=\E[10m, +//  exit_attribute_mode=\E[0;10m, +//  exit_pc_charset_mode=\E[10m, +//  exit_standout_mode=\E[m, +//  exit_underline_mode=\E[m, +//  insert_line=\E[L, +//  key_backspace=^H, +//  key_btab=\E[Z, +//  key_down=\E[B, +//  key_home=\E[H, +//  key_ic=\E[L, +//  key_left=\E[D, +//  key_right=\E[C, +//  key_up=\E[A, +//  newline=\r\E[S, +//  orig_pair=\E[39;49m, +//  parm_dch=\E[%p1%dP, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_ich=\E[%p1%d@, +//  parm_index=\E[%p1%dS, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_rindex=\E[%p1%dT, +//  parm_up_cursor=\E[%p1%dA, +//  prtr_off=\E[4i, +//  prtr_on=\E[5i, +//  repeat_char=%p1%c\E[%p2%{1}%-%db, +//  row_address=\E[%i%p1%dd, +//  scroll_forward=\n, +//  set0_des_seq=\E(B, +//  set1_des_seq=\E)B, +//  set2_des_seq=\E*B, +//  set3_des_seq=\E+B, +//  set_a_background=\E[4%p1%dm, +//  set_a_foreground=\E[3%p1%dm, +//  set_attributes=\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, +//  set_tab=\EH, +//  tab=\E[I, +//  user6=\E[%i%d;%dR, +//  user7=\E[6n, +//  user8=\E[?%[;0123456789]c, +//  user9=\E[c, +static const int8_t ansi_terminfo[] = { +  26,1,40,0,38,0,16,0,125,1,68,2,97,110,115,105,124,97,110,115,105,47,112,99,45,116,101,114,109,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,32,99,111,108,111,114,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,80,0,8,0,24,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,3,0,0,0,4,0,6,0,-1,-1,8,0,13,0,20,0,24,0,28,0,-1,-1,39,0,56,0,60,0,-1,-1,64,0,-1,-1,-1,-1,68,0,-1,-1,72,0,-1,-1,76,0,80,0,-1,-1,-1,-1,84,0,90,0,95,0,-1,-1,-1,-1,-1,-1,-1,-1,100,0,-1,-1,105,0,110,0,115,0,120,0,-127,0,-121,0,-1,-1,-1,-1,-1,-1,-113,0,-109,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-105,0,-1,-1,-101,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-99,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-95,0,-91,0,-1,-1,-87,0,-1,-1,-1,-1,-1,-1,-83,0,-1,-1,-1,-1,-1,-1,-79,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-75,0,-1,-1,-70,0,-61,0,-52,0,-43,0,-34,0,-25,0,-16,0,-7,0,2,1,11,1,-1,-1,-1,-1,-1,-1,-1,-1,20,1,25,1,30,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50,1,-1,-1,61,1,-1,-1,63,1,-107,1,-1,-1,-104,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-100,1,-1,-1,-37,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-33,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-28,1,-17,1,-12,1,7,2,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,2,30,2,-1,-1,-1,-1,-1,-1,40,2,44,2,48,2,52,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,56,2,62,2,27,91,90,0,7,0,13,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,91,66,0,27,91,72,0,27,91,68,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,91,49,49,109,0,27,91,53,109,0,27,91,49,109,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,91,49,48,109,0,27,91,48,59,49,48,109,0,27,91,109,0,27,91,109,0,27,91,76,0,8,0,27,91,66,0,27,91,72,0,27,91,76,0,27,91,68,0,27,91,67,0,27,91,65,0,13,27,91,83,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,52,105,0,27,91,53,105,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,91,37,105,37,112,49,37,100,100,0,10,0,27,91,48,59,49,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,55,37,116,59,56,37,59,37,63,37,112,57,37,116,59,49,49,37,59,109,0,27,72,0,27,91,73,0,43,16,44,17,45,24,46,25,48,-37,96,4,97,-79,102,-8,103,-15,104,-80,106,-39,107,-65,108,-38,109,-64,110,-59,111,126,112,-60,113,-60,114,-60,115,95,116,-61,117,-76,118,-63,119,-62,120,-77,121,-13,122,-14,123,-29,124,-40,125,-100,126,-2,0,27,91,90,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,40,66,0,27,41,66,0,27,42,66,0,27,43,66,0,27,91,49,49,109,0,27,91,49,48,109,0,1,0,0,0,0,0,1,0,3,0,1,0,0,0,65,88,0 +}; + +// interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color, +//  auto_right_margin, +//  back_color_erase, +//  move_standout_mode, +//  columns#80, +//  init_tabs#8, +//  lines#25, +//  max_colors#8, +//  max_pairs#64, +//  no_color_video#3, +//  acs_chars=+^P\054^Q-^X.^Y0\333`^Da\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, +//  bell=^G, +//  carriage_return=\r, +//  clear_screen=\E[2J, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\n, +//  cursor_home=\E[H, +//  cursor_left=\E[D, +//  cursor_right=\E[C, +//  cursor_to_ll=\E[U, +//  cursor_up=\E[A, +//  delete_line=\E[M, +//  enter_bold_mode=\E[1m, +//  enter_ca_mode=\E[s\E[1b, +//  enter_reverse_mode=\E[7m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  exit_attribute_mode=\E[0m, +//  exit_ca_mode=\E[2b\E[u\r\E[K, +//  exit_standout_mode=\E[m, +//  exit_underline_mode=\E[m, +//  insert_line=\E[L, +//  key_backspace=^H, +//  key_btab=\E[Z, +//  key_dc=\177, +//  key_down=\E[B, +//  key_end=\E[U, +//  key_f0=\EFA, +//  key_f1=\EF1, +//  key_f10=\EFA, +//  key_f11=\EFB, +//  key_f12=\EFC, +//  key_f13=\EFD, +//  key_f14=\EFE, +//  key_f15=\EFF, +//  key_f16=\EFG, +//  key_f17=\EFH, +//  key_f18=\EFI, +//  key_f19=\EFJ, +//  key_f2=\EF2, +//  key_f20=\EFK, +//  key_f21=\EFL, +//  key_f22=\EFM, +//  key_f23=\EFN, +//  key_f24=\EFO, +//  key_f25=\EFP, +//  key_f26=\EFQ, +//  key_f27=\EFR, +//  key_f28=\EFS, +//  key_f29=\EFT, +//  key_f3=\EF3, +//  key_f30=\EFU, +//  key_f31=\EFV, +//  key_f32=\EFW, +//  key_f33=\EFX, +//  key_f34=\EFY, +//  key_f35=\EFZ, +//  key_f36=\EFa, +//  key_f37=\EFb, +//  key_f38=\EFc, +//  key_f39=\EFd, +//  key_f4=\EF4, +//  key_f40=\EFe, +//  key_f41=\EFf, +//  key_f42=\EFg, +//  key_f43=\EFh, +//  key_f44=\EFi, +//  key_f45=\EFj, +//  key_f46=\EFk, +//  key_f47=\EFm, +//  key_f48=\EFn, +//  key_f49=\EFo, +//  key_f5=\EF5, +//  key_f50=\EFp, +//  key_f51=\EFq, +//  key_f52=\EFr, +//  key_f53=\EFs, +//  key_f54=\EFt, +//  key_f55=\EFu, +//  key_f56=\EFv, +//  key_f57=\EFw, +//  key_f58=\EFx, +//  key_f59=\EFy, +//  key_f6=\EF6, +//  key_f60=\EFz, +//  key_f7=\EF7, +//  key_f8=\EF8, +//  key_f9=\EF9, +//  key_home=\E[H, +//  key_ic=\E[L, +//  key_left=\E[D, +//  key_ll=\E[U, +//  key_npage=\E[T, +//  key_ppage=\E[S, +//  key_right=\E[C, +//  key_sf=\EF+, +//  key_sleft=\EF\136, +//  key_sr=\EF-, +//  key_sright=\EF$, +//  key_up=\E[A, +//  newline=\r\n, +//  orig_pair=\E[m, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_index=\E[%p1%dS, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_rindex=\E[%p1%dT, +//  parm_up_cursor=\E[%p1%dA, +//  repeat_char=%p1%c\E[%p2%{1}%-%db, +//  reset_1string=\Ec, +//  restore_cursor=\E[u, +//  save_cursor=\E[s, +//  scroll_forward=\E[S, +//  scroll_reverse=\E[T, +//  set_a_background=\E[4%p1%dm, +//  set_a_foreground=\E[3%p1%dm, +//  tab=^I, +static const int8_t interix_8colour_terminfo[] = { +  26,1,82,0,29,0,16,0,105,1,116,2,105,110,116,101,114,105,120,124,111,112,101,110,110,116,124,111,112,101,110,110,116,45,50,53,124,110,116,99,111,110,115,111,108,101,124,110,116,99,111,110,115,111,108,101,45,50,53,124,79,112,101,110,78,84,45,116,101,114,109,32,99,111,109,112,97,116,105,98,108,101,32,119,105,116,104,32,99,111,108,111,114,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,80,0,8,0,25,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,3,0,-1,-1,0,0,2,0,-1,-1,-1,-1,4,0,9,0,13,0,-1,-1,-1,-1,17,0,34,0,36,0,-1,-1,40,0,-1,-1,-1,-1,44,0,48,0,52,0,-1,-1,-1,-1,56,0,-1,-1,-1,-1,-1,-1,-1,-1,60,0,65,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,73,0,78,0,83,0,-1,-1,-1,-1,88,0,93,0,-1,-1,-1,-1,105,0,109,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,113,0,-1,-1,117,0,-1,-1,-1,-1,-1,-1,119,0,-1,-1,121,0,-1,-1,-1,-1,-1,-1,125,0,-127,0,-123,0,-119,0,-115,0,-111,0,-107,0,-103,0,-99,0,-95,0,-91,0,-87,0,-83,0,-1,-1,-79,0,-75,0,-71,0,-67,0,-63,0,-59,0,-55,0,-1,-1,-51,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-47,0,-1,-1,-1,-1,-44,0,-35,0,-1,-1,-26,0,-17,0,-8,0,1,1,10,1,19,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,28,1,48,1,-1,-1,-1,-1,-1,-1,51,1,-1,-1,55,1,59,1,63,1,-1,-1,-1,-1,-1,-1,67,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,69,1,-1,-1,-124,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-120,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-116,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-112,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-108,1,-104,1,-100,1,-96,1,-92,1,-88,1,-84,1,-80,1,-76,1,-72,1,-68,1,-64,1,-60,1,-56,1,-52,1,-48,1,-44,1,-40,1,-36,1,-32,1,-28,1,-24,1,-20,1,-16,1,-12,1,-8,1,-4,1,0,2,4,2,8,2,12,2,16,2,20,2,24,2,28,2,32,2,36,2,40,2,44,2,48,2,52,2,56,2,60,2,64,2,68,2,72,2,76,2,80,2,84,2,88,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,92,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,96,2,106,2,7,0,13,0,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,68,0,27,91,67,0,27,91,85,0,27,91,65,0,27,91,77,0,27,91,49,109,0,27,91,115,27,91,49,98,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,48,109,0,27,91,50,98,27,91,117,13,27,91,75,0,27,91,109,0,27,91,109,0,27,91,76,0,8,0,127,0,27,91,66,0,27,70,65,0,27,70,49,0,27,70,65,0,27,70,50,0,27,70,51,0,27,70,52,0,27,70,53,0,27,70,54,0,27,70,55,0,27,70,56,0,27,70,57,0,27,91,72,0,27,91,76,0,27,91,68,0,27,91,85,0,27,91,84,0,27,91,83,0,27,91,67,0,27,70,43,0,27,70,45,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,99,0,27,91,117,0,27,91,115,0,27,91,83,0,27,91,84,0,9,0,43,16,44,17,45,24,46,25,48,-37,96,4,97,-79,102,-8,103,-15,104,-80,106,-39,107,-65,108,-38,109,-64,110,-59,111,126,112,-60,113,-60,114,-60,115,95,116,-61,117,-76,118,-63,119,-62,120,-77,121,-13,122,-14,123,-29,124,-40,125,-100,126,-2,0,27,91,90,0,27,91,85,0,27,70,94,0,27,70,36,0,27,70,66,0,27,70,67,0,27,70,68,0,27,70,69,0,27,70,70,0,27,70,71,0,27,70,72,0,27,70,73,0,27,70,74,0,27,70,75,0,27,70,76,0,27,70,77,0,27,70,78,0,27,70,79,0,27,70,80,0,27,70,81,0,27,70,82,0,27,70,83,0,27,70,84,0,27,70,85,0,27,70,86,0,27,70,87,0,27,70,88,0,27,70,89,0,27,70,90,0,27,70,97,0,27,70,98,0,27,70,99,0,27,70,100,0,27,70,101,0,27,70,102,0,27,70,103,0,27,70,104,0,27,70,105,0,27,70,106,0,27,70,107,0,27,70,109,0,27,70,110,0,27,70,111,0,27,70,112,0,27,70,113,0,27,70,114,0,27,70,115,0,27,70,116,0,27,70,117,0,27,70,118,0,27,70,119,0,27,70,120,0,27,70,121,0,27,70,122,0,27,91,109,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0 +}; + +// iTerm2.app|iterm2|terminal emulator for Mac OS X, +//  auto_right_margin, +//  back_color_erase, +//  eat_newline_glitch, +//  has_status_line, +//  move_insert_mode, +//  move_standout_mode, +//  no_pad_char, +//  xon_xoff, +//  columns#80, +//  init_tabs#8, +//  lines#24, +//  max_colors#0x100, +//  max_pairs#0x10000, +//  width_status_line#50, +//  acs_chars=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +//  back_tab=\E[Z, +//  bell=^G, +//  carriage_return=\r, +//  change_scroll_region=\E[%i%p1%d;%p2%dr, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\n, +//  cursor_home=\E[H, +//  cursor_invisible=\E[?25l, +//  cursor_left=^H, +//  cursor_normal=\E[?25h, +//  cursor_right=\E[C, +//  cursor_up=\E[A, +//  delete_character=\E[P, +//  delete_line=\E[M, +//  dis_status_line=\E]2;^G, +//  ena_acs=\E(B\E)0, +//  enter_alt_charset_mode=^N, +//  enter_am_mode=\E[?7h, +//  enter_blink_mode=\E[5m, +//  enter_bold_mode=\E[1m, +//  enter_ca_mode=\E[?1049h\E[22;0;0t, +//  enter_dim_mode=\E[2m, +//  enter_insert_mode=\E[4h, +//  enter_italics_mode=\E[3m, +//  enter_reverse_mode=\E[7m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  exit_alt_charset_mode=^O, +//  exit_am_mode=\E[?7l, +//  exit_attribute_mode=\E[m^O, +//  exit_ca_mode=\E[?1049l\E[23;0;0t, +//  exit_insert_mode=\E[4l, +//  exit_italics_mode=\E[23m, +//  exit_standout_mode=\E[27m, +//  exit_underline_mode=\E[24m, +//  flash_screen=\E[?5h$<200/>\E[?5l, +//  from_status_line=^G, +//  insert_character=\E[@, +//  insert_line=\E[L, +//  key_a1@, +//  key_a3@, +//  key_b2@, +//  key_backspace=\177, +//  key_btab=\E[Z, +//  key_c1@, +//  key_c3@, +//  key_dc=\E[3~, +//  key_down=\EOB, +//  key_end=\EOF, +//  key_enter@, +//  key_f1=\EOP, +//  key_f10=\E[21~, +//  key_f11=\E[23~, +//  key_f12=\E[24~, +//  key_f13=\E[1;2P, +//  key_f14=\E[1;2Q, +//  key_f15=\E[1;2R, +//  key_f16=\E[1;2S, +//  key_f17=\E[15;2~, +//  key_f18=\E[17;2~, +//  key_f19=\E[18;2~, +//  key_f2=\EOQ, +//  key_f20=\E[19;2~, +//  key_f21=\E[20;2~, +//  key_f22=\E[21;2~, +//  key_f23=\E[23;2~, +//  key_f24=\E[24;2~, +//  key_f3=\EOR, +//  key_f4=\EOS, +//  key_f5=\E[15~, +//  key_f6=\E[17~, +//  key_f7=\E[18~, +//  key_f8=\E[19~, +//  key_f9=\E[20~, +//  key_home=\EOH, +//  key_left=\EOD, +//  key_mouse=\E[M, +//  key_npage=\E[6~, +//  key_ppage=\E[5~, +//  key_right=\EOC, +//  key_send=\E[1;2F, +//  key_sf=\E[1;2B, +//  key_shome=\E[1;2H, +//  key_sleft=\E[1;2D, +//  key_sr=\E[1;2A, +//  key_sright=\E[1;2C, +//  key_up=\EOA, +//  keypad_local=\E[?1l\E>, +//  keypad_xmit=\E[?1h\E=, +//  newline=\EE, +//  orig_pair=\E[39;49m, +//  parm_dch=\E[%p1%dP, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_ich=\E[%p1%d@, +//  parm_index=\E[%p1%dS, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_rindex=\E[%p1%dT, +//  parm_up_cursor=\E[%p1%dA, +//  reset_2string=\E[\041p\E[?3;4l\E[4l\E>\E[?1000l, +//  restore_cursor=\E8, +//  row_address=\E[%i%p1%dd, +//  save_cursor=\E7, +//  scroll_forward=\n, +//  scroll_reverse=\EM, +//  set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, +//  set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, +//  set_attributes=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t^N%e^O%;, +//  set_tab=\EH, +//  tab=^I, +//  to_status_line=\E]2;, +//  user6=\E[%i%d;%dR, +//  user7=\E[6n, +//  user8=\E[?%[;0123456789]c, +//  user9=\E[c, +static const int8_t iterm_256colour_terminfo[] = { +  30,2,49,0,29,0,15,0,105,1,-29,3,105,84,101,114,109,50,46,97,112,112,124,105,116,101,114,109,50,124,116,101,114,109,105,110,97,108,32,101,109,117,108,97,116,111,114,32,102,111,114,32,77,97,99,32,79,83,32,88,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,50,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,75,0,79,0,86,0,-1,-1,88,0,95,0,-1,-1,99,0,-1,-1,103,0,107,0,111,0,-1,-1,117,0,119,0,124,0,-127,0,-1,-1,-109,0,-104,0,-1,-1,-1,-1,-99,0,-94,0,-89,0,-1,-1,-84,0,-82,0,-77,0,-1,-1,-59,0,-54,0,-48,0,-42,0,-1,-1,-24,0,-1,-1,-1,-1,-1,-1,-1,-1,-22,0,-18,0,-1,-1,-14,0,-1,-1,-1,-1,-1,-1,-12,0,-1,-1,-7,0,-1,-1,-1,-1,-1,-1,-1,-1,-3,0,1,1,7,1,11,1,15,1,19,1,25,1,31,1,37,1,43,1,49,1,-1,-1,-1,-1,53,1,-1,-1,57,1,62,1,67,1,71,1,78,1,-1,-1,85,1,89,1,97,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,105,1,-1,-1,108,1,117,1,126,1,-121,1,-112,1,-103,1,-94,1,-85,1,-76,1,-67,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-58,1,-1,-1,-1,-1,-32,1,-29,1,-18,1,-15,1,-13,1,-10,1,68,2,-1,-1,71,2,73,2,-1,-1,-1,-1,-1,-1,-2,-1,-2,-1,-2,-1,-2,-1,-2,-1,-1,-1,-1,-1,78,2,-1,-1,-127,2,-1,-1,-1,-1,-123,2,-117,2,-1,-1,-1,-1,-111,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-104,2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-100,2,-1,-1,-1,-1,-1,-1,-1,-1,-93,2,-1,-1,-86,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-79,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-72,2,-66,2,-60,2,-53,2,-46,2,-39,2,-32,2,-24,2,-16,2,-8,2,0,3,8,3,16,3,24,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,37,3,48,3,53,3,72,3,76,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,85,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,90,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,96,3,-1,-1,-1,-1,-1,-1,100,3,-93,3,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,27,93,50,59,7,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,27,91,50,50,59,48,59,48,116,0,27,91,50,109,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,63,49,48,52,57,108,27,91,50,51,59,48,59,48,116,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,50,48,48,47,62,27,91,63,53,108,0,7,0,27,91,64,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,79,72,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,33,112,27,91,63,51,59,52,108,27,91,52,108,27,62,27,91,63,49,48,48,48,108,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,93,50,59,0,96,96,97,97,102,102,103,103,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,40,66,27,41,48,0,27,79,70,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,49,59,50,68,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,1,0,0,0,33,0,67,0,-37,1,0,0,0,0,5,0,32,0,37,0,45,0,52,0,59,0,66,0,74,0,81,0,88,0,96,0,104,0,111,0,119,0,126,0,-123,0,-115,0,-107,0,-102,0,-94,0,-87,0,-80,0,-74,0,-68,0,-63,0,-55,0,-48,0,-41,0,-36,0,-28,0,-21,0,-14,0,0,0,3,0,6,0,9,0,14,0,19,0,24,0,29,0,35,0,41,0,47,0,53,0,59,0,65,0,71,0,77,0,83,0,89,0,95,0,101,0,107,0,113,0,119,0,125,0,-125,0,-119,0,-113,0,-107,0,-101,0,-95,0,-90,0,-85,0,-80,0,-75,0,27,93,50,59,0,27,91,63,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,27,91,66,0,27,91,49,59,49,48,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,57,70,0,27,91,49,59,49,48,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,49,51,70,0,27,91,49,59,49,52,70,0,27,91,49,59,57,72,0,27,91,49,59,49,48,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,49,51,72,0,27,91,49,59,49,52,72,0,27,27,91,68,0,27,91,49,59,49,48,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,27,91,54,126,0,27,27,91,53,126,0,27,27,91,67,0,27,91,49,59,49,48,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,27,91,65,0,27,91,49,59,49,48,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,77,37,63,37,112,52,37,116,51,37,101,37,112,51,37,39,32,39,37,43,37,99,37,59,37,112,50,37,39,33,39,37,43,37,99,37,112,49,37,39,33,39,37,43,37,99,0,65,88,0,84,83,0,88,77,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,78,88,84,51,0,107,80,82,86,51,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,120,109,0 +}; + +// linux|linux console, +//  auto_right_margin, +//  back_color_erase, +//  can_change, +//  eat_newline_glitch, +//  erase_overstrike, +//  move_insert_mode, +//  move_standout_mode, +//  xon_xoff, +//  init_tabs#8, +//  max_colors#8, +//  max_pairs#64, +//  no_color_video#18, +//  acs_chars=++\054\054--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~, +//  bell=^G, +//  carriage_return=\r, +//  change_scroll_region=\E[%i%p1%d;%p2%dr, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\n, +//  cursor_home=\E[H, +//  cursor_invisible=\E[?25l\E[?1c, +//  cursor_left=^H, +//  cursor_normal=\E[?25h\E[?0c, +//  cursor_right=\E[C, +//  cursor_up=\E[A, +//  cursor_visible=\E[?25h\E[?8c, +//  delete_character=\E[P, +//  delete_line=\E[M, +//  ena_acs=\E)0, +//  enter_alt_charset_mode=^N, +//  enter_am_mode=\E[?7h, +//  enter_blink_mode=\E[5m, +//  enter_bold_mode=\E[1m, +//  enter_dim_mode=\E[2m, +//  enter_insert_mode=\E[4h, +//  enter_pc_charset_mode=\E[11m, +//  enter_reverse_mode=\E[7m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  erase_chars=\E[%p1%dX, +//  exit_alt_charset_mode=^O, +//  exit_am_mode=\E[?7l, +//  exit_attribute_mode=\E[m^O, +//  exit_insert_mode=\E[4l, +//  exit_pc_charset_mode=\E[10m, +//  exit_standout_mode=\E[27m, +//  exit_underline_mode=\E[24m, +//  flash_screen=\E[?5h$<200/>\E[?5l, +//  initialize_color=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x, +//  insert_character=\E[@, +//  insert_line=\E[L, +//  key_b2=\E[G, +//  key_backspace=\177, +//  key_btab=\E[Z, +//  key_dc=\E[3~, +//  key_down=\E[B, +//  key_end=\E[4~, +//  key_f1=\E[[A, +//  key_f10=\E[21~, +//  key_f11=\E[23~, +//  key_f12=\E[24~, +//  key_f13=\E[25~, +//  key_f14=\E[26~, +//  key_f15=\E[28~, +//  key_f16=\E[29~, +//  key_f17=\E[31~, +//  key_f18=\E[32~, +//  key_f19=\E[33~, +//  key_f2=\E[[B, +//  key_f20=\E[34~, +//  key_f3=\E[[C, +//  key_f4=\E[[D, +//  key_f5=\E[[E, +//  key_f6=\E[17~, +//  key_f7=\E[18~, +//  key_f8=\E[19~, +//  key_f9=\E[20~, +//  key_home=\E[1~, +//  key_ic=\E[2~, +//  key_left=\E[D, +//  key_mouse=\E[M, +//  key_npage=\E[6~, +//  key_ppage=\E[5~, +//  key_right=\E[C, +//  key_suspend=^Z, +//  key_up=\E[A, +//  newline=\r\n, +//  orig_colors=\E]R, +//  orig_pair=\E[39;49m, +//  parm_dch=\E[%p1%dP, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_ich=\E[%p1%d@, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_up_cursor=\E[%p1%dA, +//  reset_1string=\Ec\E]R, +//  restore_cursor=\E8, +//  row_address=\E[%i%p1%dd, +//  save_cursor=\E7, +//  scroll_forward=\n, +//  scroll_reverse=\EM, +//  set_a_background=\E[4%p1%dm, +//  set_a_foreground=\E[3%p1%dm, +//  set_attributes=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;m%?%p9%t^N%e^O%;, +//  set_tab=\EH, +//  tab=^I, +//  user6=\E[%i%d;%dR, +//  user7=\E[6n, +//  user8=\E[?6c, +//  user9=\E[c, +static const int8_t linux_16colour_terminfo[] = { +  26,1,20,0,29,0,16,0,125,1,69,3,108,105,110,117,120,124,108,105,110,117,120,32,99,111,110,115,111,108,101,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,-1,-1,8,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,0,64,0,18,0,-1,-1,0,0,2,0,4,0,21,0,26,0,33,0,37,0,41,0,-1,-1,52,0,69,0,71,0,75,0,87,0,-1,-1,89,0,101,0,-1,-1,105,0,109,0,121,0,125,0,-1,-1,-1,-1,-127,0,-125,0,-120,0,-1,-1,-1,-1,-115,0,-110,0,-1,-1,-1,-1,-105,0,-100,0,-95,0,-90,0,-81,0,-79,0,-1,-1,-1,-1,-74,0,-69,0,-63,0,-57,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-39,0,-35,0,-1,-1,-31,0,-1,-1,-1,-1,-1,-1,-29,0,-1,-1,-24,0,-1,-1,-1,-1,-1,-1,-1,-1,-20,0,-15,0,-9,0,-4,0,1,1,6,1,11,1,17,1,23,1,29,1,35,1,40,1,-1,-1,45,1,-1,-1,49,1,54,1,59,1,-1,-1,-1,-1,-1,-1,63,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,67,1,-1,-1,70,1,79,1,88,1,97,1,-1,-1,106,1,115,1,124,1,-1,-1,-123,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-114,1,-1,-1,-1,-1,-1,-1,-108,1,-105,1,-94,1,-91,1,-89,1,-86,1,1,2,-1,-1,4,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,2,-1,-1,-1,-1,-1,-1,-1,-1,10,2,-1,-1,77,2,-1,-1,-1,-1,81,2,87,2,-1,-1,-1,-1,93,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,97,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,102,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,104,2,110,2,116,2,122,2,-128,2,-122,2,-116,2,-110,2,-104,2,-98,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-92,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-87,2,-76,2,-71,2,-65,2,-61,2,-52,2,-48,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,33,3,-1,-1,-1,-1,-1,-1,37,3,47,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,57,3,63,3,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,27,91,63,49,99,0,8,0,27,91,63,50,53,104,27,91,63,48,99,0,27,91,67,0,27,91,65,0,27,91,63,50,53,104,27,91,63,56,99,0,27,91,80,0,27,91,77,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,50,109,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,15,0,27,91,109,15,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,50,48,48,47,62,27,91,63,53,108,0,27,91,64,0,27,91,76,0,127,0,27,91,51,126,0,27,91,66,0,27,91,91,65,0,27,91,50,49,126,0,27,91,91,66,0,27,91,91,67,0,27,91,91,68,0,27,91,91,69,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,65,0,13,10,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,93,82,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,59,49,48,37,63,37,112,49,37,116,59,55,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,54,37,116,59,49,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,91,71,0,43,43,44,44,45,45,46,46,48,48,95,95,96,96,97,97,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,99,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,41,48,0,27,91,52,126,0,26,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,54,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,82,0,27,93,80,37,112,49,37,120,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,48,50,120,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,48,50,120,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,48,50,120,0,27,91,77,0,27,91,51,37,112,49,37,100,109,0,27,91,52,37,112,49,37,100,109,0,27,91,49,49,109,0,27,91,49,48,109,0,0,3,0,1,0,12,0,28,0,63,0,1,0,0,0,1,0,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,33,0,39,0,43,0,47,0,51,0,55,0,27,91,51,74,0,65,88,0,71,48,0,88,84,0,85,56,0,69,48,0,69,51,0,83,48,0,84,83,0,88,77,0,107,69,78,68,53,0,107,72,79,77,53,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,120,109,0 +}; + +// putty-256color|PuTTY 0.58 with xterm 256-colors, +//  auto_left_margin, +//  auto_right_margin, +//  back_color_erase, +//  eat_newline_glitch, +//  has_status_line, +//  move_insert_mode, +//  move_standout_mode, +//  xon_xoff, +//  init_tabs#8, +//  max_colors#0x100, +//  max_pairs#0x10000, +//  no_color_video#22, +//  acs_chars=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +//  back_tab=\E[Z, +//  bell=^G, +//  carriage_return=\r, +//  change_scroll_region=\E[%i%p1%d;%p2%dr, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\ED, +//  cursor_home=\E[H, +//  cursor_invisible=\E[?25l, +//  cursor_left=^H, +//  cursor_normal=\E[?25h, +//  cursor_right=\E[C, +//  cursor_up=\EM, +//  delete_character=\E[P, +//  delete_line=\E[M, +//  dis_status_line=\E]0;^G, +//  display_pc_char=%?%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%;, +//  ena_acs=\E(B\E)0, +//  enter_alt_charset_mode=^N, +//  enter_am_mode=\E[?7h, +//  enter_blink_mode=\E[5m, +//  enter_bold_mode=\E[1m, +//  enter_ca_mode=\E[?47h, +//  enter_insert_mode=\E[4h, +//  enter_pc_charset_mode=\E[11m, +//  enter_reverse_mode=\E[7m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  erase_chars=\E[%p1%dX, +//  exit_alt_charset_mode=^O, +//  exit_am_mode=\E[?7l, +//  exit_attribute_mode=\E[m^O, +//  exit_ca_mode=\E[2J\E[?47l, +//  exit_insert_mode=\E[4l, +//  exit_pc_charset_mode=\E[10m, +//  exit_standout_mode=\E[27m, +//  exit_underline_mode=\E[24m, +//  flash_screen=\E[?5h$<100/>\E[?5l, +//  from_status_line=^G, +//  init_2string=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R, +//  insert_line=\E[L, +//  key_b2=\E[G, +//  key_backspace=\177, +//  key_btab=\E[Z, +//  key_dc=\E[3~, +//  key_down=\EOB, +//  key_end=\E[4~, +//  key_f1=\E[11~, +//  key_f10=\E[21~, +//  key_f11=\E[23~, +//  key_f12=\E[24~, +//  key_f13=\E[25~, +//  key_f14=\E[26~, +//  key_f15=\E[28~, +//  key_f16=\E[29~, +//  key_f17=\E[31~, +//  key_f18=\E[32~, +//  key_f19=\E[33~, +//  key_f2=\E[12~, +//  key_f20=\E[34~, +//  key_f3=\E[13~, +//  key_f4=\E[14~, +//  key_f5=\E[15~, +//  key_f6=\E[17~, +//  key_f7=\E[18~, +//  key_f8=\E[19~, +//  key_f9=\E[20~, +//  key_home=\E[1~, +//  key_ic=\E[2~, +//  key_left=\EOD, +//  key_mouse=\E[M, +//  key_npage=\E[6~, +//  key_ppage=\E[5~, +//  key_right=\EOC, +//  key_sf=\E[B, +//  key_sleft=\E[D, +//  key_sr=\E[A, +//  key_sright=\E[C, +//  key_suspend=^Z, +//  key_up=\EOA, +//  keypad_local=\E[?1l\E>, +//  keypad_xmit=\E[?1h\E=, +//  newline=\r\n, +//  orig_colors=\E]R, +//  orig_pair=\E[39;49m, +//  parm_dch=\E[%p1%dP, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_index=\E[%p1%dS, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_rindex=\E[%p1%dT, +//  parm_up_cursor=\E[%p1%dA, +//  reset_2string=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l, +//  restore_cursor=\E8, +//  row_address=\E[%i%p1%dd, +//  save_cursor=\E7, +//  scroll_forward=\n, +//  scroll_reverse=\EM, +//  set0_des_seq=\E[10m, +//  set1_des_seq=\E[11m, +//  set2_des_seq=\E[12m, +//  set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, +//  set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, +//  set_attributes=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t^N%e^O%;, +//  set_tab=\EH, +//  tab=^I, +//  to_status_line=\E]0;, +//  user6=\E[%i%d;%dR, +//  user7=\E[6n, +//  user8=\E[?6c, +//  user9=\E[c, +static const int8_t putty_256colour_terminfo[] = { +  30,2,48,0,29,0,16,0,125,1,-106,4,112,117,116,116,121,45,50,53,54,99,111,108,111,114,124,80,117,84,84,89,32,48,46,53,56,32,119,105,116,104,32,120,116,101,114,109,32,50,53,54,45,99,111,108,111,114,115,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,-1,-1,-1,-1,8,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,22,0,0,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,76,0,80,0,87,0,-1,-1,89,0,96,0,-1,-1,100,0,-1,-1,103,0,107,0,111,0,-1,-1,117,0,119,0,124,0,-127,0,-1,-1,-1,-1,-120,0,-1,-1,-1,-1,-115,0,-110,0,-105,0,-100,0,-91,0,-89,0,-84,0,-1,-1,-73,0,-68,0,-62,0,-56,0,-1,-1,-38,0,-1,-1,-36,0,-1,-1,-1,-1,-1,-1,-2,0,-1,-1,2,1,-1,-1,-1,-1,-1,-1,4,1,-1,-1,9,1,-1,-1,-1,-1,-1,-1,-1,-1,13,1,19,1,25,1,31,1,37,1,43,1,49,1,55,1,61,1,67,1,73,1,78,1,-1,-1,83,1,-1,-1,87,1,92,1,97,1,101,1,105,1,-1,-1,109,1,113,1,121,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-127,1,-1,-1,-124,1,-115,1,-106,1,-1,-1,-97,1,-88,1,-79,1,-70,1,-61,1,-52,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-43,1,-1,-1,-1,-1,-10,1,-7,1,4,2,7,2,9,2,12,2,84,2,-1,-1,87,2,89,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,94,2,-1,-1,-1,-1,-1,-1,-1,-1,98,2,-1,-1,-107,2,-1,-1,-1,-1,-103,2,-97,2,-1,-1,-1,-1,-91,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-84,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-79,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-77,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-73,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-69,2,-63,2,-57,2,-51,2,-45,2,-39,2,-33,2,-27,2,-21,2,-15,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-4,2,7,3,12,3,18,3,22,3,31,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,35,3,-1,-1,-1,-1,-1,-1,39,3,102,3,-1,-1,-1,-1,-1,-1,-90,3,-84,3,-78,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-72,3,-118,4,-112,4,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,27,68,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,77,0,27,91,80,0,27,91,77,0,27,93,48,59,7,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,52,55,104,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,15,0,27,91,109,15,0,27,91,50,74,27,91,63,52,55,108,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,7,0,27,55,27,91,114,27,91,109,27,91,63,55,104,27,91,63,49,59,52,59,54,108,27,91,52,108,27,56,27,62,27,93,82,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,91,49,49,126,0,27,91,50,49,126,0,27,91,49,50,126,0,27,91,49,51,126,0,27,91,49,52,126,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,66,0,27,91,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,13,10,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,60,27,91,34,112,27,91,53,48,59,54,34,112,27,99,27,91,63,51,108,27,93,82,27,91,63,49,48,48,48,108,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,49,37,112,54,37,124,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,93,48,59,0,27,91,71,0,96,96,97,97,102,102,103,103,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,40,66,27,41,48,0,27,91,52,126,0,26,0,27,91,68,0,27,91,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,54,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,82,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,49,48,109,0,27,91,49,49,109,0,27,91,49,50,109,0,37,63,37,112,49,37,123,56,125,37,61,37,116,27,37,37,71,-30,-105,-104,27,37,37,64,37,101,37,112,49,37,123,49,48,125,37,61,37,116,27,37,37,71,-30,-105,-103,27,37,37,64,37,101,37,112,49,37,123,49,50,125,37,61,37,116,27,37,37,71,-30,-103,-128,27,37,37,64,37,101,37,112,49,37,123,49,51,125,37,61,37,116,27,37,37,71,-30,-103,-86,27,37,37,64,37,101,37,112,49,37,123,49,52,125,37,61,37,116,27,37,37,71,-30,-103,-85,27,37,37,64,37,101,37,112,49,37,123,49,53,125,37,61,37,116,27,37,37,71,-30,-104,-68,27,37,37,64,37,101,37,112,49,37,123,50,55,125,37,61,37,116,27,37,37,71,-30,-122,-112,27,37,37,64,37,101,37,112,49,37,123,49,53,53,125,37,61,37,116,27,37,37,71,-32,-126,-94,27,37,37,64,37,101,37,112,49,37,99,37,59,0,27,91,49,49,109,0,27,91,49,48,109,0,3,0,1,0,60,0,124,0,74,1,0,0,1,0,1,0,0,0,-1,-1,0,0,-1,-1,-1,-1,-1,-1,5,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,39,0,45,0,50,0,55,0,60,0,65,0,70,0,74,0,79,0,84,0,89,0,94,0,99,0,105,0,111,0,117,0,123,0,-127,0,-121,0,-115,0,-109,0,-103,0,-97,0,-91,0,-85,0,-80,0,-75,0,-69,0,-63,0,-57,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,25,1,30,1,35,1,40,1,45,1,49,1,53,1,57,1,61,1,27,91,51,74,0,27,93,48,59,0,65,88,0,71,48,0,88,84,0,85,56,0,69,48,0,69,51,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,53,0,107,73,67,54,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,53,0,107,78,88,84,54,0,107,80,82,86,51,0,107,80,82,86,53,0,107,80,82,86,54,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,120,109,0 +}; + +// rxvt-256color|rxvt 2.7.9 with xterm 256-colors, +//  auto_right_margin, +//  back_color_erase, +//  backspaces_with_bs, +//  can_change, +//  eat_newline_glitch, +//  erase_overstrike, +//  move_insert_mode, +//  move_standout_mode, +//  xon_xoff, +//  columns#80, +//  init_tabs#8, +//  lines#24, +//  max_colors#0x100, +//  max_pairs#0x10000, +//  acs_chars=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +//  bell=^G, +//  carriage_return=\r, +//  change_scroll_region=\E[%i%p1%d;%p2%dr, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[2J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\n, +//  cursor_home=\E[H, +//  cursor_invisible=\E[?25l, +//  cursor_left=^H, +//  cursor_normal=\E[?25h, +//  cursor_right=\E[C, +//  cursor_up=\E[A, +//  delete_line=\E[M, +//  ena_acs=\E(B\E)0, +//  enter_alt_charset_mode=^N, +//  enter_blink_mode=\E[5m, +//  enter_bold_mode=\E[1m, +//  enter_ca_mode=\E7\E[?47h, +//  enter_insert_mode=\E[4h, +//  enter_reverse_mode=\E[7m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  exit_alt_charset_mode=^O, +//  exit_attribute_mode=\E[m^O, +//  exit_ca_mode=\E[2J\E[?47l\E8, +//  exit_insert_mode=\E[4l, +//  exit_standout_mode=\E[27m, +//  exit_underline_mode=\E[24m, +//  flash_screen=\E[?5h$<100/>\E[?5l, +//  init_1string=\E[?47l\E=\E[?1l, +//  init_2string=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, +//  initialize_color=\E]4;%p1%d;rgb\072%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\, +//  insert_character=\E[@, +//  insert_line=\E[L, +//  key_a1=\EOw, +//  key_a3=\EOy, +//  key_b2=\EOu, +//  key_backspace=^H, +//  key_btab=\E[Z, +//  key_c1=\EOq, +//  key_c3=\EOs, +//  key_dc=\E[3~, +//  key_down=\E[B, +//  key_end=\E[8~, +//  key_enter=\EOM, +//  key_eol=\E[8\136, +//  key_f0=\E[21~, +//  key_f1=\E[11~, +//  key_f10=\E[21~, +//  key_f11=\E[23~, +//  key_f12=\E[24~, +//  key_f13=\E[25~, +//  key_f14=\E[26~, +//  key_f15=\E[28~, +//  key_f16=\E[29~, +//  key_f17=\E[31~, +//  key_f18=\E[32~, +//  key_f19=\E[33~, +//  key_f2=\E[12~, +//  key_f20=\E[34~, +//  key_f21=\E[23$, +//  key_f22=\E[24$, +//  key_f23=\E[11\136, +//  key_f24=\E[12\136, +//  key_f25=\E[13\136, +//  key_f26=\E[14\136, +//  key_f27=\E[15\136, +//  key_f28=\E[17\136, +//  key_f29=\E[18\136, +//  key_f3=\E[13~, +//  key_f30=\E[19\136, +//  key_f31=\E[20\136, +//  key_f32=\E[21\136, +//  key_f33=\E[23\136, +//  key_f34=\E[24\136, +//  key_f35=\E[25\136, +//  key_f36=\E[26\136, +//  key_f37=\E[28\136, +//  key_f38=\E[29\136, +//  key_f39=\E[31\136, +//  key_f4=\E[14~, +//  key_f40=\E[32\136, +//  key_f41=\E[33\136, +//  key_f42=\E[34\136, +//  key_f43=\E[23@, +//  key_f44=\E[24@, +//  key_f5=\E[15~, +//  key_f6=\E[17~, +//  key_f7=\E[18~, +//  key_f8=\E[19~, +//  key_f9=\E[20~, +//  key_find=\E[1~, +//  key_home=\E[7~, +//  key_ic=\E[2~, +//  key_left=\E[D, +//  key_mouse=\E[M, +//  key_npage=\E[6~, +//  key_ppage=\E[5~, +//  key_right=\E[C, +//  key_sdc=\E[3$, +//  key_select=\E[4~, +//  key_send=\E[8$, +//  key_sf=\E[a, +//  key_shome=\E[7$, +//  key_sic=\E[2$, +//  key_sleft=\E[d, +//  key_snext=\E[6$, +//  key_sprevious=\E[5$, +//  key_sr=\E[b, +//  key_sright=\E[c, +//  key_up=\E[A, +//  keypad_local=\E>, +//  keypad_xmit=\E=, +//  orig_colors=\E]104^G, +//  orig_pair=\E[39;49m, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_ich=\E[%p1%d@, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_up_cursor=\E[%p1%dA, +//  reset_1string=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, +//  reset_2string=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, +//  restore_cursor=\E8, +//  row_address=\E[%i%p1%dd, +//  save_cursor=\E7, +//  scroll_forward=\n, +//  scroll_reverse=\EM, +//  set0_des_seq=\E(B, +//  set1_des_seq=\E(0, +//  set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, +//  set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, +//  set_attributes=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t^N%e^O%;, +//  set_tab=\EH, +//  tab=^I, +//  user6=\E[%i%d;%dR, +//  user7=\E[6n, +//  user8=\E[?1;2c, +//  user9=\E[c, +static const int8_t rxvt_256colour_terminfo[] = { +  30,2,47,0,38,0,15,0,110,1,-31,4,114,120,118,116,45,50,53,54,99,111,108,111,114,124,114,120,118,116,32,50,46,55,46,57,32,119,105,116,104,32,120,116,101,114,109,32,50,53,54,45,99,111,108,111,114,115,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,-1,-1,0,0,2,0,4,0,21,0,26,0,34,0,38,0,42,0,-1,-1,53,0,70,0,72,0,76,0,83,0,-1,-1,85,0,92,0,-1,-1,96,0,-1,-1,-1,-1,100,0,-1,-1,-1,-1,104,0,106,0,111,0,116,0,-1,-1,-1,-1,125,0,-1,-1,-1,-1,-126,0,-121,0,-116,0,-1,-1,-111,0,-109,0,-104,0,-1,-1,-91,0,-86,0,-80,0,-74,0,-1,-1,-1,-1,-56,0,-42,0,-1,-1,-1,-1,-8,0,-4,0,-1,-1,0,1,-1,-1,-1,-1,-1,-1,2,1,-1,-1,7,1,-1,-1,11,1,-1,-1,16,1,22,1,28,1,34,1,40,1,46,1,52,1,58,1,64,1,70,1,76,1,82,1,87,1,-1,-1,92,1,-1,-1,96,1,101,1,106,1,110,1,114,1,-1,-1,118,1,122,1,125,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-128,1,-119,1,-110,1,-1,-1,-101,1,-92,1,-83,1,-1,-1,-74,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-65,1,-32,1,-1,-1,-1,-1,18,2,21,2,32,2,35,2,37,2,40,2,107,2,-1,-1,110,2,-1,-1,-1,-1,-1,-1,-1,-1,112,2,116,2,120,2,124,2,-128,2,-1,-1,-1,-1,-124,2,-1,-1,-73,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-69,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-62,2,-57,2,-1,-1,-53,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-48,2,-1,-1,-43,2,-38,2,-1,-1,-1,-1,-1,-1,-1,-1,-33,2,-28,2,-23,2,-1,-1,-1,-1,-19,2,-1,-1,-14,2,-1,-1,-1,-1,-1,-1,-9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-5,2,1,3,7,3,13,3,19,3,25,3,31,3,37,3,43,3,49,3,55,3,61,3,67,3,73,3,79,3,85,3,91,3,97,3,103,3,109,3,115,3,121,3,127,3,-123,3,-117,3,-111,3,-105,3,-99,3,-93,3,-87,3,-81,3,-75,3,-69,3,-63,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-57,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-52,3,-41,3,-36,3,-28,3,-24,3,-15,3,-8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,86,4,-1,-1,-1,-1,-1,-1,90,4,-103,4,-1,-1,-1,-1,-1,-1,-39,4,-35,4,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,77,0,14,0,27,91,53,109,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,52,104,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,27,91,63,52,55,108,27,61,27,91,63,49,108,0,27,91,114,27,91,109,27,91,50,74,27,91,72,27,91,63,55,104,27,91,63,49,59,51,59,52,59,54,108,27,91,52,108,0,27,91,64,0,27,91,76,0,8,0,27,91,51,126,0,27,91,66,0,27,91,56,94,0,27,91,50,49,126,0,27,91,49,49,126,0,27,91,50,49,126,0,27,91,49,50,126,0,27,91,49,51,126,0,27,91,49,52,126,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,55,126,0,27,91,50,126,0,27,91,68,0,27,91,54,126,0,27,91,53,126,0,27,91,67,0,27,91,97,0,27,91,98,0,27,91,65,0,27,62,0,27,61,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,62,27,91,49,59,51,59,52,59,53,59,54,108,27,91,63,55,104,27,91,109,27,91,114,27,91,50,74,27,91,72,0,27,91,114,27,91,109,27,91,50,74,27,91,72,27,91,63,55,104,27,91,63,49,59,51,59,52,59,54,108,27,91,52,108,27,62,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,79,119,0,27,79,121,0,27,79,117,0,27,79,113,0,27,79,115,0,96,96,97,97,102,102,103,103,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,40,66,27,41,48,0,27,91,56,126,0,27,79,77,0,27,91,49,126,0,27,91,51,36,0,27,91,52,126,0,27,91,56,36,0,27,91,55,36,0,27,91,50,36,0,27,91,100,0,27,91,54,36,0,27,91,53,36,0,27,91,99,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,50,53,126,0,27,91,50,54,126,0,27,91,50,56,126,0,27,91,50,57,126,0,27,91,51,49,126,0,27,91,51,50,126,0,27,91,51,51,126,0,27,91,51,52,126,0,27,91,50,51,36,0,27,91,50,52,36,0,27,91,49,49,94,0,27,91,49,50,94,0,27,91,49,51,94,0,27,91,49,52,94,0,27,91,49,53,94,0,27,91,49,55,94,0,27,91,49,56,94,0,27,91,49,57,94,0,27,91,50,48,94,0,27,91,50,49,94,0,27,91,50,51,94,0,27,91,50,52,94,0,27,91,50,53,94,0,27,91,50,54,94,0,27,91,50,56,94,0,27,91,50,57,94,0,27,91,51,49,94,0,27,91,51,50,94,0,27,91,51,51,94,0,27,91,51,52,94,0,27,91,50,51,64,0,27,91,50,52,64,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,49,59,50,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,40,66,0,27,40,48,0,0,2,0,0,0,25,0,52,0,-27,0,1,1,-1,-1,-1,-1,0,0,5,0,10,0,14,0,18,0,23,0,28,0,33,0,38,0,43,0,48,0,52,0,57,0,62,0,67,0,72,0,76,0,80,0,84,0,88,0,92,0,96,0,-1,-1,0,0,3,0,6,0,9,0,12,0,17,0,22,0,26,0,31,0,37,0,43,0,49,0,55,0,60,0,65,0,71,0,77,0,83,0,89,0,95,0,101,0,105,0,110,0,114,0,118,0,122,0,126,0,27,91,51,94,0,27,91,51,64,0,27,91,98,0,27,79,98,0,27,91,56,94,0,27,91,56,64,0,27,91,55,94,0,27,91,55,64,0,27,91,50,94,0,27,91,50,64,0,27,79,100,0,27,91,54,94,0,27,91,54,64,0,27,91,53,94,0,27,91,53,64,0,27,79,99,0,27,91,97,0,27,79,97,0,27,79,120,0,27,79,116,0,27,79,118,0,27,79,114,0,65,88,0,88,84,0,84,83,0,88,77,0,107,68,67,53,0,107,68,67,54,0,107,68,78,0,107,68,78,53,0,107,69,78,68,53,0,107,69,78,68,54,0,107,72,79,77,53,0,107,72,79,77,54,0,107,73,67,53,0,107,73,67,54,0,107,76,70,84,53,0,107,78,88,84,53,0,107,78,88,84,54,0,107,80,82,86,53,0,107,80,82,86,54,0,107,82,73,84,53,0,107,85,80,0,107,85,80,53,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,120,109,0 +}; + +// screen-256color|GNU Screen with 256 colors, +//  auto_right_margin, +//  backspaces_with_bs, +//  eat_newline_glitch, +//  has_hardware_tabs, +//  has_meta_key, +//  move_insert_mode, +//  move_standout_mode, +//  columns#80, +//  init_tabs#8, +//  lines#24, +//  max_colors#0x100, +//  max_pairs#0x10000, +//  acs_chars=++\054\054--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +//  back_tab=\E[Z, +//  bell=^G, +//  carriage_return=\r, +//  change_scroll_region=\E[%i%p1%d;%p2%dr, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\n, +//  cursor_home=\E[H, +//  cursor_invisible=\E[?25l, +//  cursor_left=^H, +//  cursor_normal=\E[34h\E[?25h, +//  cursor_right=\E[C, +//  cursor_up=\EM, +//  cursor_visible=\E[34l, +//  delete_character=\E[P, +//  delete_line=\E[M, +//  ena_acs=\E(B\E)0, +//  enter_alt_charset_mode=^N, +//  enter_blink_mode=\E[5m, +//  enter_bold_mode=\E[1m, +//  enter_ca_mode=\E[?1049h, +//  enter_dim_mode=\E[2m, +//  enter_insert_mode=\E[4h, +//  enter_reverse_mode=\E[7m, +//  enter_standout_mode=\E[3m, +//  enter_underline_mode=\E[4m, +//  exit_alt_charset_mode=^O, +//  exit_attribute_mode=\E[m^O, +//  exit_ca_mode=\E[?1049l, +//  exit_insert_mode=\E[4l, +//  exit_standout_mode=\E[23m, +//  exit_underline_mode=\E[24m, +//  flash_screen=\Eg, +//  init_2string=\E)0, +//  insert_line=\E[L, +//  key_backspace=^H, +//  key_btab=\E[Z, +//  key_dc=\E[3~, +//  key_down=\EOB, +//  key_end=\E[4~, +//  key_f1=\EOP, +//  key_f10=\E[21~, +//  key_f11=\E[23~, +//  key_f12=\E[24~, +//  key_f2=\EOQ, +//  key_f3=\EOR, +//  key_f4=\EOS, +//  key_f5=\E[15~, +//  key_f6=\E[17~, +//  key_f7=\E[18~, +//  key_f8=\E[19~, +//  key_f9=\E[20~, +//  key_home=\E[1~, +//  key_ic=\E[2~, +//  key_left=\EOD, +//  key_mouse=\E[M, +//  key_npage=\E[6~, +//  key_ppage=\E[5~, +//  key_right=\EOC, +//  key_up=\EOA, +//  keypad_local=\E[?1l\E>, +//  keypad_xmit=\E[?1h\E=, +//  newline=\EE, +//  orig_pair=\E[39;49m, +//  parm_dch=\E[%p1%dP, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_ich=\E[%p1%d@, +//  parm_index=\E[%p1%dS, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_up_cursor=\E[%p1%dA, +//  reset_2string=\Ec\E[?1000l\E[?25h, +//  restore_cursor=\E8, +//  row_address=\E[%i%p1%dd, +//  save_cursor=\E7, +//  scroll_forward=\n, +//  scroll_reverse=\EM, +//  set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, +//  set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, +//  set_attributes=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t^N%e^O%;, +//  set_tab=\EH, +//  tab=^I, +static const int8_t screen_256colour_terminfo[] = { +  30,2,43,0,43,0,15,0,105,1,4,3,115,99,114,101,101,110,45,50,53,54,99,111,108,111,114,124,71,78,85,32,83,99,114,101,101,110,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,75,0,79,0,86,0,-1,-1,88,0,100,0,-1,-1,104,0,107,0,113,0,117,0,-1,-1,-1,-1,121,0,123,0,-128,0,-123,0,-1,-1,-114,0,-109,0,-1,-1,-1,-1,-104,0,-99,0,-94,0,-1,-1,-89,0,-87,0,-82,0,-1,-1,-73,0,-68,0,-62,0,-56,0,-1,-1,-1,-1,-1,-1,-53,0,-1,-1,-1,-1,-1,-1,-49,0,-1,-1,-45,0,-1,-1,-1,-1,-1,-1,-43,0,-1,-1,-38,0,-1,-1,-1,-1,-1,-1,-1,-1,-34,0,-30,0,-24,0,-20,0,-16,0,-12,0,-6,0,0,1,6,1,12,1,18,1,23,1,-1,-1,28,1,-1,-1,32,1,37,1,42,1,-1,-1,-1,-1,-1,-1,46,1,50,1,58,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,66,1,-1,-1,69,1,78,1,87,1,96,1,105,1,114,1,123,1,-124,1,-1,-1,-115,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-106,1,-1,-1,-1,-1,-89,1,-86,1,-75,1,-72,1,-70,1,-67,1,17,2,-1,-1,20,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,22,2,-1,-1,87,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,91,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,98,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,103,2,109,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,115,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,120,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-127,2,-1,-1,-1,-1,-1,-1,-123,2,-60,2,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,51,52,104,27,91,63,50,53,104,0,27,91,67,0,27,77,0,27,91,51,52,108,0,27,91,80,0,27,91,77,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,50,109,0,27,91,52,104,0,27,91,55,109,0,27,91,51,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,63,49,48,52,57,108,0,27,91,52,108,0,27,91,50,51,109,0,27,91,50,52,109,0,27,103,0,27,41,48,0,27,91,76,0,8,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,49,37,116,59,51,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,51,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,43,43,44,44,45,45,46,46,48,48,96,96,97,97,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,40,66,27,41,48,0,27,91,52,126,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,75,0,27,91,51,57,59,52,57,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,3,0,1,0,33,0,70,0,-71,0,1,1,0,0,1,0,0,0,0,0,4,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,29,0,34,0,39,0,44,0,49,0,53,0,58,0,63,0,68,0,73,0,78,0,84,0,90,0,96,0,102,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-102,0,-98,0,-94,0,-90,0,-86,0,27,40,66,0,27,40,37,112,49,37,99,0,65,88,0,71,48,0,88,84,0,85,56,0,69,48,0,83,48,0,84,83,0,88,77,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,53,0,107,72,79,77,53,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,120,109,0 +}; + +// st-256color|stterm-256color|simpleterm with 256 colors, +//  auto_right_margin, +//  back_color_erase, +//  eat_newline_glitch, +//  has_status_line, +//  move_insert_mode, +//  move_standout_mode, +//  no_pad_char, +//  columns#80, +//  init_tabs#8, +//  lines#24, +//  max_colors#0x100, +//  max_pairs#0x10000, +//  acs_chars=+C\054D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +//  back_tab=\E[Z, +//  bell=^G, +//  carriage_return=\r, +//  change_scroll_region=\E[%i%p1%d;%p2%dr, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[2J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\n, +//  cursor_home=\E[H, +//  cursor_invisible=\E[?25l, +//  cursor_left=^H, +//  cursor_normal=\E[?12l\E[?25h, +//  cursor_right=\E[C, +//  cursor_up=\E[A, +//  cursor_visible=\E[?25h, +//  delete_character=\E[P, +//  delete_line=\E[M, +//  dis_status_line=\E]0;^G, +//  ena_acs=\E)0, +//  enter_alt_charset_mode=\E(0, +//  enter_blink_mode=\E[5m, +//  enter_bold_mode=\E[1m, +//  enter_ca_mode=\E[?1049h, +//  enter_dim_mode=\E[2m, +//  enter_insert_mode=\E[4h, +//  enter_italics_mode=\E[3m, +//  enter_reverse_mode=\E[7m, +//  enter_secure_mode=\E[8m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  erase_chars=\E[%p1%dX, +//  exit_alt_charset_mode=\E(B, +//  exit_attribute_mode=\E[0m, +//  exit_ca_mode=\E[?1049l, +//  exit_insert_mode=\E[4l, +//  exit_italics_mode=\E[23m, +//  exit_standout_mode=\E[27m, +//  exit_underline_mode=\E[24m, +//  flash_screen=\E[?5h$<100/>\E[?5l, +//  from_status_line=^G, +//  init_2string=\E[4l\E>\E[?1034l, +//  initialize_color@, +//  insert_line=\E[L, +//  key_a1=\E[1~, +//  key_a3=\E[5~, +//  key_b2=\EOu, +//  key_backspace=\177, +//  key_c1=\E[4~, +//  key_c3=\E[6~, +//  key_clear=\E[3;5~, +//  key_dc=\E[3~, +//  key_dl=\E[3;2~, +//  key_down=\EOB, +//  key_eic=\E[2;2~, +//  key_end=\E[4~, +//  key_eol=\E[1;2F, +//  key_eos=\E[1;5F, +//  key_f1=\EOP, +//  key_f10=\E[21~, +//  key_f11=\E[23~, +//  key_f12=\E[24~, +//  key_f13=\E[1;2P, +//  key_f14=\E[1;2Q, +//  key_f15=\E[1;2R, +//  key_f16=\E[1;2S, +//  key_f17=\E[15;2~, +//  key_f18=\E[17;2~, +//  key_f19=\E[18;2~, +//  key_f2=\EOQ, +//  key_f20=\E[19;2~, +//  key_f21=\E[20;2~, +//  key_f22=\E[21;2~, +//  key_f23=\E[23;2~, +//  key_f24=\E[24;2~, +//  key_f25=\E[1;5P, +//  key_f26=\E[1;5Q, +//  key_f27=\E[1;5R, +//  key_f28=\E[1;5S, +//  key_f29=\E[15;5~, +//  key_f3=\EOR, +//  key_f30=\E[17;5~, +//  key_f31=\E[18;5~, +//  key_f32=\E[19;5~, +//  key_f33=\E[20;5~, +//  key_f34=\E[21;5~, +//  key_f35=\E[23;5~, +//  key_f36=\E[24;5~, +//  key_f37=\E[1;6P, +//  key_f38=\E[1;6Q, +//  key_f39=\E[1;6R, +//  key_f4=\EOS, +//  key_f40=\E[1;6S, +//  key_f41=\E[15;6~, +//  key_f42=\E[17;6~, +//  key_f43=\E[18;6~, +//  key_f44=\E[19;6~, +//  key_f45=\E[20;6~, +//  key_f46=\E[21;6~, +//  key_f47=\E[23;6~, +//  key_f48=\E[24;6~, +//  key_f49=\E[1;3P, +//  key_f5=\E[15~, +//  key_f50=\E[1;3Q, +//  key_f51=\E[1;3R, +//  key_f52=\E[1;3S, +//  key_f53=\E[15;3~, +//  key_f54=\E[17;3~, +//  key_f55=\E[18;3~, +//  key_f56=\E[19;3~, +//  key_f57=\E[20;3~, +//  key_f58=\E[21;3~, +//  key_f59=\E[23;3~, +//  key_f6=\E[17~, +//  key_f60=\E[24;3~, +//  key_f61=\E[1;4P, +//  key_f62=\E[1;4Q, +//  key_f63=\E[1;4R, +//  key_f7=\E[18~, +//  key_f8=\E[19~, +//  key_f9=\E[20~, +//  key_home=\E[1~, +//  key_ic=\E[2~, +//  key_il=\E[2;5~, +//  key_left=\EOD, +//  key_mouse=\E[M, +//  key_npage=\E[6~, +//  key_ppage=\E[5~, +//  key_right=\EOC, +//  key_sdc=\E[3;2~, +//  key_send=\E[1;2F, +//  key_sf=\E[1;2B, +//  key_shome=\E[1;2H, +//  key_sic=\E[2;2~, +//  key_sleft=\E[1;2D, +//  key_snext=\E[6;2~, +//  key_sprevious=\E[5;2~, +//  key_sr=\E[1;2A, +//  key_sright=\E[1;2C, +//  key_up=\EOA, +//  keypad_local=\E[?1l\E>, +//  keypad_xmit=\E[?1h\E=, +//  orig_colors@, +//  orig_pair=\E[39;49m, +//  parm_dch=\E[%p1%dP, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_ich=\E[%p1%d@, +//  parm_index=\E[%p1%dS, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_up_cursor=\E[%p1%dA, +//  print_screen=\E[i, +//  prtr_off=\E[4i, +//  prtr_on=\E[5i, +//  reset_1string=\Ec, +//  reset_2string=\E[4l\E>\E[?1034l, +//  restore_cursor=\E8, +//  row_address=\E[%i%p1%dd, +//  save_cursor=\E7, +//  scroll_forward=\n, +//  scroll_reverse=\EM, +//  set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, +//  set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, +//  set_attributes=%?%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%;%?%p7%t;8%;m, +//  set_tab=\EH, +//  tab=^I, +//  to_status_line=\E]0;, +//  user6=\E[%i%d;%dR, +//  user7=\E[6n, +//  user8=\E[?1;2c, +//  user9=\E[c, +static const int8_t st_256colour_terminfo[] = { +  30,2,55,0,29,0,15,0,105,1,-125,5,115,116,45,50,53,54,99,111,108,111,114,124,115,116,116,101,114,109,45,50,53,54,99,111,108,111,114,124,115,105,109,112,108,101,116,101,114,109,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,38,0,42,0,46,0,-1,-1,57,0,74,0,76,0,80,0,87,0,-1,-1,89,0,102,0,-1,-1,106,0,110,0,117,0,121,0,125,0,-1,-1,-125,0,-121,0,-116,0,-111,0,-1,-1,-102,0,-97,0,-92,0,-1,-1,-87,0,-82,0,-77,0,-72,0,-63,0,-59,0,-54,0,-1,-1,-45,0,-40,0,-34,0,-28,0,-1,-1,-10,0,-1,-1,-8,0,-1,-1,-1,-1,-1,-1,7,1,-1,-1,11,1,-1,-1,13,1,-1,-1,20,1,25,1,32,1,36,1,43,1,50,1,-1,-1,57,1,61,1,67,1,71,1,75,1,79,1,85,1,91,1,97,1,103,1,109,1,114,1,119,1,126,1,-1,-1,-126,1,-121,1,-116,1,-112,1,-105,1,-1,-1,-98,1,-94,1,-86,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-78,1,-69,1,-60,1,-51,1,-42,1,-33,1,-24,1,-15,1,-1,-1,-6,1,-1,-1,-1,-1,-1,-1,3,2,7,2,12,2,-1,-1,17,2,20,2,-1,-1,-1,-1,35,2,38,2,49,2,52,2,54,2,57,2,-106,2,-1,-1,-103,2,-101,2,-1,-1,-1,-1,-1,-1,-96,2,-91,2,-86,2,-82,2,-77,2,-1,-1,-1,-1,-72,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-7,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-3,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,-1,-1,-1,-1,9,3,-1,-1,-1,-1,-1,-1,-1,-1,16,3,23,3,30,3,-1,-1,-1,-1,37,3,-1,-1,44,3,-1,-1,-1,-1,-1,-1,51,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,58,3,64,3,70,3,77,3,84,3,91,3,98,3,106,3,114,3,122,3,-126,3,-118,3,-110,3,-102,3,-94,3,-87,3,-80,3,-73,3,-66,3,-58,3,-50,3,-42,3,-34,3,-26,3,-18,3,-10,3,-2,3,5,4,12,4,19,4,26,4,34,4,42,4,50,4,58,4,66,4,74,4,82,4,90,4,97,4,104,4,111,4,118,4,126,4,-122,4,-114,4,-106,4,-98,4,-90,4,-82,4,-74,4,-67,4,-60,4,-53,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-48,4,-37,4,-32,4,-24,4,-20,4,-2,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-11,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-6,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,5,-1,-1,-1,-1,-1,-1,4,5,67,5,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,49,50,108,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,63,50,53,104,0,27,91,80,0,27,91,77,0,27,93,48,59,7,0,27,40,48,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,40,66,0,27,91,48,109,0,27,91,63,49,48,52,57,108,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,7,0,27,91,52,108,27,62,27,91,63,49,48,51,52,108,0,27,91,76,0,127,0,27,91,51,59,53,126,0,27,91,51,126,0,27,91,51,59,50,126,0,27,79,66,0,27,91,50,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,53,70,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,91,50,59,53,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,91,105,0,27,91,52,105,0,27,91,53,105,0,27,99,0,27,91,52,108,27,62,27,91,63,49,48,51,52,108,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,37,63,37,112,57,37,116,27,40,48,37,101,27,40,66,37,59,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,55,37,116,59,56,37,59,109,0,27,72,0,9,0,27,93,48,59,0,27,91,49,126,0,27,91,53,126,0,27,79,117,0,27,91,52,126,0,27,91,54,126,0,43,67,44,68,45,65,46,66,48,69,96,96,97,97,102,102,103,103,104,70,105,71,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,41,48,0,27,91,52,126,0,27,91,51,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,49,59,50,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,3,0,1,0,71,0,-110,0,-1,1,0,0,1,0,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,18,0,24,0,34,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,39,0,-1,-1,46,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,53,0,-1,-1,60,0,-1,-1,-1,-1,67,0,-1,-1,74,0,-1,-1,-1,-1,81,0,-1,-1,88,0,-1,-1,-1,-1,95,0,-1,-1,102,0,-1,-1,-1,-1,-1,-1,109,0,-1,-1,116,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,123,0,-127,0,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,36,0,42,0,48,0,53,0,58,0,63,0,68,0,73,0,77,0,82,0,87,0,92,0,97,0,102,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-77,0,-72,0,-67,0,-62,0,-57,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,67,1,72,1,77,1,82,1,87,1,92,1,96,1,100,1,104,1,108,1,113,1,118,1,27,93,53,50,59,37,112,49,37,115,59,37,112,50,37,115,7,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,93,48,59,0,27,91,49,59,51,66,0,27,91,49,59,53,66,0,27,91,49,59,51,68,0,27,91,49,59,53,68,0,27,91,54,59,51,126,0,27,91,54,59,53,126,0,27,91,53,59,51,126,0,27,91,53,59,53,126,0,27,91,49,59,51,67,0,27,91,49,59,53,67,0,27,91,49,59,51,65,0,27,91,49,59,53,65,0,27,91,50,57,109,0,27,91,57,109,0,65,88,0,71,48,0,88,84,0,85,56,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 +}; + +// tmux-256color|tmux with 256 colors, +//  auto_right_margin, +//  backspaces_with_bs, +//  eat_newline_glitch, +//  has_hardware_tabs, +//  has_meta_key, +//  has_status_line, +//  move_insert_mode, +//  move_standout_mode, +//  columns#80, +//  init_tabs#8, +//  lines#24, +//  max_colors#0x100, +//  max_pairs#0x10000, +//  acs_chars=++\054\054--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +//  back_tab=\E[Z, +//  bell=^G, +//  carriage_return=\r, +//  change_scroll_region=\E[%i%p1%d;%p2%dr, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\n, +//  cursor_home=\E[H, +//  cursor_invisible=\E[?25l, +//  cursor_left=^H, +//  cursor_normal=\E[34h\E[?25h, +//  cursor_right=\E[C, +//  cursor_up=\EM, +//  cursor_visible=\E[34l, +//  delete_character=\E[P, +//  delete_line=\E[M, +//  dis_status_line=\E]0;^G, +//  ena_acs=\E(B\E)0, +//  enter_alt_charset_mode=^N, +//  enter_blink_mode=\E[5m, +//  enter_bold_mode=\E[1m, +//  enter_ca_mode=\E[?1049h, +//  enter_dim_mode=\E[2m, +//  enter_insert_mode=\E[4h, +//  enter_italics_mode=\E[3m, +//  enter_reverse_mode=\E[7m, +//  enter_secure_mode=\E[8m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  exit_alt_charset_mode=^O, +//  exit_attribute_mode=\E[m^O, +//  exit_ca_mode=\E[?1049l, +//  exit_insert_mode=\E[4l, +//  exit_italics_mode=\E[23m, +//  exit_standout_mode=\E[27m, +//  exit_underline_mode=\E[24m, +//  flash_screen=\Eg, +//  from_status_line=^G, +//  init_2string=\E)0, +//  insert_line=\E[L, +//  key_backspace=^H, +//  key_btab=\E[Z, +//  key_dc=\E[3~, +//  key_down=\EOB, +//  key_end=\E[4~, +//  key_f1=\EOP, +//  key_f10=\E[21~, +//  key_f11=\E[23~, +//  key_f12=\E[24~, +//  key_f13=\E[1;2P, +//  key_f14=\E[1;2Q, +//  key_f15=\E[1;2R, +//  key_f16=\E[1;2S, +//  key_f17=\E[15;2~, +//  key_f18=\E[17;2~, +//  key_f19=\E[18;2~, +//  key_f2=\EOQ, +//  key_f20=\E[19;2~, +//  key_f21=\E[20;2~, +//  key_f22=\E[21;2~, +//  key_f23=\E[23;2~, +//  key_f24=\E[24;2~, +//  key_f25=\E[1;5P, +//  key_f26=\E[1;5Q, +//  key_f27=\E[1;5R, +//  key_f28=\E[1;5S, +//  key_f29=\E[15;5~, +//  key_f3=\EOR, +//  key_f30=\E[17;5~, +//  key_f31=\E[18;5~, +//  key_f32=\E[19;5~, +//  key_f33=\E[20;5~, +//  key_f34=\E[21;5~, +//  key_f35=\E[23;5~, +//  key_f36=\E[24;5~, +//  key_f37=\E[1;6P, +//  key_f38=\E[1;6Q, +//  key_f39=\E[1;6R, +//  key_f4=\EOS, +//  key_f40=\E[1;6S, +//  key_f41=\E[15;6~, +//  key_f42=\E[17;6~, +//  key_f43=\E[18;6~, +//  key_f44=\E[19;6~, +//  key_f45=\E[20;6~, +//  key_f46=\E[21;6~, +//  key_f47=\E[23;6~, +//  key_f48=\E[24;6~, +//  key_f49=\E[1;3P, +//  key_f5=\E[15~, +//  key_f50=\E[1;3Q, +//  key_f51=\E[1;3R, +//  key_f52=\E[1;3S, +//  key_f53=\E[15;3~, +//  key_f54=\E[17;3~, +//  key_f55=\E[18;3~, +//  key_f56=\E[19;3~, +//  key_f57=\E[20;3~, +//  key_f58=\E[21;3~, +//  key_f59=\E[23;3~, +//  key_f6=\E[17~, +//  key_f60=\E[24;3~, +//  key_f61=\E[1;4P, +//  key_f62=\E[1;4Q, +//  key_f63=\E[1;4R, +//  key_f7=\E[18~, +//  key_f8=\E[19~, +//  key_f9=\E[20~, +//  key_home=\E[1~, +//  key_ic=\E[2~, +//  key_left=\EOD, +//  key_mouse=\E[M, +//  key_npage=\E[6~, +//  key_ppage=\E[5~, +//  key_right=\EOC, +//  key_sdc=\E[3;2~, +//  key_send=\E[1;2F, +//  key_sf=\E[1;2B, +//  key_shome=\E[1;2H, +//  key_sic=\E[2;2~, +//  key_sleft=\E[1;2D, +//  key_snext=\E[6;2~, +//  key_sprevious=\E[5;2~, +//  key_sr=\E[1;2A, +//  key_sright=\E[1;2C, +//  key_up=\EOA, +//  keypad_local=\E[?1l\E>, +//  keypad_xmit=\E[?1h\E=, +//  newline=\EE, +//  orig_pair=\E[39;49m, +//  parm_dch=\E[%p1%dP, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_ich=\E[%p1%d@, +//  parm_index=\E[%p1%dS, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_up_cursor=\E[%p1%dA, +//  reset_2string=\Ec\E[?1000l\E[?25h, +//  restore_cursor=\E8, +//  row_address=\E[%i%p1%dd, +//  save_cursor=\E7, +//  scroll_forward=\n, +//  scroll_reverse=\EM, +//  set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, +//  set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, +//  set_attributes=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t^N%e^O%;, +//  set_tab=\EH, +//  tab=^I, +//  to_status_line=\E]0;, +static const int8_t tmux_256colour_terminfo[] = { +  30,2,35,0,43,0,15,0,105,1,-15,4,116,109,117,120,45,50,53,54,99,111,108,111,114,124,116,109,117,120,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,37,0,41,0,45,0,-1,-1,56,0,73,0,75,0,79,0,86,0,-1,-1,88,0,100,0,-1,-1,104,0,107,0,113,0,117,0,121,0,-1,-1,127,0,-127,0,-122,0,-117,0,-1,-1,-108,0,-103,0,-98,0,-1,-1,-93,0,-88,0,-83,0,-1,-1,-78,0,-76,0,-71,0,-1,-1,-62,0,-57,0,-51,0,-45,0,-1,-1,-42,0,-1,-1,-40,0,-1,-1,-1,-1,-1,-1,-36,0,-1,-1,-32,0,-1,-1,-1,-1,-1,-1,-30,0,-1,-1,-25,0,-1,-1,-1,-1,-1,-1,-1,-1,-21,0,-17,0,-11,0,-7,0,-3,0,1,1,7,1,13,1,19,1,25,1,31,1,36,1,-1,-1,41,1,-1,-1,45,1,50,1,55,1,59,1,66,1,-1,-1,73,1,77,1,85,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,93,1,-1,-1,96,1,105,1,114,1,123,1,-124,1,-115,1,-106,1,-97,1,-1,-1,-88,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-79,1,-1,-1,-1,-1,-62,1,-59,1,-48,1,-45,1,-43,1,-40,1,49,2,-1,-1,52,2,54,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,59,2,-1,-1,124,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-128,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-121,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-116,2,-1,-1,-1,-1,-109,2,-1,-1,-1,-1,-1,-1,-1,-1,-102,2,-95,2,-88,2,-1,-1,-1,-1,-81,2,-1,-1,-74,2,-1,-1,-1,-1,-1,-1,-67,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-60,2,-54,2,-48,2,-41,2,-34,2,-27,2,-20,2,-12,2,-4,2,4,3,12,3,20,3,28,3,36,3,44,3,51,3,58,3,65,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,-128,3,-120,3,-113,3,-106,3,-99,3,-92,3,-84,3,-76,3,-68,3,-60,3,-52,3,-44,3,-36,3,-28,3,-21,3,-14,3,-7,3,0,4,8,4,16,4,24,4,32,4,40,4,48,4,56,4,64,4,71,4,78,4,85,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,90,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,99,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,104,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,110,4,-1,-1,-1,-1,-1,-1,114,4,-79,4,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,51,52,104,27,91,63,50,53,104,0,27,91,67,0,27,77,0,27,91,51,52,108,0,27,91,80,0,27,91,77,0,27,93,48,59,7,0,14,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,15,0,27,91,109,15,0,27,91,63,49,48,52,57,108,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,103,0,7,0,27,41,48,0,27,91,76,0,8,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,91,49,126,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,69,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,65,0,27,99,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,55,37,116,59,56,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,93,48,59,0,43,43,44,44,45,45,46,46,48,48,96,96,97,97,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,40,66,27,41,48,0,27,91,52,126,0,27,91,51,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,51,57,59,52,57,109,0,27,91,51,109,0,27,91,50,51,109,0,27,91,77,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,0,3,0,1,0,73,0,-106,0,65,3,1,1,0,0,1,0,0,0,0,0,7,0,19,0,23,0,28,0,46,0,54,0,60,0,70,0,-1,-1,-1,-1,-1,-1,75,0,82,0,89,0,96,0,103,0,110,0,117,0,124,0,-125,0,-118,0,-111,0,-104,0,-97,0,-90,0,-83,0,-76,0,-1,-1,-69,0,-62,0,-55,0,-48,0,-41,0,-1,-1,-34,0,-27,0,-20,0,-13,0,-6,0,1,1,8,1,15,1,22,1,29,1,36,1,43,1,50,1,57,1,64,1,71,1,78,1,85,1,92,1,99,1,106,1,113,1,120,1,127,1,-122,1,-115,1,-108,1,-101,1,-94,1,-87,1,-80,1,-1,-1,-1,-1,-1,-1,-1,-1,-73,1,-67,1,-1,-1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,36,0,39,0,42,0,48,0,54,0,59,0,64,0,69,0,74,0,79,0,83,0,88,0,93,0,98,0,103,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-76,0,-71,0,-66,0,-61,0,-56,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,69,1,73,1,78,1,83,1,88,1,93,1,98,1,102,1,106,1,110,1,114,1,119,1,124,1,27,93,49,49,50,7,0,27,93,49,50,59,37,112,49,37,115,7,0,27,40,66,0,27,91,51,74,0,27,93,53,50,59,37,112,49,37,115,59,37,112,50,37,115,7,0,27,40,37,112,49,37,99,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,93,48,59,0,27,91,51,59,51,126,0,27,91,51,59,52,126,0,27,91,51,59,53,126,0,27,91,51,59,54,126,0,27,91,51,59,55,126,0,27,91,49,59,50,66,0,27,91,49,59,51,66,0,27,91,49,59,52,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,55,66,0,27,91,49,59,51,70,0,27,91,49,59,52,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,55,70,0,27,91,49,59,51,72,0,27,91,49,59,52,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,55,72,0,27,91,50,59,51,126,0,27,91,50,59,52,126,0,27,91,50,59,53,126,0,27,91,50,59,54,126,0,27,91,50,59,55,126,0,27,91,49,59,51,68,0,27,91,49,59,52,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,91,49,59,55,68,0,27,91,54,59,51,126,0,27,91,54,59,52,126,0,27,91,54,59,53,126,0,27,91,54,59,54,126,0,27,91,54,59,55,126,0,27,91,53,59,51,126,0,27,91,53,59,52,126,0,27,91,53,59,53,126,0,27,91,53,59,54,126,0,27,91,53,59,55,126,0,27,91,49,59,51,67,0,27,91,49,59,52,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,91,49,59,55,67,0,27,91,49,59,50,65,0,27,91,49,59,51,65,0,27,91,49,59,52,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,49,59,55,65,0,27,91,50,57,109,0,27,91,57,109,0,65,88,0,71,48,0,88,84,0,85,56,0,67,114,0,67,115,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 +}; + +// vte-256color|VTE with xterm 256-colors, +//  auto_right_margin, +//  back_color_erase, +//  backspaces_with_bs, +//  can_change, +//  eat_newline_glitch, +//  move_insert_mode, +//  move_standout_mode, +//  columns#80, +//  init_tabs#8, +//  lines#24, +//  max_colors#0x100, +//  max_pairs#0x10000, +//  acs_chars=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +//  back_tab=\E[Z, +//  bell=^G, +//  carriage_return=\r, +//  change_scroll_region=\E[%i%p1%d;%p2%dr, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[2J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\n, +//  cursor_home=\E[H, +//  cursor_invisible=\E[?25l, +//  cursor_left=^H, +//  cursor_normal=\E[?25h, +//  cursor_right=\E[C, +//  cursor_up=\E[A, +//  delete_character=\E[P, +//  delete_line=\E[M, +//  ena_acs=\E)0, +//  enter_alt_charset_mode=^N, +//  enter_am_mode=\E[?7h, +//  enter_bold_mode=\E[1m, +//  enter_ca_mode=\E7\E[?47h, +//  enter_dim_mode=\E[2m, +//  enter_insert_mode=\E[4h, +//  enter_italics_mode=\E[3m, +//  enter_reverse_mode=\E[7m, +//  enter_secure_mode=\E[8m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  erase_chars=\E[%p1%dX, +//  exit_alt_charset_mode=^O, +//  exit_am_mode=\E[?7l, +//  exit_attribute_mode=\E[0m^O, +//  exit_ca_mode=\E[2J\E[?47l\E8, +//  exit_insert_mode=\E[4l, +//  exit_italics_mode=\E[23m, +//  exit_standout_mode=\E[27m, +//  exit_underline_mode=\E[24m, +//  flash_screen=\E[?5h$<100/>\E[?5l, +//  init_2string=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, +//  initialize_color=\E]4;%p1%d;rgb\072%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\, +//  insert_line=\E[L, +//  key_b2=\E[E, +//  key_backspace=\177, +//  key_btab=\E[Z, +//  key_dc=\E[3~, +//  key_down=\EOB, +//  key_end=\EOF, +//  key_enter=\EOM, +//  key_f1=\EOP, +//  key_f10=\E[21~, +//  key_f11=\E[23~, +//  key_f12=\E[24~, +//  key_f13=\E[1;2P, +//  key_f14=\E[1;2Q, +//  key_f15=\E[1;2R, +//  key_f16=\E[1;2S, +//  key_f17=\E[15;2~, +//  key_f18=\E[17;2~, +//  key_f19=\E[18;2~, +//  key_f2=\EOQ, +//  key_f20=\E[19;2~, +//  key_f21=\E[20;2~, +//  key_f22=\E[21;2~, +//  key_f23=\E[23;2~, +//  key_f24=\E[24;2~, +//  key_f25=\E[1;5P, +//  key_f26=\E[1;5Q, +//  key_f27=\E[1;5R, +//  key_f28=\E[1;5S, +//  key_f29=\E[15;5~, +//  key_f3=\EOR, +//  key_f30=\E[17;5~, +//  key_f31=\E[18;5~, +//  key_f32=\E[19;5~, +//  key_f33=\E[20;5~, +//  key_f34=\E[21;5~, +//  key_f35=\E[23;5~, +//  key_f36=\E[24;5~, +//  key_f37=\E[1;6P, +//  key_f38=\E[1;6Q, +//  key_f39=\E[1;6R, +//  key_f4=\EOS, +//  key_f40=\E[1;6S, +//  key_f41=\E[15;6~, +//  key_f42=\E[17;6~, +//  key_f43=\E[18;6~, +//  key_f44=\E[19;6~, +//  key_f45=\E[20;6~, +//  key_f46=\E[21;6~, +//  key_f47=\E[23;6~, +//  key_f48=\E[24;6~, +//  key_f49=\E[1;3P, +//  key_f5=\E[15~, +//  key_f50=\E[1;3Q, +//  key_f51=\E[1;3R, +//  key_f52=\E[1;3S, +//  key_f53=\E[15;3~, +//  key_f54=\E[17;3~, +//  key_f55=\E[18;3~, +//  key_f56=\E[19;3~, +//  key_f57=\E[20;3~, +//  key_f58=\E[21;3~, +//  key_f59=\E[23;3~, +//  key_f6=\E[17~, +//  key_f60=\E[24;3~, +//  key_f61=\E[1;4P, +//  key_f62=\E[1;4Q, +//  key_f63=\E[1;4R, +//  key_f7=\E[18~, +//  key_f8=\E[19~, +//  key_f9=\E[20~, +//  key_find=\E[1~, +//  key_home=\EOH, +//  key_ic=\E[2~, +//  key_left=\EOD, +//  key_mouse=\E[<, +//  key_npage=\E[6~, +//  key_ppage=\E[5~, +//  key_right=\EOC, +//  key_sdc=\E[3;2~, +//  key_select=\E[4~, +//  key_send=\E[1;2F, +//  key_sf=\E[1;2B, +//  key_shome=\E[1;2H, +//  key_sic=\E[2;2~, +//  key_sleft=\E[1;2D, +//  key_snext=\E[6;2~, +//  key_sprevious=\E[5;2~, +//  key_sr=\E[1;2A, +//  key_sright=\E[1;2C, +//  key_up=\EOA, +//  keypad_local=\E[?1l\E>, +//  keypad_xmit=\E[?1h\E=, +//  memory_lock=\El, +//  memory_unlock=\Em, +//  orig_colors=\E]104^G, +//  orig_pair=\E[39;49m, +//  parm_dch=\E[%p1%dP, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_ich=\E[%p1%d@, +//  parm_index=\E[%p1%dS, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_rindex=\E[%p1%dT, +//  parm_up_cursor=\E[%p1%dA, +//  reset_1string=\Ec, +//  reset_2string=\E7\E[r\E8\E[m\E[?7h\E[\041p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, +//  restore_cursor=\E8, +//  row_address=\E[%i%p1%dd, +//  save_cursor=\E7, +//  scroll_forward=\n, +//  scroll_reverse=\EM, +//  set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, +//  set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, +//  set_attributes=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t^N%e^O%;, +//  set_tab=\EH, +//  tab=^I, +//  user6=\E[%i%d;%dR, +//  user7=\E[6n, +//  user8=\E[?%[;0123456789]c, +//  user9=\E[c, +static const int8_t vte_256colour_terminfo[] = { +  30,2,39,0,38,0,15,0,-99,1,-49,5,118,116,101,45,50,53,54,99,111,108,111,114,124,86,84,69,32,119,105,116,104,32,120,116,101,114,109,32,50,53,54,45,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,38,0,42,0,46,0,-1,-1,57,0,74,0,76,0,80,0,87,0,-1,-1,89,0,96,0,-1,-1,100,0,-1,-1,104,0,108,0,-1,-1,-1,-1,112,0,-1,-1,114,0,119,0,-1,-1,-128,0,-123,0,-118,0,-1,-1,-113,0,-108,0,-103,0,-98,0,-89,0,-87,0,-81,0,-1,-1,-68,0,-63,0,-57,0,-51,0,-1,-1,-1,-1,-1,-1,-33,0,-1,-1,-1,-1,-1,-1,0,1,-1,-1,4,1,-1,-1,-1,-1,-1,-1,6,1,-1,-1,11,1,-1,-1,-1,-1,-1,-1,-1,-1,15,1,19,1,25,1,29,1,33,1,37,1,43,1,49,1,55,1,61,1,67,1,71,1,-1,-1,76,1,-1,-1,80,1,85,1,90,1,94,1,101,1,-1,-1,108,1,112,1,120,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-128,1,-119,1,-110,1,-101,1,-92,1,-83,1,-74,1,-65,1,-56,1,-47,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-38,1,-35,1,-1,-1,-1,-1,16,2,19,2,30,2,33,2,35,2,38,2,116,2,-1,-1,119,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,121,2,-1,-1,-1,-1,-1,-1,-1,-1,125,2,-1,-1,-78,2,-1,-1,-1,-1,-74,2,-68,2,-1,-1,-1,-1,-62,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-58,2,-54,2,-1,-1,-50,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-45,2,-1,-1,-38,2,-33,2,-1,-1,-1,-1,-1,-1,-1,-1,-26,2,-19,2,-12,2,-1,-1,-1,-1,-5,2,-1,-1,2,3,-1,-1,-1,-1,-1,-1,9,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,16,3,22,3,28,3,35,3,42,3,49,3,56,3,64,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,127,3,-122,3,-115,3,-108,3,-100,3,-92,3,-84,3,-76,3,-68,3,-60,3,-52,3,-44,3,-37,3,-30,3,-23,3,-16,3,-8,3,0,4,8,4,16,4,24,4,32,4,40,4,48,4,55,4,62,4,69,4,76,4,84,4,92,4,100,4,108,4,116,4,124,4,-124,4,-116,4,-109,4,-102,4,-95,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-90,4,-79,4,-74,4,-55,4,-51,4,-42,4,-35,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,59,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,64,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,70,5,-1,-1,-1,-1,-1,-1,74,5,-119,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-55,5,-52,5,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,80,0,27,91,77,0,14,0,27,91,49,109,0,27,55,27,91,63,52,55,104,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,15,0,27,91,48,109,15,0,27,91,50,74,27,91,63,52,55,108,27,56,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,27,91,109,27,91,63,55,104,27,91,52,108,27,62,27,55,27,91,114,27,91,63,49,59,51,59,52,59,54,108,27,56,0,27,91,76,0,127,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,79,72,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,99,0,27,55,27,91,114,27,56,27,91,109,27,91,63,55,104,27,91,33,112,27,91,63,49,59,51,59,52,59,54,108,27,91,52,108,27,62,27,91,63,49,48,48,48,108,27,91,63,50,53,104,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,55,37,116,59,56,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,109,37,63,37,112,57,37,116,14,37,101,15,37,59,0,27,72,0,9,0,27,91,69,0,96,96,97,97,102,102,103,103,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,41,48,0,27,79,70,0,27,79,77,0,27,91,49,126,0,27,91,51,59,50,126,0,27,91,52,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,51,109,0,27,91,50,51,109,0,27,91,60,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,108,0,27,109,0,0,3,0,1,0,73,0,-106,0,57,3,0,0,1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,-1,-1,32,0,39,0,46,0,53,0,60,0,67,0,74,0,81,0,88,0,95,0,102,0,109,0,116,0,123,0,-126,0,-119,0,-1,-1,-112,0,-105,0,-98,0,-91,0,-84,0,-1,-1,-77,0,-70,0,-63,0,-56,0,-49,0,-42,0,-35,0,-28,0,-21,0,-14,0,-7,0,0,1,7,1,14,1,21,1,28,1,35,1,42,1,49,1,56,1,63,1,70,1,77,1,84,1,91,1,98,1,105,1,112,1,119,1,126,1,-123,1,-1,-1,-1,-1,-1,-1,-1,-1,-116,1,-110,1,-105,1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,36,0,39,0,42,0,48,0,54,0,59,0,64,0,69,0,74,0,79,0,83,0,88,0,93,0,98,0,103,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-76,0,-71,0,-66,0,-61,0,-56,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,69,1,73,1,78,1,83,1,88,1,93,1,98,1,102,1,106,1,110,1,114,1,119,1,124,1,27,91,63,49,48,48,54,59,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,91,51,59,51,126,0,27,91,51,59,52,126,0,27,91,51,59,53,126,0,27,91,51,59,54,126,0,27,91,51,59,55,126,0,27,91,49,59,50,66,0,27,91,49,59,51,66,0,27,91,49,59,52,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,55,66,0,27,91,49,59,51,70,0,27,91,49,59,52,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,55,70,0,27,91,49,59,51,72,0,27,91,49,59,52,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,55,72,0,27,91,50,59,51,126,0,27,91,50,59,52,126,0,27,91,50,59,53,126,0,27,91,50,59,54,126,0,27,91,50,59,55,126,0,27,91,49,59,51,68,0,27,91,49,59,52,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,91,49,59,55,68,0,27,91,54,59,51,126,0,27,91,54,59,52,126,0,27,91,54,59,53,126,0,27,91,54,59,54,126,0,27,91,54,59,55,126,0,27,91,53,59,51,126,0,27,91,53,59,52,126,0,27,91,53,59,53,126,0,27,91,53,59,54,126,0,27,91,53,59,55,126,0,27,91,49,59,51,67,0,27,91,49,59,52,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,91,49,59,55,67,0,27,91,49,59,50,65,0,27,91,49,59,51,65,0,27,91,49,59,52,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,49,59,55,65,0,27,91,50,57,109,0,27,91,57,109,0,27,91,60,37,112,49,37,100,59,37,112,50,37,100,59,37,112,51,37,100,59,37,63,37,112,52,37,116,77,37,101,109,37,59,0,65,88,0,71,48,0,88,84,0,85,56,0,67,114,0,67,115,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 +}; + +// xterm-256color|xterm with 256 colors, +//  auto_right_margin, +//  back_color_erase, +//  backspaces_with_bs, +//  can_change, +//  eat_newline_glitch, +//  has_meta_key, +//  move_insert_mode, +//  move_standout_mode, +//  no_pad_char, +//  prtr_silent, +//  columns#80, +//  init_tabs#8, +//  lines#24, +//  max_colors#0x100, +//  max_pairs#0x10000, +//  acs_chars=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, +//  back_tab=\E[Z, +//  bell=^G, +//  carriage_return=\r, +//  change_scroll_region=\E[%i%p1%d;%p2%dr, +//  clear_all_tabs=\E[3g, +//  clear_screen=\E[H\E[2J, +//  clr_bol=\E[1K, +//  clr_eol=\E[K, +//  clr_eos=\E[J, +//  column_address=\E[%i%p1%dG, +//  cursor_address=\E[%i%p1%d;%p2%dH, +//  cursor_down=\n, +//  cursor_home=\E[H, +//  cursor_invisible=\E[?25l, +//  cursor_left=^H, +//  cursor_normal=\E[?12l\E[?25h, +//  cursor_right=\E[C, +//  cursor_up=\E[A, +//  cursor_visible=\E[?12;25h, +//  delete_character=\E[P, +//  delete_line=\E[M, +//  enter_alt_charset_mode=\E(0, +//  enter_am_mode=\E[?7h, +//  enter_blink_mode=\E[5m, +//  enter_bold_mode=\E[1m, +//  enter_ca_mode=\E[?1049h\E[22;0;0t, +//  enter_dim_mode=\E[2m, +//  enter_insert_mode=\E[4h, +//  enter_italics_mode=\E[3m, +//  enter_reverse_mode=\E[7m, +//  enter_secure_mode=\E[8m, +//  enter_standout_mode=\E[7m, +//  enter_underline_mode=\E[4m, +//  erase_chars=\E[%p1%dX, +//  exit_alt_charset_mode=\E(B, +//  exit_am_mode=\E[?7l, +//  exit_attribute_mode=\E(B\E[m, +//  exit_ca_mode=\E[?1049l\E[23;0;0t, +//  exit_insert_mode=\E[4l, +//  exit_italics_mode=\E[23m, +//  exit_standout_mode=\E[27m, +//  exit_underline_mode=\E[24m, +//  flash_screen=\E[?5h$<100/>\E[?5l, +//  init_2string=\E[\041p\E[?3;4l\E[4l\E>, +//  initialize_color=\E]4;%p1%d;rgb\072%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\, +//  insert_line=\E[L, +//  key_b2=\EOE, +//  key_backspace=^H, +//  key_btab=\E[Z, +//  key_dc=\E[3~, +//  key_down=\EOB, +//  key_end=\EOF, +//  key_enter=\EOM, +//  key_f1=\EOP, +//  key_f10=\E[21~, +//  key_f11=\E[23~, +//  key_f12=\E[24~, +//  key_f13=\E[1;2P, +//  key_f14=\E[1;2Q, +//  key_f15=\E[1;2R, +//  key_f16=\E[1;2S, +//  key_f17=\E[15;2~, +//  key_f18=\E[17;2~, +//  key_f19=\E[18;2~, +//  key_f2=\EOQ, +//  key_f20=\E[19;2~, +//  key_f21=\E[20;2~, +//  key_f22=\E[21;2~, +//  key_f23=\E[23;2~, +//  key_f24=\E[24;2~, +//  key_f25=\E[1;5P, +//  key_f26=\E[1;5Q, +//  key_f27=\E[1;5R, +//  key_f28=\E[1;5S, +//  key_f29=\E[15;5~, +//  key_f3=\EOR, +//  key_f30=\E[17;5~, +//  key_f31=\E[18;5~, +//  key_f32=\E[19;5~, +//  key_f33=\E[20;5~, +//  key_f34=\E[21;5~, +//  key_f35=\E[23;5~, +//  key_f36=\E[24;5~, +//  key_f37=\E[1;6P, +//  key_f38=\E[1;6Q, +//  key_f39=\E[1;6R, +//  key_f4=\EOS, +//  key_f40=\E[1;6S, +//  key_f41=\E[15;6~, +//  key_f42=\E[17;6~, +//  key_f43=\E[18;6~, +//  key_f44=\E[19;6~, +//  key_f45=\E[20;6~, +//  key_f46=\E[21;6~, +//  key_f47=\E[23;6~, +//  key_f48=\E[24;6~, +//  key_f49=\E[1;3P, +//  key_f5=\E[15~, +//  key_f50=\E[1;3Q, +//  key_f51=\E[1;3R, +//  key_f52=\E[1;3S, +//  key_f53=\E[15;3~, +//  key_f54=\E[17;3~, +//  key_f55=\E[18;3~, +//  key_f56=\E[19;3~, +//  key_f57=\E[20;3~, +//  key_f58=\E[21;3~, +//  key_f59=\E[23;3~, +//  key_f6=\E[17~, +//  key_f60=\E[24;3~, +//  key_f61=\E[1;4P, +//  key_f62=\E[1;4Q, +//  key_f63=\E[1;4R, +//  key_f7=\E[18~, +//  key_f8=\E[19~, +//  key_f9=\E[20~, +//  key_home=\EOH, +//  key_ic=\E[2~, +//  key_left=\EOD, +//  key_mouse=\E[<, +//  key_npage=\E[6~, +//  key_ppage=\E[5~, +//  key_right=\EOC, +//  key_sdc=\E[3;2~, +//  key_send=\E[1;2F, +//  key_sf=\E[1;2B, +//  key_shome=\E[1;2H, +//  key_sic=\E[2;2~, +//  key_sleft=\E[1;2D, +//  key_snext=\E[6;2~, +//  key_sprevious=\E[5;2~, +//  key_sr=\E[1;2A, +//  key_sright=\E[1;2C, +//  key_up=\EOA, +//  keypad_local=\E[?1l\E>, +//  keypad_xmit=\E[?1h\E=, +//  memory_lock=\El, +//  memory_unlock=\Em, +//  meta_off=\E[?1034l, +//  meta_on=\E[?1034h, +//  orig_colors=\E]104^G, +//  orig_pair=\E[39;49m, +//  parm_dch=\E[%p1%dP, +//  parm_delete_line=\E[%p1%dM, +//  parm_down_cursor=\E[%p1%dB, +//  parm_ich=\E[%p1%d@, +//  parm_index=\E[%p1%dS, +//  parm_insert_line=\E[%p1%dL, +//  parm_left_cursor=\E[%p1%dD, +//  parm_right_cursor=\E[%p1%dC, +//  parm_rindex=\E[%p1%dT, +//  parm_up_cursor=\E[%p1%dA, +//  print_screen=\E[i, +//  prtr_off=\E[4i, +//  prtr_on=\E[5i, +//  repeat_char=%p1%c\E[%p2%{1}%-%db, +//  reset_1string=\Ec\E]104^G, +//  reset_2string=\E[\041p\E[?3;4l\E[4l\E>, +//  restore_cursor=\E8, +//  row_address=\E[%i%p1%dd, +//  save_cursor=\E7, +//  scroll_forward=\n, +//  scroll_reverse=\EM, +//  set_a_background=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, +//  set_a_foreground=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, +//  set_attributes=%?%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, +//  set_tab=\EH, +//  tab=^I, +//  user6=\E[%i%d;%dR, +//  user7=\E[6n, +//  user8=\E[?%[;0123456789]c, +//  user9=\E[c, +static const int8_t xterm_256colour_terminfo[] = { +  30,2,37,0,38,0,15,0,-99,1,2,6,120,116,101,114,109,45,50,53,54,99,111,108,111,114,124,120,116,101,114,109,32,119,105,116,104,32,50,53,54,32,99,111,108,111,114,115,0,0,1,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,80,0,0,0,8,0,0,0,24,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,0,0,0,0,1,0,0,0,4,0,6,0,8,0,25,0,30,0,38,0,42,0,46,0,-1,-1,57,0,74,0,76,0,80,0,87,0,-1,-1,89,0,102,0,-1,-1,106,0,110,0,120,0,124,0,-1,-1,-1,-1,-128,0,-124,0,-119,0,-114,0,-1,-1,-96,0,-91,0,-86,0,-1,-1,-81,0,-76,0,-71,0,-66,0,-57,0,-53,0,-46,0,-1,-1,-28,0,-23,0,-17,0,-11,0,-1,-1,-1,-1,-1,-1,7,1,-1,-1,-1,-1,-1,-1,25,1,-1,-1,29,1,-1,-1,-1,-1,-1,-1,31,1,-1,-1,36,1,-1,-1,-1,-1,-1,-1,-1,-1,40,1,44,1,50,1,54,1,58,1,62,1,68,1,74,1,80,1,86,1,92,1,96,1,-1,-1,101,1,-1,-1,105,1,110,1,115,1,119,1,126,1,-1,-1,-123,1,-119,1,-111,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-103,1,-94,1,-1,-1,-1,-1,-85,1,-76,1,-67,1,-58,1,-49,1,-40,1,-31,1,-22,1,-13,1,-4,1,-1,-1,-1,-1,-1,-1,5,2,9,2,14,2,19,2,39,2,48,2,-1,-1,-1,-1,66,2,69,2,80,2,83,2,85,2,88,2,-75,2,-1,-1,-72,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-70,2,-1,-1,-1,-1,-1,-1,-1,-1,-66,2,-1,-1,-13,2,-1,-1,-1,-1,-9,2,-3,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,3,7,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,3,-1,-1,-1,-1,18,3,-1,-1,-1,-1,-1,-1,-1,-1,25,3,32,3,39,3,-1,-1,-1,-1,46,3,-1,-1,53,3,-1,-1,-1,-1,-1,-1,60,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,67,3,73,3,79,3,86,3,93,3,100,3,107,3,115,3,123,3,-125,3,-117,3,-109,3,-101,3,-93,3,-85,3,-78,3,-71,3,-64,3,-57,3,-49,3,-41,3,-33,3,-25,3,-17,3,-9,3,-1,3,7,4,14,4,21,4,28,4,35,4,43,4,51,4,59,4,67,4,75,4,83,4,91,4,99,4,106,4,113,4,120,4,127,4,-121,4,-113,4,-105,4,-97,4,-89,4,-81,4,-73,4,-65,4,-58,4,-51,4,-44,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-39,4,-28,4,-23,4,-4,4,0,5,9,5,16,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,110,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,115,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,121,5,-1,-1,-1,-1,-1,-1,125,5,-68,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-4,5,-1,5,27,91,90,0,7,0,13,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,114,0,27,91,51,103,0,27,91,72,27,91,50,74,0,27,91,75,0,27,91,74,0,27,91,37,105,37,112,49,37,100,71,0,27,91,37,105,37,112,49,37,100,59,37,112,50,37,100,72,0,10,0,27,91,72,0,27,91,63,50,53,108,0,8,0,27,91,63,49,50,108,27,91,63,50,53,104,0,27,91,67,0,27,91,65,0,27,91,63,49,50,59,50,53,104,0,27,91,80,0,27,91,77,0,27,40,48,0,27,91,53,109,0,27,91,49,109,0,27,91,63,49,48,52,57,104,27,91,50,50,59,48,59,48,116,0,27,91,50,109,0,27,91,52,104,0,27,91,56,109,0,27,91,55,109,0,27,91,55,109,0,27,91,52,109,0,27,91,37,112,49,37,100,88,0,27,40,66,0,27,40,66,27,91,109,0,27,91,63,49,48,52,57,108,27,91,50,51,59,48,59,48,116,0,27,91,52,108,0,27,91,50,55,109,0,27,91,50,52,109,0,27,91,63,53,104,36,60,49,48,48,47,62,27,91,63,53,108,0,27,91,33,112,27,91,63,51,59,52,108,27,91,52,108,27,62,0,27,91,76,0,8,0,27,91,51,126,0,27,79,66,0,27,79,80,0,27,91,50,49,126,0,27,79,81,0,27,79,82,0,27,79,83,0,27,91,49,53,126,0,27,91,49,55,126,0,27,91,49,56,126,0,27,91,49,57,126,0,27,91,50,48,126,0,27,79,72,0,27,91,50,126,0,27,79,68,0,27,91,54,126,0,27,91,53,126,0,27,79,67,0,27,91,49,59,50,66,0,27,91,49,59,50,65,0,27,79,65,0,27,91,63,49,108,27,62,0,27,91,63,49,104,27,61,0,27,91,63,49,48,51,52,108,0,27,91,63,49,48,51,52,104,0,27,91,37,112,49,37,100,80,0,27,91,37,112,49,37,100,77,0,27,91,37,112,49,37,100,66,0,27,91,37,112,49,37,100,64,0,27,91,37,112,49,37,100,83,0,27,91,37,112,49,37,100,76,0,27,91,37,112,49,37,100,68,0,27,91,37,112,49,37,100,67,0,27,91,37,112,49,37,100,84,0,27,91,37,112,49,37,100,65,0,27,91,105,0,27,91,52,105,0,27,91,53,105,0,37,112,49,37,99,27,91,37,112,50,37,123,49,125,37,45,37,100,98,0,27,99,27,93,49,48,52,7,0,27,91,33,112,27,91,63,51,59,52,108,27,91,52,108,27,62,0,27,56,0,27,91,37,105,37,112,49,37,100,100,0,27,55,0,10,0,27,77,0,37,63,37,112,57,37,116,27,40,48,37,101,27,40,66,37,59,27,91,48,37,63,37,112,54,37,116,59,49,37,59,37,63,37,112,53,37,116,59,50,37,59,37,63,37,112,50,37,116,59,52,37,59,37,63,37,112,49,37,112,51,37,124,37,116,59,55,37,59,37,63,37,112,52,37,116,59,53,37,59,37,63,37,112,55,37,116,59,56,37,59,109,0,27,72,0,9,0,27,79,69,0,96,96,97,97,102,102,103,103,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,0,27,91,90,0,27,91,63,55,104,0,27,91,63,55,108,0,27,79,70,0,27,79,77,0,27,91,51,59,50,126,0,27,91,49,59,50,70,0,27,91,49,59,50,72,0,27,91,50,59,50,126,0,27,91,49,59,50,68,0,27,91,54,59,50,126,0,27,91,53,59,50,126,0,27,91,49,59,50,67,0,27,91,50,51,126,0,27,91,50,52,126,0,27,91,49,59,50,80,0,27,91,49,59,50,81,0,27,91,49,59,50,82,0,27,91,49,59,50,83,0,27,91,49,53,59,50,126,0,27,91,49,55,59,50,126,0,27,91,49,56,59,50,126,0,27,91,49,57,59,50,126,0,27,91,50,48,59,50,126,0,27,91,50,49,59,50,126,0,27,91,50,51,59,50,126,0,27,91,50,52,59,50,126,0,27,91,49,59,53,80,0,27,91,49,59,53,81,0,27,91,49,59,53,82,0,27,91,49,59,53,83,0,27,91,49,53,59,53,126,0,27,91,49,55,59,53,126,0,27,91,49,56,59,53,126,0,27,91,49,57,59,53,126,0,27,91,50,48,59,53,126,0,27,91,50,49,59,53,126,0,27,91,50,51,59,53,126,0,27,91,50,52,59,53,126,0,27,91,49,59,54,80,0,27,91,49,59,54,81,0,27,91,49,59,54,82,0,27,91,49,59,54,83,0,27,91,49,53,59,54,126,0,27,91,49,55,59,54,126,0,27,91,49,56,59,54,126,0,27,91,49,57,59,54,126,0,27,91,50,48,59,54,126,0,27,91,50,49,59,54,126,0,27,91,50,51,59,54,126,0,27,91,50,52,59,54,126,0,27,91,49,59,51,80,0,27,91,49,59,51,81,0,27,91,49,59,51,82,0,27,91,49,59,51,83,0,27,91,49,53,59,51,126,0,27,91,49,55,59,51,126,0,27,91,49,56,59,51,126,0,27,91,49,57,59,51,126,0,27,91,50,48,59,51,126,0,27,91,50,49,59,51,126,0,27,91,50,51,59,51,126,0,27,91,50,52,59,51,126,0,27,91,49,59,52,80,0,27,91,49,59,52,81,0,27,91,49,59,52,82,0,27,91,49,75,0,27,91,37,105,37,100,59,37,100,82,0,27,91,54,110,0,27,91,63,37,91,59,48,49,50,51,52,53,54,55,56,57,93,99,0,27,91,99,0,27,91,51,57,59,52,57,109,0,27,93,49,48,52,7,0,27,93,52,59,37,112,49,37,100,59,114,103,98,58,37,112,50,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,51,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,47,37,112,52,37,123,50,53,53,125,37,42,37,123,49,48,48,48,125,37,47,37,50,46,50,88,27,92,0,27,91,51,109,0,27,91,50,51,109,0,27,91,60,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,51,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,57,37,112,49,37,123,56,125,37,45,37,100,37,101,51,56,59,53,59,37,112,49,37,100,37,59,109,0,27,91,37,63,37,112,49,37,123,56,125,37,60,37,116,52,37,112,49,37,100,37,101,37,112,49,37,123,49,54,125,37,60,37,116,49,48,37,112,49,37,123,56,125,37,45,37,100,37,101,52,56,59,53,59,37,112,49,37,100,37,59,109,0,27,108,0,27,109,0,3,0,1,0,73,0,-106,0,115,3,1,0,1,0,-1,-1,-1,-1,0,0,7,0,-1,-1,19,0,24,0,-1,-1,42,0,48,0,-1,-1,58,0,-1,-1,-1,-1,90,0,97,0,104,0,111,0,118,0,125,0,-124,0,-117,0,-110,0,-103,0,-96,0,-89,0,-82,0,-75,0,-68,0,-61,0,-1,-1,-54,0,-47,0,-40,0,-33,0,-26,0,-1,-1,-19,0,-12,0,-5,0,2,1,9,1,16,1,23,1,30,1,37,1,44,1,51,1,58,1,65,1,72,1,79,1,86,1,93,1,100,1,107,1,114,1,121,1,-128,1,-121,1,-114,1,-107,1,-100,1,-93,1,-86,1,-79,1,-72,1,-65,1,-1,-1,-1,-1,-1,-1,-1,-1,-58,1,-52,1,-47,1,0,0,3,0,6,0,9,0,12,0,15,0,18,0,21,0,24,0,27,0,30,0,33,0,36,0,39,0,42,0,48,0,54,0,59,0,64,0,69,0,74,0,79,0,83,0,88,0,93,0,98,0,103,0,108,0,114,0,120,0,126,0,-124,0,-118,0,-112,0,-106,0,-100,0,-94,0,-88,0,-82,0,-76,0,-71,0,-66,0,-61,0,-56,0,-51,0,-45,0,-39,0,-33,0,-27,0,-21,0,-15,0,-9,0,-3,0,3,1,9,1,15,1,21,1,27,1,33,1,39,1,45,1,51,1,57,1,63,1,69,1,73,1,78,1,83,1,88,1,93,1,98,1,102,1,106,1,110,1,114,1,119,1,124,1,27,93,49,49,50,7,0,27,93,49,50,59,37,112,49,37,115,7,0,27,91,51,74,0,27,93,53,50,59,37,112,49,37,115,59,37,112,50,37,115,7,0,27,91,50,32,113,0,27,91,37,112,49,37,100,32,113,0,27,91,63,49,48,48,54,59,49,48,48,48,37,63,37,112,49,37,123,49,125,37,61,37,116,104,37,101,108,37,59,0,27,91,51,59,51,126,0,27,91,51,59,52,126,0,27,91,51,59,53,126,0,27,91,51,59,54,126,0,27,91,51,59,55,126,0,27,91,49,59,50,66,0,27,91,49,59,51,66,0,27,91,49,59,52,66,0,27,91,49,59,53,66,0,27,91,49,59,54,66,0,27,91,49,59,55,66,0,27,91,49,59,51,70,0,27,91,49,59,52,70,0,27,91,49,59,53,70,0,27,91,49,59,54,70,0,27,91,49,59,55,70,0,27,91,49,59,51,72,0,27,91,49,59,52,72,0,27,91,49,59,53,72,0,27,91,49,59,54,72,0,27,91,49,59,55,72,0,27,91,50,59,51,126,0,27,91,50,59,52,126,0,27,91,50,59,53,126,0,27,91,50,59,54,126,0,27,91,50,59,55,126,0,27,91,49,59,51,68,0,27,91,49,59,52,68,0,27,91,49,59,53,68,0,27,91,49,59,54,68,0,27,91,49,59,55,68,0,27,91,54,59,51,126,0,27,91,54,59,52,126,0,27,91,54,59,53,126,0,27,91,54,59,54,126,0,27,91,54,59,55,126,0,27,91,53,59,51,126,0,27,91,53,59,52,126,0,27,91,53,59,53,126,0,27,91,53,59,54,126,0,27,91,53,59,55,126,0,27,91,49,59,51,67,0,27,91,49,59,52,67,0,27,91,49,59,53,67,0,27,91,49,59,54,67,0,27,91,49,59,55,67,0,27,91,49,59,50,65,0,27,91,49,59,51,65,0,27,91,49,59,52,65,0,27,91,49,59,53,65,0,27,91,49,59,54,65,0,27,91,49,59,55,65,0,27,91,50,57,109,0,27,91,57,109,0,27,91,60,37,112,49,37,100,59,37,112,50,37,100,59,37,112,51,37,100,59,37,63,37,112,52,37,116,77,37,101,109,37,59,0,65,88,0,71,48,0,88,84,0,85,56,0,67,114,0,67,115,0,69,48,0,69,51,0,77,115,0,83,48,0,83,101,0,83,115,0,84,83,0,88,77,0,103,114,98,111,109,0,103,115,98,111,109,0,107,68,67,51,0,107,68,67,52,0,107,68,67,53,0,107,68,67,54,0,107,68,67,55,0,107,68,78,0,107,68,78,51,0,107,68,78,52,0,107,68,78,53,0,107,68,78,54,0,107,68,78,55,0,107,69,78,68,51,0,107,69,78,68,52,0,107,69,78,68,53,0,107,69,78,68,54,0,107,69,78,68,55,0,107,69,78,68,56,0,107,72,79,77,51,0,107,72,79,77,52,0,107,72,79,77,53,0,107,72,79,77,54,0,107,72,79,77,55,0,107,72,79,77,56,0,107,73,67,51,0,107,73,67,52,0,107,73,67,53,0,107,73,67,54,0,107,73,67,55,0,107,76,70,84,51,0,107,76,70,84,52,0,107,76,70,84,53,0,107,76,70,84,54,0,107,76,70,84,55,0,107,78,88,84,51,0,107,78,88,84,52,0,107,78,88,84,53,0,107,78,88,84,54,0,107,78,88,84,55,0,107,80,82,86,51,0,107,80,82,86,52,0,107,80,82,86,53,0,107,80,82,86,54,0,107,80,82,86,55,0,107,82,73,84,51,0,107,82,73,84,52,0,107,82,73,84,53,0,107,82,73,84,54,0,107,82,73,84,55,0,107,85,80,0,107,85,80,51,0,107,85,80,52,0,107,85,80,53,0,107,85,80,54,0,107,85,80,55,0,107,97,50,0,107,98,49,0,107,98,51,0,107,99,50,0,114,109,120,120,0,115,109,120,120,0,120,109,0 +}; +#endif  // NVIM_TUI_TERMINFO_DEFS_H diff --git a/src/nvim/vim.h b/src/nvim/vim.h index 1fe4e53faf..bddf092789 100644 --- a/src/nvim/vim.h +++ b/src/nvim/vim.h @@ -207,7 +207,7 @@ enum { FOLD_TEXT_LEN = 51 };  //!< buffer size for get_foldtext()  // defines to avoid typecasts from (char_u *) to (char *) and back -// (vim_strchr() and vim_strrchr() are now in alloc.c) +// (vim_strchr() is now in strings.c)  #define STRLEN(s)           strlen((char *)(s))  #define STRCPY(d, s)        strcpy((char *)(d), (char *)(s)) @@ -238,6 +238,8 @@ enum { FOLD_TEXT_LEN = 51 };  //!< buffer size for get_foldtext()  # endif  #endif +#define STRRCHR(s, c)       (char_u *)strrchr((const char *)(s), (c)) +  #define STRCAT(d, s)        strcat((char *)(d), (char *)(s))  #define STRNCAT(d, s, n)    strncat((char *)(d), (char *)(s), (size_t)(n))  #define STRLCAT(d, s, n)    xstrlcat((char *)(d), (char *)(s), (size_t)(n)) | 
