Blame gettext-runtime/gnulib-lib/uniwidth/width.c

Packit 5b56b6
/* Determine display width of Unicode character.
Packit 5b56b6
   Copyright (C) 2001-2002, 2006-2015 Free Software Foundation, Inc.
Packit 5b56b6
   Written by Bruno Haible <bruno@clisp.org>, 2002.
Packit 5b56b6
Packit 5b56b6
   This program is free software: you can redistribute it and/or modify it
Packit 5b56b6
   under the terms of the GNU General Public License as published
Packit 5b56b6
   by the Free Software Foundation; either version 3 of the License, or
Packit 5b56b6
   (at your option) any later version.
Packit 5b56b6
Packit 5b56b6
   This program is distributed in the hope that it will be useful,
Packit 5b56b6
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 5b56b6
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 5b56b6
   General Public License for more details.
Packit 5b56b6
Packit 5b56b6
   You should have received a copy of the GNU General Public License
Packit 5b56b6
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit 5b56b6
Packit 5b56b6
#include <config.h>
Packit 5b56b6
Packit 5b56b6
/* Specification.  */
Packit 5b56b6
#include "uniwidth.h"
Packit 5b56b6
Packit 5b56b6
#include "cjk.h"
Packit 5b56b6
Packit 5b56b6
/*
Packit 5b56b6
 * Non-spacing attribute table.
Packit 5b56b6
 * Consists of:
Packit 5b56b6
 * - Non-spacing characters; generated from PropList.txt or
Packit 5b56b6
 *   "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt"
Packit 5b56b6
 * - Format control characters; generated from
Packit 5b56b6
 *   "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt"
Packit 5b56b6
 * - Zero width characters; generated from
Packit 5b56b6
 *   "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
Packit 5b56b6
 */
Packit 5b56b6
static const unsigned char nonspacing_table_data[36*64] = {
Packit 5b56b6
  /* 0x0000-0x01ff */
Packit 5b56b6
  0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
Packit 5b56b6
  0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */
Packit 5b56b6
  /* 0x0200-0x03ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */
Packit 5b56b6
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */
Packit 5b56b6
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */
Packit 5b56b6
  /* 0x0400-0x05ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */
Packit 5b56b6
  0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */
Packit 5b56b6
  0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */
Packit 5b56b6
  0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */
Packit 5b56b6
  /* 0x0600-0x07ff */
Packit 5b56b6
  0x3f, 0x00, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */
Packit 5b56b6
  0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */
Packit 5b56b6
  0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */
Packit 5b56b6
  0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */
Packit 5b56b6
  0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x07c0-0x07ff */
Packit 5b56b6
  /* 0x0800-0x09ff */
Packit 5b56b6
  0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */
Packit 5b56b6
  0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */
Packit 5b56b6
  0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
Packit 5b56b6
  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */
Packit 5b56b6
  0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x09c0-0x09ff */
Packit 5b56b6
  /* 0x0a00-0x0bff */
Packit 5b56b6
  0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */
Packit 5b56b6
  0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */
Packit 5b56b6
  0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */
Packit 5b56b6
  0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0ac0-0x0aff */
Packit 5b56b6
  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */
Packit 5b56b6
  0x1e, 0x20, 0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */
Packit 5b56b6
  0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */
Packit 5b56b6
  0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */
Packit 5b56b6
  /* 0x0c00-0x0dff */
Packit 5b56b6
  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */
Packit 5b56b6
  0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */
Packit 5b56b6
  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */
Packit 5b56b6
  0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */
Packit 5b56b6
  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d00-0x0d3f */
Packit 5b56b6
  0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */
Packit 5b56b6
  0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */
Packit 5b56b6
  /* 0x0e00-0x0fff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */
Packit 5b56b6
  0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1b, /* 0x0e80-0x0ebf */
Packit 5b56b6
  0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */
Packit 5b56b6
  0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */
Packit 5b56b6
  0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */
Packit 5b56b6
  /* 0x1000-0x11ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */
Packit 5b56b6
  0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1140-0x117f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1180-0x11bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c0-0x11ff */
Packit 5b56b6
  /* 0x1200-0x13ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */
Packit 5b56b6
  /* 0x1600-0x17ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */
Packit 5b56b6
  0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, /* 0x1700-0x173f */
Packit 5b56b6
  0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */
Packit 5b56b6
  0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */
Packit 5b56b6
  /* 0x1800-0x19ff */
Packit 5b56b6
  0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */
Packit 5b56b6
  /* 0x1a00-0x1bff */
Packit 5b56b6
  0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */
Packit 5b56b6
  0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, /* 0x1a80-0x1abf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */
Packit 5b56b6
  0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */
Packit 5b56b6
  0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */
Packit 5b56b6
  0x03, 0x00, 0x00, 0x00, 0x3c, 0x3b, 0x00, 0x00, /* 0x1b80-0x1bbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */
Packit 5b56b6
  /* 0x1c00-0x1dff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */
Packit 5b56b6
  0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x10, 0x03, /* 0x1cc0-0x1cff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */
Packit 5b56b6
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, /* 0x1dc0-0x1dff */
Packit 5b56b6
  /* 0x2000-0x21ff */
Packit 5b56b6
  0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */
Packit 5b56b6
  0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */
Packit 5b56b6
  /* 0x2c00-0x2dff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */
Packit 5b56b6
  /* 0x3000-0x31ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x3000-0x303f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */
Packit 5b56b6
  /* 0xa600-0xa7ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x3f, /* 0xa640-0xa67f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */
Packit 5b56b6
  /* 0xa800-0xa9ff */
Packit 5b56b6
  0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */
Packit 5b56b6
  0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */
Packit 5b56b6
  0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */
Packit 5b56b6
  0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x13, /* 0xa980-0xa9bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */
Packit 5b56b6
  /* 0xaa00-0xabff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */
Packit 5b56b6
  0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0xaa40-0xaa7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */
Packit 5b56b6
  0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x00, /* 0xaac0-0xaaff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */
Packit 5b56b6
  /* 0xfa00-0xfbff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */
Packit 5b56b6
  /* 0xfe00-0xffff */
Packit 5b56b6
  0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, /* 0xfe00-0xfe3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */
Packit 5b56b6
  /* 0x10000-0x101ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */
Packit 5b56b6
  /* 0x10200-0x103ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10200-0x1023f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10240-0x1027f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10280-0x102bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0x102c0-0x102ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10300-0x1033f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x10340-0x1037f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10380-0x103bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x103c0-0x103ff */
Packit 5b56b6
  /* 0x10a00-0x10bff */
Packit 5b56b6
  0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */
Packit 5b56b6
  /* 0x11000-0x111ff */
Packit 5b56b6
  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */
Packit 5b56b6
  0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x11040-0x1107f */
Packit 5b56b6
  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */
Packit 5b56b6
  0x07, 0x00, 0x00, 0x00, 0x80, 0xef, 0x1f, 0x00, /* 0x11100-0x1113f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, /* 0x11140-0x1117f */
Packit 5b56b6
  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */
Packit 5b56b6
  0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */
Packit 5b56b6
  /* 0x11200-0x113ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x00, /* 0x11200-0x1123f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */
Packit 5b56b6
  0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x11300-0x1133f */
Packit 5b56b6
  0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x1f, 0x00, /* 0x11340-0x1137f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11380-0x113bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */
Packit 5b56b6
  /* 0x11400-0x115ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11400-0x1143f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */
Packit 5b56b6
  0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11540-0x1157f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xb0, /* 0x11580-0x115bf */
Packit 5b56b6
  0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, /* 0x115c0-0x115ff */
Packit 5b56b6
  /* 0x11600-0x117ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa7, /* 0x11600-0x1163f */
Packit 5b56b6
  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11640-0x1167f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xbf, 0x00, /* 0x11680-0x116bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x116c0-0x116ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0xe0, 0xbc, 0x0f, 0x00, 0x00, /* 0x11700-0x1173f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */
Packit 5b56b6
  /* 0x16a00-0x16bff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a80-0x16abf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, /* 0x16ac0-0x16aff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x16b00-0x16b3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b40-0x16b7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b80-0x16bbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16bc0-0x16bff */
Packit 5b56b6
  /* 0x16e00-0x16fff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e00-0x16e3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e40-0x16e7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e80-0x16ebf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16ec0-0x16eff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f00-0x16f3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f40-0x16f7f */
Packit 5b56b6
  0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f80-0x16fbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16fc0-0x16fff */
Packit 5b56b6
  /* 0x1bc00-0x1bdff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc00-0x1bc3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc40-0x1bc7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x60, 0x0f, 0x00, 0x00, 0x00, /* 0x1bc80-0x1bcbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bcc0-0x1bcff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd00-0x1bd3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd40-0x1bd7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd80-0x1bdbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bdc0-0x1bdff */
Packit 5b56b6
  /* 0x1d000-0x1d1ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */
Packit 5b56b6
  0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */
Packit 5b56b6
  /* 0x1d200-0x1d3ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */
Packit 5b56b6
  0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d3c0-0x1d3ff */
Packit 5b56b6
  /* 0x1da00-0x1dbff */
Packit 5b56b6
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf8, /* 0x1da00-0x1da3f */
Packit 5b56b6
  0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x20, 0x00, /* 0x1da40-0x1da7f */
Packit 5b56b6
  0x10, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x00, 0x00, /* 0x1da80-0x1dabf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dac0-0x1daff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db00-0x1db3f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */
Packit 5b56b6
  /* 0x1e800-0x1e9ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */
Packit 5b56b6
  0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */
Packit 5b56b6
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00  /* 0x1e9c0-0x1e9ff */
Packit 5b56b6
};
Packit 5b56b6
static const signed char nonspacing_table_ind[248] = {
Packit 5b56b6
   0,  1,  2,  3,  4,  5,  6,  7, /* 0x0000-0x0fff */
Packit 5b56b6
   8,  9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */
Packit 5b56b6
  14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */
Packit 5b56b6
  16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */
Packit 5b56b6
  -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd000-0xdfff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */
Packit 5b56b6
  -1, -1, -1, -1, -1, 20, -1, 21, /* 0xf000-0xffff */
Packit 5b56b6
  22, 23, -1, -1, -1, 24, -1, -1, /* 0x10000-0x10fff */
Packit 5b56b6
  25, 26, 27, 28, -1, -1, -1, -1, /* 0x11000-0x11fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, 29, -1, 30, /* 0x16000-0x16fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, 31, -1, /* 0x1b000-0x1bfff */
Packit 5b56b6
  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */
Packit 5b56b6
  32, 33, -1, -1, -1, 34, -1, -1, /* 0x1d000-0x1dfff */
Packit 5b56b6
  -1, -1, -1, -1, 35, -1, -1, -1  /* 0x1e000-0x1efff */
Packit 5b56b6
};
Packit 5b56b6
Packit 5b56b6
/* Determine number of column positions required for UC.  */
Packit 5b56b6
int
Packit 5b56b6
uc_width (ucs4_t uc, const char *encoding)
Packit 5b56b6
{
Packit 5b56b6
  /* Test for non-spacing or control character.  */
Packit 5b56b6
  if ((uc >> 9) < 248)
Packit 5b56b6
    {
Packit 5b56b6
      int ind = nonspacing_table_ind[uc >> 9];
Packit 5b56b6
      if (ind >= 0)
Packit 5b56b6
        if ((nonspacing_table_data[64*ind + ((uc >> 3) & 63)] >> (uc & 7)) & 1)
Packit 5b56b6
          {
Packit 5b56b6
            if (uc > 0 && uc < 0xa0)
Packit 5b56b6
              return -1;
Packit 5b56b6
            else
Packit 5b56b6
              return 0;
Packit 5b56b6
          }
Packit 5b56b6
    }
Packit 5b56b6
  else if ((uc >> 9) == (0xe0000 >> 9))
Packit 5b56b6
    {
Packit 5b56b6
      if (uc >= 0xe0100)
Packit 5b56b6
        {
Packit 5b56b6
          if (uc <= 0xe01ef)
Packit 5b56b6
            return 0;
Packit 5b56b6
        }
Packit 5b56b6
      else
Packit 5b56b6
        {
Packit 5b56b6
          if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001)
Packit 5b56b6
            return 0;
Packit 5b56b6
        }
Packit 5b56b6
    }
Packit 5b56b6
  /* Test for double-width character.
Packit 5b56b6
   * Generated from "grep '^[^;]\{4,5\};[WF]' EastAsianWidth.txt"
Packit 5b56b6
   * and            "grep '^[^;]\{4,5\};[^WF]' EastAsianWidth.txt"
Packit 5b56b6
   */
Packit 5b56b6
  if (uc >= 0x1100
Packit 5b56b6
      && ((uc < 0x1160) /* Hangul Jamo */
Packit 5b56b6
          || (uc >= 0x2329 && uc < 0x232b) /* Angle Brackets */
Packit 5b56b6
          || (uc >= 0x2e80 && uc < 0xa4d0  /* CJK ... Yi */
Packit 5b56b6
              && !(uc == 0x303f) && !(uc >= 0x4dc0 && uc < 0x4e00))
Packit 5b56b6
          || (uc >= 0xac00 && uc < 0xd7a4) /* Hangul Syllables */
Packit 5b56b6
          || (uc >= 0xf900 && uc < 0xfb00) /* CJK Compatibility Ideographs */
Packit 5b56b6
          || (uc >= 0xfe10 && uc < 0xfe20) /* Presentation Forms for Vertical */
Packit 5b56b6
          || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */
Packit 5b56b6
          || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */
Packit 5b56b6
          || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */
Packit 5b56b6
          || (uc >= 0x20000 && uc <= 0x2ffff) /* Supplementary Ideographic Plane */
Packit 5b56b6
          || (uc >= 0x30000 && uc <= 0x3ffff) /* Tertiary Ideographic Plane */
Packit 5b56b6
     )   )
Packit 5b56b6
    return 2;
Packit 5b56b6
  /* In ancient CJK encodings, Cyrillic and most other characters are
Packit 5b56b6
     double-width as well.  */
Packit 5b56b6
  if (uc >= 0x00A1 && uc < 0xFF61 && uc != 0x20A9
Packit 5b56b6
      && is_cjk_encoding (encoding))
Packit 5b56b6
    return 2;
Packit 5b56b6
  return 1;
Packit 5b56b6
}